
scr=$7a000
struc=$7d000
rastport=struc+100

setupsystem:

bsr getgfx
bsr cleanitdown


move.w #8000-1 ,d0
move.l #scr ,a0
slet: move.b #0 ,(a0)+
dbra d0 ,slet

move.l #scr ,a0
move.l a0 ,struc+8
move.l #struc ,a0
moveq #1 ,d0
move.l #320 ,d1
move.l #200 ,d2
move.l gfxbase ,a6
jsr -390(a6)
move.l #rastport ,a1
jsr -198(a6)
move.l #struc,rastport+4

move.l #copper0,newcop
bsr changecop

;--DEMO

move=-240
draw=-246
setapen=-342

move.l #rastport,a1

;/////// my demo!!! ///////
demo:
move.l	#end,d3
move.l	#text,d2
sub.l	#1,d3
move.l	d2,textpos

oloop:
move.l	#6,d2
move.l	#charset,a2
move.l	textpos,a4
clr.l	d0
move.b	(a4),d0
;--SPECIAL FUNCTIONS--
cmp.b	#'s',d0
beq	changesize
cmp.b	#'n',d0
beq	newline
cmp.b	#' ',d0
beq	space
cmp.b	#'l',d0
beq	scroll
cmp.b	#'c',d0
beq	changec
sub	#33,d0
mulu	#28,d0
add	d0,a2
add.l	#1,textpos
iloop:
clr.l	d0
clr.l	d1
move.b	(a2)+,d0
mulu	sz,d0
add	x,d0
move.b	(a2)+,d1
mulu	sz,d1
add	y,d1
jsr	move(a6)
move.b	(a2)+,d0
mulu	sz,d0
add	x,d0
move.b	(a2)+,d1
mulu	sz,d1
add	y,d1
jsr	draw(a6)
dbra	d2,iloop
canc:
clr.l	d0
move.w	sz,d0
mulu	#4,d0
add	d0,x
cancel:
cmp.l	textpos,d3
bge    	oloop
rts

cls:
move.l	#7999,d0
move.l	#scr,a0
cls1:
move.b	#0,(a0)+
dbra	d0,cls1
rts

wait:
move.l	#0,d1
w0:
move.l	#$ffff,d0
w1:
dbra	d0,w1
dbra	d1,w0
rts
;/////// my demo's over. //


copper0:dc.w	$0100,$1200

	dc.w	$008e,$2c81
	dc.w	$0090,$f4c1
	dc.w 	$0092,$38
	dc.w	$0094,$d0

	dc.w	$0108,$0000
	dc.w	$010a,$0000

	dc.w	$00e0,$0007
	dc.w	$00e2,$a000

	dc.w	$0180,$00f
	dc.w	$0182,$ff0

dc.w $ffff,$fffe

;*** gfx ***
gfxbase:	dc.l	0
gfxname:	dc.b	'graphics.library',0,0

getgfx:
	move.l	4	,a6
	move.l	#gfxname,a1
	jsr	-408(a6)
	move.l	d0	,gfxbase
rts

;*** change copper list ***

newcop: dc.l 0
;***
changecop:
	move.l	gfxbase	,a0
	move.l	newcop	,50(a0)
rts

;*********

forbid =-132
oldcopper:	dc.l 0

cleanitdown:
move.l 4,a6
jsr	-132(a6)
rts

