		section	lowmem,code_c	; place in chipmemory only
		opt	o+,c-		; optimize on,no case sensitivity

*****************************************************************************
*									    *
* 		     AMIGA CODERS CLUB (ACC) MENU PROJECT 	            *
*               ----------------------------------------------              *
*									    *
* This menu system was developed by Trevor Mensah exclusivly for the ACC    *
* club source disk. If anybody has any critisms,ideas for improvment,etc    *
* I can be contacted at the address shown in the scroller of this menu      *
*									    *
* 18/07/91								    *
* -- 7.10 pm  Started project, begin nice copperlist colours , put in the   *
* text printer routines,scroller,stars,etc 				    *
*									    *
* -- 8.?? pm  Developed keyboard reading system for submenu selection,	    *
* enabled an level 6 interrupt for stars and scroller to go on while        *
* keyboard was being read by waiting for vpos.				    *
*									    *
* -- 9.07 pm  Added utils-:Fast-memory off/Reset, re-wrote part of the	    *
* keyboard reading system --> shortened some of the coding.. Began to add   *
* loading system.							    *
*									    *
* 19/07/91								    *
* -- 6.40 pm  Finished loading system,typed filename to load,etc Fixed menu *
* text... ---> Changed screenwidth ---> now runs in runs in overscan full   *
* screen ---> more tweaking of text. Screen memory now allocated using BSS  *
* hunk.. (saves disk space)						    *
*									    *
* -- 8.35 pm  Added noisetracker music player, Added screen wipe routine    *
* for better presentation when changing from menus.....	typed some greets   *
* etc,. in scroller ?!!							    *
*									    *
*****************************************************************************

ACCmenuV1	movem.l	a0-a6/d0-d7,-(a7)	; preserve all regesters
		move.l	a7,Stackpoint		; preserve stack to stackpointer
		bsr.s	Take_OS			; store all OS info then kill it 

		bsr.s	Init_Planes		; initialise bitplane pointers
		bsr	mt_init			; initialise music replayer
		move.l  #interrupt,$6c.w	; start interrupt
		bsr	Getselection		; main vpos wait loop

		bra	quitmenu		; restore OS by restoring old info

*****************************************************************************
* Initialize Bitplane pointers to their new memory locations
*****************************************************************************

Init_planes	move.l	#screen+0,d0		; get screen ptr in d0 
		move.w	d0,pl1l			; find bpl1ptl (low word) 
		swap	d0			; swap to get high word
		move.w	d0,pl1h			; find bpl1pth (high word)

		move.l	#screen+screenwidth,d0	; get screen ptr in d0 
		move.w	d0,pl2l			; find bpl1ptl (low word) 
		swap	d0			; swap to get high word
		move.w	d0,pl2h			; find bpl1pth (high word)

		move.l	#Sprite,d0		Address of Stars
		lea	Sp_Ptr(pc),a0  		pointers in Coperlist
		move.w	d0,6(a0)		Load high word
		swap	d0			swap words
		move.w	d0,2(a0)		Load low words
	        move.l	#Sprite_Empty,d0	Empty Sprite
		lea	Sp_Ptr(pc),a0		Pointers in copper
		addq.l	#8,a0			Point Past Sprite0
		moveq.l	#6,d1			Loop Value
Sp_Lp		move.w	d0,6(a0) 		Load Blank Sprites Loop
		swap	d0
		move.w	d0,2(a0)
		swap	d0
		addq.l	#8,a0			Next pointer in Copper
		dbf	d1,Sp_Lp		Loop until finished

		lea	text(pc),a0		; text to print
		bsr	print			; call print text routine
		rts

*****************************************************************************
* KILL THE OPERATING-SYSTEM AND SETUP NEW COPPERLIST			    *
*****************************************************************************

Take_OS:	move.l	4.w,a6			; get execbase
		lea	GFXlib(pc),a1		; point to graphics.library name
		jsr	-408(a6)		; open graphics library
		move.l 	d0,Gfxbase		; save gfxbase address
		jsr	-132(a6)		; forbid () turn off multitasking
		move.l	#$dff000,a6		; customchip base address in a6
		move.l	$68.w,Level2Vector	; save level 2 interrupt vector
		move.l	$6c.w,Level3Vector	; save level 3 interrupt vector
		move.w	$002(a6),DMAsave	; save old DMACONR
		move.w	$01c(a6),INTensave	; save old INTENAR
		move.w	$01e(a6),INTrqsave	; save old INTREQ
		move.w	#$7fff,d0		; kill value in d0
		move.w  d0,$002(a6)		; clear DMACONR
		move.w	d0,$01c(a6)		; kill INTENAR
		move.w	d0,$01e(a6)		; kill INTREQ
		move.l  #Copperlist,$080(a6)	; install custom copperlist
		clr.w	$088(a6)		; clear second copperlist
		move.w  #$87c0,$096(a6)		; return DMA:Cop/Blit/Sprite
		clr.b	menu
		rts

*****************************************************************************
* Interrupt								    *
*****************************************************************************

interrupt:	movem.l d0-d7/a0-a6,-(sp)

		bsr	mt_music
		bsr	scroller
		bsr	scroller
		bsr	movestars

out:		movem.l (sp)+,d0-d7/a0-a6
 		dc.w 	$4ef9			; jsr instruction
Level3Vector:	dc.l 	0			
		even


*****************************************************************************
* check menu selections loop						    *
*****************************************************************************

getselection	cmpi.b	#255,$dff006
		bne.s	getselection

		move.b	$bfec01.l,d0	; read keyboard
		not	d0
		ror.b	#1,d0

		cmpi.b	#0,menu
		beq	menu0
		cmpi.b	#1,menu
		beq	menu1
		cmpi.b	#2,menu
		beq	menu2
		cmpi.b	#3,menu
		beq	menu3
		cmpi.b	#4,menu
		beq	menu4
		cmpi.b	#5,menu
		beq	menu5
		cmpi.b	#6,menu
		beq	menu6
		cmpi.b	#7,menu
		beq	menu7
		cmpi.b	#8,menu
		beq	menu8
		cmpi.b	#9,menu
		beq	menu9
		cmpi.b	#10,menu
		beq	menu10
		cmpi.b	#11,menu
		beq	menu11

		bra	getselection

menu0		cmpi.b	#a,d0
		beq	showreadme
		cmpi.b	#b,d0
		beq	showletters
		cmpi.b	#c,d0
		beq	showsource1
		cmpi.b	#d,d0
		beq	showsource2
		cmpi.b	#e,d0
		beq	showsource3
		cmpi.b	#f,d0
		beq	showdecrunch
		cmpi.b	#g,d0
		beq	showtutorial
		cmpi.b	#h,d0
		beq	showtools
		cmpi.b	#i,d0
		beq	showmisc
		cmpi.b	#j,d0
		beq	showbackissues
		cmpi.b	#k,d0
		beq	showinclusions

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0	; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection


menu1		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0	; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection


menu2		cmpi.b	#a,d0
		beq	loadletter1
		cmpi.b	#b,d0
		beq	loadletter2
		cmpi.b	#c,d0
		beq	loadletter3
		cmpi.b	#d,d0
		beq	loadletter4
		cmpi.b	#e,d0
		beq	loadletter5

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0	; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection


menu3		cmpi.b	#a,d0
		beq	loadsource1
		cmpi.b	#b,d0
		beq	loadsource2
		cmpi.b	#c,d0
		beq	loadsource3
		cmpi.b	#d,d0
		beq	loadsource4
		cmpi.b	#e,d0
		beq	loadsource5
		cmpi.b	#f,d0
		beq	loadsource6
		cmpi.b	#g,d0
		beq	loadsource7
		cmpi.b	#h,d0
		beq	loadsource8
		cmpi.b	#i,d0
		beq	loadsource9
		cmpi.b	#j,d0
		beq	loadsource10
		cmpi.b	#k,d0
		beq	loadsource11

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu4		cmpi.b	#a,d0
		beq	loadsource12
		cmpi.b	#b,d0
		beq	loadsource13
		cmpi.b	#c,d0
		beq	loadsource14
		cmpi.b	#d,d0
		beq	loadsource15
		cmpi.b	#e,d0
		beq	loadsource16
		cmpi.b	#f,d0
		beq	loadsource17
		cmpi.b	#g,d0
		beq	loadsource18
		cmpi.b	#h,d0
		beq	loadsource19
		cmpi.b	#i,d0
		beq	loadsource20
		cmpi.b	#j,d0
		beq	loadsource21
		cmpi.b	#k,d0
		beq	loadsource22

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu5		cmpi.b	#a,d0
		beq	loadsource23
		cmpi.b	#b,d0
		beq	loadsource24
		cmpi.b	#c,d0
		beq	loadsource25
		cmpi.b	#d,d0
		beq	loadsource26
		cmpi.b	#e,d0
		beq	loadsource27
		cmpi.b	#f,d0
		beq	loadsource28
		cmpi.b	#g,d0
		beq	loadsource29
		cmpi.b	#h,d0
		beq	loadsource30
		cmpi.b	#i,d0
		beq	loadsource31
		cmpi.b	#j,d0
		beq	loadsource32
		cmpi.b	#k,d0
		beq	loadsource33

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu6		cmpi.b	#a,d0
		beq	loaddec1
		cmpi.b	#b,d0
		beq	loaddec2
		cmpi.b	#c,d0
		beq	loaddec3
		cmpi.b	#d,d0
		beq	loaddec4

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu7		cmpi.b	#a,d0
		beq	loadtut1
		cmpi.b	#b,d0
		beq	loadtut2
		cmpi.b	#c,d0
		beq	loadtut3
		cmpi.b	#d,d0
		beq	loadtut4

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu8		cmpi.b	#a,d0
		beq	loadtool1
		cmpi.b	#b,d0
		beq	loadtool2
		cmpi.b	#c,d0
		beq	loadtool3
		cmpi.b	#d,d0
		beq	loadtool4

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu9		cmpi.b	#a,d0
		beq	loadmisc1
		cmpi.b	#b,d0
		beq	loadmisc2
		cmpi.b	#c,d0
		beq	loadmisc3
		cmpi.b	#d,d0
		beq	loadmisc4

		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq.s	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0		; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu10		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq.s	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0	; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection

menu11		cmpi.b	#l,d0 		; was the L key pressed ??
		beq	quitmenu		; yes,so exit fast !
		cmpi.b	#esc,d0
		beq.s	getmain
		cmpi.b	#help,d0	; was the help key pressed ??
		beq	reset	; yes,so reset,fastmem back on
		cmpi.b	#del,d0	; was the delete key pressed ??
		beq	nofastmem	; yes,so turn off fastmem
		bra	getselection


getmain:	bsr	wipeleft
		lea	text(pc),a0		; text to print
		bsr	print			; call print text routine
		move.b	#0,menu
		bra	getselection

showreadme	bsr	screenwipe
		lea	readme.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#1,menu
		bra	getselection

showletters	bsr	screenwipe
		lea	letters.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#2,menu
		bra	getselection

showsource1	bsr	screenwipe
		lea	source1.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#3,menu
		bra	getselection

showsource2	bsr	screenwipe
		lea	source2.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#4,menu
		bra	getselection

showsource3	bsr	screenwipe
		lea	source3.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#5,menu
		bra	getselection

