Adapted for use of ACK VAX assembler

This commit is contained in:
ceriel 1990-01-11 16:00:19 +00:00
parent 2eacdccc5d
commit de564c09b2
141 changed files with 1026 additions and 816 deletions

View file

@ -16,8 +16,7 @@ head_em.o: head_em.s
vax4 -I../../../h -c head_em.s
libmon_o.a: libmon_s.a
ASAR=ar ; export ASAR ;\
RANLIB=ranlib ; export RANLIB ;\
ASAR=aal ; export ASAR ;\
march . libmon_o.a
clean:

View file

@ -1,8 +1,10 @@
.globl __exit
.set exit,1
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define __exit
exit = 1
.align 1
__exit:
.word 0x0000
.data2 0x0000
chmk $exit
halt

View file

@ -1,9 +1,11 @@
.globl _access
.set access,33
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _access
access = 33
.align 1
_access:
.word 0x0000
.data2 0x0000
chmk $access
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _acct
.set acct,51
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _acct
acct = 51
.align 1
_acct:
.word 0x0000
.data2 0x0000
chmk $acct
bcc 1f
jmp errmon

View file

@ -1,8 +1,10 @@
.globl _alarm
.set alarm,27
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _alarm
alarm = 27
.align 1
_alarm:
.word 0x0000
.data2 0x0000
chmk $alarm
ret

View file

@ -1,9 +1,11 @@
.globl _chdir
.set chdir,12
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _chdir
chdir = 12
.align 1
_chdir:
.word 0x0000
.data2 0x0000
chmk $chdir
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _chmod
.set chmod,15
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _chmod
chmod = 15
.align 1
_chmod:
.word 0x0000
.data2 0x0000
chmk $chmod
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _chown
.set chown,16
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _chown
chown = 16
.align 1
_chown:
.word 0x0000
.data2 0x0000
chmk $chown
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _chroot
.set chroot,61
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _chroot
chroot = 61
.globl errmon
.define errmon
_chroot:
.word 0x0000
.data2 0x0000
chmk $chroot
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _close
.set close,6
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _close
close = 6
.align 1
_close:
.word 0x0000
.data2 0x0000
chmk $close
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _creat
.set creat,8
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _creat
creat = 8
.align 1
_creat:
.word 0x0000
.data2 0x0000
chmk $creat
bcc 1f
jmp errmon

View file

@ -1,15 +1,17 @@
.globl _dup
.globl _dup2
.set dup,41
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _dup
.define _dup2
dup = 41
.align 1
_dup:
.word 0x0000
.data2 0x0000
brb 1f
.align 1
_dup2:
.word 0x0000
.data2 0x0000
bisb2 $0100,4(ap)
1:
chmk $dup

View file

@ -1,4 +1,6 @@
.globl errmon
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define errmon
.comm _errno,4
.align 1

View file

@ -1,9 +1,11 @@
.globl _execl
.globl _environ
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execl
.define _environ
.align 1
_execl:
.word 0x0000
.data2 0x0000
pushl _environ
pushab 8(ap)
pushl 4(ap)

View file

@ -1,8 +1,10 @@
.globl _execle
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execle
.align 1
_execle:
.word 0x0000
.data2 0x0000
movl (ap),r0
pushl (ap)[r0]
pushab 8(ap)

View file

@ -1,9 +1,11 @@
.globl _execv
.globl _environ
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execv
.define _environ
.align 1
_execv:
.word 0x0000
.data2 0x0000
pushl _environ
pushl 8(ap)
pushl 4(ap)

View file

@ -1,8 +1,10 @@
.globl _execve
.set exec,59
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execve
exec = 59
.align 1
_execve:
.word 0x0000
.data2 0x0000
chmk $exec
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _fork
.set fork,2
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _fork
fork = 2
.align 1
_fork:
.word 0x0000
.data2 0x0000
chmk $fork
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _fstat
.set fstat,28
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _fstat
fstat = 28
.align 1
_fstat:
.word 0x0000
.data2 0x0000
chmk $fstat
bcc 1f
jmp errmon

View file

@ -1,8 +1,10 @@
.globl _ftime
.set ftime,35
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _ftime
ftime = 35
.align 1
_ftime:
.word 0x0000
.data2 0x0000
chmk $ftime
ret

View file

