list off,noxref ; ; Cromemco Inc. ; Dec 05, 1984 ; stdin equ 0 ;standard input channel stdout equ 1 ;standard output channel stderr equ 2 ;standard error channel argc equ 40H ;location for argument count argv equ 42H ;location for argument list vector arg0 equ 0 ;arg offset arg1 equ 2 ;arg offset arg2 equ 4 ;arg offset arg3 equ 6 ;arg offset arg4 equ 8 ;arg offset ; ; C-register modes for .create, .open ; op.read equ 0 ;read only op.write equ 1 ;write only op.rdwr equ 2 ;read and write op.append equ 3 ;append only op.xread equ 4 ;exclusive read only op.xwrite equ 5 ;exclusive write only op.xrdwr equ 6 ;exclusive read and write op.xappend equ 7 ;exclusive append only op.truncf equ 80H ;truncate on create flag op.condf equ 40H ;conditional create flag op.force equ 20H ;force open of block device ; ; C-register file position modes for .setpos ; fwd.begin equ 0 ;forward from the beginning of the file fwd.current equ 1 ;forward from the current file position fwd.end equ 2 ;forward from the end of the file bak.current equ -1 ;backward from the current file position bak.end equ -2 ;backward from the end of the file ; ; C-register modes for .fstat, .cstat, .fchstat, .cchstat ; st.all equ 0 ;all of inode (128 bytes) st.owner equ 1 ;de = owner st.group equ 2 ;de = group st.aowner equ 3 ;d = owner access, e = mask st.agroup equ 4 ;d = group access, e = mask st.aother equ 5 ;d = other access, e = mask st.ftype equ 6 ;d = file type st.size equ 7 ;dehl = file size st.nlinks equ 8 ;de = number of links st.inum equ 9 ;de = inode number st.device equ 10 ;de = device number of file system containing inode st.tcreate equ 11 ;de-> time created st.tmodify equ 12 ;de-> time last modified st.taccess equ 13 ;de-> time last accessed st.tdumped equ 14 ;de-> time last dumped st.devno equ 15 ;de = device number if inode is a device st.pdevno equ 16 ;de = physical device number if inode is a device ; ; file types for st.ftype ; is.ordin defl 0 ;ordinary file is.direct defl 1 ;directory file is.char defl 2 ;character device is.block defl 3 ;block device is.pipe defl 4 ;pipe file ; ; access bits for access flags ; ac.read defl 0 ;read access bit ac.exec defl 1 ;execute access bit ac.writ defl 2 ;write access bit ac.apnd defl 3 ;append access bit ; ; C-register modes for .setuser, .getuser, .setgroup, .getgroup ; id.effective equ 0 ;effective id id.login equ 1 ;login id id.program equ 2 ;program id id.hl equ 3 ;id contained in HL register ; ; Signals ; sigabort defv 1 ;CNTRL-C key siguser defv 2 ;user-specifiable key sigkill defv 3 ;kill sigterm defv 4 ;terminate (catchable) sigalarm defv 5 ;alarm clock sigpipe defv 6 ;broken pipe sighangup defv 7 ;modem hang up sigmax defv 8 ;maximum signal number ; ; SYSTEM CALL NUMBERS ; .makdev equ 00H ;makdev(d,e,hl) make device entry .makdir equ 01H ;makdir(hl) make a directory .getdir equ 02H ;getdir(hl) get current directory name .setdir equ 03H ;setdir(hl) change current directory .mount equ 04H ;mount(c,de,hl) mount file system .unmount equ 05H ;unmount(hl) unmount file system .delete equ 06H ;delete(hl) delete file .chkdev equ 07H ;chkdev(d,e) check for device driver .create equ 08H ;b=create(c,hl) create & open file .open equ 09H ;b=open(c,hl) open file .chdup equ 0AH ;c=chdup(b) duplicate channel .close equ 0BH ;close(b) close file .exchg equ 0CH ;exchg(b,c) exchange data in files .trunc equ 0DH ;trunc(b) truncate open file .pipe equ 0EH ;b,c=pipe() create a pipe ; equ 0FH .getpos equ 10H ;dehl=getpos(b) get file position .setpos equ 11H ;setpos(c,dehl) set file position .getmode equ 12H ;d=getmode(b,c) get device characteristics .setmode equ 13H ;d=setmode(b,c,d,e) set device characteristics .rdseq equ 14H ;de=rdseq(b,de,hl) read n bytes .wrseq equ 15H ;de=wrseq(b,de,hl) write n bytes .rdbyte equ 16H ;a=rdbyte(b) read 1 byte .wrbyte equ 17H ;wrbyte(b,a) write 1 byte .rdline equ 18H ;de=rdline(b,de,hl) read a line .wrline equ 19H ;de=wrline(b,hl) write a line ; equ 1AH .printf equ 1BH ;printf(b,hl) print formatted string .error equ 1CH ;error(a,b,de,hl) print error message .fstat equ 20H ;fstat(c,de,hl) get file status (inode) .cstat equ 21H ;cstat(b,c,de) get channel status (inode) .fchstat equ 22H ;fchstat(c,de,hl) change file status .cchstat equ 23H ;cchstat(b,c,de) change channel status .flink equ 24H ;flink(de,hl) link to file .clink equ 25H ;clink(b,de) link to open channel .faccess equ 26H ;faccess(c,hl) test file access .caccess equ 27H ;caccess(b,c) test channel access ; equ 28H ; equ 29H .getdate equ 30H ;d,e,h,l=getdate() get date .setdate equ 31H ;setdate(e,h,l) set date .gettime equ 32H ;e,h,l=gettime() get time .settime equ 33H ;settime(e,h,l) set time .getuser equ 34H ;de,hl=getuser() get user id .setuser equ 35H ;setuser(hl) set user id .getgroup equ 36H ;de,hl=getgroup() get group id .setgroup equ 37H ;setgroup(hl) set group id .getprior equ 38H ;l=getprior() get process priority .setprior equ 39H ;setprior(l) set process priority .getproc equ 3AH ;hl=getproc() get process id ; equ 3BH ; equ 3CH .ksam equ 3DH ;ksam(c,de,hl) ksam call .lock equ 3EH ;lock(c,de,hl) lock key .unlock equ 3FH ;unlock(c,de,hl) unlock key .signal equ 40H ;signal(c,hl) set up to receive a signal .kill equ 41H ;kill(c,hl) send a signal .sleep equ 42H ;sleep(hl) sleep for hl seconds .alarm equ 43H ;alarm(hl) set alarm clock .pause equ 44H ;pause() pause for alarm clock .wait equ 45H ;c,de,hl=wait() wait for child process .exit equ 46H ;exit(hl) exit process (close files) ;.fork equ 47H fork reentrant process .fshell equ 48H ;fshell(de) fork a shell process .shell equ 49H ;shell(de) transfer to shell process ; equ 4AH .fexec equ 4BH ;fexec(bc,de,hl) fork and execute program .exec equ 4CH ;exec(bc,de,hl) execute program ;.execz80 equ 4DH execute z80 program ; equ 4EH ; equ 4FH ;.memory equ 50H allocate memory .indirect equ 51H ;indirect(a,b,c,de,hl) system call in A-register .update equ 52H ;update() update disk I/O buffers .mult equ 53H ;dehl=mult(bc,hl) multiply .divd equ 54H ;de,hl=divd(dehl,bc) divide .version equ 55H ;hl=version() get system version # .boot equ 56H ;boot(hl,de) boot new operating system form ;* error code definitions -- RVH Jan 30,1979 ?badchan defv 1 ;bad channel # ?toomany defv 2 ;channel already open ?notopen defv 3 ;channel not open ?endfile defv 4 ;end-of-file ?ioerror defv 5 ;I/O error ?filtable defv 6 ;file table exhausted ?notexist defv 7 ;file does not exist ?badname defv 8 ;bad file name ?diraccess defv 9 ;directory access ?filaccess defv 10 ;file access ?exists defv 11 ;file already exists ?nospace defv 12 ;no disk space left ?noinode defv 13 ;no inodes left ?inotable defv 14 ;inode table exhausted ?badcall defv 15 ;illegal system call ?filsize defv 16 ;file size too big ?mnttable defv 17 ;mount table exhausted ?notdir defv 18 ;not a directory ?isdir defv 19 ;is a directory ?priv defv 20 ;privileged system call ?notblk defv 21 ;not a block special device ?fsbusy defv 22 ;file system busy ?notordin defv 23 ;not an ordinary file ?notmount defv 24 ;device not mounted ?nochild defv 25 ;no child processes ?nomemory defv 26 ;not enough memory ?ovflo defv 27 ;divide overflow ?argtable defv 28 ;argument table exhausted ?arglist defv 29 ;bad argument list ?numlinks defv 30 ;too many number of links ?difdev defv 31 ;cross-device link ?nodevice defv 32 ;no special device ?usrtable defv 33 ;user process table exhausted ?badvalue defv 34 ;value out of range ?notconn defv 35 ;I/O device not connected ?devopen defv 36 ;device open error ?diruse defv 37 ;directory in use (delete) ?filuse defv 38 ;file in use (exclusive access) ?nomatch defv 39 ;no match on ambiguous name ?chnaccess defv 40 ;channel access ?notcromix defv 41 ;not a cromix disk ?badfree defv 42 ;bad free list ?badinum defv 43 ;bad inode number ?readonly defv 44 ;device mounted for read only ?noproc defv 45 ;process does not exist ?signal defv 46 ;system call was aborted ?badpipe defv 47 ;bad call on a pipe ?locked defv 48 ;locked ?deadlock defv 49 ;deadlocked ?lcktable defv 50 ;lock table exhausted ?tapeio defv 51 ;tape I/O error ?badio defv 52 ;bad I/O ?not68000 defv 53 ;68000 programs cannot run under Z80 ?badformat defv 54 ;bad file format ?runaway defv 55 ;runaway program aborted ?cdossim defv 56 ;CDOS simulator required ?corrupt defv 57 ;system image corrupted list on,xref