
	SECTION TutDemo,CODE
	JUMPPTR Start

	INCDIR ""
	INCLUDE "PhotonsMiniStartup/PhotonsMiniWrapper1.02!.S"
	INCLUDE "Blitter-Register-List.S"
	INCLUDE "P61-Options.S"

;;    ---  screen buffer dimensions  ---

w	=352
h	=256
bplsize	=w*h/8
ScrBpl	=w/8

;;    ---  logo dimensions  ---

logow		=320
logoh		=99
logomargin	=(320-logow)/2
logobpl		=logow/8
logobwid	=logobpl*3

;;    ---  font dimensions  ---
fontw		=288
fonth		=100
fontbpls	=3
FontBpl		=fontw/8

plotY	=110
plotX	=w-32

logobgcol	=$44f
bgcol		=$225


********************  MACROS  ********************

logocolors:macro
	dc.w $068e,$0adf,$0dff
	dc.w $09bf,$056d,$044b,$033a
	endm

********************  DEMO  ********************


Demo:
	move.w #$87e0,$dff096

	bsr Init

	move.l #copper,$dff080
	move.l #VBint,$6c(a4)		;set vertb interrupt vector compatibly.
	move.w #$c020,$dff09a		;enable interrupts generally
					;and vertb specifically.

;;    ---  Call P61_Init  ---
	movem.l d0-a6,-(sp)

	lea Module1,a0
	sub.l a1,a1
	sub.l a2,a2
	moveq #0,d0
	jsr P61_Init

	movem.l (sp)+,d0-a6

	bsr Main

	movem.l d0-a6,-(sp)
	jsr P61_End
	movem.l (sp)+,d0-a6
	rts			;go back to system friendly wrapper exit.

********** ROUTINES **********
Main:
	movem.l d0-a6,-(sp)

**************************


WaitMouse:
	btst #6,$bfe001
	bne.w WaitMouse

**************************

	movem.l (sp)+,d0-a6
	rts

********************  Effect 1 subroutine  ********************

Part1:
	movem.l d0-a6,-(sp)
	bsr BounceScroller

	lea StarSpr+1,a1
	moveq #$2c,d0
	moveq #26-1,d7
.skyl:	
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #2,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #3,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words

	dbf d7,.skyl	

	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #2,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words

    *--- below line $ff ---*

	moveq #%00000110,d6

	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #3,(a1)			;add speed to hpos
	addq.w #8,a1

	moveq #5-1,d7
.floorl:	
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #2,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #3,(a1)			;add speed to hpos
	addq.w #8,a1

	dbf d7,.floorl

    *--- odd lines sprites ---*

	lea StarSpr2+1,a1
	moveq #$2d,d0
	moveq #26-1,d7
.skyl2:	
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #2,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #3,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words

	dbf d7,.skyl2

	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words
	addq.b #2,(a1)			;add speed to hpos
	addq.w #8,a1			;skip to next sprite control words

    *--- below line $ff ---*

	moveq #%00000110,d6

	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #3,(a1)			;add speed to hpos
	addq.w #8,a1

	moveq #5-1,d7
.floorl2:	
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #2,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #1,(a1)			;add speed to hpos
	addq.w #8,a1
	addq.b #3,(a1)			;add speed to hpos
	addq.w #8,a1

	dbf d7,.floorl2

;;    ---  sine lookup for raster bar vert. pos.  ---

	lea Sine,a0
	move.w SineCtr,d6
	move.w #$4d-6+37,d7
	add.w (a0,d6.w),d7

	addq.w #2,d6
	cmp.w #SineEnd-Sine,d6
	blt.s .nowrap2
	moveq #0,d6
.nowrap2:
	move.w d6,SineCtr

;;    ---  in front or behind flag  ---

	lea BarInFront,a2	;default source address for RGB color values 
	cmp.w #50*2,d6
	blt.s .behind
	cmp.w #150*2,d6
	bge.s .behind
	bra.s .cont
.behind:
	lea BarBehind,a2
.cont:

	lea waitras1,a0
	move d7,d0
	moveq #6-1,d1
