X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libsrc%2Ftelestrat%2Fwrite.s;h=6498283fba87fe02b9e6fe9947979973f6ae0c1a;hb=9160b8ddc2a233347cdf23f70c43314a9f3fb6fc;hp=8c2bc08f7e6b26f973f41327b76f55739dc26767;hpb=5dcebbccb65924197ac9078fb90b6d08bd3f6823;p=cc65 diff --git a/libsrc/telestrat/write.s b/libsrc/telestrat/write.s index 8c2bc08f7..6498283fb 100644 --- a/libsrc/telestrat/write.s +++ b/libsrc/telestrat/write.s @@ -2,7 +2,7 @@ ; jede jede@oric.org 2017-01-22 .export _write - .import popax + .import popax, popptr1 .importzp ptr1, ptr2, ptr3, tmp1 .include "telestrat.inc" @@ -17,11 +17,9 @@ sta ptr2 txa eor #$FF - sta ptr2+1 ; Remember -count-1 + sta ptr2+1 ; remember -count-1 - jsr popax ; get buf - sta ptr1 - stx ptr1+1 + jsr popptr1 ; get buf jsr popax ; get fd and discard ; if fd=0001 then it stdout @@ -32,7 +30,7 @@ next: cmp #1 beq L1 - ; Here it's a file opened + ; here it's a file opened lda ptr1 sta PTR_READ_DEST lda ptr1+1 @@ -40,6 +38,16 @@ next: lda ptr3 ldy ptr3+1 BRK_TELEMON XFWRITE + ; compute nb of bytes written + + + lda PTR_READ_DEST+1 + sec + sbc ptr1+1 + tax + lda PTR_READ_DEST + sec + sbc ptr1 rts @@ -50,23 +58,23 @@ L1: inc ptr2 L2: ldy #0 lda (ptr1),y tax - cpx #$0A ; Check for \n + cpx #$0A ; check for \n bne L3 - BRK_TELEMON XWR0 ; Macro send char to screen (channel 0 in telemon terms) - lda #$0D ; return to the beggining of the line - BRK_TELEMON XWR0 ; Macro ; + BRK_TELEMON XWR0 ; macro send char to screen (channel 0 in telemon terms) + lda #$0D ; return to the beggining of the line + BRK_TELEMON XWR0 ; macro ldx #$0D L3: - BRK_TELEMON XWR0 ; Macro + BRK_TELEMON XWR0 ; macro inc ptr1 bne L1 inc ptr1+1 jmp L1 -; No error, return count + ; No error, return count L9: lda ptr3 ldx ptr3+1