FLOAD2  ASM;--------------------------------
;
;Laderoutine, f}r DEP Version 2.1
;	(mit Fehlertexten)
;
;Adressen:	0000H 00D7H
;
;FLOAD2.ASM	` ml 07.08.93
;--------------------------------
ARGN	EQU	0B781H
ARG1	EQU	ARGN+1
NUMVX	EQU	0B797H
PV1	EQU	0F003H
UREL	EQU	0F00FH
IRMON	EQU	0F018H
IRMOF	EQU	0F01BH
INLIN	EQU 17H
ERRM	EQU 19H
AHEX	EQU 1CH
OSTR	EQU 23H
OCHR	EQU 24H
;-------
	ORG 0
NAME:	DB	'            '
;000CH
	CALL	IRMON
	LD	HL,NAME+11
	CALL	UREL
	DW	FLOAD-2-$
	CALL	IRMOF
	RET
;001BH
	DW	7F7FH
	DB	'FLOAD'
	DB	1
	CALL	PV1
	DB	OSTR
	DB	'Name :',0
	CALL	PV1
	DB	INLIN
	LD	HL,17
	ADD	HL,DE	;Ende Name
FLOAD:	LD	E,12	;Anzahl
	LD	BC,8EF3H
NAMOUT:	OUTD		;Name
	DEC	E
	JR	NZ,NAMOUT
	LD	A,9	;read-open
	PUSH	DE
	CALL	UREL
	DW	STEUER-2-$
	POP	DE
	LD	BC,90F2H
	IN	A,(C)
	CP	2
	JR	C,ERROR	; <  2 Argumente
	CP	10
	JR	NC,ERROR; > 10 Argumente
	EX	AF,AF'
	INC	B
	IN	L,(C)
	INC	B
	IN	H,(C)	;Aadr.
	INC	B
	IN	E,(C)
	INC	B
	IN	D,(C)	;Eadr.
	PUSH	HL
	INC	B
	IN	L,(C)
	INC	B
	IN	H,(C)	;Sadr.
	LD	A,(ARGN)
	AND	A
	JR	Z,ARG0	;kein Offset
	LD	BC,(ARG1)
	ADD	HL,BC	;Sadr.+Off
	EX	DE,HL
	ADD	HL,BC	;Eadr.+Off
	EX	DE,HL
	EX	(SP),HL
	ADD	HL,BC	;Aadr.+Off
	EX	(SP),HL
ARG0:	LD	(NUMVX),HL
	POP	HL
NBLOCK:	LD	A,1	;read
	PUSH	DE
	CALL	UREL
	DW	STEUER-2-$
	POP	DE
	DEC	C	;F2
BLW:	INI		;Daten --> (HL)
	AND	A
	SBC	HL,DE
	ADD	HL,DE
	JR	Z,JMP	;wenn ENDE
	INC	B
	INC	B
	JR	NZ,BLW	;80H Byte
	JR	NBLOCK	;neuen Block
;
JMP:	EX	AF,AF'
	CP	3	;kein Start
	RET	C
	LD	HL,(NUMVX)
	JP	(HL)
;
STEUER:	LD	BC,80F3H
	OUT	(C),A	;Steuerbyte
NRDY:	PUSH	BC
	LD	B,0
WARTE:	DJNZ	WARTE	;Zeitschleife
	POP	BC
	IN	A,(C)
	BIT	0,A	;fertig?
	JR	NZ,NRDY
	RLCA		;Fehler?
	RET	NC
	POP	HL	;RET-Adresse
	POP	DE	;gemerktes Reg.
ERR:	LD	BC,83F1H
	IN	A,(C)
	CP	20H	;DEP ab 2.0?
	JR	NC,ERRTX;ja
	LD	BC,81F3H
	IN	A,(C)	;Fehlernummer
	CALL	PV1
	DB	AHEX
ERROR:	CALL	PV1
	DB	ERRM
	RET
ERRTX:	LD	B,0	;Fehlertext
ERRT1:	IN	A,(C)
	RET	Z	;00-Ende
	INC	B
	CALL	PV1
	DB	OCHR
	JR	ERRT1
;00D7H
Í
ERRT1:Ë
ERRTX:Æ
ERROR:´
ERR:§
WARTE:¤
NRDY:Ÿ
STEUER:—
JMP:‰
BLW:
NBLOCK:{
ARG0:;
NAMOUT:6
FLOAD:
NAME:$
OCH
Í
ERRT1:Ë
ERRTX:Æ
ERROR:´
ERR:§
WARTE:¤
NRDY:Ÿ
STEUER:—
JMP:‰
BLW:
NBLOCK:{
ARG0:;
NAMOUT:6
FLOAD:
NAME:$
OCH