showdecrunch	bsr	screenwipe
		lea	decrunch.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#6,menu
		bra	getselection

showtutorial	bsr	screenwipe
		lea	tutorials.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#7,menu
		bra	getselection

showtools	bsr	screenwipe
		lea	tools.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#8,menu
		bra	getselection

showmisc	bsr	screenwipe
		lea	misc.txt(pc),a0		; text to print
		bsr	print			; call print text routine
		move.b	#9,menu
		bra	getselection

showbackissues	bsr.s	screenwipe
		lea	orders.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#10,menu
		bra	getselection

showinclusions	bsr.s	screenwipe
		lea	inclusions.txt(pc),a0	; text to print
		bsr	print			; call print text routine
		move.b	#11,menu
		bra	getselection

quitmenu:	bsr	help_os
		move.l	Stackpoint(pc),a7	; restore stackpointer
		movem.l	(a7)+,a0-a6/d0-d7	; restore regesters
		move.l	#$ffff,d0		; get a return code!!
						; so we can exit from
						; execute sequence !
		rts				; return to cli

menu		dc.w	0

*****************************************************************************
* Turns off fast memory
*****************************************************************************

nofastmem:	move.l	4.w,a6
		jsr	superstate(a6)
		move.l	#$40000,a7
		move.l	#$676,a6
		suba.l	a4,a4
		move.l	#$80000,a3
		moveq.l	#$ffffffff,d6
		jmp	$fc0240.l

*****************************************************************************
* Hard-Reset ( Clears all memory,etc fastmem back on )
*****************************************************************************

reset:		move.l	4.w,a6
		jsr	Superstate(a6)
		addq.w	#1,$38(a6)
		move.l	$fc0004.l,a5
		jmp	(a5)

****************************************************************************
* Clear screen area
****************************************************************************

screenwipe:	moveq.w	#7,d0
loop		lea	wipestart,a0		; begin wipe
sclear		move.b	(a0),d1
		lsr.b	#1,d1			; wipe to the right
		move.b	d1,(a0)+
		cmpa.l	#wipeend,a0		; endwipe
		bne.s	sclear
		dbf	d0,loop
		rts


wipeleft:	moveq.w	#7,d0
loop1		lea	wipestart,a0		; begin wipe
sclear1		move.b	(a0),d1
		lsl.b	#1,d1			; wipe to the left
		move.b	d1,(a0)+
		cmpa.l	#wipeend,a0		; endwipe
		bne.s	sclear1
		dbf	d0,loop1
		rts

*****************************************************************************
* RESTORE OPERATING SYSTEM VARIABLES,COPPERLIST,ETC			    *
*****************************************************************************

Help_OS:	bsr	mt_end			; turn off music channels
		move.l	#$dff000,a6		; custom base address in a6
		move.l	Level2Vector(pc),$68.w	; restore the level 2 vector
		move.l	Level3Vector(pc),$6c.w	; restore the level 3 vector 
		move.l	GFXbase(pc),a1		; get gfxbase in a1
		move.l	$26(a1),$080(a6)	; restore old workbench copper
		move.w	#$f,d0			; get restore value in d0
		move.w	INTENsave(pc),d7	; restore saved INTENA
		bset	d0,d7			; ;
		move.w	d7,$09a(a6)		; restore INTENA
		move.w	INTRQsave(pc),d7	; restore saved INTREQ
		bset	d0,d7			; ;
		move.w	d7,$09c(a6)		; restore INTREQ
		move.w	DMAsave(pc),d7		; restore saved DMACON
		bset	d0,d7			; ;
		move.w	d7,$096(a6)		; restore DMACON
		move.l	4.w,a6			; get execbase in a6
		jsr	-138(a6)		; permit multitasking
		move.l	GFXbase(pc),a1		; get gfxbase in a1
		jsr	-414(a6)		; close gfx library
		moveq.l	#0,d0
		rts				; return to CLI with no exit code

FileLoader:	move.l	4.w,a6		; get execbase
		lea	DosName(pc),a1	; ptr to dos library name
		jsr	-408(a6)	; open dos library
		move.l	d0,DosBase	; save dosbase address
		move.l	DosBase,a6
		move.l	d6,d1		; get filename
		moveq.l	#0,d2		
		move.l	OutPut,d3	; output
		jsr	-222(a6)	; execute file
		move.l	4.w,a6		; get execbase
		move.l	DosBase,a1	; base of library to close
		jsr	-414(a6)	; close dos library
		moveq.l	#0,d6
		move.l	d6,d0		
		move.l	Stackpoint(pc),a7	; restore stackpointer
		movem.l	(a7)+,a0-a6/d0-d7	; restore regesters
		rts			; return to cli

****************************************************************************
* Move Sprite Stars
****************************************************************************

MoveStars:	MOVE.L	#SpriteE-Sprite,D2	Length (N) of Star data block
		DIVU	#(8*3),D2		No.Layers (3)
		LEA	Sprite(PC),A0		Address of stars
Ch1:		CMPI.B	#223,1(A0)		Reached far right of screen?
		BNE.S   Mv1			No,branch
		MOVE.B	#56,1(A0)		Yes,reset to far left 
Mv1:		ADDQ.B  #3,1(A0)		1st layer speed
		ADDQ.B	#2,9(A0)		2nd layer speed
		ADDQ.B	#1,17(A0)		3rd layer speed
		ADD.L	#24,A0			Next 3 stars
		DBF.W	D2,Ch1			Loop N times
		RTS				Cool Routine Huh?

****************************************************************************
*		 PRINT TEXT						   *
****************************************************************************

Print		lea	screen,a1	; memory dump area (for text print)
		moveq.l	#0,d0
		move.b	(a0)+,d0
		mulu	#screenwidth,d0
		add.l	d0,a1
		moveq.l	#0,d0
		move.b	(a0)+,d0
		add.w	d0,a1
		move.l	a1,a4

getfont		lea	Font(pc),a2
		moveq.l	#0,d0
		move.b	(a0)+,d0
		beq.s	print
		bmi.s	return
		SUB.b	#32,d0
		cmp.b	#39,d0
		ble.s	locate

		add.l	#600,a2		;fetch newline data from font 

locate		moveq.l	#15,d1		; size of font ( depth )
		lea	(a2,d0.w),a2
lloop		move.b	(a2),(a1)
		add.l	#40,a2
		add.l	#screenwidth,a1
		dbra	d1,lloop
		addq.l	#1,a4
		move.l	a4,a1
		bra.s	getfont
Return		rts

****************************************************************************
* BLITTER SCROLLER 8*16 
****************************************************************************
screenwidth	equ	44	; overscan screen width
height		equ	258
scrollpos	equ	screenwidth*height

SCROLLER:	LEA	$DFF000.L,A5
		TST.W	PAUSE		;TEXT IF PAUSE FLAG IS 0
		BEQ.S	TESTSPEED	;IF SO,SCROLL TEXT,OTHERWISE

		SUBQ.W	#1,PAUSE	;DECREASE PAUSEFLAG
		BSR	BlitCHECK	;BLIT SCROLLPLANE

		RTS

TESTSPEED	CMPI.W	#200,SPEED	;TEXT IF PAUSE FLAG IS 0
		BNE.S	SCROLL		;IF SO,SCROLL TEXT,OTHERWISE

		BSR.S	SCROLL
		BSR.S	SCROLL
		BSR.S	SCROLL
		RTS			;RETURN

SCROLL:		BSR	BlitScroll	;BLIT SCROLLPLANE

		ADDQ.W	#1,Flag1
		CMP.W	#8,Flag1	;SIZE OF SPACE BETWEEN NEW CHARACTERS
		BNE.S	CHARDONE

		ADDQ.W	#1,TEXTPOS
		MOVE.W	TEXTPOS,D0

FILTERTEXT:	LEA	SCROLLTEXT(PC),A0
		MOVE.B	(A0,D0.W),D0

		CMP.B	#ENDSCRL,D0	; TEST FOR RESTART IN SCROLLTEXT 
		BNE.S	PAUSECHEK

		CLR.L	TEXTPOS		; RESET TO TEXTPOS TO START OF TEXT


PAUSECHEK:	CMP.B	#STOP,D0	; TEST FOR A PAUSE IN SCROLLTEXT
		BNE.S	SPEEDCHEK

		MOVE.W	#TIME,PAUSE	; PAUSE FOR AN AMOUNT OF "TIME" 

SPEEDCHEK:	CMP.B	#'a',D0		; TEST FOR A PAUSE IN SCROLLTEXT
		BNE.S	SPEEDCHEK2

		CLR.W	SPEED	; PAUSE FOR AN AMOUNT OF "TIME" 

SPEEDCHEK2:	CMP.B	#'b',D0		; TEST FOR A PAUSE IN SCROLLTEXT
		BNE.S	PRINTSCROLL

		MOVE.W	#200,SPEED	; PAUSE FOR AN AMOUNT OF "TIME" 

PRINTSCROLL:	BSR.S	PrintText
		MOVE.L	#0,Flag1
CHARDONE:	RTS

PrintText	LEA	screen+scrollpos-1,A1
		LEA	FONT(PC),A2
		AND.L	#255,D0
		SUB.B	#32,D0
		CMP.B	#39,D0
		BLE.S	LOC
		ADD.L	#600,A2		;fetch newline data from font 
LOC		MOVEQ.L	#15,D1		; size of font ( depth )
		LEA	(A2,D0.W),A2
LLOOP1		MOVE.B	(A2),(A1)
		ADD.L	#40,A2		; font data width per line 
		ADD.L	#screenwidth,A1		; SCREEN WIDTH
		DBRA	D1,LLOOP1
		RTS

BlitScroll:	BTST	#14,$002(A5)		; Test if Blitter busy ?
		BNE.S	BlitScroll		; If so,loop until free
	
		MOVE.L	#screen+scrollpos+0,$050(A5)	; Address for DMA A (source)
		MOVE.L	#screen+scrollpos-1,$054(A5)	; Address for DMA D (Dest)
		CLR.W	$064(A5)		; Modulo for A (zero)
		CLR.W	$066(A5)		; Modulo for D (zero)
		MOVE.W	#$FFFF,$044(A5)		; First Word mask for A only
		MOVE.W	#$FFFF,$046(A5)		; Last Word mask for A only
		MOVE.W	#$F9F0,$040(A5)		; First Blitter control word
		CLR.W	$042(A5)		; Second Blitter control word (zero)
		MOVE.W	#$0e05,$058(A5)		; Width in words plus 64*height

BlitCheck	BTST	#14,$002(A5)		; Test if Blitter busy ?
		BNE.S	BlitCheck		; If so,loop until free
		RTS	

; STOP    - PAUSE
; a       - SPEED 1 ( SLOW )
; b       - SPEED 2 ( FAST ) 

