
	***************************
	*Installationsprogramm von*
	*        DMAP V2.0	  *
	* setzt deutsche Tastatur *
	*    setzt Systemzeit     *
	*   installiert Blanker   *
	*          usw.           *
	*   von Martin Gierich	  *
	***************************

OpenLib	= -408	;exec
CloseLib= -414
OpenDev	= -444
CloseDev= -450
DoIO	= -456
OpenRes	= -498
AddRes	= -486
FindName= -276
AddHead	= -240
AllocMem= -198
FreeMem	= -210
FindTask= -294
SetSig	= -306
Wait	= -318
AllocSig= -330
FreeSig	= -336
AddPort	= -354
RemPort	= -360
PutMsg	= -366
GetMsg	= -372
ReplMsg	= -378
WaitPort= -384
FindPort= -390

Open	= -30	;dos
Close	= -36
OutP	= -60
Write	= -48
Read	= -42
IoErr	= -132
Delay	= -198

refram	= -456	;intuition
rethink	= -390
remake	= -384
movew	= -168
sizew	= -288
getprefs= -132
setprefs= -324
openwb	= -210
closewb	= -78
dispbeep= -96

FileReq	= -$54	;req
Purge	= -$72
TextReq	= -$ae
ColorReq= -$5a
GetLong	= -$b4

psize	= 232		;Preferences-Size
Uhr	= $dc0000	;Adresse Echtzeituhr
UhrAlt	= $d80000	;Uhr A2000a
Custom	= $dff000
scnblk	= 180
ptrblk	=  10

begd	=	0	;von DMAP benutzt
dos	=	begd-4
int	=	dos-4
gfx	=	int-4
msgp	=	gfx-4
task	=	msgp-4
dev	=	task-4
argv	=	dev-4
argz	=	argv-4
endd	=	argz-4

infoo	=	endd-$24
dpackk	=	infoo-$44
preff	=	dpackk-psize
ioreqq	=	preff-$30
puff	=	ioreqq-26

;dos
;int
;gfx
req	=	gfx-4	;von Install benutzt
win	=	req-4
file	=	win-4
freq	=	file-4
treq	=	freq-4
dnam	=	treq-4
fnam	=	dnam-4
pnam	=	fnam-4
lang	=	pnam-4
getl	=	lang-4
enddi	=	getl-4

daten	=	0	;vom Handler benutzt
resnode	=	daten+0	;(Library-Kopf)
rname	=	resnode+34
zeiger	=	rname+18
bild	=	zeiger+1
lfdzei	=	bild+1
lfdbild	=	lfdzei+4
zeisec	=	lfdbild+4
bildsec	=	zeisec+4
accon	=	bildsec+4
first	=	accon+1
frei	=	first+1	;(reserviert)
datsize	=	frei+8


txt:	macro
	lea	t\1(pc),a0
	bsr.w	wt
	endm


inst:	link	a5,#enddi
	move.l	4.w,a6
	suba.l	a1,a1
	jsr	findtask(a6)
	tst.l	d0
	beq.w	fehl
	move.l	d0,a4
	tst.l	$ac(a4)
	bne.s	cli
	lea	$5c(a4),a0
	jsr	waitport(a6)
	lea	$5c(a4),a0
	jsr	getmsg(a6)
cli:	lea	dosn(pc),a1
	jsr	openlib(a6)
	move.l	d0,dos(a5)
	beq.w	fehl
	lea	intn(pc),a1
	jsr	openlib(a6)
	move.l	d0,int(a5)
	beq.w	fehl
	move.l	#8+46+131+31+162+356+34,d0
	move.l	d0,d4
	move.l	#1<<16!1,d1
	jsr	allocmem(a6)
	tst.l	d0
	beq.w	fehl
	move.l	d0,a0
	move.l	d4,(a0)+
	move.l	a0,treq(a5)
	lea	46(a0),a0
	move.l	a0,dnam(a5)
	lea	131(a0),a0
	move.l	a0,fnam(a5)
	lea	31(a0),a0
	move.l	a0,pnam(a5)
	lea	162(a0),a0
	move.l	a0,freq(a5)
	lea	356(a0),a0
	move.l	a0,getl(a5)
	lea	34(a0),a0

	move.l	dos(a5),a6
	move.l	#winn,d1
	move.l	#1005,d2
	jsr	open(a6)
	move.l	d0,win(a5)
	beq.w	fehl
	move.l	4.w,a6
	lea	reqn(pc),a1
	jsr	openlib(a6)
	move.l	d0,req(a5)
	bne.s	reqda
	txt	22
	move.l	dos(a5),a6
	move.l	win(a5),d1
	move.l	#gret,d2
	moveq	#2,d3
	jsr	read(a6)
	bra.w	endi
reqda:	txt	1
	move.l	req(a5),a6
	move.l	treq(a5),a0
	move.l	#ask1,0(a0)
	move.l	#pos1,16(a0)
	move.l	#neg1,20(a0)
	move.l	#tit1,24(a0)
	jsr	textreq(a6)
	tst.l	d0
	bne.B	nente
	txt	2
	bra.w	ente
nente:	move.l	req(a5),a6
	move.l	treq(a5),a0
	move.l	#ask8,0(a0)
	move.l	#pos8,16(a0)
	move.l	#neg8,20(a0)
	move.l	#tit8,24(a0)
	jsr	textreq(a6)
	tst.l	d0
	beq.B	kanl
	move.l	dos(a5),a6
	move.l	win(a5),d1
	move.l	#anl,d2
	move.l	#anle-anl,d3
	jsr	write(a6)
	move.l	win(a5),d1
	move.l	#gret,d2
	moveq	#2,d3
	jsr	read(a6)
kanl:	txt	3
nldl:	move.l	dos(a5),a6
	move.l	#150,d1
	jsr	delay(a6)
	move.l	req(a5),a6
	move.l	freq(a5),a0
	move.l	#tit2,2(a0)
	move.l	dnam(a5),6(a0)
	move.l	fnam(a5),10(a0)
	move.l	pnam(a5),14(a0)
	move.l	#$1010,30(a0)
	move.w	#2,34(a0)
	lea	dir2,a1
	move.l	dnam(a5),a2
copdir:	move.b	(a1)+,(a2)+
	bne.B	copdir
	jsr	filereq(a6)
	tst.l	d0
	beq.w	forg
	move.l	#2100,d0
	move.l	d0,d4
	moveq	#1,d1
	move.l	4.w,a6
	jsr	allocmem(a6)
	tst.l	d0
	beq.w	fehl
	move.l	d0,a4
	move.l	d4,(a4)+
	move.l	pnam(a5),d1
	move.l	#1005,d2
	move.l	dos(a5),a6
