;ASSEMBLE IT! ;TND Swinging Intro ;Programmed by Richard Bayliss ;Charset from FontTime by Unreal ;Logo by JSL ;Music by Richard Bayliss MusicInit = $1000 MusicPlay = $1003 matrix = $3000 BGCOLOUR = $00 MCOLOUR1 = $06 MCOLOUR2 = $0e CHARCOLOUR = $0b ;In exomizer set jump address to $3400 !to "intro.prg",cbm *=$0800 ;Import charset ;CHARS (Created in C64Studio's char editor) ;and exported as data). Alternatively for a ;different charset, you can always delete ;this segment of data and replace it with ;the !BINARY "charprog.prg",,2 or !BINARY ;"rawfile.bin" command. !byte $00,$00,$00,$00,$00,$00,$00,$00 !byte $7c,$c6,$c6,$fe,$e6,$e6,$e6,$00 !byte $7c,$c6,$c6,$fe,$e6,$e6,$fc,$00 !byte $7c,$c6,$c0,$e0,$e6,$e6,$fc,$00 !byte $7c,$c6,$c6,$e6,$e6,$e6,$fc,$00 !byte $7c,$c6,$c6,$fe,$e0,$e6,$7c,$00 !byte $7c,$c6,$c0,$fe,$e0,$e0,$e0,$00 !byte $7c,$c6,$c6,$e0,$ee,$e6,$fc,$00 !byte $64,$c6,$c6,$fe,$e6,$e6,$e4,$00 !byte $38,$3c,$3c,$3c,$3c,$3c,$38,$00 !byte $7c,$06,$06,$e6,$e6,$e6,$fc,$00 !byte $44,$c6,$c6,$fc,$e6,$e6,$e6,$00 !byte $e0,$c0,$c0,$e0,$e0,$e6,$fc,$00 !byte $44,$fe,$d6,$c6,$c6,$e6,$ee,$00 !byte $7c,$c6,$c6,$e6,$e6,$e6,$e4,$00 !byte $7c,$c6,$c6,$c6,$e6,$e6,$7c,$00 !byte $7c,$c6,$c6,$fc,$e0,$e0,$e0,$00 !byte $7c,$c6,$c6,$e6,$ee,$ee,$7e,$00 !byte $7c,$c6,$c6,$fc,$e6,$e6,$e4,$00 !byte $7c,$c6,$c0,$fc,$06,$e6,$fc,$00 !byte $7c,$06,$06,$06,$0e,$0e,$0c,$00 !byte $44,$c6,$c6,$e6,$e6,$e6,$fc,$00 !byte $64,$e6,$e6,$e6,$e6,$fe,$3c,$00 !byte $64,$c6,$c6,$e6,$e6,$fe,$e4,$00 !byte $64,$c6,$c6,$7c,$e6,$e6,$e4,$00 !byte $44,$c6,$c6,$7e,$06,$e6,$fc,$00 !byte $7c,$06,$06,$7c,$e0,$e0,$fc,$00 !byte $3c,$5a,$5a,$7e,$5a,$66,$3c,$00 !byte $3c,$5a,$5a,$7e,$66,$5a,$3c,$00 !byte $3c,$72,$7a,$7e,$7e,$7e,$3c,$00 !byte $18,$3c,$7e,$18,$18,$18,$18,$00 !byte $00,$20,$7e,$fe,$7e,$20,$00,$00 !byte $00,$00,$00,$00,$00,$00,$00,$00 !byte $18,$1c,$1c,$1c,$1c,$00,$1c,$00 !byte $66,$66,$22,$00,$00,$00,$00,$00 !byte $66,$66,$44,$00,$00,$00,$00,$00 !byte $7c,$d6,$d0,$7c,$16,$d6,$7c,$00 !byte $c2,$c6,$0c,$18,$30,$66,$c6,$00 !byte $70,$d8,$70,$d8,$d8,$cc,$7e,$00 !byte $30,$30,$10,$00,$00,$00,$00,$00 !byte $3c,$60,$60,$70,$70,$70,$3c,$00 !byte $3c,$06,$06,$0e,$0e,$0e,$3c,$00 !byte $18,$1c,$14,$10,$70,$f0,$60,$00 !byte $00,$18,$18,$7e,$7e,$18,$18,$00 !byte $00,$00,$00,$00,$60,$60,$c0,$00 !byte $00,$00,$00,$7e,$7e,$00,$00,$00 !byte $00,$00,$00,$00,$00,$60,$60,$00 !byte $02,$06,$0c,$18,$30,$60,$c0,$00 !byte $7c,$ce,$de,$f6,$e6,$e6,$7c,$00 !byte $18,$1c,$1c,$1c,$1c,$1c,$1c,$00 !byte $7c,$c6,$06,$7c,$e0,$e6,$fe,$00 !byte $7c,$c6,$c6,$1c,$06,$e6,$fc,$00 !byte $1c,$2c,$6c,$fe,$0c,$0c,$0c,$00 !byte $fe,$c6,$c0,$fc,$06,$06,$fc,$00 !byte $7c,$c6,$c0,$fc,$e6,$e6,$7c,$00 !byte $7c,$c6,$06,$1e,$06,$0e,$0e,$00 !byte $7c,$c6,$c6,$fe,$e6,$e6,$7c,$00 !byte $7c,$c6,$c6,$7e,$06,$e6,$7c,$00 !byte $00,$18,$18,$00,$00,$18,$18,$00 !byte $00,$18,$18,$00,$18,$18,$30,$00 !byte $0c,$18,$30,$60,$30,$18,$0c,$00 !byte $00,$7e,$7e,$00,$7e,$7e,$00,$00 !byte $30,$18,$0c,$06,$0c,$18,$30,$00 !byte $7c,$c6,$c6,$1c,$18,$00,$18,$00 *=$1000 ;Import music (Can be any tune at $1000 - Requires ,,2 prefix) !bin "bin/music.prg",,2 !byte 0 ;Import logo charset program (Requires ,,2 prefix) *=$2800 !bin "bin/logocharset.prg",,2 ;Import logo 64 col matrix (Also requires ,,2 prefix) *=$3000 !bin "bin/logomatrix.prg",,2 *=$3400 sei ;Kernal on lda #$37 sta $01 loop lda $a2 ;Grab a random byte and #$07 ;8 max... sta SetupPointer ;Setup colour scheme from a random byte store to ;the SetupPointer ldx SetupPointer lda ColourTableRead1,x sta SETBG1+1 lda ColourTableRead2,x sta SETBG2+1 lda ColourTableRead3,x sta SETBG3+1 lda ColourTableRead4,x sta CHARCOLOURSET+1 jmp main SetupPointer !byte 0 ;BGCOLOUR = $00 ;MCOLOUR1 = $06 ;MCOLOUR2 = $0e ;Sequence of bytes for colours to be read from the table ;to give a specific colour scheme. ColourTableRead1 !byte $09,$00,$0b,$02,$09,$06,$0b,$00 ColourTableRead2 !byte $08,$06,$0c,$0a,$05,$04,$03,$02 ColourTableRead3 !byte $0a,$0e,$0f,$07,$0d,$0e,$0d,$0a ColourTableRead4 !byte $0f,$0b,$09,$09,$09,$0b,$09,$0f main ;Initialise scroll text lda #ScrollText sta messread+1 stx messread+2 ;PAL/NTSC convert to system pointer lda $02a6 sta system ;Generate colour scheme, and background SETBG1 lda #BGCOLOUR sta $d020 sta $d021 ;Clear the screen, and also fill with the ;specific char colour ldx #$00 .FillScreen lda #$20 sta $0400,x sta $0500,x sta $0600,x sta $06e8,x CHARCOLOURSET ;Selfmod pointer for colouring lda #CHARCOLOUR sta $d800,x sta $d900,x sta $da00,x sta $dae8,x inx bne .FillScreen ldx #$00 ;Put in presentation lines .PutLines lda Line1,x ;Proudly presents sta $0400+240,x lda Line2,x ;Name of program sta $0400+480,x lda #$0b ;Fill presentation lines in dark grey sta $d800+240,x sta $d800+480,x inx cpx #$28 bne .PutLines lda #BGCOLOUR ;Set background colours to pointers sta colourstore ;which are read in the raster splits sta colourstore2 ;inside the interrupt sta colourstore3 ldx #$00 ;Initialise colour pointer stx colourpointer lda #$1a ;Set charset sta $d018 lda #$18 ;Screen multicolour mode enabled sta $d016 ;Set charset multi colours for logo SETBG2 lda #MCOLOUR1 sta $d022 SETBG3 lda #MCOLOUR2 sta $d023 ;Setup the interrupts lda #IRQ1 sta $0314 stx $0315 lda #$7f sta $dc0d lda #$00 sta $d012 lda #$1b sta $d011 lda #$01 sta $d01a ;Initialise the music lda #$00 jsr MusicInit cli ;The main intro loop. introsynchronize everything then ;call subroutines and loop, unless SPACEBAR has been ;pressed. .MainLoop lda #$00 ;The raster introsync timer sta introsync cmp introsync beq *-3 jsr SwingLogo ;Subroutine to swing logo 1 jsr SwingLogo2 ;Subroutine to swing logo 2 jsr SwingLogo3 ;Subroutine to swing logo 3 jsr SwingLogo4 ;Subroutine to swing logo 4 jsr Scroll ;Subroutine to scroll text jsr ColourFade ;Subroutine to fade colours7 lda $dc01 ;Check for spacebar read / joy port 1 lsr lsr lsr lsr lsr bcs .MainLoop ;No spacebar command, loop all code jmp .Transfer ;Else jump to relocator/transfer code jmp .MainLoop ;Interrupt 1 IRQ1 inc $d019 lda $dc0d sta $dd0d lda #$00 sta $d012 lda #$12 sta $d018 ;Text charset lda #8 sta $d016 ;No charset multicolour lda #IRQ2 sta $0314 stx $0315 jmp $ea7e ;Jump interrupt IRQ2 inc $d019 lda #$3a ;Raster position 1 end sta $d012 lda #$12 sta $d018 ;Text charset (again) lda #$08 sta $d016 ;No charset multicolour lda #IRQ3 sta $0314 stx $0315 jmp $ea7e ;Third interrupt IRQ3 inc $d019 lda #$62 ;Raster position 2 end sta $d012 lda #$1a sta $d018 ;Logo charset lda swingstore ;Smooth swing pointer control sta $d016 ;stored to screen HPOS lda #IRQ4 sta $0314 stx $0315 jmp $ea7e ;Fourth interrupt IRQ4 inc $d019 lda #$6a ;Raster position 3 end sta $d012 lda #$12 sta $d018 ;Standard charset - 1 liner lda #$08 sta $d016 ;No multicolour charset lda #IRQ5 sta $0314 stx $0315 jmp $ea7e ;Fith interrupt IRQ5 inc $d019 lda #$92 ;Raster position 4 end sta $d012 lda #$1a sta $d018 ;Logo charset lda swingstore2 ;Smooth swing pointer to screen HPOS sta $d016 lda #IRQ6 sta $0314 stx $0315 jmp $ea7e ;Interrupt 6 IRQ6 inc $d019 lda #$9a ;raster position 5 end sta $d012 lda #$12 ;1 Liner charset sta $d018 lda #$08 sta $d016 ;Static text lda #IRQ7 sta $0314 stx $0315 jmp $ea7e ;Interrupt 7 IRQ7 inc $d019 lda #$c2 ;Raster position 6 end sta $d012 lda #$1a ;Logo charset sta $d018 lda swingstore3 ;Logo swing 3 smooth hpos control sta $d016 lda #IRQ8 sta $0314 stx $0315 jmp $ea7e ;Interrupt 8 IRQ8 inc $d019 lda #$ca ;Raster position 7 end sta $d012 lda #$12 ;Scrolltext charset sta $d018 lda scrollpointer ;Smooth scroll hpos control sta $d016 lda #IRQ9 sta $0314 stx $0315 jmp $ea7e ;Interrupt 9 IRQ9 inc $d019 lda #$f2 ;raster position 8 end sta $d012 lda #$1a ;Logo charset sta $d018 lda swingstore4 ;Swinging logo smooth hpos control sta $d016 lda #IRQ1 sta $0314 stx $0315 ;PAL NTSC music and sync player lda #$01 sta introsync lda system cmp #$01 beq pal inc musicdelay lda musicdelay cmp #$06 beq resetmusptr pal jsr MusicPlay loopirq jmp $ea7e resetmusptr lda #0 sta musicdelay jmp loopirq ;Logo swinging subroutine SwingLogo lda #$ff ;Grab current position of swing pointer sec ldx swingpointer sbc sinus,x ;Read sinus, and do a bit of lsr ;conversion to screen position code lsr lsr tax ;Transfer pointer to X ldy #$00 ;New loop for screen drawing screen lda matrix+0,x ;Pick first row of logo matrix sta $0400+40,y ;store it to screen row position lda matrix+64,x ;Pick second row of logo matrix sta $0400+80,y ;store it to screen row position 2 lda matrix+64*2,x ;Pick third row of logo matrix sta $0400+120,y ;store it to third row position 3 lda matrix+64*3,x ;Pick forth row of logo matrix sta $0400+160,y ;store it to forth row position 4 lda matrix+64*4,x ;.... and so on! sta $0400+200,y inx ;Increment value of X (Which will use full 256 bytes) iny ;Increment value of Y (Representing the size of the screen) cpy #$28 ;40 columns ... bne screen ;not 40 coluums yet ... loop to screen ldx swingpointer ;Load swing pointer lda sinus,x ;read sinus table and #$07 ;convert to values read (0 to 7) ora #$d0 ;and screen multicolour sta swingstore ;store the new screen horizontal position control value inc swingpointer ;move to the next value in the swing pointer rts ;Second logo swing (Similar as above - need not to be ;commented again. Only a different screen position for logo SwingLogo2 lda #$ff sec ldx swingpointer2 sbc sinus2,x lsr lsr lsr tax ldy #$00 screen2 lda matrix+0,x sta $0400+280,y lda matrix+64,x sta $0400+320,y lda matrix+64*2,x sta $0400+360,y lda matrix+64*3,x sta $0400+400,y lda matrix+64*4,x sta $0400+440,y inx iny cpy #$28 bne screen2 ldx swingpointer2 lda sinus2,x and #$07 ora #$d0 sta swingstore2 inc swingpointer2 rts ;Third logo swing (Similar as above - need not to be ;commented again. Only a different screen position for logo SwingLogo3 lda #$ff sec ldx swingpointer3 sbc sinus3,x lsr lsr lsr tax ldy #$00 screen3 lda matrix+0,x sta $0400+520,y lda matrix+64,x sta $0400+560,y lda matrix+64*2,x sta $0400+600,y lda matrix+64*3,x sta $0400+640,y lda matrix+64*4,x sta $0400+680,y inx iny cpy #$28 bne screen3 ldx swingpointer3 lda sinus3,x and #$07 ora #$d0 sta swingstore3 inc swingpointer3 rts ;Forth logo swing (Similar as above - need not to be ;commented again. Only a different screen position for logo SwingLogo4 lda #$ff sec ldx swingpointer4 sbc sinus4,x lsr lsr lsr tax ldy #$00 screen4 lda matrix+0,x sta $0400+760,y lda matrix+64,x sta $0400+800,y lda matrix+64*2,x sta $0400+840,y lda matrix+64*3,x sta $0400+880,y lda matrix+64*4,x sta $0400+920,y inx iny cpy #$28 bne screen4 ldx swingpointer4 lda sinus4,x and #$07 ora #$d0 sta swingstore4 inc swingpointer4 rts ;Intro scroll text ... Scroll lda scrollpointer ;Grab horizontal smooth scroll control value (HPOS) sec sbc #$02 ;Subtract it by the speed of the scroll and #$07 ;only 0 - 7 is allowed to be used to shift position of screen HPOS sta scrollpointer ;store back to the scroll pointer bcs endscroll ;else end scroll code ;Moving scroll text with flashing. ldx #$00 wrap lda $0400+721,x ;Read position of 39 chars sta $0400+720,x ;pull all chars back 1 byte to mask a scroll lda colourstore3;Fill colour charset with flashing colour sta $d800+720,x inx cpx #$28 ;Read 40 columns bne wrap ;Else continue scrolling chars ;Main self-mod message position for the scroll messread lda ScrollText ;Read character of message, selected cmp #$00 ;Is @ read Y / N? bne notatend ;No @ is not read, so jump to notatend lda #ScrollText ;ScrollText to selfmod messread in order sta messread+1 ;to restart it. stx messread+2 jmp messread ;Then read message position again ;text is not end of message. Store the read character ;to the last column of the screen row, where the scroll ;should be. Then test if reached a byte 0 '@' again. notatend sta $0400+759 inc messread+1 ;Increment lowbyte address of message text bne endscroll inc messread+2 ;Increment hibyte address of message text ;Finished endscroll rts ;Simple colour flash routine ColourFade lda colourdelay cmp #$03 beq fastenough inc colourdelay rts fastenough lda #0 sta colourdelay jsr tocharset ldx colourpointer lda ColourTable1,x sta colourstore lda ColourTable2,x sta colourstore2 lda ColourTable3,x sta colourstore3 inx cpx #85 beq resetpointer inc colourpointer rts resetpointer ldx #0 stx colourpointer rts ;Paint colour flash to static text characters tocharset ldx #$00 copycols lda colourstore sta $d800+240,x lda colourstore2 sta $d800+480,x inx cpx #40 bne copycols rts ;Transfer subroutine .Transfer sei lda #$00 sta $d01a lda #$00 sta $d418 lda #$81 sta $dc0d lda #$31 ldx #$ea sta $0314 stx $0315 cli jsr $ff81 lda #$00 sta $d020 sta $d021 ldx #$00 Silence lda #$00 sta $d400,x inx cpx #$18 bne Silence ldx #$00 .PutTransfer lda troutine,x sta $0100,x lda #$00 sta $d800,x sta $d900,x sta $da00,x sta $dae8,x inx bne .PutTransfer lda #$00 sta $0800 jmp $0100 troutine sei lda #$34 sta $01 transferme ldx #$00 transloop lda linkedaddress,x sta $0801,x inx bne transloop inc $0109 inc $010c lda $0109 bne transferme lda #$37 sta $01 jmp $080d ;Series of pointers system !byte 0 ;system type 0 = NTSC, 1 = PAL musicdelay !byte 0 ;NTSC delayed timer for playing music introsync !byte 0 ;Synchronize timer swingpointer !byte 0 ;Pointer for logo swing 1 swingpointer2 !byte 0 ;Pointer for logo swing 2 swingpointer3 !byte 0 ;Pointer for logo swing 3 swingpointer4 !byte 0 ;Pointer for logo swing 4 scrollpointer !byte 0 ;Pointer for smooth scroll colourdelay !byte 0 ;Timer for colour flash delay colourpointer !byte 0 ;Time for actual colour flash routine colourstore !byte 0 ;Stored pointer for flash 1 colourstore2 !byte 0 ;Stored pointer for flash 2 colourstore3 !byte 0 ;Stored pointer for flash 3 swingstore !byte 0 ;Stored pointer for logo swing 1 swingstore2 !byte 0 ;Stored pointer for logo swing 2 swingstore3 !byte 0 ;Stored pointer for logo swing 3 swingstore4 !byte 0 ;Stored pointer for logo swing 4 ColourTable1 !byte $0f,$0c,$0f,$07,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 ColourTable2 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $07,$0f,$0c,$0f,$07 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 ColourTable3 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $07,$0f,$0c,$0f,$07 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 !byte $01,$01,$01,$01,$01 sinus !byte 246,245,243,242,240,239 !byte 237,236,234,232,231,229 !byte 227,225,223,221,218,216 !byte 214,212,209,207,204,202 !byte 199,197,194,191,189,186 !byte 183,180,177,174,171,169 !byte 166,163,160,157,153,150 !byte 147,144,141,138,135,132 !byte 129,125,122,119,116,113 !byte 110,107,104,101,98,95 !byte 92,89,86,83,80,77 !byte 74,71,68,66,63,60 !byte 58,55,52,50,47,45 !byte 43,40,38,36,34,32 !byte 30,28,26,24,22,20 !byte 19,17,16,14,13,11 !byte 10,9,8,7,6,5 !byte 4,3,3,2,2,1 !byte 1,0,0,0,0,0 !byte 0,0,1,1,1,2 !byte 2,3,4,4,5,6 !byte 7,8,9,10,12,13 !byte 15,16,18,19,21,23 !byte 24,26,28,30,32,34 !byte 37,39,41,43,46,48 !byte 51,53,56,58,61,64 !byte 66,69,72,75,78,81 !byte 84,86,89,92,95,98 !byte 102,105,108,111,114,117 !byte 120,123,126,130,133,136 !byte 139,142,145,148,151,154 !byte 157,160,163,166,169,172 !byte 175,178,181,184,187,189 !byte 192,195,197,200,203,205 !byte 208,210,212,215,217,219 !byte 221,223,225,227,229,231 !byte 233,235,236,238,239,241 !byte 242,244,245,246,247,248 !byte 249,250,251,252,252,253 !byte 253,254,254,255,255,255 !byte 255,255,255,255,254,254 !byte 254,253,253,252,251,251 !byte 250,249,248,247 sinus2 !byte 253,254,254,255,255,255 !byte 255,255,255,255,254,254 !byte 254,253,253,252,251,251 !byte 250,249,248,247 !byte 246,245,243,242,240,239 !byte 237,236,234,232,231,229 !byte 227,225,223,221,218,216 !byte 214,212,209,207,204,202 !byte 199,197,194,191,189,186 !byte 183,180,177,174,171,169 !byte 166,163,160,157,153,150 !byte 147,144,141,138,135,132 !byte 129,125,122,119,116,113 !byte 110,107,104,101,98,95 !byte 92,89,86,83,80,77 !byte 74,71,68,66,63,60 !byte 58,55,52,50,47,45 !byte 43,40,38,36,34,32 !byte 30,28,26,24,22,20 !byte 19,17,16,14,13,11 !byte 10,9,8,7,6,5 !byte 4,3,3,2,2,1 !byte 1,0,0,0,0,0 !byte 0,0,1,1,1,2 !byte 2,3,4,4,5,6 !byte 7,8,9,10,12,13 !byte 15,16,18,19,21,23 !byte 24,26,28,30,32,34 !byte 37,39,41,43,46,48 !byte 51,53,56,58,61,64 !byte 66,69,72,75,78,81 !byte 84,86,89,92,95,98 !byte 102,105,108,111,114,117 !byte 120,123,126,130,133,136 !byte 139,142,145,148,151,154 !byte 157,160,163,166,169,172 !byte 175,178,181,184,187,189 !byte 192,195,197,200,203,205 !byte 208,210,212,215,217,219 !byte 221,223,225,227,229,231 !byte 233,235,236,238,239,241 !byte 242,244,245,246,247,248 !byte 249,250,251,252,252,253 sinus3 !byte 221,223,225,227,229,231 !byte 233,235,236,238,239,241 !byte 242,244,245,246,247,248 !byte 249,250,251,252,252,253 !byte 253,254,254,255,255,255 !byte 255,255,255,255,254,254 !byte 254,253,253,252,251,251 !byte 250,249,248,247 !byte 246,245,243,242,240,239 !byte 237,236,234,232,231,229 !byte 227,225,223,221,218,216 !byte 214,212,209,207,204,202 !byte 199,197,194,191,189,186 !byte 183,180,177,174,171,169 !byte 166,163,160,157,153,150 !byte 147,144,141,138,135,132 !byte 129,125,122,119,116,113 !byte 110,107,104,101,98,95 !byte 92,89,86,83,80,77 !byte 74,71,68,66,63,60 !byte 58,55,52,50,47,45 !byte 43,40,38,36,34,32 !byte 30,28,26,24,22,20 !byte 19,17,16,14,13,11 !byte 10,9,8,7,6,5 !byte 4,3,3,2,2,1 !byte 1,0,0,0,0,0 !byte 0,0,1,1,1,2 !byte 2,3,4,4,5,6 !byte 7,8,9,10,12,13 !byte 15,16,18,19,21,23 !byte 24,26,28,30,32,34 !byte 37,39,41,43,46,48 !byte 51,53,56,58,61,64 !byte 66,69,72,75,78,81 !byte 84,86,89,92,95,98 !byte 102,105,108,111,114,117 !byte 120,123,126,130,133,136 !byte 139,142,145,148,151,154 !byte 157,160,163,166,169,172 !byte 175,178,181,184,187,189 !byte 192,195,197,200,203,205 !byte 208,210,212,215,217,219 sinus4 !byte 157,160,163,166,169,172 !byte 175,178,181,184,187,189 !byte 192,195,197,200,203,205 !byte 208,210,212,215,217,219 !byte 221,223,225,227,229,231 !byte 233,235,236,238,239,241 !byte 242,244,245,246,247,248 !byte 249,250,251,252,252,253 !byte 253,254,254,255,255,255 !byte 255,255,255,255,254,254 !byte 254,253,253,252,251,251 !byte 250,249,248,247 !byte 246,245,243,242,240,239 !byte 237,236,234,232,231,229 !byte 227,225,223,221,218,216 !byte 214,212,209,207,204,202 !byte 199,197,194,191,189,186 !byte 183,180,177,174,171,169 !byte 166,163,160,157,153,150 !byte 147,144,141,138,135,132 !byte 129,125,122,119,116,113 !byte 110,107,104,101,98,95 !byte 92,89,86,83,80,77 !byte 74,71,68,66,63,60 !byte 58,55,52,50,47,45 !byte 43,40,38,36,34,32 !byte 30,28,26,24,22,20 !byte 19,17,16,14,13,11 !byte 10,9,8,7,6,5 !byte 4,3,3,2,2,1 !byte 1,0,0,0,0,0 !byte 0,0,1,1,1,2 !byte 2,3,4,4,5,6 !byte 7,8,9,10,12,13 !byte 15,16,18,19,21,23 !byte 24,26,28,30,32,34 !byte 37,39,41,43,46,48 !byte 51,53,56,58,61,64 !byte 66,69,72,75,78,81 !byte 84,86,89,92,95,98 !byte 102,105,108,111,114,117 !byte 120,123,126,130,133,136 !byte 139,142,145,148,151,154 Line1 !ct scr !text " -- proudly presents -- " Line2 !text " - t.n.d swingtro - " ScrollText !text " ... hello there everybody ... this is richard on the keys very proud to " !text "present to you an intro, originally made in 2013 ... " !text "this is of course the swingtro ... it features 2 single " !text "presentation lines, a scroll text, 4 swinging logos " !text "to blend everything in ... programming by richard ... charset by " !text "richard ... logo by jsl ... music by richard ... " !text "okay, have fun, but don't press spacebar ... i have not linked " !text "anything to this intro ... hahahah! " !byte 0 linkedaddress