{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FHLIST867)}}
====== FHLIST867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADJUSTLK|ADJUSTLK]], [[george:macro:BITDEFS|BITDEFS]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:CAPCA|CAPCA]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHECKB|CHECKB]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR1X|COOR1X]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FINDACTNO|FINDACTNO]], [[george:macro:FINMOVE|FINMOVE]], [[george:macro:FINMVCH|FINMVCH]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT|HUNT]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:MBC|MBC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NIPENDLF|NIPENDLF]], [[george:macro:NIPLINES|NIPLINES]], [[george:macro:NIPREP|NIPREP]], [[george:macro:NIPSTART|NIPSTART]], [[george:macro:OLPEND|OLPEND]], [[george:macro:PCAPLUG|PCAPLUG]], [[george:macro:PMODES|PMODES]], [[george:macro:PROGBRKIN|PROGBRKIN]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:STEPBACK|STEPBACK]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPCA|TOPCA]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:UNPLUG|UNPLUG]], [[george:macro:XWRONG|XWRONG]]
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