ts:	jsr	open(a6)
	move.l	d0,d7
	bne.B	lok
nlok:	txt	13
	bra.w	nldl
lok:	move.l	d7,d1
	move.l	a4,d2
	move.l	#2100,d3
	jsr	read(a6)
	move.l	d0,d6
	move.l	d7,d1
	jsr	close(a6)
	tst.l	d6
	beq.B	nlok
	bmi.B	nlok
	lea	st(pc),a0
	move.l	a4,a1
	moveq	#4,d0
vglh:	cmpm.l	(a0)+,(a1)+
	dbne	d0,vglh
	bne.w	kom
	cmp.l	#$3e9,24(a4)
	bne.w	kom
	move.l	28(a4),d0
	lsl.l	#2,d0
	cmp.l	#$3ec,32(a4,d0.l)
	bne.w	kom
	move.l	36(a4,d0.l),d1
	lsl.l	#2,d1
	move.l	d1,d2
	add.l	d0,d2
	cmp.l	#$3f2,48(a4,d2.l)
	bne.w	kom
	add.l	#m1-st,d2
	move.l	d2,d3
	moveq	#0,d7
	lsr.l	#1,d3
	lsr.l	#1,d3
	roxl.l	#1,d7
	tst.l	d7
	beq.B	jou
	addq.l	#2,d2
	moveq	#1,d7
jou:	addq.l	#4,d2
	move.l	d2,lang(a5)
	sub.l	#4+(st1-st),d2
	lsr.l	#2,d2
	lea	st(pc),a0
	move.l	d2,20(a0)
	move.l	d2,28(a0)
	lea	32(a4),a0
	lea	44(a4,d0.l),a1
	lea	m1(pc),a2
	lea	kmap(pc),a3
	move.l	d0,d2
	lsr.l	#2,d2
	subq.l	#1,d2
	move.l	d2,-16(a3)
	move.l	d0,-8(a3)
	move.l	d1,d3
	lsr.l	#2,d3
	subq.l	#1,d3
	move.l	d3,-12(a3)
	move.l	d1,-4(a3)
copm1:	move.l	(a0)+,(a2)+
	dbra	d2,copm1
copm2:	move.l	(a1)+,(a2)+
	dbra	d3,copm2
	tst.l	d7
	beq.B	jou2
	move.w	#0,(a2)+
jou2:	move.l	#$3f2,(a2)+
	cmp.l	#end,a2
	bhi.w	fehl

	txt	4.3
enl:	move.l	4.w,a6
	move.l	a4,a1
	move.l	-(a1),d0
	jsr	freemem(a6)
	bra.B	beid
kom:	txt	4.2
	move.l	4.w,a6
	move.l	a4,a1
	move.l	-(a1),d0
	jsr	freemem(a6)
	bra.w	nldl
forg:	txt	5
	move.l	#h3-st,lang(a5)
beid:	txt	6
	move.l	dos(a5),a6
	move.l	#uhr,a4
	move.b	1(a4),d4
	moveq	#100,d1
	jsr	delay(a6)
	cmp.b	1(a4),d4
	beq.B	nneu
	txt	7
	bra.B	uall
nneu:	move.l	#uhralt,a4
	move.b	1(a4),d4
	moveq	#80,d1
	jsr	delay(a6)
	cmp.b	1(a4),d4
	beq.B	nalt
	txt	8
	move.l	a4,uhrset+2
	bra.B	uall
nalt:	txt	9
uall:	move.l	dos(a5),a6
	move.l	#150,d1
	jsr	delay(a6)
	btst	#5,$dff004
	beq.B	ecs
	txt	10
	bra.B	ecsall
ecs:	txt	11
ecsall:	txt	16
	move.l	getl(a5),a0
	move.l	#tit6,0(a0)
	move.l	#scnblk,4(a0)
	move.l	#60*30+1,12(a0)
	move.l	req(a5),a6
	jsr	getlong(a6)
	tst.l	d0
	bne.B	okb
	txt	18
	bra.B	maus
okb:	move.l	getl(a5),a0
	move.l	16(a0),scnset+2
maus:	txt	17
	move.l	getl(a5),a0
	move.l	#tit7,0(a0)
	move.l	#ptrblk,4(a0)
	move.l	#60*10+1,12(a0)
	move.l	req(a5),a6
	jsr	getlong(a6)
	tst.l	d0
	bne.B	okm
	txt	18
	bra.B	emaus
okm:	move.l	getl(a5),a0
	move.l	16(a0),ptrset+2
emaus:	txt	12
saveit:	move.l	dos(a5),a6
	move.l	#150,d1
	jsr	delay(a6)
	move.l	req(a5),a6
	move.l	freq(a5),a0
	move.l	#tit4,2(a0)
	move.l	dnam(a5),6(a0)
	move.l	fnam(a5),10(a0)
	move.l	pnam(a5),14(a0)
	move.l	#$1010,30(a0)
	lea	dir4,a1
	move.l	dnam(a5),a2
codir1:	move.b	(a1)+,(a2)+
	bne.B	codir1
	lea	fil4,a1
	move.l	fnam(a5),a2
codir2:	move.b	(a1)+,(a2)+
	bne.B	codir2
	jsr	filereq(a6)
	tst.l	d0
	bne.B	nente2
	txt	15
	bra.w	ente
nente2:	move.l	pnam(a5),d1
	move.l	#1006,d2
	move.l	dos(a5),a6
	jsr	open(a6)
	move.l	d0,d7
	bne.B	okw
nokw:	txt	13
	bra.w	saveit
okw:	move.l	d7,d1
	move.l	#st,d2
	move.l	lang(a5),d3
	jsr	write(a6)
	tst.l	d0
	bmi.B	nokw2
	cmp.l	lang(a5),d0
	beq.B	okw2
nokw2:	txt	13
	move.l	d7,d1
	jsr	close(a6)
	bra.w	saveit
okw2:	move.l	d7,d1
	jsr	close(a6)
	txt	14
	move.l	req(a5),a6
	move.l	treq(a5),a0
	move.l	#ask5,0(a0)
	move.l	#mid5,12(a0)
	move.l	#pos5,16(a0)
	move.l	#neg5,20(a0)
	move.l	#tit5,24(a0)
	jsr	textreq(a6)
	tst.l	d0
	beq.B	ente
	txt	20
	subq.l	#1,d0
	beq.w	saveit
	txt	19
	bra.w	saveit

