Moved gamereset routine to external file
This commit is contained in:
parent
fcc479eaed
commit
868d1e6253
69
gamereset.asm
Normal file
69
gamereset.asm
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
; Full game reset
|
||||||
|
; ----------------------------------------------------------------------
|
||||||
|
gamereset:
|
||||||
|
; Turn MultiColor mode on
|
||||||
|
jsr multicolorOn
|
||||||
|
|
||||||
|
; Clear screen
|
||||||
|
ldx #$00
|
||||||
|
lda #$20
|
||||||
|
fullresetCLS:
|
||||||
|
dex
|
||||||
|
sta $400,x
|
||||||
|
sta $500,x
|
||||||
|
sta $600,x
|
||||||
|
sta $700,x
|
||||||
|
cpx #$00
|
||||||
|
bne fullresetCLS
|
||||||
|
|
||||||
|
; Set overscan
|
||||||
|
lda #11
|
||||||
|
sta $d020
|
||||||
|
; Upper bar -- fill with reversed spaces, color yellow
|
||||||
|
ldx #39
|
||||||
|
upperbarLoop:
|
||||||
|
lda #$a0 ; reversed color space
|
||||||
|
sta $400,x
|
||||||
|
lda #7
|
||||||
|
sta $d800,x
|
||||||
|
dex
|
||||||
|
cpx #$ff
|
||||||
|
bne upperbarLoop
|
||||||
|
|
||||||
|
; Set upper bar text
|
||||||
|
lda #<scoreString
|
||||||
|
sta printStatusString
|
||||||
|
lda #>scoreString
|
||||||
|
sta printStatusString + 1
|
||||||
|
jsr printStatus
|
||||||
|
|
||||||
|
; Init game variables
|
||||||
|
lda #FOOD_TILE
|
||||||
|
sta $500 ; Put first piece of food
|
||||||
|
lda #4
|
||||||
|
sta irqn ; Initialize interrupt divider
|
||||||
|
lda #6
|
||||||
|
sta direction ; Snake must go right
|
||||||
|
; Note: these values depends on following list initialization
|
||||||
|
lda #19
|
||||||
|
sta snakeX ; Snake is at screen center width...
|
||||||
|
lda #12
|
||||||
|
sta snakeY ; ... and height
|
||||||
|
lda #5
|
||||||
|
sta listStart ; Beginning of snake tiles list
|
||||||
|
lda #5
|
||||||
|
sta length ; Length of the list
|
||||||
|
|
||||||
|
; Clear snake lists X and Y
|
||||||
|
ldx #$00
|
||||||
|
clearListLoop:
|
||||||
|
dex
|
||||||
|
lda #19
|
||||||
|
sta listX,x
|
||||||
|
lda #12
|
||||||
|
sta listY,x
|
||||||
|
cpx #$00
|
||||||
|
bne clearListLoop
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
72
snake.asm
72
snake.asm
@ -190,7 +190,8 @@ intro0end:
|
|||||||
lda #ST_PAUSE
|
lda #ST_PAUSE
|
||||||
sta status
|
sta status
|
||||||
; Set init variables of the game
|
; Set init variables of the game
|
||||||
jsr fullreset
|
jsr gamereset
|
||||||
|
|
||||||
; Set status as game playing
|
; Set status as game playing
|
||||||
lda #ST_PLAY
|
lda #ST_PLAY
|
||||||
sta status
|
sta status
|
||||||
@ -206,74 +207,7 @@ endless:
|
|||||||
sta status ; put machine into play intro status
|
sta status ; put machine into play intro status
|
||||||
jmp intro0running ; and go there waiting for keypress
|
jmp intro0running ; and go there waiting for keypress
|
||||||
|
|
||||||
; Full game reset
|
INCLUDE "gamereset.asm"
|
||||||
; ----------------------------------------------------------------------
|
|
||||||
fullreset:
|
|
||||||
; Turn MultiColor mode on
|
|
||||||
jsr multicolorOn
|
|
||||||
|
|
||||||
; Clear screen
|
|
||||||
ldx #$00
|
|
||||||
lda #$20
|
|
||||||
fullresetCLS:
|
|
||||||
dex
|
|
||||||
sta $400,x
|
|
||||||
sta $500,x
|
|
||||||
sta $600,x
|
|
||||||
sta $700,x
|
|
||||||
cpx #$00
|
|
||||||
bne fullresetCLS
|
|
||||||
|
|
||||||
; Set overscan
|
|
||||||
lda #11
|
|
||||||
sta $d020
|
|
||||||
; Upper bar -- fill with reversed spaces, color yellow
|
|
||||||
ldx #39
|
|
||||||
upperbarLoop:
|
|
||||||
lda #$a0 ; reversed color space
|
|
||||||
sta $400,x
|
|
||||||
lda #7
|
|
||||||
sta $d800,x
|
|
||||||
dex
|
|
||||||
cpx #$ff
|
|
||||||
bne upperbarLoop
|
|
||||||
|
|
||||||
; Set upper bar text
|
|
||||||
lda #<scoreString
|
|
||||||
sta printStatusString
|
|
||||||
lda #>scoreString
|
|
||||||
sta printStatusString + 1
|
|
||||||
jsr printStatus
|
|
||||||
|
|
||||||
; Init game variables
|
|
||||||
lda #FOOD_TILE
|
|
||||||
sta $500 ; Put first piece of food
|
|
||||||
lda #4
|
|
||||||
sta irqn ; Initialize interrupt divider
|
|
||||||
lda #6
|
|
||||||
sta direction ; Snake must go right
|
|
||||||
; Note: these values depends on following list initialization
|
|
||||||
lda #19
|
|
||||||
sta snakeX ; Snake is at screen center width...
|
|
||||||
lda #12
|
|
||||||
sta snakeY ; ... and height
|
|
||||||
lda #5
|
|
||||||
sta listStart ; Beginning of snake tiles list
|
|
||||||
lda #5
|
|
||||||
sta length ; Length of the list
|
|
||||||
|
|
||||||
; Clear snake lists X and Y
|
|
||||||
ldx #$00
|
|
||||||
clearListLoop:
|
|
||||||
dex
|
|
||||||
lda #19
|
|
||||||
sta listX,x
|
|
||||||
lda #12
|
|
||||||
sta listY,x
|
|
||||||
cpx #$00
|
|
||||||
bne clearListLoop
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
; Intro reset
|
; Intro reset
|
||||||
; ----------------------------------------------------------------------
|
; ----------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user