.l:
	move.b d0,(a0)
	add.w #1,d0

	move.w (a2)+,d2			;background color from list
	move.w d2,6(a0)
	move.w (a2)+,6+4*1(a0)
	move.w (a2)+,6+4*2(a0)
	move.w (a2)+,6+4*3(a0)
	move.w (a2)+,6+4*4(a0)
	move.w (a2)+,6+4*5(a0)
	move.w (a2)+,6+4*6(a0)
	move.w (a2)+,6+4*7(a0)

	add.w #4*9,a0			;step to next.
	DBF d1,.l

	bsr Scrollit

	moveq #32,d2
	move.b LastChar(PC),d0
	cmp.b #'I',d0
	bne.s .noi
	moveq #16,d2
.noi:
	move.w ScrollCtr(PC),d0
	addq.w #4,d0
	cmp.w d2,d0
	blo.s .nowrap

	move.l ScrollPtr(PC),a0
	cmp.l #ScrollTextWrap,a0
	blo.s .noplot
	lea ScrollText(PC),a0
.noplot:
	bsr PlotChar			;preserves a0

	addq.w #1,a0
	move.l a0,ScrollPtr

	clr.w d0
.nowrap:
	move.w d0,ScrollCtr
	movem.l (sp)+,d0-a6
	rts


VBint:					;Blank template VERTB interrupt
	movem.l d0-a6,-(sp)		;Save used registers
	lea $dff000,a6
	btst #5,$1f(a6)			;INTREQR check if it's our vertb int.
	beq.s .notvb

	bsr Part1

	moveq #$20,d0			;poll irq bit
	move.w d0,$9c(a6)		;$dff09c=INTREQ
	move.w d0,$9c(a6)
.notvb:	movem.l (sp)+,d0-a6		;restore
	rte


row	=288*3*20/8
col	=4

PlotChar:	;a0=scrollptr
	movem.l d0-a6,-(sp)
	lea $dff000,a6
	bsr BlitWait

	moveq #0,d0
	move.b (a0)+,d0			;ASCII value
	move.b d0,LastChar

	sub.w #32,d0
	lea FontTbl(PC),a0
	move.b (a0,d0.w),d0
	divu #9,d0			;row
	move.l d0,d1
	swap d1				;remainder (column)

	mulu #row,d0
	mulu #col,d1

	add.l d1,d0			;offset into font bitmap
	add.l #Font,d0

	move.l #$09f00000,BLTCON0(a6)
	move.l #$ffffffff,BLTAFWM(a6)
	move.l d0,BLTAPTH(a6)
	move.l #Screen+ScrBpl*3*plotY+plotX/8,BLTDPTH(a6)
	move.w #FontBpl-col,BLTAMOD(a6)
	move.w #ScrBpl-col,BLTDMOD(a6)

	move.w #20*3*64+2,BLTSIZE(a6)
	movem.l (sp)+,d0-a6
	rts

Scrollit:
;;    ---  scroll!  ---
bltoffs	=plotY*ScrBpl*3

blth	=20
bltw	=w/16
bltskip	=0				;modulo
brcorner=blth*ScrBpl*3-2

	movem.l d0-a6,-(sp)
	lea $dff000,a6
	bsr BlitWait

	move.l #$49f00002,BLTCON0(a6)
	move.l #$ffffffff,BLTAFWM(a6)
	move.l #Screen+bltoffs+brcorner,BLTAPTH(a6)
	move.l #Screen+bltoffs+brcorner,BLTDPTH(a6)
	move.w #bltskip,BLTAMOD(a6)
	move.w #bltskip,BLTDMOD(a6)

	move.w #blth*3*64+bltw,BLTSIZE(a6)
	movem.l (sp)+,d0-a6
	rts

Init:
	movem.l d0-a6,-(sp)

	moveq #0,d1
	lea Screen,a1
	move.w #bplsize*fontbpls/2-1,d0
.l:	move.w #0,(a1)+
	addq.w #1,d1
	dbf d0,.l

	lea Logo,a0		;ptr to first bitplane of logo
	lea CopBplP,a1		;where to poke the bitplane pointer words.
	move #3-1,d0
.bpll:
	move.l a0,d1
	swap d1
	move.w d1,2(a1)		;hi word
	swap d1
	move.w d1,6(a1)		;lo word

	addq #8,a1		;point to next bpl to poke in copper
	lea LogoBpl(a0),a0
	dbf d0,.bpll

	lea SprP,a1
	lea StarSpr,a0
	move.l a0,d1
	moveq #2-1,d0
