2020-10-13 04:09:37 +00:00
|
|
|
;
|
|
|
|
; score.s
|
|
|
|
; BuGS
|
|
|
|
;
|
|
|
|
; Created by Jeremy Rand on 2020-10-12.
|
|
|
|
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
|
|
|
;
|
|
|
|
|
2020-10-14 03:24:15 +00:00
|
|
|
|
2020-10-13 04:09:37 +00:00
|
|
|
case on
|
|
|
|
mcopy score.macros
|
|
|
|
keep score
|
|
|
|
|
|
|
|
score start
|
|
|
|
using globalData
|
2020-11-05 03:48:18 +00:00
|
|
|
using tileData
|
2020-11-09 05:12:51 +00:00
|
|
|
|
2020-12-31 04:10:22 +00:00
|
|
|
|
|
|
|
updateHighScore entry
|
|
|
|
ldx #HIGH_SCORE_ONES_OFFSET
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+9
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+8
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+7
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+6
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+5
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+4
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+3
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+2
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+1
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET
|
|
|
|
jsl asciiToTileType
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
rtl
|
|
|
|
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
scoreStartGame entry
|
|
|
|
stz gameScore
|
|
|
|
stz gameScore+2
|
2021-01-11 04:17:05 +00:00
|
|
|
stz gameScore+4
|
|
|
|
stz gameScore+6
|
2020-10-26 03:11:11 +00:00
|
|
|
stz scoreWithin12000
|
2021-01-11 04:17:05 +00:00
|
|
|
stz scoreWithin12000+2
|
2020-10-26 03:11:11 +00:00
|
|
|
stz scoreWithin20000
|
2021-01-11 04:17:05 +00:00
|
|
|
stz scoreWithin20000+2
|
2020-10-26 03:11:11 +00:00
|
|
|
stz scoreNum20000
|
2021-01-11 04:17:05 +00:00
|
|
|
stz scoreNum20000+2
|
2020-10-13 04:09:37 +00:00
|
|
|
|
2020-11-09 05:12:51 +00:00
|
|
|
ldx #P1_SCORE_ONES_OFFSET
|
2020-10-13 04:09:37 +00:00
|
|
|
lda #TILE_NUMBER_0
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
dex
|
|
|
|
dex
|
2021-01-07 04:27:51 +00:00
|
|
|
|
|
|
|
scoreStartGame_loop1 anop
|
2020-10-13 04:09:37 +00:00
|
|
|
lda #TILE_EMPTY
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
2021-01-07 04:27:51 +00:00
|
|
|
dex
|
|
|
|
dex
|
2020-11-09 05:12:51 +00:00
|
|
|
cpx #P1_SCORE_FIRST_OFFSET
|
2021-01-07 04:27:51 +00:00
|
|
|
bge scoreStartGame_loop1
|
|
|
|
|
|
|
|
ldx #P2_SCORE_ONES_OFFSET
|
|
|
|
lda isSinglePlayer
|
|
|
|
beq scoreStartGame_loop2
|
|
|
|
lda #TILE_NUMBER_0
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
scoreStartGame_loop2 anop
|
|
|
|
lda #TILE_EMPTY
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
cpx #P2_SCORE_FIRST_OFFSET
|
|
|
|
bge scoreStartGame_loop2
|
2020-10-13 04:09:37 +00:00
|
|
|
rtl
|
|
|
|
|
2021-01-07 04:27:51 +00:00
|
|
|
|
|
|
|
scoreSwitchPlayer entry
|
|
|
|
lda playerNum
|
|
|
|
cmp #PLAYER_ONE
|
|
|
|
beq scoreSwitchPlayer_isPlayer1
|
|
|
|
lda #P2_SCORE_ONES_OFFSET
|
|
|
|
sta scoreOnesOffset
|
|
|
|
lda #P2_SCORE_TENS_OFFSET
|
|
|
|
sta scoreTensOffset
|
|
|
|
lda #P2_SCORE_HUNDREDS_OFFSET
|
|
|
|
sta scoreHundredsOffset
|
|
|
|
lda #P2_SCORE_THOUSANDS_OFFSET
|
|
|
|
sta scoreThousandsOffset
|
|
|
|
bra scoreSwitchPlayer_done
|
|
|
|
scoreSwitchPlayer_isPlayer1 anop
|
|
|
|
lda #P1_SCORE_ONES_OFFSET
|
|
|
|
sta scoreOnesOffset
|
|
|
|
lda #P1_SCORE_TENS_OFFSET
|
|
|
|
sta scoreTensOffset
|
|
|
|
lda #P1_SCORE_HUNDREDS_OFFSET
|
|
|
|
sta scoreHundredsOffset
|
|
|
|
lda #P1_SCORE_THOUSANDS_OFFSET
|
|
|
|
sta scoreThousandsOffset
|
|
|
|
scoreSwitchPlayer_done anop
|
|
|
|
rtl
|
2020-10-13 04:09:37 +00:00
|
|
|
|
2021-01-07 04:27:51 +00:00
|
|
|
|
2020-10-14 03:24:15 +00:00
|
|
|
; The score tile to increment is in the X register
|
2020-10-14 03:28:39 +00:00
|
|
|
; Note that this function and the next one do no sanitization
|
|
|
|
; of the value in the X register. That also means that if
|
|
|
|
; someone scores several trillion in a single game, we will
|
|
|
|
; keep adding digits to the score displayed, eventually
|
|
|
|
; occupying tiles on the previous line on the LHS.
|
|
|
|
;
|
|
|
|
; But it is kind of classic for these arcade games to act
|
|
|
|
; weird if people do something deemed impossible by the
|
|
|
|
; author. So, I challenge you to get such a score!
|
2020-10-14 03:24:15 +00:00
|
|
|
scoreAddOneToTile entry
|
|
|
|
_dirtyNonGameTile
|
|
|
|
lda tileType,x
|
|
|
|
beq scoreAddOneToTile_empty
|
|
|
|
cmp #TILE_NUMBER_9
|
|
|
|
beq scoreAddOneToTile_isNine anop
|
|
|
|
clc
|
|
|
|
adc #4
|
|
|
|
bra scoreAddOneToTile_done
|
|
|
|
scoreAddOneToTile_empty anop
|
|
|
|
lda #TILE_NUMBER_1
|
|
|
|
scoreAddOneToTile_done anop
|
|
|
|
sta tileType,x
|
|
|
|
rtl
|
|
|
|
scoreAddOneToTile_isNine anop
|
|
|
|
lda #TILE_NUMBER_0
|
|
|
|
sta tileType,x
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
jmp scoreAddOneToTile
|
|
|
|
|
|
|
|
|
|
|
|
; The score tile to add to is in the X register
|
|
|
|
; The amount to add to the tile is in the accumulator
|
|
|
|
; and must be 4 to 36 in multiples of 4. This is because
|
|
|
|
; the tile types are all 4 apart. So, to add one, we
|
|
|
|
; actually add 4 to the tile type.
|
|
|
|
scoreAddToTile entry
|
|
|
|
ldy tileType,x
|
|
|
|
bne scoreAddToTile_notEmpty
|
|
|
|
tay
|
|
|
|
lda #TILE_NUMBER_0
|
|
|
|
sta tileType,x
|
|
|
|
tya
|
|
|
|
scoreAddToTile_notEmpty anop
|
|
|
|
clc
|
|
|
|
adc tileType,x
|
|
|
|
cmp #TILE_NUMBER_9+1
|
|
|
|
blt scoreAddToTile_done
|
|
|
|
sec
|
|
|
|
sbc #40
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
jmp scoreAddOneToTile
|
|
|
|
scoreAddToTile_done anop
|
|
|
|
sta tileType,x
|
|
|
|
_dirtyNonGameTile
|
2020-10-13 04:09:37 +00:00
|
|
|
rtl
|
2020-10-14 03:24:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddOne entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 1
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
jmp scoreAddOneToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddFive entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 5
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
lda #5*4
|
|
|
|
jmp scoreAddToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddTen entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 10
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddTen_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddTen_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
jmp scoreAddOneToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddOneHundred entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 100
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddHundred_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddHundred_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddHundred_skipZeroTens
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddHundred_skipZeroTens anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreHundredsOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
jmp scoreAddOneToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddTwoHundred entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 200
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddTwoHundred_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddTwoHundred_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddTwoHundred_skipZeroTens
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddTwoHundred_skipZeroTens anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreHundredsOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
lda #2*4
|
|
|
|
jmp scoreAddToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddThreeHundred entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 300
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddThreeHundred_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddThreeHundred_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddThreeHundred_skipZeroTens
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddThreeHundred_skipZeroTens anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreHundredsOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
lda #3*4
|
|
|
|
jmp scoreAddToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddSixHundred entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 600
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddSixHundred_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddSixHundred_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddSixHundred_skipZeroTens
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddSixHundred_skipZeroTens anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreHundredsOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
lda #6*4
|
|
|
|
jmp scoreAddToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddNineHundred entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 900
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddNineHundred_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddNineHundred_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddNineHundred_skipZeroTens
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddNineHundred_skipZeroTens anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreHundredsOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
lda #9*4
|
|
|
|
jmp scoreAddToTile
|
2020-10-13 04:09:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
scoreAddOneThousand entry
|
2020-10-26 03:11:11 +00:00
|
|
|
_incrementScore 1000
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreOnesOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddOneThousand_skipZeroOnes
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddOneThousand_skipZeroOnes anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreTensOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddOneThousand_skipZeroTens
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddOneThousand_skipZeroTens anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreHundredsOffset
|
|
|
|
lda tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
bne scoreAddOneThousand_skipZeroHundreds
|
|
|
|
lda #TILE_NUMBER_0
|
2021-01-07 04:27:51 +00:00
|
|
|
sta tileType,x
|
2020-10-14 03:24:15 +00:00
|
|
|
_dirtyNonGameTile
|
|
|
|
scoreAddOneThousand_skipZeroHundreds anop
|
2021-01-07 04:27:51 +00:00
|
|
|
ldx scoreThousandsOffset
|
2020-10-14 03:24:15 +00:00
|
|
|
jmp scoreAddOneToTile
|
2020-10-26 03:11:11 +00:00
|
|
|
|
2020-11-12 04:51:09 +00:00
|
|
|
|
|
|
|
checkHighScore entry
|
2020-12-31 19:04:20 +00:00
|
|
|
ldy #0
|
|
|
|
checkHighScore_loop anop
|
2021-01-11 04:17:05 +00:00
|
|
|
lda playerNum
|
|
|
|
asl a
|
|
|
|
tax
|
2020-12-31 19:04:20 +00:00
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_OFFSET+2,y
|
2021-01-11 04:17:05 +00:00
|
|
|
cmp gameScore+2,x
|
2020-12-31 19:04:20 +00:00
|
|
|
blt checkHighScore_isHighScore
|
|
|
|
bne checkHighScore_next
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_OFFSET,y
|
2021-01-11 04:17:05 +00:00
|
|
|
cmp gameScore,x
|
2020-12-31 19:04:20 +00:00
|
|
|
blt checkHighScore_isHighScore
|
|
|
|
checkHighScore_next anop
|
|
|
|
tya
|
|
|
|
clc
|
|
|
|
adc #SETTINGS_HIGH_SCORE_SIZE
|
|
|
|
tay
|
|
|
|
cpy #SETTINGS_HIGH_SCORE_SIZE*10
|
|
|
|
blt checkHighScore_loop
|
2021-01-20 05:06:32 +00:00
|
|
|
clc
|
2020-12-31 19:04:20 +00:00
|
|
|
rtl
|
2020-11-20 05:31:09 +00:00
|
|
|
checkHighScore_isHighScore anop
|
2020-12-31 20:03:08 +00:00
|
|
|
sty scoreIndex
|
|
|
|
ldx #SETTINGS_HIGH_SCORE_SIZE*10-2
|
|
|
|
ldy #SETTINGS_HIGH_SCORE_SIZE*9-2
|
|
|
|
cpy scoreIndex
|
|
|
|
blt checkHighScore_doneCopy
|
2020-12-31 19:04:20 +00:00
|
|
|
checkHighScore_copyLoop anop
|
|
|
|
lda settings+SETTINGS_HIGH_SCORE_OFFSET,y
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET,x
|
2020-12-31 20:03:08 +00:00
|
|
|
cpy scoreIndex
|
|
|
|
beq checkHighScore_doneCopy
|
|
|
|
dey
|
|
|
|
dey
|
|
|
|
dex
|
|
|
|
dex
|
2020-12-31 19:04:20 +00:00
|
|
|
bra checkHighScore_copyLoop
|
|
|
|
checkHighScore_doneCopy anop
|
2020-12-31 20:03:08 +00:00
|
|
|
ldy scoreIndex
|
2021-01-11 04:17:05 +00:00
|
|
|
lda playerNum
|
|
|
|
asl a
|
|
|
|
tax
|
|
|
|
lda gameScore,x
|
2020-12-31 19:04:20 +00:00
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_OFFSET,y
|
2021-01-11 04:17:05 +00:00
|
|
|
lda gameScore+2,x
|
2020-12-31 19:04:20 +00:00
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_OFFSET+2,y
|
2020-11-20 05:31:09 +00:00
|
|
|
|
2021-01-07 04:27:51 +00:00
|
|
|
lda playerNum
|
|
|
|
cmp #PLAYER_ONE
|
|
|
|
beq checkHighScore_isPlayer1
|
|
|
|
ldx #P2_SCORE_ONES_OFFSET-18
|
|
|
|
bra checkHighScore_saveHighScore
|
|
|
|
checkHighScore_isPlayer1 anop
|
2020-12-31 19:04:20 +00:00
|
|
|
ldx #P1_SCORE_ONES_OFFSET-18
|
2021-01-07 04:27:51 +00:00
|
|
|
checkHighScore_saveHighScore anop
|
2020-12-31 19:04:20 +00:00
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET,y
|
2020-11-20 05:31:09 +00:00
|
|
|
|
2020-12-31 19:04:20 +00:00
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+1,y
|
2020-11-20 05:31:09 +00:00
|
|
|
|
2020-12-31 19:04:20 +00:00
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+2,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+3,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+4,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+5,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+6,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+7,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+8,y
|
|
|
|
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
lda tileType,x
|
|
|
|
jsl tileTypeToAscii
|
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+9,y
|
|
|
|
|
2021-01-02 04:09:46 +00:00
|
|
|
ldx #GAME_NUM_TILES_WIDE*4+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*6+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_G
|
|
|
|
_overwriteGameTile TILE_LETTER_A
|
|
|
|
_overwriteGameTile TILE_LETTER_M
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_O
|
|
|
|
_overwriteGameTile TILE_LETTER_V
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_LETTER_R
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*8+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_P
|
|
|
|
_overwriteGameTile TILE_LETTER_L
|
|
|
|
_overwriteGameTile TILE_LETTER_A
|
|
|
|
_overwriteGameTile TILE_LETTER_Y
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_LETTER_R
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
2021-01-15 04:18:52 +00:00
|
|
|
lda playerNum
|
|
|
|
beq checkHighScore_printPlayer1
|
|
|
|
_overwriteGameTile TILE_NUMBER_2
|
|
|
|
bra checkHighScore_donePrintingPlayer
|
|
|
|
checkHighScore_printPlayer1 anop
|
2021-01-02 04:09:46 +00:00
|
|
|
_overwriteGameTile TILE_NUMBER_1
|
2021-01-15 04:18:52 +00:00
|
|
|
checkHighScore_donePrintingPlayer anop
|
2021-01-02 04:09:46 +00:00
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*10+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*12+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_G
|
|
|
|
_overwriteGameTile TILE_LETTER_R
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_LETTER_A
|
|
|
|
_overwriteGameTile TILE_LETTER_T
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_S
|
|
|
|
_overwriteGameTile TILE_LETTER_C
|
|
|
|
_overwriteGameTile TILE_LETTER_O
|
|
|
|
_overwriteGameTile TILE_LETTER_R
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*14+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_LETTER_N
|
|
|
|
_overwriteGameTile TILE_LETTER_T
|
|
|
|
_overwriteGameTile TILE_LETTER_E
|
|
|
|
_overwriteGameTile TILE_LETTER_R
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_Y
|
|
|
|
_overwriteGameTile TILE_LETTER_O
|
|
|
|
_overwriteGameTile TILE_LETTER_U
|
|
|
|
_overwriteGameTile TILE_LETTER_R
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_LETTER_I
|
|
|
|
_overwriteGameTile TILE_LETTER_N
|
|
|
|
_overwriteGameTile TILE_LETTER_I
|
|
|
|
_overwriteGameTile TILE_LETTER_T
|
|
|
|
_overwriteGameTile TILE_LETTER_I
|
|
|
|
_overwriteGameTile TILE_LETTER_A
|
|
|
|
_overwriteGameTile TILE_LETTER_L
|
|
|
|
_overwriteGameTile TILE_LETTER_S
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*16+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*18+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_SOLID2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*20+2
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
|
|
|
|
ldx #GAME_NUM_TILES_WIDE*18+20
|
|
|
|
checkHighScore_nextKey anop
|
|
|
|
jsl waitForKey
|
|
|
|
cmp #$08
|
|
|
|
beq checkHighScore_backspace
|
|
|
|
blt checkHighScore_isInvalid
|
|
|
|
cmp #$7f
|
|
|
|
beq checkHighScore_backspace
|
|
|
|
cmp #$0d
|
|
|
|
beq checkHighScore_isEnter
|
|
|
|
blt checkHighScore_isInvalid
|
|
|
|
cmp #'0'
|
|
|
|
blt checkHighScore_isInvalid
|
|
|
|
cmp #'9'+1
|
|
|
|
blt checkHighScore_isValid
|
|
|
|
cmp #'a'
|
|
|
|
blt checkHighScore_skipToUpperCase
|
|
|
|
sec
|
|
|
|
sbc #$20
|
|
|
|
checkHighScore_skipToUpperCase anop
|
|
|
|
cmp #'A'
|
|
|
|
blt checkHighScore_isInvalid
|
|
|
|
cmp #'Z'+1
|
|
|
|
bge checkHighScore_isInvalid
|
|
|
|
|
|
|
|
checkHighScore_isValid anop
|
|
|
|
cpx #GAME_NUM_TILES_WIDE*18+26
|
|
|
|
bge checkHighScore_isInvalid
|
2020-12-31 19:04:20 +00:00
|
|
|
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_WHO_OFFSET,y
|
2021-01-02 04:09:46 +00:00
|
|
|
iny
|
|
|
|
jsl asciiToTileType
|
|
|
|
jsr overwriteGameTile
|
|
|
|
_overwriteGameTile TILE_SOLID2
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bra checkHighScore_nextKey
|
|
|
|
|
|
|
|
checkHighScore_backspace anop
|
|
|
|
cpx #GAME_NUM_TILES_WIDE*18+21
|
|
|
|
blt checkHighScore_isInvalid
|
|
|
|
dey
|
|
|
|
_overwriteGameTile TILE_EMPTY
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
_overwriteGameTile TILE_SOLID2
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bra checkHighScore_nextKey
|
|
|
|
|
|
|
|
checkHighScore_isEnter anop
|
|
|
|
cpx #GAME_NUM_TILES_WIDE*18+26
|
|
|
|
blt checkHighScore_isInvalid
|
|
|
|
bra checkHighScore_doneInitials
|
|
|
|
checkHighScore_isInvalid anop
|
|
|
|
bra checkHighScore_nextKey
|
2020-12-31 19:04:20 +00:00
|
|
|
|
2021-01-02 04:09:46 +00:00
|
|
|
checkHighScore_doneInitials anop
|
2020-12-31 19:04:20 +00:00
|
|
|
jsl saveSettings
|
2021-01-20 05:06:32 +00:00
|
|
|
jsl updateHighScore
|
|
|
|
sec
|
|
|
|
rtl
|
2020-10-27 02:32:46 +00:00
|
|
|
|
2020-10-13 04:09:37 +00:00
|
|
|
|
2020-12-31 20:03:08 +00:00
|
|
|
scoreIndex dc i2'0'
|
|
|
|
|
2020-10-13 04:09:37 +00:00
|
|
|
end
|