*************************************************************************
*			P.O.V. 103 menu					*
*			---------------					*
*									*
* Written by MAC SYS DATA						*
*									*
*									*
* Music from PREHISTORIC TALE high score				*
*									*
*************************************************************************
	OPT	o+,w-

BUFFER_SIZE	EQU	16*8
WIDTH		EQU	16

	bsr	set_super
	move.b	#$12,$fffffc02.w
	or.b	#2,$ffff820a.w	;50Hz

	lea	screens,a0
clr	clr.l	(a0)+
	cmp.l	#stopper,a0
	blt.s	clr

	bsr	get_screen_base
	movem.l	$ffff8240.w,d0-d7
	movem.l	d0-d7,old_palette
	movem.l	pic+2,d0-d7
	movem.l	d0-d7,$ffff8240.w
	bsr	get_original_rez
	clr.b	$ffff8260.w
	move.l	#screens,d0
	clr.b	d0
	move.l	d0,screen_base
	lsr.l	#8,d0
	lea	$ffff8201.w,a0
	movep.w	d0,(a0)

	bsr	show_pic

	moveq.l	#1,d0		;PREHISTORIC TALE HIGH SCORE MUSIC
	jsr	tune
	bsr	save_isr


main_loop
	clr.w	vsync_flag
wai	tst.w	vsync_flag
	beq.s	wai

;	move.w	#$700,$ffff8244.w
	bsr	clear_spec
	jsr	tune+8
	bsr	calc_spec
	bsr	scroll
	bsr	scroll
	bsr	scroll
	bsr	copy_scroll
;	move.w	pic+6,$ffff8244.w

	move.w	key,d0

	cmp.b	#1,d0			;escape
	beq	exit

	cmp.b	#$b,d0		;0 key
	beq	zero

	cmp.b	#$70,d0		;0 keypad
	beq	zero
no_hertz_change

	cmp.w	#$c53,d0
	beq	reset

; now scan keys for valid press
	lea	key_codes,a0
	move.b	key+1,d0
.loop	cmp.b	#$ff,(a0)
	beq.s	main_loop
	cmp.b	(a0)+,d0
	beq.s	load
	move.b	(a0)+,d1
	bra.s	.loop

load	move.b	(a0),-(sp)	;key press offset

	bsr	reset_isr

	moveq	#0,d0
	move.b	(sp)+,d0
	lsl.w	#2,d0		*4
	lea	filenames,a0
	move.l	(a0,d0),a0
	lea	$200.w,a1
	move.l	(a0)+,(a1)+		;AUTORUN 4 load system
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+

	tst.w	hertz_toggle
	beq.s	hz50
	and.b	#%11111101,$ffff820a.w	;60Hz
hz50	move.b	old484,$484.w
	movem.l	old_palette,d0-d7
	movem.l	d0-d7,$ffff8240.w
	bsr	set_low_rez
	move.b	#8,$fffffc02.w
	bsr	set_user
	clr.w	-(sp)
	trap	#1


exit	bsr	reset_isr
	movem.l	old_palette,d0-d7
	movem.l	d0-d7,$ffff8240.w
	bsr	set_med_rez
	move.b	#8,$fffffc02.w
	bsr	set_user
	clr.w	-(sp)
	TRAP	#1


zero	tst.w	zero_counter
	bne	no_hertz_change
	eor.w	#$230,border_hz+2
	move.w	#10,zero_counter
	eor.w	#-1,hertz_toggle
	bra	main_loop

reset	move.l	4.w,-(sp)
	rts

*******************
* CUSTOM ROUTINES *
*******************
scroll	move.l	line_ptr,a0	;need a new letter?
	cmp.b	#$ff,(a0)
	bne.s	loop3
	lea	scroll_line,a0	;restart message
	move.l	a0,line_ptr
