{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: COMPROB867)}} ====== COMPROB867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BBUS|BBUS]], [[george:macro:BC|BC]], [[george:macro:BROKIN|BROKIN]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BS|BS]], [[george:macro:BSON|BSON]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CJOBLOCK|CJOBLOCK]], [[george:macro:CLEANUP|CLEANUP]], [[george:macro:CLEANX|CLEANX]], [[george:macro:COOR3|COOR3]], [[george:macro:DISCONNECT|DISCONNECT]], [[george:macro:DOLPMON|DOLPMON]], [[george:macro:DORPMON|DORPMON]], [[george:macro:DOSPMON|DOSPMON]], [[george:macro:DOWN|DOWN]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FINDPARS|FINDPARS]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FON|FON]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FREELINK|FREELINK]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:FSHSKIP|FSHSKIP]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCORE|GETCORE]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:ISSUBRK|ISSUBRK]], [[george:macro:JBC|JBC]], [[george:macro:JMBAS|JMBAS]], [[george:macro:LIMBO|LIMBO]], [[george:macro:LONGWAIT|LONGWAIT]], [[george:macro:MBC|MBC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MHUNTX|MHUNTX]], [[george:macro:MONOUT|MONOUT]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:NAME|NAME]], [[george:macro:OFF|OFF]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTMESS|OUTMESS]], [[george:macro:OUTMESSX|OUTMESSX]], [[george:macro:OUTNULL|OUTNULL]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:PERCOUNT|PERCOUNT]], [[george:macro:PERMITBRK|PERMITBRK]], [[george:macro:READ|READ]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SKIP|SKIP]], [[george:macro:TESTBRKIN|TESTBRKIN]], [[george:macro:TESTINOP|TESTINOP]], [[george:macro:TRUEDORM|TRUEDORM]], [[george:macro:VFREEW|VFREEW]] 228Y ... SEG COMPROB,,CENT(COMMAND PROCESSOR),,G266,G400 22CW ...[ 22LS ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22TQ ...[ THIS EXCLUDES CODE UNDER #SKI G266 234N ...[ 23?L ...#OPT G266 = 0 23GJ ...#SKI G266&1 23PG ...# WITH UGUG EDIT M266 (SUPPRESS UNWANTED MONITORING FILE LISTINGS) 23RS ...#UNS G400 23W6 ...# THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK 2 23YG [ THE ENTRY POINTS 24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT 24XQ SEGENTRY K1COMPROB,QENTRY1 [ FROM COMPRO 25CB ... SEGENTRY K2COMPROB,(GEOERR) 25X2 SEGENTRY K3COMPROB,QENTRY3 [ FROM COMPRO 26BL SEGENTRY K4COMPROB,QENTRY4 [ FROM COMPRO 26W= SEGENTRY K5COMPROB,QENTRY5 [ FROM COMPRO 27*W [ 27TG [ 28*6 [ THIS SEGMENT IS ENTERED FROM COMPRO WHEN BREAK-IN IS 28SQ [ DETECTED. ACTION IS TAKEN APPROPRIATE TO THE TYPE OF 29#B [ BREAK-IN. 29S2 [ 2=?L [ 2=R= [ THESE MASKS ARE USED ON WORD JOBEVENTS IN THE ACTIVITY BLOCK 2?=W [ TO DETERMINE WHAT TYPE OF BREAK IN HAS OCCURRED 2?QG # 2#=6 [ THIS MASK WILL RETAIN THE ABANDON COMMAND,MONITORING FILE FULL, 2#PQ [ 'STOP JOB TO UNLOAD A PERIPHERAL' (OR 'UNLOAD' FOR SHORT) 2*9B [ AND MOP TERMINAL INOPERABLE BITS,IF SET . NOTE,ONLY ONE OF THESE 2*P2 [ BITS CAN BE SET AT ANY ONE TIME. 2B8L [ MASK WILL ALSO RETAIN THE FINISH ABANDON BIT AND MOP OFF/CR BIT 2B9X ...#UNS BIWRFL 2B?8 ...#SKI 2B#H MASKN #02700056 2B#J ...#UNS BIWRFL 2B#K ...( 2B#L ...# MASK WILL ALSO RETAIN WRITE-FAIL BIT 2B#M ...MASKN #02700156 2B#N ...# THIS MASK RETAINS ALL BUT WRITE-FAIL BIT 2B#P ...MASKWF #02700056 2B#Q ...) 2B#R ...# 2B#T # THIS MASK RETAINS ALL BUT MOP OFF (LIMBO) BIT 2B*2 MASKMFLI #02700016 2BCG # 2BF9 # THIS MASK RETAINS ALL BUT READFAIL BIT 2BGY MASKRF #02700006 2CMG [ THIS MASK WILL RETAIN THE MOP OFF BIT 2D76 MASKMOF #02000000 2DLQ # 2F6B [ THIS MASK WILL RETAIN THE MONITORING FILE FULL, UNLOAD 2FL2 [ AND MOP TERMINAL INOPERABLE BITS. 2G5L [ ALSO RETAINED ARE MOPOFF/CR AND FINISH ABANDON BITS 2GK= MASKAB #02300006 2H4W [ 2HJG [ THE FOLLOWING MASK WILL RETAIN THE MOP INOP AND UNLOAD BITS 2J46 [ IT ALSO RETAINS MOPOFF/CR & FINISH BITS 2JHQ MASKMON #02100006 2K3B # 2KH2 [ FOLLOWING MASK RETAINS MOP OFF/CR, UNLOAD AND MOP INOP. BITS 2L2L MASKFIN #02100004 2LG= [ FOLLOWING MASK RETAINS MOP OFF/CR AND MOP INOP. BITS 2L^W MASKUL #02100000 2MFG # 2M^6 [ THIS MASK RETAINS CONNECT AND FINISH BITS 2NDQ MASKCF #01000001 2NYB # 2PD2 [ FOLLOWING MASK IS TO ISOLATE THE PROGRAM ISSUED BIT 2PXL MASKPI #10000 2QC= # 2QWW [ THIS MASK RETAINS THE CONNECT BIT 2RBG MASKC #01000000 2RW6 # 2S*Q [ THIS MASK SETS BREAK IN BIT (B2) IN GWAIT 2T*2 [ 2TSL [ 2W#= [ THE FOLLOWING WORDS CONTAIN THE UNIVERSAL IDENTIFIERS WHICH LABEL 2WRW [ THE VARIOUS JOB ABANDONED MESSAGES IN THE MONITORING FILE SEGMENTS 2X?G # 2XR6 [ THIS IDENTIFIER LABELS THE MESSAGE 'ABANDONED BY OPERATOR 2Y=Q [ INTERVENTION' 2YQB RAB +JABANDOP 2^=2 # 2^PL [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB ABANDONED:MONITORING FILE 329= [ FULL. 32NW RMAB +JMONABAND 338G # 33N6 [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB IN LIMBO: MOP TERMINAL 347Q [ INOPERABLE' 34MB RINOPLIMBO +INOPLIMBO 3572 # 35LL [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB ABANDONED: WAITTIME 366= [ EXCEEDED' 36KW RABWAIT +JABANDWAIT 375G # 37K6 [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB ABANDONED:MOP SWITCHED OFF' 384Q RABMOF +JABANDMOF 38JB # 3942 [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB ABANDONED:CHANNEL RELEASE' 39HL RABCR +JABANDCR 3=3= # 3=GW [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB ABANDONED : FINISH ETC ' 3=PJ RFINT +JABANDFIN 3=Y= RFIN +JABFIN 3?6Y RJHUP +JHARDUPAB 3?7M ...#UNS BIWRFL 3?8B ...( 3?95 ...[ MESSAGE: 'JOB ABANDONED:IRRECOVERABLE WRITE TRANSFER FAILURE ETC' 3?9S ...RABWF +JABWF 3?=H ...) 3??B RABRF +JABANDRF 3?CS RJFZ +JFROZENAB 3?DJ [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB IN LIMBO:MOP SWITCHED OFF' 3?F# RMFLIMBO +JMFLIMBO 3?FD #UNS AV7900S 3?FJ ( 3?FN [ THIS IDENTIFIER LABELS THE MESSAGE 'JOB IN LIMBO:IDENTIFIER FREE' 3?FS RIFRLIMBO +JIFRLIMBO 3?FY ) 3?G6 [ 3?^Q [ THE FOLLOWING MASK PRESERVES ALL BUT THE STOPJOB BIT IN JMISC 3#FB MASKBRK #67777777 3#^2 [ 3*DL [ THE FOLLOWING MASK PRESERVES ALL BUT THE CONNECT BIT IN JOBEVENTS 3*Y= MASKF #76777777 3BCW [ 3CC6 MASKD #00060000 3DBB MASKLIM #00040000 3DW2 MASKBIC #77737777 [ MASKS OUT THE BREAKIN BIT 3F*L SETNB #00020000 [ THE NO-BREAKIN BIT 3FT= SABFIN #40000002 [ FINISH/ABANDON BITS 3G#W [ 3H#6 TWO +2 3K=L TEN +10 3KQ= PHIFTEEN +60/FONINTP 3L9W SPACE #20 3LPG WIN 4H NI 3M96 [ 3MNQ [ SUBROUTINES * * * * 3N8B [ 3NN2 [ SUBROUTINE TO SET INHIBIT-BREAKIN MARKER, CLEAR THE STOPJOB BIT AND 3P7L [ OUTPUT THE APPROPRIATE MESSAGE, PREPARATORY TO STOPPING A JOB 3PM= OUTMESS 3Q6W CALL 5 MCLEAR 3QLG TESTBRKIN READL 3R66 LDCT 0 #020 [ PRESERVE THE 'MOPOFF' BIT 3RKQ ANDS 0 JOBEVENTS(2) [ FOR LATER TESTING 3S5B LDCT 0 #040 [ AND SET 3SK2 ORS 0 JOBEVENTS(2) [ 'INHIBIT BREAKIN' BIT 3TJ= BRUSEN ZNOUSER 3W3W CJOBLOCK 3 3WHG LDX 0 MASKBRK(1) 3X36 ANDS 0 JMISC(3) [ CLEAR STOPJOB BIT 3Y2B ZNOUSER 3YG2 SBX 6 1 3YG? BXU 7 RABRF(1),NRFAB 3YGB FINDPARS GMON,JABAND 3YGF NRFAB 3YJH BXU 7 RAB(1),NSUB1 3YJY JMBAS XHARDUP,2,EXABTEMP,EXUSAB 3YKB JBC NTEM,2,EXABTEMP 3YKJ LDX 0 CONTEXT(2) 3YKL ANDN 0 5 3YKN BNZ 0 NFZX 3YKQ LDX 7 RJFZ(1) 3YKS BC 2,EXABTEMP 3YKW BRN NSUB1 3YKY NFZX 3YL9 OUTMESS ATEMPAB 3YM4 BRN NTEM1 3YM9 XHARDUP 3YMB LDX 7 RJHUP(1) 3YMH MBC 2,EXABTEMP,EXUSAB 3YMN BRN NSUB1 3YMX NTEM OUTNULL 3YNQ NTEM1 JBC NUSE,2,EXUSAB 3YPK OUTMESS JCOM 3YQD BRN NUSE1 3YR? NUSE OUTMESS JOPCON 3YS6 NUSE1 HUNT 3,GMON,JABAND 3YS^ BNG 3 NSUB1 3YTS OUTPARAM ANUM(3),APARA,GMON,JABAND 3YWM MFREE GMON,JABAND 3YXG NSUB1 3YYS TXU 7 RINOPLIMBO(1) 3YY^ BCS NLIMBO 3Y^6 TESTINOP 2,NINOP [J IF NOT INOP 3Y^? NLIMBO 3Y^# ...#SKI G266&1 3Y^* ...( 3Y^B ...# PRESERVE THE MESSAGE IDENTIFIER SPECIFIED IN X7 IN X5 3Y^C ...# IN ORDER THAT IT CAN BE CHECKED IN THE 'LOGOUT' CHAPTER. 3Y^D ...# 3Y^F ... LDX 5 7 3Y^G ...) 3Y^L MONOUTX 7 3^9C NINOP 3^#2 LDX 2 FX2 [TESTINOP DESTROYS X2 3^F= ADX 6 1 3^YW EXIT 6 0 42DG [ 42Y6 [ SUBROUTINE TO OUTPUT SKIP PDC 43CQ # 43XB SKIP SBX 7 FX1 44C2 OUTPAR SKIP 44WL ADX 7 FX1 45B= EXIT 7 0 45TW [ 46*G [ MAIN ROUTINE * * * * 46DL RFINAB 46HQ LDX 2 FX2 [SET TEMPORARY ABANDON 46KP LDN 0 #10 46KY ANDX 0 CONTEXT(2) [CHECK THE CONTEXT OF THE JOB & JIF 46L7 BNZ 0 RABAND [MOP JOB (IE DON'T SET 'TEMP' BIT) 46LW BS 2,EXABTEMP [BIT IF OBEYING THE FINISH 46ND LDX 7 RFINT(1) 46Q2 BRN RABAND [ABANDON COMMAND 46T6 [ 47#Q RABANDMOF 47SB LDCH 6 JSOURCE1(2) [GET PERIPHERAL TYPE 48#2 ERN 6 #74 48RL BNZ 6 RABAND 49?= LDX 7 RABCR(1) 49QW QENTRY3 [ FROM COMPRO WHEN ABANDONING 4==G RABAND 4=?X LDN 0 CPAT 4=*# STO 0 AWORK1(2) 4=BP LDN 4 0 4=D6 STO 7 ACOMMUNE1(2) 4=FH CALL 7 SEEKLEV 4=GY BRN RABNO [J IF NO INT. LEVELS 4=J* BRN Y2 4=KQ RABNO 4=M7 LDX 2 FX2 4=NJ LDX 7 ACOMMUNE1(2) 4=Q6 CALL 6 OUTMESS [ OUTPUT MESSAGE, ETC 4?9Q CALL 4 TCLEAN2 [ CLEAN UP FOR ABANDONING JOB 4?PB LDX 0 CONTEXT(2) 4#92 LDX 7 0 [KEEP COPY OF CONTEXT 4#NL ANDN 0 4 4*8= BNZ 0 OFF [ JUMP IF NOT MOP 4*MW ANDX 7 MASKBIC(1) [LOSE BRK-IN BIT 4B7G ORX 7 SETNB(1) [SET NO BREAK-IN 4BM6 STO 7 CONTEXT(2) 4C6Q LDCT 0 #020 4CLB STO 0 EXT+10(2) [ RESET THE BREAKIN-TYPE MARKER 4D62 ANDN 7 2 4DKL BNZ 7 VSOP [JUMP IF NO-USER LEVEL 4F5= ANDX 0 JOBEVENTS(2) 4FJW BNZ 0 OFF [ JUMP IF MOPOFF OR CHANNEL RELEASE 4G4G LIMBO 6 4GJ6 BNZ 6 OFF [J IF JOB IN LIMBO 4H3Q DOWN LOGOUT,4 [TO ABANDON A MOP JOB 4HHB READ ACROSS COMPRO,2 [TO READ ANOTHER COMMAND 4J32 READA ACROSS COMPRO,10 4JGL OFF ACROSS LOGOUT,3 [ SIMULATED ENDJOB 4K2= MAG ACROSS ENGAGE,30 [ TO UNLOAD A PERIPHERAL 4KFW [ 4K^G QENTRY5 [ FROM COMPRO WHEN ABANDONING A MDF IN NO-USER CONTEXT 4LF6 CALL 4 TCLEAN2 [ CLEAN UP BLOCKS FOR ABANDONING 4LYQ LDN 4 #40 [ TEST IF ONLINE PT OR CR 4MDB ANDX 4 5 4MY2 BNZ 4 MAG [ JUMP IF NOT OPS CONSOLE 4NCL VSOP ACROSS LOGOUT,7 [ TO ABANDON JOB 4NX= [ 4PBW NSTOP 4PWG ANDX 5 MASKN(1) [RETAIN ABANDON BITS 4QB6 BZE 5 PBREAKCON [JUMP IF NORMAL BREAK IN OR CONNECT 4QB= ...#UNS BIWRFL 4QBB ...( 4QBG ... LDX 7 RABWF(1) 4QBL ... ANDX 5 MASKWF(1) 4QBQ ... BZE 5 RABAND 4QBW ...) 4QC7 ANDX 5 MASKMFLI(1) 4QCG BZE 5 MFLI [J IF MOP OFF (LIMBO) 4QJR LDX 7 RABRF(1) 4QM2 ANDX 5 MASKRF(1) 4QP9 BZE 5 RABAND 4QTQ LDX 7 RAB(1) [LOAD JABANDOP 4R*B ANDX 5 MASKAB(1) 4RT2 BZE 5 RABAND [JUMP IF ABANDON COMMAND 4S#L LDX 7 RMAB(1) [LOAD JMONABAND 4SS= ANDX 5 MASKMON(1) 4T?W BZE 5 RABAND [JUMP IF MONITORING FILE FULL 4TRG LDX 7 RFIN(1) 4W?6 ANDX 5 MASKFIN(1) 4WQQ BZE 5 RFINAB [J IF FINISH ABANDON 4X=B ANDX 5 MASKUL(1) 4XQ2 BZE 5 MAG [ JUMP TO UNLOAD PERIPHERAL 4Y9L LDX 7 RABMOF(1) 4YP= ANDX 5 MASKMOF(1) 4^8W BNZ 5 RABANDMOF [J IF MOP OFF BIT SET 4^9P MFLI 4^=K LDN 0 CPAT 4^## STO 0 AWORK1(2) 4^B3 LDN 4 0 4^CQ CALL 7 SEEKLEV 4^FF BRN XIO99 4^H8 BRN Y2 4^JX XIO99 LDX 2 FX2 4^LL LDX 1 FX1 4^NG LDX 7 CONTEXT(2) [LOAD CONTEXT BITS AND JUMP TO VSOP 5286 ANDN 7 2 [IF AT NOUSER.REASON:LINE INOPERABLE 52MQ BNZ 7 VSOP [AT NOUSER. 52TN LDX 7 RINOPLIMBO(1) [LIMBO - TERMINAL INOPERABLE 533L #UNS AV7900S [FREE COMMAND ENHANCEMENT 539J ( 53CG JBC NOTIDFR,2,BRIDENTFR 53KD LDX 7 RIFRLIMBO(1) [LIMBO - IDENTIFIER FREE 53RB BRN NOTMFLI 53^# NOTIDFR 547= ) 54*? JBC NOTMFLI,2,BRMOPOFFLIM 54BB LDX 7 RMFLIMBO(1) [LIMBO - MOP SWITCHED OFF 54CG 54FP NOTMFLI 54L= CALL 6 OUTMESS 54W3 LDX 6 MASKLIM(1) 54YL ORS 6 EXT+11(2) 555W DISCONNECT [ DISCONNECT THE JOB. PUT IN LIMBO 55KG PERMITBRK [ CLEAR INHIBIT BREAKIN BIT 55XW HLSINFORM READL,LIMBO,JOBNO(2) 5656 QENTRY4 [ FROM COMPRO WHEN JOB HAS TO WAIT 56JQ LDN 7 #100 [B17 IDENTIFIES THIS CASE 574B ORS 7 EXT+11(2) [ TO FINISH ACTIVITY 57J2 WF LDX 4 AWAITEND 583L BZE 4 WB [J IF WAITTIME IS ZERO 58H= LDX 5 AWAITEND [RE-LOAD WAITTIME 592W W LONGWAIT WD,#62,,,PHIFTEEN(1) [WAIT FOR 1 MINUTE 59GG TXU 5 AWAITEND 5=26 BCS WF [J IF WAITTIME HAS BEEN CHANGED 5=FQ BCT 4 W 5=^B WB ERS 7 EXT+11(2) [UNSET B17 5?F2 LDX 7 RABWAIT(1) [ 'JOB ABANDONED' MESSAGE 5?YL BRN RABAND 5#D= WD ERS 7 EXT+11(2) [UNSET B17 5#XW CALL 5 MCLEAR [ ENSURE MULTILINERY BIT CLEAR 5*CG READL 5*X6 LDX 2 FX2 5BBQ LDCH 4 EXT+10(2) [LOAD TYPE OF UP 5BWB LDX 5 JOBEVENTS(2) 5CB2 BPZ 5 READA 5CTL QENTRY1 [ FROM COMPRO WHEN BREAK-IN DETECTED 5D*= BSON HLSBIT,NSTOP [J IF PRE-HLS 5DSW LDCT 7 #200 [SET B1 5F#G ANDX 7 5 5FS6 BZE 7 NSTOP [J IF B1(I.E.STOPJOB) NOT SET 5G?Q TXU 4 TWO(1) [2 DENOTES ENDREC 5GRB BCS SBKIN 5H?2 MHUNTW 3,CPB,CALAS 5HQL LDX 6 CPBFSD(3) 5J== BPZ 6 READ [J IF MDF 5JPW STOZ APTNECHA(3) 5K9G LDX 3 FPTR(3) 5KP6 STOZ CLBPTNECHA(3) 5L8Q SBKIN 5LNB CALL 5 MCLEAR [FREE C/CBUFF & CLEAR M-L BIT 5LW8 CALL 7 TCLEAR 5M*S ... ACROSS CONTINUE,4 5YDW PBREAKCON 5YR= TRUEDORM [INFORM LLS OF TRUE DORMANCY 5YYG TXU 4 TWO(1) 5^D6 BCS PBROKIN [J IF BROKEN IN 5^XQ MHUNTW 3,CPB,CALAS 62CB LDX 6 CPBFSD(3) 62X2 BPZ 6 READ [J IF NOT BROKEN IN 63BL STOZ APTNECHA(3) 63W= LDX 3 FPTR(3) 64*W STOZ CLBPTNECHA(3) 64TG CALL 5 MCLEAR [FREE C/CBUFF & CLEAR M-L BIT 65*6 PBROKIN 65SQ LDX 5 JOBEVENTS(2) 66#B ANDX 5 MASKCF(1) [ISOLATE CONNECT & W/FINISH BITS 66S2 BZE 5 PBR [JUMP IF ORDINARY BREAK IN 67?L ANDX 5 MASKC(1) 67R= BZE 5 WHENY [J IF W/FINISH CASE 68=W LDX 5 MASKF(1) 68QG ANDS 5 JOBEVENTS(2) [MASK CONNECT MARKER 69=6 FON #42 69PQ PCOOR3 6=9B COOR3 #43 6=P2 LDCH 5 JOBEVENTS(2) 6?8L ANDN 5 1 [MASK OFF B5 6?N= BZE 5 PCOOR3 6#7W # 6#MG [ OUTPUT JOBTYPE NOW MESSAGE 6*76 # 6*LQ OUTPAR TIMENOW,JOBMILL 6B6B LDX 4 JSOURCE3(2) 6BL2 BZE 4 XCENT [J IF CENTRAL 6C5L LDN 4 2 6CK= XCENT OUTPACK 4,1,JOBTYPE,XCENT [OUTPUT JOB TYPE-MOP OR REM-MOP 6D4W BZE 4 XCNT1 6DJG XNC OUTPACK JSOURCE3(2),1,PROPS,XNC [OUTPUT CONSOLE PROPERTY 6F46 BRN XNC1 6FHQ XCNT1 CALL 7 SKIP 6G3B XNC1 LDN 0 #1000 6GH2 ANDX 0 CONTEXT(2) 6H2L BZE 0 XSK [J IF NO CORE IMAGE 6HG= FJOCA 3,2 6H^W [ CANNOT USE OUTPMILL MACRO SINCE HAVE TO OUTPUT SKIP PDC IF ZERO 6JFG # 6J^6 LDX 0 HCLOCKTIME(3) 6KDQ LDX 1 HCLOCKTIME+1(3) 6KYB BNZ 0 NSK1 6LD2 SRA 1 5 6LXL SBN 1 1875 6MC= BNG 1 XSK 6MWW NSK1 6NBG OUTPAR PROGMILL 6NW6 BRN NSK 6P*Q XSK CALL 7 SKIP 6PTB NSK MONOUT JTYPE 6Q*2 PERCOUNT 6QSL LDCT 5 #10 6R#= ERS 5 JOBEVENTS(2) 6S?G XNOUSER 6SR6 Y15 6T=Q LDN 4 COMDAT+CBRK 6TQB STO 4 AWORK1(2) [STORE WHEN.TYPE FOR SEARCH 6W=2 LDN 4 0 [SET MKR FOR S/R 6WPL CALL 7 SEEKLEV 6X9= BRN NOWHEN 6XNW BRN Y2 6Y8G Y3 LDN 5 0 [SET WHENEVER MKR 6YN6 Y2 LDN 1 3 [SET PARAM FOR CLEANX 6^7Q CALL 4 TCLEAN1 [S/R FOR CLEANING UP 6^MB BNG 5 Y11 [J IF MUST RETURN TO I.I. LEVEL 7272 CALL 7 SETCREADL [S/R TO RENAME WHENEVER BLOCK 72LL LDN 4 0 [MKR FOR S/R 736= CALL 7 TCLEAR [S/R TO CLEAR BRK-IN BITS 73KW ACROSS COMPRO,4 745G [ THE FOLLOWING PATH IS FOLLOWED WHEN FINISH COMMAND HAS BEEN ISSUED 74K6 [ A SEARCH IS MADE FOR A WHEN/FINISH BLOCK - BUT FOR SYSTEM ISSUED 754Q [ JOBS WHEN FINISHED BIT IS SET, A SEARCH IS MADE FOR A WHEN/FINISHED 75JB [ BLOCK 7642 [ N.B. IF A INT. ISSUED LEVEL WITH A BREAK-IN LABEL IS ENCOUNTERED 76HL [ DURING SEARCH - A RETURN IS FIRST MADE TO THIS LABEL - IF A WHENEV. 773= [ BLOCK IS KNOWN TO EXIST AT A HIGHER LEVEL 77GW WHENY 77QN BC 2,EXWENFIN 782G LDX 4 CONTEXT(2) 78G6 LDN 0 COMDAT+CFIN 78^Q BPZ 4 Y4 [J IF NOT SYS. ISSUED 79FB LDCT 5 #40 79^2 ANDX 5 FINISH [ISOLATE FINISHED BIT 7=DL BZE 5 Y4 [FINISHED NOT SET 7=Y= ADN 0 CFIND-CFIN [LOOK FOR WE/FINISHED BLOCK 7?CW Y4 7?XG STO 0 AWORK1(2) [STORE TYPE OF BLOCK FOR WHEN/SEARCH 7#C6 STOZ AWORK2(2) 7#WQ LDN 4 1 [SET MKR INDICATING W/FINISH 7*BB Y6 CALL 7 SEEKLEV 7*W2 BRN Y12 7B*L BRN Y7 [J IF SPEC. I.ISS LEVEL REACHED 7BT= SMO FX2 [WHENEVER FOUND 7C#W LDX 7 AWORK2 7CSG BZE 7 Y3 [J IF WHENEVER WAS 1ST FOUND 7D#6 LDX 5 GSIGN [SET INT ISS MARKER 7DRQ LDX 6 7 [AND RETURN TO SPEC INT ISS LEVEL 7F?B BRN Y2 7FR2 Y11 MHUNTW 2,CPB,CALAS 7G=L LDX 3 FPTR(2) [PTR TO CLB 7GQ= CALL 5 UPLEV [S/R FOR GOING UP A CP.LEVEL 7H9W ISSUBRK 7HPG [ NO WHENEVER/FINISH FOUND 7J96 Y12 7JNQ LDX 4 GSIGN [MKR TO AVOID BROKIN IN S/R 7K8B CALL 7 TCLEAR [S/R TO CLEAR BRK-IN BITS. 7KN2 LDX 4 CONTEXT(2) 7L7L BPZ 4 TCON1 [ JUMP IF NOT SYSTEM ISSUED 7LM= LDX 0 AWORK1(2) 7M6W ERN 0 COMDAT+CFIN 7MLG BZE 0 WFERR [J IF NO COMDAT/CFIN FOUND 7N66 LDX 4 JOBEVENTS(2) [ JUST ATTEMPTED TO BECOME FULLY 7NKQ BNG 4 READL [ STARTED 7P5B LDX 4 SABFIN(1) [ LOAD FINISH/ABANDON BITS 7PK2 STO 4 JOBEVENTS(2) 7Q4L BRN READL 7QJ= Y7 SMO FX2 7R3W STO 6 AWORK2 [STORE INT ISS LEVEL 7RHG BRN Y6 [CONTINUE SEARCH -THERE MAY BE A 7S36 [WHENEVER FINISH BLOCK AT A HIGHER 7SGQ [LEVEL 7T2B TCON1 7TG2 ANDN 4 #10 [ IF MOP, 7T^L BNZ 4 TCONT [ CONTINUE 7WF= LDX 7 RFIN(1) [ ELSE 7WYW BRN RABAND [ ABANDON 7XDG WFERR 7XY6 GEOERR 1,WHEN FIN 7YCQ [ 7YJY ...TCONT 7YQ6 ... ACROSS CONTINUE,5 7YXB [ 8MB6 [ 8MTQ PBR 8NT2 BRUSEN XNOUSER 8P#L FJOCA 3,2 [ POINT X3 AT JOB BLOCK 8PS= LDCT 4 #100 8Q?W ANDX 4 JMISC(3) [ ISOLATE STOPJOB BIT 8QRG BNZ 4 Y15 [ JUMP IF NOT PSEUDO-BREAKIN 8R?6 NOWHEN 8RQQ LDN 4 6 [ SET UP AN OUTPUT PARAMETER 8S=B OUTBLOCK 4 [ BLOCK OF SIX WORDS 8SQ2 LDCH 4 EXT+10(2) [L0AD TYPE OF UP 8T9L LDX 5 EXT+10(2) 8TP= ANDN 5 #7777 [MASK OFF 8W8W TXU 4 TWO(1) 8WNG BCC NULL [J IF MULTILINE FROM CONSOLE 8X86 SMO 4 8XMQ LDX 6 TBREAK-1(1) [LOAD BREAK IN MESSAGE 8Y7B OUTMESSX 6 8YM2 LDX 7 CPLEV(2) [LOAD CURRENT CPL 8^6L SBX 7 5 8^L= ADN 7 1 925W SLL 7 2 92KG GETCORE 7,1 [GET SMFFICIENT CORE FOR CINC 9356 FINDCORE 3 93JQ NAME 3,COMDAT,CINC [NAME BLOCK 944B ADN 3 A1 94J2 MHUNTW 2,CLB 953L LDN 0 0 95H= LDX 7 ANUMCHA(2) 962W SMO FX2 96GG STO 2 EXT+6 9726 ADN 2 CLBFIR 97FQ BRN X200 97^B NULL 98F2 OUTNULL [OUTPUT TWO NULL 98YL OUTNULL [PARAMETERS 99D= BRN POOD 99XW XQ LDX 2 FPTR(2) 9=CG LDX 7 ATYPE(2) 9=X6 SRL 7 12 9?BQ ERN 7 CLB 9?WB BNZ 7 XQ [ J IF NOT LINE BUFFER 9#B2 XZONE 9#TL [ THIS SECTION COMPILES THE COMMAND PROCESSOR HIERARCHY 9**= LDX 7 ANUMCHA(2) 9*SW SMO FX2 9B#G STO 2 EXT+6 9BS6 ADN 2 CLBFIR 9C?Q LDX 6 WIN(1) [LOAD IN CHARS 9CRB LDN 1 4 9D?2 XPON DCH 6 0(3) [DEPOSIT CHARS IN CINC 9DQL BCHX 3 £ 9F== ADN 0 1 [UPDATE COUNT IN CINC 9FPW SRL 6 6 [GET NEXT CHAR 9G9G BCT 1 XPON 9GP6 LDX 1 FX1 9H8Q BRN X200 9HNB X300 LDCH 6 0(2) [THIS ROUTINE 9J82 BCT 7 £ 9JML BCHX 2 £ [SEARCHES THROUGH 9K7= TXU 6 SPACE(1) [LABEL AND VERB 9KLW BCS X300 9L6G X200 LDCH 6 0(2) [LHIS 9LL6 BCT 7 £ 9M5Q BCHX 2 £ [ROUTINE 9MKB TXU 6 SPACE(1) [FINDS 9N52 BCC X200 [THE LABEL 9NJL TXL 6 TEN(1) 9P4= BCS X300 9PHW ADN 7 1 9Q3G BRN X650 9QH6 X500 LDCH 6 0(2) 9R2Q BCHX 2 £ [THIS ROUTINE 9RGB TXU 6 SPACE(1) [STORES 9S22 BCC X400 [THE 9SFL X650 9S^= DCH 6 0(3) [VERB 9TDW BCHX 3 £ [IN CINC 9TYG ADN 0 1 9WD6 BCT 7 X500 9WXQ X400 9XCB SMO FX2 9XX2 LDX 2 EXT+6 9YBL SMO BPTR(2) 9YW= LDEX 7 CPBCPLEV [GET CPLEVEL 9^*W TXU 7 5 9^TG BCS XQ =2*6 LDX 7 0 =2SQ OUTPARAM 7,A1,COMDAT,CINC [OUTPARAM THE CINC =3#B VFREEW COMDAT,CINC =3S2 POOD =3WK ...#UNS G400 =3^8 ...( =43R ... DOLPMON 6 =46B ... DOSPMON =48^ ...) =4?L MONOUT BROKIN [OUTPUT MESSAGE =4DS ...#UNS G400 =4L2 ... DORPMON 6 =4R= STOZ JOBEVENTS(2) [ZEROISE JOBEVENTS =5QG BRUSEN X =6=6 CJOBLOCK 3 =6PQ LDX 6 MASKBRK(1) =79B ANDS 6 JMISC(3) [ENSURE BREAKIN MARKER CLEAR =7P2 X BNZ 5 PFREEONE =88L LDX 5 CPLEV(2) =8N= ADN 5 1 =97W STO 5 CPLEV(2) =9MG DEX 5 EXT+10(2) [ STORE CLEANUP LEVEL ==76 ORX 4 GSIGN ==LQ LDX 6 MASKD(1) =?6B ERS 6 CONTEXT(2) [RESET CONTEXT BITS =??J ...#UNS G400 =?DQ ... LDN 7 0 [MARKER FOR COMPRO =?L2 ... ACROSS COMPROA,2 =#5L PFREEONE =#K= CLEANUP 5,3 =*4W LDX 5 EXT+3(2) [COUNT OF I.ISS LEVELS CLEARED =*JG BZE 5 NOII =B46 NAGAIN =BHQ FREELINK [FREE I.ISS LINK =C3B BCT 5 NAGAIN =CH2 NOII =D2L MHUNTW 2,CLB =DG= STOZ CLBPTNECHA(2) =D^W SMO FX2 =FFG LDX 5 EXT+10 =F^6 ANDN 5 #7777 [RETAIN TOP BREAK-IN LEVEL =GDQ SMO FX2 =GYB STO 5 CPLEV [RESET CP LEVEL =HD2 BRN READ =HXL TBREAK =JC= +AFTER =JWW +0 =KBG +BEFORE =KW6 +ABAND =L*Q +JURING =LTB [ S/R TO FIND A WHENEVER LEVEL OR AN INT-ISSUED LEVEL =M*2 [ ON ENTERING S/R X4 IS 0,1 OR -VE =MSL [ IF X4=0 ,ON FINDING MACRO LEVEL WITH NO WHENEVER SET BRK-IN CHAR IN =N#= [ EXT+10 IS SET TO 3 I.E. BRK-IN BEFORE. THIS IS FOR CASE OF =NRW [ BRK-ING IN ON PROG.ISSUED MACRO. - W/BRK CASE =P?G [ IF X4=1 ,THIS MEANS ABOVE SEARCH IS OMITTED , AND ALSO ONLY SPEC. =PR6 [ INT.ISSUED LEVELS CAUSE EXIT I.E. THOSE WITH BRK-IN LABEL- =Q=Q [ THIS IS BECAUSE FINISH CAUSES BRK-IN AND SO MUST RETURN TO =QQB [ THE BRK-IN LABEL BEFORE TAKING W/FINISH ACTION AT A HIGHER =R=2 [ LEVEL - W/FINISH CASE =RPL [ IF X4 IS -VE THIS IS COMERR CASE SO EXIT AT WHENEVER OR ANY INT ISS =S9= [ LEVEL. =SNW SEEKLEV =T8G LDX 2 FPTR(2) =TN6 LDX 0 ATYPE(2) =W7Q SRL 0 12 [ FIND NEXT CPB/CALAS =WMB ERN 0 CPB+CALAS [ BLOCK =X72 BNZ 0 SEEKLEV =XLL LDEX 6 CPBCPLEV(2) [ISOLATE CP LEVEL =Y6= LDCT 5 #600 =YKW ANDX 5 CPBCPLEV(2) [ISOLATE INT ISS BITS =^5G BZE 6 SEEK1 [J IF ZERO LEVEL REACHED =^K6 BPZ 5 SEEK2 [J IF NOT INT ISSUED ?24Q BNG 4 SEEK3 [J IF WANT TO EXIT FOR ANY I.I. LEV. ?2JB SLL 5 1 ?342 BPZ 5 SEEKLEV [J IF II.LEVEL HAS NO BRK-IN LABEL ?3HL SEEK3 EXIT 7 1 [I.ISS. EXIT ?43= SEEK2 ?4GW LDX 0 CPBFSD(2) ?52G BPZ 0 SEEK4 [J IF MACRO LEVEL ?5G6 SEEK1 EXIT 7 0 [NO WHEN/INT ISS LEVEL ?5^Q SEEK4 ?6FB CALL 5 WHENEVER [SEARCH FOR WHENEVER ?6^2 EXIT 7 2 [WHENEVER FOUND ?7DL BNZ 4 SEEKLEV [J IF NOT W/BRK CASE ?7Y= SMO FX2 ?8CW LDX 0 CONTEXT ?8XG SMO FX1 ?9C6 ANDX 0 MASKPI ?9WQ BZE 0 SEEKLEV ?=BB LDN 0 3 ?=W2 LDX 3 FX2 [ RESET TO BROKEN ??*L DCH 0 EXT+10(3) [ IN BEFORE ??T= BRN SEEKLEV [PROG. ISSUED MACRO ?##W # ?#SG [ S/R TO SEARCH FOR A WHENEVER BLOCK OF THE SAME TYPE AS HELD IN ?*#6 [ AWORK1 ?*RQ [ ON ENTRY TO S/R X2 POINTS TO A CPB/CALAS AT A MACRO LEVEL ?B?B # ?BR2 WHENEVER ?C=L LDX 3 FPTR(2) ?CQ= LDN 1 JWHEN [POSS NO. OF WHENEVER BLOCKS ?D9W WHEN1 ?DPG LDX 3 FPTR(3) ?F96 LDX 0 ATYPE(3) ?FNQ SRL 0 12 ?G8B SMO FX2 ?GN2 TXU 0 AWORK1 ?H7L BCS WHEN2 [J IF NOT REQ. TYPE ?HM= EXIT 5 0 [WHENEVER FOUND ?J6W WHEN2 ?JLG ERN 0 CPB+CALAS ?K66 BZE 0 WHEN3 [J IF NEXT /CALAS REACHED ?K7H FSHCODE AORB ?K8Y ( ?K=* # ?K?Q # FOR SHARED FILESTORE WE CANNOT GUARANTEE THAT THERE WILL NOT ?K*7 # BE ANY SPURIOUS BLOCKS BETWEEN THE CLB ANY ANY 'WHENEVER' BLOCKS ?KBJ # SO WE ALWAYS SEARCH UP TO THE NEXT CPB?CALAS BLOCK. ?KC^ # ?KFB BRN WHEN1 ?KGR ) ?KJ8 FSHSKIP ?KKQ BCT 1 WHEN1 [-SO SEARCH MUST STOP ?L5B WHEN3 ?LK2 EXIT 5 1 [NO WHENEVER FOUND ?M4L # ?MJ= [ S/R TO FIND WHENEVER BLOCK (TYPE IN AWORK1) AND RENAME IT ?N3W [ AN ADATA/CREADL BLOCK. X2 MUST = FX2 ?NHG # ?P36 SETCREADL ?PGQ LDX 0 AWORK1(2) ?Q2B SLL 0 12 ?QG2 MHUNTX 3,0 ?Q^L NAME 3,ADATA,CREADL ?RF= CHAIN 3,FX2 ?RYW EXIT 7 0 ?SDG # ?SY6 [ S/R TO CLEAR THE BREAKIN BITS ?TCQ [ X2 MUST POINT TO FX2 AND X1 MUST =FX1 ?TXB [ BROKIN MACRO WHICH CLEARS MOP BREAKIN BIS IS ONLY ISSUED FOR ?WC2 [ PHYSICAL BRK-IN ON MOP CONSOLE. ?WWL # ?XB= TCLEAR ?XTW LDX 2 FX2 ?Y*G STOZ JOBEVENTS(2) [CLEAR BRK-IN WORD IN CPAT ?YT6 #SKI ANOUSER ?^#Q BRUSEN YNOUSER ?^SB FJOCA 3,2 [FIND THE JOBBLOCK #2#2 LDX 1 FX1 #2RL LDX 6 MASKBRK(1) #3?= ANDS 6 JMISC(3) [CLEAR BRK-IN BIT IN JOBBLOCK #4=G YNOUSER #4Q6 BNG 4 TCL1 [J IF W/FINISH CASE #59Q SBX 7 FX1 #5PB BROKIN [CLEAR MOP BRK-IN BITS. #692 ADX 7 FX1 #6NL TCL1 #78= EXIT 7 0 #7MW # #87G [ S/R FOR CLEANING UP TO CPLEVEL GIVEN IN X6 AND RESETTING CPLEV #8M6 [ IN MOST S/R MUST ALSO CHECK FOR I.I LEVELS CLEARED OUT & OBEY A #96Q [ FREELINK FOR EACH ONE #9LB TCLEAN2 #=62 LDN 1 0 #=KL LDN 6 0 #?5= TCLEAN1 #?JW ORX 4 GSIGN [MARK LINK TO CHECK FOR I.I.LEVELS ##4G TCLEAN ##J6 SBX 4 FX1 #*3Q CLEANX 6,1 [CLEANUP CPAT CHAIN #*HB STO 6 CPLEV(2) #B32 BPZ 4 TCLEAN6 [J IF NO NEED TO CHECK FOR I.I.LEVELS #BGL LDX 6 EXT+3(2) [COUNT OF I.I.LEVS FREED #C2= BZE 6 TCLEAN5 #CFW TCLEAN4 #C^G FREELINK #DF6 BCT 6 TCLEAN4 #DYQ TCLEAN5 #FDB ERX 4 GSIGN [UNSET B0 #FY2 TCLEAN6 #GCL ADX 4 FX1 #GX= EXIT 4 0 #HBW # #HWG [ S/R FOR REDUCING CPLEV AND RESETTING AMFMSK FOR THE HIGHER LEVEL #JB6 [ IN MOST CASES S/R ALSO FREES CPB/CALAS AND CLB PAIR - ON ENTRY #JTQ [ X2 POINTS TO /CALAS AND X3 TO CLB #K*B # #KT2 UPLEV FREECORE 2 [FREE /CALAS #L#L FREECORE 3 [FREE CLB #LS= UPLEV1 #M?W LDN 6 1 #MRG SBS 6 CPLEV(2) [REDUCE CPLEV BY 1 #N?6 MHUNTW 3,CPB,CALAS #NQQ LDX 6 CMFMSK(3) [ RESET AMFMSK TO CMFMSK AT CURRENT #P=B STO 6 AMFMSK(2) [ NEW LEVEL #PQ2 EXIT 5 0 #Q9L # #QP= [ S/R TO FREE COMDAT/CBUFF AND CLEAR THE MULTILINERY BIT #R8W # #RNG MCLEAR #S86 BBUS 2,EXT+11(2),NOMUL [ SKIP IF NOT MULTILINERY #SMQ HUNTW 3,COMDAT,CBUFF [ IF NO BLOK, ML BIT MAY STILL BE SET #T7B BNG 3 NFND [ EG ON ABANDONING, SO J TO CLEAR I #TM2 FREECORE 3 [ FREE COMDAT/CBUFF BLOC #W6L NFND LDCH 4 EXT+11(2) [ CLEAR MULTILINERY BIT #WL= ANDN 4 #67 #X5W DCH 4 EXT+11(2) #XKG NOMUL EXIT 5 0 #Y56 # #YJQ MENDAREA 50,K99COMPROB #^4B #END ^^^^ ...21510611000500000000