@ -1,16 +1,18 @@
.globl _getgid
.globl _getegid
.set getgid,47
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _getgid
.define _getegid
getgid = 47
.align 1
_getgid:
.word 0x0000
.data2 0x0000
chmk $getgid
ret
.align 1
_getegid:
.word 0x0000
.data2 0x0000
chmk $getgid
movl r1,r0
ret

View file

@ -1,16 +1,18 @@
.globl _getpid
.globl _getppid
.set getpid,20
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _getpid
.define _getppid
getpid = 20
.align 1
_getpid:
.word 0x0000
.data2 0x0000
chmk $getpid
ret
.align 1
_getppid:
.word 0x0000
.data2 0x0000
chmk $getpid
movl r1,r0
ret

View file

@ -1,16 +1,18 @@
.globl _getuid
.globl _geteuid
.set getuid,24
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _getuid
.define _geteuid
getuid = 24
.align 1
_getuid:
.word 0x0000
.data2 0x0000
chmk $getuid
ret
.align 1
_geteuid:
.word 0x0000
.data2 0x0000
chmk $getuid
movl r1,r0
ret

View file

@ -1,76 +1,81 @@
#include "em_abs.h"
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
# $Header$
! $Header$
.globl hol0
.globl .reghp
.globl .trppc
.globl .trpim
.define hol0
.define .reghp
.define .trppc
.define .trpim
# run time startoff
.word 0
bispsw $0100 # set FU(0100)
! run time startoff
.data2 0
bispsw $0100 ! set FU(0100)
movl 4(sp),r0
clrl -4(r0)
movl sp,r0
movl (r0)+,r1
movl r0,r2
a1:
1:
tstl (r0)+
bneq a1
bneq 1b
cmpl r0,(r2)
blssu a2
blssu 2f
tstl -(r0)
a2:
2:
pushl r0
pushl r2
pushl r1
movl $m1,ap
chmk (ap)+ # catch floating point exception
movl $Im1,ap
chmk (ap)+ ! catch floating point exception
calls $3,_m_a_i_n
movl $m2,ap
movl $Im2,ap
movl r0,6(ap)
chmk (ap)+
halt
.align 1
sig8:
.word 0x0000
Isig8:
.data2 0x0000
pushl 8(ap)
movl (sp)+,ap
pushl tab [ap]
pushl Itab [ap]
jsb .trp
movl $m1,ap
movl $Im1,ap
chmk (ap)+
ret
.data
m1:
.word 48
.long 2
.long 8
.long sig8
m2:
.word 1
.long 1
.long 0
.sect .rom
Im1:
.data2 48
.data4 2
.data4 8
.data4 Isig8
Itab:
.data4 0
.data4 EIOVFL
.data4 EIDIVZ
.data4 EFOVFL
.data4 EFDIVZ
.data4 EFUNFL
.data4 EILLINS
.data4 EARRAY
.data4 EFOVFL
.data4 EFDIVZ
.data4 EFUNFL
.sect .data
Im2:
.data2 1
.data4 1
.data4 0
.reghp:
.long _end
.data4 _end
hol0:
.space 8
.trppc:
.space 4
.trpim:
.long 0
tab:
.long 0
.long EIOVFL
.long EIDIVZ
.long EFOVFL
.long EFDIVZ
.long EFUNFL
.long EILLINS
.long EARRAY
.long EFOVFL
.long EFDIVZ
.long EFUNFL
.data4 0

View file

@ -1,9 +1,11 @@
.globl _ioctl
.set ioctl,54
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _ioctl
ioctl = 54
.align 1
_ioctl:
.word 0x0000
.data2 0x0000
chmk $ioctl
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _kill
.set kill,37
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _kill
kill = 37
.align 1
_kill:
.word 0x0000
.data2 0x0000
chmk $kill
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _link
.set link,9
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _link
link = 9
.align 1
_link:
.word 0x0000
.data2 0x0000
chmk $link
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _lseek
.set lseek,19
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _lseek
lseek = 19
.align 1
_lseek:
.word 0x0000
.data2 0x0000
chmk $lseek
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _mknod
.set mknod,14
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _mknod
mknod = 14
.align 1
_mknod:
.word 0x0000
.data2 0x0000
chmk $mknod
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _mount
.set mount,21
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _mount
mount = 21
.align 1
_mount:
.word 0x0000
.data2 0x0000
chmk $mount
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.set mpxcall,56
.globl _mpxcall
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
mpxcall = 56
.define _mpxcall
.align 1
_mpxcall:
.word 0x0000
.data2 0x0000
chmk $mpxcall
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _nice
.set nice,34
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _nice
nice = 34
.align 1
_nice:
.word 0x0000
.data2 0x0000
chmk $nice
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _open
.set open,5
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _open
open = 5
.align 1
_open:
.word 0x0000
.data2 0x0000
chmk $open
bcc 1f
jmp errmon

