18-FEB-78 KREF .MA 92 25-AUG-78 1 files in 92 blocks - 638 free blocks N ORDER TO GET MORE INPUT, AND WHEN /IT DOES, IT SENDS CONTROL BACK TO 'READOS' WHICH CONTINUES THE /PROCESS. IN THE CASE WHERE 'EOF' FINDS WE ARE REALLY AND TRULY /OUT OF INPUT, IT BRANCHES TO 'FIN' WHICH CAUSES ^Z TO /BE SENT TO COROUTINE FOREVER MORE. / / FORMAT OF OS/8 PACKING: / / CHAR 1 IS IN LOW ORDER 8 BITS OF WORD 1 / CHAR 2 IS IN LOW ORDER 8 BITS OF WORD 2 / CHAR 3 IS OBTAINED AS FOLLOWS: / HIGH ORDER 4 BITS IS IN HIGH ORDER 4 BITS OF WORD 1 / LOW ORDER 4 BITS IS IN HIGH ORDER 4 BITS OF WORD 2 > GETOS, ISZ BUFKNT /ARE WE THROUGH WITH LAST DOUBLE /WORD IN BUFFER? SKP /NO, PROCESS NEXT THREE CHARACTERS OSTRT, JMS READOS /YES, READ A NEW BUFFER'S WORTH OF /CHARACTERS INCR OS8PTR TAD I OS8PTR /GET FIRST WORD OF PAIR DCA OS8WD1 /SAVE IT INCR OS8PTR TAD I OS8PTR /GET 2ND WORD OF PAIR DCA OS8WD2 /SAVE IT TOO TAD OS8WD1 /GET CHAR 1 (IN BITS 4-11) JMS ORET /SEND IT TO CALLING COROUTINE TAD OS8WD2 /GET 2ND CHAR OF TRIPLE (IN BITS /4-11) JMS ORET /SEND IT TOO TO CALLING COROUTINE TAD OS8WD2 /GET BACK WORD 2 AND [7400 /ISOLATE RIGHT HALF OF CHAR 3 CLL RTR /PUT INTO BITS 4-7 RTR DCA OS8WD2 /HOLD TEMPORARILY TAD OS8WD1 /LOOK AGAIN AT WORD 1 OF PAIR AND [7400 /ISOLATE LEFT HALF OF CHARACTER #3 TAD OS8WD2 /COMBINE WITH RIGHT HALF CLL RTR /TO GET CHAR 3 IN BITS 0-7 RTR /NOW ROTATE IT INTO BITS 4-11 JMS ORET /AND SEND IT TO CALLER'S COROUTINE JMP GETOS /NOW REITERATE IFDEF PLM < /READ A NEW BUFFER'S WORTH OF CHARACTERS FROM OS/8 DEVIC