.sprpl:	
	swap d1
	move.w d1,2(a1)
	swap d1
	move.w d1,6(a1)
	addq.w #8,a1
	add.l #(StarSpr2-StarSpr),d1 
	dbf d0,.sprpl	

	lea NullSpr,a0
	move.l a0,d1
	moveq #6-1,d0
.sprpl2:
	swap d1
	move.w d1,2(a1)
	swap d1
	move.w d1,6(a1)
	addq.w #8,a1
	DBF d0,.sprpl2

	lea FontE-7*2,a0
	lea FontPalP+2,a1
	moveq #7-1,d0
.coll:	move.w (a0)+,(a1)+
	addq.w #2,a1
	DBF d0,.coll

    *--- initialize sprites ---*

	lea StarSpr,a1
	moveq #$2c,d0
	moveq #26-1,d7
.skyl:	
	move.b d0,(a1)+			;vstart
	addq.b #1,(a1)+			;add speed to hpos
	addq.b #1,d0			;increase vstop value
	move.b d0,(a1)+			;vstop
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #2,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

	move.b d0,(a1)+
	addq.b #1,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

	move.b d0,(a1)+
	addq.b #3,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

	dbf d7,.skyl

	move.b d0,(a1)+			;vstart
	addq.b #1,(a1)+			;add speed to hpos
	addq.b #1,d0			;increase vstop value
	move.b d0,(a1)+			;vstop
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #2,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

    *--- below line $ff ---*

	moveq #%00000110,d6

	move.b d0,(a1)+
	addq.b #1,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #3,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	moveq #5-1,d7
.floorl:	
	move.b d0,(a1)+			;vstart
	addq.b #1,(a1)+			;add speed to hpos
	addq.b #1,d0			;increase vstop value
	move.b d0,(a1)+			;vstop
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #2,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #1,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #3,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	dbf d7,.floorl

    *--- odd lines sprites ---*

	lea StarSpr2,a1
	moveq #$2d,d0
	moveq #26-1,d7
.skyl2:
	move.b d0,(a1)+			;vstart
	addq.b #1,(a1)+			;add speed to hpos
	addq.b #1,d0			;increase vstop value
	move.b d0,(a1)+			;vstop
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #2,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

	move.b d0,(a1)+
	addq.b #1,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

	move.b d0,(a1)+
	addq.b #3,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1

	dbf d7,.skyl2

	move.b d0,(a1)+			;vstart
	addq.b #1,(a1)+			;add speed to hpos
	addq.b #1,d0			;increase vstop value
	move.b d0,(a1)+			;vstop
	addq.b #1,d0			;increase vstop value
	addq.w #5,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #2,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b #2,(a1)+
	addq.w #4,a1			;skip to next sprite control words

    *--- below line $ff ---*

	moveq #%00000110,d6

	move.b d0,(a1)+
	addq.b #1,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #3,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	moveq #5-1,d7
.floorl2:
	move.b d0,(a1)+			;vstart
	addq.b #1,(a1)+			;add speed to hpos
	addq.b #1,d0			;increase vstop value
	move.b d0,(a1)+			;vstop
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #2,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #1,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	move.b d0,(a1)+
	addq.b #3,(a1)+
	addq.b #1,d0
	move.b d0,(a1)+
	addq.b #1,d0			;increase vstop value
	move.b d6,(a1)+
	addq.w #4,a1			;skip to next sprite control words

	dbf d7,.floorl2

	movem.l (sp)+,d0-a6
	rts

CopyB:	;d0,a0,a1=count,source,destination
.l:	move.b (a0)+,(a1)+
	subq.l #1,d0
	bne.s .l
	rts

BlitWait:
	tst DMACONR(a6)			;for compatibility
.waitblit:
	btst #6,DMACONR(a6)
	bne.s .waitblit
	rts

BounceScroller:
	MOVEM.L D0-A6,-(SP)

	lea Screen,a0		;ptr to first bitplane of font
	move.w BounceY(PC),d0
	move.w BounceYaccel(PC),d1
	add.w d1,BounceYspeed
	add.w BounceYspeed(PC),d0
	bpl.s .nobounce
	move.w #32,BounceYspeed
	clr.w d0
