	bra	Open
Logo	Incbin	News
bitmap1.1	equ	Logo
Bitmap2.1	equ	Logo+3440
Bitmap3.1	equ	Logo+6880
Bitmap4.1	equ	Logo+10320
bitmap1	equ	$70000		;Screen 1 at $70000
bitmap2	equ	$72800		;Screen 2 at $72800
 ** Try changing the following 5 equates for cool fx! **

sped	equ 4			;Scrolly speed (1,2,4 or 8)
yspace1	equ 2			;Sine spacing (Max 512)
yspeed1	equ 8			;Sine wibble speed (max 512)
sinesize	equ 140			;Depth of sinescroller (max 220)
stoptime	EQU 2			;How many seconds scrolly pauses for!

blitwait	macro
.bw\@	btst #6,2(a6)		;Blitwait macro...
	bne.s .bw\@		;Wait for blitter to stop
	endm
Open
	Section Fangs,code_c		;Put everything into chip memory!
	opt c-				;Turn on Case Independant

Start	lea variables(pc),a5	;Variables pointer in A5
	lea custom,a6		;Custom chip pointer in A6

	bsr deselect0		;Turn off drive 0
	bsr trash			;Trash the operating system
	bsr intcustom		;Init Screen size,modulos etc.
	bsr intbuffer		;Init double buffer!
	bsr makecop		;Make the copper list
	bsr initsine		;Init sinetable!

	lea wherecop(pc),a0
	move.l a0,cop1lc(a6)	;Tell system where copper is...
	move.w copjmp1(a6),d0	;And start it
	move.w #$87e0,dmacon(a6)	;Enable Dma.
	move.w #$20,intreq(a6)	;Clear VBI IRQ bit.

   ***********************
   ****** Main loop ******
   ***********************
.button	lea custom,a6
	btst #5,intreqr+1(a6)	;VBI interrupt?
	beq.s .button
	move.w #$20,intreq(a6)	;Clear VBI IRQ bit.

	bsr cls			;Clear screen!
	bsr dosine		;Do sine movement!
	blitwait			;Wait for blitter to stop clearing screen!
	bsr scroll		;Scroll message!
	bsr blitsine		;Blit scrolly onto screen
	bsr doublebuffer		;Double buffer the screen
	Btst	#7,$bfe001
	Beq	Exit
	Btst	#10,$dff016
	Beq	Exit
	btst #6,$bfe001		;Is left mouse button pressed?
	bne.s .button

Exit 	bsr.s untrash		;Bring back operating system
	moveq #0,d0		;Stop a return error!
	rts
	
trash	bset #1,$bfe001		;Turn power light off
	move.l $4.w,a6
	lea gfxname(pc),a1
	moveq #0,d0
	jsr -552(a6)		;Open graphics library
	move.l d0,a0
	move.l 38(a0),syscop(a5)	;Store old system copper address!

	lea custom,a6
	move.w intenar(a6),d0	;Get system IRQ register
	or.w #$8000,d0		;Set top bit (For enable)
	move.w d0,IRQ(a5)		;Store it
	move.w dmaconr(A6),d0	;Get system DMA register
	or.w #$8000,d0		;Set top bit (For enable)
	move.w d0,DMA(a5)		;Store it

	move.w #$7fff,intena(a6)	;All irq off
	move.w #$7fff,dmacon(A6)	;All dma off
	rts

untrash	lea custom,a6
	lea variables(pc),a5

	move.w #$7fff,$96(a6)	;Kill DMA
	move.w #$7fff,$9a(a6)	;Kill IRQ
	move.w DMA(a5),dmacon(A6)	;Restore system DMA
	move.w IRQ(a5),intena(a6)	;Restore system IRQ
	move.w #$7fff,intreq(a6)
	clr.w aud0vol(a6)
	clr.w aud1vol(a6)
	clr.w aud2vol(a6)
	clr.w aud3vol(a6)		;Clear volume registers

	move.l syscop(a5),d0	;Get old system copper address
	move.l d0,cop1lc(a6)	;And restore it!
	move.l $4.w,a6
	lea intname(pc),a1
	moveq #0,d0
	jsr -552(a6)
	move.l d0,a6
	jsr -390(a6)
	bclr #1,$bfe001		;Power light back on
	rts

