22FL #OPT K0LISTLOOP=0 22PD ...#OPT ENHPLOW=0 22^= #OPT AERRSIM=0 23DW ...#OPT HATP=0 23YG ...#OPT ATPOLTR=0 24D6 ...#OPT ATPOLTRP2=0 25CB #LIS K0LISTLOOP>K0LISTFILE>K0ALLGEO>K0GREATGEO>K0COMMAND 25X2 #SEG LISTLOOP 26BL 8HLISTLOOP 26LD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 26W= SEGENTRY K1LISTLOOP,POINT1 27TG [ 28*6 [CENTRAL LINE PRINTER CODE 28SQ [THIS SEGMENT CONTAINS THE INNER LOOP OF LISTFILE WHICH READS RECORDS 29#B [FROM THE SPECIFIED FILE DOES ANY SIMPLE CONVERSION NECESSARY AND 29S2 [OUTPUTS THE RECORD ON THE SPECIFIED PRINTER 2=?L [EXTRA CODE SHOULD NOT BE INSERTED IN THE MAIN PATH WITHOUT 2=R= [CAREFUL CONSIDERATION OF THE OVERHEAD. 2?=W [THE CONVERSION IMPLEMENTED IS AS FOLLOWS: 2?QG [IF A SHIFT FILE IS LISTED 2#=6 [DATA IS FIRST CONVERTED TO GRAPHIC,UNLESS 'SPECIAL' WAS 2#PQ [ONE OF THE COMMAND PARAMETERS,WHEN NO CONVERSION IS DONE. 2*9B [THE DATA IS CONVERTED ONE RECORD AT A TIME BY DECANTING 2*P2 [THE RECORD FROM THE USAGE BLOCK INTO AN ADATA/ACONV BLOCK 2B8L [AND USING THE TRANSFORM MACRO.THE FLAG K IS USED TO SHOW 2BN= [THE PRESENCE OF AN ADATA/ACONV BLOCK TO AVOID THE HUNT 2C7W [OVERHEAD FOR THE NORMAL,NO-CONVERSION PATH. 2CMG [ 2D76 [IF THE RECORD IS LONGER THAN CAN BE ACOMODATED IN ONE TRANSFER 2DLQ [THEN THE RECORD IS SPREAD 2F6B [OVER MANY TRANSFERS WITH SUITABLE CONTINUATION LINES FOR LP OUTPUT. 2FL2 [THE FLAG H IS SET TO INDICATE THAT THE CURRENT TRANSFER IS ONE 2G5L [OF THE SUBSEQUENT COMPONENTS OF A MULTI-TRANSFER RECORD. 2GK= [ 2H4W [THE BUFFER FOR A TRANSFER IS CONTAINED IN THE ACTLF AND STARTS 2HJG [AT THE IDENTIFIER GZDATA.WHILE THE TRANSFER IS IN PROGRESS THE 2J46 [ACTLF MUST REMAIN LOCKED [SO THAT EXECUTIVE CAN FIND IT] AND OFF 2JHQ [THE LIST OR THE QUEUE (ACHIEVED BY COOR1).WHEN THE TRANSFER HAS 2K3B [FINISHED EXECUTIVE RESTARTS THE ACTLF. 2KH2 [ 2L2L [DATA MANIPULATION IS CONTROLLED BY INFORMATION CONTAINED IN 2LG= [THE FOLLOWING LOCATIONS IN THE ACTLF 2L^W [ 2MFG [ GZPOINT CONTAINS A POINTER RELATIVE TO THE START OF THE 2M^6 [ RECORD,INDICATING HOW MUCH DATA HAS ALREADY BEEN TRANSFER 2NDQ [ 2NYB [ GZDUMP CONTAINS THE DUMP ADDRESS RELATIVE TO THE START 2PD2 [ OF THE BUFFER. 2PGK ...#UNS ANIP 2PK8 ...( 2PMR ...[ ALSO, JUST BEFORE THE PERI,CONTAINS THE NUMBER OF 2PQB ...[ CHARS FOR CURRENT TRANSFER 2PS^ ...) 2PXL [ 2QC= [ GZTRANS CONTAINS THE NUMBER OF CHARACTERS OF DATA FOR 2QWW [ CURRENT TRANSFER. 2RBG [ 2RW6 [ GZLENGTH CONTAINS THE NUMBER OF CHARACTERS OF DATA IN 2S*Q [ THE CURRENT RECORD 2STB [ 2T*2 [ 2TSL [*********************************************************************** 2W#= [DATA AREA 2WRW [ ---------------------------------------- 2X?G [ 2XR6 TLP2 +2 2Y=Q SM #07777777 [EQUAL MASK 2YQB TLP +1 [LP COMPARISON WORD 2^=2 SMLP +7036875 [LP MAGIC CONVERSION NUMBER 2^PL NUMLP +8000000 [LP MAXIMUM LINE NUMBER 329= TCA +0.3 [LP BUFFER MODIFIER 32NW XCONT 4H - [CONTINUATION LINE MARK-OUTPUT AT END OF 338G [EACH LINE OF A MULTILINE RECORD 33N6 [ 347Q SETUPBIT #10000000 34MB PAGELEN +66 3572 [ 35LL [*********************************************************************** 366= [SUBROUTINE AREA 36KW TIDYUP 375G [THIS S/R TIDIES UP WHEN A LISTING IS TO END 37K6 LFBBUS K,2,NOADATA [J IF NO CONVERSION BLOCK 384Q MHUNTW 1,ADATA,ACONV 38JB FREECORE 1 3942 LFBITCLR K,2 [CLEAR CONVERSION FLAG 39HL NOADATA 3=3= ... MHUNTW 1,GOUT,INFOLIST 3=GW LDX 4 GREST(1) 3?2G LDX 0 AWORK4(2) 3?G6 BPZ 0 NLSU [J IF NOT CURRENTLY LISTING SETUP 3?^Q STOZ GREST(1) 3#FB STOZ GNUM(1) 3#^2 EXIT 3 0 3*DL NLSU FREECORE 1 3*H9 ...#SKI ENHPLOW 3*KS ...( 3*NC ... LFBITCLR U,2 [CLEAR ANY PAPER LOW BITS SET 3*R2 ... LFBITCLR V,2 3*TK ...) 3*Y= LDX 0 SETUPBIT(1) 3BCW ANDX 0 AWORK2(2) 3BXG BZE 0 NSUA [J IF NO SETUP FILE AT ALL 3CC6 ... MHUNTW 1,GOUT,INFOSET 3CWQ FREECORE 1 3DBB NSUA EXIT 3 1 3DW2 [ 3F*L SLOCKC 3FT= [THIS S/R IS USED BY THE LOCK MACRO TO SET X2=FX2 3G#W LDX 2 FX2 3GSG EXIT 1 0 3H#6 [THIS IS A SUBROUTINE FOR CONVERTING THE BINARY NUMBER IN X5 TO DECIMAL 3HRQ [CHARACTERS STORING THE RESULT IN THE LOCATION WHOSE ADDRESS IS IN X2 3J?B [ 3JR2 SEQUENCE 3K=L MODE 1 3KQ= SCBD CBD 4 0(2) 3L9W BCHX 2 £ 3LPG BCT 3 SCBD 3M96 MODE 0 [DON'T SUPPRESS ZEROES FOR LAST 3MNQ CBD 4 0(2) [CHARACTER 3N8B BCHX 2 £ 3NN2 DCH 1 0(2) 3P7L LDX 1 FX1 3PM= LDX 2 FX2 3Q6W EXIT 0 0 3QLG [ 3R66 [THIS ROUTINE PERFORMS THE PERI ON THE DEVICE AND CHECKS THE REPLY FOR 3RKQ [DISENGAGED AND INOPERABLE STATES 3S5B [ 3S6C ...#UNS ANIP 3S7D ...( 3S8F ...[ ENTRY FROM SRER SUBROUTINE (CORRUPT FILE) IF NIP ACTLF 3S9G ...PERI4 KEEPREP 0,CORRUPT 3S=H ...[ ENTRY TO GIVE CHANGED REPLY 3S?J ...PERI5 ORX 0 GSIGN 3S#K ... STO 0 GZDUMP(2) 3S*L ... SBX 5 FX1 3SBM ...XLPS DOWN LISTPREP,4 3SCN ... LDX 0 GZDUMP(2) 3SDP ... BNG 0 NOT 3SFQ ... BRN XNIP [NORMAL ENTRY - ADD TO ALFTRANS ETC 3SGR ...[ 3SHS ...) 3SK2 PERI SBX 5 FX1 [ADJUST LINK 3SLC ...#UNS ANIP 3SMS ...( 3SP9 ...[ IF NIP ACTLF GO DOWN TO LISTPREP TO DO PERI 3SQL ... LDX 2 FX2 3SS3 ... LDX 4 GZDUMP(2) 3STD ... BZE 4 NOT [ZERO CHAR COUNT - DO NOT PRINT 3SWT ... LDX 0 CPPTR(2) 3SY= ... BZE 0 XLPS 3S^M ... DCA ,STO,4,COUNT [STORE CHAR COUNT IN CONTROL AREA 3T34 ...) 3T4L REP DCA ,LDX,4,COUNT 3TJ= BZE 4 NOT 3W3W LDX 1 FX1 3WHG LDX 4 TCA(1) 3X36 LOCKC 2,SLOCKC 3XGQ ADN 4 GZDATA(2) 3Y2B DCA ,STO,4,CTSA 43CQ GPERI ,2 43XB COOR1 44C2 UNLOCK 2 45TW LDX 4 FINISH 46*G SLL 4 2 46T6 BNG 4 SCANTY [ 'FINISH NOW' 47#Q LDCT 4 #50 47SB ANDX 4 CPRW1(2) 48#2 BNZ 4 NOTENG [J IF FAIL OR DISENGAGED 48F8 ...#UNS ANIP 48LB ...XNIP 48RL LDN 0 1 49?= ADS 0 ALFTRANS(2) 49BB ...#UNS ANIP 49FG ... LDX 4 GZDUMP(2) 49JL ...#UNS ANIP 49MQ ...#SKI 49QW DCA ,LDX,4,COUNT 4==G SRL 4 2 4=Q6 ADS 4 ALFWORDS(2) 4?9Q NOT ADX 5 FX1 4?PB EXIT 5 0 [EXIT 4#92 # 4#NL # THE FOLLOWING DEALS WITH RESTARTS 4*8= # 4*MW [ MULTIPAGE RESTARTS 4B7G [ IF GLEN=0 THEN NO MULTIPAGE RESTART IS REQUIRED 4BM6 [ GLEN=IPAGE-1 AND IS SET UP IN LISTPREP. IPAGE IS MAX NUMBER OF PAGES 4C6Q [ THAT CAN BE REPEATED 4CLB [ GNEXT IS A POINTER TO THE NEXT GREST TO BE SET 4D62 [ IF GREST+1=0 THEN NO MULTIPAGE RESTART IS REQUIRED AS ONLY ONE PAGE 4DKL [ HAS BEEN LISTED. 4F5= [ ALPSETUP IS SET EQUAL TO IPAGE BEFORE THE REQUEST 4FJW [ AFTER THE PAGES COMMAND ALPSETUP IS EQUAL TO THE NUMBER-1 4G4G [ 4GJ6 PAGEREST 4H3Q SBX 3 FX1 4HHB ... MHUNTW 1,GOUT,INFOLIST 4J32 LDXC 4 GREST(1) 4JGL BCC PAGES1 [J NOT PAGE RESTART 4JHX ...#SKI ENHPLOW 4JK8 ...( 4JLF ... LFBBUS U,2,SUSU [J IF PAPER LOW NOT BEEN FOUND 4JMQ ... LFBITCLR U,2 [OTHERWISE CLEAR PAPER LOW BITS 4JP3 ... LFBITCLR V,2 [AND OUTPUT RELOAD MESSAGE BEFORE 4JQ# ... LDCT 6 #100 [IF NO PLOW REPLY ON LAST TRANSFER 4JRK ... ANDX 6 CPRW1(2) [THEN ASSUME OPERATORS HAVE BEATEN 4JSW ... BZE 6 SUSU [US TO IT 4JW7 ... DOWN LISTNEXT,10 [CONTINUING RESTART ACTION 4JXD ...SUSU 4JYP ...) 4K2= LDX 6 GLEN(1) 4KFW BZE 6 PAGES1 [J IPAGE=1 4K^G LDX 5 GREST+1(1) 4LF6 BZE 5 PAGES1 [J ONLY 1 PAGE LISTED 4LYQ LDX 6 GLEN(1) 4MDB ADN 6 1 [THIS LISTFILE (FOR PAGES COMMAND) 4MY2 STO 6 ACOMMUNE6(2) [THEN PUT IT IN ACOMMUNE6 4PBW GEOPACK 1 4PWG LONGSET #104,XGEOER,1 4RT2 OUTPER 4S#L DEMAND ,JPAGES,PAGES2,XGEOER,REE,1 4SS= [PLEASE GIVE PAGES FOR ERROR RESTART ON UNIT %A 4T?W PCD 4TRG ... MHUNTW 1,GOUT,INFOLIST 4W?6 LDX 5 GNEXT(1) 4WQQ LDX 6 ACOMMUNE6(2) [SET X6=NO OF PAGES FOR ERROR RESTART 4X=B SBN 6 1 [MINUS 1 4XQ2 SBX 5 6 4Y9L BPZ 5 OK 4YP= ADX 5 GLEN(1) 4^8W ADN 5 1 4^NG OK SMO 5 [PICK UP CORRECT RESTART LINE NUMBER 5286 LDX 5 GREST(1) 52MQ BNZ 5 YOK [NO OF PAGES GIVEN MIGHT BE