File ZFILL.SB (8k SABR macro assembler source file)

Directory of image this file is from
This file as a plain text file

//
/	CALL ZFILL(ARRAY,LEN)
/
/	ZFILL STARTS AT THE 'LEN'TH WORD OF THE ARRAY,
/	AND PROGRESSES BACK TOWARD THE FIRST WORD, EX-
/	AMINING EACH 6-BIT CHAR.   IF IT IS NOT A SPACE
/	OR A @  (OCTAL CODES 40 AND 00), THE CONVERSION
/	TERMINATES.  IF IT IS A SPACE, IT IS REPLACED
/	WITH A (00) CODE.
/	THE CONVERSION ALSO STOPS IF IT SHOULD HAPPEN
/	TO ZERO FILL THE ENTIRE ARRAY.
/
/	ARRAY -	FIRST WORD OF STRING TO BE ZERO FILLED.
/	LEN -	LENGTH OF STRING IN WORDS.
/
/	IF LEN < 0, THEN THE ARRAY IS SPACE FILLED, INSTEAD
/	OF ZERO FILLED.    (ABS(LEN) IS THEN USED...)
/
//

ENTRY ZFILL

OPDEF	TADI	1400
OPDEF	DCAI	3400

ZFILL,	BLOCK 2
	JMS ZPARA
	DCA ZFSET
	JMS ZPARA
	DCA ZPTR
	JMS ZPARA
	DCA Z1
	JMS ZPARA
	DCA 7
Z1,	HLT		/CDF TO PARA FIELD.
	TADI 7
	DCA 7		/LENGTH
	TAD 7
	SNA
	JMP ZXIT
	SMA
	CIA
	DCA ZCTR	/STORE -LEN.
	TAD ZCTR
	CIA
	TAD ZPTR
	DCA ZPTR	/STORE ADDR OF LAST WORD+1.
	TAD 7
	RAL		/LINK=1 FOR SPACE FILL!
			/LINK MUST NOT CHANGE!!!!!!

ZLOOP,	CLA CMA CML
	TAD ZPTR	/BACK UP POINTER.
	DCA ZPTR
ZFSET,	HLT		/CDF TO ARRAY FIELD.
	TADI ZPTR
	AND (3737
	SNA		/BOTH SPACES OR @'S?
	JMP ZNEXT	/YES.
	AND (77
	SZA CLA		/RIGHT HALF SPACE OR @?
	JMP ZXIT	/NO.
	TADI ZPTR
	AND (7700
	SZL
	TAD (0040
	DCAI ZPTR
ZXIT,	RETRN ZFILL

ZNEXT,	SZL
	TAD (4040
	DCAI ZPTR	/REPLACE WORD.
	ISZ ZCTR	/MORE WORDS?
	JMP ZLOOP	/YES.
	JMP ZXIT	/NO.   WE REPLACED THEM ALL?!?!

ZPARA,	0
	TAD I ZFILL
	INC ZFILL#
	JMP I ZPARA

ZPTR,	0
ZCTR,	0
	END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search