setmulti	move.w d7,(a0)+		;Copper 32 bit write
	swap d0
	move.w d0,(a0)+
	swap d0
	addq.w #2,d7
	move.w d7,(a0)+
	move.w d0,(a0)+
	addq.w #2,d7
	add.l d5,d0
	dbra d6,setmulti
	rts

intcustom	clr.w bplcon1(a6)		;Scroll value
	clr.w bplcon2(a6)		;Priorities
	clr.w bpl1mod(a6)		;Modulo A
	clr.w bpl2mod(a6)		;Modulo B
	move.w #$0038,ddfstrt(a6)	;Data fetch start
	move.w #$00d0,ddfstop(a6)	;Data fetch stop
	move.w #$2c81,diwstrt(a6)	;Window start
	move.w #$2cc1,diwstop(a6)	;Window stop
	rts

makecop	lea wherecop(pc),a0		;Copperlist address
	
	lea wherespr(pc),a1		;First do sprites..
	move.l a1,d0
	moveq #7,d6		;8 sprites
	move.w #$120,d7		;1st register no.
	moveq #16,d5		;16 bytes per sprite!
	bsr setmulti

	move.l a0,changecop(a5)	;Store copper address (For double buffer!)
	move.l logbase(a5),d0	;Bitmap address
	moveq #1-1,d6		;1 plane
	move.w #$e0,d7		;1st register no.
	moveq #0,d5		;Plane length
	bsr setmulti

	move.l #$01001200,(a0)+	;Set 1 bitplane
	move.l #$01800000,(a0)+	;Colour 0
	Move.w	#$1801,Vpos
	Lea	Col_Bank(Pc),a1
	Move.w	#29,d1
Loo	Move.w	Vpos,(a0)+
	Move.l	#$fffe0180,(a0)+
	Move.w	(a1)+,d2
	Move.w	d2,(a0)+
	Move.w	#$0182,(a0)+
	Mulu	#$111,d2
	move.w	d2,(a0)+
	Add.w	#$680,Vpos
	Dbf	d1,Loo
	Move.l	#$d601fffe,(a0)+
	move.l logoPlace1(a5),d0	;Bitmap address
	moveq #1-1,d6		;1 plane
	move.w #$e0,d7		;1st register no.
	moveq #0,d5		;Plane length
	bsr setmulti
	move.l logoPlace2(a5),d0	;Bitmap address
	moveq #1-1,d6		;1 plane
	move.w #$e4,d7		;1st register no.
	moveq #0,d5		;Plane length
	bsr setmulti
	move.l logoPlace3(a5),d0	;Bitmap address
	moveq #1-1,d6		;1 plane
	move.w #$e8,d7		;1st register no.
	moveq #0,d5		;Plane length
	bsr setmulti
	move.l logoPlace4(a5),d0	;Bitmap address
	moveq #1-1,d6		;1 plane
	move.w #$ec,d7		;1st register no.
	moveq #0,d5		;Plane length
	bsr setmulti
	Move.l	#$01004200,(a0)+
	Move.w	#$0180,Vpos
	Lea	Logo+4*3440,a1
	Move.w	#15,d1
Lopp	Move.w	Vpos,(a0)+
	Move.w	(a1)+,(a0)+
	Add.w	#2,Vpos
	Dbf	d1,lopp
	moveq #-2,d0
	move.l d0,(a0)+		;Wait for the impossible (END!)
	rts

deselect0	lea cia_b,a0
	bset #3,(a0)		;deselect drive 0
	bset #7,(a0)		;switch motor off
	bclr #3,(a0)		;latch motor signal in disk
	rts

 ************************************
 *********** END OF SETUP ***********
 ************************************