View file

@ -1,8 +1,10 @@
.globl _pause
.set pause,29
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _pause
pause = 29
.align 1
_pause:
.word 0x0000
.data2 0x0000
chmk $pause
ret

View file

@ -1,9 +1,11 @@
.globl _pipe
.set pipe,42
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _pipe
pipe = 42
.align 1
_pipe:
.word 0x0000
.data2 0x0000
chmk $pipe
bcc 1f
jmp errmon

View file

@ -1,8 +1,10 @@
.globl _profil
.set profil,44
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _profil
profil = 44
.align 1
_profil:
.word 0x0000
.data2 0x0000
chmk $profil
ret

View file

@ -1,9 +1,11 @@
.globl _ptrace
.set ptrace,26
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _ptrace
ptrace = 26
.align 1
_ptrace:
.word 0x0000
.data2 0x0000
clrl _errno
chmk $ptrace
bcc 1f

View file

@ -1,9 +1,11 @@
.globl _read
.set read,3
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _read
read = 3
.align 1
_read:
.word 0x0000
.data2 0x0000
chmk $read
bcc 1f
jmp errmon

View file

@ -1,16 +1,18 @@
.set break,17
.globl _sbrk
.globl _brk
.globl _end
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
break = 17
.define _sbrk
.define _brk
.define _end
.align 1
_sbrk:
.word 0x0000
addl3 brk,4(ap),-(sp)
.data2 0x0000
addl3 Ibrk,4(ap),-(sp)
bcc 1f
movl $0xFFFFFFFF,(sp) # will cause an error (I hope)
movl $0xFFFFFFFF,(sp) ! will cause an error (I hope)
1:
movl brk,r3
movl Ibrk,r3
calls $1,_brk
tstl r0
blss 1f
@ -20,14 +22,14 @@ _sbrk:
.align 1
_brk:
.word 0x0000
.data2 0x0000
chmk $break
bcc 1f
jmp errmon
1:
movl 4(ap),brk
movl 4(ap),Ibrk
clrl r0
ret
.data
brk: .long _end
.sect .data
Ibrk: .data4 _end

View file

@ -1,9 +1,11 @@
.globl _setgid
.set setgid,46
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _setgid
setgid = 46
.align 1
_setgid:
.word 0x0000
.data2 0x0000
chmk $setgid
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _setuid
.set setuid,23
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _setuid
setuid = 23
.align 1
_setuid:
.word 0x0000
.data2 0x0000
chmk $setuid
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _signal
.set signal,48
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _signal
signal = 48
.align 1
_signal:
.word 0x0000
.data2 0x0000
chmk $signal
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _stat
.set stat,18
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _stat
stat = 18
.align 1
_stat:
.word 0x0000
.data2 0x0000
chmk $stat
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _stime
.set stime,25
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _stime
stime = 25
.align 1
_stime:
.word 0x0000
.data2 0x0000
movl *4(ap),4(ap)
chmk $stime
bcc 1f

View file

@ -1,8 +1,10 @@
.globl _sync
.set sync,36
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _sync
sync = 36
.align 1
_sync:
.word 0x0000
.data2 0x0000
chmk $sync
ret

View file

@ -1,8 +1,10 @@
.globl _syscall
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _syscall
.align 1
_syscall:
.word 0x0000
.data2 0x0000
movl 4(ap),r0
subl3 $1,(ap)+,(ap)
chmk r0

View file

@ -1,9 +1,11 @@
.globl _time
.set time,13
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _time
time = 13
.align 1
_time:
.word 0x0000
.data2 0x0000
chmk $time
movl 4(ap),r1
beql 1f

View file

@ -1,8 +1,10 @@
.globl _times
.set times,43
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _times
times = 43
.align 1
_times:
.word 0x0000
.data2 0x0000
chmk $times
ret

View file

