#include "ti83plus.inc" #define bcall(label) RST 28h \ .dw label ; // FIRETRACK - BENJAMIN RYVES 2002 \\ ; \\ based on the BBC Micro classic. // .org $9D93+2 .db $BB,$6D bcall(_runindicoff) bcall(_clrlcdfull) ld hl,Loader ld de,PlotsScreen ld bc,768 ldir bcall(_grbufcpy) ld hl,Final ld (Progress),hl call ClearTempVals WaitForKey: ld hl,Final ld (Progress),hl bcall(_getcsc) cp sK2nd jp z,ZoneScan jp WaitForKey ZoneScan: ld hl,$0000 ld (AboutScrDelay),hl ld hl,(Progress) ld de,PlotsScreen ld bc,768 ldir bcall(_grbufcpy) set textinverse,(iy+textflags) ld hl,5*256+32 ld (pencol),hl ld hl,Cap_A bcall(_vputs) ld hl,17*256+14 ld (pencol),hl ld hl,Cap_B bcall(_vputs) ld hl,24*256+20 ld (pencol),hl ld hl,Cap_C bcall(_vputs) ld hl,38*256+12 ld (pencol),hl ld hl,Cap_D bcall(_vputs) ld hl,52*256+34 ld (pencol),hl ld hl,Cap_E bcall(_vputs) ld hl,(HiScore) bcall(_setxxxxop2) bcall(_op2toop1) ld a,5 bcall(_dispop1a) ld a,1 ld (pencol),a ld a,0 ld (penrow),a ld hl,(Score) bcall(_setxxxxop2) bcall(_op2toop1) ld a,5 bcall(_dispop1a) res textinverse,(iy+textflags) WaitForZoneKey: bcall(_getcsc) cp sK2nd jp z,Start cp skClear jp z,Exit cp skAlpha jp z,DisplayAboutScreen ld hl,(AboutScrDelay) inc hl ld (AboutScrDelay),hl ld de,$FFFF bcall(_cphlde) jp z,DisplayAboutScreen jp WaitForZoneKey Start: bcall(_grbufclr) call ClearTempVals ld hl,Final ld (Progress),hl call ShipAppearAnim ld hl,Final ld (Progress),hl call StartWave Loop: ld a,(LivesLeft) cp 0 jp z,EndGame ld a,(ProgDelay) inc a cp 5 jp z,ScrollLand ld (ProgDelay),a jp NoMove ScrollLand: ld hl,(Progress) dec hl \ dec hl \ dec hl \ dec hl \ dec hl \ dec hl dec hl \ dec hl \ dec hl \ dec hl \ dec hl \ dec hl ld (Progress),hl ld de,Background bcall(_cphlde) jp nz,StillGoing ld hl,Final ld (Progress),hl StillGoing: ld a,0 ld (ProgDelay),a NoMove: ld hl,(Progress) ld de,PlotsScreen ld bc,768 ldir call BulletCode ld hl,Enemy.X ld (Enemy.nX),hl ld hl,Enemy.Y ld (Enemy.nY),hl ld hl,Enemy.Active ld (Enemy.nA),hl ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ call DrawEnemies call DrawEnemies call DrawEnemies call DrawEnemies call DrawEnemies ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,MainShip call putClippedMaskedSprite ld hl,(Score) bcall(_setxxxxop2) bcall(_op2toop1) ld a,1 ld (pencol),a ld a,0 ld (penrow),a ld a,5 set textwrite,(iy+sgrflags) set textinverse,(iy+textflags) bcall(_dispop1a) res textwrite,(iy+sgrflags) res textinverse,(iy+textflags) call BufferToSafeRAM bcall(_grbufcpy) ;/// Keyboard input /// ld a,%00111110 out (1),a in a,(1) ld b,a bit 1,b call z,MoveLeft bit 2,b call z,MoveRight bit 3,b call z,MoveUp bit 0,b call z,MoveDown ld a,(NeedNewWave) cp 1 call z,StartWave ld a,0 ld (NeedNewWave),a bcall(_getcsc) cp skClear jp z,EndGame cp skMode call z,APDPause jp Loop MoveLeft: ld a,(ShipX) dec a cp 0 jp z,NoLeft ld (ShipX),a NoLeft: ret MoveRight: ld a,(ShipX) inc a cp 88 jp z,NoRight ld (ShipX),a NoRight: ret MoveUp: ld a,(ShipY) dec a cp 8 jp z,NoUp ld (ShipY),a NoUp: ret MoveDown: ld a,(ShipY) inc a cp 56 jp z,NoDown ld (ShipY),a NoDown: ret Exit: bcall(_grbufclr) bcall(_grbufcpy) bcall(_dispdone) ret Progress: .Word 0 ProgDelay: .byte 0 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ StartWave: ld hl,Enemy.AllActive ld de,Enemy.Active ld bc,5 ldir ld a,0 ld (Enemy.Throttle),a ld a,(Enemy.AttackStyle) inc a cp 6 jp nz,WhatWave ld a,1 WhatWave: ld (Enemy.AttackStyle),a cp 1 jp z,FlyPast.Init cp 2 jp z,Diag.Init cp 5 jp z,Giad.Init cp 4 jp z,BlockMe.Init cp 3 jp z,Vicious.Init FlyPast.Init: ld hl,Enemy.FlyPastX ld de,Enemy.X ld bc,5 ldir ld hl,Enemy.FlyPastY ld de,Enemy.Y ld bc,5 ldir call EnemySetShield ret Diag.Init: ld hl,Enemy.DiagX ld de,Enemy.X ld bc,5 ldir ld hl,Enemy.DiagY ld de,Enemy.Y ld bc,5 ldir call EnemySetBall ret Giad.Init: ld hl,Enemy.GiadX ld de,Enemy.X ld bc,5 ldir ld hl,Enemy.GiadY ld de,Enemy.Y ld bc,5 ldir call EnemySetSpiral ret BlockMe.Init: ld hl,Enemy.BlockMeX ld de,Enemy.X ld bc,5 ldir ld hl,Enemy.BlockMeY ld de,Enemy.Y ld bc,5 ldir call EnemySetBlocker ret Vicious.Init: ld hl,Enemy.ViciousX ld de,Enemy.X ld bc,5 ldir ld hl,Enemy.ViciousY ld de,Enemy.Y ld bc,5 ldir call EnemySetSmall ld a,-200 ld (Enemy.Throttle),a ret ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ DrawEnemies: ld hl,(Enemy.nX) ld b,(hl) call MoveEnemyX ld (hl),b inc hl ld (Enemy.nX),hl ld hl,(Enemy.nY) ld c,(hl) call MoveEnemyY ld (hl),c inc hl ld (Enemy.nY),hl ld hl,(Enemy.nA) ld a,(hl) cp 0 jp z,InactiveEnemy ld hl,EnemySprite call putClippedMaskedSprite InactiveEnemy: ld hl,(Enemy.nA) inc hl ld (Enemy.nA),hl ret MoveEnemyY: call CollisionDetect ld a,c cp 150 jp nz,StillMoving ld a,1 ld (NeedNewWave),a StillMoving: ld a,(Enemy.AttackStyle) cp 1 jp z,MoveFlyPastY cp 2 jp z,MoveDiagY cp 5 jp z,MoveGiadY cp 4 jp z,MoveBlockMeY cp 3 jp z,MoveViciousY MoveFlyPastY: inc c ret MoveDiagY: inc c ret MoveGiadY: inc c ret MoveBlockMeY: ld a,(Enemy.Throttle) inc a ld (Enemy.Throttle),a cp 2 jp nz,NoBlockMeY inc c ld a,0 ld (Enemy.Throttle),a NoBlockMeY: ret MoveViciousY: inc c ret MoveEnemyX: ld a,(Enemy.AttackStyle) cp 1 jp z,MoveFlyPastX cp 2 jp z,MoveDiagX cp 5 jp z,MoveGiadX cp 4 jp z,MoveBlockMeX cp 3 jp z,MoveViciousX MoveFlyPastX: ret MoveDiagX: inc b ret MoveGiadX: dec b ret MoveBlockMeX: ld a,(Enemy.Throttle) cp 0 jp nz,NoMoveBlockX ld a,(ShipX) cp b jp z,NoMoveBlockX jr c,MoveBlockLeft inc b ret MoveBlockLeft: dec b NoMoveBlockX: ret MoveViciousX: ld a,(Enemy.Throttle) inc a ld (Enemy.Throttle),a cp 2 jp nz,NoMoveViciousLeft ld a,0 ld (Enemy.Throttle),a ld a,(ShipX) cp b jr c,MoveViciousLeft inc b ret MoveViciousLeft: dec b NoMoveViciousLeft: ret ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ CollisionDetect: ld (HL_Temp),hl ld (BC_Temp),bc ld hl,(Enemy.nA) ld a,(hl) cp 0 jp z,NotHit ld a,(ShipX) sub 8 cp 96 jr nc,SetZero jp NotSetZero SetZero: ld a,0 NotSetZero: cp b jr nc,NotHit ld a,(ShipX) add a,8 cp b jr c,NotHit ld a,(ShipY) sub 4 cp c jr nc,NotHit ld a,(ShipY) add a,4 cp c jr c,NotHit call ExplodeShips call ShipAppearAnim ld hl,(HL_Temp) ld bc,(BC_Temp) ld a,1 ld (NeedNewWave),a ret NotHit: ld hl,(HL_Temp) ld bc,(BC_Temp) ret BulletCode: ld hl,BulletDataX ld (Bullet.nX),hl ld hl,BulletDataY ld (Bullet.nY),hl call ReadBullet call ReadBullet call ReadBullet call ReadBullet ret ReadBullet: ld hl,(Bullet.nX) ld a,(hl) inc hl ld (Bullet.nX),hl ld b,a ld hl,(Bullet.nY) ld a,(hl) dec a \ dec a cp -8 call z,BulletToBase ld (hl),a inc hl ld (Bullet.nY),hl ld h,a ld a,(ShipY) ld l,a ld a,h cp l jr nc,BehindShip ld c,a ld hl,Bullet ld (BC_Temp),bc call putClippedMaskedSprite call CheckBulletHit ret BehindShip: ld hl,(Bullet.nX) dec hl ld a,(ShipX) ld (hl),a ret BulletToBase: ld a,88 ret CheckBulletHit: ld bc,(BC_Temp) ld hl,Enemy.X ld (Enemy.nX),hl ld hl,Enemy.Y ld (Enemy.nY),hl ld hl,Enemy.Active ld (Enemy.nA),hl call CheckShip \ call NextShipCheck call CheckShip \ call NextShipCheck call CheckShip \ call NextShipCheck call CheckShip \ call NextShipCheck call CheckShip ret CheckShip: ld a,(Enemy.AttackStyle) cp 4 jp z,MissedBullet ld hl,(Enemy.nA) ld a,(hl) cp 0 jp z,MissedBullet ld hl,(Enemy.nX) ld a,(hl) sub 2 cp b jr nc,MissedBullet ld a,(hl) add a,2 cp b jr c,MissedBullet ld hl,(Enemy.nY) ld a,(hl) sub 4 cp c jr nc,MissedBullet ld a,(hl) add a,4 cp c jr c,MissedBullet ld hl,(Enemy.nA) ld a,0 ld (hl),a call SafeRAMToBuffer ld hl,Explosion_C ld bc,(BC_Temp) call putClippedMaskedSprite ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,MainShip call putClippedMaskedSprite bcall(_grbufcpy) ld hl,(Score) ld a,(Enemy.AttackStyle) cp 1 jp z,FivePts cp 2 jp z,TenPts cp 3 jp z,TwentyPts cp 4 jp z,FivePts cp 5 jp z,TenPts FivePts: ld de,5 jp AddPts TenPts: ld de,10 jp AddPts TwentyPts: ld de,20 jp AddPts AddPts: add hl,de ld (Score),hl MissedBullet: ret NextShipCheck: ld hl,(Enemy.nX) inc hl ld (Enemy.nX),hl ld hl,(Enemy.nY) inc hl ld (Enemy.nY),hl ld hl,(Enemy.nA) inc hl ld (Enemy.nA),hl ret DisplayAboutScreen: ld hl,$0000 ld (AboutScrDelay),hl ld hl,AboutScreen ld de,PlotsScreen ld bc,768 ldir bcall(_grbufcpy) StillShowScreen: bcall(_getcsc) cp sk2nd jp z,CloseAbtScreen jp StillShowScreen CloseAbtScreen: jp ZoneScan NeedNewWave: .byte 0 Enemy.AttackStyle: .byte 0 LivesLeft: .byte 4 Enemy.X: .db 4,24,44,64,84 Enemy.XData: .db 0,0,0,0,0 Enemy.Y: .db -40,-24,-8,-24,-40 Enemy.YData: .db 0,0,0,0,0 Enemy.Active: .db 1,1,1,1,1 Enemy.AllActive: .db 1,1,1,1,1 Enemy.nA: .word 0 Enemy.FlyPastY: .db -40,-24,-8,-23,-40 Enemy.FlyPastX: .db 4,24,44,64,84 Enemy.DiagY: .db -8,-24,-40,-56,-72 Enemy.DiagX: .db -8,-24,-40,-56,-72 Enemy.GiadY: .db -8,-24,-40,-56,-72 Enemy.GiadX: .db 96,112,128,144,160 Enemy.BlockMeX: .db 4,24,44,64,84 Enemy.BlockMeY: .db -8,-18,-28,-38,-48 Enemy.ViciousX: .db 4,24,44,64,84 Enemy.ViciousY: .db -8,-24,-40,-24,-8 Enemy.Throttle: .byte 0 Enemy.nX: .word 0 Enemy.nY: .word 0 BlankData: .db 0,0,0,0,0 Enemy.Hidden: .db -8,-8,-8,-8,-8 EnemySetSpiral: ld hl,Spiral jp SetEnemyType EnemySetSmall: ld hl,SmallShips jp SetEnemyType EnemySetBlocker: ld hl,Blocker jp SetEnemyType EnemySetBall: ld hl,Ball jp SetEnemyType EnemySetShield: ld hl,Shield jp SetEnemyType SetEnemyType: ld de,EnemySprite ld bc,16 ldir ret ExplodeShips: call SafeRAMtoBuffer call BufferToSafeRAM call SafeRAMToBuffer ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,Explosion_A call putClippedMaskedSprite bcall(_grbufcpy) call Pause call SafeRAMToBuffer ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,Explosion_B call putClippedMaskedSprite bcall(_grbufcpy) call Pause call SafeRAMToBuffer ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,Explosion_C call putClippedMaskedSprite bcall(_grbufcpy) call Pause call SafeRAMToBuffer ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,Explosion_B call putClippedMaskedSprite bcall(_grbufcpy) call Pause call SafeRAMToBuffer ld a,(ShipX) ld b,a ld a,(ShipY) ld c,a ld hl,Explosion_A call putClippedMaskedSprite bcall(_grbufcpy) call Pause ld a,(LivesLeft) dec a ld (LivesLeft),a ret BufferToSafeRAM: ld hl,PlotsScreen ld de,SavesScreen ld bc,768 ldir ret SafeRAMToBuffer: ld de,PlotsScreen ld hl,SavesScreen ld bc,768 ldir ret Pause: halt \ halt \ halt \ halt \ halt \ halt \ halt \ halt halt \ halt \ halt \ halt \ halt \ halt \ halt \ halt ret ShipAppearAnim: ld a,(LivesLeft) cp 0 jp z,FinishedAnim ld a,70 ld (LifeShipY),a call ClearBulletVals ld b,88 ld c,55 ld (BC_Temp),bc ld a,44 ld (ShipX),a ld a,55 ld (ShipY),a ShipLoop: ld hl,(Progress) ld de,PlotsScreen ld bc,768 ldir ld bc,(BC_Temp) ld hl,MainShip dec b ld (BC_Temp),bc ld (LifeTemp),bc ld a,(ShipX) cp b jp z,FinishedAnim call putClippedMaskedSprite ld a,(LifeShipY) sub 2 ld (LifeShipY),a ld a,(LivesLeft) cp 4 jp z, FourLifeShip ld a,(LivesLeft) cp 3 jp z, ThreeLifeShip ld a,(LivesLeft) cp 2 jp z, TwoLifeShip jp DrawnAllLives FourLifeShip: call AddLifeShip call AddLifeShip call AddLifeShip jp DrawnAllLives ThreeLifeShip: call AddLifeShip call AddLifeShip jp DrawnAllLives TwoLifeShip: call AddLifeShip jp DrawnAllLives DrawnAllLives: bcall(_grbufcpy) halt \ halt jp z,ShipLoop FinishedAnim: ld hl,Enemy.Hidden ld de,Enemy.X ld bc,5 ldir ret AddLifeShip: ld bc,(LifeTemp) ld a,b add a,10 ld b,a ld (LifeTemp),bc ld a,(LifeShipY) ld c,a ld hl,MainShip call PutClippedMaskedSprite ret ClearTempVals: ld a,0 ld (Progress),a ld (ProgDelay),a ld (NeedNewWave),a ld (Enemy.Throttle),a ld (Enemy.nX),a ld (Enemy.AttackStyle),a ld hl,0 ld (Score),hl ld (AboutScrDelay),hl ld a,44 ld (ShipX),a ld a,55 ld (ShipY),a ld hl,BlankData ld de,Enemy.XData ld bc,5 ldir ld hl,BlankData ld de,Enemy.YData ld bc,5 ldir ld a,4 ld (LivesLeft),a call ClearBulletVals ret ClearBulletVals: ld hl,BulletInitY ld de,BulletDataY ld bc,4 ldir ret APDPause: set textinverse,(iy+textflags) ld hl,25*256+37 ld (pencol),hl ld hl,Paused_Txt bcall(_vputs) res textinverse,(iy+textflags) bcall(_getcsc) cp sk2nd jp nz,APDPause ret LifeTemp: .word 0 LifeShipY: .byte 88 EnemySprite: .db %00011000 .db %00100100 .db %01011010 .db %10100101 .db %10100101 .db %11011011 .db %10100101 .db %01000010 .db %00011000 .db %00111100 .db %01111110 .db %11111111 .db %11111111 .db %11111111 .db %11100111 .db %01000010 MainShip: .db %00011000 .db %00100100 .db %01011010 .db %10100101 .db %10100101 .db %11011011 .db %10100101 .db %01000010 .db %00011000 .db %00111100 .db %01111110 .db %11111111 .db %11111111 .db %11111111 .db %11100111 .db %01000010 Spiral: .db %00111100 .db %01000110 .db %11001001 .db %10111001 .db %10011101 .db %10010011 .db %01100010 .db %00111100 .db %00111100 .db %01111110 .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %01111110 .db %00111100 SmallShips: .db %10000001 .db %11000011 .db %10100101 .db %10011001 .db %01100110 .db %00100100 .db %00100100 .db %00011000 .db %10000001 .db %11000011 .db %11100111 .db %11111111 .db %01111110 .db %00111100 .db %00111100 .db %00011000 Blocker: .db %01000010 .db %10100101 .db %10111101 .db %10100101 .db %10111101 .db %10100101 .db %01000010 .db %00000000 .db %01000010 .db %11100111 .db %11111111 .db %11111111 .db %11111111 .db %11100111 .db %01000010 .db %00000000 Explosion_A: .db %00000000 .db %00000000 .db %00011000 .db %00100100 .db %00100100 .db %00011000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00011000 .db %00111100 .db %00111100 .db %00011000 .db %00000000 .db %00000000 Explosion_B: .db %00000000 .db %00011000 .db %00100100 .db %01000010 .db %01000010 .db %00100100 .db %00011000 .db %00000000 .db %00000000 .db %00011000 .db %00111100 .db %01111110 .db %01111110 .db %00111100 .db %00011000 .db %00000000 Explosion_C: .db %00101100 .db %01010010 .db %10011001 .db %10100110 .db %01100101 .db %10011001 .db %01001010 .db %00110100 .db %00101100 .db %01111110 .db %11111111 .db %11111110 .db %01111111 .db %11111111 .db %01111110 .db %00110100 Ball: .db %00111100 .db %01000010 .db %10000001 .db %10000101 .db %10000101 .db %10011001 .db %01000010 .db %00111100 .db %00111100 .db %01111110 .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %01111110 .db %00111100 Shield: .db %11000011 .db %10111101 .db %10100101 .db %10011001 .db %01011010 .db %01011010 .db %00100100 .db %00011000 .db %11000011 .db %11111111 .db %11111111 .db %11111111 .db %01111110 .db %01111110 .db %00111100 .db %00011000 Bullet: .db %00111000 .db %00101000 .db %00101000 .db %00101000 .db %00111000 .db %00000000 .db %00000000 .db %00000000 .db %00111000 .db %00111000 .db %00111000 .db %00111000 .db %00111000 .db %00000000 .db %00000000 .db %00000000 AboutScrDelay: .word 0 ShipX: .byte 43 ShipY: .byte 55 HL_Temp: .word 0 BC_Temp: .word 0 BulletDataX: .db 44,44,44,44 BulletDataY: .db 0,24,48,72 Bullet.nX: .word 0 Bullet.nY .word 0 BulletInitY: .db 96,120,144,168 Score: .word 0 HiScore: .word 0 EndGame: set textinverse,(iy+textflags) ld hl,13*256+30 ld (pencol),hl ld hl,GameOver_Txt bcall(_vputs) ld de,(Score) ld hl,(HiScore) ld a,h cp d jr c,NewHiScore jp nz,NotNewHiScore ld a,l cp e jr c,NewHiScore NotNewHiScore: jp GO_KeyWait NewHiScore: ld hl,(Score) ld (HiScore),hl ld hl,42*256+24 ld (pencol),hl ld hl,NewHigh_Txt bcall(_vputs) jp GO_KeyWait GO_KeyWait: res textinverse,(iy+textflags) bcall(_getcsc) cp sk2nd jp nz,GO_KeyWait jp ZoneScan Cap_A: .db "Fire Track",0 Cap_B: .db "Search Team Location",0 Cap_C: .db "Baseworld 'Cygni'",0 Cap_D: .db "Zone Scan:Incomplete",0 Cap_E: .db "High:",0 Paused_Txt: .db "Paused",0 GameOver_Txt: .db "Game Over",0 NewHigh_Txt: .db "New High Score",0 BackGround: .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $DF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$DF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FD,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FB,$FF,$FF,$EF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F7,$FF,$FF,$FF .db $FF,$FF,$FF,$F7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FE,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $DF,$E0,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE .db $FF,$CF,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$FC .db $00,$10,$9F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F9 .db $FF,$E6,$5F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F3 .db $00,$0B,$5F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$E7 .db $AA,$AF,$5F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$CF .db $00,$0F,$5F,$FF,$FF,$DF,$FF,$FF,$FF,$FF,$FF,$99 .db $FF,$E6,$5F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$36 .db $00,$10,$9F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$76 .db $FF,$CF,$3F,$FF,$FF,$FF,$FF,$BF,$FF,$FF,$FC,$F9 .db $FF,$E0,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F9,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F3,$C0 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$E7,$9B .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$CF,$12 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$9E,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$3C,$DB .db $F7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$78,$92 .db $FF,$FF,$EF,$FF,$FF,$EF,$FF,$FF,$FF,$FF,$70,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$76,$DB .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$74,$92 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$BF,$FF,$FF,$70,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$76,$DB .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$74,$92 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$70,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$76,$DB .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$74,$92 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$70,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$76,$DB .db $00,$00,$0F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$74,$92 .db $FF,$FF,$E7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$70,$00 .db $FF,$FF,$F3,$BF,$FF,$FD,$FF,$FF,$FF,$FF,$78,$DB .db $54,$15,$39,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$3C,$92 .db $29,$CA,$1C,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$9E,$00 .db $92,$E4,$CE,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$CF,$1B .db $C3,$E1,$67,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$E7,$92 .db $C3,$E1,$E3,$9F,$FF,$FF,$FF,$FF,$FF,$FF,$F3,$C0 .db $B1,$C6,$D9,$CF,$FF,$FF,$FF,$FF,$FF,$FF,$F9,$FF .db $58,$0B,$2C,$E7,$FF,$FF,$FF,$FF,$FF,$FF,$FC,$F9 .db $78,$0F,$3C,$73,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$76 .db $B6,$36,$DB,$39,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$36 .db $CB,$59,$65,$9C,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$99 .db $CF,$79,$E7,$9C,$FF,$FF,$FF,$FF,$FF,$EF,$FF,$CF .db $B6,$36,$DB,$39,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$E7 .db $58,$0B,$2C,$73,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F3 .db $78,$0F,$3C,$E7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F9 .db $B1,$C6,$D9,$CF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FC .db $C2,$E1,$63,$9F,$FF,$EF,$FF,$FF,$7F,$FF,$FF,$FE .db $C3,$E1,$E7,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $93,$E4,$CE,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $29,$CA,$1C,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $54,$15,$39,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$F3,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$E7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $00,$00,$0F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$BF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FD,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$F7,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$EB,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$ED,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$EA,$12,$24,$48,$91,$20,$00 .db $FF,$FF,$FF,$FF,$FF,$E9,$ED,$DB,$B7,$6E,$DF,$FF .db $FF,$FF,$FF,$FF,$FF,$E8,$16,$2C,$58,$B1,$6A,$AA .db $FF,$FF,$FF,$FF,$FF,$E8,$1E,$3C,$78,$F1,$F5,$55 .db $FF,$FF,$FF,$FF,$FF,$E9,$ED,$DB,$B7,$6E,$DF,$FF .db $FF,$FF,$EF,$FF,$FF,$EA,$12,$24,$48,$91,$20,$00 .db $FF,$FF,$FF,$FF,$FF,$ED,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$EB,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$F7,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FE,$FF,$FF,$FF,$FF,$FF .db $44,$44,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $F1,$17,$DF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $0F,$F8,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $0C,$50,$37,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$FF,$FF .db $07,$E0,$1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $07,$20,$1B,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $07,$C0,$1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $07,$40,$1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $0F,$C0,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $1F,$20,$7B,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $3F,$F0,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FC,$5F,$F7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $F1,$17,$DF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $44,$44,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$00,$00,$00,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$7F,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$82,$10,$84,$21 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$98,$C6,$31,$8C .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$AD,$6B,$5A,$D6 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$BD,$EF,$7B,$DE .db $FF,$FF,$FF,$FF,$FF,$FF,$EF,$FE,$98,$C6,$31,$8C .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$C2,$10,$84,$21 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$98,$C6,$31,$8C .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$AD,$6B,$5A,$D6 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$BD,$EF,$7B,$DE .db $FF,$FE,$FF,$FF,$FF,$FF,$FF,$FE,$98,$C6,$31,$8C .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$82,$10,$84,$21 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$7F,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$00,$00,$00,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF Final: .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $DF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$DF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FD,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FB,$FF,$FF,$EF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F7,$FF,$FF,$FF .db $FF,$FF,$FF,$F7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FE,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF Loader: .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$0E,$00,$03,$80,$30,$00,$00,$00 .db $00,$00,$00,$00,$16,$00,$05,$80,$50,$00,$00,$00 .db $00,$00,$00,$00,$26,$00,$09,$80,$90,$00,$00,$00 .db $00,$00,$00,$00,$4C,$00,$11,$81,$30,$00,$00,$00 .db $00,$00,$00,$00,$98,$00,$21,$82,$60,$00,$00,$00 .db $00,$00,$00,$01,$30,$18,$49,$84,$C0,$00,$00,$00 .db $00,$00,$00,$02,$60,$38,$99,$89,$80,$00,$00,$00 .db $00,$00,$00,$04,$C0,$59,$39,$93,$00,$00,$00,$00 .db $00,$00,$00,$09,$86,$9A,$69,$A7,$C0,$00,$00,$00 .db $00,$00,$00,$09,$8E,$9A,$73,$27,$C0,$00,$00,$00 .db $00,$00,$00,$09,$96,$9A,$66,$26,$C0,$00,$00,$00 .db $00,$00,$00,$09,$A6,$9A,$44,$24,$80,$00,$00,$00 .db $00,$00,$00,$09,$CC,$9A,$04,$21,$00,$00,$00,$00 .db $00,$00,$00,$09,$98,$9A,$3A,$22,$00,$00,$00,$00 .db $00,$00,$00,$08,$30,$9A,$69,$26,$00,$00,$00,$00 .db $00,$00,$00,$08,$60,$9A,$69,$A6,$00,$00,$00,$00 .db $00,$00,$00,$08,$C0,$9A,$69,$A6,$00,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$69,$A6,$00,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$69,$A6,$10,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$69,$A6,$30,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$69,$A6,$50,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$69,$A6,$90,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$6B,$A7,$30,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$6E,$26,$60,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$60,$24,$C0,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$60,$21,$80,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$60,$23,$00,$00,$00,$00 .db $00,$00,$00,$09,$80,$9A,$60,$26,$00,$00,$00,$00 .db $00,$00,$00,$0B,$00,$B2,$C0,$2C,$00,$00,$00,$00 .db $00,$00,$00,$0E,$00,$E3,$80,$38,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$60,$0E,$00,$E0,$00,$00,$E0,$00,$00 .db $00,$00,$00,$E0,$16,$01,$60,$1C,$01,$60,$00,$00 .db $00,$00,$01,$60,$26,$02,$60,$2C,$02,$60,$00,$00 .db $00,$00,$02,$60,$46,$04,$60,$4C,$02,$60,$00,$00 .db $00,$00,$04,$C0,$86,$08,$60,$8C,$02,$60,$00,$00 .db $00,$00,$09,$81,$26,$12,$61,$0C,$12,$60,$00,$00 .db $00,$00,$13,$02,$66,$26,$62,$4C,$3A,$60,$00,$00 .db $00,$00,$23,$04,$E6,$4E,$64,$D8,$5A,$60,$00,$00 .db $00,$00,$43,$09,$A6,$9A,$69,$F0,$9A,$60,$00,$00 .db $00,$00,$93,$09,$C6,$9C,$69,$E0,$9A,$60,$00,$00 .db $00,$00,$B3,$09,$8E,$98,$69,$80,$9A,$E0,$00,$00 .db $00,$00,$D3,$09,$18,$90,$69,$80,$9B,$C0,$00,$00 .db $00,$00,$93,$08,$10,$82,$69,$80,$9B,$E0,$00,$00 .db $00,$00,$13,$08,$10,$86,$69,$80,$9C,$60,$00,$00 .db $00,$00,$13,$08,$E8,$8A,$69,$80,$98,$60,$00,$00 .db $00,$00,$13,$09,$A4,$9A,$69,$80,$92,$60,$00,$00 .db $00,$00,$13,$09,$A6,$9A,$69,$8C,$86,$60,$00,$00 .db $00,$00,$13,$09,$A6,$9A,$69,$96,$8E,$60,$00,$00 .db $00,$00,$13,$09,$A6,$9A,$69,$A6,$9A,$60,$00,$00 .db $00,$00,$13,$09,$A6,$9A,$69,$A6,$9A,$60,$00,$00 .db $00,$00,$13,$09,$A6,$9A,$69,$A6,$9A,$60,$00,$00 .db $00,$00,$13,$09,$A6,$9A,$69,$A6,$9A,$60,$00,$00 .db $00,$00,$13,$09,$AC,$9A,$C9,$CC,$9A,$E0,$00,$00 .db $00,$00,$13,$09,$B8,$9B,$89,$98,$9B,$80,$00,$00 .db $00,$00,$13,$09,$B0,$98,$09,$30,$98,$00,$00,$00 .db $00,$00,$13,$09,$80,$98,$08,$60,$98,$00,$00,$00 .db $00,$00,$13,$09,$80,$98,$08,$C0,$98,$00,$00,$00 .db $00,$00,$13,$09,$80,$98,$09,$80,$98,$00,$00,$00 .db $00,$00,$16,$0B,$00,$B0,$0B,$00,$B0,$00,$00,$00 .db $00,$00,$1C,$0E,$00,$E0,$0E,$00,$E0,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 AboutScreen: .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$DF,$77,$DB,$BB,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$BE,$6F,$B3,$33,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$75,$5F,$2A,$AA,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$55,$57,$AA,$AE,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$34,$CF,$A6,$2E,$7F,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$75,$5F,$AA,$AE,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$75,$5F,$AA,$AE,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$75,$5F,$AA,$AA,$BF,$FF,$FF,$FF .db $FF,$FF,$FF,$FF,$75,$57,$AA,$EA,$BF,$FF,$F7,$BB .db $FF,$FF,$FF,$FF,$75,$CF,$AE,$E6,$FF,$FF,$E7,$55 .db $FF,$FF,$FF,$FF,$75,$DF,$AE,$EE,$FF,$FE,$B7,$55 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$B7,$55 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$75,$BB .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$1E,$00,$40,$04,$07,$80,$00,$00,$00,$00 .db $00,$00,$11,$00,$00,$00,$04,$40,$00,$00,$00,$00 .db $00,$00,$1E,$26,$59,$E5,$84,$55,$48,$C0,$00,$00 .db $00,$00,$11,$55,$45,$55,$47,$95,$55,$00,$00,$00 .db $00,$00,$11,$45,$55,$55,$44,$54,$90,$40,$00,$00 .db $00,$00,$1E,$35,$4D,$55,$44,$48,$8D,$80,$00,$00 .db $00,$00,$00,$00,$40,$00,$00,$08,$00,$00,$00,$00 .db $00,$00,$00,$00,$40,$00,$00,$10,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $02,$80,$00,$00,$00,$38,$00,$11,$00,$00,$02,$00 .db $04,$80,$00,$00,$00,$44,$80,$10,$00,$00,$01,$00 .db $04,$E2,$66,$AA,$46,$92,$C8,$D9,$20,$CC,$F1,$00 .db $04,$95,$54,$AA,$A8,$AA,$95,$15,$51,$12,$A9,$00 .db $04,$94,$54,$A4,$82,$9C,$91,$15,$41,$12,$A9,$00 .db $04,$E3,$54,$44,$6C,$40,$4C,$D5,$34,$CC,$A9,$00 .db $04,$00,$00,$40,$00,$38,$00,$00,$00,$00,$01,$00 .db $02,$00,$00,$80,$00,$00,$00,$00,$00,$00,$02,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$04,$0C,$60,$20,$00,$00,$00 .db $00,$00,$00,$00,$00,$04,$12,$90,$20,$00,$00,$00 .db $00,$00,$55,$55,$43,$64,$CC,$27,$2A,$60,$00,$00 .db $00,$00,$55,$55,$44,$15,$12,$14,$AA,$80,$00,$00 .db $00,$00,$28,$A2,$84,$55,$12,$94,$AA,$20,$00,$00 .db $00,$00,$28,$A2,$93,$34,$CC,$67,$26,$C0,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$04,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$04,$00,$00,$00,$00 .db $00,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$1B,$22,$32,$6A,$4C,$C3,$33,$C0,$00,$00 .db $00,$00,$12,$55,$45,$4A,$A9,$04,$4A,$A0,$00,$00 .db $00,$00,$12,$44,$14,$44,$88,$44,$4A,$A0,$00,$00 .db $00,$00,$52,$33,$63,$44,$69,$93,$32,$A0,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF .db $8F,$FF,$F4,$FF,$5F,$F8,$FB,$FD,$DF,$8F,$FF,$FF .db $B7,$FF,$F7,$7F,$5B,$FB,$FE,$ED,$FF,$7F,$FF,$FF .db $8C,$D9,$3E,$CE,$79,$19,$AA,$64,$D3,$9C,$9B,$B3 .db $BD,$AB,$7D,$D5,$7B,$5B,$DA,$ED,$57,$EB,$B5,$55 .db $BD,$92,$7C,$56,$7D,$18,$AB,$75,$47,$1C,$B3,$35 .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF #define PUT_CLIPPED_MASKED_SPRITE #include "sprite.z80" .end END