BSD 2 development
[unix-history] / misc / putc.s
CommitLineData
ddcb4516
BJ
1/ putw/putc -- write words/characters on output file
2
3 .globl _putc, _putw, _fflush, _fcreat
4 .globl cerror, _werflg
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
159: sys creat; 0:..; 644
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 dec 2(r1)
311:
32 movb 4(r5),*4(r1)
33 inc 4(r1)
34 dec 2(r1)
35 bge 1f
36 jsr pc,fl
37 dec 2(r1)
381:
39 movb 5(r5),*4(r1)
40 inc 4(r1)
41 mov 4(r5),r0
42 br goodret
43
44_putc:
45 mov r5,-(sp)
46 mov sp,r5
47 mov 6(r5),r1
48 dec 2(r1)
49 bge 1f
50 jsr pc,fl
51 dec 2(r1)
521:
53 mov 4(r5),r0
54 movb r0,*4(r1)
55 inc 4(r1)
56 br goodret
57
58_fflush:
59 mov r5,-(sp)
60 mov sp,r5
61 mov 4(r5),r1
62 jsr pc,fl
63 br goodret
64
65fl:
66 mov r1,r0
67 add $6,r0
68 mov r0,-(sp)
69 mov r0,0f
70 mov 4(r1),0f+2
71 beq 1f
72 sub r0,0f+2
73 mov (r1),r0
74 sys 0; 9f
75.data
769: sys write; 0:..; ..
77.text
78 bec 1f
79 mov r0,_werflg
801:
81 mov (sp)+,4(r1)
82 mov $512.,2(r1)
83 rts pc
84
85badret:
86 jmp cerror
87
88goodret:
89 clr _errno
90 mov (sp)+,r5
91 rts pc
92.bss
93_werflg:.=.+2