ScrollText
	;    ;1234567890123456789012345678901234567890123;
	DC.B '        a'
	DC.B '        " THE AMIGA CODERS CLUB "          ',STOP
	DC.B '          '
	DC.B '          = PROUDLY PRESENTS! =   b        ',stop
	DC.B '         '
	DC.B '   = (ACC) CODERS CLUB SOURCE DISK 15 =    ',STOP

	DC.B ' a      PLEASE NOTE-: YOU CAN EXIT FROM THE MENU TO THE CLI AT ANY TIME JUST BY PRESSING THE "L" KEY !!!!       '
	DC.B '                    b                                '
	DC.B '             MENU CODING -: BY TREVOR MENSAH        ',STOP
	DC.B '     a                      '
	DC.B 'FIRST--:     SPECIAL THANKS TO HEARTBEAT FOR THE COOL MUSIC            NOTE-: READERS PLEASE SEND IN YOUR SONG MODULES IN  EITHER    MED,TFMX,SOUND/NOISE/PRO-TRACKER,GMC      FORMATS....       '
	DC.B '                PERSONAL REGARDS FROM TREV GO OUT TO...    EVERYONE AT   ( D.M.S )   DIGITAL MAGIC SOFTWARE     ( HI JON,JULES,MILES,ETC )  '
	DC.B '      ALSO BIG GREETINS TO,    (ICEMAN) STE , (LIGHTINIG) RAY , (LITTLE ) IAN  AND  JONATHON... '
	DC.B 'ALSO TO ALL MY FRIENDS AND CONTACTS AROUND THE WORLD....     - AND -   HI TO ALL READERS OF THE  (ACC)  AMIGA CODERS CLUB...           - AND - '
	DC.B '  ALL THE READERS OF MY FAVOURITE AMIGA MAGAZINE.... - AMIGA FORMAT -    ( GUESS IM GREETING PROBABLY MILLIONS OF PEOPLE THERE !?!?! HEHEHE....   '
	DC.B '                         OH YES.... NOW ON TO THE SUBJECT OF MENUS... WHAT DO YA THINK OF THIS MENU , EH !?!?    WELL ITS THE FIRST VERSION... IF YOU HAVE ANY SUGGESTIONS  -- IMPROVEMENTS THAT YOU '
	DC.B 'THINK WILL ENHANCE THIS MENU ???  IF SO THEN WHY NOT WRITE ME A LETTER....        OR WRITE INTO ACC ...         - OR -      DO YOU THINK THAT THE OLD ACC MENU SYSTEM WAS BETTER  ????....       '
	DC.B '               ANYWAY THIS MENU CODE IS FULLY  P.D. FREEWARE...    GET THE DEVPAC SOURCE-CODE FROM  - ACC -                      IF YOU WANNA CONTACT ME FOR PROGRAMMING WRITE TO -:    '
	DC.B '                T.L.MENSAH                 ',STOP
	DC.B '             68 WOODLAND ROAD              ',STOP
	DC.B '                 HALEWOOD                  ',STOP
	DC.B '                MERSEYSIDE                 ',STOP
	DC.B '                  L26 1XF                  ',STOP
	DC.B '                  ENGLAND                  ',STOP
	DC.B '          WELL I HOPE TO BE HEARING FROM YOU IN THE FUTURE  .....   BYE !!            '   
	DC.B '                                  SCROLLTEXT RESTARTS....                    '
	DC.B ENDSCRL
	even

****************************************************************************
*			 TEXT						   *
****************************************************************************

;USAGE-:	XPOS,YPOS,TEXT,ENDLINE   
	even
TEXT:	DC.B	LINE01+4,1,"-     AMIGA CODERS CLUB DISK 15 (ACC)   -",ENDLINE
	DC.B	LINE02+4,1,"                                         ",ENDLINE
	DC.B	LINE03+4,1,"+-------------- MAIN MENU --------------+",ENDLINE
	DC.B	LINE04+4,1,": A       README                      A :",ENDLINE
	DC.B	LINE05+4,1,": B       LETTERS                     B :",ENDLINE
	DC.B	LINE06+4,1,": C       SOURCE PAGE ONE             C :",ENDLINE
	DC.B	LINE07+4,1,": D       SOURCE PAGE TWO             D :",ENDLINE 
	DC.B	LINE08+4,1,": E       SOURCE PAGE THREE           E :",ENDLINE
	DC.B	LINE09+4,1,": F       DECRUNCH SOURCE             F :",ENDLINE
	DC.B	LINE10+4,1,": G       TUTORIALS                   G :",ENDLINE
	DC.B	LINE11+4,1,": H       UTILITIES/TOOLS             H :",ENDLINE
	DC.B	LINE12+4,1,": I       MISCELLANEOUS               I :",ENDLINE
	DC.B	LINE13+4,1,": J       ABOUT BACK ISSUES/ORDERS    J :",ENDLINE
	DC.B	LINE14+4,1,": K       ABOUT INCLUSIONS            K :",ENDLINE
	DC.B	LINE15+4,1,": L       EXIT FROM MENU TO DOS       L :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDLINE
	DC.B	LINE17+4,1,"ESC=MAINMENU   DEL=NOFASTMEM   HELP=RESET",ENDTEXT
	EVEN


README.TXT:
	DC.B	LINE03+4,1,"+---------------- READ ME --------------+",ENDLINE
	DC.B	LINE04+4,1,": WELCOME READER,                       :",ENDLINE
	DC.B	LINE05+4,1,":                TO THE LATEST ACC DISK :",ENDLINE
	DC.B	LINE06+4,1,": THIS CODERS CLUB DISK WAS COMPILED BY :",ENDLINE
	DC.B	LINE07+4,1,":              -  M.MEANY  -            :",ENDLINE 
	DC.B	LINE08+4,1,":       AND RELEASED BY AMIGANUTS       :",ENDLINE
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,":           MENU PROGRAMMED BY:         :",ENDLINE
	DC.B	LINE11+4,1,":            - TREVOR MENSAH -          :",ENDLINE
	DC.B	LINE12+4,1,":                                       :",ENDLINE
	DC.B	LINE13+4,1,":   IF YOU LIKE THIS DISK THEN WHY NOT  :",ENDLINE
	DC.B	LINE14+4,1,":   SEND SOME OF YOUR SOURCE-CODES FOR  :",ENDLINE
	DC.B	LINE15+4,1,":   INCLUSION IN A FORTH COMING ISSUE!  :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

LETTERS.TXT:
	DC.B	LINE03+4,1,"+----------- LETTERS SECTION -----------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,":                                       :",ENDLINE
	DC.B	LINE06+4,1,": A      T.MENSAH                     A :",ENDLINE 
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": B                                   B :",ENDLINE
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,": C                                   C :",ENDLINE
	DC.B	LINE11+4,1,":                                       :",ENDLINE
	DC.B	LINE12+4,1,": D                                   D :",ENDLINE
	DC.B	LINE13+4,1,":                                       :",ENDLINE
	DC.B	LINE14+4,1,": E                                   E :",ENDLINE
	DC.B	LINE15+4,1,":                                       :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

SOURCE1.TXT:
	DC.B	LINE03+4,1,"+-------- SOURCE SECTION ONE -----------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,": A   ACC MENUSTYLE 1 (T.MENSAH)      A :",ENDLINE
	DC.B	LINE06+4,1,": B   ACC MENUSTYLE 2 (T.MENSAH)      B :",ENDLINE 
	DC.B	LINE07+4,1,": C   DIVERT-GURUS (T.MENSAH)         C :",ENDLINE
	DC.B	LINE08+4,1,": D   CHECK WRITE-ENABLED (T.MENSAH)  D :",ENDLINE
	DC.B	LINE09+4,1,": E   TURN OFF FASTMEMORY (T.MENSAH)  E :",ENDLINE
	DC.B	LINE10+4,1,": F   HARD-RESET (T.MENSAH)           F :",ENDLINE
	DC.B	LINE11+4,1,": G   MEMORYVIRUS CHECKER (T.MENSAH)  G :",ENDLINE
	DC.B	LINE12+4,1,": H   WB BITPLANE-REMOVER (T.MENSAH)  H :",ENDLINE
	DC.B	LINE13+4,1,": I   SHOWTEXT INTRO1 (T.MENSAH)      I :",ENDLINE
	DC.B	LINE14+4,1,": J   INTRO1 (T.MENSAH)               J :",ENDLINE
	DC.B	LINE15+4,1,": K   INTRO2 (T.MENSAH)               K :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

SOURCE2.TXT:
	DC.B	LINE03+4,1,"+-------- SOURCE SECTION TWO -----------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,": A                                   A :",ENDLINE
	DC.B	LINE06+4,1,": B        PLEASE SEND YOUR           B :",ENDLINE 
	DC.B	LINE07+4,1,": C      SOURCES INTO THE CLUB        C :",ENDLINE
	DC.B	LINE08+4,1,": D       SO WE CAN INCLUDED          D :",ENDLINE
	DC.B	LINE09+4,1,": E      THEM IN OTHER ISSUES         E :",ENDLINE
	DC.B	LINE10+4,1,": F        OF THIS BRILLIANT          F :",ENDLINE
	DC.B	LINE11+4,1,": G      MAGAZINE ON A DISK !!        G :",ENDLINE
	DC.B	LINE12+4,1,": H                                   H :",ENDLINE
	DC.B	LINE13+4,1,": I                                   I :",ENDLINE
	DC.B	LINE14+4,1,": J                                   J :",ENDLINE
	DC.B	LINE15+4,1,": K                                   K :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

SOURCE3.TXT:
	DC.B	LINE03+4,1,"+-------- SOURCE SECTION THREE ---------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,": A                                   A :",ENDLINE
	DC.B	LINE06+4,1,": B        PLEASE SEND YOUR           B :",ENDLINE 
	DC.B	LINE07+4,1,": C      SOURCES INTO THE CLUB        C :",ENDLINE
	DC.B	LINE08+4,1,": D      WE CAN INCLUDED THEM!        D :",ENDLINE
	DC.B	LINE09+4,1,": E       IN OTHER ISSUES OF          E :",ENDLINE
	DC.B	LINE10+4,1,": F       THIS COOL MAGAZINE          F :",ENDLINE
	DC.B	LINE11+4,1,": G          ON A DISK !!!            G :",ENDLINE
	DC.B	LINE12+4,1,": H                                   H :",ENDLINE
	DC.B	LINE13+4,1,": I                                   I :",ENDLINE
	DC.B	LINE14+4,1,": J                                   J :",ENDLINE
	DC.B	LINE15+4,1,": K                                   K :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

DECRUNCH.TXT:
	DC.B	LINE03+4,1,"+------ SOURCE DECRUNCHER SECTION ------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,":                                       :",ENDLINE
	DC.B	LINE06+4,1,": A     DECRUNCH SOURCE TO DF0: -->>  A :",ENDLINE 
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": B     DECRUNCH SOURCE TO DF1: -->>  B :",ENDLINE
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,": C     DECRUNCH DIRECTORY -->>       C :",ENDLINE
	DC.B	LINE11+4,1,":                                       :",ENDLINE
	DC.B	LINE12+4,1,": D     DECRUNCH DOCS                 D :",ENDLINE
	DC.B	LINE13+4,1,":                                       :",ENDLINE
	DC.B	LINE14+4,1,":                                       :",ENDLINE
	DC.B	LINE15+4,1,":                                       :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