ente:	txt	21
	move.l	req(a5),a6
	move.l	treq(a5),a0
	clr.l	24(a0)
	move.l	#ask3,0(a0)
	move.l	#mid3,12(a0)
	clr.l	16(a0)
	clr.l	20(a0)
	move.l	#tit3,24(a0)
	jsr	textreq(a6)
	move.l	4.w,a6
	move.l	req(a5),a1
	jsr	closelib(a6)
endi:	move.l	dos(a5),a6
	move.l	win(a5),d1
	jsr	close(a6)
	move.l	4.w,a6
	move.l	treq(a5),a1
	move.l	-(a1),d0
	jsr	freemem(a6)
	move.l	int(a5),a1
	jsr	closelib(a6)
	move.l	dos(a5),a1
	jsr	closelib(a6)
	unlk	a5
	moveq	#0,d0
	rts

fehl:	moveq	#-1,d0
	unlk	a5
	rts



wt:	movem.l	d0-d7/a0-a6,-(a7)
	move.l	dos(a5),a6	;schreibt Text
	move.l	win(a5),d1
	move.l	a0,d2
	moveq	#0,d3
wrh:	addq.l	#1,d3
	tst.b	(a0)+
	bne.B	wrh
	subq.l	#1,d3
	move.l	d3,d4
;	lsl.l	#1,d4
	jsr	write(a6)
	move.l	d4,d1
	jsr	delay(a6)
	movem.l	(a7)+,d0-d7/a0-a6
	rts

gret:	dc.w	0
reqn:	dc.b	"req.library",0
winn:	dc.b	"CON:0/10/639/199/DMAP-Installation",0

tit1:	dc.b	"Moin,Moin",0
ask1:	dc.b	"Soll's gleich losgehen ?",0
pos1:	dc.b	"Gerne",0
neg1:	dc.b	"Hab' jetzt keine Zeit!",0
tit2:	dc.b	"Tastaturbelegung Laden",0
dir2:	dc.b	"DEVS:Keymaps",0
ask3:	dc.b	"Alles klar ?     ",0
mid3:	dc.b	"Un Tschüss !",0
tit3:	dc.b	"Das war's",0
tit4:	dc.b	"Verzeichnis auswählen",0
dir4:	dc.b	"C:",0
fil4:	dc.b	"DMAP",0
ask5:	dc.b	"Soll's nochmal gespeichert werden ?",0
neg5:	dc.b	"Lieber nicht !",0
pos5:	dc.b	"Au JA !",0
mid5:	dc.b	"Sofort !",0
tit5:	dc.b	"Und nun ?",0
tit6:	dc.b	"Bildschirm",0
tit7:	dc.b	"Mauszeiger",0
tit8:	dc.b	"Wie wär's ?",0
ask8:	dc.b	"Eine kleine Anleitung gefällig ?",0
neg8:	dc.b	"  Nöö  ",0
pos8:	dc.b	" Warum nicht ? ",0
t1:	dc.b	"Willkommmen zur Installlation des Wahnsinns-"
	dc.b	"Programms  DMAP !!!",10,0
t2:	dc.b	"Dann halt nicht !",10,0
t3:	dc.b	"Auf geht's:Jetzt wird die Tastaturbelegung geladen.",10
	dc.b	"Durch Anklicken von 'Forget It' wird die Default-"
	dc.b	"Tastatur ausgewählt.",10,0
t4.2:	dc.b	"Das ist mir zu kompliziert !",10,0
t4.3:	dc.b	"Diese Belegung gefällt mir.",10,10,0
t5:	dc.b	"Die Default-Belegung tut's natürlich auch.",10,10,0
t6:	dc.b	"Wollen wir mal sehen, ob Du eine Echtzeituhr hast.",10,0
t7:	dc.b	"Wow, Du hast ja eine von der neuen Sorte.",10,0
t8:	dc.b	"Und dieses alte Museumsstück funktioniert noch ???",10,0
t9:	dc.b	"Was! Du hast ja gar keine ! Ein AMIGA ohne taugt"
	dc.b	" doch gar nix !!!",10
	dc.b	"Die Option 's' lässt Du lieber bleiben.",10,0
t10:	dc.b	10,"Du bist ja 'up to date'. Du hast ein ECS-Agnus.",10,0
t11:	dc.b	10,"Bääh! Was willst Du denn mit deinem alten Agnus"
	dc.b	" anfangen ?",10,"Die Option 'f' kannst Du damit"
	dc.b	" vergessen !",10,0
t12:	dc.b	10,"Jetzt wird der Klumps gespeichert.",10
	dc.b	"Dazu bitte Verzeichnis und Namen auswählen.",10,0
t13:	dc.b	"Das hat nicht hingehauen !",10,0
t14:	dc.b	"Das wäre geschafft !",10,0
t15:	dc.b	"Was soll denn das nun wieder ?",10,0
t16:	dc.b	10,"So gib doch mal die Zeit ein, nach der der"
	dc.b	" Bildschirm ausgeblendet wird.",10,0
t17:	dc.b	"Und nun das gleiche für den Mauszeiger.",10,0
t18:	dc.b	"Der Default-Wert ist auch ganz gut.",10,0
t19:	dc.b	"Trotzdem : Immer mit der Ruhe !",10,0
t20:	dc.b	"So ist's recht !",10,0
t21:	dc.b	10,"Na ja, das war's denn wohl.",10,0
t22:	dc.b	"Ich brauche req.library V1.4+ !",10
	dc.b	"Ansonsten mußt Du DMAP von Hand installieren.",10
	dc.b	"Drücke RETURN !",10,0

anl:	dc.b	"Kurzanleitung von DMAP V2.0 !",10
	dc.b	"Folgende Optionen können benutzt werden :",10,10
	dc.b	"d : Damit wird die installierte Tastatur gesetzt"
	dc.b	" oder wieder aktiviert.",10
	dc.b	"s : Die aktuelle Zeit wird aus der Echtzeituhr gelesen"
	dc.b	" und als",10
	dc.b	"    Systemzeit gesetzt.",10
	dc.b	"r : Es wird angezeigt, welche resetfesten Programme"
	dc.b	" vorhanden sind.",10
	dc.b	"    So werden fast alle Viren gefunden.",10
	dc.b	"b : Der Bildschirm wird nach einer bestimmten Zeit"
	dc.b	" schwarzgeschaltet.",10
	dc.b	"m : Der Mauszeiger wird nach einer bestimmten Zeit"
	dc.b	" ausgeschaltet.",10
	dc.b	"t : Der Mausbeschleuniger wird eingeschaltet.",10
	dc.b	"g : Das aktuelle Fenster wird auf maximale Größe"
	dc.b	" vergrößert.",10
	dc.b	"f : Die Bildwechselfrequenz wird auf ca. 55 Hz"
	dc.b	" vergrößert.",10
	dc.b	"    Das Bild flimmert dann weniger.",10,10
	dc.b	"Es können mehrere Optionen gleichzeitig angegeben"
	dc.b	" werden.",10
	dc.b	"Die Optionen b,m und t schalten die entsprechende"
	dc.b	" Funktion wieder aus,",10
	dc.b	"wenn sie zum zweiten Mal verwendet werden.",10,10
	dc.b	"Bitte RETURN drücken.",10
