Research V7 development
[unix-history] / .ref-Research-V6 / usr / source / s3 / put.s
CommitLineData
6b92951c
KT
1/ putw/putc -- write words/characters on output file
2/
3/ fcreat -- create an output file for use by put(w|c)
4/
5/ calling sequences --
6/
7/ mov $filename,r0
8/ jsr r5,fcreat; ioptr
9/
10/ on return ioptr is set up for use by put or error
11/ bit is set if file could not be created.
12/
13/ mov(b) thing,r0
14/ jsr r5,put(w|c)1; ioptr
15/
16/ the character or word is written out.
17/
18/ jsr r5,flush; ioptr
19/
20/ the buffer is fled.
21/
22
23 .globl putc, putw, flush, fcreat
24
25fcreat:
26 mov r1,-(sp)
27 mov (r5)+,r1
28 mov r0,0f
29 sys 0; 9f
30.data
319:
32 sys creat; 0:..; 666
33.text
34 bes 1f
35 mov r0,(r1)+
362:
37 clr (r1)+
38 clr (r1)+
39 mov (sp)+,r1
40 rts r5
411:
42 mov $-1,(r1)+
43 mov (sp)+,r1
44 sec
45 rts r5
46
47.data
48putw:
49 mov (r5),8f
50 mov (r5)+,9f
51 mov r0,-(sp)
52 jsr r5,putc; 8:..
53 mov (sp)+,r0
54 swab r0
55 jsr r5,putc; 9:..
56 rts r5
57.text
58
59putc:
60 mov r1,-(sp)
61 mov (r5)+,r1
621:
63 dec 2(r1)
64 bge 1f
65 mov r0,-(sp)
66 jsr pc,fl
67 mov (sp)+,r0
68 br 1b
691:
70 movb r0,*4(r1)
71 inc 4(r1)
72 mov (sp)+,r1
73 rts r5
74
75flush:
76 mov r0,-(sp)
77 mov r1,-(sp)
78 mov (r5)+,r1
79 jsr pc,fl
80 mov (sp)+,r1
81 mov (sp)+,r0
82 rts r5
83
84fl:
85 mov r1,r0
86 add $6,r0
87 mov r0,-(sp)
88 mov r0,0f
89 mov 4(r1),0f+2
90 beq 1f
91 sub (sp),0f+2
92 mov (r1),r0
93 sys 0; 9f
94.data
959:
96 sys write; 0:..; ..
97.text
981:
99 mov (sp)+,4(r1)
100 mov $512.,2(r1)
101 rts pc
102