ARITHASM	;**************************
	;*RADOR-ASSEMBLERLISTE    *
	;*                        *
	;*V 31.03.88              *
	;*                        *
	;*SPALTENSUMMMEN          *
	;**************************
	;
	;
	;
	;\[[[[[[[[[[[[[[[[[[[[[[[[\
	;\[ANTON-HELMUT PRANKE[[[[\
	;\[LTN.-LUTZ-MEIER-STR.36[\
	;\[SUHL[[[[[[[[[[[[[[[[[[[\
	;\[6024[[[[[[[[[[[[[[[[[[[\
	;\[[[[[[[[[[[[[[[[[[[[[[[[\
	;
	;
	;_________________________
	;
	;SUE   SUMMENEINSTIEG
	;      NACH FIND
	;
NVX	EQU 0B797H
PV	EQU 0F003H
SL	EQU 0
NS	EQU 2
NF	EQU 4
FP	EQU 6
DA	EQU 8
DNE	EQU 0AH
FEP	EQU 0CH
DNA	EQU 0EH
FK	EQU 10H
KOM	EQU 12H
ZZN	EQU 14H
HLR	EQU 16H
DER	EQU 18H
BCR	EQU 1AH
ZAN	EQU 1CH
ZEI	EQU 1EH
SL1	EQU 20H
KOS	EQU 72H
NF1	EQU 24H
FP1	EQU 26H
DA1	EQU 28H
SUM	EQU 2AH
VEB	EQU 2CH
VEE	EQU 2EH
LAM	EQU 30H
MOM	EQU 32H
FRE	EQU 34H
NMO	EQU 36H
DAM	EQU 38H
NFM	EQU 3AH
LH1	EQU 3CH
SKM	EQU 74H
LH2	EQU 40H
LB2	EQU 42H
NK	EQU 44H
DK	EQU 46H
FP2	EQU 48H
SCH	EQU 76H
SZ	EQU 4CH
ANF	EQU 4EH
VGB	EQU 50H
ANG	EQU 52H
VSU	EQU 54H
VGK	EQU 76H
GRU	EQU 60H
DRU	EQU 66H
PKT	EQU 150H
SPW	EQU 78H
SPP	EQU 7AH
AKE	EQU 7CH
	ORG 1EEBH
	DEFW 0DEDEH
	DEFM 'ARITH'
	DEFB 1
	LD A,0
	LD ANF,A
	CALL LOE
	CALL PV
	DEFB 23H
	DEFM '*SPALTENSUMME'
	DEFW 0A19H
	DEFM '*WELCHE DATEI?'
	DEFW 0A19H
	DEFB 0
	CALL ERO	;DATEISUCHE
	JP NC MERE	;NEIN->RETURN
	LD HL,(DNE)	;NAME ENDE
	LD A,0DDH
	LD BC,30H
	CPDR
	INC HL
	INC HL
	LD DNA,HL	;NAME ANFANG
	LD A,(MOM)	;AKTUELLES
	LD 5EH,A	;MODUL
	LD L,A
	LD A,1
	CALL PV
	DEFB 26H
	LD A,E
	LD 62H,A	;STEUERBYTE
SUE	LD E,4		;SUMME EINSTIEG
	LD L,7
	CALL COL
	CALL SAN	;ANZAHLTEST
	JP C MERE	;NULL->RETURN
	LD HL,0
	LD ANF,HL
	CALL LOE
	LD HL,0BFFFH
	LD SPW,HL	;ZWISCHENSPEICH.
			;AUF BFFFH
	LD HL,3A00H	;MERKER
	LD VGB,HL	;MERKZEIGER
	LD LH1,HL
	CALL PV
	DEFB 23H
	DEFM '*DATEI:\'
	DEFB 0
	LD E,2
	LD L,7
	CALL COL
	LD HL,(DNA)
	CALL HLA	;NAME AUSGABE
	LD E,4
	LD L,7
	CALL COL
	CALL PV
	DEFB 23H
	DEFM '\'
	DEFW 0A19H
	DEFM '*SUMME IM'
	DEFW 0A19H
	DEFB 0
P1	CALL OUT	;FELDEINGABE
	LD A,(ZAN)	;ALLE?
	CP 1
	JR Z ALL	;JA->ALL
	LD E,4
	LD L,7
	CALL COL
	CALL PV
	DEFB 23H
	DEFW 0A19H
	DEFB 0
	CALL NOF	;NOCH EIN FELD
P2	CALL PV
	DEFB 4
	CP 'J'
	JR Z P1		;JA->P1
	CP 'N'
	JR NZ P2	;NEIN->ALL
ALL	LD A,(ANF)
	LD C,A
	LD B,0		;FELDANZAHL
	LD HL,3A00H
	LD VGB,HL
	LD HL,3A04H
	LD VGK,HL	;FELDLAENGE
P3	LD ZAN,BC	;ANZAHL
	LD HL,(VGK)	;AKKU LOESCHEN
	LD C,M
	INC HL
	LD B,M		;LANGE->BC
	INC HL
	LD E,M
	INC HL
	LD D,M		;VORSUMME->DE
	LD LAM,BC	;LAM=LAENGE
	LD VSU,DE	;VSU=VSU
	LD HL,0A0H	;LANGE>160?
	AND A
	SBC HL,BC
	JP C A2		;JA->A2
	LD HL,(LAM)	;LANGE+4
	LD DE,4
	AND A
	ADC HL,DE
	PUSH HL
	LD BC,(LAM)
	LD HL,0BFFFH
	LD A,0FFH
	CPDR
	;SPP=PUNKT IM ZWISCHENSPEICHER
	;PKT=PUNKT IM AKKUMULATOR
	LD SPP,HL
	POP BC
	LD HL,PKT
	DEC HL
	LD DE,(SPP)
	DEC DE
	LD A,0
L1	LD M,0		;AKKU UND
	LD (DE),A	;ZWISCHENSPEICHR
	DEC DE		;LOESCHEN
	CPD
	JP PE L1
	LD A,'+'
	LD M,A
	LD (DE),A
	INC HL
	INC DE
	LD VEB,HL	;VEB=AKKU ANFA.
	LD SPW,DE	;ZWISCH.ANFANG
	LD HL,PKT
	LD DE,(SPP)
	LD A,'.'
	LD M,A
	LD (DE),A
	INC HL
	INC DE
	LD BC,(LAM)
	LD A,0
L2	LD M,A		;LOESCHEN
	LD (DE),A
	INC DE
	CPI
	JP PE L2
	LD HL,(LAM)
	AND A
	ADC HL,HL
	LD DE,5
	AND A
	ADC HL,DE
	LD BCR,HL	;BCR=AKKU LAENGE
	LD BC,150H
	LD HL,(LAM)
	AND A
	ADC HL,BC
	LD AKE,HL	;AKKU ENDE
	LD HL,2A00H	;VEKTORANFANG
	LD ZEI,HL	;VEKTORZEIGER
	LD BC,(NS)	;SATZANZAHL
F1	LD SUM,BC	;IN SUM
	LD HL,(ZEI)	;HL=ZEIGER
	LD C,M
	INC HL		;BC=SATZNUMMER
	LD B,M
	INC HL
	LD ZEI,HL
	LD DE,(SL)	;SATZLAENGE
	LD HL,(DA)	;DATENANFANG
	AND A
	SBC HL,DE
	LD DK,HL	;DK=DATENZEIGER
ADWI	PUSH BC
	PUSH DE
	AND A
	ADC HL,DE
	PUSH HL
	LD A,M		;DEH-BYTE?
	CP 0DEH
	JR NZ KSA	;NEIN->KSA
	POP HL		;JA->SCHALTEN
	CALL MOD
	LD HL,4000H
	PUSH HL
KSA	POP HL
	POP DE
	POP BC
	CPI		;FERTIG
	DEC HL
	JP PE ADWI	;NEIN->ADWI
	LD DK,HL	;ZEIGER MERKEN
F2	LD BC,(LAM)
	LD DE,(VSU)	;VORSUMME +
	LD HL,(DK)	;DATENZEIGER
	AND A
	ADC HL,DE	;HL =SPALTENANF.
	LD HLR,HL	;HLR=   -\\-
	DEC HL
	AND A
	ADC HL,BC
	LD DAM,HL	;DAM=SPALTENENDE
	LD A,'.'
	LD HL,150H	;'.'AUF PKT
	LD M,A
	LD HL,(SPP)	;'.'AUF SPP
	LD M,A
	JR X9
	;DATEN IN SPW EINTRAGEN
DIS	LD A,0
	LD LH2,A
	LD HL,(DAM)	;NEIN
	LD BC,(LAM)	;WERT IN SPW
Y1	PUSH BC
	PUSH HL
	PUSH DE
	LD A,M
	CP 20H
	JR Z Y5		;LEERZEICHEN
	CP '+'
	JR Z Y2		;PLUSZEICHEN
	CP '.'		;PUNKT
	JR Z YP		;JA->YP
	CP '-'		;MINUS
	JR Z Y2		;JA->Y2
	CP 30H
	JR C KNW	;KEINE ZIFFER
	LD A,39H
	CP M
	JR C KNW	;KEINE ZIFFER
	LD A,M
	PUSH HL
	LD L,30H	;30H SUBTRAHIER.
	SUB L
	POP HL
Y3	LD (DE),A	;IN ZWISCHENSP.
Y6	POP DE
	DEC DE
Y4	POP HL
	POP BC
	CPD		;NOCH ZEICHEN?
	JP PE Y1	;JA->Y1
	RET
Y5	LD A,(FP1)	;MIT DEZIMALP.
	OR A
	JR NZ Y6	;JA->Y6
	POP DE
	JR Y4		;NEIN->Y4
Y2	POP DE
	PUSH HL
	LD HL,(SPW)	;VORZEICHEN
	DEC HL		;EINTRAGEN
	LD M,A
	POP HL
	JR Y4
KN1	POP AF
KNW	POP DE
	POP HL
	POP BC
	SCF
	RET
YP	PUSH AF		;PUNKT EINTRAGEN
	LD A,(LH2)
	OR A
	JR NZ KN1	;ZUVIELE PUNKTE
	LD A,1		;KEIN NUMERISCH.
	LD LH2,A	;WERT
	POP AF
	JR Y3
X9	LD A,0
	LD FP1,A
	LD HL,(HLR)	;SPALTENENDE
	LD BC,(LAM)	;SPALTENLAENGE
	LD A,'.'	;'.' SUCHEN
	CPIR
	JP Z A1		;GEFUNDEN?
	LD DE,(SPP)	;NEIN!
	DEC DE
	LD DER,DE	;DE=SPAL.ENDE
	CALL DIS	;DATEN IN SPW
	JP C SN
	JR MA1
A1	LD A,1
	LD FP1,A
	LD HL,(SPP)
	AND A
	ADC HL,BC
	PUSH HL
	POP DE
	LD DER,DE
	CALL DIS	;DATEN IN SPW
	JP C SN
MA1	LD HL,0
	LD FP1,HL
	LD HL,(VEB)
	DEC HL
	LD A,M		;'-' IM AKKU
	CP '-'
	JR NZ X1	;NEIN->X1
	LD HL,(VEB)
	CALL KOMP	;KOMPLEMENT
X1	LD HL,(SPW)
	DEC HL
	LD A,M
	CP '-'		;'-' IM ZWISCH.
	JR NZ SU	;NEIN->SU
	LD HL,(SPW)
	CALL KOMP	;KOMPLEMENT
	;SUMMENBILDUNG
SU	LD HL,0BFFFH	;ZWISCHEN.ENDE
	LD DE,(AKE)	;AKKU ENDE
	LD BC,(BCR)	;AKKU LAENGE
	LD A,0
	LD KOS,A	;UBERTRAG=KOS
S1	PUSH BC
	PUSH HL
	PUSH DE
	LD A,M
	CP '.'
	JP Z PU		;PUNKT
	LD L,A
S2	LD A,(DE)
	ADD L		;ZIFFER ADD.
	DAA		;DEZIMALKORR.
	LD L,A
	LD A,(KOS)	;UEBERTRAG
	ADD L		;ADDIEREN
	DAA		;DEZIMALKORR.
	PUSH AF
	LD A,0		;ZWISCH.LOESCHEN
	LD (DE),A
	POP AF
	EX DE,HL
	RLD		;ERGEBNIS IN AKU
	EX DE,HL
	SRL A		;ZEHNER
	SRL A		;ALS
	SRL A		;UEBERTRAG
	SRL A		;NACH VORN
	LD KOS,A	;UN IN KOS
NU	POP DE
	DEC DE
	POP HL
	LD M,0
	POP BC		;NOCH ZIFFERN
	CPD
	JP PE S1	;JA->S1
	LD A,(KOS)	;UEBERTRAG?
	CP 1
	JR NZ NTE	;NEIN->NTE
KOTE	LD A,(KOM)	;WURDE KOMPL.?
	CP 'K'
	JR NZ NTE	;NEIN NEUNERTEST
	LD HL,(AKE)	;JA-UEBERTRAG
	LD BC,(BCR)	;NOCH ADDIEREN
Q2	LD LH1,HL
	LD LH2,BC
	LD A,M
	CP '.'
	JR Z QQ
	LD E,A
	LD A,(KOS)	;UEBERTRAG
	ADD E		;ADDIEREN
	DAA		;DEZIMALKORREKT.
	PUSH AF
	LD A,0
	LD M,A
	POP AF
	RLD		;IN AKKU
	SRL A		;ZEHNER
	SRL A		;NACH VORN UND
	SRL A		;IN KOS
	SRL A
	LD KOS,A
QQ	LD HL,(LH1)
	LD BC,(LH2)
	CPD		;NOCH ZIFFERN
	JP PE Q2	;JA->Q2
NTE	LD HL,(VEB)	;NEUNERTEST
	LD A,M		;NEUN NACH VORN
	CP 9		;GELAUFEN?
	JR Z Q3		;JA->Q3
	DEC HL		;NEIN ERGEBNIS
	LD M,'+'	;POSITIV
	JR Q5
Q3	DEC HL		;ERGEBNIS
	LD M,'-'	;NEGATIV
	LD HL,(VEB)
	CALL KOMP	;KOMPLEMENT
Q5	LD A,0
	LD KOM,A
F5	CALL MSA	;MODULSCHALTUNG
	LD HL,(SPW)
	DEC HL
	LD M,0
	LD BC,(SUM)	;NOCH SAETZE
	CPI
	JP PE F1	;JA->F1
	CALL MSA	;MODULSCHALTUNG
	JP ER1		;ERGEBNISAUSG.
PU	LD A,(DE)	;AUCH IM AKKU
	CP '.'		;EIN PUNKT?
	JP Z NU		;JA->NU
	POP DE		;NEIN
	POP HL		;KEINE NUMER.
	POP BC		;DATEN
SN	LD E,4		;SN-ERROR
	LD L,7
	CALL COL
	CALL PV
	DEFB 23H
	DEFB 2
	DEFM '  IM FELD '
	DEFB 0
	LD E,1
	LD L,7
	CALL COL
	LD HL,(VGB)	;FELDNAME ANF.
	LD BC,4		;LAENGE
FEW	LD A,M		;AUSGABE
	CALL PV
	DEFB 24H
	CPI
	JP PE FEW
	LD E,7
	LD L,0
	CALL COL
	CALL PV
	DEFB 23H
	DEFM ' KEINE NUMERISCHEN WERTE'
	DEFW 0A19H
	DEFB 0
	LD E,4
	LD L,7
	CALL COL
	JP A2
ER1	LD E,4
	LD L,7
	CALL COL
	CALL PV
	DEFB 23H
	DEFB 2
	DEFM '*SUMME IN '
	DEFB 0
	LD E,1
	LD L,7
	CALL COL
	LD BC,4
	LD HL,(VGB)	;NAME AUSGABE
ER2	LD A,M
	CALL PV
	DEFB 24H
	CPI
	JP PE ER2
	LD E,4
	LD L,7
	CALL COL
	CALL PV
	DEFB 23H
	DEFM ' = '
	DEFB 0
	LD E,2
	LD L,7
	CALL COL
			;AKKUMULATOR
			;LAENGE IN
			;BC RGISTER
	LD HL,0		;KONTROLLE
	LD FP1,HL	;AUF FUEHRENDE
			;UND AUF
	LD HL,(AKE)	;NACHNULLEN
	LD BC,(LAM)
TES2	LD A,0
	CP M		;NACHNULL?
	JR NZ TES1	;NEIN->TES1
	CPD
	JP PE TES2	;JA->TES2
	LD HL,PKT
	LD DE,(VEB)
	AND A
	SBC HL,DE
	PUSH HL
	POP BC
	JR TES3
TES1	LD DE,(VEB)	;KORRIGIEREN
	AND A
	SBC HL,DE
			;AUSGABE
			;NUR NACHNULLEN
			;GESAMTLAENGE
			;AUF VORKOMMA-
			;STELLEN
TES4	PUSH HL
	POP BC		;BC=LAENGE
	INC BC
TES3	LD HL,(VEB)	;VORZEICHENTEST
	DEC HL
	LD A,M
	INC HL
	CP '-'
	JR NZ ER3
	CALL PV		;WENN '-',DANN
	DEFB 24H	;UNTERSTREICHEN
	CALL PV
	DEFB 23H
	DEFW 080AH
	DEFM '='
	DEFB 0BH
	DEFB 0
ER3	PUSH HL
	LD HL,0
	LD FP1,HL
	POP HL
ER7	PUSH HL
	PUSH BC
	LD A,M
	CP '.'
	JR Z ER5
	CP 0H		;FUEHRENDE NULL
	JR NZ A3	;NEIN->A3
	LD HL,(FP1)	;JA->ER4
	CP L
	JR Z ER4
A3	ADD 30H
ER5	CALL PV
	DEFB 24H
	PUSH BC
	PUSH HL
	LD B,4
	LD HL,UST	;UNTERSTREICHEN
SS	LD A,M
	CALL PV
	DEFB 0
	INC HL
	DJNZ SS
	POP HL
	POP BC
	LD A,1		;KEINE VORNULL
	LD FP1,A	;MEHR ZU ERWAR-
ER4   	POP BC		;TEN
	POP HL
	CPI
	JP PE ER7
	CALL PV
	DEFB 23H
	DEFW 0A0DH
	DEFB 0
ER6	CALL PV		;NORMALAUSGABE
	DEFB 20H
	LD E,4
	LD L,7
	CALL COL
	CALL PV
	DEFB 23H
	DEFW 0A19H
	DEFM '*DRUCKEN (J/N)?'
	DEFB 0
F8	CALL PV
	DEFB 04H
	CP 'N'
	JP Z A2
	CP 'J'
	JR NZ F8
	LD HL,(DRU)	;OUTAB EINTRAGEN
	LD 0B7B9H,HL
	JP ER1
A2	LD HL,(VGB)
	LD DE,8
	AND A
	ADC HL,DE
	LD VGB,HL
	LD HL,(VGK)
	AND A
	ADC HL,DE
	LD VGK,HL
	LD HL,(SPW)
	DEC HL
	LD M,0
	CALL PV
	DEFB 20H	;NORMALAUSGABE
	LD BC,(ZAN)
	CPI		;NOCH FELDER?
	JP PE P3	;JA->P3
	JP MERE
		;SPALTENKOMPLEMENT
KOMP	LD BC,(BCR)	;LAENGE
W1	PUSH BC
	PUSH HL
	LD A,M
	CP '.'
	JR Z W2		;PUNKT
	LD E,A
	LD A,9		;DIFFERENZ
	SUB E		;ZUR 9
	LD M,A		;EINTRAGEN
W2	POP HL
	POP BC
	CPI
	JP PE W1
	LD A,'K'	;'K'IN KOM
	LD KOM,A
	RET
UST	DEFW 0A08H
	DEFB '='
	DEFB 0BH
	;UPTABELLE
LOE1	EQU 200H
LOE	EQU 20DH
COL	EQU 23DH	;COLOR
MOD	EQU 247H	;MODUL HOCHSCH.
MOR	EQU 2AAH	;MOD. RUNTERSCH.
MOD0	EQU 30EH	;GRUNDMODUL AUS
MOD8	EQU 31BH	;GRUNDMODUL EIN
KALT	EQU 33EH	;KALTSTART
MOLO	EQU 3BEH	;MODUL LOESCHEN
MEN	EQU 3DFH	;MENU
VK	EQU 42DH	;VERZEICHNIS
MERE	EQU 509H	;RETURN->MENU
DS	EQU 516H	;DATEISUCHE
ERR	EQU 53DH	;FEHLERAUSGABE
DIH	EQU 56FH	;DEZ IN HEX
HID	EQU 596H	;HEX IN DEZ
OLB	EQU 5AAH	;BLOCKAUSWAHL
VET	EQU 5E9H	;VEKTOR REFRESH
PIN	EQU 5FAH	;INPUT
HOS	EQU 66FH	;HOCHSCHALTEN
RUS	EQU 67DH	;RUNTERSCHALTEN
PAGE	EQU 68BH	;FENSTERREAKTION
MSA	EQU 69BH	;MODULUMSCHALTEN
HLA	EQU 6B9H	;(HL)AUSGABE
KOR	EQU 6C3H	;KORREKTUR
DEL	EQU 951H	;LOESCHEN
ERO	EQU 0A80H	;DATEISUCHE
SAN	EQU 0AABH	;SATZANZAHLTEST
OUT	EQU 0AD1H	;FELDNAME TEST
KOZE	EQU 0B9CH	;KOPFZEILE
WEND	EQU 0C06H	;FENSTERREAKTION
NOF	EQU 16A0H
	;LISTENENDE
ÿÿÿÿ