(George Source)
Macros used: ACROSS, ALTLEND, BXE, COOR1, COOR3, DATECON, DCA, DISENGPER, DOWN, EMPTY, ENGPER, ENRING, FI, FILEMOVE, FLENME, FREECORE, FREELINK, FSHENTRY, GPERI, HUNT, HUNTW, IF, JBC, JBS, JENG, JNRGROP, JWRONG, KEEPREP, LADDP, LFBITCLR, LFBITSET, LFEND, LOCKC, MHUNT, MHUNTW, ON, OUTPERA, POINTACT, RESTART, RIGHT, SEGENTRY, SETENTRY, THEN, TIMECON, TRACEVER, UNLOCK, UP
22FL #OPT K0LISTINIT=0 22^= ...#OPT ATPOLTR=0 23YG #LIS K0LISTINIT>K0LISTFILE>K0ALLGEO>K0GREATGEO>K0COMMAND 24D6 #SEG LISTINIT 24XQ 8HLISTINIT 25CB [ 25X2 [THIS SEGMENT HAS THE FOLLOWING FUNCTIONS(LINE PRINTERS ONLY) 26BL [ 26W= [1.IT OUTPUTS DEBATCHERS AND HEADINGS FOR LISTFILE. 27*W [2.IT OUTPUTS DEBATCHERS AND HEADINGS FOR ONLINE. 27TG [3.IT OUTPUTS TERMINATING DEBATCHERS FOR LISTFILE. 28*6 [4.IT OUTPUTS TERMINATING DEBATCHERS FOR ONLINE. 28SQ [5.IT ACTIVATES A PRINTER AFTER AN ENGAGE BUTTON INTERRUPT. 29#B [6.IT OUTPUTS LINE NUMBER OR FILE EMPTY ERROR MESSAGES 29S2 [HERE IS A LIST OF ENTRY POINTS AND BRANCHES 2=?L [ 2=R= SETENTRY LISTINIT,POINT,6 2?5M ... FSHENTRY K20LISTINIT,POINT20,,POINT20 2?D4 ... FSHENTRY K21LISTINIT,POINT21,POINT21,POINT21 2?K? ... FSHENTRY K22LISTINIT,XBFAILED,,XBFAILED 2?MW ... SEGENTRY K8LISTINIT,POINT8 2?QG [*********************************************************************** 2#=6 [DATA AREA 2#PQ [HEADINGS USED BY LISTFILE 2*9B [ 2*F8 ...SHASH 4H### 2*P2 PRINT +1 2B8L THEAD 2BN= 12HPRODUCED ON 2C7W 12H AT 2CMG SHEAD 2D76 4H#OUT 2DLQ SEGENTRY K40LISTINIT 2F6B 24HPUT BY LISTFILE IN ': 2FL2 ONAT 16H' ON AT 2G5L SDOC 12HDOCUMENT 2GQC RCON 16H#CONTINUATION OF 2GS6 RFOL 28H FOLLOWING RESTART ACTION OF 2GTT RPAGE 8H 'ALL' 2GXJ 8H 'PAGE' 2H32 UNLFON 8H USING 2HB* ...SEMPT 16HSETUP FILE EMPTY 2HPN REVF 24H A COPY OF THIS FILE HA 2HWW 24HS BEEN LOST BY REVERSION 2J46 [ 2JHQ [HEADINGS FOR ONLINE OBJECT PROGRAM PERIPHERAL 2K3B [ 2KH2 OHEAD 2L2L 28H#OUTPUT ON-LINE BY JOB ': 2LG= [ 2L^W XAST 4H**** 2MFG PASTZ #72 [TEST WHETHER DEBATCHING 2M^6 [CHARACTER OVERRUN ALPHABET 2NDQ N31 #60000001 [CHAR POS3 +1 FOR TIME IN #LIST 2NYB SETUPBIT #10000000 2PD2 [ 2PXL SCOLON #12 [: 2QC= SHRIEK #21 [! 2QF8 [ 2QM2 RESTARTBIT #4000 [RESTART TAKING PLACE 2QNY RESTACTN #300000 [RESTART ACTION SPECIFIED 2QQW #200000 2QWW [ 2RBG [TABLE OF JUMPS FOR PERI SUBROUTINE 2RW6 [ 2S*Q STABLE 2STB ... BRN YAB [INTERRUPT DURING HEADINGS 2T*2 BRN SBRK2 [INTERRUPT DURING TERMINATORS 2TSL BRN YABANL [ 2W#= [*********************************************************************** 2WRW [SUBROUTINE AREA 2X?G [ 2XR6 [THIS SUBROUTINE INITIALISES THE COUNT IN THE DEVICE LIST CONTROL AREA 2Y=Q [ACCORDING TO THE WIDTH OF THE PRINTER. 2YQB SETUPCA 2YR9 ...#SKI ANIP 2YS4 ...( 2YSX ... LDX 0 CPPTR(2) 2YTQ ... BZE 0 (7) [EXIT AT ONCE IF NIP 2YWK ...) 2YXJ LDN 4 0 [SET MODE 2^4Q DCA ,DSA,4,MODE 2^=2 LDCT 0 #600 [B0 AND B1 SET 2^PL DCA ,STO,0,CTSA [IN ADDRESS FOR LP 329= LADDP ,4 [GET POINTER TO APIA 32NW SMO 4 338G LDEX 5 AREPERT 38JB ADN 5 1 [ADD ONE FOR PFCC 3942 #SKI ATPOLTR 39HL TRACEVER 5,INITPWID 3=3= DCA ,STO,5,COUNT [SET UP COUNT 3=GW EXIT 7 0 3?2G [ 3?G6 [THIS ROUTINE PERFORMS THE PERI ON THE DEVICE AND CHECKS THE REPLY FOR 3?^Q [DISENGAGED OR INOPERABLE STATES,TAKING APPROPRIATE ACTION IF NECESSARY 3#FB [ 3#GY ...#SKI ANIP 3#JG ...( 3#L4 ...[ NEW ENTRY POINT FOR NIP TO OUTUT END OF LISTING 3#ML ...PERI4 STOZ GZDUMP(2) [MARK END OF LISTING 3#P8 ...PERI6 SBX 7 FX1 3#QQ ...PERI5 DOWN LISTPREP,4 [DO PERI 3#S# ... ADX 7 FX1 3#TW ... EXIT 7 0 3#XD ...) 3#^2 PERI 3*DL LDN 0 #41 3*Y= PERI2 3BCW STO 0 GZDATA(2) 3BXG PERI3 3CC6 SBX 7 FX1 3CDH ...#SKI ANIP 3CFY ...( 3CH* ...[ IF NIP GO DOWN TO LISTPREP TO DO PERI 3CJQ ... LDX 0 CPPTR(2) 3CL7 ... BNZ 0 RPTPERI [NOT NIP 3CMJ ... LDEX 0 JSOURCE3(2) [NO OF PRINT POSITIONS 3CN^ ... ADN 0 1 [FOR PFCC 3CQB ... STO 0 GZDUMP(2) [CHAR COUNT OF TRANSFER 3CRR ... BRN PERI5 [GO TO LISTPREP 3CT8 ...) 3CWQ RPTPERI 3DBB LDX 0 FINISH 3DW2 SLL 0 2 3F*L BNG 0 SFINI [J IF FINISH NOW 3FT= ERX 0 FINISH 3G#W SLL 0 1 3GSG BPZ 0 NFIN [J IF NOT FINISH 3H#6 SFINI 3HRQ TXU 5 PRINT(1) 3J?B BCS SBRKIN [J IF NOT TERMINATORS 3JR2 NFIN 3K=L LOCKC FX2,SLOCKC [LOCK FOR EXEC 3KQ= LDN 4 GZDATA(2) 3L9W DCA ,ADS,4,CTSA [BUFFER ADDRESS INTO CONTROL AREA 3LPG GPERI ,2 3M96 COOR1 3MNQ DCA ,SBS,4,CTSA 3N8B UNLOCK 2 3NN2 LDCT 4 #50 3P7L ANDX 4 CPRW1(2) 3PM= BNZ 4 NOTENG [J IF ERROR/EXCEPTION CONDITION 3Q6W LDCT 4 #100 3QLG ANDX 4 CPRW1(2) 3R66 BNZ 4 PLOW [J IF PAPER LOW 3RKQ ADX 7 FX1 3S5B EXIT 7 0 3S5Q ...#UNS FLLP4B 3S66 ...( 3S6G ...[ 3S6W ...[ THIS SUBROUTINE SENDS SOFT FORMAT LOOP TO LP IF NECESSARY 3S7= ...[ 3S7L ...SFLOOP 3S82 ... SBX 6 FX1 3S8B ... MHUNTW 3,ADATA,FORMLOOP 3S8Q ...#UNS FLLP4BC 3S96 ... TRACEVER 3,LI1 3S9G ... IF 3,PZ [ IF THERE IS A FORMLOOP BLOCK 3S9W ... THEN [ THEN ITS AN LP4B PRINTER! 3S== ... LDN 4 #30 [ SO SEND A FORMLOOP WITH MODE #30 3S=L ...#UNS FLLP4BC 3S?2 ... LDN 4 0 3S?B ... DCA ,DSA,4,MODE 3S?Q ... LDX 4 FORMCHAR(3) 3S#6 ...#UNS FLLP4BC 3S#G ... TRACEVER 4,LICOUNT 3S#W ... DCA ,STO,4,COUNT 3SC6 ...#UNS FLLP4BC 3SCG ... TRACEVER 2,LI2PERI? 3SCW ... LDX 2 FX2 3SD6 ... LDN 4 FORMDATA(3) 3SDB ...[ PERI FROM ADATA/FORMLOOP SINCE LENGTH CAN BE GREATER THAN ACTLF BUFFER 3SDL ... DCA ,STO,4,CTSA [ BUFFER IS ON WORD BOUNDARY 3SF2 ... GPERI ,2,NC 3SFB ... CALL 7 SETUPCA [ NO NEED TO COORDINATE HERE 3SFQ ... FI 3SG6 ... LDX 1 FX1 3SGG ... ADX 6 FX1 3SGW ... EXIT 6 0 3SH= ... 3SHL ...) 3SK2 [ 3T4L [THIS SUBROUTINE PRINTS A LINE OF ASTERISKS WITH UPWARD ARROWS AT ENDS 3TJ= [ 3W3W SHAM 3WHG SBX 6 FX1 3X36 STO 5 ACOMMUNE7(2) [PRESERVE EXIT SWITCH 3XGQ LDX 4 XAST(1) 3Y2B CALL 0 SPFL2 [FILL BUFFER WITH ASTERISKS 3YG2 CALL 7 TEST48 [48 CHAR REPERTOIRE? 3Y^L BNG 0 TO48CHARBD [J IF 48 CHAR REPERTOIRE 3^F= LDN 0 #76 3^YW TOSHAM 42DG #SKI ATPOLTR 42Y6 TRACEVER 0,ASTSLASH 43CQ DCH 0 GZDATA+1(2) [UPWARD POINTING ARROW AT START 43FF ...#SKI ANIP 43H8 ...( 43JX ...[ PRINT WIDTH KEPT IN JSOURCE3 43LL ... LDEX 1 JSOURCE3(2) 43N* ... ADN 1 1 43Q4 ...) 43RR ...#UNS ANIP 43TG ...#SKI 43XB DCA ,LDX,1,COUNT [GET PRINT WIDTH 44C2 ADN 1 2 44WL SRC 1 2 45B= SMO FX2 45TW DCH 0 GZDATA(1) [UPWARD POINTING ARROW AT END 46*G LDX 1 FX1 46T6 LDN 0 #40 472# ...#UNS FLLP4BC 477G ... LDN 0 #41 47#Q LDX 5 ACOMMUNE7(2) [RETURN SWITCH 47SB CALL 7 PERI2 [PRINT ON CURRENT LINE 48#2 ADX 6 FX1 48RL EXIT 6 0 49?= TO48CHARBD 49QW LDN 0 #37 [SLASH TO BOUND ASTERISKS FOR 48 CHAR 4==G BRN TOSHAM 4=Q6 [ 4?9Q [THIS SUBROUTINE UPDATES THE DEBATCHING CHARACTER OF THE PRINTER 4?PB [ 4#92 SETUPALPHAS 4#?K ...#UNS ANIP 4#B8 ... LDCH 0 JSOURCE3(2) [DEBATCHING CHAR IF NIP 4#DR ...#UNS ANIP 4#HB ...#SKI 4#K^ ...( 4#NL LDN 3 0 4*8= SMO CPPTR(2) 4*MW LDCH 0 K52+4(3) 4*XN ...) 4B7G TXU 0 PASTZ(1) [WAS LAST CHARACTER Z? 4BM6 BCS NOTZ [J IF NOT 4C6Q LDN 0 #40 [ELSE RESTART ALPHABET 4CLB NOTZ ADN 0 1 [UPDATE CHARACTER 4CMR ...#UNS ANIP 4CP8 ...( 4CQK ... DCH 0 JSOURCE3(2) [DEBATCHING CHAR IF NIP 4CS2 ... LDX 3 CPPTR(2) 4CTC ... BZE 3 (7) [J IF NIP ACTLF 4CWS ... DCH 0 K52+4(3) [STORE IN DEVICE LIST TOO 4CY9 ...) 4C^L ...#UNS ANIP 4D33 ...#SKI 4D4D ...( 4D62 SMO CPPTR(2) [IN 4DKL DCH 0 K52+4(3) [DEVICE LIST 4DTD ...) 4F5= EXIT 7 0 4FJW [ 4G4G [THIS SUBROUTINE FILLS THE ACTLF PRINT BUFFER WITH THE CURRENT 4GJ6 [DEBATCHING CHARACTER. 4H3Q [ 4HHB SETUPBUFFER 4HK^ ...#UNS ANIP 4HNJ ... LDCH 4 JSOURCE3(2) 4HR7 ...#UNS ANIP 4HTQ ...#SKI 4HY* ...( 4J32 LDN 3 0 4JGL SMO CPPTR(2) 4K2= LDCH 4 K52+4(3) [GET CHARACTER 4K=4 ...) 4KFW LDX 5 4 [AND INSERT 4K^G LDN 6 3 [INTO 4LF6 W SLL 4 6 [EACH 4LYQ ADX 4 5 [CHARACTER POSITION 4MDB BCT 6 W [OF X4 4MY2 CALL 0 SPFL2 [FILL BUFFER WITH CHARACTER 4NCL EXIT 7 0 4NX= [ 4PBW [THIS SUBROUTINE SPACEFILLS THE FIRST 15 WORDS OF THE ACTLF PRINT BUFFER 4PWG [ 4QB6 SPACEBUFFER 4QTQ LDX 4 ACES [ACES HOLDS SPACES 4R*B STO 4 GZDATA+1(2) 4RT2 LDN 3 GZDATA+1(2) 4S#L LDN 4 GZDATA+2(2) 4SS= MOVE 3 14 [SPACEFILL 4T?W EXIT 7 0 4TRG [ 4W?6 [ THIS SUBROUTINE ACCOMODATES THE FILENME MACRO 4WQQ [ NOTE THAT X3 IS THE LINK ACCUMULATOR 4X=B [ 4XQ2 SFLENME 4Y9L FLENME GUSER,GJOBN,2 4YP= EXIT 3 0 4^8W [ 4^NG [ THIS SUBROUTINE SPACEFILLS THE ACTLF PRINT BUFFER 5286 [ 52MQ SPFL 537B LDX 4 ACES 53M2 SPFL2 [ENTER HERE IF OTHER CHARACTER WANTED 546L LDX 1 ALOGLEN(2) 54L= SBN 1 GZDATA-A1+1 [GET BUFFER LENGTH 555W STO 4 GZDATA+1(2) 55KG LDN 3 GZDATA+1(2) 5656 LDN 4 GZDATA+2(2) 56JQ MOVE 3 0(1) [FILL BUFFER 574B LDX 1 FX1 57J2 EXIT 0 0 583L [ 58H= [ 592W [THIS ROUTINE ABANDONS AN OPERATOR TERMINATED LISTING,FREEING BLOCKS 59GG TIDY 5=26 HUNTW 1,ADATA,CREADL 5=FQ BNG 1 TIDY1 5=^B FREECORE 1 5?F2 TIDY1 5?YL HUNTW 1,FILE,ENT 5#D= BNG 1 TIDY2 5#XW FREECORE 1 5*CG TIDY2 5*X6 ... HUNT 1,GOUT,INFOLIST 5BBQ BNG 1 TIDY4 5BWB FREECORE 1 5CB2 TIDY4 5CTL ... HUNT 1,GOUT,INFOSET 5D*= BNG 1 TIDY5 5DSW FREECORE 1 5F#G TIDY5 5FS6 EXIT 3 0 5G?Q [ 5GRB [FOR USE BY LOCKC ROUTINE 5H?2 SLOCKC 5HQL LDX 2 FX2 5J== EXIT 1 0 5JPW [ 5MML TEST48 5N7= [THIS ROUTINE SETS X0 NEGATIVE IF 48 CHARACTER REPERTOIRE IS IN USE 5N8M ...#UNS ANIP 5N=4 ...( 5N?F ...[ REPERTOIRE KEPT IN JSOURCE3 ONCE NIP IMPLEMENTED 5N#W ... LDN 0 #7000 5NB? ... ANDX 0 JSOURCE3(2) 5NCN ... SLL 0 12 5NF5 ...) 5NGG ...#UNS ANIP 5NHX ...#SKI 5NK# ...( 5NQ# ... LADDP ,0 5NX# ... SMO 0 5P4# ... LDX 0 AREPERT 5P9# ... SLL 0 13 5PB# ...) 5PL6 EXIT 7 0 5PLG ...# 5Q5M ...#UNS ANIP 5Q68 ...( 5Q6P ...[ 5Q7= ...[*********************************************************************** 5Q7R ...[ 5Q8# ...SETUPNIP 5Q8T ...[ 5Q9B ...[*********************************************************************** 5Q9X ...[ 5Q=D ...[ TO SET UP REPERTOIRE INFO IN JSOURCE3 FOR COMPATIBILITY WITH NIP ACTLF 5Q=^ ...[ CALLED ON X7 5Q?G ...[ 5Q#3 ... LDX 2 FX2 5Q#F ... LADDP ,4 5Q#X ... SMO 4 5Q** ... LDX 0 AREPERT 5Q*R ... SLL 0 1 5QB9 ... ANDN 0 #6000 5QBN ... STO 0 JSOURCE3(2) [STORE 48,64 OR 96 CHAR REPERT 5QCQ ... SMO 4 5QD? ... LDEX 0 AREPERT 5QDS ... DEX 0 JSOURCE3(2) [STORE PRINT WIDTH 5QF* ... LDX 3 CPPTR(2) 5QFW ... LDCH 0 K52+4(3) 5QGC ... DCH 0 JSOURCE3(2) [STORE DEBATCHING CHAR 5QGY ... EXIT 7 0 5QHF ...[ 5QJ2 ...) 5QJH ...[*********************************************************************** 5QKB [MAIN BODY OF SEGMENT 5R52 [*********************************************************************** 5RJL POINT1 5S4= [THIS ENTRY POINT OUTPUTS DEBATCHERS AND HEADINGS FOR LISTFILE 5SHW [*********************************************************************** 5T3G POINT2 5TH6 [THIS ENTRY POINT OUTPUTS DEBATCHERS AND HEADINGS FOR ONLINE 5W2Q [ 5WGB [ 5WQ8 STO 2 AWORK1(2) [ NOT EB ENTRY 5WR# ...REG1 JNRGROP ,REG3 [JUMP IF REGROPE BIT NOT SET 5WSD ... JENG ,REG2 [JUMP IF ENGAGED 5WTJ ... ENGPER YAB,,YAB [CD &BRKIN EXIT TO YAB 5WWN ...REG2 COOR3 #62 5WXS ... BRN REG1 5WYY ...REG3 CALL 7 SETUPCA [SET UP CONTROL AREA 5X29 ...#UNS ANIP 5X2D ... CALL 7 SETUPNIP [INITIALISE JSOURCE3 5X2P ...#UNS G3SIGNET 5X3D ...( 5X47 ... LDX 0 CPPTR(2) 5X4W ... IF 0,E,ASIGNETPTR [ IF THIS IS A SIGNET LISTING 5X5K ... THEN [ THEN FIND ITS DESTINATION 5X6# ... MHUNTW 3,APERI,APROPNOS [ FROM THE APROPNOS BLOCK 5X73 ... LDX 5 ADTEMP(3) 5X7Q ... SMO 5 5X8F ... LDX 0 FPTR(3) 5X98 ... STO 0 GZDATA+2(2) 5X9X ... LDX 0 SHASH(1) 5X=L ... STO 0 GZDATA+1(2) 5X?* ... LDN 5 9 5X#4 ... DCA ,STO,5,COUNT 5X#R ... DISENGPER [ WE MUST DISENGAGE BEFORE 5X*G ... LDN 5 0 [ ISSUING THE PERI 5XB9 ... CALL 7 PERI 5XBY ... CALL 7 SETUPCA [ AND RESET THE CONTROL AREA 5XCM ... FI 5XDB ...) 5XDR ...#UNS FLLP4B 5XF8 ... CALL 6 SFLOOP 5XF# ...#UNS ANIP 5XFD ...XNLP [NIP ACTLF JOINS HERE 5XFL LDN 5 0 [START OF HEADINGS 5X^= STOZ GZDATA(2) 5YDW LDN 6 3 5YYG NULLS CALL 7 PERI3 5^D6 BCT 6 NULLS 5^MY SEGENTRY K80LISTINIT 5^XQ LDN 0 #11 62CB CALL 7 PERI2 [THROW TO HEAD OF FORM 62X2 CALL 6 SHAM [PRINT LINE OF ASTERISKS 63BL [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 63W= [PART OF SPECIAL DEBATCHING AID 64*W [S71831A 64N? ... SEGENTRY K50LISTINIT 652N ... BRN NODEBS 65*6 [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 65SQ LDN 0 #01 66#B CALL 7 PERI2 [THROW ONE LINE 66S2 CALL 7 SETUPALPHAS [UPDATE DEBATCHING CHARACTER 67?L CALL 7 SETUPBUFFER [AND FILL BUFFER 67HD LDN 5 0 67R= CALL 7 PERI [PRINT FIRST LINE 68=W CALL 7 SPACEBUFFER [SPACEFILL FIRST 15 BUFFER WORDS 68QG CALL 7 PERI [ 69=6 CALL 7 PERI [ 69PQ LDN 7 GZDATA+4(2) 6=9B ... MHUNTW 2,GOUT,INFO 6=P2 CALL 3 SFLENME [:USERNAME.JOBNAME INTO BUFFER 6?8L LDX 1 FX1 [RESET 6?N= LDN 5 0 [OVERWRITTEN 6#7W LDX 2 FX2 [ACCUMULATORS 6#MG LDX 0 ACES [WIPE OUT 6*76 STO 0 GZDATA+4(2) [CHARACTER COUNT 6*FH ... SEGENTRY K57LISTINIT 6*RY ... BRN NOLFPRINT 6B6B DOWN LISTEXCP,1 [SPACEFILL REQUIRED CHARACTRS 6BL2 SEGENTRY K67LISTINIT 6C5L NOLFPRINT 6CK= [ 6D4W CALL 7 TEST48 6DJG #SKI ATPOLTR 6F46 TRACEVER 0,48ORNOT 6FHQ BPZ 0 NOT48A [J IF NOT 48 CHAR REPERTOIRE 6G3B LDN 0 #20 [ELSE SPACEFILL 6GH2 DCH 0 GZDATA+5(2) [COLON 6H2L NOT48A 6HG= CALL 7 PERI [PRINT HIGHLIGHTING LINE 6H^W CALL 7 SPACEBUFFER [SPACEFILL FIRST 15 WORDS AGAIN 6JFG CALL 7 PERI 6J^6 CALL 7 PERI 6KDQ CALL 7 SETUPBUFFER 6KNJ LDN 5 0 6KYB CALL 7 PERI 6LD2 [ 6LXL [DEBATCHERS HAVE BEEN OUTPUT-NOW FOR HEADINGS 6MC= [FIRST HEADING-'PRODUCED ON ETC' 6MWW NODEBS 6NBG SEGENTRY K60LISTINIT 6NW6 CALL 0 SPFL [SPACEFILL BUFFER 6P*Q ... MHUNTW 3,GOUT,INFO 6PTB LDX 4 GMODE(3) 6Q*2 BNG 4 TONLINE [J IF ONLINE 6QSL MHUNTW 3,ADATA,CREADL [FIND BLOCK WITH'#LISTING ETC' 6R#= LDX 1 A1+FRH(3) 6RRW LDX 5 1 [LOAD NO OF CHARS 6S?G ANDN 5 3 6SR6 ERN 5 3 6T=Q ADN 5 1 [X5 IS COMPLEMENT WRT 4 6TQB SRC 1 2 [SPACEFILL 6W=2 LDN 0 #20 [BLOCK 6WPL XSP SMO 3 [BUFFER 6X9= DCH 0 CPDATA(1) [BEYOND 6XNW BCHX 1 £ [ENTRANT 6Y8G BCT 5 XSP [NAME 6YN6 LDN 5 CPDATA(3) 6^7Q LDN 6 GZDATA+1(2) 6^MB MOVE 5 0(1) [MOVE IN #LISTING OF ENTRANT NAME 7272 SMO FX1 72LL LDN 5 THEAD 736= ADX 6 1 73KW MOVE 5 6 [MOVE'PRODUCED ETC'TO BUFFER 745G ADN 6 3 [POSITION AFTER 'ON' 74K6 SBX 6 FX2 754Q MHUNTW 3,FILE,ENT 75JB LDX 4 EWRITDAY(3) [GET DATA AND TIME FILE LAST WRITTEN 7642 LDX 5 EWRITTIME(3) [FOR HEADING 773= DATECON 4 [CONVERT DATE 77GW LDX 1 ACOMMUNE1(2) [GET PART OF CONVERTED DATE 782G ADX 6 FX2 78G6 SMO 6 78^Q STO 1 0 [STORE BEFORE'AT' 79FB ADN 6 1 79^2 LDX 1 ACOMMUNE2(2) [GET REST OF CONVERTED DATE 7=DL SMO 6 7=Y= STO 1 0 [STORE BEFORE'AT' 7?CW SBX 6 FX2 7?XG TIMECON 5 [CONVERT TIME 7#C6 ADX 6 FX2 7#WQ ADX 6 N31(1) [ADD 1.3 7*BB LDN 5 ACOMMUNE1(2) 7*W2 MVCH 5 8 [STORE AFTER'AT' 7B*L [ 7BT= CALL 7 TEST48 7C#W BPZ 0 NOT48B [J IF NOT 48 CHAR REPERTOIRE 7CSG LDN 0 #32 [ELSE REPLACE HASH WITH 7D#6 DCH 0 GZDATA+1(2) [ASTERISK 7DRQ LDN 0 #20 [AND REPLACE COLON WITH 7F?B DCH 0 GZDATA+4(2) [SPACE 7FR2 NOT48B 7G=L LDN 0 #42 7GQ= LDN 5 0 7H9W CALL 7 PERI2 7HPG [ 7J96 [NOW SET UP AND PRINT SECOND HEADING,IE 'OUTPUT BY' ETC 7JNQ [ 7K8B CALL 0 SPFL [SPACEFILL BUFFER 7KN2 LDX 3 FX2 [PRESERVE POINTER 7L7L ... MHUNTW 2,GOUT,INFO 7LM= LDN 4 SHEAD(1) [NEXT HEADING 7M6W TONLINE2 7MLG LDN 5 GZDATA+1(3) 7N66 MOVE 4 6 7NKQ LDN 7 GZDATA+6(3) 7P5B CALL 3 SFLENME 7PK2 LDX 1 FX1 7Q4L LDX 4 GMODE(2) 7QJ= BNG 4 ZON [J IF ONLINE 7R3W LDX 4 SHEAD+5(1) 7RHG BRN XBAC 7S36 ZON 7SGQ LDX 4 OHEAD+5(1) 7T2B XBAC SMO FX2 7TG2 STO 4 GZDATA+6 7T^L LDN 6 ONAT(1) [STORE REST OF HEADING 7WF= MVCH 6 16 7WYW LDX 4 CLEANCT [GET TIME 7XDG SBX 7 FX2 7XY6 TIMECON 4 [CONVERT TIME 7YCQ ADX 7 FX2 7YXB LDN 6 ACOMMUNE1(2) [PUT TIME IN HEADING 7^C2 MVCH 6 8 7^WL SBX 7 FX2 82B= DATECON EDATE [GET DATE 82TW ADX 7 FX2 838= STO 7 ACOMMUNE4(2) [RETAIN BUFFER POINTER 83*G LDN 6 ACOMMUNE1(2) [PUT DATE IN HEADING 83T6 SLC 7 2 84#Q SBN 7 19 84SB SRC 7 2 85#2 MVCH 6 7 [MOVE TO BUFFER 85BP LDN 6 UNLFON(1) 85CL LDX 7 ACOMMUNE4(2) 85DH MVCH 6 8 [MOVE IN 'USING' 85FD LDN 5 JSOURCE1(2) [MOVE JSOURCE WORDS TO ACOM 1 AND 2 85G* LDN 6 ACOMMUNE1(2) 85H= MOVE 5 2 85J7 SBX 7 FX2 85K4 OUTPERA [GET UNIT NO. IN ACOM2 85K^ ADX 7 FX2 85LW LDN 6 ACOMMUNE2(2) [AND NO. OF CH. IN 'UNIT NO' IN AC1 85MR LDX 5 ACOMMUNE1(2) 85NN SMO 5 85PK MVCH 6 0 [MOVE IN UNIT NO. 85RL LDN 5 0 [DURING HEADINGS 86?= [ 86QW CALL 7 TEST48 87=G BPZ 0 NOT48C [J IF NOT 48 CHAR REPERTOIRE 87Q6 LDN 0 #32 [ELSE REPLACE HASH WITH 889Q DCH 0 GZDATA+1(2) [ASTERISK 88PB LDN 0 #20 [AND REPLACE COLON WITH 8992 DCH 0 GZDATA+7(2) [SPACE 89NL NOT48C 8=8= LDN 0 #42 [NOT SET UP IF ONLINE 8=MW CALL 7 PERI2 [OUTPUT HEADING 8?7G [ 8?M6 [OUTPUT THIRD HEADING,IE'DOCUMENT' OR 'CONTINUATION' ETC 8#6Q [ 8#LB CALL 0 SPFL [SPACEFILL BUFFER 8#LC HUNTW 3,FILE,ENT 8#LD BNG 3 NOREVFIL1 [ J IF ONLINE 8#LF JBC NOREVFIL,3,BELOSE [JUMP IF FILE NOT REVERTED BY CLOSE 8#LG FREECORE 3 8#LH LDN 4 REVF(1) [PICK UP COPY LOST MESSAGE 8#LJ LDN 5 GZDATA+1(2) 8#LK MOVE 4 12 [AND PUT IT IN BUFFER 8#LL LDN 0 #42 8#LM LDN 5 0 8#LN CALL 7 PERI2 8#LP CALL 0 SPFL 8#LQ BRN NOREVFIL1 8#LR NOREVFIL 8#LS FREECORE 3 8#LT NOREVFIL1 8#M? ... MHUNTW 3,GOUT,INFO [CONTINUATION CODE!!!! 8#MQ [START OF CONTINUATION CODE 8#N5 LDX 0 RESTARTBIT(1) 8#ND ANDX 0 GMODE(3) 8#NR BZE 0 NOTRESTA [ J IF NOT RESTART 8#P6 LDN 4 RCON(1) 8#PF LDN 5 GZDATA+1(2) 8#PS MOVE 4 4 [MOVE 'CONTINUATION' INTO BUFFER 8#Q7 MHUNTW 2,ADATA,CREADL 8#QG LDX 4 A1+FRH(2) [NO. OF CH. IN FILENAME+12 8#QT LDCT 5 #600 8#R8 ADN 5 CPDATA+2(2) 8#RH LDX 2 FX2 8#RW LDN 6 GZDATA+5(2) 8#S9 SBN 4 11 [REMOVE #LISTING OF 8#SJ SMO 4 8#SX MVCH 5 0 [MOVE FILENAME IN BUFFER 8#T= LDX 0 GMODE(3) 8#TK ANDX 0 RESTACTN(1) 8#TY BZE 0 NORESACT [ J IF NO RESTART ACTION SPEC. 8#W? LDN 5 RFOL(1) 8#WL ADN 6 1 8#W^ [X6 STILL CONTAINS BUFFER POINTER 8#X# MOVE 5 7 [MOVE 'FOLLOWING' ETC IN BUFFER 8#XM ANDX 0 RESTACTN+1(1) 8#Y2 ADN 6 7 [RESET BUFFER POINTER 8#Y* SRL 0 15 [ J IF ALL SPECIFIED 8#YN SMO 0 8#^3 LDN 5 RPAGE(1) 8#^B MOVE 5 2 [MOVE IN 'PAGE OR 'ALL' 8#^P NORESACT 8#^Q ... CALL 7 TEST48 [J. IF NOT 48 CHAR REP 8#^R ... BPZ 0 NOT48E [ELSE REPLACE HASH WITH 8#^S ... LDN 0 #32 [ASTERISK 8#^T ... DCH 0 GZDATA+1(2) [AND REPLACE COLON WITH 8#^W ... LDN 0 #20 [SPACE 8#^X ... DCH 0 GZDATA+5(2) 8#^Y ...NOT48E 8*24 LDN 0 #42 8*2C LDN 5 0 8*2Q CALL 7 PERI2 8*35 CALL 0 SPFL 8*3D NOTRESTA 8*3R [END OF CONTINUATION CODE!!! 8*46 [OUTPUT 'DOCUMENT ETC. 8*54 ... MHUNTW 3,GOUT,INFO 8*62 LDN 4 SDOC(1) 8*KL LDN 5 GZDATA+1(2) 8B5= MOVE 4 3 [MOVE IN 'DOCUMENT' 8C4G LDEX 4 GSUSE(3) 8CJ6 ADN 4 3 8D3Q SRL 4 2 8DHB ADN 4 GZDATA-A1+4 8F32 TXU 4 ALOGLEN(2) [TEST AND J IF BUFFER LARGE ENOUGH 8FGL BCC RIGHT 8G2= TXL 4 ALOGLEN(2) 8GFW BCS RIGHT 8G^G LDX 6 ALOGLEN(2) [ELSE WE MOVE AS MUCH AS POSSIBLE 8HF6 SBN 6 GZDATA-A1+4 8HYQ SLL 6 2 8JDB BRN RIG 8JY2 RIGHT 8KCL LDEX 6 GSUSE(3) 8KX= RIG 8LBW LDN 4 GHEAD(3) [COPY ACROSS USER'S HEADER 8LWG TAG2 LDN 5 GZDATA+4(2) 8MB6 SMO 6 8MTQ MVCH 4 0 8N*B LDN 5 0 8NT2 [ 8P#L CALL 7 TEST48 [IS IT 48 CHAR REPERTOIRE? 8PS= BPZ 0 NOT48D [J IF NOT 48 CHAR REPERTOIRE 8Q?W LDCH 0 GZDATA+4(2) 8QRG TXU 0 SCOLON(1) [IS IT A COLON? 8R?6 BCS NOTCOLON [IF NOT JUMP 8RQQ LDN 0 #20 [ELSE REPLACE BY 8S=B DCH 0 GZDATA+4(2) [SPACE 8SQ2 BRN NOT48D 8T9L NOTCOLON 8TP= TXU 0 SHRIEK(1) [IS IT A ! 8W8W BCS NOT48D [IF NOT,JUMP 8WNG LDN 0 #27 [ELSE REPLACE WITH 8X86 DCH 0 GZDATA+4(2) [APOSTROPHE 8XMQ CALL 7 PERI3 8Y7B CALL 0 SPFL [SPACEFILL BUFFER 8YM2 LDN 0 #36 [NOW OVERPRINT 8^6L DCH 0 GZDATA+4(2) [WITH POINT 8^L= LDN 0 #40 925W CALL 7 PERI2 92KG BRN NOMORE 9356 NOT48D 93JQ CALL 7 PERI3 [PRINT THIRD HEADING 944B NOMORE 94J2 LDN 0 #02 953L CALL 7 PERI2 [THROW TWO LINES WITHOUT PRINTING 95H= HUNTW 1,ADATA,CREADL 962W BNG 1 NFR [THERE ISN'T ONE IF ONLINE 96GG FREECORE 1 9726 NFR 97#H ... MHUNTW 3,GOUT,INFO 97LY ... JBS XFRTOERR,3,BLFFRTOER [ J IF ERROR FOUND 97^B LDX 4 GMODE(3) 98F2 SMO FX1 98YL LDX 5 SETUPBIT 99D= ANDX 5 4 99XW BNZ 5 XCROSS [J IF THERE IS A SETUP FILE 9=CG BPZ 4 XCROSS [J IF NOT ONLINE 9=X6 ...XFRTOEXIT 9?BQ LFEND 9?WB XCROSS 9#B2 ACROSS LISTPREP,1 9#TL [ 9**= [ 9*SW [ 9B#G [*********************************************************************** 9BS6 POINT3 9C?Q [THIS ENTRY POINT OUTPUTS THE TERMINATING DEBATCHERS FOR LISTFILE 9CRB STO 2 AWORK1(2) 9D?2 BRN ZLFTERMS 9DQL [*********************************************************************** 9F== POINT4 9FPW [THIS ENTRY POINT OUTPUTS THE TERMINATING DEBATCHERS FOR ONLINE 9G9G NGS 2 AWORK1(2) 9G?9 ...#UNS ANIP 9G#Y ... CALL 7 SETUPNIP 9GP6 ZLFTERMS 9GRP ...#UNS ANIP 9GW# ...( 9GYX ...[ IF NIP CANNOT USE MODE WORD TO TELL IF ACTLF EXTENDED 9H3G ... LDX 2 FX2 9H65 ... LDX 0 ALOGLEN(2) 9H8N ... SBN 0 120 9H?? ... LDX 7 CPPTR(2) 9H*W ... BNZ 7 NOTM4 9HDF ... SBN 0 70 9HH4 ... BNG 0 NOTM4 9HKM ... ALTLEND FX2,187 9HN= ... BRN NOTM4 9HQT ...NOTNIP1 9HTD ...) 9HY3 ...#UNS ANIP 9J2L ...#SKI 9J59 ...( 9J82 DCA ,LDEX,0,MODE 9JML BZE 0 NOTM4 [J IF NOT MODE 4 9JXD ...) 9K7= ALTLEND FX2,100 9LL6 NOTM4 9MKB CALL 7 SETUPCA [SET UP CONTROL AREA 9N52 LDN 5 1 9N6? ...#UNS ANIP 9N7J ...( 9N8T ...[ IF NIP OUTPUT REPLY CHANGED BEFORE TERMINATORS 9N=6 ... LDX 0 CPPTR(2) 9N?C ... BNZ 0 NOTNP 9N#N ... KEEPREP 0,CHANGED 9N*^ ... ORX 0 GSIGN 9NC= ... STO 0 GZDUMP(2) 9NDH ... CALL 7 PERI6 9NFS ...NOTNP 9NH5 ...) 9NJL [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 9P4= [SPECIAL TO THROW THOF BEFORE DEBATCHERS 9PHW [S71102A 9Q3G [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 9QH6 [S71831B 9QTH ... SEGENTRY K52LISTINIT 9R7Y ... BRN NOT 9RGB [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 9S22 [SPECIAL DEBATCHERS 9SFL LDN 6 3 9S^= STOZ GZDATA(2) 9TDW NULL2 9TYG CALL 7 PERI3 9WD6 BCT 6 NULL2 9WXQ [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 9XCB NOT 9XX2 SEGENTRY K62LISTINIT 9YBL LDN 0 #02 9YLD ... SEGENTRY K30LISTINIT 9YW= ... BRN SPER 9^64 SEGENTRY K81LISTINIT 9^*W LDN 0 #11 9^TG SPER =2*6 SEGENTRY K35LISTINIT =2SQ CALL 7 PERI2 [THROW THOF =3#B [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! =3S2 [SPECIAL DEBATCHERS =4?L [S71831C =4L3 ... SEGENTRY K54LISTINIT =4YD ... BRN SHAMP =5=W CALL 7 SETUPBUFFER [FILL BUFFER WITH CURRENT CHARACTER =5QG LDN 5 1 =6=6 LDN 0 #40 =6PQ CALL 7 PERI2 [PRINT FIRST LINE =79B LDN 6 6 =7P2 REPT CALL 7 PERI [PRINT OTHER 6 LINES =88L BCT 6 REPT =8N= SEB LDN 0 #02 =97W CALL 7 PERI2 [THROW TWO LINES =9MG SHAMP ==76 SEGENTRY K64LISTINIT ==LQ [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! =?6B CALL 6 SHAM [PRINT LINE OF * WITH ^ AT EACH END =?L2 SEGENTRY K18LISTINIT =#5L NULL =#K= NULL =#T4 SEGENTRY K82LISTINIT =*4W LDN 0 #11 =*JG LDX 7 AWORK1(2) =B46 BZE 7 SX1 =BHQ SEGENTRY K70LISTINIT =C3B NULL =CH2 SEGENTRY K71LISTINIT =CQS SX1 =D2L CALL 7 PERI2 [THROW THOF =D43 ...#UNS ANIP =D5D ...( =D6T ...[ IF NIP ACTLF MUST OUTPUT END OF LISTING =D8= ...[ WILL NOT RETURN UNLESS A NIPENDLF OR NIPREL MACRO IS ISSUED =D9M ... LDX 0 CPPTR(2) =D?4 ... BNZ 0 XNL =D#F ... CALL 7 PERI4 =D*W ... BRN SBRK3 =DC? ...XNL STOZ JSOURCE3(2) [NOT NIP - CLEAR OUT REPERTOIRE INFO =DDN ...) =DG= SBRK2 =DHS ...#UNS G3SIGNET =DKB ...( =DLY ... LDX 0 CPPTR(2) =DNG ... IF 0,E,ASIGNETPTR =DQ4 ... THEN =DRL ... DISENGPER =DT8 ... FI =DWQ ...SIGNETKICK =DY# ...) =F8X ...SBRK3 LDX 0 AWORK1(2) =FFG BZE 0 TIDYPER [J IF EBI OR OL TERMINATORS =F^6 BNG 0 TIDYPER =G6# ... SBN 0 1 =G?G ... BZE 0 XFRTOEXIT [ J IF FROM/TO ERROR =GDQ UP =GYB TIDYPER =HD2 SEGENTRY K19LISTINIT =HXL LDX 0 FINISH =JC= SLL 0 1 =JWW BPZ 0 NFINISH =KBG ACROSS LISTNEXT,6 =KW6 NFINISH =L?6 ...# =L?Y ...POINT20 =L#Q ...# =L*Q LFBITSET F,2 [ACTLF =LTB LDN 1 JOBRING(2) [CAN =M*2 POINTACT OUT,2 [BE =MSL ADN 2 JOBRING [CONSIDERED =N#= ENRING 1,2 [FOR =NRW LFEND EB [LISTING =P?G [ =PR6 [*********************************************************************** =Q=Q POINT5 =QQB [THIS ENTRY POINT IS FROM ENGAGE AFTER EB INTERRUPT =QRJ ...# =R8L ...# =R=2 STOZ AWORK1(2) =R#K ...#UNS G3SIGNET =RC8 ...( =RFR ... LDX 0 CPPTR(2) =RJB ... BXE 0 ASIGNETPTR,SIGNETKICK =RL^ ...) =RPJ ...REG4 JNRGROP ,REG6 =RS7 ... JENG ,REG5 =RWQ ... BRN TIDYPER =R^* ...REG5 COOR3 #62 =S3Y ... BRN REG4 =S6H ...REG6 CALL 7 SETUPCA [SET UP CONTROL AREA =S9= LDN 5 1 [TERMINATORS =SF4 ... JWRONG ,TIDYPER [J. DEVICE HAS BEEN WRONGED. =SNW BRN SEB =T8G [*********************************************************************** =TN6 POINT6 =W7Q [THIS ENTRY OUTPUTS AN ERROR MESSAGE ON PERIPHERAL INDICATING =WMB [THAT THE SETUP FILE IS EMPTY =X72 [ =XLL STO 2 AWORK1(2) [ NOT EB PATH =^5G CALL 0 SPFL [SPACEFILL BUFFER =^K6 ... LDX 1 FX1 ?24Q LDN 4 SEMPT(1) [LOAD ADDRESS OF EMPTY MESSAGE ?2JB LDN 5 GZDATA+1(2) [COPY INTO BUFFER ?342 ... MOVE 4 4 ?8CW CALL 7 SETUPCA [SET UP CONTROL AREA ?8XG LDN 0 #42 [PFCC ?9C6 LDN 5 2 ?9WQ CALL 7 PERI2 [OUTPUT MESSAGE ?=BB UP ?=G? ...[ ?=L8 ...[ OUPUT MESSAGE SET UP BY CENTRAL ROUTINES ?=Q5 ...[ ?=W2 XFRTOERR ??38 ... LDN 0 1 ??8B ... STO 0 AWORK1(2) [ EXIT PATH MARKER ??*L CALL 0 SPFL ??T= ... MHUNTW 3,ADATA,HEADING ?##W ... LDN 4 HEADPFCC(3) ?#SG LDN 5 GZDATA(2) ?*#6 ... SMO HEADCNT(3) ?*RQ ... MVCH 4 3 ?B?B FREECORE 3 ?BBT ... CALL 7 SETUPCA ?BG# ... LDN 5 1 ?BKR ... CALL 7 PERI3 ?BP= ... MHUNT 1,GOUT,INFO ?BSP ... JBC ZLFTERMS,1,BLFSETUP [ J IF NO SETUP FILE ?BY8 ... FILEMOVE 0,1 [ INTERCHANGE SO MAIN FILE AT TOP ?C3M ... BRN ZLFTERMS [ TERMINATE LISTING ?C76 ...[ ?C=L [ ?CQ= [*********************************************************************** ?D9W [CODE FOR DEALING WITH FAILED/DISENGAGED PRINTERS OR PAPER LOW ?DPG NOTENG ?DTC SMO FX2 ?D^# LDX 0 AWORK1 ?F59 BZE 0 TIDYPER [ J IF EB PATH ?F96 ENGPER SBRKIN,,SBRKIN ?FNQ BRN RPTPERI ?G8B SBRKIN ?GN2 LDX 4 FX1 ?H7L ADX 4 5 ?HM= EXIT 4 STABLE ?J6W PLOW ?JLG DOWN LISTNEXT,10 ?K66 BRN SBRKIN ?KKQ YABANL ?L5B FREELINK ?LK2 YAB ?M4L LDN 4 0 ?MJ= CALL 3 TIDY ?N3W LFEND CD ?Q2B [ ?QG2 [*********************************************************************** ?Q^L [SECOND HEADING FOR ONLINE ?RF= TONLINE ?RYW LDN 4 OHEAD(1) ?SDG LDX 2 3 [INTERFACE FOR ?SY6 LDX 3 FX2 [SFLENME SUBROUTINE ?TCQ BRN TONLINE2 ?TDC ...[ ?TF4 ...[*********************************************************************** ?TFP ...POINT21 ?TGB ...# ?TW9 ...[ ?TW= ...[ ?TW? ...[*********************************************************************** ?TW# ...[ ?TW* ...POINT8 ?TWB ...[ ?TWC ...[*********************************************************************** ?TWD ...[ ?TWF ...#UNS ANIP ?TWG ...( ?TWH ...[ ENTRY POINT OF NIPLINES MACRO ON FIRST CALL OF LISTING ?TWJ ...[ FLAG Q (BEFORE FIRST LINE OF LISTING) SHOULD BE SET ?TWK ...[ IT MUST BE CLEARED IMMEDIATELY S THAT THIS ENTRY IS NOT USED AGAIN ?TWL ...[ EVEN IF THERE IS A BREAKIN - AND NIPREL WILL KNOW TO FORCE CLOSEDOWN ?TWM ...[ NOT ENTER LISTNEXT DIRECT ?TWN ...[ ?TWP ... STO 2 AWORK1(2) [NOT EB AND OUTPUTTING HEADERS ?TWQ ... LFBITCLR Q,2 ?TWR ... BRN XNLP [JOIN MAIN CODE PATH ?TWS ...[ ?TWT ...) ?TXB #END ^^^^ ...47115546000100000000