/034 SUBROUTINE UNPACKS CHARACTERS ONE BY ONE (TSS8) /PACKED THREE CHARACTERS IN TWO WORDSSSDS (TSS8 FORMAT) /PACKED:111111112222 / 222233333333 / /CALL :JMS UNPSGL / ADDRESS INPUTBUFFER / RETURN BUFFER EMPTY AC=0 / NORMAL RETURN AC=CHAR. / /INITIALIZE ONCE UNPRBF:=UNPBEF:=UNPCNT:=0 / / UNPSGL, 0 CLA CLL TAD UNPRBF /ARE THERE CHAR' IN SZA CLA /TEMP. BUFFER ? JMP UNPGET /YES, GET ONE TAD UNPBEF /NO, INPUTBUFER EMPTY ? SZA CLA JMP UNPEMP /YES,RETURN END OF BUFFER TAD UNPCNT /NO OR YES,UST I SNA CLA /START UP POINTERS ? JMS UNPINI /YES, PLEASE DO TAD UNPRBA /NO,UST UNPACK NEXT WORDS DCA UNPRP TAD I UNPPTR /NEXT WORD FROM INPUTBUF RTR RTR AND C377 DCA I UNPRP /FIRST CHAR IN TEMP. BUF ISZ UNPRP TAD I UNPPTR /GET WOOOWORD AGAIN CLL RTL RTL AND C360 DCA I UNPRP /TEMP. STORAGE ISZ UNPPTR TAD I NPPTR /NEXT WORD CLL RAL RTL RTL AND C17 TAD I UNPRP DCA I UNPRP /SECONNDDN CHAR ISZ UNPRP TAD I UNPPTR /THAT WORD AGAIN ISZ UNPPTR AND C377 DCA I UNRP /THIRD CHAR TAD UNPRBA /RESET POINTER TEMP. BUF DCA UNPRP CLA CLL CMA RTL /3 DCA UNPRCT /3 CHAR'S IN TEMP. BUF ISZ UNPCNT /INPUTBUFFER EMPTY ? JMP UNPGET /NO,GET CHAR NOW IAC /YES,SET FLAG BUFFER EMPTY DCA UNPBEF /AND THAN GET CHAR UNPGET, ISZ UNPRCT /LAST FROM TEMP. BUF ? IAC /NO,SET FLAG DCA UNPRBF /YES RESET FFAG TAD I UNPRP /GET CHAR ISZ UNPRP ISZ UNPSGL /NORMAL EXIT UNPEMT, ISZ UNPSGLL JMP I UNPSGL / UNPEMP, DCA UNPBEF /RESET FLAG JMP UNPEMT /AND EMPTY BUFFER RETURN / UNPINI, 0 DCA UNPRBF /RESET FLAG TAD I UNPSGL /ADDRESS INPUTBUFFER DCA UNPPTR TAD UNPBFL /-LENGTH OF BUFFER STL RAR /DIVIDE BY 2 DCA UNPCNT JMP I UNPINI / /VARIABLES UNPBFL, -400 UNPCNT, 0 UNPRCT, 0 UNPRP, 0 UNPPTR, 0 UNPRBF, 0 UNPBEF, 0 UNPRBA, UNPRB UNPRB, 0 0 0 / /GENERAL CONSTANTS C17, 17 C360, 360 C377, 377