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

*****************************************************************************
*									    *
* 		     AMIGA CODERS CLUB (ACC) MENU V2 PROJECT 	            *
*               ----------------------------------------------              *
*									    *
* Read docs from the first menu.... This menu is just another variation on  *
* the my ACC menu v1... ( most routines are the same and are modified just  *
* slightly... just shows what a bit of imagination can do eh... )	    *
*									    *
* Menu coded by -: Trevor Mensah  ( CONTACT ME DIRECT FOR PROGRAMMING !!!)  *
*									    *
* Thanks to my great friend "Ste.R" for the gfx ACC logo... he says that he *
* got the basic outline gfx from a horizion megademo.. so thanks to them    *
* also ?!!???  ( i think anyway ??! )					    *
*									    *
* ( FADE PICTURE COLOURS ROUTINE INCLUDED !!! ) 			    *
*									    *
* NOTE_: Sorry if you find the code a bit sloppy... maybe I'll recode some  *
* of the old routines i used for faster,small,better one.. ( sometime !!)   *
*									    *
* This menu ( as is all stuff I send into ACC ) is full P.D.S Freeware	    *
* Feel free to use any of the routines in your progs...			    *
*									    *
*   _ // Thanks to the Amiga for being so cool !!! ( Signed TLM )           * 									    *
*   \X/									    *
*									    *
*****************************************************************************

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

		bsr.s	Init_Planes		; initialise bitplane pointers
		jsr	mt_init			; initialise music replayer

		lea	palette,a2		; ptr to picture colours to fade
		lea	colours,a3		; position in copperlist to goto
		moveq.l	#19-1,d7		; number of colours in picture
		bsr	fadeup			; fade down picture colours
	
		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