intbuffer	move.l #bitmap1,logbase(a5)	;Init doublebuffer screen 1
	move.l #bitmap2,physbase(a5)	;Init doublebuffer screen 2
	Move.l	#bitmap1.1,LogoPlace1(a5)
	Move.l	#bitmap2.1,LogoPlace2(a5)
	Move.l	#bitmap3.1,LogoPlace3(a5)
	Move.l	#bitmap4.1,LogoPlace4(a5)
	rts

doublebuffer
	move.l logbase(a5),d0
	move.l physbase(a5),logbase(a5)
	move.l d0,physbase(a5)

	move.l changecop(a5),a0		;Update copper!
	moveq #0,d6
	move.w #$e0,d7
	moveq #0,d5
	bsr setmulti
	rts

cls	moveq #-1,d0
	move.l d0,bltafwm(a6)		;First and last word mask
	clr.w bltcon1(a6)			;No special modes
	clr.w bltdmod(a6)			;D modulo
	move.w #%0000000100000000,bltcon0(a6) 	;No minterm just enable d!	

	move.l logbase(a5),bltdpt(A6)		;Destination
	move.w #(256<<6)!20,bltsize(a6)	;256 high by 20 words wide
	rts

scroll	tst.w stop(a5)
	ble.s .ok
	subq.w #1,stop(a5)
	rts

.ok	bsr blitshift
	subq.w #sped,scrcount(a5)
	ble.s .gog
	rts
.gog	move.w #16,scrcount(a5)		;Reset counter!

	lea text(pc),a2
	move.w messcount(a5),d0		;Message count
.again	moveq #0,d1
	move.b (a2,d0.w),d1			;Get char
	bne.s .dlf
	clr.w messcount(a5)
	move.w messcount(a5),d0
	bra.s .again			;Wrap at a zero

.dlf	cmp.w #$ff,d1
	bne.s .nstop
	move.w #stoptime*50,stop(a5)		;Trigger stop	
	moveq #32,d1

.nstop	addq.w #1,messcount(a5)		;Update scroll offset
	lea scrarea+82,a0
	lea font,a1

	sub.w #32,d1			;Ascii conversion!
.go	cmp.w #20,d1
	blt.s .nnl			;Next line of chars?
	lea 40*16(a1),a1			;Move down a line!
	sub.w #20,d1
	bra.s .go
.nnl	add.w d1,d1
	add.w d1,a1			;Get to char 

	moveq #15,d0
.xloop	move.w (a1),(a0)			;Plot char!
	add.w #42,a0
	add.w #40,a1
	dbra d0,.xloop			;Loop for 16 high
	rts

blitshift	moveq #-1,d0
	move.l d0,bltafwm(a6)
	clr.w bltamod(a6)
	clr.w bltdmod(a6)
	clr.w bltcon1(a6)

	move.w #%0000100100000000!$f0,d0
	moveq #sped,d1
	neg.w d1
	moveq #12,d2
	lsl.w d2,d1			;Work out speed (shift!)
	or.w d1,d0
	move.w d0,bltcon0(a6)		;D=A Minterm

	move.l #scrarea,d0
	move.l d0,bltdpt(A6)		;Destination
	addq.l #2,d0
	move.l d0,bltapt(a6)		;Source

	move.w #(17<<6)!20,bltsize(a6)
	blitwait
	rts

blitsine	clr.w bltcon1(a6)
	move.w #42-2,bltamod(a6)
	move.w #40-2,bltdmod(a6)
	move.w #40-2,bltbmod(a6)

	move.l logbase(a5),d0
	move.l d0,bltbpt(a6)		;Init destination pointers!
	move.l d0,bltdpt(a6)

	lea masklook(pc),a0
	lea scrpos(pc),a1
	move.l #scrarea+42,a2
	move.l a2,bltapt(a6)		;Init source pointer!
	lea bltafwm(a6),a3
	lea bltsize(a6),a4
	move.l a7,stacksave(a5)		;Save stack!
	lea bltdpt+2(a6),a7
	lea bltapt+2(a6),a5

	moveq #20-1,d7			;20 words
	move.w #(16<<6)!1,d6
	move.w #%0000100100000000!$f0,d5
	move.w #%0000110100000000!$fc,d4