.nobounce:
	move.w d0,BounceY

	lsr.w #3,d0

	mulu #3*scrbpl,d0
	add.l d0,a0

	lea ScrBplP,a1		;where to poke the bitplane pointer words.
	moveq #fontbpls-1,d0
.bpll2:	move.l a0,d1
	swap d1
	move.w d1,2(a1)		;hi word
	swap d1
	move.w d1,6(a1)		;lo word

	addq #8,a1		;point to next bpl to poke in copper
	lea ScrBpl(a0),a0
	dbf d0,.bpll2

	MOVEM.L (SP)+,D0-A6
	RTS

	even

********** PLAYROUTINE CODE **********
;Note: if this is put in its own section (or compiled as separate binary), then
;jsr <addr>+P61_InitOffset,P61_MusicOffset,P61_EndOffset,P61_SetPositionOffset
;to call the routines.

Playrtn:
	include "P6111/P6111-Play.i"

********** DATA **********
FontTbl:
	dc.b 43,38
	blk.b 5,0
	dc.b 42
	blk.b 4,0
	dc.b 37,40,36,41
	dc.b 26,27,28,29,30,31,32,33,34,35
	blk.b 5,0
	dc.b 39,0
	dc.b 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
	dc.b 22,23,24,25
	EVEN

ScrollPtr:
	dc.l ScrollText
ScrollText:
	dc.b "JUST FOR THE RETRO FEELING OF IT! YOU DIG??"
	blk.b w/32,' '
ScrollTextWrap:

LastChar:dc.b 0
	EVEN
ScrollCtr:
	dc.w 0
BounceY:
	dc.w 48*8
BounceYspeed:
	dc.w 0
BounceYaccel:
	dc.w -1
SineCtr:
	dc.w 0

gfxname:
	dc.b "graphics.library",0
	EVEN

Sine:	INCBIN "Sine.37.200.w"
SineEnd:

	SECTION TutData,DATA_C
StarSpr:
.x:	SET 1
	REPT 32
