mirror of
https://github.com/antoinevignau/source.git
synced 2025-02-28 00:29:45 +00:00
sound
This commit is contained in:
parent
a40b4dd1f3
commit
a599cbef53
BIN
loderunner/loderunnergs.2mg
Normal file
BIN
loderunner/loderunnergs.2mg
Normal file
Binary file not shown.
16
loderunner/source/LR.BANK3.S
Normal file
16
loderunner/source/LR.BANK3.S
Normal file
@ -0,0 +1,16 @@
|
||||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
*-----------------------------------
|
||||
* 150 LEVELS + SCORE
|
||||
*-----------------------------------
|
||||
|
||||
ptrLEVELS ent
|
||||
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
|
||||
*
|
||||
|
||||
*-----------------------------------
|
||||
* KEEP IT AT $64K
|
||||
*-----------------------------------
|
||||
|
||||
ds 8192 ; $0000
|
||||
|
||||
HGR2 ent
|
||||
ds 32768 ; $2000
|
||||
|
||||
ds 24576 ; $a000
|
27
loderunner/source/LR.BKSND1.S
Normal file
27
loderunner/source/LR.BKSND1.S
Normal file
@ -0,0 +1,27 @@
|
||||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
*-----------------------------------
|
||||
* SOUND BANK 1
|
||||
*-----------------------------------
|
||||
|
||||
sndBANK1 ent
|
||||
putbin snd/youwin.snd ; 0000 - 10
|
||||
ds $100 ; 4300
|
||||
putbin snd/escalier.snd ; 4400 - 4
|
||||
ds $100 ; 4700
|
||||
putbin snd/marche.snd ; 4800 - 5
|
||||
ds $100 ; 4f00
|
||||
putbin snd/creuse.snd ; 5000 - 3
|
||||
ds $600 ; 6200
|
||||
putbin snd/barre.snd ; 6800 - 2
|
||||
ds $300 ; 6d00
|
||||
putbin snd/trou.snd ; 7000 - 9
|
||||
ds $700 ; 7900
|
||||
putbin snd/nomorechest.snd ; 8000 - 6
|
||||
ds $800 ; a800
|
||||
putbin snd/tresor.snd ; b000 - 8
|
||||
putbin snd/tombe.snd ; c000 - 7
|
12
loderunner/source/LR.BKSND2.S
Normal file
12
loderunner/source/LR.BKSND2.S
Normal file
@ -0,0 +1,12 @@
|
||||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
*-----------------------------------
|
||||
* SOUND BANK 2
|
||||
*-----------------------------------
|
||||
|
||||
sndINTRO ent
|
||||
putbin snd/intro.snd
|
6401
loderunner/source/LR.CODE.S
Normal file
6401
loderunner/source/LR.CODE.S
Normal file
File diff suppressed because it is too large
Load Diff
201
loderunner/source/LR.DATA.S
Normal file
201
loderunner/source/LR.DATA.S
Normal file
@ -0,0 +1,201 @@
|
||||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
mx %11
|
||||
lst off
|
||||
|
||||
* Sprites : 102
|
||||
|
||||
* sprEMPTY = 0
|
||||
* sprWALL = 1
|
||||
* sprWALLI = 2 ; mur indestructible
|
||||
* sprLADDER = 3
|
||||
* sprBAR = 4
|
||||
* sprTRAP = 5
|
||||
* sprLADDERI = 6
|
||||
* sprCHEST = 7
|
||||
* sprFOE = 8
|
||||
* sprHERO = 9
|
||||
|
||||
* 3B: 0
|
||||
* 45: A
|
||||
* 5E: Z
|
||||
|
||||
*---------------------------------------
|
||||
* HGR 280 x 192
|
||||
* Board 28 x 16
|
||||
* Sprite 10 x 11
|
||||
* --------------------
|
||||
* 280 x 171
|
||||
|
||||
*--- Decoded level (28 x 16)
|
||||
|
||||
L0800 DS lvlWIDTH ; le plateau avec les personnages
|
||||
L081C DS lvlWIDTH
|
||||
L0838 DS lvlWIDTH
|
||||
L0854 DS lvlWIDTH
|
||||
L0870 DS lvlWIDTH
|
||||
L088C DS lvlWIDTH
|
||||
L08A8 DS lvlWIDTH
|
||||
L08C4 DS lvlWIDTH
|
||||
L08E0 DS lvlWIDTH
|
||||
L08FC DS lvlWIDTH
|
||||
L0918 DS lvlWIDTH
|
||||
L0934 DS lvlWIDTH
|
||||
L0950 DS lvlWIDTH
|
||||
L096C DS lvlWIDTH
|
||||
L0988 DS lvlWIDTH
|
||||
L09A4 DS lvlWIDTH
|
||||
ds \
|
||||
|
||||
L0A00 DS lvlWIDTH ; le plateau sans les personnages
|
||||
L0A1C DS lvlWIDTH
|
||||
L0A38 DS lvlWIDTH
|
||||
L0A54 DS lvlWIDTH
|
||||
L0A70 DS lvlWIDTH
|
||||
L0A8C DS lvlWIDTH
|
||||
L0AA8 DS lvlWIDTH
|
||||
L0AC4 DS lvlWIDTH
|
||||
L0AE0 DS lvlWIDTH
|
||||
L0AFC DS lvlWIDTH
|
||||
L0B18 DS lvlWIDTH
|
||||
L0B34 DS lvlWIDTH
|
||||
L0B50 DS lvlWIDTH
|
||||
L0B6C DS lvlWIDTH
|
||||
L0B88 DS lvlWIDTH
|
||||
L0BA4 DS lvlWIDTH
|
||||
ds \
|
||||
|
||||
*--- $0C00
|
||||
|
||||
sizeLI = 48 ; on pourrait avoir 48 Žchelles invisibles
|
||||
tblLADDERIX ds sizeLI ; $0C00 mais le jeu n'en autorise
|
||||
tblLADDERIY ds sizeLI ; que 45
|
||||
|
||||
sizeFOE = 8 ; on pourrait avoir 8 ennemis
|
||||
tblFOEX ds sizeFOE ; $0C60 mais le jeu n'en autorise
|
||||
tblFOEY ds sizeFOE ; que 5
|
||||
tblFOEACTION ds sizeFOE
|
||||
tblFOESTEPX ds sizeFOE ; animation step in x-coord
|
||||
tblFOESTEPY ds sizeFOE ; animation step in y-coord
|
||||
tblFOEINDEX ds sizeFOE ; animation index
|
||||
tblFOELEFTRIGHT ds sizeFOE ; does foe runs to the left or to the right?
|
||||
tblFOETEMPO ds sizeFOE ; performs actions based on value
|
||||
|
||||
sizeHOLE = 32 ; nombre de trous possibles
|
||||
tblHOLEX ds sizeHOLE ; $0CA0 X des trous
|
||||
tblHOLEY ds sizeHOLE ; Y des trous
|
||||
tblHOLET ds sizeHOLE ; tempo des trous
|
||||
|
||||
*--- $0D00 - Level buffer from/to disk
|
||||
|
||||
levelDISK ds 256
|
||||
|
||||
*--- $0E00 - buffer pour le son
|
||||
|
||||
sndDURATION ds 128
|
||||
sndNOTE ds 128
|
||||
|
||||
*--- Line numbers
|
||||
|
||||
xhgr
|
||||
]debut = $2000
|
||||
lup 200
|
||||
dfb <]debut
|
||||
]debut = ]debut+160
|
||||
--^
|
||||
|
||||
yhgr
|
||||
]debut = $2000
|
||||
lup 200
|
||||
dfb >]debut
|
||||
]debut = ]debut+160
|
||||
--^
|
||||
|
||||
*--- Level line numbers
|
||||
|
||||
tblBOARDALLL
|
||||
DFB <L0800,<L081C,<L0838,<L0854,<L0870,<L088C,<L08A8,<L08C4
|
||||
DFB <L08E0,<L08FC,<L0918,<L0934,<L0950,<L096C,<L0988,<L09A4
|
||||
tblBOARDALLH
|
||||
DFB >L0800,>L081C,>L0838,>L0854,>L0870,>L088C,>L08A8,>L08C4
|
||||
DFB >L08E0,>L08FC,>L0918,>L0934,>L0950,>L096C,>L0988,>L09A4
|
||||
tblBOARDBACKL
|
||||
DFB <L0A00,<L0A1C,<L0A38,<L0A54,<L0A70,<L0A8C,<L0AA8,<L0AC4
|
||||
DFB <L0AE0,<L0AFC,<L0B18,<L0B34,<L0B50,<L0B6C,<L0B88,<L0BA4
|
||||
tblBOARDBACKH
|
||||
DFB >L0A00,>L0A1C,>L0A38,>L0A54,>L0A70,>L0A8C,>L0AA8,>L0AC4
|
||||
DFB >L0AE0,>L0AFC,>L0B18,>L0B34,>L0B50,>L0B6C,>L0B88,>L0BA4
|
||||
|
||||
*--- From a X in board to a X in HGR
|
||||
|
||||
xtable
|
||||
]debut = 10
|
||||
lup lvlWIDTH
|
||||
dfb ]debut
|
||||
]debut = ]debut+5
|
||||
--^
|
||||
|
||||
*--- From a Y in board to a Y in HGR
|
||||
|
||||
ytable DB $00 ; HGR line index
|
||||
DB $0B ; 0.11.22.33
|
||||
DB $16 ; 22
|
||||
DB $21 ; 33
|
||||
DB $2C ; 44
|
||||
DB $37 ; 55
|
||||
DB $42 ; 66
|
||||
DB $4D ; 77
|
||||
DB $58 ; 88
|
||||
DB $63 ; 99
|
||||
DB $6E ; 110
|
||||
DB $79 ; 121
|
||||
DB $84 ; 132
|
||||
DB $8F ; 143
|
||||
DB $9A ; 154
|
||||
DB $A5 ; 165
|
||||
DB $B5 ; 181 ; ligne de texte
|
||||
|
||||
*--- $1F00 - Score buffer
|
||||
|
||||
scorebuf ds 256
|
||||
|
||||
*--- RŽfŽrence des scores
|
||||
|
||||
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
|
||||
|
||||
ds \
|
294
loderunner/source/LR.EQUATES.S
Normal file
294
loderunner/source/LR.EQUATES.S
Normal file
@ -0,0 +1,294 @@
|
||||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
* 0 vide
|
||||
* 1 mur
|
||||
* 2 mur dur
|
||||
* 3 Žchelle visible
|
||||
* 4 liane
|
||||
* 5 trappe
|
||||
* 6 Žchelle invisible
|
||||
* 7 trŽsor
|
||||
* 8 ennemi
|
||||
* 9 hŽros
|
||||
|
||||
* Sprite quand heros ennemi tombe dans un trou :
|
||||
* - venant de gauche : 20 53 (35h)
|
||||
* - venant de droite : 19 54 (36h)
|
||||
*
|
||||
*-----------------------------------
|
||||
* EQUATES
|
||||
*-----------------------------------
|
||||
|
||||
refSPEED = 18
|
||||
|
||||
lvlWIDTH = 28 ; $1c
|
||||
lvlHEIGHT = 16 ; $10
|
||||
|
||||
sprWIDTH = 10
|
||||
sprHEIGHT = 11
|
||||
sprBYTES = 5
|
||||
|
||||
nbLIVES = 5
|
||||
maxLEVEL = 150
|
||||
maxHEIGHT = 192 ; lines
|
||||
|
||||
hgrHEIGHT = 176
|
||||
hgrWIDTH = 160 ; 40
|
||||
hgrTOMOVE = 28160 ; 176*160
|
||||
|
||||
modeEDIT = 0 ; to decode level
|
||||
modeGAME = 1
|
||||
|
||||
sprEMPTY = 0
|
||||
sprWALL = 1
|
||||
sprWALLI = 2 ; mur indestructible
|
||||
sprLADDER = 3
|
||||
sprBAR = 4
|
||||
sprTRAP = 5
|
||||
sprLADDERI = 6
|
||||
sprCHEST = 7
|
||||
sprFOE = 8
|
||||
sprHERO = 9
|
||||
sprCURSOR = 10
|
||||
spr0 = $3b ; until $44
|
||||
sprA = $45 ; until $5e >.()/-< (latest sprite is $65)
|
||||
|
||||
minJOY = $12 ; joystick min/center/max values
|
||||
ctrJOY = $2e
|
||||
maxJOY = $3b
|
||||
|
||||
*--- The big zero page usage
|
||||
|
||||
boardX = $00
|
||||
boardY = $01
|
||||
heroSTEPX = $02
|
||||
heroSTEPY = $03
|
||||
heroINDEX = $04
|
||||
fgLEFTRIGHT = $05
|
||||
ptrBOARD = $06 ; $06..$07: pointer to board
|
||||
ptrBBACK = $08 ; $08..$09: pointer to back board
|
||||
ptrDATA = $0a ; $0a..$0b: pointer to data (HGR or other)
|
||||
|
||||
*ptrHGR1 = $0c ; $0c..$0d
|
||||
*ptrHGR2 = $0e ; $0e..$0f
|
||||
|
||||
ptrSTRSND = $10 ; $10..$11: pointer to some table (string, sound)
|
||||
foeX = $12
|
||||
foeY = $13
|
||||
foeINDEX = $14
|
||||
foeLEFTRIGHT = $15
|
||||
foeACTION = $16
|
||||
foeSTEPX = $17 ; coordinate
|
||||
foeSTEPY = $18 ; coordinate
|
||||
idxFOE = $19 ; current foe index
|
||||
fgODDEVEN = $1a
|
||||
theYSCREEN = $1b
|
||||
theXSCREEN = $1c
|
||||
nbLINES = $1d
|
||||
theA = $1e
|
||||
hgrPAGE = $1f
|
||||
|
||||
ptrHGR1 = $24 ; **new** long
|
||||
ptrHGR2 = $28 ; **new** long
|
||||
ptrSPR = $2c ; **new** word
|
||||
nbLINES2 = $2e ; **new** word
|
||||
|
||||
*CH = $24 ; **
|
||||
*CV = $25 ; **
|
||||
*CSWL = $36 ; **
|
||||
*CSWH = $37 ; **
|
||||
*KSWL = $38 ; **
|
||||
*KSWH = $39 ; **
|
||||
|
||||
theMASK1 = $50
|
||||
theMASK2 = $51
|
||||
fgCOLLISION = $52
|
||||
tempX6 = $53
|
||||
idxNOTE = $54
|
||||
tempX4 = $55
|
||||
tempY1 = $56
|
||||
tempX5 = $57
|
||||
tempX3 = $5a
|
||||
tempX2 = $5b
|
||||
temp1 = $5c
|
||||
tempX = $5d
|
||||
tempY = $5e
|
||||
hfoeACTION = $5f
|
||||
hfoePATH1 = $60
|
||||
hfoePATH2 = $61
|
||||
hfoePATH3 = $62
|
||||
hfoePATH = $63
|
||||
hfoeIDX = $64 ; foe currently being handled
|
||||
theJOYX = $65
|
||||
theJOYY = $66
|
||||
|
||||
caFROM = $67
|
||||
caY16 = $69
|
||||
caTO = $6b
|
||||
caCURRENTY = $6d
|
||||
caTEMP16 = $6f
|
||||
sprTABLE = $71
|
||||
caFGMODE = $72 ; 0: hide, 1: draw
|
||||
caCENTERY = $73
|
||||
caCENTERX = $74
|
||||
caY1 = $75
|
||||
caY4 = $76
|
||||
caY3 = $77
|
||||
caY2 = $78
|
||||
caY1high = $79 ; <>0, cannot draw point
|
||||
caY4high = $7a ; coz we have 192 lines
|
||||
caY3high = $7b ; not 256+
|
||||
caY2high = $7c
|
||||
caX1 = $7d
|
||||
caX2 = $7e
|
||||
caX3 = $7f
|
||||
caX4 = $80 ; x4 index
|
||||
caX1mask = $81 ; x1 mask index
|
||||
caX2mask = $82 ; x2 mask index
|
||||
caX3mask = $83 ; x3 mask index
|
||||
caX4mask = $84 ; x4 mask index
|
||||
theX = $85
|
||||
theY = $86
|
||||
activePAGE = $87
|
||||
tempINDEX = $88
|
||||
theCENTAINE = $89
|
||||
theDIZAINE = $8a ; 8a
|
||||
theUNITE = $8b ; 8b
|
||||
theSPEED = $8c ; 8c
|
||||
nbFOE = $8d ; 8d
|
||||
theSCORE = $8e ; 8e..8f.90..91
|
||||
idxLVLDISK = $92 ; index in level buffer from disk
|
||||
nbCHEST = $93 ; 93
|
||||
fgCHEST = $94 ; 94 1: not a chest, 0: a chest
|
||||
fgINPUT = $95 ; "J"oystick, "K"eyboard
|
||||
intLEVEL = $96 ; 96 theLEVEL-1
|
||||
foeINTIDX = $97
|
||||
theMEN = $98 ; 5 bonshommes pour dŽmarrer
|
||||
fgSOUND = $99 ; 0: no sound, -1: sound on
|
||||
fgPLAY = $9a ; 1: alive, 0: dead
|
||||
fgHEROFELL = $9b ; 0: hero fell into a hole, $20: tempo for game speed
|
||||
fgHOLE = $9c ; -1: left hole, 0: none, 1: right hole
|
||||
fgGOODSTART = $9d ; 1: start from level 0 / allow score update, 0: not true
|
||||
theKEY1 = $9e
|
||||
theKEY2 = $9f
|
||||
idxDIG = $a0 ; dig index in sprite list
|
||||
counter = $a1 ; a simple counter
|
||||
fgLVLMODE = $a2 ; 0: edit, <>0: game
|
||||
idxLADDERI = $a3
|
||||
fgSPEED = $a4 ; speed of the game
|
||||
fgCIRCLE = $a5 ; 0: show level, 1: hide level
|
||||
theLEVEL = $a6 ; current level
|
||||
fgDEMO = $a7 ; 1: in demo mode
|
||||
ptrDEMO = $a8 ; $a8..$a9 - pointer to demo data
|
||||
demoKEY = $aa ; the demo key actions
|
||||
demoREPEAT = $ab ; the demo repeat factor
|
||||
fgKEYBTN0 = $ac ; 1: no key/btn0 pressed, 0: key/btn0 pressed
|
||||
fgCHANGE = $ad ; 1: no change, 0: change
|
||||
sprDATA = $df ; $df..$ff
|
||||
|
||||
Debut = $e0 ; the good old DP variables
|
||||
Arrivee = Debut+4
|
||||
|
||||
chrCTRLE = $85 ; CTRL-E: editor
|
||||
chrLA = $88 ; left arrow
|
||||
chrDA = $8a ; down arrow
|
||||
chrUA = $8b ; up arrow
|
||||
chrRET = $8d ;
|
||||
chrCTRLO = $8f ; CTRL-O: open
|
||||
chrCTRLQ = $91 ; CTRL-Q: quit
|
||||
chrRA = $95 ; right arrow
|
||||
chrESC = $9b ;
|
||||
chrSPC = " " ;
|
||||
chrZERO = "0" ; 0
|
||||
chrONE = "1" ; 1
|
||||
chrTWO = "2" ; 2
|
||||
chrTHREE = "3" ; 3
|
||||
chrNINE = "9" ;
|
||||
chrDOT = "." ;
|
||||
chrA = "A" ; first character
|
||||
chrI = "I" ; move up
|
||||
chrJ = "J" ; move left
|
||||
chrK = "K" ; move down
|
||||
chrL = "L" ; move right
|
||||
chrN = "N" ; NO
|
||||
chrO = "O" ; dig right
|
||||
chrP = "P" ;
|
||||
chrU = "U" ; dig left
|
||||
chrY = "Y" ; YES
|
||||
chrZ = "Z" ; last character
|
||||
|
||||
maskUPPER = %1101_1111
|
||||
|
||||
*-----------------------------------
|
||||
* 4PLAY
|
||||
*-----------------------------------
|
||||
|
||||
*--- Mask bits
|
||||
|
||||
fpUP = %00000001 ; active high
|
||||
fpDOWN = %00000010 ; active high
|
||||
fpLEFT = %00000100 ; active high
|
||||
fpRIGHT = %00001000 ; active high
|
||||
fpNOTUSED = %00010000
|
||||
fpTRIGGER3 = %00100000 ; active low
|
||||
fpTRIGGER2 = %01000000 ; active high
|
||||
fpTRIGGER1 = %10000000 ; active high
|
||||
|
||||
maskBIT0 = %11111110 ; #$FE masks bit 0
|
||||
maskBIT1 = %11111101 ; #$FD masks bit 1
|
||||
maskBIT2 = %11111011 ; #$FB masks bit 2
|
||||
maskBIT3 = %11110111 ; #$F7 masks bit 3
|
||||
maskBIT4 = %11101111 ; #$EF masks bit 4
|
||||
maskBIT5 = %11011111 ; #$DF masks bit 5
|
||||
maskBIT6 = %10111111 ; #$BF masks bit 6
|
||||
maskBIT7 = %01111111 ; #$7F masks bit 7
|
||||
|
||||
fpDFTVALUE = $20 ; dft value for Rev. B
|
||||
|
||||
slot4PLAY = $f0 ; 0 if none, slot otherwise
|
||||
the4PLAY = slot4PLAY+2 ; value read from the 4play
|
||||
|
||||
*-----------------------------------
|
||||
* IIGS SOUND FX
|
||||
*-----------------------------------
|
||||
|
||||
isndINTRO = 1 ; ok
|
||||
isndBARRE = 2 ; ok
|
||||
isndCREUSE = 3 ; ok
|
||||
isndESCALIER = 4 ; ok
|
||||
isndMARCHE = 5 ; ok
|
||||
isndNOMORECHEST = 6 ; ok
|
||||
isndTOMBE = 7 ; ok - ˆ refaire
|
||||
isndTRESOR = 8 ; ok
|
||||
isndTROU = 9 ; ok
|
||||
isndYOUWIN = 10 ; ok
|
||||
|
||||
*-----------------------------------
|
||||
* SOFTSWITCHES
|
||||
*-----------------------------------
|
||||
|
||||
KBD = $e0c000
|
||||
KBDSTROBE = $e0c010
|
||||
NEWVIDEO = $e0c029
|
||||
SPKR = $e0c030
|
||||
SOUNDCTL = $e0c03c
|
||||
SOUNDDATA = $e0c03d
|
||||
SOUNDADRL = $e0c03e
|
||||
SOUNDADRH = $e0c03f
|
||||
BUTN0 = $e0c061
|
||||
BUTN1 = $e0c062
|
||||
PADDL0 = $e0c064
|
||||
PADDL1 = $e0c065
|
||||
PTRIG = $e0c070
|
||||
IRQ_VOLUME = $e100ca
|
||||
|
||||
*-----------------------------------
|
||||
* PAGES GRAPHIQUES
|
||||
*-----------------------------------
|
||||
|
||||
oldHGR1 = $2000
|
||||
oldHGR2 = $4000
|
1271
loderunner/source/LR.SPRITES.S
Normal file
1271
loderunner/source/LR.SPRITES.S
Normal file
File diff suppressed because it is too large
Load Diff
1256
loderunner/source/LR.SPRITES2.S
Normal file
1256
loderunner/source/LR.SPRITES2.S
Normal file
File diff suppressed because it is too large
Load Diff
2624
loderunner/source/LR.TABLES.S
Normal file
2624
loderunner/source/LR.TABLES.S
Normal file
File diff suppressed because it is too large
Load Diff
BIN
loderunner/source/LodeRunner
Normal file
BIN
loderunner/source/LodeRunner
Normal file
Binary file not shown.
BIN
loderunner/source/LodeRunner_ResourceFork.bin
Normal file
BIN
loderunner/source/LodeRunner_ResourceFork.bin
Normal file
Binary file not shown.
19849
loderunner/source/LodeRunner_S01__Output.txt
Normal file
19849
loderunner/source/LodeRunner_S01__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
9683
loderunner/source/LodeRunner_S02__Output.txt
Normal file
9683
loderunner/source/LodeRunner_S02__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
16401
loderunner/source/LodeRunner_S03__Output.txt
Normal file
16401
loderunner/source/LodeRunner_S03__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
14690
loderunner/source/LodeRunner_S04__Output.txt
Normal file
14690
loderunner/source/LodeRunner_S04__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
13906
loderunner/source/LodeRunner_S05__Output.txt
Normal file
13906
loderunner/source/LodeRunner_S05__Output.txt
Normal file
File diff suppressed because it is too large
Load Diff
2
loderunner/source/_FileInformation.txt
Normal file
2
loderunner/source/_FileInformation.txt
Normal file
@ -0,0 +1,2 @@
|
||||
acs=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)
|
970
loderunner/source/loderunner.s
Normal file
970
loderunner/source/loderunner.s
Normal file
@ -0,0 +1,970 @@
|
||||
*
|
||||
* Lode Runner
|
||||
* (c) 1983, Broderbund Software
|
||||
* (s) 2014, Brutal Deluxe Software
|
||||
*
|
||||
|
||||
mx %00
|
||||
|
||||
*----------------------------------- Macros
|
||||
|
||||
use 4/Ctl.Macs
|
||||
use 4/Desk.Macs
|
||||
use 4/Event.Macs
|
||||
use 4/Font.Macs
|
||||
use 4/Int.Macs
|
||||
use 4/Line.Macs
|
||||
use 4/Locator.Macs
|
||||
use 4/Mem.Macs
|
||||
use 4/Menu.Macs
|
||||
use 4/MIDISyn.Macs
|
||||
use 4/Misc.Macs
|
||||
use 4/Print.Macs
|
||||
use 4/Qd.Macs
|
||||
use 4/QdAux.Macs
|
||||
use 4/Resource.Macs
|
||||
use 4/Scrap.Macs
|
||||
use 4/Sound.Macs
|
||||
use 4/Std.Macs
|
||||
use 4/TextEdit.Macs
|
||||
use 4/Util.Macs
|
||||
use 4/Window.Macs
|
||||
|
||||
use LR.EQUATES
|
||||
|
||||
*----------------------------------- Constantes
|
||||
|
||||
ext ptrLEVELS
|
||||
ext ptrSCORES
|
||||
ext HGR2
|
||||
|
||||
ext sndBANK1
|
||||
ext sndINTRO
|
||||
|
||||
*-------------- Softswitches
|
||||
|
||||
RDVBLBAR = $e0c019
|
||||
GSOS = $e100a8
|
||||
|
||||
*-------------- GUI
|
||||
|
||||
alertQUIT = $0100
|
||||
alertRESTART = $0200
|
||||
|
||||
refIsPointer = 0
|
||||
refIsHandle = 1
|
||||
refIsResource = 2
|
||||
|
||||
appleKey = $0100
|
||||
mouseDownEvt = $0001
|
||||
mouseUpEvt = $0002
|
||||
keyDownEvt = $0003
|
||||
|
||||
ptr012000 = $012000
|
||||
ptrE12000 = $e12000
|
||||
|
||||
*---
|
||||
|
||||
TRUE = 255
|
||||
FALSE = 0
|
||||
|
||||
*----------------------------------- Entry point
|
||||
|
||||
phk
|
||||
plb
|
||||
|
||||
clc
|
||||
xce
|
||||
rep #$30
|
||||
|
||||
_TLStartUp
|
||||
pha
|
||||
_MMStartUp
|
||||
pla
|
||||
sta mainID
|
||||
ora #$0100
|
||||
sta myID
|
||||
|
||||
tdc
|
||||
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
|
||||
beq 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
|
||||
|
||||
ldx #256-2 ; efface la page directe
|
||||
]lp stz $00,x
|
||||
dex
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
jsr find4PLAY ; do we have a 4play?
|
||||
jsr initSOUND ; init sound tool set & friends
|
||||
jsr setNATIVE ; set native mode
|
||||
|
||||
*---
|
||||
|
||||
jsr loadLEVELS ; exit 8-bit
|
||||
|
||||
mx %11
|
||||
|
||||
lda #refSPEED ; try to slow it down a bit
|
||||
sta theSPEED
|
||||
|
||||
lda ptrSCREEN+2
|
||||
sta ptrHGR1+2
|
||||
brl theGAME
|
||||
|
||||
mx %00 ; The 16-bit world
|
||||
|
||||
*-----------------------------------
|
||||
* AUTRES ROUTINES
|
||||
*-----------------------------------
|
||||
|
||||
*----------------------------------- Open LEVELS
|
||||
|
||||
doLOAD clc
|
||||
xce
|
||||
rep #$30
|
||||
_ShowCursor
|
||||
|
||||
PushWord #30
|
||||
PushWord #43
|
||||
PushLong #strLOADFILE
|
||||
PushLong #0
|
||||
PushLong #typeLIST
|
||||
PushLong #replyPTR
|
||||
_SFGetFile
|
||||
|
||||
_HideCursor
|
||||
|
||||
lda replyPTR
|
||||
bne doLOAD1
|
||||
sep #$30
|
||||
sec
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
doLOAD1 jsr copyPATH
|
||||
|
||||
loadLEVELS clc
|
||||
xce
|
||||
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
|
||||
clc
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
loadLEVELS9 rep #$30
|
||||
|
||||
ldx #0 ; clear all levels
|
||||
txa
|
||||
]lp stal ptrLEVELS,x
|
||||
inx
|
||||
inx
|
||||
cpx #38400 ; 150 x 256
|
||||
bcc ]lp
|
||||
|
||||
ldx #256-2
|
||||
]lp lda scoreEMPTY,x
|
||||
sta scorebuf,x
|
||||
stal ptrSCORES,x
|
||||
dex
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
sep #$30
|
||||
sec
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*----------------------------------- Save
|
||||
|
||||
doSAVE clc
|
||||
xce
|
||||
rep #$30
|
||||
_ShowCursor
|
||||
|
||||
PushWord #25
|
||||
PushWord #36
|
||||
PushLong #strSAVEFILE
|
||||
PushLong #namePATH
|
||||
PushWord #15
|
||||
PushLong #replyPTR
|
||||
_SFPutFile
|
||||
|
||||
_HideCursor
|
||||
|
||||
lda replyPTR
|
||||
bne doSAVE1
|
||||
sep #$30
|
||||
sec
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
doSAVE1 jsr copyPATH
|
||||
|
||||
saveLEVELS clc
|
||||
xce
|
||||
rep #$30
|
||||
|
||||
jsl GSOS
|
||||
dw $2002
|
||||
adrl proDESTROY
|
||||
|
||||
jsl GSOS
|
||||
dw $2001
|
||||
adrl proCREATE
|
||||
bcs doSAVE99
|
||||
|
||||
jsl GSOS
|
||||
dw $2010
|
||||
adrl proOPEN
|
||||
bcs doSAVE99
|
||||
|
||||
lda proOPEN+2
|
||||
sta proWRITE+2
|
||||
sta proCLOSE+2
|
||||
|
||||
jsl GSOS
|
||||
dw $2013
|
||||
adrl proWRITE
|
||||
|
||||
jsl GSOS
|
||||
dw $2014
|
||||
adrl proCLOSE
|
||||
|
||||
sep #$30
|
||||
clc
|
||||
rts
|
||||
doSAVE99 sep #$30
|
||||
sec
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*--- Recopie le filename du fichier de sauvegarde
|
||||
|
||||
copyPATH sep #$20
|
||||
ldx #16-1
|
||||
]lp lda namePATH1,x
|
||||
sta pLEVELS+4,x
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
lda namePATH
|
||||
inc ; add 2 chars
|
||||
inc ; for '0/'
|
||||
sta pLEVELS
|
||||
rep #$20
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*----------------------------------- Quit
|
||||
|
||||
meQUIT rep #$30
|
||||
|
||||
jsr stopSOUND
|
||||
|
||||
PushWord #refIsHandle
|
||||
PushLong SStopREC
|
||||
_ShutDownTools
|
||||
|
||||
meQUIT1 PushWord myID
|
||||
_DisposeAll
|
||||
|
||||
PushWord mainID
|
||||
_DisposeAll
|
||||
|
||||
PushWord mainID
|
||||
_MMShutDown
|
||||
|
||||
_TLShutDown
|
||||
|
||||
jsl GSOS
|
||||
dw $2029
|
||||
adrl proQUIT
|
||||
|
||||
brk $bd
|
||||
|
||||
*----------------------------------------
|
||||
* SET VINTAGE/NATIVE MODE
|
||||
*----------------------------------------
|
||||
|
||||
mx %00
|
||||
|
||||
setVINTAGE
|
||||
jsr setSTDPALETTE ; set the LR palette
|
||||
lda #1 ; no speaker sound
|
||||
ldx #tblSPRITES
|
||||
ldy #$4444
|
||||
bra setMODE
|
||||
|
||||
setNATIVE
|
||||
jsr setLRPALETTE ; set the LR palette
|
||||
lda #0 ; no speaker sound
|
||||
ldx #tblSPRITES2
|
||||
ldy #$bbbb
|
||||
|
||||
setMODE stx patchSPR1+1 ; the sprites table
|
||||
stx patchSPR2+1
|
||||
stx patchSPR3+1
|
||||
sty fondFRAME ; the border color
|
||||
sep #$20
|
||||
sta fgSOUND ; the sound mode
|
||||
rep #$20
|
||||
rts
|
||||
|
||||
*---
|
||||
|
||||
fondFRAME dw $4444 ; HGR: $4444, SHR: $BBBB
|
||||
|
||||
*----------------------------------------
|
||||
* SET STANDARD 320 PALETTE
|
||||
*----------------------------------------
|
||||
|
||||
setSTDPALETTE
|
||||
PushWord #0
|
||||
PushLong #palette320
|
||||
_SetColorTable
|
||||
rts
|
||||
|
||||
*----------------------------------------
|
||||
* SET LODE RUNNER 320 PALETTE
|
||||
*----------------------------------------
|
||||
|
||||
setLRPALETTE
|
||||
PushWord #0
|
||||
PushLong #paletteLR
|
||||
_SetColorTable
|
||||
rts
|
||||
|
||||
*----------------------------------------
|
||||
* CHECK KEY PRESSED
|
||||
*----------------------------------------
|
||||
|
||||
checkKEY phx
|
||||
phy
|
||||
rep #$30
|
||||
|
||||
pha
|
||||
PushWord #%00000000_00001000
|
||||
PushLong #taskREC
|
||||
_GetNextEvent
|
||||
pla
|
||||
beq checkNOKEY
|
||||
|
||||
lda taskREC ; une touche ?
|
||||
cmp #keyDownEvt
|
||||
bne checkNOKEY
|
||||
|
||||
sep #$30
|
||||
ply
|
||||
plx
|
||||
lda taskMESSAGE
|
||||
ora #%1000_0000 ; set bit 7
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
checkNOKEY sep #$30
|
||||
ply
|
||||
plx
|
||||
lda #0
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*----------------------------------------
|
||||
* 4PLAY
|
||||
*----------------------------------------
|
||||
|
||||
find4PLAY sep #$30
|
||||
stz slot4PLAY
|
||||
|
||||
ldx #$10
|
||||
]lp ldal $e0c080,x
|
||||
cmp #fpDFTVALUE
|
||||
bne next4PLAY
|
||||
ldal $e0c081,x
|
||||
cmp #fpDFTVALUE
|
||||
bne next4PLAY
|
||||
ldal $e0c082,x
|
||||
cmp #fpDFTVALUE
|
||||
bne next4PLAY
|
||||
ldal $e0c083,x
|
||||
cmp #fpDFTVALUE
|
||||
beq found4PLAY
|
||||
|
||||
next4PLAY txa
|
||||
clc
|
||||
adc #$10
|
||||
tax
|
||||
cpx #$80 ; until slot 8
|
||||
bcc ]lp
|
||||
rep #$30
|
||||
rts
|
||||
|
||||
mx %11
|
||||
|
||||
found4PLAY txa ; set 4PLAY slot
|
||||
ora #$80 ; 10=>90, 20=>A0, 30=>B0...
|
||||
sta read4PLAY+1
|
||||
rep #$30
|
||||
rts
|
||||
|
||||
*----------------------------------------
|
||||
|
||||
mx %11
|
||||
|
||||
read4PLAY ldal $e0C080 ; direct "fast" read
|
||||
sta the4PLAY
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*----------------------------------------
|
||||
* UNPACK LOGO
|
||||
*----------------------------------------
|
||||
|
||||
mx %11
|
||||
|
||||
unpackLOGO rep #$30
|
||||
|
||||
lda ptrSCREEN
|
||||
sta startHandle
|
||||
lda ptrSCREEN+2
|
||||
sta startHandle+2
|
||||
|
||||
lda #32000
|
||||
sta sizePtr
|
||||
|
||||
PushWord #0
|
||||
PushLong #logo
|
||||
lda #logo_fin-logo
|
||||
pha
|
||||
PushLong #startHandle
|
||||
PushLong #sizePtr
|
||||
_UnPackBytes
|
||||
pla
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
*---
|
||||
|
||||
startHandle adrl ptr012000
|
||||
sizePtr dw 32000
|
||||
|
||||
*----------------------------------------
|
||||
* SOUND EFFECTS
|
||||
*----------------------------------------
|
||||
|
||||
mx %11
|
||||
|
||||
*---------- Load & Prepare the sound intro effect
|
||||
|
||||
playINTRO rts
|
||||
lda fgSND
|
||||
beq playINTRO1
|
||||
rts
|
||||
|
||||
playINTRO1 rep #$30
|
||||
|
||||
PushWord #%01111111_11111111
|
||||
_FFStopSound
|
||||
|
||||
PushWord #$0e01
|
||||
PushLong #waveSTART
|
||||
_FFStartSound
|
||||
|
||||
]lp PushWord #0
|
||||
PushWord #$0e
|
||||
_FFSoundDoneStatus
|
||||
pla
|
||||
bne ]lp
|
||||
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
*---
|
||||
|
||||
waveSTART adrl sndINTRO ; waveStart
|
||||
dw 217 ; waveSize (in pages)
|
||||
dw 209 ; freqOffset
|
||||
dw $f000 ; docBuffer
|
||||
dw $0004 ; bufferSize (4096 octets)
|
||||
ds 4 ; nextWavePtr
|
||||
dw 255 ; volSetting
|
||||
|
||||
*---------- Load & Prepare the sound effects
|
||||
|
||||
mx %11
|
||||
|
||||
moveSOUND lda fgSND
|
||||
beq moveSOUND1
|
||||
rts
|
||||
|
||||
moveSOUND1 rep #$10
|
||||
sei
|
||||
|
||||
ldal IRQ_VOLUME
|
||||
ora #%0110_0000
|
||||
stal SOUNDCTL
|
||||
|
||||
lda #0
|
||||
stal SOUNDADRL
|
||||
stal SOUNDADRH
|
||||
|
||||
ldx #0
|
||||
]lp ldal sndBANK1,x
|
||||
stal SOUNDDATA
|
||||
inx
|
||||
bne ]lp
|
||||
|
||||
*--- Config oscillos now
|
||||
|
||||
ldal IRQ_VOLUME
|
||||
and #%0000_1111
|
||||
stal SOUNDCTL
|
||||
|
||||
ldx #1
|
||||
]lp txa
|
||||
asl
|
||||
tay ; frequency low
|
||||
stal SOUNDADRL
|
||||
lda #$d6
|
||||
stal SOUNDDATA
|
||||
tya
|
||||
ora #$01
|
||||
stal SOUNDADRL
|
||||
lda #$d6
|
||||
stal SOUNDDATA
|
||||
|
||||
tya ; frequency high
|
||||
ora #$20
|
||||
stal SOUNDADRL
|
||||
lda #$00
|
||||
stal SOUNDDATA
|
||||
tya
|
||||
ora #$21
|
||||
stal SOUNDADRL
|
||||
lda #00
|
||||
stal SOUNDDATA
|
||||
|
||||
tya ; volume
|
||||
ora #$40
|
||||
stal SOUNDADRL
|
||||
lda sndVOLUME,x
|
||||
stal SOUNDDATA
|
||||
tya
|
||||
ora #$41
|
||||
stal SOUNDADRL
|
||||
lda sndVOLUME,x
|
||||
stal SOUNDDATA
|
||||
|
||||
tya ; address
|
||||
ora #$80
|
||||
stal SOUNDADRL
|
||||
lda sndADDRESS,x
|
||||
stal SOUNDDATA
|
||||
tya
|
||||
ora #$81
|
||||
stal SOUNDADRL
|
||||
lda sndADDRESS,x
|
||||
stal SOUNDDATA
|
||||
|
||||
tya ; size
|
||||
ora #$c0
|
||||
stal SOUNDADRL
|
||||
lda sndSIZE,x
|
||||
stal SOUNDDATA
|
||||
tya
|
||||
ora #$c1
|
||||
stal SOUNDADRL
|
||||
lda sndSIZE,x
|
||||
stal SOUNDDATA
|
||||
|
||||
inx
|
||||
cpx #10+1
|
||||
bcs moveSOUND2
|
||||
brl ]lp
|
||||
|
||||
moveSOUND2 cli
|
||||
sep #$10
|
||||
rts
|
||||
|
||||
*---------- Start the sound tool set
|
||||
|
||||
mx %00
|
||||
|
||||
initSOUND lda fgSND
|
||||
beq initSOUND1
|
||||
rts
|
||||
|
||||
initSOUND1 PushWord #8
|
||||
PushWord #0
|
||||
_LoadOneTool
|
||||
bcc initSOUND2
|
||||
|
||||
initSOUND9 inc fgSND
|
||||
rts
|
||||
|
||||
initSOUND2 tdc
|
||||
clc
|
||||
adc #256
|
||||
pha
|
||||
_SoundStartUp
|
||||
bcs initSOUND9
|
||||
rts
|
||||
|
||||
*---------- Stop the Sound Tool Set
|
||||
|
||||
mx %00
|
||||
|
||||
stopSOUND lda fgSND
|
||||
beq stopSOUND1
|
||||
rts
|
||||
|
||||
stopSOUND1 PushWord #%01111111_11111111
|
||||
_FFStopSound
|
||||
_SoundShutDown
|
||||
|
||||
PushWord #8
|
||||
_UnloadOneTool
|
||||
|
||||
stz fgSND
|
||||
rts
|
||||
|
||||
*----------
|
||||
|
||||
mx %11
|
||||
|
||||
playSOUND sta saveA
|
||||
|
||||
lda fgSOUND ; 8-bit sound?
|
||||
ora fgSND
|
||||
bne playSOUND9
|
||||
|
||||
sty saveY
|
||||
|
||||
ldal IRQ_VOLUME
|
||||
and #%0000_1111
|
||||
stal SOUNDCTL
|
||||
|
||||
lda saveA ; reprend l'instrument
|
||||
cmp #2
|
||||
bcc playSOUND9
|
||||
asl
|
||||
tay ; frequency low
|
||||
ora #$a0
|
||||
stal SOUNDADRL
|
||||
lda #%0000_0010
|
||||
stal SOUNDDATA
|
||||
tya
|
||||
ora #$a1
|
||||
stal SOUNDADRL
|
||||
lda #%0001_0010
|
||||
stal SOUNDDATA
|
||||
|
||||
ldy saveY
|
||||
|
||||
playSOUND9 lda saveA
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*--- Data
|
||||
|
||||
sndADDRESS hex 00,00,68,50,44,48,80,c0,b0,70,00
|
||||
|
||||
sndSIZE dfb %00000000
|
||||
dfb %00111111 ; 1
|
||||
dfb %00011011 ; 2
|
||||
dfb %00100100 ; 3
|
||||
dfb %00010010 ; 4
|
||||
dfb %00011011 ; 5
|
||||
dfb %00110110 ; 6
|
||||
dfb %00110110 ; 7
|
||||
dfb %00100100 ; 8
|
||||
dfb %00100100 ; 9
|
||||
dfb %00111111 ; 10
|
||||
|
||||
sndVOLUME dfb 0
|
||||
dfb 255
|
||||
dfb 64
|
||||
dfb 64
|
||||
dfb 64
|
||||
dfb 64
|
||||
dfb 255
|
||||
dfb 64
|
||||
dfb 64
|
||||
dfb 64
|
||||
dfb 255
|
||||
|
||||
*---
|
||||
|
||||
saveA ds 2
|
||||
saveX ds 2
|
||||
saveY ds 2
|
||||
|
||||
*----------------------------------------
|
||||
* 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
|
||||
|
||||
mainID ds 2 ; app ID
|
||||
myID ds 2 ; user ID
|
||||
myDP ds 2
|
||||
|
||||
SStopREC ds 4
|
||||
|
||||
ptrSCREEN adrl ptr012000
|
||||
|
||||
*----------------------- QuickDraw II
|
||||
|
||||
palette320 dw $0000,$0777,$0841,$072C,$000F,$0080,$0F70,$0D00
|
||||
dw $0FA9,$0FF0,$00E0,$04DF,$0DAF,$078F,$0CCC,$0FFF
|
||||
|
||||
paletteLR dw $0445,$0000,$0FFF,$0952,$00BB,$01DD,$0FF0,$0A1A
|
||||
dw $0C0C,$0FCB,$0A10,$0C30,$0E50,$0666,$0AAA,$0FFF
|
||||
|
||||
*----------------------- Event / Window Manager
|
||||
|
||||
taskREC ds 2 ; wmWhat +0
|
||||
taskMESSAGE ds 4 ; wmMessage +2
|
||||
taskWHEN ds 4 ; wmWhen +6
|
||||
taskWHERE ds 4 ; wmWhere +10
|
||||
taskMODIFIERS ds 2 ; wmModifiers +14
|
||||
taskDATA ds 4 ; wmTaskData +16
|
||||
adrl $001fffff ; wmTaskMask +20
|
||||
ds 4 ; wmLastClickTick +24
|
||||
ds 2 ; wmClickCount +28
|
||||
ds 4 ; wmTaskData2 +30
|
||||
ds 4 ; wmTaskData3 +34
|
||||
ds 4 ; wmTaskData4 +38
|
||||
ds 4 ; wmLastClickPt +42
|
||||
|
||||
*----------------------- 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+256 ; 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+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+256 ; 8 - request_count
|
||||
ds 4 ; C - transfer_count
|
||||
dw 1 ; cache_priority
|
||||
|
||||
*--- Global
|
||||
|
||||
proCLOSE dw 1
|
||||
ds 2
|
||||
|
||||
proQUIT dw 2 ; pcount
|
||||
ds 4 ; pathname
|
||||
ds 2 ; flags
|
||||
|
||||
proVERS dw 1 ; pcount
|
||||
ds 2 ; version
|
||||
|
||||
*---------- Files
|
||||
|
||||
pLEVELS strl '0/levels/loderunner'
|
||||
|
||||
*----------------------- 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 07 ; 6 fileName
|
||||
namePATH1
|
||||
asc 'Niveaux' ; 7 fileName (16 normally)
|
||||
ds 8
|
||||
loadPATH
|
||||
ds 1 ; 22 fullPathname (string length)
|
||||
loadPATH1
|
||||
ds 129 ; 23 fullPathname (128 normally)
|
||||
|
||||
*----------------------------------------
|
||||
* LES AUTRES FICHIERS
|
||||
*----------------------------------------
|
||||
|
||||
put LR.Code.s
|
||||
put LR.Data.s
|
||||
put LR.Tables.s
|
||||
logo
|
||||
putbin pic/title
|
||||
logo_fin
|
||||
put LR.Sprites.s ; 8-bits sprites
|
||||
put LR.Sprites2.s ; 16-col sprites
|
||||
|
||||
*---
|
||||
|
||||
asc 0d
|
||||
asc "----------------"0d
|
||||
asc " "0d
|
||||
asc " LODE RUNNER "0d
|
||||
asc " "0d
|
||||
asc " Antoine Vignau "0d
|
||||
asc "Olivier Zardini"0d
|
||||
asc " "0d
|
||||
asc " Paques 2024 "0d
|
||||
asc " "0d
|
||||
asc "----------------"0d
|
||||
|
||||
|
30
loderunner/source/make.s
Normal file
30
loderunner/source/make.s
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
* Expansion linker file
|
||||
|
||||
DSK LodeRunner
|
||||
TYP $B3
|
||||
AUX $DB00
|
||||
|
||||
* Assemble files
|
||||
|
||||
ASM loderunner.s
|
||||
KND $0000
|
||||
SNA DougESmith
|
||||
|
||||
ASM LR.BANK3.S
|
||||
KND $0000
|
||||
SNA Broderbund
|
||||
|
||||
ASM LR.BANK4.S
|
||||
KND $0000
|
||||
SNA Brutal
|
||||
|
||||
ASM LR.BKSND1.S
|
||||
KND $0000
|
||||
SNA Deluxe
|
||||
|
||||
ASM LR.BKSND2.S
|
||||
KND $0000
|
||||
SNA Software
|
||||
|
||||
* END
|
BIN
loderunner/source/pic/title
Normal file
BIN
loderunner/source/pic/title
Normal file
Binary file not shown.
BIN
loderunner/source/snd/barre.snd
Normal file
BIN
loderunner/source/snd/barre.snd
Normal file
Binary file not shown.
BIN
loderunner/source/snd/creuse.snd
Normal file
BIN
loderunner/source/snd/creuse.snd
Normal file
Binary file not shown.
BIN
loderunner/source/snd/escalier.snd
Normal file
BIN
loderunner/source/snd/escalier.snd
Normal file
Binary file not shown.
1
loderunner/source/snd/intro.snd
Normal file
1
loderunner/source/snd/intro.snd
Normal file
File diff suppressed because one or more lines are too long
BIN
loderunner/source/snd/marche.snd
Normal file
BIN
loderunner/source/snd/marche.snd
Normal file
Binary file not shown.
1
loderunner/source/snd/nomorechest.snd
Normal file
1
loderunner/source/snd/nomorechest.snd
Normal file
File diff suppressed because one or more lines are too long
3
loderunner/source/snd/tombe.snd
Normal file
3
loderunner/source/snd/tombe.snd
Normal file
File diff suppressed because one or more lines are too long
BIN
loderunner/source/snd/tresor.snd
Normal file
BIN
loderunner/source/snd/tresor.snd
Normal file
Binary file not shown.
BIN
loderunner/source/snd/trou.snd
Normal file
BIN
loderunner/source/snd/trou.snd
Normal file
Binary file not shown.
1
loderunner/source/snd/youwin.snd
Normal file
1
loderunner/source/snd/youwin.snd
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user