run:
	move.l	d0,pd0
	move.l	a0,pa0
	move.l	$4,a6			;Testen, ob das Programm
	suba.l	a1,a1			;von der Wokrbench aus,
	jsr	-294(a6)		;oder vom CLI gestartet
	move.l	d0,a4			;wurde.
	tst.l	172(a4)
	bne	cli		;Es wurde vom CLI aus gestartet
	lea	$5c(a4),a0
	jsr	-384(a6)		;Message abholen
	jsr	-372(a6)
	move.l	d0,a2
	cmp.l	#2,$1c(a2)
	beq	gon
	rts
gon:
	move.l	36(a2),d0
	move.l	d0,pp
	bsr	opendos
	tst.l	d0
	beq	closedos
	jsr	memory
	move.l	dosbase,a6
	move.l	pp,d0
	move.l	pp,a0
	move.l	8(a0),d1
	jsr	-126(a6)
	move.l	pp,a0
	move.l	12(a0),d1
	jmp	lies
cli:
	move.l	pd0,d0
	move.l	pa0,a0
	cmp.b	#31,d0
	bhi	frage
	subq	#2,d0
	beq	frage
	bmi	frage
rlp:
	move.b	(a0)+,d1
	cmp.b	#63,d1
	beq	frage
	cmp.b	#$20,d1
	bne	ok
	dbra	d0,rlp
	jmp	frage
	
opendos:
	move.l	$4,a6
	lea	dosname,a1
	jsr	-408(a6)
	move.l	d0,dosbase
	rts

memory:
	move.l	$4,a6			;Chip-Ram für die Sound-
	move.l	#2,d1			;Kurve anfordern
	move.l	#2,d0
	jsr	-198(a6)
	move.l	d0,mmry
	lea	kurve,a0		;Werte ins Chip-Ram schieben
	move.l	mmry,a1
	move.w	(a0),(a1)
	rts

ok:
	lea	filename,a1
	cmp.b	#34,d1
	beq	rgn
	move.b	-(a0),d1
	jmp	rlp2
rgn:
	subq	#2,d0
rlp2:
	move.b	(a0)+,(a1)+
	dbra	d0,rlp2

type:
	jsr	opendos
	jsr	memory
	tst.l	d0
	beq	closedos
	move.l	#filename,d1
lies:
	move.l	#1005,d2
	move.l	dosbase,a6
	jsr	-30(a6)
	move.l	d0,filehd
	beq	fileerror1
	move.l	#name2,d1
	move.l	#1005,d2
	jsr	-30(a6)
	move.l	d0,outhd
loop:
	move.l	filehd,d1
	move.l	#puffer,d2
	move.l	#1,d3
	jsr	-42(a6)
	tst.l	d0
	beq	ende
	lea	puffer,a1
	cmp.b	#150,(a1)
	bne	wtr1
	move.l	filehd,d1
	move.l	#puffer,d2
	move.l	#1,d3
	jsr	-42(a6)
	tst.l	d0
	beq	ende
	lea	puffer,a1
	move.b	(a1),puffer2
	sub.b	#1,puffer2
	jmp	loop
wtr1:
	move.l	outhd,d1
	move.l	#puffer,d2
	move.l	#1,d3
	jsr	-48(a6)
	tst.l	d0
	beq	ende
	cmp.b	#$75,$bfec01	;Escape gedrückt ?
	beq	ende
	cmp.b	#$7f,$bfec01	;Space gedrückt ?
	beq	loop
	cmp.b	#$39,$bfec01	;Ctrl gedrückt ?
	beq	pause
	move.b	puffer,d0
	cmp	#$20,d0
	beq	jp
	cmp	#10,d0
	beq	jp
	cmp	#13,d0
	beq	jp
	move.b	puffer2,d0
	beq	wtr2
	sub.b	#1,puffer2
	jmp	loop
wtr2:
	jsr	ton
gon1:
	move.l	#1000,d2
llp:
	dbra	d2,llp
	jmp	loop
ende:
	move.l	$4,a6
	move.l	mmry,a1
	move.l	#2,d0
	jsr	-210(a6)		;Speicher wieder freigeben
	move.l	dosbase,a6
	move.l	filehd,d1
	jsr	-36(a6)
	move.l	#100,d1
llp2:
	jsr	wait
	dbra	d1,llp2
ende2:
	move.l	outhd,d1
	jsr	-36(a6)
closedos:
	move.l	dosbase,a1
	move.l	$4,a6
	jsr	-414(a6)
	rts

frage:
	jsr	opendos
	tst.l	d0
	beq	closedos
	move.l	dosbase,a6
	jsr	-60(a6)
	move.l	d0,outhd
	move.l	d0,d1
	move.l	#text,d2
	move.l	#textende-text,d3
	jsr	-48(a6)
	jmp	closedos

jp:
	jsr	wait
	jmp	gon1

fileerror1:
	move.l	dosbase,a6
	jsr	-60(a6)
	move.l	d0,outhd
	move.l	d0,d1
	move.l	#textende,d2
	move.l	#text2ende-textende,d3
	jsr	-48(a6)
	jmp	closedos

fileerror2:
	move.l	dosbase,a6
	jsr	-60(a6)
	move.l	d0,outhd
	move.l	d0,d1
	move.l	#text2ende,d2
	move.l	#text3ende-text2ende,d3
	jsr	-48(a6)
	jmp	closedos

pause:
	cmp.b	#$39,$bfec01
	beq	pause
pause2:
	cmp.b	#$39,$bfec01
	bne	pause2
pause3:
	cmp.b	#$39,$bfec01
	beq	pause3
	jmp	loop

wait:
	move.l	dosbase,a6
	move.l	#25000,d3
wlp1:
	dbra	d3,wlp1
	rts

ton:
	move.l	mmry,$dff0a0
	move	#1,$dff0a4
	move	#800,$dff0a6
	move	#60,$dff0a8
	move	#$8201,$dff096
	jsr	wait
	move	#1,$dff096
	rts

dosname: 	dc.b "dos.library",0
kurve:		dc.b 127,-127
text: dc.b "Dieses Programm gibt den Inhalt einer Textdatei auf dem "
      dc.b "Bildschirm aus.",10
      dc.b "Geschrieben in 1988 von "
      dc.b "Tobias Eckert, Austraße 17, 6482 Bad Orb",10,0
textende:
dc.b "Ladefehler !!!    Datei nicht gefunden.",10,0
text2ende:
dc.b "Ladefehler !!!    Datei kann nicht gelesen werden.",10,0
text3ende:
name2: dc.b "raw:0/0/640/200/*** Write ***"
puffer2:	dc.b 0
even
dosbase: dc.l	0
filehd:	 dc.l	0
outhd:	 dc.l	0
puffer:	 dc.l	0
filename:  blk.l  8,0
pd0:	dc.l 0
pa0:	dc.l 0
pp:	dc.l 0
mmry:	dc.l 0
