; Star Tip 2 by Tim Follin. ; Printed in Your Sinclair program pistop ; in 1987. PWSTEP equ 10 PULSEMAX equ 10 ; default = 10 PULSELOW equ 40 ; must be => PULSEMAX! org $D000 MAIN DI ; default decay values ; LD HL,$3E8 ; LD HL,$0000 ; LD (decay9D5A),HL ; decay9D5A = E8 (232) decaycounter = 03 LD IX,songdata9D62 playloop: LD A,(IX+0) ; is it $FF? INC A ; no? play notes according to settings fetched previously ; note: imples that the song MUST start with $FF because ; there are no defaults put in settings area beforehand asm9C4F: JP NZ,prepareplaystep ; if sondata=$FF then reload play-step parameters INC IX ; step length, in play-cycles (number of repeats) LD H,(IX+1) LD L,(IX+0) LD (steplength),HL INC IX INC IX LD A,(IX+0) LD (attack9D5C),A ; attack LD A,(IX+1) LD (decay9D5A),A ; decay LD A,(IX+2) LD (decaypw),A INC IX INC IX INC IX JP playloop ; prepares data for a single play-step prepareplaystep: LD A,(decay9D5A) LD (decaycounter),A LD A,(attack9D5C) LD (attackcounter),A LD BC,(steplength) ; fetch pulse periods for each channel LD H,(IX+0) LD L,(IX+1) LD D,(IX+2) ; this is important for playstep routine -- value passwd in E defines ; how many times to play ch1-ch2-ch3 loop with NO CHANGES TO PULSE WIDTHS; ; in other words: this is the smallest quantum step for sound generation, ; a step above the actual speaker wiggling ; NOTE - this should be defined as constant since it's re-loaded into E just ; below "playnext" label LD E,PWSTEP ; 10 times LD A,$01 LD (pulsewidth),A ; starting pulse width LD (attackstate),A ; 1 = attack, it's boolean CALL playstep ; any key pressed? XOR A IN A,($FE) CPL AND $1F JP NZ,exit ; advance song data pointer INC IX INC IX INC IX ; $00 marks the end LD A,(IX+0) AND A JP NZ,playloop exit: EI RET ; the main play-step routine ; inputs: ; BC - play-step loop cycles ; H - pulse width for channel 1 ; L - pulse width for channel 2 ; D - pusle width for channel 3 ; E - number of times channels will play without chaning pulse widths ; note: E is playstep: PUSH BC ; fetch pulse width for channel and save in C LD A,(pulsewidth) LD C,A ; channel 1 ; any "high" pulse cycles left for channel 1? DEC H ; no - don't bother, play the next channel JR NZ,playch2 ; speaker up for C cycles XOR A LD B,C OUT ($FE),A DJNZ $ ; speaker down for PULSELOW-C cycles (default 16-C) LD A,PULSELOW OUT ($FE),A SUB C LD B,A DJNZ $ ; restore channel 1 pulse width in H LD H,(IX+0) playch2: ; the same behaviour goes for channel 2 -- check if pulse width is on, ; make a 16 "ticks" pulse, C "ticks" high and rest "low", then restore ; L register to hold pulse width (cycles) for channel 2 DEC L JR NZ,playch3 ; speaker up for C cycles XOR A OUT ($FE),A LD B,C DJNZ $ ; speaker down for PULSELOV-C cycles (default 16-C) LD A,PULSELOW OUT ($FE),A SUB C LD B,A DJNZ $ LD L,(IX+1) playch3: ; the same routine goes for channel 3, this time D holds channel's pulse width DEC D JR NZ,playnext XOR A OUT ($FE),A LD B,C DJNZ $ LD A,PULSELOW OUT ($FE),A SUB C LD B,A DJNZ $ LD D,(IX+2) playnext: ; repeat ch1-ch2-ch3 E times (default: 10) DEC E JP NZ,songtick ; reload ch1-ch2-ch3 counter LD E,PWSTEP ; are we doing decay? LD A,(attackstate) AND A JP Z,dodecay ; handle attack (pulse width gets wider) LD A,(attackcounter) DEC A LD (attackcounter),A JP NZ,songtick ; NZ - still in attack phase ; reload attack for next note LD A,(attack9D5C) LD (attackcounter),A ; increase pulse width (make notes louder) up to $0f (or PULSEMAX if you change it from $0f) LD A,(pulsewidth) INC A LD (pulsewidth),A ; has the pulsewidth reach it's maximum? CP PULSEMAX JP NZ,songtick ; no? continue as usual ; store pulse for decay phase DEC A ; PULSEMAX-1 LD (pulsewidth),A ; attack has ended, mark it XOR A LD (attackstate),A JP songtick ; handle decay (pulse width gets thiner) dodecay: LD A,(decaycounter) DEC A LD (decaycounter),A JP NZ,songtick ; NZ - still in decay phase LD A,(decay9D5A) LD (decaycounter),A ; decrement pulse width and check if sustain width is reached LD A,(pulsewidth) DEC A LD B,A ; did we reach the decay pulse width (volume)? LD A,(decaypw) CP B JP Z,songtick ; yes - do not change pulse width anymore ; no - continue the decay LD A,B LD (pulsewidth),A ; play note until steplength (BC) is 0 songtick: POP BC DEC BC LD A,B OR C JP NZ,playstep RET steplength: dw $00,$00 pulsewidth: db $0C decay9D5A: db $80 decaycounter: db $80 attack9D5C: db $00 attackcounter: db $00 ; attack or decay? boolean attackstate: db $00 ; 0 = decay, 1 = attach ; decay pulse width - min=0 max=PULSEMAX (default 15) decaypw: db $01 ; unsused variables! var9D60: db $00 var9D61: db $00 songdata9D62: db $ff ; change vaules db $00,$ff ; steplength HL=0960 (2400) db $66; attack db $66; decay db $00; sustain pulse width ($01-$0c) db $52,$00,$00 db $52,$00,$00 db $52,$52,$00 db $52,$52,$6d db $52,$6d,$3d db $52,$6d,$41 db $52,$6d,$49 db $52,$6d,$00 db $52,$6d,$3d db $52,$6d,$41 db $52,$6d,$49 db $52,$6d,$00 db $52,$52,$52 db $52,$6d,$3d db $52,$6d,$41 db $52,$6d,$49 db $52,$6d,$00 db $6d,$6d,$6d db 0,0 songdataORIG: db $ff, $60, $09, $02 ; 9d62 ff 60 09 02 ts db $01, $0a, $41, $52 ; 9d66 01 0a 41 52 ts db $6d, $3d, $52, $6d ; 9d6a 6d 3d 52 6d ts db $41, $52, $6d, $49 ; 9d6e 41 52 6d 49 ts db $52, $6d, $ff, $00 ; 9d72 52 6d ff 00 ts db $96, $01, $96, $01 ; 9d76 96 01 96 01 ts db $57, $62, $83, $ff ; 9d7a 57 62 83 ff ts db $00, $96, $fa, $00 ; 9d7e 00 96 fa 00 ts db $0f, $57, $62, $83 ; 9d82 0f 57 62 83 ts db $ff, $60, $09, $04 ; 9d86 ff 60 09 04 ts db $01, $0a, $53, $5d ; 9d8a 01 0a 53 5d ts db $7c, $46, $5d, $7c ; 9d8e 7c 46 5d 7c ts db $3e, $5d, $7c, $46 ; 9d92 3e 5d 7c 46 ts db $5d, $7c, $5d, $5d ; 9d96 5d 7c 5d 5d ts db $7c, $63, $5d, $7c ; 9d9a 7c 63 5d 7c ts db $5d, $53, $7c, $63 ; 9d9e 5d 53 7c 63 ts db $53, $7c, $6e, $53 ; 9da2 53 7c 6e 53 ts db $7c, $7c, $53, $7c ; 9da6 7c 7c 53 7c ts db $8c, $53, $7c, $7c ; 9daa 8c 53 7c 7c ts db $53, $7c, $6f, $53 ; 9dae 53 7c 6f 53 ts db $7c, $53, $53, $7c ; 9db2 7c 53 53 7c ts db $ff, $60, $09, $04 ; 9db6 ff 60 09 04 ts db $01, $0a, $64, $85 ; 9dba 01 0a 64 85 ts db $c8, $59, $85, $c8 ; 9dbe c8 59 85 c8 ts db $54, $85, $c8, $42 ; 9dc2 54 85 c8 42 ts db $84, $c7, $54, $85 ; 9dc6 84 c7 54 85 ts db $c8, $59, $85, $c8 ; 9dca c8 59 85 c8 ts db $64, $85, $c8, $70 ; 9dce 64 85 c8 70 ts db $86, $c8, $4b, $96 ; 9dd2 86 c8 4b 96 ts db $e1, $54, $96, $e1 ; 9dd6 e1 54 96 e1 ts db $5f, $96, $e1, $64 ; 9dda 5f 96 e1 64 ts db $96, $e1, $71, $96 ; 9dde 96 e1 71 96 ts db $e1, $7f, $97, $e1 ; 9de2 e1 7f 97 e1 ts db $71, $96, $e1, $64 ; 9de6 71 96 e1 64 ts db $96, $e1, $4e, $9d ; 9dea 96 e1 4e 9d ts db $eb, $58, $9d, $eb ; 9dee eb 58 9d eb ts db $4e, $9d, $eb, $42 ; 9df2 4e 9d eb 42 ts db $9c, $ea, $46, $9c ; 9df6 9c ea 46 9c ts db $eb, $58, $9c, $eb ; 9dfa eb 58 9c eb ts db $4e, $9d, $eb, $58 ; 9dfe 4e 9d eb 58 ts db $9d, $eb, $4e, $9d ; 9e02 9d eb 4e 9d ts db $eb, $63, $9d, $eb ; 9e06 eb 63 9d eb ts db $69, $9d, $eb, $84 ; 9e0a 69 9d eb 84 ts db $9d, $eb, $76, $9d ; 9e0e 9d eb 76 9d ts db $eb, $76, $9d, $eb ; 9e12 eb 76 9d eb ts db $76, $9d, $eb, $76 ; 9e16 76 9d eb 76 ts db $9d, $eb, $58, $63 ; 9e1a 9d eb 58 63 ts db $c7, $58, $53, $c6 ; 9e1e c7 58 53 c6 ts db $57, $41, $c5, $57 ; 9e22 57 41 c5 57 ts db $37, $c3, $58, $63 ; 9e26 37 c3 58 63 ts db $c7, $58, $53, $c6 ; 9e2a c7 58 53 c6 ts db $57, $41, $c5, $57 ; 9e2e 57 41 c5 57 ts db $37, $c3, $53, $63 ; 9e32 37 c3 53 63 ts db $c7, $53, $53, $c6 ; 9e36 c7 53 53 c6 ts db $53, $41, $c5, $53 ; 9e3a 53 41 c5 53 ts db $37, $c3, $53, $63 ; 9e3e 37 c3 53 63 ts db $c7, $53, $53, $c6 ; 9e42 c7 53 53 c6 ts db $53, $41, $c5, $53 ; 9e46 53 41 c5 53 ts db $37, $c3, $63, $63 ; 9e4a 37 c3 63 63 ts db $df, $63, $5e, $df ; 9e4e df 63 5e df ts db $63, $4a, $df, $63 ; 9e52 63 4a df 63 ts db $3e, $df, $63, $63 ; 9e56 3e df 63 63 ts db $df, $63, $5e, $df ; 9e5a df 63 5e df ts db $63, $4a, $df, $63 ; 9e5e 63 4a df 63 ts db $3e, $df, $5d, $63 ; 9e62 3e df 5d 63 ts db $df, $5d, $5e, $df ; 9e66 df 5d 5e df ts db $5d, $4a, $df, $5d ; 9e6a 5d 4a df 5d ts db $3e, $df, $5d, $63 ; 9e6e 3e df 5d 63 ts db $df, $5d, $5e, $df ; 9e72 df 5d 5e df ts db $5d, $4a, $df, $5d ; 9e76 5d 4a df 5d ts db $3e, $df, $6f, $63 ; 9e7a 3e df 6f 63 ts db $c7, $6f, $53, $c6 ; 9e7e c7 6f 53 c6 ts db $6f, $41, $c5, $6f ; 9e82 6f 41 c5 6f ts db $37, $c3, $84, $63 ; 9e86 37 c3 84 63 ts db $c7, $84, $53, $c6 ; 9e8a c7 84 53 c6 ts db $84, $41, $c5, $84 ; 9e8e 84 41 c5 84 ts db $37, $c3, $7d, $63 ; 9e92 37 c3 7d 63 ts db $df, $7d, $5e, $df ; 9e96 df 7d 5e df ts db $7d, $4a, $df, $7d ; 9e9a 7d 4a df 7d ts db $3e, $df, $94, $63 ; 9e9e 3e df 94 63 ts db $df, $94, $5e, $df ; 9ea2 df 94 5e df ts db $94, $4a, $df, $94 ; 9ea6 94 4a df 94 ts db $3e, $df, $84, $63 ; 9eaa 3e df 84 63 ts db $c7, $84, $53, $c6 ; 9eae c7 84 53 c6 ts db $84, $41, $c5, $84 ; 9eb2 84 41 c5 84 ts db $37, $c3, $6f, $63 ; 9eb6 37 c3 6f 63 ts db $c7, $6f, $53, $c6 ; 9eba c7 6f 53 c6 ts db $6f, $41, $c5, $6f ; 9ebe 6f 41 c5 6f ts db $37, $c3, $63, $63 ; 9ec2 37 c3 63 63 ts db $c7, $63, $53, $c6 ; 9ec6 c7 63 53 c6 ts db $63, $41, $c5, $63 ; 9eca 63 41 c5 63 ts db $37, $c3, $63, $63 ; 9ece 37 c3 63 63 ts db $c7, $63, $53, $c6 ; 9ed2 c7 63 53 c6 ts db $63, $41, $c5, $63 ; 9ed6 63 41 c5 63 ts db $37, $c3, $63, $63 ; 9eda 37 c3 63 63 ts db $c7, $5e, $53, $c6 ; 9ede c7 5e 53 c6 ts db $63, $41, $c5, $5e ; 9ee2 63 41 c5 5e ts db $37, $c3, $63, $63 ; 9ee6 37 c3 63 63 ts db $c7, $5e, $53, $c6 ; 9eea c7 5e 53 c6 ts db $63, $41, $c5, $5e ; 9eee 63 41 c5 5e ts db $37, $c3, $5d, $5d ; 9ef2 37 c3 5d 5d ts db $d2, $75, $58, $d2 ; 9ef6 d2 75 58 d2 ts db $5c, $45, $cf, $58 ; 9efa 5c 45 cf 58 ts db $3a, $d0, $5d, $5d ; 9efe 3a d0 5d 5d ts db $d2, $75, $58, $d2 ; 9f02 d2 75 58 d2 ts db $5c, $45, $cf, $58 ; 9f06 5c 45 cf 58 ts db $3a, $d0, $5d, $5d ; 9f0a 3a d0 5d 5d ts db $d2, $75, $58, $d2 ; 9f0e d2 75 58 d2 ts db $5c, $45, $cf, $58 ; 9f12 5c 45 cf 58 ts db $3a, $d0, $5c, $5c ; 9f16 3a d0 5c 5c ts db $8b, $75, $58, $8b ; 9f1a 8b 75 58 8b ts db $5c, $45, $8b, $58 ; 9f1e 5c 45 8b 58 ts db $3a, $8b, $63, $63 ; 9f22 3a 8b 63 63 ts db $de, $63, $5e, $de ; 9f26 de 63 5e de ts db $63, $4a, $dd, $62 ; 9f2a 63 4a dd 62 ts db $3e, $dc, $63, $63 ; 9f2e 3e dc 63 63 ts db $de, $63, $5e, $de ; 9f32 de 63 5e de ts db $63, $4a, $6f, $62 ; 9f36 63 4a 6f 62 ts db $3e, $dc, $63, $63 ; 9f3a 3e dc 63 63 ts db $94, $63, $5e, $f8 ; 9f3e 94 63 5e f8 ts db $63, $4a, $94, $62 ; 9f42 63 4a 94 62 ts db $3e, $f8, $63, $63 ; 9f46 3e f8 63 63 ts db $f8, $63, $5e, $f8 ; 9f4a f8 63 5e f8 ts db $63, $4a, $f8, $62 ; 9f4e 63 4a f8 62 ts db $3e, $f8, $ff, $60 ; 9f52 3e f8 ff 60 ts db $09, $01, $01, $0d ; 9f56 09 01 01 0d ts db $63, $63, $f8, $63 ; 9f5a 63 63 f8 63 ts db $5e, $f8, $63, $4a ; 9f5e 5e f8 63 4a ts db $f8, $62, $3e, $f8 ; 9f62 f8 62 3e f8 ts db $63, $63, $f8, $63 ; 9f66 63 63 f8 63 ts db $5e, $f8, $63, $4a ; 9f6a 5e f8 63 4a ts db $f8, $62, $3e, $f8 ; 9f6e f8 62 3e f8 ts db $6f, $63, $f8, $6f ; 9f72 6f 63 f8 6f ts db $5e, $f8, $6f, $4a ; 9f76 5e f8 6f 4a ts db $f8, $6f, $3e, $f8 ; 9f7a f8 6f 3e f8 ts db $6f, $63, $f8, $6f ; 9f7e 6f 63 f8 6f ts db $5e, $f8, $6f, $4a ; 9f82 5e f8 6f 4a ts db $f8, $6f, $3e, $f8 ; 9f86 f8 6f 3e f8 ts db $ff, $c0, $12, $01 ; 9f8a ff c0 12 01 ts db $01, $0d, $4a, $59 ; 9f8e 01 0d 4a 59 ts db $de, $53, $63, $dc ; 9f92 de 53 63 dc ts db $59, $6f, $de, $53 ; 9f96 59 6f de 53 ts db $63, $dc, $63, $7c ; 9f9a 63 dc 63 7c ts db $f9, $58, $6f, $f9 ; 9f9e f9 58 6f f9 ts db $4a, $58, $f9, $58 ; 9fa2 4a 58 f9 58 ts db $6f, $f9, $ff, $60 ; 9fa6 6f f9 ff 60 ts db $09, $01, $01, $0d ; 9faa 09 01 01 0d ts db $57, $68, $83, $68 ; 9fae 57 68 83 68 ts db $68, $83, $83, $68 ; 9fb2 68 83 83 68 ts db $83, $62, $68, $83 ; 9fb6 83 62 68 83 ts db $68, $68, $83, $83 ; 9fba 68 68 83 83 ts db $68, $83, $62, $6f ; 9fbe 68 83 62 6f ts db $94, $6f, $6f, $94 ; 9fc2 94 6f 6f 94 ts db $94, $6f, $94, $58 ; 9fc6 94 6f 94 58 ts db $6f, $94, $6f, $6f ; 9fca 6f 94 6f 6f ts db $94, $94, $6f, $94 ; 9fce 94 94 6f 94 ts db $57, $68, $83, $68 ; 9fd2 57 68 83 68 ts db $68, $83, $83, $68 ; 9fd6 68 83 83 68 ts db $83, $62, $68, $83 ; 9fda 83 62 68 83 ts db $68, $68, $83, $83 ; 9fde 68 68 83 83 ts db $68, $83, $62, $6f ; 9fe2 68 83 62 6f ts db $94, $6f, $6f, $94 ; 9fe6 94 6f 6f 94 ts db $94, $6f, $94, $76 ; 9fea 94 6f 94 76 ts db $6f, $94, $6f, $6f ; 9fee 6f 94 6f 6f ts db $94, $94, $6f, $94 ; 9ff2 94 94 6f 94 ts db $ff, $60, $09, $01 ; 9ff6 ff 60 09 01 ts db $1e, $01, $6f, $94 ; 9ffa 1e 01 6f 94 ts db $de, $6f, $94, $de ; 9ffe de 6f 94 de ts db $6f, $94, $de, $6f ; a002 6f 94 de 6f ts db $94, $de, $7d, $a6 ; a006 94 de 7d a6 ts db $de, $6f, $94, $de ; a00a de 6f 94 de ts db $7d, $a6, $de, $6f ; a00e 7d a6 de 6f ts db $94, $de, $5d, $8c ; a012 94 de 5d 8c ts db $de, $6f, $8c, $de ; a016 de 6f 8c de ts db $6f, $8c, $de, $6f ; a01a 6f 8c de 6f ts db $8c, $de, $7d, $8c ; a01e 8c de 7d 8c ts db $de, $6f, $8c, $de ; a022 de 6f 8c de ts db $5d, $8c, $de, $6f ; a026 5d 8c de 6f ts db $8c, $de, $53, $7c ; a02a 8c de 53 7c ts db $de, $63, $7c, $de ; a02e de 63 7c de ts db $7c, $7c, $de, $95 ; a032 7c 7c de 95 ts db $7c, $de, $7c, $7c ; a036 7c de 7c 7c ts db $de, $63, $7c, $de ; a03a de 63 7c de ts db $53, $7c, $de, $5d ; a03e 53 7c de 5d ts db $7c, $de, $63, $7c ; a042 7c de 63 7c ts db $de, $7c, $7c, $de ; a046 de 7c 7c de ts db $6f, $6f, $de, $6f ; a04a 6f 6f de 6f ts db $6f, $de, $6f, $6f ; a04e 6f de 6f 6f ts db $de, $6f, $6f, $de ; a052 de 6f 6f de ts db $6f, $6f, $de, $6f ; a056 6f 6f de 6f ts db $6f, $de, $6f, $6f ; a05a 6f de 6f 6f ts db $de, $6f, $6f, $de ; a05e de 6f 6f de ts db $6f, $6f, $de, $ff ; a062 6f 6f de ff ts db $c0, $12, $01, $00 ; a066 c0 12 01 00 ts db $00, $e0, $e1, $e2 ; a06a 00 e0 e1 e2 ts db $e0, $e1, $e2, $ff ; a06e e0 e1 e2 ff ts db $60, $09, $01, $00 ; a072 60 09 01 00 ts db $28, $5d, $7c, $93 ; a076 28 5d 7c 93 ts db $e0, $e1, $e2, $e0 ; a07a e0 e1 e2 e0 ts db $e1, $e2, $5d, $7c ; a07e e1 e2 5d 7c ts db $93, $e0, $e1, $e2 ; a082 93 e0 e1 e2 ts db $e0, $e1, $e2, $5d ; a086 e0 e1 e2 5d ts db $7c, $93, $e0, $e1 ; a08a 7c 93 e0 e1 ts db $e2, $ff, $80, $25 ; a08e e2 ff 80 25 ts db $01, $00, $1e, $62 ; a092 01 00 1e 62 ts db $7c, $a5, $ff, $60 ; a096 7c a5 ff 60 ts db $09, $01, $00, $02 ; a09a 09 01 00 02 ts db $3d, $7a, $b8, $45 ; a09e 3d 7a b8 45 ts db $6e, $b8, $49, $7a ; a0a2 6e b8 49 7a ts db $b8, $36, $6d, $a3 ; a0a6 b8 36 6d a3 ts db $3d, $61, $a3, $41 ; a0aa 3d 61 a3 41 ts db $6d, $a3, $3d, $7a ; a0ae 6d a3 3d 7a ts db $b8, $45, $6e, $b8 ; a0b2 b8 45 6e b8 ts db $49, $7a, $b8, $36 ; a0b6 49 7a b8 36 ts db $6d, $a3, $3d, $61 ; a0ba 6d a3 3d 61 ts db $a3, $41, $6d, $a3 ; a0be a3 41 6d a3 ts db $ff, $c0, $12, $01 ; a0c2 ff c0 12 01 ts db $00, $28, $e0, $e1 ; a0c6 00 28 e0 e1 ts db $e2, $e0, $e1, $e2 ; a0ca e2 e0 e1 e2 ts db $ff, $60, $09, $01 ; a0ce ff 60 09 01 ts db $00, $28, $5d, $7c ; a0d2 00 28 5d 7c ts db $93, $e0, $e1, $e2 ; a0d6 93 e0 e1 e2 ts db $e0, $e1, $e2, $5d ; a0da e0 e1 e2 5d ts db $7c, $93, $e0, $e1 ; a0de 7c 93 e0 e1 ts db $e2, $e0, $e1, $e2 ; a0e2 e2 e0 e1 e2 ts db $5d, $7c, $93, $e0 ; a0e6 5d 7c 93 e0 ts db $e1, $e2, $ff, $80 ; a0ea e1 e2 ff 80 ts db $25, $01, $00, $1e ; a0ee 25 01 00 1e ts db $52, $6d, $82, $ff ; a0f2 52 6d 82 ff ts db $60, $09, $01, $00 ; a0f6 60 09 01 00 ts db $02, $3d, $7a, $b8 ; a0fa 02 3d 7a b8 ts db $45, $6e, $b8, $49 ; a0fe 45 6e b8 49 ts db $7a, $b8, $36, $6d ; a102 7a b8 36 6d ts db $a3, $3d, $61, $a3 ; a106 a3 3d 61 a3 ts db $41, $6d, $a3, $45 ; a10a 41 6d a3 45 ts db $8a, $cf, $4e, $7c ; a10e 8a cf 4e 7c ts db $cf, $53, $8b, $d0 ; a112 cf 53 8b d0 ts db $3d, $7a, $b8, $45 ; a116 3d 7a b8 45 ts db $6e, $b8, $49, $7a ; a11a 6e b8 49 7a ts db $b8, $4e, $9c, $ea ; a11e b8 4e 9c ea ts db $58, $8c, $ea, $5e ; a122 58 8c ea 5e ts db $9d, $eb, $45, $8a ; a126 9d eb 45 8a ts db $cf, $4e, $7c, $cf ; a12a cf 4e 7c cf ts db $53, $8b, $d0, $3d ; a12e 53 8b d0 3d ts db $7a, $b8, $45, $6e ; a132 7a b8 45 6e ts db $b8, $49, $7a, $b8 ; a136 b8 49 7a b8 ts db $36, $6d, $a3, $3d ; a13a 36 6d a3 3d ts db $61, $a3, $41, $6d ; a13e 61 a3 41 6d ts db $a3, $30, $60, $90 ; a142 a3 30 60 90 ts db $36, $56, $90, $39 ; a146 36 56 90 39 ts db $60, $90, $36, $56 ; a14a 60 90 36 56 ts db $90, $30, $60, $90 ; a14e 90 30 60 90 ts db $36, $56, $90, $39 ; a152 36 56 90 39 ts db $60, $90, $36, $56 ; a156 60 90 36 56 ts db $90, $30, $60, $90 ; a15a 90 30 60 90 ts db $36, $56, $90, $39 ; a15e 36 56 90 39 ts db $60, $90, $36, $56 ; a162 60 90 36 56 ts db $90, $30, $60, $90 ; a166 90 30 60 90 ts db $36, $56, $90, $39 ; a16a 36 56 90 39 ts db $60, $90, $36, $56 ; a16e 60 90 36 56 ts db $90, $ff, $00, $96 ; a172 90 ff 00 96 ts db $00, $80, $01, $39 ; a176 00 80 01 39 ts db $60, $90, $00 ; a17a 60 90 00 t