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

.TITLE  L I N K - L I B R A R Y
.SBTTL SFUELL:AUFFUELLEN EINES TEXTES

.INCLUDE SYS:MACLIB.MA
/**** SFUELL ****
/22.10.81  HEBR,19.9.83  VH
/(L,AC)=?,?
/CALL SFUELL
/CDF TEXTFELD
/TEXTADRESSE
/LAENGE
/ZEICHEN, MIT DEM GEFUELLT WERDEN SOLL
/(L,AC)=?,AUFGEFUELLTE ZEICHEN
/*************

/DIESES UNTERPROGRAMM WIRD VON DEM MACRO FUELL AUFGERUFEN
/ES FUELLT EINEN IN EINEM FELD ANGEGEBENEN TEXT (2 ZEICHEN / WORT) MIT
/SPACES AUF EINE ANGEGEBENE LAENGE AUF.
/ALS PARAMETER MUSS DAS TEXTFELD,DIE TEXTADRESSE UND DIE GESAMTLAENGE
/ANGEGEBEN WERDEN.



OPEN	"SFUELL","F"

.ENTRY SFUELL

	DEFMER	BULNG$	,BUADR$	,MASK2$	,MASK1$	,LNG$	,TEMP$

SFUELL,	OPNSUB RT:UM00$,UM01$,BUADR$,LNG$,MASK2$

	DCAADD UM02$,AC+UM01$

	TAD LNG$
	CLL RAR		/UMRECHNEN
	CMA IAC
	DCA BULNG$

	TAD MASK2$
	BSW
	TAD MASK2$
	DCA MASK1$	/MASK1$:='ZEICHEN ZEICHEN

FUE03$:	JMS WTAD$
	SNA		/IST DAS WORT 0 ?
	JMP FUE01$	/JA
	AND (^O0077)	/IST DIE RECHTE HAELFTE 0 ?
	SNA CLA
	JMP FUE02$	/JA
	INC BULNG$
	INC BUADR$,0
	JMP FUE03$

FUE02$:	JMS WTAD$	/HALBWORT AUFFUELLEN UND WEGSCHREIBEN
	TAD MASK2$
	JMS WDCA$
	IAC
	JMP FUE06$

FUE01$:	TAD MASK1$	/GANZES WORT AUFFUELLEN UND WEGSCHREIBEN
	JMS WDCA$
	TAD (2)

FUE06$:	DCA TEMP$
FUE04$:	TAD BULNG$	/IST DER TEXT FERTIG ?
	SMA CLA
	JMP FUE05$	/JA
	INC BULNG$
	INC BUADR$,0
	TAD MASK1$
	JMS WDCA$
	INC TEMP$,0
	INC TEMP$,0
	JMP FUE04$

FUE05$:	TAD LNG$
	RAR
	SNL CLA
	JMP FUE07$	/GERADE ANZAHL

	TAD MASK2$
	CMA IAC
	JMS WTAD$
	JMS WDCA$
	TAD TEMP$
	TAD (-1)
	JMP UM00$

FUE07$:	JMS WDCA$
	TAD (-2)
	TAD TEMP$

UM00$:	V
	JMP I SFUELL	/RUECKSPRUNG

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

WTAD$:	OPNSUB		/EIN WORT AUS BUFFER HOLEN
UM01$:	V
	TAD I BUADR$
	CDF .FLD
	JMP I WTAD$

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

WDCA$:	V		/EIN WORT WEGSCHREIBEN
UM02$:	V
	DCA I BUADR$
	CDF .FLD
	JMP I WDCA$

CLOSE	"SFUELL"

	ENDPR