charset:
dc.b	1,0,1,2,1,3,1,3,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;!
dc.b	1,0,1,1,2,0,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;"
dc.b	1,0,1,3,2,0,2,3,0,1,3,1,0,2,3,2,1,0,1,0,1,0,1,0,1,0,1,0;#
dc.b	0,0,3,0,0,0,0,2,1,0,1,3,0,2,3,2,3,2,3,3,0,3,3,3,2,0,2,3;$
dc.b	0,3,3,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;%
dc.b	0,0,0,3,0,0,2,3,2,0,2,3,3,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0;&
dc.b	1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;'
dc.b	1,0,0,1,0,1,0,2,0,2,1,3,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;(
dc.b	2,0,3,1,3,1,3,2,3,2,2,3,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0;)
dc.b	1,0,3,0,0,2,1,0,1,0,1,3,0,2,3,2,0,2,0,3,1,0,1,0,1,0,1,0;AF
dc.b	0,0,2,0,0,0,0,1,1,0,1,1,0,1,2,1,1,1,1,2,2,1,2,2,0,2,2,2;SS
dc.b	1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2;,
dc.b	0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2;-
dc.b	1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3;.
dc.b	0,3,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0;/
dc.b	0,0,3,0,3,0,3,3,0,3,3,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0;0
dc.b	1,0,1,3,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;1
dc.b	0,0,3,0,3,0,3,2,0,2,3,2,0,2,0,3,0,3,3,3,0,0,0,0,0,0,0,0;2
dc.b	0,0,3,0,3,0,3,3,0,3,3,3,1,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0;3
dc.b	0,0,0,2,0,2,3,2,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;4
dc.b	0,0,3,0,0,0,0,2,0,2,3,2,3,2,3,3,0,3,3,3,0,0,0,0,0,0,0,0;5
dc.b	0,0,3,0,0,0,0,3,0,2,3,2,3,2,3,3,0,3,3,3,0,0,0,0,0,0,0,0;6
dc.b	0,0,3,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;7
dc.b	0,0,3,0,3,0,3,3,0,0,0,3,0,2,3,2,0,3,3,3,0,0,0,0,0,0,0,0;8
dc.b	0,0,3,0,0,0,0,2,0,2,3,2,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0;9
dc.b	1,0,1,0,1,3,1,3,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;:
dc.b	0,1,1,3,1,3,3,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1;Amiga
dc.b	3,0,0,2,0,2,3,3,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0;>
dc.b	0,1,3,1,0,2,3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1;=
dc.b	0,0,3,2,0,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;>
dc.b	0,0,3,0,3,0,3,1,0,1,3,1,0,1,0,2,0,2,3,2,1,3,2,3,0,0,0,0;?
dc.b	0,0,3,3,1,0,3,2,0,1,2,3,0,3,3,0,0,2,2,0,1,3,3,1,0,0,0,0;XX
dc.b	0,0,3,0,0,0,0,3,3,0,3,3,0,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0;A
dc.b	0,0,0,3,0,0,3,0,3,0,3,1,3,1,2,1,2,1,3,2,3,2,3,3,0,3,3,3;B
dc.b	0,0,3,0,0,0,0,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;C
dc.b	0,0,2,0,2,0,3,1,3,1,3,2,3,2,2,3,0,3,2,3,0,0,0,3,0,0,0,0;D
dc.b	0,0,3,0,0,0,0,3,0,2,2,2,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0;E
dc.b	0,0,3,0,0,0,0,3,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;F
dc.b	0,0,3,0,0,0,0,3,0,3,3,3,3,2,1,2,3,2,3,3,0,0,0,0,0,0,0,0;G
dc.b	0,0,0,3,0,2,3,2,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;H
dc.b	1,0,1,3,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;I
dc.b	3,0,3,3,3,3,0,3,0,3,0,2,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0;J
dc.b	0,0,0,3,0,2,3,0,0,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;K
dc.b	0,0,0,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;L
dc.b	0,0,0,3,0,0,1,1,1,1,3,0,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0;M
dc.b	0,0,0,3,0,0,3,3,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;N
dc.b	0,0,3,0,3,0,3,3,3,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0;O
dc.b	0,0,3,0,3,0,3,2,0,0,0,3,0,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0;P
dc.b	0,0,3,0,3,0,3,3,0,0,0,3,0,3,3,3,2,2,3,3,0,0,0,0,0,0,0,0;Q
dc.b	0,0,3,0,0,0,0,3,0,2,3,2,3,0,3,2,0,2,3,3,0,0,0,0,0,0,0,0;R
dc.b	0,0,3,0,0,0,0,2,0,2,3,2,3,2,3,3,0,3,3,3,0,0,0,0,0,0,0,0;S
dc.b	0,0,3,0,1,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;T
dc.b	0,0,0,3,0,3,3,3,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;U
dc.b	0,0,1,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;V
dc.b	0,0,0,3,0,3,1,2,1,2,3,3,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0;W
dc.b	0,0,3,3,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;X
dc.b	0,0,1,2,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;Y
dc.b	0,0,3,0,0,3,3,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;Z
dc.b	0,0,3,0,0,0,0,3,0,2,3,2,1,0,1,3,1,3,3,3,0,0,0,0,0,0,0,0;Æ
dc.b	0,0,3,0,0,0,0,3,0,3,3,0,3,0,3,3,0,3,3,3,0,0,0,0,0,0,0,0;Ø
dc.b	0,1,3,1,2,0,1,0,0,2,3,2,3,1,3,3,0,1,0,3,1,0,1,0,1,0,1,0;Å

sz:
dc.w	2

x:
dc.w	0

y:
dc.w	0

textpos:	dc.l	0

changesize:
clr.l	d0
addi	#1,a4
move.b	(a4),d0
move.w	d0,sz
addi.l	#2,textpos
jmp	cancel

newline:
clr.l	d4
move.w	sz,d4
mulu	#4,d4
addi.w	d4,y
move.w	#0,x
addi.l	#1,textpos
jmp	cancel

space:
addi.l	#1,textpos
jmp	canc

scroll:
move.w	#0,x
add.l	#1,textpos
clr.l	d6
move.w	sz,d6
mulu	#2,d6
sub	#1,d6
move.l	#7921,d0
oloopsc:
move.l	#scr,a4
move.l	a4,a5
add.l	#80,a5
sub.l	#2,d0
move.l	d0,d5
iloopsc:
move.b	(a5)+,(a4)+
dbra	d5,iloopsc
move.l	#scr,a4
add.l	#7920,a4
move.l	#79,d1
loopsc2:
move.b	#0,(a4)+
dbra	d1,loopsc2
move.l	#$ff,d1
wloopsc:
dbra	d1,wloopsc
dbra	d6,oloopsc
jmp	cancel

changec:
addi.l	#1,textpos
move.l	textpos,a5
clr.l	d0
move.b	(a5),d0
move.w	d0,x
addi.l	#1,textpos
move.l	textpos,a5
clr.l	d0
move.b	(a5),d0
move.w	d0,y
addi.l	#1,textpos
jmp	cancel

text:
dc.b	'c',0,100,'s',8,'ROGER!'
dc.b	'c',1,101,'s',8,'ROGER!lllllllll'
dc.b	'c',0,0,'s',2,'HERE IS YOUR DISK.nHERE IS YOUR DEMO.'
dc.b	'c',0,8,'        ----'
dc.b	'c',0,8,'        IIIIn'
dc.b	'      !! MY !!'
end:
