home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / TURBOC_1.LZH / INCLUDE / TOS.H < prev    next >
C/C++ Source or Header  |  1990-03-02  |  10KB  |  352 lines

  1. /*      TOS.H
  2.  
  3.         Tos Definition Includes
  4.  
  5.         Copyright (c) Borland International 1988
  6.         All Rights Reserved.
  7. */
  8.  
  9.  
  10. #if !defined( __TOS )
  11. #define __TOS
  12.  
  13. typedef struct          /* used by Cconrs */
  14. {
  15.         unsigned char maxlen;
  16.         unsigned char actuallen;
  17.         char    buffer[255];
  18. } LINE;
  19.  
  20.  
  21. typedef struct          /* used by Fsetdta, Fgetdta */
  22. {
  23.     char            d_reserved[21];
  24.     unsigned char   d_attrib;
  25.     unsigned int    d_time;
  26.     unsigned int    d_date;
  27.     unsigned long   d_length;
  28.     char            d_fname[14];
  29. } DTA;
  30.  
  31.  
  32. typedef struct          /* used by Dfree */
  33. {
  34.     unsigned long   b_free;
  35.     unsigned long   b_total;
  36.     unsigned long   b_secsiz;
  37.     unsigned long   b_clsiz;
  38. } DISKINFO;
  39.  
  40.  
  41. typedef struct baspag   /* used by Pexec */
  42. {
  43.         void    *p_lowtpa;
  44.         void    *p_hitpa;
  45.         void    *p_tbase;
  46.         long    p_tlen;
  47.         void    *p_dbase;
  48.         long    p_dlen;
  49.         void    *p_bbase;
  50.         long    p_blen;
  51.         DTA     *p_dta;
  52.         struct baspag *p_parent;
  53.         long    p_resrvd0;
  54.         char    *p_env;
  55.         char    p_stdfh[6];
  56.         char    p_resrvd1;
  57.         char    p_curdrv;
  58.         long    p_resrvd2[18];
  59.         char    p_cmdlin[128];
  60. } BASPAG;
  61.  
  62.  
  63. typedef struct          /* used by Getbpb */
  64. {
  65.         int     recsiz;
  66.         int     clsiz;
  67.         int     clsizb;
  68.         int     rdlen;
  69.         int     fsiz;
  70.         int     fatrec;
  71.         int     datrec;
  72.         int     numcl;
  73.         int     bflags;
  74. } BPB;
  75.  
  76.  
  77. typedef struct
  78. {
  79.         int     time;
  80.         int     date;
  81. } DOSTIME;
  82.  
  83.  
  84. typedef struct          /* used by Iorec */
  85. {
  86.         void    *ibuf;
  87.         int     ibufsiz;
  88.         int     ibufhd;
  89.         int     ibuftl;
  90.         int     ibuflow;
  91.         int     ibufhi;
  92. } IOREC;
  93.  
  94.  
  95. typedef struct          /* used by Kbdvbase */
  96. {
  97.         void    (*kb_midivec)();
  98.         void    (*kb_vkbderr)();
  99.         void    (*kb_vmiderr)();
  100.         void    (*kb_statvec)();
  101.         void    (*kb_mousevec)();
  102.         void    (*kb_clockvec)();
  103.         void    (*kb_joyvec)();
  104.         void    (*kb_midisys)();
  105.         void    (*kb_kbdsys)();
  106. } KBDVBASE;
  107.  
  108.  
  109. typedef struct          /* used by Pexec */
  110. {
  111.         unsigned char   length;
  112.         char            command_tail[128];
  113. } COMMAND;
  114.  
  115.  
  116. typedef struct          /* used by Initmouse */
  117. {
  118.         char    topmode;
  119.         char    buttons;
  120.         char    x_scale;
  121.         char    y_scale;
  122.         int     x_max;
  123.         int     y_max;
  124.         int     x_start;
  125.         int     y_start;
  126. } MOUSE;
  127.  
  128.  
  129. typedef struct          /* used by Prtblk */
  130. {
  131.         void    *pb_scrptr;
  132.         int     pb_offset;
  133.         int     pb_width;
  134.         int     pb_height;
  135.         int     pb_left;
  136.         int     pb_right;
  137.         int     pb_screz;
  138.         int     pb_prrez;
  139.         void    *pb_colptr;
  140.         long    pb_prtype;
  141.         int     pb_prport;
  142.         void    *pb_mask;
  143. } PBDEF;
  144.  
  145.  
  146. typedef struct          /* used by Keytbl */
  147. {
  148.         char *unshift;
  149.         char *shift;
  150.         char *capslock;
  151. } KEYTAB;
  152.  
  153.  
  154. typedef struct __md
  155. {
  156.         struct __md *m_link;
  157.         void        *m_start;
  158.         long        m_length;
  159.         BASPAG      *m_own;
  160. } MD;
  161.  
  162.  
  163. typedef struct          /* used by Getmpb */
  164. {
  165.         MD *mp_mfl;
  166.         MD *mp_mal;
  167.         MD *mp_rover;
  168. } MPB;
  169.  
  170.  
  171. /* system variable _sysbase (0x4F2L) points to next structure         */
  172. typedef struct _syshdr         
  173. {
  174.     unsigned       os_entry;   /* $00 BRA to reset handler             */     
  175.     unsigned       os_version; /* $02 TOS version number               */
  176.     void           *os_start;  /* $04 -> reset handler                 */ 
  177.     struct _syshdr *os_base;   /* $08 -> baseof OS                     */     
  178.     void           *os_membot; /* $0c -> end BIOS/GEMDOS/VDI ram usage */     
  179.     void           *os_rsv1;   /* $10 << unused,reserved >>            */     
  180.     long           *os_magic;  /* $14 -> GEM memoryusage parm. block   */     
  181.     long           os_gendat;  /* $18 Date of system build($MMDDYYYY)  */     
  182.     int            os_palmode; /* $1c OS configuration bits            */     
  183.     int            os_gendatg; /* $1e DOS-format date of systembuild   */
  184. /* 
  185.     The next three fields are only available in TOS versions 1.2 and
  186.     greater 
  187. */     
  188.     void           *_root;     /* $20 -> base of OS pool               */     
  189.     long           *kbshift;   /* $24 -> keyboard shift state variable */ 
  190.     BASPAG         **_run;     /* $28 -> GEMDOS PID of current process */     
  191.     void           *p_rsv2;    /* $2c << unused, reserved >>           */ 
  192. } SYSHDR;
  193.  
  194.  
  195.  
  196. /* attributes for Fcreate/Fsfirst/Fsnext: */ 
  197.  
  198. #define FA_READONLY     0x01
  199. #define FA_HIDDEN       0x02 
  200. #define FA_SYSTEM       0x04 
  201. #define FA_VOLUME       0x08 
  202. #define FA_SUBDIR       0x10 
  203. #define FA_ARCHIVE      0x20 
  204.  
  205. /* Fopen modes: */ 
  206.  
  207. #define FO_READ         0 
  208. #define FO_WRITE        1
  209. #define FO_RW           2 
  210.  
  211. extern BASPAG *_BasPag;
  212. extern long _PgmSize;
  213.  
  214. long    gemdos( void, ... );
  215. long    bios( void, ... );
  216. long    xbios( void, ... );
  217.  
  218. /****** Tos *************************************************************/
  219.  
  220. void    Pterm0( void );
  221. long    Cconin( void );
  222. void    Cconout( int c );
  223. int     Cauxin( void );
  224. void    Cauxout( int c );
  225. int     Cprnout( int c );
  226. long    Crawio( int w );
  227. long    Crawcin( void );
  228. long    Cnecin( void );
  229. int     Cconws( const char *buf );
  230. void    Cconrs( LINE *buf );
  231. int     Cconis( void );
  232. int     Dsetdrv( int drv );
  233. int     Cconos( void );
  234. int     Cprnos( void );
  235. int     Cauxis( void );
  236. int     Cauxos( void );
  237. int     Dgetdrv( void );
  238. void    Fsetdta( DTA *buf );
  239. long    Super( void *stack );
  240. unsigned int  Tgetdate( void );
  241. int     Tsetdate( unsigned int date );
  242. unsigned int  Tgettime( void );
  243. int     Tsettime( unsigned int time );
  244. DTA     *Fgetdta( void );
  245. int     Sversion( void );
  246. void    Ptermres( long keepcnt, int retcode );
  247. int     Dfree( DISKINFO *buf, int driveno );
  248. int     Dcreate( const char *path );
  249. int     Ddelete( const char *path );
  250. int     Dsetpath( const char *path );
  251. int     Fcreate( const char *filename, int attr );
  252. int     Fopen( const char *filename, int mode );
  253. int     Fclose( int handle );
  254. long    Fread( int handle, long count, void *buf );
  255. long    Fwrite( int handle, long count, void *buf );
  256. int     Fdelete( const char *filename );
  257. long    Fseek( long offset, int handle, int seekmode );
  258. int     Fattrib( const char *filename, int wflag, int attrib );
  259. int     Fdup( int handle );
  260. int     Fforce( int stch, int nonstdh );
  261. int     Dgetpath( char *path, int driveno );
  262. void    *Malloc( long number );
  263. int     Mfree( void *block );
  264. int     Mshrink( int zero, void *block, long newsiz );
  265. long    Pexec( int mode, char *ptr1, COMMAND *ptr2, void *ptr3 );
  266. void    Pterm( int retcode );
  267. int     Fsfirst( const char *filename, int attr );
  268. int     Fsnext( void );
  269. int     Frename( int zero, const char *oldname, const char *newname );
  270. int     Fdatime( DOSTIME *timeptr, int handle, int wflag );
  271.  
  272.  
  273. /****** Network Gemdos Extension ****************************************/
  274.  
  275. long    Nversion( void );
  276. long    Frlock( int handle, long start, long count );
  277. long    Frunlock( int handle, long start );
  278. long    Flock( int handle, long count );
  279. long    Funlock( int handle );
  280. long    Fflush( int handle );
  281. long    Unlock( const char *path );
  282. long    Lock( const char *path );
  283.  
  284. /****** Bios ************************************************************/
  285.  
  286. void    Getmpb( MPB *ptr );
  287. int     Bconstat( int dev );
  288. long    Bconin( int dev );
  289. void    Bconout( int dev, int c );
  290. long    Rwabs( int rwflag, void *buf, int cnt, int recnr, int dev );
  291. void    (*Setexc( int number, void (*exchdlr)() )) ();
  292. long    Tickcal( void );
  293. BPB     *Getbpb( int dev );
  294. long    Bcostat( int dev );
  295. long    Mediach( int dev );
  296. long    Drvmap( void );
  297. long    Kbshift( int mode );
  298.  
  299.  
  300. /****** XBios ***********************************************************/
  301.  
  302. void    Initmouse( int type, MOUSE *par, void (*mousevec)() );
  303. void    *Ssbrk( int count );
  304. void    *Physbase( void );
  305. void    *Logbase( void );
  306. int     Getrez( void );
  307. void    Setscreen( void *laddr, void *paddr, int rez );
  308. void    Setpalette( void *pallptr );
  309. int     Setcolor( int colornum, int color );
  310. int     Floprd( void *buf, long filler, int devno, int sectno,
  311.                int trackno, int sideno, int count );
  312. int     Flopwr( void *buf, long filler, int devno, int sectno,
  313.                int trackno, int sideno, int count );
  314. int     Flopfmt( void *buf, long filler, int devno, int spt, int trackno,
  315.                 int sideno, int interlv, long magic, int virgin );
  316. void    Midiws( int cnt, void *ptr );
  317. void    Mfpint( int erno, void (*vector)() );
  318. IOREC   *Iorec( int dev );
  319. long    Rsconf( int baud, int ctr, int ucr, int rsr, int tsr, int scr );
  320. KEYTAB  *Keytbl( void *unshift, void *shift, void *capslock );
  321. long    Random( void );
  322. void    Protobt( void *buf, long serialno, int disktype, int execflag );
  323. int     Flopver( void *buf, long filler, int devno, int sectno,
  324.                 int trackno, int sideno, int count );
  325. void    Scrdmp( void );
  326. int     Cursconf( int func, int rate );
  327. void    Settime( unsigned long time );
  328. unsigned long  Gettime( void );
  329. void    Bioskeys( void );
  330. void    Ikbdws( int count, void *ptr );
  331. void    Jdisint( int number );
  332. void    Jenabint( int number );
  333. char    Giaccess( char data, int regno );
  334. void    Offgibit( int bitno );
  335. void    Ongibit( int bitno );
  336. void    Xbtimer( int timer, int control, int data, void (*vector)() );
  337. void    Dosound( void *buf );
  338. int     Setprt( int config );
  339. KBDVBASE *Kbdvbase( void );
  340. int     Kbrate( int initial, int repeat );
  341. void    Prtblk( PBDEF *par );
  342. void    Vsync( void );
  343. long    Supexec( long (*addr)() );
  344. void    Puntaes( void );
  345. int     Floprate( int devno, int newrate );
  346. int     Blitmode( int mode );
  347.  
  348.  
  349. #endif
  350.  
  351. /************************************************************************/
  352.