
* Lattice 4.0  make:
*		Asm Intro
*		BLink Intro.o CHIP

* Usage: Scroll Scroll.txt

AbsExecBase	EQU	4
Forbid		EQU	-$84
Permit		EQU	-$8a
OpenLibrary	EQU	-$228	;(libName,version)(A1,D0)
CloseLibrary	EQU	-$19e	;(library)(A1)

gb_copinit	EQU	$32

Open		EQU	-$1e	;(name,accessMode)(D1/D2)
Close		EQU	-$24	;(file)(D1)
Read		EQU	-$2a	;(file,buffer,length)(D1/D2/D3)
Seek		EQU	-$42	;(file,position,offset)(D1/D2/D3)


	SECTION Scroller,CODE

	movea.l a0,a3		; save command line
	move.l	d0,d3		; length
	cmpi.w	#2,d3		; not worth it
	blt	Quit

	adda.l	d3,a0		; end of string
	subq.w	#1,d3		; loop count

FNLoop	clr.b	(a0)
	cmpi.b	#' ',-(a0)	; > blank?
	dbhi	d3,FNLoop	; loop back
	addq.w	#1,d3		; restore length

	movea.l AbsExecBase.w,a6
	clr.l	d0
	lea	DOSName(pc),a1
	jsr	OpenLibrary(a6) ; Open DOS
	movea.l d0,a6

	move.l	a3,d1		; read text file
	move.l	#$3ed,d2
	jsr	Open(a6)
	move.l	d0,d4
	beq	Quit
	move.l	d4,d1
	move.l	#TextBuf,d2
	move.l	#4090,d3	; 4K max
	jsr	Read(a6)
	move.l	d4,d1
	jsr	Close(a6)

	movea.l AbsExecBase.w,a6
	clr.l	d0
	lea	GfxName(pc),a1
	jsr	Forbid(a6)
	jsr	OpenLibrary(a6)
	movea.l d0,a6
	move.l	gb_copinit(a6),CopSave ; save system copper list
	move.l	#SPlane,DBuff1
	lea	$75000,a0
CLoop	clr.l	(a0)+
	cmpa.l	#$7a000,a0	; clear out the screen memory
	bne.s	CLoop
	move.l	#Clist,gb_copinit(a6)
	move.w	#$8400,$dff096	; lace looks better
	move.w	#$0020,$dff096	; Sprite DMA off
	clr.w	$dff144 	; kill the DMA read
	clr.w	$dff146
	clr.w	$dff142
	lea	TextBuf,a4

Main	cmpi.b	#$80,$dff006	; wait bottom of frame (very close,tweak this some)
	bne.s	Main
	btst	#1,Scrling	; are we scrolling?
	bne.s	NoText
	bsr	ScrollText
	addi.w	#1,CharBlk	; size of space on right for next char
	move.w	CharBlk,d0
	cmp.w	CharWid,d0
	bne.s	NoText
	move.w	#0,CharBlk
	bsr	DrawTxt
NoText	btst	#1,Scrling
	beq.s	NoDel
	addi.w	#1,DelCnt
	cmpi.w	#140,DelCnt	; delay for scroll speed
	bne.s	NoDel
	move.w	#0,DelCnt
	Bclr	#1,Scrling
NoDel	bsr	UpdateCL	; move the wave
	btst	#6,$bfe001	; check mouse button
	bne.s	Main

	move.l	CopSave(pc),gb_copinit(a6)
	movea.l AbsExecBase.w,a6
	jsr	Permit(a6)
	move.w	#$8020,$dff096
	move.w	#$0400,$dff096
Quit	clr.l	d0
	rts

********************************  SINEWAVE  ************************************
* Used: D0-D3/A0-A3

UpdateCL
	btst	#1,Frame
	beq.s	OtherFrame
	move.l	#$75000,DBuff1
	move.l	#$77800,DBuff2
	move.w	#$5000,BPL0+6
	move.w	#$5028,BPL1+6
	bclr	#1,Frame
	bra.s	AdjustWave

OtherFrame
	move.l	#$77800,DBuff1
	move.l	#$75000,DBuff2
	move.w	#$7800,BPL0+6
	move.w	#$7828,BPL1+6
	bset	#1,Frame

AdjustWave
	move.w	#19,d3
	move.w	#0,Xindex
	lea	Sine,a2
	adda.w	SineInd,a2

AdjLoop moveq	#7,d2
	lea	BlitTab(pc),a3
BltLoop lea	SPlane,a0
	movea.l DBuff1,a1
	moveq	#0,d0
	move.b	(a2)+,d0
	subi.w	#35,d0
	move.w	d0,d1
	lsl.w	#5,d1
	lsl.w	#3,d0
	add.w	d1,d0
	adda.w	d0,a1
	adda.w	Xindex,a0
	adda.w	Xindex,a1
	bsr	BlitPlane
	dbf	d2,BltLoop
	addi.w	#2,Xindex
	dbf	d3,AdjLoop

	moveq	#6,d0			; wave speed
	add.w	d0,SineInd
	cmpi.w	#360,SineInd
	blt.s	SkipOff
	move.w	#0,SineInd
SkipOff movea.l DBuff2,a0
	adda.w	#$700,a0
	move.w	#$100,$dff040
	move.w	#0,$dff042
	move.l	a0,$dff054
	move.w	#0,$dff066
	move.w	#$1128,$dff058
	rts