@ -1,9 +1,11 @@
.globl _umask
.set umask,60
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _umask
umask = 60
.align 1
_umask:
.word 0x0000
.data2 0x0000
chmk $umask
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _umount
.set umount,22
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _umount
umount = 22
.align 1
_umount:
.word 0x0000
.data2 0x0000
chmk $umount
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _unlink
.set unlink,10
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _unlink
unlink = 10
.align 1
_unlink:
.word 0x0000
.data2 0x0000
chmk $unlink
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _utime
.set utime,30
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _utime
utime = 30
.align 1
_utime:
.word 0x0000
.data2 0x0000
chmk $utime
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.set vadvise,72
.globl _vadvise
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
vadvise = 72
.define _vadvise
.align 1
_vadvise:
.word 0x0000
.data2 0x0000
chmk $vadvise
bcc 1f
jmp errmon

View file

@ -1,12 +1,14 @@
.globl _vfork
.set vfork,66
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vfork
vfork = 66
.align 1
_vfork:
.word 0x0000
.data2 0x0000
movl 16(fp),r2
movab 1f,16(fp) # dirty. Only one process can do return,
# so do it before forking
movab 1f,16(fp) ! dirty. Only one process can do return,
! so do it before forking
ret
1:
chmk $vfork

View file

@ -1,8 +1,10 @@
.globl _vhangup
.set vhangup,76
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vhangup
vhangup = 76
.align 1
_vhangup:
.word 0x0000
.data2 0x0000
chmk $vhangup
ret

View file

@ -1,9 +1,11 @@
.globl _vlimit
.set vlimit,77
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vlimit
vlimit = 77
.align 1
_vlimit:
.word 0x0000
.data2 0x0000
chmk $vlimit
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _vread
.set vread,67
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vread
vread = 67
.align 1
_vread:
.word 0x0000
.data2 0x0000
chmk $vread
bcc 1f
jmp errmon

View file

@ -1,8 +1,10 @@
.globl _vtimes
.set vtimes,107
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vtimes
vtimes = 107
.align 1
_vtimes:
.word 0x0000
.data2 0x0000
chmk $vtimes
ret

View file

@ -1,9 +1,11 @@
.globl _vwait
.set vwait,71
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vwait
vwait = 71
.align 1
_vwait:
.word 0x0000
.data2 0x0000
chmk $vwait
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _vwrite
.set vwrite,68
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _vwrite
vwrite = 68
.align 1
_vwrite:
.word 0x0000
.data2 0x0000
chmk $vwrite
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.set wait,7
.globl _wait
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
wait = 7
.define _wait
.align 1
_wait:
.word 0x0000
.data2 0x0000
chmk $wait
bcc 1f
jmp errmon

View file

@ -1,9 +1,11 @@
.globl _write
.set write,4
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _write
write = 4
.align 1
_write:
.word 0x0000
.data2 0x0000
chmk $write
bcc 1f
jmp errmon

View file

@ -17,8 +17,7 @@ head_em: head_em.s
vax4 -I../../../h -c head_em.s ; mv head_em.o head_em
tail_mon:
ASAR=ar ; export ASAR ;\
RANLIB=ranlib ; export RANLIB ;\
ASAR=aal ; export ASAR ;\
march . tail_mon
clean:

View file

@ -1,29 +1,29 @@
#include "syscall.h"
.globl _end
.extern _end
DEFINE(_brk)
cmpl 4(ap),min
bgeq ok
movl min,4(ap)
ok:
cmpl 4(ap),Imin
bgeq Iok
movl Imin,4(ap)
Iok:
chmk $17
bcs err
movl 4(ap),cur
bcs Ierr
movl 4(ap),Icur
clrl r0
ret
err:
Ierr:
jmp cerror
DEFINE(_sbrk)
addl3 cur,4(ap),-(sp)
bcs err
bcs Ierr
pushl $1
movl ap,r3
movl sp,ap
chmk $17
bcs err
movl cur,r0
addl2 4(r3),cur
bcs Ierr
movl Icur,r0
addl2 4(r3),Icur
ret
.data
min: .long _end
cur: .long _end
.sect .data
Imin: .data4 _end
Icur: .data4 _end

View file

@ -1,8 +1,9 @@
.globl _errno
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _errno
.define cerror
.comm _errno, 4
cerror:
movl r0,_errno
mnegl $1,r0
ret

View file

