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