TUTORIALS.TXT:
	DC.B	LINE03+4,1,"+--------- TUTORIALS SECTION -----------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,":                                       :",ENDLINE
	DC.B	LINE06+4,1,": A     LIBRARIES                     A :",ENDLINE 
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": B     KILLING THE OS                B :",ENDLINE
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,": C     PROGRAMMING MENUS             C :",ENDLINE
	DC.B	LINE11+4,1,":                                       :",ENDLINE
	DC.B	LINE12+4,1,": D     CODE OPTIMISATION TIPS        D :",ENDLINE
	DC.B	LINE13+4,1,":                                       :",ENDLINE
	DC.B	LINE14+4,1,":                                       :",ENDLINE
	DC.B	LINE15+4,1,":                                       :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

TOOLS.TXT:
	DC.B	LINE03+4,1,"+------ UTILITIES/TOOLS SECTION --------+",ENDLINE
	DC.B	LINE04+4,1,":     ----------------------------      :",ENDLINE
	DC.B	LINE05+4,1,":       =  UTILITIES / TOOLS  =         :",ENDLINE
	DC.B	LINE06+4,1,":     ----------------------------      :",ENDLINE
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": A    DEVPAC FONTMASTER VERSION II   A :",ENDLINE 
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,": B    KEFERENS IFF CONVERTOR         B :",ENDLINE
	DC.B	LINE11+4,1,":                                       :",ENDLINE
	DC.B	LINE12+4,1,": C    ARCANE IFF-MASTER              C :",ENDLINE
	DC.B	LINE13+4,1,":                                       :",ENDLINE
	DC.B	LINE14+4,1,": D    SIGNAL INSTALLER V1.00         D :",ENDLINE
	DC.B	LINE15+4,1,":                                       :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

MISC.TXT:
	DC.B	LINE03+4,1,"+------- MISCELLANEOUS SECTION ---------+",ENDLINE
	DC.B	LINE04+4,1,":                                       :",ENDLINE
	DC.B	LINE05+4,1,":                                       :",ENDLINE
	DC.B	LINE06+4,1,": A                                   A :",ENDLINE 
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": B                                   B :",ENDLINE
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,": C                                   C :",ENDLINE
	DC.B	LINE11+4,1,":                                       :",ENDLINE
	DC.B	LINE12+4,1,": D                                   D :",ENDLINE
	DC.B	LINE13+4,1,":                                       :",ENDLINE
	DC.B	LINE14+4,1,":                                       :",ENDLINE
	DC.B	LINE15+4,1,":                                       :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

ORDERS.TXT:
	DC.B	LINE03+4,1,"+------ ORDERS INFORMATION SECTION -----+",ENDLINE
	DC.B	LINE04+4,1,":     ------------------------------    :",ENDLINE
	DC.B	LINE05+4,1,":       =  ORDERS / BACK ISSUES  =      :",ENDLINE
	DC.B	LINE06+4,1,":     ------------------------------    :",ENDLINE
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": CODERS CLUB DISKS ARE AVALIABLE FROM  :",ENDLINE 
	DC.B	LINE09+4,1,":                                       :",ENDLINE
	DC.B	LINE10+4,1,":         AMIGANUTS UNITED              :",ENDLINE
	DC.B	LINE11+4,1,":         169 DALE VALLEY ROAD          :",ENDLINE
	DC.B	LINE12+4,1,":         HOLLYBROOK,                   :",ENDLINE
	DC.B	LINE13+4,1,":         SOUTHAMPTON                   :",ENDLINE
	DC.B	LINE14+4,1,":         SO1 6QX                       :",ENDLINE
	DC.B	LINE15+4,1,":                                       :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

INCLUSIONS.TXT:
	DC.B	LINE03+4,1,"+---- INCLUSION INFORMATION SECTION ----+",ENDLINE
	DC.B	LINE04+4,1,":       ---------------------------     :",ENDLINE
	DC.B	LINE05+4,1,":         =  SOURCE INCLUSIONS  =       :",ENDLINE
	DC.B	LINE06+4,1,":       ---------------------------     :",ENDLINE
	DC.B	LINE07+4,1,":                                       :",ENDLINE
	DC.B	LINE08+4,1,": IF YOU WOULD LIKE ANY OF YOUR SOURCES :",ENDLINE 
	DC.B	LINE09+4,1,": INCLUDED IN FUTURE ISSUES THEN WRITE  :",ENDLINE
	DC.B	LINE10+4,1,": TO-:                                  :",ENDLINE
	DC.B	LINE11+4,1,":            M.MEANY                    :",ENDLINE
	DC.B	LINE12+4,1,":            1 CROMWELL ROAD            :",ENDLINE
	DC.B	LINE13+4,1,":            SOUTHAMPTON                :",ENDLINE
	DC.B	LINE14+4,1,":            HANTS                      :",ENDLINE
	DC.B	LINE15+4,1,":            SO1 2JH                    :",ENDLINE
	DC.B	LINE16+4,1,"+---------------------------------------+",ENDTEXT

*****************************************************************************
* New Copperlist							    *
* ( Using a standard 320x256 screen layout )				    *
*****************************************************************************

CopperList:
	dc.w diwstrt,$1a64
	dc.w diwstop,$39d1
	dc.w ddfstrt,$0030
	dc.w ddfstop,$00D8
	dc.w bplcon0,$2200		; (2 bitplanes Lo-Res)
	dc.w bpl1mod,0		; (no moduo)
	dc.w bpl2mod,0		; (no moduo)
Sp_Ptr	dc.w spr0pth,0,spr0ptl,0,spr1pth,0,spr1ptl,0
	dc.w spr2pth,0,spr2ptl,0,spr3pth,0,spr3ptl,0
	dc.w spr4pth,0,spr4ptl,0,spr5pth,0,spr5ptl,0
	dc.w spr6pth,0,spr6ptl,0,spr7pth,0,spr7ptl,0
	dc.w $01a2,$0fff,$01a4,$0aaa,$01a6,$0555	;sprite colours

	dc.w color00,0
	dc.w color01,$0888
	dc.w color02,$0FFF
	dc.w color03,$0FFF

	dc.w bpl1pth
pl1h:	dc.w 0
	dc.w bpl1ptl
pl1l:	dc.w 0
	dc.w bpl2pth
pl2h:	dc.w 0
	dc.w bpl2ptl
pl2l:	dc.w 0

	dc.w $2809,$fffe,color00,$001
	dc.w $2909,$fffe,color00,$002
	dc.w $2a09,$fffe,color00,$003
	dc.w $2b09,$fffe,color00,$005
	dc.w $2c09,$fffe,color00,$007
	dc.w $2d09,$fffe,color00,$009,color03,$0fff
	dc.w $2e09,$fffe,color00,$00b,color03,$0ffe
	dc.w $2f09,$fffe,color00,$00d,color03,$0ffd
	dc.w $3009,$fffe,color00,$00e,color03,$0ffc
	dc.w $3109,$fffe,color00,$00f,color03,$0ffb
	dc.w $3209,$fffe,color00,$00f,color03,$0ff9
	dc.w $3309,$fffe,color00,$00e,color03,$0ff8
	dc.w $3409,$fffe,color00,$00d,color03,$0ff7
	dc.w $3509,$fffe,color00,$00b,color03,$0ff6
	dc.w $3609,$fffe,color00,$009,color03,$0ff5
	dc.w $3709,$fffe,color00,$007,color03,$0ff4
	dc.w $3809,$fffe,color00,$005,color03,$0fff
	dc.w $3909,$fffe,color00,$003
	dc.w $3a09,$fffe,color00,$002
	dc.w $3b09,$fffe,color00,$001
	dc.w $3c09,$fffe,color00,$000

;-- menu1 item copperlist colours
	dc.w $4909,$fffe,color03,$0fff
	dc.w $4a09,$fffe,color03,$0eef
	dc.w $4b09,$fffe,color03,$0ddf
	dc.w $4c09,$fffe,color03,$0ccf
	dc.w $4d09,$fffe,color03,$0bbf
	dc.w $4e09,$fffe,color03,$0aaf
	dc.w $4f09,$fffe,color03,$099f
	dc.w $5009,$fffe,color03,$088f
	dc.w $5109,$fffe,color03,$077f
	dc.w $5209,$fffe,color03,$066f
	dc.w $5309,$fffe,color03,$055f
	dc.w $5409,$fffe,color03,$044f
;-- menu2 item copperlist colours
	dc.w $5709,$fffe,color03,$0fff
	dc.w $5809,$fffe,color03,$0eef
	dc.w $5909,$fffe,color03,$0ddf
	dc.w $5a09,$fffe,color03,$0ccf
	dc.w $5b09,$fffe,color03,$0bbf
	dc.w $5c09,$fffe,color03,$0aaf
	dc.w $5d09,$fffe,color03,$099f
	dc.w $5e09,$fffe,color03,$088f
	dc.w $5f09,$fffe,color03,$077f
	dc.w $6009,$fffe,color03,$066f
	dc.w $6109,$fffe,color03,$055f
	dc.w $6209,$fffe,color03,$044f
;-- menu3 item copperlist colours
	dc.w $6509,$fffe,color03,$0fff
	dc.w $6609,$fffe,color03,$0eef
	dc.w $6709,$fffe,color03,$0ddf
	dc.w $6809,$fffe,color03,$0ccf
	dc.w $6909,$fffe,color03,$0bbf
	dc.w $6a09,$fffe,color03,$0aaf
	dc.w $6b09,$fffe,color03,$099f
	dc.w $6c09,$fffe,color03,$088f
	dc.w $6d09,$fffe,color03,$077f
	dc.w $6e09,$fffe,color03,$066f
	dc.w $6f09,$fffe,color03,$055f
	dc.w $7009,$fffe,color03,$044f
;-- menu4 item copperlist colours
	dc.w $7409,$fffe,color03,$0fff
	dc.w $7509,$fffe,color03,$0eef
	dc.w $7609,$fffe,color03,$0ddf
	dc.w $7709,$fffe,color03,$0ccf
	dc.w $7809,$fffe,color03,$0bbf
	dc.w $7909,$fffe,color03,$0aaf
	dc.w $7a09,$fffe,color03,$099f
	dc.w $7b09,$fffe,color03,$088f
	dc.w $7c09,$fffe,color03,$077f
	dc.w $7d09,$fffe,color03,$066f
	dc.w $7e09,$fffe,color03,$055f
	dc.w $7f09,$fffe,color03,$044f
;-- menu5 item copperlist colours
	dc.w $8209,$fffe,color03,$0fff
	dc.w $8309,$fffe,color03,$0eef
	dc.w $8409,$fffe,color03,$0ddf
	dc.w $8509,$fffe,color03,$0ccf
	dc.w $8609,$fffe,color03,$0bbf
	dc.w $8709,$fffe,color03,$0aaf
	dc.w $8809,$fffe,color03,$099f
	dc.w $8909,$fffe,color03,$088f
	dc.w $8a09,$fffe,color03,$077f
	dc.w $8b09,$fffe,color03,$066f
	dc.w $8c09,$fffe,color03,$055f
	dc.w $8d09,$fffe,color03,$044f
;-- menu6 item copperlist colours
	dc.w $9009,$fffe,color03,$0fff
	dc.w $9109,$fffe,color03,$0eef
	dc.w $9209,$fffe,color03,$0ddf
	dc.w $9309,$fffe,color03,$0ccf
	dc.w $9409,$fffe,color03,$0bbf
	dc.w $9509,$fffe,color03,$0aaf
	dc.w $9609,$fffe,color03,$099f
	dc.w $9709,$fffe,color03,$088f
	dc.w $9809,$fffe,color03,$077f
	dc.w $9909,$fffe,color03,$066f
	dc.w $9a09,$fffe,color03,$055f
	dc.w $9b09,$fffe,color03,$044f
