diff --git a/libsrc/apple2/rwcommon.s b/libsrc/apple2/rwcommon.s index 769247e63..fbe3d70f5 100644 --- a/libsrc/apple2/rwcommon.s +++ b/libsrc/apple2/rwcommon.s @@ -27,17 +27,19 @@ rwcommon: ; Set fd sta mliparam + MLI::RW::REF_NUM - ; Set buf - lda ptr1 - ldx ptr1+1 - sta mliparam + MLI::RW::DATA_BUFFER - stx mliparam + MLI::RW::DATA_BUFFER+1 + ; Set buf and count + ; buf (ptr1) goes to mliparam + MLI::RW::DATA_BUFFER, + ; count (ptr2) goes to mliparam + MLI::RW::REQUEST_COUNT + ; Make sure both are at expected offset so we can copy them + ; in a small loop. + .assert ptr2 = ptr1 + 2, error + .assert MLI::RW::REQUEST_COUNT = MLI::RW::DATA_BUFFER + 2, error - ; Set count - lda ptr2 - ldx ptr2+1 - sta mliparam + MLI::RW::REQUEST_COUNT - stx mliparam + MLI::RW::REQUEST_COUNT+1 + ldx #$03 +: lda ptr1,x + sta mliparam + MLI::RW::DATA_BUFFER,x + dex + bpl :- ; Call read or write tya