/ 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