.loop	move.w d5,bltcon0(a6) 		;D=A
	move.w (a0)+,(a3)			;First word mask
	move.w a2,(a5)			;Source
	move.w (a1)+,(a7)			;Destination
	move.w d6,(a4)			;Blitsize
	blitwait

	move.w d4,bltcon0(a6) 		;D=A+B
	rept 15
	move.w (a0)+,(a3)			;First word mask
	move.w a2,(a5)			;Source
	move.w (a1),bltbpt+2(a6)		;Destination
	move.w (a1)+,(a7)			;Destination
	move.w d6,(a4)			;Blitsize
	blitwait
	endr

	addq.w #2,a2			;Next word along!
	dbra d7,.loop

	lea variables(pc),a5
	move.l stacksave(a5),sp
	rts	

initsine	lea originalsine(pc),a0
	move.w #511,d0
.loop1	sub.w #128,(a0)+			;Init original sine
	dbra d0,.loop1

	lea originalsine(pc),a0
	lea sine1(pc),a1
	move.w #511,d0
.loop2	move.w (a0)+,d1
	muls.w #sinesize,d1			;Size!
	asr.w #8,d1
	add.w #sinesize/2,d1
	mulu.w #40,d1			;Multiple of 40!
	move.w d1,(a1)+			;Make sinetable!
	dbra d0,.loop2
	rts

dosine	lea sine1(pc),a0
	lea scrpos(pc),a1
	move.l logbase(a5),a3
	moveq #20-1,d7			;20 words wide!
	move.w sinestart1(a5),d0
	move.w #1022,d3
	move.w #yspace1,d4
.loop	
	rept 16
	and.w d3,d0
	move.w (a0,d0.w),d2
	lea (a3,d2.w),a2			;Add offset 1
	add.w d4,d0			;Spacing 1
	move.w a2,(a1)+			;Scroll position!
	endr

	addq.w #2,a3			;Next word along!
	dbra d7,.loop
	sub.w #yspeed1,sinestart1(a5)
	rts


   *** Equates and data below! ***

