FHLIST867

(George Source)

Macros used: ACROSS, ADJUSTLK, BITDEFS, BS, BXE, BXGE, CAPCA, CHAIN, CHECKB, COOR1, COOR1X, FADDRESS, FINDACTNO, FINMOVE, FINMVCH, FOUTMOVE, FPUT, FREECORE, HUNT, JBC, JBS, LINK, LINKSET, LOCKCA, MBC, MENDAREA, MFREE, MHUNT, NIPENDLF, NIPLINES, NIPREP, NIPSTART, OLPEND, PCAPLUG, PMODES, PROGBRKIN, SEG, SEGENTRY, SETREP, STEPBACK, TESTREP2, TESTRPN2, TOPCA, TOPCA1, UNPLUG, XWRONG

FHLIST867.txt
22FL          SEG      FHLIST,864,SECTION FILE,OLP  
22KH ...[   
22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
22T* ...[   
22^=          SEGENTRY K1FHLIST,PERI
23DW          SEGENTRY K2FHLIST,PCARUN  
23YG    #   
24D6    #  THIS SEGMENT IMPLEMENTS FOUR FILEHANDLER PERIS (MODES #201 TO #204)  
24XQ    #  TO ENABLE A SUBJECT PROGRAM TO 'READ' THE OUTPUT NORMALLY DIRECTED   
25CB    #  BY LISTFILE TO THE LINE PRINTER. IT IS COMPLETELY SEPARATE FROM THE  
25X2    #  OTHER FILEHANDLER SEGMENTS.  
26BL    #   
26W=    #  USE OF AWORK WORDS : 
27*W    #   
27TG    #     AWORK1   HOLDS THE PERI MODE  
28*6    #     AWORK2   CONTAINS THE PROGRAM BUFFER ADDRESS, MODES #201 TO #203  
28SQ    #     AWORK3   CONTAINS THE SECOND BUFFER ADDRESS FOR MODE #201 
29#B    #     AWORK4   BIT SIGNIFICANT, AS FOLLOWS :-   
29S2    #   
2B8L          BITDEFS  AWORK4,23,MFH201    [MODE #201 ISSUED
2BN=          BITDEFS  AWORK4,22,MFH202    [MODE #202 ISSUED
2C7W          BITDEFS  AWORK4,21,MFH203    [MODE #203 ISSUED
2CMG          BITDEFS  AWORK4,0,MFHEND     [END OF LISTING REACHED  
2D76    #   
2DLQ    PLINK   
2F6B          LINK     FHLIST,2            [LINK TO PCA FOR LISTFILE ACTION 
2FL2    RESETLINK   
2G5L          LINK     FHLIST,1            [RETURN LINK AFTER OLPODD ERROR ACTIO
2G=S ...#   
2GD2 ...MAXCOUNT       +512 
2GK=    #   
2H4W    #     SUBROUTINES   
2HJG    #   
2J46    #  CHECK AND LOCK PROGRAM BUFFER AREA   
2JHQ    #   
2K3B    XCHECKB 
2KH2          SBX   6  FX1  
2L2L          CHECKB   5,4,RESVIOL,3,W,YESBUFF,HLOCK2,,PERI 
2LG=    YESBUFF 
2L^W          ADX   6  FX1  
2MFG          EXIT  6  0
2M^6    #   
2NDQ    #  CHECK IF PROGRAM USING COMPACT MODE AND ADJUST BUFFER ADDRESS IF SO  
2NYB    #   
2PD2    TEST22AM
2PXL          ANDX  5  BITS22LS 
2QC=          PMODES   0,3  
2QWW          ANDN  0  #10  
2RBG          BNZ   0  Y22AM
2RHN ...      ANDX  5  BSP16
2RNW ...Y22AM   
2RW6          EXIT  6  0
2T*2    #   
2TSL    #  TRANSFER CONTROL TO PCA(APET) WITH LINK TO K2FHLIST THEN PUT OLPA TO 
2W#=    #  SLEEP WHILE THIS CODE IS BEING OBEYED.   
2WRW    #   
2X?G    XTOPCA  
2XR6          SBX   6  FX1  
2Y=Q          LDX   0  APETADDR(2)         [RELATIVISE MEMBER ELEMENT ADDRESS   
2YQB          SBS   0  EVENT1(2)           [IN PREPARATION FOR PROGRAM UNPLUG   
2^=2          LDX   4  ACNUM(2)            [REMEMBER ACTIVITY NUMBER OF OLPA
2^PL          LDX   7  AWORK1(2)           [REMEMBER PERI MODE  
329= ...      LDX   5  FTYPNO-1(2)         [REMEMBER TYPE/UNIT OF CHANNEL   
32NW          TOPCA    PLINK(1)            [TRANSFER CONTROL TO PCA 
338G ...      COOR1                        [PUT OLPA TO SLEEP   
33N6          BRN      PERI                [ERROR RETURN. PROCESS NEXT PERI 
347Q          LDX   3  APETADDR(2)         [NORMAL RETURN TO OLPA. UPDATE   
34MB          ADS   3  EVENT1(2)           [MEMBER ELEMENT ADDRESS  
3572          LOCKCA   3,ACAP(2)           [RELOCK PROGRAM CONTROL AREA 
35LL          ADX   6  FX1                 [CONTINUE PROCESSING CURRENT PERI
366=          EXIT  6  0
36KW    #   
375G    #  MOVE DATA FROM PROGRAM (ADDRESS IN X4) TO A SPECIFIED ADDRESS IN X5  
37K6    #   
384Q    XOUTMOVE
38JB          FOUTMOVE APETADDR(2),4,5,7,HLOCK1,2   
3942          EXIT  6  0
39HL    #   
3=3=    #  MOVE DATA FROM A SPECIFIED AREA IN X3 TO THE PROGRAM (ADDRESS IN X4) 
3=GW    #   
3?2G    XINMOVE 
3?G6          FINMOVE  APETADDR(2),4,3,5,HLOCK2,2   
3?^Q          EXIT  6  0
3#FB    #   
3#^2    #  LOCATE THE OLPA GIVEN ACTIVITY NUMBER IN X4, AND RESTORE REPLY WORD  
3*DL    #  FROM X7 INTO ACOMMUNE9   
3*Y=    #   
3BCW    XFIND   
3BXG          FINDACTNO 3,4 
3CC6          STO   7  ACOMMUNE9(3) 
3CWQ          EXIT  6  0
3DBB    #   
3DW2    #   
3F*L    #   
3FT=    #   
3G#W    #  NORMAL ENTRY TO PROCESS A PERI   
3GSG    #   
3H#6    PERI
3HRQ          LDX   3  APETADDR(2)  
3J?B          LOCKCA   3,ACAP(2)           [LOCK PROGRAM CONTROL AREA   
3JR2          LDN   7  4
3K=L          LDX   4  ACAP(2)  
3KQ=          LDN   5  ACA1(2)  
3L9W          CALL  6  XOUTMOVE            [MOVE CONTROL AREA INTO OLPA 
3LPG          LDX   4  ACA1(2)  
3M96          ANDN  4  #7777
3MNQ          STO   4  AWORK1(2)           [STORE PERI MODE 
3N8B          SBN   4  #201 
3NN2          BNG   4  NMODNR   
3P7L          SBN   4  4
3PM=          BPZ   4  NMODNR              [ERROR IF MODE OUT OF RANGE  
3Q6W          ADN   4  4
3QLG          LDX   0  AWORK4(2)
3R66          BNZ   0  NFIRST              [J IF NOT FIRST PERI ON CHANNEL  
3RKQ          BNZ   4  NILLMODE            [ERROR IF NOT MODE #201  
3S5B    NFIRST  
3SK2          SBN   4  3
3T4L          BZE   4  MODE204             [MODE #204. NO BUFFER TO CHECK.  
3TJ=          LDX   5  ACA4(2)             [BUFFER ADDRESS  
3WHG          LDX   0  AWORK1(2)
3X36          SBN   0  #203 
3XGQ ...      BNZ   0  N203                [J IF NOT MODE #203  
3Y2B          LDCT  4  #600                [IF MODE #203,CHECK BUFFER ADDRESS   
3YG2          BCHX  5  £                   [POINTS TO CHAR 3 OF WORD
3Y^L          ANDX  4  5
3^F=          BNZ   4  NILLCHAR            [ERROR IF NOT
3^YW          SBN   5  1                   [READJUST BUFFER ADDRESS 
4264 ...N203
42?= ...      BNG   5  NOT203   
42DG    T22AM   
42Y6          CALL  6  TEST22AM 
43CQ          STO   5  AWORK2(2)           [PRESERVE BUFFER ADDRESS 
43XB          LDX   4  ACA3(2)             [CONTROL AREA COUNT  
4478 ...      BNG   4  NILLCOUNT
44C2          LDX   0  AWORK1(2)
44WL          SBN   0  #203 
45B=          BZE   0  YM203               [J IF MODE #203  
45G7 ...      ADN   0  1
45L4 ...      BNZ   0  N202 
45P^ ...      LDN   4  3                   [SET COUNT TO 3 FOR MODE #202
45TW ...      BRN      YCHECK   
45^R ...N202
465N ...      SLL   4  1
469K ...      ADX   4  ACA3(2)             [MUST BE MODE #201 , SO CONVERT  
46*G          BRN      YCHECK              [COUNT OF PROPERTY NAMES INTO WORDS  
46T6    YM203   
474Y ...      BZE   4  NILLCOUNT
47#Q          ADN   4  6                   [ROUND UP CHARACTER COUNT AND
47SB          SRL   4  2                   [CONVERT TO WORDS
48#2    YCHECK  
48HS ...      BXGE  4  MAXCOUNT(1),NILLCOUNT  [J IF COUNT OUT OF RANGE  
48RL          CALL  6  XCHECKB             [CHECK BUFFER ADDRESS FOR VIOLATION  
49?=          LDX   0  AWORK1(2)
49QW          SBN   0  #201 
4==G          BZE   0  NEXTBUFF            [CHECK SECOND BUFFER IF MODE #201
4=Q6          SBN   0  1
4?9Q          BZE   0  MODE202             [MODE #202   
4?PB          BRN      MODE203             [MODE #203   
4#92    NOT203  
4#NL          ADN   0  2                   [ERROR IF BUFFER ADDRESS NEGATIVE
4*8=          BNZ   0  RESVIOL             [AND MODE NOT #203 OR #201   
4*MW    NEXTBUFF                           [MODE #201 ONLY  
4B7G          LDX   3  ACAP(2)             [PROGRAM CONTROL AREA
4BM6          ADN   3  4                   [FIFTH WORD  
4C6Q          FADDRESS APETADDR(2),3,HLOCK1,2   
4CLB          LDX   5  0(3)                [PICK UP SECOND BUFFER ADDRESS   
4D62          LDX   3  APETADDR(2)  
4DKL          CALL  6  TEST22AM 
4F5=          STO   5  AWORK3(2)           [PRESERVE SECOND BUFFER ADDRESS  
4FJW ...      LDN   4  19                  [NO OF WORDS TO BE WRITTEN TO BUFFER 
4G4G          CALL  6  XCHECKB             [CHECK BUFFER ADDRESS FOR VIOLATION  
4GJ6    #   
4H3Q    #  WE NOW ENTER INDIVIDUAL CODE PATHS FOR EACH PERI MODE
4HHB    #   
4J32    MODE201                            [MODE #201   
4JGL          JBS      NILLMODE,2,MFH201   [ERROR IF MODE #201 ALREADY ISSUED   
4K2=          LDX   0  ACA4(2)  
4KFW          BNG   0  NOPROPS             [J IF NO PROPERTIES SPECIFIED
4K^G          LDX   4  ACA3(2)             [COUNT OF PROPERTY NAMES 
4L?X ...      BZE   4  NOPROPS  
4LL# ...      SLL   4  2                   [SET UP PROPERTY BLOCK LARGE ENOUGH  
4LYQ          ADN   4  2                   [TO CONTAIN A 4-WORD RECORD FOR EACH 
4MDB          SETUPCOR 4,1,APERI,APROPS    [PROPERTY NAME PLUS R.H. AND COUNT.  
4MY2          STO   4  A1(1)               [RECORD HEADER   
4NCL          LDX   7  ACA3(2)  
4NX=          STO   7  A1+1(1)             [COUNT OF NAMES  
4PBW          LDN   6  3                   [NO OF WORDS TO MOVE FROM PROGRAM
4PWG          LDX   3  AWORK2(2)           [PROGRAM BUFFER ADDRESS  
4QB6    PROPLOOP
4QTQ          LDN   0  12                  [STORE NO OF CHARS IN FIRST WORD OF  
4R*B          STO   0  A1+2(1)             [PROPERTY RECORD 
4RT2          ADN   1  1
4S#L          LDN   5  A1+2(1)             [X5 -> START OF PROPERTY NAME AREA   
4SS=          LDX   4  3                   [BUFFER ADDRESS CONTAINING NEXT NAME 
4TRG          FOUTMOVE APETADDR(2),4,5,6,HLOCK1,2  [MOVE ACROSS PROPERTY NAME   
4W?6          ADN   3  3                   [UPDATE BUFFER ADDRESS   
4WQQ          ADN   1  3                   [UPDATE PROPERTY BLOCK POINTER   
4X=B          BCT   7  PROPLOOP            [EXIT IF NO MORE PROPERTIES  
4XQ2    #   
4Y9L    #  WE NOW WISH TO COMMUNICATE WITH THE LISTFILE ROUTINES TO PASS ACROSS 
4YP=    #  THE PROPERTY BLOCK AND OBTAIN FILE DETAILS IN RETURN. WE MUST BE IN  
4^8W    #  THE CPA TO DO THIS SO FIRST WE CHAIN THE PROPERTY BLOCK TO THE PCA   
4^NG    #  AND THEN TRANSFER CONTROL TO PCA (PUTTING OLPA TO SLEEP). THE CODE AT
5286    #  K2FHLIST IS THEN ENTERED.
52MQ    #   
537B          MHUNT    1,APERI,APROPS   
53M2          CHAIN    1,APETADDR(2)       [RECHAIN PROPERTY BLOCK AFTER CPA
546L    NOPROPS 
54L=          CALL  6  XTOPCA              [TRANSFER CONTROL,PUT OLPA TO SLEEP  
555W    #   
55KG    #  THE NEXT BIT OF CODE IS ENTERED IN THE OLPA AFTER IT HAS BEEN WOKEN  
5656    #  UP ON COMPLETION OF ACTION BY LISTFILE ROUTINES. 
56JQ    #   
574B          TESTRPN2 OK,M201FAIL         [J IF NON-OK REPLY FROM NIPSTART 
57J2          MHUNT    3,GOUT,INFO  
583L ...      LDX   7  GMODE(3)            [PICK UP MODE WORD FOR LATER 
58H=          ADN   3  GUSER
592W          LDX   4  AWORK3(2)           [SECOND PROGRAM BUFFER   
59GG          LDN   5  6                   [NO OF WORDS TO MOVE 
5=26          CALL  6  XINMOVE             [MOVE USERNAME AND JOBNAME OF JOB
5=FQ          LDX   3  AWORK3(2)           [ISSUING LF INTO PROGRAM BUFFER  
5=^B          ADN   3  6
5?F2          FADDRESS APETADDR(2),3,HLOCK1,2  [ABSOLUTE ADDRESS
5?JX ...      STO   7  0(3)                [STORE MODE WORD IN BUFFER   
5?NS ...      MHUNT    3,GOUT,INFO  
5?SP ...      ADN   3  GFTY 
5?YL ...      LDX   4  AWORK3(2)
5#4H ...      ADN   4  7
5#8D ...      LDN   5  3                   [MOVE TYPE WORD AND MULTIFILE
5##* ...      CALL  6  XINMOVE             [DETAILS INTO PROGRAM BUFFER 
5#D=          MHUNT    3,FILE,FABSNB
5#GF ...      LDX   0  A1(3)
5#JN ...      SBN   0  10   
5#LX ...      BNZ   0  NOT10
5#P6 ...      ADN   3  A1+1 
5#R* ...      BRN      NOWMOVE  
5#TJ ...NOT10   
5#XR ...      SMO      A1(3)
5*22 ...      ADN   3  A1-6 
5*49 ...      LDX   4  3
5*6D ...      SBN   4  2
5*8M ...      MOVE  3  6
5*=W ...      SBN   3  5
5**5 ...NOWMOVE 
5*CG          LDX   4  AWORK3(2)
5*X6 ...      ADN   4  10   
5BBQ          LDN   5  9                   [MOVE FILE DESCRIPTION OF LISTFILE   
5BWB          CALL  6  XINMOVE             [INTO PROGRAM BUFFER 
5CB2          MFREE    GOUT,INFO
5CTL          MFREE    FILE,FABSNB  
5D*=          BS       2,MFH201            [MODE #201 SUCCESSFULLY COMPLETED
5DSW          LDN   7  0                   [SET UP REPLY WORD   
5F#G    SETREP  
5FS6          LDX   3  ACAP(2)  
5G?Q          ADN   3  1
5GRB          FADDRESS APETADDR(2),3,HLOCK1,2   
5H?2          STO   7  0(3)                [STORE REPLY WORD IN PROGRAM 
5HQL          OLPEND                       [GO TO SLEEP 
5J==          BRN      PERI                [PROCESS NEXT PERI   
5JPW    #   
5K9G    M201FAIL
5KP6          LDCT  7  #040                [BIT 3 OF REPLY WORD 
5L8Q          TESTREP2 FAIL,XFAIL,MAXATT,XMAX,NOTAV,XNOTAV  
5LNB          MHUNT    3,CPB,CUNI   
5M82 ...      ADN   3  APARA
5MML          LDN   5  3
5N7=          LDX   4  AWORK3(2)           [MOVE INVALID PROPERTY NAME INTO 
5NLW          CALL  6  XINMOVE             [PROGRAM BUFFER  
5P6G          MFREE    CPB,CUNI 
5PL6          TESTREP2 FORMAT,XFORM,XCPROP,XCPROP,XPROP,XPROP   
5Q5Q    XFORM   
5QKB          ADN   7  1
5R52          BRN      SETREP   
5RJL    XCPROP  
5S4=          ADN   7  2
5SHW          BRN      SETREP   
5T3G    XPROP   
5TH6          ADN   7  3
5W2Q          BRN      SETREP   
5WGB    XMAX
5X22          ADN   7  4
5XFL          BRN      SETREP   
5X^=    XNOTAV  
5YDW          ADN   7  5
5YYG          BRN      SETREP   
5^D6    XFAIL   
5^XQ          ADN   7  6
62CB          BRN      SETREP   
62X2    #   
63BL    #   
63W=    #   
64*W    MODE202                            [MODE #202   
64TG          JBC      NILLMODE,2,MFH201   [ERROR IF MODE #201 NOT ISSUED   
65*6          JBS      NILLMODE,2,MFH203   [ERROR IF MODE #203 ALREADY ISSUED   
65SQ          LDN   7  3
66#B ...      SETUPCOR 7,1,APERI,ARPERT   [SET UP REPERTOIRE INFO BLOCK 
66S2          LDN   5  A1(1)
67?L          LDX   4  AWORK2(2)           [ADDRESS OF PROGRAM BUFFER   
67R=          CALL  6  XOUTMOVE            [MOVE REPERTOIRE INFO INTO BLOCK 
68=W    #   
68QG    #  WE NOW WISH TO PASS THE REPERTOIRE INFORMATION ACROSS TO THE LISTFILE
69=6    #  ROUTINES AND AS FOR MODE #201 WE MUST BE IN THE CPAT.
69PQ    #   
6=9B ...      MHUNT  1,APERI,ARPERT 
6=P2          CHAIN    1,APETADDR(2)       [CHAIN REPERTOIRE BLOCK AFTER PCA
6?8L          CALL  6  XTOPCA              [TRANSFER CONTROL. PUT OLPA TO SLEEP 
6?N=    #   
6#7W    #  BACK IN OLPA AGAIN. LISTFILE ACTION COMPLETED.   
6#MG          TESTRPN2 OK,M202FAIL         [J IF NON-OK REPLY FROM NIPREP   
6*76 ...      BS       2,MFH202            [MODE #202 SUCCESSFULLY COMPLETED
6*LQ          LDN   7  0
6B6B          BRN      SETREP              [SET UP REPLY WORD   
6BL2    #   
6C5L    M202FAIL
6CK=          LDCT  7  #040                [B3 OF REPLY WORD
6D4W          TESTREP2 WRONG,XWRONG,FORMAT,XFORMAT,TOOHIGH,XHIGH
6DJG    XLONG   
6F46 ...      ADN   7  1
6FHQ          BRN      SETREP   
6G3B    XWRONG  
6GH2 ...      ADN   7  2
6H2L          BRN      SETREP   
6HG=    XFORMAT 
6H^W ...      ADN   7  3
6JFG          BRN      SETREP   
6J^6    XHIGH   
6KDQ ...      ADN   7  4
6KYB          BRN      SETREP   
6LD2    #   
6LXL    #   
6MC=    #   
6MWW    MODE203                            [MODE #203   
6NBG          JBC      NILLMODE,2,MFH201   [ERROR IF MODE #201 NOT ISSUED   
6NL# ...      JBC      NILLMODE,2,MFH202  [NOR MODE #202
6NW6          JBS      XENDLIST,2,MFHEND   [J IF END OF LISTING ALREADY REACHED 
6P*Q          HUNT     3,GOUT,GLINES
6PTB          BPZ   3  YBLOCK              [J IF LINES BLOCK ALREADY PRESENT
6Q*2    #   
6QSL    #  WE NOW WISH TO COMMUNICATE WITH THE LISTFILE ROUTINES TO OBTAIN A
6R#=    #  GLINES BLOCK CONTAINING THE NEXT BATCH OF RECORDS FROM THE FILE. AS  
6RRW    #  WITH MODE #201 THIS MUST BE DONE FROM THE CPAT,  
6S?G    #   
6SR6          CALL  6  XTOPCA              [TRANSFER CONTROL. PUT OLPA TO SLEEP 
6T=Q    #   
6TQB    #  BACK IN OLPA. LISTFILE ACTION COMPLETED. 
6W=2          TESTRPN2 OK,M203FAIL         [J IF NON-OK REPLY FROM NIPLINES 
6WPL          MHUNT    3,GOUT,GLINES
6X9=    YBLOCK  
6XNW          ADX   3  GNEXTL(3)           [X3 -> FIRST WORD OF NEXT LINE(RECORD
6Y8G          LDX   6  GCHARS(3)           [NO OF CHARS IN RECORD   
6YN6          BZE   6  YEND                [J IF END OF FILE REACHED
6^7Q          LDX   0  ACA3(2)             [PROGRAM COUNT   
6^MB          BXGE  0  6,NUFF              [J IF RECORD < COUNT 
7272          LDX   6  0
72LL    NUFF
736=          LDX   4  ACA4(2)             [PROGRAM BUFFER ADDRESS  
73KW          ADN   3  GPFCC               [ADDRESS OF PFCC WORD
745G          LDCT  0  #600 
74K6          ORS   0  3                   [X3 -> CHAR 3 OF PFCC WORD   
754Q          FINMVCH  APETADDR(2),4,3,6,HLOCK2,2  [MOVE RECORD INTO PROGRAM
75JB          LDX   7  6                   [STORE COUNT IN REPLY WORD   
7642          MHUNT    1,GOUT,GLINES
76HL          LDX   0  GUSELIN(1)   
773=          ADN   0  1
77GW          BXE   0  GTOTLIN(1),YENDBLK  [J IF END OF GLINES BLOCK REACHED
782G          STO   0  GUSELIN(1)          [UPDATE USED LENGTH OF BLOCK 
78G6          SMO      GNEXTL(1)
78^Q          LDX   0  GCHARS(1)           [NO OF CHARS IN RECORD JUST MOVED
79FB          ADN   0  6
79^2          SRL   0  2                   [CONVERT TO WORDS
7=DL          ADN   0  1                   [RECORD HEADER   
7=Y=          ADS   0  GNEXTL(1)           [UPDATE 'NEXT LINE' POINTER  
7?CW    YSET
7?XG          BS       2,MFH203            [MODE #203 SUCCESSFULLY COMPLETED
7#C6          BRN      SETREP   
7#WQ    YENDBLK 
7*BB          FREECORE 1                   [FREE GLINES BLOCK   
7*W2          BRN      YSET 
7B*L    YEND
7BT=          NGN   7  1                   [REPLY WORD  
7C#W          BS       2,MFHEND            [SET 'END OF LISTING' SWITCH 
7CSG          MFREE    GOUT,GLINES  
7D#6          BRN      SETREP   
7DRQ    #   
7F?B    M203FAIL
7FR2          LDCT  7  #040                [B3 OF REPLY WORD
7G=L ...      TESTREP2 STOP,XSTOP,CORRUPT,XRUPT,CHANGED,XCHANG  
7GQ=    XNOPROP 
7H9W ...      ADN   7  1
7HPG          BRN      SETREP   
7J96    XSTOP   
7JNQ ...      ADN   7  2
7K8B          BRN      SETREP   
7K=K ...XRUPT   
7K#S ...      ADN   7  3
7KC3 ...      BRN      SETREP   
7KF= ...XCHANG  
7KHF ...      ADN   7  4
7KKN ...      BRN      SETREP   
7KN2    #   
7L7L    #   
7LM=    #   
7M6W    MODE204                            [MODE #204   
7MLG ...      JBC      NILLMODE,2,MFHEND   [J IF END OF LISTING NOT REACHED 
7N66          JBC      NILLMODE,2,MFH201   [ERROR IF MODE #201 NOT ISSUED   
7NKQ          CALL  6  XTOPCA              [INSTRUCT LISTFILE ROUTINES TO CLOSE 
7P5B                                       [FILE AND TIDY UP.   
7PK2          MBC      2,MFHEND,MFH201,MFH203  [CLEAR SWITCHES  
7Q4L          LDN   7  0                   [SET REPLY WORD  
7QJ=          BRN      SETREP   
7R3W    #   
7RHG    #  ENTRY WHEN COMMUNICATION WITH LISTFILE ROUTINES IS REQUIRED. THE 
7S36    #  CURRENT ACTIVITY IS THE PCA(SEE SUBROUTINE XTOPCA). X7 CONTAINS MODE,
7SGQ    #  X4 CONTAINS ACNUM OF OLPA, X5 CONTAINS TYPE/UNIT NO. OF PROGRAM  
7T2B    #  CHANNEL. ANY BLOCKS NEEDED HAVE BEEN CHAINED AFTER PCA.  
7TG2    #  FOR EACH MODE, WE TRANSFER CONTROL TO THE CPA, ISSUE AN APPROPRIATE  
7T^L    #  MACRO,RETURN CONTROL TO THE PCA,THEN REACTIVATE THE OLPA.
7WF=    #   
7WYW    PCARUN  
7XDG          UNPLUG                       [UNPLUG PROGRAM  
7XY6          SBN   7  #203 
7YCQ          BPZ   7  Y3OR4               [J IF MODE #203 OR #204  
7YXB          ADN   7  1
7^C2          BZE   7  Y2                  [J IF MODE #202  
7^WL          HUNT     1,APERI,APROPS      [MODE #201   
82B=          BPZ   1  Y1                  [J IF PROPERTY BLOCK PRESENT 
82TW    Y3OR4   
83*G          CAPCA                        [CHANGE TO PCA. NO BLOCKS TO TRANSFER
83T6          BZE   7  Y3                  [J IF MODE #203  
84#Q          BNG   7  Y1A                 [J IF MODE #201  
84SB          NIPENDLF ZBREAK,5            [MODE #204. CLOSE FILE AND TIDY UP.  
85#2 ...      BRN      XPLUG1   
87=G    Y3  
87Q6          NIPLINES ZBREAK,5            [READ A BLOCK OF RECORDS. MODE #203  
889Q          LDX   7  ACOMMUNE9(2) 
88FJ ...      BNZ   7  XPLUG2                   [^ IF ERROR REPLY   
88PB          PCAPLUG  ZBREAK,GOUT,GLINES  [RETURN CONTROL TO PCA TAKING BLOCK  
8992          CALL  6  XFIND               [X3 -> OLPA  
89NL          MHUNT    1,GOUT,GLINES
8=8=          CHAIN    1,3                 [RECHAIN GLINES AFTER OLPA   
8=MW          BRN      XTOLPA   
8?7G    Y1  
8?M6          CAPCA    APERI,APROPS        [CHANGE TO CPA TAKING PROPERTY BLOCK 
8#6Q    Y1A   NIPSTART ZBREAK,5            [OPEN FILE TO BE LISTED  
8#LB          LDX   7  ACOMMUNE9(2) 
8#N# ...      TESTREP2 OK,PLUGOK,FAIL,XPLUG2,MAXATT,XPLUG2,NOTAV,XPLUG2 
8#Q= ...      PCAPLUG  ZBREAK,CPB,CUNI  
8#S8 ...      CALL  6  XFIND
8#W6 ...      MHUNT    1,CPB,CUNI                [RECHAIN BLOCK CONTAINING REJEC
8#Y4 ...      CHAIN    1,3                       [PROPERTY NAME AFTER ALTER 
8*22 ...      BRN      XTOLPA   
8*3Y ...PLUGOK  
8*62          PCAPLUG  ZBREAK,GOUT,INFO,FILE,FABSNB 
8*KL          CALL  6  XFIND               [X3 -> OLPA  
8B5=          MHUNT    1,GOUT,INFO         [RECHAIN BLOCKS CONTAINING JOB   
8BJW          CHAIN    1,3                 [DETAILS AND FILE DESCRIPTION OF 
8C4G          MHUNT    1,FILE,FABSNB       [FILE TO BE LISTED AFTER OLPA
8CJ6          CHAIN    1,3  
8D3Q          BRN      XTOLPA   
8DHB ...Y2    CAPCA    APERI,ARPERT       [CHANGE TO CPA WITH REPERTOIRE BLOCK  
8F32          NIPREP   ZBREAK,5            [PASS REPERTOIRE INFO TO LISTFILE
8F=S ...XPLUG1  
8FGL          LDX   7  ACOMMUNE9(2) 
8FQD ...XPLUG2  
8G2=          PCAPLUG  ZBREAK   
8GFW          CALL  6  XFIND               [X3 -> OLPA  
8G^G    XTOLPA  
8HF6          LDX   2  3
8HYQ          LDN   0  1
8JDB          ADJUSTLK 2                   [UPDATE OLPA LINK
8JY2          FPUT                         [PUT OLPA ON ACTIVITY LIST   
8KCL          LINKSET  2,GVFN              [RESET PCA LINK AND GO TO SLEEP  
8KX=          COOR1X
8LBW    #   
8LWG    ZBREAK  
8MB6          STEPBACK                     [STEP BACK THE OBJECT PROGRAM
8MTQ          PROGBRKIN 
8N*B    #   
8NT2    #  THE FOLLOWING SECTION DEALS WITH ALL ILLEGAL CONDITIONS  
8P#L    NMODNR  
8PS=          LDN   3  FYMODE   
8Q?W    XILL
8QRG          CALL  6  TOPCA
8R?6          ACROSS   OLPODD,4 
8RQQ    RESVIOL 
8S=B          LDN   3  FYNOBUF  
8SQ2          BRN      XILL 
8T9L    NILLCHAR
8TP=          LDN   3  FYCHAR   
8W8W          BRN      XILL 
8W#R ...NILLCOUNT   
8WDN ...      LDN   3  FYCOUNT  
8WJK ...      BRN      XILL 
8WNG    NILLMODE
8X86          LDN   3  FYMODESEQ
8XMQ          BRN      XILL 
8Y7B    XENDLIST
8YM2          LDX   0  ACA1(2)  
8^6L          SRL   0  6
8^L=          ANDN  0  #777 
925W          SBN   0  #300 
92KG          BNZ   0  NOMON
9356          LDCT  7  #050 
93JQ          BRN      SETREP   
944B    NOMON   
94J2          LDN   3  FYENDFILE
953L          LDX   4  FTYPNO(2)
95H=          BRN      XILL 
962W    #   
96GG    #  SUBROUTINE TO RESET OLPA LINK TO START OF SEGMENT AND TRANSFER TO
9726    #  PCA BEFORE GOING ACROSS TO OLPODD TO REPORT ILLEGAL  
97FQ    #   
97^B    TOPCA   
98F2          TOPCA1   RESETLINK(1) 
98YL          EXIT  6  0
99D=    #   
99XW    #   
9=CG          MENDAREA 20,K99FHLIST 
9=X6    #   
9?BQ    #END
^^^^ ...044647370001