@ -1,5 +1,5 @@
#include "syscall.h"
.globl _environ
.extern _environ
DEFINE(_execl)
pushl _environ
pushab 8(ap)

View file

@ -1,5 +1,5 @@
#include "syscall.h"
.globl _environ
.extern _environ
DEFINE(_execv)
pushl _environ
pushl 8(ap)

View file

@ -1,10 +1,10 @@
#include "syscall.h"
DEFINE(_fork)
chmk $SYS_fork
bcs err
jlbc r1,parent
bcs Ierr
blbc r1,Iparent
clrl r0
parent:
Iparent:
ret
err:
Ierr:
jmp cerror

View file

@ -1,103 +1,104 @@
#include "em_abs.h"
#include "syscall.h"
# $Header$
! $Header$
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define hol0
.define .reghp
.define .trppc
.define .trpim
.globl hol0
.globl .reghp
.globl .trppc
.globl .trpim
# run time startoff
.word 0
bispsw $0100 # set FU(0100)
! run time startoff
.data2 0
bispsw $0100 ! set FU(0100)
movl 4(sp),r0
clrl -4(r0)
movl sp,r0
movl (r0)+,r1
movl r0,r2
a1:
1:
tstl (r0)+
bneq a1
bneq 1b
cmpl r0,(r2)
blssu a2
blssu 2f
tstl -(r0)
a2:
2:
pushl r0
pushl r2
pushl r1
movl $m1,ap
chmk (ap)+ # catch floating point exception
movl $Im1,ap
chmk (ap)+ ! catch floating point exception
calls $3,_m_a_i_n
movl $m2,ap
movl $Im2,ap
movl r0,6(ap)
chmk (ap)+
halt
.align 1
sig8:
.word 0x0000
Isig8:
.data2 0x0000
pushl 8(ap)
movl $m3,ap
chmk (ap)+ # restore default handler
movl $m5,ap
chmk (ap)+ # get current signal mask
bicl3 $0x80,r0,m4+6 # and remove the 8th bit
movl $m4,ap
chmk (ap)+ # and
movl $Im3,ap
chmk (ap)+ ! restore default handler
movl $Im5,ap
chmk (ap)+ ! get current signal mask
bicl3 $0x80,r0,Im4+6 ! and remove the 8th bit
movl $Im4,ap
chmk (ap)+ ! and
movl (sp)+,ap
pushl tab [ap]
pushl Itab [ap]
jsb .trp
movl $m1,ap
movl $Im1,ap
chmk (ap)+
ret
.data
m1:
.word SYS_sigvec
.long 3
.long 8
.long m1a
.long 0
m3:
.word SYS_sigvec
.long 3
.long 8
.long 0
.long 0
m4:
.word SYS_sigsetmask
.long 1
.long 0
m5:
.word SYS_sigblock
.long 1
.long 0
m1a:
.long sig8
.long 0
.long 0
m2:
.word 1
.long 1
.long 0
.sect .data
Im1:
.data2 SYS_sigvec
.data4 3
.data4 8
.data4 Im1a
.data4 0
Im3:
.data2 SYS_sigvec
.data4 3
.data4 8
.data4 0
.data4 0
Im4:
.data2 SYS_sigsetmask
.data4 1
.data4 0
Im5:
.data2 SYS_sigblock
.data4 1
.data4 0
Im1a:
.data4 Isig8
.data4 0
.data4 0
Im2:
.data2 1
.data4 1
.data4 0
.reghp:
.long _end
.data4 _end
hol0:
.space 8
.trppc:
.space 4
.trpim:
.long 0
tab:
.long 0
.long EIOVFL
.long EIDIVZ
.long EFOVFL
.long EFDIVZ
.long EFUNFL
.long EILLINS
.long EARRAY
.long EFOVFL
.long EFDIVZ
.long EFUNFL
.data4 0
Itab:
.data4 0
.data4 EIOVFL
.data4 EIDIVZ
.data4 EFOVFL
.data4 EFDIVZ
.data4 EFUNFL
.data4 EILLINS
.data4 EARRAY
.data4 EFOVFL
.data4 EFDIVZ
.data4 EFUNFL

View file

