Add original unix v6
This commit is contained in:
+102
@@ -0,0 +1,102 @@
|
||||
/ putw/putc -- write words/characters on output file
|
||||
/
|
||||
/ fcreat -- create an output file for use by put(w|c)
|
||||
/
|
||||
/ calling sequences --
|
||||
/
|
||||
/ mov $filename,r0
|
||||
/ jsr r5,fcreat; ioptr
|
||||
/
|
||||
/ on return ioptr is set up for use by put or error
|
||||
/ bit is set if file could not be created.
|
||||
/
|
||||
/ mov(b) thing,r0
|
||||
/ jsr r5,put(w|c)1; ioptr
|
||||
/
|
||||
/ the character or word is written out.
|
||||
/
|
||||
/ jsr r5,flush; ioptr
|
||||
/
|
||||
/ the buffer is fled.
|
||||
/
|
||||
|
||||
.globl putc, putw, flush, fcreat
|
||||
|
||||
fcreat:
|
||||
mov r1,-(sp)
|
||||
mov (r5)+,r1
|
||||
mov r0,0f
|
||||
sys 0; 9f
|
||||
.data
|
||||
9:
|
||||
sys creat; 0:..; 666
|
||||
.text
|
||||
bes 1f
|
||||
mov r0,(r1)+
|
||||
2:
|
||||
clr (r1)+
|
||||
clr (r1)+
|
||||
mov (sp)+,r1
|
||||
rts r5
|
||||
1:
|
||||
mov $-1,(r1)+
|
||||
mov (sp)+,r1
|
||||
sec
|
||||
rts r5
|
||||
|
||||
.data
|
||||
putw:
|
||||
mov (r5),8f
|
||||
mov (r5)+,9f
|
||||
mov r0,-(sp)
|
||||
jsr r5,putc; 8:..
|
||||
mov (sp)+,r0
|
||||
swab r0
|
||||
jsr r5,putc; 9:..
|
||||
rts r5
|
||||
.text
|
||||
|
||||
putc:
|
||||
mov r1,-(sp)
|
||||
mov (r5)+,r1
|
||||
1:
|
||||
dec 2(r1)
|
||||
bge 1f
|
||||
mov r0,-(sp)
|
||||
jsr pc,fl
|
||||
mov (sp)+,r0
|
||||
br 1b
|
||||
1:
|
||||
movb r0,*4(r1)
|
||||
inc 4(r1)
|
||||
mov (sp)+,r1
|
||||
rts r5
|
||||
|
||||
flush:
|
||||
mov r0,-(sp)
|
||||
mov r1,-(sp)
|
||||
mov (r5)+,r1
|
||||
jsr pc,fl
|
||||
mov (sp)+,r1
|
||||
mov (sp)+,r0
|
||||
rts r5
|
||||
|
||||
fl:
|
||||
mov r1,r0
|
||||
add $6,r0
|
||||
mov r0,-(sp)
|
||||
mov r0,0f
|
||||
mov 4(r1),0f+2
|
||||
beq 1f
|
||||
sub (sp),0f+2
|
||||
mov (r1),r0
|
||||
sys 0; 9f
|
||||
.data
|
||||
9:
|
||||
sys write; 0:..; ..
|
||||
.text
|
||||
1:
|
||||
mov (sp)+,4(r1)
|
||||
mov $512.,2(r1)
|
||||
rts pc
|
||||
|
||||
Reference in New Issue
Block a user