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