added sounds

This commit is contained in:
Charles Mangin
2018-06-13 16:30:50 -04:00
committed by GitHub
parent 4ee7c4cc55
commit c247ced5e3
2 changed files with 65 additions and 7 deletions

Binary file not shown.

View File

@@ -75,7 +75,7 @@ STROBE EQU $C010
SPEAKER EQU $C030 SPEAKER EQU $C030
VBL EQU $C02E VBL EQU $C02E
RDVBLBAR EQU $C019 ;not VBL (VBL signal low RDVBLBAR EQU $C019 ;not VBL (VBL signal low
WAIT EQU $FCA8
RAMWRTAUX EQU $C005 RAMWRTAUX EQU $C005
RAMWRTMAIN EQU $C004 RAMWRTMAIN EQU $C004
SETAN3 EQU $C05E ;Set annunciator-3 output to 0 SETAN3 EQU $C05E ;Set annunciator-3 output to 0
@@ -225,8 +225,9 @@ ROWLOOP3 ; (ROW 7 to 0)
COLUMNLOOP3 CLC ; clear CARRY to 0 COLUMNLOOP3 CLC ; clear CARRY to 0
DEY DEY
STY COLUMN ; store column for later retrieval STY COLUMN ; store column for later retrieval
LDA #$05 ; SLIGHT DELAY
LDA $C030 ; get byte, pseudorandom source? JSR WAIT
LDA SPEAKER ; get byte, pseudorandom source?
ROL ; random bit into Carry ROL ; random bit into Carry
ROL ; random bit into Carry ROL ; random bit into Carry
ROL BOARDORIGIN,X ; random bit into row byte ROL BOARDORIGIN,X ; random bit into row byte
@@ -368,7 +369,23 @@ END JSR HOME
MARKMINE STA STROBE ; solve current square and move to next space MARKMINE STA STROBE ; solve current square and move to next space
JSR DRAWMINE ; solve square ; if current square is already solved, ignore
LDA ROW ; get ROW and COLUMN
CLC
ROL
ROL ; offset = ROW * 8 + COLUMN
ROL
CLC
ADC COLUMN
TAX
LDA PROGRESSORIGIN,X ; is progress already marked?
CLC
CMP #$FF
BEQ GOMARKMINE ; STILL UNMARKED
JSR BONK ; ignore the mark, keep as solved.
RTS
GOMARKMINE JSR DRAWMINE ; solve square
JMP NEXTSQUARE JMP NEXTSQUARE
;/MARKMINE ;/MARKMINE
@@ -660,7 +677,7 @@ SHOWSOLVED CLC
* puts * in selected square by ROW, COLUMN, increments score * puts * in selected square by ROW, COLUMN, increments score
************************************************** **************************************************
DRAWMINE ; puts * in selected square DRAWMINE JSR BEEP ; puts * in selected square
LDA ROW ; get ROW and COLUMN LDA ROW ; get ROW and COLUMN
CLC CLC
ROL ROL
@@ -709,6 +726,7 @@ DRAWMINE ; puts * in selected square
* puts # of adjacent bombs in selected square by ROW, COLUMN, increments progress * puts # of adjacent bombs in selected square by ROW, COLUMN, increments progress
************************************************** **************************************************
DRAWSOLVEDSQUARE ; puts number in selected/solved square DRAWSOLVEDSQUARE ; puts number in selected/solved square
JSR CLICK ; little sound clicks
LDA ROW ; get ROW and COLUMN LDA ROW ; get ROW and COLUMN
CLC CLC
ROL ROL
@@ -736,8 +754,9 @@ DRAWSOLVEDSQUARE ; puts number in selected/solved square
STA PROGRESSORIGIN,X ; store progress STA PROGRESSORIGIN,X ; store progress
CMP #$08 ; IF >= F0, found a bomb CMP #$08 ; IF >= F0, found a bomb
BMI SOLVENOBOMB BMI SOLVENOBOMB
JSR BONK ; BONK!
LDA #$52 ; FOUND BOMB. YOU LOSE. LDA #$52 ; FOUND BOMB. YOU LOSE.
SOLVENOBOMB CLC SOLVENOBOMB CLC
ADC #$30 ; add #$30 (becomes #) ADC #$30 ; add #$30 (becomes #)
STA CHAR ; store as CHAR STA CHAR ; store as CHAR
@@ -757,7 +776,7 @@ SOLVENOBOMB CLC
SOLVEBOMB LDA #$FF ; unmark as bomb SOLVEBOMB LDA #$FF ; unmark as bomb
STA PROGRESSORIGIN,X ; STA PROGRESSORIGIN,X ;
; decrement bombs found ; decrement bombs found
LDA SCORE ; inc as decimal for printy printy. LDA SCORE ; decrement as decimal for printy printy.
SED SED
SEC SEC
SBC #1 SBC #1
@@ -765,6 +784,14 @@ SOLVEBOMB LDA #$FF ; unmark as bomb
STA SCORE STA SCORE
JSR PRINTSCORE JSR PRINTSCORE
LDA PROGRESS ; decrement progress as well, so it will increment properly on jump
SED
SEC
SBC #1
CLD
STA PROGRESS
JSR PRINTPROGRESS
JMP DRAWSOLVEDSQUARE ; go back and solve it as normal JMP DRAWSOLVEDSQUARE ; go back and solve it as normal
@@ -880,6 +907,37 @@ PLOTCHAR
RESET JMP DRAWBOARD RESET JMP DRAWBOARD
**************************************************
* CLICKS and BEEPS
**************************************************
CLICK LDX #$06
CLICKLOOP LDA #$10 ; SLIGHT DELAY
JSR WAIT
LDA SPEAKER
DEX
BNE CLICKLOOP
RTS
;/CLICK
BEEP LDX #$30
BEEPLOOP LDA #$08 ; short DELAY
JSR WAIT
LDA SPEAKER
DEX
BNE BEEPLOOP
RTS
;/BEEP
BONK LDX #$50
BONKLOOP LDA #$20 ; longer DELAY
JSR WAIT
LDA SPEAKER
DEX
BNE BONKLOOP
RTS
;/BONK
************************************************** **************************************************