.tmpx:	SET ((.x*$751+$deadbeef)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $8000,$0000
.x:	SET (.x+2)&$ffff
.tmpx:	SET ((.x*$753+$eadbeefd)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $0000,$8000
.x:	SET (.x+4)&$ffff
.tmpx:	SET ((.x*$755+$adbeefde)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $8000,$0000
.x:	SET (.x+8)&$ffff
.tmpx:	SET ((.x*$757+$dbeefdea)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $c000,$c000
.x:	SET (.x+16)&$ffff
	ENDR
	dc.w 0,0

StarSpr2:
.x:	SET $77
	REPT 32
.tmpx:	SET ((.x*$751+$deadbeef)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $8000,$0000
.x:	SET (.x+2)&$ffff
.tmpx:	SET ((.x*$753+$eadbeefd)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $0000,$8000
.x:	SET (.x+4)&$ffff
.tmpx:	SET ((.x*$755+$adbeefde)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $8000,$0000
.x:	SET (.x+8)&$ffff
.tmpx:	SET ((.x*$757+$dbeefdea)/(.x&$55))&$ff
	dc.w $2c00+.tmpx,$2d00	;Vstart.b,Hstart/2.b,Vstop.b,%A0000SEH
	dc.w $c000,$c000
.x:	SET (.x+16)&$ffff
	ENDR
	dc.w 0,0

NullSpr:
	dc.w $2a20,$2b00
	dc.w 0,0
	dc.w 0,0

BarBehind:
	dc.w $558	;color00 value
	logocolors

	dc.w $99d	;color00...
	logocolors

	dc.w $fff
	logocolors

	dc.w $99d
	logocolors

	dc.w $558
	logocolors

	dc.w logobgcol
	logocolors

BarInFront:
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558

	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d

	dc.w $fff
	dc.w $fff
	dc.w $fff
	dc.w $fff
	dc.w $fff
	dc.w $fff
	dc.w $fff
	dc.w $fff

	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d
	dc.w $99d

	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558
	dc.w $558

	dc.w logobgcol
	logocolors

Copper:
	dc.w $1fc,0			;slow fetch mode, AGA compatibility
	dc.w $100,$0200
	dc.b 0,$8e,$2c,$81
	dc.b 0,$90,$2c,$c1
	dc.w $92,$38
	dc.w $94,$d0

	dc.w $108,logobwid-logobpl
	dc.w $10a,logobwid-logobpl

	dc.w $102,0
	dc.w $104,0

	dc.w $1a2,$99b			;sprite colors
	dc.w $1a4,$cce
	dc.w $1a6,$fff
SprP:
	dc.w $120,0
	dc.w $122,0
	dc.w $124,0
	dc.w $126,0
	dc.w $128,0
	dc.w $12a,0
	dc.w $12c,0
	dc.w $12e,0
	dc.w $130,0
	dc.w $132,0
	dc.w $134,0
	dc.w $136,0
	dc.w $138,0
	dc.w $13a,0
	dc.w $13c,0
	dc.w $13e,0

CopBplP:
	dc.w $e0,0
	dc.w $e2,0
	dc.w $e4,0
	dc.w $e6,0
	dc.w $e8,0
	dc.w $ea,0
		
	dc.w $0180,logobgcol
	dc.w $100,$3200
	dc.w $2c07,$fffe

LogoPal:
	dc.w $0180,$044f,$0182,$068e,$0184,$0adf,$0186,$0dff
	dc.w $0188,$09bf,$018a,$056d,$018c,$044b,$018e,$033a

waitras1:
	dc.w $8007,$fffe
	dc.w $180,$558
	dc.w $182,0
	dc.w $184,0
	dc.w $186,0
	dc.w $188,0
	dc.w $18a,0
	dc.w $18c,0
	dc.w $18e,0
waitras2:
	dc.w $8107,$fffe
	dc.w $180,$99d
	dc.w $182,0
	dc.w $184,0
	dc.w $186,0
	dc.w $188,0
	dc.w $18a,0
	dc.w $18c,0
	dc.w $18e,0
waitras3:
	dc.w $8207,$fffe
	dc.w $180,$fff
	dc.w $182,0
	dc.w $184,0
	dc.w $186,0
	dc.w $188,0
	dc.w $18a,0
	dc.w $18c,0
	dc.w $18e,0
waitras4:
	dc.w $8307,$fffe
	dc.w $180,$99d
	dc.w $182,0
	dc.w $184,0
	dc.w $186,0
	dc.w $188,0
	dc.w $18a,0
	dc.w $18c,0
	dc.w $18e,0
waitras5:
	dc.w $8407,$fffe
	dc.w $180,$558
	dc.w $182,0
	dc.w $184,0
	dc.w $186,0
	dc.w $188,0
	dc.w $18a,0
	dc.w $18c,0
	dc.w $18e,0
waitras6:
	dc.w $8507,$fffe
	dc.w $180,logobgcol
	dc.w $182,0
	dc.w $184,0
	dc.w $186,0
	dc.w $188,0
	dc.w $18a,0
	dc.w $18c,0
	dc.w $18e,0

	dc.w $9607,$fffe
	dc.w $100,$0200
	dc.w $96bf,$fffe

FontPalP:
	dc.w $0182,$0ddd,$0184,$0833,$0186,$0334
	dc.w $0188,$0a88,$018a,$099a,$018c,$0556,$018e,$0633

ScrBplP:
	dc.w $e0,0
	dc.w $e2,0
	dc.w $e4,0
	dc.w $e6,0
	dc.w $e8,0
	dc.w $ea,0
	dc.w $108,ScrBpl*FontBpls-320/8
	dc.w $10a,ScrBpl*Fontbpls-320/8
	dc.w $92,$38
	dc.w $94,$d0
	dc.w $100,fontbpls*$1000+$200

	dc.w $9707,$fffe
	dc.w $180,$44e
	dc.w $9807,$fffe
	dc.w $180,$44f
	dc.w $9907,$fffe
	dc.w $180,$44e

	dc.w $9d07,$fffe
	dc.w $180,$44d
	dc.w $9e07,$fffe
	dc.w $180,$44e
	dc.w $9f07,$fffe
	dc.w $180,$44d

	dc.w $a407,$fffe
	dc.w $180,$44c
	dc.w $a507,$fffe
	dc.w $180,$44d
	dc.w $a607,$fffe
	dc.w $180,$44c

	dc.w $ab07,$fffe
	dc.w $180,$43c
	dc.w $ac07,$fffe
	dc.w $180,$44c
	dc.w $ad07,$fffe
	dc.w $180,$43c

	dc.w $b207,$fffe
	dc.w $180,$33b
	dc.w $b307,$fffe
	dc.w $180,$43c
	dc.w $b407,$fffe
	dc.w $180,$33b

	dc.w $b907,$fffe
	dc.w $180,$33a
	dc.w $ba07,$fffe
	dc.w $180,$33b
	dc.w $bb07,$fffe
	dc.w $180,$33a

	dc.w $c007,$fffe
	dc.w $180,$339
	dc.w $c107,$fffe
	dc.w $180,$33a
	dc.w $c207,$fffe
	dc.w $180,$339

	dc.w $c707,$fffe
	dc.w $180,$329
	dc.w $c807,$fffe
	dc.w $180,$339
	dc.w $c907,$fffe
	dc.w $180,$329

	dc.w $ce07,$fffe
	dc.w $180,$228
	dc.w $cf07,$fffe
	dc.w $180,$329
	dc.w $d007,$fffe
	dc.w $180,$228

	dc.w $d507,$fffe
	dc.w $180,$227
	dc.w $d607,$fffe
	dc.w $180,$228
	dc.w $d707,$fffe
	dc.w $180,$227

	dc.w $dc07,$fffe
	dc.w $180,$226
	dc.w $dd07,$fffe
	dc.w $180,$227
	dc.w $de07,$fffe
	dc.w $180,$226

	dc.w $e307,$fffe
	dc.w $180,bgcol
	dc.w $e407,$fffe
	dc.w $180,$226
	dc.w $e507,$fffe
	dc.w $180,bgcol

	dc.w $ffdf,$fffe
;;    ---  bottom plate start  ---
	dc.w $0807,$fffe
	dc.w $180,$236
	dc.w $0a07,$fffe
	dc.w $180,$247
	dc.w $0b07,$fffe
	dc.w $180,$236
	dc.w $0e07,$fffe
	dc.w $180,$258
	dc.w $0f07,$fffe
	dc.w $180,$236
	dc.w $1507,$fffe
	dc.w $180,$269
	dc.w $1607,$fffe
	dc.w $180,$236
;;    ---  mirror split  ---	
	dc.w $17df,$fffe
	dc.w $182,$0468
	dc.w $184,$0235
	dc.w $186,$0358
	dc.w $188,$0689
	dc.w $18a,$069a
	dc.w $18c,$07bc
	dc.w $18e,$08dd
	dc.w $108,(ScrBpl*FontBpls-320/8)-(ScrBpl*FontBpls*2)
	dc.w $10a,(ScrBpl*Fontbpls-320/8)-(ScrBpl*FontBpls*2)

	dc.w $2007,$fffe
	dc.w $180,$27a
	dc.w $182,$27a
	dc.w $184,$27a
	dc.w $186,$27a
	dc.w $188,$27a
	dc.w $18a,$27a
	dc.w $18c,$27a
	dc.w $18e,$27a
	dc.w $2107,$fffe
	dc.w $180,$236
	dc.w $182,$0468
	dc.w $184,$0235
	dc.w $186,$0358
	dc.w $188,$0689
	dc.w $18a,$069a
	dc.w $18c,$07bc
	dc.w $18e,$08dd
;;    ---  bottom plate stop  ---
	dc.w $2c07,$fffe
	dc.w $180,$38b
	dc.w $2d07,$fffe
	dc.w $180,$235
	dc.w $2e07,$fffe
	dc.w $180,$247
	dc.w $2f07,$fffe
	dc.w $180,$258
;;    ---  bottom plate thickness  ---
	dc.w $3007,$fffe
	dc.w $180,bgcol

	dc.w $ffff,$fffe
CopperE:

Font:
	INCBIN "media/FastCarFont.284x100x3"
FontE:

Logo:	INCBIN "sky3centered.raw"
LogoE:
	dcb.b logobwid*6,0

Module1:
	incbin "P61.new_ditty"		;usecode $c00b43b


	SECTION TutBSS,BSS_C
Screen:
	ds.b bplsize*fontbpls

	END


Bit	Channel


	1001
	ABCD -> D

0	000	0
1	001	0
2	010	0
3	011	0
4	100	1
5	101	1
6	110	1
7	111	1


%11110000	=$f0