loop3:	tst.w	scroll_number
	bne.s	loop2
	move.w	#WIDTH,scroll_number
	moveq.l	#0,d0
	move.l	d0,d1
	move.b	(a0)+,d0
	move.l	a0,line_ptr
	sub.w	#32,d0
	lsl.w	#5,d0	;*32
	lea	font,a0
	add.w	d0,a0	;letter address is in A0
;transfer letter into buffer
	lea	buffer,a1
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0),(a1)

loop2	move.l	screen_base,a0
	add.w	#(160*10),a0
	move.l	a0,a2
	add.w	#152,a2
	lea	buffer,a1
;scroll buffer into right pixel of screen ready for scrolling
	REPT	16
	roxl.w	(a1)
	move.w	(a1)+,d0
	and.w	#1,d0
	or.w	d0,(a2)
	lea	160(a2),a2
	ENDR

	move.w	#16-1,d0
loopy:	roxl.w	152(a0)
	roxl.w	144(a0)
	roxl.w	136(a0)
	roxl.w	128(a0)
	roxl.w	120(a0)
	roxl.w	112(a0)
	roxl.w	104(a0)
	roxl.w	96(a0)
	roxl.w	88(a0)
	roxl.w	80(a0)
	roxl.w	72(a0)
	roxl.w	64(a0)
	roxl.w	56(a0)
	roxl.w	48(a0)
	roxl.w	40(a0)
	roxl.w	32(a0)
	roxl.w	24(a0)
	roxl.w	16(a0)
	roxl.w	8(a0)
	move.w	(a0),d7
	and.w	#$7fff,d7
	roxl.w	#1,d7
	move.w	d7,(a0)
	add.w	#160,a0
	dbf	d0,loopy
	subq.w	#1,scroll_number
	rts


copy_scroll
	move.l	screen_base,a1
	lea	160*11(a1),a1
	move.l	a1,a2
	add.l	#160*225+4,a2
	move.w	#15-1,d0
.loop
OFF	set	0
	REPT	20
	move.w	OFF(a1),OFF(a2)
OFF	set OFF+8
	ENDR
	lea	160(a1),a1
	lea	160(a2),a2
	dbf	d0,.loop
	rts

******************************
*                            *
* Spectrum Analyser routines *
*                            *
******************************

MAX_BARS	equ	80
AFINE	equ	0
ACOURSE	equ	1	
BFINE	equ	2
BCOURSE	equ	3	
CFINE	equ	4
CCOURSE	equ	5	
AAMP	equ	8
BAMP	equ	9
CAMP	equ	10

clear_spec
	move.l	screen_base,a1
	add.l	#160*214+(160*16),a1
	moveq	#0,d0
	REPT	(20*26)
	move.w	d0,(a1)
	addq.w	#8,a1
	ENDR
	rts

calc_spec
	lea	spec_values,a0
	moveq	#(MAX_BARS-1),d0
.cnt_down
	tst.w	(a0)+
	beq.s	.next
	subq.w	#1,-2(a0)
.next	dbf	d0,.cnt_down

	lea	$ffff8800.w,a1
	lea	spec_values,a2
	lea	spec_data,a3
	moveq	#12,d2

	move.b	#AAMP,(a1)
	move.b	(a1),d1
	and.b	#15,d1
	beq.s	bchan
	moveq	#0,d0
	move.b	#ACOURSE,(a1)
	move.b	(a1),d0
	lsl.w	#8,d0
	move.b	#AFINE,(a1)
	move.b	(a1),d0
	tst.w	d0
	beq.s	bchan

	add.w	d0,d0
	move.w	(a3,d0),d0
	bmi.s	bchan
	add.w	d0,d0
	move.w	d2,(a2,d0)

******************
bchan
	move.b	#BAMP,(a1)
	move.b	(a1),d1
	and.b	#15,d1
	beq.s	cchan
	moveq	#0,d0
	move.b	#BCOURSE,(a1)
	move.b	(a1),d0
	lsl.w	#8,d0
	move.b	#BFINE,(a1)
	move.b	(a1),d0
	tst.w	d0
	beq.s	cchan

	add.w	d0,d0
	move.w	(a3,d0),d0
	bmi.s	cchan
	add.w	d0,d0
	move.w	d2,(a2,d0)

