home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_07 / LATTIC_3.ZIP / HEADERS / OSBIND.H < prev    next >
C/C++ Source or Header  |  1990-08-20  |  12KB  |  343 lines

  1. /*
  2.  * osbind.h - interface to TOS for Lattice C 5
  3.  *
  4.  * This file contains the general interface to C5 via #pragmas
  5.  *
  6.  * Started 10/1/90 Alex G. Kiernan
  7.  *
  8.  * Copyright (c) 1990 HiSoft
  9.  */
  10.  
  11. #ifndef _OSBIND_H
  12. #define _OSBIND_H
  13.  
  14. #if !defined __STDC__ || __STDC__!=1
  15. long int gemdos(int, ...);
  16. long int bios(int, ...);
  17. long int xbios(int, ...);
  18. #endif
  19.  
  20. long int _gemdos(int, ...);
  21. long int _bios(int, ...);
  22. long int _xbios(int, ...);
  23.  
  24. #ifndef __NO_OSBIND_PRAGMAS
  25. void _vgv(int);
  26. long _lgv(int);
  27. short _sgv(int);
  28. void *_pgv(int);
  29. void *_pgl(int,long);
  30. long _lgs(int,int);
  31. void _vgs(int,int);
  32. long _lgp(int,void *);
  33. void *_pgs(int,int);
  34. void *_pgp(int,void *);
  35. void _vgp(int,void *);
  36. unsigned short _ugv(int);
  37. long _lgu(int,unsigned int);
  38. void _vgls(int,long,int);
  39. long _lgss(int,int,int);
  40. long _lgc(int,const char *);
  41. void _vgc(int,const char *);
  42. long _lgds(int,char *,int);
  43. long _lgns(int,long *,int);
  44. long _lglss(int,long,int,int);
  45. long _lgslp(int,int,long,void *);
  46. long _lgspl(int,int,void *,long);
  47. long _lgcs(int,const char *,int);
  48. long _lgrss(int,short *,int,int);
  49. long _lgslq(int,int,long,const void *);
  50. long _lgcss(int,const char *,int,int);
  51. long _lgscc(int,int,const char *,const char *);
  52. long _lgsccc(int,int,const char *,const char *,const char *);
  53.  
  54. #pragma inline _vgv((short))    {register d2,a2; "4e41";}
  55. #pragma inline d0=_lgv((short))    {register d2,a2; "4e41";}
  56. #pragma inline d0=_sgv((short))    {register d2,a2; "4e41";}
  57. #pragma inline d0=_pgv((short))    {register d2,a2; "4e41";}
  58. #pragma inline d0=_lgs((short),(short))    {register d2,a2; "4e41";}
  59. #pragma inline d0=_lgu((short),(short))    {register d2,a2; "4e41";}
  60. #pragma inline d0=_lgp((short),)    {register d2,a2; "4e41";}
  61. #pragma inline _vgs((short),(short))    {register d2,a2; "4e41";}
  62. #pragma inline d0=_pgl((short),)    {register d2,a2; "4e41";}
  63. #pragma inline d0=_pgs((short),(short))    {register d2,a2; "4e41";}
  64. #pragma inline d0=_pgp((short),)    {register d2,a2; "4e41";}
  65. #pragma inline _vgp((short),)    {register d2,a2; "4e41";}
  66. #pragma inline d0=_ugv((short))    {register d2,a2; "4e41";}
  67. #pragma inline _vgls((short),,(short))    {register d2,a2; "4e41";}
  68. #pragma inline d0=_lgc((short),)    {register d2,a2; "4e41";}
  69. #pragma inline _vgc((short),)    {register d2,a2; "4e41";}
  70. #pragma inline d0=_lgds((short),,(short))    {register d2,a2; "4e41";}
  71. #pragma inline d0=_lgns((short),,(short))    {register d2,a2; "4e41";}
  72. #pragma inline d0=_lgss((short),(short),(short))    {register d2,a2; "4e41";}
  73. #pragma inline d0=_lglss((short),,(short),(short))    {register d2,a2; "4e41";}
  74. #pragma inline d0=_lgslp((short),(short),,)    {register d2,a2; "4e41";}
  75. #pragma inline d0=_lgspl((short),(short),,)    {register d2,a2; "4e41";}
  76. #pragma inline d0=_lgcs((short),,(short))    {register d2,a2; "4e41";}
  77. #pragma inline _lgrss((short),,(short),(short))    {register d2,a2; "4e41";}
  78. #pragma inline d0=_lgslq((short),(short),,)    {register d2,a2; "4e41";}
  79. #pragma inline d0=_lgcss((short),,(short),(short))    {register d2,a2; "4e41";}
  80. #pragma inline d0=_lgscc((short),(short),,)    {register d2,a2; "4e41";}
  81. #pragma inline d0=_lgsccc((short),(short),,,)    {register d2,a2; "4e41";}
  82. #else
  83. #define _lgc    _gemdos
  84. #define _lgcs    _gemdos
  85. #define _lgcss    _gemdos
  86. #define _lgds    _gemdos
  87. #define _lglss    _gemdos
  88. #define _lgns    _gemdos
  89. #define _lgp    _gemdos
  90. #define _lgs    _gemdos
  91. #define _lgscc    _gemdos
  92. #define _lgsccc    _gemdos
  93. #define _lgslp    _gemdos
  94. #define _lgslq    _gemdos
  95. #define _lgspl    _gemdos
  96. #define _lgss    _gemdos
  97. #define _lgu    _gemdos
  98. #define _lgv    _gemdos
  99. #define _pgl    _gemdos
  100. #define _pgp    _gemdos
  101. #define _pgv    _gemdos
  102. #define _sgv    _gemdos
  103. #define _ugv    _gemdos
  104. #define _vgc    _gemdos
  105. #define _vgls    _gemdos
  106. #define _vgp    _gemdos
  107. #define _lgrss    _gemdos
  108. #define _vgs    _gemdos
  109. #define _vgv    _gemdos
  110. #endif
  111.  
  112. /* GEMDOS bindings */
  113.  
  114. #define Pterm0()        _vgv(0x0)
  115. #define Cconin()        _lgv(0x1)
  116. #define Cconout(a)        _vgs(0x2,a)
  117. #define Cauxin()        _sgv(0x3)
  118. #define Cauxout(a)        _vgs(0x4,a)
  119. #define Cprnout(a)        _lgs(0x5,a)
  120. #define Crawio(a)        _lgs(0x6,a)
  121. #define Crawcin()        _lgv(0x7)
  122. #define Cnecin()        _lgv(0x8)
  123. #define Cconws(a)        _vgc(0x9,a)
  124. #define Cconrs(a)        _vgp(0x0a,a)
  125. #define Cconis()        _sgv(0x0b)
  126. #define Dsetdrv(a)        _lgs(0x0e,a)
  127. #define Cconos()        _sgv(0x10)
  128. #define Cprnos()        _sgv(0x11)
  129. #define Cauxis()        _sgv(0x12)
  130. #define Cauxos()        _sgv(0x13)
  131. #define Dgetdrv()        _sgv(0x19)
  132. #define Fsetdta(a)        _vgp(0x1a,a)
  133. #define Super(a)        _pgp(0x20,a)
  134. #define Tgetdate()        _ugv(0x2a)
  135. #define Tsetdate(a)        _lgu(0x2b,a)
  136. #define Tgettime()        _ugv(0x2c)
  137. #define Tsettime(a)        _lgu(0x2d,a)
  138. #define Fgetdta()        _pgv(0x2f)
  139. #define Sversion()        _ugv(0x30)
  140. #define Ptermres(a,b)    _vgls(0x31,a,b)
  141. #define Dfree(a,b)        _lgns(0x36,a,b)
  142. #define Dcreate(a)        _lgc(0x39,a)
  143. #define Ddelete(a)        _lgc(0x3a,a)
  144. #define Dsetpath(a)        _lgc(0x3b,a)
  145. #define Fcreate(a,b)    _lgcs(0x3c,a,b)
  146. #define Fopen(a,b)        _lgcs(0x3d,a,b)
  147. #define Fclose(a)        _lgs(0x3e,a)
  148. #define Fread(a,b,c)    _lgslp(0x3f,a,b,c)
  149. #define Fwrite(a,b,c)    _lgslq(0x40,a,b,c)
  150. #define Fdelete(a)        _lgc(0x41,a)
  151. #define Fseek(a,b,c)    _lglss(0x42,a,b,c)
  152. #define Fattrib(a,b,c)    _lgcss(0x43,a,b,c)
  153. #define Fdup(a)            _lgs(0x45,a)
  154. #define Fforce(a,b)        _lgss(0x46,a,b)
  155. #define Dgetpath(a,b)    _lgds(0x47,a,b)
  156. #define Malloc(a)        _pgl(0x48,a)
  157. #define Mfree(a)        _lgp(0x49,a)
  158. #define Mshrink(a,b)    _lgspl(0x4a,0,a,b)
  159. #define Pexec(a,b,c,d)    _lgsccc(0x4b,a,b,c,d)
  160. #define Pterm(a)        _vgs(0x4c,a)
  161. #define Fsfirst(a,b)    _lgcs(0x4e,a,b)
  162. #define Fsnext()        _lgv(0x4f)
  163. #define Frename(a,b,c)    _lgscc(0x56,a,b,c)
  164. #define Fdatime(a,b,c)    _lgrss(0x57,a,b,c)
  165.  
  166. #ifndef __NO_OSBIND_PRAGMAS
  167. void _vbp(int,void *);
  168. long _lbs(int,int);
  169. long _lbss(int,int,int);
  170. long _lbspsss(int,int,void *,int,int,int);
  171. long _lbspsssl(int,int,void *,int,int,int,long);
  172. void (*_fbsf(int,int,void (*)()))();
  173. long _lbv(int);
  174. void *_pbs(int,int);
  175. unsigned long _mbv(int);
  176.  
  177. #pragma inline _vbp((short),)    {register D2,A2; "4e4d";}
  178. #pragma inline d0=_lbs((short),(short))    {register D2,A2; "4e4d";}
  179. #pragma inline d0=_lbss((short),(short),(short))    {register D2,A2; "4e4d";}
  180. #pragma inline d0=_lbspsss((short),(short),,(short),(short),(short))    {register D2,A2; "4e4d";}
  181. #pragma inline d0=_lbspsssl((short),(short),,(short),(short),(short),)    {register D2,A2; "4e4d";}
  182. #pragma inline d0=_fbsf((short),(short),)    {register D2,A2; "4e4d";}
  183. #pragma inline d0=_lbv((short))    {register D2,A2; "4e4d";}
  184. #pragma inline d0=_pbs((short),(short))    {register D2,A2; "4e4d";}
  185. #pragma inline d0=_mbv((short))    {register D2,A2; "4e4d";}
  186. #else
  187. #define _vbp    _bios
  188. #define _lbs    _bios
  189. #define _lbss    _bios
  190. #define _lbspsss    _bios
  191. #define _lbspsssl    _bios
  192. #define _fbsf    _bios
  193. #define _lbv    _bios
  194. #define _pbs    _bios
  195. #endif
  196.  
  197. /* BIOS bindings */
  198.  
  199. #define Getmpb(a)            _vbp(0,a)
  200. #define Bconstat(a)            _lbs(1,a)
  201. #define Bconin(a)            _lbs(2,a)
  202. #define Bconout(a,b)        _lbss(3,a,b)
  203. #define Rwabs(a,b,c,d,e)    _lbspsss(4,a,b,c,d,e)
  204. #define Lrwabs(a,b,c,d,e)    _lbspsssl(4,a,b,c,-1,d,e)
  205. #define Setexc(a,b)            _fbsf(5,a,b)
  206. #define Tickcal()            _lbv(6)
  207. #define Getbpb(a)            _pbs(7,a)
  208. #define Bcostat(a)            _lbs(8,a)
  209. #define Mediach(a)            _lbs(9,a)
  210. #define Drvmap()            _mbv(10)
  211. #define Kbshift(a)            _lbs(11,a)
  212.  
  213. /* XBIOS bindings */
  214.  
  215. #ifndef __NO_OSBIND_PRAGMAS
  216. unsigned char _dxss(int,int,int);
  217. long _lxg(int,long (*)(void));
  218. long _lxv(int);
  219. unsigned long _mxssssss(int,int,int,int,int,int,int);
  220. void *_pxs(int,int);
  221. void *_pxv(int);
  222. char **_rxccc(int,const char *,const char *,const char *);
  223. void **_rxv(int);
  224. short _sxppsssss(int,void *,void *,int,int,int,int,int);
  225. short _sxprsssssls(int,void *,short *,int,int,int,int,int,long,int);
  226. short _sxs(int,int);
  227. short _sxss(int,int,int);
  228. short _sxv(int);
  229. void _vxc(int,const char *);
  230. void _vxm(int,unsigned long);
  231. unsigned long _mxv(int);
  232. void _vxp(int,void *);
  233. void _vxplss(int,void *,long,int,int);
  234. void _vxpps(int,void *,void *,int);
  235. void _vxs(int,int);
  236. void _vxsf(int,void (*)(void));
  237. void _vxsl(int,int,long);
  238. void _vxsp(int,int,void *);
  239. void _vxspf(int,int,void *,void (*)());
  240. void _vxsssf(int,int,int,int,void (*)());
  241. void _vxv(int);
  242.  
  243. #pragma inline d0=_dxss((short),(short),(short))    {register d2,a2; "4e4e";}
  244. #pragma inline d0=_lxg((short),)    {register d2,a2; "4e4e";}
  245. #pragma inline d0=_lxv((short))    {register d2,a2; "4e4e";}
  246. #pragma inline d0=_mxssssss((short),(short),(short),(short),(short),(short),(short))    {register d2,a2; "4e4e";}
  247. #pragma inline d0=_pxs((short),(short))    {register d2,a2; "4e4e";}
  248. #pragma inline d0=_pxv((short))    {register d2,a2; "4e4e";}
  249. #pragma inline d0=_rxccc((short),,,)    {register d2,a2; "4e4e";}
  250. #pragma inline d0=_rxv((short))    {register d2,a2; "4e4e";}
  251. #pragma inline d0=_sxppsssss((short),,,(short),(short),(short),(short),(short))    {register d2,a2; "4e4e";}
  252. #pragma inline d0=_sxprsssssls((short),,,(short),(short),(short),(short),(short),,(short))    {register d2,a2; "4e4e";}
  253. #pragma inline d0=_sxs((short),(short))    {register d2,a2; "4e4e";}
  254. #pragma inline d0=_sxss((short),(short),(short))    {register d2,a2; "4e4e";}
  255. #pragma inline d0=_sxv((short))    {register d2,a2; "4e4e";}
  256. #pragma inline _vxc((short),)    {register d2,a2; "4e4e";}
  257. #pragma inline _vxm((short),)    {register d2,a2; "4e4e";}
  258. #pragma inline d0=_mxv((short))    {register d2,a2; "4e4e";}
  259. #pragma inline _vxp((short),)    {register d2,a2; "4e4e";}
  260. #pragma inline _vxplss((short),,,(short),(short))    {register d2,a2; "4e4e";}
  261. #pragma inline _vxpps((short),,,(short))    {register d2,a2; "4e4e";}
  262. #pragma inline _vxs((short),(short))    {register d2,a2; "4e4e";}
  263. #pragma inline _vxsf((short),)    {register d2,a2; "4e4e";}
  264. #pragma inline _vxsl((short),(short),)    {register d2,a2; "4e4e";}
  265. #pragma inline _vxsp((short),)    {register d2,a2; "4e4e";}
  266. #pragma inline _vxspf((short),(short),,)    {register d2,a2; "4e4e";}
  267. #pragma inline _vxsssf((short),(short),(short),)    {register d2,a2; "4e4e";}
  268. #pragma inline _vxv((short))    {register d2,a2; "4e4e";}
  269. #else
  270. #define _dxss    _xbios
  271. #define _lxg    _xbios
  272. #define _lxv    _xbios
  273. #define _mxssssss    _xbios
  274. #define _pxs    _xbios
  275. #define _pxv    _xbios
  276. #define _rxccc    _xbios
  277. #define _rxv    _xbios
  278. #define _sxppsssss    _xbios
  279. #define _sxprsssssls    _xbios
  280. #define _sxs    _xbios
  281. #define _sxss    _xbios
  282. #define _sxv    _xbios
  283. #define _vxc    _xbios
  284. #define _vxm    _xbios
  285. #define _mxv    _xbios
  286. #define _vxp    _xbios
  287. #define _vxplss    _xbios
  288. #define _vxpps    _xbios
  289. #define _vxs    _xbios
  290. #define _vxsf    _xbios
  291. #define _vxsl    _xbios
  292. #define _vxsp    _xbios
  293. #define _vxspf    _xbios
  294. #define _vxsssf    _xbios
  295. #define _vxv    _xbios
  296. #endif
  297.  
  298. #define Initmous(a,b,c)                _vxspf(0,a,b,c)
  299. #define Ssbrk(a)                    _lxv(a)
  300. #define Physbase()                    _pxv(2)
  301. #define Logbase()                    _pxv(3)
  302. #define Getrez()                    _sxv(4)
  303. #define Setscreen(a,b,c)            _vxpps(5,a,b,c)
  304. #define Setpallete(a)                _vxp(6,a)
  305. #define Setpalette(a)                _vxp(6,a)
  306. #define Setcolor(a,b)                _sxss(7,a,b)
  307. #define Floprd(a,b,c,d,e,f,g)        _sxppsssss(8,a,b,c,d,e,f,g)
  308. #define Flopwr(a,b,c,d,e,f,g)        _sxppsssss(9,a,b,c,d,e,f,g)
  309. #define Flopfmt(a,b,c,d,e,f,g,h,i)    _sxprsssssls(10,a,b,c,d,e,f,g,h,i)
  310. #define Midiws(a,b)                    _vxsp(12,a,b)
  311. #define Mfpint(a,b)                    _vxsf(13,a,b)
  312. #define Iorec(a)                    _pxs(14,a)
  313. #define Rsconf(a,b,c,d,e,f)            _mxssssss(15,a,b,c,d,e,f)
  314. #define Keytbl(a,b,c)                _rxccc(16,a,b,c)
  315. #define Random()                    _lxv(17)
  316. #define Protobt(a,b,c,d)            _vxplss(18,a,b,c,d)
  317. #define Flopver(a,b,c,d,e,f,g)        _sxppsssss(19,a,b,c,d,e,f,g)
  318. #define Scrdmp()                    _vxv(20)
  319. #define Cursconf(a,b)                _sxss(21,a,b)
  320. #define Settime(a)                    _vxm(22,a)
  321. #define Gettime()                    _mxv(23)
  322. #define Bioskeys()                    _vxv(24)
  323. #define Ikbdws(a,b)                    _vxsl(25,a,b)
  324. #define Jdisint(a)                    _vxs(26,a)
  325. #define Jenabint(a)                    _vxs(27,a)
  326. #define Giaccess(a,b)                _dxss(28,a,b)
  327. #define Offgibit(a)                    _vxs(29,a)
  328. #define Ongibit(a)                    _vxs(30,a)
  329. #define Xbtimer(a,b,c,d)            _vxsssf(31,a,b,c,d)
  330. #define Dosound(a)                    _vxc(32,a)
  331. #define Setprt(a)                    _sxs(33,a)
  332. #define Kbdvbase()                    _rxv(34)
  333. #define Kbrate(a,b)                    _sxss(35,a,b)
  334. #define Prtblk(a)                    _vxp(36,a)
  335. #define Vsync()                        _vxv(37)
  336. #define Supexec(a)                    _lxg(38,a)
  337. #define Puntaes()                    _vxv(39)
  338. #define Floprate(a,b)                _sxss(41,a,b)
  339. #define Blitmode(a)                    _sxs(64,a)
  340.  
  341. int _mediach(int);        /* force GEMDOS media change */
  342. #endif
  343.