ldy #0
lda tmp1
- sta (ptr2),y
- inc ptr2
+ sta (ptr1),y
+ inc ptr1
bne @L1
- inc ptr2+1 ; *buf++ = A;
+ inc ptr1+1 ; *buf++ = A;
; Increment the byte count
; Decrement the count
-@L3: inc ptr1
+@L3: inc ptr2
bne @L0
- inc ptr1+1
+ inc ptr2+1
bne @L0
beq done ; Branch always
.export rwcommon
- .import popax
+ .import popax, popptr1
.importzp ptr1, ptr2, ptr3, tmp2
.include "errno.inc"
.proc rwcommon
eor #$FF
- sta ptr1
+ sta ptr2
txa
eor #$FF
- sta ptr1+1 ; Remember -count-1
-
- jsr popax ; Get buf
- sta ptr2
- stx ptr2+1
+ sta ptr2+1 ; Remember -count-1
- lda #$00
- sta ptr3
- sta ptr3+1 ; Clear ptr3
+ jsr popptr1 ; Get buf
+ ; Y=0 by popptr1
+ sty ptr3
+ sty ptr3+1 ; Clear ptr3
jsr popax ; Get the handle
cpx #$01
; Output the next character from the buffer
@L0: ldy #0
- lda (ptr2),y
- inc ptr2
+ lda (ptr1),y
+ inc ptr1
bne @L1
- inc ptr2+1 ; A = *buf++;
+ inc ptr1+1 ; A = *buf++;
@L1: jsr BSOUT
; Check the status
; Decrement count
-@L2: inc ptr1
+@L2: inc ptr2
bne @L0
- inc ptr1+1
+ inc ptr2+1
bne @L0
; Wrote all chars or disk full. Close the output channel