sysdevs.h
上传用户:upcnvip
上传日期:2007-01-06
资源大小:474k
文件大小:12k
源码类别:

编译器/解释器

开发平台:

C/C++

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