The graphics drivers built into LMI's UR/FORTH systems for DOS and the 80386/486/Pentium give you full control over the video graphics capabilities of the IBM PC family. These high-performance packages include device-independent, structured video mode commands and graphics drawing primitives.
The LMI Forth graphics drivers support the following video controllers:
IBM Color/Graphics Adapter (CGA)
IBM Enhanced Graphics Adapter (EGA)
IBM Video Graphics Array/Adapter (VGA)
Hercules Monochrome Graphics Card
Entirely implemented in native machine code for maximum performance
Loaded as a memory-resident system driver (does not reduce amount of Forth dictionary workspace available)
Graphics primitives include pel addressing, line, circle, arc, ellipse, pattern flood fill, bit-block move and graphics text strings
Supports all documented graphics display modes except for the 256-color modes of the VGA adapter
Smooth pel-by-pel panning and scrolling (EGA, VGA)
RAM-loadable character sets (EGA, VGA)
Dynamic palette programming (EGA, VGA)
Virtual video screen display (EGA, VGA)
All of the functions listed below work symmetrically in any legal graphics or text mode (if applicable) on the active video display. It should be noted that the "Display Attributes" and "Display Control" directives are also available for text modes.
-BLINK |
Disable blink attribute |
-COLOR |
Disable color burst |
-INTENSITY |
Disable intensity attribute |
?COLORS |
Return number of colors for current mode |
!PALETTE |
Program palette registers |
AND-OFF |
Disable AND mode for drawing primitives (EGA, VGA) |
AND-ON |
Enable AND mode for drawing primitives (EGA, VGA) |
B/W |
Return to default foreground/background colors |
BACKGROUND |
Select background color |
BLINK |
Enable blink attribute |
BORDER |
Select border color |
FOREGROUND |
Select foreground color |
I/B |
Toggle between intensity or blink attribute |
INTENSITY |
Enable intensity (highlight) attribute) |
OR-OFF |
Disable OR mode for drawing primitives (EGA, VGA) |
OR-ON |
Enable OR mode for drawing primitives (EGA, VGA) |
PALETTE |
Select current color palette |
REVERSE |
Interchange foreground/background colors |
XOR-OFF |
Disable XOR mode for drawing primitives |
XOR-ON |
Enable XOR mode for drawing primitives |
?VMODE |
Return the current video display mode |
?VPAGE |
Return active video page |
?VSEG |
Return the segment of the current display buffer |
?XMAX |
Return maximum legal X coordinate for mode |
?YMAX |
Return maximum legal Y coordinate for mode |
CLS |
Clear screen with current background attribute |
GOTOXY |
Position cursor |
REDRAW |
Refresh active display from shadow buffer |
SET-VSEG |
Set segment address of shadow buffer |
SET-VXY |
Set virtual screen origin (EGA, VGA) |
VIDEO-IO |
Hook to ROM video driver |
VMODE |
Set current display mode |
VPAGE |
Select active video page |
!BLOCK |
Write bit block |
GEMIT |
Character display at graphic coordinate |
GTYPE |
String output at graphics coordinate |
!PEL |
Write pixel |
@PEL |
Read pixel value |
@BLOCK |
Fetch bit block to local buffer |
ARC |
General purpose arc primitive with clipping |
CIRCLE |
Draws circle given origin and point on edge |
ELLIPSE |
Draws ellipse given origin and x and y radius |
FLOOD |
Solid or pattern fill of any bounded region |
LINE |
Solid line between specified endpoints |