/* * OSBIND.H Mnemonic names for operating system calls * * Adapted from Dale Schumacher's version to Mark Johnson C by Eric Gisin. */ /* hacked by jrd for GNU */ /* * GEMDOS (trap1) */ #define Pterm0() (void) trap_1_w(0x00) #define Cconin() (char) trap_1_w(0x01) #define Cconout(c) (short) trap_1_ww(0x02,c) #define Cauxin() (char) trap_1_w(0x03) #define Cauxout(c) (short) trap_1_ww(0x04,c) #define Cprnout(c) (short) trap_1_ww(0x05,c) #define Crawio(data) (void) trap_1_ww(0x06,data) #define Crawcin() (char) trap_1_w(0x07) #define Cnecin() (char) trap_1_w(0x08) #define Cconws(s) (void) trap_1_wl(0x09,s) #define Cconrs(buf) (short) trap_1_wl(0x0A,buf) #define Cconis() (short) trap_1_w(0x0B) #define Dsetdrv(d) (short) trap_1_ww(0x0E,d) #define Cconos() (short) trap_1_w(0x10) #define Cprnos() (short) trap_1_w(0x11) #define Cauxis() (short) trap_1_w(0x12) #define Cauxos() (short) trap_1_w(0x13) #define Dgetdrv() (short) trap_1_w(0x19) #define Fsetdta(dta) (short) trap_1_wl(0x1A,dta) #define Super(ptr) (void * ) trap_1_wl(0x20,ptr) #define Tgetdate() (short) trap_1_w(0x2A) #define Tsetdate(date) (void) trap_1_wl(0x2B,date) #define Tgettime() (short) trap_1_w(0x2C) #define Tsettime(time) (void) trap_1_wl(0x2D,time) #define Fgetdta() (void * ) trap_1_w(0x2F) #define Sversion() (short) trap_1_w(0x30) /* ??? */ #define Ptermres(save,rv) (void) trap_1_wlw(0x31,save,rv) #define Dfree(buf,d) (long) trap_1_wlw(0x36,buf,d) #define Dcreate(path) (short) trap_1_wl(0x39,path) #define Ddelete(path) (short) trap_1_wl(0x3A,path) #define Dsetpath(path) (short) trap_1_wl(0x3B,path) #define Fcreate(fn,mode) (short) trap_1_wlw(0x3C,fn,mode) #define Fopen(fn,mode) (short) trap_1_wlw(0x3D,fn,mode) #define Fclose(H) (short) trap_1_ww(0x3E,H) #define Fread(H,cnt,buf) (long) trap_1_wwll(0x3F,H,cnt,buf) #define Fwrite(H,cnt,buf) (long) trap_1_wwll(0x40,H,cnt,buf) #define Fdelete(fn) (short) trap_1_wl(0x41,fn) #define Fseek(where,H,how) (long) trap_1_wlww(0x42,where,H,how) #define Fattrib(fn,rwflag,attr) (short) trap_1_wlww(0x43,fn,rwflag,attr) #define Fdup(H) (short) trap_1_ww(0x45,H) #define Fforce(Hstd,Hnew) (short) trap_1_www(0x46,Hstd,Hnew) #define Dgetpath(buf,d) (short) trap_1_wlw(0x47,buf,d) #define Malloc(size) (void * ) trap_1_wl(0x48,size) #define Mfree(ptr) (void) trap_1_wl(0x49,ptr) #define Mshrink(ptr,size) (void) trap_1_wwll(0x4A,0,ptr,size) #define Pexec(mode,prog,tail,env) (long) trap_1_wwlll(0x4B,mode,prog,tail,env) #define Pterm(rv) (void) trap_1_ww(0x4C,rv) #define Fsfirst(filespec,attr) (short) trap_1_wlw(0x4E,filespec,attr) #define Fsnext() (short) trap_1_w(0x4F) #define Frename(zero,old,new) (short) trap_1_wwll(0x56,zero,old,new) #define Fdatime(timeptr,file_handle,rwflag) (short) trap_1_wlww(0x57,timeptr,file_handle,rwflag) /* codes for Pexec */ #define PE_LOADGO 0 /* load & go */ #define PE_LOAD 1 /* just load */ #define PE_CBASEPAGE 2 /* just create basepage */ #define PE_GO 3 /* just go */ /* * BIOS (trap13) */ #define Bconstat(DEV) (long) trap_13_ww(1,DEV) #define Bconin(DEV) (long) trap_13_ww(2,DEV) #define Bconout(DEV,c) (void) trap_13_www(3,DEV,((c) & 0xFF)) /* #define Rwabs(rwflag,buf,n,sector,d) trap_13_wwl(4,rwflag,buf,n,sector,d) */ #define Setexc(vnum,vptr) (long) trap_13_wwl(5,vnum,vptr) #define Tickcal() (long) trap_13_w(6) #define Getbpb(d) (long) trap_13_ww(7,d) #define Bcostat(DEV) (long) trap_13_ww(8,DEV) #define Mediach(d) (short) trap_13_ww(9,d) #define Drvmap() (long) trap_13_w(10) #define Getshift() (short) trap_13_ww(11,-1) #define Kbshift(data) (short) trap_13_ww(11,data) /* * XBIOS (trap14) */ /* the struct returned by kbdvbase(). I think this is right... */ struct _kbd_vectors { void ( * midivec)(); /* Midi input */ void ( * vkbderr)(); /* Keyboard error */ void ( * vmiderr)(); /* Midi error */ void ( * statvec)(); /* IDBD status */ void ( * mousevec)(); /* Mouse routines */ void ( * clockvec)(); /* clock time routine */ void ( * joyvec)(); /* joystick routines */ void ( * midisys)(); /* system MIDI vector */ void ( * ikbdsys)(); /* IKBD system vector */ }; typedef struct _kbd_vectors kbdvecs; #define Initmous(type,param,vptr) (void) trap_14_wwwl(0,type,param,vptr) #define Physbase() (long) trap_14_w(2) #define Logbase() (long) trap_14_w(3) #define Getrez() (short) trap_14_w(4) #define Setscreen(lscrn,pscrn,rez) (void) trap_14_wllw(5,lscrn,pscrn,rez) #define Setpallete(palptr) (void) trap_14_wl(6,palptr) #define Setcolor(colornum,mixture) (short) trap_14_www(7,colornum,mixture) #define Floprd(buf,x,d,sect,trk,side,n) trap(14,8,buf,x,d,sect,trk,side,n) #define Flopwr(buf,x,d,sect,trk,side,n) trap(14,9,buf,x,d,sect,trk,side,n) #define Flopfmt(b,x,d,spt,trk,sd,i,m,v) trap(14,10,b,x,d,spt,trk,sd,i,m,v) #define Midiws(cnt,ptr) trap_14_wwl(12,cnt,ptr) #define Mfpint(vnum,vptr) trap_14_wwl(13,vnum,vptr) #define Iorec(ioDEV) trap_14_ww(14,ioDEV) #define Rsconf(baud,flow,uc,rs,ts,sc) trap_14_wwwwwww(15,baud,flow,uc,rs,ts,sc) #define Keytbl(nrml,shft,caps) trap_14_wlll(16,nrml,shft,caps) #define Random() trap_14_ww(14,17) #define Protobt(buf,serial,dsktyp,exec) trap(14,18,buf,serial,dsktyp,exec) #define Flopver(buf,x,d,sect,trk,sd,n) trap(14,19,buf,x,d,sect,trk,sd,n) #define Scrdmp() trap_14_w(20) #define Cursconf(func,rate) trap_14_www(21,func,rate) #define Settime(time) trap_14_wl(22,time) #define Gettime() trap_14_w(23) #define Bioskeys() trap_14_w(24) #define Ikbdws(len_minus1,ptr) trap_14_wwl(25,len_minus1,ptr) #define Jdisint(vnum) trap_14_ww(26,vnum) #define Jenabint(vnum) trap_14_ww(27,vnum) #define Giaccess(data,reg) trap_14_www(28,data,reg) #define Offgibit(ormask) trap_14_ww(29,ormask) #define Ongibit(andmask) trap_14_ww(30,andmask) #define Xbtimer(timer,ctrl,data,vnum) trap_14_wwwwwww(31,timer,ctrl,data,vnum) #define Dosound(ptr) trap_14_wl(32,ptr) #define Setprt(config) trap_14_wl(33,config) #define Kbdvbase() (kbdvecs * ) trap_14_w(34) #define Kbrate(delay,reprate) trap_14_www(35,delay,reprate) #define Prtblk(pblkptr) trap_14_wl(36,pblkptr) #define Vsync() trap_14_w(37) #define Supexec(funcptr) trap_14_wl(38,funcptr)