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 77b7d5c..7540394 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/scorchC64.asm b/scorchC64.asm index 89eef07..a9089f2 100644 --- a/scorchC64.asm +++ b/scorchC64.asm @@ -321,7 +321,8 @@ MakeDarkScreen ;-------------------------------------------------- .proc WaitOneFrame ;-------------------------------------------------- - wait ; or waitRTC ? + jsr CheckStartKey ; START KEY + seq:wait ; or waitRTC ? rts .endp @@ -337,6 +338,12 @@ MakeDarkScreen rts .endp +;-------------------------------------------------- +.proc CheckStartKey +;-------------------------------------------------- + lda #%00000001 ; START KEY not pressed + rts +.endp ;-------------------------------------------------- .proc CheckExitKeys ;-------------------------------------------------- @@ -352,7 +359,8 @@ MakeDarkScreen ;-------------------------------------------------- .proc ShellDelay ldy flyDelay -Y +Y jsr CheckStartKey ; START KEY + beq noShellDelay DelayLoop lda $d012 @ cmp $d012 diff --git a/scorchC64.prg b/scorchC64.prg index 917f471..1d4d099 100644 Binary files a/scorchC64.prg and b/scorchC64.prg differ