From c9627bf4e6f65877dc0dda2a1a6e539757856111 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 29 Aug 1991 11:30:58 +0000 Subject: [PATCH] only depend on MON implementation for system calls --- mach/z8000/libem/LIST | 1 - mach/z8000/libem/printf.s | 13 +++++++++---- mach/z8000/libem/trp.s | 23 ++++++++++++++++++++--- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/mach/z8000/libem/LIST b/mach/z8000/libem/LIST index de1186d8a..299841a12 100644 --- a/mach/z8000/libem/LIST +++ b/mach/z8000/libem/LIST @@ -18,7 +18,6 @@ gto.s inn.s lar.s los2.s -mon.s noop.s prf.s rck.s diff --git a/mach/z8000/libem/printf.s b/mach/z8000/libem/printf.s index 56ca133cd..be754072e 100755 --- a/mach/z8000/libem/printf.s +++ b/mach/z8000/libem/printf.s @@ -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 diff --git a/mach/z8000/libem/trp.s b/mach/z8000/libem/trp.s index 82ed1df9a..aa734397f 100644 --- a/mach/z8000/libem/trp.s +++ b/mach/z8000/libem/trp.s @@ -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" -- 2.34.1