Homemade source code

This commit is contained in:
Antoine Vignau 2024-06-18 21:04:29 +02:00
parent 92fd3be291
commit 76fb920253
5 changed files with 11832 additions and 0 deletions

6163
loderunner/LR.CODE.S Normal file

File diff suppressed because it is too large Load Diff

750
loderunner/LR.DATA.S Normal file
View File

@ -0,0 +1,750 @@
*
* 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
*--- $0F00 - Title page until $1A84
logo HEX 128518851C9423A80011A09518851C94
HEX 23A80011A09518851C9423A80011A8D0
HEX 18851C9423A80006940C8511A8D01885
HEX 1C9423A80006940C8511A8D018851C94
HEX 23A80006940C8511A8D018851C9423A8
HEX 000484A0D582908081A8D5808411A8D0
HEX 18851C9423A8000494A0D582948085A8
HEX D5808511A89418851C9423A80004D5A0
HEX D582D5A095A8D5A09511A8958085A880
HEX A885A880A8D48294A8C082C0AA0004D5
HEX 8294A0D5A0D58085A89511A895A085AA
HEX 81AA85AA81AAD48A94A8D08AD0AA0004
HEX D58A94A8D5A0D58285AA9511A895A085
HEX AA80AA85AA81AAD48A94A8D08AD0AA00
HEX 0494AA94AA9480C58AC58A8511A8D4A8
HEX C18AC482C582C58A94A894A894A894A8
HEX 000494A8D58A948085AAD5828511A8D0
HEX A8C082C582C582C58294A894A894A894
HEX A8000490A0D582948085A8D5808511A8
HEX D0A8C082C582C582C58294A894A894A8
HEX 94A80004D080D580858094A095A08111
HEX A8D0A8C082C582C5AAC18294A894A894
HEX A894A80004D0088580940DA08111A8D0
HEX A8C082C582C5AAC18294A894A894A894
HEX A80004D0088580940DA08111A8D0A8C0
HEX 82C582C5AAC08294A894A894A894A800
HEX 04D0088580940DA08111A8D0A8C082C5
HEX 82C582C08294A894A894A894A80004D0
HEX 08858A940DA08111A8D0A8C080C582C5
HEX 82C48294A894A894A894A80004C08280
HEX A0818AD00DA811A8D0A88080C582C582
HEX C58294A894A894A894A80004C08280A0
HEX 818AD00DA811A895A880AA81AA81AAC1
HEX 82D08AD08A94A8D08A0004C08280A0D1
HEX AAD10DA811A895A880AA81AA81AAC182
HEX D08AD08A94A8D08A0004C08280A0D1AA
HEX D10DA811A885A880A880A880A8C082C0
HEX 82C08294A8C0820005AAD5A2D1AAD1A8
HEX D58A0005AAD582818A90A8D58A0005AA
HEX D582858A94A8D58A00078A958A958A13
HEX A08517A08100078AD4AA858A13A88517
HEX A88100078AD0AA818A13A88517A8D100
HEX 07A8C0AAC08213AA17AAD00007A80AC0
HEX 82138A178AD00007A80AC082138A178A
HEX D00007A80AC082138A178AD00007A80A
HEX C082138A178AD00007A08180D0138A17
HEX 8AD00007A08180D013A880A8C0AAD482
HEX 858A94A081A0C18A0007A08180D013A8
HEX 80AAC1AAD482858A94A885A8C1AA0007
HEX A08180D013A880AAC1AAD482858A94A8
HEX 85A8D1AA0008D5AA9513A8C182858AD0
HEX 80858A948A94AAD0A0810008D5AA9513
HEX A0C182858AD080858A9482948AD0A081
HEX 0008D5AA9513A0C582858AD080858A94
HEX 80948AD0A0810014C582858AD080858A
HEX 94A0958AD0AA0014C582858AD080858A
HEX 94A8958AD0AA0014C582858AD080858A
HEX 94A8958AD08A0014C582858AD080858A
HEX 948A948AD00014C582858AD080858A94
HEX 8A948AD080810013A0C582858AD08285
HEX 8A948A948AD0A0810013AA81AA818AC0
HEX 8AD4AA85A8858AC0AA0013AA81AA818A
HEX C08AD4AA85A8858AC0AA0013AA80A880
HEX 8A808AD0A081A0818A808A0000000000
HEX 0000000000000DD08A000DD0A817C082
HEX 000DD0A817C082000DD0A8D08295A095
HEX A881AAD08AD482000DD08A94A0D1A880
HEX 8AC5A2C18285000DD08094A0D1A8808A
HEX C5A2C18285000DD08094A095A085AAC1
HEX A2C182D4000DD08094A08180948AC0A2
HEX C182C082000DD08094A08180948AC0A2
HEX C182C082000DD080948095A885A8C1A2
HEX 818AD50000000000000000000000C0FF
HEX 9F09C0FF9F11FEFFFF9F00E0FFBF09E0
HEX FFBF11FFFFFFBF0080FFBF0AFFBF11FC
HEX FFFFBF0080FFBF0AFFBF11FCFFFFBF00
HEX 80FFBF0AFFBF11FEFFFFBF00C0FFBF0A
HEX FF9F11FEFFFFBF00C0FFBF0AFF9F11FE
HEX FFFFBF00C0FF9F0AFF9F11FEFFFFBF00
HEX C0FF9F80F0FFFF83F8FFFF9FF8FFFF80
HEX 80FFBFFC9FF8FFFCBFFCFFF8FFF0FFF3
HEX FF80FFFF9FFE9FBE00C0FF9F80FCFFFF
HEX 87FCFFFF9FFCFFFF8180FFBFF89FFCFF
HEX F9FFF8FFFEFFE1FFFBFFC0FFFF9FFFBF
HEX BF00E0FF9F80FCFFFF87FEFFFF8FFEFF
HEX FF8180FFBFF89FF0FFF9FFF8FFFEFFE1
HEX FFFBFFE1FFFFBFFCFFBF00E0FF9F80FE
HEX FFFF87FFFFFF8FFEFFFF8180FFBFF89F
HEX F0FFF9FFF8FFFFFFE1FFFFFFE1FFFFBF
HEX FCFFBF00E0FF8F80FEFFFF87FFFFFF8F
HEX FFFFFF8180FF9FFC9FF0FFF8BFF8FFFF
HEX FFE1FFFFFFF1FFFFBFFEFF9F00E0FF8F
HEX 80FEFFFFC7FFFFFF8FFFFFFF81C0FF9F
HEX FC8FF0FFFCBFF8FFFFFFE1FFFFFFF0FF
HEX FFBFFEFF9F00F0FF8F80FEFFFFC7FFFF
HEX FFC7FFFFFF81C0FF9FFE8FF0FFFCBFF8
HEX FFFFFFE1FFFFFFF0FFFF9FFEFF9F00F0
HEX FF8F80FFFFFFE7FFFFFFC7FFFFFF81C0
HEX FFFFFF8FF0FFFCBFF8FFFFFFE1FFFFFF
HEX F0FFFF9FFEFF8F00F0FF8780FF87FFE7
HEX FFE1FFC7FFC3FF81C0FFFFFF8FF8BFFC
HEX BFF8FFFCFFF0FFF9FFF8FFE19FFEBF00
HEX F0FF8780FFC7FFE3FFE1FFE7FFE1FF81
HEX E0FFFFFF87F8BFFC9FFCFFFCFFF0FFF8
HEX FFF8FFF09FFF9F00F0FF8780FFC7FFE3
HEX FFF1FFE7FFE1FF80E0FFFFFF81F8BFFE
HEX 9FFCBFFCFFF0FFF8BFF8FFF08FFF9F00
HEX F8FF87C0FFC3FFF3FFF1FFE3FFFFFF80
HEX E0FFFFFF80F8BFFE9FFCBFFCFFF0FFF8
HEX BFF8FFFF8FFF8F00F8FF87C0FFC3FFF3
HEX FFF0FFF3FFFFFF80E0FFFFBF80F89FFE
HEX 9FFCBFFCBFF8FFFCBFFCFFFF8FFF8F00
HEX F8FF83C0FFC3FFF3FFF0FFF3FFFFBF80
HEX E0FFFFBF80FC9FFE8FFCBFFCBFF8BFFC
HEX BFFCFFFFCFFF8F00F8FF83C0FFE3FFF9
HEX FFF0FFF3FFFFBF80F0FFFFBF80FC9FFE
HEX 8FFEBFFEBFF8BFFC9FFCFFFFC7FF8F00
HEX F8FF83E0FFE1FFF9FFF8FFF9FF838080
HEX F0FFFFFF80FC9FFF8FFE9FFEBFF8BFFC
HEX 9FFCBF80C0FF8700FCFF83E0FFE1FFF9
HEX BFF8FFF9FF818080F0FFFFFF80FC9FFF
HEX 8FFE9FFE9FF8BFFE9FFEBF80C0FF8700
HEX FCFF81E0FFE1FFF9BFF8FFF9FF818080
HEX F0FFFBFF81FE8FFF8FFE9FFE9FFCBFFE
HEX 9FFE9F80C0FF8700FCFF81E4FFF1FFF8
HEX BFF8FFF9FF809080F8FFF3FF81FECFFF
HEX 87FF9FFF9FFC9FFE9FFE9F80E2FF8700
HEX FCFF81E6FFF1FFF8BFFCFFF9FF819880
HEX F8FFF3FF81FECFFF87FF8FFF9FFC9FFE
HEX 8FFEBF80E3FF8300FEFFFFF7FFFFFFF8
HEX FFFFFFFCFFFF9F80F8FFF3FF93FEFFFF
HEX 87FF8FFF8FFC9FFE8FFEFFFFE3FF8300
HEX FEFFFFF7FFFFFFFCFFFFFFFCFFFF9F80
HEX F8FFF3FF9FFFFFFF87FF8FFF8FFE9FFF
HEX 8FFEFFFFE3FF8300FEFFFFF3FFFFFFFC
HEX FFFFFFFCFFFF8F80F8FFE1FF9FFFFFFF
HEX 83FF8FFF8FFE8FFF8FFFFFFFE3FF8300
HEX FEFFFFF3FFFFBFFCFFFFFFFCFFFF8F80
HEX FCFFE1FF9FFFFFFFC3FFC7FF8FFE8FFF
HEX 87FFFFFFF3FF8100FEFFFFF3FFFFBFFC
HEX FFFFBFFCFFFF8F80FCFFE1FF8FFFFFFF
HEX C3FFC7FF8FFE8FFF87FFFFFFF1FF8100
HEX FEFFFFF3FFFFBFFCFFFFBFFCFFFF8F80
HEX FCFFE1FFCFFFFFFFC3FFC7FF87FECFFF
HEX 87FEFFFFF1FF8100FEFFFFF1FFFFBFFC
HEX FFFEBFF8FFFF8780FCFFC1FFCFFFFFFF
HEX C3FFC7FF87FFC7FF87FEFFFFF1FF8100
HEX FEFFFFE1FFFF9FF8BFFEBFF8FFFF8780
HEX FCFFC1FFC7FFEFFFC3FFC7FF87FFC7FF
HEX 87FEFFFFF1FF8100FEFFFFE1FFFF9FF8
HEX BFFEFFF1FFFF8780FCFFC3FFC7FFE7FF
HEX CFFFDFFF9FFF9FFF9FFCFFFFF0FF8700
HEX FCFFFFC0FFFF8FF09FFCFFE0FFFF8380
HEX F0FF81FF87FFE7FFC7FFCFFF8FFE8FFF
HEX 8FF8FFBFF0FF83000000000000000000
HEX 000012AA8100128A8500128A8500128A
HEX 850012AAC1A28100128AC5A28100128A
HEX C5A28100128AC5A28100128AC5A28100
HEX 12AA81AA810014A0810014A0810014AA
HEX 00000000000000000000000BA0D514D0
HEX AA000BA0C182149419A0C182000BA0C1
HEX 82149418D0A0C182000BA0C182149418
HEX D0A0C182000BA0C182149419A0C18200
HEX 0BA0C182D5A0C182D582D08AD0AAD0A8
HEX C5AA81000BA0C1A2C1A2C1A2C18280A8
HEX 94A2D1A0C18285000BA0C1A2C1A2C1A2
HEX C18280A894A2D1A0C18285000BA0C1A2
HEX C1A2C1A2C18280A894A2D1A0C1828500
HEX 0BA0C1A2C1A2C1A2C18280A894A2D1A0
HEX C18285000BA0C1A2C1A2C1A2C18280A8
HEX 94A2D1A0C18285000BA0D580D580D580
HEX D582D48A94A2D180C582850012C08200
HEX 12C0820012C0820012D5000000000000
HEX 00000000000000000BB09E83F88113C0
HEX 81B0C08180E3C3878F000B98B3868C83
HEX 13C081B0C08180B3E6CC99000B8C838C
HEX 8C15B0F08780B3E68C98000B8C838C8C
HEX E0E3C799CEF1F1C38180B3C6878E000B
HEX 8C838C8CB0E6CC99C399B3C68180E3E7
HEX 8C98000B8C838C8CB0E6CC99C399B3C6
HEX 818083E68C98000B98B3868CB3E6CC99
HEX C399B3C6818083E6CC99000BB09E83F8
HEX E1E3879FC3F1B3868780E3C3878F0010
HEX E0809815830010E0809815830010E080
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
*--- 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
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 DB $00 ; HGR column index
DB $05 ; 0..5..10..15
DB $0A
DB $0F
DB $14
DB $19
DB $1E
DB $23
DB $28
DB $2D
DB $32
DB $37
DB $3C
DB $41
DB $46
DB $4B
DB $50
DB $55
DB $5A
DB $5F
DB $64
DB $69
DB $6E
DB $73
DB $78
DB $7D
DB $82
DB $87
*--- 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
*--- From a X in board to a Y column in HGR (0..39)
bytable DB $00
DB $01
DB $02
DB $04
DB $05
DB $07
DB $08
DB $0A
DB $0B
DB $0C
DB $0E
DB $0F
DB $11
DB $12
DB $14
DB $15
DB $16
DB $18
DB $19
DB $1B
DB $1C
DB $1E
DB $1F
DB $20
DB $22
DB $23
DB $25
DB $26
*--- From a X in board to a sprite table (0..6)
bitable DB $00 ; 0..4: sprite is 2-col wide
DB $03 ; 5..6: sprite is 3-col wide
DB $06
DB $02
DB $05
DB $01
DB $04
DB $00
DB $03
DB $06
DB $02
DB $05
DB $01
DB $04
DB $00
DB $03
DB $06
DB $02
DB $05
DB $01
DB $04
DB $00
DB $03
DB $06
DB $02
DB $05
DB $01
DB $04
*--- From a X in HGR (0..139) coordinate to a Y column in HGR (0..39)
xbytable DB $00 ; and the index within the table
DB $00
DB $00
DB $00
DB $01
DB $01
DB $01
DB $02
DB $02
DB $02
DB $02
DB $03
DB $03
DB $03
DB $04
DB $04
DB $04
DB $04
DB $05
DB $05
DB $05
DB $06
DB $06
DB $06
DB $06
DB $07
DB $07
DB $07
DB $08
DB $08
DB $08
DB $08
DB $09
DB $09
DB $09
DB $0A
DB $0A
DB $0A
DB $0A
DB $0B
DB $0B
DB $0B
DB $0C
DB $0C
DB $0C
DB $0C
DB $0D
DB $0D
DB $0D
DB $0E
DB $0E
DB $0E
DB $0E
DB $0F
DB $0F
DB $0F
DB $10
DB $10
DB $10
DB $10
DB $11
DB $11
DB $11
DB $12
DB $12
DB $12
DB $12
DB $13
DB $13
DB $13
DB $14
DB $14
DB $14
DB $14
DB $15
DB $15
DB $15
DB $16
DB $16
DB $16
DB $16
DB $17
DB $17
DB $17
DB $18
DB $18
DB $18
DB $18
DB $19
DB $19
DB $19
DB $1A
DB $1A
DB $1A
DB $1A
DB $1B
DB $1B
DB $1B
DB $1C
DB $1C
DB $1C
DB $1C
DB $1D
DB $1D
DB $1D
DB $1E
DB $1E
DB $1E
DB $1E
DB $1F
DB $1F
DB $1F
DB $20
DB $20
DB $20
DB $20
DB $21
DB $21
DB $21
DB $22
DB $22
DB $22
DB $22
DB $23
DB $23
DB $23
DB $24
DB $24
DB $24
DB $24
DB $25
DB $25
DB $25
DB $26
DB $26
DB $26
DB $26
DB $27
DB $27
DB $27
*--- From a X in HGR to a sprite table (0..6)
xbitable DB $00 ; 0..4: sprite is 2-col wide
DB $02 ; 5..6: sprite is 3-col wide
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
DB $03
DB $05
DB $00
DB $02
DB $04
DB $06
DB $01
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
scorebuf ds 256

