From 0420ec20c631b520c066fd086675945e0e59abcf Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 27 Oct 2023 09:55:07 +0200 Subject: [PATCH] Opty and prepare for turbo in C64 --- ai.asm | 3 +-- game.asm | 9 ++------- grafproc.asm | 12 ++++-------- scorch.asm | 13 +++++++++---- scorch.xex | Bin 56507 -> 56488 bytes scorchC64.asm | 12 ++++++++++-- scorchC64.prg | Bin 39804 -> 39791 bytes 7 files changed, 26 insertions(+), 23 deletions(-) diff --git a/ai.asm b/ai.asm index 5a281e8..fd4d20c 100644 --- a/ai.asm +++ b/ai.asm @@ -787,8 +787,7 @@ SetStartAndFlight ; set start point (virtual barrel end :) ) and make test fl sta ytraj+1 mva #0 ytraj+2 mva NewAngle Angle - lda CONSOL - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY beq @speedup jsr MoveBarrelToNewPosition bit escFlag diff --git a/game.asm b/game.asm index 44e7153..8db8222 100644 --- a/game.asm +++ b/game.asm @@ -16,8 +16,7 @@ START jsr MakeDarkScreen bit escFlag bpl @+ - lda CONSOL - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY bne START jmp StartAfterSplash ; reset all game option if Start key pressed (and Esc) @ @@ -385,11 +384,7 @@ RoboTanks ;ldx TankNr jsr DisplayStatus ; to make visible AI selected defensive (and offensive :) ) jsr MoveBarrelToNewPosition - lda kbcode - cmp #@kbcode._esc ; 28 ; ESC - bne @+ - jsr AreYouSure -@ bit escFlag + jsr CheckExitKeys spl:rts ; keys Esc or O diff --git a/grafproc.asm b/grafproc.asm index 908f312..35645c5 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -800,8 +800,7 @@ DoNotDrawTankNr ; number of blinking tank in TankNr mva #18 fs ; temp, how many times flash the tank tankflash_loop - lda CONSOL ; turbo mode - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY sne:mva #1 fs ; finish it mva #1 Erase ldx TankNr @@ -1313,8 +1312,7 @@ NoClearTanks .IF TARGET >= 800 lda FastSoilDown bne GoFast - lda CONSOL - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY bne @+ GoFast jmp SoilDownTurbo.NoClearTanks @@ -1363,8 +1361,7 @@ FoundPeek1 ; main loop starts here MainFallout2 .IF TARGET >= 800 - lda CONSOL - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY bne NoFastDown jmp SoilDownTurbo.NoClearTanks NoFastDown @@ -1873,8 +1870,7 @@ quit_areyousure mva #20 fs ; temp, how many times blink the billboard seppuku_loop - lda CONSOL ; turbo mode - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY sne:mva #1 fs ; finish it mva #4 ResultY ; where seppuku text starts Y-wise on the screen diff --git a/scorch.asm b/scorch.asm index 9765aee..cf58e0f 100644 --- a/scorch.asm +++ b/scorch.asm @@ -597,8 +597,7 @@ MakeDarkScreen ;-------------------------------------------------- .proc WaitOneFrame ;-------------------------------------------------- - lda CONSOL - and #%00000001 ; START KEY + jsr CheckStartKey ; START KEY seq:wait ; or waitRTC ? rts .endp @@ -615,6 +614,13 @@ MakeDarkScreen rts .endp +;-------------------------------------------------- +.proc CheckStartKey +;-------------------------------------------------- + lda CONSOL ; turbo mode + and #%00000001 ; START KEY + rts +.endp ;-------------------------------------------------- .proc CheckExitKeys ;-------------------------------------------------- @@ -661,8 +667,7 @@ nokeys .proc ShellDelay ;-------------------------------------------------- ldy flyDelay -Y lda CONSOL - and #%00000001 ; START KEY +Y jsr CheckStartKey ; START KEY beq noShellDelay DelayLoop lda VCOUNT diff --git a/scorch.xex b/scorch.xex index 77b7d5ce015765f8bd4913c6a85daf7282f6c83b..754039443c2e4f66d72f0a25d70843aad8b7be74 100644 GIT binary patch delta 7618 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 Gfd2&t94o5; delta 7599 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 Qd;as51yI(6{9D#P0qg9Ef&c&j delta 5471 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 Np>qMWBz}jp{uk2_Kq&wK