]> diplodocus.org Git - nmh/blob - docs/historical/SRI-NOSC/putc.s
Added start_test/finish_test to a bunch of tests.
[nmh] / docs / historical / SRI-NOSC / putc.s
1 / putw/putc -- write words/characters on output file
2
3 .globl _putc, _putw, _fflush, _fcreat
4 .globl cerror
5 .comm _errno,2
6
7 _fcreat:
8 mov r5,-(sp)
9 mov sp,r5
10 mov 4(r5),0f
11 mov 6(r5),r1
12 mov pc,(r1) / a putatively illegal file desc.
13 sys 0; 9f
14 .data
15 9: sys creat; 0:..; 666
16 .text
17 bes badret
18 mov r0,(r1)+
19 clr (r1)+
20 clr (r1)+
21 br goodret
22
23 _putw:
24 mov r5,-(sp)
25 mov sp,r5
26 mov 6(r5),r1
27 dec 2(r1)
28 bge 1f
29 jsr pc,fl
30 bes badret
31 dec 2(r1)
32 1:
33 movb 4(r5),*4(r1)
34 inc 4(r1)
35 dec 2(r1)
36 bge 1f
37 jsr pc,fl
38 bes badret
39 dec 2(r1)
40 1:
41 movb 5(r5),*4(r1)
42 inc 4(r1)
43 mov 4(r5),r0
44 br goodret
45
46 _putc:
47 mov r5,-(sp)
48 mov sp,r5
49 mov 6(r5),r1
50 dec 2(r1)
51 bge 1f
52 jsr pc,fl
53 bes badret
54 dec 2(r1)
55 1:
56 mov 4(r5),r0
57 movb r0,*4(r1)
58 inc 4(r1)
59 br goodret
60
61 _fflush:
62 mov r5,-(sp)
63 mov sp,r5
64 mov 4(r5),r1
65 jsr pc,fl
66 bes badret
67 br goodret
68
69 fl:
70 mov r1,r0
71 add $6,r0
72 mov r0,-(sp)
73 mov r0,0f
74 mov 4(r1),0f+2
75 beq 1f
76 sub r0,0f+2
77 mov (r1),r0
78 sys 0; 9f
79 .data
80 9: sys write; 0:..; ..
81 .text
82 1:
83 mov (sp)+,4(r1)
84 mov $512.,2(r1)
85 rts pc
86
87 badret:
88 jmp cerror
89
90 goodret:
91 clr _errno
92 mov (sp)+,r5
93 rts pc