anle:

;****************************************************************
;		Hier beginnt das Programm selbst
;****************************************************************

	even
st:	dc.l	$3f3,0,1,0,0,(h2-st1+3)/4,$3e9,(h2-st1+3)/4 ;Hunk-Länge
st1:	link	a5,#endd-$24-$44-psize-$30-26
	move.l	a0,argv(a5)
	move.l	d0,argz(a5)
	move.l	4.w,a6
	lea	dosn(pc),a1
	jsr	openlib(a6)
	move.l	d0,dos(a5)
	beq.b	fehlj
	lea	intn(pc),a1
	jsr	openlib(a6)
	move.l	d0,int(a5)
	beq.b	fehlj
	lea	gfxn(pc),a1
	jsr	openlib(a6)
	move.l	d0,gfx(a5)
	beq.b	fehlj
	suba.l	a1,a1
	jsr	findtask(a6)
	move.l	d0,task(a5)
fehlj:	beq.b	fehler
	move.l	d0,a4
	lea	$5c(a4),a0
	move.l	a0,msgp(a5)

hauptl:	subq.l	#1,argz(a5)	;Hauptschleife
	beq.b	ende
	move.l	argv(a5),a0
	move.b	(a0),d0
	addq.l	#1,argv(a5)
	lea	zeitab(pc),a0
	lea	jmptab(pc),a1
	lea	st(pc),a2
	lea	verwe(pc),a3
	move.l	#$3857f0c4,d1
	eor.l	#$7f3e95b6,d1
	cmp.l	-8(a3),d1
	bne.b	ende
	moveq	#-1,d1
noo:	tst.b	(a0)
	beq.s	hauptl
	addq.w	#1,d1
	cmp.b	(a0)+,d0
	bne.s	noo
	lsl.w	#2,d1
	move.l	0(a1,d1.w),a0
	add.l	a2,a0
	jsr	(a0)
	bra.s	hauptl


fehler:	moveq	#-1,d0	;Falls was nicht stimmt
	unlk	a5
	rts

ende:	move.l	gfx(a5),a1	;Un Tschüssssssssss
	jsr	closelib(a6)
	move.l	int(a5),a1
	jsr	closelib(a6)
	move.l	dos(a5),a1
	jsr	closelib(a6)
	unlk	a5
	moveq	#0,d0
	rts

clrio:	lea	ioreqq(a5),a1	;initialisiert IO-Request
	move.l	a1,a0
	moveq	#$2f,d0
clst3:	clr.b	(a0)+
	dbra	d0,clst3
	move.b	#5,8(a1)
	move.l	msgp(a5),a0
	move.l	a0,14(a1)
	move.w	#$30,18(a1)
	rts		;a1:IO-Request


infos:	move.l	dos(a5),a6		;???
	jsr	outp(a6)
	move.l	d0,d1
	beq.s	wb1
	lea	verw(pc),a0
	move.l	a0,d2
	move.l	#verwe-verw,d3
	jsr	write(a6)
wb1:	move.l	4.w,a6
	rts

setmap:	bsr.s	clrio			;ddd
	move.w	#$30,18(a1)
	lea	condev(pc),a0
	moveq	#-1,d0
	moveq	#0,d1
	jsr	opendev(a6)
	tst.l	d0
	bne.w	fehler

res:	lea	keyres(pc),a1
	moveq	#0,d0
	jsr	openres(a6)
	tst.l	d0
fehlj2:	beq.w	fehler
	move.l	d0,a0
	lea	14(a0),a0
	move.l	a0,d4
	lea	kmap(pc),a4
	move.l	10(a4),a1
	add.l	a4,a1
	jsr	findname(a6)
	move.l	d0,d3
	bne.s	noadd

addh:	move.l	-8(a4),d0
	moveq	#1,d1
	jsr	allocmem(a6)
	move.l	d0,d3
	beq.b	fehlj2
	move.l	a4,a0
	add.l	-8(a4),a0
	move.l	-12(a4),d1
	move.l	a4,a1
	moveq	#0,d0
wdh:	move.l	0(a0,d0),d2
	add.l	d3,0(a1,d2)
	addq.l	#4,d0
	dbf	d1,wdh
	move.l	-16(a4),d0
	move.l	d3,a2
cpy:	move.l	(a1)+,(a2)+
	dbf	d0,cpy
	move.l	d4,a0
	move.l	d3,a1
	jsr	addhead(a6)
noadd:	move.l	d3,a2	;keymap->a2

defkm:	lea	ioreqq(a5),a1
	move.l	#$20,36(a1)
	lea	14(a2),a3
	move.l	a3,40(a1)
	move.w	#12,28(a1)
	jsr	doio(a6)
	tst.l	d0
	bne.w	fehler

nochm:	lea	infoo(a5),a0	;Clear dpack,info
	moveq	#$23,d0
clst1:	clr.b	(a0)+
	dbra	d0,clst1
	lea	dpackk(a5),a0
	move.l	a0,a1
	moveq	#$43,d0
clst2:	clr.b	(a1)+
	dbra	d0,clst2
	move.l	task(a5),a1
	lea	$14(a0),a3
	move.l	a3,$a(a0)
	move.l	a0,$14(a0)
	lea	$5c(a1),a3
	move.l	a3,$e(a0)
	move.l	a3,$18(a0)
	move.l	#$19,$1c(a0)
	lea	infoo(a5),a4
	move.l	a4,d0
	lsr.l	#2,d0
	move.l	d0,$28(a0)
	move.l	a0,d6
	move.l	$a4(a1),a1
	exg	a0,a1
	jsr	putmsg(a6)
	move.l	a3,a0
