From 707e317bb860328fac0f349a5fa199c771ee9329 Mon Sep 17 00:00:00 2001 From: Colin Leroy-Mira Date: Sat, 25 Oct 2025 11:23:01 +0200 Subject: [PATCH] Apple2: spare 10 bytes on I/O --- libsrc/apple2/rwcommon.s | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) 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