home *** CD-ROM | disk | FTP | other *** search
/ Ray Tracing Box / RAY_CD.mdf / ray_util / showpic / show_pic.bi < prev    next >
Text File  |  1994-02-15  |  3KB  |  70 lines

  1. '*********************************SHOW_PIC.BI  ********************************
  2. '                        MODIFIED with QB.BI & JOHNS.BI
  3. 'JRD NOTE:
  4. 'Special $INCLUDE: file for SHOW_PIC.BAS
  5. '2/15/94
  6. '
  7. 'One User Defined TYPE for -both- CALL INTERRUPT and CALL INTERRUPTX
  8. '
  9. 'The only difference is in the DECLARE, both use RegType as TYPE
  10. 'Be sure to change "RegTypeX" to "RegType" in the INTERRUPTX call.
  11. 'August 17, 1993
  12. '
  13. 'QuickBASIC can use 10 of the 14 Registers (Built-in integer variables)
  14.  
  15. TYPE RegType
  16.      ax        AS INTEGER               'Accumulator       Register
  17.      bx        AS INTEGER               'Base                 "
  18.      cx        AS INTEGER               'Count                "
  19.      dx        AS INTEGER               'Data                 "
  20.      bp        AS INTEGER               'Base Pointer         "
  21.      si        AS INTEGER               'Source Index         "
  22.      di        AS INTEGER               'Destination Index    "
  23.      flags     AS INTEGER               'Flags                "
  24.      ds        AS INTEGER               'Data Segment         "
  25.      es        AS INTEGER               'Extra Segment        "
  26. END TYPE
  27.  
  28. 'User defined TYPE for FileExists SUB
  29. TYPE DTA                           'used by DOS services
  30.         Reserved  AS STRING * 21       'reserved for use by DOS
  31.         Attribute AS STRING * 1        'the file's attribute
  32.         FileTime  AS STRING * 2        'the file's time
  33.         FileDate  AS STRING * 2        'the file's date
  34.         FileSize  AS LONG              'the file's size
  35.         FileName  AS STRING * 13       'the file's name
  36. END TYPE
  37.  
  38.  
  39.  
  40.  
  41. '                 DECLARE statements for the 2 routines
  42. '                 -------------------------------------
  43. '
  44. ' Generate a software interrupt, loading all but the segment registers
  45. '
  46. DECLARE SUB INTERRUPT (IntNum AS INTEGER, InRegs AS RegType, OutRegs AS RegType)
  47. '
  48. ' Generate a software interrupt, loading all registers
  49. '
  50. DECLARE SUB INTERRUPTX (IntNum AS INTEGER, InRegs AS RegType, OutRegs AS RegType)
  51. '
  52. '
  53. ' Call a routine at an absolute address.
  54. ' NOTE: If the routine called takes parameters, then they will have to
  55. '       be added to this declare statement before the parameter given.
  56. '
  57. DECLARE SUB ABSOLUTE (address AS INTEGER)
  58. '
  59. ' Generate a software interrupt, loading all but the segment registers
  60. '       (old version)
  61. '
  62. DECLARE SUB INT86OLD (IntNum AS INTEGER, inarray() AS INTEGER, outarray() AS INTEGER)
  63. '
  64. ' Generate a software interrupt, loading all the registers
  65. '       (old version)
  66. '
  67. DECLARE SUB INT86XOLD (IntNum AS INTEGER, inarray() AS INTEGER, outarray() AS INTEGER)
  68. '
  69.  
  70.