waitp:	jsr	waitport(a6)
	move.l	d0,d5
	move.l	a3,a0
	jsr	getmsg(a6)
	tst.l	d0
	beq.w	fehler
	cmp.l	d6,d5
	bne.B	waitp
	lea	infoo(a5),a0
	tst.l	$20(a0)
	beq.s	nochm
	move.l	$20(a0),a0
	move.l	$18(a0),a0
	lea	ioreqq(a5),a1
	move.l	#$20,36(a1)
	lea	14(a2),a3
	move.l	a3,40(a1)
	move.w	#10,28(a1)
	clr.w	30(a1)
	move.l	a0,24(a1)
	jsr	doio(a6)
	tst.l	d0
	bne.w	fehler

endmap:	lea	ioreqq(a5),a1
	clr.w	28(a1)
	move.l	#-1,24(a1)
	jsr	closedev(a6)
	rts


zeit:	move.l	dos(a5),a6		;sss
	jsr	outp(a6)
	move.l	d0,d1
	beq.s	wb
uhrset:	lea	uhr,a4
	lea	puff(a5),a3
	moveq	#0,d3
	lea	dat(pc),a0
next:	moveq	#0,d0
	move.b	(a0)+,d0
	btst	#0,d0
	beq.B	zei
	move.b	0(a4,d0),d0
	and.b	#$f,d0
	add.b	#$30,d0
zei:	bsr.b	wc
	cmp	#10,d0
	bne.s	next
	move.l	a3,d2
	jsr	write(a6)
wb:	bra.s	jpur
				;Unterroutinen :
wc:	move.b	d0,0(a3,d3)	;Write Char
	addq.l	#1,d3
	rts

get:	move.b	0(a4,d6),d1	;Get Clock
	move.b	4(a4,d6),d0
	addq.l	#8,d6
	and.w	#$f,d0
	and.w	#$f,d1
	mulu	#10,d0
	add.w	d1,d0
	ext.l	d0
	rts

jpur:	move.l	4.w,a6
	move.b	53(a4),d0
	or.b	#1,d0
	move.b	d0,53(a4)
clkw:	btst	#1,53(a4)
	bne.b	clkw
	moveq	#0,d7
	moveq	#1,d6
	bsr.b	get	;sec
	move.b	d0,d7
	bsr.b	get	;min
	mulu	#smin,d0
	add.l	d0,d7
	bsr.b	get	;std
	mulu	#sst,d0
	add.l	d0,d7
	bsr.b	get	;tag
	subq.l	#1,d0
	move.l	d0,d5
	bsr.b	get	;monat
	move.l	d0,d2
	lea	mon(pc),a0
	move.b	#28,1(a0)
	bsr.b	get	;jahr
	move.b	53(a4),d3
	and.b	#$0e,d3
	move.b	d3,53(a4)
	move.l	d0,d3
	and.w	#3,d0
	bne.s	nosj
	move.b	#29,1(a0)
nosj:	subq.l	#2,d2
	bmi.s	jan
madd:	move.b	0(a0,d2),d0
	ext.w	d0
	add.w	d0,d5
	dbf	d2,madd
jan:	cmp.b	#78,d3
	beq.s	tset
	subq.l	#1,d3
	moveq	#0,d1
jadd:	add.w	#tjahr,d5
	move.l	d3,d0
	and.w	#3,d0
	bne.s	nosj2
	addq.l	#1,d5
nosj2:	cmp.b	#78,d3
	dbeq	d3,jadd
	move.l	#stag,d1
	move.l	d5,d0
	bsr.b	mul
	add.l	d0,d7

tset:	bsr.w	clrio
	move.w	#$28,18(a1)
	lea	timdev(pc),a0
	moveq	#1,d0
	moveq	#0,d1
	jsr	opendev(a6)
	tst.l	d0
fehlj4:	bne.w	fehler
	lea	ioreqq(a5),a1
	move.w	#11,28(a1)
	clr.w	30(a1)
	move.l	d7,32(a1)
	clr.l	36(a1)
	clr.l	40(a1)
	jsr	doio(a6)
	tst.l	d0
	bne.s	fehlj4
	lea	ioreqq(a5),a1
	clr.l	28(a1)
	jsr	closedev(a6)
endtim:	rts

mul:	move.l	d1,d2		;Multipliziere
	mulu	d0,d2
	move.l	d1,d3
	swap	d3
	mulu	d0,d3
	swap	d3
	clr.w	d3
	add.l	d2,d3
	move.l	d3,d0
	rts


vector:	move.l	dos(a5),a4		;rrr
	exg.l	a4,a6
	jsr	outp(a6)
	move.l	d0,d1
	move.l	d0,d5
	beq.w	wb2
	moveq	#2,d0
	lea	$2a(a4),a0
chk1:	tst.l	(a0)+
	bne.s	vir
	dbra	d0,chk1
	moveq	#2,d0
	lea	$222(a4),a0
chk2:	tst.l	(a0)+
	bne.s	vir
	dbra	d0,chk2
	lea	vecok(pc),a0
	move.l	a0,d2
	move.l	#vecoke-vecok,d3
	jsr	write(a6)
	bra.w	wb2
vir:	lea	virus(pc),a0
	move.l	a0,d2
	move.l	#viruse-virus,d3
	jsr	write(a6)
	exg.l	a3,a6
	move.l	int(a5),a6
	move.l	60(a6),a0
	jsr	dispbeep(a6)
	exg.l	a3,a6
	lea	warm(pc),a0
	bsr.w	capt
	move.l	50(a4),d7
	bsr.w	adr
	lea	cool(pc),a0
	bsr.w	capt
	move.l	46(a4),d7
	bsr.w	adr
	lea	cold(pc),a0
	bsr.s	capt
	move.l	42(a4),d7
	move.l	d7,a2
	bsr.w	adr
	moveq	#0,d0
	moveq	#10,d1
setp:	add.l	(a2)+,d0
	dbra	d1,setp
	cmp.l	#$c538438d,d0
	bne.s	shres
	move.l	d5,d1
	lea	spatch(pc),a0
	move.l	a0,d2
	move.l	#spatche-spatch,d3
	jsr	write(a6)
shres:	move.l	550(a4),d4
	beq.B	nores
reswi:	bclr	#31,d4
	move.b	#">",d7
	bsr.s	cr
	move.l	d4,a3
tres:	move.l	(a3)+,d4
	beq.s	nores
	btst	#31,d4
	bne.B	reswi
	move.l	d4,a0
	move.l	14(a0),a2
	movem.l	a0,-(a7)
wresn:	move.b	(a2)+,d7
	beq.s	nwresn
	bsr.s	cr
	bra.s	wresn