******************
cchan
	move.b	#CAMP,(a1)
	move.b	(a1),d1
	and.b	#15,d1
	beq.s	ps
	moveq	#0,d0
	move.b	#CCOURSE,(a1)
	move.b	(a1),d0
	lsl.w	#8,d0
	move.b	#CFINE,(a1)
	move.b	(a1),d0
	tst.w	d0
	beq.s	ps

	add.w	d0,d0
	move.w	(a3,d0),d0
	bmi.s	ps
	add.w	d0,d0
	move.w	d2,(a2,d0)

******************** print speccy *******************
ps
	move.l	screen_base,a0
	add.l	#(26*160)+160*216,a0

	lea	spec_values,a2
	moveq	#(80/4)-1,d1
.loop	move.w	(a2)+,d0
	beq.s	.nib2
	move.l	a0,a1
	lea	160(a0),a3
	moveq	#%11100000,d2
.loop1	move.b	d2,(a1)
	move.b	d2,(a3)
	lea	-160(a1),a1
	lea	160(a3),a3
	dbf	d0,.loop1

.nib2
	move.w	(a2)+,d0
	beq.s	.nib3
	move.l	a0,a1
	lea	160(a0),a3
	moveq	#%00001110,d2
.loop2	or.b	d2,(a1)
	or.b	d2,(a3)
	lea	-160(a1),a1
	lea	160(a3),a3
	dbf	d0,.loop2

.nib3
	move.w	(a2)+,d0
	beq.s	.nib4
	lea	1(a0),a1
	lea	161(a0),a3
	moveq	#%11100000,d2
.loop3	move.b	d2,(a1)
	move.b	d2,(a3)
	lea	-160(a1),a1
	lea	160(a3),a3
	dbf	d0,.loop3

.nib4
	move.w	(a2)+,d0
	beq.s	.nonib
	lea	1(a0),a1
	lea	161(a0),a3
	moveq	#%00001110,d2
.loop4	or.b	d2,(a1)
	or.b	d2,(a3)
	lea	-160(a1),a1
	lea	160(a3),a3
	dbf	d0,.loop4

.nonib	addq.w	#8,a0
	dbf	d1,.loop
	rts

save_isr
	move.b	$484.w,old484
	clr.l	hertz_toggle
	move.w	#$2700,sr
	move.l	$120.w,old120
	move.l	$118.w,old118
	move.l	$70.w,old70
	move.b	$fffffa11.w,save1
	move.b	$fffffa21.w,save2
	move.b	$fffffa07.w,save3
	move.b	$fffffa09.w,save4
	move.b	$fffffa0f.w,save5
	move.b	$fffffa13.w,save6
	move.b	$fffffa1b.w,save7
	move.b	$fffffa1d.w,save8
	clr.b	$fffffa1d.w
	andi.b	#$df,$fffffa09.w
	andi.b	#$fe,$fffffa07.w
	move.l	#null,$120.w
	move.l	#new70,$70.w
	move.l	#new118,$118.w
	bclr	#3,$fffffa17.w		set AEI mode
	ori.b	#1,$fffffa07.w
	ori.b	#1,$fffffa13.w
	move.w	#$2300,sr
	rts

reset_isr
	move.w	#$2700,sr
	move.l	old120,$120.w
	move.l	old118,$118.w
	move.l	old70,$70.w
	move.b	save3,$fffffa07.w
	move.b	save6,$fffffa13.w
	move.b	save4,$fffffa09.w
	move.b	save7,$fffffa1b.w
	move.b	save8,$fffffa1d.w
	move.b	save2,$fffffa21.w
	move.b	save1,$fffffa11.w
	move.b	save5,$fffffa0f.w
	lea	$ffff8800.w,a0
	move.l	#$8080000,(a0)
	move.l	#$9090000,(a0)
	move.l	#$a0a0000,(a0)
	move.w	#$2300,sr
	rts