@ -3,9 +3,9 @@
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
#define DEFINE(sysn) .globl sysn; .align 1; sysn: .word 0
#define SYSTEM(sys) chmk $sys; bcs err; ret; err: jmp cerror
#define SYSNORET(sys) chmk $sys; bcc ok; jmp cerror; ok:
#define DEFINE(sysn) .define sysn; .align 1; sysn: .data2 0
#define SYSTEM(sys) chmk $sys; bcs Ierr; ret; Ierr: jmp cerror
#define SYSNORET(sys) chmk $sys; bcc Iok; jmp cerror; Iok:
#define SYS_exit 1
#define SYS_fork 2
#define SYS_read 3
@ -122,3 +122,6 @@
#define SYS_quota 149
#define SYS_getsockname 150
#define SYS_getdirentries 156
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text

View file

@ -3,7 +3,7 @@ DEFINE(_syscall)
movl 4(ap),r0
subl3 $1,(ap)+,(ap)
chmk r0
bcs err
bcs Ierr
ret
err:
Ierr:
jmp cerror

View file

@ -1,17 +1,17 @@
#include "syscall.h"
DEFINE(_vfork)
movl 16(fp),r2
movab newret,16(fp)
ret # cleans stack
newret:
movab Inewret,16(fp)
ret ! cleans stack
Inewret:
chmk $SYS_vfork
bcs err
bcs Ierr
tstl r1
beql parent
beql Iparent
clrl r0
parent:
Iparent:
jmp (r2)
err:
Ierr:
movl r0,_errno
mnegl $1,r0
jmp (r2)

View file

@ -2,7 +2,7 @@
DEFINE(_wait)
SYSNORET(SYS_wait)
tstl 4(ap)
beql out
beql Iout
movl r1,*4(ap)
out:
Iout:
ret

View file

@ -4,11 +4,11 @@ DEFINE(_wait3)
movl 12(ap),r1
bispsw $0xf
chmk $SYS_wait
bcs err
bcs Ierr
tstl 4(ap)
beql out
beql Iout
movl r1,*4(ap)
out:
Iout:
ret
err:
Ierr:
jmp cerror

View file

@ -16,8 +16,7 @@ head_em.o: head_em.s
vax4 -I../../../h -c head_em.s
libmon_o.a: libmon_s.a
ASAR=ar ; export ASAR ;\
RANLIB=ranlib ; export RANLIB ;\
ASAR=aal ; export ASAR ;\
march . libmon_o.a
clean:

View file

@ -1,7 +1,9 @@
.set exit,1
.globl __exit
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
exit = 1
.define __exit
__exit:
.word 0x0000
.data2 0x0000
chmk $exit
halt

View file

@ -1,11 +1,13 @@
.set access,33
.globl _access
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
access = 33
.define _access
.define cerror
_access:
.word 0x0000
.data2 0x0000
chmk $access
bcc ok
bcc 1f
jmp cerror
ok:
1:
ret

View file

@ -1,11 +1,13 @@
.set acct,51
.globl _acct
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
acct = 51
.define _acct
.define cerror
_acct:
.word 0x0000
.data2 0x0000
chmk $acct
bcc ok
bcc 1f
jmp cerror
ok:
1:
ret

View file

@ -1,7 +1,9 @@
.set alarm,27
.globl _alarm
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
alarm = 27
.define _alarm
_alarm:
.word 0x0000
.data2 0x0000
chmk $alarm
ret

View file

@ -1,10 +1,12 @@
.globl cerror
.globl _errno
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define cerror
.define _errno
.data
_errno: .long 0
.sect .bss
.comm _errno, 4
.text
.sect .text
cerror:
movl r0,_errno
mnegl $1,r0

View file

@ -1,12 +1,14 @@
.set chdir,12
.globl _chdir
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
chdir = 12
.define _chdir
.define cerror
_chdir:
.word 0x0000
.data2 0x0000
chmk $chdir
bcc ok
bcc 1f
jmp cerror
ok:
1:
clrl r0
ret

View file

@ -1,12 +1,13 @@
.set chmod,15
.globl _chmod
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
chmod = 15
.define _chmod
_chmod:
.word 0x0000
.data2 0x0000
chmk $chmod
bcc ok
bcc 1f
jmp cerror
ok:
1:
clrl r0
ret

View file

@ -1,12 +1,13 @@
.set chown,16
.globl _chown
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
chown = 16
.define _chown
_chown:
.word 0x0000
.data2 0x0000
chmk $chown
bcc ok
bcc 1f
jmp cerror
ok:
1:
clrl r0
ret