nwresn:	bsr.s	ret
	move.b	#"*",d7
	bsr.s	cr
	movem.l	(a7)+,a0
	move.l	18(a0),a2
wresid:	move.b	(a2)+,d7
	beq.s	nwresid
	bsr.s	cr
	bra.s	wresid
nwresid:bsr.s	ret
	bra.s	tres
nores:
wb2:	move.l	4.w,a6
	rts

capt:	move.l	d5,d1		;Unterprogramme
	move.l	a0,d2
	moveq	#5,d3
	jsr	write(a6)
	rts

ret:	move.b	#10,d7	;Return
cr:	lea	puff(a5),a0	;Ein Zeichen
	move.b	d7,(a0)
	move.l	a0,d2
char:	move.l	#1,d3
	move.l	d5,d1
	jsr	write(a6)
	rts

adr:	lsl.l	#8,d7	;Gibt Adresse aus
	move.w	#5,d6
nib:	moveq	#0,d1
	move.w	#3,d2
rot:	roxl.l	#1,d7
	roxl.b	#1,d1
	dbf	d2,rot
	lea	hex(pc),a0
	move.l	a0,d2
	add.l	d1,d2
	bsr.s	char
	dbf	d6,nib
	bsr.s	ret
	rts

hex:	dc.b	"0123456789abcdef"	;für adr
	even


resize:	move.l	int(a5),a6		;ggg
	move.l	$34(a6),a0
	move.l	$2e(a0),a1
	move.l	$0c(a1),d3
	moveq	#0,d0
	sub.w	4(a0),d0
	moveq	#10,d1
	sub.w	6(a0),d1
	move.l	a0,a3
	jsr	movew(a6)
	sub.w	10(a3),d3
	sub.w	#10,d3
	move.w	d3,d1
	swap	d3
	sub.w	8(a3),d3
	move.w	d3,d0
	move.l	a3,a0
	jsr	sizew(a6)
	move.l	4.w,a6
	rts

freqe:	move.l	#custom,a4		;fff
	move.w	#$011c,$1c8(a4)
	move.w	#$00e2,$1c0(a4)
	move.w	#$0880,$1dc(a4)
	move.l	#psize,d4
	lea	preff(a5),a0
	move.l	int(a5),a6
	move.l	d4,d0
	jsr	getprefs(a6)
	move.l	d0,a0
	move.w	#$00ef,$76(a0)
	move.l	d4,d0
	moveq	#-1,d1
	jsr	setprefs(a6)
	move.l	gfx(a5),a3
	move.w	#$011c,$d4(a3)
	move.w	#$0100,$d8(a3)
	move.l	$22(a3),a0
	move.w	#$1b,$0c(a0)
	jsr	rethink(a6)
nclo:	move.l	4.w,a6
	rts

scnon:	bsr.b	blkon			;bbb
	moveq	#0,d1
	tst.l	bildsec(a3)
	bne.s	scnof
scnset:	move.l	#scnblk,d1
scnof:	move.l	d1,bildsec(a3)
	rts

ptron:	bsr.b	blkon			;mmm
	moveq	#0,d1
	tst.l	zeisec(a3)
	bne.s	ptrof
ptrset:	move.l	#ptrblk,d1
ptrof:	move.l	d1,zeisec(a3)
	rts

turon:	bsr.b	blkon			;ttt
	moveq	#0,d1
	tst.b	accon(a3)
	bne.s	turof
	moveq	#1,d1
turof:	move.b	d1,accon(a3)
	rts




blkon:	lea	blkres(pc),a1	;Blanker-Installation
	moveq	#0,d0
	jsr	openres(a6)
	move.l	d0,a3
	tst.l	d0
	bne.w	resda
	move.l	#endpos+3,d0
	move.l	#1<<16!1,d1
	jsr	allocmem(a6)
	move.l	d0,a4
	move.l	d0,a1
	lea	handbeg(pc),a0
	move.l	#(datpos+3)/4,d0
bcopy:	move.l	(a0)+,(a1)+
	dbra	d0,bcopy
	lea	datpos(a4),a3
	move.b	#8,resnode+8(a3)
	lea	rname(a3),a2
	move.l	a2,a1
	lea	blkres(pc),a0
ncopy:	move.b	(a0)+,(a1)+
	bne.s	ncopy
	move.l	a2,resnode+10(a3)
	move.w	#datpos,resnode+16(a3)
	move.w	#endpos-datpos,resnode+18(a3)
	move.w	#2,20(a3)
	move.l	a2,resnode+24(a3)
	move.w	#$0200+52,intpos+8(a4)	;Priorität
	move.l	a2,intpos+10(a4)	;Name
	move.l	a3,intpos+14(a4)	;Data
	move.l	a4,intpos+18(a4)	;Code
	move.l	a3,a1
	jsr	addres(a6)
	bsr.w	clrio
	lea	inpdev(pc),a0
	moveq	#0,d0
	move.l	a1,a2
	moveq	#0,d1
	jsr	opendev(a6)
	tst.l	d0
fehlj5:	bne.w	fehler
	move.w	#9,28(a2)
	clr.w	30(a2)
	moveq	#22,d0
	move.l	d0,36(a2)
	lea	intpos(a4),a0
	move.l	a0,40(a2)
	move.l	a2,a1
	jsr	doio(a6)
	tst.l	d0
	bne.b	fehlj5
	move.l	a2,a1
	jsr	closedev(a6)
resda:	rts		;a3:datpos



	; Input-Event-Handler !

handbeg:	
	movem.l	a0/a2,-(sp)
	lea	custom,a2
schleif:move.b	4(a0),d1
	cmp.b	#6,d1
	bne.s	rawmou
	tst.b	bild(a1)
	bne.s	weith
	move.l	14(a0),d0
	tst.b	first(a1)
	bne.s	a2s
	move.l	d0,lfdzei(a1)
	move.l	d0,lfdbild(a1)
	move.b	#1,first(a1)
a2s:	tst.l	bildsec(a1)
	beq.s	ptrc
	sub.l	lfdbild(a1),d0
	cmp.l	bildsec(a1),d0
	blo.s	ptrc
	move.w	#0+$180,$96(a2)
	move.w	#0,$180(a2)
	move.b	#1,bild(a1)
	bra.s	sprof
ptrc:	tst.l	zeisec(a1)
	beq.s	weith
	move.l	14(a0),d0
	sub.l	lfdzei(a1),d0
	cmp.l	zeisec(a1),d0
	blo.s	weith