;-- menu7 item copperlist colours
	dc.w $9e09,$fffe,color03,$0fff
	dc.w $9f09,$fffe,color03,$0eef,color00,$0001
	dc.w $a009,$fffe,color03,$0ddf
	dc.w $a109,$fffe,color03,$0ccf,color00,$0002
	dc.w $a209,$fffe,color03,$0bbf
	dc.w $a309,$fffe,color03,$0aaf,color00,$0003
	dc.w $a409,$fffe,color03,$099f
	dc.w $a509,$fffe,color03,$088f
	dc.w $a609,$fffe,color03,$077f,color00,$0004
	dc.w $a709,$fffe,color03,$066f
	dc.w $a809,$fffe,color03,$055f
	dc.w $a909,$fffe,color03,$044f
	dc.w $aa09,$fffe,color00,$0005
;-- menu8 item copperlist colours
	dc.w $ac09,$fffe,color03,$0fff
	dc.w $ae09,$fffe,color03,$0eef
	dc.w $af09,$fffe,color03,$0ddf
	dc.w $b009,$fffe,color03,$0ccf,color00,$0006
	dc.w $b109,$fffe,color03,$0bbf
	dc.w $b209,$fffe,color03,$0aaf
	dc.w $b309,$fffe,color03,$099f
	dc.w $b409,$fffe,color03,$088f
	dc.w $b509,$fffe,color03,$077f
	dc.w $b609,$fffe,color03,$066f,color00,$0007
	dc.w $b709,$fffe,color03,$055f
	dc.w $b809,$fffe,color03,$044f
;-- menu9 item copperlist colours
	dc.w $ba09,$fffe,color03,$0fff
	dc.w $bb09,$fffe,color03,$0eef
	dc.w $bc09,$fffe,color03,$0ddf
	dc.w $bd09,$fffe,color03,$0ccf,color00,$0008
	dc.w $be09,$fffe,color03,$0bbf
	dc.w $bf09,$fffe,color03,$0aaf
	dc.w $c009,$fffe,color03,$099f
	dc.w $c109,$fffe,color03,$088f
	dc.w $c209,$fffe,color03,$077f
	dc.w $c309,$fffe,color03,$066f
	dc.w $c409,$fffe,color03,$055f
	dc.w $c509,$fffe,color03,$044f,color00,$0009
;-- menu10 item copperlist colours
	dc.w $c809,$fffe,color03,$0fff
	dc.w $c909,$fffe,color03,$0eef
	dc.w $ca09,$fffe,color03,$0ddf
	dc.w $cb09,$fffe,color03,$0ccf
	dc.w $cc09,$fffe,color03,$0bbf
	dc.w $cd09,$fffe,color03,$0aaf
	dc.w $ce09,$fffe,color03,$099f,color00,$000a
	dc.w $cf09,$fffe,color03,$088f
	dc.w $d009,$fffe,color03,$077f
	dc.w $d109,$fffe,color03,$066f
	dc.w $d209,$fffe,color03,$055f
	dc.w $d309,$fffe,color03,$044f
;-- menu11 item copperlist colours
	dc.w $d609,$fffe,color03,$0fff
	dc.w $d709,$fffe,color03,$0eef
	dc.w $d809,$fffe,color03,$0ddf,color00,$000b
	dc.w $d909,$fffe,color03,$0ccf
	dc.w $da09,$fffe,color03,$0bbf
	dc.w $db09,$fffe,color03,$0aaf
	dc.w $dc09,$fffe,color03,$099f
	dc.w $dd09,$fffe,color03,$088f
	dc.w $de09,$fffe,color03,$077f
	dc.w $df09,$fffe,color03,$066f
	dc.w $e009,$fffe,color03,$055f
	dc.w $e109,$fffe,color03,$044f
	dc.w $e309,$fffe,color00,$000c
;-- menu12 item copperlist colours
	dc.w $e409,$fffe,color03,$0fff
	dc.w $e509,$fffe,color03,$0eef
	dc.w $e609,$fffe,color03,$0ddf
	dc.w $e709,$fffe,color03,$0ccf
	dc.w $e809,$fffe,color03,$0bbf
	dc.w $e909,$fffe,color03,$0aaf
	dc.w $ea09,$fffe,color03,$099f
	dc.w $eb09,$fffe,color03,$088f
	dc.w $ec09,$fffe,color03,$077f
	dc.w $ed09,$fffe,color03,$066f
	dc.w $ee09,$fffe,color03,$055f
	dc.w $ef09,$fffe,color03,$044f,color00,$000d
;-- menu13 item copperlist colours
	dc.w $f209,$fffe,color03,$0fff
	dc.w $f309,$fffe,color03,$0eef
	dc.w $f409,$fffe,color03,$0ddf
	dc.w $f509,$fffe,color03,$0ccf
	dc.w $f609,$fffe,color03,$0bbf
	dc.w $f709,$fffe,color03,$0aaf
	dc.w $f809,$fffe,color03,$099f
	dc.w $f909,$fffe,color03,$088f
	dc.w $fa09,$fffe,color03,$077f
	dc.w $fb09,$fffe,color03,$066f
	dc.w $fc09,$fffe,color03,$055f
	dc.w $fd09,$fffe,color03,$044f,color00,$000e
	dc.w $ffe1,$fffe	; enable pal screen area for use
;-- menu14 item copperlist colours
	dc.w $0009,$fffe,color03,$0fff
	dc.w $0109,$fffe,color03,$0eef
	dc.w $0209,$fffe,color03,$0ddf
	dc.w $0309,$fffe,color03,$0ccf
	dc.w $0409,$fffe,color03,$0bbf
	dc.w $0509,$fffe,color03,$0aaf
	dc.w $0609,$fffe,color03,$099f
	dc.w $0709,$fffe,color03,$088f
	dc.w $0809,$fffe,color03,$077f
	dc.w $0909,$fffe,color03,$066f
	dc.w $0a09,$fffe,color03,$055f
	dc.w $0b09,$fffe,color03,$044f
	dc.w $0c09,$fffe,color03,$0fff,color00,$000f

	dc.w $0f09,$fffe,color03,$0eff
	dc.w $1009,$fffe,color03,$0dff
	dc.w $1109,$fffe,color03,$0cff
	dc.w $1209,$fffe,color03,$0bff
	dc.w $1309,$fffe,color03,$0aff
	dc.w $1409,$fffe,color03,$09ff
	dc.w $1509,$fffe,color03,$08ff
	dc.w $1609,$fffe,color03,$07ff
	dc.w $1709,$fffe,color03,$06ff
	dc.w $1809,$fffe,color03,$05ff
	dc.w $1909,$fffe,color03,$04ff



	dc.w $1c09,$fffe,color03,$0fef
	dc.w $1d09,$fffe,color03,$0fdf
	dc.w $1e09,$fffe,color03,$0fcf
	dc.w $1f09,$fffe,color03,$0fbf
	dc.w $2009,$fffe,color03,$0faf
	dc.w $2109,$fffe,color03,$0f9f
	dc.w $2209,$fffe,color03,$0f8f
	dc.w $2309,$fffe,color03,$0f7f
	dc.w $2409,$fffe,color03,$0f6f
	dc.w $2509,$fffe,color03,$0f5f
	dc.w $2609,$fffe,color03,$0f4f

	dc.w $2809,$fffe,bplcon0,$0200
	dc.w $FFFF,$FFFE		;end copper (impossible pos)

****************************************************************************
*			PLOTTED STAR POSITIONS				   *
****************************************************************************
Sprite	dc.l	$2ABD2B00,$80000000,$2C7F2D00,$00008000
	dc.l	$2E862F00,$80008000,$30893100,$80000000
	dc.l	$324E3300,$00008000,$34983500,$80008000
	dc.l	$36A13700,$80000000,$38703900,$00008000
	dc.l	$3A5E3B00,$80008000,$3C6E3D00,$80000000
	dc.l	$3E773F00,$00008000,$40884100,$80008000
	dc.l	$42544300,$80000000,$44B54500,$00008000
	dc.l	$46474700,$80008000,$48C34900,$80000000
	dc.l	$4A554B00,$00008000,$4CC24D00,$80008000
	dc.l	$4EB64F00,$80000000,$50475100,$00008000
	dc.l	$526B5300,$80008000,$54595500,$80000000
	dc.l	$566B5700,$00008000,$58DA5900,$80008000
	dc.l	$5ACD5B00,$80000000,$5C865D00,$00008000
	dc.l	$5ECF5F00,$80008000,$60556100,$80000000
	dc.l	$625D6300,$00008000,$645E6500,$80008000
	dc.l	$66496700,$80000000,$68936900,$00008000
	dc.l	$6ABC6B00,$80008000,$6C656D00,$80000000
	dc.l	$6EBA6F00,$00008000,$706F7100,$80008000
	dc.l	$72837300,$80000000,$74977500,$00008000
	dc.l	$76747700,$80008000,$78BF7900,$80000000
	dc.l	$7A9F7B00,$00008000,$7C917D00,$80008000
	dc.l	$7EAD7F00,$80000000,$80598100,$00008000
	dc.l	$826E8300,$80008000,$84628500,$80000000
	dc.l	$86B08700,$00008000,$88CB8900,$80008000
	dc.l	$8AD88B00,$80000000,$8CCD8D00,$00008000
	dc.l	$8EA48F00,$80008000,$90969100,$80000000
	dc.l	$92999300,$00008000,$94579500,$80008000
	dc.l	$964C9700,$80000000,$984F9900,$00008000
	dc.l	$9AC09B00,$80008000,$9C579D00,$80000000
	dc.l	$9E8C9F00,$00008000,$A0ABA100,$80008000
SpriteE	dc.l	$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	EVEN

****************************************************************************
LoadLetter1:	bsr	help_os
		move.l	#let_1,d6	; filename to load in d5
		bra	fileloader
LoadLetter2:	bsr	help_os
		move.l	#let_2,d6	; filename to load in d5
		bra	fileloader
LoadLetter3:	bsr	help_os
		move.l	#let_3,d6	; filename to load in d5
		bra	fileloader
LoadLetter4:	bsr	help_os
		move.l	#let_4,d6	; filename to load in d5
		bra	fileloader
LoadLetter5:	bsr	help_os
		move.l	#let_5,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadSource1:	bsr	help_os
		move.l	#page1_1,d6	; filename to load in d5
		bra	fileloader
LoadSource2:	bsr	help_os
		move.l	#page1_2,d6	; filename to load in d5
		bra	fileloader
LoadSource3:	bsr	help_os
		move.l	#page1_3,d6	; filename to load in d5
		bra	fileloader
LoadSource4:	bsr	help_os
		move.l	#page1_4,d6	; filename to load in d5
		bra	fileloader
LoadSource5:	bsr	help_os
		move.l	#page1_5,d6	; filename to load in d5
		bra	fileloader
LoadSource6:	bsr	help_os
		move.l	#page1_6,d6	; filename to load in d5
		bra	fileloader
