Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dcb "INIT"
- JSR SUB_HORZ_POS
- TYA
- STA $157C,x
- RTL
- dcb "MAIN"
- PHB ;\
- PHK ; | Change the data bank to the one our code is running from.
- PLB ; | This is a good practice.
- JSR SpriteCode ; | Jump to the sprite's function.
- PLB ; | Restore old data bank.
- RTL ;/ And return.
- ;===================================
- ;Sprite Function
- ;===================================
- ExplodeBomb:
- PHB ;\ Change Bob-omb into explosion
- LDA.B #$02 ;|
- PHA ;|
- PLB ;|
- JSL $028086 ;|
- PLB ;|
- RTS ;/
- RETURN:
- RTS
- SpriteCode:
- LDA.W $1534,X ; \ Branch if exploding
- BEQ No_Explode ; /
- JSR ExplodeBomb
- RTS
- No_Explode:
- JSR Graphics
- LDA $14C8,x ;\
- CMP #$08 ; | If sprite dead,
- BNE RETURN ;/ Return.
- LDA $9D ;\
- BNE RETURN ;/ If locked, return.
- JSR SUB_OFF_SCREEN_X0 ; Handle offscreen.
- LDA $1588,x ; ... if sprite is touching a wall.
- AND #$03 ; (bit 0 and 1)..
- BEQ DontFlip ; If bits aren't set, don't flip the sprite.
- LDA $157C,x ;\
- EOR #$01 ; | Flip sprite's direction when touching wall.
- STA $157C,x ;/
- DontFlip:
- LDA $1588,x
- AND #$04 ; If the sprite is in air ..
- BEQ NotOnGround ; Don't set speeds and branch.
- LDY $157C,x ;\ Get direction into Y.
- LDA XSPEED,y ; | Load X speed indexed by Y.
- STA $B6,x ;/ Store to X speed table.
- LDA #$10 ;\ Y Speed for sprite on ground
- STA $AA,x ;/ = 10.
- NotOnGround:
- JSL $01802A ; Apply speed.
- JSL $018032 ; Make the sprite interact with others. Make sure the .cfg setting for this
- ; is off!
- LDA $15AC,x ;load the turn timer
- BEQ No_sprite_contact
- INC $1534,x
- INC $1534,x
- LDA.B #$09 ; \ Bomb sound effect
- STA.W $1DFC ; /
- LDA.B #$01
- STA.W $1534,X
- LDA.B #$40 ; \ Set explosion timer
- STA.W $1540,X ; /
- LDA.B #$08 ; \ Set normal status
- STA.W $14C8,X ; /
- LDA.W RAM_Tweaker1686,X ; \ Set to interact with other sprites
- AND.B #$F7 ;|
- STA.W RAM_Tweaker1686,X ; /
- RTS
- No_sprite_contact:
- JSL $01A7DC
- BCC NoContact
- INC $1534,x
- LDA.B #$09 ; \ Bomb sound effect
- STA.W $1DFC ; /
- LDA.B #$01
- STA.W $1534,X
- LDA.B #$40 ; \ Set explosion timer
- STA.W $1540,X ; /
- LDA.B #$08 ; \ Set normal status
- STA.W $14C8,X ; /
- LDA.W RAM_Tweaker1686,X ; \ Set to interact with other sprites
- AND.B #$F7 ;|
- STA.W RAM_Tweaker1686,X ; /
- RTS
- LDA $0E ;\
- CMP #$E6 ; | Determine if Mario touches sprite from sides.
- BPL SpriteWins ;/ If he does, branch.
- ;===========================================
- ;Mario Hurts Sprite
- ;===========================================
- JSL $01AA33 ;\ Set mario speed.
- JSL $01AB99 ;/ Display contact graphic.
- LDA #$10 ;\
- STA $AA,x ; | Make sprite fall.
- JSL $01802A ; |
- LDA #$02 ; |
- STA $14C8,x ;/
- LDA #$13 ;\
- STA $1DF9 ;/ Play sound.
- RTS
- ;===========================================
- ;Sprite Hurts Mario
- ;===========================================
- SpriteWins:
- LDA $1490 ;\ IF Mario has star power ..
- BNE HasStar ;/ Kill sprite.
- JSL $00F5B7 ;\ Otherwise, hurt Mario.
- NoContact:
- RTS
- XSPEED:
- dcb $1B,$E5
- ;===========================================
- ;Killed by Star Routine
- ;===========================================
- HasStar:
- LDA $167A,x ;\ Don't disable clipping when killed by a star.
- ORA #$01 ; | NOTE: We do this to not make glitched graphics show up ..
- STA $167A,x ; | when the sprite is killed by a star.
- ;/ You can also check this option in the .cfg editor.
- LDA #$02 ;\ Set the sprite status to ..
- STA $14C8,x ;/ Killed by a star.
- LDA #$D0 ;\
- STA $AA,x ;/ Set Y speed so sprite falls down.
- INC $18D2 ; Increase number of consective enemies stomped/ killed by star.
- LDA $18D2 ; IF consecutive # of enemies killed by star/stomped ..
- CMP #$08 ; IS 8 ..
- BCC NotEight
- LDA #$08 ;\ Keep it static at 8, because you get 1-ups all the time afterwards.
- STA $18D2 ;/
- NotEight:
- JSL $02ACE5 ; This code calls the "give points" routine.
- LDY $18D2 ; Get consecutive # of enemies stomped in Y.
- CPY #$08 ; If it's less than 8 once again, return.
- BCC NoSound
- LDA StarSFX,y ;\
- STA $1DF9 ;/ Play sounds depending on how many enemies were stomped/killed by star.
- NoSound:
- RTS ; Return.
- StarSFX:
- dcb $00,$13,$14,$15,$16,$17,$18,$19
- ;===================================
- ;Graphics Code
- ;===================================
- TILEMAP:
- dcb $80,$A0
- TILEMAP2:
- dcb $82,$A2
- PROPERTIES:
- dcb $4F,$0F ; NOTE: Flip the X direction when going right.
- YDISP:
- dcb $10,$00
- Graphics:
- JSR GET_DRAW_INFO ; Before actually coding the graphics, we need a routine that will get the current sprite's value
- LDA $14 ;\ Frame counter ..
- LSR A ; |
- LSR A
- LSR A ; | Add in frame animation rate; More LSRs for slower animation.
- AND #$01 ; | 01 means we animate between 2 frames (00 and 01).
- STA $03 ;/ i.e. first animation and second animation. The result is stored into $03.
- LDA $157C,x
- STA $02 ; Store direction to $02 for use with property routine later.
- PHX ;\ Push the sprite index, since we're using it for a loop.
- LDX #$01 ;/ X = number of times to loop through. Since we only draw one MORE tile, loop one more time.
- Loop:
- LDA $00 ;\
- STA $0300,y ;/ Draw the X position of the sprite
- LDA $01 ;\
- SEC ; | Y displacement is added for the Y position, so one tile is higher than the other.
- SBC YDISP,x ; | Otherwise, both tiles would have been drawn to the same position!
- STA $0301,y ; | If X is 00, i.e. first tile, then load the first value from the table and apply that
- ;/ as the displacement. For the second tile, F0 is added to make it higher than the first.
- LDA $03
- BNE A
- LDA TILEMAP,x ; X still contains index for the tile to draw. If it's the first tile, draw first tile in
- BRA B
- A:
- LDA TILEMAP2,x
- B:
- STA $0302,y ; the table. If X = 01, i.e. second tile, draw second tile in the table.
- PHX ; Push number of times to go through loop (01), because we're using it for a table here.
- LDX $02 ;\
- LDA PROPERTIES,x ; | Set properties based on direction.
- ORA $64
- STA $0303,y ;/
- PLX ; Pull number of times to go through loop.
- INY ;\
- INY ; | The OAM is 8x8, but our sprite is 16x16 ..
- INY ; | So increment it 4 times.
- INY ;/
- DEX ; After drawing this tile, decrease number of tiles to go through loop. If the second tile
- ; is drawn, then loop again to draw the first tile.
- BPL Loop ; Loop until X becomes negative (FF).
- PLX ; Pull back the sprite index! We pushed it at the beginning of the routine.
- LDY #$02 ; Y ends with the tile size .. 02 means it's 16x16
- LDA #$01 ; A -> number of tiles drawn - 1.
- ; I drew 2 tiles, so 2-1 = 1. A = 01.
- JSL $01B7B3 ; Call the routine that draws the sprite.
- RTS ; Never forget this!
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; GET_DRAW_INFO
- ; This is a helper for the graphics routine. It sets off screen flags, and sets up
- ; variables. It will return with the following:
- ;
- ; Y = index to sprite OAM ($300)
- ; $00 = sprite x position relative to screen boarder
- ; $01 = sprite y position relative to screen boarder
- ;
- ; It is adapted from the subroutine at $03B760
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SPR_T1
- dcb $0C,$1C
- SPR_T2
- dcb $01,$02
- GET_DRAW_INFO
- STZ $186C,x ; reset sprite offscreen flag, vertical
- STZ $15A0,x ; reset sprite offscreen flag, horizontal
- LDA $E4,x ; \
- CMP $1A ; | set horizontal offscreen if necessary
- LDA $14E0,x ; |
- SBC $1B ; |
- BEQ ON_SCREEN_X ; |
- INC $15A0,x ; /
- ON_SCREEN_X
- LDA $14E0,x ; \
- XBA ; |
- LDA $E4,x ; |
- REP #$20 ; |
- SEC ; |
- SBC $1A ; | mark sprite invalid if far enough off screen
- CLC ; |
- ADC.W #$0040 ; |
- CMP.W #$0180 ; |
- SEP #$20 ; |
- ROL A ; |
- AND #$01 ; |
- STA $15C4,x ; /
- BNE INVALID ;
- LDY #$00 ; \ set up loop:
- LDA $1662,x ; |
- AND #$20 ; | if not smushed (1662 & 0x20), go through loop twice
- BEQ ON_SCREEN_LOOP ; | else, go through loop once
- INY ; /
- ON_SCREEN_LOOP
- LDA $D8,x ; \
- CLC ; | set vertical offscreen if necessary
- ADC SPR_T1,y ; |
- PHP ; |
- CMP $1C ; | (vert screen boundry)
- ROL $00 ; |
- PLP ; |
- LDA $14D4,x ; |
- ADC #$00 ; |
- LSR $00 ; |
- SBC $1D ; |
- BEQ ON_SCREEN_Y ; |
- LDA $186C,x ; | (vert offscreen)
- ORA SPR_T2,y ; |
- STA $186C,x ; |
- ON_SCREEN_Y
- DEY ; |
- BPL ON_SCREEN_LOOP ; /
- LDY $15EA,x ; get offset to sprite OAM
- LDA $E4,x ; \
- SEC ; |
- SBC $1A ; | $00 = sprite x position relative to screen boarder
- STA $00 ; /
- LDA $D8,x ; \
- SEC ; |
- SBC $1C ; | $01 = sprite y position relative to screen boarder
- STA $01 ; /
- RTS ; return
- INVALID
- PLA ; \ return from *main gfx routine* subroutine...
- PLA ; | ...(not just this subroutine)
- RTS ; /
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; SUB_OFF_SCREEN
- ; This subroutine deals with sprites that have moved off screen
- ; It is adapted from the subroutine at $01AC0D
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SPR_T12:
- db $40,$B0
- SPR_T13:
- db $01,$FF
- SPR_T14:
- db $30,$C0,$A0,$C0,$A0,$F0,$60,$90 ;bank 1 sizes
- db $30,$C0,$A0,$80,$A0,$40,$60,$B0 ;bank 3 sizes
- SPR_T15:
- db $01,$FF,$01,$FF,$01,$FF,$01,$FF ;bank 1 sizes
- db $01,$FF,$01,$FF,$01,$00,$01,$FF ;bank 3 sizes
- SUB_OFF_SCREEN_X1:
- LDA #$02 ; \ entry point of routine determines value of $03
- BRA STORE_03 ; | (table entry to use on horizontal levels)
- SUB_OFF_SCREEN_X2:
- LDA #$04 ; |
- BRA STORE_03 ; |
- SUB_OFF_SCREEN_X3:
- LDA #$06 ; |
- BRA STORE_03 ; |
- SUB_OFF_SCREEN_X4:
- LDA #$08 ; |
- BRA STORE_03 ; |
- SUB_OFF_SCREEN_X5:
- LDA #$0A ; |
- BRA STORE_03 ; |
- SUB_OFF_SCREEN_X6:
- LDA #$0C ; |
- BRA STORE_03 ; | OMG YOU FOUND THIS HIDDEN z0mg place!111 you win a cookie!
- SUB_OFF_SCREEN_X7:
- LDA #$0E ; |
- STORE_03: STA $03 ; |
- BRA START_SUB ; |
- SUB_OFF_SCREEN_X0:
- STZ $03 ; /
- START_SUB:
- JSR SUB_IS_OFF_SCREEN ; \ if sprite is not off screen, return
- BEQ RETURN_35 ; /
- LDA $5B ; \ goto VERTICAL_LEVEL if vertical level
- AND #$01 ; |
- BNE VERTICAL_LEVEL ; /
- LDA $D8,x ; \
- CLC ; |
- ADC #$50 ; | if the sprite has gone off the bottom of the level...
- LDA $14D4,x ; | (if adding 0x50 to the sprite y position would make the high byte >= 2)
- ADC #$00 ; |
- CMP #$02 ; |
- BPL ERASE_SPRITE ; / ...erase the sprite
- LDA $167A,x ; \ if "process offscreen" flag is set, return
- AND #$04 ; |
- BNE RETURN_35 ; /
- LDA $13 ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZcHC:0756 VC:176 00 FL:205
- AND #$01 ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0780 VC:176 00 FL:205
- ORA $03 ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0796 VC:176 00 FL:205
- STA $01 ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0820 VC:176 00 FL:205
- TAY ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0844 VC:176 00 FL:205
- LDA $1A ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0858 VC:176 00 FL:205
- CLC ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZcHC:0882 VC:176 00 FL:205
- ADC SPR_T14,y ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZcHC:0896 VC:176 00 FL:205
- ROL $00 ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizcHC:0928 VC:176 00 FL:205
- CMP $E4,x ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizCHC:0966 VC:176 00 FL:205
- PHP ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:0996 VC:176 00 FL:205
- LDA $1B ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F0 P:envMXdizCHC:1018 VC:176 00 FL:205
- LSR $00 ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F0 P:envMXdiZCHC:1042 VC:176 00 FL:205
- ADC SPR_T15,y ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F0 P:envMXdizcHC:1080 VC:176 00 FL:205
- PLP ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F0 P:eNvMXdizcHC:1112 VC:176 00 FL:205
- SBC $14E0,x ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1140 VC:176 00 FL:205
- STA $00 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizCHC:1172 VC:176 00 FL:205
- LSR $01 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizCHC:1196 VC:176 00 FL:205
- BCC SPR_L31 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZCHC:1234 VC:176 00 FL:205
- EOR #$80 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZCHC:1250 VC:176 00 FL:205
- STA $00 ;A:8A7F X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1266 VC:176 00 FL:205
- SPR_L31:
- LDA $00 ;A:8A7F X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1290 VC:176 00 FL:205
- BPL RETURN_35 ;A:8A7F X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1314 VC:176 00 FL:205
- ERASE_SPRITE:
- LDA $14C8,x ; \ if sprite status < 8, permanently erase sprite
- CMP #$08 ; |
- BCC KILL_SPRITE ; /
- LDY $161A,x ;A:FF08 X:0007 Y:0001 D:0000 DB:01 S:01F3 P:envMXdiZCHC:1108 VC:059 00 FL:2878
- CPY #$FF ;A:FF08 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdiZCHC:1140 VC:059 00 FL:2878
- BEQ KILL_SPRITE ;A:FF08 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdizcHC:1156 VC:059 00 FL:2878
- LDA #$00 ;A:FF08 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdizcHC:1172 VC:059 00 FL:2878
- STA $1938,y ;A:FF00 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdiZcHC:1188 VC:059 00 FL:2878
- KILL_SPRITE:
- STZ $14C8,x ; erase sprite
- RETURN_35:
- RTS ; return
- VERTICAL_LEVEL:
- LDA $167A,x ; \ if "process offscreen" flag is set, return
- AND #$04 ; |
- BNE RETURN_35 ; /
- LDA $13 ; \
- LSR A ; |
- BCS RETURN_35 ; /
- LDA $E4,x ; \
- CMP #$00 ; | if the sprite has gone off the side of the level...
- LDA $14E0,x ; |
- SBC #$00 ; |
- CMP #$02 ; |
- BCS ERASE_SPRITE ; / ...erase the sprite
- LDA $13 ;A:0000 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:1218 VC:250 00 FL:5379
- LSR A ;A:0016 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1242 VC:250 00 FL:5379
- AND #$01 ;A:000B X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1256 VC:250 00 FL:5379
- STA $01 ;A:0001 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1272 VC:250 00 FL:5379
- TAY ;A:0001 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1296 VC:250 00 FL:5379
- LDA $1C ;A:001A X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0052 VC:251 00 FL:5379
- CLC ;A:00BD X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0076 VC:251 00 FL:5379
- ADC SPR_T12,y ;A:00BD X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0090 VC:251 00 FL:5379
- ROL $00 ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F3 P:enVMXdizCHC:0122 VC:251 00 FL:5379
- CMP $D8,x ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNVMXdizcHC:0160 VC:251 00 FL:5379
- PHP ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNVMXdizcHC:0190 VC:251 00 FL:5379
- LDA $001D ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F2 P:eNVMXdizcHC:0212 VC:251 00 FL:5379
- LSR $00 ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F2 P:enVMXdiZcHC:0244 VC:251 00 FL:5379
- ADC SPR_T13,y ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F2 P:enVMXdizCHC:0282 VC:251 00 FL:5379
- PLP ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F2 P:envMXdiZCHC:0314 VC:251 00 FL:5379
- SBC $14D4,x ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNVMXdizcHC:0342 VC:251 00 FL:5379
- STA $00 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0374 VC:251 00 FL:5379
- LDY $01 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0398 VC:251 00 FL:5379
- BEQ SPR_L38 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0422 VC:251 00 FL:5379
- EOR #$80 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0438 VC:251 00 FL:5379
- STA $00 ;A:007F X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0454 VC:251 00 FL:5379
- SPR_L38: LDA $00 ;A:007F X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0478 VC:251 00 FL:5379
- BPL RETURN_35 ;A:007F X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0502 VC:251 00 FL:5379
- BMI ERASE_SPRITE ;A:8AFF X:0002 Y:0000 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0704 VC:184 00 FL:5490
- SUB_IS_OFF_SCREEN:
- LDA $15A0,x ; \ if sprite is on screen, accumulator = 0
- ORA $186C,x ; |
- RTS ; / return
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; SUB HORZ POS
- ;
- ; $B817 - horizontal mario/sprite check - shared
- ; Y = 1 if mario left of sprite??
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SUB_HORZ_POS:
- LDY #$00 ;A:25D0 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1020 VC:097 00 FL:31642
- LDA $94 ;A:25D0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:envMXdiZCHC:1036 VC:097 00 FL:31642
- SEC ;A:25F0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1060 VC:097 00 FL:31642
- SBC $E4,x ;A:25F0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1074 VC:097 00 FL:31642
- STA $0F ;A:25F4 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1104 VC:097 00 FL:31642
- LDA $95 ;A:25F4 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1128 VC:097 00 FL:31642
- SBC $14E0,x ;A:2500 X:0006 Y:0000 D:0000 DB:03 S:01ED P:envMXdiZcHC:1152 VC:097 00 FL:31642
- BPL LABEL16 ;A:25FF X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1184 VC:097 00 FL:31642
- INY ;A:25FF X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1200 VC:097 00 FL:31642
- LABEL16:
- RTS ;A:25FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:1214 VC:097 00 FL:31642
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement