		incdir	"DevpacAm:include/"
		include	"exec/exec_lib.i"
		include	"exec/execbase.i"
		include	"graphics/gfxbase.i"
		include	"graphics/graphics_lib.i"
		include	"hardware/custom.i"

***********************************************************
* Other Macros
***********************************************************

CALL		MACRO
		jsr	_LVO\1(a6)
		ENDM

WaitBlit	MACRO
		tst.b	(a5)
.\@:		btst.b	#6,(a5)
		bne.b	.\@
		ENDM

***********************************************************

Start:		bsr.w	TakeSystem

		bsr.w	InstallBmap
		bsr.w	InstallSprites
		bsr.w	InstallCopper

		move.w	#$7fff,intena-2(a5)
		movea.l	VectorBase,a0
		move.l	$6c(a0),Level3Save
		move.l	#MyLevel3,$6c(a0)
		move.w	#$c020,intena-2(a5)

.1:		btst	#6,$bfe001
		bne.b	.1

		move.w	#$7fff,intena-2(a5)
		movea.l	VectorBase,a0
		move.l	Level3Save,$6c(a0)

		bsr.w	RestoreSystem
		rts
	
***********************************************************

MyLevel3:	movem.l	d0-a6,-(a7)	; Push all regs onto stack
		movea.l	#$dff002,a5	; Custom chip base
		bsr.w	VScroll
		bsr.w	MoveStars
		move.w	#$20,intreq-2(a5) ; Turn off VBLANK int request bit
		movem.l	(a7)+,d0-a6	; Pop all regs from stack
		rte			; End of interrupt

***********************************************************

VScroll:	subq.w	#1,VScrollCount		; 1 less line to move up
		tst.w	VScrollCount		; Are we ready to draw a new text line?
		beq.w	NewLine			; Yes, go do it
						; If not, we need to shift it up
WB:		WaitBlit
		move.l	#Bmap+24+40,$50-2(a5)	; Blitter source A       (y = 1)
		move.l	#Bmap+24,$54-2(a5)	; Blitter destination D  (y = 0)
		move.l	#$00180018,$64-2(a5)	; A & D modulos
		move.l	#-1,$44-2(a5)		; Write mask
		move.l	#$09f00000,$40-2(a5)	; Blitter Control registers
		move.w	#(198*64)+8,$58-2(a5)	; 198 lines by 8 words
		rts

***********************************************************

NewLine:	move.w	#11,VScrollCount	; Reset VScroll counter
	
		lea	ScrollText,a2		; Adr of scrolltext
		add.l	ScrollPos,a2		; Get to correct place in text
		add.l	#15,ScrollPos		; Next time, we want the next line
		tst.b	(a2)			; Does this line start with a 0 byte?
		bne.b	NoResetText		; No, go on as normal
		move.l	#15,ScrollPos		; Yes, restart text
		lea	ScrollText,a2		; Point back to start

NoResetText:	moveq	#0,d6			; Counter, will do 15 characters
FindChar:	lea	Font,a0			; Adr of font
		lea	Bmap,a1			; Adr of bitmap

		moveq	#0,d0			; Clear out d0
		move.b	(a2)+,d0		; Next char into d0
		sub.b	#32,d0			; Get range of 0-58
		cmp.b	#37,d0			; Is it lower than an 'H'?
		blt.s	FirstRow		; Yes, use the top row of the font
		add.l	#(40*9),a0		; No, use the second row of the font
		sub.b	#37,d0			;   and adjust the range
FirstRow:	add.l	d0,a0			; Add char offset into font bmap
		add.l	d6,a1			; Add char num offset into bmap
		add.l	#7544,a1		; Move to lower right of bmap
		moveq	#7,d7			; We will copy this many raster lines
DrawLoop:	move.b	(a0),(a1)		; Copy a line of the character
		add.l	#40,a0			; Next line in font bmap
		add.l	#40,a1			; Next line in target bmap
		dbra	d7,DrawLoop		; Repeat until whole character is done

		addq.l	#1,d6			; Next character
		cmpi.l	#15,d6			; Done all 15 in this line yet?
		bne.w	FindChar		; No, do it all again
		bra.w	WB
		rts				; Done

***********************************************************

MoveStars:	lea	Stars+1,a0
	        moveq	#32,d0    		; num of stars div 3
loop:		subq.b  #3,(a0)+
		addq.l  #7,a0
		subq.b  #2,(a0)+
		addq.l  #7,a0
		subq.b  #1,(a0)+
		addq.l  #7,a0
		subq.l  #1,d0
		bne.s   loop
		rts

***********************************************************

InstallSprites:	lea	SpritePtrs,a0
		move.l	#Stars,d0
		move.w  d0,6(a0)
	        swap    d0
		move.w  d0,2(a0)
		move.l  #NullSprite,d0
		move.w  d0,14(a0)
		move.w  d0,22(a0)
		move.w  d0,30(a0)
		move.w  d0,38(a0)
		move.w  d0,46(a0)
		move.w  d0,54(a0)
		move.w  d0,62(a0)
		swap    d0
		move.w  d0,10(a0)
		move.w  d0,18(a0)
		move.w  d0,26(a0)
		move.w  d0,34(a0)
		move.w  d0,42(a0)
		move.w  d0,50(a0)
		move.w  d0,58(a0)
		rts

***********************************************************

TakeSystem:	movea.l	4.w,a6		; exec base
		lea	$dff002,a5	; custom chip base + 2

		lea	GraphicsName,a1	; "graphics.library"
		moveq	#0,d0		; any version
		CALL	OpenLibrary	; open it.
		move.l	d0,gfx_base	; save pointer to gfx base
		move.l	d0,a6		; for later callls...

		move.l  gb_ActiView(a6),OldView	; save old view

		move.w	#0,a1		; clears full long-word
		CALL	LoadView	; Open a NULL view (resets display
					;   on any Amiga)

		CALL	WaitTOF		; Wait twice so that an interlace
		CALL	WaitTOF		;   display can reset.

		CALL	OwnBlitter	; take over the blitter and...
		CALL	WaitBlit	;   wait for it to finish so we
					;   safely use it as we please.

		movea.l	4.w,a6		; exec base
		CALL	Forbid		; kill multitasking

		move.w	$7c-2(a5),d0	; AGA register...
		cmpi.b	#$f8,d0		; are we AGA?
		bne.b	.not_aga	; nope.
		move.w	#0,$dff1fc	; reset AGA sprites to normal mode

.not_aga:	bsr.b	GetVBR		; get the vector base pointer
		move.l	d0,VectorBase	; save it for later.

		move.w	dmaconr-2(a5),d0	; old DMACON bits
		ori.w	#$8000,d0	; or it set bit for restore
		move.w	d0,OldDMACon	; save it

		move.w	intenar-2(a5),d0	; old DMACON bits
		ori.w	#$c000,d0	; or it set bit for restore
		move.w	d0,OldINTEna	; save it
		rts

***********************************************************

RestoreSystem:	lea	$dff002,a5	; custom chip base + 2
		move.w	OldDMACon,dmacon-2(a5)	; restore old dma bits
		move.w	OldINTEna,intena-2(a5)	; restore old int bits

		movea.l	OldView,a1	; old Work Bench view
		movea.l	gfx_base,a6	; gfx base
		CALL	LoadView	; Restore the view
		CALL	DisownBlitter	; give blitter back to the system.

		move.l	gb_copinit(a6),$80-2(a5) ; restore system clist
		movea.l	a6,a1
		movea.l	4.w,a6		; exec base
		CALL	CloseLibrary
		CALL	Permit	 	; restart multitasking
		rts

***********************************************************
* This function provides a method of obtaining a pointer to the base of the
* interrupt vector table on all Amigas.  After getting this pointer, use
* the vector address as an offset.  For example, to install a level three
* interrupt you would do the following:
*
*		bsr	_GetVBR
*		move.l	d0,a0
*		move.l	$6c(a0),OldIntSave
*		move.l	#MyIntCode,$6c(a0)
*
***********************************************************
* Inputs: none
* Output: d0 contains vbr.

GetVBR:		move.l	a5,-(sp)		; save it.
		moveq	#0,d0			; clear
		movea.l	4.w,a6			; exec base
		btst.b	#AFB_68010,AttnFlags+1(a6); are we at least a 68010?
		beq.b	.1			; nope.
		lea.l	vbr_exception(pc),a5	; addr of function to get VBR
		CALL	Supervisor		; supervisor state