sprof:	move.w	#0+$20,$96(a2)
	moveq	#0,d0
	move.l	d0,$144(a2)
	move.b	#1,zeiger(a1)
weith:	move.l	(a0),d0
	move.l	d0,a0
	bne.s	schleif
	movem.l	(sp)+,a0/a2
	move.l	a0,d0
	rts
rawmou:	cmp.b	#2,d1
	bne.s	rawkey
	tst.b	accon(a1)
	beq.s	zeian
accx:	move.w	10(a0),d1
	muls	d1,d1
	addq.w	#3,d1
	lsr.w	#2,d1
	tst.w	10(a0)
	bpl.s	b1s
	neg.w	d1
b1s:	move.w	d1,10(a0)
accy:	move.w	12(a0),d1
	muls	d1,d1
	addq.w	#3,d1
	lsr.w	#2,d1
	tst.w	12(a0)
	bpl.s	b2s
	neg.w	d1
b2s:	move.w	d1,12(a0)
zeian:	move.w	#$8000+$20,$96(a2)
	clr.b	zeiger(a1)
	move.l	14(a0),lfdzei(a1)
bildan:	move.w	#$8000+$180,$96(a2)
	clr.b	bild(a1)
	move.l	14(a0),lfdbild(a1)
	bra.s	weith
rawkey:
	cmp.b	#1,d1
	beq.s	bildan
	bra.s	weith
	
handend:

codepos	=	0	;für IE-Handler
datpos	=	codepos+(handend-handbeg)
intpos	=	datpos+datsize
endpos	=	intpos+22



	even
jmptab:	dc.l	infos-st,setmap-st,zeit-st,vector-st
	dc.l	scnon-st,ptron-st,turon-st,resize-st,freqe-st
zeitab:	dc.b	"?","d","s","r","b","m","t","g","f",0
dat:	dc.b	29,25,46,37,33,46,45,41,32,32,21,17,58,13,9,58,5,1,10
mon:	dc.b	31,28,31,30,31,30,31,31,30,31,30,31
smin	= 60
sst	= 60*smin
stag	= 24*sst
tjahr	= 365

	even
version:dc.b	"$VER: DMAP 2.0 (02.02.93)",0
keyres:	dc.b	"keymap.resource",0
blkres:	dc.b	"blanker.resource",0
condev: dc.b	"console.device",0
timdev: dc.b	"timer.device",0
inpdev:	dc.b	"input.device",0
dosn:	dc.b	"dos.library",0
intn:	dc.b	"intuition.library",0
gfxn:	dc.b	"graphics.library",0

vecok:	dc.b	"Nichts Resetfest",10
vecoke:
virus:	dc.b	$9b,"4;33;40mMöglicher Virus gefunden"
	dc.b	$9b,"0;31;40m",10
viruse:
spatch:	dc.b	"     Setpatch",10
spatche:
cold:	dc.b	"Cold:"
cool:	dc.b	"Cool:"
warm:	dc.b	"Warm:"
verw:	dc.b	"So geht's:",10,10,"DMAP dsrbmtgf",10
	dc.b	"d:Tastatur belegen",10 
	dc.b	"s:Echtzeituhr lesen",10
	dc.b	"r:Resetfeste Programme",10
	dc.b	"b:Bildschirmschoner",10
	dc.b	"m:Mauszeiger abschalten",10
	dc.b	"t:Mausbeschleuniger",10
	dc.b	"g:Fenster vergrößern",10
	dc.b	"f:Flimmerfrei",10,10
	even
	dc.b	"V2.0 von Martin Gierich",10 ;Diese Zeile nicht ändern !
verwe:

	;Default-Tastatur

	even
	dc.l	(m2-m1)/4-1,(h2-h1)/4-1,m2-m1,h2-h1	;Größe