BlitPlane
	move.l	(a3)+,d0
	move.l	d0,$dff044
	move.l	#$0dfc0000,$dff040
	move.l	a0,$dff050
	move.l	a1,$dff04c
	move.l	a1,$dff054
	moveq	#38,d0
	move.w	d0,$dff062
	move.w	d0,$dff064
	move.w	d0,$dff066
	move.w	#$401,$dff058
	rts

****************************  TEXT RENDER  ************************************
* D0-D3/A0

DoOdd1	move.w	CHWid1,CharWid
	bra	RendTxt

DoOdd2	move.w	CHWid2,CharWid
	bra	RendTxt

DoStop	bset	#1,Scrling

DrawTxt moveq	#0,d0
	move.b	(a4)+,d0
	bne.s	NotEnd		; End of file?
	lea	TextBuf,a4
	bra.s	DrawTxt

NotEnd	cmp.b	#' ',d0 	; filter control chars
	blt.s	DrawTxt
	cmp.b	#'s',d0		; Slow
	beq	DoSlow
	cmp.b	#'f',d0		; Fast
	beq	DoFast
	cmp.b	#'d',d0		; Stop for a sec
	beq.s	DoStop
	cmp.b	#'.',d0 	; small characters
	beq.s	DoOdd2
	cmp.b	#'!',d0
	beq.s	DoOdd2
	cmp.b	#'1',d0
	beq.s	DoOdd1
	cmp.b	#$27,d0 	; "'"
	beq.s	DoOdd1
	move.w	CHWid0,CharWid

RendTxt subi.b	#' ',d0
	moveq	#0,d1
	move.l	d1,d2
	move.w	d0,d1

	divu	#20,d0
	move.w	d0,d3
	lsl.w	#4,d3
	move.w	d0,d2
	lsl.w	#2,d2
	add.w	d3,d2
	sub.w	d2,d1
	lsl.w	#1,d1
	move.w	d2,d0
	lsl.w	#5,d0
	add.w	d2,d0
	add.w	d2,d0

	lea	font(pc),a0
	adda.w	d0,a0
	adda.w	d1,a0
	move.w	#$9f0,$dff040
	move.w	#0,$dff042
	move.l	#-1,$dff044
	move.l	a0,$dff050
	lea	SPlane+$28,a0
	move.l	a0,$dff054
	move.w	#38,$dff064
	move.w	#38,$dff066
	move.w	#$401,$dff058
	rts

DoSlow	move.w	#6,CHWid0
	move.w	#3,CHWid1
	move.w	#2,CHWid2
	move.w	#$d9f0,Shifter
	bra	DrawTxt

DoFast	move.w	#3,CHWid0
	move.w	#2,CHWid1
	move.w	#1,CHWid2
	move.w	#$a9f0,Shifter
	bra	DrawTxt

****************************  TEXT SCROLL  ************************************
* A0

ScrollText
	move.w	Shifter,$dff040 ; Copy
	move.w	#0,$dff042
	move.l	#-1,$dff044
	move.w	#0,$dff064
	move.w	#0,$dff066
	lea	SPlane,a0
	move.l	a0,$dff054
	adda.w	#2,a0
	move.l	a0,$dff050
	move.w	#$328,$dff058

	move.w	#$100,$dff040	; Clear
	move.w	#0,$dff042
	move.l	a0,$dff054
	move.w	#38,$dff066
	move.w	#$601,$dff058	; h=48,w=1
	rts

****************************  VARIABLES  **************************************

DOSBase dc.l	0
CopSave dc.l	0
Xindex	dc.w	0
DBuff1	dc.l	0
DBuff2	dc.l	0
SineInd	dc.w	0
Frame	dc.l	0
DelCnt	dc.w	0
Scrling dc.w	0

CharWid	dc.w	6
CharBlk dc.w	0
CHWid0	dc.w	6
CHWid1	dc.w	3
CHWid2	dc.w	2
Shifter dc.w	$d9f0

DOSName dc.b	'dos.library',0
GfxName dc.b	'graphics.library',0
	ds.w	0


******************************  COPPERLIST  ************************************

Clist	dc.w	$100,$2200		; BPLCON0
	dc.w	$102,$0045		; BPLCON1
	dc.w	$104,0			; BPLCON2
	dc.w	$08e,$2c86		; DIWSTRT
	dc.w	$090,$40c1		; DIWSTOP
	dc.w	$108,0			; BPL1MOD nothin
	dc.w	$10a,0			; BPL2MOD
	dc.w	$092,$0030		; DDFSTRT Wide
	dc.w	$094,$00c8		; DDFSTOP Narrow
BPL0	dc.w	$0e0,7,$0e2,$7800	; BPL1PT
BPL1	dc.w	$0e4,7,$0e6,$7800	; BPL2PT

	dc.w	$180,$000,$182,$555,$184,$888,$186,$000 ; colors
	dc.w	$188,$FFF,$18A,$555,$18C,$888,$18E,$000