***********************
* SUBROUTINES SECTION *
***********************
show_pic
	move.l	screen_base,a1
	add.w	#160*29,a1
	lea	pic+34,a0
	move.w	#32000/4-1,d0
.loop	move.l	(a0)+,(a1)+
	dbf	d0,.loop
	rts

set_super
	clr.l	-(sp)
	move.w	#$20,-(sp)
	trap	#1
	addq.l	#6,sp
	move.l	d0,stack_save
	rts

set_user
	move.l	stack_save,-(sp)
	move.w	#$20,-(sp)
	trap	#1
	addq.l	#6,sp
	rts

set_new_palette
	lea	pic+2,a0
	bra.s	set_pal
set_old_palette
	lea	old_palette,a0
set_pal	lea	$ffff8240.w,a1
	movem.l	(a0)+,d0-d7
	movem.l	d0-d7,(a1)
	rts

get_screen_base
	move.w	#3,-(sp)
	trap	#14
	addq.l	#2,sp
	move.l	d0,org_base
	rts

get_original_rez
	move.w	#4,-(sp)
	trap	#14
	addq.l	#2,sp
	move.w	d0,original_rez
	rts

set_low_rez
	clr.w	-(sp)
	bra.s	set_rez
set_med_rez
	move.w	#1,-(sp)
set_rez	move.l	org_base,-(sp)
	move.l	(sp),-(sp)
	move.w	#5,-(sp)
	trap	#14
	add.l	#12,sp
	rts


******************************
*     INTERRUPT ROUTINES     *
******************************


new120	move.w	next_colour,$ffff8240.w		;poke straight away
	move.l	a0,-(sp)
	move.l	isr_data,a0
	move.w	(a0)+,next_colour
	move.w	(a0),next_colour
	move.l	a0,isr_data
	move.l	(sp)+,a0
	cmp.w	#6,counter
	bne.s	.no
	move.l	#new120_part2,$120.w
.no	addq.w	#1,counter
	rte

new120_part2
	move.w	next_colour,$ffff8240.w		;poke straight away
scroll_raster
	move.w	#$010,$ffff8242.w
	move.l	a0,-(sp)	;$120		to stop jitter

	move.l	top_raster_pos,a0
	move.w	(a0)+,scroll_raster+2
	move.l	a0,top_raster_pos

	move.l	isr_data,a0
	move.w	(a0)+,next_colour
	move.l	a0,isr_data

	move.l	(sp)+,a0

	cmp.w	#8+17,counter
	bne.s	.no
	move.l	#new120_part3,$120.w
	move.w	pic+4,$ffff8242.w

.no	addq.w	#1,counter
	rte

new120_part3
	move.w	next_colour,$ffff8240.w		;poke straight away
	move.l	a0,-(sp)	;$120		to stop jitter
	move.l	isr_data,a0
	move.w	(a0)+,next_colour
	move.l	a0,isr_data
	move.l	(sp)+,a0

	cmp.w	#226,counter
	beq.s	.do
	addq.w	#1,counter
	rte

.do	clr.w	counter
	move.l	#border,$120.w
	rte

border	movem.l	d0/a0,-(sp)
	move.w	#37,d0
.aaa	dbf	d0,.aaa
	nop
	nop
	nop
	nop
	nop
	move.b	#0,$ffff820a.w
border_hz
	move.w	#$237,$ffff8240.w
	nop
	nop
	nop
	nop
	nop
	move.b	#2,$ffff820a.w
	lea	border_rasters,a0
	move.w	#27-1,d0
