mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-01 15:30:02 +00:00
v+1
This commit is contained in:
parent
9170c2cbdd
commit
856c51e721
BIN
loderunner/data/LEVELS
Normal file
BIN
loderunner/data/LEVELS
Normal file
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
|
||||
|
||||
|
16
loderunner/source/LR.BANK4.S
Normal file
16
loderunner/source/LR.BANK4.S
Normal file
@ -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
16401
loderunner/source/LodeRunner_S05__Output.txt
Normal file
16401
loderunner/source/LodeRunner_S05__Output.txt
Normal file
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
Block a user