.1:		move.l	(sp)+,a5		; restore it.
		rts				; return

vbr_exception:
	; movec vbr,Xn is a priv. instr.  You must be supervisor to execute!
;		movec   vbr,d0
	; many assemblers don't know the VBR, if yours doesn't, then use this
	; line instead.
		dc.w	$4e7a,$0801
		rte				; back to user state code

***********************************************************

InstallCopper:	move.l	#Copper,$80-2(a5)	; Install my copperlist
		rts				; Done
	
***********************************************************

InstallBmap:	lea	BmapPtrs,a0		; Bmap ptrs in copperlist
		move.l	#Bmap,d0		; Address of bitplane 1
		move.w	d0,6(a0)		; write lower half
		swap	d0			; switch words
		move.w	d0,2(a0)		; write upper half
		move.l	#Bmap+8000,d0		; Address of bitplane 2
		move.w	d0,14(a0)		; write lower half
		swap	d0			; switch words
		move.w	d0,10(a0)		; write upper half
		move.l	#Bmap+16000,d0		; Address of bitplane 3
		move.w	d0,22(a0)		; write lower half
		swap	d0			; switch words
		move.w	d0,18(a0)		; write upper half
		move.l	#Bmap+24000,d0		; Address of bitplane 4
		move.w	d0,30(a0)		; write lower half
		swap	d0			; switch words
		move.w	d0,26(a0)		; write upper half
		rts				; Done

***********************************************************

		section	DemoText,DATA

GraphicsName:	GRAFNAME		; name of gfx library
		EVEN

ScrollText:	dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'       A       '
		dc.b	'               '
		dc.b 	'      LONG     '
		dc.b	'               '
		dc.b	'      TIME     '
		dc.b	'               '
		dc.b	'      AGO,     '
		dc.b	'               '
		dc.b	'       IN      '
		dc.b	'               '
		dc.b	'       A       '
		dc.b	'               '
		dc.b	'     GALAXY    '
		dc.b	'               '
		dc.b    '      FAR,     '
		dc.b    '               '
		dc.b    '      FAR      '
		dc.b    '               '
		dc.b    '      AWAY     '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'IS WHERE THIS  '
		dc.b	'DEMO BELONGS!! '
		dc.b    '               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'WELL ANYWAY,   '
		dc.b	'               '
		dc.b    'THIS IS VISION '
		dc.b	'               '
		dc.b	'OF EPSILON     '
		dc.b	'               '
		dc.b	'PRESENTING HIS '
		dc.b	'               '
		dc.b	'NEW, EXCITING  '
		dc.b 	'               '
		dc.b	'"AWESOME" DEMO!'
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'AS YOU CAN     '
		dc.b	'               '
 		dc.b	'PROBABLY TELL, '
		dc.b	'               '
		dc.b	"IT'S NOT CALLED"
		dc.b	'               '
		dc.b	'THAT BECAUSE IT'
		dc.b	'               '
		dc.b	'IS ADVANCED... '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'BUT BECAUSE THE'
		dc.b	'               '
		dc.b	'GRAPHICS       '
		dc.b	'               '
		dc.b	'WERE RIPPED    '
		dc.b	'               '
		dc.b	'FROM THE GAME  '
		dc.b	'               '
		dc.b	'"AWESOME."     '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'PRETTY CHEAP,  '
		dc.b	'HUH?           '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'TEXT RESTARTS..'
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	'               '
		dc.b	0
		EVEN

VScrollCount:	dc.w	11
	
***********************************************************

		section	DemoData,DATA_c

NullSprite:	dc.l	0,0,0,0

		incdir	''
Bmap:		incbin	'df1:awesome.raw'
Font:		incbin	'df1:mahoneyfont.raw'

Copper:	dc.w	$0100,$4200,$0102,$0000,$0104,$0000,$0108,$0000,$010a,$0000
	dc.w	$008e,$2d81,$0090,$f4c1,$0092,$0038,$0094,$00d0,$0180,$0000
	dc.w	$0182,$0eff,$0184,$0cee,$0186,$09cc,$0188,$08bb,$018a,$069a
	dc.w	$018c,$0689,$018e,$0578,$0190,$0567,$0192,$0456,$0194,$0445
	dc.w	$0196,$0334,$0198,$0233,$019a,$0122,$019c,$0111,$019e,$0000

	dc.w	$01a2,$0444,$01a4,$0fff,$01a6,$0888