LoadSource7:	bsr	help_os
		move.l	#page1_7,d6	; filename to load in d5
		bra	fileloader
LoadSource8:	bsr	help_os
		move.l	#page1_8,d6	; filename to load in d5
		bra	fileloader
LoadSource9:	bsr	help_os
		move.l	#page1_9,d6	; filename to load in d5
		bra	fileloader
LoadSource10:	bsr	help_os
		move.l	#page1_10,d6	; filename to load in d5
		bra	fileloader
LoadSource11:	bsr	help_os
		move.l	#page1_11,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadSource12:	bsr	help_os
		move.l	#page2_1,d6	; filename to load in d5
		bra	fileloader
LoadSource13:	bsr	help_os
		move.l	#page2_2,d6	; filename to load in d5
		bra	fileloader
LoadSource14:	bsr	help_os
		move.l	#page2_3,d6	; filename to load in d5
		bra	fileloader
LoadSource15:	bsr	help_os
		move.l	#page2_4,d6	; filename to load in d5
		bra	fileloader
LoadSource16:	bsr	help_os
		move.l	#page2_5,d6	; filename to load in d5
		bra	fileloader
LoadSource17:	bsr	help_os
		move.l	#page2_6,d6	; filename to load in d5
		bra	fileloader
LoadSource18:	bsr	help_os
		move.l	#page2_7,d6	; filename to load in d5
		bra	fileloader
LoadSource19:	bsr	help_os
		move.l	#page2_8,d6	; filename to load in d5
		bra	fileloader
LoadSource20:	bsr	help_os
		move.l	#page2_9,d6	; filename to load in d5
		bra	fileloader
LoadSource21:	bsr	help_os
		move.l	#page2_10,d6	; filename to load in d5
		bra	fileloader
LoadSource22:	bsr	help_os
		move.l	#page2_11,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadSource23:	bsr	help_os
		move.l	#page3_1,d6	; filename to load in d5
		bra	fileloader
LoadSource24:	bsr	help_os
		move.l	#page3_2,d6	; filename to load in d5
		bra	fileloader
LoadSource25:	bsr	help_os
		move.l	#page3_3,d6	; filename to load in d5
		bra	fileloader
LoadSource26:	bsr	help_os
		move.l	#page3_4,d6	; filename to load in d5
		bra	fileloader
LoadSource27:	bsr	help_os
		move.l	#page3_5,d6	; filename to load in d5
		bra	fileloader
LoadSource28:	bsr	help_os
		move.l	#page3_6,d6	; filename to load in d5
		bra	fileloader
LoadSource29:	bsr	help_os
		move.l	#page3_7,d6	; filename to load in d5
		bra	fileloader
LoadSource30:	bsr	help_os
		move.l	#page3_8,d6	; filename to load in d5
		bra	fileloader
LoadSource31:	bsr	help_os
		move.l	#page3_9,d6	; filename to load in d5
		bra	fileloader
LoadSource32:	bsr	help_os
		move.l	#page3_10,d6	; filename to load in d5
		bra	fileloader
LoadSource33:	bsr	help_os
		move.l	#page3_11,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadDec1	bsr	help_os
		move.l	#dec_1,d6	; filename to load in d5
		bra	fileloader
LoadDec2	bsr	help_os
		move.l	#dec_2,d6	; filename to load in d5
		bra	fileloader
LoadDec3	bsr	help_os
		move.l	#dec_3,d6	; filename to load in d5
		bra	fileloader
LoadDec4	bsr	help_os
		move.l	#dec_4,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadTut1	bsr	help_os
		move.l	#tut_1,d6	; filename to load in d5
		bra	fileloader
LoadTut2	bsr	help_os
		move.l	#tut_2,d6	; filename to load in d5
		bra	fileloader
LoadTut3	bsr	help_os
		move.l	#tut_3,d6	; filename to load in d5
		bra	fileloader
LoadTut4	bsr	help_os
		move.l	#tut_4,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadTool1	bsr	help_os
		move.l	#tool_1,d6	; filename to load in d5
		bra	fileloader
LoadTool2	bsr	help_os
		move.l	#tool_2,d6	; filename to load in d5
		bra	fileloader
LoadTool3	bsr	help_os
		move.l	#tool_3,d6	; filename to load in d5
		bra	fileloader
LoadTool4	bsr	help_os
		move.l	#tool_4,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
LoadMisc1	bsr	help_os
		move.l	#misc_1,d6	; filename to load in d5
		bra	fileloader
LoadMisc2	bsr	help_os
		move.l	#misc_2,d6	; filename to load in d5
		bra	fileloader
LoadMisc3	bsr	help_os
		move.l	#misc_3,d6	; filename to load in d5
		bra	fileloader
LoadMisc4	bsr	help_os
		move.l	#misc_4,d6	; filename to load in d5
		bra	fileloader

****************************************************************************
* Letters ( load filenames )
****************************************************************************
let_1		dc.b	"ram:ppmore letters/t.mensah",0
let_2		dc.b	"ram:ppmore letters/let2",0
let_3		dc.b	"ram:ppmore letters/let3",0
let_4		dc.b	"ram:ppmore letters/let4",0
let_5		dc.b	"ram:ppmore letters/let5",0

****************************************************************************
* Source page one ( load filenames )
****************************************************************************
page1_1		dc.b	"ram:ppmore sources/accmenu_v1.s",0
page1_2		dc.b	"ram:ppmore sources/accmenu_v2.s",0
page1_3		dc.b	"ram:ppmore sources/divertgurus.s",0
page1_4		dc.b	"ram:ppmore sources/checkwriteenabled.s",0
page1_5		dc.b	"ram:ppmore sources/nofastmem.s",0
page1_6		dc.b	"ram:ppmore sources/hardreset.s",0
page1_7		dc.b	"ram:ppmore sources/memorychecker.s",0
page1_8		dc.b	"ram:ppmore sources/add21k.s",0
page1_9		dc.b	"ram:ppmore sources/showtext.s",0
page1_10	dc.b	"ram:ppmore sources/intro1.s",0
page1_11	dc.b	"ram:ppmore sources/intro2.s",0

****************************************************************************
* Source page two ( load filenames )
****************************************************************************
page2_1		dc.b	"ram:ppmore sources/source12.s",0
page2_2		dc.b	"ram:ppmore sources/source13.s",0
page2_3		dc.b	"ram:ppmore sources/source14.s",0
page2_4		dc.b	"ram:ppmore sources/source15.s",0
page2_5		dc.b	"ram:ppmore sources/source16.s",0
page2_6		dc.b	"ram:ppmore sources/source17.s",0
page2_7		dc.b	"ram:ppmore sources/source18.s",0
page2_8		dc.b	"ram:ppmore sources/source19.s",0
page2_9		dc.b	"ram:ppmore sources/source20.s",0
page2_10	dc.b	"ram:ppmore sources/source21.s",0
page2_11	dc.b	"ram:ppmore sources/source22.s",0

****************************************************************************
* Source page three ( load filenames )
****************************************************************************
page3_1		dc.b	"ram:ppmore sources/source23.s",0
page3_2		dc.b	"ram:ppmore sources/source24.s",0
page3_3		dc.b	"ram:ppmore sources/source25.s",0
page3_4		dc.b	"ram:ppmore sources/source26.s",0
page3_5		dc.b	"ram:ppmore sources/source27.s",0
page3_6		dc.b	"ram:ppmore sources/source28.s",0
page3_7		dc.b	"ram:ppmore sources/source29.s",0
page3_8		dc.b	"ram:ppmore sources/source30.s",0
page3_9		dc.b	"ram:ppmore sources/source31.s",0
page3_10	dc.b	"ram:ppmore sources/source33.s",0
page3_11	dc.b	"ram:ppmore sources/source33.s",0

****************************************************************************
* Decrunch ( load filenames )
****************************************************************************
dec_1		dc.b	"decrunch sources/#? to df0:",0
dec_2		dc.b	"decrunch sources/#? to df1:",0
dec_3		dc.b	"decrunchdir",0
dec_4		dc.b	"ram:ppmore decrunch.doc",0

****************************************************************************
* Tutorials ( load filenames )
****************************************************************************
tut_1		dc.b	"ram:ppmore tutorials/tut1.doc",0
tut_2		dc.b	"ram:ppmore tutorials/tut2.doc",0
tut_3		dc.b	"ram:ppmore tutorials/tut3.doc",0
tut_4		dc.b	"ram:ppmore tutorials/tut4.doc",0

****************************************************************************
* Utilities/Tools ( load filenames )
****************************************************************************
tool_1		dc.b	"utilities/FontMasterII",0
tool_2		dc.b	"utilities/KefConvert",0
tool_3		dc.b	"utilities/IFFMaster",0
tool_4		dc.b	"utilities/Installer",0

****************************************************************************
* Miscellaneuos ( load filenames )
****************************************************************************
misc_1		dc.b	"misc/misc1",0
misc_2		dc.b	"misc/misc2",0
misc_3		dc.b	"misc/misc3",0
misc_4		dc.b	"misc/misc4",0

*****************************************************************************
* DATA SECTION								    *
*****************************************************************************
Level2Vector:	dc.l	0
OutPut		dc.l	0
INTrqsave:	dc.w	0
INTensave:	dc.w	0
DMAsave:	dc.w	0
DosName		dc.b	"dos.library",0
		even
GFXlib:		dc.b	"graphics.library",0
		even
DosBase		dc.l	0
GFXBase:	ds.l	2
		even
StackPoint:	dc.l	0
		even
Sprite_Empty   	dcb.b	10,0
Flag1		dc.l	0
TEXTPOS		dc.l	0
SPEED		dc.l	0
Pause		dc.l	0
Font		incbin	"source:bitmaps/chars16.bm"
		even
*****************************************************************************
*		     NoisetrackerV2.0 FASTreplay v1.1  		 	    *
*									    *
*		  Uses lev6irq - takes 8 rasterlines  			    *
*		 Do not disable Master irq in $dff09a 			    *
*		 Used registers: d0-d3/a0-a7|	=INTENA 		    *
*  Mahoney & Kaktus - © E.A.S. 1990            2-Cool - © SIGNAL U.K. 1991  *
*****************************************************************************
* Module Data's positions ( Description of MODULE DATA locations ) 
*****************************************************************************
* Label		   *   dec   *   hex   * byte  * description
* Name             *  offset *  offset * size  * information
*****************************************************************************
ModuleName	equ   0000   *  $0000  * !0020 * name without mod. extension

SampleName1	equ   0020   *  $0014  * !0022 * sample name no. 1
SampleLength1	equ   0042   *  $002a  * !0002 * sample length no. 1
SampleVolume1	equ   0045   *  $002d  * !0001 * Volume Range $00-$40 or 0-64
SampleRep1	equ   0046   *  $002e  * !0002 * Repeat point for sample 1
SampleRepSize1	equ   0048   *  $0030  * !0002 * Repeat Length for sample 1

SampleName2	equ   0050   *  $0032  * !0022 * sample name no. 2
SampleLength2	equ   0072   *  $0048  * !0002 * sample length no. 2
SampleVolume2	equ   0075   *  $004b  * !0001 * Volume Range $00-$40 or 0-64
SampleRep2	equ   0076   *  $004c  * !0002 * Repeat point for sample 2
SampleRepSize2	equ   0078   *  $004e  * !0002 * Repeat Length for sample 2