* Rainbow
	dc.w	$5921,$fffe,$186,$00f,$18e,$00f
	dc.w	$5a21,$fffe,$186,$01f,$18e,$01f
	dc.w	$5b21,$fffe,$186,$02f,$18e,$02f
	dc.w	$5c21,$fffe,$186,$03f,$18e,$03f
	dc.w	$5d21,$fffe,$186,$04f,$18e,$04f
	dc.w	$5e21,$fffe,$186,$05f,$18e,$05f
	dc.w	$5f21,$fffe,$186,$06f,$18e,$06f
	dc.w	$6021,$fffe,$186,$07f,$18e,$07f
	dc.w	$6121,$fffe,$186,$08f,$18e,$08f
	dc.w	$6221,$fffe,$186,$09f,$18e,$09f
	dc.w	$6321,$fffe,$186,$0af,$18e,$0af
	dc.w	$6421,$fffe,$186,$0bf,$18e,$0bf
	dc.w	$6521,$fffe,$186,$0cf,$18e,$0cf
	dc.w	$6621,$fffe,$186,$0df,$18e,$0df
	dc.w	$6721,$fffe,$186,$0ef,$18e,$0ef
	dc.w	$6821,$fffe,$186,$0ff,$18e,$0ff
	dc.w	$6921,$fffe,$186,$0ff,$18e,$0ff
	dc.w	$6a21,$fffe,$186,$0fe,$18e,$0fe
	dc.w	$6b21,$fffe,$186,$0fd,$18e,$0fd
	dc.w	$6c21,$fffe,$186,$0fc,$18e,$0fc
	dc.w	$6d21,$fffe,$186,$0fb,$18e,$0fb
	dc.w	$6e21,$fffe,$186,$0fa,$18e,$0fa
	dc.w	$6f21,$fffe,$186,$0f9,$18e,$0f9
	dc.w	$7021,$fffe,$186,$0f8,$18e,$0f8
	dc.w	$7121,$fffe,$186,$0f7,$18e,$0f7
	dc.w	$7221,$fffe,$186,$0f6,$18e,$0f6
	dc.w	$7321,$fffe,$186,$0f5,$18e,$0f5
	dc.w	$7421,$fffe,$186,$0f4,$18e,$0f4
	dc.w	$7521,$fffe,$186,$0f3,$18e,$0f3
	dc.w	$7621,$fffe,$186,$0f2,$18e,$0f2
	dc.w	$7721,$fffe,$186,$0f1,$18e,$0f1
	dc.w	$7821,$fffe,$186,$0f0,$18e,$0f0
	dc.w	$7921,$fffe,$186,$0f0,$18e,$0f0
	dc.w	$7a21,$fffe,$186,$1f0,$18e,$1f0
	dc.w	$7b21,$fffe,$186,$2f0,$18e,$2f0
	dc.w	$7c21,$fffe,$186,$3f0,$18e,$3f0
	dc.w	$7d21,$fffe,$186,$4f0,$18e,$4f0
	dc.w	$7e21,$fffe,$186,$5f0,$18e,$5f0
	dc.w	$7f21,$fffe,$186,$6f0,$18e,$6f0
	dc.w	$8021,$fffe,$186,$7f0,$18e,$7f0
	dc.w	$8121,$fffe,$186,$8f0,$18e,$8f0
	dc.w	$8221,$fffe,$186,$9f0,$18e,$9f0
	dc.w	$8321,$fffe,$186,$af0,$18e,$af0
	dc.w	$8421,$fffe,$186,$bf0,$18e,$bf0
	dc.w	$8521,$fffe,$186,$cf0,$18e,$cf0
	dc.w	$8621,$fffe,$186,$df0,$18e,$df0
	dc.w	$8721,$fffe,$186,$ef0,$18e,$ef0
	dc.w	$8821,$fffe,$186,$ff0,$18e,$ff0
	dc.w	$8921,$fffe,$186,$ff0,$18e,$ff0
	dc.w	$8a21,$fffe,$186,$fe0,$18e,$fe0
	dc.w	$8b21,$fffe,$186,$fd0,$18e,$fd0
	dc.w	$8c21,$fffe,$186,$fc0,$18e,$fc0
	dc.w	$8d21,$fffe,$186,$fb0,$18e,$fb0
	dc.w	$8e21,$fffe,$186,$fa0,$18e,$fa0
	dc.w	$8f21,$fffe,$186,$f90,$18e,$f90
	dc.w	$9021,$fffe,$186,$f80,$18e,$f80
	dc.w	$9121,$fffe,$186,$f70,$18e,$f70
	dc.w	$9221,$fffe,$186,$f60,$18e,$f60
	dc.w	$9321,$fffe,$186,$f50,$18e,$f50
	dc.w	$9421,$fffe,$186,$f40,$18e,$f40
	dc.w	$9521,$fffe,$186,$f30,$18e,$f30
	dc.w	$9621,$fffe,$186,$f20,$18e,$f20
	dc.w	$9721,$fffe,$186,$f10,$18e,$f10
	dc.w	$9821,$fffe,$186,$f00,$18e,$f00
	dc.w	$9921,$fffe,$186,$f00,$18e,$f10
	dc.w	$9a21,$fffe,$186,$f10,$18e,$f20
	dc.w	$9b21,$fffe,$186,$f20,$18e,$f30
	dc.w	$9c21,$fffe,$186,$f30,$18e,$f40
	dc.w	$9d21,$fffe,$186,$f40,$18e,$f50
	dc.w	$9e21,$fffe,$186,$f50,$18e,$f60
	dc.w	$9f21,$fffe,$186,$f60,$18e,$f70
	dc.w	$a021,$fffe,$186,$f70,$18e,$f80
	dc.w	$a121,$fffe,$186,$f80,$18e,$f90
	dc.w	$a221,$fffe,$186,$f90,$18e,$fa0
	dc.w	$a321,$fffe,$186,$fa0,$18e,$fb0
	dc.w	$a421,$fffe,$186,$fb0,$18e,$fc0
	dc.w	$a521,$fffe,$186,$fc0,$18e,$fd0
	dc.w	$a621,$fffe,$186,$fd0,$18e,$fe0
	dc.w	$a721,$fffe,$186,$fe0,$18e,$ff0
	dc.w	$a821,$fffe,$186,$ff0,$18e,$ff0
	dc.w	$a921,$fffe,$186,$ff0,$18e,$ef0
	dc.w	$aa21,$fffe,$186,$ef0,$18e,$df0
	dc.w	$ab21,$fffe,$186,$df0,$18e,$cf0
	dc.w	$ac21,$fffe,$186,$cf0,$18e,$bf0
	dc.w	$ad21,$fffe,$186,$bf0,$18e,$af0
	dc.w	$ae21,$fffe,$186,$af0,$18e,$9f0
	dc.w	$af21,$fffe,$186,$9f0,$18e,$8f0
	dc.w	$b021,$fffe,$186,$8f0,$18e,$7f0
	dc.w	$b121,$fffe,$186,$7f0,$18e,$6f0
	dc.w	$b221,$fffe,$186,$6f0,$18e,$5f0
	dc.w	$b321,$fffe,$186,$5f0,$18e,$4f0
	dc.w	$b421,$fffe,$186,$4f0,$18e,$3f0
	dc.w	$b521,$fffe,$186,$3f0,$18e,$2f0
	dc.w	$b621,$fffe,$186,$2f0,$18e,$1f0
	dc.w	$b721,$fffe,$186,$1f0,$18e,$0f0
	dc.w	$b821,$fffe,$186,$0f0,$18e,$0f0
	dc.w	$b921,$fffe,$186,$0f0,$18e,$0f1
	dc.w	$ba21,$fffe,$186,$0f1,$18e,$0f2
	dc.w	$bb21,$fffe,$186,$0f2,$18e,$0f3
	dc.w	$bc21,$fffe,$186,$0f3,$18e,$0f4
	dc.w	$bd21,$fffe,$186,$0f4,$18e,$0f5
	dc.w	$be21,$fffe,$186,$0f5,$18e,$0f6
	dc.w	$bf21,$fffe,$186,$0f6,$18e,$0f7
	dc.w	$c021,$fffe,$186,$0f7,$18e,$0f8
	dc.w	$c121,$fffe,$186,$0f8,$18e,$0f9
	dc.w	$c221,$fffe,$186,$0f9,$18e,$0fa
	dc.w	$c321,$fffe,$186,$0fa,$18e,$0fb
	dc.w	$c421,$fffe,$186,$0fb,$18e,$0fc
	dc.w	$c521,$fffe,$186,$0fc,$18e,$0fd
	dc.w	$c621,$fffe,$186,$0fd,$18e,$0fe
	dc.w	$c721,$fffe,$186,$0fe,$18e,$0ff
	dc.w	$c821,$fffe,$186,$0ff,$18e,$0ff
	dc.w	$c921,$fffe,$186,$0ff,$18e,$0ef
	dc.w	$ca21,$fffe,$186,$0ef,$18e,$0df
	dc.w	$cb21,$fffe,$186,$0df,$18e,$0cf
	dc.w	$cc21,$fffe,$186,$0cf,$18e,$0bf
	dc.w	$cd21,$fffe,$186,$0bf,$18e,$0af
	dc.w	$ce21,$fffe,$186,$0af,$18e,$09f
	dc.w	$cf21,$fffe,$186,$09f,$18e,$08f
	dc.w	$d021,$fffe,$186,$08f,$18e,$07f
	dc.w	$d121,$fffe,$186,$07f,$18e,$06f
	dc.w	$d221,$fffe,$186,$06f,$18e,$05f
	dc.w	$d321,$fffe,$186,$05f,$18e,$04f
	dc.w	$d421,$fffe,$186,$04f,$18e,$03f
	dc.w	$d521,$fffe,$186,$03f,$18e,$02f
	dc.w	$d621,$fffe,$186,$02f,$18e,$01f
	dc.w	$d721,$fffe,$186,$01f,$18e,$00f
	dc.w	$d821,$fffe,$186,$00f,$18e,$00e

