home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / pascal2c / sysdevs.h < prev    next >
C/C++ Source or Header  |  1992-08-03  |  13KB  |  492 lines

  1. /* Header for module SYSDEVS, generated by p2c */
  2. #ifndef SYSDEVS_H
  3. #define SYSDEVS_H
  4.  
  5.  
  6.  
  7. #ifndef SYSGLOBALS_H
  8. #include <sysgloba.h>
  9. #endif
  10.  
  11.  
  12.  
  13. #ifdef SYSDEVS_G
  14. # define vextern
  15. #else
  16. # define vextern extern
  17. #endif
  18.  
  19.  
  20.  
  21. /** DUMMY DECLARATIONS ***********************************/
  22. /** CRT **************************************************/
  23. /****** THIS SECTION HAS HARD OFFSET REFERENCES **********/
  24. /*      IN MODULES CRTB (ASSY FILE GASSM)                */
  25.  
  26.  
  27.  
  28. /* 3/25/85 */
  29. /* 3/25/85 */
  30. /*built in crt*/
  31. /* CRT CONTROL CHARS */
  32. /* CRT INFO & INPUT CHARS */
  33.  
  34. typedef union CRTWORD {
  35.     struct {
  36.     Char HIGHLIGHTBYTE, CHARACTER;
  37.     } U1;
  38.     short WHOLEWORD;
  39. } CRTWORD;
  40.  
  41. typedef enum {
  42.     CLLPUT, CLLSHIFTL, CLLSHIFTR, CLLCLEAR, CLLDISPLAY, PUTSTATUS
  43. } CRTLLOPS;
  44.  
  45. typedef enum {
  46.     DBINFO, DBEXCG, DBGOTOXY, DBPUT, DBINIT, DBCLEAR, DBCLINE, DBSCROLLUP,
  47.     DBSCROLLDN, DBSCROLLL, DBSCROLLR, DBHIGHL
  48. } DBCRTOPS;
  49.  
  50. typedef struct DBCINFO {
  51.     Char *SAVEAREA;
  52.     long SAVESIZE, DCURSORADDR;
  53.     short XMIN, XMAX, YMIN, YMAX, CURSX, CURSY;
  54.     Char C;
  55.     boolean AREAISDBCRT, CHARISMAPPED;
  56.     short DEBUGHIGHLIGHT;
  57. } DBCINFO;
  58.  
  59. typedef uchar crtconsttype[12];
  60.  
  61. typedef struct crtfrec {
  62.     unsigned nobreak : 1, stupid : 1, slowterm : 1, hasxycrt : 1,
  63.          haslccrt : 1, hasclock : 1, canupscroll : 1, candownscroll : 1;
  64. } crtfrec;
  65.  
  66. typedef unsigned short b9;
  67.  
  68. typedef unsigned short b14;
  69.  
  70. typedef struct crtcrec {
  71.     Char rlf, ndfs, eraseeol, eraseeos, home, escape, backspace;
  72.     uchar fillcount;
  73.     Char clearscreen, clearline;
  74.     unsigned short prefixed;
  75. } crtcrec;
  76.  
  77. typedef struct crtirec {
  78.     short width, height;
  79.     long crtmemaddr, crtcontroladdr, keybufferaddr, progstateinfoaddr;
  80.     short keybuffersize;
  81.     crtconsttype crtcon;
  82.     Char right, left, down, up, badch, chardel, stop, break_, flush, eof,
  83.      altmode, linedel, backspace, etx, prefix;
  84.     unsigned short prefixed;
  85.     long cursormask, spare;
  86. } crtirec;
  87.  
  88. typedef struct environ {
  89.     crtfrec miscinfo;
  90.     long crttype;
  91.     crtcrec crtctrl;
  92.     crtirec crtinfo;
  93. } environ;
  94.  
  95. typedef enum {
  96.     NOCRT, ALPHATYPE, BITMAPTYPE, SPECIALCRT1, SPECIALCRT2
  97. } crtkinds;
  98.  
  99.  
  100.  
  101. /* CURSOR X POSITION */
  102. /* CURSOR Y POSITION */
  103. /* ACTIVE ALPHA DRIVER TYPE */
  104. /* ADDRESS OF BITMAP CONTROL SPACE */
  105. /* ADDRESS OF BITMAP FRAME BUFFER */
  106. /* REGISTER COPIES FOR BITMAP DISPLAY */
  107. /* MUST BE IN GLOBALS BECAUSE REGISTERS */
  108. /* ARE NOT READABLE -- MAY BE UNDEFINED */
  109. /** KEYBOARD ********************************************/
  110. #define KBD_ENABLE      0
  111. #define KBD_DISABLE     1
  112. #define SET_AUTO_DELAY  2
  113. #define SET_AUTO_REPEAT 3
  114. #define GET_AUTO_DELAY  4
  115. #define GET_AUTO_REPEAT 5
  116. #define SET_KBDTYPE     6
  117. #define SET_KBDLANG     7
  118.  
  119.  
  120.  
  121. /*ADDED FOR 3.1--SFB-5/22/85*/
  122.  
  123. typedef enum {
  124.     NOKBD, LARGEKBD, SMALLKBD, ITFKBD, SPECIALKBD1, SPECIALKBD2
  125. } KEYBOARDTYPE;
  126.  
  127. typedef enum {
  128.     NO_KBD, FINISH_KBD, BELGIAN_KBD, CDN_ENG_KBD, CDN_FR_KBD, NORWEGIAN_KBD,
  129.     DANISH_KBD, DUTCH_KBD, SWISS_GR_KBD, SWISS_FR_KBD, SPANISH_EUR_KBD,
  130.     SPANISH_LATIN_KBD, UK_KBD, ITALIAN_KBD, FRENCH_KBD, GERMAN_KBD,
  131.     SWEDISH_KBD, SPANISH_KBD, KATAKANA_KBD, US_KBD, ROMAN8_KBD, NS1_KBD,
  132.     NS2_KBD, NS3_KBD, SWISS_GR_B_KBD, SWISS_FR_B_KBD
  133. } LANGTYPE;
  134.  
  135. typedef enum {
  136.     M_NONE, M_SYSNORM, M_SYSSHIFT, M_U1, M_U2, M_U3, M_U4
  137. } MENUTYPE;
  138.  
  139.  
  140.  
  141. /* KEYBOARD CONFIGURATION JUMPER */
  142. /** ENABLE / DISABLE *************************************/
  143. #define KBDMASK         1
  144. #define RESETMASK       2
  145. #define TIMERMASK       4
  146. #define PSIMASK         8
  147. #define FHIMASK         16
  148.  
  149.  
  150.  
  151. /* ENABLE, DISABLE */
  152. /** BEEPER ***********************************************/
  153. /** RPG **************************************************/
  154. #define RPG_ENABLE      0
  155. #define RPG_DISABLE     1
  156. #define SET_RPG_RATE    2
  157. #define GET_RPG_RATE    3
  158.  
  159.  
  160.  
  161. /** BATTERY **********************************************/
  162.  
  163.  
  164.  
  165. /** CLOCK ************************************************/
  166. /*CUPDATE ADDED FOR BOBCAT 4/11/85 SFB*/
  167.  
  168. typedef struct RTCTIME {
  169.     long PACKEDTIME, PACKEDDATE;
  170. } RTCTIME;
  171.  
  172. typedef enum {
  173.     CGETDATE, CGETTIME, CSETDATE, CSETTIME
  174. } CLOCKFUNC;
  175.  
  176. typedef enum {
  177.     CGET, CSET, CUPDATE
  178. } CLOCKOP;
  179.  
  180. typedef union CLOCKDATA {
  181.     timerec TIMETYPE;
  182.     daterec DATETYPE;
  183. } CLOCKDATA;
  184.  
  185.  
  186.  
  187. /* CLOCK MODULE INTERFACE */
  188. /* CARD DRIVER INTERFACE */
  189. /** TIMER ************************************************/
  190.  
  191. typedef enum {
  192.     CYCLICT, PERIODICT, DELAYT, DELAY7T, MATCHT
  193. } TIMERTYPES;
  194.  
  195. typedef enum {
  196.     SETT, READT, GETTINFO
  197. } TIMEROPTYPE;
  198.  
  199. typedef union TIMERDATA {
  200.     long COUNT;
  201.     timerec MATCH;
  202.     struct {
  203.     long RESOLUTION, RANGE;
  204.     } U2;
  205. } TIMERDATA;
  206.  
  207.  
  208.  
  209. /** KEYBUFFER ********************************************/
  210. #define KMAXBUFSIZE     255
  211.  
  212.  
  213.  
  214. typedef enum {
  215.     KGETCHAR, KAPPEND, KNONADVANCE, KCLEAR, KDISPLAY, KGETLAST, KPUTFIRST
  216. } KOPTYPE;
  217.  
  218. typedef Char KBUFTYPE[KMAXBUFSIZE + 1];
  219.  
  220. typedef struct KBUFREC {
  221.     boolean ECHO;
  222.     Char NON_CHAR;
  223.     long MAXSIZE, SIZE, INP, OUTP;
  224.     Char *BUFFER;
  225. } KBUFREC;
  226.  
  227.  
  228.  
  229. /*0  s or f = STEP/FLASH IN PROGRESS (WAITING FOR TRAP #0)*/
  230. /*1..5  last executed/current line number */
  231. /*6  S=SYSTEM  U=USER  DEFINITION FOR ITF SOFT KEYS*/
  232. /*   BLANK FOR NON ITF KEYBOARDS */
  233. /*7  RUNLIGHT */
  234. /** KEY TRANSLATION SERVICES *********************************/
  235. /* ADDED NONA_ALPHA_KEY 5/9/84 RQ/SFB */
  236.  
  237. typedef enum {
  238.     KPASSTHRU, KSHIFT_EXTC, KPASS_EXTC
  239. } KEYTRANSTYPE;
  240.  
  241. typedef enum {
  242.     ALPHA_KEY, NONADV_KEY, SPECIAL_KEY, IGNORED_KEY, NONA_ALPHA_KEY
  243. } KEYTYPE;
  244.  
  245. typedef struct LANGCOMREC {
  246.     uchar STATUS, DATA;
  247.     Char KEY;
  248.     KEYTYPE RESULT;
  249.     boolean SHIFT, CONTROL, EXTENSION;
  250. } LANGCOMREC;
  251.  
  252. typedef struct LANGKEYREC {
  253.     boolean NO_CAPSLOCK, NO_SHIFT, NO_CONTROL, NO_EXTENSION;
  254.     KEYTYPE KEYCLASS;
  255.     Char KEYS[2];
  256. } LANGKEYREC;
  257.  
  258. typedef struct LANGRECORD {
  259.     boolean CAN_NONADV;
  260.     LANGTYPE LANGCODE;
  261.     _PROCEDURE SEMANTICS;
  262.     LANGKEYREC KEYTABLE[128];
  263. } LANGRECORD;
  264.  
  265.  
  266.  
  267. /** HPHIL ************************************************/
  268. /*MOVED INTO SYSDEVS 4/6/84 SFB*/
  269. #define le_configured   0x80
  270. #define le_error        0x81
  271. #define le_timeout      0x82
  272. #define le_loopdown     0x84
  273. #define lmaxdevices     7
  274.  
  275.  
  276.  
  277. /*UNINIT ADDED 4/8/85 SFB*/
  278. /*HPHILOP DEFINED AS NEW TYPE 4/6/84 SFB*/
  279. /*5 PROCEDURES HOOKED AS TYPE HPHILCMDPROC 4/6/84 SFB*/
  280. /* DEVICE DESCRIBE RECORD */
  281. /* reserved : 0..3;        {DELETED 3/25/85 SFB*/
  282. /*3/27/85 SFB*/
  283. /*3/26/85 SFB*/
  284. /*ADDED 3/15/85 SFB*/
  285. /*ADDED 3/15/85 SFB*/
  286. /*REDEFINED AS RECORD - 4/6/84 SFB*/
  287. /* last loop command sent */
  288. /* data bye in / out */
  289. /* error occured on last operation */
  290. /* now doing reconfigure */
  291. /* last sent command is done */
  292. /* loop is configured */
  293. /* reading poll data */
  294. /* 3.0 BUG #39 3/17/84 */
  295.  
  296. typedef enum {
  297.     datastarting, dataended, resetdevice, uninitdevice
  298. } loopdvrop;
  299.  
  300. typedef enum {
  301.     RAWSHIFTOP, NORMSHIFTOP, CHECKLOOPOP, CONFIGUREOP, LCOMMANDOP
  302. } HPHILOP;
  303.  
  304. typedef union descriprec {
  305.     struct {
  306.     uchar id;
  307.     unsigned twosets : 1, abscoords : 1, size16 : 1, hasprompts : 1,
  308.          ext_desc : 1, security : 1, numaxes : 2;
  309.     Signed int counts : 16, maxcountx : 16, maxcounty : 16,
  310.            maxcountz : 16;
  311.     unsigned promptack : 1, nprompts : 3, proximity : 1, nbuttons : 3;
  312.     } U1;
  313.     Char darray[11];
  314. } descriprec;
  315.  
  316. typedef struct devicerec {
  317.     long devstate;
  318.     descriprec descrip;
  319.     _PROCEDURE opsproc;
  320.     _PROCEDURE dataproc;
  321. } devicerec;
  322.  
  323. typedef struct loopdriverrec {
  324.     uchar lowid, highid, daddr;
  325.     _PROCEDURE opsproc;
  326.     _PROCEDURE dataproc;
  327.     struct loopdriverrec *next;
  328. } loopdriverrec;
  329.  
  330. typedef struct LOOPCONTROLREC {
  331.     boolean rawmode;
  332.     devicerec loopdevices[lmaxdevices];
  333.     char loopdevice;
  334.     uchar loopcmd, loopdata;
  335.     boolean looperror, loopinconfig, loopcmddone, loopisok, loopdevreading;
  336. } LOOPCONTROLREC;
  337.  
  338.  
  339.  
  340. /*NEW TO END OF HPHIL_COMM_REC TYPE 3/26/85 SFB*/
  341. /*DRIVER TYPES*/
  342. #define NODRIVER        0
  343. #define ABSLOCATOR      1
  344.  
  345. /*range 1..15 reserved for DGL*/
  346. /*CODETYPES FROM POLLBLOCK (OR OTHER HPHIL OPCODE)*/
  347. #define NOCODES         0
  348. #define ASCIICODES      1
  349. #define SET1CODES       2
  350. #define SET2CODES       3
  351.  
  352.  
  353.  
  354. /*3/25/85 SFB*/
  355. /*3/25/85 SFB*/
  356. /*stop updating data after button press/event*/
  357. /*capture data in ISR*/
  358. /*dvr_comm_rec busy, delay update from ISR*/
  359. /*bit/loopaddress that driver should service */
  360. /*                                    put 0 where driver should NOT service device */
  361. /*                                    with this dvr_comm_rec !*/
  362. /*call update to flush delayed poll data update*/
  363. /*next comm record*/
  364. /*for extensibility use as pointer/datarec*/
  365. /*HPHIL intrinsic data types from poll/command*/
  366. /*describes content of codes*/
  367. /*extensible for variant*/
  368.  
  369. typedef union HPHIL_COMM_REC_TYPE {
  370.     struct {
  371.     short dvr_type;
  372.     char dev_addr;
  373.     boolean latch, active, reading;
  374.     uchar devices;
  375.     _PROCEDURE update;
  376.     union HPHIL_COMM_REC_TYPE *link;
  377.     long extend;
  378.     short xloc, yloc, zloc, codetype, ncodes;
  379.     Char codes[16];
  380.     } U1;
  381.     Char barray[54];
  382. } HPHIL_COMM_REC_TYPE;
  383.  
  384.  
  385.  
  386. vextern environ *SYSCOM;
  387. vextern boolean ALPHASTATE, GRAPHICSTATE;
  388. vextern _PROCEDURE CRTIOHOOK;
  389. vextern _PROCEDURE TOGGLEALPHAHOOK;
  390. vextern _PROCEDURE TOGGLEGRAPHICSHOOK;
  391. vextern _PROCEDURE DUMPALPHAHOOK;
  392. vextern _PROCEDURE DUMPGRAPHICSHOOK;
  393. vextern _PROCEDURE UPDATECURSORHOOK;
  394. vextern _PROCEDURE CRTINITHOOK;
  395. vextern _PROCEDURE CRTLLHOOK;
  396. vextern _PROCEDURE DBCRTHOOK;
  397. vextern short XPOS, YPOS;
  398. vextern crtkinds CURRENTCRT;
  399. vextern long BITMAPADDR, FRAMEADDR;
  400. vextern short REPLREGCOPY, WINDOWREGCOPY, WRITEREGCOPY;
  401. vextern _PROCEDURE KBDREQHOOK;
  402. vextern _PROCEDURE KBDIOHOOK;
  403. vextern _PROCEDURE KBDISRHOOK;
  404. vextern _PROCEDURE KBDPOLLHOOK;
  405. vextern KEYBOARDTYPE KBDTYPE;
  406. vextern uchar KBDCONFIG;
  407. vextern LANGTYPE KBDLANG;
  408. vextern Char *SYSMENU, *SYSMENUSHIFT;
  409. vextern MENUTYPE MENUSTATE;
  410. vextern _PROCEDURE MASKOPSHOOK, BEEPERHOOK;
  411. vextern uchar BFREQUENCY, BDURATION;
  412. vextern _PROCEDURE RPGREQHOOK;
  413. vextern _PROCEDURE RPGISRHOOK;
  414. vextern boolean BATTERYPRESENT;
  415. vextern _PROCEDURE BATCMDHOOK;
  416. vextern _PROCEDURE BATREADHOOK;
  417. vextern _PROCEDURE CLOCKREQHOOK;
  418. vextern _PROCEDURE CLOCKIOHOOK;
  419. vextern _PROCEDURE TIMERIOHOOK;
  420. vextern _PROCEDURE TIMERISRHOOK;
  421. vextern KBUFREC *KEYBUFFER;
  422. vextern _PROCEDURE KBDWAITHOOK;
  423. vextern _PROCEDURE KBDRELEASEHOOK;
  424. vextern Char STATUSLINE[8];
  425. vextern LANGCOMREC LANGCOM;
  426. vextern LANGRECORD *LANGTABLE[2];
  427. vextern char LANGINDEX;
  428. vextern _PROCEDURE KBDTRANSHOOK;
  429. vextern KEYTRANSTYPE TRANSMODE;
  430. vextern boolean KBDSYSMODE, KBDALTLOCK, KBDCAPSLOCK;
  431. vextern loopdriverrec *loopdriverlist;
  432. vextern LOOPCONTROLREC *LOOPCONTROL;
  433. vextern _PROCEDURE HPHILCMDHOOK;
  434. vextern HPHIL_COMM_REC_TYPE *HPHIL_DATA_LINK;
  435.  
  436.  
  437.  
  438. /*4/6/84 SFB*/
  439. /*4/6/84 SFB*/
  440. /*3/13/85 SFB*/
  441. /*-----------------------------------------------------------------------------*/
  442. extern Void SYSDEV_INIT PV( );
  443.  
  444. /** BEEPER ***********************************************/
  445. extern Void BEEP PV( );
  446. extern Void BEEPER PP((int FREQUENCY, int DURATION));
  447.  
  448. /** RPG **************************************************/
  449. extern Void SETRPGRATE PP((int RATE));
  450.  
  451. /** KEYBOARD *********************************************/
  452. extern Void KBDSETUP PP((int CMD, int VALUE));
  453. extern Void KBDIO PP((fib *FP, int REQUEST, Char *BUFFER, long BUFSIZE,
  454.               long POSITION));
  455. extern Void lockedaction PP((_PROCEDURE a));
  456.  
  457. /** CRT **************************************************/
  458. extern Void CRTIO PP((fib *FP, int REQUEST, Char *BUFFER, long BUFSIZE,
  459.               long POSITION));
  460. extern Void DUMMYCRTLL PP((int OP, long *POSITION, int C));
  461.  
  462. /** BATTERY **********************************************/
  463. extern Void BATCOMMAND PP((int CMD, long NUMDATA, int B1, int B2, int B3,
  464.                int B4, int B5));
  465. extern uchar BATBYTERECEIVED PV( );
  466.  
  467. /** CLOCK ************************************************/
  468. extern long sysclock PV( );
  469.  
  470. /*centiseconds from midnight*/
  471. extern Void sysdate PP((daterec *thedate));
  472. extern Void systime PP((timerec *thetime));
  473. extern Void setsysdate PP((daterec thedate));
  474. extern Void setsystime PP((timerec thetime));
  475.  
  476. /** KEYBUFFER ********************************************/
  477. extern Void KEYBUFOPS PP((int OP, Char *C));
  478.  
  479. /** STATUSLINE *******************************************/
  480. extern Void SETSTATUS PP((long N, int C));
  481. extern Char RUNLIGHT PV( );
  482. extern Void SETRUNLIGHT PP((int C));
  483.  
  484.  
  485.  
  486. #undef vextern
  487.  
  488. #endif /*SYSDEVS_H*/
  489.  
  490. /* End. */
  491.  
  492.