931
loderunner/LR.RWTS.S Normal file
View File

@ -0,0 +1,931 @@
*
* Lode Runner
* (c) 1983, Broderbund Software
* (s) 2014, Brutal Deluxe Software
*
*---------------------------------------
* RWTS
*---------------------------------------
lst on
la = * ; must be $B600
lst off
LB600 HEX 01A527C909D018A52B4A4A4A4A09C085
HEX 3FA95C853E18ADFE086DFF088DFE08AE
HEX FF083015BD4D08853DCEFF08ADFE0885
HEX 27CEFE08A62B6C3E00EEFE08EEFE0820
HEX 89FE2093FE202FFBA62B6CFD08000D0B
HEX 09070503010E0C0A080604020F002064
HEX A7B008A900A88D5DB69140ADC5B54CD2
HEX A6AD5DB6F008EEBDB5D003EEBEB5A900
HEX 8D5DB64C46A58DBCB520A8A620EAA24C
HEX 7DA2A013B142D014C8C017D0F7A019B1
HEX 4299A4B5C8C01DD0F64CBCA6A2FF8E5D
HEX B6D0F600000000000000000000000000
HEX 00000000000000000000000000000000
HEX 2058FCA9C220EDFDA90120DAFDA9AD20
HEX EDFDA90020DAFD600000000000000000
HEX 0000000000000000000000000000B609
LB700 STX LB7E9
STX LB7F7
LDA #$01
STA LB7F8
STA LB7EA
LDA LB7E0
STA LB7E1
LDA #$02
STA LB7EC
LDA #$04
STA LB7ED
LDY LB7E7
DEY
STY LB7F0+1
LDA #$01
STA LB7F4
TXA
LSR
LSR
LSR
LSR
TAX
LDA #$00
STA $04F8,X
STA $0478,X
JSR LB793
LDX #$FF
TXS
STX LB7EB
NOP
NOP
NOP
JSR SETKBD
JMP $9D84
LDA LB7E7
SEC
SBC LB7F0+1
STA LB7E1
LDA LB7E7
STA LB7F0+1
DEC LB7F0+1
LDA #$02
STA LB7EC
LDA #$04
STA LB7ED
LDA #$02
STA LB7F4
JSR LB793
LDA LB7E7
STA LB600+$FE
CLC
ADC #$09
STA LB7F0+1
LDA #$0A
STA LB7E1
SEC
SBC #$01
STA LB600+$FF
STA LB7ED
JSR LB793
RTS
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LB793 LDA LB7E4+1
LDY LB7E4
JSR LB7B5
LDY LB7ED
DEY
BPL LB7A9
LDY #$0F
NOP
NOP
DEC LB7EC
LB7A9 STY LB7ED
DEC LB7F0+1
DEC LB7E1
BNE LB793
RTS
LB7B5 PHP
SEI
JSR LBD00
BCS LB7BF
PLP
CLC
RTS
LB7BF PLP
SEC
RTS
DS 29
* LDA LB558+$64
* STA LB7F0+1
* LDA #$00
* STA LB7F0
* LDA LB5C0+$39
* EOR #$FF
* STA LB7EB
* RTS
*
* LDA #$00
* TAY
*LB7D9 STA ($42),Y
* INY
* BNE LB7D9
* RTS
DB $00
LB7E0 DB $1B
LB7E1 DB $00
DB $0A
DB $1B
LB7E4 DA $B7E8
DB $00
LB7E7 DB $B6
LB7E8 DB $01
LB7E9 DB $70
LB7EA DB $01
LB7EB DB $FF
LB7EC DB $13
LB7ED DB $05
DA LB7FB
LB7F0 DA $9600
DB $00
DB $01
LB7F4 DB $01
DB $00
DB $01
LB7F7 DB $60
LB7F8 DB $01
DB $00
DB $00
LB7FB DB $00
DB $01
DB $EF
DB $D8
DB $00
LB800 LDX #$00
LDY #$02
LB804 DEY
LDA ($3E),Y
LSR
ROL LBC00,X
LSR
ROL LBC00,X
STA LBB00,Y
INX
CPX #$56
BCC LB804
LDX #$00
TYA
BNE LB804
LDX #$55
LB81E LDA LBC00,X
AND #$3F
STA LBC00,X
DEX
BPL LB81E
RTS
LB82A SEC
STX $27
STX $0678
LDA $C08D,X
LDA $C08E,X
BMI LB8B4
LDA LBC00
STA $26
LDA #$FF
STA $C08F,X
ORA $C08C,X
PHA
PLA
NOP
LDY #$04
LB84A PHA
PLA
JSR LB8B9
DEY
BNE LB84A
LDA #$D5
JSR LB8B8
LDA #$AA
JSR LB8B8
LDA #$AD
JSR LB8B8
TYA
LDY #$56
BNE LB869
LB866 LDA LBC00,Y
LB869 EOR LBBFF,Y
TAX
LDA LBA29,X
LDX $27
STA $C08D,X
LDA $C08C,X
DEY
BNE LB866
LDA $26
NOP
LB87E EOR LBB00,Y
TAX
LDA LBA29,X
LDX $0678
STA $C08D,X
LDA $C08C,X
LDA LBB00,Y
INY
BNE LB87E
TAX
LDA LBA29,X
LDX $27
JSR LB8BB
LDA #$DE
JSR LB8B8
LDA #$AA
JSR LB8B8
LDA #$EB
JSR LB8B8
LDA #$FF
JSR LB8B8
LDA $C08E,X
LB8B4 LDA $C08C,X
RTS
LB8B8 CLC
LB8B9 PHA
PLA
LB8BB STA $C08D,X
ORA $C08C,X
RTS
LB8C2 LDY #$00
LB8C4 LDX #$56
LB8C6 DEX
BMI LB8C4
LDA LBB00,Y
LSR LBC00,X
ROL
LSR LBC00,X
ROL
STA ($3E),Y
INY
CPY $26
BNE LB8C6
RTS
LB8DC LDY #$20
LB8DE DEY
BEQ LB942
LB8E1 LDA $C08C,X
BPL LB8E1
LB8E6 EOR #$D5
BNE LB8DE
NOP
LB8EB LDA $C08C,X
BPL LB8EB
CMP #$AA
BNE LB8E6
LDY #$56
LB8F6 LDA $C08C,X
BPL LB8F6
CMP #$AD
BNE LB8E6
LDA #$00
LB901 DEY
STY $26
LB904 LDY $C08C,X
BPL LB904
EOR LBA00,Y
LDY $26
STA LBC00,Y
BNE LB901
LB913 STY $26
LB915 LDY $C08C,X
BPL LB915
EOR LBA00,Y
LDY $26
STA LBB00,Y
INY
BNE LB913
LB925 LDY $C08C,X
BPL LB925
CMP LBA00,Y
BNE LB942
LB92F LDA $C08C,X
BPL LB92F
CMP #$DE
BNE LB942
NOP
LB939 LDA $C08C,X
BPL LB939
CMP #$AA
BEQ LB99E
LB942 SEC
RTS
LB944 LDY #$FC
STY $26
LB948 INY
BNE LB94F
INC $26
BEQ LB942
LB94F LDA $C08C,X
BPL LB94F
LB954 CMP #$D5
BNE LB948
NOP
LB959 LDA $C08C,X
BPL LB959
CMP #$AA
BNE LB954
LDY #$03
LB964 LDA $C08C,X
BPL LB964
CMP #$96
BNE LB954
LDA #$00
LB96F STA $27
LB971 LDA $C08C,X
BPL LB971
ROL
STA $26
LB979 LDA $C08C,X
BPL LB979
AND $26
STA |$002C,Y
EOR $27
DEY
BPL LB96F
TAY
BIT $B7
LB98B LDA $C08C,X
BPL LB98B
CMP #$DE
BNE LB942
NOP
LB995 LDA $C08C,X
BPL LB995
CMP #$AA
BIT $A4
LB99E CLC
RTS
LB9A0 STX $2B
STA $2A
CMP $0478
BEQ LB9FC
LDA #$00
STA $26
LB9AD LDA $0478
STA $27
SEC
SBC $2A
BEQ LB9EA
BCS LB9C0
EOR #$FF
INC $0478
BCC LB9C5
LB9C0 ADC #$FE
DEC $0478
LB9C5 CMP $26
BCC LB9CB
LDA $26
LB9CB CMP #$0C
BCS LB9D0
TAY
LB9D0 SEC
JSR LB9EE
LDA LBA11,Y
JSR LBA00
LDA $27
CLC
JSR LB9F1
LDA LBA1D,Y
JSR LBA00
INC $26
BNE LB9AD
LB9EA JSR LBA00
CLC
LB9EE LDA $0478
LB9F1 AND #$03
ROL
ORA $2B
TAX
LDA $C080,X
LDX $2B
LB9FC RTS
TAX
LDY #$A0
LBA00 LDX #$11
LBA02 DEX
BNE LBA02
INC $46
BNE LBA0B
INC $47
LBA0B SEC
SBC #$01
BNE LBA00
RTS
LBA11 HEX 01302824201E1D1C1C1C1C1C
LBA1D HEX 702C26221F1E1D1C1C1C1C1C
LBA29 HEX 96979A9B9D9E9FA6A7ABACADAEAFB2B3
HEX B4B5B6B7B9BABBBCBDBEBFCBCDCECFD3
HEX D6D7D9DADBDCDDDEDFE5E6E7E9EAEBEC
HEX EDEEEFF2F3F4F5F6F7F9FAFBFCFDFEFF
HEX B3B3A0E0B3C3C5B3A0E0B3C3C5B3A0E0
HEX B3B3C5AAA082B3B3C5AAA082C5B3B3AA
HEX 8882C5B3B3AA8882C5C4B3B088
LBA96 HEX 0001989902039C040506A0A1A2A3A4A5
HEX 0708A8A9AA090A0B0C0DB0B10E0F1011
HEX 1213B81415161718191AC0C1C2C3C4C5
HEX C6C7C8C9CA1BCC1C1D1ED0D1D21FD4D5
HEX 2021D822232425262728E0E1E2E3E429
HEX 2A2BE82C2D2E2F303132F0F133343536
HEX 3738F8393A3B3C3D3E3F
LBB00 HEX 00040300000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 000000000000000000000000000000
LBBFF HEX 00
LBC00 HEX 02000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 000000000000
LBC56 SEC
LDA $C08D,X
LDA $C08E,X
BMI LBCBD
LDA #$FF
STA $C08F,X
CMP $C08C,X
PHA
PLA
LBC69 JSR LBCC3
JSR LBCC3
STA $C08D,X
CMP $C08C,X
NOP
DEY
BNE LBC69
LDA #$D5
JSR LBCD5
LDA #$AA
JSR LBCD5
LDA #$96
JSR LBCD5
LDA $41
JSR LBCC4
LDA $44
JSR LBCC4
LDA $3F
JSR LBCC4
LDA $41
EOR $44
EOR $3F
PHA
LSR
ORA $3E
STA $C08D,X
LDA $C08C,X
PLA
ORA #$AA
JSR LBCD4
LDA #$DE
JSR LBCD5
LDA #$AA
JSR LBCD5
LDA #$EB
JSR LBCD5
CLC
LBCBD LDA $C08E,X
LDA $C08C,X
LBCC3 RTS
LBCC4 PHA
LSR
ORA $3E
STA $C08D,X
CMP $C08C,X
PLA
NOP
NOP
NOP
ORA #$AA
LBCD4 NOP
LBCD5 NOP
PHA
PLA
STA $C08D,X
CMP $C08C,X
RTS
HEX 88A5E891A0948896E891A09488969191
HEX C894D0969191C894D09691A3C8A0A585
HEX A4
LBD00 STY $48
STA $49
LDY #$02
STY $06F8
LDY #$04
STY $04F8
LDX LB7E9
LDA $C08E,X
LDA $C08C,X
LDY #$08
LBD19 LDA $C08C,X
PHA
PLA
PHA
PLA
STX $05F8
CMP $C08C,X
BNE LBD2B
DEY
BNE LBD19
LBD2B PHP
LDA $C089,X
LDY #$06
LBD31 LDA ($48),Y
STA |$0036,Y
INY
CPY #$0A
BNE LBD31
LDY #$03
LDA ($3C),Y
STA $47
LDY #$02
LDA ($48),Y
LDY #$10
CMP ($48),Y
BEQ LBD51
STA ($48),Y
PLP
LDY #$00
PHP
LBD51 ROR
BCC LBD59
LDA $C08A,X
BCS LBD5C
LBD59 LDA $C08B,X
LBD5C ROR $35
PLP
PHP
BNE LBD6D
LDY #$07
LBD64 JSR LBA00
DEY
BNE LBD64
LDX $05F8
LBD6D LDY #$04
LDA ($48),Y
JSR LBE5A
PLP
BNE LBDAB
NOP
NOP
NOP
NOP
LDA LB7F4
CMP #$01
BEQ LBDAB
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
LBD9E LDY #$12
LBDA0 DEY
BNE LBDA0
INC $46
BNE LBD9E
INC $47
BNE LBD9E
LBDAB LDY #$0C
LDA ($48),Y
BEQ LBE0B
CMP #$04
BEQ LBE0D
ROR
PHP
BCS LBDBC
JSR LB800
LBDBC LDY #$30
STY $0578
LBDC1 LDX $05F8
JSR LB944
BCC LBDED
LBDC9 DEC $0578
BPL LBDC1
LBDCE LDA $0478
PHA
LDA #$60
JSR LBE95
DEC $06F8
BEQ LBE04
LDA #$04
STA $04F8
LDA #$00
JSR LBE5A
PLA
LBDE7 JSR LBE5A
JMP LBDBC
LBDED LDY $2E
CPY $0478
BEQ LBE10
LDA $0478
PHA
TYA
JSR LBE95
PLA
DEC $04F8
BNE LBDE7
BEQ LBDCE
LBE04 PLA
LDA #$40
LBE07 PLP
JMP LBE47+1
LBE0B BEQ LBE46
LBE0D JMP L8E00
LBE10 LDY #$03
LDA ($48),Y
PHA
LDA $2F
LDY #$0E
STA ($48),Y
PLA
BEQ LBE26
CMP $2F
BEQ LBE26
LDA #$20
BNE LBE07
LBE26 LDY #$05
LDA ($48),Y
TAY
LDA LBFB8,Y
CMP $2D
BNE LBDC9
PLP
BCC LBE51
JSR LB8DC
PHP
BCS LBDC9
PLP
LDX #$00
STX $26
JSR LB8C2
LDX $05F8
LBE46 CLC
LBE47 BIT $38
LDY #$0D
STA ($48),Y
LDA $C088,X
RTS
LBE51 JSR LB82A
BCC LBE46
LDA #$10
BCS LBE47+1
LBE5A PHA
LDY #$01
LDA ($3C),Y
ROR
PLA
BCC LBE6B
ASL
JSR LBE6B
LSR $0478
RTS
LBE6B STA $2A
JSR LBE8E
LDA $0478,Y
BIT $35
BMI LBE7A
LDA $04F8,Y
LBE7A STA $0478
LDA $2A
BIT $35
BMI LBE88
STA $04F8,Y
BPL LBE8B
LBE88 STA $0478,Y
LBE8B JMP LB9A0
LBE8E TXA
LSR
LSR
LSR
LSR
TAY
RTS
LBE95 PHA
LDY #$02
LDA ($48),Y
ROR
ROR $35
JSR LBE8E
PLA
ASL
BIT $35
BMI LBEAB
STA $04F8,Y
BPL LBEAE
LBEAB STA $0478,Y
LBEAE RTS
LBEAF LDY #$03
LDA ($48),Y
STA $41
LDA #$AA
STA $3E
LDY #$56
LDA #$00
STA $44
LBEBF STA LBBFF,Y
DEY
BNE LBEBF
LBEC5 STA LBB00,Y
DEY
BNE LBEC5
LDA #$00
JSR LBE95
LDA #$28
STA $45
LBED4 LDA $44
JSR LBE5A
JSR LBF0D
LDA #$08
BCS LBF04
LDA #$30
STA $0578
LBEE5 SEC
DEC $0578
BEQ LBF04
JSR LB944
BCS LBEE5
LDA $2D
BNE LBEE5
JSR LB8DC
BCS LBEE5
INC $44
LDA $44
CMP #$23
BCC LBED4
CLC
BCC LBF09
LBF04 LDY #$0D
STA ($48),Y
SEC
LBF09 LDA $C088,X
RTS
LBF0D LDA #$00
STA $3F
LDY #$80
BNE LBF17
LBF15 LDY $45
LBF17 JSR LBC56
BCS LBF87
JSR LB82A
BCS LBF87
INC $3F
LDA $3F
CMP #$10
BCC LBF15
LDY #$0F
STY $3F
LDA #$30
STA $0578
LBF32 STA LBFA8,Y
DEY
BPL LBF32
LDY $45
LBF3A JSR LBF87
JSR LBF87
JSR LBF87
PHA
PLA
NOP
DEY
BNE LBF3A
JSR LB944
BCS LBF71
LDA $2D
BEQ LBF67
LDA #$10
CMP $45
LDA $45
SBC #$01
STA $45
CMP #$05
BCS LBF71
SEC
RTS
LBF62 JSR LB944
BCS LBF6C
LBF67 JSR LB8DC
BCC LBF88
LBF6C DEC $0578
BNE LBF62
LBF71 JSR LB944
BCS LBF81
LDA $2D
CMP #$0F
BNE LBF81
JSR LB8DC
BCC LBF0D
LBF81 DEC $0578
BNE LBF71
SEC
LBF87 RTS
LBF88 LDY $2D
LDA LBFA8,Y
BMI LBF6C
LDA #$FF
STA LBFA8,Y
DEC $3F
BPL LBF62
LDA $44
BNE LBFA6
LDA $45
CMP #$10
BCC LBF87
DEC $45
DEC $45
LBFA6 CLC
RTS
LBFA8 HEX FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
LBFB8 HEX 000D0B09070503010E0C0A080604020F
ds \
* HEX 20DCABA9108DF0B3A9238DEFB3604C44
* HEX B70000008D63AA8D70AA8D71AA60205B
* HEX A78CB7AA60207EAEAE9BB39A2016A3BA
* HEX 8E9BB3A9094C85B3

1364
loderunner/LR.SPRITES.S Normal file

File diff suppressed because it is too large Load Diff

2624
loderunner/LR.TABLES.S Normal file

File diff suppressed because it is too large Load Diff