File: SDECAU.MA of Tape: Various/Decus/decus-2
(Source file text) 

.TITLE	L I N K - L I B R A R Y
.SBTTL	SDECAU:DEZIMALE ZAHLENEINGABE


.INCLUDE SYS:MACLIB.MA

/****SDECAU****
/04.09.81  PMO,15.8.83 VH
/(L,AC)=?,?
/CALL	SDECAU
/-(EINGABELAENGE+1)
/ADRESSE BEI 2.RUBOUT
/**************


/DAS UNTERPROGRAMM SDECAU WIRD VOM MACRO DECAUF VERWENDET


/ES DIENT ZUR AUFNAHME UND UMWANDLUNG VON UEBER DIE
/TASTATUR DES TTY EINGEGEBEN DEZIMALZAHLEN IN OKTALZAHLEN.


/DURCH EINGABE EINES RUBOUT WIRD DIE GESAMTE EINGABE
/GELOESCHT.
/EIN ZWEITES RUBOUT VERANLASST EINEN RUECKSPRUNG 


/DER NORMALE RUECKSPRUNG ERFOLGT DURCH EINGABE EINES
/ZEICHENS (KEINE ZIFFER) ODER ERREICHEN DER MAX. LAENGE
/BEI ERFOLGTER EINGABE IST SPMARK > 0
/IM SPTTY STEHT DAS ZULETZT EINGEGEBENE ZEICHEN
/DAS ERGEBNIS STEHT IN ZAHIGH UND ZALOW


/DAS ERSTE ZEICHEN MUSS BEI EINTRITT SCHON IN SPTTY STEHEN.
/VOR AUFRUF VON SDECAU MUSS SPRUB = 0 GESETZT WERDEN UND
/LIESTT AUFGERUFEN WERDEN(WENN 1.ZEICHEN NOCH NICHT IN SPTTY)


/DAS ECHO KANN UEBER TTY ODER TTY+LPT ERFOLGEN
/			SPHSR=0	TTY
/			SPHSR=1	TTY+LPT


/ZAHLENBEREICH:   0...99999



OPEN	"SDECAU","F"


.ENTRY	SDECAU

	DEFMER	SPZI2$	,SPZI1$	,CNTR1$	,PNTR1$	,TEMP2$	,TEMP1$

SDECAU,	OPNSUB RT:DECAR$,TEMP2$

DECA0$:	TAD TEMP2$
	RESMER AC+CNTR1$,SPZI1$,SPZI2$,VA:SPMARK

	VATAD SPTTY
DECA1$:	TAD (-RUB)
	SNA CLA
	JMP DECA2$
	VATAD SPTTY
	TAD (-"0)
	SPA
	JMP DECA4$-1
	TAD ("0-"9)
	SMA SZA CLA
	JMP DECA4$-1

	DCAADD TEMP1$,AC+SPZI1$
	DCAADD PNTR1$,AC+SPZI2$

	JMS DECA6$
	JMS DECA6$

	DCAADD SPZI1$,AC+SPZI1$,TEMP1$
	RAL
	DCAADD SPZI2$,AC+SPZI2$,PNTR1$

	JMS DECA6$

	VATAD SPTTY
	AND (17)
	TAD SPZI1$
	DCA SPZI1$
	SZL
	INC SPZI2$
	VAINC SPMARK
	ISZ CNTR1$
	JMP DECA5$

DECA2$:	JMX VA:SPRUB,EQ:DECA3$

	RUBOUT
	JMP DECA2$

DECA3$:	VATAD SPTTY
	TAD (-RUB)
	SNA CLA
	JMP DECA7$
	LIESTT
	CAL
	JMP DECA0$
	INC SDECAU,0
DECA4$:	CLA
	TAD SPZI1$
	VADCA ZALOW
	TAD SPZI2$
	VADCA ZAHIGH

DECAR$:	V				/RUECKSPRUNG
	JMP I SDECAU

DECA5$:	LIESTT
	JMP DECA1$

/------------------------------------------------------------------------

DECA6$:	OPNSUB

	TAD SPZI1$
	CLL RAL
	DCA SPZI1$
	TAD SPZI2$
	RAL
	DCA SPZI2$
	JMP I DECA6$

/----------------------------------------------------------------------

DECA7$:	DCA SPZI1$
	DCA SPZI2$
	VADCA SPMARK
	JMP DECA4$


CLOSE	"SDECAU"

	ENDPR