This commit is contained in:
Antoine Vignau 2024-02-14 22:41:47 +01:00
parent 389514d172
commit bb59b7901d

View File

@ -116,6 +116,11 @@ fgCHEST = $94 ; 94 1: not a chest, 0: a chest
intLEVEL = $96 ; 96 theLEVEL-1 intLEVEL = $96 ; 96 theLEVEL-1
fgSOUND = $99 ; 99 fgSOUND = $99 ; 99
fgPLAY = $9a ; 1: alive, 0: dead fgPLAY = $9a ; 1: alive, 0: dead
fgHOLE = $9c ; -1: left hole, 0: none, 1: right hole
theKEY1 = $9e
theKEY2 = $9f
idxDIG = $a0 ; dig index in sprite list
counter = $a1 ; a simple counter
fgLVLMODE = $a2 ; 0: edit, <>0: game fgLVLMODE = $a2 ; 0: edit, <>0: game
idxLADDERI = $a3 idxLADDERI = $a3
theLEVEL = $a6 theLEVEL = $a6
@ -269,8 +274,8 @@ L6099 JSR clearHGRPAGES ; clear HGR pages and draw board
L609F LDX #modeGAME L609F LDX #modeGAME
JSR prepareLEVEL JSR prepareLEVEL
LDA #$00 LDA #$00
STA $9E STA theKEY1
STA $9F STA theKEY2
LDA fgDEMO ; are we in demo mode? LDA fgDEMO ; are we in demo mode?
LSR LSR
BEQ L60BF ; yes BEQ L60BF ; yes
@ -282,7 +287,7 @@ L609F LDX #modeGAME
LDA #sprHERO LDA #sprHERO
JSR blinkSPRITE JSR blinkSPRITE
L60BF LDX #$00 L60BF LDX #$00
STX $9C STX fgHOLE
STX $54 STX $54
LDA $97 LDA $97
CLC CLC
@ -454,7 +459,7 @@ prepareLEVEL
STX nbCHEST STX nbCHEST
STX nbFOE STX nbFOE
STX idxFOE STX idxFOE
STX $A0 STX idxDIG
STX idxLVLDISK STX idxLVLDISK
STX fgODDEVEN STX fgODDEVEN
STX theY STX theY
@ -818,7 +823,7 @@ L64AF DEC theX
L64BD LDA #$01 L64BD LDA #$01
STA fgCHEST STA fgCHEST
LDA $9C LDA fgHOLE
BEQ L64CD BEQ L64CD
BPL L64CA BPL L64CA
JMP L67E7 JMP L67E7
@ -875,13 +880,13 @@ L6525 LDA #$00
BMI L6537 BMI L6537
LDA #$0F ; fall in a right hole LDA #$0F ; fall in a right hole
L6537 STA heroINDEX L6537 STA heroINDEX
JSR L6C13 JSR heroNEXTSTEPX
INC heroSTEPY INC heroSTEPY
LDA heroSTEPY LDA heroSTEPY
CMP #$05 CMP #$05
BCS L654A BCS L654A
JSR checkCHEST JSR checkCHEST
JMP L6C02 JMP checkCOLLISION
L654A LDA #$00 L654A LDA #$00
STA heroSTEPY STA heroSTEPY
@ -897,7 +902,7 @@ L654A LDA #$00
LDA (ptrBBACK),Y LDA (ptrBBACK),Y
CMP #sprWALL CMP #sprWALL
BNE L656B BNE L656B
LDA #$00 LDA #sprEMPTY
L656B STA (ptrBOARD),Y L656B STA (ptrBOARD),Y
INC boardY INC boardY
LDY boardY LDY boardY
@ -908,7 +913,7 @@ L656B STA (ptrBOARD),Y
LDY boardX LDY boardX
LDA #sprHERO LDA #sprHERO
STA (ptrBOARD),Y STA (ptrBOARD),Y
JMP L6C02 JMP checkCOLLISION
L6584 LDA $9B L6584 LDA $9B
BNE L658F BNE L658F
@ -920,7 +925,7 @@ L658F LDA #$20
STA $9B STA $9B
JSR L6A12 JSR L6A12
LDA $9E LDA theKEY1
CMP #chrI ; move up CMP #chrI ; move up
BNE L65A4 BNE L65A4
JSR checkMOVEUP JSR checkMOVEUP
@ -945,7 +950,7 @@ L65B8 CMP #chrO ; dig right
BCS L65C2 BCS L65C2
RTS RTS
L65C2 LDA $9F L65C2 LDA theKEY2
CMP #chrJ ; move left CMP #chrJ ; move left
BNE L65CB BNE L65CB
JMP checkMOVELEFT JMP checkMOVELEFT
@ -988,7 +993,7 @@ L6600 JSR calcSPRITEXY
JSR drawSPRITEXY JSR drawSPRITEXY
LDA #$FF LDA #$FF
STA fgLEFTRIGHT STA fgLEFTRIGHT
JSR L6C26 JSR heroNEXTSTEPY
DEC heroSTEPX DEC heroSTEPX
BPL L662A BPL L662A
LDY boardX LDY boardX
@ -1009,13 +1014,13 @@ L662D LDY boardX ; define sprites
LDA (ptrBBACK),Y ; if we are on a bar LDA (ptrBBACK),Y ; if we are on a bar
CMP #sprBAR CMP #sprBAR
BEQ L663B BEQ L663B
LDA #$00 LDA #$00 ; run left first step
LDX #$02 LDX #$02 ; last step
BNE L663F BNE L663F
L663B LDA #$03 L663B LDA #$03 ; bar left first step
LDX #$05 LDX #$05 ; last step
L663F JSR L6BF4 L663F JSR setHEROSTEP
JMP L6C02 JMP checkCOLLISION
*----------------------------------- *-----------------------------------
* CHECK IF WE CAN MOVE RIGHT * CHECK IF WE CAN MOVE RIGHT
@ -1050,7 +1055,7 @@ L6674 JSR calcSPRITEXY
JSR drawSPRITEXY JSR drawSPRITEXY
LDA #$01 LDA #$01
STA fgLEFTRIGHT STA fgLEFTRIGHT
JSR L6C26 JSR heroNEXTSTEPY
INC heroSTEPX INC heroSTEPX
LDA heroSTEPX LDA heroSTEPX
CMP #$05 CMP #$05
@ -1073,13 +1078,13 @@ L66A5 LDY boardX
LDA (ptrBBACK),Y LDA (ptrBBACK),Y
CMP #sprBAR CMP #sprBAR
BEQ L66B3 BEQ L66B3
LDA #$08 LDA #$08 ; run right step 1
LDX #$0A LDX #$0A ; run right step 3
BNE L66B7 BNE L66B7
L66B3 LDA #$0B L66B3 LDA #$0B ; bar right step 1
LDX #$0D LDX #$0D ; bar right step 3
L66B7 JSR L6BF4 L66B7 JSR setHEROSTEP
JMP L6C02 JMP checkCOLLISION
*----------------------------------- *-----------------------------------
* CAN WE MOVE UP * CAN WE MOVE UP
@ -1137,7 +1142,7 @@ L6711 JSR calcSPRITEXY
STA ptrBOARD+1 STA ptrBOARD+1
LDA tblBOARDBACKH,Y LDA tblBOARDBACKH,Y
STA ptrBBACK+1 STA ptrBBACK+1
JSR L6C13 JSR heroNEXTSTEPX
DEC heroSTEPY DEC heroSTEPY
BPL L6757 BPL L6757
LDY boardX LDY boardX
@ -1159,10 +1164,10 @@ L673B STA (ptrBOARD),Y
STA heroSTEPY STA heroSTEPY
BNE L675A BNE L675A
L6757 JSR checkCHEST L6757 JSR checkCHEST
L675A LDA #$10 L675A LDA #$10 ; climb ladder step 1
LDX #$11 LDX #$11 ; climb ladder step 2
JSR L6BF4 JSR setHEROSTEP
JSR L6C02 JSR checkCOLLISION
CLC CLC
RTS RTS
@ -1200,7 +1205,7 @@ L678A JSR calcSPRITEXY
STA ptrBOARD+1 STA ptrBOARD+1
LDA tblBOARDBACKH,Y LDA tblBOARDBACKH,Y
STA ptrBBACK+1 STA ptrBBACK+1
JSR L6C13 JSR heroNEXTSTEPX
INC heroSTEPY INC heroSTEPY
LDA heroSTEPY LDA heroSTEPY
CMP #$05 CMP #$05
@ -1233,11 +1238,12 @@ L67D8 JMP L6892
checkDIGLEFT checkDIGLEFT
LDA #$FF LDA #$FF
STA $9C STA fgHOLE
STA $9E STA theKEY1
STA $9F STA theKEY2
LDA #$00 LDA #$00
STA $A0 STA idxDIG
L67E7 LDY boardY ; are we on last line? L67E7 LDY boardY ; are we on last line?
CPY #lvlHEIGHT-1 CPY #lvlHEIGHT-1
BCS L67D8 BCS L67D8
@ -1258,25 +1264,25 @@ L67E7 LDY boardY ; are we on last line?
BNE L686E BNE L686E
JSR calcSPRITEXY JSR calcSPRITEXY
JSR drawSPRITEXY JSR drawSPRITEXY
JSR L6C13 JSR heroNEXTSTEPX
JSR L6C26 JSR heroNEXTSTEPY
LDY $A0 LDY idxDIG
LDA L699E,Y LDA L699E,Y
LDX L69AB,Y LDX L69AB,Y
JSR getNOTE JSR getNOTE
LDX $A0 LDX idxDIG
LDA #$00 LDA #$00
CPX #$06 CPX #$06
BCS L682B BCS L682B
LDA #$06 LDA #$06
L682B STA heroINDEX L682B STA heroINDEX
JSR L6C02 JSR checkCOLLISION
LDX $A0 LDX idxDIG
CPX #$0C CPX #$0C
BEQ L6898 BEQ L6898
CPX #$00 CPX #$00
BEQ L684C BEQ L684C
LDA L6979,X LDA L6979,X ; dig left - 1
PHA PHA
LDX boardX LDX boardX
DEX DEX
@ -1284,8 +1290,8 @@ L682B STA heroINDEX
JSR getXY JSR getXY
PLA PLA
JSR drawSPRITEXY JSR drawSPRITEXY
LDX $A0 LDX idxDIG
L684C LDA L697A,X L684C LDA L697A,X ; dig left
PHA PHA
LDX boardX LDX boardX
DEX DEX
@ -1295,11 +1301,11 @@ L684C LDA L697A,X
JSR getXY JSR getXY
PLA PLA
JSR drawSPRXYCOLLISION JSR drawSPRXYCOLLISION
LDX $A0 LDX idxDIG
LDA L6992,X LDA L6992,X ; dig left
INC theY INC theY
JSR coutHGR1 JSR coutHGR1
INC $A0 INC idxDIG
CLC CLC
RTS RTS
@ -1311,7 +1317,7 @@ L686E LDY boardY
STY theX STY theX
LDA #sprWALL LDA #sprWALL
JSR coutHGR1 JSR coutHGR1
LDX $A0 LDX idxDIG
BEQ L6892 BEQ L6892
DEX DEX
LDA L697A,X LDA L697A,X
@ -1323,13 +1329,13 @@ L686E LDY boardY
PLA PLA
JSR drawSPRITEXY JSR drawSPRITEXY
L6892 LDA #$00 L6892 LDA #$00
STA $9C STA fgHOLE
SEC SEC
RTS RTS
L6898 LDX boardX L6898 LDX boardX
DEX DEX
JMP L6C39 JMP addNEWHOLE
L689E JMP L695C L689E JMP L695C
*----------------------------------- *-----------------------------------
@ -1338,11 +1344,11 @@ L689E JMP L695C
checkDIGRIGHT checkDIGRIGHT
LDA #$01 LDA #$01
STA $9C STA fgHOLE
STA $9E STA theKEY1
STA $9F STA theKEY2
LDA #$0C LDA #$0C
STA $A0 STA idxDIG
L68AD LDY boardY ; are we on last line? L68AD LDY boardY ; are we on last line?
CPY #lvlHEIGHT-1 CPY #lvlHEIGHT-1
BCS L689E BCS L689E
@ -1364,20 +1370,20 @@ L68AD LDY boardY ; are we on last line?
BNE L6936 BNE L6936
JSR calcSPRITEXY JSR calcSPRITEXY
JSR drawSPRITEXY JSR drawSPRITEXY
JSR L6C13 JSR heroNEXTSTEPX
JSR L6C26 JSR heroNEXTSTEPY
LDY $A0 LDY idxDIG
LDA L6992,Y LDA L6992,Y
LDX L699F,Y LDX L699F,Y
JSR getNOTE JSR getNOTE
LDX $A0 LDX idxDIG
LDA #$08 LDA #$08
CPX #$12 CPX #$12
BCS L68F3 BCS L68F3
LDA #$0E LDA #$0E
L68F3 STA heroINDEX L68F3 STA heroINDEX
JSR L6C02 JSR checkCOLLISION
LDX $A0 LDX idxDIG
CPX #$18 CPX #$18
BEQ L6962 BEQ L6962
CPX #$0C CPX #$0C
@ -1390,7 +1396,7 @@ L68F3 STA heroINDEX
JSR getXY JSR getXY
PLA PLA
JSR drawSPRITEXY JSR drawSPRITEXY
LDX $A0 LDX idxDIG
L6914 LDA L697A,X L6914 LDA L697A,X
PHA PHA
LDX boardX LDX boardX
@ -1402,10 +1408,10 @@ L6914 LDA L697A,X
PLA PLA
JSR drawSPRXYCOLLISION JSR drawSPRXYCOLLISION
INC theY INC theY
LDX $A0 LDX idxDIG
LDA L6986,X LDA L6986,X
JSR coutHGR1 JSR coutHGR1
INC $A0 INC idxDIG
CLC CLC
RTS RTS
@ -1417,7 +1423,7 @@ L6936 LDY boardY
STY theX STY theX
LDA #$01 LDA #$01
JSR coutHGR1 JSR coutHGR1
LDX $A0 LDX idxDIG
CPX #$0C CPX #$0C
BEQ L695C BEQ L695C
DEX DEX
@ -1431,13 +1437,13 @@ L6936 LDY boardY
JSR drawSPRITEXY JSR drawSPRITEXY
L695C LDA #$00 L695C LDA #$00
STA $9C STA fgHOLE
SEC SEC
RTS RTS
L6962 LDX boardX L6962 LDX boardX ; we're digging
INX INX
JMP L6C39 JMP addNEWHOLE
* Enchanement des sprites * Enchanement des sprites
@ -1561,7 +1567,7 @@ L69F2 LDA demoKEY ; first entry is the fisrt key
AND #$0F AND #$0F
TAX TAX
LDA tblDEMO2KEY,X LDA tblDEMO2KEY,X
STA $9E STA theKEY1
LDA demoKEY LDA demoKEY
LSR LSR
LSR LSR
@ -1569,13 +1575,17 @@ L69F2 LDA demoKEY ; first entry is the fisrt key
LSR LSR
TAX TAX
LDA tblDEMO2KEY,X LDA tblDEMO2KEY,X
STA $9F ; second key STA theKEY2 ; second key
DEC demoREPEAT DEC demoREPEAT
RTS RTS
* 0123456 * 0123456
tblDEMO2KEY ASC "IJKLOU " tblDEMO2KEY ASC "IJKLOU "
*-----------------------------------
* DEMO MODE ENGINE ENTRY POINT
*-----------------------------------
L6A12 LDA fgDEMO L6A12 LDA fgDEMO
CMP #$01 CMP #$01
BEQ L69B8 BEQ L69B8
@ -1586,7 +1596,7 @@ L6A12 LDA fgDEMO
LDA fgINPUT LDA fgINPUT
CMP #chrK CMP #chrK
BEQ L6A55 BEQ L6A55
L6A28 JMP L6AD0 L6A28 JMP getJOYSTICKKEY
L6A2B CPX #chrSPC L6A2B CPX #chrSPC
BCS L6A49 BCS L6A49
@ -1610,8 +1620,8 @@ L6A49 LDA fgINPUT
CMP #chrJ CMP #chrJ
BEQ L6A28 BEQ L6A28
LDX theA LDX theA
STX $9E STX theKEY1
STX $9F STX theKEY2
L6A55 RTS L6A55 RTS
*------------------------------- *-------------------------------
@ -1638,6 +1648,8 @@ L6A67 JSR printMEN
LSR $9D LSR $9D
JMP L6A12 JMP L6A12
*--- dead code
INC $97 INC $97
INC theMEN ; man++ INC theMEN ; man++
LSR fgPLAY LSR fgPLAY
@ -1732,24 +1744,25 @@ doSPEEDUP LDA theSPEED
L6ACD JMP L6A12 L6ACD JMP L6A12
*------------------------------- *-------------------------------
* * GET JOYSTICK KEY
*------------------------------- *-------------------------------
L6AD0 LDA BUTN1 getJOYSTICKKEY
LDA BUTN1
BPL L6AD9 BPL L6AD9
LDA #chrU LDA #chrU ; dig
BNE L6AE0 BNE L6AE0
L6AD9 LDA BUTN0 L6AD9 LDA BUTN0
BPL L6AE5 BPL L6AE5
LDA #chrO LDA #chrO ; dig
L6AE0 STA $9E L6AE0 STA theKEY1
STA $9F STA theKEY2
RTS RTS
L6AE5 JSR readJOYSTICK L6AE5 JSR readJOYSTICK ; no keys pressed
LDY theJOYX LDY theJOYX ; read joystick
LDA joyXMAX LDA joyXMAX ; clamp
CMP #$2E CMP #$2E ; return key
BEQ L6AFA BEQ L6AFA
CPY joyXMAX CPY joyXMAX
BCS L6B03 BCS L6B03
@ -1770,8 +1783,8 @@ L6B13 CPY joyXMIN
BCC L6B1C BCC L6B1C
LDA #chrJ LDA #chrJ
BNE L6B1E BNE L6B1E
L6B1C LDA #$C0 L6B1C LDA #chrA-1
L6B1E STA $9F L6B1E STA theKEY2
LDY theJOYY LDY theJOYY
LDA joyYMIN LDA joyYMIN
CMP #$2E CMP #$2E
@ -1796,9 +1809,13 @@ L6B4B CPY joyYMAX
LDA #chrK LDA #chrK
BNE L6B56 BNE L6B56
L6B54 LDA #chrA-1 L6B54 LDA #chrA-1
L6B56 STA $9E L6B56 STA theKEY1
RTS RTS
*----------------------------------
* KEYS AND ASSOCIATED JUMPS
*----------------------------------
tblKEY HEX 9E809B9281938A8B889598998D00 tblKEY HEX 9E809B9281938A8B889598998D00
tblKEYADR DA doNEXTLEVEL-1 ; 9E - CTRL-^ tblKEYADR DA doNEXTLEVEL-1 ; 9E - CTRL-^
@ -1887,12 +1904,12 @@ checkCHEST LDA heroSTEPX ; is sprite still in X
L6BF3 RTS L6BF3 RTS
*----------------------------------- *-----------------------------------
* * STEP HERO STEP
*----------------------------------- *-----------------------------------
L6BF4 INC heroINDEX setHEROSTEP INC heroINDEX ; A is the first step
CMP heroINDEX CMP heroINDEX ; X the last
BCC L6BFD BCC L6BFD ; sets the step accordingly
L6BFA STA heroINDEX L6BFA STA heroINDEX
RTS RTS
L6BFD CPX heroINDEX L6BFD CPX heroINDEX
@ -1900,10 +1917,11 @@ L6BFD CPX heroINDEX
RTS RTS
*----------------------------------- *-----------------------------------
* * CHECK COLLISION
*----------------------------------- *-----------------------------------
L6C02 JSR calcSPRITEXY checkCOLLISION
JSR calcSPRITEXY
JSR drawSPRXYCOLLISION JSR drawSPRXYCOLLISION
LDA fgCOLLISION ; les sprites sont-ils entrŽs en collision ? LDA fgCOLLISION ; les sprites sont-ils entrŽs en collision ?
BEQ L6C12 ; non BEQ L6C12 ; non
@ -1913,10 +1931,11 @@ L6C02 JSR calcSPRITEXY
L6C12 RTS L6C12 RTS
*----------------------------------- *-----------------------------------
* * SET HERO NEXT STEP X
*----------------------------------- *-----------------------------------
L6C13 LDA heroSTEPX heroNEXTSTEPX
LDA heroSTEPX
CMP #$02 CMP #$02
BCC L6C20 BCC L6C20
BEQ L6C25 BEQ L6C25
@ -1927,10 +1946,11 @@ L6C20 INC heroSTEPX
L6C25 RTS L6C25 RTS
*----------------------------------- *-----------------------------------
* * SET HERO NEXT STEP Y
*----------------------------------- *-----------------------------------
L6C26 LDA heroSTEPY heroNEXTSTEPY
LDA heroSTEPY
CMP #$02 CMP #$02
BCC L6C33 BCC L6C33
BEQ L6C38 BEQ L6C38
@ -1941,11 +1961,11 @@ L6C33 INC heroSTEPY
L6C38 RTS L6C38 RTS
*----------------------------------- *-----------------------------------
* * ADD A NEW HOLE
*----------------------------------- *-----------------------------------
L6C39 LDA #$00 addNEWHOLE LDA #$00 ; tell we're digging
STA $9C STA fgHOLE
LDY boardY LDY boardY
INY INY
STX theX STX theX
@ -1954,7 +1974,7 @@ L6C39 LDA #$00
STA ptrBOARD STA ptrBOARD
LDA tblBOARDALLH,Y LDA tblBOARDALLH,Y
STA ptrBOARD+1 STA ptrBOARD+1
LDA #sprEMPTY LDA #sprEMPTY ; make the hole visible
LDY theX LDY theX
STA (ptrBOARD),Y STA (ptrBOARD),Y
JSR coutHGR1 JSR coutHGR1
@ -1964,7 +1984,7 @@ L6C39 LDA #$00
LDA #sprEMPTY LDA #sprEMPTY
JSR coutHGR1 JSR coutHGR1
INC theY INC theY
LDX #$FF LDX #$FF ; add the hole to the list
L6C67 INX L6C67 INX
CPX #sizeHOLE-2 CPX #sizeHOLE-2
BEQ L6C81 BEQ L6C81
@ -1974,7 +1994,7 @@ L6C67 INX
STA tblHOLEY,X STA tblHOLEY,X
LDA theX LDA theX
STA tblHOLEX,X STA tblHOLEX,X
LDA #$B4 LDA #$B4 ; its tempo
STA tblHOLET,X STA tblHOLET,X
SEC SEC
L6C81 RTS L6C81 RTS
@ -3367,7 +3387,7 @@ displayHIGHSCORES
LDX #$FF LDX #$FF
LDY #$FF LDY #$FF
LDA #$04 LDA #$04
STA $A1 STA counter
L77B7 LDA fgINPUT L77B7 LDA fgINPUT
CMP #chrK CMP #chrK
BEQ L77C7 BEQ L77C7
@ -3381,7 +3401,7 @@ L77C7 LDA KBD
BNE L77B7 BNE L77B7
DEY DEY
BNE L77B7 BNE L77B7
DEC $A1 DEC counter
BNE L77B7 BNE L77B7
L77D6 STA KBDSTROBE L77D6 STA KBDSTROBE
STA TXTPAGE1 STA TXTPAGE1
@ -5025,7 +5045,7 @@ L85E7 LDA #>HGR1
L85F3 STA bsDATA L85F3 STA bsDATA
L85F6 LDA #$68 L85F6 LDA #$68
STA $A1 STA counter
LDA bsDATA LDA bsDATA
BNE L8601 BNE L8601
LDA #$0A LDA #$0A
@ -5033,16 +5053,16 @@ L8601 JSR coutHGR2
L8604 LDA KBD L8604 LDA KBD
BMI L8628 BMI L8628
JSR checkMOVEMENT JSR checkMOVEMENT
DEC $A1 DEC counter
BNE L8604 BNE L8604
LDA #$00 LDA #$00
JSR coutHGR2 JSR coutHGR2
LDA #$68 LDA #$68
STA $A1 STA counter
L8619 LDA KBD L8619 LDA KBD
BMI L8628 BMI L8628
JSR checkMOVEMENT JSR checkMOVEMENT
DEC $A1 DEC counter
BNE L8619 BNE L8619
JMP L85F6 JMP L85F6
@ -5190,7 +5210,7 @@ L86F9 LDA ptrSTRSND+1
blinkSPRITE blinkSPRITE
STA bsDATA STA bsDATA
L8703 LDA #$68 L8703 LDA #$68
STA $A1 STA counter
LDA #sprEMPTY LDA #sprEMPTY
LDX bsDATA LDX bsDATA
BNE L8710 BNE L8710
@ -5200,17 +5220,17 @@ L8713 LDA KBD ; key pressed?
BMI L873C ; yes BMI L873C ; yes
JSR checkMOVEMENT ; buttons pressed? JSR checkMOVEMENT ; buttons pressed?
BCS L873C ; yes BCS L873C ; yes
DEC $A1 DEC counter
BNE L8713 BNE L8713
LDA bsDATA ; output sprite LDA bsDATA ; output sprite
JSR coutHGR1 JSR coutHGR1
LDA #$68 ; redo the wait LDA #$68 ; redo the wait
STA $A1 STA counter
L872B LDA KBD L872B LDA KBD
BMI L873C BMI L873C
JSR checkMOVEMENT JSR checkMOVEMENT
BCS L873C BCS L873C
DEC $A1 DEC counter
BNE L872B BNE L872B
JMP L8703 JMP L8703