{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ADDJOB867)}}
====== ADDJOB867 ======
(George Source)
**Macros used:** [[george:macro:BXL|BXL]], [[george:macro:CLEARVDU|CLEARVDU]], [[george:macro:CLJOBLMT|CLJOBLMT]], [[george:macro:ERRORX|ERRORX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORM|INFORM]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGON|LONGON]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MASK|MASK]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTMESS|OUTMESS]], [[george:macro:OUTMESSX|OUTMESSX]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPER|OUTPER]], [[george:macro:READY|READY]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETJOBLMT|SETJOBLMT]], [[george:macro:SINM551|SINM551]], [[george:macro:SINMAC1|SINMAC1]], [[george:macro:SNUIB|SNUIB]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
22FL #LIS K0ADDJOB>K0ALLGEO>K0GREATGEO>K0COMMAND
22J9 ... SEG ADDJOB,867,SECTION CENT,,G3UGSI
22LS ...[
22PC ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LIMITED 1982
22S2 ...[ THIS EXCLUDES CODE UNDER #SKI G3UGSI
22WK ...[
22^8 ...#OPT G3UGSI=0
233R ...#SKI G3UGSI
236B ...(
238^ ...[ MACRO TO PREVENT M551 AND SECURITY INTERFACE CLASH
23?J ... SINM551
23B7 ...)
23DW #OPT WELLTEST=0
24D6 # THIS SEGMENT IMPLEMENTS THE FOLLOWING MACROS...
24XQ #
25CB # 1. ADDJOB --- ADD 1 TO COUNT OF MOP JOBS (K1)
25X2 # 2. ADDJOBJ --- ADD 1 TO COUNT OF BG. JOBS (K5)
26BL # 3. SUBJOB --- TAKE 1 FROM MOP COUNT (K2)
26W= # 4. SUBJOBJ --- TAKE 1 FROM BG. COUNT (K7)
272N ...# 5. CHEKPASWRD --- READ AND CHECK PASSWORD (K3)
2776 ...#SKI CASKI8214
27?J ...(
27D2 ...# 6. ADDJOBW --- ADD 1 TO COUNT OF BG. JOBS EVEN IF
27JD ...# FINISH HAS BEEN ISSUED (K11)
27NW ...)
27TG #
28*6 SEGENTRY K1ADDJOB,XK1
28SQ SEGENTRY K2ADDJOB,XK2
29#B SEGENTRY K3ADDJOB,XK3
29S2 SEGENTRY K5ADDJOB,XK5
2=?L SEGENTRY K7ADDJOB,XK7
2=CH ... FSHENTRY K8ADDJOB,,XK8,XK8
2=HD ... FSHENTRY K9ADDJOB,XK9,,XK9
2=M* ... FSHENTRY K10ADDJOB,XK10,,XK10
2=N= ...#SKI CASKI8214
2=P7 ... SEGENTRY K11ADDJOB,XK11
2=Q6 ...[
2=SX ...[
2=XN ...[ SEGENTRY K20ADDJOB & K21ADDJOB USED BY
2?2F ...[ RESTORE-TIME MACRO CLEARPASS
2?5= ...[
2?83 ...[
2?=W PHNOW +HNOW
2?QG PHSOON +HSOON
2#=6 MASK #03777777
2#PQ XIN 4HIN
2*9B XFONINTP +FONINTP
2*P2 XSECS 4HSECS
2B8L XMINS 4HMINS
2BN= SIXTY +60
2C7W THOU +1000
2CMG MAGIC +7036875
2D76 #
2DLQ ...# THE FOLLOWING ROUTINE IMPLEMENTS ADDJOB/J/W. ITS USE IN SYSTEM
2F6B # ISSUED CPA'S HAS NULL EFFECT. IT GEOERR'S IF OBEYED FROM AN
2FL2 # ACTIVITY OTHER THAN A CPA.
2G5L #
2G=# ...[ SET ENTRY INDICATORS AS FOLLOWS:
2GC2 ...[ X3=1 FOR MOP (ENTRY K1)
2GHN ...[ X3=0 FOR BACKGROUND (ENTRIES K5 AND K11)
2GNB ...#SKI CASKI8214 [SKIP FOR ENHANCEMENT DS8214 - PUT JOBS IN WELL AFT
2GT4 ...(
2G^Q ...[ AWORK2=0 FOR ENTRIES K1 AND K5
2H6D ...[ AWORK2=1 FOR ENTRY K11 (PUT JOB IN WELL IF FN ISSUED) - DS8214
2H?6 ...[
2HCS ...)
2HJG XK1 NGNC 3 1
2J46 XK5 [ X3 = 1(MOP) 0(BACK)
2JB7 ... LDN 3 0
2JN8 ...#SKI CASKI8214
2K29 ...(
2K#= ... STOZ AWORK2(2)
2KL? ... BRN STARTADDJ
2KY# ...[
2L=* ...XK11
2LJB ... LDN 4 1
2LWC ... STO 4 AWORK2(2)
2M8D ... LDN 3 0
2MGF ...[
2MSG ...STARTADDJ
2N6H ...)
2NDQ CALL 7 SICPA [CHECK IF SYSTEM ISSUED OR NOT CPA
2NYB BRN UP2 [SYSTEM ISSUED
2PD2 LDXC 0 FINISH
2PMS ...#SKI CASKI8214<1$1
2PXL BCS XFIN [J IF FINISH HAS BEEN ISSUED
2PXQ ...#SKI CASKI8214
2PXW ...(
2PY2 ... BCC XK9
2PY6 ... CALL 5 SRFIN
2PY= ...)
2Q#? ...#
2Q*6 ...XK9
2Q*^ ...#
2QC= LDN 5 0 [X5=0 => FIRST TIME THROUGH
2RBG STO 5 AWORK1(2)
2RW6 XCHEK
2T*2 [
2TSL [
2W#= [ CALCULATE EFFECTIVE LIMIT L
2WRW [ FOR JOBS TYPE-X,OTHER TYPE-Y
2X?G [
2XR6 [ L=MAX(X-JOBS,JOBLIMIT-MAX(Y-JOBS,Y-COUNT))
2Y=Q [
2YBK ... LDX 0 IMOPTOTAL
2YCW ... BNZ 3 XNCH [J IF MOP
2YF7 ... LDX 0 JOBLIMIT
2YGD ... SBX 0 IMOPTOTAL
2YHP ... BPZ 0 XEFFL
2YK2 ... LDN 0 0
384Q XEFFL [ EFFECTIVE LIMIT IN X0
38JB BZE 0 XNCH
3942 LDX 4 CONTEXT(2)
39HL ANDN 4 #20
3=3= BZE 4 XNEWL [ J IF NOT OPERATOR
3=GW LDX 7 CONTEXT(2)
3?2G ANDN 7 #200 [ X7 #0 IF REMOTE
3?G6 LDN 6 110
3?^Q LDN 4 5
3#FB BZE 7 XCAL
3#^2 LDN 6 105
3*DL LDN 4 2
3*Y= XCAL MPR 6 0 [ CALC MAX(L+X4,L*X6/100)
3BCW LDN 7 100
3BXG DVS 5 7
3CC6 ADX 0 4
3CWQ TXL 0 5
3DBB BCC XNEWL
3DW2 LDX 0 5
3F*L [ NEW CALCULATED EFFECTIVE LIMIT
3FT= [ ALLOWING FOR OPERATOR CONTEXTS AS REQUIRED
3G#W XNEWL
3GSG XNCH
3H#6 LDX 4 JOBCOUNT(3)
3HRQ TXL 4 0
3J?B BCS OK
3K=L [
3KQ= [
3WHG BNZ 3 XJER2
3X36 LONGSET #44,XLONG [MAY HAVE TO WAIT
3Y2B LDX 5 AWORK1(2)
3YG2 BNZ 5 WAIT [J IF NOT FIRST TIME THROUGH
3Y^L LDX 0 CONTEXT(2)
3^F= ANDN 0 #220
3^YW ERN 0 #200
42DG BNZ 0 XNREM [J IF (NOT REMOTE) OR (OPERATOR)
42Y6 # [I.E. CONTINUE FOR REMOTE AND...
43CQ # [NOT OPERATOR
43XB OUTPER
44C2 INFORM 0,JOBLIMR,1 [OUTPUT 'JOBLIMIT REACHED' MESSAGE
44WL WAIT
46*G LONGSTOP UPLS1 [WAIT. UPPLIS 1 IF BREAK IN
46T6 ORN 5 1 [TO INDICATE NOT FIRST TIME THROUGH
47SB STO 5 AWORK1(2)
48#2 BRN XCHEK [REPEAT COUNTS V LIMITS CHECK
48RL XNREM LDX 0 CONTEXT(2)
49?= ANDN 0 1
49QW BZE 0 NOUSE [J IF NO USER CONTEXT
4==G MONOUT JOBREACH
4=Q6 BRN WAIT
4?9Q NOUSE LDX 0 CONTEXT(2)
4?PB ANDN 0 #30
4#92 BNZ 0 XJER1 [J IF OPERATOR OR MOP CONTEXT
4#NL SETJOBLMT [SET JOBLIMIT ON READER...
4*8= LDCT 5 #400 [AND REMEMBER TO CLEAR IT LATER.
4*MW BRN WAIT
4B7G OK BZE 5 OK1 [NO COORDINATION ETC. SINCE ENTRY
4BM6 BPZ 5 NCL
4C6Q CLJOBLMT [CLEAR JOBLIMIT IF PREVIOUSLY SET
4CLB NCL LDXC 0 FINISH
4CW8 ...#SKI CASKI8214<1$1
4D62 BCS XFIN [J IF FINISH ISSUED SINCE ENTRY
4D8K ...#SKI CASKI8214
4D?8 ...(
4D*R ... BCC OK1
4DDB ... CALL 5 SRFIN
4DG^ ...)
4DKL OK1 LDN 0 1
4GJ6 ADS 0 JOBCOUNT(3)
4GM= ...UP2
4HD= ...UP2X UPPLUS 2
4HHB #
4J32 # ROUTINE FOR CATERING FOR FINISH
4JGL #
4JJ8 ...#SKI CASKI8214
4JKQ ...(
4JM# ...SRFIN
4JNW ...[ SUBROUTINE TO BE ENTERED IF FN SET.
4JQD ...[ LINK=X5
4JS2 ...[ IF JOB TO BE PUT IN WELL, EXIT 0
4JTJ ...[ OTHERWISE OUTPUT APPROPRIATE MESSAGE AND GO UP
4JX6 ...[
4JYN ...)
4K2= ...XFIN LDX 6 PHNOW(1) [SET UP FINISH NOW MESSAGE
4KFW SLL 0 1
4K^G BNG 0 OUTM [J IF FINISH NOW
4K^X ...#SKI CASKI8214
4L2# ...(
4L2P ... LDX 4 AWORK2(2)
4L36 ... BZE 4 SRFIN5 [IF JOB CAN'T BE KEPT IN WELL
4L3H ... EXIT 5 0
4L3Y ...[
4L4* ...SRFIN5
4L4Q ...)
4LF6 LDX 4 FINISH
4LYQ ANDX 4 MASK(1)
4MDB BNZ 4 TIME [J IF FINISH N
4MY2 LDX 6 PHSOON(1) [ELSE MUST BE FINISH SOON
4NCL OUTM OUTMESSX 6
4NX= XFER CALL 3 XERR
4PBW +HNOMORJ [NO MORE JOBS ARE BEING ACCEPTED
4PWG TIME LDX 0 XIN(1)
4QB6 STO 0 ACOMMUNE1(2)
4QTQ LDX 0 ACES
4R*B STO 0 ACOMMUNE2(2)
4RT2 MPY 4 XFONINTP(1)
4S#L LDX 6 XSECS(1)
4SS= BXL 5 SIXTY(1),SECS
4T?W DVR 4 SIXTY(1)
4TRG LDX 6 XMINS(1)
4W?6 SECS STO 6 ACOMMUNE3(2)
4WQQ BXL 5 THOU(1), X3FIG [J IF < 4 FIGURE TIME
4X=B LDN 5 999 [REPLACE SILLY TIME BY 999
4XQ2 X3FIG MPY 5 MAGIC(1)
4Y9L LDN 3 ACOMMUNE2(2)
4YP= LDN 0 7
4^8W MODE 0
4^NG XCBD1 CBD 5 0(3)
5286 LDCH 4 0(3)
52MQ BNZ 4 NZ [FIRST NON-ZERO CHAR FOUND
537B BCT 0 XCBD1
53M2 BRN WEND [SHOULDN'T DROP THROUGH
546L XCBD2 BCHX 3 £
54L= CBD 5 0(3)
555W NZ BCT 0 XCBD2
55KG WEND OUTBLOCN 4
5656 LDN 4 12
56JQ OUTPARAM 4,ACOMMUNE1
574B BRN XFER
57J2 #
583L XJER1 LONGOFF
58H= XJER2 CALL 3 XERR
592W +JLIMIT
59GG XERR ERRORX 0(3)
5=26 UP
5=FQ #
5=^B # THE FOLLOWING ROUTINE IMPLEMENTS SUBJOB/J. ITS USE IN SYSTEM
5?F2 # ISSUED JOBS HAS NULL EFFECT. IT MUST BE OBEYED FROM A CPA.
5?YL #
5*CG XK2 NGNC 3 1
5*X6 XK7
5FS6 LDN 3 0
5G?Q CALL 7 SICPA [CHECK IF SYSTEM ISSUED OR NOT CPA
5GRB BRN UP [SYSTEM ISSUED
5G^# ...#
5G^X ...#
5H2G ...XK10
5H35 ...#
5JPW LDX 0 JOBCOUNT(3)
5K9G SBN 0 1
5KP6 BNG 0 XFEW [GEOERR IF COUNT -VE
5MML STO 0 JOBCOUNT(3)
5N7= LONGON #44 [KICK ANY CPA'S WAITING FOR JOBLIMIT
5N=B ...UP
5P3B ...UPX UP
5P6G #
5PL6 SICPA
5Q5Q LDXC 0 CONTEXT(2)
5QKB BCS (7)
5R52 ADN 7 1
5RJL LDX 0 ATYPE(2)
5S4= SRL 0 12
5SHW ERN 0 CPAT
5T3G BZE 0 (7) [J IF CPA
5TH6 GEOERR 1,ADDJOB
5W2Q #
5WGB XLONG
5X22 GEOERR 1,LONGSET?
5XFL XFEW
5X^= GEOERR 1,FEWJOBS
5YDW #
5YYG #
5^D6 # ENTRY FOR THE CHEKPASWRD MACRO
5^XQ #
62CB #
62X2 XK3
636S ... NOECHO
63BL OUTMESS JPASS
63W= CALL 5 SR4
64*W READY UPA [J. IF BROKEN IN OR INOPERABLE
64TG CALL 5 SR4
65*6 MHUNTW 3,FILE,FRB
65SQ LDCT 5 #600 [GET CHAR COUNT
66#B LDEX 4 A1+FRH(3)
66S2 ANDX 5 A1+FRH+1(3)
67?L SBN 4 2
67R= BZE 5 XNEXT
68=W SBN 4 1
68QG XNEXT SLL 45 2
69=6 LDX 5 ACES
69PQ LDX 6 5
6=9B LDX 7 5
6=P2 BZE 4 ZRH
6?8L XTAC LDCH 0 A1+FRH+2(3) [IGNORELEADING SPACES
6?N= TXU 0 SPACE(1)
6#7W BCS START
6#MG BCHX 3 £
6*76 BCT 4 XTAC
6*LQ BRN ZRH
6B6B SPACE #20
6BL2 THIRTN +13
6C5L START TXL 4 THIRTN(1)
6CK= BCS PLUS2
6D4W LDN 4 12 [MAX OF 12 CHARS
6DJG PLUS2 LDN 2 0
6F46 PLUS3 LDCH 0 A1+FRH+2(3)
6FHQ DCH 0 5(2) [STORE PASS WORD
6G3B BCHX 2 £
6GH2 BCHX 3 £
6H2L BCT 4 PLUS3
6H3= ...[
6H3W ... SEGENTRY K20ADDJOB
6H4G ... BRN SEC [THIS IS MENDED BY MACRO CLEARPASS
6H56 ... CLEARVDU [CLEAR PASSWORD ON VDU
6H5Q ...[
6H6B ... SEGENTRY K21ADDJOB
6H72 ...SEC
6H8G ...#SKI G3UGSI<1$1
6H=2 ...(
6H?G ...[ SKIPPED IF USER GROUP SECURITY INTERFACE SWITCHED ON
6H*2 ... SINMAC1 5 [SECURITY INTERFACE MACRO
6HG= ZRH MFREEW FILE,FRB
6HHS ...)
6HKB ...#SKI G3UGSI
6HLY ...(
6HNG ...[ THIS SECTION IS COMPILED IF G3 USER GROUP SECURITY INTERFACE
6HQ4 ...[ ENHANCEMENT IS SWITCHED ON
6HRL ...ZRH
6HT8 ... SINMAC1 5,,1
6HWQ ... MFREEW FILE,FRB
6HY# ...)
6H^W HUNTW 3,FILE,ADICTENT
6JFG BNG 3 UPLS1
6J^6 TXU 5 CPASS(3)
6KDQ TXU 6 CPASS+1(3)
6KYB TXU 7 CPASS+2(3)
6LD2 BCS UPLS1
6LXL FREECORE 3
6MC= UPPLUS 2
6MWW UPA
6NBG CALL 5 SR4
6NW6 UP
6P*Q UPLS1 UPPLUS 1
6PTB #
6Q*2 # THIS SUBROUTINE SETS OR UNSETS A BIT TO SAY 'PSEUDO-USER' DO
6QSL # NOT CLOSE DOWN
6R#= SR4 SNUIB
6RRW EXIT 5 0
6SR6 #END
^^^^ ...74674755000800000000