diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index 09e1a26..b4fa13f 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -198,7 +198,6 @@ ClearPlot drawmountainsloop jsr DrawMountainLine -NoMountain inw modify inw xdraw cpw xdraw #screenwidth @@ -229,6 +228,8 @@ NotLower adw xbyte #screenBytes inc ydraw lda ydraw + cmp #screenheight + beq NoClearSky cmp temp2 bne @- NoClearSky @@ -288,6 +289,7 @@ drawline bne drawline ; end of Drawline proc .ENDIF +NoMountain rts .endp ;-------------------------------------------------- diff --git a/Atari/textproc.asm b/Atari/textproc.asm index 6036644..44b7d1f 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -70,7 +70,9 @@ OptionsMainLoop lda WindChangeInRound - sta OptionsHere+126 + sta OptionsHere+128 + lda FastSoilDown + sta OptionsHere+88 jsr OptionsInversion jsr getkey @@ -137,6 +139,13 @@ OptionsNoTab sta WindChangeInRound rts NotWind + cmp #$02 + bne NotGravity + lda FastSoilDown + eor #$66 ; 'f' character + sta FastSoilDown + rts +NotGravity ldy GradientNr iny cpy #$03 diff --git a/grafproc.asm b/grafproc.asm index e08c7c7..a046f8d 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1367,8 +1367,26 @@ FoundPeek1 beq NextColumn1 ; we have both tables filled with starting values +.IF TARGET >= 800 +.IF FASTER_GRAF_PROCS = 1 + lda FastSoilDown + beq @+ + jmp SoilDownTurbo.NoClearTanks +@ +.ENDIF +.ENDIF ; main loop starts here MainFallout2 +.IF TARGET = 800 +.IF FASTER_GRAF_PROCS = 1 + lda CONSOL + and #%00000001 ; START KEY + bne NoFastDown + jmp SoilDownTurbo.NoClearTanks +NoFastDown +.ENDIF +.ENDIF + mwa RangeLeft xdraw adw RangeLeft #mountaintable temp adw RangeLeft #mountaintable2 tempor2 @@ -1417,16 +1435,6 @@ ColumnIsReady cpw xdraw RangeRight bcc FalloutOfLine beq FalloutOfLine - -.IF TARGET = 800 -.IF FASTER_GRAF_PROCS = 1 - lda CONSOL - and #%00000001 ; START KEY - bne NoFastDown - jmp SoilDownTurbo.NoClearTanks -NoFastDown -.ENDIF -.ENDIF jsr CheckExitKeys ; Check for O, Esc or Start+Option keys spl:rts ; exit if pressed 'Exit keys' diff --git a/scorch.asm b/scorch.asm index 7962390..473b940 100644 --- a/scorch.asm +++ b/scorch.asm @@ -36,13 +36,14 @@ icl 'definitions.asm' ;--------------------------------------------------- -FirstZpageVariable = $55 +FirstZpageVariable = $54 .zpvar DliColorBack .byte = FirstZpageVariable .zpvar ClearSky .byte ; $ff - Crear sky during drawmountains, 0 - no clear sky .zpvar PaddleState .byte ; old state 2nd button for 2 buttons joysticks .zpvar GradientNr .byte .zpvar GradientColors .word .zpvar WindChangeInRound .byte ; wind change after each turn (not round only) flag - (0 - round only, >0 - each turn) + .zpvar FastSoilDown .byte ; 0 - standard, >0 - fast .zpvar JoystickNumber .byte .zpvar LazyFlag .byte ; 7 bit - run Lazy Darwin, 6 bit - run Lazy Boy or Darwin (!) after inventory, 0 - nothing .zpvar SpyHardFlag .byte ; >$7f - run SpyHard after inventory diff --git a/scorch.bin b/scorch.bin index b680a0e..4ac670d 100644 Binary files a/scorch.bin and b/scorch.bin differ diff --git a/scorch.xex b/scorch.xex index 1f9e9a8..b621a9a 100644 Binary files a/scorch.xex and b/scorch.xex differ