* * 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 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