View file

@ -1,11 +1,12 @@
.set chroot,61
.globl _chroot
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
chroot = 61
.define _chroot
_chroot:
.word 0x0000
.data2 0x0000
chmk $chroot
bcc ok
bcc 1f
jmp cerror
ok:
1:
ret

View file

@ -1,12 +1,13 @@
.set close,6
.globl _close
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
close = 6
.define _close
_close:
.word 0x0000
.data2 0x0000
chmk $close
bcc ok
bcc 1f
jmp cerror
ok:
1:
clrl r0
ret

View file

@ -1,11 +1,12 @@
.set creat,8
.globl _creat
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
creat = 8
.define _creat
_creat:
.word 0x0000
.data2 0x0000
chmk $creat
bcc ok
bcc 1f
jmp cerror
ok:
1:
ret

View file

@ -1,11 +1,12 @@
.set dup,41
.globl _dup
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
dup = 41
.define _dup
_dup:
.word 0x0000
.data2 0x0000
chmk $dup
bcc ok
bcc 1f
jmp cerror
ok:
1:
ret

View file

@ -1,8 +1,9 @@
.globl _execl
.globl _execv
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execl
_execl:
.word 0x0000
.data2 0x0000
pushab 8(ap)
pushl 4(ap)
calls $2,_execv

View file

@ -1,8 +1,9 @@
.globl _execle
.globl _execve
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execle
_execle:
.word 0x0000
.data2 0x0000
movl (ap),r0
pushl (ap)[r0]
pushab 8(ap)

View file

@ -1,9 +1,9 @@
.globl _execv
.globl _execve
.globl _environ
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define _execv
_execv:
.word 0x0000
.data2 0x0000
pushl _environ
pushl 8(ap)
pushl 4(ap)

View file

@ -1,8 +1,9 @@
.set exece,59
.globl _execve
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
exece = 59
.define _execve
_execve:
.word 0x0000
.data2 0x0000
chmk $exece
jmp cerror

View file

@ -1,11 +1,12 @@
.set fcntl,62
.globl _fcntl
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
fcntl = 62
.define _fcntl
_fcntl:
.word 0x0000
.data2 0x0000
chmk $fcntl
bcc ok
bcc 1f
jmp cerror
ok:
1:
ret

View file

@ -1,14 +1,15 @@
.set fork,2
.globl _fork
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
fork = 2
.define _fork
_fork:
.word 0x0000
.data2 0x0000
chmk $fork
bcc ok
bcc 1f
jmp cerror
ok:
blbc r1,out
1:
blbc r1,1f
clrl r0
out:
1:
ret

View file

@ -1,12 +1,13 @@
.set fstat,28
.globl _fstat
.globl cerror
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
fstat = 28
.define _fstat
_fstat:
.word 0x0000
.data2 0x0000
chmk $fstat
bcc ok
bcc 1f
jmp cerror
ok:
1:
clrl r0
ret

View file

@ -1,8 +1,10 @@
.set getgid,47
.globl _getegid
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
getgid = 47
.define _getegid
_getegid:
.word 0x0000
.data2 0x0000
chmk $getgid
movl r1,r0
ret

View file

@ -1,8 +1,10 @@
.set getuid,24
.globl _geteuid
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
getuid = 24
.define _geteuid
_geteuid:
.word 0x0000
.data2 0x0000
chmk $getuid
movl r1,r0
ret

View file

@ -1,7 +1,9 @@
.set getgid,47
.globl _getgid
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
getgid = 47
.define _getgid
_getgid:
.word 0x0000
.data2 0x0000
chmk $getgid
ret

View file

@ -1,7 +1,9 @@
.set getpid,20
.globl _getpid
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
getpid = 20
.define _getpid
_getpid:
.word 0x0000
.data2 0x0000
chmk $getpid
ret

View file

@ -1,8 +1,10 @@
.set getpid,20
.globl _getppid
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
getpid = 20
.define _getppid
_getppid:
.word 0x0000
.data2 0x0000
chmk $getpid
movl r1,r0
ret

View file

@ -1,7 +1,9 @@
.set getuid,24
.globl _getuid
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
getuid = 24
.define _getuid
_getuid:
.word 0x0000
.data2 0x0000
chmk $getuid
ret

Some files were not shown because too many files have changed in this diff Show more