v+1
This commit is contained in:
parent
9170c2cbdd
commit
856c51e721
Binary file not shown.
Binary file not shown.
|
@ -5,8 +5,12 @@
|
|||
*
|
||||
|
||||
*-----------------------------------
|
||||
*
|
||||
* 150 LEVELS + SCORE
|
||||
*-----------------------------------
|
||||
|
||||
ptrLEVELS ent
|
||||
ds 65536
|
||||
ds 38400
|
||||
|
||||
ptrSCORES ent
|
||||
ds 256
|
||||
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
*-----------------------------------
|
||||
*
|
||||
*-----------------------------------
|
||||
|
||||
ds 8192 ; $0000
|
||||
|
||||
HGR2 ent
|
||||
ds 32768 ; $2000
|
||||
|
||||
ds 24576 ; $a000
|
|
@ -21,6 +21,7 @@ theGAME JSR checkJOYSTICK
|
|||
|
||||
showTITLEPAGE
|
||||
JSR clearHGR1 ; display the compressed title page
|
||||
|
||||
LDA #<logo-1
|
||||
STA L6030+1
|
||||
LDA #>logo-1
|
||||
|
@ -29,7 +30,7 @@ showTITLEPAGE
|
|||
STY theY
|
||||
STY fgDEMO
|
||||
STY intLEVEL
|
||||
LDA #>HGR1
|
||||
LDA #>oldHGR1
|
||||
STA hgrPAGE
|
||||
STA activePAGE
|
||||
L6023 JSR setHGRPOINTER
|
||||
|
@ -49,10 +50,10 @@ L603F INC theY
|
|||
LDY theY
|
||||
CPY #maxHEIGHT ; until line 192
|
||||
BCC L6023
|
||||
STAl TXTPAGE1
|
||||
STAl HIRES
|
||||
STAl MIXCLR
|
||||
STAl TXTCLR
|
||||
* STA TXTPAGE1
|
||||
* STA HIRES
|
||||
* STA MIXCLR
|
||||
* STA TXTCLR
|
||||
JMP L618E
|
||||
|
||||
*---
|
||||
|
@ -93,7 +94,7 @@ L6086
|
|||
* STX CV
|
||||
|
||||
L6099 JSR clearHGRPAGES ; clear HGR pages and draw board
|
||||
STAl TXTPAGE1
|
||||
* STA TXTPAGE1
|
||||
L609F LDX #modeGAME
|
||||
JSR prepareLEVEL
|
||||
LDA #$00
|
||||
|
@ -418,6 +419,8 @@ dlLOAD rep #$30 ; load a level
|
|||
lda intLEVEL
|
||||
and #$ff
|
||||
xba
|
||||
clc
|
||||
adc #ptrLEVELS
|
||||
pha
|
||||
PushLong #levelDISK
|
||||
PushLong #256
|
||||
|
@ -475,10 +478,20 @@ readSCORE cmp #1 ; load scores file from disk
|
|||
cmp #2 ; save scores file to disk
|
||||
bne rsERR
|
||||
|
||||
jsr saveSCORES
|
||||
ldx #0 ; copy score file
|
||||
]lp lda scorebuf,x
|
||||
stal ptrSCORES,x
|
||||
inx
|
||||
bne ]lp
|
||||
|
||||
jsr saveLEVELS ; and save
|
||||
bra L6381
|
||||
|
||||
rsLOAD jsr loadSCORES
|
||||
rsLOAD ldx #0 ; copy score file
|
||||
]lp ldal ptrSCORES,x ; from levels in RAM
|
||||
sta scorebuf,x
|
||||
inx
|
||||
bne ]lp
|
||||
bra L6381
|
||||
|
||||
* STA LB7F4 ; command
|
||||
|
@ -633,25 +646,34 @@ L6450 JSR coutHGR2 ; put the char in background
|
|||
SEC ; not ok
|
||||
RTS
|
||||
|
||||
*--- Level is decode for the edit mode
|
||||
*--- Level is decoded for the edit mode
|
||||
|
||||
L6469
|
||||
* LDA #>oldHGR1 ; copy HGR1 > HGR2
|
||||
* STA ptrHGR2+1
|
||||
* LDA #>oldHGR2
|
||||
* STA ptrHGR1+1
|
||||
* LDA #$00
|
||||
* STA ptrHGR2
|
||||
* STA ptrHGR1
|
||||
* TAY
|
||||
*L6478 LDA (ptrHGR1),Y
|
||||
* STA (ptrHGR2),Y
|
||||
* INY
|
||||
* BNE L6478
|
||||
* INC ptrHGR2+1
|
||||
* INC ptrHGR1+1
|
||||
* LDX ptrHGR1+1
|
||||
* CPX #>oldHGR3 ; >HGR2+$20 BUG
|
||||
* BCC L6478
|
||||
|
||||
rep #$30
|
||||
PushLong ptrSCREEN
|
||||
PushLong #HGR2
|
||||
PushLong #32768
|
||||
_BlockMove
|
||||
sep #$30
|
||||
|
||||
L6469 LDA #>HGR1 ; copy HGR1 > HGR2
|
||||
STA ptrHGR2+1
|
||||
LDA #>HGR2
|
||||
STA ptrHGR1+1
|
||||
LDA #$00
|
||||
STA ptrHGR2
|
||||
STA ptrHGR1
|
||||
TAY
|
||||
L6478 LDA [ptrHGR1],Y
|
||||
STA [ptrHGR2],Y
|
||||
INY
|
||||
BNE L6478
|
||||
INC ptrHGR2+1
|
||||
INC ptrHGR1+1
|
||||
LDX ptrHGR1+1
|
||||
CPX #>HGR3 ; >HGR2+$20 BUG
|
||||
BCC L6478
|
||||
CLC ; oookkkkk
|
||||
RTS
|
||||
|
||||
|
@ -3397,7 +3419,7 @@ L77C7 LDAl KBD
|
|||
DEC counter
|
||||
BNE L77B7
|
||||
L77D6 STAl KBDSTROBE
|
||||
STAl TXTPAGE1
|
||||
* STA TXTPAGE1
|
||||
JSR clearHGR2
|
||||
|
||||
LDY #lvlHEIGHT-1
|
||||
|
@ -3475,7 +3497,7 @@ L7868 JMP getPLAYERINPUT
|
|||
|
||||
showALLSCORES
|
||||
JSR clearHGR2
|
||||
LDA #>HGR2
|
||||
LDA #>oldHGR2
|
||||
STA activePAGE
|
||||
LDA #$00
|
||||
STA theX
|
||||
|
@ -3569,8 +3591,9 @@ L798C JSR L7B7D
|
|||
BCS L799A
|
||||
JMP L78D4
|
||||
|
||||
L799A STAl TXTPAGE2
|
||||
LDA #>HGR1
|
||||
L799A
|
||||
* STA TXTPAGE2
|
||||
LDA #>oldHGR1
|
||||
STA activePAGE
|
||||
RTS
|
||||
|
||||
|
@ -3589,42 +3612,65 @@ clearHGRPAGES
|
|||
*-------------------------------
|
||||
|
||||
drawINFOBAR
|
||||
jmp dibSKIP
|
||||
|
||||
LDY #$27 ; met la barre bleue
|
||||
* LDY #$27 ; met la barre bleue
|
||||
LDA activePAGE
|
||||
CMP #>HGR2
|
||||
CMP #>oldHGR2
|
||||
BEQ L79DD
|
||||
L79BB LDA #$AA
|
||||
STA $2350,Y
|
||||
STA $2750,Y
|
||||
STA $2B50,Y
|
||||
STA $2F50,Y
|
||||
DEY
|
||||
LDA #$D5
|
||||
STA $2350,Y
|
||||
STA $2750,Y
|
||||
STA $2B50,Y
|
||||
STA $2F50,Y
|
||||
DEY
|
||||
BPL L79BB
|
||||
BMI L79FD
|
||||
|
||||
L79DD LDA #$AA ; pareil mais sur HGR2
|
||||
STA $4350,Y
|
||||
STA $4750,Y
|
||||
STA $4B50,Y
|
||||
STA $4F50,Y
|
||||
DEY
|
||||
LDA #$D5
|
||||
STA $4350,Y
|
||||
STA $4750,Y
|
||||
STA $4B50,Y
|
||||
STA $4F50,Y
|
||||
DEY
|
||||
BPL L79DD
|
||||
lda ptrSCREEN+2
|
||||
ldx ptrSCREEN+1
|
||||
ldy ptrSCREEN
|
||||
bra dib2
|
||||
|
||||
L79DD lda #^HGR2
|
||||
ldx #>HGR2
|
||||
ldy #<HGR2
|
||||
|
||||
dib2 sta ptrDATA+2
|
||||
stx ptrDATA+1
|
||||
sty ptrDATA
|
||||
|
||||
rep #$30
|
||||
ldx #160*4 ; 4 lines
|
||||
ldy #$6e00 ; ligne 179
|
||||
lda #$4444 ; bleu
|
||||
]lp sta [ptrDATA],y
|
||||
iny
|
||||
iny
|
||||
dex
|
||||
dex
|
||||
bpl ]lp
|
||||
sep #$30
|
||||
|
||||
*L79BB LDA #$AA ; ligne 176
|
||||
* STA $2350,Y
|
||||
* STA $2750,Y
|
||||
* STA $2B50,Y
|
||||
* STA $2F50,Y
|
||||
* DEY
|
||||
* LDA #$D5
|
||||
* STA $2350,Y
|
||||
* STA $2750,Y
|
||||
* STA $2B50,Y
|
||||
* STA $2F50,Y
|
||||
* DEY
|
||||
* BPL L79BB
|
||||
* BMI L79FD
|
||||
*
|
||||
*L79DD LDA #$AA ; pareil mais sur HGR2
|
||||
* STA $4350,Y
|
||||
* STA $4750,Y
|
||||
* STA $4B50,Y
|
||||
* STA $4F50,Y
|
||||
* DEY
|
||||
* LDA #$D5
|
||||
* STA $4350,Y
|
||||
* STA $4750,Y
|
||||
* STA $4B50,Y
|
||||
* STA $4F50,Y
|
||||
* DEY
|
||||
* BPL L79DD
|
||||
|
||||
dibSKIP
|
||||
L79FD LDA #$10
|
||||
STA theY
|
||||
LDA #$00
|
||||
|
@ -3645,9 +3691,16 @@ setHGRPOINTER
|
|||
LDA xhgr,Y
|
||||
STA ptrHGR1
|
||||
LDA yhgr,Y
|
||||
ORA hgrPAGE
|
||||
* ORA hgrPAGE
|
||||
STA ptrHGR1+1
|
||||
lda #^ptrSCREENE1
|
||||
|
||||
lda hgrPAGE ; logo
|
||||
cmp #>oldHGR2 ; set bank
|
||||
beq shp2
|
||||
lda ptrSCREEN+2 ; HGR1 = ptrSCREEN+2
|
||||
sta ptrHGR1+2
|
||||
rts
|
||||
shp2 lda #^HGR2 ; HGR2 = ^HGR2
|
||||
sta ptrHGR1+2
|
||||
RTS
|
||||
|
||||
|
@ -3656,16 +3709,18 @@ setHGRPOINTER
|
|||
*-------------------------------
|
||||
|
||||
setHGRPOINTERS
|
||||
LDA xhgr,Y
|
||||
LDA xhgr,Y ; low
|
||||
STA ptrHGR1
|
||||
STA ptrHGR2
|
||||
LDA yhgr,Y
|
||||
ORA #>HGR1
|
||||
LDA yhgr,Y ; high
|
||||
* ORA #>oldHGR1
|
||||
STA ptrHGR1+1
|
||||
EOR #$60
|
||||
* EOR #$60
|
||||
STA ptrHGR2+1
|
||||
lda #^ptrSCREENE1
|
||||
|
||||
lda ptrSCREEN+2 ; bank
|
||||
sta ptrHGR1+2
|
||||
lda #^HGR2
|
||||
sta ptrHGR2+2
|
||||
RTS
|
||||
|
||||
|
@ -3673,32 +3728,52 @@ setHGRPOINTERS
|
|||
* CLEAR HGR1
|
||||
*-------------------------------
|
||||
|
||||
clearHGR1 LDA #>HGR1
|
||||
LDX #>HGR2 ; >HGR1+$20
|
||||
BNE L7A5B
|
||||
clearHGR1
|
||||
* LDA #>oldHGR1
|
||||
* LDX #>oldHGR2 ; >HGR1+$20
|
||||
* BNE L7A5B
|
||||
lda ptrSCREEN+2
|
||||
ldx ptrSCREEN+1
|
||||
ldy ptrSCREEN
|
||||
bra L7A5B
|
||||
|
||||
*-------------------------------
|
||||
* CLEAR HGR2
|
||||
*-------------------------------
|
||||
|
||||
clearHGR2 LDA #>HGR2
|
||||
LDX #>HGR3 ; >HGR2+$20
|
||||
clearHGR2
|
||||
* LDA #>oldHGR2
|
||||
* LDX #>oldHGR3 ; >HGR2+$20
|
||||
lda #^HGR2
|
||||
ldx #>HGR2
|
||||
ldy #<HGR2
|
||||
|
||||
*--- clear now
|
||||
|
||||
L7A5B ldy #^ptrSCREENE1
|
||||
sty ptrDATA+2
|
||||
STA ptrDATA+1
|
||||
LDA #$00
|
||||
STA ptrDATA
|
||||
TAY
|
||||
LDA #$80
|
||||
]lp STA [ptrDATA],Y
|
||||
INY
|
||||
BNE ]lp
|
||||
INC ptrDATA+1
|
||||
CPX ptrDATA+1
|
||||
BNE ]lp
|
||||
L7A5B
|
||||
* STA ptrDATA+1
|
||||
* LDA #$00
|
||||
* STA ptrDATA
|
||||
* TAY
|
||||
* LDA #$80
|
||||
*]lp STA [ptrDATA],Y
|
||||
* INY
|
||||
* BNE ]lp
|
||||
* INC ptrDATA+1
|
||||
* CPX ptrDATA+1
|
||||
* BNE ]lp
|
||||
|
||||
sta ptrDATA+2 ; save address
|
||||
stx ptrDATA+1
|
||||
sty ptrDATA
|
||||
rep #$30
|
||||
ldy #$7cfe ; everything but SCB and Palette
|
||||
lda #0
|
||||
]lp sta [ptrDATA],y
|
||||
dey
|
||||
dey
|
||||
bpl ]lp
|
||||
sep #$30
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
|
@ -3816,7 +3891,7 @@ L7B12 STA theUNITE
|
|||
outputCHAR CLC ; print a char
|
||||
ADC #spr0
|
||||
LDX activePAGE
|
||||
CPX #>HGR2
|
||||
CPX #>oldHGR2
|
||||
BEQ L7B24
|
||||
JSR coutHGR1 ; print HGR1
|
||||
INC theX
|
||||
|
@ -3873,7 +3948,7 @@ printCHAR CMP #chrRET
|
|||
BEQ L7B7D
|
||||
JSR filterCHAR
|
||||
LDX activePAGE
|
||||
CPX #>HGR2
|
||||
CPX #>oldHGR2
|
||||
BEQ L7B77
|
||||
JSR coutHGR1 ; output in HGR1
|
||||
INC theX
|
||||
|
@ -3907,7 +3982,7 @@ enterEDITOR LDA #$00
|
|||
STA L7C76+1
|
||||
LDA #chrK ; force keyboard in editor
|
||||
STA fgINPUT
|
||||
STAl TXTPAGE1
|
||||
* STA TXTPAGE1
|
||||
LDA intLEVEL ; check level
|
||||
CMP #maxLEVEL
|
||||
BCC editMAIN
|
||||
|
@ -3915,7 +3990,7 @@ enterEDITOR LDA #$00
|
|||
STA intLEVEL
|
||||
|
||||
editMAIN JSR clearHGR1 ; clear HGR1
|
||||
LDA #>HGR1
|
||||
LDA #>oldHGR1
|
||||
STA activePAGE
|
||||
LDA #$00
|
||||
STA theX
|
||||
|
@ -4067,12 +4142,16 @@ iigsMOVELEVEL
|
|||
lda L824F
|
||||
and #$ff
|
||||
xba
|
||||
clc
|
||||
adc #ptrLEVELS
|
||||
pha
|
||||
|
||||
pea ^ptrLEVELS ; set destination level
|
||||
lda L8250
|
||||
and #$ff
|
||||
xba
|
||||
clc
|
||||
adc #ptrLEVELS
|
||||
pha
|
||||
|
||||
PushLong #256 ; set length
|
||||
|
@ -4200,10 +4279,10 @@ L7EFE JMP editLOOP
|
|||
|
||||
editEDITLEVEL
|
||||
JSR clearHGR2 ; clear HGR2
|
||||
LDA #>HGR2
|
||||
LDA #>oldHGR2
|
||||
STA activePAGE
|
||||
JSR drawINFOBAR ; show frame
|
||||
LDA #>HGR1
|
||||
LDA #>oldHGR1
|
||||
STA activePAGE
|
||||
JSR checkDISK ; check diskette (master or data disk)
|
||||
LDX #$01
|
||||
|
@ -4377,7 +4456,7 @@ editSAVECHANGES
|
|||
LDA fgCHANGE
|
||||
BNE L8075
|
||||
JSR clearHGR2
|
||||
LDA #>HGR2
|
||||
LDA #>oldHGR2
|
||||
STA activePAGE
|
||||
LDA #$00
|
||||
STA theX
|
||||
|
@ -4387,7 +4466,7 @@ editSAVECHANGES
|
|||
ASC "NOT SAVED. DO YOU WISH TO"8D
|
||||
ASC "SAVE MODIFIED LEVEL (Y/N) "00
|
||||
JSR doBEEP
|
||||
STAl TXTPAGE2
|
||||
* STA TXTPAGE2
|
||||
L8062 LDA #$00
|
||||
JSR L85F3
|
||||
STAl KBDSTROBE
|
||||
|
@ -4396,7 +4475,8 @@ L8062 LDA #$00
|
|||
CMP #chrY
|
||||
BNE L8062
|
||||
JSR saveLEVEL
|
||||
L8075 STAl TXTPAGE1
|
||||
L8075
|
||||
* STA TXTPAGE1
|
||||
LDA #$00
|
||||
STA theX
|
||||
STA theY
|
||||
|
@ -4423,7 +4503,7 @@ L808E CMP #$01 ; 01 means master disk
|
|||
|
||||
tellMASTERDISK
|
||||
JSR clearHGR2
|
||||
LDA #>HGR2
|
||||
LDA #>oldHGR2
|
||||
STA activePAGE
|
||||
LDA #$00
|
||||
STA theX
|
||||
|
@ -4440,11 +4520,11 @@ L80D8 JSR printSTRING
|
|||
ASC 8D8D
|
||||
ASC "HIT A KEY TO CONTINUE "00
|
||||
JSR doBEEP
|
||||
STAl TXTPAGE2
|
||||
* STA TXTPAGE2
|
||||
LDA #$00
|
||||
JSR L85F3
|
||||
STAl KBDSTROBE
|
||||
STAl TXTPAGE1
|
||||
* STA TXTPAGE1
|
||||
|
||||
L8105 RTS
|
||||
|
||||
|
@ -4454,7 +4534,7 @@ L8105 RTS
|
|||
|
||||
tellNODATADISK
|
||||
JSR clearHGR2
|
||||
LDA #>HGR2
|
||||
LDA #>oldHGR2
|
||||
STA activePAGE
|
||||
LDA #$00
|
||||
STA theX
|
||||
|
@ -4620,37 +4700,96 @@ L8289 HEX 220F8888888888888888CCCFC4C5A0D2
|
|||
HEX A0
|
||||
|
||||
*---------------------------------------
|
||||
* PRINT CHAR
|
||||
* PRINT CHAR - TOTO
|
||||
*---------------------------------------
|
||||
|
||||
coutHGR1 STA theA ; char in $1E
|
||||
LDA #>HGR1 ; print HGR1
|
||||
LDA #>oldHGR1 ; print HGR1
|
||||
BNE L82B4
|
||||
|
||||
coutHGR2 STA theA ; char in $1E
|
||||
LDA #>HGR2 ; print HGR2
|
||||
LDA #>oldHGR2 ; print HGR2
|
||||
|
||||
L82B4 STA hgrPAGE ; page in $1F
|
||||
LDY theY ; take Y
|
||||
JSR getXY
|
||||
STY theYSCREEN ; make it Y screen
|
||||
LDX theX ; take X
|
||||
JSR getBYBI
|
||||
STA theXSCREEN ; make it X screen
|
||||
STX sprTABLE
|
||||
LDA tblMASK1,X
|
||||
STA theMASK1
|
||||
LDA tblMASK2,X
|
||||
STA theMASK2
|
||||
JSR getSPRITEDATA
|
||||
LDA #sprHEIGHT
|
||||
STA nbLINES
|
||||
|
||||
LDX #$00
|
||||
LDA sprTABLE ; derniere table de sprite?
|
||||
CMP #$05
|
||||
BCS L8301
|
||||
rep #$30
|
||||
lda #0
|
||||
tax
|
||||
tay
|
||||
sep #$30
|
||||
|
||||
* LDY theY ; take Y
|
||||
* JSR getXY
|
||||
* STY theYSCREEN ; make it Y screen
|
||||
* LDX theX ; take X
|
||||
* JSR getBYBI
|
||||
* STA theXSCREEN ; make it X screen
|
||||
* STX sprTABLE
|
||||
* LDA tblMASK1,X
|
||||
* STA theMASK1
|
||||
* LDA tblMASK2,X
|
||||
* STA theMASK2
|
||||
* JSR getSPRITEDATA
|
||||
* LDA #sprHEIGHT
|
||||
* STA nbLINES
|
||||
* LDX #$00
|
||||
* LDA sprTABLE ; derniere table de sprite?
|
||||
* CMP #$05
|
||||
* BCS L8301
|
||||
|
||||
ldy theY ; board Y
|
||||
ldx theX ; board X
|
||||
jsr getXY ; retourne Y HGR
|
||||
jsr setHGRPOINTER ; met le pointeur
|
||||
txy ; colonne
|
||||
|
||||
rep #$30
|
||||
lda #sprHEIGHT
|
||||
sta nbLINES2
|
||||
|
||||
lda theA
|
||||
and #$ff
|
||||
asl
|
||||
tax
|
||||
lda tblSPRITES,x
|
||||
tax
|
||||
|
||||
]lp lda [ptrHGR1],y ; fond - 0123
|
||||
ora |$0000,x ; sprite
|
||||
sta [ptrHGR1],y ; fond
|
||||
|
||||
iny
|
||||
iny
|
||||
inx
|
||||
inx
|
||||
lda [ptrHGR1],y ; fond - 4567
|
||||
ora |$0000,x ; sprite
|
||||
sta [ptrHGR1],y ; fond
|
||||
|
||||
iny
|
||||
iny
|
||||
inx
|
||||
inx
|
||||
sep #$20
|
||||
lda [ptrHGR1],y ; fond - 89
|
||||
ora |$0000,x ; sprite
|
||||
sta [ptrHGR1],y ; fond
|
||||
rep #$20
|
||||
|
||||
iny
|
||||
tya
|
||||
clc
|
||||
adc #160-5 ; 5 = 10 pixels
|
||||
tay
|
||||
inx
|
||||
|
||||
dec nbLINES2
|
||||
bne ]lp
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
mx %11
|
||||
|
||||
*--- sprite de 2 de large
|
||||
|
||||
L82DF LDY theYSCREEN
|
||||
|
@ -5027,7 +5166,7 @@ L8536 LDX scoreoffset,Y ; permet la saisie des initiales
|
|||
STA L8582+1
|
||||
STA L85C9+1
|
||||
JSR showALLSCORES
|
||||
LDA #>HGR2
|
||||
LDA #>oldHGR2
|
||||
STA activePAGE
|
||||
LDA $69
|
||||
CLC
|
||||
|
@ -5083,7 +5222,7 @@ L85C9 STA scorebuf,Y
|
|||
L85E1 JSR doBEEP
|
||||
JMP L857F
|
||||
|
||||
L85E7 LDA #>HGR1
|
||||
L85E7 LDA #>oldHGR1
|
||||
STA activePAGE
|
||||
LDA #$02
|
||||
JSR readSCORE
|
||||
|
@ -5487,12 +5626,17 @@ setBOARDLINEPOINTERS
|
|||
* FROM A Y IN TEXT TO A Y IN HGR
|
||||
*-------------------------------
|
||||
|
||||
getXY LDA ytable,Y ; in: board X/Y
|
||||
PHA ; out: hgr X/Y
|
||||
LDA xtable,X
|
||||
TAX
|
||||
PLA
|
||||
TAY
|
||||
getXY
|
||||
* LDA ytable,Y ; in: board X/Y
|
||||
* PHA ; out: hgr X/Y
|
||||
* LDA xtable,X
|
||||
* TAX
|
||||
* PLA
|
||||
* TAY
|
||||
lda xtable,x
|
||||
tax
|
||||
lda ytable,y
|
||||
tay
|
||||
RTS
|
||||
|
||||
getBYBI LDA bytable,X ; in: board X
|
||||
|
@ -5817,12 +5961,12 @@ L8A69 LDY $7C
|
|||
BCS L8A8C
|
||||
JSR setHGRPOINTERS
|
||||
LDY $7F
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8A81
|
||||
LDX $83
|
||||
JSR L8AF6
|
||||
L8A81 LDY $7E
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8A8C
|
||||
LDX $82
|
||||
JSR L8AF6
|
||||
|
@ -5833,12 +5977,12 @@ L8A8C LDY $79
|
|||
BCS L8AAF
|
||||
JSR setHGRPOINTERS
|
||||
LDY $7F
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8AA4
|
||||
LDX $83
|
||||
JSR L8AF6
|
||||
L8AA4 LDY $7E
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8AAF
|
||||
LDX $82
|
||||
JSR L8AF6
|
||||
|
@ -5849,12 +5993,12 @@ L8AAF LDY $7B
|
|||
BCS L8AD2
|
||||
JSR setHGRPOINTERS
|
||||
LDY $80
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8AC7
|
||||
LDX $84
|
||||
JSR L8AF6
|
||||
L8AC7 LDY $7D
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8AD2
|
||||
LDX $81
|
||||
JSR L8AF6
|
||||
|
@ -5865,12 +6009,12 @@ L8AD2 LDY $7A
|
|||
BCS L8AF5
|
||||
JSR setHGRPOINTERS
|
||||
LDY $80
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8AEA
|
||||
LDX $84
|
||||
JSR L8AF6
|
||||
L8AEA LDY $7D
|
||||
CPY #$28
|
||||
CPY #hgrWIDTH
|
||||
BCS L8AF5
|
||||
LDX $81
|
||||
JMP L8AF6
|
||||
|
@ -5878,12 +6022,12 @@ L8AF5 RTS
|
|||
|
||||
L8AF6 LDA $72
|
||||
BNE L8B02
|
||||
LDA [ptrHGR1],Y
|
||||
LDA [ptrHGR1],Y ; hide
|
||||
AND L8B0C,X
|
||||
STA [ptrHGR1],Y
|
||||
RTS
|
||||
|
||||
L8B02 LDA [ptrHGR2],Y
|
||||
L8B02 LDA [ptrHGR2],Y ; show
|
||||
AND L8B13,X
|
||||
ORA [ptrHGR1],Y
|
||||
STA [ptrHGR1],Y
|
||||
|
@ -5899,7 +6043,7 @@ L8B13 HEX 8F8F8F8FF0F0F0
|
|||
animGAMEOVER
|
||||
LDA #$01
|
||||
STA L8D4B
|
||||
LDA #>HGR1
|
||||
LDA #>oldHGR1
|
||||
STA hgrPAGE
|
||||
|
||||
L8B23 JSR L8BCF
|
||||
|
|
|
@ -288,31 +288,20 @@ logo HEX 128518851C9423A80011A09518851C94
|
|||
HEX 8F80F08100
|
||||
|
||||
*--- Line numbers
|
||||
|
||||
xhgr HEX 00000000000000008080808080808080
|
||||
HEX 00000000000000008080808080808080
|
||||
HEX 00000000000000008080808080808080
|
||||
HEX 00000000000000008080808080808080
|
||||
HEX 2828282828282828A8A8A8A8A8A8A8A8
|
||||
HEX 2828282828282828A8A8A8A8A8A8A8A8
|
||||
HEX 2828282828282828A8A8A8A8A8A8A8A8
|
||||
HEX 2828282828282828A8A8A8A8A8A8A8A8
|
||||
HEX 5050505050505050D0D0D0D0D0D0D0D0
|
||||
HEX 5050505050505050D0D0D0D0D0D0D0D0
|
||||
HEX 5050505050505050D0D0D0D0D0D0D0D0
|
||||
HEX 5050505050505050D0D0D0D0D0D0D0D0
|
||||
yhgr HEX 0004080C1014181C0004080C1014181C
|
||||
HEX 0105090D1115191D0105090D1115191D
|
||||
HEX 02060A0E12161A1E02060A0E12161A1E
|
||||
HEX 03070B0F13171B1F03070B0F13171B1F
|
||||
HEX 0004080C1014181C0004080C1014181C
|
||||
HEX 0105090D1115191D0105090D1115191D
|
||||
HEX 02060A0E12161A1E02060A0E12161A1E
|
||||
HEX 03070B0F13171B1F03070B0F13171B1F
|
||||
HEX 0004080C1014181C0004080C1014181C
|
||||
HEX 0105090D1115191D0105090D1115191D
|
||||
HEX 02060A0E12161A1E02060A0E12161A1E
|
||||
HEX 03070B0F13171B1F03070B0F13171B1F
|
||||
|
||||
xhgr
|
||||
]debut = $2000
|
||||
lup 200
|
||||
dfb <]debut
|
||||
]debut = ]debut+160
|
||||
--^
|
||||
|
||||
yhgr
|
||||
]debut = $2000
|
||||
lup 200
|
||||
dfb >]debut
|
||||
]debut = ]debut+160
|
||||
--^
|
||||
|
||||
*--- Level line numbers
|
||||
|
||||
|
@ -380,7 +369,7 @@ ytable DB $00 ; HGR line index
|
|||
DB $A5 ; 165
|
||||
DB $B5 ; 181 ; ligne de texte
|
||||
|
||||
*--- From a X in board to a Y column in HGR (0..39)
|
||||
*--- From a X in board to a Y column in HGR (0..39) - LOGO
|
||||
|
||||
bytable DB $00
|
||||
DB $01
|
||||
|
@ -411,7 +400,7 @@ bytable DB $00
|
|||
DB $25
|
||||
DB $26
|
||||
|
||||
*--- From a X in board to a sprite table (0..6)
|
||||
*--- From a X in board to a sprite table (0..6) - LOGO - Useless now
|
||||
|
||||
bitable DB $00 ; 0..4: sprite is 2-col wide
|
||||
DB $03 ; 5..6: sprite is 3-col wide
|
||||
|
@ -728,25 +717,6 @@ xbitable DB $00 ; 0..4: sprite is 2-col wide
|
|||
DB $03
|
||||
DB $05
|
||||
|
||||
*--- Boot 1 of data disks (T0/S0)
|
||||
*
|
||||
*boot HEX 012058FC2093FE2089FEA000B93408F0
|
||||
* HEX 0E20F0FDC98DD004A9098524C8D0EDA6
|
||||
* HEX 2B9D88C08A4A4A4A4A09C08D3308200C
|
||||
* HEX FD4C00C68D8D8D8D8D8D8DCCCFC4C5A0
|
||||
* HEX D2D5CECEC5D2A0C4C1D4C1A0C4C9D3CB
|
||||
* HEX BA8DADADADADADADADADADADADADADAD
|
||||
* HEX ADADADADADADADAD8D8DC4C9D3CBC5D4
|
||||
* HEX D4C5A0D7C9CCCCA0CECFD4A0C2CFCFD4
|
||||
* HEX 8D8DA0C9CED3C5D2D4A0CEC5D7A0C4C9
|
||||
* HEX D3CBA0C1CEC48DA0C8C9D4A0C1A0CBC5
|
||||
* HEX D9A0D4CFA0D2C5C2CFCFD48D8DA0A0A0
|
||||
* HEX A0A0A0A0A0A0A0000000000000000000
|
||||
* HEX 00000000000000000000000000000000
|
||||
* HEX 00000000000000000000000000000000
|
||||
* HEX 00000000000000000000000000000000
|
||||
* HEX 00000000000000000000000000000000
|
||||
|
||||
ds \
|
||||
|
||||
*--- $1F00 - Score buffer
|
||||
|
@ -755,39 +725,6 @@ scorebuf ds 256
|
|||
|
||||
*--- RŽfŽrence des scores
|
||||
|
||||
scoreREF hex CED5C71C00173125
|
||||
hex C3CDC71900210050
|
||||
hex CED5C71900206725
|
||||
hex C1CED41900184725
|
||||
hex D3D4C31800198825
|
||||
hex CED5C71400125000
|
||||
hex CED5C71000151300
|
||||
hex C1CED40800039775
|
||||
hex C3C3C30600054750
|
||||
hex CCC9D50600045175
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 00000000CCCFC4C5A0D2D5CECEC5D2
|
||||
hex 00 ; <= data disk
|
||||
|
||||
scoreEMPTY hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
hex 0000000000000000
|
||||
|
|
|
@ -33,6 +33,9 @@ nbLIVES = 5
|
|||
maxLEVEL = 150
|
||||
maxHEIGHT = 192 ; lines
|
||||
|
||||
hgrHEIGHT = 176
|
||||
hgrWIDTH = 160 ; 40
|
||||
|
||||
modeEDIT = 0 ; to decode level
|
||||
modeGAME = 1
|
||||
|
||||
|
@ -87,6 +90,7 @@ hgrPAGE = $1f
|
|||
|
||||
ptrHGR1 = $24 ; **new** long
|
||||
ptrHGR2 = $28 ; **new** long
|
||||
nbLINES2 = $2c
|
||||
|
||||
*CH = $24 ; **
|
||||
*CV = $25 ; **
|
||||
|
@ -193,7 +197,6 @@ PTRIG = $C070
|
|||
* PAGES GRAPHIQUES
|
||||
*-----------------------------------
|
||||
|
||||
HGR1 = $2000
|
||||
HGR2 = $4000
|
||||
HGR3 = $6000
|
||||
|
||||
oldHGR1 = $2000
|
||||
oldHGR2 = $4000
|
||||
oldHGR3 = $6000
|
||||
|
|
|
@ -10,8 +10,123 @@
|
|||
* 6 - orange
|
||||
* F - blanc
|
||||
|
||||
*--- Table of mask
|
||||
|
||||
tblMASK hex fff0f0f0f0f0f0f0f0f0f0f0f0f0f0f00f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
hex 0f0000000000000000000000000000000f000000000000000000000000000000
|
||||
|
||||
*--- Table of sprites
|
||||
|
||||
tblSPRITES
|
||||
da spr00
|
||||
da spr01
|
||||
da spr02
|
||||
da spr03
|
||||
da spr04
|
||||
da spr05
|
||||
da spr06
|
||||
da spr07
|
||||
da spr08
|
||||
da spr09
|
||||
da spr0A
|
||||
da spr0B
|
||||
da spr0C
|
||||
da spr0D
|
||||
da spr0E
|
||||
da spr0F
|
||||
da spr10
|
||||
da spr11
|
||||
da spr12
|
||||
da spr13
|
||||
da spr14
|
||||
da spr15
|
||||
da spr16
|
||||
da spr17
|
||||
da spr18
|
||||
da spr19
|
||||
da spr1A
|
||||
da spr1B
|
||||
da spr1C
|
||||
da spr1D
|
||||
da spr1E
|
||||
da spr1F
|
||||
da spr20
|
||||
da spr21
|
||||
da spr22
|
||||
da spr23
|
||||
da spr24
|
||||
da spr25
|
||||
da spr26
|
||||
da spr27
|
||||
da spr28
|
||||
da spr29
|
||||
da spr2A
|
||||
da spr2B
|
||||
da spr2C
|
||||
da spr2D
|
||||
da spr2E
|
||||
da spr2F
|
||||
da spr30
|
||||
da spr31
|
||||
da spr32
|
||||
da spr33
|
||||
da spr34
|
||||
da spr35
|
||||
da spr36
|
||||
da spr37
|
||||
da spr38
|
||||
da spr39
|
||||
da spr3A
|
||||
da spr3B
|
||||
da spr3C
|
||||
da spr3D
|
||||
da spr3E
|
||||
da spr3F
|
||||
da spr40
|
||||
da spr41
|
||||
da spr42
|
||||
da spr43
|
||||
da spr44
|
||||
da spr45
|
||||
da spr46
|
||||
da spr47
|
||||
da spr48
|
||||
da spr49
|
||||
da spr4A
|
||||
da spr4B
|
||||
da spr4C
|
||||
da spr4D
|
||||
da spr4E
|
||||
da spr4F
|
||||
da spr50
|
||||
da spr51
|
||||
da spr52
|
||||
da spr53
|
||||
da spr54
|
||||
da spr55
|
||||
da spr56
|
||||
da spr57
|
||||
da spr58
|
||||
da spr59
|
||||
da spr5A
|
||||
da spr5B
|
||||
da spr5C
|
||||
da spr5D
|
||||
da spr5E
|
||||
da spr5F
|
||||
da spr60
|
||||
da spr61
|
||||
da spr62
|
||||
da spr63
|
||||
da spr64
|
||||
da spr65
|
||||
|
||||
tblSPRITESlow
|
||||
db <spr00
|
||||
db <spr01
|
||||
|
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -39,7 +39,9 @@
|
|||
ext ptrIMAGE
|
||||
ext ptrTITLE
|
||||
ext ptrLEVELS
|
||||
|
||||
ext ptrSCORES
|
||||
ext HGR2
|
||||
|
||||
*-------------- Softswitches
|
||||
|
||||
RDVBLBAR = $e0c019
|
||||
|
@ -57,7 +59,6 @@ refIsResource = 2
|
|||
|
||||
ptr012000 = $012000
|
||||
ptrE12000 = $e12000
|
||||
ptrSCREENE1 = $e02000
|
||||
|
||||
*---
|
||||
|
||||
|
@ -185,15 +186,14 @@ noSOUND _HideMenuBar
|
|||
dex
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
|
||||
sep #$30 ; MAJ le banc des pages
|
||||
lda ptrSCREEN+2
|
||||
sta ptrDATA+2
|
||||
sta ptrHGR1+2
|
||||
sta ptrHGR2+2
|
||||
|
||||
brl theGAME
|
||||
|
||||
|
||||
mx %00 ; The 16-bit world
|
||||
|
||||
*-----------------------------------
|
||||
* AUTRES ROUTINES
|
||||
*-----------------------------------
|
||||
|
@ -217,8 +217,7 @@ doLOAD jsr saveBACK
|
|||
rts
|
||||
|
||||
doLOAD1 jsr copyPATH
|
||||
jsr loadLEVELS
|
||||
jmp loadSCORES
|
||||
jmp loadLEVELS
|
||||
|
||||
*----------------------------------- Save
|
||||
|
||||
|
@ -239,8 +238,7 @@ doSAVE jsr saveBACK
|
|||
rts
|
||||
|
||||
doSAVE1 jsr copyPATH
|
||||
jsr saveLEVELS
|
||||
jmp saveSCORES
|
||||
jmp saveLEVELS
|
||||
|
||||
*--- Recopie le filename du fichier de sauvegarde
|
||||
|
||||
|
@ -248,7 +246,6 @@ copyPATH sep #$20
|
|||
ldx #16-1
|
||||
]lp lda namePATH1,x
|
||||
sta pLEVELS+4,x
|
||||
sta pSCORES+4,x
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
|
@ -297,8 +294,17 @@ loadLEVELS9 ldx #0 ; clear all levels
|
|||
]lp stal ptrLEVELS,x
|
||||
inx
|
||||
inx
|
||||
cpx #38400
|
||||
cpx #38400+256
|
||||
bcc ]lp
|
||||
|
||||
ldx #256-2
|
||||
]lp lda scoreEMPTY,x
|
||||
sta scorebuf,x
|
||||
stal ptrSCORES,x
|
||||
dex
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
|
@ -339,81 +345,6 @@ saveLEVELS9 sep #$30
|
|||
|
||||
mx %00
|
||||
|
||||
*---------------------- Load SCORES
|
||||
|
||||
loadSCORES rep #$30
|
||||
|
||||
jsl GSOS
|
||||
dw $2010
|
||||
adrl proOPENSCORES
|
||||
bcs loadSCORES9
|
||||
|
||||
lda proOPENSCORES+2
|
||||
sta proREADSCORES+2
|
||||
sta proCLOSE+2
|
||||
|
||||
jsl GSOS
|
||||
dw $2012
|
||||
adrl proREADSCORES
|
||||
php
|
||||
|
||||
jsl GSOS
|
||||
dw $2014
|
||||
adrl proCLOSE
|
||||
|
||||
plp
|
||||
bcs loadSCORES9
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
loadSCORES9 ldx #256-2
|
||||
]lp lda scoreEMPTY,x
|
||||
sta scorebuf,x
|
||||
dex
|
||||
dex
|
||||
bpl ]lp
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*---------------------- Save SCORES
|
||||
|
||||
saveSCORES rep #$30
|
||||
|
||||
jsl GSOS
|
||||
dw $2002
|
||||
adrl proDESTROYSCORES
|
||||
|
||||
jsl GSOS
|
||||
dw $2001
|
||||
adrl proCREATESCORES
|
||||
bcs saveSCORES9
|
||||
|
||||
jsl GSOS
|
||||
dw $2010
|
||||
adrl proOPENSCORES
|
||||
bcs saveSCORES9
|
||||
|
||||
lda proOPENSCORES+2
|
||||
sta proWRITESCORES+2
|
||||
sta proCLOSE+2
|
||||
|
||||
jsl GSOS
|
||||
dw $2013
|
||||
adrl proWRITESCORES
|
||||
|
||||
jsl GSOS
|
||||
dw $2014
|
||||
adrl proCLOSE
|
||||
|
||||
saveSCORES9 sep #$30
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*----------------------------------- Quit
|
||||
|
||||
meQUIT PushWord #refIsHandle
|
||||
|
@ -643,49 +574,13 @@ proOPEN dw 2
|
|||
proREAD dw 4 ; 0 - nb parms
|
||||
ds 2 ; 2 - file id
|
||||
adrl ptrLEVELS ; 4 - pointer
|
||||
adrl 38400 ; 8 - length
|
||||
adrl 38400+256 ; 8 - length
|
||||
ds 4 ; C - length read
|
||||
|
||||
proWRITE dw 5 ; 0 - pcount
|
||||
ds 2 ; 2 - ref_num
|
||||
adrl ptrLEVELS ; 4 - data_buffer
|
||||
adrl 38400 ; 8 - request_count
|
||||
ds 4 ; C - transfer_count
|
||||
dw 1 ; cache_priority
|
||||
|
||||
*--- SCORES
|
||||
|
||||
proCREATESCORES
|
||||
dw 7 ; pcount
|
||||
adrl pSCORES ; pathname
|
||||
dw $c3 ; access_code
|
||||
dw $5d ; file_type
|
||||
adrl $8023 ; aux_type
|
||||
ds 2 ; storage_type
|
||||
adrl 256 ; eof
|
||||
ds 4 ; resource_eof
|
||||
|
||||
proDESTROYSCORES
|
||||
dw 1 ; pcount
|
||||
adrl pLEVELS ; pathname
|
||||
|
||||
proOPENSCORES
|
||||
dw 2
|
||||
ds 2
|
||||
adrl pSCORES
|
||||
|
||||
proREADSCORES
|
||||
dw 4 ; 0 - nb parms
|
||||
ds 2 ; 2 - file id
|
||||
adrl scorebuf ; 4 - pointer
|
||||
adrl 256 ; 8 - length
|
||||
ds 4 ; C - length read
|
||||
|
||||
proWRITESCORES
|
||||
dw 5 ; 0 - pcount
|
||||
ds 2 ; 2 - ref_num
|
||||
adrl scorebuf ; 4 - data_buffer
|
||||
adrl 256 ; 8 - request_count
|
||||
adrl 38400+256 ; 8 - request_count
|
||||
ds 4 ; C - transfer_count
|
||||
dw 1 ; cache_priority
|
||||
|
||||
|
@ -704,7 +599,6 @@ proVERS dw 1 ; pcount
|
|||
*---------- Files
|
||||
|
||||
pLEVELS strl '1/levels/loderunner'
|
||||
pSCORES strl '1/levels/loderunner.sc'
|
||||
|
||||
*----------------------- Standard File Toolset
|
||||
|
||||
|
@ -731,7 +625,6 @@ loadPATH1
|
|||
*----------------------------------------
|
||||
|
||||
put LR.Code.s
|
||||
* put LR.RWTS.s
|
||||
put LR.Data.s
|
||||
put LR.Tables.s
|
||||
put LR.Sprites.s
|
||||
|
|
|
@ -13,14 +13,18 @@
|
|||
|
||||
ASM LR.BANK1.S
|
||||
KND $0000
|
||||
SNA Brutal
|
||||
SNA Broderbund
|
||||
|
||||
ASM LR.BANK2.S
|
||||
KND $0000
|
||||
SNA Deluxe
|
||||
SNA Brutal
|
||||
|
||||
ASM LR.BANK3.S
|
||||
KND $0000
|
||||
SNA Deluxe
|
||||
|
||||
ASM LR.BANK4.S
|
||||
KND $0000
|
||||
SNA Software
|
||||
|
||||
* END
|
||||
|
|
Loading…
Reference in New Issue