SongLength	equ   0950   *  $03b6  * !0001 * Songlength. Range is 1-128
SongPositions	equ   0952   *  $03b8  * !0128 * song positions 0-127 $0-$7f
Identification	equ   1080   *  $0438  * !0004 * Usually "M.K." i.d.
DataPattern0	equ   1084   *  $043c  * !1024 * data for pattern 0

MaxSongPosition	equ   $7f
MaxVolume	equ   $40

*****************************************************************************
* Music Initialization
*****************************************************************************

mt_init:lea	mt_data(pc),a0		; noisetracker module data in a0
	lea	mt_mulu(pc),a1
	move.l	#mt_data+$c,d0
	moveq	#$1f,d1
	moveq	#$1e,d3
mt_lop4:move.l	d0,(a1)+
	add.l	d3,d0
	dbf	d1,mt_lop4

	lea	SongPositions(a0),a1
	moveq	#MaxSongPosition,d0
	moveq	#0,d1
	moveq	#0,d2
mt_lop2:move.b	(a1)+,d1
	cmp.b	d2,d1
	ble.s	mt_lop
	move.l	d1,d2
mt_lop:	dbf	d0,mt_lop2
	addq.w	#1,d2

	asl.l	#8,d2
	asl.l	#2,d2
	lea	4(a1,d2.l),a2
	lea	mt_samplestarts(pc),a1
	add.w	#samplelength1,a0
	moveq	#$1e,d0
mt_lop3:clr.l	(a2)
	move.l	a2,(a1)+
	moveq	#0,d1
	move.b	d1,2(a0)
	move.w	(a0),d1
	asl.l	#1,d1
	add.l	d1,a2
	add.l	d3,a0
	dbf	d0,mt_lop3

	move.l	$78.w,mt_oldirq-mt_samplestarts-$7c(a1)
	or.b	#2,_ciaa
	move.b	#6,mt_speed-mt_samplestarts-$7c(a1)
	bsr.s	mt_end
	move.b	d0,mt_songpos-mt_samplestarts-$7c(a1)
	move.b	d0,mt_counter-mt_samplestarts-$7c(a1)
	move.w	d0,mt_pattpos-mt_samplestarts-$7c(a1)
	rts

*****************************************************************************
* Turns off sound channels
*****************************************************************************

mt_end:	lea	(_Custom).l,a0		; get base address in a0
	moveq	#0,d0			; clear d0
	move.w	d0,aud0vol(a0)
	move.w	d0,aud1vol(a0)
	move.w	d0,aud2vol(a0)
	move.w	d0,aud3vol(a0)
	move.w	#$f,dmacon(a0)
	rts

*****************************************************************************
* Plays music ( call every vb ) 
*****************************************************************************

mt_music:
	lea	mt_data(pc),a0		; noisetracker module data in a0
	lea	mt_voice1(pc),a4
	addq.b	#1,mt_counter-mt_voice1(a4)
	move.b	mt_counter(pc),d0
	cmp.b	mt_speed(pc),d0
	blt	mt_nonew
	moveq	#0,d0
	move.b	d0,mt_counter-mt_voice1(a4)
	move.w	d0,mt_dmacon-mt_voice1(a4)
	lea	mt_data(pc),a0
	lea	SongPositions(a0),a2
	lea	DataPattern0(a0),a0

	moveq	#0,d1
	move.b	mt_songpos(pc),d0
	move.b	(a2,d0.w),d1
	lsl.w	#8,d1
	lsl.w	#2,d1
	add.w	mt_pattpos(pc),d1

	lea	(_Custom+aud0pth).l,a5
	lea	mt_samplestarts-4(pc),a1
	lea	mt_playvoice(pc),a6
	jsr	(a6)
	addq.l	#4,d1
	lea	(_Custom+aud1pth).l,a5
	lea	mt_voice2(pc),a4
	jsr	(a6)
	addq.l	#4,d1
	lea	(_Custom+aud2pth).l,a5
	lea	mt_voice3(pc),a4
	jsr	(a6)
	addq.l	#4,d1
	lea	(_Custom+aud3pth).l,a5
	lea	mt_voice4(pc),a4
	jsr	(a6)

	move.w	mt_dmacon(pc),d0
	beq.s	mt_nodma

	lea	(_ciab).l,a3
	move.b	#$7f,$d00(a3)
	move.w	#$2000,_Custom+intreq
	move.w	#$a000,_Custom+intena
	move.l	#mt_irq1,$78.w
	moveq	#0,d0
	move.b	d0,$e00(a3)
	move.b	#$a8,$400(a3)
	move.b	d0,$500(a3)
	or.w	#$8000,mt_dmacon-mt_voice4(a4)
	move.b	#$11,$e00(a3)
	move.b	#$81,$d00(a3)

mt_nodma:
	add.w	#$10,mt_pattpos-mt_voice4(a4)
	cmp.w	#1024,mt_pattpos-mt_voice4(a4)
	bne.s	mt_exit
mt_next:clr.w	mt_pattpos-mt_voice4(a4)
	clr.b	mt_break-mt_voice4(a4)
	addq.b	#1,mt_songpos-mt_voice4(a4)
	and.b	#maxsongposition,mt_songpos-mt_voice4(a4)
	move.b	-2(a2),d0
	cmp.b	mt_songpos(pc),d0
	bne.s	mt_exit
	move.b	-1(a2),mt_songpos-mt_voice4(a4)
mt_exit:tst.b	mt_break-mt_voice4(a4)
	bne.s	mt_next
	rts

mt_nonew:
	lea	(_Custom+aud0pth).l,a5
	lea	mt_com(pc),a6
	jsr	(a6)
	lea	mt_voice2(pc),a4
	lea	(_Custom+aud1pth).l,a5
	jsr	(a6)
	lea	mt_voice3(pc),a4
	lea	(_Custom+aud2pth).l,a5
	jsr	(a6)
	lea	mt_voice4(pc),a4
	lea	(_Custom+aud3pth).l,a5
	jsr	(a6)
	tst.b	mt_break-mt_voice4(a4)
	bne.s	mt_next
	rts

mt_irq1:tst.b	$bfdd00
	move.w	mt_dmacon(pc),_Custom+dmacon
	move.l	#mt_irq2,$78.w
	move.w	#$2000,_Custom+intreq
	rte

mt_irq2:tst.b	$bfdd00
	movem.l	a3/a4,-(a7)		; preserve a3 and a4
	lea	mt_voice1(pc),a4
	lea	(_Custom).l,a3		; hardware base in a3
	move.l	$a(a4),aud0pth(a3)
	move.w	$e(a4),aud0len(a3)
	move.l	$a+$1c(a4),aud1pth(a3)
	move.w	$e+$1c(a4),aud1len(a3)
	move.l	$a+$38(a4),aud2pth(a3)
	move.w	$e+$38(a4),aud2len(a3)
	move.l	$a+$54(a4),aud3pth(a3)
	move.w	$e+$54(a4),aud3len(a3)
	movem.l	(a7)+,a3/a4		; restore a3 and a4
	move.b	#0,$bfde00
	move.b	#$7f,$bfdd00
	move.l	mt_oldirq(pc),$78.w
	move.w	#$2000,_Custom+intreq
	move.w	#$2000,_Custom+intena
	rte

mt_playvoice:
	move.l	(a0,d1.l),(a4)
	moveq	#0,d2
	move.b	2(a4),d2
	lsr.b	#4,d2
	move.b	(a4),d0
	and.b	#$f0,d0
	or.b	d0,d2
	beq	mt_oldinstr

	asl.w	#2,d2
	move.l	(a1,d2.l),4(a4)
	move.l	mt_mulu(pc,d2.w),a3
	move.w	(a3)+,8(a4)
	move.w	(a3)+,$12(a4)
	move.l	4(a4),d0
	moveq	#0,d3
	move.w	(a3)+,d3
	beq	mt_noloop
	asl.w	#1,d3
	add.l	d3,d0
	move.l	d0,$a(a4)
	move.w	-2(a3),d0
	add.w	(a3),d0
	move.w	d0,8(a4)
	bra	mt_hejaSverige

mt_mulu:dcb.l	$20,0

mt_noloop:
	add.l	d3,d0
	move.l	d0,$a(a4)
mt_hejaSverige:
	move.w	(a3),$e(a4)
	move.w	$12(a4),8(a5)

mt_oldinstr:
	move.w	(a4),d3
	and.w	#$fff,d3
	beq	mt_com2
	tst.w	8(a4)
	beq.s	mt_stopsound
	move.b	2(a4),d0
	and.b	#$f,d0
	cmp.b	#5,d0
	beq.s	mt_setport
	cmp.b	#3,d0
	beq.s	mt_setport

	move.w	d3,$10(a4)
	move.w	$1a(a4),_Custom+dmacon
	clr.b	$19(a4)

	move.l	4(a4),(a5)
	move.w	8(a4),4(a5)
	move.w	$10(a4),6(a5)

	move.w	$1a(a4),d0
	or.w	d0,mt_dmacon-mt_playvoice(a6)
	bra	mt_com2

mt_stopsound:
	move.w	$1a(a4),_Custom+dmacon
	bra	mt_com2

mt_setport:
	move.w	(a4),d2
	and.w	#$fff,d2
	move.w	d2,$16(a4)
	move.w	$10(a4),d0
	clr.b	$14(a4)
	cmp.w	d0,d2
	beq.s	mt_clrport
	bge	mt_com2
	move.b	#1,$14(a4)
	bra	mt_com2
mt_clrport:
	clr.w	$16(a4)
	rts

mt_port:moveq	#0,d0
	move.b	3(a4),d2
	beq.s	mt_port2
	move.b	d2,$15(a4)
	move.b	d0,3(a4)
mt_port2:
	tst.w	$16(a4)
	beq.s	mt_rts
	move.b	$15(a4),d0
	tst.b	$14(a4)
	bne.s	mt_sub
	add.w	d0,$10(a4)
	move.w	$16(a4),d0
	cmp.w	$10(a4),d0
	bgt.s	mt_portok
	move.w	$16(a4),$10(a4)
	clr.w	$16(a4)
mt_portok:
	move.w	$10(a4),6(a5)
mt_rts:	rts

mt_sub:	sub.w	d0,$10(a4)
	move.w	$16(a4),d0
	cmp.w	$10(a4),d0
	blt.s	mt_portok
	move.w	$16(a4),$10(a4)
	clr.w	$16(a4)
	move.w	$10(a4),6(a5)
	rts

mt_sin:	dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
	dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18

mt_vib:	move.b	$3(a4),d0
	beq.s	mt_vib2
	move.b	d0,$18(a4)

mt_vib2:move.b	$19(a4),d0
	lsr.w	#2,d0
	and.w	#$1f,d0
	moveq	#0,d2
	move.b	mt_sin(pc,d0.w),d2
	move.b	$18(a4),d0
	and.w	#$f,d0
	mulu	d0,d2
	lsr.w	#7,d2
	move.w	$10(a4),d0
	tst.b	$19(a4)
	bmi.s	mt_vibsub
	add.w	d2,d0
	bra.s	mt_vib3
mt_vibsub:
	sub.w	d2,d0
