only depend on MON implementation for system calls

This commit is contained in:
ceriel 1991-08-29 11:30:58 +00:00
parent 8a9e71256f
commit c9627bf4e6
3 changed files with 29 additions and 8 deletions

View file

@ -18,7 +18,6 @@ gto.s
inn.s
lar.s
los2.s
mon.s
noop.s
prf.s
rck.s

View file

@ -58,10 +58,15 @@ ready: !now really print the string we built in the buffer
ldb 0(R3), RL0 !end string with '\0'
sub R3, $buff-1 !R3 contains the number of characters
ld R1, $buff
7: ldb RL0, 0(R1)
inc R1
sc $4
djnz R3, 7b
push *RR14, R3 !count
push *RR14, R1 !buffer
push *RR14, $2 !file descriptor
push *RR14, $4 ! write
calr mon
pop R1, *RR14
pop R1, *RR14 ! ignore result
ldm R4, savereg, $10
pushl *RR14, saveret
ret

View file

@ -6,8 +6,20 @@
.sect .text
fatal:
push *RR14, R1
inc R15, $2
popl saveret, *RR14
pop R1, *RR14 !trap number in R1
push *RR14, R1
push *RR14, R1
dec R15, $4
pop R1, *RR14 !restore R1
inc R15, $2
pushl *RR14, saveret
calr trp
sc $EXIT
push *RR14, $1
calr mon
!NOTREACHED
trp:
push *RR14, R1
@ -36,8 +48,13 @@ trp:
2: pop R1, *RR14
pop R0, *RR14
ret
3: push *RR14, $err
3: pop R1, *RR14
push *RR14, R1
push *RR14, R1
push *RR14, $err
calr printf
sc $EXIT
push *RR14, $1
calr mon
!NOTREACHED
.sect .data
err: .asciz "trap error %d\n"