±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³V12 Library Documentation File³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ set it up so buttons can be loaded into an array and created, pushed and checked by passing the array name ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± PRPrint Routines (PRINTROM.BAS) PRPrint xPos%, yPos%, Text$ See V12.BI for PR.parameter_list ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Font Setting Routines (FONT_SET.BAS) SetFont - Selects standard font characteristics Parameters - Height: 8, 14, 16, 28, 32, 56, 64 Boldness: 0, 1, 2 SetFont Height%, Bold% SetItalic - Same as SetFont but Italic PrintNormal - Returns font settings to sane point ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± PopUp Menu Routines (POP_UP.BAS) PopUpMenu - A menu which pops up with the right mouse button Number of menu entries is determined by DIM Menu$(#) Width and Height are determined automatically based on data PopUpMenu saves, then restores existing screen graphics PopUpMenu Menu$(), PopItem ToolChest - Puts a toolchest menu in upper left corner Number of menu entries is determined by DIM Menu$(#) Use Menu$(0) if you want a title placed above menu Width and Height are determined automatically based on data When ToolChest gets called ToolChestBox (#) gets loaded ToolChestBox() 1 - Left edge of Menu 2 - Top of Menu Items 3 - Width of Menu 4 - Height of each menu block 5 - Number of Menu Items ToolChest Menu$() IsInToolChest ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Circle Routines (CIRCLES.BAS) CircleIn - Draws an 'in' appearing circle CALL CircleIn (xPos!, yPos!, Radius!) CircleOut - Draws an 'out' appearing circle CALL CircleOut (xPos!, yPos!, Radius!) Lamp - Draws a lightable circle on the screen CALL Lamp (xPos!, yPos!, Radius!, LensColor) LampOn LampOff ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Misc Routines (MSC_FUNC.BAS) GetKey - Waits for a KeyPress, returns value of key Returns a minus value if a 2 char key (ie. Function key) Call GetKey (KeyPress) LoadArrayBox - Stuffs data into an array for a Box LoadArrayBox D%(), Left%, Top%, Wide%, High%, Depth% LoadArrayCircle - Stuffs data for a circle or Lamp LoadArrayCircle A!(), X!, Y!, Radius! EraseArea IsInBox SetRGB ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Box Routines (BOXES.BAS) BoxRound - Creates a box with rounded corners filled with color Call BoxRound (Left, Top, Wide, High, - CornerRadius, FillColor) BoxFill - Creates a box area on screen filled with specified color Use an array to call : BoxFill Box() Array Elements: 1 - Left 2 - Top 3 - Wide 4 - High 5 - FillColor BoxIn - Creates an 'in' box on screen Values are pixel counts, depth range 0 - 9 Use an array to call : BoxIn Box() Array Elements: 1 - Left 2 - Top 3 - Wide 4 - High 5 - Depth BoxOut - Creates an 'out' box on screen Values are pixel counts, depth 0 - 9 Use an array to call : BoxOut Box() Array Elements: 1 - Left 2 - Top 3 - Wide 4 - High 5 - Depth BoxMake - Routine Used by above Box Routines Use this one if you don't want to load an array BoxMake Left, Top, Wide, High, Depth, IN/OUT ClearBox - Empties contents of a box, leaving box intact ClearBox Box() EraseBox - Erases a box from the screen EraseArea - Erases a screen area EraseArea Left, Top, Wide, High ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Set Up Routines (SET_UP.BAS) Set12 - Sets video Mode 12 and Initializes colors Set12 redefines colors 5 and 13 (Magenta) for its own use Also sets background color (0) to gray and color 8 to black CALL Set12 SetBack - Sets screen background Color valid range 0 - 63 CALL SetBack (GrayColor) ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Mouse Routines (MOUSE.BAS) MouseInit - Initializes mouse driver CALL MouseInit MouseShow - Turns on Mouse Cursor CALL MouseShow MouseHide - Turns off Mouse Cursor CALL MouseHide MousePoll - get mouse cursor location and button status CALL MousePoll (row, col, lButton, rButton) MouseBorder - set mouse cursor travel limits CALL MouseBorder (row1, col1, row2, col2) MouseDriver - driver routine for above calls SetHigh - set video to highest mode available ScrSettings - gets current screen mode and screen width ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± '* * '* PR.xAxis Starting column, in pixel points. * '* PR.yAxis Starting row in pixel points. * '* PR.StepX Count from 1st dot of character, right/left # pixels. * '* Example: 8 = 8 right; -8 = 8 left (prints reverse). * '* PR.StepY Count from 1st dot of character, down/up # pixels. * '* Example: 1 = 1 down; -8 = 8 up (prints bottom - up). * '* PR.CharClr The color to make each character. * '* PR.BGclr Non-zero values determine the background color * '* for the string. Background is neutral when BGclr is * '* set to 0. Set BGclr = 256 for black background. * '* PR.Shadow True or false Boolian variable. * '* PR.ItalicSlant Set to zero or 7 or -7 for no slant. Positives * '* create a forward slant (right-handed). Negative * '* numbers for backward slant (left-handed). Maximum * '* slant is 1 or -1. An attractive italic is 2 or -2. * '* PR.Inverted True or false Boolean variable - turns characters * '* upside down. * '* PR.Backwards True or false Boolean variable - makes individual * '* characters of a string print backwards. * '* PR.Underline True of false Boolean variable. * '* PR.Elongate Zero for normal size character, set to 1 for bold * '* characters, set to 2 = double wide (truly fat). * '* PR.Stencil True or false Boolean variable - makes stencil * '* PR.Height An integer specified as 8, 14, 16, 28, or 32. This * '* the height, in pixels, of the character printed. * '* NOTE: CGA can only print 8. Use PR.Tall for 16. * '* NOTE: EGA cannot do 16 or 32. PrintROMtable will force * '* 16 to 14 and will force 32 to 28. EGA can access * '* 16 by using 8 with Tall. * '* PR.Tall Boolean variable that doubles pixel height effec- * '* providing pixels heights of 16, 28, 32, 56, and 64. * '* NOTE: CGA can only access 16. * '* NOTE: EGA cannot access 32 or 64. * '* PR.StrikeThrough True or false Boolean variable - a dash is * '* placed in the middle of each character. * '* PR.Condensed True or False Boolean variable - forces 8 scan line * '* character into four scan lines. Not very readable but * '* can be used for superscripts/subscripts or that fine, * '* legal (and unreadable) print in contracts agreements. * '* Also useful for printer preview modes. * '* PR.ForceAddress True or False Boolean variable to force ROM charac- * '* ter shape table address to &HFFA6. Set this to true * '* to force systems to this memory segment. * '* PR.ScreenMode Integer variable that equals the SCREEN mode used. * '* YOU MUST SUPPLY THIS VARIABLE if you intend to use * '* screen modes above CGA ("0" defaults to CGA font sizes). * '* At the top of your code, do something like: * '* PR.ScreenMode = 9 * '* SCREEN PR.ScreenMode * '* * '* OUT: 1) String of characters printed to the graphics screen. * '* 2) Location and slant of displayed string are pixel based. * '* 3) Strings can be printed normal, reverse, top to bottom and * '* upside down. * '* 4) Strings can have both foreground and background colors or * '* possess a neutral, non-destructive background. * '* 5) "CPI" can be adjusted along horizontal or vertical planes * '* with StepX and StepY variables (ie, StepX = 7 would be a * '* condenced font, StepX = 8 a normal font, etc). * '* 6) Characters can be printed with a shadow. * '* 7) Characters can be printed with "right-hand" or "left-hand" * '* italicized slant. * '* 8) Characters can be inverted for mirror images along the * '* verticle plane (like a reflection on a lake). * '* 9) Characters can be printed backwards for mirror images on * '* horizontal plane (horizontal mirror images should have * '* StepX set to a negative value for a "true mirror image"). * '* 10) Characters can be elongate by 2 or 4 times normal length. * '* 11) Characters can be displayed as "stencil" characters. * '* 12) Characters can be displayed with a strike through mark. * '* 13) Characters can be 8, 14, 16, 28, or 32 pixels high. * '* 14) Characters can be printed "Tall" effectively producing hights * '* of 16, 28, 32, 56, or 64 pixels high. * '* 15) Characters can be printed "Condensed" for use as super or sub * '* script type or printer preview modes. * '* 16) The high ASCII character set (128 through 254) can be altered * '* from 1 of four, pre-defined files (1024 bytes each). * '* * '**************************************************************************** ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±