*****************************************************************************
width		equ	$2ec0

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+width*1,d0	; get screen ptr in d0 
		move.w	d0,pl2l			; find bpl2ptl (low word) 
		swap	d0			; swap to get high word
		move.w	d0,pl2h			; find bpl2pth (high word)

		move.l	#screen+width*2,d0	; get screen ptr in d0 
		move.w	d0,pl3l			; find bpl3ptl (low word) 
		swap	d0			; swap to get high word
		move.w	d0,pl3h			; find bpl3pth (high word)

		move.l	#screen+width*3,d0	; get screen ptr in d0 
		move.w	d0,pl4l			; find bpl4ptl (low word) 
		swap	d0			; swap to get high word
		move.w	d0,pl4h			; find bpl4pth (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
		bsr	print
		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

*****************************************************************************
* Colour Fader Routines     ( Regesters Effected : d0-d7/a0-a3 (sp) )
* ---------------------     -----------------------------------------
* Fades a pictures colour palette up or down at defined speeds
* Colours Palette list               = a2	(list of colours)
* Position for faded Colours dump    = a3	(pos in the copperlist)
* Number of colours in picture       = d7	(no of colours in pic)
*****************************************************************************


*****************************************************************************
* Call FadeDown picture colours for any picture 

fadedown:	moveq.l	#0,d3
fadedownn:	move.w	d3,-(sp)
		bsr.s	wvbl		; slow down fader !
		bsr.s	wvbl		; slow down fader !
		bsr.s	wvbl		; slow down fader !
		bsr.s	wvbl		; slow down fader !   (slow fade)
		bsr.s	wvbl		; slow down fader !   (slow fade)

		move.l	d7,d4		; get new no. of colours in picture
		move.l	a2,a0		; get new list of colours to fade
		move.l	a3,a1		; get new copperlist dump address

		bsr.s	dofade		; fadedown colours
		move.w	(sp)+,d3
		addq.w	#1,d3
		cmp.w	#16,d3
		bne.s	fadedownn
 		rts	

*****************************************************************************
* Call FadeUp Picture colours for any picture
 
fadeup:	moveq.l	#15,d3
fadeupp:	move.w	d3,-(sp)
		bsr.s	wvbl		; slow down fader !
		bsr.s	wvbl		; slow down fader !
		bsr.s	wvbl		; slow down fader !
		bsr.s	wvbl		; slow down fader !   (slow fade)
		bsr.s	wvbl		; slow down fader !   (slow fade)

		move.l	d7,d4		; get new no. of colours in picture
		move.l	a2,a0		; get new list of colours to fade
		move.l	a3,a1		; get new copperlist dump address

		bsr.s	dofade		; fadeup colours
		move.w	(sp)+,d3
		dbra	d3,fadeupp
 		rts	
 
*****************************************************************************
* Actual Fade Colours routines

dofade:		move.w	d3,d6
		lsl.w	#4,d6
		move.w	d6,d5
		lsl.w	#4,d5

dofade1:	addq.w	#4/2,a1		; skip to next colour location
		move.w	(a0)+,d2

		moveq.l	#15,d0
		and.w	d2,d0
		sub.w	d3,d0
		bpl.s	fadechk1
 
		moveq.l	#0,d0
fadechk1:	move.w	#240,d1
		and.w	d2,d1
		sub.w	d6,d1
		bmi.s	fadechk2
 
		or.w	d1,d0
fadechk2:	and.w	#3840,d2
		sub.w	d5,d2
		bmi.s	fadechk3
 
		or.w	d2,d0
fadechk3:	move.w	d0,(a1)+
		dbra	d4,dofade1
 		rts	
 
wvbl:		move.l	$dff004.l,d0		; get vblank pause
		and.l	#$01ff00,d0
		cmp.l	#$010200,d0
		bge.s	wvbl

wvbl2:		move.l	$dff004.l,d0
		and.l	#$01ff00,d0
		cmp.l	#$010200,d0
		blt.s	wvbl2
 		rts	

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

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

		jsr	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	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	#$dff000,a5
		moveq.l	#0,d0
		move.w	d0,dmacon(a5)
		move.w	d0,intena(a5)
		move.w	d0,intreq(a5)		; freeze everything now !!

		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		; force low-memory config

*****************************************************************************
* 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:	jsr	mt_end			; turn off music channels
		lea	palette,a2	; ptr to picture colours to fade
		lea	colours,a3	; position in copperlist to goto
		moveq.l	#19-1,d7	; number of colours in picture
		bsr	fadedown	; fade down picture colours

		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						   *
****************************************************************************
nline		equ	8	; next line feed

Print		lea	Screen+width*2+nline*12*screenwidth,a1
		MOVEQ.L	#0,D0
		MOVE.B	(A0)+,D0
		MULU	#screenwidth,D0		;SCREEN WIDTH
		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	#280,A2

LOCATE		MOVEQ.L	#7,D1
		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	257
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	#'f',D0		; TEST FOR A PAUSE IN SCROLLTEXT
		BNE.S	SPEEDCHEK2

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

SPEEDCHEK2:	CMP.B	#'g',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+width*2+scrollpos-1,A1
		LEA	FONT(PC),A2
		AND.L	#255,D0
		SUB.B	#32,D0
		CMP.B	#39,D0
		BLE.S	LOC
		ADD.L	#280,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+width*2+scrollpos+0,$050(A5)	; Address for DMA A (source)
		MOVE.L	#screen+width*2+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	#$0805,$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
; f       - SPEED 1 ( SLOW )
; g       - SPEED 2 ( FAST ) 

ScrollText
	;    ;1234567890123456789012345678901234567890123;
	DC.B '        f'
	DC.B '  "(ACC+) THE AMIGA CODERS CLUB IN 1991!"  ',STOP
	DC.B '          '
	DC.B '          = PROUDLY PRESENTS! =   g        ',stop
	DC.B '         '
	DC.B '   = (ACC) CODERS CLUB SOURCE DISK 16 =    ',STOP

	DC.B ' f  IF YOU HAVE NOT ALREADY WORKED IT OUT HERES HOW TO USE THIS MENU.....   EASY   JUST PRESS THE KEY WHICH CORRESPONDS TO THE SUB-MENU OF YOUR CHOICE....     '
	DC.B '            PLEASE NOTE-: YOU CAN EXIT FROM THE MENU TO THE CLI AT ANY TIME JUST BY PRESSING THE "L" KEY !!!!       '
	DC.B '                    g                                '
	DC.B '             MENU CODING -: BY TREVOR MENSAH        ',STOP
	DC.B '     f                      '
	DC.B 'FIRST--:     THE MUSIC WAS THIS TIME COMPOSED BY MYSELF  -- TREVOR MENSAH --  AND IS ABOUT 71 KBYTES LONG            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 SECOND 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   

TEXT:	DC.B	LINE00,10,"(ACC+) AMIGA CODERS CLUB DISK 16",ENDLINE
	DC.B	LINE01,10,"________________________________",ENDLINE
	DC.B	LINE03,10,"MAIN MENU",ENDLINE
	DC.B	LINE05,03," A `   README                    ^ A ",ENDLINE
	DC.B	LINE06,03," B `   LETTERS SECTION           ^ B ",ENDLINE
	DC.B	LINE07,03," C `   SOURCE PAGE ONE           ^ C ",ENDLINE
	DC.B	LINE08,03," D `   SOURCE PAGE TWO           ^ D ",ENDLINE
	DC.B	LINE09,03," E `   SOURCE PAGE THREE         ^ E ",ENDLINE
	DC.B	LINE10,03," F `   DECRUNCH SOURCE           ^ F ",ENDLINE
	DC.B	LINE11,03," G `   TUTORIALS                 ^ G ",ENDLINE
	DC.B	LINE12,03," H `   UTILITIES/TOOLS           ^ H ",ENDLINE
	DC.B	LINE13,03," I `   MISCELLANEOUS             ^ I ",ENDLINE
	DC.B	LINE14,03," J `   ABOUT INCLUSIONS          ^ J ",ENDLINE
	DC.B	LINE15,03," K `   ABOUT BACK ISSUES/ORDERS  ^ K ",ENDLINE
	DC.B	LINE16,03," L `   EXIT FROM MENU TO DOS     ^ L ",ENDLINE

	DC.B	LINE18,01,"ESC=MAINMENU   HELP=RESET   DEL=NOFASTMEM",ENDTEXT
	EVEN


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

LETTERS.TXT:
	DC.B	LINE03,10,"LETTERS",ENDLINE
	DC.B	LINE05,01,"                                         ",ENDLINE
	DC.B	LINE06,01,"                                         ",ENDLINE
	DC.B	LINE07,01,"  A      T.MENSAH                     A  ",ENDLINE 
	DC.B	LINE08,01,"                                         ",ENDLINE
	DC.B	LINE09,01,"  B                                   B  ",ENDLINE
	DC.B	LINE10,01,"                                         ",ENDLINE
	DC.B	LINE11,01,"  C                                   C  ",ENDLINE
	DC.B	LINE12,01,"                                         ",ENDLINE
	DC.B	LINE13,01,"  D                                   D  ",ENDLINE
	DC.B	LINE14,01,"                                         ",ENDLINE
	DC.B	LINE15,01,"  E                                   E  ",ENDLINE
	DC.B	LINE16,01,"                                         ",ENDTEXT

SOURCE1.TXT:
	DC.B	LINE03,10,"SOURCE PAGE ONE ( * = NOT DONE! )",ENDLINE
	DC.B	LINE05,01,"                                         ",ENDLINE
	DC.B	LINE06,01,"  A   ACC MENUSTYLE 1 (T.MENSAH)      A  ",ENDLINE
	DC.B	LINE07,01,"  B   ACC MENUSTYLE 2 (T.MENSAH)      B  ",ENDLINE 
	DC.B	LINE08,01,"  C   DIVERT-GURUS (T.MENSAH)         C  ",ENDLINE
	DC.B	LINE09,01,"  D   CHECK WRITE-ENABLED (T.MENSAH)  D  ",ENDLINE
	DC.B	LINE10,01,"  E   TURN OFF FASTMEMORY (T.MENSAH)  E  ",ENDLINE
	DC.B	LINE11,01,"  F   HARD-RESET (T.MENSAH)           F  ",ENDLINE
	DC.B	LINE12,01,"  G   MEMORYVIRUS CHECKER (T.MENSAH)  G  ",ENDLINE
	DC.B	LINE13,01,"  H   WB BITPLANE-REMOVER (T.MENSAH)  H  ",ENDLINE
	DC.B	LINE14,01,"  I   SHOW INTRO1 (T.MENSAH)  N/A *   I  ",ENDLINE
	DC.B	LINE15,01,"  J   INTRO1 (T.MENSAH)       N/A *   J  ",ENDLINE
	DC.B	LINE16,01,"  K   INTRO2 (T.MENSAH)       N/A *   K  ",ENDTEXT

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

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

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

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

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

MISC.TXT:
	DC.B	LINE03,10,"MISCELLANEOUS",ENDLINE
	DC.B	LINE05,01,"                                         ",ENDLINE
	DC.B	LINE06,01,"                                         ",ENDLINE
	DC.B	LINE07,01,"  A                                   A  ",ENDLINE 
	DC.B	LINE08,01,"                                         ",ENDLINE
	DC.B	LINE09,01,"  B                                   B  ",ENDLINE
	DC.B	LINE10,01,"                                         ",ENDLINE
	DC.B	LINE11,01,"  C                                   C  ",ENDLINE
	DC.B	LINE12,01,"                                         ",ENDLINE
	DC.B	LINE13,01,"  D                                   D  ",ENDLINE
	DC.B	LINE14,01,"                                         ",ENDLINE
	DC.B	LINE15,01,"                                         ",ENDLINE
	DC.B	LINE16,01,"                                         ",ENDTEXT

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

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


*****************************************************************************
* New Copperlist							    *
* ( Using an overscan 352x280 screen layout )				    *
*****************************************************************************
 
CopperList:	dc.w	diwstrt,$1a64
		dc.w	diwstop,$39d1
		dc.w	ddfstrt,$0030
		dc.w	ddfstop,$00d8
		dc.w	bplcon0,$0200		; (4 bitplanes Lo-Res)
		dc.w	bpl1mod,0		; (no moduo)
		dc.w	bpl2mod,0		; (no moduo)
		dc.w	color00,0		; colour 0 (black)
		dc.w	color01,$fff		; colour 1 (white)
colours:	dc.w	$0180,$0000,$0182,$0000,$0184,$0000,$0186,$0000
		dc.w	$0188,$0000,$018a,$0000,$018c,$0000,$018e,$0000
		dc.w	$0190,$0000,$0192,$0000,$0194,$0000,$0196,$0000
		dc.w	$0198,$0000,$019a,$0000,$019c,$0000,$019e,$0000
		dc.w	$01a2,$0000,$01a4,$0000,$01a6,$0000

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	$2009,$fffe,$0100,$4200
		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	bpl3pth
pl3h:		dc.w 	0
		dc.w 	bpl3ptl
pl3l:		dc.w 	0
		dc.w	bpl4pth
pl4h:		dc.w 	0
		dc.w 	bpl4ptl
pl4l:		dc.w 	0
;
		dc.w	$8109,$fffe,$0188,$0444
		dc.w	$8209,$fffe,$0188,$0666
		dc.w	$8309,$fffe,$0188,$0aaa
		dc.w	$8409,$fffe,$0188,$0ccc
		dc.w	$8509,$fffe,$0188,$0eee
;
		dc.w	$8909,$fffe,$0188,$0444
		dc.w	$8a09,$fffe,$0188,$0666
		dc.w	$8b09,$fffe,$0188,$0aaa
		dc.w	$8c09,$fffe,$0188,$0ccc
		dc.w	$8d09,$fffe,$0188,$0eee

; 		copper cols 0
		dc.w	$9909,$fffe,$0188,$0440
		dc.w	$9a09,$fffe,$0188,$0660
		dc.w	$9b09,$fffe,$0188,$0aa0
		dc.w	$9c09,$fffe,$0188,$0cc0
		dc.w	$9d09,$fffe,$0188,$0ee0
; 		copper cols 1
		dc.w	$a909,$fffe,$0188,$0444
		dc.w	$aa09,$fffe,$0188,$0666
		dc.w	$ab09,$fffe,$0188,$0aaa
		dc.w	$ac09,$fffe,$0188,$0ccc
		dc.w	$ad09,$fffe,$0188,$0eee
; 		copper cols 2
		dc.w	$b009,$fffe,$0188,$0444
		dc.w	$b109,$fffe,$0188,$0666
		dc.w	$b209,$fffe,$0188,$0aaa
		dc.w	$b309,$fffe,$0188,$0ccc
		dc.w	$b409,$fffe,$0188,$0eee
; 		copper cols 3
		dc.w	$b809,$fffe,$0188,$0444
		dc.w	$b909,$fffe,$0188,$0666
		dc.w	$ba09,$fffe,$0188,$0aaa
		dc.w	$bb09,$fffe,$0188,$0ccc
		dc.w	$bc09,$fffe,$0188,$0eee
; 		copper cols 4
		dc.w	$c009,$fffe,$0188,$0444
		dc.w	$c109,$fffe,$0188,$0666
		dc.w	$c209,$fffe,$0188,$0aaa
		dc.w	$c309,$fffe,$0188,$0ccc
		dc.w	$c409,$fffe,$0188,$0eee
; 		copper cols 5
		dc.w	$c809,$fffe,$0188,$0444
		dc.w	$c909,$fffe,$0188,$0666
		dc.w	$ca09,$fffe,$0188,$0aaa
		dc.w	$cb09,$fffe,$0188,$0ccc
		dc.w	$cc09,$fffe,$0188,$0eee
; 		copper cols 6
		dc.w	$d009,$fffe,$0188,$0444
		dc.w	$d109,$fffe,$0188,$0666
		dc.w	$d209,$fffe,$0188,$0aaa
		dc.w	$d309,$fffe,$0188,$0ccc
		dc.w	$d409,$fffe,$0188,$0eee
; 		copper cols 7
		dc.w	$d809,$fffe,$0188,$0444
		dc.w	$d909,$fffe,$0188,$0666
		dc.w	$da09,$fffe,$0188,$0aaa
		dc.w	$db09,$fffe,$0188,$0ccc
		dc.w	$dc09,$fffe,$0188,$0eee
; 		copper cols 8
		dc.w	$e009,$fffe,$0188,$0444
		dc.w	$e109,$fffe,$0188,$0666
		dc.w	$e209,$fffe,$0188,$0aaa
		dc.w	$e309,$fffe,$0188,$0ccc
		dc.w	$e409,$fffe,$0188,$0eee
; 		copper cols 9
		dc.w	$e809,$fffe,$0188,$0444
		dc.w	$e909,$fffe,$0188,$0666
		dc.w	$ea09,$fffe,$0188,$0aaa
		dc.w	$eb09,$fffe,$0188,$0ccc
		dc.w	$ec09,$fffe,$0188,$0eee
; 		copper cols 10
		dc.w	$f009,$fffe,$0188,$0444
		dc.w	$f109,$fffe,$0188,$0666
		dc.w	$f209,$fffe,$0188,$0aaa
		dc.w	$f309,$fffe,$0188,$0ccc
		dc.w	$f409,$fffe,$0188,$0eee
; 		copper cols 11
		dc.w	$f809,$fffe,$0188,$0444
		dc.w	$f909,$fffe,$0188,$0666
		dc.w	$fa09,$fffe,$0188,$0aaa
		dc.w	$fb09,$fffe,$0188,$0ccc
		dc.w	$fc09,$fffe,$0188,$0eee
		dc.w	$ffe1,$fffe
; 		copper cols 12
		dc.w	$0009,$fffe,$0188,$0444
		dc.w	$0109,$fffe,$0188,$0666
		dc.w	$0209,$fffe,$0188,$0aaa
		dc.w	$0309,$fffe,$0188,$0ccc
		dc.w	$0409,$fffe,$0188,$0eee

; 		copper cols 13
		dc.w	$1009,$fffe,$0188,$0444
		dc.w	$1109,$fffe,$0188,$0666
		dc.w	$1209,$fffe,$0188,$0aaa
		dc.w	$1309,$fffe,$0188,$0ccc
		dc.w	$1409,$fffe,$0188,$0eee

; 		copper cols 14
		dc.w	$2009,$fffe,$0188,$0440
		dc.w	$2109,$fffe,$0188,$0660
		dc.w	$2209,$fffe,$0188,$0aa0
		dc.w	$2309,$fffe,$0188,$0cc0
		dc.w	$2409,$fffe,$0188,$0ee0
;
		dc.w	$3009,$fffe,$0100,$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
	dc.l	$A2A2A300,$80000000,$A4B1A500,$00008000
	dc.l	$A679A700,$80008000,$A86DA900,$80000000
	dc.l	$AA71AB00,$00008000,$ACE9AD00,$80008000
	dc.l	$AEB9AF00,$80000000,$B092B100,$00008000
	dc.l	$B275B300,$80008000,$B4B4B500,$80000000
	dc.l	$B6A1B700,$00008000,$B87BB900,$80008000
	dc.l	$BA66BB00,$80000000,$BC90BD00,$00008000
	dc.l	$BEC7BF00,$80008000,$C05FC100,$80000000
	dc.l	$C2D6C300,$00008000,$C4B6C500,$80008000
	dc.l	$C667C700,$80000000,$C854C900,$00008000
	dc.l	$CA5ACB00,$80008000,$CC55CD00,$80000000
	dc.l	$CE86CF00,$00008000,$D0B9D100,$80008000
	dc.l	$D2B1D300,$80000000,$D4CED500,$00008000
	dc.l	$D6AFD700,$80008000,$D85DD900,$80000000
	dc.l	$DA4ADB00,$00008000,$DC5CDD00,$80008000
	dc.l	$DE6CDF00,$80000000,$E075E100,$00008000
	dc.l	$E2D4E300,$80008000,$E4ADE500,$80000000
	dc.l	$E6DAE700,$00008000,$E8BFE900,$80008000
	dc.l	$EA84EB00,$80000000,$EC86ED00,$00008000
	dc.l	$EE73EF00,$80008000,$F0CFF100,$80000000
	dc.l	$F2ABF300,$00008000,$F487F500,$80008000
	dc.l	$F689F700,$80000000,$F8C6F900,$00008000
	dc.l	$FADBFB00,$80008000,$FC4CFD00,$80000000
	dc.l	$FEADFF00,$00008000,$008C0106,$80008000
	dc.l	$02850306,$80000000,$04C20506,$00008000
	dc.l	$06D80706,$80008000,$08680906,$80000000
	dc.l	$0A600B06,$00008000,$0C450D06,$80008000
	dc.l	$0EC70F06,$80000000,$10721106,$00008000
	dc.l	$12AB1306,$80008000,$149D1506,$80000000
	dc.l	$16DA1706,$00008000,$18E31906,$80008000
	dc.l	$1A801B06,$80000000,$1C721D06,$00008000
	dc.l	$1E561F06,$80008000,$20B32106,$80000000
	dc.l	$223C2306,$00008000,$24142506,$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								    *
*****************************************************************************
Palette:	dc.w 	$0000,$0fde,$0dab,$0c78
		dc.w 	$0a45,$0823,$0711,$0510
		dc.w 	$0aba,$08aa,$0676,$0555
		dc.w 	$09ab,$0479,$0257,$0035
		dc.w 	$0fff,$0aaa,$0555		; colours palette
		even
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
		even
font		incbin	"source:bitmaps/fontdatab",0
		even
Screen:		incbin	'source:bitmaps/acclogo1.bm',0
		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

****************************************************************************
*		 NEW LINE EQUATES ( EVERY NEW LINE FROM 1 TO 30 )	   *
****************************************************************************
LINE00	EQU	8*0
LINE01	EQU	8*1
LINE02	EQU	8*2
LINE03	EQU	8*3
LINE04	EQU	8*4
LINE05	EQU	8*5
LINE06	EQU	8*6
LINE07	EQU	8*7
LINE08	EQU	8*8
LINE09	EQU	8*9
LINE10	EQU	8*10

LINE11	EQU	8*11
LINE12	EQU	8*12
LINE13	EQU	8*13
LINE14	EQU	8*14
LINE15	EQU	8*15
LINE16	EQU	8*16
LINE17	EQU	8*17
LINE18	EQU	8*18
LINE19	EQU	8*19
LINE20	EQU	8*20

LINE21	EQU	8*21
LINE22	EQU	8*22
LINE23	EQU	8*23
LINE24	EQU	8*24
LINE25	EQU	8*25
LINE26	EQU	8*26
LINE27	EQU	8*27
LINE28	EQU	8*28
LINE29	EQU	8*29
LINE30	EQU	8*30

ENDLINE	EQU	0
ENDTEXT	EQU	255

ENDSCRL	EQU	"^"
STOP	EQU	"h"
FAST	EQU	"@"
SLOW	EQU	"#"
TIME	EQU	400

wipestart	equ	screen+width*2+nline*12*screenwidth+1000
wipeend		equ	screen+width*2+nline*12*screenwidth+6000