BmapPtrs:
	dc.w	$00e0,$0000,$00e2,$0000,$00e4,$0000,$00e6,$0000,$00e8,$0000
	dc.w	$00ea,$0000,$00ec,$0000,$00ee,$0000
SpritePtrs:
	dc.w	$0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000,$0128,$0000
	dc.w	$012a,$0000,$012c,$0000,$012e,$0000,$0130,$0000,$0132,$0000
	dc.w	$0134,$0000,$0136,$0000,$0138,$0000,$013a,$0000,$013c,$0000
	dc.w	$013e,$0000

	dc.w	$2c0f,$fffe,$0182,$0000
	dc.w	$2d0f,$fffe,$0182,$0011
	dc.w	$2e0f,$fffe,$0182,$0122
	dc.w	$2f0f,$fffe,$0182,$0233
	dc.w	$300f,$fffe,$0182,$0344
	dc.w	$310f,$fffe,$0182,$0455
	dc.w	$320f,$fffe,$0182,$0566
	dc.w	$330f,$fffe,$0182,$0677
	dc.w	$340f,$fffe,$0182,$0788
	dc.w	$350f,$fffe,$0182,$0899
	dc.w	$360f,$fffe,$0182,$09aa
	dc.w	$370f,$fffe,$0182,$0abb
	dc.w	$380f,$fffe,$0182,$0bcc
	dc.w	$390f,$fffe,$0182,$0cdd
	dc.w	$3a0f,$fffe,$0182,$0dee
	dc.w	$3b0f,$fffe,$0182,$0eff
	dc.w	$d00f,$fffe,$0182,$0eff,$d08f,$fffe,$0182,$0eff
	dc.w	$d10f,$fffe,$0182,$0eff,$d18f,$fffe,$0182,$0dee
	dc.w	$d20f,$fffe,$0182,$0eff,$d28f,$fffe,$0182,$0cdd
	dc.w	$d30f,$fffe,$0182,$0eff,$d38f,$fffe,$0182,$0bcc
	dc.w	$d40f,$fffe,$0182,$0eff,$d48f,$fffe,$0182,$0abb
	dc.w	$d50f,$fffe,$0182,$0eff,$d58f,$fffe,$0182,$09aa
	dc.w	$d60f,$fffe,$0182,$0eff,$d68f,$fffe,$0182,$0899
	dc.w	$d70f,$fffe,$0182,$0eff,$d78f,$fffe,$0182,$0788
	dc.w	$d80f,$fffe,$0182,$0eff,$d88f,$fffe,$0182,$0677
	dc.w	$d90f,$fffe,$0182,$0eff,$d98f,$fffe,$0182,$0566
	dc.w	$da0f,$fffe,$0182,$0eff,$da8f,$fffe,$0182,$0455
	dc.w	$db0f,$fffe,$0182,$0eff,$db8f,$fffe,$0182,$0344
	dc.w	$dc0f,$fffe,$0182,$0eff,$dc8f,$fffe,$0182,$0233
	dc.w	$dd0f,$fffe,$0182,$0eff,$dd8f,$fffe,$0182,$0122
	dc.w	$de0f,$fffe,$0182,$0eff,$de8f,$fffe,$0182,$0011
	dc.w	$df0f,$fffe,$0182,$0eff,$df8f,$fffe,$0182,$0000
	dc.w	$e00f,$fffe,$0182,$0eff,$e08f,$fffe,$0182,$0000
	dc.w	$e10f,$fffe,$0182,$0eff,$e18f,$fffe,$0182,$0000
	dc.w	$e20f,$fffe,$0182,$0eff,$e28f,$fffe,$0182,$0000
	dc.w	$e30f,$fffe,$0182,$0eff,$e38f,$fffe,$0182,$0000
	dc.w	$e40f,$fffe,$0182,$0eff,$e48f,$fffe,$0182,$0000
	dc.w	$e50f,$fffe,$0182,$0eff,$e58f,$fffe,$0182,$0000
	dc.w	$e60f,$fffe,$0182,$0eff,$e68f,$fffe,$0182,$0000
	dc.w	$e70f,$fffe,$0182,$0eff,$e78f,$fffe,$0182,$0000
	dc.w	$e80f,$fffe,$0182,$0eff,$e88f,$fffe,$0182,$0000
	dc.w	$ffff,$fffe