kmap:
m1:	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$03,$9C,$00,$00
	DC.B	$00,$4C,$00,$00,$00,$C4,$00,$00
	DC.B	$00,$2E,$00,$00,$00,$3D,$00,$00
	DC.B	$00,$8C,$00,$00,$01,$C4,$00,$00
	DC.B	$00,$36,$00,$00,$00,$45,$00,$00
	DC.B	$FF,$07,$FF,$07,$FE,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$FF,$BF,$FF
	DC.B	$EF,$FF,$EF,$FF,$F7,$47,$F4,$FF
	DC.B	$7F,$00,$00,$00,$07,$03,$03,$03
	DC.B	$03,$03,$07,$03,$03,$03,$03,$07
	DC.B	$03,$07,$80,$00,$07,$07,$07,$07
	DC.B	$07,$07,$07,$07,$07,$07,$07,$07
	DC.B	$80,$00,$00,$00,$07,$07,$07,$07
	DC.B	$07,$07,$07,$07,$07,$03,$03,$07
	DC.B	$80,$00,$00,$00,$01,$07,$07,$07
	DC.B	$07,$07,$07,$07,$03,$03,$07,$80
	DC.B	$00,$00,$00,$00,$02,$00,$41,$00
	DC.B	$05,$02,$00,$80,$80,$80,$00,$80
	DC.B	$41,$41,$41,$41,$41,$41,$41,$41
	DC.B	$41,$41,$41,$41,$00,$00,$05,$05
	DC.B	$00,$00,$00,$40,$80,$80,$80,$80
	DC.B	$80,$80,$80,$80,$80,$80,$80,$80
	DC.B	$80,$80,$80,$80,$80,$80,$80,$80
	DC.B	$80,$80,$80,$80,$7E,$60,$7E,$60
	DC.B	$21,$B9,$21,$31,$B2,$40,$22,$32
	DC.B	$23,$B3,$A7,$33,$A2,$B0,$24,$34
	DC.B	$25,$BC,$25,$35,$5E,$BD,$26,$36
	DC.B	$26,$BE,$2F,$37,$2A,$B7,$28,$38
	DC.B	$28,$AB,$29,$39,$29,$BB,$3D,$30
	DC.B	$5F,$2D,$3F,$DF,$00,$00,$00,$05
	DC.B	$7C,$5C,$7C,$5C,$00,$00,$00,$00
	DC.B	$00,$00,$00,$30,$C5,$E5,$51,$71
	DC.B	$B0,$B0,$57,$77,$00,$00,$45,$65
	DC.B	$AE,$AE,$52,$72,$DE,$FE,$54,$74
	DC.B	$A5,$A4,$5A,$7A,$00,$00,$55,$75
	DC.B	$00,$00,$49,$69,$00,$00,$4F,$6F
	DC.B	$B6,$B6,$50,$70,$7B,$5B,$DC,$FC
	DC.B	$7D,$5D,$2A,$2B,$00,$00,$00,$00
	DC.B	$00,$00,$00,$31,$00,$00,$00,$32
	DC.B	$00,$00,$00,$33,$00,$00,$41,$61
	DC.B	$A7,$DF,$53,$73,$D0,$F0,$44,$64
	DC.B	$00,$00,$46,$66,$00,$00,$47,$67
	DC.B	$00,$00,$48,$68,$00,$00,$4A,$6A
	DC.B	$00,$00,$4B,$6B,$A3,$A3,$4C,$6C
	DC.B	$3A,$3B,$D6,$F6,$22,$27,$C4,$E4
	DC.B	$5E,$23,$5E,$23,$00,$00,$00,$00
	DC.B	$00,$00,$00,$34,$00,$00,$00,$35
	DC.B	$00,$00,$00,$36,$00,$00,$3E,$3C
	DC.B	$00,$00,$59,$79,$F7,$D7,$58,$78
	DC.B	$C7,$E7,$43,$63,$AA,$AA,$56,$76
	DC.B	$BA,$BA,$42,$62,$00,$00,$4E,$6E
	DC.B	$BF,$B8,$4D,$6D,$3C,$2C,$3B,$2C
	DC.B	$3E,$2E,$3A,$2E,$3F,$2F,$5F,$2D
	DC.B	$00,$00,$00,$00,$00,$00,$00,$2E
	DC.B	$00,$00,$00,$37,$00,$00,$00,$38
	DC.B	$00,$00,$00,$39,$00,$00,$A0,$20
	DC.B	$00,$00,$00,$08,$00,$00,$02,$A4
	DC.B	$00,$00,$00,$0D,$00,$0A,$0A,$0D
	DC.B	$00,$00,$9B,$1B,$00,$00,$00,$7F
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$2D
	DC.B	$00,$00,$00,$00,$00,$00,$02,$AB
	DC.B	$00,$00,$02,$B3,$00,$00,$02,$BB
	DC.B	$00,$00,$02,$C4,$00,$00,$02,$CD
	DC.B	$00,$00,$02,$E5,$00,$00,$03,$02
	DC.B	$00,$00,$03,$17,$00,$00,$03,$28
	DC.B	$00,$00,$03,$38,$00,$00,$03,$48
	DC.B	$00,$00,$03,$78,$00,$00,$E5,$00
	DC.B	$00,$00,$E5,$00,$1B,$1B,$7B,$5B
	DC.B	$1D,$1D,$7D,$5D,$00,$00,$00,$2F
	DC.B	$00,$00,$00,$2A,$00,$00,$00,$2B
	DC.B	$00,$00,$03,$97,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$00,$00,$00,$00
	DC.B	$00,$00,$00,$00,$01,$04,$02,$05
	DC.B	$09,$9B,$5A,$02,$04,$02,$06,$9B
	DC.B	$41,$9B,$54,$02,$04,$02,$06,$9B
	DC.B	$42,$9B,$53,$02,$04,$03,$06,$9B
	DC.B	$43,$9B,$20,$40,$02,$04,$03,$06
	DC.B	$9B,$44,$9B,$20,$41,$04,$04,$10
	DC.B	$08,$44,$69,$72,$0D,$53,$74,$61
	DC.B	$72,$74,$75,$70,$2D,$53,$65,$71
	DC.B	$75,$65,$6E,$63,$65,$05,$04,$14
	DC.B	$09,$4C,$69,$73,$74,$0D,$53,$79
	DC.B	$73,$74,$65,$6D,$2D,$43,$6F,$6E
	DC.B	$66,$69,$67,$75,$72,$61,$74,$69
	DC.B	$6F,$6E,$08,$04,$09,$0C,$45,$78
	DC.B	$65,$63,$75,$74,$65,$20,$4D,$6F
	DC.B	$75,$6E,$74,$4C,$69,$73,$74,$05
	DC.B	$04,$08,$09,$49,$6E,$66,$6F,$0D
	DC.B	$2E,$6C,$69,$62,$72,$61,$72,$79
	DC.B	$05,$04,$07,$09,$43,$6F,$70,$79
	DC.B	$20,$2E,$64,$65,$76,$69,$63,$65
	DC.B	$04,$04,$08,$08,$43,$6C,$73,$0D
	DC.B	$2D,$48,$61,$6E,$64,$6C,$65,$72
	DC.B	$09,$04,$23,$0D,$50,$61,$74,$68
	DC.B	$20,$52,$41,$4D,$3A,$46,$6F,$72
	DC.B	$6D,$61,$74,$20,$44,$72,$69,$76
	DC.B	$65,$20,$44,$46,$31,$3A,$20,$4E
	DC.B	$61,$6D,$65,$20,$4C,$65,$65,$72
	DC.B	$20,$4E,$6F,$69,$63,$6F,$6E,$73
	DC.B	$0F,$04,$0C,$13,$50,$61,$74,$68
	DC.B	$20,$53,$59,$53,$3A,$53,$79,$73
	DC.B	$74,$65,$6D,$49,$6E,$73,$74,$61
	DC.B	$6C,$6C,$20,$44,$46,$31,$3A,$03
	DC.B	$02,$9B,$3F,$7E,$64,$6C,$00,$4D
	DC.B	$20,$47,$69,$65,$72,$69,$63,$68
m2:

h1:	DC.B	$00,$00,$02,$40,$00,$00,$02,$20
	DC.B	$00,$00,$02,$1C,$00,$00,$02,$18
	DC.B	$00,$00,$02,$14,$00,$00,$02,$10
	DC.B	$00,$00,$02,$0C,$00,$00,$02,$08
	DC.B	$00,$00,$02,$04,$00,$00,$02,$00
	DC.B	$00,$00,$01,$FC,$00,$00,$01,$F8
	DC.B	$00,$00,$01,$F4,$00,$00,$01,$CC
	DC.B	$00,$00,$00,$2A,$00,$00,$00,$26
	DC.B	$00,$00,$00,$22,$00,$00,$00,$1E
	DC.B	$00,$00,$00,$1A,$00,$00,$00,$16
	DC.B	$00,$00,$00,$12,$00,$00,$00,$0E
	DC.B	$00,$00,$00,$0A

	even
h4:	dcb.w	(h4-st)/2-((h4-st)/4*2)	;Wäre das auch einfacher
					;möglich gewesen ?
h2:	dc.l	$03f2	;Hunk-Ende
h3:

	dcb.b	1000	;Platz für größere Tastaturen



end:	END