col_loop
	move.w	(a0),$ffff8240+10.w
	move.w	(a0)+,$ffff8242.w
	move.w	54(a0),$ffff8240+8.w
	REPT	120-4-5
	nop
	ENDR
	dbf	d0,col_loop

	move.w	pic+4,$ffff8242.w
	move.w	pic+6,$ffff8244.w
	move.w	pic+8,$ffff8246.w
	move.w	pic+10,$ffff8248.w
	move.w	pic+12,$ffff824a.w
	move.w	pic+14,$ffff824c.w
	move.w	pic+16,$ffff824e.w
	move.w	pic+18,$ffff8250.w
	move.w	pic+20,$ffff8252.w
	move.w	pic+22,$ffff8254.w
	move.w	pic+24,$ffff8256.w
	move.w	pic+26,$ffff8258.w
	move.w	pic+28,$ffff825a.w
	move.w	pic+30,$ffff825c.w
	move.w	pic+32,$ffff825e.w
	clr.b	$fffffa1b.w
	movem.l	(sp)+,d0/a0
	move.l	#null,$120.w
null	rte


new70	move.w	#$2700,sr
	movem.l	d0-d7,-(sp)
	movem.l	pic+2,d0-d7
	movem.l	d0-d7,$ffff8240.w
	movem.l	(sp)+,d0-d6

	move.w	#$580,d7
.aaa	dbf	d7,.aaa

	clr.b	$ffff820a.w

	move.w	#0,$ffff8240.w		;used as timing
	nop

	move.b	#2,$ffff820a.w

	move.l	(sp)+,d7
	st	vsync_flag
	move.l	#new120,$120.w
	move.l	#b_line,isr_data
	move.l	#top_rasters,top_raster_pos
	move.w	#$010,scroll_raster+2
	tst.w	zero_counter
	beq.s	.no
	subq.w	#1,zero_counter
.no
	clr.b	$fffffa1b.w
	move.b	#1,$fffffa21.w
	move.b	#8,$fffffa1b.w
	rte

new118	movem.l	d0,-(sp)
	move.b	$fffffc02.w,d0
	cmp.b	#$1d,d0
	bne.s	.k1
	bset	#2,key
.k1	cmp.b	#$9d,d0
	bne.s	.k2
	bclr	#2,key
.k2	cmp.b	#$38,d0
	bne.s	.k3
	bset	#3,key
.k3	cmp.b	#$b8,d0
	bne.s	.k4
	bclr	#3,key
.k4	move.b	d0,key+1
	bclr	#6,$fffffa11.w
	movem.l	(sp)+,d0
	rte












****************
* DATA SECTION *
****************
stack_save	dc.l	0
screen_base	dc.l	0
org_base	dc.l	0
original_rez	dc.w	0

******************* isr details *******
counter	dc.w	0
vsync_flag	dc.w	0

old120	dc.l	0
old70	dc.l	0
old118	dc.l	0
save1	dc.b	0
save2	dc.b	0
save3	dc.b	0
save4	dc.b	0
save5	dc.b	0
save6	dc.b	0
save7	dc.b	0
save8	dc.b	0
	even
pic	incbin	yes1.pi1
tune	incbin	high_scr.mus

isr_data	dc.l	b_line

next_colour	dc.w	$000

b_line:
 dc.w	$001,$001,$002,$002,$012,$012,$013,$013,$113,$113
 dc.w	$114,$114,$124,$124,$125,$125,$126,$126
 dcb.w	46,$237
 dc.w	$337,$237,$337,$237,$337,$337,$237,$337,$337,$337,$337
 dc.w	$347,$337,$347,$337,$347,$347,$337,$347,$347,$347,$347
 dc.w	$447,$347,$447,$347,$447,$447,$347,$447,$447,$447,$447
 dc.w	$457,$447,$457,$447,$457,$457,$447,$457,$457,$457,$457
 dc.w	$557,$457,$557,$457,$557,$557,$457,$557,$557,$557,$557
 dc.w	$567,$557,$567,$557,$567,$567,$557,$567,$567,$567,$567
 dc.w	$667,$567,$667,$567,$667,$667,$567,$667,$667,$667,$667
 dc.w	$677,$667,$677,$667,$677,$677,$667,$677,$677,$677,$677
 dc.w	$777,$677,$777,$677,$777,$777,$677,$777,$777,$777,$777
 dcb.w	10,$777
 dc.w	$677,$777,$677,$567,$763,$763,$763,$763,$763,$763,$763
 dc.w	$567,$567,$567,$567
 dc.w	$357,$567,$357,$357,$357,$357,$247,$357
 dcb.w	9,$247
 dc.w	$237,$247,$247,$237,$247
 dcb.w	16,$237
 dc.w	0,0,0,0,0,0,0,0,0,0
	even


