File: SILPV3.PA of Tape: Various/System-Tapes/s5
(Source file text)
/SIMULATED LPT HANDLER V3 (2-PAGE) /W.V.D.M. PSE=6027 /SKIP ON PUNCH ERROR RCR=6015 /CLEAR ERROR MQL=7421 MQA=7501 BSW=7002 FIXTAB *0 /HEADER BLOCK -1 /ONE HANDLER IN THIS FILE /DESCRIPTOR BLOCK DEVICE SILP DEVICE LPT 1040 4000 ZBLOCK 2 *200 LPT, 02 CLA LPT214, JMP LPTSET /BECOMES RDF TAD LPTCIF DCA LPTXIT CLL CML RAR TAD I LPT /FOR WRITE STL AND LP7700 /GET # OF PAGES CMA DCA LPTWC /LPTWC=WC/2-1 TAD I LPT AND LPT70 TAD LP6201 DCA LPTCDF /FIX DATAFLD ISZ LPT TAD I LPT DCA LPTCA /FIX START ISZ LPT TAD I LPT /GET BLOCK # ISZ LPT /AT ERROR RETURN LP6201, CDF 0 MQL TAD LPTCDF DCA I LPXXIT /DF TO SCND PAGE MQA SNL /IF LNK NOT SET:ERROR JMP LPTERR SZA CLA JMP LPT70 RCR /CLEAR ERROR ON FIRST BLOCK LP7700, 7700 /INTERFACE SKIPS (WILL GET CHANGED EVENTUALLY) TAD LPT214 JMS I LPXCH /FF IF RECORD 0 JMP LPT70 LPTCDF, HLT LPTLP, TAD I LPTCA JMS I LPXCH /FIRST CHAR TAD I LPTCA /LPXCH RETURNS DF AND LP7400 DCA LPTCDF /STORE CHAR 2A TEMPORARY ISZ LPTCA LP7400, 7400 TAD I LPTCA /SECOND CHAR JMS I LPXCH TAD I LPTCA AND LP7400 CLL RTR RTR TAD LPTCDF RTR RTR JMS I LPXCH /THIRD CHAR ISZ LPTCA LPT70, 70 ISZ LPTWC JMP LPTLP LPRTRN, ISZ LPT LPTXIT, HLT /THIS GETS CDI N JMP I LPT LPTCA, 0 LPTWC, 0 LPWAIT, 0 PLS LP7600, 7600 /CLA! KRS TAD LPM203 /CHECK FOR ^C SNA CLA KSF JMP .+3 LPTCIF, CDF CIF 0 JMP I LP7600 PSF JMP LP7600 PSE /ERROR CHECK JMP I LPWAIT LPTERR, CLA CLL CML RAR /FATAL ERROR JMP LPTXIT LPTSET, RDF /INIT CODE TAD LP6201 DCA LPTSE1 CDF 0 JMS . /FIND OUT LOC LPTBS1, TAD LPXXIT SPA /NEGATIVE ENDS LIST JMP LPNXIN TAD LPTBS1-1 DCA LPXXIT ISZ .-1 ISZ LPTBS1 JMP LPTBS1 LPNXIN, JMS I LPXIN2 /TO NEXT PAGE INIT LPBS2, TAD LPTSET DCA LPT214 /SET THE RDF LPTSE1, HLT /RESTORE CALLING FIELD JMP LPT214 LPXXIT, LPEXIT-LPTBS1 LPXIN2, LPTIN2-LPTBS1 LPXCH, LPTCH-LPTBS1 LPM203, -203 /END OF LIST! LPTTBL, 0001;7707;0406;3702;1011;1213;1415;1617 2021;2223;2425;2627;3031;3233;3435;3676 0541;4243;4445;4647;5051;5253;5455;5657 6061;6263;6465;6667;7071;7273;7475;0340 LPLINE, 0 /ALL THIS OUTPUTS DCA LPEXTR TAD LPT215 /CR JMS I LPXWT TAD LPT212 /LF JMS I LPXWT TAD LPEXTR /CONTROL CHAR JMS I LPXWT TAD LPM200 DCA LPLPTR DCA LPSWIT /ZERO SWITCH FOR CR JMP I LPLINE LPEXIT, HLT /RESTORE DF LPM200, 7600 /CLA!! JMP I .+1 LPTCH, 0 CDF 0 AND LPT177 MQL MQA AND LPT140 SNA CLA JMP LPTCTL ISZ LPSWIT JMP LPCHAR /NO CR OUT BEFORE TAD LPT253 /CR ONLY;C.C.:+ JMS LPLINE LPCHAR, MQA CLA TAD LPM140 LPT770, SMA CLA JMP LPEXIT /IGNORE LOWER CASE MQA CLA /7-BIT ASCII CLL RAR /X/2;REST IN LINK TAD LPTTAD /ADRESS OF TBL-20 DCA LPEXTR /SET POINTER TAD I LPEXTR /GET WORD SZL /SHIFT? BSW /NO;2 TIMES BSW AND LPT770 BSW TAD LPT240 /MAKE IT ASCII JMS I LPXWT ISZ LPLPTR /IS LINE FULL? JMP LPEXIT /NO;GET NEXT JMS LPLF JMP LPEXIT LPLF, 0 TAD LPT240 /CONTROL CHAR:SPACE JMS LPLINE ISZ LPLNBR JMP I LPLF LPTFF, TAD LPT261 /FF;CONTROL CHAR:1 JMS LPLINE TAD LPT770 /RESET LINENUMBER DCA LPLNBR JMP LPEXIT LPTCTL, ISZ LPSWIT /IGNORE CR LPT14, 14 MQA CLA TAD LPTM32 SNA JMP LPTCTZ /END OF FILE TAD LPT14 CLL CML TAD LPT6 SZL SNA LPTJMP, JMP LPEXI1 TAD LPTJMP DCA .+1 HLT LPTCTZ, TAD LPT261 /FF;C.C.CHAR:1 JMS LPLINE TAD LPT4 /EOT JMS LPLINE JMP I LPXRTR LPTTAB, TAD LPT240 JMS I LPXWT ISZ LPLPTR SKP JMS LPLF TAD LPLPTR AND LPT7 /8-TAB SNA CLA LPEXI1, JMP LPEXIT JMP LPTTAB JMP LPLF-2 JMP LPTVTB JMP LPTFF CMA DCA LPSWIT /SET TO SKIP FOR CR JMP LPEXIT LPTVTB, TAD LPTM11 /9-VTAB DCA LPTCNT JMS LPLF ISZ LPTCNT JMP .-2 JMP LPEXIT LPTIN2, 0 LPTCNT, CLA LPSWIT, TAD LPXWT LPLNBR, SNA JMP I LPTIN2 TAD LPTIN2 DCA LPXWT ISZ .-1 ISZ LPTIN2+2 JMP LPTIN2+1 LPXWT, LPWAIT-LPBS2 LPXRTR, LPRTRN-LPBS2 LPTTAD, LPTTBL-20-LPBS2 /20 BECAUSE OF 7BIT ASCII LPEXTR, 0 LPLPTR, -200 LPT4, 4 LPT6, 6 LPT7, 7 LPTM11, -11 LPTM32, -32 LPM140, -140 LPT140, 140 LPT177, 177 LPT212, 212 LPT215, 215 LPT240, 240 LPT261, 261 LPT253, 253 $$$$$$$$$$