diff --git a/display.asm b/display.asm index 4d3d5f1..b85e1f1 100644 --- a/display.asm +++ b/display.asm @@ -31,6 +31,11 @@ OptionsDL .word OptionsScreen .byte $30,$02,$02,$70 :maxOptions .by $02,$10 + :(9-maxOptions) .by $70,$10 + .byte $80 + .byte $4f + .word (display+140*40) + :21 .by $0f ;76 .byte $41 .word OptionsDL ;------------------------ diff --git a/scorch.asm b/scorch.asm index 6ed017c..4546d98 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1013,6 +1013,19 @@ MakeTanksVisible rti .endp ;-------------------------------------------------- +.proc DLIinterruptOptions + ;sta dliA + ;sty dliY + pha +; lda dliColorsBack + lda #0 + sta COLPF1 + lda dliColorsFore + sta COLPF2 + pla + rti +.endp +;-------------------------------------------------- .proc DLIinterruptGameOver ;sta dliA ;sty dliY diff --git a/scorch.xex b/scorch.xex index da8dba3..50bacb1 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/textproc.asm b/textproc.asm index 625ca88..7f5320d 100644 --- a/textproc.asm +++ b/textproc.asm @@ -20,19 +20,45 @@ ; lda dmactls ; and #$fc ; ora #$02 ; normal screen width - lda #%00110010 ; normal screen width, DL on, P/M off +; lda #%00110010 ; normal screen width, DL on, P/M off + lda #%00111110 ; normal screen width, DL on, P/M on sta dmactls - jsr PMoutofScreen + jsr SetPMWidth mva #TextBackgroundColor colpf2s mva #TextForegroundColor colpf3s mva #$ca colpf1s - VDLI DLIinterruptText.DLIinterruptNone ; jsr SetDLI for text screen without DLIs + VDLI DLIinterruptOptions ; jsr SetDLI for Options text screen + +; -------- setup bottom (tanks) line + lda NumberOfPlayers + pha + lda mountainsDeltaTableH + sta mountainDeltaH + lda mountainsDeltaTableL + sta mountainDeltaL + mva #6 NumberOfPlayers + jsr PMoutofScreen ;let P/M disappear + jsr clearscreen ;let the screen be clean + jsr ClearPMmemory + jsr placetanks ;let the tanks be evenly placed + jsr calculatemountains ;let mountains be easy for the eye + jsr ColorsOfSprites + jsr drawmountains ;draw them + ldx NumberOfPlayers + dex +@ jsr RandomizeAngle + sta AngleTable,x + dex + bpl @- + jsr drawtanks ;finally draw tanks + pla + sta NumberOfPlayers +; -------- mva #0 OptionsY OptionsMainLoop - jsr OptionsInversion jsr getkey ldx escFlag