custom 	EQU $dff000
bltddat	EQU $000
dmaconr	EQU $002
vposr	EQU $004
vhposr	EQU $006
dskdatr	EQU $008
joy0dat	EQU $00A
joy1dat	EQU $00C
clxdat	EQU $00E
adkconr	EQU $010
pot0dat	EQU $012
pot1dat	EQU $014
potinp	EQU $016
serdatr	EQU $018
dskbytr	EQU $01A
intenar	EQU $01C
intreqr	EQU $01E
dskpt	EQU $020
dsklen	EQU $024
dskdat	EQU $026
refptr	EQU $028
vposw	EQU $02A
vhposw	EQU $02C
copcon	EQU $02E
serdat	EQU $030
serper	EQU $032
potgo	EQU $034
joytest	EQU $036
strEQU	EQU $038
strvbl	EQU $03A
strhor	EQU $03C
strlong	EQU $03E
bltcon0	EQU $040
bltcon1	EQU $042
bltafwm	EQU $044
bltalwm	EQU $046
bltcpt	EQU $048
bltbpt	EQU $04C
bltapt	EQU $050
bltdpt	EQU $054
bltsize	EQU $058
bltcmod	EQU $060
bltbmod	EQU $062
bltamod	EQU $064
bltdmod	EQU $066
bltcdat	EQU $070
bltbdat	EQU $072
bltadat	EQU $074
dsksync	EQU $07E
cop1lc	EQU $080
cop2lc	EQU $084
copjmp1	EQU $088
copjmp2	EQU $08A
copins	EQU $08C
diwstrt	EQU $08E
diwstop	EQU $090
ddfstrt	EQU $092
ddfstop	EQU $094
dmacon	EQU $096
clxcon	EQU $098
intena	EQU $09A
intreq	EQU $09C
adkcon	EQU $09E
aud0lc	EQU $0A0
aud1lc	EQU $0b0
aud2lc	EQU $0c0
aud3lc	EQU $0d0
aud0len	EQU $a4
aud1len	EQU $b4
aud2len	EQU $c4
aud3len	EQU $d4
aud0per	EQU $a6
aud1per	EQU $b6
aud2per	EQU $c6
aud3per	EQU $d6
aud0vol	EQU $a8
aud1vol	EQU $b8
aud2vol	EQU $c8
aud3vol	EQU $d8
aud0dat	EQU $aa
aud1dat	EQU $ba
aud2dat	EQU $ca
aud3dat	EQU $da
bpl1pth	EQU $0E0
bpl2pth	EQU $0E4
bpl3pth	EQU $0E8
bpl4pth	EQU $0EC
bpl5pth	EQU $0F0
bpl6pth	EQU $0F4
bplcon0	EQU $100
bplcon1	EQU $102
bplcon2	EQU $104
bpl1mod	EQU $108
bpl2mod	EQU $10A
bpldat	EQU $110
sprpt	EQU $120
spr	EQU $140
sd_pos	EQU $00
sd_ctl	EQU $02
sd_dataa 	EQU $04
sd_datab 	EQU $08
color00	EQU $180
color01 	EQU $182
color02 	EQU $184
color03	EQU $186
color04	EQU $188
color05	EQU $18a
color06	EQU $18c
color07	EQU $18e
color08	EQU $190
color09	EQU $192
color10	EQU $194
color11	EQU $196
color12	EQU $198
color13	EQU $19a
color14	EQU $19c
color15	EQU $19e
color16	EQU $1a0
color17	EQU $1a2
color18	EQU $1a4
color19	EQU $1a6
color20	EQU $1a8
color21	EQU $1aa
color22	EQU $1ac
color23	EQU $1ae
color24 	EQU $1b0
color25	EQU $1b2
color26	EQU $1b4
color27	EQU $1b6
color28	EQU $1b8
color29	EQU $1ba
color30	EQU $1bc
color31	EQU $1be
diskreg	EQU $bfd100
keydat	EQU $bfec01
keyint	EQU $bfed01
ctrla	EQU $bfee01
ctrlb	EQU $bfef01
ciatl	EQU $bfe401
ciath	EQU $bfe501
cia_a	EQU $bfe001		;disk input bits
cia_b	EQU $bfd100		;disk output bits

intname	dc.b "intuition.library",0
gfxname	dc.b "graphics.library",0
	even