Stars:  dc.w    $2c40,$2d00
	dc.w    $0000,$0001     ; a star on line one
	dc.w    $2e50,$2f00
	dc.w    $0001,$0001     ; a star on line two
	dc.w    $3080,$3100
	dc.w    $0001,$0000
	dc.w    $3284,$3300
	dc.w    $0000,$0001    
	dc.w    $34a2,$3500
	dc.w    $0001,$0001    
	dc.w    $36d3,$3700
	dc.w    $0001,$0000
	dc.w    $3898,$3900
	dc.w    $0000,$0001    
	dc.w    $40ff,$4100
	dc.w    $0001,$0001   
	dc.w    $4266,$4300
	dc.w    $0001,$0000
	dc.w    $4443,$4500
	dc.w    $0000,$0001    
	dc.w    $46ef,$4700
	dc.w    $0001,$0001   
	dc.w    $484b,$4900
	dc.w    $0001,$0000
	dc.w    $4aa8,$4b00
	dc.w    $0000,$0001    
	dc.w    $4cd6,$4d00
	dc.w    $0001,$0001   
	dc.w    $4ea5,$4f00
	dc.w    $0001,$0000
	dc.w    $503c,$5100
	dc.w    $0000,$0001    
	dc.w    $5243,$5300
	dc.w    $0001,$0001   
	dc.w    $5400,$5500
	dc.w    $0001,$0000	; 6
	dc.w    $5684,$5700
	dc.w    $0000,$0001    
	dc.w    $5894,$5900
	dc.w    $0001,$0001   
	dc.w    $5a33,$5b00
	dc.w    $0001,$0000	; 7
	dc.w    $5ca3,$5d00
	dc.w    $0000,$0001    
	dc.w    $5e35,$5f00
	dc.w    $0001,$0001   
	dc.w    $6006,$6100
	dc.w    $0001,$0000	; 8
	dc.w    $6254,$6300
	dc.w    $0000,$0001    
	dc.w    $6409,$6500
	dc.w    $0001,$0001   
	dc.w    $66ab,$6700
	dc.w    $0001,$0000	; 9
	dc.w    $6887,$6900
	dc.w    $0000,$0001    
	dc.w    $6a97,$6b00
	dc.w    $0001,$0001   
	dc.w    $6cfa,$6d00
	dc.w    $0001,$0000	; 10
	dc.w    $6e03,$6f00
	dc.w    $0000,$0001    
	dc.w    $7023,$7100
	dc.w    $0001,$0001   
	dc.w    $7257,$7300
	dc.w    $0001,$0000	; 11
	dc.w    $74dc,$7500
	dc.w    $0000,$0001    
	dc.w    $76a7,$7700
	dc.w    $0001,$0001   
	dc.w    $789a,$7900
	dc.w    $0001,$0000	; 12
	dc.w    $7a03,$7b00
	dc.w    $0000,$0001    
	dc.w    $7c06,$7d00
	dc.w    $0001,$0001   
	dc.w    $7eab,$7f00
	dc.w    $0001,$0000	; 13
	dc.w    $80dc,$8100
	dc.w    $0000,$0001    
	dc.w    $82a7,$8300
	dc.w    $0001,$0001   
	dc.w    $84df,$8500
	dc.w    $0001,$0000	; 14
	dc.w    $8623,$8700
	dc.w    $0000,$0001    
	dc.w    $8898,$8900
	dc.w    $0001,$0001   
	dc.w    $8aab,$8b00
	dc.w    $0001,$0000	; 15
	dc.w    $8c87,$8d00
	dc.w    $0000,$0001    
	dc.w    $8edc,$8f00
	dc.w    $0001,$0001   
	dc.w    $9013,$9100
	dc.w    $0001,$0000	; 16
	dc.w    $9200,$9300
	dc.w    $0000,$0001    
	dc.w    $9434,$9500
	dc.w    $0001,$0001   
	dc.w    $9687,$9700
	dc.w    $0001,$0000	; 17
	dc.w    $9854,$9900
	dc.w    $0000,$0001    
	dc.w    $9ac0,$9b00
	dc.w    $0001,$0001   
	dc.w    $9c12,$9d00
	dc.w    $0001,$0000	; 18
	dc.w    $9e8f,$9f00
	dc.w    $0000,$0001    
	dc.w    $a03c,$a100
	dc.w    $0001,$0001   
	dc.w    $a254,$a300
	dc.w    $0001,$0000	; 19
	dc.w    $a434,$a500
	dc.w    $0000,$0001    
	dc.w    $a6bd,$a700
	dc.w    $0001,$0001   
	dc.w    $a8ff,$a900
	dc.w    $0001,$0000	; 20
	dc.w    $aaaf,$ab00
	dc.w    $0000,$0001    
	dc.w    $ac3c,$ad00
	dc.w    $0001,$0001   
	dc.w    $ae24,$af00
	dc.w    $0001,$0000	; 21
	dc.w    $b034,$b100
	dc.w    $0000,$0001    
	dc.w    $b27c,$b300
	dc.w    $0001,$0001   
	dc.w    $b4d6,$b500
	dc.w    $0001,$0000	; 22
	dc.w    $b678,$b700
	dc.w    $0000,$0001    
	dc.w    $b803,$b900
	dc.w    $0001,$0001   
	dc.w    $bade,$bb00
	dc.w    $0001,$0000	; 23
	dc.w    $bc22,$bd00
	dc.w    $0000,$0001    
	dc.w    $be34,$bf00
	dc.w    $0001,$0001   
	dc.w    $c02a,$c100
	dc.w    $0001,$0000	; 24
	dc.w    $c24a,$c300
	dc.w    $0000,$0001    
	dc.w    $c466,$c500
	dc.w    $0001,$0001   
	dc.w    $c633,$c700
	dc.w    $0001,$0000	; 25
	dc.w    $c888,$c900
	dc.w    $0000,$0001    
	dc.w    $ca21,$cb00
	dc.w    $0001,$0001   
	dc.w    $cc78,$cd00
	dc.w    $0001,$0000	; 26
	dc.w    $ce12,$cf00
	dc.w    $0000,$0001    
	dc.w    $d045,$d100
	dc.w    $0001,$0001   
	dc.w    $d2da,$d300
	dc.w    $0001,$0000	; 27
	dc.w    $d447,$d500
	dc.w    $0000,$0001    
	dc.w    $d698,$d700
	dc.w    $0001,$0001   
	dc.w    $d840,$d900
	dc.w    $0001,$0000	; 28
	dc.w    $dad0,$db00
	dc.w    $0000,$0001    
	dc.w    $dcc0,$dd00
	dc.w    $0001,$0001   
	dc.w    $de30,$df00
	dc.w    $0001,$0000	; 29
	dc.w    $e023,$e100
	dc.w    $0000,$0001    
	dc.w    $e220,$e300
	dc.w    $0001,$0001   
	dc.w    $e45d,$e500
	dc.w    $0001,$0000	; 30
	dc.w    $e668,$e700
	dc.w    $0000,$0001    
	dc.w    $e842,$e900
	dc.w    $0001,$0001   
	dc.w    $eaac,$eb00
       	dc.w    $0001,$0000	; 31
       	dc.w    $ecec,$ed00
       	dc.w    $0000,$0001    
       	dc.w    $eefa,$ef00
       	dc.w    $0001,$0001   
       	dc.w    $f078,$f100
       	dc.w    $0001,$0000	; 32
	dc.w    $0000,$0000
	
***********************************************************

		section	DemoBSS,BSS

Level3Save:	ds.l	1
gfx_base	ds.l	1		; pointer to graphics base
OldView		ds.l    1		; old Work Bench view addr.
VectorBase:	ds.l	1		; pointer to the Vector Base

OldDMACon:	ds.w	1		; old dmacon bits
OldINTEna:	ds.w	1		; old intena bits

ScrollPos:	ds.l	1
