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
.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
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"