/X LP08/LS8E/LA180/LV8E HANDLER / LAST EDIT: 17-JUL-1981 06:00:00 CJL / / / / / / /NOT COPYRIGHT (C) 1974,1975,1977 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. / / / / / / / / / / LPVERSION="X&77 *0 -1 DEVICE LPSV;DEVICE LPT;1040;LPT&177;ZBLOCK 2 /LPT HANDLER FOR EITHER LP08 OR LS8E LINE PRINTER. /CHANGES FROM THE DEC VERSION: /PASSES AND TO THE HARDWARE /SUPPORTS <^S>/<^Q> PROTOCOL /DELETED LINE OVERFLOW SUPPORT /RUNS ON DEVICE 40 AND 41 INTERFACE (SERIALLY) *200 LPWDTH, -205 /-(WIDTH+1) [USE -121 FOR 80 COLUMNS] LTERMC, 14 /4 FOR LV8 LVCCNV, -40 /0 IF PRINTER PRINTS LC LP7770, 7770 LP0007, 0007 LPT, LPVERSION /NORMAL ENTRY POINT CLA STL RAR TAD I LPT / R/W BIT TO LINK L AND LP7700 / I CMA /TREAT 0 PG CNT AS 0 WD CNT N DCA LPTWC /SAVE -(DBLWD COUNT+1) K LPT214, RDF / TAD LPTCIF / M DCA LPTXIT /SAVE CIF CDF RETRN FIELD U TAD I LPT / S AND (70 / T TAD (CDF 0 / DCA LPTCDF / N ISZ LPT /PT TO BUFFER O TAD I LPT /GET BUFFER ADDRESS T DCA LPTCA /SAVE BUFFER PTR ISZ LPT /PT TO BLOCK # C TAD I LPT /GET IT H ISZ LPT /POINT TO ERROR RETURN G LPTCDF, HLT / ! SNL JMP LPTERR /CAN'T READ FROM LPT SNA CLA TAD LPT214 /OUTPUT FORM FEED IF BLOCK 0 LPTELP, JMS LPTPCH /PRINT 3RD CHAR OF DOUBLEWORD ISZ LPTWC JMP LPTLP /GET 3 MORE CHARS SKP LPTCTZ, TAD LTERMC JMS LPTPCH /OUTPUT FORM FEED IF ^Z SEEN (EOT OF LV8) ISZ LPT /BUMP TO NORMAL RETURN LPTXIT, HLT /RESTORE FIELDS JMP I LPT /EXIT /UNPACKING LOOP - USES A SHIFT REGISTER METHOD TO GET THE /THIRD CHARACTER IN EACH DOUBLEWORD. LPTLP, STL /GUARD BIT OF SHIFT REGISTER LPROTL, RTL RTL SPA /DO WE HAVE 8 BITS SHIFTED IN? JMP LPTELP DCA LPTCDF /SAVE SHIFT REGISTER TAD I LPTCA JMS LPTPCH /PRINT A CHAR TAD I LPTCA ISZ LPTCA /BUMP INPUT POINTER LP7400, 7400 /PROTECT ISZ AND LP7400 CLL RAL TAD LPTCDF /SHIFT HIGH 4 BITS INTO JMP LPROTL /SHIFT REGISTER LPTERR, STL CLA RAR /PUT 4000 IN AC JMP LPTXIT /AND TAKE ERROR RETURN LPTWC, 0 LPTCA, 0 /CHAR PRINT ROUTINE LPTPCH, 0 AND (177 TAD (-175 SMA JMP LPFLSH /FLUSH CODES 175-177 TAD (175-140 SMA TAD LVCCNV /CONVERT LC TO UC IF DESIRED TAD (140-32 SNA JMP LPTCTZ /^Z - END OF FILE TAD (32 /RESTORE CHAR SZA /FLUSH NULLS JMS LPCHAR / LP7700, LPFLSH, SMA CLA /NEVER SKIPS JMP I LPTPCH /RETURN LPCHAR, 0 /LOW LEVEL PRINT ROUTINE 6416 /OUTPUT THE CHARACTER LPWAIT, 6401 /REVERSE INPUT? JMP LPOK /NO, FORGET IT 6406 /YES, READ IT IN AND (177) /REMOVE PARITY BIT TAD (-"S!300) /COMPARE TO <^S> SZA CLA /SKIP IF IT MATCHES JMP LPOK /IGNORE IF OTHER JMS LPCCHK /CHECK FOR <^C> 6401 /ANY MORE? JMP .-2 /NO, WAIT FOR IT 6406 /YES, READ IT IN AND (177) /REMOVE PARITY BIT TAD (-"Q!300) /COMPARE TO <^Q> SZA CLA /SKIP IF IT MATCHES JMP .-7 /JUMP IF NOT LPOK, JMS LPCCHK /CHECK FOR <^C> 6411 /FLAG UP? JMP LPWAIT /NO, GO BACK JMP I LPCHAR /YES, RETURN LPCCHK, .-. /CHECK FOR <^C> LP7600, 7600 /CLEAR AC LPCTCL, TAD LP7600 KRS TAD (-7603 /CHECK FOR ^C FROM CONSOLE SNA CLA KSF /WITH FLAG UP JMP I LPCCHK /RETURN LPTCIF, CDF CIF 0 /YES, RETURN TO OS/8 JMP I LP7600 $