*
* Routine zum Lesen eines Bildes von Diskette.
* Format: DISKBLD,<file spec.>
* File ist ein mit DISKCOPY abgespeichertes Bild.
* In TAB stehen die Bildseiten, die physisch
* vorhanden sind. In dieser Reihenfolge werden
* die Bilder von Diskette geladen.
*	N E U E	V E R S I O N :
* Stellt automatisch die Anzahl der Bildseiten fest,
* d. h. der Parameter hinter dem Kommand faellt weg.
* Ausserdem wird als Default Extension .DIA benutzt.
*
* W. Schwotzer	17.03.84
*
* SYSTEM EQUATES:

WARMS	EQU	$CD03
PUTCHR EQU	$CD18
GETFIL EQU	$CD2D
SETEXT EQU	$CD33
INDEC	EQU	$CD48
FMS	EQU	$D406
INCHNE EQU	$D3E5	(FLEX special !)
PSTRNG EQU	$CD1E
CLSFMS EQU	$D403
RPTERR EQU	$CD3F
SWITCH EQU	$F036
SWTCHB EQU	$F038
EOT	EQU	$4
FF	EQU	12

	ORG	$C100

BEGIN	BRA	ANF

VERSIO FCB	1
TAB	FCB	$C,$D,$E
	FCB	$4,$5,$6
	FCB	$FF

ANF	LEAX	FCB,PCR
	JSR	GETFIL
	BCS	ERROR
	TST	12,X	Extension schon da?
	BNE	OK1	ja, weiter
	LEAU	TEXT,PCR	Def. Ext.: .DIA
	LDD	,U++
	STD	12,X
	LDA	,U
	STA	14,X
OK1	LDB	#6		max. 6 Bilder zulaessig
OK2	LEAU	<TAB,PCR
	LEAX	FCB,PCR
	LDA	#1		Open File for read
	STA	,X
	JSR	FMS
	BNE	ERROR
	LDA	#$FF
	STA	59,X	Space Comp. Mode aus
	LDA	#FF
	JSR	PUTCHR
LOOP1	TST	,U
	BMI	OK9
	BSR	GTBILD	1 Bildseite lesen
	BNE	ERROR
	BCS	OK9	alle Seiten gelesen
	LEAU	1,U	Zeiger auf naechste B.
	DECB	
nur weiter, falls
	BNE	LOOP1	alle Bilder ausgeg.?
OK9	LDA	#4
	STA	,X
	JSR	FMS	Close file
	BNE	ERROR
	JSR	[INCHNE]	Eingabe abwarten
	JMP	WARMS

ERROR	JSR	RPTERR
ERR22	JSR	CLSFMS
	JMP	WARMS

GTBILD PSHS	B,X,U
	LDA	,U		Bildseite in A
	TFR	A,B
	TFR	D,X	in X
	TFR	D,Y	und Y
	LDB	#$E0	nach $0000
	JSR	[SWITCH]	einblenden
	LEAX	FCB,PCR
	LDY	#0		Zaehler auf 0
	CLRB
GT1	BSR	GTBYT	Byte holen
	BEQ	GT2
	CMPY	#0		Nur falls am Anf. einer Bildseite
	BNE	GTERR
	LDA	1,X	und Fehler: READ PAST EOF
	CMPA	#8
	BNE	GTERR
	JSR	[SWTCHB]
	ORCC	#%101	alles gelesen, Z=1, C=1
	PULS	B,X,U,PC
GT2	STA	,Y+	abspeichern
	CMPY	#$4000	Bildseite voll?
	BLO	GT1	nein, weiter
	JSR	[SWTCHB]	Bildseite ausblenden
	CLRB	
kein Fehler, Z=1, C=0
	PULS	B,X,U,PC
GTERR	JSR	[SWTCHB]	Fehler, Z=0
	LDB	#1
	PULS	B,X,U,PC

GTBYT	TSTB	
Code lesen?
	BNE	GTB1	nein, Byte lesen
	JSR	FMS	Code lesen
	BNE	GTBER
	CMPA	#0
	BEQ	GTBER2
	CMPA	#2		Code muss 2 sein
	BNE	GTBER1
	JSR	FMS	MSB Adresse
	BNE	GTBER
	JSR	FMS	LSB Adresse
	BNE	GTBER
	JSR	FMS	Byteanzahl
	BNE	GTBER
	TFR	A,B	in B
GTB1	DECB
	JSR	FMS	Byte in A
	RTS

GTBER2 LDA	#8		READ PAST END OF FILE
	STA	1,X
	RTS
GTBER1 CLR	1,X	Keine Systemfehlermeld.
	LEAX	TNOTB,PCR
	JSR	PSTRNG
	LDA	#$FF	NE-Cond.
GTBER	RTS

TNOTB	FCC	'FILE NICHT BINAER',EOT
TEXT	FCC	'DIA'

FCB	RMB	320
LBL	SET	*
	IF	LBL>$C6FF
	ERR	PROGRAM TOO LONG
	ENDIF

	END	BEGIN

                                                                                                                                                  