scroll_number	dc.w	16
line_ptr	dc.l	scroll_line
buffer		dcb.b	BUFFER_SIZE,0

scroll_line
 dc.b "   PERSISTENCE OF VISION PACKED DEMO DISC 103.    "
 dc.b "THIS MENU IS DEDICATED TO OZ OUR GRAFIX ARTIST WHO DESIGNED THE "
 DC.B "PICTURE TO HAVE BACKGROUND RASTERS.     CREDITS: MENU CODED BY M.S.D.,   "
 DC.B "GRAFIX BY OZ (OF COURSE) AND MUSIC FROM PRE-HISTORIC TALE BY MAD MAX.    "
 DC.B "RELEASE DATE 1ST MARCH 1992.       AT LAST IT'S OUT, I WAITED A LONG TIME TO "
 DC.B "RELEASE THIS DISC, IT MUST HAVE BEEN READY FOR OVER 3 MONTHS BUT I HAD "
 DC.B "TO WORK ON POV 100.    THIS DISC HAS BEEN RELEASE IN A BATCH "
 DC.B "OF OVER 10 DISCS AS A COME BACK FOR POV.    IF YOU READ THE SCROLL "
 DC.B "TEXT ON DISC 99 THEN YOU WILL KNOW THAT WE WERE GIVING UP FOR A WHILE WELL, "
 DC.B "WE LIED!  THE REASON FOR NO DISC RELEASES WAS THAT BOTH BORIS AND "
 DC.B "I WERE WORKING ON OTHER PROJECTS.  I AM NOW FREE TO CODE WHATEVER I WANT "
 DC.B "AND BORIS WILL BE FREE SOON FOR SOME MENU MAKING.     "
 DC.B "I WILL TRY TO GET DISCS UPTO 125 OUT BEFORE I START ON MY "
 DC.B "NEXT PROJECT.     THERE IS A RUMOUR ABOUT US WORKING ON A "
 DC.B "GAME..... WELL IF I AM I MUST DO IT IN MY SLEEP!  HOWEVER BORIS HAS JUST "
 DC.B "FINISHED CONVERTING THE GAME LEANDER FROM THE AMIGA TO THE ST SO GO BUY IT. "
 DC.B "                    OKAY HERE ARE THE GREETINGS....... "
 DC.B "MEGA GREETS TO   OZ,   BORIS,   RED MERCURY (KGB),   BILBO (RIPPED OFF),   "
 dc.b "SPEED (THE SOURCE),   MUG UK (THE SOURCE),   DR.SYNE (ZEN),   "
 DC.B "GEORGE (TOWER PD)   AND   DEL (D.W. STABLES PD).       "
 DC.B "NORMAL GREETS TO STU (MR.X OF PROPHECY PD AND THE SOURCE),   SWSL,   "
 DC.B "DELTA FORCE,   CAPTAIN HACKS,   ADRENALIN,   ERIK PLANKTON + "
 DC.B "BLIND BASTARD AND FINALLY THE PIXEL TWINS.            "
 dc.b "QUESTION FOR ALL YOU PEOPLE OUT THERE WHO CAN'T OR DON'T "
 DC.B "WRITE DEMOS OR MENUS...   IF YOU WROTE A SCROLL TEXT, WHAT "
 DC.B "WOULD YOU WRITE?                 OKAY SO YOU'VE WRITTEN ONE "
 DC.B "SCROLL TEXT FOR ONE DISC.   NOW WRITE ANOTHER AND DON'T REPEAT "
 DC.B "THINGS FROM THE FIRST.                WELL?        NOT TOO EASY "
 DC.B "IS IT?       ONCE YOU'VE THOUGHT OF SOMETHING NEW TO WRITE "
 DC.B "AND IT'S IN 'DC.B' STATEMENTS IN THE ASSEMBLER (OR AN INCBIN) "
 DC.B "THEN HAVE A LOOK HOW LONG IT IS.      IT LOOKS A LOT DOESN'T IT? "
 DC.B "       RIGHT ASSEMBLE IT AND READ IT THROUGH.     YOU'LL "
 DC.B "REALISE THAT THE TEXT DISAPPEARS RATHER FAST SO YOU HAVE "
 DC.B "TO WRITE MORE WAFFLE.   WELL IT CARRIES ON LIKE THIS FOR "
 DC.B "A WHILE THEN YOU'LL ADD THE GREETINGS AND GIVE UP.    "
 DC.B "IF YOU ASK MOST MENU MAKERS WHAT THE HARDEST PART OF A MENU IS "
 DC.B "THEN I CAN BET THAT MOST WILL SAY THE SCROLL TEXT!      "
 DC.B "           RIGHT THIS TEXT IS SHORT AS I'VE GOT MORE MENUS "
 DC.B "TO FINISH, SO HERE COMES THE WRAPPER...        "
 DC.B "                                                          "
 dc.b	$ff