* Blue shadow
	dc.w	$d921,$fffe,$188,0,$180,0
	dc.w	$108,-79,$10a,-79		; modulo= -79 bytes (reversed)
	dc.w	$182,5,$184,8,$186,6,$18a,5,$18c,8,$18e,6
	dc.w	$E821,$fffe,$182,4,$184,7,$186,5,$18a,4,$18c,7,$18e,5
	dc.w	$F821,$fffe,$182,3,$184,6,$186,4,$18a,3,$18c,6,$18e,4
	dc.w	$FF21,$fffe,$182,2,$184,5,$186,3,$18a,2,$18c,5,$18e,3
	dc.w	$0821,$fffe,$182,1,$184,4,$186,2,$18a,1,$18c,4,$18e,2
	dc.w	$1021,$fffe,$182,0,$184,3,$186,1,$18a,0,$18c,3,$18e,1
	dc.w	$1521,$fffe,$182,0,$184,2,$186,0,$18a,0,$18c,2,$18e,0
	dc.w	$ffff,$fffe

******************************  TABLES  ****************************************

BlitTab dc.l	$c0ffff00,$30ffff00,$0cffff00,$03ffff00
	dc.l	$00ffffc0,$00ffff30,$00ffff0c,$00ffff03

Sine	dc.b	$88,$89,$8A,$8B,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$96
	dc.b	$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F,$a0,$a1,$a1,$a2,$a3,$a4,$a5
	dc.b	$a6,$a6,$A7,$A8,$A9,$AA,$AA,$AB,$AC,$AD,$AD,$AE,$AF,$B0,$B0,$B1
	dc.b	$B2,$B2,$B3,$B4,$B4,$B5,$B5,$B6,$B6,$B7,$B7,$B8,$B8,$B9,$B9,$BA
	dc.b	$BA,$BB,$BB,$BC,$BC,$BC,$BD,$BD,$BD,$BE,$BE,$BE,$BE,$BF,$BF,$BF
	dc.b	$BF,$BF,$BF,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
	dc.b	$C0,$C0,$BF,$BF,$BF,$BF,$BF,$BF,$BE,$BE,$BE,$BE,$BD,$BD,$BD,$BC
	dc.b	$BC,$BC,$BB,$BB,$BA,$BA,$B9,$B9,$B8,$B8,$B7,$B7,$B6,$B6,$B5,$B5
	dc.b	$B4,$B4,$B3,$B2,$B2,$B1,$B0,$B0,$AF,$AE,$AD,$AD,$AC,$AB,$AA,$AA
	dc.b	$A9,$A8,$A7,$a6,$a6,$a5,$a4,$a3,$a2,$a1,$a1,$a0,$9F,$9E,$9D,$9C
	dc.b	$9B,$9A,$99,$98,$97,$96,$96,$95,$94,$93,$92,$91,$90,$8F,$8E,$8D
	dc.b	$8C,$8B,$8A,$89,$88,$87,$86,$85,$84,$83,$82,$81,$80,$7F,$7E,$7D
	dc.b	$7C,$7B,$7A,$7A,$79,$78,$77,$76,$75,$74,$73,$72,$71,$70,$6F,$6F
	dc.b	$6E,$6D,$6C,$6B,$6A,$6A,$69,$68,$67,$66,$66,$65,$64,$63,$63,$62
	dc.b	$61,$60,$60,$5F,$5E,$5E,$5D,$5C,$5C,$5B,$5B,$5A,$5A,$59,$59,$58
	dc.b	$58,$57,$57,$56,$56,$55,$55,$54,$54,$54,$53,$53,$53,$52,$52,$52
	dc.b	$52,$51,$51,$51,$51,$51,$51,$50,$50,$50,$50,$50,$50,$50,$50,$50
	dc.b	$50,$50,$50,$50,$50,$50,$51,$51,$51,$51,$51,$51,$52,$52,$52,$52
	dc.b	$53,$53,$53,$54,$54,$54,$55,$55,$56,$56,$57,$57,$58,$58,$59,$59
	dc.b	$5A,$5A,$5B,$5B,$5C,$5C,$5D,$5E,$5E,$5F,$60,$60,$61,$62,$63,$63
	dc.b	$64,$65,$66,$66,$67,$68,$69,$69,$6A,$6B,$6C,$6D,$6E,$6F,$6F,$70
	dc.b	$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$7A,$7B,$7C,$7D,$7E,$7F
	dc.b	$80,$81,$82,$83,$84,$85,$86,$87,$88,$88,$89,$8A,$8B,$8C,$8D,$8E
	dc.b	$8F,$90,$91,$92,$93,$94,$95,$96,$96,$97,$98,$99,$9A,$9B,$9C,$9D
	dc.b	$9E,$9F,$a0,$a1,$a1,$a2,$a3,$a4,$a5,$a6,$a6,$A7,$A8,$A9,$AA,$AA
	dc.b	$AB,$AC,$AD,$AD,$AE,$AF,$B0,$B0,$B1,$B2,$B2,$B3,$B4,$B4,$B5,$B5
	dc.b	$B6,$B6,$B7,$B7,$B8,$B8,$B9,$B9,$BA,$BA,$BB,$BB,$BC,$BC,$BC,$BD
	dc.b	$BD,$BD,$BE,$BE,$BE,$BE,$BF,$BF,$BF,$BF,$BF,$BF,$C0,$C0,$C0,$C0
	dc.b	$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$BF,$BF,$BF,$BF,$BF
	dc.b	$BF,$BE,$BE,$BE,$BE,$BD,$BD,$BD,$BC,$BC,$BC,$BB,$BB,$BA,$BA,$B9
	dc.b	$B9,$B8,$B8,$B7,$B7,$B6,$B6,$B5,$B5,$B4,$B4,$B3,$B2,$B2,$B1,$B0
	dc.b	$B0,$AF,$AE,$AD,$AD,$AC,$AB,$AA,$AA,$A9,$A8,$A7,$a6,$a6,$a5,$a4
	dc.b	$a3,$a2,$a1,$a1,$a0,$9F,$9E,$9D,$9C,$9B,$9A,$99,$98,$97,$96,$96
	dc.b	$95,$94,$93,$92,$91,$90,$8F,$8E,$8D,$8C,$8B,$8A,$89,$88,$87,$86
	dc.b	$85,$84,$83,$82,$81,$80,$7F,$7E,$7D,$7C,$7B,$7A,$7A,$79,$78,$77
	dc.b	$76,$75,$74,$73,$72,$71,$70,$6F,$6F,$6E,$6D,$6C,$6B,$6A,$6A,$69
	dc.b	$68,$67,$66,$66,$65,$64,$63,$63,$62,$61,$60,$60,$5F,$5E,$5E,$5D
	dc.b	$5C,$5C,$5B,$5B,$5A,$5A,$59,$59,$58,$58,$57,$57,$56,$56,$55,$55
	dc.b	$54,$54,$54,$53,$53,$53,$52,$52,$52,$52,$51,$51,$51,$51,$51,$51
	dc.b	$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$51
	dc.b	$51,$51,$51,$51,$51,$52,$52,$52,$52,$53,$53,$53,$54,$54,$54,$55
	dc.b	$55,$56,$56,$57,$57,$58,$58,$59,$59,$5A,$5A,$5B,$5B,$5C,$5C,$5D
	dc.b	$5E,$5E,$5F,$60,$60,$61,$62,$63,$63,$64,$65,$66,$66,$67,$68,$69
	dc.b	$69,$6A,$6B,$6C,$6D,$6E,$6F,$6F,$70,$71,$72,$73,$74,$75,$76,$77
	dc.b	$78,$79,$7A,$7A,$7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,$84,$85,$86
	dc.b	$87,$88,0,0,0,0,0,0

