Annotation of MiNT/src/purec/osbind.h, revision 1.1.1.1

1.1       root        1: /* Special osbind.h file for MiNT and PureC, see puremint.txt
                      2: 
                      3:    for details */
                      4: 
                      5: 
                      6: 
                      7: typedef struct          /* used by Cconrs */
                      8: 
                      9: {
                     10: 
                     11:         unsigned char maxlen;
                     12: 
                     13:         unsigned char actuallen;
                     14: 
                     15:         char    buffer[255];
                     16: 
                     17: } LINE;
                     18: 
                     19: 
                     20: 
                     21: 
                     22: 
                     23: typedef struct          /* used by Fsetdta, Fgetdta */
                     24: 
                     25: {
                     26: 
                     27:     char            d_reserved[21];
                     28: 
                     29:     unsigned char   d_attrib;
                     30: 
                     31:     unsigned int    d_time;
                     32: 
                     33:     unsigned int    d_date;
                     34: 
                     35:     unsigned long   d_length;
                     36: 
                     37:     char            d_fname[14];
                     38: 
                     39: } DTA;
                     40: 
                     41: 
                     42: 
                     43: typedef struct baspag   /* used by Pexec */
                     44: 
                     45: {
                     46: 
                     47:         void    *p_lowtpa;
                     48: 
                     49:         void    *p_hitpa;
                     50: 
                     51:         void    *p_tbase;
                     52: 
                     53:         long    p_tlen;
                     54: 
                     55:         void    *p_dbase;
                     56: 
                     57:         long    p_dlen;
                     58: 
                     59:         void    *p_bbase;
                     60: 
                     61:         long    p_blen;
                     62: 
                     63:         DTA     *p_dta;
                     64: 
                     65:         struct baspag *p_parent;
                     66: 
                     67:         long    p_resrvd0;
                     68: 
                     69:         char    *p_env;
                     70: 
                     71:         char    p_stdfh[6];
                     72: 
                     73:         char    p_resrvd1;
                     74: 
                     75:         char    p_curdrv;
                     76: 
                     77:         long    p_resrvd2[18];
                     78: 
                     79:         char    p_cmdlin[128];
                     80: 
                     81: } BASPAG;
                     82: 
                     83: 
                     84: 
                     85: typedef struct          /* used by Getbpb */
                     86: 
                     87: {
                     88: 
                     89:         int     recsiz;
                     90: 
                     91:         int     clsiz;
                     92: 
                     93:         int     clsizb;
                     94: 
                     95:         int     rdlen;
                     96: 
                     97:         int     fsiz;
                     98: 
                     99:         int     fatrec;
                    100: 
                    101:         int     datrec;
                    102: 
                    103:         int     numcl;
                    104: 
                    105:         int     bflags;
                    106: 
                    107: } BPB;
                    108: 
                    109: 
                    110: 
                    111: typedef struct          /* used by Iorec */
                    112: 
                    113: {
                    114: 
                    115:         void    *ibuf;
                    116: 
                    117:         int     ibufsiz;
                    118: 
                    119:         int     ibufhd;
                    120: 
                    121:         int     ibuftl;
                    122: 
                    123:         int     ibuflow;
                    124: 
                    125:         int     ibufhi;
                    126: 
                    127: } IOREC;
                    128: 
                    129: 
                    130: 
                    131: 
                    132: 
                    133: typedef struct          /* used by Kbdvbase */
                    134: 
                    135: {
                    136: 
                    137:         void    (*kb_midivec)();
                    138: 
                    139:         void    (*kb_vkbderr)();
                    140: 
                    141:         void    (*kb_vmiderr)();
                    142: 
                    143:         void    (*kb_statvec)();
                    144: 
                    145:         void    (*kb_mousevec)();
                    146: 
                    147:         void    (*kb_clockvec)();
                    148: 
                    149:         void    (*kb_joyvec)();
                    150: 
                    151:         void    (*kb_midisys)();
                    152: 
                    153:         void    (*kb_kbdsys)();
                    154: 
                    155: } KBDVBASE;
                    156: 
                    157: 
                    158: 
                    159: 
                    160: 
                    161: typedef struct          /* used by Pexec */
                    162: 
                    163: {
                    164: 
                    165:         unsigned char   length;
                    166: 
                    167:         char            command_tail[128];
                    168: 
                    169: } COMMAND;
                    170: 
                    171: 
                    172: 
                    173: 
                    174: 
                    175: typedef struct          /* used by Prtblk */
                    176: 
                    177: {
                    178: 
                    179:         void    *pb_scrptr;
                    180: 
                    181:         int     pb_offset;
                    182: 
                    183:         int     pb_width;
                    184: 
                    185:         int     pb_height;
                    186: 
                    187:         int     pb_left;
                    188: 
                    189:         int     pb_right;
                    190: 
                    191:         int     pb_screz;
                    192: 
                    193:         int     pb_prrez;
                    194: 
                    195:         void    *pb_colptr;
                    196: 
                    197:         int     pb_prtype;
                    198: 
                    199:         int     pb_prport;
                    200: 
                    201:         void    *pb_mask;
                    202: 
                    203: } PBDEF;
                    204: 
                    205: 
                    206: 
                    207: 
                    208: 
                    209: typedef struct          /* used by Keytbl */
                    210: 
                    211: {
                    212: 
                    213:         char *unshift;
                    214: 
                    215:         char *shift;
                    216: 
                    217:         char *capslock;
                    218: 
                    219: } KEYTAB;
                    220: 
                    221: 
                    222: 
                    223: 
                    224: 
                    225: typedef struct __md
                    226: 
                    227: {
                    228: 
                    229:         struct __md *m_link;
                    230: 
                    231:         void        *m_start;
                    232: 
                    233:         long        m_length;
                    234: 
                    235:         BASPAG      *m_own;
                    236: 
                    237: } MD;
                    238: 
                    239: 
                    240: 
                    241: 
                    242: 
                    243: typedef struct          /* used by Getmpb */
                    244: 
                    245: {
                    246: 
                    247:         MD *mp_mfl;
                    248: 
                    249:         MD *mp_mal;
                    250: 
                    251:         MD *mp_rover;
                    252: 
                    253: } MPB;
                    254: 
                    255: 
                    256: 
                    257: typedef struct
                    258: 
                    259: {
                    260: 
                    261:         int   (*Bconstat) ();
                    262: 
                    263:         long  (*Bconin) ();
                    264: 
                    265:         int   (*Bcostat) ();
                    266: 
                    267:         void  (*Bconout) ();
                    268: 
                    269:         long  (*Rsconf) ();
                    270: 
                    271:         IOREC *iorec;
                    272: 
                    273: } MAPTAB;
                    274: 
                    275: 
                    276: 
                    277: typedef struct
                    278: 
                    279: {
                    280: 
                    281:         MAPTAB *maptab;
                    282: 
                    283:         int    maptabsize;
                    284: 
                    285: } BCONMAP;
                    286: 
                    287: 
                    288: 
                    289: /* system variable _sysbase (0x4F2L) points to next structure         */
                    290: 
                    291: typedef struct _syshdr
                    292: 
                    293: {
                    294: 
                    295:     unsigned       os_entry;   /* $00 BRA to reset handler             */
                    296: 
                    297:     unsigned       os_version; /* $02 TOS version number               */
                    298: 
                    299:     void           *os_start;  /* $04 -> reset handler                 */
                    300: 
                    301:     struct _syshdr *os_base;   /* $08 -> baseof OS                     */
                    302: 
                    303:     void           *os_membot; /* $0c -> end BIOS/GEMDOS/VDI ram usage */
                    304: 
                    305:     void           *os_rsv1;   /* $10 << unused,reserved >>            */
                    306: 
                    307:     long           *os_magic;  /* $14 -> GEM memoryusage parm. block   */
                    308: 
                    309:     long           os_gendat;  /* $18 Date of system build($MMDDYYYY)  */
                    310: 
                    311:     int            os_palmode; /* $1c OS configuration bits            */
                    312: 
                    313:     int            os_gendatg; /* $1e DOS-format date of systembuild   */
                    314: 
                    315: /*
                    316: 
                    317:     The next three fields are only available in TOS versions 1.2 and
                    318: 
                    319:     greater
                    320: 
                    321: */
                    322: 
                    323:     void           *_root;     /* $20 -> base of OS pool               */
                    324: 
                    325:     long           *kbshift;   /* $24 -> keyboard shift state variable */
                    326: 
                    327:     BASPAG         **_run;     /* $28 -> GEMDOS PID of current process */
                    328: 
                    329:     void           *p_rsv2;    /* $2c << unused, reserved >>           */
                    330: 
                    331: } SYSHDR;
                    332: 
                    333: 
                    334: 
                    335: 
                    336: 
                    337: 
                    338: 
                    339: /* attributes for Fcreate/Fsfirst/Fsnext: */
                    340: 
                    341: 
                    342: 
                    343: #define FA_READONLY     0x01
                    344: 
                    345: #define FA_HIDDEN       0x02
                    346: 
                    347: #define FA_SYSTEM       0x04
                    348: 
                    349: #define FA_VOLUME       0x08
                    350: 
                    351: #define FA_SUBDIR       0x10
                    352: 
                    353: #define FA_ARCHIVE      0x20
                    354: 
                    355: 
                    356: 
                    357: /* Fopen modes: */
                    358: 
                    359: 
                    360: 
                    361: #define FO_READ         0
                    362: 
                    363: #define FO_WRITE        1
                    364: 
                    365: #define FO_RW           2
                    366: 
                    367: 
                    368: 
                    369: extern BASPAG *_BasPag;
                    370: 
                    371: extern long _PgmSize;
                    372: 
                    373: 
                    374: 
                    375: /****** Tos *************************************************************/
                    376: 
                    377: 
                    378: 
                    379: void    Pterm0( void );
                    380: 
                    381: long    Cconin( void );
                    382: 
                    383: void    Cconout( int c );
                    384: 
                    385: int     Cauxin( void );
                    386: 
                    387: void    Cauxout( int c );
                    388: 
                    389: int     Cprnout( int c );
                    390: 
                    391: long    Crawio( int w );
                    392: 
                    393: long    Crawcin( void );
                    394: 
                    395: long    Cnecin( void );
                    396: 
                    397: int     Cconws( const char *buf );
                    398: 
                    399: void    Cconrs( LINE *buf );
                    400: 
                    401: int     Cconis( void );
                    402: 
                    403: long    Dsetdrv( int drv );
                    404: 
                    405: int     Cconos( void );
                    406: 
                    407: int     Cprnos( void );
                    408: 
                    409: int     Cauxis( void );
                    410: 
                    411: int     Cauxos( void );
                    412: 
                    413: int     Dgetdrv( void );
                    414: 
                    415: void    Fsetdta( void *buf );
                    416: 
                    417: long    Super( void *stack );
                    418: 
                    419: unsigned int  Tgetdate( void );
                    420: 
                    421: unsigned int Tsetdate( unsigned int date );
                    422: 
                    423: unsigned int  Tgettime( void );
                    424: 
                    425: unsigned int  Tsettime( unsigned int time );
                    426: 
                    427: DTA     *Fgetdta( void );
                    428: 
                    429: int     Sversion( void );
                    430: 
                    431: void    Ptermres( long keepcnt, int retcode );
                    432: 
                    433: int     Dfree( long *buf, int driveno );
                    434: 
                    435: int     Dcreate( const char *path );
                    436: 
                    437: int     Ddelete( const char *path );
                    438: 
                    439: int     Dsetpath( const char *path );
                    440: 
                    441: long    Fcreate( const char *filename, int attr );
                    442: 
                    443: long    Fopen( const char *filename, int mode );
                    444: 
                    445: int     Fclose( int handle );
                    446: 
                    447: long    Fread( int handle, long count, void *buf );
                    448: 
                    449: long    Fwrite( int handle, long count, void *buf );
                    450: 
                    451: int     Fdelete( const char *filename );
                    452: 
                    453: long    Fseek( long offset, int handle, int seekmode );
                    454: 
                    455: int     Fattrib( const char *filename, int wflag, int attrib );
                    456: 
                    457: long    Fdup( int handle );
                    458: 
                    459: long    Fforce( int stch, int nonstdh );
                    460: 
                    461: int     Dgetpath( char *path, int driveno );
                    462: 
                    463: long    Malloc( long number );
                    464: 
                    465: int     Mfree( void *block );
                    466: 
                    467: int     Mshrink( int zero, void *block, long newsiz );
                    468: 
                    469: long    Pexec( int mode, char *ptr1, void *ptr2, void *ptr3 );
                    470: 
                    471: void    Pterm( int retcode );
                    472: 
                    473: int     Fsfirst( const char *filename, int attr );
                    474: 
                    475: int     Fsnext( void );
                    476: 
                    477: int     Frename( int zero, const char *oldname, const char *newname );
                    478: 
                    479: int     Fdatime( short *timeptr, int handle, int wflag );
                    480: 
                    481: 
                    482: 
                    483: /****** TOS 030 Gemdos Extension ****************************************/
                    484: 
                    485: 
                    486: 
                    487: long    Mxalloc( long number, int mode );
                    488: 
                    489: long    Maddalt( void *start, long size );
                    490: 
                    491: 
                    492: 
                    493: /****** Network Gemdos Extension ****************************************/
                    494: 
                    495: 
                    496: 
                    497: long   Flock( int handle, int mode, long start, long length );
                    498: 
                    499: 
                    500: 
                    501: /****** Bios ************************************************************/
                    502: 
                    503: 
                    504: 
                    505: void    Getmpb( MPB *ptr );
                    506: 
                    507: int     Bconstat( int dev );
                    508: 
                    509: long    Bconin( int dev );
                    510: 
                    511: long    Bconout( int dev, int c );
                    512: 
                    513: long    Rwabs( int rwflag, void *buf, int cnt, int recnr, int dev );
                    514: 
                    515: void    (*Setexc( int number, long *exchdlr));
                    516: 
                    517: long    Tickcal( void );
                    518: 
                    519: BPB     *Getbpb( int dev );
                    520: 
                    521: long    Bcostat( int dev );
                    522: 
                    523: long    Mediach( int dev );
                    524: 
                    525: long    Drvmap( void );
                    526: 
                    527: long    Kbshift( int mode );
                    528: 
                    529: 
                    530: 
                    531: 
                    532: 
                    533: /****** XBios ***********************************************************/
                    534: 
                    535: 
                    536: 
                    537: void    Initmous( int type, char *par, void *mousevec);
                    538: 
                    539: void    *Ssbrk( int count );
                    540: 
                    541: void    *Physbase( void );
                    542: 
                    543: void    *Logbase( void );
                    544: 
                    545: int     Getrez( void );
                    546: 
                    547: void    Setscreen( void *laddr, void *paddr, int rez );
                    548: 
                    549: void    Setpalette( void *pallptr );
                    550: 
                    551: int     Setcolor( int colornum, int color );
                    552: 
                    553: int     Floprd( void *buf, long filler, int devno, int sectno,
                    554: 
                    555:                int trackno, int sideno, int count );
                    556: 
                    557: int     Flopwr( void *buf, long filler, int devno, int sectno,
                    558: 
                    559:                int trackno, int sideno, int count );
                    560: 
                    561: int     Flopfmt( void *buf, long filler, int devno, int spt, int trackno,
                    562: 
                    563:                 int sideno, int interlv, long magic, int virgin );
                    564: 
                    565: void    Midiws( int cnt, void *ptr );
                    566: 
                    567: void    Mfpint( int erno, void (*vector)() );
                    568: 
                    569: IOREC   *Iorec( int dev );
                    570: 
                    571: long    Rsconf( int baud, int ctr, int ucr, int rsr, int tsr, int scr );
                    572: 
                    573: KEYTAB  *Keytbl( void *unshift, void *shift, void *capslock );
                    574: 
                    575: long    Random( void );
                    576: 
                    577: void    Protobt( void *buf, long serialno, int disktype, int execflag );
                    578: 
                    579: int     Flopver( void *buf, long filler, int devno, int sectno,
                    580: 
                    581:                 int trackno, int sideno, int count );
                    582: 
                    583: void    Scrdmp( void );
                    584: 
                    585: int     Cursconf( int func, int rate );
                    586: 
                    587: void    Settime( unsigned long time );
                    588: 
                    589: unsigned long  Gettime( void );
                    590: 
                    591: void    Bioskeys( void );
                    592: 
                    593: void    Ikbdws( int count, void *ptr );
                    594: 
                    595: void    Jdisint( int number );
                    596: 
                    597: void    Jenabint( int number );
                    598: 
                    599: char    Giaccess( char data, int regno );
                    600: 
                    601: void    Offgibit( int bitno );
                    602: 
                    603: void    Ongibit( int bitno );
                    604: 
                    605: void    Xbtimer( int timer, int control, int data, void (*vector)() );
                    606: 
                    607: void    *Dosound( void *buf );
                    608: 
                    609: int     Setprt( int config );
                    610: 
                    611: KBDVBASE *Kbdvbase( void );
                    612: 
                    613: int     Kbrate( int initial, int repeat );
                    614: 
                    615: void    Prtblk( PBDEF *par );
                    616: 
                    617: void    Vsync( void );
                    618: 
                    619: long    Supexec( long (*func)() );
                    620: 
                    621: void    Puntaes( void );
                    622: 
                    623: int     Floprate( int devno, int newrate );
                    624: 
                    625: int     Blitmode( int mode );
                    626: 
                    627: 
                    628: 
                    629: /* TOS030 XBios */
                    630: 
                    631: int     DMAread( long sector, int count, void *buffer, int devno );
                    632: 
                    633: int     DMAwrite( long sector, int count, void *buffer, int devno );
                    634: 
                    635: int     NVMaccess( int opcode, int start, int count, void *buffer );
                    636: 
                    637: long    Bconmap( int devno );
                    638: 
                    639: int     Esetshift( int shftMode );
                    640: 
                    641: int     Egetshift( void );
                    642: 
                    643: int     EsetBank( int bankNum );
                    644: 
                    645: int     EsetColor( int colorNum, int color );
                    646: 
                    647: void    EsetPalette( int colorNum, int count, int *palettePtr );
                    648: 
                    649: void    EgetPalette( int colorNum, int count, int *palettePtr );
                    650: 
                    651: int     EsetGray( int swtch );
                    652: 
                    653: int     EsetSmear( int swtch );
                    654: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.