From: ceriel Date: Tue, 6 Oct 1987 16:39:14 +0000 (+0000) Subject: Initial revision X-Git-Tag: release-5-5~3813 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=4043036e27080fee8760ca7b3dac995ab6a434a1;p=ack.git Initial revision --- diff --git a/mach/xenix3/.distr b/mach/xenix3/.distr new file mode 100644 index 000000000..f15502b4d --- /dev/null +++ b/mach/xenix3/.distr @@ -0,0 +1,3 @@ +Action +cv +libsys diff --git a/mach/xenix3/Action b/mach/xenix3/Action new file mode 100644 index 000000000..e6d93e54a --- /dev/null +++ b/mach/xenix3/Action @@ -0,0 +1,6 @@ +name "Xenix 3.0 8086 systemcall library" +dir libsys +end +name "Xenix 3.0 conversion program from ack.out --> Xenix 3.0 a.out" +dir cv +end diff --git a/mach/xenix3/libsys/.distr b/mach/xenix3/libsys/.distr new file mode 100644 index 000000000..c6828c513 --- /dev/null +++ b/mach/xenix3/libsys/.distr @@ -0,0 +1,5 @@ +LIST +Makefile +compmodule +libmon_s.a +head_em.s diff --git a/mach/xenix3/libsys/LIST b/mach/xenix3/libsys/LIST new file mode 100644 index 000000000..ccfa5a130 --- /dev/null +++ b/mach/xenix3/libsys/LIST @@ -0,0 +1,88 @@ +libmon_s.a +exit.c +cleanup.c +stty.c +gtty.c +dup.c +dup2.c +execl.c +execle.c +execv.c +pipe.c +profil.c +sdget.c +stime.c +time.c +wait.c +_exit.s +_pipe.s +_profil.s +_sdget.s +_stime.s +_time.s +_wait.s +access.s +acct.s +alarm.s +brk.s +chdir.s +chmod.s +chown.s +chroot.s +close.s +creat.s +creatsem.s +execve.s +fcntl.s +fork.s +fstat.s +ftime.s +getegid.s +geteuid.s +getgid.s +getpgrp.s +getpid.s +getppid.s +getuid.s +ioctl.s +kill.s +link.s +lock.s +locking.s +lseek.s +mknod.s +mount.s +nap.s +nbwaitsem.s +nice.s +open.s +opensem.s +pause.s +ptrace.s +rdchk.s +read.s +sbrk.s +sdenter.s +sdfree.s +sdgetv.s +sdleave.s +sdwaitv.s +setgid.s +setuid.s +shutdn.s +signal.s +sigsem.s +stat.s +sync.s +sys.s +times.s +ulimit.s +umask.s +umount.s +uname.s +unlink.s +ustat.s +utime.s +waitsem.s +write.s +xdup.s diff --git a/mach/xenix3/libsys/Makefile b/mach/xenix3/libsys/Makefile new file mode 100644 index 000000000..0e96ab77f --- /dev/null +++ b/mach/xenix3/libsys/Makefile @@ -0,0 +1,27 @@ +# $Header$ +MACH=xenix3.0 +all: libmon_o.a head_em.o + +install: all + ../../install libmon_o.a tail_mon + ../../install head_em.o head_em + +cmp: all + -../../compare libmon_o.a tail_mon + -../../compare head_em.o head_em + +libmon_o.a: libmon_s.a + ASAR=aal ; export ASAR ;\ + march . libmon_o.a + +head_em.o: head_em.s + $(MACH) -O -c head_em.s +clean: + rm -f *.o libmon_o.a + +opr : + make pr | opr + +pr: + @pr `pwd`/head_em.s + @arch pv libmon_s.a | pr -h `pwd`/libmon_s.a diff --git a/mach/xenix3/libsys/_exit.s b/mach/xenix3/libsys/_exit.s new file mode 100644 index 000000000..e832b7cda --- /dev/null +++ b/mach/xenix3/libsys/_exit.s @@ -0,0 +1,10 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __exit +.sect .text +__exit: + mov ax,1 + push bp + mov bp,sp + mov bx,4(bp) + call syscal +1: jmp 1b diff --git a/mach/xenix3/libsys/_pipe.s b/mach/xenix3/libsys/_pipe.s new file mode 100644 index 000000000..e01d6c130 --- /dev/null +++ b/mach/xenix3/libsys/_pipe.s @@ -0,0 +1,13 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __pipe +.sect .text +__pipe: + mov ax,42 + call syscal + mov dx,bx + jae 1f + mov (_errno),ax + mov ax,-1 + cwd +1: + ret diff --git a/mach/xenix3/libsys/_profil.s b/mach/xenix3/libsys/_profil.s new file mode 100644 index 000000000..b4d5a4141 --- /dev/null +++ b/mach/xenix3/libsys/_profil.s @@ -0,0 +1,13 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __profil +.sect .text +__profil: + mov ax,44 + mov bx,sp + add bx,2 + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/_sdget.s b/mach/xenix3/libsys/_sdget.s new file mode 100644 index 000000000..df432a580 --- /dev/null +++ b/mach/xenix3/libsys/_sdget.s @@ -0,0 +1,22 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __sdget +.sect .text +__sdget: + mov ax,3368 + push bp + mov bp,sp + push si + push di + mov di,10(bp) + mov si,8(bp) + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/_stime.s b/mach/xenix3/libsys/_stime.s new file mode 100644 index 000000000..a37ba768d --- /dev/null +++ b/mach/xenix3/libsys/_stime.s @@ -0,0 +1,16 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __stime +.sect .text +__stime: + mov ax,25 + push bp + mov bp,sp + mov cx,6(bp) + mov bx,4(bp) + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 +1: + pop bp + ret diff --git a/mach/xenix3/libsys/_time.s b/mach/xenix3/libsys/_time.s new file mode 100644 index 000000000..bd083b310 --- /dev/null +++ b/mach/xenix3/libsys/_time.s @@ -0,0 +1,8 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __time +.sect .text +__time: + mov ax,13 + call syscal + mov dx,bx + ret diff --git a/mach/xenix3/libsys/_wait.s b/mach/xenix3/libsys/_wait.s new file mode 100644 index 000000000..274857b87 --- /dev/null +++ b/mach/xenix3/libsys/_wait.s @@ -0,0 +1,13 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define __wait +.sect .text +__wait: + mov ax,7 + call syscal + mov dx,bx + jae 1f + mov (_errno),ax + mov ax,-1 + cwd +1: + ret diff --git a/mach/xenix3/libsys/access.s b/mach/xenix3/libsys/access.s new file mode 100644 index 000000000..9dd3dc438 --- /dev/null +++ b/mach/xenix3/libsys/access.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _access +.sect .text +_access: + mov ax,33 + jmp sysal diff --git a/mach/xenix3/libsys/acct.s b/mach/xenix3/libsys/acct.s new file mode 100644 index 000000000..79ccbb7c5 --- /dev/null +++ b/mach/xenix3/libsys/acct.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _acct +.sect .text +_acct: + mov ax,51 + jmp sysal diff --git a/mach/xenix3/libsys/alarm.s b/mach/xenix3/libsys/alarm.s new file mode 100644 index 000000000..f73e64ad0 --- /dev/null +++ b/mach/xenix3/libsys/alarm.s @@ -0,0 +1,11 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _alarm +.sect .text +_alarm: + mov ax,27 + push bp + mov bp,sp + mov bx,4(bp) + call syscal + pop bp + ret diff --git a/mach/xenix3/libsys/brk.s b/mach/xenix3/libsys/brk.s new file mode 100644 index 000000000..8da1330f0 --- /dev/null +++ b/mach/xenix3/libsys/brk.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _brk +.sect .text +_brk: + mov ax,17 + jmp sysal diff --git a/mach/xenix3/libsys/chdir.s b/mach/xenix3/libsys/chdir.s new file mode 100644 index 000000000..4cd5d035b --- /dev/null +++ b/mach/xenix3/libsys/chdir.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _chdir +.sect .text +_chdir: + mov ax,12 + jmp sysal diff --git a/mach/xenix3/libsys/chmod.s b/mach/xenix3/libsys/chmod.s new file mode 100644 index 000000000..ff4226470 --- /dev/null +++ b/mach/xenix3/libsys/chmod.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _chmod +.sect .text +_chmod: + mov ax,15 + jmp sysal diff --git a/mach/xenix3/libsys/chown.s b/mach/xenix3/libsys/chown.s new file mode 100644 index 000000000..5a7025781 --- /dev/null +++ b/mach/xenix3/libsys/chown.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _chown +.sect .text +_chown: + mov ax,16 + jmp sysal diff --git a/mach/xenix3/libsys/chroot.s b/mach/xenix3/libsys/chroot.s new file mode 100644 index 000000000..0d8032106 --- /dev/null +++ b/mach/xenix3/libsys/chroot.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _chroot +.sect .text +_chroot: + mov ax,61 + jmp sysal diff --git a/mach/xenix3/libsys/cleanup.c b/mach/xenix3/libsys/cleanup.c new file mode 100644 index 000000000..6cd9c63e6 --- /dev/null +++ b/mach/xenix3/libsys/cleanup.c @@ -0,0 +1 @@ +_cleanup() { } diff --git a/mach/xenix3/libsys/close.s b/mach/xenix3/libsys/close.s new file mode 100644 index 000000000..29f5c7fcb --- /dev/null +++ b/mach/xenix3/libsys/close.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _close +.sect .text +_close: + mov ax,6 + jmp sysal diff --git a/mach/xenix3/libsys/compmodule b/mach/xenix3/libsys/compmodule new file mode 100755 index 000000000..12261b0b1 --- /dev/null +++ b/mach/xenix3/libsys/compmodule @@ -0,0 +1,4 @@ +if xenix3.0 -c $1 1>&2 +then echo `basename $1 $2`.o +else exit 1 +fi diff --git a/mach/xenix3/libsys/creat.s b/mach/xenix3/libsys/creat.s new file mode 100644 index 000000000..797335579 --- /dev/null +++ b/mach/xenix3/libsys/creat.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _creat +.sect .text +_creat: + mov ax,8 + jmp sysal diff --git a/mach/xenix3/libsys/creatsem.s b/mach/xenix3/libsys/creatsem.s new file mode 100644 index 000000000..620525284 --- /dev/null +++ b/mach/xenix3/libsys/creatsem.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _creatsem +.sect .text +_creatsem: + mov ax,552 + jmp sysal diff --git a/mach/xenix3/libsys/dup.c b/mach/xenix3/libsys/dup.c new file mode 100644 index 000000000..a1dfc2a9f --- /dev/null +++ b/mach/xenix3/libsys/dup.c @@ -0,0 +1,5 @@ +int +dup(d) +{ + return __xdup(d, 0); +} diff --git a/mach/xenix3/libsys/dup2.c b/mach/xenix3/libsys/dup2.c new file mode 100644 index 000000000..ba0513b87 --- /dev/null +++ b/mach/xenix3/libsys/dup2.c @@ -0,0 +1,6 @@ +int +dup2(oldd, newd) +{ + oldd |= 64; + return __xdup(oldd, newd); +} diff --git a/mach/xenix3/libsys/execl.c b/mach/xenix3/libsys/execl.c new file mode 100644 index 000000000..6fdcea3a3 --- /dev/null +++ b/mach/xenix3/libsys/execl.c @@ -0,0 +1,9 @@ +int +execl(name,args) + char *name; + int args; +{ + extern char **environ; + + return execve(name,&args,environ); +} diff --git a/mach/xenix3/libsys/execle.c b/mach/xenix3/libsys/execle.c new file mode 100644 index 000000000..6de27d860 --- /dev/null +++ b/mach/xenix3/libsys/execle.c @@ -0,0 +1,10 @@ +int +execle(name,args) + char *name; + char *args; +{ + char **p = &args; + while (*p++) ; + + return execve(name,&args,*p); +} diff --git a/mach/xenix3/libsys/execv.c b/mach/xenix3/libsys/execv.c new file mode 100644 index 000000000..748fec72d --- /dev/null +++ b/mach/xenix3/libsys/execv.c @@ -0,0 +1,8 @@ +int +execv(name,args) + char *name; + char **args; +{ + extern char **environ; + return execve(name,args,environ); +} diff --git a/mach/xenix3/libsys/execve.s b/mach/xenix3/libsys/execve.s new file mode 100644 index 000000000..e76acdf17 --- /dev/null +++ b/mach/xenix3/libsys/execve.s @@ -0,0 +1,19 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _execve +.sect .text +_execve: + mov ax,59 + push bp + mov bp,sp + push si + mov si,8(bp) + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop si + jae 1f + mov (_errno),ax + mov ax,-1 +1: + pop bp + ret diff --git a/mach/xenix3/libsys/exit.c b/mach/xenix3/libsys/exit.c new file mode 100644 index 000000000..afd54b3f7 --- /dev/null +++ b/mach/xenix3/libsys/exit.c @@ -0,0 +1,5 @@ +exit(n) +{ + _cleanup(); + _exit(n); +} diff --git a/mach/xenix3/libsys/fcntl.s b/mach/xenix3/libsys/fcntl.s new file mode 100644 index 000000000..5db182147 --- /dev/null +++ b/mach/xenix3/libsys/fcntl.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _fcntl +.sect .text +_fcntl: + mov ax,62 + jmp sysal diff --git a/mach/xenix3/libsys/fork.s b/mach/xenix3/libsys/fork.s new file mode 100644 index 000000000..d26a614c8 --- /dev/null +++ b/mach/xenix3/libsys/fork.s @@ -0,0 +1,20 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _fork, _par_uid +.sect .bss +.comm _par_uid, 2 +.sect .text +_fork: + mov ax,2 + call syscal + jb 1f + and bx,bx + je 2f + ret +1: + mov (_errno),ax + mov ax,-1 + ret +2: + mov (_par_uid),ax + xor ax,ax + ret diff --git a/mach/xenix3/libsys/fstat.s b/mach/xenix3/libsys/fstat.s new file mode 100644 index 000000000..d6dc31c2f --- /dev/null +++ b/mach/xenix3/libsys/fstat.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _fstat +.sect .text +_fstat: + mov ax,28 + jmp sysal diff --git a/mach/xenix3/libsys/ftime.s b/mach/xenix3/libsys/ftime.s new file mode 100644 index 000000000..479ac787d --- /dev/null +++ b/mach/xenix3/libsys/ftime.s @@ -0,0 +1,12 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _ftime +.sect .text +_ftime: + mov ax,2856 + push bp + mov bp,sp + mov bx,4(bp) + call syscal + pop bp + ret + diff --git a/mach/xenix3/libsys/getegid.s b/mach/xenix3/libsys/getegid.s new file mode 100644 index 000000000..31bbdc60d --- /dev/null +++ b/mach/xenix3/libsys/getegid.s @@ -0,0 +1,8 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _getegid +.sect .text +_getegid: + mov ax,47 + call syscal + xchg bx,ax + ret diff --git a/mach/xenix3/libsys/geteuid.s b/mach/xenix3/libsys/geteuid.s new file mode 100644 index 000000000..00380ae08 --- /dev/null +++ b/mach/xenix3/libsys/geteuid.s @@ -0,0 +1,8 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _geteuid +.sect .text +_geteuid: + mov ax,24 + call syscal + xchg bx,ax + ret diff --git a/mach/xenix3/libsys/getgid.s b/mach/xenix3/libsys/getgid.s new file mode 100644 index 000000000..bff94b320 --- /dev/null +++ b/mach/xenix3/libsys/getgid.s @@ -0,0 +1,7 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _getgid +.sect .text +_getgid: + mov ax,47 + call syscal + ret diff --git a/mach/xenix3/libsys/getpgrp.s b/mach/xenix3/libsys/getpgrp.s new file mode 100644 index 000000000..c49f1bd22 --- /dev/null +++ b/mach/xenix3/libsys/getpgrp.s @@ -0,0 +1,10 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _getpgrp +.sect .text +_getpgrp: + xor ax,ax + push ax + mov ax,39 + call syscal + pop bx + ret diff --git a/mach/xenix3/libsys/getpid.s b/mach/xenix3/libsys/getpid.s new file mode 100644 index 000000000..de7493106 --- /dev/null +++ b/mach/xenix3/libsys/getpid.s @@ -0,0 +1,7 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _getpid +.sect .text +_getpid: + mov ax,20 + call syscal + ret diff --git a/mach/xenix3/libsys/getppid.s b/mach/xenix3/libsys/getppid.s new file mode 100644 index 000000000..5d9a51949 --- /dev/null +++ b/mach/xenix3/libsys/getppid.s @@ -0,0 +1,8 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _getppid +.sect .text +_getppid: + mov ax,20 + call syscal + xchg bx,ax + ret diff --git a/mach/xenix3/libsys/getuid.s b/mach/xenix3/libsys/getuid.s new file mode 100644 index 000000000..c31405d2c --- /dev/null +++ b/mach/xenix3/libsys/getuid.s @@ -0,0 +1,7 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _getuid +.sect .text +_getuid: + mov ax,24 + call syscal + ret diff --git a/mach/xenix3/libsys/gtty.c b/mach/xenix3/libsys/gtty.c new file mode 100644 index 000000000..b24c14529 --- /dev/null +++ b/mach/xenix3/libsys/gtty.c @@ -0,0 +1,5 @@ +gtty(fildes, arg) + char *arg; +{ + return ioctl(fildes, ('t' << 8) | 8, arg); +} diff --git a/mach/xenix3/libsys/head_em.s b/mach/xenix3/libsys/head_em.s new file mode 100644 index 000000000..e6f4d31b1 --- /dev/null +++ b/mach/xenix3/libsys/head_em.s @@ -0,0 +1,52 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss + +.define begtext,begdata,begbss +.define hol0,.reghp,.limhp,.trppc,.ignmask +.define ERANGE,ESET,EHEAP,ECASE,EILLINS,EIDIVZ,EODDZ +.extern _end + +ERANGE = 1 +ESET = 2 +EIDIVZ = 6 +EHEAP = 17 +EILLINS = 18 +EODDZ = 19 +ECASE = 20 + +.sect .text +begtext: + mov bx,sp + mov cx,(bx) + add bx,2 + mov ax,cx + inc ax + shl ax,1 + add ax,bx + push ax + push bx + push cx + xor bp,bp + call _m_a_i_n + call __exit +.sect .data +begdata: +hol0: + .data2 0,0 + .data2 0,0 +argv: + .data2 3f +envp: + .data2 0 +3: + .asciz "PROGRAM" +.reghp: + .data2 endbss +.limhp: + .data2 endbss +.ignmask: + .data2 0 +.trppc: + .data2 0 + + .sect .bss +begbss: diff --git a/mach/xenix3/libsys/ioctl.s b/mach/xenix3/libsys/ioctl.s new file mode 100644 index 000000000..241591637 --- /dev/null +++ b/mach/xenix3/libsys/ioctl.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _ioctl +.sect .text +_ioctl: + mov ax,54 + jmp sysal diff --git a/mach/xenix3/libsys/kill.s b/mach/xenix3/libsys/kill.s new file mode 100644 index 000000000..03961962e --- /dev/null +++ b/mach/xenix3/libsys/kill.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _kill +.sect .text +_kill: + mov ax,37 + jmp sysal diff --git a/mach/xenix3/libsys/link.s b/mach/xenix3/libsys/link.s new file mode 100644 index 000000000..6eaa1c27a --- /dev/null +++ b/mach/xenix3/libsys/link.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _link +.sect .text +_link: + mov ax,9 + jmp sysal diff --git a/mach/xenix3/libsys/lock.s b/mach/xenix3/libsys/lock.s new file mode 100644 index 000000000..5b83f60f4 --- /dev/null +++ b/mach/xenix3/libsys/lock.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _lock +.sect .text +_lock: + mov ax,45 + jmp sysal diff --git a/mach/xenix3/libsys/locking.s b/mach/xenix3/libsys/locking.s new file mode 100644 index 000000000..a7e9e6128 --- /dev/null +++ b/mach/xenix3/libsys/locking.s @@ -0,0 +1,23 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _locking +.sect .text +_locking: + mov ax,296 + push bp + mov bp,sp + push si + push di + mov di,10(bp) + mov si,8(bp) + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 + mov dx,ax +1: + ret diff --git a/mach/xenix3/libsys/lseek.s b/mach/xenix3/libsys/lseek.s new file mode 100644 index 000000000..7a8fba2d4 --- /dev/null +++ b/mach/xenix3/libsys/lseek.s @@ -0,0 +1,25 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _lseek +.sect .text +_lseek: + mov ax,19 + push bp + mov bp,sp + push si + push di + mov di,10(bp) + mov si,8(bp) + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 + mov dx,ax + ret +1: + mov dx,bx + ret diff --git a/mach/xenix3/libsys/mknod.s b/mach/xenix3/libsys/mknod.s new file mode 100644 index 000000000..dbf31c79e --- /dev/null +++ b/mach/xenix3/libsys/mknod.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _mknod +.sect .text +_mknod: + mov ax,14 + jmp sysal diff --git a/mach/xenix3/libsys/mount.s b/mach/xenix3/libsys/mount.s new file mode 100644 index 000000000..d3a9131bd --- /dev/null +++ b/mach/xenix3/libsys/mount.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _mount +.sect .text +_mount: + mov ax,21 + jmp sysal diff --git a/mach/xenix3/libsys/nap.s b/mach/xenix3/libsys/nap.s new file mode 100644 index 000000000..2908995a7 --- /dev/null +++ b/mach/xenix3/libsys/nap.s @@ -0,0 +1,19 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _nap +.sect .text +_nap: + mov ax,3112 + push bp + mov bp,sp + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 + mov dx,ax + ret +1: + mov dx,bx + ret diff --git a/mach/xenix3/libsys/nbwaitsem.s b/mach/xenix3/libsys/nbwaitsem.s new file mode 100644 index 000000000..1474aa838 --- /dev/null +++ b/mach/xenix3/libsys/nbwaitsem.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _nbwaitsem +.sect .text +_nbwaitsem: + mov ax,1576 + jmp sysal diff --git a/mach/xenix3/libsys/nice.s b/mach/xenix3/libsys/nice.s new file mode 100644 index 000000000..471abe9dc --- /dev/null +++ b/mach/xenix3/libsys/nice.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _nice +.sect .text +_nice: + mov ax,34 + jmp sysal diff --git a/mach/xenix3/libsys/open.s b/mach/xenix3/libsys/open.s new file mode 100644 index 000000000..51862e9a8 --- /dev/null +++ b/mach/xenix3/libsys/open.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _open +.sect .text +_open: + mov ax,5 + jmp sysal diff --git a/mach/xenix3/libsys/opensem.s b/mach/xenix3/libsys/opensem.s new file mode 100644 index 000000000..35b894e48 --- /dev/null +++ b/mach/xenix3/libsys/opensem.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _opensem +.sect .text +_opensem: + mov ax,808 + jmp sysal diff --git a/mach/xenix3/libsys/pause.s b/mach/xenix3/libsys/pause.s new file mode 100644 index 000000000..33eff0cd5 --- /dev/null +++ b/mach/xenix3/libsys/pause.s @@ -0,0 +1,11 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _pause +.sect .text +_pause: + mov ax,29 + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/pipe.c b/mach/xenix3/libsys/pipe.c new file mode 100644 index 000000000..fa38108f9 --- /dev/null +++ b/mach/xenix3/libsys/pipe.c @@ -0,0 +1,14 @@ +long _pipe(); + +int +pipe(f) + int f[2]; +{ + long x; + + x = _pipe(); + if (x == -1) return -1; + f[0] = x; + f[1] = x >> 16; + return 0; +} diff --git a/mach/xenix3/libsys/profil.c b/mach/xenix3/libsys/profil.c new file mode 100644 index 000000000..f20e10c47 --- /dev/null +++ b/mach/xenix3/libsys/profil.c @@ -0,0 +1,6 @@ +profil(buff, bufsiz, offset, scale) + char *buff; + int (*offset)(); +{ + _profil(buff, bufsiz, offset, scale, 7262); +} diff --git a/mach/xenix3/libsys/ptrace.s b/mach/xenix3/libsys/ptrace.s new file mode 100644 index 000000000..b7fb13919 --- /dev/null +++ b/mach/xenix3/libsys/ptrace.s @@ -0,0 +1,23 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _ptrace +.sect .text +_ptrace: + mov ax,26 + push bp + mov bp,sp + push si + push di + mov di,4(bp) + mov si,8(bp) + mov cx,6(bp) + mov bx,10(bp) + mov (_errno),0 + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 +1: + pop di + pop si + pop bp + ret diff --git a/mach/xenix3/libsys/rdchk.s b/mach/xenix3/libsys/rdchk.s new file mode 100644 index 000000000..20b524eff --- /dev/null +++ b/mach/xenix3/libsys/rdchk.s @@ -0,0 +1,15 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _rdchk +.sect .text +_rdchk: + mov ax,1832 + push bp + mov bp,sp + mov bx,4(bp) + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 +1: + pop bp + ret diff --git a/mach/xenix3/libsys/read.s b/mach/xenix3/libsys/read.s new file mode 100644 index 000000000..d194f6830 --- /dev/null +++ b/mach/xenix3/libsys/read.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _read +.sect .text +_read: + mov ax,3 + jmp sysal diff --git a/mach/xenix3/libsys/sbrk.s b/mach/xenix3/libsys/sbrk.s new file mode 100644 index 000000000..9389ff65d --- /dev/null +++ b/mach/xenix3/libsys/sbrk.s @@ -0,0 +1,22 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sbrk +.sect .text +_sbrk: + push bp + mov bp,sp + push ds + mov ax,4(bp) + cwd + push dx + push ax + mov ax,1 + push ax + call __brkctl + add sp,8 + pop bp + ret + + +__brkctl: + mov ax,4904 + jmp sysal diff --git a/mach/xenix3/libsys/sdenter.s b/mach/xenix3/libsys/sdenter.s new file mode 100644 index 000000000..fbf5a1268 --- /dev/null +++ b/mach/xenix3/libsys/sdenter.s @@ -0,0 +1,20 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sdenter +.sect .text +_sdenter: + mov ax,3880 + push bp + mov bp,sp + push si + push di + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/sdfree.s b/mach/xenix3/libsys/sdfree.s new file mode 100644 index 000000000..6ab5052d1 --- /dev/null +++ b/mach/xenix3/libsys/sdfree.s @@ -0,0 +1,19 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sdfree +.sect .text +_sdfree: + mov ax,3624 + push bp + mov bp,sp + push si + push di + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/sdget.c b/mach/xenix3/libsys/sdget.c new file mode 100644 index 000000000..36b914f1a --- /dev/null +++ b/mach/xenix3/libsys/sdget.c @@ -0,0 +1,19 @@ +char * +sdget(path, flags, size, mode) + char *path; + long size; +{ + if ((flags & 2) == 2) { + if (size > 0) { + extern char *_sdget(); + + if (size >= 0x10000L) { + extern int errno; + + errno = 22; + return (char *) -1; + } + } + } + return _sdget(path, flags, (unsigned) size - 1, mode); +} diff --git a/mach/xenix3/libsys/sdgetv.s b/mach/xenix3/libsys/sdgetv.s new file mode 100644 index 000000000..73c94b7be --- /dev/null +++ b/mach/xenix3/libsys/sdgetv.s @@ -0,0 +1,19 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sdgetv +.sect .text +_sdgetv: + mov ax,4392 + push bp + mov bp,sp + push si + push di + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/sdleave.s b/mach/xenix3/libsys/sdleave.s new file mode 100644 index 000000000..e1e83a596 --- /dev/null +++ b/mach/xenix3/libsys/sdleave.s @@ -0,0 +1,19 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sdleave +.sect .text +_sdleave: + mov ax,4136 + push bp + mov bp,sp + push si + push di + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/sdwaitv.s b/mach/xenix3/libsys/sdwaitv.s new file mode 100644 index 000000000..c330d269a --- /dev/null +++ b/mach/xenix3/libsys/sdwaitv.s @@ -0,0 +1,20 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sdwaitv +.sect .text +_sdwaitv: + mov ax,4648 + push bp + mov bp,sp + push si + push di + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop di + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 +1: + ret diff --git a/mach/xenix3/libsys/setgid.s b/mach/xenix3/libsys/setgid.s new file mode 100644 index 000000000..f51b62fbb --- /dev/null +++ b/mach/xenix3/libsys/setgid.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _setgid +.sect .text +_setgid: + mov ax,46 + jmp sysal diff --git a/mach/xenix3/libsys/setuid.s b/mach/xenix3/libsys/setuid.s new file mode 100644 index 000000000..43d57bb6b --- /dev/null +++ b/mach/xenix3/libsys/setuid.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _setuid +.sect .text +_setuid: + mov ax,23 + jmp sysal diff --git a/mach/xenix3/libsys/shutdn.s b/mach/xenix3/libsys/shutdn.s new file mode 100644 index 000000000..ab6456464 --- /dev/null +++ b/mach/xenix3/libsys/shutdn.s @@ -0,0 +1,14 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _shutdn +.sect .text +_shutdn: + mov ax,40 + push bp + mov bp,sp + mov cx,6(bp) + mov bx,4(bp) + call syscal + mov (_errno),ax + mov ax,-1 + pop bp + ret diff --git a/mach/xenix3/libsys/signal.s b/mach/xenix3/libsys/signal.s new file mode 100644 index 000000000..30f78711c --- /dev/null +++ b/mach/xenix3/libsys/signal.s @@ -0,0 +1,123 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _signal +.sect .text +_signal: + push bp + mov bp,sp + push si + push di + mov cx,6(bp) + mov bx,4(bp) + cmp bx,20 + jae 1f + mov ax,bx + add bx,bx + push table(bx) + mov table(bx),cx + and cx,cx + je 2f + cmp cx,1 + je 2f + add bx,bx + lea cx,tbl(bx) +2: + mov bx,ax + mov ax,48 + call syscal + pop bx + jb 4f + and ax,ax + je 5f + cmp ax,1 + jne 6f +5: + jmp 7f +6: + xchg ax,bx + jmp 7f +1: + mov ax,22 +4: + mov (_errno),ax + mov ax,-1 +7: + pop di + pop si + pop bp + ret + +ctch: + push bp + mov bp,sp + push ax + push bx + push cx + push dx + push si + push di + mov ax,2(bp) + sub ax,tbl + shr ax,1 + push ax + call table(bx) + pop di + pop di + pop si + pop dx + pop cx + pop bx + pop ax + pop bp + add sp,2 + pop (retadr) + pop (dummy) + popf + jmp (retadr) +.sect .bss +retadr: .space 2 +dummy: .space 2 +.sect .text +tbl: + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align + call ctch +.align +.sect .bss +table: + .space 40 diff --git a/mach/xenix3/libsys/sigsem.s b/mach/xenix3/libsys/sigsem.s new file mode 100644 index 000000000..e1bb816cd --- /dev/null +++ b/mach/xenix3/libsys/sigsem.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sigsem +.sect .text +_sigsem: + mov ax,1064 + jmp sysal diff --git a/mach/xenix3/libsys/stat.s b/mach/xenix3/libsys/stat.s new file mode 100644 index 000000000..923052875 --- /dev/null +++ b/mach/xenix3/libsys/stat.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _stat +.sect .text +_stat: + mov ax,18 + jmp sysal diff --git a/mach/xenix3/libsys/stime.c b/mach/xenix3/libsys/stime.c new file mode 100644 index 000000000..ce0313064 --- /dev/null +++ b/mach/xenix3/libsys/stime.c @@ -0,0 +1,5 @@ +stime(p) + long *p; +{ + return _stime(*p); +} diff --git a/mach/xenix3/libsys/stty.c b/mach/xenix3/libsys/stty.c new file mode 100644 index 000000000..84d37ccab --- /dev/null +++ b/mach/xenix3/libsys/stty.c @@ -0,0 +1,5 @@ +stty(fildes, arg) + char *arg; +{ + return ioctl(fildes, ('t' << 8) | 9, arg); +} diff --git a/mach/xenix3/libsys/sync.s b/mach/xenix3/libsys/sync.s new file mode 100644 index 000000000..e53ad24ae --- /dev/null +++ b/mach/xenix3/libsys/sync.s @@ -0,0 +1,7 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _sync +.sect .text +_sync: + mov ax,36 + call syscal + ret diff --git a/mach/xenix3/libsys/sys.s b/mach/xenix3/libsys/sys.s new file mode 100644 index 000000000..dd65f4909 --- /dev/null +++ b/mach/xenix3/libsys/sys.s @@ -0,0 +1,70 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define syscal, sysal, sysn, sysnl, sysnx, sysc, syse, cerror, _errno + +.sect .bss + .comm _errno, 2 + +.sect .text +syscal: + int 5 + ret + +sysal: + push bp + mov bp,sp + push di + push si + mov di,10(bp) + mov si,8(bp) + mov cx,6(bp) + mov bx,4(bp) + call syscal + mov dx,bx + pop si + pop di + pop bp + jb cerror + ret + +syse: + mov bx,sp + add bx,2 + call syscal +cerror: + mov (_errno),ax + mov ax,-1 + cwd + ret + +sysn: + mov bx,sp + add bx,2 + call syscal + jb cerror + ret + +sysnl: + mov bx,sp + add bx,2 + call syscal + jb cerror + mov dx,bx + ret + +sysnx: + mov bx,sp + add bx,2 + call syscal + jb cerror + xchg bx,ax + ret + +sysc: + mov bx,sp + add bx,2 + call syscal + jb cerror + xor ax,ax + cbw + ret + diff --git a/mach/xenix3/libsys/time.c b/mach/xenix3/libsys/time.c new file mode 100644 index 000000000..600b94143 --- /dev/null +++ b/mach/xenix3/libsys/time.c @@ -0,0 +1,11 @@ +long _time(); + +long +time(p) + long *p; +{ + long l = _time(); + if (p) *p = l; + + return l; +} diff --git a/mach/xenix3/libsys/times.s b/mach/xenix3/libsys/times.s new file mode 100644 index 000000000..71c01b8de --- /dev/null +++ b/mach/xenix3/libsys/times.s @@ -0,0 +1,19 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _times +.sect .text +_times: + mov ax,43 + push bp + mov bp,sp + mov bx,4(bp) + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 + mov dx,ax + pop bp + ret +1: + mov dx,bx + pop bp + ret diff --git a/mach/xenix3/libsys/ulimit.s b/mach/xenix3/libsys/ulimit.s new file mode 100644 index 000000000..8ae36e85c --- /dev/null +++ b/mach/xenix3/libsys/ulimit.s @@ -0,0 +1,22 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _ulimit +.sect .text +_ulimit: + mov ax,63 + push bp + mov bp,sp + push si + mov si,8(bp) + mov cx,6(bp) + mov bx,4(bp) + call syscal + pop si + pop bp + jae 1f + mov (_errno),ax + mov ax,-1 + mov dx,ax + ret +1: + mov dx,bx + ret diff --git a/mach/xenix3/libsys/umask.s b/mach/xenix3/libsys/umask.s new file mode 100644 index 000000000..ed101141f --- /dev/null +++ b/mach/xenix3/libsys/umask.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _umask +.sect .text +_umask: + mov ax,60 + jmp sysal diff --git a/mach/xenix3/libsys/umount.s b/mach/xenix3/libsys/umount.s new file mode 100644 index 000000000..0844b37f9 --- /dev/null +++ b/mach/xenix3/libsys/umount.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _umount +.sect .text +_umount: + mov ax,22 + jmp sysal diff --git a/mach/xenix3/libsys/uname.s b/mach/xenix3/libsys/uname.s new file mode 100644 index 000000000..b229a588b --- /dev/null +++ b/mach/xenix3/libsys/uname.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _uname +.sect .text +_uname: + mov ax,57 + jmp sysal diff --git a/mach/xenix3/libsys/unlink.s b/mach/xenix3/libsys/unlink.s new file mode 100644 index 000000000..71c29980e --- /dev/null +++ b/mach/xenix3/libsys/unlink.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _unlink +.sect .text +_unlink: + mov ax,10 + jmp sysal diff --git a/mach/xenix3/libsys/ustat.s b/mach/xenix3/libsys/ustat.s new file mode 100644 index 000000000..608f769bb --- /dev/null +++ b/mach/xenix3/libsys/ustat.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _ustat +.sect .text +_ustat: + mov ax,569 + jmp sysal diff --git a/mach/xenix3/libsys/utime.s b/mach/xenix3/libsys/utime.s new file mode 100644 index 000000000..069024f72 --- /dev/null +++ b/mach/xenix3/libsys/utime.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _utime +.sect .text +_utime: + mov ax,30 + jmp sysal diff --git a/mach/xenix3/libsys/wait.c b/mach/xenix3/libsys/wait.c new file mode 100644 index 000000000..fb2c181f4 --- /dev/null +++ b/mach/xenix3/libsys/wait.c @@ -0,0 +1,11 @@ +long _wait(); + +wait(p) + int *p; +{ + long l = _wait(); + + if (l == -1) return -1; + if (*p) *p = (l >> 16); + return (int) l; +} diff --git a/mach/xenix3/libsys/waitsem.s b/mach/xenix3/libsys/waitsem.s new file mode 100644 index 000000000..4d41f984b --- /dev/null +++ b/mach/xenix3/libsys/waitsem.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _waitsem +.sect .text +_waitsem: + mov ax,1320 + jmp sysal diff --git a/mach/xenix3/libsys/write.s b/mach/xenix3/libsys/write.s new file mode 100644 index 000000000..a331f94f1 --- /dev/null +++ b/mach/xenix3/libsys/write.s @@ -0,0 +1,6 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define _write +.sect .text +_write: + mov ax,4 + jmp sysal diff --git a/mach/xenix3/libsys/xdup.s b/mach/xenix3/libsys/xdup.s new file mode 100644 index 000000000..0a8789514 --- /dev/null +++ b/mach/xenix3/libsys/xdup.s @@ -0,0 +1,16 @@ +.sect .text; .sect .rom; .sect .data; .sect .bss +.define ___xdup +.sect .text +___xdup: + push bp + mov bp,sp + mov ax,41 + mov cx,6(bp) + mov bx,4(bp) + call syscal + jae 1f + mov (_errno),ax + mov ax,-1 +1: + pop bp + ret