;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 4.0.0 #11528 (Mac OS X x86_64) ;-------------------------------------------------------- .module GCHASEc .optsdcc -mz80 ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _main .globl _routing .globl _Timer .globl _MoveLittle .globl _CheckCollision .globl _LittleDirection .globl _InitInterruptHandler .globl _abs .globl _srand .globl _rand .globl _PT3Play .globl _PT3Rout .globl _PT3Init .globl _PT3FXRout .globl _PT3FXPlay .globl _PT3FXInit .globl _fPutSprite .globl _Pattern16FlipVram .globl _Pattern16RotationVram .globl _Sprite32Bytes .globl _SetSpriteColors .globl _SetSpritePattern .globl _SpriteReset .globl _Sprite16 .globl _BoxFill .globl _Exit .globl _InitPSG .globl _Itoa .globl _Inkey .globl _VDP60Hz .globl _PutText .globl _SetColors .globl _JoystickRead .globl _Screen .globl _RunStep .globl _slittle .globl _mj .globl _PatternStep .globl _score .globl _GameOn .globl _sdirY .globl _sdirX .globl _MyTimer .globl _vdp_status .globl _song .globl _DirectionY .globl _DirectionX .globl _rotdir .globl _TxtSub .globl _TxtYourScore .globl _TxtTime .globl _TxtScore .globl _TxtPressKey .globl _TxtTitle .globl _FT_RandomNumber .globl _PrintScore .globl _FT_Wait .globl _EnemyDirection .globl _CheckApproach .globl _MoveEnemy .globl _SpriteOnScreen .globl _WaitSpaceKey .globl _EndScreen .globl _StartScreen ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- _VDP_port1 = 0x0098 _VDP_port2 = 0x0099 ;-------------------------------------------------------- ; ram data ;-------------------------------------------------------- .area _DATA _vdp_status:: .ds 1 _MyTimer:: .ds 2 _sdirX:: .ds 1 _sdirY:: .ds 1 _GameOn:: .ds 1 _score:: .ds 1 _PatternStep:: .ds 1 _mj:: .ds 1 _slittle:: .ds 1 _RunStep:: .ds 1 _file: .ds 37 _Player: .ds 5 _Enemy: .ds 5 _Little: .ds 25 _EnemyState: .ds 10 _PlayerState: .ds 10 _LittleState: .ds 50 ;-------------------------------------------------------- ; ram data ;-------------------------------------------------------- .area _INITIALIZED ;-------------------------------------------------------- ; absolute external ram data ;-------------------------------------------------------- .area _DABS (ABS) ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area _HOME .area _GSINIT .area _GSFINAL .area _GSINIT ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area _HOME .area _HOME ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area _CODE ;fusion-c/header/vdp_graph2.h:167: static void VDPready() __naked // Check if MSX2 VDP is ready (Internal Use) ; --------------------------------- ; Function VDPready ; --------------------------------- _VDPready: ;fusion-c/header/vdp_graph2.h:183: __endasm; checkIfReady: ld a,#2 out (#0x99),a ; wait till previous VDP execution is over (CE) ld a,#128+#15 out (#0x99),a in a,(#0x99) and #1 jp nz, checkIfReady ; wait xor a out (#0x99),a ld a,#128+#15 out (#0x99),a ret ;fusion-c/header/vdp_graph2.h:184: } ;GCHASEc.c:363: signed int FT_RandomNumber (signed int a, signed int b) ; --------------------------------- ; Function FT_RandomNumber ; --------------------------------- _FT_RandomNumber:: ;GCHASEc.c:367: random = rand()%(b-a)+a; // Random number between a and b-1 call _rand ld c, l ld b, h ld hl, #2 add hl, sp ld iy, #4 add iy, sp ld a, 0 (iy) sub a, (hl) ld e, a ld a, 1 (iy) inc hl sbc a, (hl) ld d, a push de push bc call __modsint pop af pop af ld iy, #2 add iy, sp ld a, 0 (iy) add a, l ;GCHASEc.c:368: return(random); ld l, a rla sbc a, a ld h, a ;GCHASEc.c:369: } ret _Done_Version_tag: .ascii "Made with FUSION-C 1.3 R11211 (c)EBSOFT:2020" .db 0x00 _TxtTitle: .ascii "THE GHOST CHASE" .db 0x00 _TxtPressKey: .ascii "PRESS SPACE TO CONTINUE" .db 0x00 _TxtScore: .ascii "SCORE: " .db 0x00 _TxtTime: .ascii "TIME:" .db 0x00 _TxtYourScore: .ascii "YOUR SCORE:" .db 0x00 _TxtSub: .ascii " Ericb59 with Fusion-C 1.3" .db 0x00 _rotdir: .db #0x00 ; 0 .db #0x08 ; 8 .db #0x00 ; 0 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x18 ; 24 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db 0x00 _DirectionX: .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0xff ; -1 .db #0x00 ; 0 _DirectionY: .db #0x00 ; 0 .db #0xff ; -1 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 _PlayerColor: .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x0a ; 10 _EnemyColor: .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x08 ; 8 _EnemyColor2: .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 .db #0x04 ; 4 _LittleColor: .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x07 ; 7 _LittleColor2: .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 .db #0x0d ; 13 _Shake: .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 .db #0xfe ; -2 .db #0x02 ; 2 _playerPatG1: .dw #0x07c0 .dw #0x1ff0 .dw #0x3ff8 .dw #0x3ff8 .dw #0x0ffc .dw #0x03fc .dw #0x00fc .dw #0x03fc .dw #0x0ffc .dw #0x3ff8 .dw #0x3ff8 .dw #0x1ff0 .dw #0x07c0 .dw #0x0000 .dw #0x0000 .dw #0x0000 _playerPatG2: .dw #0x07c0 .dw #0x07f0 .dw #0x03f8 .dw #0x01f8 .dw #0x00fc .dw #0x007c .dw #0x003c .dw #0x007c .dw #0x00fc .dw #0x01f8 .dw #0x03f8 .dw #0x07f0 .dw #0x07c0 .dw #0x0000 .dw #0x0000 .dw #0x0000 _enemyPat: .dw #0x03c0 .dw #0x0ff0 .dw #0x1ff8 .dw #0x33cc .dw #0x2184 .dw #0x6db6 .dw #0x6db6 .dw #0x73ce .dw #0x7ffe .dw #0x7ffe .dw #0x7ffe .dw #0x7ffe .dw #0x7bde .dw #0x318c .dw #0x0000 .dw #0x0000 _enemyPat2: .dw #0x03c0 .dw #0x0ff0 .dw #0x1ff8 .dw #0x3ffc .dw #0x3ffc .dw #0x399c .dw #0x799e .dw #0x7ffe .dw #0x7ffe .dw #0x6666 .dw #0x599a .dw #0x7ffe .dw #0x7bde .dw #0x318c .dw #0x0000 .dw #0x0000 _chase: .db #0x06 ; 6 .db #0x0b ; 11 .db #0x00 ; 0 .db #0x58 ; 88 'X' .db #0x01 ; 1 .db #0x9d ; 157 .db #0x01 ; 1 .db #0x03 ; 3 .db #0x02 ; 2 .db #0x58 ; 88 'X' .db #0x02 ; 2 .db #0xb3 ; 179 .db #0x02 ; 2 .db #0xee ; 238 .db #0xf2 ; 242 .db #0x07 ; 7 .db #0x0b ; 11 .db #0xae ; 174 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xae ; 174 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xae ; 174 .db #0x5c ; 92 .db #0x02 ; 2 .db #0xab ; 171 .db #0x67 ; 103 'g' .db #0x01 ; 1 .db #0xab ; 171 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xab ; 171 .db #0x67 ; 103 'g' .db #0x01 ; 1 .db #0xab ; 171 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xa8 ; 168 .db #0xb3 ; 179 .db #0x00 ; 0 .db #0xa8 ; 168 .db #0xa9 ; 169 .db #0x00 ; 0 .db #0xa8 ; 168 .db #0xb3 ; 179 .db #0x00 ; 0 .db #0xa8 ; 168 .db #0xa9 ; 169 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xb3 ; 179 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xbe ; 190 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xc9 ; 201 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xd5 ; 213 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xf0 ; 240 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xaf ; 175 .db #0xf0 ; 240 .db #0x00 ; 0 .db #0xaf ; 175 .db #0x0d ; 13 .db #0x01 ; 1 .db #0xaf ; 175 .db #0x1d ; 29 .db #0x01 ; 1 .db #0xaf ; 175 .db #0x0d ; 13 .db #0x01 ; 1 .db #0xaf ; 175 .db #0x1d ; 29 .db #0x01 ; 1 .db #0xaf ; 175 .db #0x40 ; 64 .db #0x01 ; 1 .db #0xaf ; 175 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xaf ; 175 .db #0x40 ; 64 .db #0x01 ; 1 .db #0xaf ; 175 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xad ; 173 .db #0xb3 ; 179 .db #0x00 ; 0 .db #0xad ; 173 .db #0xbe ; 190 .db #0x00 ; 0 .db #0xad ; 173 .db #0xc9 ; 201 .db #0x00 ; 0 .db #0xad ; 173 .db #0xd5 ; 213 .db #0x00 ; 0 .db #0xad ; 173 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xad ; 173 .db #0xf0 ; 240 .db #0x00 ; 0 .db #0xad ; 173 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xad ; 173 .db #0xf0 ; 240 .db #0x00 ; 0 .db #0xad ; 173 .db #0x0d ; 13 .db #0x01 ; 1 .db #0xad ; 173 .db #0x1d ; 29 .db #0x01 ; 1 .db #0xad ; 173 .db #0x0d ; 13 .db #0x01 ; 1 .db #0xad ; 173 .db #0x1d ; 29 .db #0x01 ; 1 .db #0xad ; 173 .db #0x40 ; 64 .db #0x01 ; 1 .db #0xad ; 173 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xad ; 173 .db #0x40 ; 64 .db #0x01 ; 1 .db #0xad ; 173 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xab ; 171 .db #0xb3 ; 179 .db #0x00 ; 0 .db #0xab ; 171 .db #0xbe ; 190 .db #0x00 ; 0 .db #0xab ; 171 .db #0xc9 ; 201 .db #0x00 ; 0 .db #0xab ; 171 .db #0xd5 ; 213 .db #0x00 ; 0 .db #0xab ; 171 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xab ; 171 .db #0xf0 ; 240 .db #0x00 ; 0 .db #0xab ; 171 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xab ; 171 .db #0xf0 ; 240 .db #0x00 ; 0 .db #0xab ; 171 .db #0x0d ; 13 .db #0x01 ; 1 .db #0xab ; 171 .db #0x1d ; 29 .db #0x01 ; 1 .db #0xab ; 171 .db #0x0d ; 13 .db #0x01 ; 1 .db #0xab ; 171 .db #0x1d ; 29 .db #0x01 ; 1 .db #0xab ; 171 .db #0x40 ; 64 .db #0x01 ; 1 .db #0xab ; 171 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xab ; 171 .db #0x40 ; 64 .db #0x01 ; 1 .db #0xab ; 171 .db #0x53 ; 83 'S' .db #0x01 ; 1 .db #0xa9 ; 169 .db #0xcf ; 207 .db #0x02 ; 2 .db #0xa9 ; 169 .db #0xf9 ; 249 .db #0x02 ; 2 .db #0xa9 ; 169 .db #0x27 ; 39 .db #0x03 ; 3 .db #0xa9 ; 169 .db #0x57 ; 87 'W' .db #0x03 ; 3 .db #0xa9 ; 169 .db #0x8a ; 138 .db #0x03 ; 3 .db #0xa9 ; 169 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xa9 ; 169 .db #0x8a ; 138 .db #0x03 ; 3 .db #0xa9 ; 169 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xa9 ; 169 .db #0x35 ; 53 '5' .db #0x04 ; 4 .db #0xa9 ; 169 .db #0x75 ; 117 'u' .db #0x04 ; 4 .db #0xa9 ; 169 .db #0x35 ; 53 '5' .db #0x04 ; 4 .db #0xa9 ; 169 .db #0x75 ; 117 'u' .db #0x04 ; 4 .db #0xa9 ; 169 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xa9 ; 169 .db #0x4d ; 77 'M' .db #0x05 ; 5 .db #0xa9 ; 169 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xa9 ; 169 .db #0x4d ; 77 'M' .db #0x05 ; 5 .db #0xa7 ; 167 .db #0xcf ; 207 .db #0x02 ; 2 .db #0xa7 ; 167 .db #0xf9 ; 249 .db #0x02 ; 2 .db #0xa7 ; 167 .db #0x27 ; 39 .db #0x03 ; 3 .db #0xa7 ; 167 .db #0x57 ; 87 'W' .db #0x03 ; 3 .db #0xa7 ; 167 .db #0x8a ; 138 .db #0x03 ; 3 .db #0xa7 ; 167 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xa7 ; 167 .db #0x8a ; 138 .db #0x03 ; 3 .db #0xa7 ; 167 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xa7 ; 167 .db #0x35 ; 53 '5' .db #0x04 ; 4 .db #0xa7 ; 167 .db #0x75 ; 117 'u' .db #0x04 ; 4 .db #0xa7 ; 167 .db #0x35 ; 53 '5' .db #0x04 ; 4 .db #0xa7 ; 167 .db #0x75 ; 117 'u' .db #0x04 ; 4 .db #0xa7 ; 167 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xa7 ; 167 .db #0x4d ; 77 'M' .db #0x05 ; 5 .db #0xa7 ; 167 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xa7 ; 167 .db #0x4d ; 77 'M' .db #0x05 ; 5 .db #0xa5 ; 165 .db #0xcf ; 207 .db #0x02 ; 2 .db #0xa5 ; 165 .db #0xf9 ; 249 .db #0x02 ; 2 .db #0xa5 ; 165 .db #0x27 ; 39 .db #0x03 ; 3 .db #0xa5 ; 165 .db #0x57 ; 87 'W' .db #0x03 ; 3 .db #0xa5 ; 165 .db #0x8a ; 138 .db #0x03 ; 3 .db #0xa5 ; 165 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xa5 ; 165 .db #0x8a ; 138 .db #0x03 ; 3 .db #0xa5 ; 165 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xa5 ; 165 .db #0x35 ; 53 '5' .db #0x04 ; 4 .db #0xa5 ; 165 .db #0x75 ; 117 'u' .db #0x04 ; 4 .db #0xa5 ; 165 .db #0x35 ; 53 '5' .db #0x04 ; 4 .db #0xa5 ; 165 .db #0x75 ; 117 'u' .db #0x04 ; 4 .db #0xa5 ; 165 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xa5 ; 165 .db #0x4d ; 77 'M' .db #0x05 ; 5 .db #0xa5 ; 165 .db #0x01 ; 1 .db #0x05 ; 5 .db #0xa5 ; 165 .db #0x4d ; 77 'M' .db #0x05 ; 5 .db #0xd0 ; 208 .db #0x20 ; 32 .db #0x64 ; 100 'd' .db #0x72 ; 114 'r' .db #0x75 ; 117 'u' .db #0x69 ; 105 'i' .db #0x64 ; 100 'd' .db #0x5f ; 95 .db #0x35 ; 53 '5' .db #0x00 ; 0 .db #0xeb ; 235 .db #0x01 ; 1 .db #0x0a ; 10 .db #0x07 ; 7 .db #0x8c ; 140 .db #0xad ; 173 .db #0x02 ; 2 .db #0x00 ; 0 .db #0x8e ; 142 .db #0xaf ; 175 .db #0x01 ; 1 .db #0x0e ; 14 .db #0x8f ; 143 .db #0x2e ; 46 .db #0x01 ; 1 .db #0x04 ; 4 .db #0x0d ; 13 .db #0xac ; 172 .db #0x01 ; 1 .db #0x0a ; 10 .db #0x8c ; 140 .db #0x2c ; 44 .db #0x01 ; 1 .db #0x0c ; 12 .db #0x0c ; 12 .db #0x2b ; 43 .db #0xf0 ; 240 .db #0x06 ; 6 .db #0x0b ; 11 .db #0x2a ; 42 .db #0xf6 ; 246 .db #0x06 ; 6 .db #0x0a ; 10 .db #0x29 ; 41 .db #0xf8 ; 248 .db #0x06 ; 6 .db #0x09 ; 9 .db #0x28 ; 40 .db #0x01 ; 1 .db #0x0c ; 12 .db #0x08 ; 8 .db #0x27 ; 39 .db #0xfc ; 252 .db #0x06 ; 6 .db #0x07 ; 7 .db #0x26 ; 38 .db #0xfe ; 254 .db #0x06 ; 6 .db #0x06 ; 6 .db #0x25 ; 37 .db #0xff ; 255 .db #0x06 ; 6 .db #0x04 ; 4 .db #0x03 ; 3 .db #0x02 ; 2 .db #0x02 ; 2 .db #0xd0 ; 208 .db #0x20 ; 32 .db #0x63 ; 99 'c' .db #0x6c ; 108 'l' .db #0x69 ; 105 'i' .db #0x63 ; 99 'c' .db #0x6b ; 107 'k' .db #0x6d ; 109 'm' .db #0x61 ; 97 'a' .db #0x6e ; 110 'n' .db #0x69 ; 105 'i' .db #0x61 ; 97 'a' .db #0x5f ; 95 .db #0x32 ; 50 '2' .db #0x00 ; 0 .db #0x6d ; 109 'm' .db #0x00 ; 0 .db #0x01 ; 1 .db #0x0a ; 10 .db #0x2e ; 46 .db #0x00 ; 0 .db #0x03 ; 3 .db #0x2d ; 45 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x2e ; 46 .db #0x00 ; 0 .db #0x03 ; 3 .db #0x2c ; 44 .db #0x80 ; 128 .db #0x00 ; 0 .db #0xb0 ; 176 .db #0x08 ; 8 .db #0x09 ; 9 .db #0xac ; 172 .db #0xa0 ; 160 .db #0x02 ; 2 .db #0xac ; 172 .db #0x60 ; 96 .db #0x01 ; 1 .db #0xb0 ; 176 .db #0x08 ; 8 .db #0x09 ; 9 .db #0x29 ; 41 .db #0xf0 ; 240 .db #0x03 ; 3 .db #0x09 ; 9 .db #0x09 ; 9 .db #0x29 ; 41 .db #0x80 ; 128 .db #0x03 ; 3 .db #0x09 ; 9 .db #0x09 ; 9 .db #0x2a ; 42 .db #0x20 ; 32 .db #0x03 ; 3 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x2a ; 42 .db #0xb0 ; 176 .db #0x02 ; 2 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x2b ; 43 .db #0xa0 ; 160 .db #0x02 ; 2 .db #0x0b ; 11 .db #0x0b ; 11 .db #0x2b ; 43 .db #0x70 ; 112 'p' .db #0x02 ; 2 .db #0x0b ; 11 .db #0x0b ; 11 .db #0x2b ; 43 .db #0xa0 ; 160 .db #0x02 ; 2 .db #0x0b ; 11 .db #0x0b ; 11 .db #0x2a ; 42 .db #0x00 ; 0 .db #0x03 ; 3 .db #0x0a ; 10 .db #0x0a ; 10 .db #0x29 ; 41 .db #0x00 ; 0 .db #0x04 ; 4 .db #0x09 ; 9 .db #0x09 ; 9 .db #0x28 ; 40 .db #0x00 ; 0 .db #0x05 ; 5 .db #0x08 ; 8 .db #0x08 ; 8 .db #0x27 ; 39 .db #0x00 ; 0 .db #0x06 ; 6 .db #0x07 ; 7 .db #0x07 ; 7 .db #0x26 ; 38 .db #0x00 ; 0 .db #0x07 ; 7 .db #0x06 ; 6 .db #0x06 ; 6 .db #0xa8 ; 168 .db #0x01 ; 1 .db #0x00 ; 0 .db #0xd0 ; 208 .db #0x20 ; 32 .db #0x66 ; 102 'f' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x65 ; 101 'e' .db #0x62 ; 98 'b' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x64 ; 100 'd' .db #0x5f ; 95 .db #0x36 ; 54 '6' .db #0x00 ; 0 .db #0xeb ; 235 .db #0x70 ; 112 'p' .db #0x02 ; 2 .db #0x0a ; 10 .db #0x6f ; 111 'o' .db #0xa0 ; 160 .db #0x00 ; 0 .db #0x1e ; 30 .db #0xb0 ; 176 .db #0x09 ; 9 .db #0x09 ; 9 .db #0x90 ; 144 .db #0x90 ; 144 .db #0xab ; 171 .db #0xa0 ; 160 .db #0x02 ; 2 .db #0xad ; 173 .db #0xc0 ; 192 .db #0x01 ; 1 .db #0xac ; 172 .db #0x1a ; 26 .db #0x02 ; 2 .db #0xad ; 173 .db #0x40 ; 64 .db #0x02 ; 2 .db #0xac ; 172 .db #0x6a ; 106 'j' .db #0x02 ; 2 .db #0xab ; 171 .db #0xd0 ; 208 .db #0x02 ; 2 .db #0xaa ; 170 .db #0x00 ; 0 .db #0x05 ; 5 .db #0xa9 ; 169 .db #0x60 ; 96 .db #0x06 ; 6 .db #0xa8 ; 168 .db #0x00 ; 0 .db #0x02 ; 2 .db #0xa8 ; 168 .db #0x00 ; 0 .db #0x03 ; 3 .db #0xb0 ; 176 .db #0x09 ; 9 .db #0x09 ; 9 .db #0x90 ; 144 .db #0xa9 ; 169 .db #0x1a ; 26 .db #0x02 ; 2 .db #0xaa ; 170 .db #0x40 ; 64 .db #0x02 ; 2 .db #0xaa ; 170 .db #0x6a ; 106 'j' .db #0x02 ; 2 .db #0xa9 ; 169 .db #0xd0 ; 208 .db #0x02 ; 2 .db #0xa9 ; 169 .db #0x00 ; 0 .db #0x05 ; 5 .db #0xa8 ; 168 .db #0x60 ; 96 .db #0x06 ; 6 .db #0xa7 ; 167 .db #0x00 ; 0 .db #0x02 ; 2 .db #0xa6 ; 166 .db #0x00 ; 0 .db #0x03 ; 3 .db #0xa8 ; 168 .db #0x01 ; 1 .db #0x00 ; 0 .db #0xd0 ; 208 .db #0x20 ; 32 .db #0x66 ; 102 'f' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x65 ; 101 'e' .db #0x62 ; 98 'b' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x64 ; 100 'd' .db #0x5f ; 95 .db #0x37 ; 55 '7' .db #0x00 ; 0 .db #0x68 ; 104 'h' .db #0x18 ; 24 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x27 ; 39 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x29 ; 41 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x28 ; 40 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x2a ; 42 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x29 ; 41 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x2b ; 43 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x29 ; 41 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x2a ; 42 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x29 ; 41 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x2a ; 42 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x28 ; 40 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x29 ; 41 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x27 ; 39 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x28 ; 40 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x26 ; 38 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x27 ; 39 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x25 ; 37 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x26 ; 38 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x24 ; 36 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x25 ; 37 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x23 ; 35 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x24 ; 36 .db #0x24 ; 36 .db #0x00 ; 0 .db #0x23 ; 35 .db #0x10 ; 16 .db #0x00 ; 0 .db #0x23 ; 35 .db #0x24 ; 36 .db #0x00 ; 0 .db #0xa8 ; 168 .db #0x01 ; 1 .db #0x00 ; 0 .db #0xd0 ; 208 .db #0x20 ; 32 .db #0x66 ; 102 'f' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x65 ; 101 'e' .db #0x62 ; 98 'b' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x64 ; 100 'd' .db #0x5f ; 95 .db #0x31 ; 49 '1' .db #0x33 ; 51 '3' .db #0x00 ; 0 .db #0xeb ; 235 .db #0x28 ; 40 .db #0x00 ; 0 .db #0x1e ; 30 .db #0x89 ; 137 .db #0x88 ; 136 .db #0x89 ; 137 .db #0xa6 ; 166 .db #0x29 ; 41 .db #0x00 ; 0 .db #0xa5 ; 165 .db #0x28 ; 40 .db #0x00 ; 0 .db #0x84 ; 132 .db #0x83 ; 131 .db #0xa8 ; 168 .db #0x01 ; 1 .db #0x00 ; 0 .db #0xd0 ; 208 .db #0x20 ; 32 .db #0x66 ; 102 'f' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x65 ; 101 'e' .db #0x62 ; 98 'b' .db #0x69 ; 105 'i' .db #0x72 ; 114 'r' .db #0x64 ; 100 'd' .db #0x5f ; 95 .db #0x31 ; 49 '1' .db #0x32 ; 50 '2' .db #0x00 ; 0 _song: .db #0x56 ; 86 'V' .db #0x6f ; 111 'o' .db #0x72 ; 114 'r' .db #0x74 ; 116 't' .db #0x65 ; 101 'e' .db #0x78 ; 120 'x' .db #0x20 ; 32 .db #0x54 ; 84 'T' .db #0x72 ; 114 'r' .db #0x61 ; 97 'a' .db #0x63 ; 99 'c' .db #0x6b ; 107 'k' .db #0x65 ; 101 'e' .db #0x72 ; 114 'r' .db #0x20 ; 32 .db #0x49 ; 73 'I' .db #0x49 ; 73 'I' .db #0x20 ; 32 .db #0x31 ; 49 '1' .db #0x2e ; 46 .db #0x30 ; 48 '0' .db #0x20 ; 32 .db #0x6d ; 109 'm' .db #0x6f ; 111 'o' .db #0x64 ; 100 'd' .db #0x75 ; 117 'u' .db #0x6c ; 108 'l' .db #0x65 ; 101 'e' .db #0x3a ; 58 .db #0x20 ; 32 .db #0x75 ; 117 'u' .db #0x6e ; 110 'n' .db #0x6e ; 110 'n' .db #0x61 ; 97 'a' .db #0x6d ; 109 'm' .db #0x65 ; 101 'e' .db #0x64 ; 100 'd' .db #0x31 ; 49 '1' .db #0x2e ; 46 .db #0x62 ; 98 'b' .db #0x61 ; 97 'a' .db #0x63 ; 99 'c' .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x62 ; 98 'b' .db #0x79 ; 121 'y' .db #0x20 ; 32 .db #0x63 ; 99 'c' .db #0x68 ; 104 'h' .db #0x34 ; 52 '4' .db #0x31 ; 49 '1' .db #0x6e ; 110 'n' .db #0x73 ; 115 's' .db #0x34 ; 52 '4' .db #0x77 ; 119 'w' .db #0x2e ; 46 .db #0x64 ; 100 'd' .db #0x6c ; 108 'l' .db #0x63 ; 99 'c' .db #0x6f ; 111 'o' .db #0x72 ; 114 'r' .db #0x70 ; 112 'p' .db #0x2e ; 46 .db #0x32 ; 50 '2' .db #0x32 ; 50 '2' .db #0x2e ; 46 .db #0x61 ; 97 'a' .db #0x75 ; 117 'u' .db #0x67 ; 103 'g' .db #0x2e ; 46 .db #0x6f ; 111 'o' .db #0x36 ; 54 '6' .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x20 ; 32 .db #0x02 ; 2 .db #0x08 ; 8 .db #0x06 ; 6 .db #0x00 ; 0 .db #0xd0 ; 208 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x80 ; 128 .db #0x05 ; 5 .db #0xba ; 186 .db #0x05 ; 5 .db #0xd8 ; 216 .db #0x05 ; 5 .db #0x00 ; 0 .db #0x00 ; 0 .db #0xfa ; 250 .db #0x05 ; 5 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x06 ; 6 .db #0x03 ; 3 .db #0x06 ; 6 .db #0x09 ; 9 .db #0x06 ; 6 .db #0x0f ; 15 .db #0x06 ; 6 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x15 ; 21 .db #0x06 ; 6 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x03 ; 3 .db #0x03 ; 3 .db #0x06 ; 6 .db #0x06 ; 6 .db #0xff ; 255 .db #0xe2 ; 226 .db #0x00 ; 0 .db #0xd5 ; 213 .db #0x01 ; 1 .db #0x67 ; 103 'g' .db #0x02 ; 2 .db #0x6b ; 107 'k' .db #0x02 ; 2 .db #0x5e ; 94 .db #0x03 ; 3 .db #0xe5 ; 229 .db #0x03 ; 3 .db #0x20 ; 32 .db #0x04 ; 4 .db #0x13 ; 19 .db #0x05 ; 5 .db #0xe5 ; 229 .db #0x03 ; 3 .db #0x1a ; 26 .db #0x00 ; 0 .db #0x2f ; 47 .db #0x04 ; 4 .db #0x40 ; 64 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x4e ; 78 'N' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x01 ; 1 .db #0x35 ; 53 '5' .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0x79 ; 121 'y' .db #0x00 ; 0 .db #0xd1 ; 209 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7d ; 125 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7d ; 125 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xc7 ; 199 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7d ; 125 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x82 ; 130 .db #0xc4 ; 196 .db #0x7d ; 125 .db #0xcf ; 207 .db #0x80 ; 128 .db #0xca ; 202 .db #0x82 ; 130 .db #0xcf ; 207 .db #0x7d ; 125 .db #0xca ; 202 .db #0x80 ; 128 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7e ; 126 .db #0xc7 ; 199 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x80 ; 128 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7e ; 126 .db #0xc3 ; 195 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x80 ; 128 .db #0xc7 ; 199 .db #0x7e ; 126 .db #0xc0 ; 192 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xc7 ; 199 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xc4 ; 196 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7e ; 126 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x7d ; 125 .db #0xca ; 202 .db #0x7e ; 126 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xca ; 202 .db #0x7d ; 125 .db #0xcf ; 207 .db #0x74 ; 116 't' .db #0xca ; 202 .db #0x79 ; 121 'y' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7e ; 126 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x7d ; 125 .db #0xc7 ; 199 .db #0x7e ; 126 .db #0xca ; 202 .db #0x79 ; 121 'y' .db #0xc7 ; 199 .db #0x7d ; 125 .db #0xca ; 202 .db #0x74 ; 116 't' .db #0x1c ; 28 .db #0x01 ; 1 .db #0x35 ; 53 '5' .db #0x0a ; 10 .db #0x40 ; 64 .db #0xcf ; 207 .db #0x7e ; 126 .db #0xd1 ; 209 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7e ; 126 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x7d ; 125 .db #0xca ; 202 .db #0x7e ; 126 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xca ; 202 .db #0x7d ; 125 .db #0xcf ; 207 .db #0x74 ; 116 't' .db #0xca ; 202 .db #0x79 ; 121 'y' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7e ; 126 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x7d ; 125 .db #0xc7 ; 199 .db #0x7e ; 126 .db #0xcf ; 207 .db #0x78 ; 120 'x' .db #0xc7 ; 199 .db #0x7d ; 125 .db #0xca ; 202 .db #0x74 ; 116 't' .db #0xc7 ; 199 .db #0x79 ; 121 'y' .db #0x00 ; 0 .db #0xb1 ; 177 .db #0x40 ; 64 .db #0xd0 ; 208 .db #0x00 ; 0 .db #0x1a ; 26 .db #0x00 ; 0 .db #0x2f ; 47 .db #0x04 ; 4 .db #0x40 ; 64 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x1a ; 26 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x1f ; 31 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x27 ; 39 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0x79 ; 121 'y' .db #0x00 ; 0 .db #0x4f ; 79 'O' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x85 ; 133 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x85 ; 133 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xc7 ; 199 .db #0x85 ; 133 .db #0xc0 ; 192 .db #0x41 ; 65 'A' .db #0xcf ; 207 .db #0x85 ; 133 .db #0xc0 ; 192 .db #0x4f ; 79 'O' .db #0x84 ; 132 .db #0xca ; 202 .db #0x85 ; 133 .db #0xcf ; 207 .db #0x85 ; 133 .db #0xca ; 202 .db #0x84 ; 132 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x89 ; 137 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x89 ; 137 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xc7 ; 199 .db #0x89 ; 137 .db #0xc0 ; 192 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x82 ; 130 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x82 ; 130 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xc7 ; 199 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x82 ; 130 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x80 ; 128 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x7b ; 123 .db #0xca ; 202 .db #0x80 ; 128 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xca ; 202 .db #0x7b ; 123 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x78 ; 120 'x' .db #0xca ; 202 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x7b ; 123 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x74 ; 116 't' .db #0xca ; 202 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x74 ; 116 't' .db #0xcf ; 207 .db #0x74 ; 116 't' .db #0xca ; 202 .db #0x74 ; 116 't' .db #0xcf ; 207 .db #0x76 ; 118 'v' .db #0xca ; 202 .db #0x74 ; 116 't' .db #0xcf ; 207 .db #0x78 ; 120 'x' .db #0xca ; 202 .db #0x76 ; 118 'v' .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xca ; 202 .db #0x78 ; 120 'x' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7d ; 125 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xca ; 202 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x7d ; 125 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0xc7 ; 199 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x7d ; 125 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0xc0 ; 192 .db #0x00 ; 0 .db #0xd5 ; 213 .db #0x42 ; 66 'B' .db #0xc1 ; 193 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x76 ; 118 'v' .db #0xc2 ; 194 .db #0xd0 ; 208 .db #0xc3 ; 195 .db #0xd0 ; 208 .db #0xc4 ; 196 .db #0xd0 ; 208 .db #0xc5 ; 197 .db #0xd0 ; 208 .db #0xc6 ; 198 .db #0xd0 ; 208 .db #0xc7 ; 199 .db #0xd0 ; 208 .db #0xc8 ; 200 .db #0xd0 ; 208 .db #0xc9 ; 201 .db #0xb1 ; 177 .db #0x10 ; 16 .db #0xd0 ; 208 .db #0x43 ; 67 'C' .db #0x02 ; 2 .db #0xb1 ; 177 .db #0x0a ; 10 .db #0x74 ; 116 't' .db #0x01 ; 1 .db #0x2e ; 46 .db #0x00 ; 0 .db #0x10 ; 16 .db #0x00 ; 0 .db #0xc8 ; 200 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0xd0 ; 208 .db #0xc7 ; 199 .db #0xd0 ; 208 .db #0xc6 ; 198 .db #0xd0 ; 208 .db #0x42 ; 66 'B' .db #0xc8 ; 200 .db #0x76 ; 118 'v' .db #0xc7 ; 199 .db #0xd0 ; 208 .db #0xc6 ; 198 .db #0xd0 ; 208 .db #0xc5 ; 197 .db #0xd0 ; 208 .db #0xc4 ; 196 .db #0xd0 ; 208 .db #0xc3 ; 195 .db #0xd0 ; 208 .db #0xc1 ; 193 .db #0xd0 ; 208 .db #0xc0 ; 192 .db #0x00 ; 0 .db #0x1a ; 26 .db #0x00 ; 0 .db #0x2f ; 47 .db #0x04 ; 4 .db #0x40 ; 64 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x2f ; 47 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x03 ; 3 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x3b ; 59 .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xb1 ; 177 .db #0x02 ; 2 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcf ; 207 .db #0x79 ; 121 'y' .db #0xd2 ; 210 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0xcc ; 204 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x79 ; 121 'y' .db #0xd3 ; 211 .db #0xbb ; 187 .db #0x00 ; 0 .db #0x34 ; 52 '4' .db #0x79 ; 121 'y' .db #0x00 ; 0 .db #0xd1 ; 209 .db #0xcf ; 207 .db #0xb1 ; 177 .db #0x01 ; 1 .db #0x76 ; 118 'v' .db #0xc0 ; 192 .db #0x7d ; 125 .db #0xca ; 202 .db #0x76 ; 118 'v' .db #0xcf ; 207 .db #0x82 ; 130 .db #0xca ; 202 .db #0x7d ; 125 .db #0xcf ; 207 .db #0x76 ; 118 'v' .db #0x84 ; 132 .db #0x85 ; 133 .db #0xca ; 202 .db #0x84 ; 132 .db #0xcf ; 207 .db #0x84 ; 132 .db #0xca ; 202 .db #0x85 ; 133 .db #0xcf ; 207 .db #0x80 ; 128 .db #0x7d ; 125 .db #0x76 ; 118 'v' .db #0x79 ; 121 'y' .db #0x85 ; 133 .db #0xca ; 202 .db #0x79 ; 121 'y' .db #0xcf ; 207 .db #0x82 ; 130 .db #0xca ; 202 .db #0x79 ; 121 'y' .db #0xcf ; 207 .db #0x76 ; 118 'v' .db #0xca ; 202 .db #0x82 ; 130 .db #0xcf ; 207 .db #0x85 ; 133 .db #0xca ; 202 .db #0x76 ; 118 'v' .db #0xcf ; 207 .db #0x84 ; 132 .db #0xca ; 202 .db #0x85 ; 133 .db #0xcf ; 207 .db #0x80 ; 128 .db #0xca ; 202 .db #0x84 ; 132 .db #0xcf ; 207 .db #0x76 ; 118 'v' .db #0x79 ; 121 'y' .db #0x7d ; 125 .db #0x79 ; 121 'y' .db #0x74 ; 116 't' .db #0xca ; 202 .db #0x7d ; 125 .db #0xcf ; 207 .db #0x85 ; 133 .db #0xca ; 202 .db #0x74 ; 116 't' .db #0xcf ; 207 .db #0x84 ; 132 .db #0xca ; 202 .db #0x85 ; 133 .db #0xcf ; 207 .db #0x74 ; 116 't' .db #0x7b ; 123 .db #0x80 ; 128 .db #0xca ; 202 .db #0x7b ; 123 .db #0xcf ; 207 .db #0x85 ; 133 .db #0xca ; 202 .db #0x80 ; 128 .db #0xcf ; 207 .db #0x84 ; 132 .db #0x80 ; 128 .db #0x7b ; 123 .db #0x74 ; 116 't' .db #0x72 ; 114 'r' .db #0xca ; 202 .db #0x7b ; 123 .db #0xcf ; 207 .db #0x85 ; 133 .db #0xca ; 202 .db #0x72 ; 114 'r' .db #0xcf ; 207 .db #0x84 ; 132 .db #0xca ; 202 .db #0x85 ; 133 .db #0xcf ; 207 .db #0x72 ; 114 'r' .db #0x79 ; 121 'y' .db #0x80 ; 128 .db #0xca ; 202 .db #0x74 ; 116 't' .db #0xcf ; 207 .db #0x85 ; 133 .db #0xca ; 202 .db #0x74 ; 116 't' .db #0xcf ; 207 .db #0x87 ; 135 .db #0x85 ; 133 .db #0x84 ; 132 .db #0x80 ; 128 .db #0x00 ; 0 .db #0x06 ; 6 .db #0x0e ; 14 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0xff ; 255 .db #0xff ; 255 .db #0x81 ; 129 .db #0x8f ; 143 .db #0xff ; 255 .db #0xff ; 255 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x8f ; 143 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x81 ; 129 .db #0x8f ; 143 .db #0xff ; 255 .db #0xff ; 255 .db #0x01 ; 1 .db #0x8f ; 143 .db #0xff ; 255 .db #0xff ; 255 .db #0x06 ; 6 .db #0x07 ; 7 .db #0xcd ; 205 .db #0x8f ; 143 .db #0x80 ; 128 .db #0x01 ; 1 .db #0xc1 ; 193 .db #0x8f ; 143 .db #0x80 ; 128 .db #0x02 ; 2 .db #0xc1 ; 193 .db #0x8e ; 142 .db #0xc0 ; 192 .db #0x03 ; 3 .db #0xc1 ; 193 .db #0x8e ; 142 .db #0x00 ; 0 .db #0x05 ; 5 .db #0xc1 ; 193 .db #0xed ; 237 .db #0x00 ; 0 .db #0x06 ; 6 .db #0xc1 ; 193 .db #0xed ; 237 .db #0x00 ; 0 .db #0x07 ; 7 .db #0xc0 ; 192 .db #0x92 ; 146 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x07 ; 7 .db #0x08 ; 8 .db #0xcf ; 207 .db #0x0f ; 15 .db #0xc0 ; 192 .db #0x00 ; 0 .db #0xc1 ; 193 .db #0x8f ; 143 .db #0x80 ; 128 .db #0x01 ; 1 .db #0xcd ; 205 .db #0x0f ; 15 .db #0xc0 ; 192 .db #0x01 ; 1 .db #0xcb ; 203 .db #0x0e ; 14 .db #0x40 ; 64 .db #0x02 ; 2 .db #0x89 ; 137 .db #0x19 ; 25 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x16 ; 22 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x12 ; 18 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x90 ; 144 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x8f ; 143 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x00 ; 0 .db #0x03 ; 3 .db #0x04 ; 4 .db #0xff ; 255 .db #0xff ; 255 .db #0xff ; 255 .db #0x00 ; 0 .db #0x00 ; 0 .db #0x04 ; 4 .db #0x00 ; 0 .db #0x03 ; 3 .db #0x07 ; 7 .db #0x0c ; 12 .db #0x00 ; 0 .db #0x04 ; 4 .db #0x00 ; 0 .db #0x04 ; 4 .db #0x07 ; 7 .db #0x0c ; 12 .db #0x00 ; 0 .db #0x01 ; 1 .db #0x00 ; 0 ;GCHASEc.c:372: void PrintScore(void) ; --------------------------------- ; Function PrintScore ; --------------------------------- _PrintScore:: push ix ld ix,#0 add ix,sp ld hl, #-7 add hl, sp ld sp, hl ;GCHASEc.c:375: Itoa(score,scoreText,10); ld hl, #0 add hl, sp ex de, hl ld -2 (ix), e ld -1 (ix), d ld hl,#_score + 0 ld c, (hl) ld b, #0x00 push de ld hl, #0x000a push hl ld l, -2 (ix) ld h, -1 (ix) push hl push bc call _Itoa ld hl, #6 add hl, sp ld sp, hl pop de ;GCHASEc.c:376: PutText(60,4,scoreText,0); xor a, a push af inc sp push de ld hl, #0x0004 push hl ld l, #0x3c push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:378: } ld sp, ix pop ix ret ;GCHASEc.c:382: void FT_Wait(int cicles) ; --------------------------------- ; Function FT_Wait ; --------------------------------- _FT_Wait:: ;GCHASEc.c:386: for(i=0;i=245 || max_x<5) ld a, e sub a, #0xf5 ld a, d rla ccf rra sbc a, #0x80 jr NC,00104$ ld a, e sub a, #0x05 ld a, d rla ccf rra sbc a, #0x80 jr NC,00105$ 00104$: ;GCHASEc.c:430: EnemyState.dirX=0; ld hl, #(_EnemyState + 0x0008) ld (hl), #0x00 00105$: ;GCHASEc.c:432: if (max_y>=200 || max_y<10) ld a, c sub a, #0xc8 ld a, b rla ccf rra sbc a, #0x80 jr NC,00107$ ld a, c sub a, #0x0a ld a, b rla ccf rra sbc a, #0x80 jr NC,00108$ 00107$: ;GCHASEc.c:434: EnemyState.dirY=0; ld hl, #(_EnemyState + 0x0009) ld (hl), #0x00 00108$: ;GCHASEc.c:437: EnemyState.index=0; ld hl, #(_EnemyState + 0x0004) ld (hl), #0x00 ;GCHASEc.c:439: } inc sp pop ix ret ;GCHASEc.c:441: void LittleDirection (int x1, int y1, char obj) ; --------------------------------- ; Function LittleDirection ; --------------------------------- _LittleDirection:: push ix ld ix,#0 add ix,sp ;GCHASEc.c:444: Little[obj].x=x1; ld bc, #_Little+0 ld e, 8 (ix) ld d, #0x00 ld l, e ld h, d add hl, hl add hl, hl add hl, de add hl, bc ex de, hl ld c, e ld b, d inc bc inc bc ld a, 4 (ix) ld (bc), a ;GCHASEc.c:445: Little[obj].y=y1; inc de ld a, 6 (ix) ld (de), a ;GCHASEc.c:446: LittleState[obj].dirX=FT_RandomNumber(-1,2); ld bc, #_LittleState+0 ld e, 8 (ix) ld d, #0x00 ld l, e ld h, d add hl, hl add hl, hl add hl, de add hl, hl add hl, bc ld c, l ld b, h ld hl, #0x0008 add hl, bc push bc push hl ld hl, #0x0002 push hl ld hl, #0xffff push hl call _FT_RandomNumber pop af pop af pop de pop bc ld a, l ld (de), a ;GCHASEc.c:447: LittleState[obj].dirY=FT_RandomNumber(-1,2); ld hl, #0x0009 add hl, bc push bc push hl ld hl, #0x0002 push hl ld hl, #0xffff push hl call _FT_RandomNumber pop af pop af pop de pop bc ld a, l ld (de), a ;GCHASEc.c:448: LittleState[obj].nbc=LITTLENBC; ld l, c ld h, b inc hl inc hl inc hl ld (hl), #0x05 ;GCHASEc.c:449: LittleState[obj].index=0; inc bc inc bc inc bc inc bc xor a, a ld (bc), a ;GCHASEc.c:451: } pop ix ret ;GCHASEc.c:455: char CheckApproach(void) ; --------------------------------- ; Function CheckApproach ; --------------------------------- _CheckApproach:: push ix ld ix,#0 add ix,sp ld hl, #-8 add hl, sp ld sp, hl ;GCHASEc.c:459: if((Player.x >= Enemy.x + EnemyState.w*3) || (Player.x + PlayerState.w*3 <= Enemy.x) || (Player.y >= Enemy.y + EnemyState.h*3) || (Player.y + PlayerState.h*3 <= Enemy.y)) ld hl, #_Player + 2 ld c, (hl) ld a, (#_Enemy + 2) ld -4 (ix), a xor a, a ld -3 (ix), a ld a, (#_EnemyState + 0) ld e, a ld d, #0x00 ld l, e ld h, d add hl, hl add hl, de ld e, -4 (ix) ld d, -3 (ix) add hl, de ld -2 (ix), c xor a, a ld -1 (ix), a ld a, -2 (ix) sub a, l ld a, -1 (ix) sbc a, h jp PO, 00124$ xor a, #0x80 00124$: jp P, 00101$ ld hl, #_PlayerState+0 ld c, (hl) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, bc ld e, -2 (ix) ld d, -1 (ix) add hl, de ld a, -4 (ix) sub a, l ld a, -3 (ix) sbc a, h jp PO, 00125$ xor a, #0x80 00125$: jp P, 00101$ ld a,(#_Player + 1) ld -3 (ix), a ld a,(#_Enemy + 1) ld -1 (ix), a ld -8 (ix), a xor a, a ld -7 (ix), a ld a,(#(_EnemyState + 0x0001) + 0) ld -1 (ix), a ld -2 (ix), a xor a, a ld -1 (ix), a ld c, -2 (ix) ld b, -1 (ix) ld l, c ld h, b add hl, hl add hl, bc ld -5 (ix), l ld -4 (ix), h ld a, -5 (ix) add a, -8 (ix) ld -2 (ix), a ld a, -4 (ix) adc a, -7 (ix) ld -1 (ix), a ld a, -3 (ix) ld -6 (ix), a xor a, a ld -5 (ix), a ld a, -6 (ix) sub a, -2 (ix) ld a, -5 (ix) sbc a, -1 (ix) jp PO, 00126$ xor a, #0x80 00126$: jp P, 00101$ ld a,(#(_PlayerState + 0x0001) + 0) ld -1 (ix), a ld -2 (ix), a xor a, a ld -1 (ix), a ld c, -2 (ix) ld b, -1 (ix) ld l, c ld h, b add hl, hl add hl, bc ld -4 (ix), l ld -3 (ix), h ld a, -6 (ix) add a, -4 (ix) ld -2 (ix), a ld a, -5 (ix) adc a, -3 (ix) ld -1 (ix), a ld a, -8 (ix) sub a, -2 (ix) ld a, -7 (ix) sbc a, -1 (ix) jp PO, 00127$ xor a, #0x80 00127$: jp M, 00102$ 00101$: ;GCHASEc.c:461: ap=0; // Not in the range of a possible collision ld l, #0x00 jr 00103$ 00102$: ;GCHASEc.c:465: ap=1; // Collision/approach detected ld l, #0x01 00103$: ;GCHASEc.c:467: return(ap); ;GCHASEc.c:468: } ld sp, ix pop ix ret ;GCHASEc.c:470: char CheckCollision(void) ; --------------------------------- ; Function CheckCollision ; --------------------------------- _CheckCollision:: push ix ld ix,#0 add ix,sp ld hl, #-8 add hl, sp ld sp, hl ;GCHASEc.c:473: ap1=ap2=0; xor a, a ld -8 (ix), a ;GCHASEc.c:474: if((Player.x >= Enemy.x + EnemyState.w) || (Player.x + PlayerState.w <= Enemy.x) || (Player.y >= Enemy.y + EnemyState.h) || (Player.y + PlayerState.h <= Enemy.y)) ld hl, #(_Player + 0x0002) + 0 ld e, (hl) ld a, (#_Enemy + 2) ld c, a ld b, #0x00 ld a, (#_EnemyState + 0) ld l, a ld h, #0x00 add hl, bc ld d, #0x00 ld a, e sub a, l ld a, d sbc a, h jp PO, 00166$ xor a, #0x80 00166$: jp P, 00101$ ld a, (#_PlayerState + 0) ld l, a ld h, #0x00 add hl, de ld a, c sub a, l ld a, b sbc a, h jp PO, 00167$ xor a, #0x80 00167$: jp P, 00101$ ld hl, #(_Player + 0x0001) + 0 ld e, (hl) ld a, (#_Enemy + 1) ld c, a ld b, #0x00 ld a, (#(_EnemyState + 0x0001) + 0) ld l, a ld h, #0x00 add hl, bc ld d, #0x00 ld a, e sub a, l ld a, d sbc a, h jp PO, 00168$ xor a, #0x80 00168$: jp P, 00101$ ld a, (#(_PlayerState + 0x0001) + 0) ld l, a ld h, #0x00 add hl, de ld a, c sub a, l ld a, b sbc a, h jp PO, 00169$ xor a, #0x80 00169$: jp M, 00102$ 00101$: ;GCHASEc.c:476: ap1=0; // Not in the range of a possible collision xor a, a ld -7 (ix), a jr 00127$ 00102$: ;GCHASEc.c:480: ap1=0b11110000; ld -7 (ix), #0xf0 ;GCHASEc.c:484: for (i = 0; i < 5; ++i) 00127$: ld c, #0x00 00116$: ;GCHASEc.c:486: if((Player.x >= Little[i].x + LittleState[i].w) || (Player.x + PlayerState.w <= Little[i].x) || (Player.y >= Little[i].y + LittleState[i].h) || (Player.y + PlayerState.h <= Little[i].y)) ld a,(#(_Player + 0x0002) + 0) ld -1 (ix), a ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc ld de, #_Little add hl, de ld -6 (ix), l ld -5 (ix), h pop de pop hl push hl push de inc hl inc hl ld e, (hl) ld d, #0x00 ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, hl ld a, #<(_LittleState) add a, l ld -4 (ix), a ld a, #>(_LittleState) adc a, h ld -3 (ix), a ld l, -4 (ix) ld h, -3 (ix) ld l, (hl) ld h, #0x00 add hl, de ld a, -1 (ix) ld -2 (ix), a xor a, a ld -1 (ix), a ld a, -2 (ix) sub a, l ld a, -1 (ix) sbc a, h jp PO, 00170$ xor a, #0x80 00170$: jp P, 00109$ ld a, (#_PlayerState + 0) ld l, #0x00 add a, -2 (ix) ld b, a ld a, l adc a, -1 (ix) ld l, a ld a, e sub a, b ld a, d sbc a, l jp PO, 00171$ xor a, #0x80 00171$: jp P, 00109$ ld hl, #(_Player + 0x0001) + 0 ld b, (hl) pop de pop hl push hl push de inc hl ld a, (hl) ld -2 (ix), a xor a, a ld -1 (ix), a ld l, -4 (ix) ld h, -3 (ix) inc hl ld e, (hl) ld d, #0x00 ld l, -2 (ix) ld h, -1 (ix) add hl, de ld e, b ld d, #0x00 ld a, e sub a, l ld a, d sbc a, h jp PO, 00172$ xor a, #0x80 00172$: jp P, 00109$ ld a, (#_PlayerState + 1) ld l, a ld h, #0x00 add hl, de ld a, -2 (ix) sub a, l ld a, -1 (ix) sbc a, h jp PO, 00173$ xor a, #0x80 00173$: jp M, 00110$ 00109$: ;GCHASEc.c:488: ap2=0; // Not in the range of a possible collision xor a, a ld -8 (ix), a jr 00117$ 00110$: ;GCHASEc.c:492: if (PlayerState.collision==0) ld hl, #_PlayerState + 2 ld a, (hl) or a, a jr NZ,00117$ ;GCHASEc.c:494: ap2=0b00001111; ld -8 (ix), #0x0f ;GCHASEc.c:495: PlayerState.collision=1; ld (hl), #0x01 ;GCHASEc.c:496: PlayerState.nbc=40; ld hl, #(_PlayerState + 0x0003) ld (hl), #0x28 ;GCHASEc.c:497: PlayerState.index=0; ld hl, #(_PlayerState + 0x0004) ld (hl), #0x00 ;GCHASEc.c:498: sdirY=PlayerState.dirY; ld a,(#_PlayerState + 9) ld (_sdirY+0), a ;GCHASEc.c:499: sdirX=PlayerState.dirX; ld a,(#_PlayerState + 8) ld (_sdirX+0), a ;GCHASEc.c:500: LittleState[i].dirX=0; ld a, -4 (ix) add a, #0x08 ld e, a ld a, -3 (ix) adc a, #0x00 ld d, a xor a, a ld (de), a ;GCHASEc.c:501: LittleState[i].dirY=0; ld a, -4 (ix) add a, #0x09 ld e, a ld a, -3 (ix) adc a, #0x00 ld d, a xor a, a ld (de), a ;GCHASEc.c:502: LittleState[i].shake=1; ld a, -4 (ix) add a, #0x06 ld l, a ld a, -3 (ix) adc a, #0x00 ld h, a ld (hl), #0x01 ;GCHASEc.c:503: slittle=i; ld iy, #_slittle ld 0 (iy), c ;GCHASEc.c:504: SetSpriteColors(10+slittle,LittleColor2); ld de, #_LittleColor2 ld a, 0 (iy) add a, #0x0a push bc push de push af inc sp call _SetSpriteColors pop af inc sp pop bc 00117$: ;GCHASEc.c:484: for (i = 0; i < 5; ++i) inc c ld a, c sub a, #0x05 jp C, 00116$ ;GCHASEc.c:509: return(ap1 | ap2); ld a, -7 (ix) or a, -8 (ix) ld l, a ;GCHASEc.c:510: } ld sp, ix pop ix ret ;GCHASEc.c:514: void MoveEnemy(void) ; --------------------------------- ; Function MoveEnemy ; --------------------------------- _MoveEnemy:: push ix ld ix,#0 add ix,sp push af push af dec sp ;GCHASEc.c:518: check=CheckCollision(); call _CheckCollision ;GCHASEc.c:520: if (check>200 && EnemyState.shake==0 && PlayerState.shake==0) // Check Collision With Enemy and Player ld a, #0xc8 sub a, l jr NC,00104$ ld a, (#_EnemyState + 6) or a, a jr NZ,00104$ ld a, (#(_PlayerState + 0x0006) + 0) or a, a jr NZ,00104$ ;GCHASEc.c:523: if (EnemyState.collision==0) // If Yes, score is incremented ld a, (#(_EnemyState + 0x0002) + 0) or a, a jr NZ,00105$ ;GCHASEc.c:525: score++; ld hl, #_score+0 inc (hl) ;GCHASEc.c:526: PT3FXPlay(5,10); ld de, #0x0a05 push de call _PT3FXPlay pop af ;GCHASEc.c:527: EnemyState.collision=1; // The Player State control is set to 1. To avoid continuous collision detection ld hl, #(_EnemyState + 0x0002) ld (hl), #0x01 ;GCHASEc.c:528: PrintScore(); call _PrintScore ;GCHASEc.c:530: EnemyState.nbc=0; // Force to recalcultae new route ld hl, #(_EnemyState + 0x0003) ld (hl), #0x00 ;GCHASEc.c:531: EnemyState.index=10; ld hl, #(_EnemyState + 0x0004) ld (hl), #0x0a jr 00105$ 00104$: ;GCHASEc.c:537: EnemyState.collision=0; ld hl, #(_EnemyState + 0x0002) ld (hl), #0x00 00105$: ;GCHASEc.c:542: if (CheckApproach()==1) // If the player spirte is near the enemy sprite call _CheckApproach dec l jr NZ,00109$ ;GCHASEc.c:544: Enemy.pat=104; // It change its pattern to a frightened ghost pattern ld hl, #(_Enemy + 0x0003) ld (hl), #0x68 ;GCHASEc.c:545: SetSpriteColors(1,EnemyColor2); // It change also its color ld hl, #_EnemyColor2 push hl ld a, #0x01 push af inc sp call _SetSpriteColors pop af inc sp ;GCHASEc.c:546: EnemyState.approach=1; ld hl, #(_EnemyState + 0x0007) ld (hl), #0x01 jr 00110$ 00109$: ;GCHASEc.c:550: Enemy.pat=100; // Normal pattern and color if Player sprite is far away of the Enemy sprite ld hl, #(_Enemy + 0x0003) ld (hl), #0x64 ;GCHASEc.c:551: SetSpriteColors(1,EnemyColor); ld hl, #_EnemyColor push hl ld a, #0x01 push af inc sp call _SetSpriteColors pop af inc sp ;GCHASEc.c:552: EnemyState.approach=0; ld hl, #(_EnemyState + 0x0007) ld (hl), #0x00 00110$: ;GCHASEc.c:556: if (EnemyState.dirX==0 && EnemyState.dirY==0 && EnemyState.approach==1) ;GCHASEc.c:558: EnemyState.shake=1; ;GCHASEc.c:559: EnemyState.index=0; ;GCHASEc.c:560: EnemyState.nbc=40; ;GCHASEc.c:556: if (EnemyState.dirX==0 && EnemyState.dirY==0 && EnemyState.approach==1) ld a,(#(_EnemyState + 0x0008) + 0) or a, a jr NZ,00112$ ld a, (#(_EnemyState + 0x0009) + 0) or a, a jr NZ,00112$ ld a, (#_EnemyState + 7) dec a jr NZ,00112$ ;GCHASEc.c:558: EnemyState.shake=1; ld hl, #(_EnemyState + 0x0006) ld (hl), #0x01 ;GCHASEc.c:559: EnemyState.index=0; ld hl, #(_EnemyState + 0x0004) ld (hl), #0x00 ;GCHASEc.c:560: EnemyState.nbc=40; ld hl, #(_EnemyState + 0x0003) ld (hl), #0x28 ;GCHASEc.c:561: PT3FXPlay(2,10); ld de, #0x0a02 push de call _PT3FXPlay pop af 00112$: ;GCHASEc.c:565: if (EnemyState.index>EnemyState.nbc && EnemyState.shake==0) // CHeck if Enemy Movement ends ld hl, #(_EnemyState + 0x0004) + 0 ld c, (hl) ld a,(#(_EnemyState + 0x0003) + 0) sub a, c jr NC,00116$ ld a, (#(_EnemyState + 0x0006) + 0) or a, a jr NZ,00116$ ;GCHASEc.c:567: EnemyDirection(); // If yes, we choose another direction to go call _EnemyDirection 00116$: ;GCHASEc.c:572: Enemy.x += EnemyState.dirX; // Increment X and Y position of the Enemy and also the Index movement ld hl, #(_Enemy + 0x0002) + 0 ld c, (hl) ld a, (#(_EnemyState + 0x0008) + 0) add a, c ld (#(_Enemy + 0x0002)),a ;GCHASEc.c:573: Enemy.y += EnemyState.dirY; ld hl, #(_Enemy + 0x0001) + 0 ld c, (hl) ld a, (#(_EnemyState + 0x0009) + 0) add a, c ld (#(_Enemy + 0x0001)),a ;GCHASEc.c:574: EnemyState.index++; ld a, (#(_EnemyState + 0x0004) + 0) inc a ld (#(_EnemyState + 0x0004)),a ;GCHASEc.c:576: if (EnemyState.shake==1) ld a, (#(_EnemyState + 0x0006) + 0) dec a jp NZ,00127$ ;GCHASEc.c:578: EnemyState.dirY=Shake[EnemyState.index]; ld bc, #_Shake+0 ld a, (#(_EnemyState + 0x0004) + 0) ld l, a ld h, #0x00 add hl, bc ld a, (hl) ld (#(_EnemyState + 0x0009)),a ;GCHASEc.c:579: EnemyState.dirX=0; ld hl, #(_EnemyState + 0x0008) ld (hl), #0x00 ;GCHASEc.c:581: if (EnemyState.index>EnemyState.nbc) ld hl, #(_EnemyState + 0x0004) + 0 ld c, (hl) ld a,(#(_EnemyState + 0x0003) + 0) sub a, c jp NC, 00127$ ;GCHASEc.c:583: EnemyState.life=0; ld hl, #(_EnemyState + 0x0005) ld (hl), #0x00 ;GCHASEc.c:584: EnemyState.shake=0; ld hl, #(_EnemyState + 0x0006) ld (hl), #0x00 ;GCHASEc.c:586: for ( i = 0; i < 5; ++i) xor a, a ld -1 (ix), a 00125$: ;GCHASEc.c:588: if (LittleState[i].life==0) ld c, -1 (ix) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, hl ex de, hl ld hl, #_LittleState add hl, de ex de, hl ld hl, #0x0005 add hl, de ld -4 (ix), l ld -3 (ix), h ld a, (hl) ld -2 (ix), a or a, a jr NZ,00126$ ;GCHASEc.c:590: LittleState[i].life=100; ld l, -4 (ix) ld h, -3 (ix) ld (hl), #0x64 ;GCHASEc.c:591: LittleDirection (Enemy.x, Enemy.y, i); ld a,(#(_Enemy + 0x0001) + 0) ld -2 (ix), a ld -5 (ix), a xor a, a ld -4 (ix), a ld a,(#(_Enemy + 0x0002) + 0) ld -2 (ix), a ld -3 (ix), a xor a, a ld -2 (ix), a ld a, -1 (ix) push af inc sp ld l, -5 (ix) ld h, -4 (ix) push hl ld l, -3 (ix) ld h, -2 (ix) push hl call _LittleDirection pop af pop af inc sp ;GCHASEc.c:592: EnemyDirection(); call _EnemyDirection 00126$: ;GCHASEc.c:586: for ( i = 0; i < 5; ++i) inc -1 (ix) ld a, -1 (ix) sub a, #0x05 jr C,00125$ ;GCHASEc.c:595: PT3FXPlay(1,0); xor a, a ld d,a ld e,#0x01 push de call _PT3FXPlay pop af 00127$: ;GCHASEc.c:600: } ld sp, ix pop ix ret ;GCHASEc.c:602: void MoveLittle(void) ; --------------------------------- ; Function MoveLittle ; --------------------------------- _MoveLittle:: push ix ld ix,#0 add ix,sp ld hl, #-12 add hl, sp ld sp, hl ;GCHASEc.c:605: for ( i = 0; i < 5; ++i) xor a, a ld -1 (ix), a 00112$: ;GCHASEc.c:607: if (LittleState[i].life>0) ld c, -1 (ix) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, hl ex de, hl ld hl, #_LittleState add hl, de ex (sp), hl ld a, -12 (ix) add a, #0x05 ld c, a ld a, -11 (ix) adc a, #0x00 ld b, a ld a, (bc) ld e, a ;GCHASEc.c:609: Little[i].x+=LittleState[i].dirX; push de ld e, -1 (ix) ld d, #0x00 ld l, e ld h, d add hl, hl add hl, hl add hl, de pop de ld -10 (ix), l ld -9 (ix), h ;GCHASEc.c:611: LittleState[i].index++; ld a, -12 (ix) add a, #0x04 ld -8 (ix), a ld a, -11 (ix) adc a, #0x00 ld -7 (ix), a ;GCHASEc.c:607: if (LittleState[i].life>0) ld a, e or a, a jp Z, 00105$ ;GCHASEc.c:609: Little[i].x+=LittleState[i].dirX; ld a, #<(_Little) add a, -10 (ix) ld -4 (ix), a ld a, #>(_Little) adc a, -9 (ix) ld -3 (ix), a ld e, -4 (ix) ld d, -3 (ix) inc de inc de ld a, (de) ld -2 (ix), a ld a, -12 (ix) add a, #0x08 ld -6 (ix), a ld a, -11 (ix) adc a, #0x00 ld -5 (ix), a ld l, -6 (ix) ld h, -5 (ix) ld l, (hl) ld a, -2 (ix) add a, l ld (de), a ;GCHASEc.c:610: Little[i].y+=LittleState[i].dirY; ld e, -4 (ix) ld d, -3 (ix) inc de ld a, (de) ld -4 (ix), a ld a, -12 (ix) add a, #0x09 ld -3 (ix), a ld a, -11 (ix) adc a, #0x00 ld -2 (ix), a ld l, -3 (ix) ld h, -2 (ix) ld l, (hl) ld a, -4 (ix) add a, l ld (de), a ;GCHASEc.c:611: LittleState[i].index++; ld l,-8 (ix) ld h,-7 (ix) inc (hl) ;GCHASEc.c:612: if (LittleState[i].dirX!=0 || LittleState[i].dirY!=0) ld l, -6 (ix) ld h, -5 (ix) ld a, (hl) or a, a jr NZ,00101$ ld l, -3 (ix) ld h, -2 (ix) ld a, (hl) or a, a jr Z,00106$ 00101$: ;GCHASEc.c:613: LittleState[i].life--; ld a, (bc) dec a ld (bc), a jr 00106$ 00105$: ;GCHASEc.c:617: Little[i].x=0; ld a, #<(_Little) add a, -10 (ix) ld e, a ld a, #>(_Little) adc a, -9 (ix) ld l, e ld h, a inc hl inc hl ld (hl), #0x00 ;GCHASEc.c:618: Little[i].y=212; ld d, a inc de ld a, #0xd4 ld (de), a 00106$: ;GCHASEc.c:621: if (LittleState[i].index>LittleState[i].nbc && LittleState[i].life>20 && LittleState[i].shake==0) ld l, -8 (ix) ld h, -7 (ix) ld e, (hl) pop hl push hl inc hl inc hl inc hl ld d, (hl) ld a, d sub a, e jr NC,00113$ ld a, (bc) ld c, a ld a, #0x14 sub a, c jr NC,00113$ pop hl push hl ld de, #0x0006 add hl, de ld a, (hl) or a, a jr NZ,00113$ ;GCHASEc.c:623: LittleDirection (Little[i].x, Little[i].y, i); ld a, #<(_Little) add a, -10 (ix) ld c, a ld a, #>(_Little) adc a, -9 (ix) ld b, a ld l, c ld h, b inc hl ld e, (hl) ld d, #0x00 ld l, c ld h, b inc hl inc hl ld c, (hl) ld b, #0x00 ld a, -1 (ix) push af inc sp push de push bc call _LittleDirection pop af pop af inc sp ;GCHASEc.c:624: LittleState[i].index=0; ld l, -8 (ix) ld h, -7 (ix) ld (hl), #0x00 00113$: ;GCHASEc.c:605: for ( i = 0; i < 5; ++i) inc -1 (ix) ld a, -1 (ix) sub a, #0x05 jp C, 00112$ ;GCHASEc.c:627: } ld sp, ix pop ix ret ;GCHASEc.c:630: void SpriteOnScreen(void) ; --------------------------------- ; Function SpriteOnScreen ; --------------------------------- _SpriteOnScreen:: ;GCHASEc.c:634: fPutSprite(&Player); ld hl, #_Player call _fPutSprite ;GCHASEc.c:636: fPutSprite(&Enemy); ld hl, #_Enemy call _fPutSprite ;GCHASEc.c:637: for ( i = 0; i < 5; ++i) ld c, #0x00 00102$: ;GCHASEc.c:639: fPutSprite(&Little[i]); ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc ld de, #_Little add hl, de push bc call _fPutSprite pop bc ;GCHASEc.c:637: for ( i = 0; i < 5; ++i) inc c ld a, c sub a, #0x05 jr C,00102$ ;GCHASEc.c:642: } ret ;GCHASEc.c:645: void Timer(void) ; --------------------------------- ; Function Timer ; --------------------------------- _Timer:: ;GCHASEc.c:648: CurrentTimer=RealTimer()>>4; ld hl, #0xfc9e ld c, (hl) inc hl ld b, (hl) srl b rr c srl b rr c srl b rr c srl b rr c ;GCHASEc.c:649: if (CurrentTimer>MyTimer) ld hl, #_MyTimer ld a, (hl) sub a, c inc hl ld a, (hl) sbc a, b ret NC ;GCHASEc.c:651: MyTimer=CurrentTimer; ld (_MyTimer), bc ;GCHASEc.c:652: BoxFill(256-MyTimer,4,256-MyTimer,12,0,0); ld hl, #_MyTimer xor a, a sub a, (hl) ld c, a ld a, #0x01 inc hl sbc a, (hl) ld b, a xor a, a push af inc sp xor a, a push af inc sp ld hl, #0x000c push hl push bc ld l, #0x04 push hl push bc call _BoxFill ld hl, #10 add hl, sp ld sp, hl ;GCHASEc.c:654: if (MyTimer>100) ld a, #0x64 ld iy, #_MyTimer cp a, 0 (iy) ld a, #0x00 sbc a, 1 (iy) ret NC ;GCHASEc.c:656: GameOn=0; ld iy, #_GameOn ld 0 (iy), #0x00 ;GCHASEc.c:657: EndScreen(); ;GCHASEc.c:660: } jp _EndScreen ;GCHASEc.c:663: void WaitSpaceKey(void) ; --------------------------------- ; Function WaitSpaceKey ; --------------------------------- _WaitSpaceKey:: ;GCHASEc.c:665: char c=2; ld c, #0x02 ;GCHASEc.c:667: while (Inkey()!=32) 00103$: push bc call _Inkey ld a, l pop bc sub a, #0x20 ret Z ;GCHASEc.c:669: SetColor(c); ld hl, #0xf3e9 ld (hl), c ;GCHASEc.c:670: PutText(36,130,TxtPressKey,0); push bc xor a, a push af inc sp ld hl, #_TxtPressKey push hl ld hl, #0x0082 push hl ld l, #0x24 push hl call _PutText ld hl, #7 add hl, sp ld sp, hl pop bc ;GCHASEc.c:671: c=(c+1)%16; ld b, #0x00 inc bc ld hl, #0x0010 push hl push bc call __modsint pop af pop af ld c, l ;GCHASEc.c:672: if (c<2) ld a, c sub a, #0x02 jr NC,00103$ ;GCHASEc.c:673: c=2; ld c, #0x02 ;GCHASEc.c:675: } jr 00103$ ;GCHASEc.c:678: void EndScreen(void) ; --------------------------------- ; Function EndScreen ; --------------------------------- _EndScreen:: push ix ld ix,#0 add ix,sp ld hl, #-7 add hl, sp ld sp, hl ;GCHASEc.c:683: Enemy.y=212; ld hl, #(_Enemy + 0x0001) ld (hl), #0xd4 ;GCHASEc.c:684: Player.y=212; ld hl, #(_Player + 0x0001) ld (hl), #0xd4 ;GCHASEc.c:685: for ( i = 0; i < 5; ++i) ld de, #_Little+0 ld c, #0x00 00102$: ;GCHASEc.c:687: Little[i].y=212; ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, de inc hl ld (hl), #0xd4 ;GCHASEc.c:685: for ( i = 0; i < 5; ++i) inc c ld a, c sub a, #0x05 jr C,00102$ ;GCHASEc.c:689: SpriteOnScreen(); call _SpriteOnScreen ;GCHASEc.c:691: SetColor(14); ld hl, #0xf3e9 ld (hl), #0x0e ;GCHASEc.c:692: PutText(76,100,TxtYourScore,0); xor a, a push af inc sp ld hl, #_TxtYourScore push hl ld hl, #0x0064 push hl ld l, #0x4c push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:693: SetColor(8); ld hl, #0xf3e9 ld (hl), #0x08 ;GCHASEc.c:695: Itoa(score,scoreText,10); ld hl, #0 add hl, sp ex de, hl ld -2 (ix), e ld -1 (ix), d ld hl,#_score + 0 ld c, (hl) ld b, #0x00 push de ld hl, #0x000a push hl ld l, -2 (ix) ld h, -1 (ix) push hl push bc call _Itoa ld hl, #6 add hl, sp ld sp, hl pop de ;GCHASEc.c:696: PutText(164,100,scoreText,0); xor a, a push af inc sp push de ld hl, #0x0064 push hl ld l, #0xa4 push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:698: WaitSpaceKey(); call _WaitSpaceKey ;GCHASEc.c:699: SetColor(9); ld hl, #0xf3e9 ld (hl), #0x09 ;GCHASEc.c:701: StartScreen(); call _StartScreen ;GCHASEc.c:703: } ld sp, ix pop ix ret ;GCHASEc.c:709: void StartScreen(void) ; --------------------------------- ; Function StartScreen ; --------------------------------- _StartScreen:: ;GCHASEc.c:713: BoxFill(0,0,255,212,0,0); // Clear All the Screen xor a, a push af inc sp xor a, a push af inc sp ld hl, #0x00d4 push hl ld l, #0xff push hl ld l, #0x00 push hl ld l, #0x00 push hl call _BoxFill ld hl, #10 add hl, sp ld sp, hl ;GCHASEc.c:714: SetColor(14); ld hl, #0xf3e9 ld (hl), #0x0e ;GCHASEc.c:715: PutText(10,4,TxtScore,0); xor a, a push af inc sp ld hl, #_TxtScore push hl ld hl, #0x0004 push hl ld l, #0x0a push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:716: PutText(115,4,TxtTime,0); xor a, a push af inc sp ld hl, #_TxtTime push hl ld hl, #0x0004 push hl ld l, #0x73 push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:717: BoxFill(155,4,255,12,3,0); xor a, a ld d,a ld e,#0x03 push de ld hl, #0x000c push hl ld l, #0xff push hl ld l, #0x04 push hl ld l, #0x9b push hl call _BoxFill ld hl, #10 add hl, sp ld sp, hl ;GCHASEc.c:718: PutText(4,204,TxtSub,0); xor a, a push af inc sp ld hl, #_TxtSub push hl ld hl, #0x00cc push hl ld l, #0x04 push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:720: SetColor(9); ld hl, #0xf3e9 ld (hl), #0x09 ;GCHASEc.c:721: PutText(68,90,TxtTitle,0); xor a, a push af inc sp ld hl, #_TxtTitle push hl ld hl, #0x005a push hl ld l, #0x44 push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:722: SetColor(10); ld hl, #0xf3e9 ld (hl), #0x0a ;GCHASEc.c:723: PutText(69,90,TxtTitle,8); ld a, #0x08 push af inc sp ld hl, #_TxtTitle push hl ld hl, #0x005a push hl ld l, #0x45 push hl call _PutText ld hl, #7 add hl, sp ld sp, hl ;GCHASEc.c:725: GameOn=0; ld hl,#_GameOn + 0 ld (hl), #0x00 ;GCHASEc.c:726: score=0; ld hl,#_score + 0 ld (hl), #0x00 ;GCHASEc.c:727: PrintScore(); call _PrintScore ;GCHASEc.c:728: PT3FXPlay(0,10); ld a, #0x0a push af inc sp xor a, a push af inc sp call _PT3FXPlay pop af ;GCHASEc.c:729: WaitSpaceKey(); call _WaitSpaceKey ;GCHASEc.c:731: SetColor(14); ld hl, #0xf3e9 ld (hl), #0x0e ;GCHASEc.c:732: BoxFill(0,60,255,212,0,0); xor a, a push af inc sp xor a, a push af inc sp ld hl, #0x00d4 push hl ld l, #0xff push hl ld l, #0x3c push hl ld l, #0x00 push hl call _BoxFill ld hl, #10 add hl, sp ld sp, hl ;GCHASEc.c:734: srand(RealTimer()); ld hl, #0xfc9e ld c, (hl) inc hl ld b, (hl) push bc call _srand pop af ;GCHASEc.c:735: SetRealTimer(0); // Set the Real Time Timer to 0 ld hl, #0x0000 ld (0xfc9e), hl ;GCHASEc.c:740: Player.x=FT_RandomNumber (50, 200); // Player start position X ld l, #0xc8 push hl ld l, #0x32 push hl call _FT_RandomNumber pop af pop af ld a, l ld (#(_Player + 0x0002)),a ;GCHASEc.c:741: Player.y=FT_RandomNumber (30, 180); // Player start position Y ld hl, #0x00b4 push hl ld l, #0x1e push hl call _FT_RandomNumber pop af pop af ld a, l ld (#(_Player + 0x0001)),a ;GCHASEc.c:742: Player.spr=0; // Player Sprite Number ld hl, #_Player ld (hl), #0x00 ;GCHASEc.c:743: Player.pat=0; // Player Sprite Pattern ld hl, #(_Player + 0x0003) ld (hl), #0x00 ;GCHASEc.c:744: PlayerState.dirX=-1; // Player Direction on X ld hl, #(_PlayerState + 0x0008) ld (hl), #0xff ;GCHASEc.c:745: PlayerState.dirY=0; // Player Direction on Y ld hl, #(_PlayerState + 0x0009) ld (hl), #0x00 ;GCHASEc.c:746: PlayerState.w=14; // Width of Sprite X2 (used for Approach Detection not for collision detection) ld hl, #_PlayerState ld (hl), #0x0e ;GCHASEc.c:747: PlayerState.h=14; // Height of Sprite X2 (used for Approach Detection not for collision detection) ld hl, #(_PlayerState + 0x0001) ld (hl), #0x0e ;GCHASEc.c:748: PlayerState.collision=0; ld hl, #(_PlayerState + 0x0002) ld (hl), #0x00 ;GCHASEc.c:749: PlayerState.shake=0; ld hl, #(_PlayerState + 0x0006) ld (hl), #0x00 ;GCHASEc.c:752: Enemy.x=FT_RandomNumber (50, 200); // Enemy Start position X ld hl, #0x00c8 push hl ld l, #0x32 push hl call _FT_RandomNumber pop af pop af ld a, l ld (#(_Enemy + 0x0002)),a ;GCHASEc.c:753: Enemy.y=FT_RandomNumber (30, 180); // Enemy Start position Y ld hl, #0x00b4 push hl ld l, #0x1e push hl call _FT_RandomNumber pop af pop af ld a, l ld (#(_Enemy + 0x0001)),a ;GCHASEc.c:754: Enemy.spr=1; // Enemy Sprite Numbver ld hl, #_Enemy ld (hl), #0x01 ;GCHASEc.c:755: Enemy.pat=100; // Enemy Sprite Pattern ld hl, #(_Enemy + 0x0003) ld (hl), #0x64 ;GCHASEc.c:756: EnemyState.dirX=0; // Enemy Direction on X ld hl, #(_EnemyState + 0x0008) ld (hl), #0x00 ;GCHASEc.c:757: EnemyState.dirY=-1; // Enemy Direction on Y ld hl, #(_EnemyState + 0x0009) ld (hl), #0xff ;GCHASEc.c:758: EnemyState.nbc=20; // How many step to go in the direction ld hl, #(_EnemyState + 0x0003) ld (hl), #0x14 ;GCHASEc.c:759: EnemyState.index=0; // Index in the number of steps ld hl, #(_EnemyState + 0x0004) ld (hl), #0x00 ;GCHASEc.c:760: EnemyState.w=14; // Width of Sprite X2 (used for Approach Detection not for collision detection) ld hl, #_EnemyState ld (hl), #0x0e ;GCHASEc.c:761: EnemyState.h=14; // Height of Sprite X2 (used for Approach Detection not for collision detection) ld hl, #(_EnemyState + 0x0001) ld (hl), #0x0e ;GCHASEc.c:762: EnemyState.shake=0; ld hl, #(_EnemyState + 0x0006) ld (hl), #0x00 ;GCHASEc.c:763: for ( i = 0; i < 5; ++i) ld c, #0x00 00102$: ;GCHASEc.c:765: Little[i].x=0; ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc ex de, hl ld hl, #_Little add hl, de ex de, hl ld l, e ld h, d inc hl inc hl ld (hl), #0x00 ;GCHASEc.c:766: Little[i].y=212; ld l, e ld h, d inc hl ld (hl), #0xd4 ;GCHASEc.c:767: Little[i].spr=10+i; ld a, c add a, #0x0a ld b, a ld (de), a ;GCHASEc.c:768: Little[i].pat=108; ld l, e ld h, d inc hl inc hl inc hl ld (hl), #0x6c ;GCHASEc.c:769: Little[i].col=1; ld hl, #0x0004 add hl, de ld (hl), #0x01 ;GCHASEc.c:770: LittleState[i].dirX=0; ld e, c ld d, #0x00 ld l, e ld h, d add hl, hl add hl, hl add hl, de add hl, hl ex de, hl ld hl, #_LittleState add hl, de ex de, hl ld hl, #0x0008 add hl, de ld (hl), #0x00 ;GCHASEc.c:771: LittleState[i].dirY=0; ld hl, #0x0009 add hl, de ld (hl), #0x00 ;GCHASEc.c:772: LittleState[i].nbc=LITTLENBC; ld l, e ld h, d inc hl inc hl inc hl ld (hl), #0x05 ;GCHASEc.c:773: LittleState[i].index=0; ld hl, #0x0004 add hl, de ld (hl), #0x00 ;GCHASEc.c:774: LittleState[i].w=14; ld a, #0x0e ld (de), a ;GCHASEc.c:775: LittleState[i].h=14; ld l, e ld h, d inc hl ld (hl), #0x0e ;GCHASEc.c:776: LittleState[i].life=0; ld hl, #0x0005 add hl, de ld (hl), #0x00 ;GCHASEc.c:777: LittleState[i].shake=0; ld hl, #0x0006 add hl, de ld (hl), #0x00 ;GCHASEc.c:778: SetSpriteColors(10+i,LittleColor); push bc ld hl, #_LittleColor push hl push bc inc sp call _SetSpriteColors pop af inc sp pop bc ;GCHASEc.c:763: for ( i = 0; i < 5; ++i) inc c ld a, c sub a, #0x05 jr C,00102$ ;GCHASEc.c:781: MyTimer=0; ld hl, #0x0000 ld (_MyTimer), hl ;GCHASEc.c:782: mj=7; ld hl,#_mj + 0 ld (hl), #0x07 ;GCHASEc.c:783: GameOn=1; ld hl,#_GameOn + 0 ld (hl), #0x01 ;GCHASEc.c:785: } ret ;GCHASEc.c:788: void routing(void) __critical __interrupt(0) ; --------------------------------- ; Function routing ; --------------------------------- _routing:: push af push bc push de push hl push iy ;GCHASEc.c:791: vdp_status = VDP_port2; in a, (_VDP_port2) ld (_vdp_status+0), a ;GCHASEc.c:792: if (GameOn==1) ld a,(#_GameOn + 0) dec a jr NZ,00102$ ;GCHASEc.c:794: Timer(); call _Timer 00102$: ;GCHASEc.c:796: PT3Rout(); // Route the PT3 music to PSGPT3Rout call _PT3Rout ;GCHASEc.c:798: PT3Play(); // Play/Update the music playing call _PT3Play ;GCHASEc.c:800: PT3FXRout(); call _PT3FXRout ;GCHASEc.c:802: } pop iy pop hl pop de pop bc pop af ei reti ;GCHASEc.c:806: void main (void) ; --------------------------------- ; Function main ; --------------------------------- _main:: push ix ld ix,#0 add ix,sp dec sp ;GCHASEc.c:808: char j=0; // Current Joystiock Move xor a, a ld -1 (ix), a ;GCHASEc.c:809: mj=7; // Previous Joystick Move ld hl,#_mj + 0 ld (hl), #0x07 ;GCHASEc.c:811: KeySound(0); // No key blop ld hl, #0xf3db ld (hl), #0x00 ;GCHASEc.c:812: SetColors(15,0,1); // Default colors ld a, #0x01 push af inc sp xor a, a ld d,a ld e,#0x0f push de call _SetColors pop af inc sp ;GCHASEc.c:814: Screen(5); // Screen 5 ld a, #0x05 push af inc sp call _Screen inc sp ;GCHASEc.c:816: SpriteReset(); // Reset previous Memory Sprites data call _SpriteReset ;GCHASEc.c:817: Sprite16(); // Set sprite to 16x16 sprites mode call _Sprite16 ;GCHASEc.c:818: VDP60Hz(); call _VDP60Hz ;GCHASEc.c:824: InitPSG(); call _InitPSG ;GCHASEc.c:825: PT3Init (&song, 1); // Init Sonh ld a, #0x01 push af inc sp ld hl, #_song push hl call _PT3Init pop af inc sp ;GCHASEc.c:826: PT3FXInit(&chase,1); // Init FX Sounds ld a, #0x01 push af inc sp ld hl, #_chase push hl call _PT3FXInit ;GCHASEc.c:830: SetSpritePattern(0,Sprite32Bytes(playerPatG1),32); // Left1:0 :Original pattern1 go to left is set to pattern 0,1,2,3 inc sp ld hl,#_playerPatG1 ex (sp),hl call _Sprite32Bytes pop af ld a, #0x20 push af inc sp push hl xor a, a push af inc sp call _SetSpritePattern pop af ;GCHASEc.c:831: SetSpritePattern(4,Sprite32Bytes(playerPatG2),32); // Left2:4 :Original pattern2 go to left is set to pattern 4,5,6,7 ld hl, #_playerPatG2 ex (sp),hl call _Sprite32Bytes pop af ld a, #0x20 push af inc sp push hl ld a, #0x04 push af inc sp call _SetSpritePattern pop af pop af ;GCHASEc.c:833: Pattern16RotationVram(0, 90, 8); // UP1:8 :Rotation of the pattern 0(0,1,2,3) 90 degrees to create the Player going to UP, and save it to Pattern 8,9,10,11 ld de, #0x085a push de xor a, a push af inc sp call _Pattern16RotationVram pop af inc sp ;GCHASEc.c:834: Pattern16RotationVram(4, 90, 12); // UP2:12:Same for Player pattern 2. Saved to Pattern 12,13,14,15 ld de, #0x0c5a push de ld a, #0x04 push af inc sp call _Pattern16RotationVram pop af inc sp ;GCHASEc.c:836: Pattern16FlipVram(0, 0, 16); // RIGHT1:16: ld a, #0x10 push af inc sp xor a, a push af inc sp xor a, a push af inc sp call _Pattern16FlipVram pop af inc sp ;GCHASEc.c:837: Pattern16FlipVram(4, 0, 20); // RIGHTR2:20: ld a, #0x14 push af inc sp xor a, a ld d,a ld e,#0x04 push de call _Pattern16FlipVram pop af inc sp ;GCHASEc.c:839: Pattern16FlipVram(8, 1, 24); // DOWN1:24 ld de, #0x1801 push de ld a, #0x08 push af inc sp call _Pattern16FlipVram pop af inc sp ;GCHASEc.c:840: Pattern16FlipVram(12,1, 28); // DOWN2:28 ld de, #0x1c01 push de ld a, #0x0c push af inc sp call _Pattern16FlipVram ;GCHASEc.c:844: SetSpritePattern(100,Sprite32Bytes(enemyPat),32); inc sp ld hl,#_enemyPat ex (sp),hl call _Sprite32Bytes pop af ld a, #0x20 push af inc sp push hl ld a, #0x64 push af inc sp call _SetSpritePattern pop af ;GCHASEc.c:845: SetSpritePattern(104,Sprite32Bytes(enemyPat2),32); ld hl, #_enemyPat2 ex (sp),hl call _Sprite32Bytes pop af ld a, #0x20 push af inc sp push hl ld a, #0x68 push af inc sp call _SetSpritePattern pop af ;GCHASEc.c:846: SetSpritePattern(108,Sprite32Bytes(enemyPat),32); ld hl, #_enemyPat ex (sp),hl call _Sprite32Bytes pop af ld a, #0x20 push af inc sp push hl ld a, #0x6c push af inc sp call _SetSpritePattern pop af ;GCHASEc.c:848: SetSpriteColors(0,PlayerColor); // Set the Sprite colors to Vram ld hl, #_PlayerColor ex (sp),hl xor a, a push af inc sp call _SetSpriteColors pop af inc sp ;GCHASEc.c:850: InitInterruptHandler((unsigned int)routing); // Initialized Interrupt ld bc, #_routing push bc call _InitInterruptHandler pop af ;GCHASEc.c:852: StartScreen(); // Show Start Screen call _StartScreen ;GCHASEc.c:855: while (Inkey()!=27) 00124$: call _Inkey ld a, l sub a, #0x1b jp Z,00126$ ;GCHASEc.c:857: if (GameOn==1) ld a,(#_GameOn + 0) dec a jp NZ,00122$ ;GCHASEc.c:859: if (RunStep%16==0) ld a,(#_RunStep + 0) and a, #0x0f jr NZ,00102$ ;GCHASEc.c:861: PatternStep=!PatternStep; ld a,(#_PatternStep + 0) sub a,#0x01 ld a, #0x00 rla ld (_PatternStep+0), a ;GCHASEc.c:862: RunStep=0; ld hl,#_RunStep + 0 ld (hl), #0x00 00102$: ;GCHASEc.c:865: if (PlayerState.collision==0) ld a, (#(_PlayerState + 0x0002) + 0) ;GCHASEc.c:867: j=JoystickRead(0); // Retrieve Joystick Direction or a,a jr NZ,00106$ ld l,a call _JoystickRead ld -1 (ix), l jp 00107$ 00106$: ;GCHASEc.c:871: PlayerState.dirX=Shake[PlayerState.index]; ld bc, #_PlayerState + 4 ld a, (bc) add a, #<(_Shake) ld e, a ld a, #0x00 adc a, #>(_Shake) ld d, a ld a, (de) ld (#(_PlayerState + 0x0008)),a ;GCHASEc.c:872: PlayerState.shake=1; ld hl, #(_PlayerState + 0x0006) ld (hl), #0x01 ;GCHASEc.c:873: PlayerState.dirY=0; ld hl, #(_PlayerState + 0x0009) ld (hl), #0x00 ;GCHASEc.c:874: PlayerState.index++; ld a, (bc) ld e, a inc e ld a, e ld (bc), a ;GCHASEc.c:875: if (PlayerState.index>PlayerState.nbc) ld a,(#_PlayerState + 3) sub a, e jr NC,00107$ ;GCHASEc.c:877: PlayerState.shake=0; ld hl, #(_PlayerState + 0x0006) ld (hl), #0x00 ;GCHASEc.c:878: PlayerState.dirX=sdirX; ld hl, #(_PlayerState + 0x0008) ld a,(#_sdirX + 0) ld (hl), a ;GCHASEc.c:879: PlayerState.dirY=sdirY; ld hl, #(_PlayerState + 0x0009) ld a,(#_sdirY + 0) ld (hl), a ;GCHASEc.c:880: PlayerState.collision=0; ld hl, #(_PlayerState + 0x0002) ld (hl), #0x00 ;GCHASEc.c:881: LittleState[slittle].life=0; ld bc, (_slittle) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, hl ld de, #_LittleState add hl, de ld bc, #0x0005 add hl, bc ld (hl), #0x00 ;GCHASEc.c:882: LittleState[slittle].nbc=0; ld bc, (_slittle) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, hl ld de, #_LittleState add hl, de inc hl inc hl inc hl ld (hl), #0x00 ;GCHASEc.c:883: LittleState[slittle].shake=0; ld bc, (_slittle) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc add hl, hl ld de, #_LittleState add hl, de ld bc, #0x0006 add hl, bc ld (hl), #0x00 ;GCHASEc.c:884: Little[slittle].y=212; ld bc, (_slittle) ld b, #0x00 ld l, c ld h, b add hl, hl add hl, hl add hl, bc ld de, #_Little add hl, de inc hl ld (hl), #0xd4 ;GCHASEc.c:885: SetSpriteColors(10+slittle,LittleColor); ld bc, #_LittleColor ld a,(#_slittle + 0) add a, #0x0a push bc push af inc sp call _SetSpriteColors pop af inc sp 00107$: ;GCHASEc.c:888: if ((j==1 || j==3 || j==5 || j==7) && j!=mj && PlayerState.collision==0) // If Joystick is used, and direction is not the same as previous direction ld a, -1 (ix) dec a jr Z,00113$ ld a, -1 (ix) sub a, #0x03 jr Z,00113$ ld a, -1 (ix) sub a, #0x05 jr Z,00113$ ld a, -1 (ix) sub a, #0x07 jr NZ,00109$ 00113$: ld iy, #_mj ld a, 0 (iy) sub a, -1 (ix) jr Z,00109$ ld a, (#(_PlayerState + 0x0002) + 0) or a, a jr NZ,00109$ ;GCHASEc.c:890: PlayerState.dirX=DirectionX[j]; // Modify Player X direction ld a, #<(_DirectionX) add a, -1 (ix) ld c, a ld a, #>(_DirectionX) adc a, #0x00 ld b, a ld a, (bc) ld (#(_PlayerState + 0x0008)),a ;GCHASEc.c:891: PlayerState.dirY=DirectionY[j]; // Modify Player Y Direction ld a, #<(_DirectionY) add a, -1 (ix) ld c, a ld a, #>(_DirectionY) adc a, #0x00 ld b, a ld a, (bc) ld (#(_PlayerState + 0x0009)),a ;GCHASEc.c:892: mj=j; // Save Joystick direction ld a, -1 (ix) ld 0 (iy), a ;GCHASEc.c:894: PT3FXPlay(4,5); ld de, #0x0504 push de call _PT3FXPlay pop af 00109$: ;GCHASEc.c:896: Player.pat=rotdir[mj]+PatternStep*4; // Set the Correct pattern to player. Depending of the Joystick direction ld a, #<(_rotdir) ld hl, #_mj add a, (hl) ld c, a ld a, #>(_rotdir) adc a, #0x00 ld b, a ld a, (bc) ld c, a ld a,(#_PatternStep + 0) add a, a add a, a add a, c ld (#(_Player + 0x0003)),a ;GCHASEc.c:898: Player.x+=PlayerState.dirX; // Move Player sprite to the direction X ld bc, #_Player + 2 ld a, (bc) ld hl, #(_PlayerState + 0x0008) + 0 ld e, (hl) add a, e ld (bc), a ;GCHASEc.c:899: Player.y+=PlayerState.dirY; // Move Player spriote to direction Y ld a, (#(_Player + 0x0001) + 0) ld hl, #(_PlayerState + 0x0009) + 0 ld c, (hl) add a, c ld (#(_Player + 0x0001)),a ;GCHASEc.c:900: if (PlayerState.dirY==1 && Player.y>210) ld a, (#(_PlayerState + 0x0009) + 0) dec a jr NZ,00116$ ld hl, #(_Player + 0x0001) + 0 ld c, (hl) ld a, #0xd2 sub a, c jr NC,00116$ ;GCHASEc.c:901: Player.y=0; ld hl, #(_Player + 0x0001) ld (hl), #0x00 00116$: ;GCHASEc.c:902: if (PlayerState.dirY==-1 && Player.y<1) ld a, (#(_PlayerState + 0x0009) + 0) inc a jr NZ,00119$ ld a, (#(_Player + 0x0001) + 0) sub a, #0x01 jr NC,00119$ ;GCHASEc.c:903: Player.y=210; ld hl, #(_Player + 0x0001) ld (hl), #0xd2 00119$: ;GCHASEc.c:905: RunStep++; ld hl, #_RunStep+0 inc (hl) ;GCHASEc.c:907: MoveEnemy(); // Check And Manage Enemy moves and Collision call _MoveEnemy ;GCHASEc.c:908: MoveLittle(); call _MoveLittle ;GCHASEc.c:910: SpriteOnScreen(); // Put All sprites on scrren call _SpriteOnScreen ;GCHASEc.c:911: FT_Wait(GAMESPEED); // Wait routine ld hl, #0x00b4 push hl call _FT_Wait pop af jp 00124$ 00122$: ;GCHASEc.c:916: j=0; xor a, a ld -1 (ix), a ;GCHASEc.c:917: mj=7; ld hl,#_mj + 0 ld (hl), #0x07 jp 00124$ 00126$: ;GCHASEc.c:920: Exit(0); xor a, a push af inc sp call _Exit inc sp ;GCHASEc.c:921: } inc sp pop ix ret .area _CODE .area _INITIALIZER .area _CABS (ABS)