/ / / / / / / / / / /COPYRIGHT (C) 1978,1979 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / /VERSION=1 / .TITLE SUBROUITNE BUFHAN /THIS ROUTINE HANDLES THE ONE-BLOCK TTY OUTPUT BUFFER DURING PASS THREE /AND CALLS STOREC TO OUTPUT WHEN FULL. /UPON NONZERO AC BUFHAN INSERTS CNTL-Z INTO BUFFER .ENTRY BUF .FSECT BUFHAN .EXTERNAL TABLE1,TTYPTR,OVRPTR,ST,ETTY,TTTY,QUEPTR / /CALLING SEQUENCE: / / AC NONZERO- LAST PASS, INSERT CNTL-Z AND OUTPUT / / CDF .FLD / CIF BUF / JMS I SUB / ARG1 / . / . / / . /SUB,BUF / /WHERE: / / ARG1-LENGTH (OCTAL) OF BUFFER TO BE MOVED. / BUF, 0 SZA CLA ISZ BUF55 /IF GREATER THAN 1, SET LAST PASS FLAG. TAD I BUF CIA DCA BUF30 ISZ BUF /SAVE BUFFER LENGTH AND BYPASS ARG1 TAD F1 RDF DCA BUF100 /SETUP FOR RETURN CDF TABLE1 TAD BUF56 DCA 14 /GET CURRENT TTY BUFFER POINTER TAD I F2 DCA 15 /POINT TO START OF CURRENT RECORD IN TQUES BUF31, TAD BUF32 /CHECK IF ROOM FOR MORE DATA CIA TAD 14 SMA CLA JMP BUF33 /NO. GO SEND BUFFER TAD BUF30 SNA CLA JMP BUF35 /CHECK FOR ZERO LENGTH TAD I 15 DCA I 14 /NOT ZERO, MOVE A WORD ISZ BUF30 JMP BUF31 /INCREMENT LENGTH COUNTER AND CONTINUE BUF35, TAD 14 DCA BUF56 /SAVE CURRENT TTY BUFFER POINTER TAD BUF55 SZA CLA JMP BUF34 /IF LAST PASS, SETUP TO OUTPUT PART BUFFER BUF100, 0 JMP I BUF /RETURN TO CALLER BUF34, CLA TAD BUF32 CIA TAD 14 SMA CLA JMP BUF33 /OUTPUT BUFFER WHEN NO ROOM LEFT TAD BUF55 SZA CLA /DO NOT INSERT CNTL-Z AFTER FIRST TAD F4 /INSERT CNTTL-Z IF LAST PASS DCA I 14 DCA BUF55 /RESET CNTL-Z FLAG AFTER FIRST INSERTION DCA BUF30 /ZERO THE NEGATIVE WORD MOVE COUNTER JMP BUF34 /FILL REMAINDER OF BUFFER WITH ZEROES BUF33, CLA CDF .FLD CIF ST JMS I BUF36 2 /MAKE CALL TOSTOREC, WRITE 1 BLOCK CDF TABLE1 TAD I F3 DCA BUF56 /RESET CURRENT TTY POINTER TAD I F3 DCA 14 /RESET AUTOINDEX TAD BUF55 SNA CLA JMP BUF31 /IF LAST PASS FLAG NOT SET, CONTINUE BUFFER FILL JMP BUF35 /GET OUT IF LAST PASS BUF55, 0 /LAST BUFFER FLAG BUF30, 0 /LENGTH OF MOVE BUFFER BUF56, TTTY-1 /CURRENT TTY BUFFER POINTER BUF32, ETTY /END OF TTY BUFFER POINTER BUF36, ST /LINK TO BUFFER WRITE ROUTINE F1,CDF CIF F2,QUEPTR F3,TTYPTR F4,232 /ASCII CNTL-Z