font	incbin	med_font.dAT


*************** spectrum analyzer bits and bobs ***********
spec_data	incbin	SPECTRUM.DAT
spec_values	dcb.w	MAX_BARS,0
***********************************************************

top_raster_pos

top_rasters
 dc.w	$020,$030,$040,$050,$060,$070
 dc.w	$1f0,$2f0,$3f0,$4f0,$5f0,$6f0,$7f0
 dc.w	$f70,$f60,$f50,$f40,$f30,$f20,$f10

border_rasters
	dc.w	$800,$180,$910,$290,$a20,$3a0,$b30,$4b0
	dc.w	$c40,$5c0,$d50,$6d0,$e60,$7e0,$f70
	dc.w	$ff0,$770,$ee0,$660,$dd0,$550,$cc0,$440
	dc.w	$bb0,$330,$aa0,$220

;bottom scroller colour
	dc.w	0,0,0,0,0,0,0,0
	dc.w	$017,$027,$037,$047,$057,$067,$077
	dc.w	$076,$075,$074,$073,$072,$071,$070,$060

key_codes
	dc.b	2,0	;key 1
	dc.b	3,1
	dc.b	4,2
	dc.b	5,3	;key 4
;	dc.b	6,4	;key 5
;	dc.b	7,5	;key 6

	dc.b	$6d,0	;keypad 1
	dc.b	$6e,1
	dc.b	$6f,2
	dc.b	$6a,3	;keypad 4
;	dc.b	$6b,4	;keypad 5
;	dc.b	$6c,5	;keypad 6
	dc.b	$ff
	even

filenames	dc.l	exec1,exec2,exec3,exec4

exec1	dc.b	"klf",0
	even
exec2	dc.b	"3615gen4",0
	even
exec3	dc.b	"EMPIRE",0
	even
exec4	dc.b	"copier.pov",0
	even



*****************************
	SECTION BSS
*****************************

old_palette	ds.w	16

hertz_toggle	ds.w	1
zero_counter	ds.w	1

old484		ds.b	1
key		ds.w	1
	even
	ds.b	256
screens	ds.b	160*29
	ds.b	160*200
	ds.b	160*47
stopper