mt_vib3:move.w	d0,6(a5)
	move.b	$18(a4),d0
	lsr.w	#2,d0
	and.w	#$3c,d0
	add.b	d0,$19(a4)
	rts


mt_arplist:
	dc.b 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1

mt_arp:	moveq	#0,d0
	move.b	mt_counter(pc),d0
	move.b	mt_arplist(pc,d0.w),d0
	beq.s	mt_normper
	cmp.b	#2,d0
	beq.s	mt_arp2
mt_arp1:move.b	3(a4),d0
	lsr.w	#4,d0
	bra.s	mt_arpdo
mt_arp2:move.b	3(a4),d0
	and.w	#$f,d0
mt_arpdo:
	asl.w	#1,d0
	move.w	$10(a4),d1
	lea	mt_periods(pc),a0
mt_arp3:cmp.w	(a0)+,d1
	blt.s	mt_arp3
	move.w	-2(a0,d0.w),6(a5)
	rts

mt_normper:
	move.w	$10(a4),6(a5)
	rts

mt_com:	move.w	2(a4),d0
	and.w	#$fff,d0
	beq.s	mt_normper
	move.b	2(a4),d0
	and.b	#$f,d0
	beq.s	mt_arp
	cmp.b	#6,d0
	beq.s	mt_volvib
	cmp.b	#4,d0
	beq	mt_vib
	cmp.b	#5,d0
	beq.s	mt_volport
	cmp.b	#3,d0
	beq	mt_port
	cmp.b	#1,d0
	beq.s	mt_portup
	cmp.b	#2,d0
	beq.s	mt_portdown
	move.w	$10(a4),6(a5)
	cmp.b	#$a,d0
	beq.s	mt_volslide
	rts

mt_portup:
	moveq	#0,d0
	move.b	3(a4),d0
	sub.w	d0,$10(a4)
	move.w	$10(a4),d0
	cmp.w	#$71,d0
	bpl.s	mt_portup2
	move.w	#$71,$10(a4)
mt_portup2:
	move.w	$10(a4),6(a5)
	rts

mt_portdown:
	moveq	#0,d0
	move.b	3(a4),d0
	add.w	d0,$10(a4)
	move.w	$10(a4),d0
	cmp.w	#$358,d0
	bmi.s	mt_portdown2
	move.w	#$358,$10(a4)
mt_portdown2:
	move.w	$10(a4),6(a5)
	rts

mt_volvib:
	 bsr	mt_vib2
	 bra.s	mt_volslide
mt_volport:
	 bsr	mt_port2

mt_volslide:
	moveq	#0,d0
	move.b	3(a4),d0
	lsr.b	#4,d0
	beq.s	mt_vol3
	add.b	d0,$13(a4)
	cmp.b	#MaxVolume,$13(a4)
	bmi.s	mt_vol2
	move.b	#MaxVolume,$13(a4)
mt_vol2:move.w	$12(a4),8(a5)
	rts

mt_vol3:move.b	3(a4),d0
	and.b	#$f,d0
	sub.b	d0,$13(a4)
	bpl.s	mt_vol4
	clr.b	$13(a4)
mt_vol4:move.w	$12(a4),8(a5)
	rts

mt_com2:move.b	2(a4),d0
	and.b	#$f,d0
	beq	mt_rts
	cmp.b	#$e,d0			; check for filter change
	beq.s	mt_filter
	cmp.b	#$d,d0			; check for pattern break
	beq.s	mt_pattbreak
	cmp.b	#$b,d0			; check for song jump
	beq.s	mt_songjmp		
	cmp.b	#$c,d0			; check for change volume
	beq.s	mt_setvol
	cmp.b	#$f,d0			; check for change speed
	beq.s	mt_setspeed
	rts

mt_filter:
	move.b	3(a4),d0
	and.b	#1,d0
	asl.b	#1,d0
	and.b	#$fd,_ciaa
	or.b	d0,_ciaa
	rts

mt_pattbreak:
	move.b	#1,mt_break-mt_playvoice(a6)
	rts

mt_songjmp:
	move.b	#1,mt_break-mt_playvoice(a6)
	move.b	3(a4),d0
	subq.b	#1,d0
	move.b	d0,mt_songpos-mt_playvoice(a6)
	rts

mt_setvol:
	cmp.b	#MaxVolume,3(a4)
	bls.s	mt_sv2
	move.b	#MaxVolume,3(a4)
mt_sv2:	moveq	#0,d0
	move.b	3(a4),d0
	move.b	d0,$13(a4)
	move.w	d0,8(a5)
	rts

mt_setspeed:
	moveq	#0,d0
	move.b	3(a4),d0
	cmp.b	#$1f,d0
	bls.s	mt_sp2
	moveq	#$1f,d0
mt_sp2:	tst.w	d0
	bne.s	mt_sp3
	moveq	#1,d0
mt_sp3:	move.b	d0,mt_speed-mt_playvoice(a6)
	rts

*****************************************************************************
* Music Data's
*****************************************************************************

mt_periods:
	dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
	dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
	dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
	dc.w $007f,$0078,$0071,$0000

mt_speed:	dc.b	6
mt_counter:	dc.b	0
mt_pattpos:	dc.w	0
mt_songpos:	dc.b	0
mt_break:	dc.b	0
mt_dmacon:	dc.w	0
mt_samplestarts:dcb.l	$1f,0
mt_voice1:	dcb.w	13,0
		dc.w	1
mt_voice2:	dcb.w	13,0
		dc.w	2
mt_voice3:	dcb.w	13,0
		dc.w	4
mt_voice4:	dcb.w	13,0
		dc.w	8
mt_oldirq:	dc.l	0
		even
mt_data:	incbin	'source:modules/mod.music'


*****************************************************************************
* Define some Equ's for the Amiga Hardware References and libraries
*****************************************************************************
;Level3Vector	equ $6c
SysCop1		equ $26
_ciaa:		equ $bfe001
ICRA		equ $bfed01
_ciab:		equ $bfd000
left		equ 6
esc		equ $45
del		equ $46
help		equ $5f
a		equ $20
b		equ $35
c		equ $33
d		equ $22
e		equ $12
f		equ $23
g		equ $24
h		equ $25
i		equ $17
j		equ $26
k		equ $27
l		equ $28

_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
potgor:		equ $016
serdatr:	equ $018
dskbytr:	equ $01a
intenar:	equ $01c
intreqr:	equ $01e
dskpth:		equ $020
dskptl:		equ $022
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
bltcpth:	equ $048
bltcptl:	equ $04a
bltbpth:	equ $04c
bltbptl:	equ $04e
bltapth:	equ $050
bltaptl:	equ $052
bltdpth:	equ $054
bltdptl:	equ $056
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
cop1lch:	equ $080
cop1lcl:	equ $082
cop2lch:	equ $084
cop2lcl:	equ $086
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
aud0pth:	equ $0a0
aud0ptl:	equ $0a2
aud0len:	equ $0a4
aud0per:	equ $0a6
aud0vol:	equ $0a8
aud0dat:	equ $0aa
aud1pth:	equ $0b0
aud1ptl:	equ $0b2
aud1len:	equ $0b4
aud1per:	equ $0b6
aud1vol:	equ $0b8
aud1dat:	equ $0ba
aud2pth:	equ $0c0
aud2ptl:	equ $0c2
aud2len:	equ $0c4
aud2per:	equ $0c6
aud2vol:	equ $0c8
aud2dat:	equ $0ca
aud3pth:	equ $0d0
aud3ptl:	equ $0d2
aud3len:	equ $0d4
aud3per:	equ $0d6
aud3vol:	equ $0d8
aud3dat:	equ $0da
bpl1pth:	equ $0e0
bpl1ptl:	equ $0e2
bpl2pth:	equ $0e4
bpl2ptl:	equ $0e6
bpl3pth:	equ $0e8
bpl3ptl:	equ $0ea
bpl4pth:	equ $0ec
bpl4ptl:	equ $0ee
bpl5pth:	equ $0f0
bpl5ptl:	equ $0f2
bpl6pth:	equ $0f4
bpl6ptl:	equ $0f6
bplcon0:	equ $100
bplcon1:	equ $102
bplcon2:	equ $104
bpl1mod:	equ $108
bpl2mod:	equ $10a
bpl1dat:	equ $110
bpl2dat:	equ $112
bpl3dat:	equ $114
bpl4dat:	equ $116
bpl5dat:	equ $118
bpl6dat:	equ $11a
spr0pth:	equ $120
spr0ptl:	equ $122
spr1pth:	equ $124
spr1ptl:	equ $126
spr2pth:	equ $128
spr2ptl:	equ $12a
spr3pth:	equ $12c
spr3ptl:	equ $12e
spr4pth:	equ $130
spr4ptl:	equ $132
spr5pth:	equ $134
spr5ptl:	equ $136
spr6pth:	equ $138
spr6ptl:	equ $13a
spr7pth:	equ $13c
spr7ptl:	equ $13e
spr0pos:	equ $140
spr0ctl:	equ $142
spr0data:	equ $144
spr0datb:	equ $146
spr1pos:	equ $148
spr1ctl:	equ $14a
spr1data:	equ $14c
spr1datb:	equ $14e
spr2pos:	equ $150
spr2ctl:	equ $152
spr2data:	equ $154
spr2datb:	equ $156
spr3pos:	equ $158
spr3ctl:	equ $15a
spr3data:	equ $15c
spr3datb:	equ $15e
spr4pos:	equ $160
spr4ctl:	equ $162
spr4data:	equ $164
spr4datb:	equ $166
spr5pos:	equ $168
spr5ctl:	equ $16a
spr5data:	equ $16c
spr5datb:	equ $16e
spr6pos:	equ $170
spr6ctl:	equ $172
spr6data:	equ $174
spr6datb:	equ $176
spr7pos:	equ $178
spr7ctl:	equ $17a
spr7data:	equ $17c
spr7datb:	equ $17e
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

AbsExecBase:	equ 4
forbid		equ -132
permit		equ -138
superstate	equ -150
closelibrary:	equ -414
oldopenlibrary	equ -408
;openlibrary:	equ -552

****************************************************************************
*		 NEW LINE EQUATES ( EVERY NEW LINE FROM 1 TO 30 )	   *
****************************************************************************

LINE00	EQU	7*0
LINE01	EQU	7*2
LINE02	EQU	7*4
LINE03	EQU	7*6
LINE04	EQU	7*8
LINE05	EQU	7*10
LINE06	EQU	7*12
LINE07	EQU	7*14
LINE08	EQU	7*16
LINE09	EQU	7*18
LINE10	EQU	7*20
LINE11	EQU	7*22
LINE12	EQU	7*24
LINE13	EQU	7*26
LINE14	EQU	7*28
LINE15	EQU	7*30
LINE16	EQU	7*32
LINE17	EQU	7*34
LINE18	EQU	7*36
ENDLINE	EQU	0
ENDTEXT	EQU	255
ENDSCRL	EQU	"^"
STOP	EQU	"%"
FAST	EQU	"@"
SLOW	EQU	"#"
TIME	EQU	400

		section	bssmem,bss_c
Screen:		dcb.b	12000,0		;reserve some memory for screen area

wipestart	equ	screen+1760
wipeend		equ	screen+10520