text	DC.B	'      INNER CITY     ',$FF
	DC.B	'       PRESENTS      ',$FF
	DC.B	'  DOCUMENTS DISK #2  ',$FF
	DC.B	'CREDITS GOTO THE FOLLOWING MEMBERS '
	DC.B	'       CODING!       ',$FF
	DC.B	'        FANGS        ',$FF
	DC.B	'       GRAPHIX       ',$FF
	DC.B	'        EDDIE        ',$FF
	DC.B	'ALL DOCUMENTS COLLECTED BY'
	DC.B	'         POD         ',$FF
	DC.B	'AND NOW FOR THE MEMBERS LIST'
	DC.B	'         ADS         ',$FF
	DC.B	'MANAGEMENT + FOUNDER + ORIGINALS SUPPLIER + SWAPPER'
	DC.B	'        CASP         ',$FF
	DC.B	'MUSICIAN'
	DC.B	'         POD         ',$FF
	DC.B	'MANAGEMENT + SWAPPER'
	DC.B	'      ENGINEER       ',$FF
	DC.B	'MODEM TRADER'
	DC.B	'         AXL         ',$FF
	DC.B	'SPECIAL ASSIGNMENTS'
	DC.B	'         DAX         ',$FF
	DC.B	'CODER'
	DC.B	'       HOTWIRE       ',$FF
	DC.B	'CODER'
	DC.B	'        Q.E.D        ',$FF
	DC.B	'CRACKER + CODER'
	DC.B	'      RORSCHACH      ',$FF
	DC.B	'SWAPPER'
	DC.B	'       ALMANAC       ',$FF
	DC.B	'SWAPPER'
	DC.B	'       DENNIS        ',$FF
	DC.B	'GRAPHIX + VIDEO SWAPPER'
	DC.B	'         TNT         ',$FF
	DC.B	'MUSICIAN             '
	DC.B	'       DOMINO        ',$FF
	DC.B	'SWAPPER + VIDEO SWAPPER'
	DC.B	'        RICK         ',$FF
	DC.B	'SWAPPER + VIDEO SWAPPER'
	DC.B	'        FANGS        ',$FF
	DC.B	'CODER + SWAPPER'
	DC.B	'     CRAZY LEGS      ',$FF
	DC.B	'GRAPHIX'
	DC.B	'      KID VIDEO      ',$FF
	DC.B	'ORIGINAL SUPPLIER + VIDEO SWAPPER'
	DC.B	'        SUKY         ',$FF
	DC.B	'ORIGINAL SUPPLIER'
	DC.B	'        EDDIE        ',$FF
	DC.B	'GRAPHIX      '
	DC.B	'AND NOW FOR THE SUPER HOT GREETINGS ... '
	DC.B	'     TEKNO TISKE     ',$FF
	DC.B	'       JROK 90       ',$FF
	DC.B	'        ZARCH        ',$FF
	DC.B	'         COSY        ',$FF
	DC.B	'      DEMOLISHER     ',$FF
	DC.B	'         PIE         ',$FF
	dc.b	'         DUG         ',$FF
	DC.B	'        MOSES        ',$FF
	DC.B	'        WIZOID       ',$FF
	DC.B	'        N.R.G        ',$FF
	DC.B	'         BILL        ',$FF
	DC.B	'    JAILER / FOCUS   ',$FF
	DC.B	'      OMEGA ONE      ',$FF
	DC.B	'       DESTINY       ',$FF
	DC.B	'       SNOWMAN       ',$FF
	DC.B	'         FRED        ',$FF
	DC.B	'        STEVE        ',$FF
	DC.B	'        RANDOM       ',$FF
	DC.B	'      SLIPSTREAM     ',$FF
	DC.B	'         THR         ',$FF
	DC.B	'       EXTREAM       ',$FF
	DC.B	'    PENDEL EUROPA    ',$FF
	DC.B	'       SILENTS       ',$FF
	DC.B	'        MAYHEM       ',$FF
	DC.B	'       QUARTEX       ',$FF
	DC.B	'       ALCATRAZ      ',$FF
	DC.B	'   CONQUEROR + ZIKE  ',$FF
	DC.B	'      FAIRLIGHT      ',$FF
	DC.B	'  VANDAL AND STATIC  ',$FF
	DC.B	'   MAGNETIC FIELDS   ',$FF
	DC.B	'        REBELS       ',$FF
	DC.B	'      CRUSADERS      ',$FF
	DC.B	'       PARADOX       ',$FF
	DC.B	'PLUS ALL THE REST I HAVE MISSED    '
	DC.B	'         WRAP        ',$FF
	even

