File: L180V3.PA of Tape: Various/System-Tapes/s5
(Source file text)
/LOGABAX HANDLER;@ ACUAG /BY W.V.D.MARK /HEADER BLOCK *0 -1 /ONE DEVICE IN THIS HANDLER DEVICE LGBX DEVICE LPT 1040 4000 /ENTRY POINT ZERO,TWO PAGE ZBLOCK 2 /HANDLER FOR LOGABAX LX180 MATRIX LINE-PRINTER /BECAUSE THE BUFFERING OF CHARACTERS DOES /NOT SEEM TO WORK, I WILL TRY TO CIRCUMVENT /THE FATAL CRASH BY SOME SOFTWARE QUIRK /THE SOFTWARE ALSO HANDLES HOR. AND VER. TABS /THE LOGIC BOX SHOULD HANDLE FORM FEEDS, /CARRIAGE RETURNS AND LINE FEEDS IN AN /INTELLIGENT WAY. DBCO=6575 DBSO=6576 DBSK=6572 BSW=7002 MQL=7421 MQA=7501 SWP=7521 *200 LPT, 03 /ENTRY POINT ZERO LPT770, 7700 /"SMA" CLEARS AC LPTTMP, 0 /MUST BE LESS THAN 777 JMP LPTSET /INIT. BECOMES "RDF" TAD LPTCDI /FORM CIF CDF CALLING DCA LPTXIT /SAVE CALLING FIELD TAD I LPT /GET FUNCTION WORD AND LPT070 /MASK FIELD BITS TAD LPTCDF /MAKE "CDF BUFFER" DCA LPTBUF CLA CLL CML RAR TAD I LPT /LINK GOES ON IF WRITE AND LPT770 /GET COUNT BITS CMA DCA LPTWC /SAVE WC (DIVIDED BY 2 -1) ISZ LPT TAD I LPT /GET BUFFER ADRESS DCA LPTCA /AND SAVE IT ISZ LPT TAD I LPT /GET BLOCK #, CHECK 0 LPTCDF, CDF 0 /WE ARE IN FLD 0 ISZ LPT /AT ERROR RETURN SNL /READ REQUESTED JMP LPTERR /IF ZERO LINK LP7640, SZA CLA /TEST IF BLOCK 0 JMP NOINIT JMP NOINIT /NO FORM FEEDS RECOGNIZED NOW;ELSE "TAD CARRET" JMS I LPTIN1 TAD LPTSET /ISSUE F.F. JMS I LPTIN1 DCA LPTTMP /CLEAR ANY RESIDUAL LINEHOLD NOINIT, TAD LPM200 DCA I LPTIN2 /RESET LPLPTR LPTFIL, TAD LPTTMP /NUMBER OF SPACES TO FILL UP SNA CLA JMP LPT070 /NO MORE TAD LP7640 /SPACE JMS I LPTIN1 CLA CLL CMA /-1 TAD LPTTMP DCA LPTTMP JMP LPTFIL /MORE? LPTBUF, HLT /BECOMES CDF BUFF TAD I LPTCA /GET WORD #1 MQL /1 IN MQ MQA AND LP7400 /HIGH ORDER WORD #3 CLL RTR DCA LPTMP2 /SAVE IT ISZ LPTCA LP7400, 7400 TAD I LPTCA /GET WORD #2 AND LP7400 /LOW ORDER #3 BSW TAD LPTMP2 /ADD HIGH ORDER CLL RTR DCA LPTMP2 /RESAVE TAD I LPTCA /WORD #2 SWP JMS I LPTIN1 /RESETS DATA FIELD SWP JMS I LPTIN1 TAD LPTMP2 JMS I LPTIN1 ISZ LPTCA LPT070, 70 ISZ LPTWC /MORE? JMP LPTBUF /YEAH LPRTRN, TAD I LPTIN2 /X-200 TAD LPT200 /X CHARS. PRINTED DCA LPTTMP /SAVE FOR NEXT USE TAD LPTTMP SZA CLA /TEST TAD LPTCTN /GIVE OUT CTRLN FOR CR. ONLY JMS I LPTIN1 ISZ LPT /BUMP PAST ERROR LPTXIT, HLT /HERE COMES CIF CDF RETURN JMP I LPT LPTERR, CLA CLL CML RAR /FATAL ERROR JMP LPTXIT LPTCDI, CIF CDF 0 LPT200, 200 LPTCTN, 16 CARRET, 212 /ITS A LINEFEED LPTSET, RDF /PAGE 1 INIT TAD LPTCDF DCA LPTSE1 /FOR RESETTING D.F. CDF 0 JMS . /FIND OUT WHERE WE GOT LOADED LPBASE, TAD LPTIN1 SPA /NEGATIVE ENDS LIST JMP LPNXIN /GO PREPARE NEXT PAGE LPTWC, TAD LPBASE-1 /REL. + BASE = ABSOLUTE LPTCA, DCA LPTIN1 /USE SOME OF THESE LOCS. LPTMP2, ISZ .-1 ISZ LPBASE JMP LPBASE LPNXIN, JMS I LPTIN3 TAD LPTSET DCA LPT+3 /PUT A RDF LPTSE1, HLT /THIS CHANGES BACK TO CALL. D. F. JMP LPT+3 LPTIN1, LPTPCH-LPBASE LPTIN2, LPLPTR-LPBASE LPTIN3, LPTINI-LPBASE LPM200, -200 /ENDS LIST PAGE /SECOND PAGE OF LX180 HANDLER LPTPCH, 0 /ROUTINE FOR CHECKING CHARS. CDF 0 /BACK TO THIS FIELD AND LPT177 /PARITY OFF SNA /IGNORE NULL JMP LP7600 TAD LPM140 /AND .GE. 140 SMA TAD LPM40 /CHANGE LOWER CASE TO UPPER CASE;ELSE TO IGNORE "JMP LP7600" TAD LPT106 SNA JMP LPTCTZ /CONTROL Z TAD LPT13 /NOW WE HAVE CHAR - 17 CLL TAD LPT6 /CHARS 11-16 SET LINK SZL SNA JMP LPTCTL /OUT COMES 0-5:HOR. TAB - CNTRL N TAD LPT11 /RESTORE JMS LPWAIT LP7600, 7600 /"CLA" JMP I LPTPCH LPWAIT, 0 AND LPT177 TAD LP7600 /GOD KNOWS WHY DBCO DBSO /CRAZY IOT'S LPCLCL, CLA CLL TAD LP7600 KRS /CHECK FOR CTRLC TAD LPT175 SNA CLA KSF /YES, IS THE FLAG UP? JMP .+3 CIF CDF 0 /OK, BACK TO THE JMP I LP7600 /OLD KEYBOARD MONITOR DBSK /DID OUR FLAG COME UP? JMP LPCLCL /NO ISZ LPLPTR /BUMP LINE-POINTER JMP I LPWAIT LPLF, CLA CLL CMA RAL LPTFF, TAD LPT214 LPTCR, DCA LPLPTR /LET'S NOT GIVE IT ANOTHER L.F. TAD LPLPTR JMS LPWAIT TAD LP7600 /RESET TO -200 (128 CHARS.) DCA LPLPTR JMP I LPTPCH LPTTAB, TAD LPM140 /SPACE JMS LPWAIT TAD LPLPTR AND LPT7 /MODULO 8 SNA CLA JMP I LPTPCH LPJTAB, JMP LPTTAB /LIST OF CTL'S JMP LPLF JMP LPTVTB JMP LPTFF JMP LP7600 /IGNORE C.R. TAD LPT215 JMP LPTCR /CNTRL.N IS C.R. WITHOUT L.F. LPTJMP, JMP LPJTAB LPTCTL, TAD LPTJMP DCA .+1 LPTXXX, HLT LPTVTB, TAD LPTM15 /13 L.F'S DCA LPLPTR TAD LPTLF JMS LPWAIT JMP .-2 LPTCTZ, TAD LPT214 CLA /DON'T OUTPUT FF;ELSE "JMS LPTPCH" FOR END OF FILE FF JMP I LPRTRX LPTINI, 0 /PAGE 2 INIT CLA CLL TAD LPTINI TAD LPRTRX LPLPTR, DCA LPRTRX JMP I LPTINI LPRTRX, LPRTRN-LPNXIN-1 LPT177, 177 LPM140, -140 LPT106, 106 LPT13, 13 LPT6, 6 LPT11, 11 LPT175, 175 LPT214, 214 LPT7, 7 LPT215, 215 LPTM15, -15 LPTLF, 212 LPM40, -40 PAGE $$$$$