home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Fortran.51 / DISK6 / BSESUB.FI$ / BSESUB.bin
Text File  |  1989-01-27  |  31KB  |  1,087 lines

  1. C****************************** Module Header *******************************
  2. C*
  3. C* Module Name: BSESUB.FI
  4. C*
  5. C* OS/2 Base Include File
  6. C*
  7. C* Copyright (c) 1988-1989  Microsoft Corporation
  8. C*
  9. C****************************************************************************
  10. C
  11. *
  12. * Subcomponents marked with "+" are partially included by default
  13. *   $DEFINE:                To include:
  14. *
  15. *   INCL_KBD                KBD
  16. *   INCL_VIO                VIO
  17. *   INCL_MOU                MOU
  18. *
  19.  
  20. $IF defined(INCL_SUB)
  21.  
  22. $DEFINE INCL_KBD
  23. $DEFINE INCL_VIO
  24. $DEFINE INCL_MOU
  25.  
  26. $ENDIF   ! INCL_SUB
  27.  
  28. $IF defined(INCL_KBD)
  29. C   Keyboard prototypes
  30.  
  31.     INTERFACE TO INTEGER*2 FUNCTION KbdRegister
  32.      +  [ALIAS: 'KBDREGISTER']
  33.      +  (ModuleName,                            ! module name
  34.      +   EntryName,                             ! entry-point name
  35.      +   Mask [VALUE])                          ! function mask
  36.  
  37.     CHARACTER*(*) ModuleName, EntryName
  38.     INTEGER*4 Mask
  39.  
  40.     END
  41.  
  42.     INTERFACE TO INTEGER*2 FUNCTION KbdDeregister
  43.      +  [ALIAS: 'KBDDEREGISTER']
  44.  
  45.     END
  46.  
  47.     INTERFACE TO INTEGER*2 FUNCTION KbdCharIn
  48.      +  [ALIAS: 'KBDCHARIN']
  49.      +  (KbdKeyInfoPtr,                         ! buffer for data
  50.      +   IOWait [VALUE],                        ! indicate if wait
  51.      +   KbdHandle [VALUE])                     ! keyboard handle
  52.  
  53.     INTEGER*2 IOWait, KbdHandle
  54.     STRUCTURE/KBDKEYINFO/
  55.        CHARACTER*1 chChar
  56.        CHARACTER*1 chScan
  57.        INTEGER*1   fbStatus
  58.        INTEGER*1   bNlsShift                ! must be zero
  59.        INTEGER*2   fsState
  60.        INTEGER*4   time
  61.     END STRUCTURE
  62.     RECORD/KBDKEYINFO/ KbdKeyInfoPtr
  63.  
  64.     END
  65.  
  66.     INTERFACE TO INTEGER*2 FUNCTION KbdPeek
  67.      +  [ALIAS: 'KBDPEEK']
  68.      +  (KbdKeyInfoPtr,                         ! buffer for data
  69.      +   KbdHandle [VALUE])                     ! keyboard handle
  70.  
  71.     INTEGER*2 KbdHandle
  72.     STRUCTURE/KBDKEYINFO/
  73.        CHARACTER*1 chChar
  74.        CHARACTER*1 chScan
  75.        INTEGER*1   fbStatus
  76.        INTEGER*1   bNlsShift                ! must be zero
  77.        INTEGER*2   fsState
  78.        INTEGER*4   time
  79.     END STRUCTURE
  80.     RECORD/KBDKEYINFO/ KbdKeyInfoPtr
  81.  
  82.     END
  83.  
  84.     INTERFACE TO INTEGER*2 FUNCTION KbdStringIn
  85.      +  [ALIAS: 'KBDSTRINGIN']
  86.      +  (CharBuffer,                            ! char buffer
  87.      +   StringInBufPtr,                        ! len buffer
  88.      +   IOWait [VALUE],                        ! indicate if wait
  89.      +   KbdHandle [VALUE])                     ! keyboard handle
  90.  
  91.     CHARACTER*(*) CharBuffer
  92.     INTEGER*2 IOWait, KbdHandle
  93.     STRUCTURE/STRINGINBUF/
  94.        INTEGER*2 cb
  95.        INTEGER*2 cchIn
  96.     END STRUCTURE
  97.     RECORD/STRINGINBUF/ StringInBufPtr
  98.  
  99.     END
  100.  
  101.     INTERFACE TO INTEGER*2 FUNCTION KbdFlushBuffer
  102.      +  [ALIAS: 'KBDFLUSHBUFFER']
  103.      +  (KbdHandle [VALUE])                     ! keyboard handle
  104.  
  105.     INTEGER*2 KbdHandle
  106.  
  107.     END
  108.  
  109.     INTERFACE TO INTEGER*2 FUNCTION KbdSetStatus
  110.      +  [ALIAS: 'KBDSETSTATUS']
  111.      +  (KbdInfoPtr,                            ! record for status
  112.      +   KbdHandle [VALUE])                     ! keyboard handle
  113.  
  114.     INTEGER*2 KbdHandle
  115.     STRUCTURE/KBDINFO/
  116.        INTEGER*2 cb
  117.        INTEGER*2 fsMask
  118.        INTEGER*2 chTurnAround
  119.        INTEGER*2 fsInterim
  120.        INTEGER*2 fsState
  121.     END STRUCTURE
  122.     RECORD/KBDINFO/ KbdInfoPtr
  123.  
  124.     END
  125.  
  126.     INTERFACE TO INTEGER*2 FUNCTION KbdGetStatus
  127.      +  [ALIAS: 'KBDGETSTATUS']
  128.      +  (KbdInfoPtr,                            ! record for status
  129.      +   KbdHandle [VALUE])                     ! keyboard handle
  130.  
  131.     INTEGER*2 KbdHandle
  132.     STRUCTURE/KBDINFO/
  133.        INTEGER*2 cb
  134.        INTEGER*2 fsMask
  135.        INTEGER*2 chTurnAround
  136.        INTEGER*2 fsInterim
  137.        INTEGER*2 fsState
  138.     END STRUCTURE
  139.     RECORD/KBDINFO/ KbdInfoPtr
  140.  
  141.     END
  142.  
  143.     INTERFACE TO INTEGER*2 FUNCTION KbdSetCp
  144.      +  [ALIAS: 'KBDSETCP']
  145.      +  (Reserved [VALUE],                      ! must be zero
  146.      +   CodePageID [VALUE],                    ! translation tbl id
  147.      +   KbdHandle [VALUE])                     ! keyboard handle
  148.  
  149.     INTEGER*2 Reserved, CodePageID, KbdHandle
  150.  
  151.     END
  152.  
  153.     INTERFACE TO INTEGER*2 FUNCTION KbdGetCp
  154.      +  [ALIAS: 'KBDGETCP']
  155.      +  (Reserved [VALUE],                      ! must be zero
  156.      +   CodePageID,                            ! translation tbl id
  157.      +   KbdHandle [VALUE])                     ! keyboard handle
  158.  
  159.     INTEGER*2 Reserved*4, CodePageID, KbdHandle
  160.  
  161.     END
  162.  
  163.     INTERFACE TO INTEGER*2 FUNCTION KbdOpen
  164.      +  [ALIAS: 'KBDOPEN']
  165.      +  (KbdHandle)                             ! pointer to handle
  166.  
  167.     INTEGER*2 KbdHandle
  168.  
  169.     END
  170.  
  171.     INTERFACE TO INTEGER*2 FUNCTION KbdClose
  172.      +  [ALIAS: 'KBDCLOSE']
  173.      +  (KbdHandle [VALUE])                     ! keyboard handle
  174.  
  175.     INTEGER*2 KbdHandle
  176.  
  177.     END
  178.  
  179.     INTERFACE TO INTEGER*2 FUNCTION KbdGetFocus
  180.      +  [ALIAS: 'KBDGETFOCUS']
  181.      +  (IOWait [VALUE],                        ! indicate if wait
  182.      +   KbdHandle [VALUE])                     ! keyboard handle
  183.  
  184.     INTEGER*2 IOWait, KbdHandle
  185.  
  186.     END
  187.  
  188.     INTERFACE TO INTEGER*2 FUNCTION KbdFreeFocus
  189.      +  [ALIAS: 'KBDFREEFOCUS']
  190.      +  (KbdHandle [VALUE])                     ! keyboard handle
  191.  
  192.     INTEGER*2 KbdHandle
  193.  
  194.     END
  195.  
  196.     INTERFACE TO INTEGER*2 FUNCTION KbdSynch
  197.      +  [ALIAS: 'KBDSYNCH']
  198.      +  (IOWait [VALUE])                        ! indicates to wait
  199.  
  200.     INTEGER*2 IOWait
  201.  
  202.     END
  203.  
  204.     INTERFACE TO INTEGER*2 FUNCTION KbdSetFgnd
  205.      +  [ALIAS: 'KBDSETFGND']
  206.  
  207.     END
  208.  
  209.     INTERFACE TO INTEGER*2 FUNCTION KbdXlate
  210.      +  [ALIAS: 'KBDXLATE']
  211.      +  (KbdXlatePtr,                           ! translation record
  212.      +   KbdHandle [VALUE])                     ! keyboard handle
  213.  
  214.     INTEGER*2 KbdHandle
  215.     STRUCTURE/KBDXLATE_/
  216.        CHARACTER*1 chChar
  217.        CHARACTER*1 chScan
  218.        INTEGER*1   fbStatus
  219.        INTEGER*1   bNlsShift                ! must be zero
  220.        INTEGER*2   fsState
  221.        INTEGER*4   time
  222.        INTEGER*2   fsDD
  223.        INTEGER*2   fsXlate
  224.        INTEGER*2   fsShift
  225.        INTEGER*2   sZero                    ! must be zero
  226.     END STRUCTURE
  227.     RECORD/KBDXLATE_/ KbdXlatePtr
  228.  
  229.     END
  230.  
  231.     INTERFACE TO INTEGER*2 FUNCTION  KbdSetCustXt
  232.      +  [ALIAS: 'KBDSETCUSTXT']
  233.      +  (CodePage,                              ! translation table
  234.      +   KbdHandle [VALUE])                     ! keyboard handle
  235.  
  236.     INTEGER*2 CodePage(*), KbdHandle
  237.  
  238.     END
  239.  
  240. $ENDIF   ! INCL_KBD
  241.  
  242. $IF defined(INCL_VIO)
  243.  
  244. C   Video I/O prototypes
  245.  
  246.     INTERFACE TO INTEGER*2 FUNCTION VioRegister
  247.      +  [ALIAS: 'VIOREGISTER']
  248.      +  (ModuleName,                            ! module name
  249.      +   EntryName,                             ! entry-point name
  250.      +   FunctionMask1 [VALUE],                 ! function mask 1
  251.      +   FunctionMask2 [VALUE])                 ! function mask 2
  252.  
  253.     CHARACTER*(*) ModuleName, EntryName
  254.     INTEGER*4 FunctionMask1, FunctionMask2
  255.  
  256.     END
  257.  
  258.     INTERFACE TO INTEGER*2 FUNCTION VioDeregister
  259.      +  [ALIAS: 'VIODEREGISTER']
  260.  
  261.     END
  262.  
  263.     INTERFACE TO INTEGER*2 FUNCTION VioGetBuf
  264.      +  [ALIAS: 'VIOGETBUF']
  265.      +  (LVBPtr,                                ! pointer to LVB
  266.      +   Length [VALUE],                        ! length of LVB
  267.      +   VioHandle [VALUE])                     ! video handle
  268.  
  269.     INTEGER*2 LVBPtr*4, Length, VioHandle
  270.  
  271.     END
  272.  
  273.     INTERFACE TO INTEGER*2 FUNCTION VioGetCurPos
  274.      +  [ALIAS: 'VIOGETCURPOS']
  275.      +  (Row,                                   ! row return data
  276.      +   Column,                                ! column return data
  277.      +   VioHandle [VALUE])                     ! video handle
  278.  
  279.     INTEGER*2 Row, Column, VioHandle
  280.  
  281.     END
  282.  
  283.     INTERFACE TO INTEGER*2 FUNCTION VioSetCurPos
  284.      +  [ALIAS: 'VIOSETCURPOS']
  285.      +  (Row [VALUE],                           ! row position
  286.      +   Column [VALUE],                        ! column position
  287.      +   VioHandle [VALUE])                     ! video handle
  288.  
  289.     INTEGER*2 Row, Column, VioHandle
  290.  
  291.     END
  292.  
  293.     INTERFACE TO INTEGER*2 FUNCTION VioGetCurType
  294.      +  [ALIAS: 'VIOGETCURTYPE']
  295.      +  (VioCursorInfoPtr,                      ! cursor info
  296.      +   VioHandle [VALUE])                     ! video handle
  297.  
  298.     INTEGER*2 VioHandle
  299.     STRUCTURE/VIOCURSORINFO/
  300.        INTEGER*2 yStart
  301.        INTEGER*2 cEnd
  302.        INTEGER*2 cx
  303.        INTEGER*2 attr
  304.     END STRUCTURE
  305.     RECORD/VIOCURSORINFO/ VioCursorInfoPtr
  306.  
  307.     END
  308.  
  309.     INTERFACE TO INTEGER*2 FUNCTION VioSetCurType
  310.      +  [ALIAS: 'VIOSETCURTYPE']
  311.      +  (VioCursorInfoPtr,                      ! cursor info
  312.      +   VioHandle [VALUE])                     ! video handle
  313.  
  314.     INTEGER*2 VioHandle
  315.     STRUCTURE/VIOCURSORINFO/
  316.        INTEGER*2 yStart
  317.        INTEGER*2 cEnd
  318.        INTEGER*2 cx
  319.        INTEGER*2 attr
  320.     END STRUCTURE
  321.     RECORD/VIOCURSORINFO/ VioCursorInfoPtr
  322.  
  323.     END
  324.  
  325.     INTERFACE TO INTEGER*2 FUNCTION VioGetMode
  326.      +  [ALIAS: 'VIOGETMODE']
  327.      +  (VioModeInfoPtr,                        ! mode info
  328.      +   VioHandle [VALUE])                     ! video handle
  329.  
  330.     INTEGER*2 VioHandle
  331.     STRUCTURE/VIOMODEINFO/
  332.        INTEGER*2 cb
  333.        INTEGER*1 fbType
  334.        INTEGER*1 color
  335.        INTEGER*2 col
  336.        INTEGER*2 row
  337.        INTEGER*2 hres
  338.        INTEGER*2 vres
  339.        INTEGER*1 fmt_ID                    ! must be zero
  340.        INTEGER*1 attrib                    ! must be zero
  341.     END STRUCTURE
  342.     RECORD/VIOMODEINFO/ VioModeInfoPtr
  343.  
  344.     END
  345.  
  346.     INTERFACE TO INTEGER*2 FUNCTION VioSetMode
  347.      +  [ALIAS: 'VIOSETMODE']
  348.      +  (VioModeInfoPtr,                        ! mode info
  349.      +   VioHandle [VALUE])                     ! video handle
  350.  
  351.     INTEGER*2 VioHandle
  352.     STRUCTURE/VIOMODEINFO/
  353.        INTEGER*2 cb
  354.        INTEGER*1 fbType
  355.        INTEGER*1 color
  356.        INTEGER*2 col
  357.        INTEGER*2 row
  358.        INTEGER*2 hres
  359.        INTEGER*2 vres
  360.        INTEGER*1 fmt_ID                    ! must be zero
  361.        INTEGER*1 attrib                    ! must be zero
  362.     END STRUCTURE
  363.     RECORD/VIOMODEINFO/ VioModeInfoPtr
  364.  
  365.     END
  366.  
  367.     INTERFACE TO INTEGER*2 FUNCTION VioGetPhysBuf
  368.      +  [ALIAS: 'VIOGETPHYSBUF']
  369.      +  (VioPhysBufPtr,                         ! data structure
  370.      +   Reserved [VALUE])                      ! must be zero
  371.  
  372.     INTEGER*2 Reserved
  373.     STRUCTURE/VIOPHYSBUF/
  374.        INTEGER*4 pBuf
  375.        INTEGER*4 cb
  376.        INTEGER*2 asel(1)
  377.     END STRUCTURE
  378.     RECORD/VIOPHYSBUF/ VioPhysBufPtr
  379.  
  380.     END
  381.  
  382.     INTERFACE TO INTEGER*2 FUNCTION VioReadCellStr
  383.      +  [ALIAS: 'VIOREADCELLSTR']
  384.      +  (CellStr,                               ! cell string buffer
  385.      +   Length,                                ! length of CellStr in bytes
  386.      +   Row [VALUE],                           ! starting row
  387.      +   Column [VALUE],                        ! starting column
  388.      +   VioHandle [VALUE])                     ! video handle
  389.  
  390.     CHARACTER*(*) CellStr
  391.     INTEGER*2 Length, Row, Column, VioHandle
  392.  
  393.     END
  394.  
  395.     INTERFACE TO INTEGER*2 FUNCTION VioWrtCellStr
  396.      +  [ALIAS: 'VIOWRTCELLSTR']
  397.      +  (CellStr,                               ! cell string buffer
  398.      +   Length [VALUE],                        ! length of CellStr in bytes
  399.      +   Row [VALUE],                           ! starting row
  400.      +   Column [VALUE],                        ! starting column
  401.      +   VioHandle [VALUE])                     ! video handle
  402.  
  403.     CHARACTER*(*) CellStr
  404.     INTEGER*2 Length, Row, Column, VioHandle
  405.  
  406.     END
  407.  
  408.     INTERFACE TO INTEGER*2 FUNCTION VioReadCharStr
  409.      +  [ALIAS: 'VIOREADCHARSTR']
  410.      +  (CharString,                            ! character buffer
  411.      +   Length,                                ! length of buffer
  412.      +   Row [VALUE],                           ! starting row
  413.      +   Column [VALUE],                        ! starting column
  414.      +   VioHandle [VALUE])                     ! video handle
  415.  
  416.     CHARACTER*(*) CharString
  417.     INTEGER*2 Length, Row, Column, VioHandle
  418.  
  419.     END
  420.  
  421.     INTERFACE TO INTEGER*2 FUNCTION VioWrtCharStr
  422.      +  [ALIAS: 'VIOWRTCHARSTR']
  423.      +  (CharString,                            ! character buffer
  424.      +   Length [VALUE],                        ! length of buffer
  425.      +   Row [VALUE],                           ! starting row
  426.      +   Column [VALUE],                        ! starting column
  427.      +   VioHandle [VALUE])                     ! video handle
  428.  
  429.     CHARACTER*(*) CharString
  430.     INTEGER*2 Length, Row, Column, VioHandle
  431.  
  432.     END
  433.  
  434.     INTERFACE TO INTEGER*2 FUNCTION VioScrollDn
  435.      +  [ALIAS: 'VIOSCROLLDN']
  436.      +  (TopRow [VALUE],                        ! top row
  437.      +   LeftCol [VALUE],                       ! left column
  438.      +   BotRow [VALUE],                        ! bottom row
  439.      +   RightCol [VALUE],                      ! right column
  440.      +   Lines [VALUE],                         ! num blank lines
  441.      +   Cell,                                  ! cell to write
  442.      +   VioHandle [VALUE])                     ! video handle
  443.  
  444.     INTEGER*1 Cell(2)
  445.     INTEGER*2 TopRow, LeftCol, BotRow, RightCol, Lines, VioHandle
  446.  
  447.     END
  448.  
  449.     INTERFACE TO INTEGER*2 FUNCTION VioScrollUp
  450.      +  [ALIAS: 'VIOSCROLLUP']
  451.      +  (TopRow [VALUE],                        ! top row
  452.      +   LeftCol [VALUE],                       ! left column
  453.      +   BotRow [VALUE],                        ! bottom row
  454.      +   RightCol [VALUE],                      ! right column
  455.      +   Lines [VALUE],                         ! num blank lines
  456.      +   Cell,                                  ! cell to write
  457.      +   VioHandle [VALUE])                     ! video handle
  458.  
  459.     INTEGER*1 Cell(2)
  460.     INTEGER*2 TopRow, LeftCol, BotRow, RightCol, Lines, VioHandle
  461.  
  462.     END
  463.  
  464.     INTERFACE TO INTEGER*2 FUNCTION VioScrollLf
  465.      +  [ALIAS: 'VIOSCROLLLF']
  466.      +  (TopRow [VALUE],                        ! top row
  467.      +   LeftCol [VALUE],                       ! left column
  468.      +   BotRow [VALUE],                        ! bottom row
  469.      +   RightCol [VALUE],                      ! right column
  470.      +   Columns [VALUE],                       ! num blank columns
  471.      +   Cell,                                  ! cell to write
  472.      +   VioHandle [VALUE])                     ! video handle
  473.  
  474.     INTEGER*1 Cell(2)
  475.     INTEGER*2 TopRow, LeftCol, BotRow, RightCol, Columns, VioHandle
  476.  
  477.     END
  478.  
  479.     INTERFACE TO INTEGER*2 FUNCTION VioScrollRt
  480.      +  [ALIAS: 'VIOSCROLLRT']
  481.      +  (TopRow [VALUE],                        ! top row
  482.      +   LeftCol [VALUE],                       ! left column
  483.      +   BotRow [VALUE],                        ! bottom row
  484.      +   RightCol [VALUE],                      ! right column
  485.      +   Columns [VALUE],                       ! num blank columns
  486.      +   Cell,                                  ! cell to write
  487.      +   VioHandle [VALUE])                     ! video handle
  488.  
  489.     INTEGER*1 Cell(2)
  490.     INTEGER*2 TopRow, LeftCol, BotRow, RightCol, Columns, VioHandle
  491.  
  492.     END
  493.  
  494.     INTERFACE TO INTEGER*2 FUNCTION VioWrtNAttr
  495.      +  [ALIAS: 'VIOWRTNATTR']
  496.      +  (Attr,                                  ! attribute to write
  497.      +   Times [VALUE],                         ! repeat count
  498.      +   Row [VALUE],                           ! starting row
  499.      +   Column [VALUE],                        ! starting column
  500.      +   VioHandle [VALUE])                     ! video handle
  501.  
  502.     INTEGER*1 Attr
  503.     INTEGER*2 Times, Row, Column, VioHandle
  504.  
  505.     END
  506.  
  507.     INTERFACE TO INTEGER*2 FUNCTION VioWrtNCell
  508.      +  [ALIAS: 'VIOWRTNCELL']
  509.      +  (Cell,                                  ! cell to write
  510.      +   Times [VALUE],                         ! repeat count
  511.      +   Row [VALUE],                           ! starting row
  512.      +   Column [VALUE],                        ! starting column
  513.      +   VioHandle [VALUE])                     ! video handle
  514.  
  515.     INTEGER*1 Cell(2)
  516.     INTEGER*2 Times, Row, Column, VioHandle
  517.  
  518.     END
  519.  
  520.     INTERFACE TO INTEGER*2 FUNCTION VioWrtNChar
  521.      +  [ALIAS: 'VIOWRTNCHAR']
  522.      +  (Char,                                  ! character to write
  523.      +   Times [VALUE],                         ! repeat count
  524.      +   Row [VALUE],                           ! starting row
  525.      +   Column [VALUE],                        ! starting column
  526.      +   VioHandle [VALUE])                     ! video handle
  527.  
  528.     INTEGER*1 Char
  529.     INTEGER*2 Times, Row, Column, VioHandle
  530.  
  531.     END
  532.  
  533.     INTERFACE TO INTEGER*2 FUNCTION VioWrtTTY
  534.      +  [ALIAS: 'VIOWRTTTY']
  535.      +  (CharString,                            ! string to write
  536.      +   Length [VALUE],                        ! length of string
  537.      +   VioHandle [VALUE])                     ! video handle
  538.  
  539.     CHARACTER*(*) CharString
  540.     INTEGER*2 Length, VioHandle
  541.  
  542.     END
  543.  
  544.     INTERFACE TO INTEGER*2 FUNCTION VioWrtCharStrAtt
  545.      +  [ALIAS: 'VIOWRTCHARSTRATT']
  546.      +  (CharString,                            ! string to write
  547.      +   Length [VALUE],                        ! length of string
  548.      +   Row [VALUE],                           ! starting row
  549.      +   Column [VALUE],                        ! starting column
  550.      +   Attr,                                  ! attribute
  551.      +   VioHandle [VALUE])                     ! video handle
  552.  
  553.     CHARACTER*(*) CharString
  554.     INTEGER*1 Attr
  555.     INTEGER*2 Length, Row, Column, VioHandle
  556.  
  557.     END
  558.  
  559.     INTERFACE TO INTEGER*2 FUNCTION VioShowBuf
  560.      +  [ALIAS: 'VIOSHOWBUF']
  561.      +  (Offset [VALUE],                        ! offset into LVB
  562.      +   Length [VALUE],                        ! length
  563.      +   VioHandle [VALUE])                     ! video handle
  564.  
  565.     INTEGER*2 Offset, Length, VioHandle
  566.  
  567.     END
  568.  
  569.     INTERFACE TO INTEGER*2 FUNCTION VioSetAnsi
  570.      +  [ALIAS: 'VIOSETANSI']
  571.      +  (Indicator [VALUE],                     ! on/off indicator
  572.      +   VioHandle [VALUE])                     ! video handle
  573.  
  574.     INTEGER*2 Indicator, VioHandle
  575.  
  576.     END
  577.  
  578.     INTERFACE TO INTEGER*2 FUNCTION VioGetAnsi
  579.      +  [ALIAS: 'VIOGETANSI']
  580.      +  (Indicator,                             ! on/off indicator
  581.      +   VioHandle [VALUE])                     ! video handle
  582.  
  583.     INTEGER*2 Indicator, VioHandle
  584.  
  585.     END
  586.  
  587.     INTERFACE TO INTEGER*2 FUNCTION VioPrtsc
  588.      +  [ALIAS: 'VIOPRTSC']
  589.      +  (VioHandle [VALUE])                     ! video handle
  590.  
  591.     INTEGER*2 VioHandle
  592.  
  593.     END
  594.  
  595.     INTERFACE TO INTEGER*2 FUNCTION VioPrtscToggle
  596.      +  [ALIAS: 'VIOPRTSCTOGGLE']
  597.      +  (VioHandle [VALUE])                     ! video handle
  598.  
  599.     INTEGER*2 VioHandle
  600.  
  601.     END
  602.  
  603.     INTERFACE TO INTEGER*2 FUNCTION VioSavRedrawWait
  604.      +  [ALIAS: 'VIOSAVREDRAWWAIT']
  605.      +  (SaveRedrawIndic [VALUE],               ! save/redraw indic.
  606.      +   NotifyType,                            ! notify type
  607.      +   VioHandle [VALUE])                     ! video handle
  608.  
  609.     INTEGER*2 SaveRedrawIndic, NotifyType, VioHandle
  610.  
  611.     END
  612.  
  613.     INTERFACE TO INTEGER*2 FUNCTION VioSavRedrawUndo
  614.      +  [ALIAS: 'VIOSAVREDRAWUNDO']
  615.      +  (OwnerIndic [VALUE],                    ! indicates owner
  616.      +   KillIndic [VALUE],                     ! indicates kill
  617.      +   VioHandle [VALUE])                     ! video handle
  618.  
  619.     INTEGER*2 OwnerIndic, KillIndic, VioHandle
  620.  
  621.     END
  622.  
  623.     INTERFACE TO INTEGER*2 FUNCTION VioModeWait
  624.      +  [ALIAS: 'VIOMODEWAIT']
  625.      +  (RequestType [VALUE],                   ! request type
  626.      +   NotifyType,                            ! notify type
  627.      +   Reserved [VALUE])                      ! must be zero
  628.  
  629.     INTEGER*2 RequestType, NotifyType, Reserved
  630.  
  631.     END
  632.  
  633.     INTERFACE TO INTEGER*2 FUNCTION VioModeUndo
  634.      +  [ALIAS: 'VIOMODEUNDO']
  635.      +  (OwnerIndic [VALUE],                    ! indicates owner
  636.      +   KillIndic [VALUE],                     ! indicates kill
  637.      +   Reserved [VALUE])                      ! must be zero
  638.  
  639.     INTEGER*2 OwnerIndic, KillIndic, Reserved
  640.  
  641.     END
  642.  
  643.     INTERFACE TO INTEGER*2 FUNCTION VioScrlock
  644.      +  [ALIAS: 'VIOSCRLOCK']
  645.      +  (WaitFlag [VALUE],                      ! block or not
  646.      +   Status,                                ! status of lock
  647.      +   VioHandle [VALUE])                     ! video handle
  648.  
  649.     INTEGER*2 WaitFlag, Status, VioHandle
  650.  
  651.     END
  652.  
  653.     INTERFACE TO INTEGER*2 FUNCTION VioScrUnlock
  654.      +  [ALIAS: 'VIOSCRUNLOCK']
  655.      +  (VioHandle [VALUE])                     ! video handle
  656.  
  657.     INTEGER*2 VioHandle
  658.  
  659.     END
  660.  
  661.     INTERFACE TO INTEGER*2 FUNCTION VioPopUp
  662.      +  [ALIAS: 'VIOPOPUP']
  663.      +  (WaitFlags,                             ! indicates wait
  664.      +   VioHandle [VALUE])                     ! video handle
  665.  
  666.     INTEGER*2 WaitFlags, VioHandle
  667.  
  668.     END
  669.  
  670.     INTERFACE TO INTEGER*2 FUNCTION VioEndPopUp
  671.      +  [ALIAS: 'VIOENDPOPUP']
  672.      +  (VioHandle [VALUE])                     ! video handle
  673.  
  674.     INTEGER*2 VioHandle
  675.  
  676.     END
  677.  
  678.     INTERFACE TO INTEGER*2 FUNCTION VioGetConfig
  679.      +  [ALIAS: 'VIOGETCONFIG']
  680.      +  (Reserved [VALUE],                      ! must be zero
  681.      +   VioConfigInfoPtr,                      ! configuration data
  682.      +   VioHandle [VALUE])                     ! video handle
  683.  
  684.     INTEGER*2 Reserved, VioHandle
  685.     STRUCTURE/VIOCONFIGINFO/
  686.        INTEGER*2 cb
  687.        INTEGER*2 adapter
  688.        INTEGER*2 display
  689.        INTEGER*4 cbMemory
  690.     END STRUCTURE
  691.     RECORD/VIOCONFIGINFO/ VioConfigInfoPtr
  692.  
  693.     END
  694.  
  695.     INTERFACE TO INTEGER*2 FUNCTION VioGetFont
  696.      +  [ALIAS: 'VIOGETFONT']
  697.      +  (VioFontInfoPtr,                        ! request block
  698.      +   VioHandle [VALUE])                     ! video handle
  699.  
  700.     INTEGER*2 VioHandle
  701.     STRUCTURE/VIOFONTINFO/
  702.        INTEGER*2 cb
  703.        INTEGER*2 type
  704.        INTEGER*2 cxCell
  705.        INTEGER*2 cyCell
  706.        INTEGER*4 pbData
  707.        INTEGER*2 cbData
  708.     END STRUCTURE
  709.     RECORD/VIOFONTINFO/ VioFontInfoPtr
  710.  
  711.     END
  712.  
  713.     INTERFACE TO INTEGER*2 FUNCTION VioSetFont
  714.      +  [ALIAS: 'VIOSETFONT']
  715.      +  (VioFontInfoPtr,                        ! request block
  716.      +   VioHandle [VALUE])                     ! video handle
  717.  
  718.     INTEGER*2 VioHandle
  719.     STRUCTURE/VIOFONTINFO/
  720.        INTEGER*2 cb
  721.        INTEGER*2 type
  722.        INTEGER*2 cxCell
  723.        INTEGER*2 cyCell
  724.        INTEGER*4 pbData
  725.        INTEGER*2 cbData
  726.     END STRUCTURE
  727.     RECORD/VIOFONTINFO/ VioFontInfoPtr
  728.  
  729.     END
  730.  
  731.     INTERFACE TO INTEGER*2 FUNCTION VioGetCp
  732.      +  [ALIAS: 'VIOGETCP']
  733.      +  (Reserved [VALUE],                      ! must be zero
  734.      +   CodePageID,                            ! code-page id
  735.      +   VioHandle [VALUE])                     ! video handle
  736.  
  737.     INTEGER*2 Reserved, CodePageID, VioHandle
  738.  
  739.     END
  740.  
  741.     INTERFACE TO INTEGER*2 FUNCTION VioSetCp
  742.      +  [ALIAS: 'VIOSETCP']
  743.      +  (Reserved [VALUE],                      ! must be zero
  744.      +   CodePageID [VALUE],                    ! code-page id
  745.      +   VioHandle [VALUE])                     ! video handle
  746.  
  747.     INTEGER*2 Reserved, CodePageID, VioHandle
  748.  
  749.     END
  750.  
  751.     INTERFACE TO INTEGER*2 FUNCTION VioGetState
  752.      +  [ALIAS: 'VIOGETSTATE']
  753.      +  (VioStatePtr,                           ! request block
  754.      +   VioHandle [VALUE])                     ! video handle
  755.  
  756.     INTEGER*2 VioHandle
  757.     STRUCTURE/VIOSTATE/
  758.        INTEGER*2 cb
  759.        INTEGER*2 type
  760.        UNION
  761.           MAP                              ! if "type" = 0
  762.              INTEGER*2 iFirst
  763.              INTEGER*2 acolor(16)
  764.           END MAP
  765.           MAP                              ! if "type" = 1
  766.              INTEGER*2 color
  767.           END MAP
  768.           MAP                              ! if "type" = 2
  769.              INTEGER*2 fs
  770.           END MAP
  771.        END UNION
  772.     END STRUCTURE
  773.     RECORD/VIOSTATE/ VioStatePtr
  774.  
  775.     END
  776.  
  777.     INTERFACE TO INTEGER*2 FUNCTION VioSetState
  778.      +  [ALIAS: 'VIOSETSTATE']
  779.      +  (VioStatePtr,                           ! request block
  780.      +   VioHandle [VALUE])                     ! video handle
  781.  
  782.     INTEGER*2 VioHandle
  783.     STRUCTURE/VIOSTATE/
  784.        INTEGER*2 cb
  785.        INTEGER*2 type
  786.        UNION
  787.           MAP                              ! if "type" = 0
  788.              INTEGER*2 iFirst
  789.              INTEGER*2 acolor(16)
  790.           END MAP
  791.           MAP                              ! if "type" = 1
  792.              INTEGER*2 color
  793.           END MAP
  794.           MAP                              ! if "type" = 2
  795.              INTEGER*2 fs
  796.           END MAP
  797.        END UNION
  798.     END STRUCTURE
  799.     RECORD/VIOSTATE/ VioStatePtr
  800.  
  801.     END
  802.  
  803. $ENDIF   ! INCL_VIO
  804.  
  805. $IF defined(INCL_MOU)
  806.  
  807. C   Mouse prototypes
  808.  
  809.     INTERFACE TO INTEGER*2 FUNCTION MouRegister
  810.      +  [ALIAS: 'MOUREGISTER']
  811.      +  (ModuleName,                            ! module name
  812.      +   EntryName,                             ! entry-point name
  813.      +   Mask [VALUE])                          ! function mask
  814.  
  815.     CHARACTER*(*) ModuleName, EntryName
  816.     INTEGER Mask*4
  817.  
  818.     END
  819.  
  820.     INTERFACE TO INTEGER*2 FUNCTION MouDeregister
  821.      +  [ALIAS: 'MOUDEREGISTER']
  822.  
  823.     END
  824.  
  825.     INTERFACE TO INTEGER*2 FUNCTION MouFlushQue
  826.      +  [ALIAS: 'MOUFLUSHQUE']
  827.      +  (DeviceHandle [VALUE])                  ! device handle
  828.  
  829.     INTEGER*2 DeviceHandle
  830.  
  831.     END
  832.  
  833.     INTERFACE TO INTEGER*2 FUNCTION MouGetHotKey
  834.      +  [ALIAS: 'MOUGETHOTKEY']
  835.      +  (ButtonMask,                            ! button mask
  836.      +   DeviceHandle [VALUE])                  ! device handle
  837.  
  838.     INTEGER*2 ButtonMask, DeviceHandle
  839.  
  840.     END
  841.  
  842.     INTERFACE TO INTEGER*2 FUNCTION MouSetHotKey
  843.      +  [ALIAS: 'MOUSETHOTKEY']
  844.      +  (ButtonMask,                            ! button mask
  845.      +   DeviceHandle [VALUE])                  ! device handle
  846.  
  847.     INTEGER*2 ButtonMask, DeviceHandle
  848.  
  849.     END
  850.  
  851.     INTERFACE TO INTEGER*2 FUNCTION MouGetPtrPos
  852.      +  [ALIAS: 'MOUGETPTRPOS']
  853.      +  (PtrLocPtr,                             ! info structure
  854.      +   DeviceHandle [VALUE])                  ! device handle
  855.  
  856.     INTEGER*2 DeviceHandle
  857.     STRUCTURE/PTRLOC/
  858.        INTEGER*2 row
  859.        INTEGER*2 col
  860.     END STRUCTURE
  861.     RECORD/PTRLOC/ PtrLocPtr
  862.  
  863.     END
  864.  
  865.     INTERFACE TO INTEGER*2 FUNCTION MouSetPtrPos
  866.      +  [ALIAS: 'MOUSETPTRPOS']
  867.      +  (PtrLocPtr,                             ! info structure
  868.      +   DeviceHandle [VALUE])                  ! device handle
  869.  
  870.     INTEGER*2 DeviceHandle
  871.     STRUCTURE/PTRLOC/
  872.        INTEGER*2 row
  873.        INTEGER*2 col
  874.     END STRUCTURE
  875.     RECORD/PTRLOC/ PtrLocPtr
  876.  
  877.     END
  878.  
  879.     INTERFACE TO INTEGER*2 FUNCTION MouGetPtrShape
  880.      +  [ALIAS:' MOUGETPTRSHAPE']
  881.      +  (PtrBuffer,                             ! shape buffer
  882.      +   PtrShapePtr,                           ! defintion structure
  883.      +   DeviceHandle [VALUE])                  ! device handle
  884.  
  885.     INTEGER*2 PtrBuffer(*)*1, DeviceHandle
  886.     STRUCTURE/PTRSHAPE/
  887.        INTEGER*2 cb
  888.        INTEGER*2 col
  889.        INTEGER*2 row
  890.        INTEGER*2 colHot
  891.        INTEGER*2 colRow
  892.     END STRUCTURE
  893.     RECORD/PTRSHAPE/ PtrShapePtr
  894.  
  895.     END
  896.  
  897.     INTERFACE TO INTEGER*2 FUNCTION MouSetPtrShape
  898.      +  [ALIAS:' MOUSETPTRSHAPE']
  899.      +  (PtrBuffer,                             ! shape buffer
  900.      +   PtrShapePtr,                           ! defintion structure
  901.      +   DeviceHandle [VALUE])                  ! device handle
  902.  
  903.     INTEGER*2 PtrBuffer(*)*1, DeviceHandle
  904.     STRUCTURE/PTRSHAPE/
  905.        INTEGER*2 cb
  906.        INTEGER*2 col
  907.        INTEGER*2 row
  908.        INTEGER*2 colHot
  909.        INTEGER*2 colRow
  910.     END STRUCTURE
  911.     RECORD/PTRSHAPE/ PtrShapePtr
  912.  
  913.     END
  914.  
  915.     INTERFACE TO INTEGER*2 FUNCTION MouGetDevStatus
  916.      +  [ALIAS: 'MOUGETDEVSTATUS']
  917.      +  (DeviceStatus,                          ! current stat
  918.      +   DeviceHandle [VALUE])                  ! device handle
  919.  
  920.     INTEGER*2 DeviceStatus, DeviceHandle
  921.  
  922.     END
  923.  
  924.     INTERFACE TO INTEGER*2 FUNCTION MouGetNumButtons
  925.      +  [ALIAS: 'MOUGETNUMBUTTONS']
  926.      +  (Buttons,                               ! number buttons
  927.      +   DeviceHandle [VALUE])                  ! device handle
  928.  
  929.     INTEGER*2 Buttons, DeviceHandle
  930.  
  931.     END
  932.  
  933.     INTERFACE TO INTEGER*2 FUNCTION MouGetNumMickeys
  934.      +  [ALIAS: 'MOUGETNUMMICKEYS']
  935.      +  (Mickeys,                               ! mickeys per cm
  936.      +   DeviceHandle [VALUE])                  ! device handle
  937.  
  938.     INTEGER*2 Mickeys, DeviceHandle
  939.  
  940.     END
  941.  
  942.     INTERFACE TO INTEGER*2 FUNCTION MouReadEventQue
  943.      +  [ALIAS: 'MOUREADEVENTQUE']
  944.      +  (MouEventInfoPtr,                       ! event structure
  945.      +   NoWait,                                ! wait/no wait
  946.      +   DeviceHandle [VALUE])                  ! device handle
  947.  
  948.     INTEGER*2 NoWait, DeviceHandle
  949.     STRUCTURE/MOUEVENTINFO/
  950.        INTEGER*2 fs
  951.        INTEGER*4 time
  952.        INTEGER*2 row
  953.        INTEGER*2 col
  954.     END STRUCTURE
  955.     RECORD/MOUEVENTINFO/ MouEventInfoPtr
  956.  
  957.     END
  958.  
  959.     INTERFACE TO INTEGER*2 FUNCTION MouGetNumQueEl
  960.      +  [ALIAS: 'MOUGETNUMQUEEL']
  961.      +  (MouQueInfoPtr,                         ! queue structure
  962.      +   DeviceHandle [VALUE])                  ! device handle
  963.  
  964.     INTEGER*2 DeviceHandle
  965.     STRUCTURE/MOUQUEINFO/
  966.        INTEGER*2 cEvents
  967.        INTEGER*2 cmaxEvents
  968.     END STRUCTURE
  969.     RECORD/MOUQUEINFO/ MouQueInfoPtr
  970.  
  971.     END
  972.  
  973.     INTERFACE TO INTEGER*2 FUNCTION MouGetEventMask
  974.      +  [ALIAS: 'MOUGETEVENTMASK']
  975.      +  (EventMask,                             ! event mask
  976.      +   DeviceHandle [VALUE])                  ! device handle
  977.  
  978.     INTEGER*2 EventMask, DeviceHandle
  979.  
  980.     END
  981.  
  982.     INTERFACE TO INTEGER*2 FUNCTION MouSetEventMask
  983.      +  [ALIAS: 'MOUSETEVENTMASK']
  984.      +  (EventMask,                             ! event mask
  985.      +   DeviceHandle [VALUE])                  ! device handle
  986.  
  987.     INTEGER*2 EventMask, DeviceHandle
  988.  
  989.     END
  990.  
  991.     INTERFACE TO INTEGER*2 FUNCTION MouGetScaleFact
  992.      +  [ALIAS: 'MOUGETSCALEFACT']
  993.      +  (ScaleFactPtr,                          ! scaling structure
  994.      +   DeviceHandle [VALUE])                  ! device handle
  995.  
  996.     INTEGER*2 DeviceHandle
  997.     STRUCTURE/SCALEFACT/
  998.        INTEGER*2 rowScale
  999.        INTEGER*2 colScale
  1000.     END STRUCTURE
  1001.     RECORD/SCALEFACT/ ScaleFactPtr
  1002.  
  1003.     END
  1004.  
  1005.     INTERFACE TO INTEGER*2 FUNCTION MouSetScaleFact
  1006.      +  [ALIAS: 'MOUSETSCALEFACT']
  1007.      +  (ScaleFactPtr,                          ! scaling structure
  1008.      +   DeviceHandle [VALUE])                  ! device handle
  1009.  
  1010.     INTEGER*2 DeviceHandle
  1011.     STRUCTURE/SCALEFACT/
  1012.        INTEGER*2 rowScale
  1013.        INTEGER*2 colScale
  1014.     END STRUCTURE
  1015.     RECORD/SCALEFACT/ ScaleFactPtr
  1016.  
  1017.     END
  1018.  
  1019.     INTERFACE TO INTEGER*2 FUNCTION MouOpen
  1020.      +  [ALIAS: 'MOUOPEN']
  1021.      +  (DriverName,                            ! driver name
  1022.      +   DeviceHandle)                          ! device handle
  1023.  
  1024.     CHARACTER*(*) DriverName
  1025.     INTEGER*2 DeviceHandle
  1026.  
  1027.     END
  1028.  
  1029.     INTERFACE TO INTEGER*2 FUNCTION MouClose
  1030.      +  [ALIAS: 'MOUCLOSE']
  1031.      +  (DeviceHandle [VALUE])                  ! device handle
  1032.  
  1033.     INTEGER*2 DeviceHandle
  1034.  
  1035.     END
  1036.  
  1037.     INTERFACE TO INTEGER*2 FUNCTION MouRemovePtr
  1038.      +  [ALIAS: 'MOUREMOVEPTR']
  1039.      +  (NoPtrRectPtr,                          ! pointer structure
  1040.      +   DeviceHandle [VALUE])                  ! device handle
  1041.  
  1042.     INTEGER*2 DeviceHandle
  1043.     STRUCTURE/NOPTRRECT/
  1044.        INTEGER*2 row
  1045.        INTEGER*2 col
  1046.        INTEGER*2 cRow
  1047.        INTEGER*2 cCol
  1048.     END STRUCTURE
  1049.     RECORD/NOPTRRECT/ NoPtrRectPtr
  1050.  
  1051.     END
  1052.  
  1053.     INTERFACE TO INTEGER*2 FUNCTION MouDrawPtr
  1054.      +  [ALIAS: 'MOUDRAWPTR']
  1055.      +  (DeviceHandle [VALUE])                  ! device handle
  1056.  
  1057.     INTEGER*2 DeviceHandle
  1058.  
  1059.     END
  1060.  
  1061.     INTERFACE TO INTEGER*2 FUNCTION MouSetDevStatus
  1062.      +  [ALIAS: 'MOUSETDEVSTATUS']
  1063.      +  (DeviceStatus,                          ! new status flags
  1064.      +   DeviceHandle [VALUE])                  ! device handle
  1065.  
  1066.     INTEGER*2 DeviceStatus, DeviceHandle
  1067.  
  1068.     END
  1069.  
  1070.     INTERFACE TO INTEGER*2 FUNCTION MouInitReal
  1071.      +  [ALIAS: 'MOUINITREAL']
  1072.      +  (DriverName)                            ! driver name
  1073.  
  1074.     CHARACTER*(*) DriverName
  1075.  
  1076.     END
  1077.  
  1078.     INTERFACE TO INTEGER*2 FUNCTION MouSynch
  1079.      +  [ALIAS: 'MOUSYNCH']
  1080.      +  (DeviceHandle [VALUE])                  ! device handle
  1081.  
  1082.     INTEGER*2 DeviceHandle
  1083.  
  1084.     END
  1085.  
  1086. $ENDIF    ! INCL_MOU
  1087.