originalsine
	DC.w 128,129,131,132,134,135,137,138,140,142,143,145,146,148,149
	DC.w 151,152,154,156,157,159,160,162,163,165,166,168,169,171,172
	DC.w 174,175,176,178,179,181,182,184,185,186,188,189,191,192,193
	DC.w 195,196,197,199,200,201,202,204,205,206,207,209,210,211,212
	DC.w 213,215,216,217,218,219,220,221,222,223,224,225,226,227,228
	DC.w 229,230,231,232,233,234,235,236,236,237,238,239,240,240,241
	DC.w 242,243,243,244,245,245,246,246,247,247,248,249,249,250,250
	DC.w 250,251,251,252,252,252,253,253,253,254,254,254,254,255,255
	DC.w 255,255,255,255,255,255,255,255,256,255,255,255,255,255,255
	DC.w 255,255,255,255,254,254,254,254,253,253,253,252,252,252,251
	DC.w 251,250,250,250,249,249,248,247,247,246,246,245,245,244,243
	DC.w 243,242,241,240,240,239,238,237,236,236,235,234,233,232,231
	DC.w 230,229,228,227,226,225,224,223,222,221,220,219,218,217,216
	DC.w 215,213,212,211,210,209,207,206,205,204,202,201,200,199,197
	DC.w 196,195,193,192,191,189,188,186,185,184,182,181,179,178,176
	DC.w 175,174,172,171,169,168,166,165,163,162,160,159,157,156,154
	DC.w 152,151,149,148,146,145,143,142,140,138,137,135,134,132,131
	DC.w 129,127,126,124,123,121,120,118,117,115,113,112,110,109,107
	DC.w 106,104,103,101,99,98,96,95,93,92,90,89,87,86,84
	DC.w 83,81,80,79,77,76,74,73,71,70,69,67,66,64,63
	DC.w 62,60,59,58,56,55,54,53,51,50,49,48,46,45,44
	DC.w 43,42,40,39,38,37,36,35,34,33,32,31,30,29,28
	DC.w 27,26,25,24,23,22,21,20,19,19,18,17,16,15,15
	DC.w 14,13,12,12,11,10,10,9,9,8,8,7,6,6,5
	DC.w 5,5,4,4,3,3,3,2,2,2,1,1,1,1,0
	DC.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	DC.w 0,0,0,0,0,1,1,1,1,2,2,2,3,3,3
	DC.w 4,4,5,5,5,6,6,7,8,8,9,9,10,10,11
	DC.w 12,12,13,14,15,15,16,17,18,19,19,20,21,22,23
	DC.w 24,25,26,27,28,29,30,31,32,33,34,35,36,37,38
	DC.w 39,40,42,43,44,45,46,48,49,50,51,53,54,55,56
	DC.w 58,59,60,62,63,64,66,67,69,70,71,73,74,76,77
	DC.w 79,80,81,83,84,86,87,89,90,92,93,95,96,98,99
	DC.w 101,103,104,106,107,109,110,112,113,115,117,118,120,121,123
	DC.w 124,126

sine1	ds.w 512

masklook	
	rept 20
	dc.w %1000000000000000
	dc.w %0100000000000000
	dc.w %0010000000000000
	dc.w %0001000000000000
	dc.w %0000100000000000
	dc.w %0000010000000000
	dc.w %0000001000000000
	dc.w %0000000100000000
	dc.w %0000000010000000
	dc.w %0000000001000000
	dc.w %0000000000100000
	dc.w %0000000000010000
	dc.w %0000000000001000
	dc.w %0000000000000100
	dc.w %0000000000000010
	dc.w %0000000000000001
	endr

shftlook	dc.w $09f0,$19f0,$29f0,$39f0,$49f0,$59f0,$69f0,$79f0
	dc.w $89f0,$99f0,$a9f0,$b9f0,$c9f0,$d9f0,$e9f0,$f9f0

scrpos	ds.w 320

	rsreset
syscop	rs.l 1
irq	rs.w 1
dma	rs.w 1
physbase	rs.l 1
logbase	rs.l 1
changecop	rs.l 1
scrcount	rs.w 1
stop	rs.w 1
messcount	rs.w 1
LogoPlace1	Rs.l 1
LogoPlace2	Rs.l 1
LogoPlace3	Rs.l 1
LogoPlace4	Rs.l 1
Vpos	Rs.w	0
Col_bank	dc.w	1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0

sinestart1 rs.w 1
stacksave	rs.l 1

varisize	rs.w 0
Variables	dcb.b varisize,0

wherespr	dcb.b 16*8,0	;128 bytes for hardware sprites
wherecop 	dcb.b 2000,0	;2k for copper list
**************************
	section bud,data_c
font	incbin	FONT.RAW

	section cake,bss_C
scrarea	ds.b 42*20
