home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / sphinx / regprocs.doc < prev    next >
Text File  |  1994-03-24  |  48KB  |  1,400 lines

  1. LIST OF BUILT IN REG AND MACRO FUNCTIONS OF SPHINX C--
  2. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  3. Last Update:  24 Mar 1994
  4.  
  5.  
  6. METHOD OF CALLING:  PROCEDURENAME(AX,BX,CX,DX,DI,SI);
  7.             or
  8.                 @ MACRONAME(AX,BX,CX,DX,DI,SI);
  9.  
  10. All parameters for REG procedures and MACROS are passed using registers.  The
  11. register used in each position is listed above.
  12.  
  13. SIZE refers to size of the MACRO, add one byte to the size for REG procedure.
  14. All registers that are modified are listed.
  15.  
  16.  
  17. CALLING FORMAT:  ABORT();
  18. DOS REQUIRED:  1.0 +
  19. SIZE:  2 bytes.
  20. FUNCTION:  aborts the program.
  21. RETURNS:  never
  22.  
  23.  
  24. CALLING FORMAT:  ADDPIXEL19( ,x,colour,y);
  25.           colour = colour of pixel desired (0..255)
  26.           x = x coordinate of pixel (0..319)
  27.           y = y coordinate of pixel (0..199)
  28. SIZE:  15 bytes.
  29. FUNCTION:  ADDs a pixel to the screen in mode 19 (0x13) graphics mode.
  30. RETURNS:  AX,DX,BX = Undefined.
  31.       ES = 0xA000 (VGA seg)
  32.  
  33.  
  34. CALLING FORMAT:  ALLOCBESTFIT();
  35. DOS REQUIRED:  3.0 +
  36. SIZE:  8 bytes.
  37. FUNCTION:  Changes the DOS memory allocation strategy to best fit.
  38. RETURNS:  AX,BX = Undefined.
  39.  
  40.  
  41. CALLING FORMAT:  ALLOCFIRSTFIT();
  42. DOS REQUIRED:  3.0 +
  43. SIZE:  8 bytes.
  44. FUNCTION:  Changes the DOS memory allocation strategy to first fit.
  45. RETURNS:  AX,BX = Undefined.
  46.  
  47.  
  48. CALLING FORMAT:  ALLOCLASTFIT();
  49. DOS REQUIRED:  3.0 +
  50. SIZE:  8 bytes.
  51. FUNCTION:  Changes the DOS memory allocation strategy to last fit.
  52. RETURNS:  AX,BX = Undefined.
  53.  
  54.  
  55. CALLING FORMAT:  ALLOCBESTFIT();
  56. DOS REQUIRED:  3.0 +
  57. SIZE:  8 bytes.
  58. FUNCTION:  Changes the DOS memory allocation strategy to best fit.
  59. RETURNS:  AX,BX = Undefined.
  60.  
  61.  
  62. CALLING FORMAT:  ALLOCSTRATEGY();
  63. DOS REQUIRED:  3.0 +
  64. SIZE:  8 bytes.
  65. FUNCTION:  Returns the current DOS memory allocation strategy.
  66. RETURNS:  BX = Undefined.
  67.           AX == 0 if First Fit
  68.              == 1 if Best Fit
  69.              >= 2 if Last Fit
  70.  
  71.  
  72. CALLING FORMAT:  ANDPIXEL19( ,x,colour,y);
  73.           colour = colour of pixel desired (0..255)
  74.           x = x coordinate of pixel (0..319)
  75.           y = y coordinate of pixel (0..199)
  76. SIZE:  15 bytes.
  77. FUNCTION:  ANDs a pixel to the screen in mode 19 (0x13) graphics mode.
  78. RETURNS:  AX,DX,BX = Undefined.
  79.       ES = 0xA000 (VGA seg)
  80.  
  81.  
  82. CALLING FORMAT:  BASIC();
  83. SIZE:  2 bytes.
  84. FUNCTION:  calls ROM BASIC by interrupt 0x18.
  85. RETURNS:  nothing.
  86.  
  87.  
  88. CALLING FORMAT:  BEEP();
  89. DEFINED IN:  WRITE.H--
  90. SIZE:  7 bytes.
  91. FUNCTION:  Emmits the normal IBM beep from the internal speaker using a BIOS
  92.            interrupt.
  93. RETURNS:  AX = undefined
  94.       BX = 0
  95.  
  96.  
  97. CALLING FORMAT:  BIOSEKEYCHECK();
  98. DEFINED IN:  KEYCODES.H--
  99. SIZE:  8 bytes.
  100. FUNCTION:  Checks if a key is available to be read from the enhanced keyboard
  101.        using a BIOS interrupt.  This function will only work with AT
  102.        enhanced keyboard BIOS or higher.  This functions will recognize
  103.        F11 and F12, BIOSKEYCHECK will not.
  104. RETURNS:  If key waiting:
  105.           AX = key code (AH = keyboard scancode, AL = ASCII character).
  106.       If no key waiting:
  107.           AX = 0
  108.  
  109.  
  110. CALLING FORMAT:  BIOSEREADKEY();
  111. DEFINED IN:  KEYCODES.H--
  112. SIZE:  4 bytes.
  113. FUNCTION:  Reads a key from the enhanced keyboard using a BIOS interrupt.
  114.        If no key is waiting to be read from the keyboard buffer, this
  115.        procedure will wait until a key is pressed.  This function will
  116.        only work with AT enhanced keyboard BIOS or higher.  This
  117.        functions will recognize F11 and F12.
  118. RETURNS:  AX = key code (AH = keyboard scancode, AL = ASCII character).
  119.  
  120.  
  121. CALLING FORMAT:  BIOSKEYCHECK();
  122. DEFINED IN:  KEYCODES.H--
  123. SIZE:  8 bytes.
  124. FUNCTION:  Checks if a key is available to be read from the enhanced keyboard
  125.        using a BIOS interrupt.  This functions will not recognize F11 and
  126.        F12.
  127. RETURNS:  If key waiting:
  128.           AX = key code (AH = keyboard scancode, AL = ASCII character).
  129.       If no key waiting:
  130.           AX = 0
  131.  
  132.  
  133. CALLING FORMAT:  BIOSPUSHKEY(keycode);
  134.           keycode = (AH = keyboard scancode, AL = ASCII character).
  135. DEFINED IN:  KEYCODES.H--
  136. SIZE:  4 bytes.
  137. FUNCTION:  Pushes a key code onto the keyboard buffer using a BIOS interrupt.
  138.        This function requires AT or higher BIOS.
  139. RETURNS:  AH = 5.
  140.  
  141.  
  142. CALLING FORMAT:  BIOSREADKEY();
  143. DEFINED IN:  KEYCODES.H--
  144. SIZE:  4 bytes.
  145. FUNCTION:  Reads a key from the keyboard using a BIOS interrupt.  If no key
  146.        is waiting to be read from the keyboard buffer, this procedure
  147.        will wait until a key is pressed.  This function will not
  148.        recognize F11 and F12.
  149. RETURNS:  AX = key code (AH = keyboard scancode, AL = ASCII character).
  150.  
  151.  
  152. CALLING FORMAT:  BIOSSHIFT();
  153. DEFINED IN:  KEYCODES.H--
  154. SIZE:  4 bytes.
  155. FUNCTION:  Reads the status of the shift like keys using a BIOS interrupt.
  156. RETURNS:  AH = 2
  157.       AL = bit 0 set if right shift key down
  158.            bit 1 set if left shift key down
  159.            bit 2 set if Ctrl key down
  160.            bit 3 set if Alt key down
  161.            bit 4 set if Scroll Lock On
  162.            bit 5 set if Num Lock On
  163.            bit 6 set if Caps Lock On
  164.            bit 7 set if Insert On
  165.  
  166.  
  167. CALLING FORMAT:  BLANKVGA();
  168. SIZE:  6 bytes.
  169. FUNCTION:  Blanks the screen on any VGA display in any mode.  This is done
  170.        by setting the DAC mask register to 0.  This operation can be
  171.        undone by calling UNBLANKVGA(), very handy for screen savers.
  172. RETURNS:  AL = 0
  173.       DX = 0x3C6
  174.  
  175.  
  176. CALLING FORMAT:  BYTETODIGITS(number,stringloc);
  177.           number = byte to be converted to digits string
  178.           stringloc = location of string
  179. SIZE:  31 bytes.
  180. FUNCTION:  converts a byte value to 3 decimal digits and a NULL terminating
  181.        character.
  182. RETURNS:  CX,DX = undefined
  183.       AX = number % 10
  184.  
  185.  
  186. CALLING FORMAT:  CLEARSCREEN0();
  187.          CLEARSCREEN1();
  188.          CLEARSCREEN2();
  189.          CLEARSCREEN3();
  190. SIZE:  15 bytes.
  191. FUNCTION:  clears video page 0 of the specifed screen mode.
  192. RETURNS:  CX = 0
  193.       ES = 0xB800
  194.       AX = 0x0700
  195.       DI = undefined
  196.  
  197.  
  198. CALLING FORMAT:  CLEARSCREEN4();
  199.          CLEARSCREEN5();
  200.          CLEARSCREEN6();
  201. SIZE:  15 bytes.
  202. FUNCTION:  clears the screen.
  203. RETURNS:  CX = 0
  204.       ES = 0xB800
  205.       AX = 0x0000 
  206.       DI = undefined
  207.  
  208.  
  209. CALLING FORMAT:  CLEARSCREEN7();
  210. SIZE:  15 bytes.
  211. FUNCTION:  Clears page 0 in video mode 7.
  212. RETURNS:  CX = 0
  213.       ES = 0xB000
  214.       AX = 0x0000 
  215.       DI = undefined
  216.  
  217.  
  218. CALLING FORMAT:  CLEARSCREEN17();
  219.          CLEARSCREEN19();
  220. SIZE:  15 bytes.
  221. FUNCTION:  clears the screen.
  222. EXAMPLE IN:  C--GDEMO.C--
  223. RETURNS:  CX = 0
  224.       ES = 0xA000
  225.       AX = 0x0000 
  226.       DI = undefined
  227.  
  228.  
  229. CALLING FORMAT:  CLEARWINDOW( ,attribute,upperleftloc,lowerrightloc);
  230.           attribute = attribute to be used for blanked area
  231.           upperleftloc = CH =Y coordinate + CL =X coordinate of the
  232.                  upper left corner of the window
  233.           lowerrightloc = DH =Y coordinate + DL =X coordinate of the
  234.                   upper left corner of the window
  235. SIZE:  7 bytes.
  236. FUNCTION:  clears a specified window with given attribute.
  237. RETURNS:  AX = 0x0600
  238.       BH = attribute
  239.  
  240.  
  241. CALLING FORMAT:  CLICKOFF();
  242. SIZE:  5 bytes.
  243. FUNCTION:  Turns off the PCjr interrupt key click (available only with PCjr
  244.        BIOS).
  245. RETURNS:  AX = 0x0400
  246.  
  247.  
  248. CALLING FORMAT:  CLICKON();
  249. SIZE:  5 bytes.
  250. FUNCTION:  Turns on the PCjr interrupt key click (available only with PCjr
  251.        BIOS).
  252. RETURNS:  AX = 0x0401
  253.  
  254.  
  255. CALLING FORMAT:  COLDBOOT();
  256. SIZE:  5 bytes.
  257. FUNCTION:  Cold boots the computer.
  258. RETURNS:  Never Ever
  259.  
  260.  
  261. CALLING FORMAT:  DELAY(time);
  262.           time = amount of time to delay in 1/15.3 second time units.
  263. SIZE:  8 bytes.
  264. FUNCTION:  Delays for a certain interval of time by a call to a BIOS
  265.            interrupt.  This function is only available with AT or higher
  266.            BIOS.
  267. RETURNS:  AX,CX,DX = undefined
  268.  
  269.  
  270. CALLING FORMAT:  DISABLE();
  271. SIZE:  1 byte.
  272. FUNCTION:  Executes a CLI instruction to disable external interrupts.
  273. RETURNS:  nothing
  274.  
  275.  
  276. CALLING FORMAT:  DOSGETDATE();
  277. DOS REQUIRED:  1.0 +
  278. SIZE:  4 bytes.
  279. FUNCTION:  Obtains the system day of the month, day of the week, month, and 
  280.            year.
  281. RETURNS:  AH = 0x2A
  282.           CX = year (1980 to 2099)
  283.           DH = month (1 to 12)
  284.           DL = day (1 to 31)
  285.           Under DOS 1.1 or later:
  286.           AL = day of week (0 = Sunday, 1 = Monday, ...)  
  287.  
  288.  
  289. CALLING FORMAT:  DOSGETTIME();
  290. DOS REQUIRED:  1.0 +
  291. SIZE:  4 bytes.
  292. FUNCTION:  Obtains the time of day from the system real-time clock driver,
  293.            converted to hours, minutes, seconds, and hundredths of seconds.
  294. RETURNS:  AH = 0x2C
  295.           CH = hours (0 to 23)
  296.           CL = minutes (0 to 59)
  297.           DH = seconds (0 to 59)
  298.           DL = hundredths of seconds (0 to 99)
  299.  
  300.  
  301. CALLING FORMAT:  DOSINPORT();
  302. DOS REQUIRED:  1.0 +
  303. SIZE:  4 bytes.
  304. FUNCTION:  Reads a character from the serial port.
  305. RETURNS:  AH = 3
  306.           AL = 8-bit data
  307.  
  308.  
  309. CALLING FORMAT:  DOSOUTPORT( , , ,databyte);
  310.                   databyte = 8-bit data value to be sent.
  311. DOS REQUIRED:  1.0 +
  312. SIZE:  4 bytes.
  313. FUNCTION:  Outputs a character to the serial port.
  314. RETURNS:  AH = 4
  315.  
  316.  
  317. CALLING FORMAT:  DOSWRITESTR(stringloc);
  318.           stringloc = memory location of '$' terminating string
  319. DOS REQUIRED:  1.0 +
  320. SIZE:  6 bytes.
  321. FUNCTION:  Prints a $ terminating string to the screen using DOS interrupt.
  322. RETURNS:  AH = 9
  323.  
  324.  
  325. CALLING FORMAT:  EATKEY();
  326. SIZE:  12 bytes.
  327. FUNCTION:  Signals the keyboard controller that the current scan code has
  328.            been recieved.
  329. RETURNS:  AX = undefined
  330.  
  331.  
  332. CALLING FORMAT:  ENABLE();
  333. SIZE:  1 byte.
  334. FUNCTION:  Executes a STI instruction to enable external interrupts.
  335. RETURNS:  nothing
  336.  
  337.  
  338. CALLING FORMAT:  EOI();
  339. SIZE:  4 byte.
  340. FUNCTION:  Sends the End Of Interrupt signal to the external interrupt
  341.            controller.  This is done by sending the value 0x20 to port 0x20.
  342. RETURNS:  AL = 0x20
  343.  
  344.  
  345. CALLING FORMAT:  EXIT(code);
  346.           code = return code of program 0 to 255
  347. DOS REQUIRED:  2.0 +
  348. SIZE:  4 bytes.
  349. FUNCTION:  Terminates program with return code.
  350. RETURNS:  never
  351.  
  352.  
  353. CALLING FORMAT:  FCLOSE( ,handle);
  354.           handle = file handle
  355. DOS REQUIRED:  2.0 +
  356. SIZE:  8 bytes.
  357. FUNCTION:  Closes a file of the given handle.
  358. RETURNS:  Success:  AX = 0
  359.       Failed:  AX = error code
  360.  
  361.  
  362. CALLING FORMAT:  FCREATE( , ,attribute,filename);
  363.           attribute = file attribute (bits may be combined but are
  364.                               usually all zero):
  365.                              bit 0:  read-only
  366.                              bit 1:  hidden
  367.                              bit 2:  system
  368.                              bit 3:  volume label
  369.                              bit 4:  must be 0
  370.                              bit 5:  archive
  371.                              bit 6 to 15:  must be 0
  372.           filename = pointer to null-terminating string
  373. DOS REQUIRED:  2.0 +
  374. SIZE:  8 bytes.
  375. FUNCTION:  Creates a file of given filename and attribute and returns a file
  376.        handle.
  377. RETURNS:  Success:  AX = file handle
  378.       Failed:  AX = 0
  379.  
  380.  
  381. CALLING FORMAT:  FDELETE( , , ,filename);
  382.           filename = pointer to null-terminating string
  383. DOS REQUIRED:  2.0 +
  384. SIZE:  8 bytes.
  385. FUNCTION:  Deletes a file of given filename.
  386. RETURNS:  Success:  AX = 0
  387.       Failed:  AX = error code
  388.  
  389.  
  390. CALLING FORMAT:  FHANDLE( ,handle);
  391.           handle = handle to be copied
  392. DOS REQUIRED:  2.0 +
  393. SIZE:  8 bytes.
  394. FUNCTION:  Copies file handle for use after handle has been closed.
  395. RETURNS:  Success:  AX = new handle
  396.       Failed:  AX = 0
  397.  
  398.  
  399. CALLING FORMAT:  FINDFIRSTFILE( , ,attribute,pathname);
  400.                   attribute = search attribute:
  401.                               bit 0 = read only
  402.                               bit 1 = hidden
  403.                               bit 2 = system
  404.                               bit 3 = volume label
  405.                               bit 4 = directory
  406.                               bit 5 = archive
  407.                               bits 6 to 15 = reserved (0)
  408.           pathname = pointer to null-terminating pathname string
  409. DOS REQUIRED:  2.0 +
  410. SIZE:  8 bytes.
  411. FUNCTION:  Searches the default or specified directory and drive for the
  412.            first matching file.  Wild card characters may be used.
  413. EXAMPLE IN:  REFRESH.C-- and TINYDRAW.C--
  414. RETURNS:  File Not Found:  AX = error code
  415.       File Found:  AX = 0   And the current DTA will contain the
  416.                   following after the search:
  417.                byte offset:
  418.                0x00 to 0x14 = reserved (0)
  419.                0x15         = attribute of matched file or directory
  420.                0x16 to 0x17 = file time:
  421.                               bits 0x0 to 0x4 = 2 second increments (0-29)
  422.                               bits 0x5 to 0xA = minutes (0-59)
  423.                               bits 0xB to 0xF = hours (0-23)
  424.                0x18 to 0x19 = file date:
  425.                               bits 0x0 to 0x4 = day (1-31)
  426.                               bits 0x5 to 0x8 = month (1-12)
  427.                               bits 0x9 to 0xF = year (relative to 1980)
  428.                0x1A to 0x1D = file size
  429.                0x1E to 0x2A = ASCII filename and extension
  430. NOTE:  The initial address of the DTA (Disk Transfer Area) in COM files
  431.        is at the offset 0x80, which is the same address as the location of
  432.        the command line parameters, thus if the DTA is not moved, the
  433.        command line parameters will be lost.
  434.  
  435.  
  436. CALLING FORMAT:  FINDNEXTFILE();
  437. DOS REQUIRED:  2.0 +
  438. SIZE:  8 bytes.
  439. FUNCTION:  Searches the default or specified directory and drive for the
  440.            next matching file.  FINDFIRSTFILE must be called before using
  441.            this function.
  442. EXAMPLE IN:  TINYDRAW.C--
  443. RETURNS:  File Not Found:  AX = error code
  444.       File Found:  AX = 0   And the current DTA will contain the
  445.                   same information as for FINDFIRSTFILE, except that it will
  446.                   be the next found file.
  447.  
  448.  
  449. CALLING FORMAT:  FOPEN(mode, , ,filename);
  450.           mode = 0 for read access
  451.              1 for write access
  452.              2 for read/write access
  453.           filename = offset address of filename string
  454. DOS REQUIRED:  2.0 +
  455. SIZE:  8 bytes.
  456. FUNCTION:  Opens a file of given filename and attribute and returns a file
  457.        handle.  A FILE THAT DOES NOT EXIST CANNOT BE OPENED!  Use 
  458.            FCREATE if the file needs to be created.
  459. RETURNS:  Success:  AX = file handle
  460.       Failed:  AX = 0
  461.  
  462.  
  463. CALLING FORMAT:  FREAD( ,handle,count,buffer);
  464.           handle = file handle
  465.           count = # of bytes to read
  466.           buffer = pointer to read buffer
  467. DOS REQUIRED:  2.0 +
  468. SIZE:  8 bytes.
  469. FUNCTION:  Reads a number of bytes specified in count from handle into
  470.        buffer.
  471. RETURNS:  AX = actual # bytes read
  472.  
  473.  
  474. CALLING FORMAT:  FWRITE( ,handle,count,buffer);
  475.           handle = file handle
  476.           count = # of bytes to write
  477.           buffer = pointer to write buffer
  478. DOS REQUIRED:  2.0 +
  479. SIZE:  8 bytes.
  480. FUNCTION:  Writes a number of bytes specified in count from buffer into
  481.        handle.
  482. RETURNS:  AX = actual # bytes written
  483.  
  484.  
  485. CALLING FORMAT:  GETBORDERCOLOR();
  486. SIZE:  7 bytes.
  487. FUNCTION:  Calls a BIOS interrupt to get the colour of the border.  This
  488.        function will only work on VGA or higher graphics cards.
  489. RETURNS:  BH = border colour
  490.       AH = undefined
  491.       AL = border colour
  492.  
  493.  
  494. CALLING FORMAT:  GETCH();
  495. DOS REQUIRED:  1.0 +
  496. SIZE:  4 bytes.
  497. FUNCTION:  calls DOS interrupt to read a key from the keyboard.
  498. RETURNS:  AH = 8
  499.       AL = ASCII value of key read
  500.  
  501.  
  502. CALLING FORMAT:  GETCHE();
  503. DOS REQUIRED:  1.0 +
  504. SIZE:  4 bytes.
  505. FUNCTION:  calls DOS interrupt to read a key from the keyboard and echo it to
  506.        the screen.
  507. RETURNS:  AH = 1
  508.       AL = ASCII value of key read
  509.  
  510.  
  511. CALLING FORMAT:  GETCONFIG();
  512. SIZE:  2 bytes.
  513. FUNCTION:  Calls BIOS interrupt 0x11 to get system configuration.
  514. RETURNS:  AX = bit 0 = 1 if floppy drive(s) installed
  515.            bit 1 = 1 if math coprocessor installed
  516.              bit 2 = 1 if pointing device installed (PS/2)
  517.            bit 3 = don't worry about it
  518.            bit 4 = don't worry about it
  519.            bits 4,5 = inital video mode
  520.                 0,0  reserved
  521.                 0,1  40x25 colour text
  522.                 1,0  80x25 colour text
  523.                 1,1  80x25 monochrome text
  524.            bits 6,7 = number of floppy disk drives
  525.             0,0  1 drive
  526.             0,1  2 drives
  527.             1,0  3 drives
  528.             1,1  4 drives
  529.            bit 8 = who knows what
  530.            bits 9,10,11 = number of RS-232 ports installed
  531.            bit 12 = 1 if game adapter installed
  532.            bit 13 = don't worry about it
  533.            bits 14,15 = number of printers installed
  534.  
  535.  
  536. CALLING FORMAT:  GETCPU();
  537. SIZE:  83 bytes.
  538. FUNCTION:  Determines whether the system processor is an 8086, 80286, 80386,
  539.            or 80486.
  540. RETURNS:  AH,BX,CX,DX = undefined
  541.           AL = 0 if 8086 or 8088
  542.              = 2 if 80286
  543.              = 3 if 80386
  544.              = 4 if 80486
  545.  
  546.  
  547. CALLING FORMAT:  GETDOSVERSION();
  548. DOS REQUIRED:  1.0 +
  549. SIZE:  5 bytes.
  550. FUNCTION:  calls DOS interrupt to get the version number of the host MS-DOS
  551.        operating system.
  552. RETURNS:  if DOS version 1
  553.           AX = 0x3000
  554.       if DOS version 2.0 +
  555.              AL = major version number (example 2.10 would be AL = 2)
  556.           AH = minor version number (example 4.10 would be AH = 10)
  557.  
  558.  
  559. CALLING FORMAT:  GETINTVECT(addressbuf,intnum);
  560.           addressbuf = address of 2 word buffer for interrupt
  561.              address.  Low word of interrupt address will
  562.              be stored at offset 0 and high word at offset
  563.              2 bytes.
  564.           intnum = number of the interrupt vector to get.
  565. SIZE:  22 bytes.
  566. FUNCTION:  Copies the address of the interrupt vector into addressbuf.
  567. RETURNS:  AX,BX,CX,DX = undefined
  568.       ES = 0x0000
  569.  
  570.  
  571. CALLING FORMAT:  GETMEM(blocksize);
  572.                   blocksize = size of desired block in 16 byte paragraphs.  
  573. DOS REQUIRED:  2.0 +
  574. SIZE:  10 bytes.
  575. FUNCTION:  Attempts to allcate a memory block of the specified size.
  576.            Returns the address of the allocated memory block.  All
  577.            allocated memory blocks are automatically deallocated when the
  578.            program terminates.
  579. RETURNS:  AX = segment address of allocated memory block, if the value is
  580.                0 then the allocation failed.
  581.           BX = undefined.
  582.  
  583.  
  584. CALLING FORMAT:  GETMEMSIZE();
  585. SIZE:  2 bytes.
  586. FUNCTION:  returns the amount of conventional memory available for MS-DOS
  587.        and application programs, by interrupt 0x12.
  588. RETURNS:  AX = memory size in KiloBytes.
  589.  
  590.  
  591. CALLING FORMAT:  GETPIXEL( ,page,x,y);
  592.           page = graphics page * 256 (usually 0)
  593.           x = x coordinate of pixel
  594.           y = y coordinate of pixel
  595. SIZE:  4 bytes.
  596. FUNCTION:  Gets the colour of a pixel on screen when in a graphics mode by
  597.        BIOS interrupt.
  598. RETURNS:  AH = 0x0D
  599.       AL = pixel colour
  600.  
  601.  
  602. CALLING FORMAT:  GETPIXEL19( ,x, ,y);
  603.           x = x coordinate of pixel (0..319)
  604.           y = y coordinate of pixel (0..199)
  605. SIZE:  15 bytes.
  606. FUNCTION:  Gets a pixel from the screen in mode 19 (0x13) graphics mode.
  607. RETURNS:  DX,BX = Undefined.
  608.       ES = 0xA000 (VGA seg)
  609.       AL = colour of pixel specified
  610.  
  611.  
  612. CALLING FORMAT:  GETRETURNCODE();
  613. DOS REQUIRED:  2.0 +
  614. SIZE:  4 bytes.
  615. FUNCTION:  calls DOS interrupt to get the return code from a child process.
  616. RETURNS: AH = exit type:
  617.         0x00 if normal termination
  618.         0x01 if termination by critical-error handler
  619.         0x02 if termination by int 0x21 function 0x31 or int 0x27
  620.      AL = return code
  621.  
  622.  
  623. CALLING FORMAT:  GETTEXTPOSITION( ,page);
  624.           page = desired display page * 256
  625. SIZE:  4 bytes.
  626. FUNCTION:  gets the cursor location of a specified screen page by BIOS
  627.        interrupt.
  628. RETURNS:  AH = 3
  629.       CH = starting line for cursor
  630.       CL = ending line for cursor
  631.       DH = row (y coordinate)
  632.       DL = column (x coordinate
  633.  
  634.  
  635. CALLING FORMAT:  GETVERIFYFLAG();
  636. DOS REQUIRED:  2.0 +
  637. SIZE:  4 bytes.
  638. FUNCTION:  calls DOS interrupt to get the current value of the system verify
  639.        (read-after-write) flag.
  640. RETURNS: AH = 84
  641.      AL = 0x00 if verify flag on or
  642.           0x01 if verify flay off
  643.  
  644.  
  645. CALLING FORMAT:  GETVGAPALETTE( ,first,numbertoget,buffer);
  646.           first = first colour register to get.
  647.           numbertoget = number of palette values to get.
  648.           buffer = offset address of buffer.
  649. SIZE:  9 bytes.
  650. FUNCTION:  Calls a BIOS interrupt to get the RGB palette values.  The buffer
  651.        must be 3 times the number of colour values long in bytes.  This
  652.        function will only work on VGA or higher graphics cards.
  653. RETURNS:  nothing.
  654.  
  655.  
  656. CALLING FORMAT:  GETVIDEOMODE();
  657. DEFINED IN:  VIDEO.H--
  658. SIZE:  4 bytes.
  659. FUNCTION:  Gets the value of the current video mode from a BIOS interrupt.
  660. RETURNS:  AH = # of character column in current mode
  661.       AL = video mode (see SETVIDEOMODE();)
  662.       BH = active display page (usually 0)
  663.  
  664.  
  665. CALLING FORMAT:  GOTOXY(xloc,yloc);
  666.           xloc = X coordinate for cursor starting with 0.
  667.           yloc = Y coordinate for cursor starting with 0.
  668. DEFINED IN:  WRITE.H--
  669. SIZE:  9 bytes.
  670. FUNCTION:  Sets the cursor location on video page 0 to the desired location,
  671.            using a BIOS interrupt.
  672. RETURNS:  AX,BX,DX = undefined.
  673.  
  674.  
  675. CALLING FORMAT:  GWRITE(character,attribute);
  676.             character = ASCII character code to write.
  677.           attribute = attribute of text.
  678. DEFINED IN:  GWRITE.H--
  679. SIZE:  6 bytes.
  680. FUNCTION:  Writes a single character to video page 0 in the specifed colour
  681.            using a BIOS interrupt.
  682. RETURNS:  AX,BX = undefined
  683.  
  684.  
  685. CALLING FORMAT:  GWRITEDIGITS(wordvalue,attribute);
  686.           wordvalue = number to be printed.
  687.           attribute = attribute of text.
  688. DEFINED IN:  GWRITE.H--
  689. SIZE:  69 bytes.
  690. FUNCTION:  Writes the specified number as a sequence of 5 digits to the
  691.            screen on video page 0 of a graphics video mode in the specified
  692.            colour using a BIOS interrupt.
  693. RETURNS:  AX,BX,CX,DX = Undefined.
  694.  
  695.  
  696. CALLING FORMAT:  GWRITEINT(intvalue,attribute);
  697.           intvalue = number to be printed.
  698.           attribute = attribute of text.
  699. DEFINED IN:  GWRITE.H--
  700. SIZE:  106 bytes.
  701. FUNCTION:  Writes the specified number to the screen on video page 0 of a
  702.            graphics video mode in the specified colour using a BIOS
  703.            interrupt.
  704. RETURNS:  AX,BX,CX,DX = Undefined.
  705.  
  706.  
  707. CALLING FORMAT:  GWRITESTRING(stringloc,attribute);
  708.           stringloc = address of 0 terminating string to be printed.
  709.           attribute = attribute of text.
  710. DEFINED IN:  GWRITE.H--
  711. SIZE:  17 bytes.
  712. FUNCTION:  Writes the specified string to the screen on video page 0 of a
  713.            graphics video mode in the specified colour using a BIOS
  714.            interrupt.
  715. RETURNS:  AX,BX = Undefined.
  716.  
  717.  
  718. CALLING FORMAT:  GWRITEWORD(wordvalue,attribute);
  719.           wordvalue = number to be printed.
  720.           attribute = attribute of text.
  721. DEFINED IN:  GWRITE.H--
  722. SIZE:  90 bytes.
  723. FUNCTION:  Writes the specified number to the screen on video page 0 of a
  724.            graphics video mode in the specified colour using a BIOS
  725.            interrupt.
  726. RETURNS:  AX,BX,CX,DX = Undefined.
  727.  
  728.  
  729. CALLING FORMAT:  HALT();
  730. DOS REQUIRED:  1.0 +
  731. SIZE:  4 bytes.
  732. FUNCTION:  quits the program by DOS interrupt 0x21 function 0x00.
  733. RETURNS:  never
  734.  
  735.  
  736. CALLING FORMAT:  INPORTB( , , ,port);
  737.           port = port to read byte value from (0 to 65535)
  738. SIZE:  1 byte.
  739. FUNCTION:  reads a byte from a port.
  740. RETURNS:  AL = byte read
  741.  
  742.  
  743. CALLING FORMAT:  INPORTW( , , ,port);
  744.           port = port to read word value from (0 to 65535)
  745. SIZE:  1 byte.
  746. FUNCTION:  reads a word from a port.
  747. RETURNS:  AX = word read
  748.  
  749.  
  750. CALLING FORMAT:  KBHIT();
  751. SIZE:  14 bytes.
  752. FUNCTION:  checks to see if a key is waiting to be read from the keyboard
  753.        buffer.
  754. RETURNS:  AX == 0x0000 if no key is waiting or
  755.       AX != 0x0000 if at least one key has been pressed
  756.  
  757.  
  758. CALLING FORMAT:  KEEP( , , ,offset);
  759.           offset = offest of the last byte +1 of program to stay
  760.                resident
  761. DOS REQUIRED:  1.0 +
  762. SIZE:  2 bytes.
  763. FUNCTION:  calls DOS interrupt 0x27 to terminate the program and keep the
  764.        amount specified of it resident in memory.
  765. RETURNS:  nothing
  766.  
  767.  
  768. CALLING FORMAT:  KEYCHECK();
  769. DOS REQUIRED: 1.0 +
  770. SIZE:  4 bytes.
  771. FUNCTION:  calls a dos interrupt to check if a key is waiting to be read from
  772.        the keyboard.
  773. RETURNS:  AH = undefined
  774.       AL = 0x00 if no character is available or
  775.                0xFF if at least one character is available
  776.  
  777.  
  778. CALLING FORMAT:  LOAD8X8FONT();
  779. SIZE:  7 bytes.
  780. FUNCTION:  Loads the 8x8 text font.  This should only be called after a video
  781.        mode change into a text mode.  On the EGA this function will
  782.        change the number of text rows from 25 to 43.  On the VGA and
  783.        higher this function will change the number text rows from 25 to
  784.        50.  This function will have no effect on video cards below EGA.
  785. RETURNS:  AX,BX = undefined
  786.  
  787.  
  788. CALLING FORMAT:  LOAD8X14FONT();
  789. SIZE:  7 bytes.
  790. FUNCTION:  Loads the 8x14 text font.  This should only be called after a
  791.        video mode change into a text mode.  This function will have no
  792.        effect on video cards below EGA.
  793. RETURNS:  AX,BX = undefined
  794.  
  795.  
  796. CALLING FORMAT:  LOAD8X16FONT();
  797. SIZE:  7 bytes.
  798. FUNCTION:  Loads the 8x16 text font.  This should only be called after a
  799.        video mode change into a text mode.  This function will have no
  800.        effect on video cards below the MCGA.
  801. RETURNS:  AX,BX = undefined
  802.  
  803.  
  804. CALLING FORMAT:  MAXKEYRATE();
  805. SIZE:  7 bytes.
  806. FUNCTION:  Sets the keyboard repeat rate to maximum.  This function is only
  807.        available with AT or higher keyboard BIOS.
  808. RETURNS:  AX = undefined
  809.       BX = 0
  810.  
  811.  
  812. CALLING FORMAT:  NOSOUND();
  813. DEFINED IN:  SOUND.H--
  814. SIZE:  6 bytes.
  815. FUNCTION:  Turns off the internal IBM speaker.
  816. RETURNS:  AL = undefined
  817.  
  818.  
  819. CALLING FORMAT:  ORPIXEL19( ,x,colour,y);
  820.           colour = colour of pixel desired ( 0..255)
  821.           x = x coordinate of pixel (0..319)
  822.           y = y coordinate of pixel (0..199)
  823. SIZE:  15 bytes.
  824. FUNCTION:  ORs a pixel to the screen in mode 19 (0x13) graphics mode.
  825. RETURNS:  AX,DX,BX = Undefined.
  826.       ES = 0xA000 (VGA seg)
  827.  
  828.  
  829. CALLING FORMAT:  OUTPORTB(value, , ,port);
  830.           value = byte value to write out
  831.           port = port to write value to (0 to 65535)
  832. SIZE:  1 byte.
  833. FUNCTION:  Writes a byte to a port.
  834. RETURNS:  nothing
  835.  
  836.  
  837. CALLING FORMAT:  OUTPORTW(value, , ,port);
  838.           value = word value to write out
  839.           port = port to write value to (0 to 65535)
  840. SIZE:  1 byte.
  841. FUNCTION:  Writes a word to a port.
  842. RETURNS:  nothing
  843.  
  844.  
  845. CALLING FORMAT:  PASSTR( , , , ,cstringoffset,passtringoffset);
  846.           cstringoffset = offset address of C type string.
  847.           passtringoffset = offset address of Pascal type string.
  848. SIZE:  23 bytes.
  849. FUNCTION:  Copies a Pascal type string to a C type string.  A Pascal type 
  850.            string is a string whos first byte specifies the length of the
  851.            string.  A C type string is a string which is terminated with
  852.            the byte value zero.
  853. RETURN:  AX = length of the new string, not including the 0 terminator
  854.          CX = 0
  855.          ES = DS
  856.          DI,SI = undefined
  857.  
  858.  
  859. CALLING FORMAT:  PUTBRICK19( , ,xlen,ylen,screenloc,bufloc);
  860.           xlen = the width of the block in bytes
  861.           ylen = the length of the block in pixels
  862.           screenloc = start memory location offset to write to
  863.           bufloc = location of the buffer
  864. SIZE:  bytes.
  865. FUNCTION:  Puts the image of bytes from the buffer on to the current VGA
  866.        graphics screen from at the location specified.
  867. RETURNS:  ES = DS
  868.       SI = end of buffer
  869.       AX,DI = undefined
  870.       CX,DX = 0
  871.       BX = xlen
  872.  
  873.  
  874. CALLING FORMAT:  PUTPIXEL(colour,page,x,y);
  875.           colour = colour of pixel desired
  876.           page = graphics page * 256 (usually 0)
  877.           x = x coordinate of pixel
  878.           y = y coordinate of pixel
  879. SIZE:  4 bytes.
  880. FUNCTION:  Writes a pixel to the screen when in a graphics mode.
  881. RETURNS:  AH = 0x0C
  882.  
  883.  
  884. CALLING FORMAT:  PUTPIXEL19( ,x,colour,y);
  885.           colour = colour of pixel desired ( 0..255)
  886.           x = x coordinate of pixel (0..319)
  887.           y = y coordinate of pixel (0..199)
  888. SIZE:  15 bytes.
  889. FUNCTION:  Puts a pixel to the screen in mode 19 (0x13) graphics mode.
  890. RETURNS:  AX,DX,BX = Undefined.
  891.       ES = 0xA000 (VGA seg)
  892.  
  893.  
  894. CALLING FORMAT:  REBOOT();
  895. SIZE:  2 bytes.
  896. FUNCTION:  Calls reboot interrupt 0x19 (just an INT 0x19 instruction).
  897. RETURNS:  should not return.
  898.  
  899.  
  900. CALLING FORMAT:  READSTRING( , , ,string);
  901.           string = location of string to be read into,
  902.                first byte contains maximum length,
  903.                second byte will contain number of characters
  904.                            read, remaining bytes will contain the string
  905.                            read including the ending carrage return.
  906. DOS REQUIRED:  1.0 +
  907. SIZE:  4 bytes.
  908. FUNCTION:  reads a string from the keyboard by DOS interrupt.
  909. RETURNS:  AH = 10
  910.  
  911.  
  912. CALLING FORMAT:  SETATIMASK( ,readwritemask);
  913.           readwritemask = memory page to select.
  914. SIZE:  36 bytes.
  915. FUNCTION:  Sets the current video memory page for memory read/write
  916.            operations for the ATI VGA Wonder card for its enhanced graphics
  917.            modes.  This function is only available on ATI VGA Wonder or
  918.            higher ATI graphics cards.
  919. RETURNS:  AX,BX,DX = undefined
  920.  
  921.  
  922. CALLING FORMAT:  SETBORDERCOLOR(color);
  923.           color = color desired for border.
  924. SIZE:  7 bytes.
  925. FUNCTION:  Sets the border to the color specified.  This function is only 
  926.            available with PCjr, EGA, VGA or higher graphics cards.
  927. RETURNS:  AX,BX = undefined
  928.  
  929.  
  930. CALLING FORMAT:  SETCURRENTDIR(stringpath);
  931.           stringpath = offset address of pathname string.
  932. DOS REQUIRED:  2.0 +
  933. SIZE:  10 bytes.
  934. FUNCTION:  Sets the current directory for the drive specified in the path 
  935.            string to the directory in the path string.
  936. RETURNS:  AX == 0 if successful
  937.           AX != 0 if unsuccessful
  938.           DX = stringpath
  939.  
  940.  
  941. CALLING FORMAT:  SETCURRENTDRIVE(drivecode);
  942.           drivecode = drive number, 0 = A, 1 = B, etc.
  943. DOS REQUIRED:  1.0 +
  944. SIZE:  12 bytes.
  945. FUNCTION:  Sets the current drive to the value specified in drivecode.
  946. RETURNS:  AX == 0 if successful
  947.           AX != 0 if unsuccessful
  948.           DL = drivecode
  949.  
  950.  
  951. CALLING FORMAT:  SETDISPLAYPAGE(page);
  952. SIZE:  4 bytes.
  953. FUNCTION:  Sets the current display page for the current video mode.  
  954.            Total number of video pages for each video mode depends on the
  955.            installed graphics card.  Below is a list of available video pages
  956.            for each video mode and video card:
  957.              mode: 0x0,0x1     - 0 to 7 for CGA, EGA, MCGA, VGA, and XGA
  958.                    0x2,0x3     - 0 to 3 for CGA
  959.                                - 0 to 7 for EGA, MCGA, VGA, and XGA
  960.                    0x7         - 0 to 7 for EGA, VGA, and XGA
  961.                    0xD         - 0 to 7 for EGA, VGA, and XGA
  962.                    0xE         - 0 to 3 for EGA, VGA, and XGA
  963.                    0xF         - 0 to 1 for EGA, VGA, and XGA
  964.                    0x10        - 0 to 1 for EGA, VGA, and XGA
  965. RETURNS:  AX = undefined
  966.  
  967.  
  968. CALLING FORMAT:  SETINTVECT( ,intnum,segmentvalue,offsetvalue);
  969.           intnum = number of the interrupt vector to get.
  970.           segmentvalue = segment value for the new interrupt
  971.                        vector.
  972.           offsetvalue = offset value for the new interrupt
  973.                     vector.
  974. SIZE:  17 bytes.
  975. FUNCTION:  Sets the specified interrupt vector with the address given.
  976. RETURNS:  AX,BX = undefined
  977.       CX = segmentvalue
  978.       DX = offsetvalue
  979.       ES = 0x0000
  980.  
  981.  
  982. CALLING FORMAT:  SETSCREENOFFSET( ,offset);
  983.           offset = value to set offset of the screen
  984. SIZE:  20 bytes.
  985. FUNCTION:  Sets the offset address of the video RAM for display.  This
  986.        function will only work on CGA and higher colour graphics
  987.        cards.
  988. RETURNS:  AL,DX = undefined
  989.  
  990.  
  991. CALLING FORMAT:  SETSCREENOFFSETM( ,offset);
  992.           offset = value to set offset of the screen
  993. SIZE:  20 bytes.
  994. FUNCTION:  Sets the offset address of the video RAM for display.  This
  995.        function will only work on monocrome graphics cards.
  996. RETURNS:  AL,DX = undefined
  997.  
  998.  
  999. CALLING FORMAT:  SETTEXTPOSITION( ,page, ,loc);
  1000.           page = desired display page * 256
  1001.           loc = row * 256 + column
  1002. SIZE:  4 bytes.
  1003. FUNCTION:  Sets the cursor to a location specified on the screen.
  1004. RETURNS:  AH = 2
  1005.  
  1006.  
  1007. CALLING FORMAT:  SETTICKINTERVAL( ,intervalsize);
  1008.           intervalsize = value sent to timer 0 (see below).
  1009. SIZE:  14 bytes.
  1010. FUNCTION:  Sets the interval time between pulses from PIT, which causes
  1011.        calls to INT 8h.  The initial value of the interval is 0xFFFF
  1012.        for 18.200 times a second.  A value of 0x7FFF is about 36.4
  1013.        times a second.  Changing this value has many side effects,
  1014.        speeding up of the system clock (but not the CMOS clock), faster
  1015.        shut off time of floppy drive motors and mutation of speed ratings
  1016.        from CPU testing programs.  Many things depend on the clock
  1017.        interrupt and I remove myself from any fault for system damage
  1018.        by changing this value, even though I feel that the worst that
  1019.        can happen is a system crash, but hard drives seem to crash when
  1020.        they want to...
  1021. RETURNS:  AL = undefined.
  1022.  
  1023.  
  1024. CALLING FORMAT:  SETVGADAC(first, ,numbertoset, , ,buf);
  1025.           first = first palette value to set (0 to 255).
  1026.           numbertoset = number of palette values to set times 3.
  1027.           buf = offset address of buffer to read from.
  1028. SIZE:  9 bytes.
  1029. FUNCTION:  Set the DAC register values on the VGA card, resulting in palette
  1030.        selection.  This will only work on a 80286 or higher processor
  1031.        with VGA or higher graphics card.
  1032. RETURNS:  AX,DX,SI = undefined.
  1033. NOTE:  This procedure executes 286 operations, 80286 or greater processor
  1034.        required to execute.
  1035.  
  1036.  
  1037. CALLING FORMAT:  SETVGAPALETTE( ,first,numbertoset,buffer);
  1038.           first = first colour register to set.
  1039.           numbertoset = number of palette values to set.
  1040.           buffer = offset address of buffer.
  1041. SIZE:  9 bytes.
  1042. FUNCTION:  Calls a BIOS interrupt to set the RGB palette values.  The buffer
  1043.        must be 3 times the number of colour values long in bytes.  This
  1044.        function will only work on VGA or higher graphics cards.
  1045. RETURNS:  nothing.
  1046.  
  1047.  
  1048. CALLING FORMAT:  SETVIDEOMODE(mode);
  1049.       mode = graphics mode value (see below):
  1050.            mode  X by Y  colours  type      graphics-card-required
  1051.          0   40x25      16    text       CGA,PCjr,EGA,MCGA,VGA
  1052.          1   40x25      16    text       CGA,PCjr,EGA,MCGA,VGA
  1053.          2   80x25      16    text       CGA,PCjr,EGA,MCGA,VGA
  1054.          3   80x25      16    text       CGA,PCjr,EGA,MCGA,VGA
  1055.          4   320x200     4  graphics     CGA,PCjr,EGA,MCGA,VGA
  1056.          5   320x200     4  graphics     CGA,PCjr,EGA,MCGA,VGA
  1057.          6   640x200     2  graphics     CGA,PCjr,EGA,MCGA,VGA
  1058.          7   80x25       2    text   MDA,         EGA,     VGA
  1059.          8   160x200    16  graphics         PCjr,
  1060.          9   320x200    16  graphics         PCjr,
  1061.         10   640x200     4  graphics         PCjr,
  1062.         13   320x200    16  graphics              EGA,     VGA
  1063.         14   640x200    16  graphics              EGA,     VGA
  1064.         15   640x350     2  graphics              EGA,     VGA
  1065.         16   640x350    16  graphics              EGA,     VGA
  1066.         17   640x480     2  graphics                  MCGA,VGA
  1067.         18   640x480    16  graphics                       VGA
  1068.         19   320x200   256  graphics                  MCGA,VGA
  1069.         20   640x400    16  graphics Tecmar VGA/AD ONLY
  1070.         22   800x600    16  graphics Tecmar VGA/AD ONLY
  1071.         23   132x25     16    text   Tecmar VGA/AD ONLY
  1072.         24   1024x768   16  graphics Tecmar VGA/AD ONLY
  1073.         24   132x44      2    text   Tseng Labs EVA ONLY
  1074.         25   132x25      2    text   Tseng Labs EVA ONLY
  1075.         26   132x28      2    text   Tseng Labs EVA ONLY
  1076.         26   640x350   256  graphics Tecmar VGA/AD ONLY
  1077.         27   640x400   256  graphics Tecmar VGA/AD ONLY
  1078.         28   640x480   256  graphics Tecmar VGA/AD ONLY
  1079.         29   800x600   256  graphics Tecmar VGA/AD ONLY
  1080.         34   132x44     16    text   Tseng Labs EVA ONLY
  1081.         34   132x44     16    text   Ahead Systems EGA2001 ONLY
  1082.         34   132x43     16    text   Allstar Peacock VGA ONLY
  1083.         35   132x25     16    text   ATI EGA, ATI VGA ONLY
  1084.         35   132x25     16    text   Tseng Labs EVA ONLY
  1085.         35   132x25     16    text   Ahead Systems EGA2001 ONLY
  1086.         35   132x28     16    text   Allstar Peacock VGA ONLY
  1087.         36   132x28     16    text   Tseng Labs EVA ONLY
  1088.         36   132x25     16    text   Allstar Peacock VGA ONLY
  1089.         37   640x480    16  graphics VEGA VGA ONLY
  1090.         38   640x480    16  graphics Ahead Systems EGA2001 ONLY
  1091.         39   132x25      2    text   ATI EGA, ATI VGA ONLY
  1092.         39   720x512    16  graphics Genoa or VEGA VGA ONLY
  1093.         41   800x600    16  graphics Orchid,STB,Genoa,Sigma,VEGA ONLY
  1094.         41   800x600    16  graphics Allstar Peacock VGA ONLY
  1095.         42   100x40     16    text   Allstar Peacock VGA ONLY
  1096.         42   100x40     16    text   Orchid Prodesigner VGA ONLY
  1097.         45   640x350   256  graphics Genoa,STB,VEGA VGA ONLY
  1098.         46   640x480   256  graphics Orchid,STB,Genoa,Sigma,VEGA ONLY
  1099.         47   720x512   256  graphics Genoa or VEGA VGA ONLY
  1100.         48   800x600   256  graphics Orchid,STB,Genoa,Sigma,VEGA ONLY
  1101.         51   132x44     16    text   ATI EGA or ATI VGA ONLY
  1102.         54   960x720    16  graphics STB or VEGA VGA
  1103.         55   132x44      2    text   ATI EGA or ATI VGA ONLY
  1104.         55   1024x768   16  graphics Orchid,STB,Genoa,Sigma,VEGA ONLY
  1105.         65   132x25     16    text   Tatung, Video7, VEGA VGA ONLY
  1106.         66   132x43     16    text   Tatung, Video7, VEGA VGA ONLY
  1107.         67   80x60      16    text   Tatung, Video7, VEGA VGA ONLY
  1108.         68   100x60     16    text   Tatung, Video7, VEGA VGA ONLY
  1109.         69   132x28     16    text   Tatung, Video7, VEGA VGA ONLY
  1110.         77   120x25     16    text   VEGA VGA ONLY
  1111.         78   120x43     16    text   VEGA VGA ONLY
  1112.         79   132x25     16    text   VEGA VGA ONLY
  1113.         80   80x43       2    text   VEGA VGA ONLY
  1114.         80   132x25      2    text   Ahead Systems EGA2001 ONLY
  1115.         81   80x34      16    text   ATI EGA ONLY
  1116.         81   132x25      2    text   VEGA VGA ONLY
  1117.         82   132x44      2    text   Ahead Systems EGA2001 ONLY
  1118.         82   132x43      2    text   VEGA VGA ONLY
  1119.         82   94x29      16    text   ATI EGA Wonder ONLY
  1120.         83   800x600    16  graphics ATI EGA or ATI VGA ONLY
  1121.         84   800x600    16  graphics ATI EGA, ATI VGA ONLY
  1122.         84   132x43     16    text   Paradise VGA,Taxan 565 EGA ONLY
  1123.         84   132x43     16    text   AST VGA Plus ONLY
  1124.         84   132x43     16    text   Hewlett-Packard D1180A ONLY
  1125.         85   132x25     16    text   Paradise VGA,Taxan 565 EGA ONLY
  1126.         85   132x25     16    text   AST VGA Plus ONLY
  1127.         85   132x25     16    text   Hewlett-Packard D1180A ONLY
  1128.         86   800x600    16  graphics ATI EGA or ATI VGA ONLY
  1129.         86   800x600    16  graphics Paradise or AT&T VDC600 ONLY
  1130.         86   800x600    16  graphics AST VGA Plus or Compaq VGA ONLY
  1131.         86   800x600    16  graphics Dell VGA ONLY
  1132.         86   800x600    16  graphics Hewlett-Packard D1180A ONLY
  1133.         89   800x600     2  graphics Paradise, AT&T VDC600 ONLY
  1134.         89   800x600     2  graphics ATI VIP, AST VGA Plus ONLY
  1135.         89   800x600     2  graphics Compaq VGA, Dell VGA ONLY
  1136.         89   800x600     2  graphics Hewlett-Packard D1180A ONLY
  1137.         94   640x400   256  graphics Paradise VGA or VEGA VGA ONLY
  1138.         94   640x400   256  graphics AST VGA Plus, Compaq VGA ONLY
  1139.         94   640x400   256  graphics Dell VGA or AT&T VDC600 ONLY
  1140.         95   640x480   256  graphics AST VGA Plus, Compaq VGA ONLY
  1141.         95   640x480   256  graphics Dell VGA or AT&T VDC600 ONLY
  1142.         95   640x480   256  graphics Paradise VGA ONLY
  1143.         96   752x410    16  graphics VEGA VGA,Tatung VGA,Video7 ONLY
  1144.         97   720x540    16  graphics VEGA VGA,Tatung VGA,Video7 ONLY
  1145.         97   640x400   256  graphics ATI VGA ONLY
  1146.         98   640x480   256  graphics ATI VGA ONLY
  1147.         98   800x600    16  graphics VEGA VGA,Tatung VGA,Video7 ONLY
  1148.         99   800x600   256  graphics ATI VGA ONLY
  1149.         99   1024x768    2  graphics Video7 V-RAM VGA ONLY
  1150.            100   1024x768    4  graphics Video7 V-RAM VGA ONLY
  1151.            101   1024x768   16  graphics ATI VGA, Video7 V-RAM VGA ONLY
  1152.            102   640x400   256  graphics Tatung VGA, Video7 V-RAM ONLY
  1153.            103   640x480   256  graphics Video7 V-RAM VGA ONLY
  1154.            103   1024x768    4  graphics ATI VGA Wonder ONLY
  1155.            105   720x540   256  graphics Video7 V-RAM VGA ONLY
  1156.            106   800x600    16  graphics VESA standard interface ONLY
  1157.            124   512x512    16  graphics Genoa ONLY
  1158.            125   512x512   256  graphics Genoa ONLY
  1159. DEFINED IN:  VIDEO.H--
  1160. SIZE:  4 bytes.
  1161. FUNCTION:  Sets the current video mode by BIOS interrupt.
  1162. RETURNS:  nothing
  1163.  
  1164.  
  1165. CALLING FORMAT:  SHIFTSTATUS();
  1166. SIZE:  9 bytes.
  1167. FUNCTION:  returns the current state of the shift, ctrl, alt, and other keys.
  1168. RETURNS:  AX = bit 0 =1 if right shift key is depressed
  1169.                bit 1 =1 if left shift key is depressed
  1170.            bit 2 =1 if control key is depressed
  1171.            bit 3 =1 if alt key is depressed
  1172.            bit 4 =1 if scroll lock state is on
  1173.            bit 5 =1 if number lock state is on
  1174.            bit 6 =1 if caps lock state is on
  1175.            bit 7 =1 if insert state is on
  1176.            bit 8 = undefined
  1177.            bit 9 = undefined
  1178.            bit 10 = undefined
  1179.            bit 11 =1 if control number lock state is on
  1180.            bit 12 =1 if scroll lock key is depressed
  1181.            bit 13 =1 if number lock key is depressed
  1182.            bit 14 =1 if caps lock key is depressed
  1183.            bit 15 =1 if insert key is depressed
  1184.       ES = 0x0000
  1185.  
  1186.  
  1187. CALLING FORMAT:  SOUND(frequency);
  1188.           frequency = frequency of sound desired in Hz.
  1189. DEFINED IN:  SOUND.H--
  1190. SIZE:  30 bytes.
  1191. FUNCTION:  Starts the internal IBM speaker (wow) to emit a sound at the
  1192.            desired frequency (aprox. range 50 to 12000 Hz).
  1193. RETURNS:  AX,BX,DX = undefined
  1194.  
  1195.  
  1196. CALLING FORMAT:  STRCAT( , , , ,deststrffset,sourcestroffset);
  1197.           deststroffset = offset address of destination string.
  1198.           sourcestroffset = offset address of source string.
  1199. SIZE:  23 bytes.
  1200. FUNCTION:  Copies the source string on to the end of the destination 
  1201.            string.
  1202. RETURNS:  AX,BX,CX,DI,SI = undefined.
  1203.  
  1204.  
  1205. CALLING FORMAT:  STRLEN(stroffset);
  1206.           stroffset = memory location of string
  1207. SIZE:  13 bytes.
  1208. FUNCTION:  Calculates the length of the string which is terminated by the
  1209.            byte value of zero.
  1210. RETURNS:  AX and BX = length of string in bytes excluding terminating byte.
  1211.          
  1212.  
  1213. CALLING FORMAT:  STRPAS( , , , ,passtringoffset,cstringoffset);
  1214.           passtringoffset = offset address of Pascal type string.
  1215.           cstringoffset = offset address of C type string.
  1216. SIZE:  24 bytes.
  1217. FUNCTION:  Copies a C type string to a Pascal type string.  A Pascal type 
  1218.            string is a string whos first byte specifies the length of the
  1219.            string.  A C type string is a string which is terminated with
  1220.            the byte value zero.
  1221. RETURNS:  AX,BX,CX,DI,SI = undefined.
  1222.  
  1223.  
  1224. CALLING FORMAT:  SUBPIXEL19( ,x,colour,y);
  1225.           colour = colour of pixel desired ( 0..255)
  1226.           x = x coordinate of pixel (0..319)
  1227.           y = y coordinate of pixel (0..199)
  1228. SIZE:  15 bytes.
  1229. FUNCTION:  subtracts a pixel from the screen in mode 19 (0x13) graphics mode.
  1230. RETURNS:  AX,DX,BX = undefined
  1231.       ES = 0xA000 (VGA seg)
  1232.  
  1233.  
  1234. CALLING FORMAT:  TEXTROWS();
  1235. SIZE:  8 bytes.
  1236. FUNCTION:  Returns the number of text rows on screen minus one.
  1237. RETURNS:  AL = number of text rows - 1
  1238.       ES = 0x0000
  1239.  
  1240.  
  1241. CALLING FORMAT:  TURNOFFCHAIN4();
  1242. SIZE:  53 bytes.
  1243. FUNCTION:  Disactivates the chain 4 memory organization for video mode
  1244.            320x200 256 colours.  Thus allowing all 4 memory planes to be
  1245.            addressed.
  1246. RETURNS:  DX,AX = undefined
  1247.  
  1248.  
  1249. CALLING FORMAT:  UNBLANKVGA();
  1250. SIZE:  6 bytes.
  1251. FUNCTION:  Restores the screen after a call to BLANKVGA().  This is done by
  1252.        by resetting the DAC mask register back to 0xFF.
  1253. RETURNS:  AL = 0xFF
  1254.       DX = 0x3C6
  1255.  
  1256.  
  1257. CALLING FORMAT:  WARMBOOT();
  1258. SIZE:  15 bytes.
  1259. FUNCTION:  Warm boots the computer.
  1260. RETURNS:  Never Ever
  1261.  
  1262.  
  1263. CALLING FORMAT:  WAITVSYNC();
  1264. SIZE:  13 bytes.
  1265. FUNCTION:  Waits for the leading edge of vertical sync pulse, marking the
  1266.        beginning of the vertical non-display period.
  1267. RETURNS:  AX,DX undefined.
  1268.  
  1269.  
  1270. CALLING FORMAT:  WINDOWDOWN(numoflines,attribute,upperleftloc,lowerrightloc);
  1271.           numoflines = number of lines to scroll, 1 to 255
  1272.           attribute = attribute to be used for blanked area
  1273.           upperleftloc = CH =Y coordinate + CL =X coordinate of the
  1274.                  upper left corner of the window
  1275.            lowerrightloc = DH =Y coordinate + DL =X coordinate of the
  1276.                   upper left corner of the window
  1277. DEFINED IN:  WRITE.H--
  1278. SIZE:  7 bytes.
  1279. FUNCTION:  scrolls a specified window down a number of lines and initializes
  1280.        the new lines with the attribute given.
  1281. RETURNS:  AH = 0x06
  1282.       BH = attribute
  1283.  
  1284.  
  1285. CALLING FORMAT:  WINDOWUP(numoflines,attribute,upperleftloc,lowerrightloc);
  1286.           numoflines = number of lines to scroll, 1 to 255
  1287.           attribute = attribute to be used for blanked area
  1288.           upperleftloc = CH =Y coordinate + CL =X coordinate of the
  1289.                  upper left corner of the window
  1290.           lowerrightloc = DH =Y coordinate + DL =X coordinate of the
  1291.                   upper left corner of the window
  1292. DEFINED IN:  WRITE.H--
  1293. SIZE:  7 bytes.
  1294. FUNCTION:  scrolls a specified window up a number of lines and initializes
  1295.        the new lines with the attribute given.
  1296. RETURNS:  AH = 0x06
  1297.       BH = attribute
  1298.  
  1299.  
  1300. CALLING FORMAT:  WORDTODIGITS(number,stringloc);
  1301.           number = word to be converted to digits string
  1302.           stringloc = location of string
  1303. SIZE:  59 bytes.
  1304. FUNCTION:  converts a word value to 5 decimal digits and a NULL terminating
  1305.        character.
  1306. RETURNS:  CX,DX = undefined
  1307.       AX = AX % 10
  1308.  
  1309.  
  1310. CALLING FORMAT:  WRITE(character);
  1311.            character = ASCII character code to write.
  1312. DEFINED IN:  WRITE.H--
  1313. SIZE:  7 bytes.
  1314. FUNCTION:  Writes a single character to video page 0 using a BIOS
  1315.        interrupt.
  1316. RETURNS:  AX,BX = undefined
  1317.  
  1318.  
  1319. CALLING FORMAT:  WRITEDIGITS(wordvalue);
  1320.           wordvalue = number to be printed.
  1321. DEFINED IN:  WRITE.H--
  1322. SIZE:  70 bytes.
  1323. FUNCTION:  Writes the specified number as a sequence of 5 digits to video
  1324.            page 0 using a BIOS interrupt.
  1325. RETURNS:  AX,BX,CX,DX = Undefined.
  1326.  
  1327.  
  1328. CALLING FORMAT:  WRITEINT(intvalue);
  1329.           intvalue = number to be printed.
  1330. DEFINED IN:  WRITE.H--
  1331. SIZE:  107 bytes.
  1332. FUNCTION:  Writes the specified number to video page 0 using a BIOS
  1333.            interrupt.
  1334. RETURNS:  AX,BX,CX,DX = Undefined.
  1335.  
  1336.  
  1337. CALLING FORMAT:  WRITELN();
  1338. DEFINED IN:  WRITE.H--
  1339. SIZE:  12 bytes.
  1340. FUNCTION:  Writes a carrage return and linefeed to video page 0 using a BIOS
  1341.            interrupt.  This results in the cursor being moved to the
  1342.            beginning of the next line.
  1343. RETURNS:  AX,BX = undefined
  1344.  
  1345.  
  1346. CALLING FORMAT:  WRITESTR(stringloc);
  1347.           stringloc = address of 0 terminating string to be printed.
  1348. DEFINED IN:  WRITE.H--
  1349. SIZE:  18 bytes.
  1350. FUNCTION:  Writes the specified string to video page 0 using a BIOS
  1351.            interrupt.
  1352. RETURNS:  AX,BX = Undefined.
  1353.  
  1354.  
  1355. CALLING FORMAT:  WRITEWORD(wordvalue);
  1356.           wordvalue = number to be printed.
  1357. DEFINED IN:  WRITE.H--
  1358. SIZE:  91 bytes.
  1359. FUNCTION:  Writes the specified number to video page 0 using a BIOS
  1360.            interrupt.
  1361. RETURNS:  AX,BX,CX,DX = Undefined.
  1362.  
  1363.  
  1364. CALLING FORMAT:  XLINE19(x,y,length,colour);
  1365.           x = x coordinate of start of line (0..319)
  1366.           y = y coordinate of start of line (0..199)
  1367.                   length = pixel lenght of line (1..200)
  1368.           colour = colour of pixel desired (0..255)
  1369. SIZE:  20 bytes.
  1370. FUNCTION:  Draws a horizontal line to the screen in mode 19 (0x13) graphics
  1371.            mode of the specified length and colour.
  1372. RETURNS:  AX,BX,DX,DI = Undefined.
  1373.           CX = 0
  1374.       ES = 0xA000 (VGA seg)
  1375.  
  1376.  
  1377. CALLING FORMAT:  XORPIXEL19( ,x,colour,y);
  1378.           colour = colour of pixel desired (0..255)
  1379.           x = x coordinate of pixel (0..319)
  1380.           y = y coordinate of pixel (0..199)
  1381. SIZE:  15 bytes.
  1382. FUNCTION:  XORs a pixel to the screen in mode 19 (0x13) graphics mode.
  1383. RETURNS:  AX,DX,BX = Undefined.
  1384.       ES = 0xA000 (VGA seg)
  1385.  
  1386.  
  1387. CALLING FORMAT:  YLINE19(x,y,length,colour);
  1388.           x = x coordinate of start of line (0..319)
  1389.           y = y coordinate of start of line (0..199)
  1390.                   length = pixel lenght of line (1..320)
  1391.           colour = colour of pixel desired (0..255)
  1392. SIZE:  25 bytes.
  1393. FUNCTION:  Draws a vertical line to the screen in mode 19 (0x13) graphics
  1394.            mode of the specified length and colour.
  1395. RETURNS:  AX,BX,DX,DI = Undefined.
  1396.           CX = 0
  1397.       ES = 0xA000 (VGA seg)
  1398.  
  1399.  
  1400. /* end of REGPROCS.DOC */