{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMJOBS866)}}
====== PMJOBS866 ======
(George Source)
**Macros used:** [[george:macro:JENVNOT|JENVNOT]], [[george:macro:MILL|MILL]], [[george:macro:NAME|NAME]], [[george:macro:OCPSMILL|OCPSMILL]], [[george:macro:ON|ON]], [[george:macro:P|P]], [[george:macro:PMCORES|PMCORES]], [[george:macro:PMOVE|PMOVE]], [[george:macro:SEGENTRY|SEGENTRY]]
23YG #OPT K0PMJOBS=0
24D6 #LIS K0PMJOBS>K0POST>K0ALLGEO
24XQ #
25CB ...#SEG PMJOBS84 [KAREL KOSKUBA - DIAG
25X2 #
26BL # THIS SEGMENT GIVES A LISTING (PRIOR TO THE POSTMORTEM LISTING) OF
26W= # ALL JOBS IN THE SYSTEM AT THE TIME OF THE ENTRY TO POSTMORTEM. IF
27*W # NO LP IS AVAILABLE THE INFORMATION IS OUTPUT ON THE OPERATORS
27TG # CONSOLE
28*6 #
28SQ 8HPMJOBS
29#B #
29S2 # ENTRY POINT TABLE
2=?L #
2=R= ... SEGENTRY K1PMJOBS,XK1PMJOBS
2?QG #
2#=6 XHEADA +16,16H^*JOBS IN SYSTEM
2#PQ XHEADB +23,23H^* JOB NAME,:USER NAME
2*9B NONE +8,8H^* NONE
2*P2 XARROW 4H^*
2B8L XLOST +52,40H^* DUE TO CORRUPTION THIS LIST MAY BE I
2BN= 12HNCOMPLETE ^*
2C7W #SKI G3
2CMG XHEADC 40H GEORGE3 LOADED AT ON
2D76 #SKI G4
2DLQ XHEADC 40H GEORGE4 LOADED AT ON
2DN3 ...XMILL1 16HDME MILL PERCENT
2DP# ...XMILL2 8HAGE IS
2DQK ...XMILL3 20HAGES ARE : OVERALL
2DRW ...XMILL4 4H,OCP
2DT7 ...XPERCENT 4H %
2DWD ...XLPMOD +0
2DXP ...XOCPNO +0
2D^2 ...XLPMAX +0
2F2? ...ZERO +0
2F3J ...SAVE5 +0
2F4T ...SAVE6 +0
2F6B SPACE #20
2FL2 SPACEFUL #20202020
2G5L XCOMCOL 4H,:
2GK= XBACK +0 [TO HOLD ADDR. OF PREVIOUS BLOCK ON
2H4W [CHAIN
2HJG XFIN +0 [IF POSITIVE =BACKWARD CHAINING
2J46 XBHLSQ +BHLSQ
2JHQ XBASE +BJOBQ
2K3B NEXT +0 [TO HOLD ADDR. OF NEXT BLOCK IN CHAIN
2KH2 XCOUNT +0 [COUNT OF NO. OF JOBS IN SYSTEM
2L2L X45 +45
2LG= XLINK +0
2L^W QIND +0 [SET 0 WHEN SEARCHING HLSQ
2MFG XCRUPT +0 [ INDICATES EITHER JOBQUEOR HLSQ CRU
2M^6 P 8HSAVED
2NDQ Q 4HMOP
2NYB [
2PD2 [ ROUTINE TO GET NEXT BLOCK ON CHAIN WHEN FORWARD CHAINING
2PXL [ ENTRY X2=ADDR. OF CURRENT BLOCK
2QC= [ EXIT 0 1 IF FORWARD & BACKWARD POINTERS CORRECT
2QWW [ X2,X3=ADDR. OF NEXT BLOCK
2RBG [ X0=LINK
2RW6 [ EXIT 0 0 IF BREAK IN CHAIN DETECTED
2S*Q [ X3=ADDR. OF NEXT BLOCK
2STB [ (SEARCHA:ENTRY POINT FOR FIRST BLOCK ON CHAIN
2T*2 [
2TSL SEARCH
2W#= LDX 3 BPTR(2)
2WRW ... TXU 3 XBACK(1) [J IF BPTR IN CURRENT
2X?G BCS S1 [BLOCK INCORRECT
2XR6 SEARCHA
2Y=Q ... STO 2 XBACK(1)
2YQB LDX 3 FPTR(2) [GET ADDR. OF NEXT BLOCK
2^=2 S3 PMCORES 3,S1
2^PL ... TXL 3 X45(1)
329= BCS S1
32NW S2 LDX 2 3
338G EXIT 0 1
33N6 S1 EXIT 0 0 [BREAK IN CHAIN
347Q [
34MB [ ROUTINE TO GET ADDR. OF NEXT BLOCK IN CHAIN WHEN BACKWARD CHAINING
3572 [ ENTRY AND EXIT AS SEARCH
35LL [ (SEARCHC:ENTRY POINT FOR FIRST BLOCK ON CHAIN
366= [
36KW SEARCHB
375G LDX 3 FPTR(2)
37K6 ... TXU 3 XBACK(1) [J IF FPTR IN CURRENT
384Q BCS S1 [BLOCK INCORRECT
38JB SEARCHC
3942 ... STO 2 XBACK(1)
39HL LDX 3 BPTR(2) [GET ADDR. OF NEXT BLOCK
3=3= BRN S3
3=GW [
3?2G [
3?G6 [ ROUTINE TO GET JOB AND USER NAME FROM NEXT BLOCK IN JOB Q OR HLSQ
3?^Q [ ENTRY NEXT=START ADDR. OF CURRENT BLOCK IN QUEUE
3#FB [ EXIT NEXT=UPDATED TO FOLLOWING BLOCK
3#^2 [ X6=NO. OF CHARS. IN JOB,:USER NAME
3*DL [ ALL OTHER ACCS UNDEFINED
3*Y= [ JOB & USER NAMES STORED IN PRINT BUFFER STARTING AT 3RD WORD
3BCW [
3BXG NAMEJOB
3CC6 [
3CWQ [ GET ADDR. OF NEXT BLOCK ON QUEUE
3DBB [
3DW2 ... STO 7 XLINK(1) [STORE LINK
3F*L ... LDX 2 NEXT(1)
3FT= ...N LDN 3 SEARCH(1)
3G#W ... LDX 7 XFIN(1)
3GSG BZE 7 N1 [J IF FORWARD CHAINING
3H#6 ... LDN 3 SEARCHB(1)
3HRQ N1 CALL 0 (3) [ADDR. OF NEXT BLOCK
3J?B BRN N4 [J IF BREAK IN CHAIN
3JR2 ... TXU 2 XBASE(1)
3K=L BCS N5 [J IF NOT BASE OF QUEUE
3KQ= [
3L9W [ TEST & EXIT IF BOTH HLSQ & JOB QUEUE SCANNED
3LPG [
3M96 ...N2 LDX 7 QIND(1)
3MNQ BZE 7 N3 [J IF HLSQ TO BE SCANNED
3N8B ... LDX 7 XLINK(1)
3NN2 EXIT 7 1
3P7L [
3PM= [ SET TO SCAN HLSQ
3Q6W [
3QLG ...N3 LDX 2 XBHLSQ(1) [BASE OF Q
3R66 ... STO 2 XBASE(1)
3RKQ ... STO 2 QIND(1) [Q INDICATOR
3S5B ... STOZ XFIN(1) [RESET FORWARD/BACKWARD CHAINING IND.
3SK2 ... LDN 3 SEARCHA(1)
3T4L BRN N1 [J TO GET ADDR. OF 1ST BLOCK IN Q
3TJ= [
3W3W [ IF BREAK IN CHAIN
3WHG [
3X36 ...N4 LDX 7 XFIN(1)
3XGQ BNZ 7 N2 [J IF THIS IS 2ND BREAK
3Y2B LDN 7 1
3YG2 ... STO 7 XFIN(1) [SET BACKWARD CHAINING IND
3Y^L ... LDX 2 XBASE(1) [BASE OF Q
3^F= ... LDN 3 SEARCHC(1) [J TO GET ADDR. OF
3^YW BRN N1 [1ST BLOCK ON Q BACKWARD CHAINING
42DG [
42Y6 [ IF POINTERS TO NEXT BLOCK OK
43CQ [
43XB N5 LDX 3 FPTR(2)
44C2 ... LDX 4 XFIN(1)
44WL ... BNZ 4 SS1
45B= LDX 3 BPTR(2)
45TW ...SS1 TXU 3 XBACK(1)
46*G BCC NN5 [ IS AT LEAST THE BPTR OK FOR THIS BL
46T6 LDN 3 1 [ NO SO SET FLAG
47#Q ... STO 3 XCRUPT(1)
47SB BRN N4 [ AND DON'T BOTHER SEAECHING ANY MORE
486R ...NN5 LDX 7 QIND(1)
48F8 ... STO 2 NEXT(1) [ SAVE THIS ADDRESS
48RL BNZ 7 N9 [J IF SCANNING HLSQ
49?= LDX 7 JMISC(2)
49QW BNG 7 X
4==G ... LDN 1 Q(1)
4=Q6 STO 2 3
4?9Q LDX 2 JOZ
4?PB ADN 2 2
4#92 BCHX 2 £
4#NL MOVE 1 1
4*8= STO 3 2
4*MW X LDN 3 JNAME(2) [START OF JOB NAME
4B7G LDN 7 JUSER(2) [START OF USER NAME
4BM6 [
4C6Q [ MOVE JOB & USER NAMES INTO OUTPUT BUFFER
4CLB [
4D62 N10 LDN 6 12 [CHAR. COUNT
4DKL ... LDX 2 JOZ
4F5= ... ADN 2 4
4FJW ... BCHX 2 £ [OUTPUT BUFFER POINTER
4G4G N7 LDCH 5 0(3) [GET NEXT CHAR.
4GBX ... LDX 1 FXPM1
4GP# ... TXU 5 SPACE(1)
4H3Q BCC N8 [J IF CHAR. = SPACE
4HHB ... DCH 5 0(2) [DEPOSIT IN OUTPUT BUFFER
4J32 ... BCHX 2 £
4JGL BCHX 3 £
4K2= BCT 6 N7 [FALL THROUGH WHEN 12 CHARS. DEPOSITD
4KFW N8 SBN 6 34
4K^G NGX 6 6 [NO. OF CHARS. IN OUTPUT BUFFER
4LBG ... LDN 1 XCOMCOL(1)
4LRG ... MVCH 1 2 [MOVE ',:' INTO OUTPUT BUFFER
4M8G ... LDX 1 7
4MKG ... MVCH 1 12 [MOVE USER NAME INTO OUTPUT BUFFER
4N2G ... LDX 1 FXPM1
4NCL LDN 0 1
4NX= ... ADS 0 XCOUNT(1) [COUNT OF JOBS
4PBW ... LDX 7 XLINK(1)
4PWG ... EXIT 7 0
4QB6 [
4QTQ [ IF SCANNING HLSQ
4R*B [
4RT2 N9 LDX 7 HLSYONQ(2)
4S#L BPZ 7 N
4SS= STO 2 3
4T?W LDX 2 JOZ
4TRG ADN 2 2
4W?6 BCHX 2 £
4WQQ ... LDN 1 P(1)
4X=B MOVE 1 2
4XQ2 STO 3 2
4Y9L LDN 3 HLSJNAM(2) [START OF JOB NAME
4YP= LDN 7 HLSUNAM(2) [START OF USER NAME
4^8W BRN N10
4^NG [
4^NP ...#
4^NY ...# ROUTINE TO INSERT OCP NO. AND MILL % IN PRINT LINE AND PRINT
4^P7 ...# LINE IF NECESSARY
4^PB ...# THIS ROUTINE IS CALLED FROM THE OCPSMILL MACRO
4^PK ...# ONLY APPLICABLE TO CME DUALS ENVIRONMENT
4^PS ...# ENTRY X7 LINK
4^Q3 ...# X4 CONTAINS MILL % INSERTED BY OCPSMILL MACRO
4^Q= ...# XOCPNO CONTAINS OCP NO. INSERTED BY OCPSMILL MACRO
4^QF ...# X0,X5-6 ARE USED BY MACRO
4^QN ...# EXIT X2-4 UNDEFINED
4^QX ...# X0,X5-7 AS ON ENTRY
4^R6 ...#
4^R* ...XOCPRNT
4^RJ ... STO 7 XLINK(1) [SAVE LINK
4^RR ... STO 5 SAVE5(1) [PRESERVE X5&6
4^S2 ... STO 6 SAVE6(1)
4^S9 ... LDX 2 XLPMOD(1) [LOAD BUFFER ADDRESS
4^SD ... LDX 6 XMILL4(1) [INSERT ',OCP' IN
4^SM ... STO 6 0(2) [PRINT BUFFER
4^SW ... LDX 6 XOCPNO(1) [LOAD OCP NO.
4^T5 ... CALL 7 (JGNO1) [CONVERT TO DECIMAL
4^T# ... SLC 5 12 [GET SPACES ON RIGHT
4^TH ... STO 5 1(2)
4^TQ ... LDX 6 4 [LOAD MILL %
4^T^ ... CALL 7 (JGNO1) [CONVERT TO DECIMAL
4^W8 ... SLC 5 6 [GET SPACE ON RIGHT
4^WC ... LDX 7 XPERCENT(1) [LOAD % SIGN
4^WL ... DCH 7 5 [INSERT ON RIGHT
4^WT ... STO 5 2(2) [INSERT MILL % IN BUFFER
4^X4 ... ADN 2 3 [INCREASE BUFFER ADDR
4^X? ... STO 2 XLPMOD(1)
4^XG ... LDX 2 XLPMAX(1) [INCREASE COUNT OF OCP'S
4^XP ... ADN 2 1 [INSERTED IN BUFFER
4^XY ... STO 2 XLPMAX(1)
4^Y7 ... SBN 2 6 [HAVE WE FILLED PRINT LINE
4^YB ... BNZ 2 XEXIT [NO
4^YK ... STOZ XLPMAX(1) [YES
4^YS ... CALL 7 (JPRINT1) [PRINT LINE
4^^3 ... LDX 2 JLPMOD [RESET BUFFER ADDR
4^^= ... ADN 2 11
4^^F ... STO 2 XLPMOD(1)
4^^N ...XEXIT
4^^X ... LDX 5 SAVE5(1)
5226 ... LDX 6 SAVE6(1)
522* ... LDX 7 XLINK(1)
522J ... EXIT 7 0
522R ...#
5232 ...# ROUTINE TO INSERT OVERALL MILL % IN PRINT BUFFER
5239 ...# CME ENVIRONMENT ONLY
523D ...# ENTRY X7 LINK
523M ...# EXIT X0,X3,X5-7 UNDEFINED
523W ...#
5245 ...XOVMILL
524# ... STO 7 XLINK(1) [SAVE LINK
524H ... LDN 5 0 [CLEAR FOR MILL MACRO
524Q ... LDN 6 0
524^ ... MILL 6,ZERO(1),5 [INTERROGATE OVERALL MILL %
5258 ... CALL 7 (JGNO1) [RESULT X6 CONVERT TO DECIMAL
525C ... SLC 5 6 [GET SPACE ON RIGHT
525L ... LDX 7 XPERCENT(1) [INSERT % SIGN ON RIGHT
525T ... DCH 7 5
5264 ... LDX 3 XLPMOD(1)
526? ... STO 5 0(3) [INSERT IN PRINT BUFFER
526G ... LDX 7 XLINK(1)
526P ... EXIT 7 0
526Y ...#
5277 ...# MAIN ENTRY POINT
527B ...#
5286 XK1PMJOBS
52#3 ... LDX 1 FXPM1
52CY ...#
52HT ...#
52MQ #
537B # TO IGNORE 1ST BLOCK ON JOB Q
53M2 #
546L LDN 2 BJOBQ
54L= ... STO 2 NEXT(1) [STORE ADDR. OF 1ST BLOCK
555W LDX 4 BPTR(2)
55D? ... STO 4 XBACK(1)
55QN ... SMO FXPMDR
5656 LDX 6 JUNITNO
56JQ BNG 6 TY [J IF NO LP AVAILABLE
574B #
57J2 ...# CODING TO OUTPUT DATE AND TIME GEORGE LOADED
583L #
58H= ... CALL 7 (JPRINT) [THROW A PAGE
592W LDN 4 IDENTITY+2
59GG ... LDN 5 XHEADC+5(1)
5=26 MVCH 4 8 [TIME
5=FQ ADN 5 1
5=^B MVCH 4 8 [DATE
5?F2 LDX 6 JPMOD
5?YL BCHX 6 £
5#D= ... LDN 5 XHEADC(1)
5#XW MOVE 5 10
5*CG ... CALL 7 (JPRINT) [DATE & TIME GEORGE LOADED
5*CX ...#
5*D# ...# CODE TO OUTPUT OVERALL MILL % AND OCP'S %
5*DP ...# CME ENVIRONMENT ONLY
5*F6 ...#
5*FH ... JENVNOT XJOBS,CME,EXCL
5*FY ... CALL 7 (JPRINT1) [OUTPUT BLANK LINE
5*G* ... LDX 3 JLPMOD [LOAD BUFFER ADDRESS
5*GQ ... ADN 3 1
5*H7 ... LDN 2 XMILL1(1) [MOVE 'DME MILL PERCENT'
5*HJ ... MOVE 2 4 [TO PRINT BUFFER
5*H^ ... ADN 3 4
5*JB ... LDCH 4 APROCNO [LOAD B18-23
5*JR ... SBN 4 1 [DUALS
5*K8 ... BZE 4 NDUALS [NO
5*KK ... LDN 2 XMILL3(1) [MOVE 'AGES : OVERALL'
5*L2 ... MOVE 2 5 [TO PRINT BUFFER
5*LC ... ADN 3 5
5*LS ... STO 3 XLPMOD(1) [SAVE CURRENT POINTER TO BUFFER
5*M9 ... CALL 7 XOVMILL [INSERT OVERALL %
5*ML ... LDN 3 1 [INCREASE BUFFER ADDR
5*N3 ... ADS 3 XLPMOD(1)
5*ND ... STOZ XLPMAX(1) [CLEAR COUNT OF OCP'S IN LINE
5*NT ... OCPSMILL 4,XOCPNO(1),XOCPRNT [INSERT OCP'S MILL %
5*P= ... CALL 7 (JPRINT1) [PRINT FINAL OR ONLY PRINT LINE
5*PM ... BRN XJOBS
5*Q4 ...#
5*QF ...NDUALS
5*QW ... LDN 2 XMILL2(1) [MOVE 'AGE IS' TO
5*R? ... MOVE 2 2 [PRINT BUFFER
5*RN ... ADN 3 2
5*S5 ... STO 3 XLPMOD(1) [SAVE CURRENT POINTER TO BUFFER
5*SG ... CALL 7 XOVMILL [INSERT OVERALL %
5*SX ... CALL 7 (JPRINT1) [PRINT LINE
5*T# ...#
5*TP ...# CODING TO OUTPUT JOB NAME,:USER NAME ON LINE PRINTER
5*W6 ...#
5*WH ...XJOBS
5*X6 ... LDN 5 XHEADA+1(1)
5BBQ BCHX 5 £
5BWB BCHX 5 £
5CB2 ... CALL 7 (JUP)
5CTL +5
5D*= MVCH 5 14
5DSW ... CALL 7 (JPRINT2) [PRINT 'JOBS IN SYSTEM'
5F#G ... LDN 5 XHEADB+2(1)
5FS6 ... CALL 7 (JUP)
5G?Q +9
5GRB MVCH 5 19
5H?2 ... CALL 7 (JPRINT2) [THROW 2 LINES AND PRINT SUB-HEADING
5HQL ...PR CALL 7 (JPRINT1) [PRINT A LINE
5J== CALL 7 NAMEJOB [GET NEXT JOB & USER NAME
5JPW BRN PR [J IF NAMES TO OUTPUT
5K9G ... LDX 6 XCRUPT(1)
5KP6 BZE 6 PRR [ WERE ANY Q'S CRUPT ??
5L8Q ... LDN 5 XLOST+2(1)
5LNB ... CALL 7 (JUP)
5M82 +9
5MML MVCH 5 45 [ OUTPUT MESSAGE TO SAY LIST INCOMPLE
5N7= ... CALL 7 (JPRINT2)
5NLW ...PRR LDX 6 XCOUNT(1)
5P6G BNZ 6 PR1 [J IF JOB NAMES PRINTED
5PL6 ... LDN 5 NONE+2(1) [OTHERWISE PRINT 'NONE'
5Q5Q ... CALL 7 (JUP)
5QKB +9
5R52 MVCH 5 4
5RJL ... CALL 7 (JPRINT2)
5S4= ... CALL 7 (JPRINT) [THROW TO TOP OF FORM
5SHW ... BRN (JPMSEG)
5T3G ...PR1 PMOVE PMSUMA,FXPM1,3,1
5TH6 #
5W2Q # CODING TO OUTPUT JOB NAME,:USER NAME ON OPERATORS CONSOLE
5WGB #
5X22 ...TY LDN 3 XHEADA(1)
5XFL ... CALL 7 (JCONOUT) [OUTPUT HEADING
5X^= ... LDN 3 XHEADB(1)
5YDW ... CALL 7 (JCONOUT)
5YYG TY2 CALL 7 NAMEJOB [GET NEXT JOB & USER NAME
5^D6 BRN TY1 [J IF NAMES TO OUTPUT
5^XQ ... LDX 6 XCRUPT(1)
62CB BZE 6 TYY2 [ WERE ANY Q'S CRUPT ??
62X2 ... LDN 3 XLOST(1)
63BL ... CALL 7 (JCONOUT)
63W= ...TYY2 LDX 6 XCOUNT(1)
64*W BNZ 6 TY3 [J IF JOB NAMES OUTPUT
64TG ... LDN 3 NONE(1)
65*6 ... CALL 7 (JCONOUT)
65SQ ... BRN (JPMSEG)
66#B ...TY3 PMOVE PMSUMA,FXPM1,2,1
66S2 ...TY1 LDX 3 JOZ
67?L ... BCHX 3 £ [OUTPUT BUFFER POINTER
67R= ADN 6 4
68=W ... STO 6 0(3) [COUNT OF CHARS. TO BE OUTPUT
68QG ... LDX 0 XARROW(1)
69=6 ... STO 0 1(3) [INSERT '_' IN MESSAGE
69PQ ... CALL 7 (JCONOUT) [OUTPUT JOB NAME,:USER NAME
6=9B ... LDX 6 SPACEFUL(1)
6=P2 ... STO 6 0(3) [SPACEFILL BUFFER AREA
6?8L ... LDN 6 0(3)
6?N= ... LDN 7 1(3)
6*76 MOVE 6 29
6*LQ BRN TY2
6B6B #
6C5L #
6CK= #END
^^^^ ...30366265000400000000