From 6d6c8bc95ef49bce3fe3a6dbbf1db0a7404c501e Mon Sep 17 00:00:00 2001 From: Quinn Dunki Date: Tue, 14 Oct 2014 13:06:38 -0700 Subject: [PATCH] - More code compression --- applesoft.s | 7 +------ guidemo.dsk | Bin 143360 -> 143360 bytes mouse.s | 27 +++++++++++---------------- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/applesoft.s b/applesoft.s index 2bd0633..dcd8841 100644 --- a/applesoft.s +++ b/applesoft.s @@ -74,16 +74,13 @@ WGInitApplesoft: ; The entry point from Applesoft. Applesoft text pointer ; will be positioned two after the '&', and accumulator will ; contain first character after the '&' -; Side effects: Clobbers S0 +; Side effects: Clobbers All registers,S0 ; WGAmpersand: - tsx ; Start by caching a valid stack state to return to Applesoft, stx WG_STACKPTR ; in case we need to do so in a hurry sta SCRATCH0 - SAVE_AXY - SAVE_ZPP ldy #0 ldx SCRATCH0 @@ -168,8 +165,6 @@ WGAmpersand_matchFail: jsr ERROR WGAmpersand_done: - RESTORE_ZPP - RESTORE_AXY rts diff --git a/guidemo.dsk b/guidemo.dsk index dc61c27ed65e605e96e73c69cd02834a1cad85d2..e7fa1de63d2d13e35b7b363464b152e533c2510c 100644 GIT binary patch delta 2440 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 Fe*n^X{&oNW diff --git a/mouse.s b/mouse.s index dc22cd8..d8966ba 100644 --- a/mouse.s +++ b/mouse.s @@ -54,8 +54,7 @@ MOUSEMODE_COMBINT = $07 ; Interrupts on movement and button ; Mouse firmware is all indirectly called, because ; it moved around a lot in different Apple ][ ROM -; versions. This macro abstracts this for us. -; NOTE: Clobbers X and Y registers! +; versions. This macro helps abstracts this for us. .macro CALLMOUSE name ldx #name jsr WGCallMouse @@ -83,20 +82,19 @@ WGEnableMouse: bne WGEnableMouse_Error ; ProDOS will return here with Z clear on error ; Initialize the mouse - lda #0 - sta WG_MOUSEPOS_X - sta WG_MOUSEPOS_Y - sta WG_MOUSEBG + stz WG_MOUSEPOS_X + stz WG_MOUSEPOS_Y + stz WG_MOUSEBG CALLMOUSE INITMOUSE bcs WGEnableMouse_Error ; Firmware sets carry if mouse is not available CALLMOUSE CLEARMOUSE - lda #MOUSEMODE_COMBINT + lda #MOUSEMODE_COMBINT ; Enable combination interrupt mode CALLMOUSE SETMOUSE - ; Scale the mouse's range into something ease to do math with, + ; Scale the mouse's range into something easy to do math with, ; while retaining as much range of motion and precision as possible lda #$80 ; 640 horizontally sta MOUSE_CLAMPL @@ -119,8 +117,7 @@ WGEnableMouse: bra WGEnableMouse_done WGEnableMouse_Error: - lda #0 - sta WG_MOUSEACTIVE + stz WG_MOUSEACTIVE WGEnableMouse_done: pla @@ -140,8 +137,7 @@ WGDisableMouse: lda MOUSEMODE_OFF CALLMOUSE SETMOUSE - lda #0 - sta WG_MOUSEACTIVE + stz WG_MOUSEACTIVE ; Remove our interrupt handler via ProDOS (done playing nice!) lda WG_PRODOS_ALLOC+1 ; Copy interrupt ID that ProDOS gave us @@ -249,8 +245,7 @@ WGFindMouse_found: bra WGFindMouse_done WGFindMouse_none: - lda #0 - sta WG_MOUSE_SLOT + stz WG_MOUSE_SLOT sec WGFindMouse_done: @@ -273,7 +268,7 @@ WGMouseInterruptHandler: cld ; ProDOS interrupt handlers must open with this SAVE_AXY - SETSWITCH PAGE2OFF ; Turn this off so we don't mess up page 4 screen holes! + SETSWITCH PAGE2OFF ; Make sure we don't mess up page 4 screen holes! CALLMOUSE SERVEMOUSE bcs WGMouseInterruptHandler_disregard @@ -330,7 +325,7 @@ WGMouseInterruptHandler_button: jsr WGViewFromPoint bmi WGMouseInterruptHandler_intDone - ; Button was clicked in a view, so make a note of it + ; Button was clicked in a view, so make a note of it for later sta WG_PENDINGACTIONVIEW WGMouseInterruptHandler_intDone: