#line 1/*ACE 4 0110 */ /* * OSBIND.H Mnemonic names for operating system calls */ /* CHANGES: Harald Binder 12.12.92 * added several system structures * added new system calls for STE & TT Holger Weets 24.02.93 * correction of some changes * resorting functions by their numbers */ #ifndef OSBIND_H #define OSBIND_H extern long gemdos(); extern long bios(); extern long xbios(); extern int bdos(); /* GEMDOS - structures */ typedef struct { char maxlen; char actuallen; char buffer[255]; } LINE; typedef struct { long b_free; long b_total; long b_secsiz; long b_clsiz; } DISKINFO; typedef struct { unsigned int time; unsigned int date; } DOSTIME; typedef struct { char d_reserved[21]; char d_attrib; unsigned int d_time; unsigned int d_date; long d_length; char d_fname[14]; } DTA; typedef struct { int recsiz; int clsiz; int clsizb; int rdlen; int fsiz; int fatrec; int datrec; int numcl; int bflags; } BPB; typedef struct { char dir_name[11]; char dir_attr; char dir_dummy[10]; unsigned int dir_time; unsigned int dir_date; unsigned int dir_stcl; unsigned long dir_flen; } DIR; typedef struct _bcb { struct _bcb *b_link; int b_negl; int b_private[5]; void *b_buf; } BCB; typedef struct { int puns; char pun[16]; long part_start[16]; long P_cookie; long *P_cookptr; unsigned int P_version; unsigned int P_max_sector; long reserved[16]; } PUN_INFO; /* GEMDOS - defines */ #define FA_RDONLY 0x01 #define FA_HIDDEN 0x02 #define FA_SYSTEM 0x04 #define FA_LABEL 0x08 #define FA_DIREC 0x10 #define FA_ARCH 0x20 #define FA_ATTRIB (FA_DIREC|FA_RDONLY|FA_HIDDEN|FA_SYSTEM) /* BIOS - structures */ #include typedef struct md { struct md *m_link; long m_start; long m_length; BASEPAGE *m_own; } MD; typedef struct { MD *mp_mfl; MD *mp_mal; MD *mp_rover; } MPB; /* XBIOS - structures */ typedef struct { char topmode; char buttons; char xparam; char yparam; } PARAM; typedef struct { int xmax; int ymax; int xinitial; int yinitial; } EXTRA; typedef struct { long ibuf; int ibufsiz; int ibufhd; int ibuftl; int ibuflow; int ibufhi; } IOREC; typedef struct { void (*midivec)(); void (*vkbderr)(); void (*vmiderr)(); void (*statvec)(); void (*mousevec)(); void (*clockvec)(); void (*joyvec)(); void (*midisys)(); void (*ikbdsys)(); int drvstat; } KBDVECS; typedef struct { char *unshift; char *shift; char *capslock; } KEYTAB; typedef struct { unsigned long drivemap; char *version; long reserved[2]; } METAINFO; typedef struct { long pb_scrptr; int pb_offset; int pb_width; int pb_height; int pb_left; int pb_right; int pb_screz; int pb_prrez; long pb_colptr; int pb_prtype; int pb_prport; long pb_mask; } PBDEF; typedef struct { int (*Bconstat)(); long (*Bconin)(); long (*Bcostat)(); void (*Bconout)(); unsigned long (*Rsconf)(); IOREC *iorec; } MAPTAB; typedef struct { MAPTAB *maptab; int maptabsize; } BCONMAP; /* special system structures */ typedef struct { char xb_magic[4]; char xb_id[4]; long xb_oldvec; } XBRA; typedef struct { long gm_magic; void *gm_end; void *gm_init; } GEM_MUPB; typedef struct _osheader { unsigned int os_entry; unsigned int os_version; void *reseth; struct _osheader *os_beg; void *os_end; long os_rsvl; GEM_MUPB *os_magic; long os_date; unsigned int os_conf; unsigned int os_dosdate; /* Folgendes gibt es erst ab TOS 1.02 */ char **p_root; char **pkb_shift; BASEPAGE **p_run; char *p_rsv3; } OSHEADER; /* * GEMDOS (trap #1) */ #define Pterm0() gemdos(0x00) #define Cconin() gemdos(0x01) #define Cconout(c) gemdos(0x02,c) #define Cauxin() (int)gemdos(0x03) #define Cauxout(c) gemdos(0x04,c) #define Cprnout(c) (int)gemdos(0x05,c) #define Crawio(data) gemdos(0x06,data) #define Crawcin() gemdos(0x07) #define Cnecin() gemdos(0x08) #define Cconws(s) gemdos(0x09,s) #define Cconrs(buf) gemdos(0x0A,buf) #define Cconis() (int)gemdos(0x0B) #define Dsetdrv(d) gemdos(0x0E,d) #define Cconos() (int)gemdos(0x10) #define Cprnos() (int)gemdos(0x11) #define Cauxis() (int)gemdos(0x12) #define Cauxos() (int)gemdos(0x13) #define Maddalt(start,size) gemdos(0x14,start,size) #define Dgetdrv() (int)gemdos(0x19) #define Fsetdta(dta) gemdos(0x1A,dta) #define Super(ptr) gemdos(0x20,ptr) #define Tgetdate() (unsigned int)gemdos(0x2A) #define Tsetdate(date) (int)gemdos(0x2B,date) #define Tgettime() (unsigned int)gemdos(0x2C) #define Tsettime(time) (int)gemdos(0x2D,time) #define Fgetdta() (DTA *)gemdos(0x2F) #define Sversion() (int)gemdos(0x30) #define Ptermres(save,rv) gemdos(0x31,save,rv) #define Dfree(buf,d) gemdos(0x36,buf,d) #define Dcreate(path) (int)gemdos(0x39,path) #define Ddelete(path) (int)gemdos(0x3A,path) #define Dsetpath(path) (int)gemdos(0x3B,path) #define Fcreate(fn,mode) (int)gemdos(0x3C,fn,mode) #define Fopen(fn,mode) (int)gemdos(0x3D,fn,mode) #define Fclose(h) (int)gemdos(0x3E,h) #define Fread(h,cnt,buf) gemdos(0x3F,h,cnt,buf) #define Fwrite(h,cnt,buf) gemdos(0x40,h,cnt,buf) #define Fdelete(fn) (int)gemdos(0x41,fn) #define Fseek(where,h,how) gemdos(0x42,where,h,how) #define Fattrib(fn,rwflag,attr) (int)gemdos(0x43,fn,rwflag,attr) #define Mxalloc(size,mode) (void *)gemdos(0x44,size,mode) #define Fdup(h) (int)gemdos(0x45,h) #define Fforce(hstd,hnew) (int)gemdos(0x46,hstd,hnew) #define Dgetpath(buf,d) (int)gemdos(0x47,buf,d) //- #define Malloc(size) (void *)gemdos(0x48,size) #define Malloc(size) gemdos(0x48,size) #define Mfree(ptr) (int)gemdos(0x49,ptr) #define Mshrink(ptr,size) (int)gemdos(0x4A,0,ptr,size) #define Pexec(mode,prog,tail,env) gemdos(0x4B,mode,prog,tail,env) #define Pterm(rv) gemdos(0x4C,rv) #define Fsfirst(filespec,attr) (int)gemdos(0x4E,filespec,attr) #define Fsnext() (int)gemdos(0x4F) #define Frename(zero,old,new) (int)gemdos(0x56,zero,old,new) #define Fdatime(timeptr,h,rwflag) gemdos(0x57,timeptr,h,rwflag) #define Flock(h,mode,start,lenght) gemdos(0x5C,h,mode,start,length) /* * BIOS (trap #13) */ #define Bconstat(dev) (int)bios(1,dev) #define Bconin(dev) bios(2,dev) #define Bconout(dev,c) bios(3,dev,c) #define Rwabs(rwflag,buf,n,sector,d,lr) bios(4,rwflag,buf,n,sector,d,lr) #define Setexc(vnum,vptr) bios(5,vnum,vptr) #define Tickcal() bios(6) #define Getbpb(d) (BPB *)bios(7,d) #define Getmpb(p_mpb) gemdos(0,p_mpb) #define Bcostat(dev) bios(8,dev) #define Mediach(d) bios(9,d) #define Drvmap() bios(10) #define Getshift() bios(11,-1) #define Kbshift(data) bios(11,data) /* * XBIOS (trap #14) */ #define Initmous(type,param,vptr) xbios(0,type,param,vptr) #define Ssbrk(amount) xbios(1,amount) #define Physbase() (void *)xbios(2) #define Logbase() (void *)xbios(3) #define Getrez() (int)xbios(4) #define Setscreen(lscrn,pscrn,rez) xbios(5,lscrn,pscrn,rez) #define Setpalette(palptr) xbios(6,palptr) #define Setcolor(colornum,mixture) (int)xbios(7,colornum,mixture) #define Floprd(buf,x,d,sect,trk,side,n) (int)xbios(8,buf,x,d,sect,trk,side,n) #define Flopwr(buf,x,d,sect,trk,side,n) (int)xbios(9,buf,x,d,sect,trk,side,n) #define Flopfmt(b,x,d,spt,trk,sd,i,m,v) (int)xbios(10,b,x,d,spt,trk,sd,i,m,v) #define Midiws(cnt,ptr) xbios(12,cnt,ptr) #define Mfpint(vnum,vptr) xbios(13,vnum,vptr) #define Iorec(iodev) (IOREC *)xbios(14,iodev) #define Rsconf(baud,flow,uc,rs,ts,sc) (unsigend long)xbios(15,baud,flow,uc,rs,ts,sc) #define Keytbl(nrml,shft,caps) (KEYTAB *)xbios(16,nrml,shft,caps) #define Random() xbios(17) #define Protobt(buf,serial,dsktyp,exec) xbios(18,buf,serial,dsktyp,exec) #define Flopver(buf,x,d,sect,trk,sd,n) (int)xbios(19,buf,x,d,sect,trk,sd,n) #define Scrdmp() xbios(20) #define Cursconf(func,rate) (int)xbios(21,func,rate) #define Settime(time) xbios(22,time) #define Gettime() xbios(23) #define Bioskeys() xbios(24) #define Ikbdws(len_minus1,ptr) xbios(25,len_minus1,ptr) #define Jdisint(vnum) xbios(26,vnum) #define Jenabint(vnum) xbios(27,vnum) #define Giaccess(data,reg) (char)xbios(28,data,reg) #define Offgibit(ormask) xbios(29,ormask) #define Ongibit(andmask) xbios(30,andmask) #define Xbtimer(timer,ctrl,data,vnum) xbios(31,timer,ctrl,data,vnum) #define Dosound(ptr) xbios(32,ptr) #define Setprt(config) (int)xbios(33,config) #define Kbdvbase() (KBDVECS *)xbios(34) #define Kbrate(delay,reprate) (int)xbios(35,delay,reprate) #define Prtblk(pblkptr) xbios(36,pblkptr) #define Vsync() xbios(37) #define Supexec(funcptr) xbios(38,funcptr) #define Puntaes() xbios(39) #define Floprate(drive,rate) (int)xbios(41,drive,rate) #define DMAread(sect,cnt,buf,dev) xbios(42,sect,cnt,buf,dev) #define DMAwrite(sect,cnt,buf,dev) xbios(43,sect,cnt,buf,dev) #define Bconmap(devno) xbios(44,devno) #define NVMaccess(op,start,cnt,buf) (int)xbios(46,op,start,cnt,buf) #define Metainit(buf) xbios(48,buf) #define Blitmode(mode) (int)xbios(64,mode) #define EsetShift(shftmode) (int)xbios(80,shftmode) #define EgetShift() (int)xbios(81) #define EsetBank(banknum) (int)xbios(82,banknum) #define EsetColor(colnum,col) (int)xbios(83,colnum,col) #define EsetPalette(colnum,cnt,pal_p) xbios(84,colnum,cnt,pal_p) #define EgetPalette(colnum,cnt,pal_p) xbios(85,colnum,cnt,pal_p) #define EsetGray(switch) (int)xbios(86,switch) #define EsetSmear(switch) (int)xbios(87,switch) #endif OSBIND_H