processor 6502 INPTCTRL equ $01 ;Input control AUDC0 equ $15 ;Audio Control Channel 0 AUDC1 equ $16 ;Audio Control Channel 1 AUDF0 equ $17 ;Audio Frequency Channel 0 AUDF1 equ $18 ;Audio Frequency Channel 1 AUDV0 equ $19 ;Audio Volume Channel 0 AUDV1 equ $1A ;Audio Volume Channel 1 INPT0 equ $08 ;Paddle Control Input 0 INPT1 equ $09 ;Paddle Control Input 1 INPT2 equ $0A ;Paddle Control Input 2 INPT3 equ $0B ;Paddle Control Input 3 INPT4 equ $0C ;Player 0 Fire Button Input INPT5 equ $0D ;Player 1 Fire Button Input BACKGRND equ $20 ;Background Color COLUBK equ $20 ;Background Color P0C1 equ $21 ;Palette 0 - Color 1 P0C2 equ $22 ;Palette 0 - Color 2 P0C3 equ $23 ;Palette 0 - Color 3 WSYNC equ $24 ;Wait For Sync P1C1 equ $25 ;Palette 1 - Color 1 P1C2 equ $26 ;Palette 1 - Color 2 P1C3 equ $27 ;Palette 1 - Color 3 MSTAT equ $28 ;Maria Status P2C1 equ $29 ;Palette 2 - Color 1 P2C2 equ $2A ;Palette 2 - Color 2 P2C3 equ $2B ;Palette 2 - Color 3 DPPH equ $2C ;Display List List Pointer High P3C1 equ $2D ;Palette 3 - Color 1 P3C2 equ $2E ;Palette 3 - Color 2 P3C3 equ $2F ;Palette 3 - Color 3 DPPL equ $30 ;Display List List Pointer Low P4C1 equ $31 ;Palette 4 - Color 1 P4C2 equ $32 ;Palette 4 - Color 2 P4C3 equ $33 ;Palette 4 - Color 3 CHARBASE equ $34 ;Character Base Address P5C1 equ $35 ;Palette 5 - Color 1 P5C2 equ $36 ;Palette 5 - Color 2 P5C3 equ $37 ;Palette 5 - Color 3 OFFSET equ $38 ;Unused - Store zero here P6C1 equ $39 ;Palette 6 - Color 1 P6C2 equ $3A ;Palette 6 - Color 2 P6C3 equ $3B ;Palette 6 - Color 3 CTRL equ $3C ;Maria Control Register P7C1 equ $3D ;Palette 7 - Color 1 P7C2 equ $3E ;Palette 7 - Color 2 P7C3 equ $3F ;Palette 7 - Color 3 SWCHA equ $280 ;P0, P1 Joystick Directional Input SWCHB equ $282 ;Console Switches CTLSWA equ $281 ;I/O Control for SCHWA CTLSWB equ $283 ;I/O Control for SCHWB Pokey equ $400 PAUDF0 = Pokey ; extra audio channels and frequencies PAUDC0 = Pokey+1 PAUDF1 = Pokey+2 PAUDC1 = Pokey+3 PAUDF2 = Pokey+4 PAUDC2 = Pokey+5 PAUDF3 = Pokey+6 PAUDC3 = Pokey+7 PAUDCTL = Pokey+8 ; Audio Control PRANDOM = Pokey+10 ; 17 bit polycounter pseudo random PSKCTL = Pokey+16 ; Serial Port control SEG.U data org $40;Fast-ram! dlend ds.b 13 ;Index of end of each DL ypos2 org $51 tempoffset org $52 tempval org $53 tempdlend org $54 tempzone org $55 currspr org $56; current object being processed org $57 temp ds.b 1 dlpnt ds.w 1 org $5A numspr ds.b 1 Levelptr ds.w 1 Tempptr ds.w 1 Special ds.w 1 Scrlmode ds.b 1 Yvel ds.w 1 ypos ds.b 1 xpos ds.b 1 Wait ds.w 1 Timebonus ds.w 1 Breath ds.w 1 org $1800 Lives ds.b 1 Chunk ds.b 1 XPOS org $1830 EXPOS org $1832 YPOS org $1840 EYPOS org $1842 GFXLO org $1850 EFXLO org $1852 GFXHI org $1860 EFXHI org $1862 PALWDH org $1870 COLWDH org $1872 org $1880 Animtimr ds.b 1 Direction ds.b 1 Scroll ds.b 1 Stage ds.b 1 Offset ds.b 1 Nextupdate ds.b 1 Jumptimr ds.b 1 Spintimr ds.b 1 Timer ds.b 1 Level ds.b 1 Cstate ds.b 1 MUSIK ds.b 1 ; Note: ; ;| ;|| ;||| ;|||| ;||||| ;||||||Conner state (Bit 0 = highjump, bit 1 = varia) ;76543210 org $1900; Enemy variables Enemyinfo ds.b 12; Enemytype ds.b 12; Has a use Enemybyte0 ds.b 12 Enemybyte1 ds.b 12 Enemybyte2 ds.b 12; THIS IS 15.2 Enemybyte3 ds.b 12 Enemybyte4 ds.b 12 Enemybyte5 ds.b 12 org $2000 Something ds.b 1; 1 Score ds.b 4;5 Init ds.b 1; 6 Password ds.b 8; 7 Index ds.b 1; 8 Enable ds.b 1; 9 Joy ds.b 1; 10 Lisreal ds.b 1; 11 Poffset ds.b 1; 12 Dbugenable ds.b 1; 13 (Only enabled when 2nd byte ; of password is $0C) Othercoins ds.b 1; To go to special stage ; or to not go? Highscore ds.b 4; This is an 8 digit score Ymom ds.b 1; low 4 bits = subpix Hmmmm ds.b 1 Prevlevel ds.b 1 CTRLE ds.b 1 Hitim ds.b 1; 20 ; high 3 bits = pixels, highest = up/down org $2200 TILEMAP org $2380 FREE org $2500 DLSPACE SEG code org $4000 SEG code org $4000 START ; A78 Header v3.1 ; ; Use this file to add an a78 header via the source code of your ROM. ; ; _Implementation Notes_ ; ; * Include this header near the beginning of your DASM source, but after ; your initial ROM ORG statement. ; * Change the fields withn the file to describe your game's hardware ; requirements to emulators and flash carts. ; * All unused/reserved bits and bytes must be set to zero. .ROMSIZE = $C000; 48KB ; Update with your total ROM size. ; Auto-header ROM allocation follows. If the current address is page aligned, ; we backup 128 bytes. This may cause issues if you use a different ORG+RORG ; at the start of your ROM - in that case, account for the 128 bytes of ; header within your game ROM start ORG+RORG statements. if ( . & $FF ) = 0 ; Check if we're at an even page. ORG (. - 128),0 ; If so, go -128 bytes, for header space. else ORG .,0 ; In case zero-fill wasn't specified endif ; orginally. .HEADER = . ; Format detection - do not modify. DC.B 3 ; 0 header major version DC.B "ATARI7800" ; 1..16 header magic string - zero pad ORG .HEADER+$11,0 DC.B "It's Conner time 3!" ; 17..48 cartridge title string - zero pad ORG .HEADER+$31,0 DC.B (.ROMSIZE>>24) ; 49..52 cartridge ROM size DC.B (.ROMSIZE>>16&$FF) DC.B (.ROMSIZE>>8&$FF) DC.B (.ROMSIZE&$FF) DC.B %00000000 ; 53 cartridge type A DC.B %01000000 ; 54 cartridge type B ; Ballblazer uses 10000010101100 ; _Cartridge Type A_ ; bit 7 ; POKEY @ $0800 - $080F ; bit 6 ; EXRAM/M2 (halt banked RAM) ; bit 5 ; BANKSET ; bit 4 ; SOUPER ; bit 3 ; YM2151 @ $0461 - $0462 ; bit 2 ; POKEY @ $0440 - $044F ; bit 1 ; ABSOLUTE ; bit 0 ; ACTIVISION ; _Cartridge Type B_ ; bit 7 ; EXRAM/A8 (mirror RAM) ; bit 6 ; POKEY @ $0450 - $045F ; bit 5 ; EXRAM/X2 (hotspot banked RAM) ; bit 4 ; EXFIX (2nd last bank @ $4000) ; bit 3 ; EXROM (ROM @ $4000) ; bit 2 ; EXRAM (RAM @ $4000) ; bit 1 ; SUPERGAME ; bit 0 ; POKEY @ $4000 - $7FFF DC.B 1 ; 55 controller 1 device type DC.B 1 ; 56 controller 2 device type ; 0 = none ; 1 = 7800 joystick ; 2 = lightgun ; 3 = paddle ; 4 = trakball ; 5 = 2600 joystick ; 6 = 2600 driving ; 7 = 2600 keypad ; 8 = ST mouse ; 9 = Amiga mouse ; 10 = AtariVox ; 11 = SNES2Atari DC.B %00000000 ; 57 tv type ; bits 7..2 ; reserved ; bit 1 ; 0:component,1:composite ; bit 0 ; 0:NTSC,1:PAL DC.B %00000000 ; 58 save peripheral ; bits 7..2 ; reserved ; bit 1 ; SaveKey/AtariVox ; bit 0 ; High Score Cart (HSC) ORG .HEADER+62,0 DC.B %00000010 ; 62 external irq source ; bits 7..5 ; reserved ; bit 4 ; POKEY @ $0800 - $080F ; bit 3 ; YM2151 @ $0461 - $0462 ; bit 2 ; POKEY @ $0440 - $044F ; bit 1 ; POKEY @ $0450 - $045F ; bit 0 ; POKEY @ $4000 - $7FFF DC.B %00000000 ; 63 slot passthrough device ; bits 7..1 ; reserved ; bit 0 ; XM module ORG .HEADER+100 ; 100..127 footer magic string DC.B "ACTUAL CART DATA STARTS HERE" ;************** Clear zero page and hardware ****** lda #%01100000 sta CTRL ldx #$40 lda #$00 crloop1 sta $00,x ;Clear zero page sta $100,x ;Clear page 1 inx bne crloop1 ldy #$00 ;Clear Ram crloop2 sta $1800,y sta $1900,y sta $1a00,y sta $1b00,y sta $1c00,y sta $1d00,y sta $1e00,y sta $1f00,y sta $2200,y sta $2300,y sta $2400,y sta $2500,y sta $2600,y sta $2700,y iny bne crloop2 lda #$07 sta INPTCTRL ;Lock into 7800 mode lda #$7F sta CTRL ;Disable DMA lda #$00 sta OFFSET sta INPTCTRL ldx #$FF ;Reset stack pointer txs LDA #$14 STA CTLSWB ; set bits 2 and 4 of PORT B for output LDA #0 STA SWCHB ; output 0 on bits 2 and 4 of PORT B ldx #$00 stx ypos stx xpos stx Highscore stx Highscore+1 stx Highscore+2 stx Highscore+3 stx Highscore+4 stx Highscore+5 stx Highscore+6 stx Highscore+7 stx GFXLO stx GFXLO+1 lda #$a0 sta GFXHI sta GFXHI+1 lda #$40 sta XPOS+1 lda #$50 sta YPOS+1 lda #72 sta XPOS+1 sta XPOS ldy #8 Clearr lda #0 sta Password-1,y dey bne Clearr Warm ldy #0 tya sta YPOS sta YPOS+1 sta Scroll Plzwork sta $2200,y sta $2300,y dey bne Plzwork ldy #$00 lda #$0F sta $1F00,x inx lda #$00 sta $1F00,x inx lda #$FA sta $1F00,x inx iny DLLloop2 lda #$4F ;16 lines sta $1F00,x inx lda DLPOINTH-1,y sta $1F00,x inx lda DLPOINTL-1,y sta $1F00,x inx iny cpy #$0D ;12 DLL entries bne DLLloop2 lda #$80 sta $1F00,x inx lda #$00 sta $1F00,x inx lda #$FA sta $1F00,x inx iny DLLloop3 lda #$0F sta $1F00,x inx lda #$00 sta $1F00,x inx lda #$FA sta $1F00,x inx iny cpy #$0F bne DLLloop3 lda #$40 sta xpos lda #$1E sta PALWDH sta PALWDH+1 lda #$04 sta GFXLO+1 lda #$33 sta P0C1 sta P1C1 lda #$FE sta P0C2 sta P1C2 lda #$0F sta P1C3 lda #$60 sta P0C3 lda #$F4 sta P2C2 lda #$C9 sta P2C3 lda #$37 sta P2C1 lda #$3e sta PALWDH lda #$1F sta DPPH and #$00 sta DPPL lda #$76 sta BACKGRND lda #%01100000 sta $2501 sta $2541 sta $2581 sta $25C1 sta $2601 sta $2641 sta $2681 sta $26C1 sta $2701 sta $2741 sta $2781 sta $27C1 lda #$22 sta $2502 sta $2542 sta $2582 sta $25c2 sta $2602 sta $2642 sta $2682 sta $26C2 lda #$23 sta $2702 sta $2742 sta $2782 sta $27C2 lda #0 sta $2500 sta $2700 lda #$20 sta $2540 sta $2740 lda #$40 sta $2780 sta $2580 lda #$60 sta $27C0 sta $25C0 lda #$80 sta $2600 lda #$A0 sta $2640 lda #$C0 sta $2680 lda #$E0 sta $26C0 lda #$80 sta CHARBASE lda #8 sta Nextupdate lda #0 sta AUDV0 sta AUDV1 sta Dbugenable lda #9 sta Offset ldy #20 lda #$12 sta $2289 sta $22A9 ldy #17 Createname lda Text-1,y sta $2260,y dey bne Createname ldy #10 ECERNOSOFT lda Text2-1,y sta $2223,y dey bne ECERNOSOFT ldx #0 stx Init stx Index stx Level stx Score stx Score+1 inx stx Enable lda #Score sta $2507 lda #%00100000 sta $2506 lda #%00011110 sta $2508 lda #96 sta Timer lda #0 sta YPOS sta YPOS+1 lda #$D0 sta GFXHI sta GFXHI+1 lda #%01010000 sta CTRL lda #5 sta Lives Mainloop jmp Mainloop DLPOINTH .byte $25,$25,$25,$25,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27 DLPOINTL .byte $00,$40,$80,$C0,$00,$40,$80,$C0,$00,$40,$80,$C0,$C0,$C0,$C0,$C0,$C0,$C0 Frames byte #4 byte #8 byte #4 byte #12 byte #16 byte #20 byte #18 byte #22 byte #6 byte #10 byte #6 byte #14 byte #22 byte #18 byte #20 byte #16 Makebackground lda Scroll eor #$FF tax sta $2504 sta $2544 sta $2584 sta $25C4 sta $2604 sta $2644 sta $2684 sta $26C4 sta $2704 sta $2744 sta $2784 sta $27C4 txa eor #$FF lsr lsr lsr tay ldx Poffset lda Information,y ora Palettes,x sta $2503 ora Palettes+1,x sta $2543 ora Palettes+2,x sta $2583 ora Palettes+3,x sta $25C3 ora Palettes+4,x sta $2603 ora Palettes+5,x sta $2643 ora Palettes+6,x sta $2683 ora Palettes+7,x sta $26C3 ora Palettes+8,x sta $2703 ora Palettes+9,x sta $2743 ora Palettes+10,x sta $2783 ora Palettes+11,x sta $27C3 rts Palettes hex 404040404040404040404040; Normal hex 404040404040404040406060; ZPC Information byte #11 byte #10 byte #9 byte #8 byte #7 byte #6 byte #5 byte #4 byte #3 byte #2 byte #1 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 byte #0 org $8000-120 NOTHING hex 02020202020202020202 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 hex 04040404040404040404 org $8000 SPRITEDATA2: ; SPRITE GRAPHICS IMAGE DATA! ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $03,$90 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $02,$80 ; Sprite # 6 .byte $1A,$A9 ; Sprite # 7 .byte $0F,$F0 ; Sprite # 8 .byte $54,$00 ; Sprite # 9 .byte $55,$54 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $55,$40 ; Sprite # 12 .byte $05,$54 ; Sprite # 13 .byte $05,$40 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $55,$54 ; Sprite # 16 .byte $40,$04 ; Sprite # 17 .byte $40,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$55 ; Sprite # 30 .byte $55,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $AA,$AA ; Sprite # 33 .byte $80,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $6A,$AA ; Sprite # 36 .byte $95,$55 ; Sprite # 37 .byte $15,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $55,$54 ; Sprite # 41 .byte $55,$54 ; Sprite # 42 .byte $55,$54 ; Sprite # 43 .byte $55,$54 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $55,$54 ; Sprite # 46 .byte $55,$54 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $55,$54 ; Sprite # 49 .byte $55,$54 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $FF,$FF ; Sprite # 52 .byte $00,$00 ; Sprite # 53 .byte $80,$10 ; Sprite # 54 .byte $96,$59 ; Sprite # 55 .byte $FF,$FF ; Sprite # 56 .byte $08,$20 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $AA,$AA ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $05,$50 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$100 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $25,$50 ; Sprite # 6 .byte $1A,$E9 ; Sprite # 7 .byte $02,$80 ; Sprite # 8 .byte $55,$40 ; Sprite # 9 .byte $FD,$FC ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $FF,$D0 ; Sprite # 12 .byte $1F,$FC ; Sprite # 13 .byte $1F,$D0 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $7F,$FC ; Sprite # 16 .byte $40,$04 ; Sprite # 17 .byte $40,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$55 ; Sprite # 30 .byte $55,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $80,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $6A,$AA ; Sprite # 36 .byte $95,$55 ; Sprite # 37 .byte $15,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $7F,$FC ; Sprite # 41 .byte $55,$54 ; Sprite # 42 .byte $55,$54 ; Sprite # 43 .byte $55,$54 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $55,$54 ; Sprite # 46 .byte $55,$54 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $55,$54 ; Sprite # 49 .byte $55,$54 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $FF,$FF ; Sprite # 52 .byte $00,$00 ; Sprite # 53 .byte $20,$14 ; Sprite # 54 .byte $55,$55 ; Sprite # 55 .byte $FF,$FF ; Sprite # 56 .byte $22,$88 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $AA,$AA ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $1A,$A4 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$200 .byte $00,$00 ; Sprite # 0 .byte $5A,$5A ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $BA,$88 ; Sprite # 6 .byte $1A,$E9 ; Sprite # 7 .byte $02,$80 ; Sprite # 8 .byte $FD,$50 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $00,$34 ; Sprite # 12 .byte $70,$00 ; Sprite # 13 .byte $70,$34 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$1C ; Sprite # 17 .byte $40,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$54 ; Sprite # 30 .byte $15,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $A0,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $5A,$AA ; Sprite # 36 .byte $A5,$55 ; Sprite # 37 .byte $05,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $50,$00 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $00,$14 ; Sprite # 46 .byte $50,$14 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $00,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $FF,$FF ; Sprite # 52 .byte $03,$00 ; Sprite # 53 .byte $08,$11 ; Sprite # 54 .byte $65,$96 ; Sprite # 55 .byte $FF,$FF ; Sprite # 56 .byte $22,$02 ; Sprite # 57 .byte $F0,$F0 ; Sprite # 58 .byte $AA,$AA ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $1B,$E4 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$300 .byte $00,$00 ; Sprite # 0 .byte $5A,$5A ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $BE,$2E ; Sprite # 6 .byte $1B,$39 ; Sprite # 7 .byte $15,$54 ; Sprite # 8 .byte $03,$D4 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $00,$04 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$10 ; Sprite # 17 .byte $40,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$54 ; Sprite # 30 .byte $15,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $A0,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $5A,$AA ; Sprite # 36 .byte $A5,$55 ; Sprite # 37 .byte $05,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $50,$00 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $00,$14 ; Sprite # 46 .byte $50,$14 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $00,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $FF,$FB ; Sprite # 52 .byte $0F,$C0 ; Sprite # 53 .byte $00,$14 ; Sprite # 54 .byte $55,$55 ; Sprite # 55 .byte $FF,$FB ; Sprite # 56 .byte $08,$88 ; Sprite # 57 .byte $F0,$F0 ; Sprite # 58 .byte $AA,$AA ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$400 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $0F,$A5 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $2E,$BE ; Sprite # 6 .byte $1B,$39 ; Sprite # 7 .byte $15,$54 ; Sprite # 8 .byte $00,$35 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $00,$04 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$70 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$50 ; Sprite # 30 .byte $05,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $A8,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $56,$AA ; Sprite # 36 .byte $A9,$55 ; Sprite # 37 .byte $01,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $50,$00 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $00,$14 ; Sprite # 46 .byte $50,$14 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $00,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $FF,$EA ; Sprite # 52 .byte $0F,$C0 ; Sprite # 53 .byte $A8,$40 ; Sprite # 54 .byte $59,$65 ; Sprite # 55 .byte $FF,$EA ; Sprite # 56 .byte $02,$20 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $2A,$A8 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$500 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $01,$00 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $0A,$F8 ; Sprite # 6 .byte $06,$E4 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$05 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $00,$04 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$40 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$50 ; Sprite # 30 .byte $05,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $A8,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $56,$AA ; Sprite # 36 .byte $A9,$55 ; Sprite # 37 .byte $01,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $50,$00 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $00,$14 ; Sprite # 46 .byte $50,$14 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $00,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $BF,$E6 ; Sprite # 52 .byte $2E,$E0 ; Sprite # 53 .byte $01,$10 ; Sprite # 54 .byte $96,$96 ; Sprite # 55 .byte $BF,$E6 ; Sprite # 56 .byte $08,$80 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $2A,$A8 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$600 .byte $00,$00 ; Sprite # 0 .byte $5A,$5A ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $6B,$C1 ; Sprite # 3 .byte $06,$40 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $2A,$E0 ; Sprite # 6 .byte $01,$50 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$0D ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $00,$04 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $41,$C0 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $02,$80 ; Sprite # 21 .byte $02,$80 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $02,$80 ; Sprite # 24 .byte $02,$80 ; Sprite # 25 .byte $02,$80 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$40 ; Sprite # 30 .byte $01,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$AA ; Sprite # 36 .byte $AA,$55 ; Sprite # 37 .byte $00,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $50,$00 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $00,$14 ; Sprite # 46 .byte $50,$14 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $00,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $BF,$91 ; Sprite # 52 .byte $2A,$A0 ; Sprite # 53 .byte $01,$10 ; Sprite # 54 .byte $65,$99 ; Sprite # 55 .byte $BF,$91 ; Sprite # 56 .byte $02,$00 ; Sprite # 57 .byte $0F,$0F ; Sprite # 58 .byte $2A,$A8 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$700 .byte $00,$00 ; Sprite # 0 .byte $5A,$5A ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $1A,$90 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $BF,$A8 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$01 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $00,$1C ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $41,$00 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $05,$50 ; Sprite # 21 .byte $05,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$F0 ; Sprite # 24 .byte $0F,$F0 ; Sprite # 25 .byte $0F,$F0 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$40 ; Sprite # 30 .byte $01,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$00 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$AA ; Sprite # 36 .byte $AA,$55 ; Sprite # 37 .byte $00,$55 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $50,$00 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $00,$14 ; Sprite # 46 .byte $50,$14 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $00,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $6F,$90 ; Sprite # 52 .byte $3B,$B0 ; Sprite # 53 .byte $00,$00 ; Sprite # 54 .byte $99,$A6 ; Sprite # 55 .byte $6F,$90 ; Sprite # 56 .byte $00,$00 ; Sprite # 57 .byte $0F,$0F ; Sprite # 58 .byte $2A,$A8 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$800 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $6A,$A4 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $2E,$FE ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$01 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $05,$70 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $55,$40 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $15,$54 ; Sprite # 21 .byte $05,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$F0 ; Sprite # 24 .byte $3F,$FC ; Sprite # 25 .byte $0F,$F0 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$00 ; Sprite # 30 .byte $00,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$80 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$6A ; Sprite # 36 .byte $AA,$95 ; Sprite # 37 .byte $00,$15 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $55,$54 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $55,$54 ; Sprite # 43 .byte $55,$54 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $55,$54 ; Sprite # 46 .byte $55,$54 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $55,$54 ; Sprite # 49 .byte $55,$54 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $6F,$90 ; Sprite # 52 .byte $AA,$A8 ; Sprite # 53 .byte $54,$00 ; Sprite # 54 .byte $66,$69 ; Sprite # 55 .byte $6F,$91 ; Sprite # 56 .byte $00,$20 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $0A,$A0 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$900 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $00,$E4 ; Sprite # 3 .byte $69,$A4 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $08,$B8 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$01 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $1F,$C0 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$14 ; Sprite # 15 .byte $55,$54 ; Sprite # 16 .byte $7F,$D0 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $15,$40 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $55,$15 ; Sprite # 21 .byte $04,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$30 ; Sprite # 24 .byte $FC,$FF ; Sprite # 25 .byte $0C,$F0 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $55,$00 ; Sprite # 30 .byte $00,$55 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$80 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$6A ; Sprite # 36 .byte $AA,$95 ; Sprite # 37 .byte $00,$15 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $7F,$F4 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $55,$54 ; Sprite # 43 .byte $55,$54 ; Sprite # 44 .byte $00,$14 ; Sprite # 45 .byte $55,$54 ; Sprite # 46 .byte $55,$54 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $55,$54 ; Sprite # 49 .byte $55,$54 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $1B,$90 ; Sprite # 52 .byte $EE,$EC ; Sprite # 53 .byte $10,$00 ; Sprite # 54 .byte $99,$9A ; Sprite # 55 .byte $1B,$92 ; Sprite # 56 .byte $00,$88 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $0A,$A0 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$00 ; Sprite # 64 .org SPRITEDATA2+$A00 .byte $00,$00 ; Sprite # 0 .byte $5A,$5A ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $14,$50 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $00,$20 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$05 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $70,$00 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $40,$74 ; Sprite # 15 .byte $7F,$FC ; Sprite # 16 .byte $40,$34 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $1F,$C0 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $55,$45 ; Sprite # 21 .byte $04,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$30 ; Sprite # 24 .byte $F3,$FF ; Sprite # 25 .byte $0C,$F0 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $54,$00 ; Sprite # 30 .byte $00,$15 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$A0 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$5A ; Sprite # 36 .byte $AA,$A5 ; Sprite # 37 .byte $00,$05 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $00,$14 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $55,$54 ; Sprite # 45 .byte $50,$00 ; Sprite # 46 .byte $50,$00 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $50,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $1A,$40 ; Sprite # 52 .byte $66,$64 ; Sprite # 53 .byte $10,$00 ; Sprite # 54 .byte $A6,$9A ; Sprite # 55 .byte $1A,$42 ; Sprite # 56 .byte $00,$20 ; Sprite # 57 .byte $F0,$F0 ; Sprite # 58 .byte $0A,$A0 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $00,$3C ; Sprite # 64 .org SPRITEDATA2+$B00 .byte $00,$00 ; Sprite # 0 .byte $5A,$5A ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $00,$00 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$05 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $40,$00 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $41,$C4 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$04 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $00,$00 ; Sprite # 20 .byte $50,$01 ; Sprite # 21 .byte $04,$10 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0C,$30 ; Sprite # 24 .byte $C0,$0F ; Sprite # 25 .byte $0C,$30 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $54,$00 ; Sprite # 30 .byte $00,$15 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$A0 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$5A ; Sprite # 36 .byte $AA,$A5 ; Sprite # 37 .byte $00,$05 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $00,$14 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $55,$54 ; Sprite # 45 .byte $50,$00 ; Sprite # 46 .byte $50,$00 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $50,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $06,$40 ; Sprite # 52 .byte $19,$90 ; Sprite # 53 .byte $10,$00 ; Sprite # 54 .byte $69,$A6 ; Sprite # 55 .byte $86,$46 ; Sprite # 56 .byte $08,$00 ; Sprite # 57 .byte $F0,$F0 ; Sprite # 58 .byte $0A,$A0 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $30,$CF ; Sprite # 64 .org SPRITEDATA2+$C00 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $6C,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $00,$00 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $00,$17 ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $40,$00 ; Sprite # 12 .byte $40,$00 ; Sprite # 13 .byte $40,$04 ; Sprite # 14 .byte $47,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$04 ; Sprite # 17 .byte $41,$04 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $01,$00 ; Sprite # 20 .byte $50,$01 ; Sprite # 21 .byte $04,$10 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0C,$30 ; Sprite # 24 .byte $C0,$0F ; Sprite # 25 .byte $0C,$30 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $50,$00 ; Sprite # 30 .byte $00,$05 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$12 ; Sprite # 33 .byte $AA,$A8 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$56 ; Sprite # 36 .byte $AA,$A9 ; Sprite # 37 .byte $00,$01 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $00,$14 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $50,$14 ; Sprite # 45 .byte $50,$00 ; Sprite # 46 .byte $50,$00 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $50,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $01,$00 ; Sprite # 52 .byte $06,$40 ; Sprite # 53 .byte $50,$20 ; Sprite # 54 .byte $A6,$9A ; Sprite # 55 .byte $A1,$1A ; Sprite # 56 .byte $22,$00 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $02,$80 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $6F,$F9 ; Sprite # 63 .byte $CF,$F3 ; Sprite # 64 .org SPRITEDATA2+$D00 .byte $00,$00 ; Sprite # 0 .byte $A5,$A5 ; Sprite # 1 .byte $A5,$A5 ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $00,$00 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $01,$5C ; Sprite # 9 .byte $01,$00 ; Sprite # 10 .byte $01,$00 ; Sprite # 11 .byte $C0,$04 ; Sprite # 12 .byte $D0,$00 ; Sprite # 13 .byte $D0,$1C ; Sprite # 14 .byte $5C,$04 ; Sprite # 15 .byte $40,$00 ; Sprite # 16 .byte $40,$1C ; Sprite # 17 .byte $47,$44 ; Sprite # 18 .byte $10,$00 ; Sprite # 19 .byte $03,$40 ; Sprite # 20 .byte $55,$45 ; Sprite # 21 .byte $04,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$30 ; Sprite # 24 .byte $F3,$FF ; Sprite # 25 .byte $0C,$F0 ; Sprite # 26 .byte $02,$80 ; Sprite # 28 .byte $00,$00 ; Sprite # 29 .byte $50,$00 ; Sprite # 30 .byte $00,$05 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$52 ; Sprite # 33 .byte $AA,$A8 ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$56 ; Sprite # 36 .byte $AA,$A9 ; Sprite # 37 .byte $00,$01 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $50,$14 ; Sprite # 42 .byte $00,$14 ; Sprite # 43 .byte $00,$14 ; Sprite # 44 .byte $50,$14 ; Sprite # 45 .byte $50,$00 ; Sprite # 46 .byte $50,$00 ; Sprite # 47 .byte $00,$14 ; Sprite # 48 .byte $50,$14 ; Sprite # 49 .byte $50,$14 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $00,$00 ; Sprite # 52 .byte $00,$00 ; Sprite # 53 .byte $10,$88 ; Sprite # 54 .byte $9A,$A6 ; Sprite # 55 .byte $98,$A6 ; Sprite # 56 .byte $08,$00 ; Sprite # 57 .byte $3C,$3C ; Sprite # 58 .byte $02,$80 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $A5,$A5 ; Sprite # 62 .byte $1B,$E4 ; Sprite # 63 .byte $3F,$CC ; Sprite # 64 .org SPRITEDATA2+$E00 .byte $00,$00 ; Sprite # 0 .byte $DE,$DE ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $05,$AF ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $02,$80 ; Sprite # 5 .byte $00,$00 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $55,$70 ; Sprite # 9 .byte $55,$54 ; Sprite # 10 .byte $55,$54 ; Sprite # 11 .byte $35,$5C ; Sprite # 12 .byte $35,$54 ; Sprite # 13 .byte $35,$70 ; Sprite # 14 .byte $70,$04 ; Sprite # 15 .byte $55,$54 ; Sprite # 16 .byte $55,$70 ; Sprite # 17 .byte $5C,$D4 ; Sprite # 18 .byte $15,$54 ; Sprite # 19 .byte $00,$40 ; Sprite # 20 .byte $15,$14 ; Sprite # 21 .byte $04,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$30 ; Sprite # 24 .byte $3C,$FC ; Sprite # 25 .byte $0C,$F0 ; Sprite # 26 .byte $AA,$AA ; Sprite # 28 .byte $AA,$AA ; Sprite # 29 .byte $40,$00 ; Sprite # 30 .byte $00,$01 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $80,$02 ; Sprite # 33 .byte $AA,$AA ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$55 ; Sprite # 36 .byte $AA,$AA ; Sprite # 37 .byte $00,$00 ; Sprite # 38 .byte $55,$55 ; Sprite # 39 .byte $40,$04 ; Sprite # 40 .byte $40,$00 ; Sprite # 41 .byte $55,$54 ; Sprite # 42 .byte $55,$54 ; Sprite # 43 .byte $55,$54 ; Sprite # 44 .byte $50,$14 ; Sprite # 45 .byte $55,$54 ; Sprite # 46 .byte $55,$54 ; Sprite # 47 .byte $55,$54 ; Sprite # 48 .byte $55,$54 ; Sprite # 49 .byte $55,$54 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $00,$00 ; Sprite # 52 .byte $00,$00 ; Sprite # 53 .byte $00,$82 ; Sprite # 54 .byte $A9,$AA ; Sprite # 55 .byte $A9,$AA ; Sprite # 56 .byte $00,$00 ; Sprite # 57 .byte $0F,$0F ; Sprite # 58 .byte $02,$80 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $5A,$5A ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $1A,$A4 ; Sprite # 63 .byte $F3,$C3 ; Sprite # 64 .org SPRITEDATA2+$F00 .byte $00,$00 ; Sprite # 0 .byte $FF,$FF ; Sprite # 1 .byte $5A,$5A ; Sprite # 2 .byte $00,$00 ; Sprite # 3 .byte $00,$00 ; Sprite # 4 .byte $05,$50 ; Sprite # 5 .byte $00,$00 ; Sprite # 6 .byte $00,$00 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $57,$C0 ; Sprite # 9 .byte $FF,$FC ; Sprite # 10 .byte $FF,$FC ; Sprite # 11 .byte $0F,$F0 ; Sprite # 12 .byte $0F,$FC ; Sprite # 13 .byte $0F,$C0 ; Sprite # 14 .byte $C0,$0C ; Sprite # 15 .byte $FF,$FC ; Sprite # 16 .byte $FF,$C0 ; Sprite # 17 .byte $F0,$3C ; Sprite # 18 .byte $3F,$FC ; Sprite # 19 .byte $00,$C0 ; Sprite # 20 .byte $05,$50 ; Sprite # 21 .byte $05,$50 ; Sprite # 22 .byte $02,$80 ; Sprite # 23 .byte $0F,$F0 ; Sprite # 24 .byte $0F,$F0 ; Sprite # 25 .byte $0F,$F0 ; Sprite # 26 .byte $AA,$AA ; Sprite # 28 .byte $AA,$AA ; Sprite # 29 .byte $40,$00 ; Sprite # 30 .byte $00,$01 ; Sprite # 31 .byte $55,$55 ; Sprite # 32 .byte $AA,$AA ; Sprite # 33 .byte $AA,$AA ; Sprite # 34 .byte $AA,$AA ; Sprite # 35 .byte $55,$55 ; Sprite # 36 .byte $AA,$AA ; Sprite # 37 .byte $00,$00 ; Sprite # 38 .byte $00,$00 ; Sprite # 39 .byte $C0,$0C ; Sprite # 40 .byte $C0,$00 ; Sprite # 41 .byte $55,$54 ; Sprite # 42 .byte $55,$54 ; Sprite # 43 .byte $55,$54 ; Sprite # 44 .byte $50,$14 ; Sprite # 45 .byte $55,$54 ; Sprite # 46 .byte $55,$54 ; Sprite # 47 .byte $55,$54 ; Sprite # 48 .byte $55,$54 ; Sprite # 49 .byte $55,$54 ; Sprite # 50 .byte $01,$40 ; Sprite # 51 .byte $00,$00 ; Sprite # 52 .byte $00,$00 ; Sprite # 53 .byte $00,$80 ; Sprite # 54 .byte $6A,$A6 ; Sprite # 55 .byte $6A,$A6 ; Sprite # 56 .byte $00,$00 ; Sprite # 57 .byte $0F,$0F ; Sprite # 58 .byte $02,$80 ; Sprite # 59 .byte $55,$55 ; Sprite # 60 .byte $A5,$A5 ; Sprite # 61 .byte $5A,$5A ; Sprite # 62 .byte $05,$50 ; Sprite # 63 .byte $C2,$80 ; Sprite # 64 Conner; T1000 lda #%00011110 sta PALWDH+1; Can be put in INIT ldy Level lda Stagefeatures,y and #%00000100 beq Notwaterlevel dec Breath+1 lda Breath+1 cmp #$FF bne Notwaterlevel lda #60 sta Breath+1 dec Breath Notters Notwaterlevel lda Breath sbc #5 bpl Treesgreen lda Breath bne Treesgreen lda #20 sta Breath lda Cstate ora #1 sta Cstate Treesgreen ldy Level lda Stagefeatures,y and #%00000100 beq Expansion lda Timebonus and #1 tay lda Uhohh,y sta PALWDH+1 bne Expansion Expansion lda #96 sta Timer lda Level and #$FC cmp #$0C; Aqua beach bne Nocycle inc Hmmmm lda Hmmmm lsr lsr lsr and #3 tay cpy #3 bne DELETE lda #0 sta Hmmmm DELETE lda Cycle,y sta P2C1 lda Cycle+1,y sta P2C2 lda Cycle+2,y sta P2C3 Nocycle lda #$A0 sta GFXHI sta GFXHI+1 lda Dbugenable beq NODBUG lda SWCHA and #%00001000; D key/ right bne NOFLY sec lda Scroll adc #7 and #%11111000 sta Scroll NOFLY lda SWCHA and #%00000100; A key/ left bne Nonext lda #64 sta Spintimr lda Level and #%00000011 cmp #3 bne Nonext inc Level jmp CHICHI Nonext lda Level sta Prevlevel CHICHI lda SWCHA and #%00000010 bne Nonext2 inc Score+3 inc Othercoins jsr Score10 lda Score+1 cmp #$62 bne Nonext2 clc lda Score+3 adc #6 sta Score+3 lda Score cmp #$62 bne Nonext2 lda #0 sta Score+3 Nonext2 lda SWCHA and #%00000001 bne Noview lda #1 sta Breath Noview NODBUG clc lda Wait adc #1 sta Wait bcc NO16 inc Wait+1 NO16 lda Timebonus+1 beq Nobonus sec lda Timebonus sbc #2 sta Timebonus bcs Nobonus dec Timebonus+1 Nobonus lda YPOS+1 lsr lsr lsr and #%00011110 tay lda Whererows,y sta Tempptr lda Whererows+1,y sta Tempptr+1 lda #$F8 sta COLUBK; REMOVE IN FINAL lda YPOS bne Not0 ldy #0 sty Jumptimr Not0 lda SWCHA sta Index lax CTRLE beq Controle txa sta Index Controle lda Index ;Read stick and #$80 ;Pushed Right? bne skip1 lda XPOS adc Scroll adc #8 lsr lsr lsr tay lda (Tempptr),y lsr tay lda Properties,y and #%00000010 bne skip1 lda #0 sta Wait sta Wait+1 lda Scrlmode and #1 bne Specialzzz lda XPOS and #$FE cmp #72 bne Specialzzz inc Scroll lda INPT1 bpl Specialzzzz inc Scroll jmp Specialzzzz Specialzzz inc XPOS lda INPT1 bpl Specialzzzz inc XPOS Specialzzzz sec inc Animtimr lda #0 sta Direction skip1 lda Index ;Read stick and #$40 ;Pushed Left? bne skip2 lda XPOS adc Scroll lsr lsr lsr tay lda (Tempptr),y lsr tay lda Properties,y and #%00000010 bne skip2 lda #0 sta Wait sta Wait+1 Specialz lda XPOS and #$FE beq Specialzz dec XPOS lda INPT1 bpl Specialzz dec XPOS Specialzz inc Animtimr lda Direction ora #2 sta Direction skip2 clc lda XPOS adc Scroll lsr lsr lsr tay lda (Tempptr),y lsr tay lda Properties,y; T1536 and #%00000100 beq Nohitt lda #0 sta Jumptimr Nohitt skip3 lda YPOS+1 adc #$10 lsr lsr lsr and #%00011110 tay lda Whererows,y sta Tempptr lda Whererows+1,y sta Tempptr+1 lda XPOS adc Scroll adc #4 lsr lsr lsr sta $2000 tay lda (Tempptr),y sta $FE lsr tay lda Properties,y sta temp and #1 bne skip4 lda Jumptimr bne skip6 inc YPOS inc YPOS lda Cstate ora #%00000100 sta Cstate; Enable invincibility ldy Level lda Stagefeatures,y and #%00000100 bne Hmmmmm skip6 jmp skip5 Heights hex 18202810 skip4 lda $FE beq Shadow lda #0 sta CTRLE Shadow lda temp and #$80 beq No1up ldy $2000 lda #$6A sta (Tempptr),y inc Lives jsr Score1000 No1up lda Cstate and #%11111011 sta Cstate; Disable invincibility Hmmmmm lda INPT0 bpl skip5 lda Cstate and #1 tay lda Index and #%11000000 eor #%11000000 beq Nodirection lda INPT1 bpl Nodirection iny lda Heights,y bne M5 Dontworkat2 lda #3 sta Init ldy Level lda Startstages,y sta Stage and #0 sta Scroll rts Nodirection ldx Level lda Stagefeatures,x and #%00000100 beq Noswim ldy #3 Noswim lda Heights,y M5 sta Jumptimr skip5 lda $FE cmp #$08 bne Notcollectable lda XPOS adc Scroll adc #4 lsr lsr lsr sta $1FFD tay lda #$00 sta COLUBK lda (Tempptr),y sec lda Tempptr sta Tempptr bcs N dec Tempptr+1 N inc Score+3 jsr Score10 inc Othercoins lda Score+1 cmp #$62 bne Not0a clc lda Score+3 adc #6 sta Score+3 lda Score cmp #$62 bne Not0a lda #0 sta Score+3 inc Lives jsr Score1000 lda #$6A bne YE Not0a lda #$00 YE sta (Tempptr),y jmp Nofurther Notcollectable lda YPOS+1 lsr lsr lsr and #%00011110 tay lda Whererows,y sta Tempptr lda Whererows+1,y sta Tempptr+1 ldy $2000 lda (Tempptr),y sta $FE tay; T12 cmp #$2A bne Noanim lda XPOS adc Scroll lsr lsr lsr sta $1FFF lda Tempptr adc $1FFF sta Special lda Tempptr+1 sta Special+1 lda #64 sta Spintimr Noanim lda Jumptimr bne Econotes lda temp and #$08 beq Returncontrol asl sta Jumptimr ldy Direction lda LOKI,y sta CTRLE lda Score+3 bne Dontworkat3 jmp Dontworkat2 Dontworkat3 ldy #0 sty Score+3 dec YPOS jmp Econotes LOKI hex 40808040 Econotes Returncontrol lda Properties,y sta temp lda $FE cmp #$70 bne Nobreathback lda #20 sta Breath Nobreathback Nohurt lda $FE cmp #$7C bne MRK lax Prevlevel sta Level lda Startstages,x sta Stage jsr Getstage lda Stagefeatures,x and #1 sta Chunk lda #0 sta Scroll lda #3 sta Init rts DATABLE byte #$80 hex 10 byte #$40 MRK lda $FE cmp #$10 bne Nofurther ldy Level lda Stagefeatures,y and #%00000100 bne Notbouncy lda #48 sta Jumptimr sta COLUBK bne Nofurther Notbouncy lda #$a0 sta YPOS Nofurther lda Jumptimr beq Nojump dec YPOS dec YPOS lda Cstate and #%11111011 sta Cstate; Disable invincibility lda YPOS lsr lsr lsr and #%00011110 tay lda Whererows,y sta Tempptr lda Whererows+1,y sta Tempptr+1 ldy $1FFD lda (Tempptr),y tay lda Properties,y and #2 beq Nohit bne Nohit lda #1 sta Jumptimr Nohit dec Jumptimr Nojump clc lda YPOS adc #$10 sta YPOS+1 lda Wait+1 and #$7F sbc #$20 bmi Screenflash lda #0 tax tay jmp Warm; Restart. Screenflash lda Wait+1 and #$7F sbc #$10 bmi Uhoh lda Wait+1 and #$7F sbc #$15 bmi Phew lda Wait lsr lsr lsr lsr lsr and #1 tay lda OHNO+4,y sta GFXLO lda OHNO,y sta GFXLO+1 bne Turboiscoming Phew lda Wait lsr lsr lsr lsr lsr lsr and #1 tay lda OHNO+2,y sta GFXLO lda OHNO,y sta GFXLO+1 bne Turboiscoming Uhoh lda Wait+1 and #$7F sbc #$02 bmi Notlong lda Wait lsr lsr lsr lsr lsr lsr and #1 tay lda Bored,y sta GFXLO+1 lda #22 sta GFXLO lda #%00111110 sta PALWDH bne LONG Turboiscoming lda #%00111100 sta PALWDH bne LONG Notlong lda #%00111110 sta PALWDH lax Direction sta GFXLO clc lda Animtimr lsr lsr and #$03 sta temp txa asl asl ora temp tay lda Frames,y sta GFXLO+1 LONG lda YPOS cmp #$A0 bne Noup ldy Level lda Stagefeatures,y and #2 beq DIE lda #$10 sta YPOS lda #$20 sta YPOS+1 ldy Level lda Stagexits,y sta Level tay lda Startstages,y sta Stage lda #0 sta Offset lda Stagefeatures,y and #1 sta Chunk jsr Getstage jsr Displayy jsr Getcolor jmp Noup DIE lda #$40 sta YPOS sta YPOS+1 and #0 sta Scroll dec Lives lda Lives beq ISDEAD lda #3 sta Init ldy Level lda Startstages,y sta Stage jmp Noup ISDEAD inc Enable lda #0 tax tay jmp Warm Noup lda Spintimr beq Gotospin ldy #0 lda Spintimr and #%00000111 tax lda Framess,x sta (Special),y dec Spintimr lda #1 sta Scrlmode lda Timebonus+1 beq Nomore dec Timebonus+1 jsr Score100 Nomore inc Timebonus lda Spintimr bne SPIN lda #$40 sta Timebonus+1 sta Timebonus lda #$00 sta Scrlmode sta Scroll lda #72 sta XPOS lda #3 sta Init lda Level lsr lsr tay lda Othercoins cmp Coinsrequired,y bmi Notenough lda Level cmp #17 beq Notenough; Implemented in V15.0 lda Level sta $FE ldy Level lda Stagefeatures,y and #1 sta Chunk lda Level ora #3 sta Level bne Not3 Gotospin beq Nospin SPIN bne Nospin Notenough inc Level lda Level and #3 cmp #3 bne Not4 inc Level; Since "Act D" isn't a thing jmp Not3 Not4 lax Level sta Prevlevel Not3 lda Stagefeatures,x bpl Notunplay inc Level jmp Not3; Implemented in V15.1 Notunplay clc lda #0 sta Othercoins ldy Level lda Startstages,y adc #1 sta Stage lda Stagefeatures,y and #1 sta Chunk jsr Getstage Nospin lda XPOS sta XPOS+1 lda #0 sta Index sta MUSIK rts org $A000 SPRITEDATA: ; SPRITE GRAPHICS IMAGE DATA! ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .byte $1A,$C0 ; Sprite # 0 .byte $03,$A4 ; Sprite # 1 .byte $0F,$F0 ; Sprite # 2 .byte $0F,$F0 ; Sprite # 3 .byte $30,$C0 ; Sprite # 4 .byte $03,$0C ; Sprite # 5 .byte $30,$C0 ; Sprite # 6 .byte $03,$0C ; Sprite # 7 .byte $32,$30 ; Sprite # 8 .byte $FC,$F0 ; Sprite # 9 .byte $FC,$FF ; Sprite # 10 .byte $32,$30 ; Sprite # 11 .byte $B2,$3A,$00,$00 ; Sprite # 12 .byte $FC,$FF ; Sprite # 13 .byte $FC,$FF ; Sprite # 14 .byte $32,$30,$00,$00 ; Sprite # 15 .byte $16,$80,$00,$00 ; Sprite # 16 .byte $32,$30 ; Sprite # 17 .org SPRITEDATA+$100 .byte $1A,$F0 ; Sprite # 0 .byte $0F,$A4 ; Sprite # 1 .byte $0F,$C0 ; Sprite # 2 .byte $03,$F0 ; Sprite # 3 .byte $C0,$F0 ; Sprite # 4 .byte $0F,$03 ; Sprite # 5 .byte $C0,$F0 ; Sprite # 6 .byte $0F,$03 ; Sprite # 7 .byte $3E,$F0 ; Sprite # 8 .byte $FC,$FC ; Sprite # 9 .byte $FC,$FC ; Sprite # 10 .byte $3E,$F0 ; Sprite # 11 .byte $BE,$F2,$00,$00 ; Sprite # 12 .byte $FC,$FC ; Sprite # 13 .byte $FC,$FC ; Sprite # 14 .byte $3E,$F0,$00,$00 ; Sprite # 15 .byte $15,$80,$00,$00 ; Sprite # 16 .byte $3E,$F0 ; Sprite # 17 .org SPRITEDATA+$200 .byte $15,$50 ; Sprite # 0 .byte $05,$54 ; Sprite # 1 .byte $0F,$00 ; Sprite # 2 .byte $00,$F0 ; Sprite # 3 .byte $FC,$FC ; Sprite # 4 .byte $3F,$3F ; Sprite # 5 .byte $FC,$FC ; Sprite # 6 .byte $3F,$3F ; Sprite # 7 .byte $15,$50 ; Sprite # 8 .byte $3C,$FF ; Sprite # 9 .byte $3C,$F0 ; Sprite # 10 .byte $19,$90 ; Sprite # 11 .byte $A5,$62,$00,$00 ; Sprite # 12 .byte $3C,$F0 ; Sprite # 13 .byte $3C,$F0 ; Sprite # 14 .byte $25,$60,$00,$00 ; Sprite # 15 .byte $15,$50,$00,$00 ; Sprite # 16 .byte $25,$60 ; Sprite # 17 .org SPRITEDATA+$300 .byte $15,$54 ; Sprite # 0 .byte $15,$54 ; Sprite # 1 .byte $0F,$00 ; Sprite # 2 .byte $00,$F0 ; Sprite # 3 .byte $3F,$C0 ; Sprite # 4 .byte $03,$FC ; Sprite # 5 .byte $3F,$C0 ; Sprite # 6 .byte $03,$FC ; Sprite # 7 .byte $15,$50 ; Sprite # 8 .byte $3C,$F0 ; Sprite # 9 .byte $3C,$F0 ; Sprite # 10 .byte $25,$60 ; Sprite # 11 .byte $19,$90,$00,$00 ; Sprite # 12 .byte $3C,$F0 ; Sprite # 13 .byte $3C,$F0 ; Sprite # 14 .byte $19,$90,$00,$00 ; Sprite # 15 .byte $15,$50,$00,$00 ; Sprite # 16 .byte $19,$90 ; Sprite # 17 .org SPRITEDATA+$400 .byte $11,$14 ; Sprite # 0 .byte $14,$44 ; Sprite # 1 .byte $0F,$00 ; Sprite # 2 .byte $00,$F0 ; Sprite # 3 .byte $0F,$C0 ; Sprite # 4 .byte $03,$F0 ; Sprite # 5 .byte $0F,$C0 ; Sprite # 6 .byte $03,$F0 ; Sprite # 7 .byte $11,$10 ; Sprite # 8 .byte $3C,$F0 ; Sprite # 9 .byte $3C,$F0 ; Sprite # 10 .byte $11,$10 ; Sprite # 11 .byte $11,$10,$00,$00 ; Sprite # 12 .byte $3C,$F0 ; Sprite # 13 .byte $3C,$F0 ; Sprite # 14 .byte $11,$10,$00,$00 ; Sprite # 15 .byte $11,$10,$00,$00 ; Sprite # 16 .byte $11,$10 ; Sprite # 17 .org SPRITEDATA+$500 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $0F,$00 ; Sprite # 2 .byte $00,$F0 ; Sprite # 3 .byte $0F,$00 ; Sprite # 4 .byte $00,$F0 ; Sprite # 5 .byte $0F,$00 ; Sprite # 6 .byte $00,$F0 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $3C,$F0 ; Sprite # 9 .byte $3C,$F0 ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $00,$00,$00,$00 ; Sprite # 12 .byte $3C,$F0 ; Sprite # 13 .byte $BC,$F2 ; Sprite # 14 .byte $20,$00,$00,$50 ; Sprite # 15 .byte $00,$00,$00,$00 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$600 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $15,$40 ; Sprite # 2 .byte $01,$54 ; Sprite # 3 .byte $15,$40 ; Sprite # 4 .byte $01,$54 ; Sprite # 5 .byte $15,$40 ; Sprite # 6 .byte $01,$54 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $17,$50 ; Sprite # 9 .byte $17,$50 ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $00,$00,$00,$00 ; Sprite # 12 .byte $17,$50 ; Sprite # 13 .byte $97,$52 ; Sprite # 14 .byte $44,$44,$44,$40 ; Sprite # 15 .byte $00,$00,$00,$00 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$700 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $15,$50 ; Sprite # 2 .byte $05,$54 ; Sprite # 3 .byte $15,$50 ; Sprite # 4 .byte $05,$54 ; Sprite # 5 .byte $15,$50 ; Sprite # 6 .byte $05,$54 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $17,$50 ; Sprite # 9 .byte $17,$50 ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $01,$51,$04,$00 ; Sprite # 12 .byte $17,$50 ; Sprite # 13 .byte $97,$5A ; Sprite # 14 .byte $54,$54,$54,$50 ; Sprite # 15 .byte $00,$00,$00,$00 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$800 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $1F,$FA ; Sprite # 2 .byte $AF,$F4 ; Sprite # 3 .byte $97,$F0 ; Sprite # 4 .byte $0F,$D6 ; Sprite # 5 .byte $A5,$50 ; Sprite # 6 .byte $05,$5A ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $FE,$AF ; Sprite # 9 .byte $FE,$AF ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $01,$11,$45,$00 ; Sprite # 12 .byte $17,$50 ; Sprite # 13 .byte $D7,$5F ; Sprite # 14 .byte $40,$44,$54,$44 ; Sprite # 15 .byte $00,$00,$00,$00 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$900 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $1F,$FA ; Sprite # 2 .byte $AF,$F4 ; Sprite # 3 .byte $9F,$FA ; Sprite # 4 .byte $AF,$F6 ; Sprite # 5 .byte $AF,$5A ; Sprite # 6 .byte $A5,$FA ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $FA,$BF ; Sprite # 9 .byte $FA,$BF ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $01,$11,$04,$00 ; Sprite # 12 .byte $17,$50 ; Sprite # 13 .byte $D7,$5F ; Sprite # 14 .byte $54,$54,$44,$50 ; Sprite # 15 .byte $00,$00,$00,$00 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$A00 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $1F,$50 ; Sprite # 2 .byte $05,$F4 ; Sprite # 3 .byte $1F,$5A ; Sprite # 4 .byte $A5,$F4 ; Sprite # 5 .byte $FF,$5A ; Sprite # 6 .byte $A5,$FF ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $D7,$5F ; Sprite # 9 .byte $D7,$5F ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $01,$51,$45,$00 ; Sprite # 12 .byte $17,$50 ; Sprite # 13 .byte $D7,$5F ; Sprite # 14 .byte $00,$00,$00,$00 ; Sprite # 15 .byte $00,$00,$00,$00 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$B00 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $1F,$50 ; Sprite # 2 .byte $05,$F4 ; Sprite # 3 .byte $1F,$50 ; Sprite # 4 .byte $05,$F4 ; Sprite # 5 .byte $3F,$50 ; Sprite # 6 .byte $05,$FC ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $D7,$5F ; Sprite # 9 .byte $D7,$5F ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $00,$00,$00,$00 ; Sprite # 12 .byte $D7,$5F ; Sprite # 13 .byte $D7,$5F ; Sprite # 14 .byte $10,$44,$50,$00 ; Sprite # 15 .byte $41,$15,$05,$40 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$C00 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $15,$50 ; Sprite # 2 .byte $05,$54 ; Sprite # 3 .byte $15,$50 ; Sprite # 4 .byte $05,$54 ; Sprite # 5 .byte $0D,$50 ; Sprite # 6 .byte $05,$70 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $17,$5C ; Sprite # 9 .byte $17,$5C ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $10,$54,$44,$41 ; Sprite # 12 .byte $D7,$5F ; Sprite # 13 .byte $17,$5C ; Sprite # 14 .byte $10,$44,$40,$00 ; Sprite # 15 .byte $41,$11,$11,$10 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$D00 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $05,$40 ; Sprite # 2 .byte $01,$50 ; Sprite # 3 .byte $05,$40 ; Sprite # 4 .byte $01,$50 ; Sprite # 5 .byte $05,$40 ; Sprite # 6 .byte $01,$50 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $07,$40 ; Sprite # 9 .byte $07,$40 ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $10,$44,$54,$45 ; Sprite # 12 .byte $C7,$4F ; Sprite # 13 .byte $07,$40 ; Sprite # 14 .byte $10,$44,$50,$00 ; Sprite # 15 .byte $45,$11,$10,$10 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$E00 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $18,$00 ; Sprite # 2 .byte $00,$24 ; Sprite # 3 .byte $18,$00 ; Sprite # 4 .byte $00,$24 ; Sprite # 5 .byte $18,$00 ; Sprite # 6 .byte $00,$24 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $20,$20 ; Sprite # 9 .byte $20,$20 ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $10,$44,$44,$51 ; Sprite # 12 .byte $E0,$2F ; Sprite # 13 .byte $20,$20 ; Sprite # 14 .byte $10,$54,$44,$00 ; Sprite # 15 .byte $51,$11,$10,$10 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 .org SPRITEDATA+$F00 .byte $00,$00 ; Sprite # 0 .byte $00,$00 ; Sprite # 1 .byte $12,$A8 ; Sprite # 2 .byte $2A,$84 ; Sprite # 3 .byte $12,$A8 ; Sprite # 4 .byte $2A,$84 ; Sprite # 5 .byte $12,$A8 ; Sprite # 6 .byte $2A,$84 ; Sprite # 7 .byte $00,$00 ; Sprite # 8 .byte $2A,$A0 ; Sprite # 9 .byte $2A,$A0 ; Sprite # 10 .byte $00,$00 ; Sprite # 11 .byte $54,$44,$50,$41 ; Sprite # 12 .byte $EA,$AF ; Sprite # 13 .byte $2A,$A0 ; Sprite # 14 .byte $54,$44,$50,$00 ; Sprite # 15 .byte $41,$15,$10,$10 ; Sprite # 16 .byte $00,$00 ; Sprite # 17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RTII ldx #0 stx Scroll stx YPOS stx YPOS+1 lda #96 sta Timer jsr Makebackground sec ldy #7 Displayz lax Highscore+0 and #$0F tay lda DANUMBERZ,y sta $22E8 txa lsr lsr lsr lsr tay lda DANUMBERZ,y sta $22E7 lax Highscore+1 and #$0F tay lda DANUMBERZ,y sta $22E6 txa lsr lsr lsr lsr tay lda DANUMBERZ,y sta $22E5 lax Highscore+2 and #$0F tay lda DANUMBERZ,y sta $22E4 txa lsr lsr lsr lsr tay lda DANUMBERZ,y sta $22E3 lax Highscore+3 and #$0F tay lda DANUMBERZ,y sta $22E2 txa lsr lsr lsr lsr tay lda DANUMBERZ,y sta $22E1 lda #0 sta Score+3 sec lda Password adc Password+1 clc adc Password+2 sbc Password+3 eor Password+4 eor Password+5 sbc Password+6 and #$1F sta Password+7 lda SWCHA cmp #$FF beq Noi ldy #7 lda #0 HEZCONK sta Highscore,y dey cpy #$FF bne HEZCONK clc lda Password+5 adc #5 sta Lives sec lda Password adc Password+1 clc adc Password+2 sbc Password+3 eor Password+4 eor Password+5 sbc Password+6 and #$1F cmp Password+7 bne FAIL lda Password+6 cmp #$0C bne Notdbug inc Dbugenable Notdbug lda Password+2 asl asl asl and #%11100000 sta temp lda Password+5 ora temp sta Score+3; Coins lda Password+3 sta Prevlevel lax Password sta Level lda Stagefeatures,x and #1 sta Chunk lda Startstages,x sta Stage jsr Getstage FAIL lda #3 sta Init jmp No Noi lda Enable bne Notenable lda SWCHB and #%00000010 bne Notselect inc Index inc Enable Notselect lda SWCHB and #1 bne Nofire ldx Index inc Password,x inc Enable Nofire Notenable lda SWCHB and #%00000011 eor #%00000011 bne Stillno lda #0 sta Enable Stillno ldy #8 Display lda Password-1,y asl sta $2300,y lsr and #$1F sta Password-1,y and #00 sta $2320,y dey bne Display ldx Index lda #$02 sta $2321,x lda Index and #7 sta Index lda #0 sta $2329 No rti RTIII jmp RTII NMI lda Init and #1 beq RTIII ldx #0 stx currspr stx BACKGRND lda #14 sta numspr lda #10 sta dlend; fixes glitch at top of screen lda #5 ldx #$0C cleardlend sta dlend,x; set all dlends to 0 dex bne cleardlend makegfx ;format = ; 1: low adress ; 2 : write mode on 7, indirect mode on 5 ; 3 : High adress + lower nybble of y pos ; 4 = pallete + width ; 5 = xpos ldx currspr; 3 lda YPOS,x; 7 beq nobottom; YPOS = 0 then skip sprite and #$0F; 9 sta tempoffset; 12 lda YPOS,x; 16 lsr; 18 lsr; 20 lsr;22 lsr;24 tax;26 lda DLPOINTH,x; 33 sta dlpnt+1; 36 lda DLPOINTL,x; 40 sta dlpnt; 43 ldy dlend,x; 47 stx tempzone; 50 ldx currspr; which sprite to process? 53 lda GFXLO,x; low byte 57 sta (dlpnt),y; 63 iny; 65 lda PALWDH,x; pallete and width 94 sta (dlpnt),y; 100 iny; 75 lda GFXHI,x; high byte + low nybble of ypos 79 ora tempoffset; 82 sta (dlpnt),y; 88 iny; 102 lda XPOS,x; xpos 106 sta (dlpnt),y; 112 iny ldx tempzone; 115 sty dlend,x; 119 lda tempoffset; 122 beq nobottom; don't draw bottom 124 inx; 126 lda DLPOINTH,x; 130 sta dlpnt+1; 133 lda DLPOINTL,x; 137 sta dlpnt; 140 ldy dlend,x; 144 stx tempzone; save the current zone 147 ldx currspr; which sprite to process? 150 lda GFXLO,x; 154 sta (dlpnt),y; 160 iny; 162 lda PALWDH,x; 201 sta (dlpnt),y; 207 iny; 172 lda tempoffset; 175 eor #$0F; 177 sta temp; to do the bottom, we need some extra 180 lda GFXHI,x; computations! grr! 184 clc; 186 sbc temp; 189 sta (dlpnt),y; 195 ; 197 iny; 209 lda XPOS,x; 213 sta (dlpnt),y; 219 iny ldx tempzone; 222 sty dlend,x; 226 nobottom inc currspr; 231, 129 lda currspr; 234, 132 cmp numspr; 237, 135 beq dontmakegfx; 239, 137 jmp makegfx; 242, 140 dontmakegfx ldx #$0C dlendloop dex lda DLPOINTL,x sta dlpnt lda DLPOINTH,x sta dlpnt+1 ldy dlend,x iny lda #$0 sta (dlpnt),y txa bne dlendloop lda Init and #2 bne Notyet jsr Conner jmp Nz Notyet jsr Titlecard Nz lda Nextupdate and #%11111000 sta temp lda Scroll and #%11111110 cmp temp bne Keep jsr Stagedraw; Update playfeild Keep jsr Makebackground GAMEOVER lda Level and #$FC tay lda SWCHB and #1 bne Notreturn lda Password adc Password+1 clc adc Password+2 sbc Password+3 eor Password+4 eor Password+5 sbc Password+6 and #$1F sta Password+7 pla pla lax Score+3 and #%11100000 sta Password+2 txa and #%00011111 sta Password+5 lda Prevlevel sta Password+3 lda Level sta Password lda Lives and #$7F sbc #5 bmi Formadyln lda Lives sta Password+1 Formadyln inc Enable lda #0 tay tax jmp Warm Notreturn lax Score+3 and #$0F tay lda DANUMBERZ,y sta Score+1 txa lsr lsr lsr lsr tay lda DANUMBERZ,y sta Score sta COLUBK NOENEMY ldy Level lda Stagefeatures,y and #%00111000 tay lda Colors,y sta COLUBK lda Timer bne RTIIII lda #%01010000 sta CTRL RTIIII rti IRQ rti DANUMBERZ hex 52645456585A5C5E6062FF Titlecardinit lda #96 sta Timer lda #%10000010 sta Init lda #$FF sta Scroll lda #8 sta Nextupdate rts Titlecard lda #0 sta Othercoins lda #20 sta Breath lda #$40 sta Timebonus sta Timebonus+1 lda #%01000000 sta CTRL jsr Getcolor lda Init cmp #2 beq Titlecardinit lda #$FF sta COLUBK lda $2200 cmp #20 beq AMAZON ldy #128 lda #20 Clear sta $2200,y sta $2280,y sta $2300,y dey cpy #$FF bne Clear AMAZON iny sty COLUBK dec Timer lda #$E0 sta CHARBASE lda Timer bne Keepgoing lda #1 sta Init lda #$80 sta CHARBASE lda #0 sta Scroll ora #8 sta Nextupdate ldy #128 lda #0 Clear2 sta $2200,y sta $2280,y sta $2300,y dey cpy #$FF bne Clear2 ldy #22 ldx #4 lda #4 Count lsr sta $233F,y txa sta $235F,y dey bne Count Keepgoing lax Level and #%00000011 eor #%00000011 bne Not00 lda #SPECIAL sta Tempptr+1 ldy #20 Loopz lda (Tempptr),y sbc #$40 and #$1F tax lda (Tempptr),y cmp #$20 bne Normalz lda #20 bne No2cz Normalz lda Convertable,x No2cz sta $2201,y dey bne Loopz lda #20 bne FAKECOOKIE Not00 txa lsr lsr asl tay lda Names,y sta Tempptr lda Names+1,y sta Tempptr+1 ldy #20 Loop lda (Tempptr),y sbc #$40 and #$1F tax lda (Tempptr),y cmp #$20 bne Normal lda #20 bne No2c Normal lda Convertable,x No2c sta $2201,y dey bne Loop ldy #3 PRESENT lda Level lsr lsr cmp #5 beq Skip lda ACT-1,y sta $2244,y dey bne PRESENT lda Level and #3; Only A-C are real acts, but that requires 2 bits FAKECOOKIE sta $2249; so D works too as a result of using 2 bits Skip rts ACT byte #0 byte #2 byte #16 Stagedraw clc lda #$0F sta COLUBK lda Scroll lsr lsr lsr adc #21 and #%00011111 tax clc ldy Offset lda (Levelptr),y sta $2200,x tya adc #10 tay lda (Levelptr),y sta $2220,x tya adc #10 tay lda (Levelptr),y sta $2240,x tya adc #10 tay lda (Levelptr),y sta $2260,x tya adc #10 tay lda (Levelptr),y sta $2280,x tya adc #10 tay lda (Levelptr),y sta $22A0,x tya adc #10 tay lda (Levelptr),y sta $22C0,x tya adc #10 tay lda (Levelptr),y sta $22E0,x tya adc #10 tay lda (Levelptr),y sta $2300,x tya adc #10 tay lda (Levelptr),y sta $2320,x tya adc #10 tay lda (Levelptr),y sta $2340,x tya adc #10 tay lda (Levelptr),y sta $2360,x inc Offset sec lda Nextupdate adc #7 sta Nextupdate lda Offset cmp #10 beq Getstage rts rts Getstage ldy Chunk lda CHI,y sta Tempptr+1 lda CLO,y sta Tempptr ldy Stage lda (Tempptr),y sta $FF asl tay lda Stagepointers,y sta Levelptr lda Stagepointers+1,y sta Levelptr+1 lda Direction bne _ lda #0 sta Offset inc Stage rts _ lda #9 sta Offset dec Stage rts CHI byte #>Stages byte #>Stages2 CLO byte #