// / 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