mirror of
https://github.com/antoinevignau/source.git
synced 2024-06-02 06:41:32 +00:00
v+1
This commit is contained in:
parent
3edc17e527
commit
9170c2cbdd
Binary file not shown.
16
loderunner/source/LR.BANK1.s
Normal file
16
loderunner/source/LR.BANK1.s
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
*
|
||||||
|
* Lode Runner
|
||||||
|
* (c) 1983, Broderbund Software
|
||||||
|
* (s) 2014, Brutal Deluxe Software
|
||||||
|
*
|
||||||
|
|
||||||
|
*-----------------------------------
|
||||||
|
*
|
||||||
|
*-----------------------------------
|
||||||
|
|
||||||
|
ptrUNPACK ent
|
||||||
|
ds 32768
|
||||||
|
|
||||||
|
ptrBACKGND ent
|
||||||
|
ds 32768
|
||||||
|
|
16
loderunner/source/LR.BANK2.s
Normal file
16
loderunner/source/LR.BANK2.s
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
*
|
||||||
|
* Lode Runner
|
||||||
|
* (c) 1983, Broderbund Software
|
||||||
|
* (s) 2014, Brutal Deluxe Software
|
||||||
|
*
|
||||||
|
|
||||||
|
*-----------------------------------
|
||||||
|
*
|
||||||
|
*-----------------------------------
|
||||||
|
|
||||||
|
ptrIMAGE ent
|
||||||
|
ds 32768
|
||||||
|
|
||||||
|
ptrTITLE ent
|
||||||
|
ds 32768
|
||||||
|
|
12
loderunner/source/LR.BANK3.S
Normal file
12
loderunner/source/LR.BANK3.S
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
*
|
||||||
|
* Lode Runner
|
||||||
|
* (c) 1983, Broderbund Software
|
||||||
|
* (s) 2014, Brutal Deluxe Software
|
||||||
|
*
|
||||||
|
|
||||||
|
*-----------------------------------
|
||||||
|
*
|
||||||
|
*-----------------------------------
|
||||||
|
|
||||||
|
ptrLEVELS ent
|
||||||
|
ds 65536
|
|
@ -400,36 +400,59 @@ L62F7 INC fgODDEVEN
|
||||||
* LOAD/SAVE LEVEL FROM/TO DISK
|
* LOAD/SAVE LEVEL FROM/TO DISK
|
||||||
*-----------------------------------
|
*-----------------------------------
|
||||||
|
|
||||||
diskLEVEL STA LB7F4
|
diskLEVEL tax
|
||||||
|
|
||||||
LDA fgDEMO ; are we in demo mode?
|
LDA fgDEMO ; are we in demo mode?
|
||||||
LSR
|
LSR
|
||||||
BEQ diskDEMO ; yes
|
BEQ diskDEMO ; yes
|
||||||
|
|
||||||
LDA intLEVEL ; no, use internal level
|
cpx #1
|
||||||
LSR
|
beq dlLOAD
|
||||||
LSR
|
cpx #2
|
||||||
LSR
|
bne dlERR
|
||||||
LSR
|
|
||||||
CLC
|
|
||||||
ADC #$03
|
|
||||||
STA LB7EC ; track
|
|
||||||
LDA intLEVEL
|
|
||||||
AND #$0F
|
|
||||||
STA LB7ED ; sector
|
|
||||||
|
|
||||||
LDA #<levelDISK ; buffer
|
jmp saveLEVELS ; save all levels
|
||||||
STA LB7F0
|
|
||||||
LDA #>levelDISK
|
|
||||||
STA LB7F0+1
|
|
||||||
LDA #$00
|
|
||||||
STA LB7EB
|
|
||||||
|
|
||||||
diskRWTS LDY #<LB7E8
|
dlLOAD rep #$30 ; load a level
|
||||||
LDA #>LB7E8
|
pea ^ptrLEVELS
|
||||||
jsr callRWTS ; LoGo - JSR $0023 - Souvenir from protection
|
lda intLEVEL
|
||||||
BCC L6344
|
and #$ff
|
||||||
JMP showTITLEPAGE
|
xba
|
||||||
L6344 RTS
|
pha
|
||||||
|
PushLong #levelDISK
|
||||||
|
PushLong #256
|
||||||
|
_BlockMove
|
||||||
|
sep #$30
|
||||||
|
rts
|
||||||
|
|
||||||
|
dlERR jmp showTITLEPAGE
|
||||||
|
|
||||||
|
* STA LB7F4
|
||||||
|
* LDA intLEVEL ; no, use internal level
|
||||||
|
* LSR
|
||||||
|
* LSR
|
||||||
|
* LSR
|
||||||
|
* LSR
|
||||||
|
* CLC
|
||||||
|
* ADC #$03
|
||||||
|
* STA LB7EC ; track
|
||||||
|
* LDA intLEVEL
|
||||||
|
* AND #$0F
|
||||||
|
* STA LB7ED ; sector
|
||||||
|
*
|
||||||
|
* LDA #<levelDISK ; buffer
|
||||||
|
* STA LB7F0
|
||||||
|
* LDA #>levelDISK
|
||||||
|
* STA LB7F0+1
|
||||||
|
* LDA #$00
|
||||||
|
* STA LB7EB
|
||||||
|
*
|
||||||
|
*diskRWTS LDY #<LB7E8
|
||||||
|
* LDA #>LB7E8
|
||||||
|
* jsr callRWTS ; LoGo - JSR $0023 - Souvenir from protection
|
||||||
|
* BCC L6344
|
||||||
|
* JMP showTITLEPAGE
|
||||||
|
*L6344 RTS
|
||||||
|
|
||||||
diskDEMO LDA theLEVEL ; demo mode uses levels in RAM
|
diskDEMO LDA theLEVEL ; demo mode uses levels in RAM
|
||||||
CLC
|
CLC
|
||||||
|
@ -444,33 +467,38 @@ L6350 LDA (ptrHGR1),Y
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
*-------------------------------
|
*-------------------------------
|
||||||
* CALL RWTS
|
* READ/WRITE SCORE FILE
|
||||||
*-------------------------------
|
*-------------------------------
|
||||||
|
|
||||||
readSCORE STA LB7F4 ; command
|
readSCORE cmp #1 ; load scores file from disk
|
||||||
LDA #$0C
|
beq rsLOAD
|
||||||
STA LB7EC ; track
|
cmp #2 ; save scores file to disk
|
||||||
LDA #$0F
|
bne rsERR
|
||||||
STA LB7ED ; sector
|
|
||||||
|
|
||||||
ldx #0 ; **logo**
|
|
||||||
]lp lda scoreREF,x
|
|
||||||
sta scorebuf,x
|
|
||||||
inx
|
|
||||||
bne ]lp
|
|
||||||
beq L6381
|
|
||||||
|
|
||||||
LDA #<scorebuf ; where to load
|
jsr saveSCORES
|
||||||
STA LB7F0
|
bra L6381
|
||||||
LDA #>scorebuf
|
|
||||||
STA LB7F0+1
|
rsLOAD jsr loadSCORES
|
||||||
LDA #$00
|
bra L6381
|
||||||
STA LB7EB
|
|
||||||
LDY #<LB7E8 ; IOB table
|
* STA LB7F4 ; command
|
||||||
LDA #>LB7E8
|
* LDA #$0C
|
||||||
JSR callRWTS
|
* STA LB7EC ; track
|
||||||
BCC L6381
|
* LDA #$0F
|
||||||
JMP showTITLEPAGE
|
* STA LB7ED ; sector
|
||||||
|
*
|
||||||
|
* LDA #<scorebuf ; where to load
|
||||||
|
* STA LB7F0
|
||||||
|
* LDA #>scorebuf
|
||||||
|
* STA LB7F0+1
|
||||||
|
* LDA #$00
|
||||||
|
* STA LB7EB
|
||||||
|
* LDY #<LB7E8 ; IOB table
|
||||||
|
* LDA #>LB7E8
|
||||||
|
* JSR callRWTS
|
||||||
|
* BCC L6381
|
||||||
|
|
||||||
|
rsERR JMP showTITLEPAGE
|
||||||
|
|
||||||
*--- Check disk (not a LR disk, data disk, master disk)
|
*--- Check disk (not a LR disk, data disk, master disk)
|
||||||
|
|
||||||
|
@ -485,18 +513,20 @@ L6387 LDA scorebuf+$F4,Y ; magic key
|
||||||
BPL L6387
|
BPL L6387
|
||||||
LDA theMASK1
|
LDA theMASK1
|
||||||
BEQ L639B
|
BEQ L639B
|
||||||
LDA #$00 ; 0 means not a LR disk
|
LDA #$00 ; 00 means not a LR disk
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
L639B LDA #$01 ; master disk
|
L639B LDA #$01 ; 01 master disk
|
||||||
LDX scorebuf+$FF
|
LDX scorebuf+$FF
|
||||||
BNE L63A4
|
BNE L63A4
|
||||||
LDA #$FF ; FF means master disk
|
LDA #$FF ; FF means data disk
|
||||||
L63A4 RTS
|
L63A4 RTS
|
||||||
|
|
||||||
callRWTS clc
|
*-----------------------------------
|
||||||
rts
|
|
||||||
JMP $bd00 ; LoGo - ($0036) to be replaced with JMP $BD00
|
*callRWTS JMP $bd00 ; LoGo - ($0036) to be replaced with JMP $BD00
|
||||||
|
|
||||||
|
LB7F4 ds 1 ; The RWTS command
|
||||||
|
|
||||||
L63A8 ASC "LODE RUNNER"
|
L63A8 ASC "LODE RUNNER"
|
||||||
|
|
||||||
|
@ -3990,9 +4020,7 @@ L7CD5 JMP editNEXT
|
||||||
* M - MOVE LEVEL
|
* M - MOVE LEVEL
|
||||||
*-------------------------------
|
*-------------------------------
|
||||||
|
|
||||||
editMOVE jmp editLOOP ; **logo**
|
editMOVE JSR printSTRING
|
||||||
|
|
||||||
JSR printSTRING
|
|
||||||
ASC 8D
|
ASC 8D
|
||||||
ASC ">>MOVE LEVEL"00
|
ASC ">>MOVE LEVEL"00
|
||||||
JSR inputLEVEL
|
JSR inputLEVEL
|
||||||
|
@ -4003,108 +4031,137 @@ editMOVE jmp editLOOP ; **logo**
|
||||||
JSR inputLEVEL
|
JSR inputLEVEL
|
||||||
BCS L7D5A
|
BCS L7D5A
|
||||||
STY L8250
|
STY L8250
|
||||||
JSR printSTRING
|
|
||||||
ASC 8D
|
* JSR printSTRING
|
||||||
ASC " SOURCE DISKETTE"00
|
* ASC 8D
|
||||||
JSR editWAITKEY
|
* ASC " SOURCE DISKETTE"00
|
||||||
JSR checkDISK
|
* JSR editWAITKEY
|
||||||
LDA L824F
|
* JSR checkDISK
|
||||||
STA intLEVEL
|
* LDA L824F
|
||||||
LDA #$01 ; read
|
* STA intLEVEL
|
||||||
JSR diskLEVEL
|
* LDA #$01 ; read
|
||||||
JSR printSTRING
|
* JSR diskLEVEL
|
||||||
ASC 8D
|
* JSR printSTRING
|
||||||
ASC " DESTINATION DISKETTE"00
|
* ASC 8D
|
||||||
JSR editWAITKEY
|
* ASC " DESTINATION DISKETTE"00
|
||||||
JSR checkDISK
|
* JSR editWAITKEY
|
||||||
LDA L8250
|
* JSR checkDISK
|
||||||
STA intLEVEL
|
* LDA L8250
|
||||||
LDA #$02 ; write
|
* STA intLEVEL
|
||||||
JSR diskLEVEL
|
* LDA #$02 ; write
|
||||||
|
* JSR diskLEVEL
|
||||||
|
|
||||||
|
jsr iigsMOVELEVEL
|
||||||
|
|
||||||
JMP editLOOP
|
JMP editLOOP
|
||||||
L7D5A JMP editNEXT
|
L7D5A JMP editNEXT
|
||||||
|
|
||||||
*-------------------------------
|
*-------------------------------
|
||||||
* I - INITIALIZE DISKETTE
|
|
||||||
|
mx %00
|
||||||
|
|
||||||
|
iigsMOVELEVEL
|
||||||
|
rep #$30
|
||||||
|
|
||||||
|
pea ^ptrLEVELS ; set source level
|
||||||
|
lda L824F
|
||||||
|
and #$ff
|
||||||
|
xba
|
||||||
|
pha
|
||||||
|
|
||||||
|
pea ^ptrLEVELS ; set destination level
|
||||||
|
lda L8250
|
||||||
|
and #$ff
|
||||||
|
xba
|
||||||
|
pha
|
||||||
|
|
||||||
|
PushLong #256 ; set length
|
||||||
|
_BlockMove
|
||||||
|
|
||||||
|
jmp saveLEVELS ; save levels and return 8-bit
|
||||||
|
|
||||||
|
mx %11
|
||||||
|
|
||||||
|
*-------------------------------
|
||||||
|
* I - INITIALIZE DISKETTE => CLEAR LEVELS
|
||||||
*-------------------------------
|
*-------------------------------
|
||||||
|
|
||||||
editINIT jmp editLOOP ; **logo**
|
editINIT jmp editLOOP
|
||||||
|
* JSR printSTRING
|
||||||
JSR printSTRING
|
* ASC 8D
|
||||||
ASC 8D
|
* ASC ">>INITIALIZE"8D
|
||||||
ASC ">>INITIALIZE"8D
|
* ASC " THIS FORMATS THE DISKETTE"8D
|
||||||
ASC " THIS FORMATS THE DISKETTE"8D
|
* ASC " FOR USER CREATED LEVELS."8D
|
||||||
ASC " FOR USER CREATED LEVELS."8D
|
* ASC " (CAUTION. IT ERASES THE"8D
|
||||||
ASC " (CAUTION. IT ERASES THE"8D
|
* ASC " ENTIRE DISKETTE FIRST)"8D8D
|
||||||
ASC " ENTIRE DISKETTE FIRST)"8D8D
|
* ASC " ARE YOU SURE (Y/N) "00
|
||||||
ASC " ARE YOU SURE (Y/N) "00
|
* JSR editWAITKEY
|
||||||
JSR editWAITKEY
|
* CMP #chrY
|
||||||
CMP #chrY
|
* BNE L7E72
|
||||||
BNE L7E72
|
* NOP ; NOP
|
||||||
NOP ; NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* NOP
|
||||||
NOP
|
* LDA intLEVEL
|
||||||
LDA intLEVEL
|
* PHA
|
||||||
PHA
|
* LDA #$04 ; Init command
|
||||||
LDA #$04 ; Init command
|
* JSR diskLEVEL
|
||||||
JSR diskLEVEL
|
*
|
||||||
|
* LDA #<boot ; Save T0/S0
|
||||||
LDA #<boot ; Save T0/S0
|
* STA LB7F0
|
||||||
STA LB7F0
|
* LDA #>boot
|
||||||
LDA #>boot
|
* STA LB7F0+1
|
||||||
STA LB7F0+1
|
* LDA #$00
|
||||||
LDA #$00
|
* STA LB7ED
|
||||||
STA LB7ED
|
* STA LB7EC
|
||||||
STA LB7EC
|
* LDA #$02
|
||||||
LDA #$02
|
* STA LB7F4
|
||||||
STA LB7F4
|
* JSR diskRWTS
|
||||||
JSR diskRWTS
|
* LDA #$E0
|
||||||
LDA #$E0
|
* STA intLEVEL
|
||||||
STA intLEVEL
|
* LDA #$01
|
||||||
LDA #$01
|
* JSR diskLEVEL
|
||||||
JSR diskLEVEL
|
* LDY #$37
|
||||||
LDY #$37
|
*L7E33 LDA L8251,Y
|
||||||
L7E33 LDA L8251,Y
|
* STA levelDISK,Y
|
||||||
STA levelDISK,Y
|
* DEY
|
||||||
DEY
|
* BPL L7E33
|
||||||
BPL L7E33
|
* LDA #$02
|
||||||
LDA #$02
|
* JSR diskLEVEL
|
||||||
JSR diskLEVEL
|
* LDA #$EF
|
||||||
LDA #$EF
|
* STA intLEVEL
|
||||||
STA intLEVEL
|
* LDA #$01
|
||||||
LDA #$01
|
* JSR diskLEVEL
|
||||||
JSR diskLEVEL
|
* LDY #$20
|
||||||
LDY #$20
|
*L7E4C LDA L8289,Y
|
||||||
L7E4C LDA L8289,Y
|
* STA levelDISK+$B,Y
|
||||||
STA levelDISK+$B,Y
|
* DEY
|
||||||
DEY
|
* BPL L7E4C
|
||||||
BPL L7E4C
|
* LDA #$02
|
||||||
LDA #$02
|
* JSR diskLEVEL
|
||||||
JSR diskLEVEL
|
* LDA #$01
|
||||||
LDA #$01
|
* JSR readSCORE
|
||||||
JSR readSCORE
|
* LDY #$0A
|
||||||
LDY #$0A
|
*L7E61 LDA L63A8,Y
|
||||||
L7E61 LDA L63A8,Y
|
* STA scorebuf+$F4,Y
|
||||||
STA scorebuf+$F4,Y
|
* DEY
|
||||||
DEY
|
* BPL L7E61
|
||||||
BPL L7E61
|
* LDA #$02
|
||||||
LDA #$02
|
* JSR readSCORE
|
||||||
JSR readSCORE
|
* PLA
|
||||||
PLA
|
* STA intLEVEL
|
||||||
STA intLEVEL
|
*L7E72 JMP editLOOP
|
||||||
L7E72 JMP editLOOP
|
|
||||||
|
|
||||||
*-------------------------------
|
*-------------------------------
|
||||||
* C - CLEAR SCORE FILE
|
* C - CLEAR SCORE FILE
|
||||||
|
@ -4551,8 +4608,8 @@ L824C RTS
|
||||||
L824D RTS
|
L824D RTS
|
||||||
|
|
||||||
L824E DB $85
|
L824E DB $85
|
||||||
L824F DB $0F
|
L824F DB $0F ; level from
|
||||||
L8250 DB $60
|
L8250 DB $60 ; level to
|
||||||
|
|
||||||
L8251 HEX 02110F040000FE000000000000000000
|
L8251 HEX 02110F040000FE000000000000000000
|
||||||
HEX 00000000000000000000000000000000
|
HEX 00000000000000000000000000000000
|
||||||
|
@ -5438,16 +5495,16 @@ getXY LDA ytable,Y ; in: board X/Y
|
||||||
TAY
|
TAY
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
getBYBI LDA bytable,X
|
getBYBI LDA bytable,X ; in: board X
|
||||||
PHA
|
PHA ; out: A: HGR column (0..39)
|
||||||
LDA bitable,X
|
LDA bitable,X ; X: sprite table (0..6)
|
||||||
TAX
|
TAX
|
||||||
PLA
|
PLA
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
getXBYBI LDA xbytable,X
|
getXBYBI LDA xbytable,X ; in: X: HGR x-coord
|
||||||
PHA
|
PHA ; out: A: HGR column (0..39)
|
||||||
LDA xbitable,X
|
LDA xbitable,X ; X: sprite table (0..6)
|
||||||
TAX
|
TAX
|
||||||
PLA
|
PLA
|
||||||
RTS
|
RTS
|
||||||
|
|
|
@ -729,23 +729,24 @@ xbitable DB $00 ; 0..4: sprite is 2-col wide
|
||||||
DB $05
|
DB $05
|
||||||
|
|
||||||
*--- Boot 1 of data disks (T0/S0)
|
*--- 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
|
||||||
|
|
||||||
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 \
|
ds \
|
||||||
|
|
||||||
*--- $1F00 - Score buffer
|
*--- $1F00 - Score buffer
|
||||||
|
@ -785,4 +786,37 @@ scoreREF hex CED5C71C00173125
|
||||||
hex 0000000000000000
|
hex 0000000000000000
|
||||||
hex 0000000000000000
|
hex 0000000000000000
|
||||||
hex 00000000CCCFC4C5A0D2D5CECEC5D2
|
hex 00000000CCCFC4C5A0D2D5CECEC5D2
|
||||||
hex FF ; <= the tag
|
hex 00 ; <= data disk
|
||||||
|
|
||||||
|
scoreEMPTY 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 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
|
|
@ -149,6 +149,9 @@ fgKEYBTN0 = $ac ; 1: no key/btn0 pressed, 0: key/btn0 pressed
|
||||||
fgCHANGE = $ad ; 1: no change, 0: change
|
fgCHANGE = $ad ; 1: no change, 0: change
|
||||||
sprDATA = $df ; $df..$ff
|
sprDATA = $df ; $df..$ff
|
||||||
|
|
||||||
|
Debut = $e0 ; the good old DP variables
|
||||||
|
Arrivee = Debut+4
|
||||||
|
|
||||||
chrLA = $88
|
chrLA = $88
|
||||||
chrRET = $8d
|
chrRET = $8d
|
||||||
chrRA = $95
|
chrRA = $95
|
||||||
|
|
Binary file not shown.
BIN
loderunner/source/LodeRunner_ResourceFork.bin
Normal file
BIN
loderunner/source/LodeRunner_ResourceFork.bin
Normal file
Binary file not shown.
15415
loderunner/source/LodeRunner_S01__Output.txt
Normal file
15415
loderunner/source/LodeRunner_S01__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
16402
loderunner/source/LodeRunner_S02__Output.txt
Normal file
16402
loderunner/source/LodeRunner_S02__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
16402
loderunner/source/LodeRunner_S03__Output.txt
Normal file
16402
loderunner/source/LodeRunner_S03__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
16399
loderunner/source/LodeRunner_S04__Output.txt
Normal file
16399
loderunner/source/LodeRunner_S04__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -1,2 +1 @@
|
||||||
LR.CODE=Type(00),AuxType(0000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
|
|
||||||
LodeRunner=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
|
LodeRunner=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
*
|
*
|
||||||
* La Belle Zohra
|
* Lode Runner
|
||||||
*
|
* (c) 1983, Broderbund Software
|
||||||
* (c) 1992, François Coulon
|
* (s) 2014, Brutal Deluxe Software
|
||||||
* (c) 2023, Antoine Vignau & Olivier Zardini
|
|
||||||
*
|
*
|
||||||
|
|
||||||
mx %00
|
mx %00
|
||||||
|
@ -35,8 +34,15 @@
|
||||||
|
|
||||||
*----------------------------------- Constantes
|
*----------------------------------- Constantes
|
||||||
|
|
||||||
|
ext ptrUNPACK
|
||||||
|
ext ptrBACKGND
|
||||||
|
ext ptrIMAGE
|
||||||
|
ext ptrTITLE
|
||||||
|
ext ptrLEVELS
|
||||||
|
|
||||||
*-------------- Softswitches
|
*-------------- Softswitches
|
||||||
|
|
||||||
|
RDVBLBAR = $e0c019
|
||||||
GSOS = $e100a8
|
GSOS = $e100a8
|
||||||
|
|
||||||
*-------------- GUI
|
*-------------- GUI
|
||||||
|
@ -49,13 +55,15 @@ refIsPointer = 0
|
||||||
refIsHandle = 1
|
refIsHandle = 1
|
||||||
refIsResource = 2
|
refIsResource = 2
|
||||||
|
|
||||||
appleKey = $0100
|
ptr012000 = $012000
|
||||||
mouseDownEvt = $0001
|
ptrE12000 = $e12000
|
||||||
mouseUpEvt = $0002
|
|
||||||
keyDownEvt = $0003
|
|
||||||
|
|
||||||
ptrSCREENE1 = $e02000
|
ptrSCREENE1 = $e02000
|
||||||
|
|
||||||
|
*---
|
||||||
|
|
||||||
|
TRUE = 255
|
||||||
|
FALSE = 0
|
||||||
|
|
||||||
*----------------------------------- Entry point
|
*----------------------------------- Entry point
|
||||||
|
|
||||||
phk
|
phk
|
||||||
|
@ -76,6 +84,95 @@ ptrSCREENE1 = $e02000
|
||||||
tdc
|
tdc
|
||||||
sta myDP
|
sta myDP
|
||||||
|
|
||||||
|
*--- Version du systeme
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $202a
|
||||||
|
adrl proVERS
|
||||||
|
|
||||||
|
lda proVERS+2
|
||||||
|
and #%01111111_11111111
|
||||||
|
cmp #$0402
|
||||||
|
bcs okVERS
|
||||||
|
|
||||||
|
pha
|
||||||
|
PushLong #verSTR1
|
||||||
|
PushLong #verSTR2
|
||||||
|
PushLong #errSTR1
|
||||||
|
PushLong #errSTR2
|
||||||
|
_TLTextMountVolume
|
||||||
|
pla
|
||||||
|
brl meQUIT1
|
||||||
|
|
||||||
|
*--- Compacte la mémoire
|
||||||
|
|
||||||
|
okVERS PushLong #0
|
||||||
|
PushLong #$8fffff
|
||||||
|
PushWord myID
|
||||||
|
PushWord #%11000000_00000000
|
||||||
|
PushLong #0
|
||||||
|
_NewHandle
|
||||||
|
_DisposeHandle
|
||||||
|
_CompactMem
|
||||||
|
|
||||||
|
*--- Chargement des outils
|
||||||
|
|
||||||
|
pha
|
||||||
|
pha
|
||||||
|
PushWord mainID
|
||||||
|
PushWord #refIsResource
|
||||||
|
PushLong #1
|
||||||
|
_StartUpTools
|
||||||
|
PullLong SStopREC
|
||||||
|
bcc okTOOL
|
||||||
|
|
||||||
|
pha
|
||||||
|
PushLong #tolSTR1
|
||||||
|
PushLong #errSTR2
|
||||||
|
PushLong #errSTR1
|
||||||
|
PushLong #errSTR2
|
||||||
|
_TLTextMountVolume
|
||||||
|
pla
|
||||||
|
brl meQUIT1
|
||||||
|
|
||||||
|
*--- Test default shadowing...
|
||||||
|
|
||||||
|
okTOOL PushWord #0
|
||||||
|
_GetMasterSCB
|
||||||
|
pla
|
||||||
|
bmi okSHADOW ; shadowing is on if bit 15 is set
|
||||||
|
|
||||||
|
lda #^ptrE12000 ; shadowing is off, use slow RAM
|
||||||
|
sta ptrSCREEN+2
|
||||||
|
|
||||||
|
*--- Et la musique...
|
||||||
|
|
||||||
|
okSHADOW pha
|
||||||
|
_SoundToolStatus
|
||||||
|
pla
|
||||||
|
bne noSOUND
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
sta fgSND
|
||||||
|
|
||||||
|
noSOUND _HideMenuBar
|
||||||
|
_InitCursor
|
||||||
|
_HideCursor
|
||||||
|
|
||||||
|
PushWord #0
|
||||||
|
PushWord #%11111111_11111111
|
||||||
|
PushWord #0
|
||||||
|
_FlushEvents
|
||||||
|
pla
|
||||||
|
|
||||||
|
PushLong #0
|
||||||
|
PushWord #5 ; SetDeskPat
|
||||||
|
PushWord #$4000
|
||||||
|
PushWord #$0000
|
||||||
|
_Desktop
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
|
||||||
*----------------------------------- Exit point
|
*----------------------------------- Exit point
|
||||||
|
|
||||||
lda #theGAME
|
lda #theGAME
|
||||||
|
@ -83,20 +180,247 @@ ptrSCREENE1 = $e02000
|
||||||
lda #^theGAME
|
lda #^theGAME
|
||||||
stal $302
|
stal $302
|
||||||
|
|
||||||
sep #$30
|
ldx #256-2 ; efface la page directe
|
||||||
|
]lp stz $00,x
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
bpl ]lp
|
||||||
|
|
||||||
lda #^ptrSCREENE1
|
sep #$30 ; MAJ le banc des pages
|
||||||
|
lda ptrSCREEN+2
|
||||||
sta ptrDATA+2
|
sta ptrDATA+2
|
||||||
sta ptrHGR1+2
|
sta ptrHGR1+2
|
||||||
sta ptrHGR2+2
|
sta ptrHGR2+2
|
||||||
|
|
||||||
brl theGAME
|
brl theGAME
|
||||||
|
|
||||||
*----------------------------------- Exit point
|
*-----------------------------------
|
||||||
|
* AUTRES ROUTINES
|
||||||
|
*-----------------------------------
|
||||||
|
|
||||||
rep #$30
|
*----------------------------------- Open LEVELS
|
||||||
|
|
||||||
|
doLOAD jsr saveBACK
|
||||||
|
|
||||||
|
PushWord #30
|
||||||
|
PushWord #43
|
||||||
|
PushLong #strLOADFILE
|
||||||
|
PushLong #0
|
||||||
|
PushLong #typeLIST
|
||||||
|
PushLong #replyPTR
|
||||||
|
_SFGetFile
|
||||||
|
|
||||||
|
jsr loadBACK
|
||||||
|
|
||||||
PushWord myID
|
lda replyPTR
|
||||||
|
bne doLOAD1
|
||||||
|
rts
|
||||||
|
|
||||||
|
doLOAD1 jsr copyPATH
|
||||||
|
jsr loadLEVELS
|
||||||
|
jmp loadSCORES
|
||||||
|
|
||||||
|
*----------------------------------- Save
|
||||||
|
|
||||||
|
doSAVE jsr saveBACK
|
||||||
|
|
||||||
|
PushWord #25
|
||||||
|
PushWord #36
|
||||||
|
PushLong #strSAVEFILE
|
||||||
|
PushLong #namePATH
|
||||||
|
PushWord #15
|
||||||
|
PushLong #replyPTR
|
||||||
|
_SFPutFile
|
||||||
|
|
||||||
|
jsr loadBACK
|
||||||
|
|
||||||
|
lda replyPTR
|
||||||
|
bne doSAVE1
|
||||||
|
rts
|
||||||
|
|
||||||
|
doSAVE1 jsr copyPATH
|
||||||
|
jsr saveLEVELS
|
||||||
|
jmp saveSCORES
|
||||||
|
|
||||||
|
*--- Recopie le filename du fichier de sauvegarde
|
||||||
|
|
||||||
|
copyPATH sep #$20
|
||||||
|
ldx #16-1
|
||||||
|
]lp lda namePATH1,x
|
||||||
|
sta pLEVELS+4,x
|
||||||
|
sta pSCORES+4,x
|
||||||
|
dex
|
||||||
|
bpl ]lp
|
||||||
|
|
||||||
|
lda namePATH
|
||||||
|
inc ; add 2 chars
|
||||||
|
inc ; for '1/'
|
||||||
|
sta pLEVELS
|
||||||
|
rep #$20
|
||||||
|
rts
|
||||||
|
|
||||||
|
*----------------------------------- Load/Save LEVELS/SCORES
|
||||||
|
|
||||||
|
mx %00
|
||||||
|
|
||||||
|
*---------------------- Load LEVELS
|
||||||
|
|
||||||
|
loadLEVELS rep #$30
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2010
|
||||||
|
adrl proOPEN
|
||||||
|
bcs loadLEVELS9
|
||||||
|
|
||||||
|
lda proOPEN+2
|
||||||
|
sta proREAD+2
|
||||||
|
sta proCLOSE+2
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2012
|
||||||
|
adrl proREAD
|
||||||
|
php
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2014
|
||||||
|
adrl proCLOSE
|
||||||
|
|
||||||
|
plp
|
||||||
|
bcs loadLEVELS9
|
||||||
|
sep #$30
|
||||||
|
rts
|
||||||
|
|
||||||
|
mx %00
|
||||||
|
|
||||||
|
loadLEVELS9 ldx #0 ; clear all levels
|
||||||
|
txa
|
||||||
|
]lp stal ptrLEVELS,x
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
cpx #38400
|
||||||
|
bcc ]lp
|
||||||
|
sep #$30
|
||||||
|
rts
|
||||||
|
|
||||||
|
mx %00
|
||||||
|
|
||||||
|
*---------------------- Save LEVELS
|
||||||
|
|
||||||
|
saveLEVELS rep #$30
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2002
|
||||||
|
adrl proDESTROY
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2001
|
||||||
|
adrl proCREATE
|
||||||
|
bcs saveLEVELS9
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2010
|
||||||
|
adrl proOPEN
|
||||||
|
bcs saveLEVELS9
|
||||||
|
|
||||||
|
lda proOPEN+2
|
||||||
|
sta proWRITE+2
|
||||||
|
sta proCLOSE+2
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2013
|
||||||
|
adrl proWRITE
|
||||||
|
|
||||||
|
jsl GSOS
|
||||||
|
dw $2014
|
||||||
|
adrl proCLOSE
|
||||||
|
|
||||||
|
saveLEVELS9 sep #$30
|
||||||
|
rts
|
||||||
|
|
||||||
|
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
|
||||||
|
PushLong SStopREC
|
||||||
|
_ShutDownTools
|
||||||
|
|
||||||
|
meQUIT1 PushWord myID
|
||||||
_DisposeAll
|
_DisposeAll
|
||||||
|
|
||||||
PushWord mainID
|
PushWord mainID
|
||||||
|
@ -111,43 +435,265 @@ ptrSCREENE1 = $e02000
|
||||||
dw $2029
|
dw $2029
|
||||||
adrl proQUIT
|
adrl proQUIT
|
||||||
|
|
||||||
|
brk $bd
|
||||||
|
|
||||||
*----------------------------------------
|
*----------------------------------------
|
||||||
* MEMOIRE
|
* GFX
|
||||||
*----------------------------------------
|
*----------------------------------------
|
||||||
|
|
||||||
make64KB pha
|
*----------------------------
|
||||||
pha
|
* unpackLZ4
|
||||||
PushLong #$010000
|
* Unpacks a LZ4 file
|
||||||
PushWord myID
|
* Uses the two pointers:
|
||||||
PushWord #%11000000_00011100
|
* - ptrUNPACK: packed img (MUST BE AT $0000)
|
||||||
PushLong #0
|
* - ptrIMAGE: temp unpack zone
|
||||||
_NewHandle
|
*
|
||||||
phd
|
* Entry:
|
||||||
tsc
|
* A: packed data size
|
||||||
tcd
|
*
|
||||||
lda [3]
|
* Exit:
|
||||||
tax ; low in X
|
* lenDATA: unpacked data size
|
||||||
ldy #2
|
*
|
||||||
lda [3],y
|
*----------------------------
|
||||||
txy ; low in Y
|
|
||||||
tax ; high in X
|
mx %00
|
||||||
pld
|
|
||||||
pla ; we do not keep track of the handle
|
unpackLZ4 sta LZ4_Limit+1
|
||||||
pla
|
sep #$20
|
||||||
|
|
||||||
|
lda ptrUNPACK+2 ; Source
|
||||||
|
sta LZ4_Literal_3+2
|
||||||
|
sta LZ4_ReadToken+3
|
||||||
|
sta LZ4_Match_1+3
|
||||||
|
sta LZ4_GetLength_1+3
|
||||||
|
|
||||||
|
lda ptrIMAGE+2 ; Destination
|
||||||
|
sta LZ4_Literal_3+1
|
||||||
|
sta LZ4_Match_5+1
|
||||||
|
sta LZ4_Match_5+2
|
||||||
|
|
||||||
|
rep #$20
|
||||||
|
|
||||||
|
*--
|
||||||
|
|
||||||
|
ldy #0 ; Init Target unpacked Data offset
|
||||||
|
ldx #16 ; Offset after header
|
||||||
|
|
||||||
|
LZ4_ReadToken
|
||||||
|
LDAL $AA0000,X ; Read Token Byte
|
||||||
|
INX
|
||||||
|
STA LZ4_Match_2+1
|
||||||
|
|
||||||
|
*----------------
|
||||||
|
|
||||||
|
LZ4_Literal
|
||||||
|
AND #$00F0 ; >>> Process Literal Bytes <<<
|
||||||
|
BEQ LZ4_Limit ; No Literal
|
||||||
|
CMP #$00F0
|
||||||
|
BNE LZ4_Literal_1
|
||||||
|
JSR LZ4_GetLengthLit ; Compute Literal Length with next bytes
|
||||||
|
BRA LZ4_Literal_2
|
||||||
|
LZ4_Literal_1
|
||||||
|
LSR ; Literal Length use the 4 bit
|
||||||
|
LSR
|
||||||
|
LSR
|
||||||
|
LSR
|
||||||
|
|
||||||
|
LZ4_Literal_2
|
||||||
|
DEC ; Copy A+1 Bytes
|
||||||
|
LZ4_Literal_3
|
||||||
|
MVN $AA,$BB ; Copy Literal Bytes from packed data buffer
|
||||||
|
PHK ; X and Y are auto incremented
|
||||||
|
PLB
|
||||||
|
|
||||||
|
*----------------
|
||||||
|
|
||||||
|
LZ4_Limit CPX #$AAAA ; End Of Packed Data buffer ?
|
||||||
|
BEQ LZ4_End
|
||||||
|
|
||||||
|
*----------------
|
||||||
|
|
||||||
|
LZ4_Match TYA ; >>> Process Match Bytes <<<
|
||||||
|
SEC
|
||||||
|
LZ4_Match_1 SBCL $AA0000,X ; Match Offset
|
||||||
|
INX
|
||||||
|
INX
|
||||||
|
STA LZ4_Match_4+1
|
||||||
|
|
||||||
|
LZ4_Match_2 LDA #$0000 ; Current Token Value
|
||||||
|
AND #$000F
|
||||||
|
CMP #$000F
|
||||||
|
BNE LZ4_Match_3
|
||||||
|
JSR LZ4_GetLengthMat ; Compute Match Length with next bytes
|
||||||
|
LZ4_Match_3 CLC
|
||||||
|
ADC #$0003 ; Minimum Match Length is 4 (-1 for the MVN)
|
||||||
|
PHX
|
||||||
|
LZ4_Match_4 LDX #$AAAA ; Match Byte Offset
|
||||||
|
LZ4_Match_5 MVN $BB,$BB ; Copy Match Bytes from unpacked data buffer
|
||||||
|
PHK ; X and Y are auto incremented
|
||||||
|
PLB
|
||||||
|
PLX
|
||||||
|
BRA LZ4_ReadToken
|
||||||
|
|
||||||
|
*----------------
|
||||||
|
|
||||||
|
LZ4_GetLengthLit
|
||||||
|
LDA #$000F ; Compute Variable Length (Literal or Match)
|
||||||
|
LZ4_GetLengthMat
|
||||||
|
STA LZ4_GetLength_2+1
|
||||||
|
LZ4_GetLength_1
|
||||||
|
LDAL $AA0000,X ; Read Length Byte
|
||||||
|
INX
|
||||||
|
AND #$00FF
|
||||||
|
CMP #$00FF
|
||||||
|
BNE LZ4_GetLength_3
|
||||||
|
CLC
|
||||||
|
LZ4_GetLength_2
|
||||||
|
ADC #$000F
|
||||||
|
STA LZ4_GetLength_2+1
|
||||||
|
BRA LZ4_GetLength_1
|
||||||
|
LZ4_GetLength_3
|
||||||
|
ADC LZ4_GetLength_2+1
|
||||||
|
RTS
|
||||||
|
|
||||||
|
*----------------
|
||||||
|
|
||||||
|
LZ4_End sty lenDATA ; Y = length of unpacked data
|
||||||
|
rts
|
||||||
|
|
||||||
|
*---
|
||||||
|
|
||||||
|
lenDATA ds 4
|
||||||
|
|
||||||
|
*-----------------------------------
|
||||||
|
* SAVE THE SHR SCREEN
|
||||||
|
*-----------------------------------
|
||||||
|
|
||||||
|
saveBACK _HideCursor
|
||||||
|
|
||||||
|
PushLong ptrSCREEN
|
||||||
|
PushLong #ptrBACKGND
|
||||||
|
PushLong #32768
|
||||||
|
_BlockMove
|
||||||
|
|
||||||
|
exitBACK _ShowCursor
|
||||||
|
rts
|
||||||
|
|
||||||
|
*-----------------------------------
|
||||||
|
* RESTORE THE SHR SCREEN
|
||||||
|
*-----------------------------------
|
||||||
|
|
||||||
|
loadBACK _HideCursor
|
||||||
|
|
||||||
|
PushLong #ptrBACKGND
|
||||||
|
PushLong ptrSCREEN
|
||||||
|
PushLong #32768
|
||||||
|
_BlockMove
|
||||||
|
|
||||||
|
_ShowCursor
|
||||||
rts
|
rts
|
||||||
|
|
||||||
*----------------------------------------
|
*----------------------------------------
|
||||||
* DATA
|
* DATA
|
||||||
*----------------------------------------
|
*----------------------------------------
|
||||||
|
|
||||||
|
fgSND ds 2
|
||||||
|
|
||||||
|
*----------------------- Tool locator
|
||||||
|
|
||||||
|
verSTR1 str 'System 6.0.1 Required!'
|
||||||
|
verSTR2 str 'Press a key to quit'
|
||||||
|
tolSTR1 str 'Error while loading tools'
|
||||||
|
memSTR1 str 'Cannot allocate memory'
|
||||||
|
filSTR1 str 'Cannot load file'
|
||||||
|
errSTR1 str 'Quit'
|
||||||
|
errSTR2 str ''
|
||||||
|
errSTR3 str 'Continue'
|
||||||
|
|
||||||
*----------------------- Memory manager
|
*----------------------- Memory manager
|
||||||
|
|
||||||
mainID ds 2 ; app ID
|
mainID ds 2 ; app ID
|
||||||
myID ds 2 ; user ID
|
myID ds 2 ; user ID
|
||||||
myDP ds 2
|
myDP ds 2
|
||||||
|
|
||||||
|
SStopREC ds 4
|
||||||
|
|
||||||
|
ptrSCREEN adrl ptr012000
|
||||||
|
|
||||||
*----------------------- GS/OS
|
*----------------------- GS/OS
|
||||||
|
|
||||||
|
*--- LEVELS
|
||||||
|
|
||||||
|
proCREATE dw 7 ; pcount
|
||||||
|
adrl pLEVELS ; pathname
|
||||||
|
dw $c3 ; access_code
|
||||||
|
dw $5d ; file_type
|
||||||
|
adrl $8022 ; aux_type
|
||||||
|
ds 2 ; storage_type
|
||||||
|
adrl 38400 ; eof
|
||||||
|
ds 4 ; resource_eof
|
||||||
|
|
||||||
|
proDESTROY dw 1 ; pcount
|
||||||
|
adrl pLEVELS ; pathname
|
||||||
|
|
||||||
|
proOPEN dw 2
|
||||||
|
ds 2
|
||||||
|
adrl pLEVELS
|
||||||
|
|
||||||
|
proREAD dw 4 ; 0 - nb parms
|
||||||
|
ds 2 ; 2 - file id
|
||||||
|
adrl ptrLEVELS ; 4 - pointer
|
||||||
|
adrl 38400 ; 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
|
||||||
|
ds 4 ; C - transfer_count
|
||||||
|
dw 1 ; cache_priority
|
||||||
|
|
||||||
|
*--- Global
|
||||||
|
|
||||||
|
proCLOSE dw 1
|
||||||
|
ds 2
|
||||||
|
|
||||||
proQUIT dw 2 ; pcount
|
proQUIT dw 2 ; pcount
|
||||||
ds 4 ; pathname
|
ds 4 ; pathname
|
||||||
ds 2 ; flags
|
ds 2 ; flags
|
||||||
|
@ -155,14 +701,37 @@ proQUIT dw 2 ; pcount
|
||||||
proVERS dw 1 ; pcount
|
proVERS dw 1 ; pcount
|
||||||
ds 2 ; version
|
ds 2 ; version
|
||||||
|
|
||||||
|
*---------- Files
|
||||||
|
|
||||||
|
pLEVELS strl '1/levels/loderunner'
|
||||||
|
pSCORES strl '1/levels/loderunner.sc'
|
||||||
|
|
||||||
|
*----------------------- Standard File Toolset
|
||||||
|
|
||||||
|
strLOADFILE str 'Load which file?'
|
||||||
|
strSAVEFILE str 'Save as...'
|
||||||
|
|
||||||
|
typeLIST hex 01
|
||||||
|
hex 5d ; Game/Edu files
|
||||||
|
replyPTR ds 2 ; 0 good
|
||||||
|
ds 2 ; 2 fileType
|
||||||
|
ds 2 ; 4 auxFileType
|
||||||
|
namePATH
|
||||||
|
hex 06 ; 6 fileName
|
||||||
|
namePATH1
|
||||||
|
asc 'Levels' ; 7 fileName (16 normally)
|
||||||
|
ds 9
|
||||||
|
loadPATH
|
||||||
|
ds 1 ; 22 fullPathname (string length)
|
||||||
|
loadPATH1
|
||||||
|
ds 129 ; 23 fullPathname (128 normally)
|
||||||
|
|
||||||
*----------------------------------------
|
*----------------------------------------
|
||||||
* LES AUTRES FICHIERS
|
* LES AUTRES FICHIERS
|
||||||
*----------------------------------------
|
*----------------------------------------
|
||||||
|
|
||||||
ds \
|
|
||||||
|
|
||||||
put LR.Code.s
|
put LR.Code.s
|
||||||
put LR.RWTS.s
|
* put LR.RWTS.s
|
||||||
put LR.Data.s
|
put LR.Data.s
|
||||||
put LR.Tables.s
|
put LR.Tables.s
|
||||||
put LR.Sprites.s
|
put LR.Sprites.s
|
||||||
|
@ -177,7 +746,7 @@ proVERS dw 1 ; pcount
|
||||||
asc " Antoine Vignau "0d
|
asc " Antoine Vignau "0d
|
||||||
asc "Olivier Zardini"0d
|
asc "Olivier Zardini"0d
|
||||||
asc " "0d
|
asc " "0d
|
||||||
asc " Noel 2023 "0d
|
asc " Paques 2024 "0d
|
||||||
asc " "0d
|
asc " "0d
|
||||||
asc "----------------"0d
|
asc "----------------"0d
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,16 @@
|
||||||
KND $0000
|
KND $0000
|
||||||
SNA DougESmith
|
SNA DougESmith
|
||||||
|
|
||||||
|
ASM LR.BANK1.S
|
||||||
|
KND $0000
|
||||||
|
SNA Brutal
|
||||||
|
|
||||||
|
ASM LR.BANK2.S
|
||||||
|
KND $0000
|
||||||
|
SNA Deluxe
|
||||||
|
|
||||||
|
ASM LR.BANK3.S
|
||||||
|
KND $0000
|
||||||
|
SNA Software
|
||||||
|
|
||||||
* END
|
* END
|
||||||
|
|
Loading…
Reference in New Issue
Block a user