diff --git a/grafproc.asm b/grafproc.asm index 5ab13bd..96a6c58 100755 --- a/grafproc.asm +++ b/grafproc.asm @@ -629,7 +629,7 @@ DrawTankNrX rorw xbyte ; divide by 2 (carry does not matter) lda xbyte clc - adc #$24 ; P/M to graphics offser + adc #$24 ; P/M to graphics offset cpx #$4 ; 5th tank are joined missiles and offset is defferent bne NoMissile clc diff --git a/scorch.asm b/scorch.asm index 7055f7e..8b57290 100644 --- a/scorch.asm +++ b/scorch.asm @@ -117,15 +117,11 @@ START ; Startup sequence jsr Initialize - mwa #OptionsDL dlptrs - lda dmactls - and #$fc - ora #$02 ; normal screen width - sta dmactls - - VDLI DLIinterruptText.DLIinterruptNone ; jsr SetDLI for text screen without DLIs + jsr Options ;startup screen + lda escFlag + bne START ;entering names of players mwa #NameDL dlptrs @@ -140,6 +136,8 @@ START lda TankStatusColoursTable,x sta colpf2s ; set color of player name line jsr EnterPlayerName + lda escFlag + bne START inc TankNr lda TankNr cmp NumberOfPlayers @@ -762,7 +760,7 @@ loop05 .endp ;-------------------------------------------------- -Initialize .proc +.proc Initialize ;Initialization sequence ;-------------------------------------------------- deletePtr = temp @@ -771,7 +769,7 @@ deletePtr = temp sta Erase sta tracerflag sta GameIsOver - + sta escFlag ; clean variables tay @@ -1042,7 +1040,7 @@ EnergyInRange .endp ;---------------------------------------------- -MoveBarrelToNewPosition .proc +.proc MoveBarrelToNewPosition jsr DrawTankNr ldx TankNr lda AngleTable,x @@ -1077,7 +1075,7 @@ BarrelPositionIsFine .endp ;---------------------------------------------- -SortSequence .proc ; +.proc SortSequence ; ;---------------------------------------------- ; here we try to get a sequence of tanks for two ; purposes: diff --git a/scorch.xex b/scorch.xex index 6c4480d..353b94c 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/textproc.asm b/textproc.asm index e2011fc..c886738 100755 --- a/textproc.asm +++ b/textproc.asm @@ -16,13 +16,27 @@ Options .proc ; - money each player has on the beginning of the game (moneyL i moneyH) ; - and I am sure maxwind, gravity, no_of_rounds in a game, speed of shell flight + mwa #OptionsDL dlptrs + lda dmactls + and #$fc + ora #$02 ; normal screen width + sta dmactls + + VDLI DLIinterruptText.DLIinterruptNone ; jsr SetDLI for text screen without DLIs + mva #0 OptionsY OptionsMainLoop jsr OptionsInversion jsr getkey - cmp #$f ;cursor down + cmp #28 ; ESC + + bne @+ + mva #1 escFlag + rts + +@ cmp #$f ;cursor down bne OptionsNoDown inc:lda OptionsY cmp #maxoptions @@ -865,6 +879,11 @@ endOfTankName CheckKeys jsr getkey + cmp #28 ; ESC + bne @+ + mva #1 escFlag + rts +@ ; is the char to be recorded? ldx #keycodesEnd-keycodes ;table was 38 chars long IsLetter diff --git a/variables.asm b/variables.asm index e9ae432..2f570b9 100755 --- a/variables.asm +++ b/variables.asm @@ -33,6 +33,7 @@ RoundNrDisplay .byte $ff variablesStart ; zeroing starts here +escFlag .ds 1 ;-------------- sfx_effect .ds 1 ;--------------