Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;--------------;
- ; Some defines ;
- ;--------------;
- !AirTile = $0025 ; Tile that comes in place of destroyed tiles.
- ;--------;
- ; Hijack ;
- ;--------;
- if read1($00FFD5) == $23
- sa1rom
- !base1 = $3000
- !base2 = $6000
- !base3 = $000000
- !7E = $40
- !D8 = $3216
- !E4 = $322C
- !14D4 = $3258
- !14E0 = $326E
- !1540 = $32C6
- !1662 = $75EA
- else
- lorom
- !base1 = $0000
- !base2 = $0000
- !base3 = $800000
- !7E = $7E
- !D8 = $D8
- !E4 = $E4
- !14D4 = $14D4
- !14E0 = $14E0
- !1540 = $1540
- !1662 = $1662
- endif
- org $02808D|!base3
- autoclean JSL Main
- NOP
- ;----------------------------;
- ; Do not change any of this! ;
- ;----------------------------;
- freecode
- ;----------------------;
- ; Various tables ;
- ; Adjusting is allowed ;
- ;----------------------;
- TileList:
- dw $0048,$0106,$0114,$0117,$0118,$0119,$011A,$011B,$011C,$011D,$011E,$011F,$0120,$0121,$0122,$0123,$0124,$0125,$0126,$0127,$0128,$0129,$012A,$012B,$012E,$0130,$0132,$02A0,$02B0,$02C0,$02D0,$02E0,$02F0,$0300,$0301,$0380,$0381,$03C0,$0400
- ; List of tiles (16-bit values) that are explosion-sensitive.
- ; You are allowed and encouraged to adjust these.
- ; Note that tile 048 is a special exception - if you're not
- ; going to make tile 048 explosion-sensitive, then you can
- ; remove the code between "DestroyBlock:" and "NoSpinner:".
- ; You can add more tiles, or delete some, if you want to.
- TileListEnd:
- ; The following tables denote the X and Y positions (16-bit) of each
- ; seperate 16x16 square of the 64x64 Bob-Omb explosion.
- ; You can change these as you wish.
- XDispLo:
- db $F0,$00,$10,$20,$F0,$00,$10,$20,$F0,$00,$10,$20,$F0,$00,$10,$20
- XDispHi:
- db $FF,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$00
- YDispLo:
- db $F0,$F0,$F0,$F0,$00,$00,$00,$00,$10,$10,$10,$10,$20,$20,$20,$20
- YDispHi:
- db $FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- ; Index to the Bob-Omb 16x16 square handling.
- ; Every frame, 4 of these tiles are handled.
- ; This is to prevent the screen from flickering when
- ; too many tiles are destroyed at once.
- ; So that's why they're split out over 4 frames.
- ; Adjusting this would not be very useful.
- MinimumTiles:
- db $00,$04,$08,$0C
- ;------------------------;
- ; Custom code ;
- ; Adjusting at own risk! ;
- ;------------------------;
- Main:
- PHB ; Wrapper.
- PHK ; I used the Y index a lot here for 16-bit addresses
- PLB ; so this is necessary. Do not remove or adjust these lines.
- LDA #$11 ; Hijacked code.
- STA !1662,x ;
- LDA !1540,x
- CMP #$3C ; This code runs once only - the very start of the explosion, frame #$3F (it decrements)
- BCS LoadTiles
- JMP DontLoadTiles+1 ; Terminate code if it's not this frame.
- LoadTiles:
- SEC
- SBC #$3C
- TAY
- LDA.w MinimumTiles,y
- PHA
- LDY #$03 ; 16 (15+1, $F+1) blocks to check in a 4x4 square. The radius is 64x64 pixels.
- Loop:
- PHY
- TYA
- CLC
- ADC $02,s
- TAY
- LDA !E4,x ; \ setup block properties
- CLC ; | $E4,x is more or less the center X position.
- ADC XDispLo,y ; | Each block in the 4x4 checked square has a different X and Y position.
- STA $9A ; | Therefore, extra tables are required to prepare the positions.
- LDA !14E0,x ; |
- ADC XDispHi,y ; | High byte
- STA $9B ; |
- LDA !D8,x ; |
- CLC ; | Y position, low and high bytes
- ADC YDispLo,y ; |
- STA $98 ; |
- LDA !14D4,x ; |
- ADC YDispHi,y ; |
- STA $99 ; /
- JSR Map16Blk ; Subroutine that gets the Map16 tile that the sprite is touching (or in this case, one of the sixteen explosion squares)
- LDA [$05] ; [$05] = 24-bit pointer to low byte Map16 tables.
- XBA ; Get the low byte...
- INC $07 ; Increment $07 so [$05] points to the high byte of Map16.
- LDA [$05] ; Now get the high byte.
- XBA ;
- PHX ; Preserve X as we're going to need it later again.
- REP #$30
- LDX.w #TileListEnd-TileList ; Get maximum size of table into the X index
- LoopTile:
- CMP.w TileList,x ; \ This loop here is to check if this specific 16x16 of the Bob-Omb explosion...
- BEQ DestroyBlock ; | ... is in contact with a tile specified in TileList:
- DEX ; | It checks the rightmost value first, then moves up left...
- DEX ; |
- BPL LoopTile ; |
- SEP #$30 ; | Effectively, if the 16x16 square of the explosion doesn't touch any of these tiles...
- PLX ; |
- JMP SkipTileUpload ; / ...then get to the next one.
- DestroyBlock:
- ; Note: If you do not want tile 048 to be destroyed by the Bob-Omb explosion,
- ; remove the following code up to the "NoSpinner:" label.
- ; All of this code is specific to tile 048, as it requires killing a turn block bounce sprite too.
- CMP #$0048 ; Check if the tile in question is 048 (always spinning turn block).
- SEP #$30 ;
- BNE NoSpinner ; If not, don't handle the specific code.
- PHY
- LDY #$03
- BounceSpriteLoop:
- LDA $1699|!base2,y ; \ Check if bounce sprite num = spinning turn lock
- CMP #$07 ; |
- BEQ SpinningTurnBlock ; | if so, branch
- DEY ; | decrease Y otherwise and check next slot
- BPL BounceSpriteLoop ; |
- DontLoopBounce:
- PLY ; |
- BRA NoSpinner ; / if all slots are handled, go to the general code
- SpinningTurnBlock:
- LDA $16A1|!base2,y ; Get X and Y positions of the bounce sprite and turn block into scratch RAM.
- AND #$F0
- STA $00
- LDA $16A9|!base2,y
- STA $01
- LDA $16A5|!base2,y
- AND #$F0
- STA $02
- LDA $16AD|!base2,y
- STA $03
- LDA $98
- AND #$F0
- STA $04
- LDA $99
- STA $05
- LDA $9A
- AND #$F0
- STA $06
- LDA $9B
- STA $07
- REP #$20
- LDA $00 ; Check if X and Y positions of both are equal.
- CMP $04 ; If not, decrease Y.
- BNE DecreaseYSpin ; (This to prevent that bounce sprites are destroyed that do not actually belong to the current turn block tile)
- LDA $02
- CMP $06
- BEQ Correct
- DecreaseYSpin:
- SEP #$20
- DEY
- BPL BounceSpriteLoop
- BRA DontLoopBounce
- Correct:
- SEP #$20
- LDA #$00 ; Terminate spinning turn block bounce sprite.
- STA $1699|!base2,y
- STA $18CE|!base2,y
- DEY
- BPL BounceSpriteLoop
- BRA DontLoopBounce
- NoSpinner:
- PLX
- PHB ; \ Shatter block routine.
- PHY ; |
- LDA #$02 ; |
- PHA ; |
- PLB ; |
- LDA #$00 ; |
- JSL $028663|!base3 ; |
- PLY ; |
- PLB ; /
- PHP
- REP #$30 ; \ change sprite to block
- LDA.w #!AirTile ; |
- STA $03 ; |
- JSR SUBL_SET_MAP16 ; |
- PLP ; /
- SkipTileUpload:
- PLY
- DEY
- BMI DontLoadTiles
- JMP Loop
- DontLoadTiles:
- PLA
- PLB
- RTL
- Map16Blk:
- LDA $9A ; Get X low position of sprite
- STA $02 ; store into $02
- LDA $9B ;
- STA $03
- LDA $98 ; Get y low position of sprite
- STA $00 ; Store into $00
- LDA $99 ; Get y hi
- STA $01 ; Store into $01
- LDA $00
- AND #$F0
- STA $06
- LDA $02
- LSR
- LSR
- LSR
- LSR
- ORA $06
- PHA
- LDA $5B
- AND #$01
- BNE CODE_01D977
- PLA
- LDX $03
- CLC
- ;ADC $0BF6|!base2,X
- ADC.l $00BA60|!base3,X
- STA $05
- ;LDA $0C56|!base2,X
- LDA.l $00BA9C|!base3,X
- ADC $01
- STA $06
- BRA CODE_01D989
- CODE_01D977:
- PLA
- LDX $01
- CLC
- ADC.l $00BA80|!base3,x
- STA $05
- LDA.l $00BABC|!base3,x
- ADC $03
- STA $06
- CODE_01D989:
- LDA #!7E
- STA $07
- LDX $15E9|!base2
- RTS
- SUBL_SET_MAP16: PHP ;A:0266 X:0007 Y:0001 D:0000 DB:01 S:01EE P:envmxdizcHC:1306 VC:149 00 FL:1681
- REP #$30 ;A:0266 X:0007 Y:0001 D:0000 DB:01 S:01ED P:envmxdizcHC:1328 VC:149 00 FL:1681
- PHY ;A:0266 X:0007 Y:0001 D:0000 DB:01 S:01ED P:envmxdizcHC:1350 VC:149 00 FL:1681
- PHX ;A:0266 X:0007 Y:0001 D:0000 DB:01 S:01EB P:envmxdizcHC:0012 VC:150 00 FL:1681
- TAX ;A:0266 X:0007 Y:0001 D:0000 DB:01 S:01E9 P:envmxdizcHC:0042 VC:150 00 FL:1681
- LDA $03 ;A:0266 X:0266 Y:0001 D:0000 DB:01 S:01E9 P:envmxdizcHC:0056 VC:150 00 FL:1681
- PHA ;A:0266 X:0266 Y:0001 D:0000 DB:01 S:01E9 P:envmxdizcHC:0088 VC:150 00 FL:1681
- JSR SUB_8034 ;A:0266 X:0266 Y:0001 D:0000 DB:01 S:01E7 P:envmxdizcHC:0118 VC:150 00 FL:1681
- PLA ;A:0010 X:0000 Y:0006 D:0000 DB:00 S:01DC P:envmxdizCHC:0726 VC:032 00 FL:11805
- STA $03 ;A:02A8 X:0000 Y:0006 D:0000 DB:00 S:01DE P:envmxdizCHC:0762 VC:032 00 FL:11805
- PLX ;A:02A8 X:0000 Y:0006 D:0000 DB:00 S:01DE P:envmxdizCHC:0794 VC:032 00 FL:11805
- PLY ;A:02A8 X:0020 Y:0006 D:0000 DB:00 S:01E0 P:envmxdizCHC:0830 VC:032 00 FL:11805
- PLP ;A:02A8 X:0020 Y:0001 D:0000 DB:00 S:01E2 P:envmxdizCHC:0866 VC:032 00 FL:11805
- RTS ;A:02A8 X:0020 Y:0001 D:0000 DB:00 S:01E3 P:envmxdizCHC:0894 VC:032 00 FL:11805
- RETURN18: PLX
- PLB
- PLP
- RTS
- SUB_8034: PHP ;A:0266 X:0266 Y:0001 D:0000 DB:01 S:01E5 P:envmxdizcHC:0164 VC:150 00 FL:1682
- SEP #$20 ;A:0266 X:0266 Y:0001 D:0000 DB:01 S:01E4 P:envmxdizcHC:0186 VC:150 00 FL:1682
- PHB ;A:0266 X:0266 Y:0001 D:0000 DB:01 S:01E4 P:envMxdizcHC:0208 VC:150 00 FL:1682
- LDA.B #$00|!base3>>16 ;A:0200 X:0266 Y:0001 D:0000 DB:01 S:01E3 P:envMxdiZcHC:0286 VC:150 00 FL:1682
- PHA ;A:0200 X:0266 Y:0001 D:0000 DB:01 S:01E3 P:envMxdiZcHC:0324 VC:150 00 FL:1682
- PLB ;A:0200 X:0266 Y:0001 D:0000 DB:01 S:01E2 P:envMxdiZcHC:0346 VC:150 00 FL:1682
- REP #$30 ;A:0200 X:0266 Y:0001 D:0000 DB:00 S:01E3 P:envMxdiZcHC:0374 VC:150 00 FL:1682
- PHX ;A:0200 X:0266 Y:0001 D:0000 DB:00 S:01E3 P:envmxdiZcHC:0396 VC:150 00 FL:1682
- LDA $9A ;A:0200 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envmxdiZcHC:0426 VC:150 00 FL:1682
- STA $0C ;A:0070 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envmxdizcHC:0458 VC:150 00 FL:1682
- LDA $98 ;A:0070 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envmxdizcHC:0490 VC:150 00 FL:1682
- STA $0E ;A:0130 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envmxdizcHC:0522 VC:150 00 FL:1682
- LDA #$0000 ;A:0130 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envmxdizcHC:0554 VC:150 00 FL:1682
- SEP #$20 ;A:0000 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envmxdiZcHC:0578 VC:150 00 FL:1682
- LDA $5B ;A:0000 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0600 VC:150 00 FL:1682
- STA $09 ;A:0000 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0624 VC:150 00 FL:1682
- LDA $1933|!base2 ;A:0000 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0648 VC:150 00 FL:1682
- BEQ NO_SHIFT ;A:0000 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0680 VC:150 00 FL:1682
- LSR $09
- NO_SHIFT: LDY $0E ;A:0000 X:0266 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0702 VC:150 00 FL:1682
- LDA $09 ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:envMxdizcHC:0734 VC:150 00 FL:1682
- AND #$01 ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0758 VC:150 00 FL:1682
- BEQ HORIZ ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0774 VC:150 00 FL:1682
- LDA $9B
- STA $00
- LDA $99
- STA $9B
- LDA $00
- STA $99
- LDY $0C
- HORIZ: CPY #$0200 ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0796 VC:150 00 FL:1682
- BCS RETURN18 ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0820 VC:150 00 FL:1682
- LDA $1933|!base2 ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0836 VC:150 00 FL:1682
- ASL A ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0868 VC:150 00 FL:1682
- TAX ;A:0000 X:0266 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0882 VC:150 00 FL:1682
- LDA.w $BEA8,x ;[$00:BEA8] ;A:0000 X:0000 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0896 VC:150 00 FL:1682
- STA $65 ;A:00A8 X:0000 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0928 VC:150 00 FL:1682
- LDA.w $BEA9,x ;[$00:BEA9] ;A:00A8 X:0000 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0952 VC:150 00 FL:1682
- STA $66 ;A:00BD X:0000 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0984 VC:150 00 FL:1682
- STZ $67 ;A:00BD X:0000 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1008 VC:150 00 FL:1682
- LDA $1925|!base2 ;A:00BD X:0000 Y:0130 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1032 VC:150 00 FL:1682
- ASL A ;A:0000 X:0000 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1064 VC:150 00 FL:1682
- TAY ;A:0000 X:0000 Y:0130 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1078 VC:150 00 FL:1682
- LDA ($65),y ;[$00:BDA8] ;A:0000 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1092 VC:150 00 FL:1682
- STA $04 ;A:00D8 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1132 VC:150 00 FL:1682
- INY ;A:00D8 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1156 VC:150 00 FL:1682
- LDA ($65),y ;[$00:BDA9] ;A:00D8 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:1170 VC:150 00 FL:1682
- STA $05 ;A:00BA X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1210 VC:150 00 FL:1682
- STZ $06 ;A:00BA X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1234 VC:150 00 FL:1682
- LDA $9B ;A:00BA X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:1258 VC:150 00 FL:1682
- STA $07 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1282 VC:150 00 FL:1682
- ASL A ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1306 VC:150 00 FL:1682
- CLC ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1320 VC:150 00 FL:1682
- ADC $07 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1334 VC:150 00 FL:1682
- TAY ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:1358 VC:150 00 FL:1682
- LDA ($04),y ;[$00:BAD8] ;A:0000 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0004 VC:151 00 FL:1682
- STA $6B ;A:0000 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0044 VC:151 00 FL:1682
- STA $6E ;A:0000 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0068 VC:151 00 FL:1682
- INY ;A:0000 X:0000 Y:0000 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0092 VC:151 00 FL:1682
- LDA ($04),y ;[$00:BAD9] ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0106 VC:151 00 FL:1682
- STA $6C ;A:00C8 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0146 VC:151 00 FL:1682
- STA $6F ;A:00C8 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0170 VC:151 00 FL:1682
- LDA #!7E ;A:00C8 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0194 VC:151 00 FL:1682
- STA $6D ;A:007E X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0210 VC:151 00 FL:1682
- INC A ;A:007E X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0234 VC:151 00 FL:1682
- STA $70 ;A:007F X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0248 VC:151 00 FL:1682
- LDA $09 ;A:007F X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0272 VC:151 00 FL:1682
- AND #$01 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0296 VC:151 00 FL:1682
- BEQ NO_AND ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0312 VC:151 00 FL:1682
- LDA $99
- LSR A
- LDA $9B
- AND #$01
- BRA LABEL52
- NO_AND: LDA $9B ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0334 VC:151 00 FL:1682
- LSR A ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0358 VC:151 00 FL:1682
- LDA $99 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZcHC:0372 VC:151 00 FL:1682
- LABEL52: ROL A ;A:0001 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0396 VC:151 00 FL:1682
- ASL A ;A:0002 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0410 VC:151 00 FL:1682
- ASL A ;A:0004 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0424 VC:151 00 FL:1682
- ORA #$20 ;A:0008 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0438 VC:151 00 FL:1682
- STA $04 ;A:0028 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0454 VC:151 00 FL:1682
- CPX #$0000 ;A:0028 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0478 VC:151 00 FL:1682
- BEQ NO_ADD ;A:0028 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZCHC:0502 VC:151 00 FL:1682
- CLC
- ADC #$10
- STA $04
- NO_ADD: LDA $98 ;A:0028 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZCHC:0524 VC:151 00 FL:1682
- AND #$F0 ;A:0030 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizCHC:0548 VC:151 00 FL:1682
- CLC ;A:0030 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizCHC:0564 VC:151 00 FL:1682
- ASL A ;A:0030 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0578 VC:151 00 FL:1682
- ROL A ;A:0060 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0592 VC:151 00 FL:1682
- STA $05 ;A:00C0 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0606 VC:151 00 FL:1682
- ROL A ;A:00C0 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0630 VC:151 00 FL:1682
- AND #$03 ;A:0080 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizCHC:0644 VC:151 00 FL:1682
- ORA $04 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdiZCHC:0660 VC:151 00 FL:1682
- STA $06 ;A:0028 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizCHC:0684 VC:151 00 FL:1682
- LDA $9A ;A:0028 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizCHC:0708 VC:151 00 FL:1682
- AND #$F0 ;A:0070 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizCHC:0732 VC:151 00 FL:1682
- LSR A ;A:0070 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizCHC:0748 VC:151 00 FL:1682
- LSR A ;A:0038 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0762 VC:151 00 FL:1682
- LSR A ;A:001C X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0776 VC:151 00 FL:1682
- STA $04 ;A:000E X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0790 VC:151 00 FL:1682
- LDA $05 ;A:000E X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envMxdizcHC:0814 VC:151 00 FL:1682
- AND #$C0 ;A:00C0 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0838 VC:151 00 FL:1682
- ORA $04 ;A:00C0 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0854 VC:151 00 FL:1682
- STA $07 ;A:00CE X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0878 VC:151 00 FL:1682
- REP #$20 ;A:00CE X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvMxdizcHC:0902 VC:151 00 FL:1682
- LDA $09 ;A:00CE X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvmxdizcHC:0924 VC:151 00 FL:1682
- AND #$0001 ;A:0100 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envmxdizcHC:0956 VC:151 00 FL:1682
- BNE LABEL51 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envmxdiZcHC:0980 VC:151 00 FL:1682
- LDA $1A ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envmxdiZcHC:0996 VC:151 00 FL:1682
- SEC ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envmxdiZcHC:1028 VC:151 00 FL:1682
- SBC #$0080 ;A:0000 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:envmxdiZCHC:1042 VC:151 00 FL:1682
- TAX ;A:FF80 X:0000 Y:0001 D:0000 DB:00 S:01E1 P:eNvmxdizcHC:1066 VC:151 00 FL:1682
- LDY $1C ;A:FF80 X:FF80 Y:0001 D:0000 DB:00 S:01E1 P:eNvmxdizcHC:1080 VC:151 00 FL:1682
- LDA $1933|!base2 ;A:FF80 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:1112 VC:151 00 FL:1682
- BEQ LABEL50 ;A:0000 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdiZcHC:1152 VC:151 00 FL:1682
- LDX $1E
- LDA $20
- SEC
- SBC #$0080
- TAY
- BRA LABEL50
- LABEL51: LDX $1A
- LDA $1C
- SEC
- SBC #$0080
- TAY
- LDA $1933|!base2
- BEQ LABEL50
- LDA $1E
- SEC
- SBC #$0080
- TAX
- LDY $20
- LABEL50: STX $08 ;A:0000 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdiZcHC:1174 VC:151 00 FL:1682
- STY $0A ;A:0000 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdiZcHC:1206 VC:151 00 FL:1682
- LDA $98 ;A:0000 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdiZcHC:1238 VC:151 00 FL:1682
- AND #$01F0 ;A:0130 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:1270 VC:151 00 FL:1682
- STA $04 ;A:0130 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:1294 VC:151 00 FL:1682
- LDA $9A ;A:0130 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:1326 VC:151 00 FL:1682
- LSR A ;A:0070 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:1358 VC:151 00 FL:1682
- LSR A ;A:0038 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:0004 VC:152 00 FL:1682
- LSR A ;A:001C X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:0018 VC:152 00 FL:1682
- LSR A ;A:000E X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:0032 VC:152 00 FL:1682
- AND #$000F ;A:0007 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:0046 VC:152 00 FL:1682
- ORA $04 ;A:0007 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:0070 VC:152 00 FL:1682
- TAY ;A:0137 X:FF80 Y:00C0 D:0000 DB:00 S:01E1 P:envmxdizcHC:0102 VC:152 00 FL:1682
- PLA ;A:0137 X:FF80 Y:0137 D:0000 DB:00 S:01E1 P:envmxdizcHC:0116 VC:152 00 FL:1682
- SEP #$20 ;A:0266 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envmxdizcHC:0152 VC:152 00 FL:1682
- STA [$6B],y ;[$7E:C937] ;A:0266 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envMxdizcHC:0174 VC:152 00 FL:1682
- XBA ;A:0266 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envMxdizcHC:0222 VC:152 00 FL:1682
- STA [$6E],y ;[$7F:C937] ;A:6602 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envMxdizcHC:0242 VC:152 00 FL:1682
- XBA ;A:6602 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envMxdizcHC:0290 VC:152 00 FL:1682
- REP #$20 ;A:0266 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envMxdizcHC:0310 VC:152 00 FL:1682
- ASL A ;A:0266 X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envmxdizcHC:0332 VC:152 00 FL:1682
- TAY ;A:04CC X:FF80 Y:0137 D:0000 DB:00 S:01E3 P:envmxdizcHC:0346 VC:152 00 FL:1682
- PHK ;A:04CC X:FF80 Y:04CC D:0000 DB:00 S:01E3 P:envmxdizcHC:0360 VC:152 00 FL:1682
- PEA.w MAP16_RETURN-1 ; NOTE: this relative counter must always point to MAP16_RETURN.
- PEA $804C
- JML $00C0FB|!base3
- MAP16_RETURN: PLB
- PLP
- RTS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement