(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
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