18 226D ... SEG INITJOB,867,SECTION CENT,,G3UGSI,G551,G400 4 22=W ...[ 15 22C# ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 13 22HQ ...[ THIS EXCLUDES CODE UNDER #SKI G551 14 22N8 ...[ AND UNDER #SKI G3UGSI 4 22SL ...[ 7 22_= #OPT WELLTEST=0 8 23DW #OPT K0INITJOB=0 15 23YG #LIS K0INITJOB>K0ALLGEO>K0GREATGEO>K0COMMAND 6 244Y ...#UNS G400 13 249B ...# THIS CHAPTER MODIFIED FOR G3PLUS-IH 7 24*S ...#OPT G551 = 0 6 24G= ...#SKI G551&1 21 24LN ...# WITH G3UG EDIT M551 (SELECTIVE PASSWORD CHECKS FOR CENTRAL AND REMOTE) 7 24R6 ...#OPT G3UGSI = 0 4 24XQ [ 6 252* ...#SKI G3UGSI 4 254Y ...( 17 257H ...[ MACRO TO PREVENT M551 AND SECURITY INTERFACE CLASH 7 25=6 ... SINM551 4 25#P ...) 9 25CB [ THIS SEGMENT ... 4 25X2 [ 4 26BL [ 10 26W= [ USE OF AWORK1-4 WORDS 4 27*W [ 11 27TG [ AWORK1 USER CONTEXT PRIVS 10 28*6 [ AWORK2 COMMAND TYPE 9 28SQ [ AWORK3 TERMINATOR 18 29#B [ AWORK4 PARAM/ SHIFT MARKER /TERM/MODE PARAM NUMBER 4 29S2 [ 4 2=?L [ 8 2=R= [ ENTRY POINTS 15 2?=W SEGENTRY K1INITJOB [DISCONNECT 4 2?QG [ 8 2#=6 CALL 7 START 14 2#PQ SEGENTRY K2INITJOB [LOGIN 8 2*9B CALL 7 START 13 2*P2 SEGENTRY K3INITJOB [JOB 8 2B8L CALL 7 START 14 2BN= SEGENTRY K4INITJOB [RUNJOB 8 2C7W CALL 7 START 20 2CMG SEGENTRY K9INITJOB,TIDY3 [ERROR ENTRY FROM ENWELL/DEWELL 12 2CX# FSHENTRY K10INITJOB,XK10,,XK10 13 2D39 FSHENTRY K11INITJOB,,XBIPB,XBIPB 6 2D4G ...#SKI G551 12 2D5R ... SEGENTRY K20INITJOB,PWCHECK 10 2D76 SEGENTRY K99INITJOB 4 2DLQ ...[ 9 2F6B #DEF SIZEU=APARA+3-A1 4 2FL2 [ 4 2G5L [ 4 2GK= [ 6 2GKG ...#SKI G551 4 2GKQ ...( 15 2GL2 ...# MEND M551 - SELECTIVE PASSWORD CHECKING 19 2GL= ...# COPYRIGHT (C) 1980 YORKSHIRE REGIONAL HEALTH AUTHORITY 13 2GLG ...# WRITTEN BY J.THOMASON FOR Y.R.H.A. 4 2GLQ ...# 9 2GM2 ...TLETQ 4H000Q 9 2GM= ...TLETF 4H000F 9 2GMG ...TLETL 4H000L 4 2GMQ ...# 10 2GN2 ... SEGENTRY K21INITJOB 12 2GN= ...TCENTRAL 16HNMM NMM NOF NOF 12 2GNG ...TREMOTE 16HNMM NMM PMF OFF 4 2GNQ ...) 8 2GP7 XBRA #30 8 2GT4 XSTOP #36 8 2GY_ XSPACE #20 9 2H4W PARAM 5HPARAM 9 2HJG MODE 4HMODE 9 2J46 T 4H000T 9 2JHQ S 4H000S 8 2K3B T1 4HT 8 2KH2 S1 4HS 4 2KQS XONE 7 2L2L XCOLON 1 8 2LG= 4H: 5 2L_W WKPTAB 7 2MFG WKPTABLE 9 2NDQ PCON #700000 9 2PD2 PJUSNA +JUSNA 9 2PXL PJJOBNA +JJOBNA 9 2Q=2 NOWELL 4HNOWE 4 2QC= [ 20 2QWW [ SUBROUTINE TO PARABEG FOR PARAMETER BEGINNING WITH THE [X5] 17 2RBG [ CHARACTERS STARTING AT [X3]. EXITS AS ANNOTATED. 4 2RW6 [ 7 2S*Q XPBEG NGNC 0 1 21 2STB XPBEGCH [ENTRY A0 XPBEGCH CHECKS PARAMETER... 21 2T*2 LDN 4 0 [...FOUND IS COMPOSITE (I.E. TYPE 2) 8 2TSL SBX 7 FX1 10 2W#= PARABEG 1,5,0(3),,0 10 2WRW MHUNT 3,CPB,CUNI 8 2X?G ADX 7 FX1 9 2XR6 LDX 5 ANUM(3) 10 2Y=Q STO 4 ACOMMUNE1(2) 16 2YQB BNZ 4 XPB1 [J IF XPBEG ENTRY 10 2_=2 LDX 4 JPARNUM(3) 20 2_PL FREECORE 3 [FREE CPB/CUNI BLOCK IF XPBEGCH 18 329= XPB1 BPZ 5 XPB2 [J IF PARAMETER EXISTS 18 32NW EXIT 7 0 [PARAMETER NON-EXISTENT 8 338G XPB2 BNZ 5 XPB3 21 33N6 XPB4 EXIT 7 1 [NULL PARAMETER (ILLEGAL IF XPBEGCH) 10 347Q XPB3 LDX 0 ACOMMUNE1(2) 16 34MB BNZ 0 XPB5 [J IF XPBEG ENTRY 8 3572 SRL 5 12 7 35LL SBN 5 2 19 366= BNZ 5 XPB4 [J IF NOT TYPE 2 PARAMETER 13 36KW XPB5 EXIT 7 2 [OK 4 375G [ 16 376H [ SUBROUTINE TO SPLIT PARAMETER AND TEST REPLY 7 377J [ X7=LINK 9 378K [ X3=NO OF PARAMETER 15 379L [ EXIT 0 IF ERROR FOUND, EXIT 1 OTHERWISE 4 37=M [ 5 37?N PARAL 8 37#P SBX 7 FX1 8 37*Q PARALYSX 4,,3 8 37BR ADX 7 FX1 15 37CS TESTRPN2 OK,PARAL10 [J IF NOT OK 7 37DT EXIT 7 1 5 37FW PARAL10 7 37GX EXIT 7 0 4 37HY [ 20 37K6 [ SUBROUTINE TRAN SPACE-FILLS THE 3 WORD AREA FROM [X2] AND THEN 21 384Q [ MOVES INTO IT THE CONTENTS OF THE CPB/CUNI BLOCK AT [X3]. ENTRY 15 38JB [ AT TRANH HUNTS THE CPB/CUNI BLOCK FIRST. 4 3942 [ 10 39HL TRANH MHUNT 3,CPB,CUNI 8 3=3= TRAN LDX 5 ACES 8 3=GW STO 5 0(2) 8 3?2G STO 5 1(2) 8 3?G6 STO 5 2(2) 9 3?_Q LDX 1 ANUM(3) 9 3#FB LDN 5 APARA(3) 8 3#_2 LDN 6 0(2) 8 3*DL MVCH 5 0(1) 8 3*Y= LDX 1 FX1 7 3BCW EXIT 7 0 4 3BXG [ 20 3CC6 [ SUBROUTINE TO CHECK THAT PARAMETER HAS LOCAL FILE NAME FORMAT 4 3CWQ [ 5 3DBB XCHEKLFN 9 3DW2 CHEKLFN2 (7),NLFN 7 3F*L EXIT 7 1 4 3FT= [ 16 3G#W [ SUBROUTINE TO SPARABEG FOR USERNAME PARAMETER 4 3GSG [ 5 3H#6 XSPCOL 8 3HRQ SBX 7 FX1 10 3J?B SPARABEG 1,XCOLON(1) 8 3JR2 ADX 7 FX1 7 3K=L EXIT 7 0 4 3KQ= [ 21 3L9W [ X4USER SETS X4 TO POINT TO THE 3 WORD USERNAME. THIS IS CPREFIX 19 3LPG [ IN THE CPA FOR NO-USER AND JUSER IN THE JOBLOCK FOR USER. 4 3M96 [ 5 3MNQ X4USER 6 3MNT ...#UNS G400 4 3MNY ...( 4 3MP3 ...[ 12 3MP6 ...[ TEST FOR RJ TO ANOTHER USER 4 3MP9 ...[ 17 3MP# ... HUNTW 2,IUSER,G400USER [SEE IF A USERNAME 16 3MPC ... BNG 2 X4HOOK [JUST AS NORMAL 17 3MPG ... LDN 4 A1(2) [GET ADDR OF USERNAME 8 3MPK ... BRN X6 5 3MPN ...X4HOOK 4 3MPR ...) 4 3MPY [ 4 3MR6 [ 12 3MS# [ TEST FOR SPECIAL DC CASE FIRST 4 3MTG [ 11 3MWN HUNTW 2,JWELL,COPYSYS 8 3MXW BNG 2 X4ACT 11 3M_4 LDX 0 A1+FRH+JLUSER(2) 8 3N2= BZE 0 X4ACT 11 3N3D LDN 4 A1+FRH+JLUSER(2) 8 3N59 BRN X6 5 3N72 X4ACT 8 3N7N LDX 2 FX2 10 3N8B LDN 4 CPREFIX(2) 10 3NN2 LDX 0 CONTEXT(2) 7 3P7L ANDN 0 1 8 3PM= BZE 0 X4XIT 7 3Q6W FJOCA 2 9 3QLG LDN 4 JUSER(2) 8 3R66 X6 LDX 2 FX2 7 3RKQ X4XIT EXIT 7 0 4 3S5B [ 5 3S5_ SETUPJW 8 3S6J SBX 4 FX1 8 3S77 LDX 2 FX2 10 3S7Q STO 4 ACOMMUNE1(2) 10 3S8* LDX 6 JOBDATASIZE 10 3S8Y ADN 6 JOBLISTSIZE 21 3S9H SETUPCOR 6,3,JWELL,COPYSYS [ INITIAL RECORD SIZE FOR SYS JOBLIST 4 3S=6 [ 8 3S=P [ CLEAR TO ZERO 4 3S?# [ 8 3S?X STOZ A1(3) 8 3S#G LDN 4 A1(3) 9 3S*5 LDN 5 A1+1(3) 7 3S*N SMO 6 16 3SB? MOVE 4 511 [ CLEAR TO ZERO 4 3SBW [ 8 3SCF [ RECORD SIZE... 4 3SD4 [ 8 3SDM STO 6 A1(3) 7 3SF= JLADJUST 3 10 3SFT STO 7 JLBUDGETS(3) 10 3SGD LDX 4 ACOMMUNE1(2) 11 3SGL MHUNTW 2,FILE,ADICTENT 11 3SGN JBC NFRZ,2,BFROZEN 13 3SGQ MBS 3,JLBFROZENNC,JLBNOTCAND 4 3SGS NFRZ 7 3SH3 CLOSETOP 8 3SHL ADX 4 FX1 7 3SJ9 EXIT 4 0 4 3SK2 [ 4 3T4L [ 4 3TJ= [ 4 3W3W [ 4 3WHG [ 4 3X36 [ 4 3XGQ [ 12 3Y2B [ START OF MAIN SEQUENCE OF CODE 4 3YG2 [ 5 3Y_L START 20 3_F= ANDX 7 BITS22LS [CONVERT X7 TO COMMAND MARKER... 20 3_YW SBN 7 K4INITJOB(1) [...DC=-2 ; LN=-1 ; JB=0 ; RJ=1 8 42DG BNG 7 ST1 17 42Y6 BZE 7 ST1 [J IF NOT FROM RUNJOB 10 43CQ ANDX 7 CONTEXT(2) 21 43XB ADN 7 1 [X7=1 FOR NO-USER RJ ;=2 FOR USER RJ 16 44C2 ST1 STO 7 AWORK2(2) [ COMMAND TYPE 7 44WL ADN 7 1 16 45B= BNZ 7 ST2 [J IF NOT LOGIN 9 45TW LDX 4 CPLEV(2) 21 46*G BNZ 4 XNOUGHT [ERROR IF LN NOT DIRECT FROM CONSOLE 21 46T6 ST2 LDX 4 ACES [SP-FILL AWORK3 LEST TERM<4 CHAS... 16 47#Q STO 4 AWORK3(2) [...FOUND IN JOB. 9 47SB STOZ AWORK4(2) 16 48#2 LDX 7 AWORK2(2) [ COMMAND TYPE 9 48RL TRACE 7,INITJOB 7 49?= SBN 7 2 15 49QW BZE 7 XRJ [J IF USER RJ 7 4==G ADN 7 4 14 4=Q6 BZE 7 XDC [J IF DC 4 4?9Q [ 13 4?PB [ GET AND CHECK USERNAME PARAMETER 4 4#92 [ 6 4#B8 ...#UNS G400 5 4#HB ...XNEWRJ 9 4#NL CALL 7 XSPCOL 9 4*8= CALL 7 XCHEKLFN 8 4*MW BRN NUSEN 10 4B7G LDX 6 JPARNUM(3) 7 4BM6 SBN 6 3 18 4C6Q BPZ 6 NUSEN [MUST BE PARAMETER 1 OR 2 6 4C7Y ...#UNS G400 4 4C96 ...( 7 4C=# ... LDN 7 1 10 4C?G ... ANDX 7 CONTEXT(2) 14 4C#N ... BZE 7 XNUH [J IF NO-USER 18 4C*W ... SETNCORE 3,2,IUSER,G400USER [BLOCK TO HOLD USER NAME 16 4CC4 ... LDN 2 A1(2) [ADDR OF DUMP AREA 8 4CD= ... CALL 7 TRANH 7 4CFD ... FREECORE 3 8 4CGL ... BRN XNUHX 4 4CHS ...XNUH 4 4CK2 ...) 10 4CLB LDN 2 CPREFIX(2) 18 4D62 CALL 7 TRAN [MOVE USERNAME TO CPAT 7 4DKL FREECORE 3 4 4F5= XRJ 6 4F6H ...#UNS G400 4 4F7S ...( 17 4F95 ... TESTHKN XNUHX [JUMP IF NOT IN A HOOK 7 4F=B ... PARUNACC 10 4F?M ... MHUNT 3,CPB,CUNI 9 4F#Y ... LDCH 0 APARA(3) 8 4FB9 ... SBN 0 10 8 4FCG ... BNZ 0 XDC 9 4FDR ... BRN XNEWRJ 5 4FG4 ...XNUHX 4 4FH* ...) 4 4FJW [ 13 4G4G [ GET AND CHECK JOBNAME PARAMETER 4 4GJ6 [ 7 4H3Q PARUNACC 4 4HHB XDC 9 4J32 CALL 7 XCHEKLFN 8 4JGL BRN NJOBN 9 4K2= LDXC 6 EXT+7(2) 19 4KFW BCS SPACERR [SPACE(S) FOUND IN JOBNAME 4 4K_G [ 19 4LF6 [ PASS JDF PARAMETER FOR RUNJOB (NOW IN CASE IT IS PARAM...) 4 4LYQ [ 9 4MDB NGX 7 AWORK2(2) 16 4MY2 BPZ 7 NTRJ [J IF NOT RUNJOB 7 4N2* SPARUNAC 10 4N4N MHUNT 3,CPB,CUNI 9 4N73 LDX 7 ANUM(3) 8 4N9B BZE 7 NCHSP 8 4N?P BNG 7 NCHSP 17 4NB4 ANDN 7 #7777 [(NON ZERO) CHARACTER COUNT 9 4NDC LDN 2 APARA(3) 16 4NGQ LDN 5 0 [SET ^IGNORING LEADING SPACES^ 7 4NK5 LDN 6 0 5 4NMD TSPLOOP 8 4NPR LDCH 0 0(2) 15 4NS6 BXE 0 XBRA(1),XOUTLOOP [J OUT IF ^(^ 14 4NWF BXE 0 XSTOP(1),ZERO56 [J IF ^.^ 15 4NYS BXE 0 XSPACE(1),SETSP6 [J IF SPACE 20 4P37 LDN 5 1 [UNSET ^IGNORING LEADING SPACES^ 17 4P5G BPZ 6 NXTCHAR [J IF NOT AFTER SPACE 18 4P7T ORN 6 1 [SET INTERNAL SPACE MARK 9 4P=8 BRN NXTCHAR 5 4P#H SETSP6 17 4PBW BZE 5 NXTCHAR [J IF IGNORING SPACES 16 4PF9 ORX 6 GSIGN [SET SPACE FOUND 9 4PHJ BRN NXTCHAR 5 4PKX ZERO56 7 4PN= LDN 5 0 7 4PQK LDN 6 0 5 4PSY NXTCHAR 7 4PX? BCHX 2 / 9 4P_L BCT 7 TSPLOOP 5 4Q3_ XOUTLOOP 7 4Q6# ANDN 6 1 19 4Q8M BNZ 6 SPACERR2 [J IF INTERNAL SPACE FOUND 5 4Q?2 NCHSP 10 4QB6 NAMETOP 3,FILE,FNAME 4 4QTQ NTRJ 4 4R*B [ 16 4RT2 [ GET AND CHECK FORMAT OF 'PARAM' PARAMETER. 7 4S#L [ IF PRESENT 4 4SS= [ 7 4T?W LDN 5 5 9 4TRG LDN 3 PARAM(1) 18 4W?6 CALL 7 XPBEGCH [LOCATE AND CHECK 'PARAM' 15 4WQQ BRN XMODE [NONE PRESENT 21 4X=B BRN PARILL [FORMAT ERROR IN 'PARAM' PARAMETER 18 4XQ2 DCH 4 AWORK4(2) [ REMEMBER PARAM NUMBER 4 4XQX [ 9 4XRS [ CHECK PARAMETER 7 4XSP LDX 3 4 17 4XTL NGN 4 1 [SET SEPARATOR=-1 21 4XWH CALL 7 PARAL [SPLIT INTO ^PARAM^ & ^PARAMETERS^ 15 4XXD BRN PARILL [J IF ERROR 7 4XY* LDN 3 2 18 4X_= CALL 7 PARAL [SPLIT OFF OUTER BRACKETS 15 4Y27 BRN PARILL [J IF ERROR 7 4Y34 LDN 3 1 18 4Y3_ LDN 4 #34 [SET SEPARATOR = ^,^ 18 4Y4W CALL 7 PARAL [SPLIT ACTUAL PARAMETERS 15 4Y5R BRN PARILL [J IF ERROR 14 4Y6N [ ALL OK - RELEASE THE CPB/CMULTI BLOCKS 10 4Y7K MFREEALL CPB,CMULTI 4 4Y8G [ 9 4Y9L XMODE LDX 7 AWORK2(2) 17 4YP= BNZ 7 PEND1 [J UNLESS FROM JOB 4 4_8W [ 21 4_NG [ FOR 'JOB' WE HAVE TO DEAL WITH THE OPTIONAL MODE AND TERMINATOR 17 5286 [ PARAMETERS,BEARING IN MIND THE 2 POSSIBLE FORMATS. 20 52MQ [ NEW FORMAT IS ASSUMED IF 'PARAM' OR 'MODE' IS PRESENT,OR IF 12 537B [ PARAMETER 3 IS NOT NULL/T/S. 4 53M2 [ 17 546L [ GET PARAMETER NUMBER AND CHECK FORMAT OF 14 54L= [ 'MODE' PARAMETER,IF PRESENT 4 555W [ 7 55KG LDN 5 4 9 5656 LDN 3 MODE(1) 9 56JQ CALL 7 XPBEGCH 17 574B BRN XTERM [NO 'MODE' PARAMETER 20 57J2 BRN MODILL [FORMAT ERROR IN 'MODE' PARAMETER 19 583L DEX 4 AWORK4(2) [REMEMBER PARAMETER NUMBER 4 585J [ 9 587G [ CHECK PARAMETER 7 589D LDX 3 4 17 58?B NGN 4 1 [SET SEPARATOR =-1 8 58*# CALL 7 PARAL 15 58C= BRN MODILL [J IF ERROR 9 58F= MFREE CPB,CMULTI 21 58H= BRN XTERB [ASSUME NEW FORMAT - GO FIND TERM. 5 58PG XTERM 7 5Q5Q XTERB LDN 6 2 8 5QKB LDN 3 T1(1) 7 5R52 XTB1 LDN 5 1 16 5RJL CALL 7 XPBEG [PARABEG FOR T/S 17 5S4= BRN NONE [NO SUCH PARAMETER 16 5SHW BRN NULL [PRESENT BUT NULL 21 5T3G LDX 4 APARA(3) [TEXT OF TERM.(SP-FILLED TO 4 CHARS) 9 5TH6 STO 4 AWORK3(2) 8 5W2Q NULL ADN 6 #62 7 5WGB SLL 6 6 15 5X22 ORS 6 AWORK4(2) [REMEMBER T/S 8 5XFL BRN PEND 7 5X_= NONE FREECORE 3 8 5YDW LDN 3 S1(1) 19 5YYG BCT 6 XTB1 [IF 'T' ABSENT LOOK FOR 'S' 8 5_D6 BRN PEND1 7 5_XQ PEND FREECORE 3 4 62CB [ 17 62X2 [ END OF 'JOB' SOLO. INCREMENT JOB COUNT IF POSSIBLE 4 63BL [ 5 63FH PEND1 7 63GG LDN 5 4 9 63HF LDN 3 NOWELL(1) 19 63JD CALL 7 XPBEG [LOOK FOR NOWELL PARAMETER 8 63KC BRN NNWL 6 63LB NULL 8 63M* LDCT 0 #400 17 63N# ORS 0 AWORK1(2) [SET MARKER FOR LATER 4 63P? NNWL 7 63Q= FREECORE 3 9 63R9 NGX 7 AWORK2(2) 4 64?= # 4 64#4 XK10 4 64#W # 15 65*6 BCT 7 NLN [J IF NOT LN 20 65SQ ADDJOB UP,XCOM [INCREMENT JOB COUNT WITH MOP JOB 8 66#B BRN XOFFL 4 66C8 ...NLN 7 66G2 ...#SKI CASKI8214 4 66JS ...( 9 66ML ... LDX 7 AWORK1(2) 16 66QD ... BNG 7 NLN1 [J IF NOWELL 9 66T= ... ADDJOBW UP,XCOM 8 66Y4 ... BRN XOFFL 4 672W ...NLN1 4 675N ...) 21 678G ... ADDJOBJ UP,XCOM [INCREMENT JOB COUNT WITH OFFLINE JOB 5 67?L XOFFL 4 67R= [ 21 68=W [ CHECK USER'S MONEY BUDGET AND,IF OK,INCREMENT COUNT OF HIS JOBS 8 68QG [ IN DICTIONARY 4 69=6 [ 11 69PQ SETNCORE 3,3,FILE,ADICT 9 6=9B CALL 7 X4USER 8 6=P2 LDN 5 A1(3) 20 6?8L MOVE 4 3 [MOVE USERNAME INTO FILE/ADICT 19 6?N= DICTJOB 1 [CHECK MONEY/INCREMENT COUNT 19 6#7W TESTREP2 OK,XDOK,NOUSER,XNOUSE,UNJOB,UNJOB,NOTENUF,XENUF 9 6#MG GEOERR 1,DICTNOK 4 6*76 XDOK 4 6*LQ [ 20 6B6B [ GET CONTEXT PRIV'S OF USER AND,IF NECESSARY,CHECK HE HAS THOSE 21 6BL2 [ REQUIRED. REMEMBER HIS CONTEXT PRIV'S IN AWORK1.CHECK PW IF NEC. 4 6C5L [ 9 6CK= LDX 7 AWORK2(2) 7 6D4W SBN 7 2 16 6DJG BZE 7 XRJ1 [J IF USER RUNJOB 7 6F46 ADN 7 4 14 6FHQ BZE 7 XDC1 [J IF DC 6 6FW7 ...#UNS G400 5 6G8J ...XSDK1 7 6GH2 LDN 7 0 7 6H2L LDN 3 0 10 6H_W SETNCORE 4,1,CPB,CUNI 7 6JFG LDN 0 8 9 6J_6 STO 0 ANUM(1) 8 6KDQ BRN Q1A 10 6KYB Q1 MHUNT 1,CPB,CUNI 8 6LD2 Q1A SMO FX1 9 6LXL LDN 0 WKPTAB(3) 9 6MC= LDN 1 APARA(1) 21 6MWW MOVE 0 2 [MOVE 'CONTEXTA/B/C' INTO CPB/CUNI 6 6NBG REWIND 21 6NW6 BUDGCHAR [GET BIT PATTERN FOR GIVEN CONTEXT... 18 6P*Q [ [...PRIV IN JBUDGET/JLINE 20 6PTB TESTRPN2 OK,Q2 [JUMP ON IF NO SUCH BUDGET TYPE 11 6Q*2 MHUNTW 2,JBUDGET,JLINE 11 6QSL MHUNTW 1,FILE,ADICTENT 21 6R#= TESTPRIV JPATTERN(2),1 [TEST IF USER HAS CONTEXTA/B/C PRIV 14 6RRW BZE 0 Q3 [J IF NOT 8 6S6? SMO FX1 10 6SDN ORX 7 WKPTAB+2(3) 17 6SR6 Q3 FREECORE 2 [FREE JBUDGET/JLINE 20 6T86 Q2 ADN 3 3 [UPDATE CONTEXT C!AR. STRING MOD. 8 6TK6 SMO FX1 9 6W26 LDX 0 WKPTAB(3) 8 6WC6 BNZ 0 Q1 9 6WS6 CALL 4 SETUPJW 9 6X9= MFREE CPB,CUNI 21 6XNW LDX 5 AWORK1(2) [CONTEXT BITS OF COMMAND LEFT BY... 18 6Y8G [ [...COMMAND PROCESSOR. 20 6YN6 ANDX 5 PCON(1) [ISOLATE CONTEXT PRIV'S REQUIRED 21 6_7Q ANDX 5 ICONTEXT [DROP THOSE NOT CURRENTLY ENFORCED 20 7272 BZE 5 XCONOK [J IF NO CONTEXT PRIV'S REQUIRED 7 72LL ANDX 7 5 9 72WD ANDX 7 PCON(1) 7 736= ERX 7 5 20 73KW BNZ 7 XERPRIV [J IF USER HASN'T ALL REQUIRED 5 745G XCONOK 6 746? ...#SKI G551&1 4 7474 ...( 11 747T ...[ MEND EXCHANGE SCHEME CODE 8 748L ... LDCT 0 #600 10 749C ... ANDX 0 CONTEXT(2) 8 74=8 ... BNZ 0 SYSIS 7 74=_ ... LDN 7 2 19 74?Q ... ADX 7 AWORK2(2) [ 1 - LN, 2 - JB, 3 - RJ 10 74#H ... DOWN INITJOB,20 15 74*# ... BRN XBROKIN [ BREAK-IN 15 74B5 ... BRN MESSI [ PW INVALID 13 74BW ... BRN NCH [ OK 18 74CM ... BRN MESSH [ PW REQ'D & NOT OFFERED 4 74DD ...) 8 74F9 ...#SKI G551_G3UGSI<1$1 4 74G2 ...( 18 74GR ...[ THE NEXT BIT IS COMPILED IF NEITHER OF G3 USER GROUP 21 74HJ ...[ MENDS FOR SECURITY INTERFACE ENHANCEMENT NOR SELECTIVE PASSWORD 12 74J* ...[ CHECKING (G551) IS SWITCHED ON 11 74K6 MHUNTW 3,FILE,ADICTENT 6 74KX ...#UNS G400 4 74LN ...( 11 74MF ... HUNTW 1,IUSER,G400USER 9 74N= ... BPZ 1 USERLS 8 74P3 ... LDX 1 FX1 9 74PS ... LDX 4 AWORK2(2) 7 74QK ... SBN 4 1 8 74RB ... BNZ 4 NOTRJ 9 74S7 ... TESTHOOK USERLS 11 74SY ...NOTRJ SEGENTRY G400PSWD 9 74TP ... BRN PASSCHK 8 74WG ...XTYPE +0 9 74X? ... LDX 0 XTYPE(1) 7 74Y4 ... ADN 4 2 7 74YT ... SMO 4 8 74_L ... SLL 0 0 9 752C ... BNG 0 USERLS 5 7538 ...PASSCHK 4 753_ ...) 8 754Q LDCT 4 #600 10 75JB ANDX 4 CONTEXT(2) 17 7642 BNZ 4 USERLS [J IF SYSTEM ISSUED 21 76HL SECHECK 3,USERLS,XNOR [-> USERLS IF LOW :->XNOR IF NOR. SEC 8 76NS SINMAC2 MESSH 8 76W2 LDX 2 FX2 10 773= LDX 4 CONTEXT(2) 8 77GW ANDN 4 #60 21 782G BNZ 4 MESSH [J TO ERROR FLAG IF NOT MOP AND HIGH 10 78G6 XNOR LDX 4 CONTEXT(2) 8 78_Q ANDN 4 #10 18 79FB BZE 4 USERLS [SKIP PW CHECK IF NOT MOP 21 7=Y= CHEKPASW XBROKIN,MESSI [READ AND CHECK PW. N.B. CHEKPASWRD.. 18 7?CW [ [...FREES FILE/ADICTENT 4 7?GN ...) 4 7?KG ...[ 6 7?N# ...#SKI G3UGSI 4 7?R6 ...( 20 7?TY ...[ THIS SECTION IS COMPILED IF G3 UG SEC INTERFACE ENHANCEMENT 8 7?YQ ...[ IS SWITCHED ON 21 7#3J ... SINMAC2 XENOR,XBROKIN,2 [XENOR=ERROR, XBROKIN=BREAKIN 4 7#6B ...) 7 7#98 ...#SKI G551&1$1 8 7##2 ... BRN NCH 20 7#C6 XRJ1 [FOR RJ IN USER CONTEXT AND DC... 6 7#FP ...#UNS G400 4 7#J# ...( 11 7#LX ... HUNTW 3,IUSER,G400USER 8 7#PG ... BPZ 3 XSDK1 4 7#S5 ...) 21 7#WQ XDC1 [CONTEXT PRIV'S ARE FOUND FROM JPRIV 17 7*BB [ [IN THE JOB BLOCK. 8 7B*L FJOCA 3,2 7 7BN3 NGN 7 4 9 7C2D ANDX 7 JPRIV(3) 7 7C3P ...#SKI G3UGSI<1$1 18 7C53 JBC NSECURE,3,JBSINFACE1 [J IF NOT SECURE USER 4 7C5M ...[ 21 7C6? ...#SKI G3UGSI [USER GROUP SECURITY INTERFACE 21 7C6X ... JMBAC NSECURE,3,JBSINFACE1,JBSINFACE2 [J IF NOT SECURE USER 7 7C7L ORN 7 1 5 7C=9 NSECURE 9 7C#W CALL 4 SETUPJW 6 7CM? ...#SKI G551&1 5 7C_N ...SYSIS 11 7D#6 MHUNTW 3,FILE,ADICTENT 5 7DRQ USERLS 7 7F?B FREECORE 3 4 7FR2 NCH 9 7G=L XACR ACROSS ENWELL,1 6 7G=N ...#SKI G551&1 4 7G=Q ...( 11 7G=S ...[ MEND EXCHANGE SCHEME CODE 4 7G=W ...# 21 7G=Y ...PWSTL 8,8HPASSWORD [ LONG KEY - CAN BE CHANGED IF REQ'D 17 7G?2 ...PWSTS 2,2HPW [ SHORT KEY - DITTO 4 7G?4 ...# 8 7G?6 ...ZQUOT #22 8 7G?8 ...ZCOMM #34 8 7G?= ...#DEF ZLBRA = XBRA 8 7G?# ...ZRBRA #31 8 7G?B ...#DEF ZSPAC = XSPACE 4 7G?D ...# 20 7G?G ...# SUBROUTINE TO FIND NEXT PARAM, LEAVING START POINT IN AWORK3, 17 7G?J ...# END POINT IN AWORK2, NUMBER OF CHARACTERS IN X4 19 7G?L ...SKPAR LDX 3 AWORK2(2) [ POSITION OF PRECEDING COMMA 7 7G?N ... BCHX 3 / 7 7G?Q ... SBN 7 1 17 7G?S ... STO 3 AWORK3(2) [ START OF PARAMETER 8 7G?W ... STO 7 GEN0 19 7G?Y ... BZE 7 PFIN [ IN CASE NO PW & FINAL COMMA 19 7G#2 ... LDN 6 0 [ -1 = QUOTES, +VE = () DEPTH 8 7G#4 ...SKPL LDCH 4 0(3) 7 7G#6 ... NGX 0 6 20 7G#8 ... LDXC 0 0 [ NGXC DOESN'T WORK AS REQUIRED 9 7G#= ... TXU 4 ZQUOT(1) 7 7G## ... NGN 0 0 18 7G#B ... ERX 0 GMINUS1 [ IF QUOTES OUTSIDE (), 18 7G#D ... ERX 6 0 [ SWITCH QUOTES MARKER 8 7G#G ... TXU 6 GZERO 9 7G#J ... TXU 4 ZCOMM(1) 19 7G#L ... BCC PFIN [ COMMA OUTSIDE QUOTES OR () 7 7G#N ... LDXC 0 6 17 7G#Q ... TXU 4 ZLBRA(1) [ ( OUTSIDE QUOTES 7 7G#S ... SBN 6 0 20 7G#W ... LDXC 0 6 [ IGNORE ) IN QUOTES OR WITHOUT ( 9 7G#Y ... TXU 4 ZRBRA(1) 7 7G*2 ... ADN 6 0 7 7G*4 ... BCHX 3 / 8 7G*6 ... BCT 7 SKPL 9 7G*8 ...PFIN STO 3 AWORK2(2) 8 7G*= ... LDX 6 GEN6 8 7G*# ... LDX 4 GEN0 7 7G*B ... ADN 6 1 19 7G*D ... SBX 4 7 [ NO. OF CHARS IN THIS PARAM 18 7G*G ... STO 6 GEN6 [ LEAVE PARAM NO. IN X6 7 7G*J ... EXIT 5 0 4 7G*L ...# 18 7G*N ...# TEST IF 'PASSWORD' KEY AT START OF PARAM JUST SCANNED. 18 7G*Q ...# ENTER WITH X1 POINTING TO KEY STRING PWSTL OR PWSTS. 18 7G*S ...# EXIT IF NOT MATCHED, ELSE GO AHEAD WITH PROCESSING IT. 14 7G*W ...TPWS STO 5 GEN0 [ LINK 8 7G*Y ... TXL 4 0(1) 15 7GB2 ... BCS NPWS [ TOO SHORT 8 7GB4 ... LDX 6 0(1) 9 7GB6 ... LDX 3 AWORK3(2) 8 7GB8 ... STO 1 GEN1 8 7GB= ...TPWSL BZE 6 YPWS 8 7GB# ... LDCH 5 1(1) 7 7GBB ... BCHX 1 / 7 7GBD ... SBN 6 1 15 7GBG ...TPWSB TXU 3 AWORK2(2) [ END OF PAR 8 7GBJ ... BCC NPWS 8 7GBL ... LDCH 0 0(3) 7 7GBN ... BCHX 3 / 7 7GBQ ... TXU 0 5 15 7GBS ... BCC TPWSL [ OK SO FAR 8 7GBW ... ERN 0 #20 16 7GBY ... BZE 0 TPWSB [ IGNORE SPACE 8 7GC2 ...NPWS LDX 1 FX1 17 7GC4 ... BRN (GEN0) [ EXIT - NOT MATCHED 4 7GC6 ...# 7 7GC8 ...YPWS NGN 1 3 9 7GC= ... ANDX 1 BITS22LS 7 7GC# ... SBN 4 1 19 7GCB ... STO 4 GEN5 [ TOTAL LENGTH OF PW PARAM -1 20 7GCD ... STO 7 GEN4 [ NO. OF CHARS LEFT IN COMMAND 9 7GCG ... TXU 3 AWORK2(2) 18 7GCJ ... BCC PWMVS [ EMPTY - INSERT SPACES 8 7GCL ... LDN 5 #20 8 7GCN ...YPWSK LDCH 0 0(3) 7 7GCQ ... BCHX 3 / 17 7GCS ... TXU 0 5 [ SKIP INITIAL SPACES 8 7GCW ... BCS PWMV 9 7GCY ... TXU 3 AWORK2(2) 8 7GD2 ... BCS YPWSK 8 7GD4 ...PWMVS LDN 0 #20 16 7GD6 ...PWMV DCH 0 8(1) [ COPY TO X5X6X7 7 7GD8 ... BCHX 1 / 16 7GD= ... BZE 1 PWMVE [ 12 CHARS DONE 9 7GD# ... TXU 3 AWORK2(2) 17 7GDB ... BCC PWMVS [ SPACES AFTER END 8 7GDD ... LDCH 0 0(3) 8 7GDG ... BCHX 3 PWMV 9 7GDJ ...PWMVE LDXC 0 AWORK4(2) 17 7GDL ... BCS ZMV [ NO WIPE REQUIRED 19 7GDN ... LDX 4 AWORK3(2) [ SLIDE UP ANYTHING FOLLOWING 9 7GDQ ... LDX 3 AWORK2(2) 9 7GDS ... CHARMOVE 3,GEN4 19 7GDW ... LDX 3 4 [ TO WIPE REST WITH SPACES 8 7GDY ... LDN 0 #20 7 7GF2 ... BCHX 4 / 8 7GF4 ... DCH 0 0(3) 9 7GF6 ... CHARMOVE 3,GEN5 8 7GF8 ... LDX 4 GEN5 9 7GF= ... SMO AWORK1(2) 18 7GF# ... SBS 4 ANUMCHA [ REDUCE CLB CHAR COUNT 21 7GFB ...ZMV LDX 4 GEN6 [ PARAMETER TO BE MARKED 'ACCESSED' 20 7GFD ... PARANOTX 4 [ AND TIME WE COORDINATED ANYWAY 9 7GFG ... MFREE CPB,CUNI 11 7GFJ ... MHUNTW 3,FILE,ADICTENT 7 7GFL ... LDN 0 1 9 7GFN ... ANDX 0 AWORK4(2) 19 7GFQ ... BZE 0 PWOK [ N OR P - NO CONTENT CHECK 9 7GFS ... TXU 5 CPASS(3) 10 7GFW ... TXU 6 CPASS+1(3) 10 7GFY ... TXU 7 CPASS+2(3) 9 7GG2 ... BCS XMESSI 4 7GG4 ...PWOK 7 7GG6 ... FREECORE 3 7 7GG8 ... UPPLUS 2 5 7GG= ...XMESSI 7 7GG# ... FREECORE 3 7 7GGB ... UPPLUS 1 5 7GGD ...XMESSH 7 7GGG ... FREECORE 3 7 7GGJ ... UPPLUS 3 4 7GGL ...# 18 7GGN ...# ENTRY POINT - X7 -VE IF PARAM CLEARING NOT REQUIRED 16 7GGQ ...# L.S. 22 BITS OF X7 IDENTIFY CALLING ROUTINE: 14 7GGS ...# 1 - LN / CN, 2 - JOB / INPUT, 3 - RJ 4 7GGW ...# 5 7GGY ...PWCHECK 9 7GH2 ... STO 7 AWORK4(2) 7 7GH4 ... LDN 0 3 9 7GH6 ... ANDX 7 BITS22LS 7 7GH8 ... TXU 7 0 18 7GH= ... SBN 0 0 [ RESET TO 2 UNLESS RJ 20 7GH# ... STO 0 GEN5 [ NO. OF FIXED-POSITION PARAMS 18 7GHB ... SBX 7 0 [ -1 - LN/CN, 0 - OTHERS 10 7GHD ... JBS PWCX,2,CXTMOP 7 7GHG ... LDN 7 1 11 7GHJ ... JBS PWCX,2,CXTREADER 17 7GHL ... LDN 7 2 [ OPERATOR CONTEXT 20 7GHN ...PWCX ADN 7 1 [ 0 LN/CN, 1 MOP, 2 READER, 3 OPS 11 7GHQ ... JBC PWCT,2,CXTREMOTE 16 7GHS ... ADN 7 4 [ + 4 IF REMOTE 11 7GHW ...PWCT MHUNTW 3,FILE,ADICTENT 9 7GHY ... LDX 2 CINDIC(3) 21 7GJ2 ... ANDN 2 3 [ SECURITY - 0 NORMAL, 1 HIGH, 2 LOW 7 7GJ4 ... LDN 0 1 20 7GJ6 ... SLL 0 22(2) [ CHAR. 0 LOW, 1 NORMAL, 2 HIGH 17 7GJ8 ... ADX 1 7 [ TABLE WORD POINTER 19 7GJ= ... ORX 1 0 [ CORRECT CHARACTER POINTER 18 7GJ# ... LDCH 6 TCENTRAL(1) [ TABLE CHAR F,M,N,O,P,Q 8 7GJB ... LDX 1 FX1 7 7GJD ... NGNC 5 1 9 7GJG ... TXL 6 TLETQ(1) 16 7GJJ ... BCS NTBIG [ MUST BE <= 'Q' 21 7GJL ...TABWR GEOERR 1,PW-TABLE [ X6 = INVALID LETTER, X2 = SECURITY LEVEL 15 7GJN ...# X0 = CHAR ADDR, X7 = WORD ADDR IN TABLE 9 7GJQ ...NTBIG TXU 6 TLETF(1) 9 7GJS ... BCC XMESSH 19 7GJW ... TXU 6 TLETQ(1) [ 'Q' - NO CHECK FOR PARAM 9 7GJY ... BCC PWPROMPT 7 7GK2 ... NGNC 5 1 17 7GK4 ... TXL 6 TLETL(1) [ MUST NOT BE <= 'L' 8 7GK6 ... BCS TABWR 8 7GK8 ... LDX 2 FX2 16 7GK= ... SBX 6 TLETL(1) [ M N O P 16 7GK# ... DEX 6 AWORK4(2) [ -> 1 2 3 4 15 7GKB ...# NOW SEEK (AND CLEAR) PASSWORD PARAMETER 8 7GKD ... MHUNT 3,CLB 9 7GKG ... STO 3 AWORK1(2) 10 7GKJ ... LDX 7 ANUMCHA(3) 17 7GKL ... ADN 3 CLBFIR [ START OF COMMAND 9 7GKN ... STO 3 AWORK2(2) 19 7GKQ ... STOZ GEN6 [ NO. OF LAST PARAM SCANNED 21 7GKS ...PSKIP CALL 5 SKPAR [ IGNORE COMPULSORY INITIAL PARAMS 8 7GKW ... BZE 7 NPW 8 7GKY ... TXL 6 GEN5 8 7GL2 ... BCS PSKIP 8 7GL4 ...PWSCH CALL 5 SKPAR 18 7GL6 ... LDN 1 PWSTL(1) [ CHECK LONG KEY FIRST 8 7GL8 ... CALL 5 TPWS 9 7GL= ... LDN 1 PWSTS(1) 8 7GL# ... CALL 5 TPWS 8 7GLB ... BNZ 7 PWSCH 13 7GLD ...# NO PASSWORD PARAMETER 16 7GLG ...NPW MHUNTW 3,FILE,ADICTENT [ FOR FREECORE 7 7GLJ ... LDN 0 2 9 7GLL ... ANDX 0 AWORK4(2) 16 7GLN ... BNZ 0 PWOK [ WASN'T NEEDED 20 7GLQ ...PWPROMPT [ TRY AND GET FROM MOP IF POSS 11 7GLS ... JBC XMESSH,FX2,CXTMOP 18 7GLW ... ACROSS ADDJOB,3 [ NORMAL PW CHECK & EXIT 4 7GLY ...) 4 7GQ= [ 11 7H9W [ ERROR/BREAK-IN ROUTINES 4 7HPG [ 4 7J96 [ 4 7JNQ [ 16 7K8B [ ERROR MESSAGES AND TIDY UP ROUTINES.......... 4 7KN2 [ 4 7L7L [ 14 7LM= [ ADDITIONAL VALUES OF AWORK2 FOR ERRORS 13 7M6W [ -3 DC ENDING IN NO USER CONTEXT 14 7MLG [ -4 BREAKIN ON JB,RJ AT DEWELLMENT 13 7MW# [ -5 PERMANENT BACK WELL ABANDON 4 7N66 [ 4 7NKQ [ 4 7P5B [ 5 7PK2 TIDY3 4 7Q4L XBRK 11 7QJ= TIDY2 SETNCORE 3,3,FILE,ADICT 9 7R3W CALL 7 X4USER 7 7RHG LDX 0 4 8 7S36 LDN 1 A1(3) 18 7SGQ MOVE 0 3 [MOVE USERNAME FROM CPAT 19 7T2B DICTJOB 2 [DECREMENT USER'S JOBS COUNT 5 7TG2 TIDY1 9 7XM8 LDX 7 AWORK2(2) 7 7XTW ADN 7 3 14 7Y4J BZE 7 SDC [J IF SPECIAL DC 7 7Y?= SBN 7 2 16 7YFY BNZ 7 TNLN [J IF NOT LOGIN 4 7YNL SDC 6 7YXB SUBJOB 4 7YY# [ 16 7Y_= [ THE MACRO IPBINOPID TAKES CARE OF CASE WHEN 14 7_28 [ AUTO-ANSWER TERMINAL GOES INOPERABLE. 4 7_44 [ 4 7_#G [ 5 7_*D XIPBINOP 7 7_F8 IPBINOPID 8 7_G6 BRN TIDY0 4 7_JY [ 7 7_WL TNLN SUBJOBJ 4 82TW [ 17 83*G TIDY0 LDX 7 AWORK2(2) [ FOR DEWELL ERRORS 17 83T6 BZE 5 XBR1 [ J IF BREAKIN CASE 17 84#Q BPZ 5 TERR [ J IF ERROR MESSAGE 20 84SB LDXC 5 5 [ SEE IF ERROR MESS ALREADY DONE 9 85#2 BZE 5 XENDCOM 19 85RL ACROSS CONNECT,2 [ DC WITH EXISTING JOBNAME 4 86?= TERR 17 86QW ADN 7 4 [ ARE WE IN DC CASE 18 87=G BZE 7 XSU [ SUICIDE IF DEWELLMENT 10 87BC BXE 5 XONE(1),UP 8 87G# ERRORX 5,6 4 87Q6 UP 5 889Q XENDCOM 6 88PB ENDCOM 4 8992 XSU 7 89NL SUICIDE 4 8=8= XCOM 7 8=MW COMBRKIN 4 8?7G [ 4 8?M6 [ 7 8#6Q XBR1 ADN 7 4 8 8#LB BZE 7 XSU 8 8*62 BCT 7 XCOM 16 8*KL MONOUT EDCBRKIN [ DC TYPE BREAKIN 15 8B5= ABANDCOM [ ABANDONED 5 8BJW OBREAKIN 18 8C4G GEOERR 1,BREAKJOB [BREAK-IN FOUND ILLEGALLY 4 8CJ6 [ 4 8D3Q [ 17 8DHB MCUNI NGNC 4 1 [ 'EXITS' TO TIDY1 16 8F32 MCUNI1 ['EXITS' TO TIDY2 7 8FGL LDN 4 0 6 8FK9 ...#UNS G400 4 8FMS ...( 11 8FQC ... HUNTW 3,IUSER,G400USER 9 8FT2 ... BPZ 3 X8HOOK 4 8FXK ...) 10 8G2= LDX 0 CONTEXT(2) 7 8GFW ANDN 0 1 17 8G_G BNZ 0 MC1 [J IF USER CONTEXT 6 8H6N ...#UNS G400 5 8H?W ...X8HOOK 9 8HF6 CALL 7 XSPCOL 8 8HYQ BRN NMK 11 8JDB MC1 SETNCORE SIZEU,3,CPB,CUNI 8 8JY2 LDN 0 12 9 8KCL STO 0 ANUM(3) 10 8KX= STO 4 ACOMMUNE1(2) 9 8LBW CALL 7 X4USER 7 8LWG LDX 0 5 9 8MB6 LDN 5 APARA(3) 7 8MTQ MOVE 4 3 10 8N*B LDX 4 ACOMMUNE1(2) 7 8NT2 LDX 5 0 8 8P#L NMK BZE 4 TIDY2 8 8PS= BRN TIDY1 10 8Q?W XTA LDX 4 JPARNUM(3) 8 8QRG XTB SBX 7 FX1 18 8R?6 SPARANOX 4 [GET PARAMETER FOR ERRORX 8 8RQQ ADX 7 FX1 10 8S=B XTC LDN 4 TIDY0-TIDY3 20 8SQ2 XTC1 NGN 6 1 [INDICATES NO SUBSIDUARY MESSAGE 7 8T9L XTD SMO 7 20 8TP= LDX 5 0 [LOAD APPROPRIATE ERROR UNIVERSAL 7 8W8W SMO 4 21 8WNG BRN TIDY3 [J TO APPROPRIATE ENTRY IN TIDY... 15 8X86 [ [...ROUTINE. 10 8XMQ XTE LDN 4 TIDY2-TIDY3 8 8Y7B BRN XTC1 10 8YM2 XTF LDN 4 MCUNI-TIDY3 8 8_6L BRN XTC1 10 8_L= XTG LDN 4 MCUNI1-TIDY3 8 925W BRN XTC1 7 92KG XTH LDN 4 0 8 9356 BRN XTC1 10 93JQ NJOBN LDX 6 PJJOBNA(1) 8 944B BRN PMISS 5 94J2 PARILL 8 953L CALL 7 XTB 9 95H= +APFERR 5 962W XNOUGHT 8 96GG CALL 7 XTC 10 9726 +JXCONSOLE 5 97FQ MODILL 8 97_B CALL 7 XTB 9 98F2 +ADOCER 8 98YL NLFN CALL 7 XTC 9 99D= +JNLFNF 5 99XW SPACERR 8 9=CG CALL 7 XTA 9 9=X6 +JOBIN 9 9?BQ NUSEN LDX 6 PJUSNA(1) 10 9?WB PMISS LDN 4 TIDY0-TIDY3 8 9#B2 CALL 7 XTD 9 9#TL +JPARMIS 5 9**= XNOUSE 8 9*SW CALL 7 XTF 9 9B#G +ERNOUSER 8 9BS6 UNJOB CALL 7 XTF 9 9C?Q +ERUNJOB 8 9CRB XENUF CALL 7 XTF 10 9D?2 +ERNOTENUF 5 9DQL XERPRIV 8 9F== CALL 7 XTG 9 9FPW +ANOPRIV 15 9FTR ...[ SKIP NEXT BIT IF G3 UG SEC I/FACE IS ON 7 9F_N ...#SKI G3UGSI<1$1 4 9G5K ...( 8 9G9G MESSH CALL 7 XTG 9 9GP6 +HSECURE 8 9H8Q MESSI CALL 7 XTG 9 9HNB +IMPASSE 4 9HQK ...) 20 9HSS ...#SKI G3UGSI [USER GROUP SECURITY INTERFACE 4 9HX3 ...( 8 9H_= ...XENOR CALL 7 XTG 9 9J3F ... #40000000 4 9J5N ...) 5 9J82 XBROKIN 7 9JML LDN 5 0 8 9K7= BRN TIDY2 5 9KLW SPACERR2 17 9L6G CALL 7 XTC [ SPACES IN JDF NAME 9 9LL6 +JDFINVAL 4 9M5Q #END 8 ____ ...25374543000700000000