mirror of
https://github.com/option8/minesweeper.git
synced 2025-08-16 05:27:20 +00:00
added sounds
This commit is contained in:
BIN
MINESWEEPER.dsk
BIN
MINESWEEPER.dsk
Binary file not shown.
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**************************************************
|
**************************************************
|
||||||
|
Reference in New Issue
Block a user