font	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00
	dc.b	$00,$78,$3C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$0F,$E0,$1E,$00,$1F,$E0,$FF,$E0,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$70,$00,$01,$F8,$3F,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$3F,$F8,$3E,$00,$7F,$F8,$FF,$F8
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$60,$00
	dc.b	$03,$F8,$3F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$7F,$FC,$3E,$00,$7F,$FC,$FF,$FC,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$E0,$00,$03,$F8,$3F,$80,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$7F,$FC,$7E,$00,$FF,$FC,$FF,$FC
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$00
	dc.b	$07,$C0,$07,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$F8,$7E,$7E,$00,$F0,$1E,$00,$3E,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$07,$80,$03,$C0,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$F0,$FE,$FE,$00,$00,$1E,$00,$1E
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$07,$80,$03,$C0,$00,$00,$00,$00,$00,$00,$FF,$FE,$00,$00,$00,$00
	dc.b	$F1,$FE,$FE,$00,$0F,$FC,$03,$FE,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$07,$80,$03,$C0,$00,$00,$00,$00
	dc.b	$00,$00,$FF,$FE,$00,$00,$00,$00,$F3,$DE,$1E,$00,$3F,$FC,$03,$FC
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$07,$80,$03,$C0,$00,$00,$00,$00,$00,$00,$FF,$FE,$00,$00,$00,$00
	dc.b	$F7,$9E,$1E,$00,$7F,$F8,$03,$FC,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$07,$80,$03,$C0,$00,$00,$00,$00
	dc.b	$00,$00,$FF,$FE,$00,$00,$00,$00,$FF,$1E,$1E,$00,$7F,$E0,$03,$FE
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$07,$80,$03,$C0,$00,$00,$00,$00,$F0,$00,$00,$00,$00,$00,$00,$00
	dc.b	$FE,$1E,$1E,$00,$F8,$00,$00,$1E,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$07,$C0,$07,$C0,$00,$00,$00,$00
	dc.b	$F0,$00,$00,$00,$00,$00,$00,$00,$FC,$3E,$1E,$00,$F0,$00,$00,$3E
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$03,$F8,$3F,$80,$00,$00,$00,$00,$F0,$00,$00,$00,$F0,$00,$00,$00
	dc.b	$7F,$FC,$1E,$00,$FF,$FE,$FF,$FC,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$03,$F8,$3F,$80,$00,$00,$00,$00
	dc.b	$70,$00,$00,$00,$F0,$00,$00,$00,$7F,$FC,$1E,$00,$FF,$FE,$FF,$FC
	dc.b	$00,$00,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$01,$F8,$3F,$00,$00,$00,$00,$00,$60,$00,$00,$00,$F0,$00,$00,$00
	dc.b	$3F,$F8,$1E,$00,$FF,$FE,$FF,$F8,$00,$00,$78,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$78,$3C,$00,$00,$00,$00,$00
	dc.b	$E0,$00,$00,$00,$F0,$00,$00,$00,$0F,$E0,$1E,$00,$FF,$FE,$FF,$E0
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$78,$0F,$7F,$FF,$07,$FF,$7F,$FF
	dc.b	$07,$F0,$07,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$80
	dc.b	$00,$00,$0F,$E0,$FF,$E0,$0F,$FE,$FF,$E0,$0F,$FE,$0F,$FE,$0F,$E0
	dc.b	$78,$0F,$7F,$FF,$1F,$FF,$7F,$FF,$1F,$FC,$1F,$FC,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$01,$FF,$C0,$00,$00,$3F,$F8,$FF,$F8,$3F,$FE
	dc.b	$FF,$F8,$3F,$FE,$3F,$FE,$3F,$F8,$78,$0F,$7F,$FF,$3F,$FF,$7F,$FF
	dc.b	$3F,$FE,$3F,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$C0
	dc.b	$00,$00,$7F,$FC,$FF,$FC,$7F,$FE,$FF,$FC,$7F,$FE,$7F,$FE,$7F,$FC
	dc.b	$78,$0F,$7F,$FF,$3F,$FF,$7F,$FE,$3F,$FE,$3F,$FE,$78,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$01,$C0,$00,$00,$7F,$FC,$FF,$FC,$7F,$FE
	dc.b	$FF,$FC,$7F,$FE,$7F,$FE,$7F,$FC,$78,$0F,$78,$00,$7C,$00,$00,$3E
	dc.b	$7C,$1F,$7C,$1F,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$C0
	dc.b	$00,$00,$F8,$3E,$F0,$3E,$F8,$00,$F0,$3E,$F8,$00,$F8,$00,$F8,$3E
	dc.b	$78,$0F,$78,$00,$78,$00,$00,$7C,$78,$0F,$78,$0F,$78,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$01,$FF,$C0,$00,$00,$F0,$1E,$F0,$1E,$F0,$00
	dc.b	$F0,$1E,$F0,$00,$F0,$00,$F0,$1E,$7C,$0F,$7F,$F0,$7F,$F0,$00,$7C
	dc.b	$3C,$1E,$78,$0F,$78,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$80
	dc.b	$00,$00,$F0,$1E,$F0,$1E,$F0,$00,$F0,$1E,$FF,$80,$FF,$80,$F0,$00
	dc.b	$3F,$FF,$7F,$FC,$7F,$FC,$00,$F8,$1F,$FC,$7C,$0F,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$01,$C0,$00,$00,$00,$F0,$1E,$F0,$3C,$F0,$00
	dc.b	$F0,$1E,$FF,$80,$FF,$80,$F0,$00,$3F,$FF,$7F,$FE,$7F,$FE,$00,$F8
	dc.b	$1F,$FC,$3F,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$C0
	dc.b	$00,$00,$FF,$FE,$F0,$78,$F0,$00,$F0,$1E,$FF,$80,$FF,$80,$F0,$FE
	dc.b	$1F,$FF,$3F,$FE,$7F,$FE,$01,$F0,$3C,$1E,$3F,$FF,$78,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$01,$FF,$C0,$00,$00,$FF,$FE,$F0,$3C,$F0,$00
	dc.b	$F0,$1E,$FF,$80,$FF,$80,$F0,$FE,$07,$FF,$00,$0F,$78,$0F,$01,$F0
	dc.b	$78,$0F,$1F,$FF,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$C0
	dc.b	$00,$00,$FF,$FE,$F0,$1E,$F0,$00,$F0,$1E,$F0,$00,$F0,$00,$F0,$FE
	dc.b	$00,$0F,$78,$0F,$78,$0F,$01,$E0,$7C,$1F,$07,$FF,$78,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FE,$F0,$1E,$F8,$00
	dc.b	$F0,$3E,$F8,$00,$F0,$00,$F8,$3E,$00,$0F,$7F,$FE,$7F,$FE,$01,$E0
	dc.b	$3F,$FE,$00,$0F,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3C,$00
	dc.b	$00,$00,$F0,$1E,$FF,$FC,$7F,$FE,$FF,$FC,$7F,$FE,$F0,$00,$7F,$FE
	dc.b	$00,$0F,$3F,$FE,$3F,$FE,$01,$E0,$3F,$FE,$00,$0F,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$3C,$00,$00,$00,$F0,$1E,$FF,$FC,$7F,$FE
	dc.b	$FF,$FC,$7F,$FE,$F0,$00,$7F,$FE,$00,$0F,$3F,$FC,$3F,$FC,$01,$E0
	dc.b	$1F,$FC,$00,$0F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3C,$00
	dc.b	$00,$00,$F0,$1E,$FF,$F8,$3F,$FE,$FF,$F8,$3F,$FE,$F0,$00,$3F,$FE
	dc.b	$00,$0F,$0F,$F0,$0F,$F0,$01,$E0,$07,$F0,$00,$0F,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$3C,$00,$00,$00,$F0,$1E,$FF,$E0,$0F,$FE
	dc.b	$FF,$E0,$0F,$FE,$F0,$00,$0F,$EE,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
	dc.b	$78,$0F,$7F,$FE,$00,$1E,$F0,$3E,$F0,$00,$0F,$E0,$0F,$E0,$0F,$E0
	dc.b	$FF,$E0,$0F,$E0,$FF,$E0,$0F,$F0,$FF,$E0,$F0,$1E,$F0,$1E,$F0,$1E
	dc.b	$F0,$1E,$F0,$1E,$FF,$FC,$00,$00,$78,$0F,$7F,$FE,$00,$1E,$F0,$7C
	dc.b	$F0,$00,$3F,$F8,$3F,$F8,$3F,$F8,$FF,$F8,$3F,$F8,$FF,$F8,$3F,$FC
	dc.b	$FF,$F8,$F0,$1E,$F0,$1E,$F0,$1E,$78,$3C,$F0,$1E,$FF,$FE,$00,$00
	dc.b	$78,$0F,$7F,$FE,$00,$1E,$F0,$F8,$F0,$00,$7F,$FC,$7F,$FC,$7F,$FC
	dc.b	$FF,$FC,$7F,$FC,$FF,$FC,$7F,$FC,$FF,$FC,$F0,$1E,$78,$3C,$F0,$1E
	dc.b	$78,$3C,$F0,$1E,$FF,$FE,$00,$00,$78,$0F,$7F,$FE,$00,$1E,$F1,$F0
	dc.b	$F0,$00,$7F,$FC,$7F,$FC,$7F,$FC,$FF,$FC,$7F,$FC,$FF,$FC,$7F,$FE
	dc.b	$FF,$FC,$F0,$1E,$78,$3C,$F0,$1E,$3C,$78,$F0,$1E,$FF,$FC,$00,$00
	dc.b	$78,$0F,$03,$C0,$00,$1E,$F3,$E0,$F0,$00,$FB,$BE,$F8,$3E,$F8,$3E
	dc.b	$F0,$3E,$F8,$3E,$F0,$3E,$F0,$1E,$00,$3E,$F0,$1E,$38,$3C,$F0,$1E
	dc.b	$1E,$F0,$F0,$1E,$00,$FC,$00,$00,$78,$0F,$03,$C0,$00,$1E,$F7,$C0
	dc.b	$F0,$00,$F3,$9E,$F0,$1E,$F0,$1E,$F0,$1E,$F0,$1E,$F0,$1E,$F0,$00
	dc.b	$00,$1E,$F0,$1E,$3C,$38,$F0,$1E,$0F,$E0,$F8,$1E,$01,$F8,$00,$00
	dc.b	$7F,$FF,$03,$C0,$00,$1E,$FF,$80,$F0,$00,$F3,$9E,$F0,$1E,$F0,$1E
	dc.b	$F0,$1E,$F0,$1E,$F0,$1E,$7F,$E0,$00,$1E,$F0,$1E,$3C,$78,$F0,$1E
	dc.b	$0F,$E0,$7F,$FE,$03,$F0,$00,$00,$7F,$FF,$03,$C0,$00,$1E,$FF,$00
	dc.b	$F0,$00,$F3,$9E,$F0,$1E,$F0,$1E,$F0,$3E,$F0,$1E,$F0,$3E,$7F,$F8
	dc.b	$00,$1E,$F0,$1E,$1E,$78,$F3,$9E,$07,$C0,$7F,$FE,$07,$E0,$00,$00
	dc.b	$7F,$FF,$03,$C0,$F0,$1E,$FF,$00,$F0,$00,$F3,$9E,$F0,$1E,$F0,$1E
	dc.b	$FF,$FC,$F0,$1E,$FF,$FC,$3F,$FC,$00,$1E,$F0,$1E,$1E,$70,$F3,$9E
	dc.b	$07,$C0,$3F,$FE,$0F,$C0,$00,$00,$7F,$FF,$03,$C0,$F0,$1E,$FF,$80
	dc.b	$F0,$00,$F0,$1E,$F0,$1E,$F0,$1E,$FF,$FC,$F0,$DE,$FF,$FC,$0F,$FC
	dc.b	$00,$1E,$F0,$1E,$0E,$70,$F3,$9E,$0F,$E0,$0F,$FE,$1F,$80,$00,$00
	dc.b	$78,$0F,$03,$C0,$F0,$1E,$F7,$C0,$F0,$00,$F0,$1E,$F0,$1E,$F0,$1E
	dc.b	$FF,$F8,$F0,$FE,$FF,$F8,$00,$1E,$00,$1E,$F0,$1E,$0F,$F0,$F3,$9E
	dc.b	$0F,$E0,$00,$1E,$3F,$00,$00,$00,$78,$0F,$03,$C0,$F8,$3E,$F3,$E0
	dc.b	$F8,$00,$F0,$1E,$F0,$1E,$F8,$3E,$FF,$E0,$F8,$7E,$FF,$F8,$F0,$1E
	dc.b	$00,$1E,$F8,$3E,$0F,$E0,$FB,$BE,$1E,$F0,$F0,$3E,$7E,$00,$00,$00
	dc.b	$78,$0F,$7F,$FE,$7F,$FC,$F1,$F0,$7F,$FE,$F0,$1E,$F0,$1E,$7F,$FC
	dc.b	$F0,$00,$7F,$FC,$F0,$7C,$FF,$FC,$00,$1E,$7F,$FC,$07,$E0,$7F,$FC
	dc.b	$3C,$78,$FF,$FC,$FF,$FE,$00,$00,$78,$0F,$7F,$FE,$7F,$FC,$F0,$F8
	dc.b	$7F,$FE,$F0,$1E,$F0,$1E,$7F,$FC,$F0,$00,$7F,$FC,$F0,$3C,$7F,$FC
	dc.b	$00,$1E,$7F,$FC,$07,$E0,$7F,$FC,$78,$3C,$7F,$FC,$FF,$FE,$00,$00
	dc.b	$78,$0F,$7F,$FE,$3F,$F8,$F0,$7C,$3F,$FE,$F0,$1E,$F0,$1E,$3F,$F8
	dc.b	$F0,$00,$3F,$FE,$F0,$3E,$7F,$F8,$00,$1E,$3F,$F8,$03,$C0,$3F,$F8
	dc.b	$78,$3C,$7F,$F8,$FF,$FE,$00,$00,$78,$0F,$7F,$FE,$0F,$E0,$F0,$3E
	dc.b	$0F,$FE,$F0,$1E,$F0,$1E,$0F,$E0,$F0,$00,$0F,$E6,$F0,$3E,$1F,$E0
	dc.b	$00,$1E,$0F,$E0,$03,$C0,$0F,$E0,$F0,$1E,$1F,$E0,$7F,$FE,$00,$00

	SECTION Stuff,BSS

TextBuf ds.b	4096
SPlane	ds.b	4096

	END
