{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PREPREAD867)}}
====== PREPREAD867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDINMODE|ADDINMODE]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXU|BXU]], [[george:macro:CHEKPASWRD|CHEKPASWRD]], [[george:macro:CHNUMCOD|CHNUMCOD]], [[george:macro:CLOSEABANDON|CLOSEABANDON]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:CREATEB|CREATEB]], [[george:macro:DCA|DCA]], [[george:macro:DISENGPER|DISENGPER]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ENGPER|ENGPER]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:INFINB|INFINB]], [[george:macro:ISITJOB|ISITJOB]], [[george:macro:LPROP|LPROP]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OPEN|OPEN]], [[george:macro:OVER|OVER]], [[george:macro:PARALYSE|PARALYSE]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:PROPUSER|PROPUSER]], [[george:macro:READDICT|READDICT]], [[george:macro:REPERR|REPERR]], [[george:macro:SAWCE|SAWCE]], [[george:macro:SECHECK|SECHECK]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETBIT|SETBIT]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPMODE|SETUPMODE]], [[george:macro:SINM551|SINM551]], [[george:macro:SINMAC2|SINMAC2]], [[george:macro:SPARABEG|SPARABEG]], [[george:macro:SPARAPAS|SPARAPAS]], [[george:macro:TESTHOOK|TESTHOOK]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEVER|TRACEVER]], [[george:macro:USERNORM|USERNORM]], [[george:macro:USEROPEN|USEROPEN]], [[george:macro:USEROPEX|USEROPEX]], [[george:macro:VFREE|VFREE]]
223? ... SEG PREPREAD,867,FILE,,G3UGSI,G501,G551,G400
224J ...[
225T ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
2276 ...[ THIS EXCLUDES CODE UNDER #SKI G501
228C ...[ AND UNDER #SKI G551
229N ...[ AND UNDER #SKI G3UGSI
22=^ ...[
22#= ...#OPT G3UGSI = 0
22*H ...#SKI G3UGSI
22BS ...(
22D5 ...# MACRO TO PREVENT M551 AND SECURITY INTERFACE CLASH
22FB ... SINM551
22GM ...)
22HY ...#UNS G400
22K9 ...# THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2
22LG ...#OPT G421 = 0
22MR ...#OPT G501 = 0
22P4 ...#SKI G501&1
22Q* ...# WITH UGUG EDIT M501 (3-SHIFT INPUT ON MOP)
22RL ...#OPT G551 = 0
22SX ...#SKI G551&1
22W8 ...# WITH G3UG EDIT M551 (SELECTIVE PASSWORD CHECKS FOR CENTRAL AND REMOTE)
22XF ...#OPT G600 = 0
22^= [
23DW [
23YG SEGENTRY K1PREPREAD,Z1PREPREAD
24D6 #
24XQ #
25CB # THIS SEGMENT ANALYSES THE PARAMETERS FOR INPUT, SETS UP THE CONTROL
25X2 # AREA, AND OPENS THE FILE. IT THEN GOES ACROSS TO INLOOP.
26BL # AWORK1=B0-5 =#44 SWITCH IF GRAPHIC,TABS
26W= # B6-11 =#66 SWITCH FOR ERROR RESTART (ALPHA-PREVIO
27*W # B12,13=PARASUB AND MDF,JDF SOURCE
27TG # B18-23=S,T TERMINATOR TYPE
28*6 # AWORK2= TERMINATOR
28SQ # AWORK3= NO OF PARAMETERS TO TEST - 1
29#B # AWORK4= INPUT MODE
29S2 #
2=?L [NOTE ON TRAPS, OWNERSHIP, SECURITY:
2=R= [ FILE TO BE CREATED GOES INTO THE CURRENT USER
2?=W [ TRAPS AND SECURITY ARE THOSE OF THE PROPER USER
2?QG [ (THIS IS RELATED TO 'TG' ON PSEUDO -> ERROR AND 'SE' UNDER
2#=6 [ PSEUDO -> PROPER USER'S SECURITY ALTERED)
2#PQ [
2*9B #
2*P2 SGRAPHIC #40000012
2B8L PARSUB 8HARASUB
2BN= PS 4HS
2C7W THTEEN +13
2CMG XDICT +10
2D76 8HMASTER
2DLQ SPACE 4H
2F6B 12HDICTIONARY
2FL2 +1
2G5L +1
2GK= 4HB1
2H4W TABS 4HTABS
2HJG SHICHAR #74
2J46 STAR 4H****
2J59 #SKI JSKI38
2J6# (
2J7C PCO 4HCO
2J8G PCODE 4HCODE
2J9K PBINA 4HBINA
2J=N PRY 4HRY
2J?R PEBCD 4HEBCD
2J#W PIC 4HIC
2J*^ PKDF9 4HKDF9
2JC4 SALLCHAR #40000024
2JD7 XJCODNO +JCODNO
2JF= XJCOMIS +JCOMIS
2JG* )
2JHQ #
2K3B # TABLE OF MONITORING FILE MESSAGES FOR ERROR REPORTING
2KH2 #
2L2L XADEFT +ADEFT [ NOT A VALID TERMINATOR
2LG= XADEFM +ADEFM [ NOT A VALID MODE
2L^W XJFNAME +JFNAME ['FILE NAME'
2MFG XERNOUSER +ERNOUSER ['USER NAME NOT FOUND'
2M^6 XJUSNA +JUSNA ['USER NAME'
2NDQ XJPARMIS +JPARMIS ['PARAMETER MISSING'
2NYB XHSECURE +HSECURE ['INPUT NOT ALLOWED IN THIS CONTEXT'
2PD2 XIMPASSE +IMPASSE [ 'INCORRECT PASSWORD'
2PXL XERPSUB +ERPSUB [ 'PS NOT ALL. IN NON-EMB. INPUT
2QC= XILLQUAL +ILLQUAL ['AN ILLEGAL QUALIFIER HAS BEEN GIVEN
2QM4 XJMAXPAR +JMAXPAR
2QWW #
2QW^ #SKI JSKI38
2QX4 (
2QX7 # THIS TABLE IS FOR THE GLASGOW SPECIALS
2QX= # IT CONVERTS AN OCTAL CHARACTER INTO THE BINARY EQUIVALENT
2QX* # ON TAPE OR CARD.
2QXD
2QXH TABLE #00601000
2QXL #02610400
2QXP #02620200
2QXS #00630100
2QXX #02640040
2QY2 #00650020
2QY5 #00660010
2QY8 #02670004
2QY? #02700002
2QYB #00710001
2QYF #00720202
2QYJ #02732012
2QYM #00744042
2QYQ #02750012
2QYT #02761012
2QYY #00771006
2Q^3 #02400000
2Q^6 #00414006
2Q^9 #00420006
2Q^# #02430102
2Q^C #00442102
2Q^G #02451042
2Q^K #02464000
2Q^N #00470022
2Q^R #00504022
2Q^W #02512022
2Q^^ #02522042
2R24 #00534012
2R27 #02541202
2R2= #00552000
2R2* #00564102
2R2D #02571400
2R2H #03000042
2R2L #01014400
2R2P #01024200
2R2S #03034100
2R2X #01044040
2R32 #03054020
2R35 #03064010
2R38 #01074004
2R3? #01104002
2R3B #03114001
2R3F #03122400
2R3J #01132200
2R3M #03142100
2R3Q #01152040
2R3T #01162020
2R3Y #03172010
2R43 #01202004
2R46 #03212002
2R49 #03222001
2R4# #01231200
2R4C #03241100
2R4G #01251040
2R4K #01261020
2R4N #03271010
2R4R #03301004
2R4W #01311002
2R4^ #01321001
2R54 #03334202
2R57 #1202
2R5= #2202
2R5* #2006
2R5D #1022
2R5H
2R5L # THIS SUBROUTINE CHECKS AND CONVERTS THE B AND #
2R5P # TERMINATORS FOR GLASGOW SPECIALS
2R5S # X3 -> CPB/CUNI , APARA(3) -> CHAR AFTER B OR #
2R5X #
2R62 SR6
2R65 LDX 6 3 [ STORE AWAY PTR TO CPB.CUNI
2R68 HUNT2 2,CPB,CALAS
2R6? LDX 0 CPBCPLEV(2)
2R6B BNG 0 SR6
2R6F LDX 0 CPBFSD(2)
2R6J BNG 0 XNOTMAC1
2R6M LDX 0 CPBPROGLEV(2)
2R6Q BNG 0 XCARDCONV
2R6T XNOTMAC1
2R6Y LDX 2 FX2
2R73 LDCH 0 JSOURCE1(2)
2R76 BNZ 0 XCARDCONV
2R79 LDN 5 2
2R7# TTCH1
2R7C LDCH 0 APARA(3)
2R7G BXGE 0 SHICHAR(1),RADEF [SHIFT CHARS NOT ALLOWED
2R7K BCHX 3 £
2R7N BCT 5 TTCH1
2R7R TOG1
2R7W LDN 2 12 [ FOR TABLE SHIFT
2R7^ LDN 1 TABLE
2R84 TOG
2R87 LDX 3 6
2R8= LDN 5 2
2R8* ADX 1 FX1
2R8D LDN 4 0
2R8H TTCH2
2R8L SLC 4 12
2R8P LDCH 0 APARA(3)
2R8S SMO 0
2R8X LDX 0 0(1) [ LOAD TABLE ENTRY
2R92 SRL 0 0(2) [ UPPER OR LOWER HALF OF TABLE WORD
2R95 ANDN 0 #7777
2R98 ORX 4 0 [ WITH REST OF TERMINATOR
2R9? BCHX 3 £
2R9B BCT 5 TTCH2
2R9F BRN TERMSAVE
2R9J XCARDCONV
2R9M SMO FX2
2R9Q LDCH 0 JSOURCE1
2R9T BZE 0 TOG1
2R9Y LDN 2 0 [ FOR TABLE SHIFT
2R=3 LDN 1 TABLE
2R=6 BRN TOG
2R=9 SR7
2R=# LDN 4 0
2R=C LDX 6 3
2R=G LDN 2 21
2R=K TTCH3
2R=N LDCH 0 APARA(3)
2R=R SLL 0 0(2)
2R=W ORS 0 4
2R=^ SBN 2 3
2R?4 BCHX 3 £
2R?7 BPZ 2 TTCH3
2R?= TERMSAVE
2R?* LDX 2 FX2
2R?D STO 4 AWORK2(2)
2R?H LDN 0 #63
2R?L ORS 0 AWORK1(2)
2R?P LDX 3 6
2R?S CALL 4 XFREE [ FREE CPB CUNI
2R?X EXIT 7 0
2R#2 )
2RBG #
2RW6 # THIS SUBROUTINE INSERTS DEFAULT TERMINATORS IN INFORMATION BLOCK
2S*Q #
2STB SR4
2T*2 LDN 0 #63 [STORE 'S'
2TSL ORS 0 AWORK1(2) [STORED TERMINATOR
2W#= LDX 0 STAR(1) [STORE
2WRW STO 0 AWORK2(2) ['****' TERMINATOR
2X?G EXIT 7 0
2XR6 #
2Y=Q #
2YQB #
2^=2 # THIS SUBROUTINE LOOKS FOR A SPECRFIED PARAMETER IN THE COMMAND
2^PL # X4 ON ENTRY=NO. OF CHARS. TO SEARCH FOR
329= # X5 ON ENTRY=CHARACTERS THEMSELUES
32NW #
338G NXTPARAM
33N6 LDX 3 AWORK3(2)
347Q BNG 3 PFIN
34MB SBX 7 FX1 [ RELATIVISE X7
3572 SPARABEG 1,4,,,0 [ LOOK FOR REQD. PARAMETER
35LL ADX 7 FX1 [ RESET X7
366= HUNT 3,CPB,CUNI
36KW #SKI K6PREPREAD>599-599
375G TRACEVER A1+2(3),NXTPARAM
37K6 LDX 6 ANUM(3)
384Q BNG 6 PFINN [ J IF NON-EXISTENT
38JB LDN 0 1
3942 SBS 0 AWORK3(2) [ SUBTRACT 1 FROM CO_NT
39HL EXIT 7 2 [PARAM WANTED EXISTS
3=3= PFIN EXIT 7 0 [ NO PARAMS LEFT TO SEARCH FOR
3=GW PFINN FREECORE 3 [FREE CPB,CUNI SINCE PARAM DOES
3?2G EXIT 7 1 [ NOT EXIST
3?G6 XFREE
3?^Q FREECORE 3 [ FREE CPB,CUNI
3#FB EXIT 4 0
3#^2 # THIS SUBROUTINE SETS UP FILE,CREATE BLOCK,SETS BITS AS APPROPRIATE
3*DL #
3*Y= SCREATE
3BCW SBX 7 FX1 [ RELATIVISE LINK ACC.
3BXG CREATEB 3 [ X3=>FILE,CREATE
3CC6 ADX 7 FX1 [ RESET LINK ACC.
3CWQ BS 3,CESERIAL [ SET SERIAL BIT
3DBB ISITJOB SOVER [ ISSUED FROM JOB?
3DW2 BS 3,CETEMP [ TEMPORARY FILE
3F*L SOVER EXIT 7 0
3FT= # THIS SUBROUTINE INSERTS A SPECIFIED TERMINATOR IN INFORMATION BLOCK
3G#W #
3GSG SR5 [X3 PTS. TO PARAM. BLOCK
3H#6 ORS 5 AWORK1(2) [ STORE IT FOR TIDYREAD
3H## BNZ 6 XREHUNT [ J - NOT NULL PARAM
3H#G LDX 2 FX2
3H#N SMO FX1
3H#W LDX 0 SPACE
3H*4 BRN SPACES [ DEFAULT TO 4 SPACES
3H*# XREHUNT
3HBG HUNT2 2,CPB,CALAS
3HCN LDX 0 CPBCPLEV(2)
3HDW BNG 0 XREHUNT [J IF SOURCE IS A COMMAND
3HG4 LDX 0 CPBFSD(2)
3HH= BNG 0 XNOTMACRO
3HJD LDX 0 CPBPROGLEV(2)
3HKL BNG 0 XNOCHECK [J IF GRAPHIC
3HLS XNOTMACRO
3HN2 LDX 2 FX2
3HP8 LDCH 0 JSOURCE1(2)
3HQB BNZ 0 XNOCHECK [J IF CARD READER
3HRQ LDN 5 4 [ COUNT OF 4 FOR TERMINATOR
3J?B TTCH LDCH 0 APARA(3) [ GET CHAR OF TERMINATOR
3JR2 BXGE 0 SHICHAR(1),RADEF [ GO IF ILLEGAL
3K=L BCHX 3 £
3KQ= BCT 5 TTCH [ GO TEST NEXT CHAR
3L9W LDX 0 APARA-1(3) [ GET TERMINATOR
3L*2 BRN SPACES
3LD6 XNOCHECK
3LH= LDX 0 APARA(3) [GET TERMINATOR
3LLB LDX 2 FX2
3LPG SPACES
3M96 STO 0 AWORK2(2) [ STORE IT
3MNQ SBN 3 1
3N8B EXIT 7 0
3NN2 #
3P7L #
3PM= # THIS SUBROUTINE DETERMINES WHETHER INPUT IS FROM MOP CONSOLE, JDF/MDF,
3Q6W # OR TR/CR
3QLG #
3R66 SOURCE
3RKQ #
3S5B HUNT2 2,CPB,CALAS
3SK2 LDX 0 CPBCPLEV(2)
3T4L BNG 0 SOURCE [J IF SOURCE IS A COMMAND
3TJ= LDX 0 CPBFSD(2)
3W3W LDX 2 FX2
3WHG BPZ 0 YMDF [SOURCE IS A MDF
3X36 LDX 0 CONTEXT(2) [JUMP
3XGQ SRC 0 4
3Y2B BNG 0 YMOP [MOP CONTEXT
3YG2 SRC 0 4
3Y^L BNG 0 YREM [REMOTE CONTEXT
3^F= SLC 0 2
3^YW BNG 0 YCTR [SLOW PERIPHERAL
42DG CALL 7 SINFIN [UNSGT BIT FOR FINISH
42Y6 ENDCOM
43CQ YCTR EXIT 7 3 [SLOW PERIPHERAL INPUT
43XB YMOP EXIT 7 0 [MOP INPUT
44C2 YMDF EXIT 7 1 [INPUT FROM MDF
44WL YREM EXIT 7 2 [REMOTE INPUT
45B= #
45TW # THIS SUBROUTINE SETS OR UNSETS BIT FOR FINISH COMMAND
46*G #
46T6 SINFIN
47#Q INFINB
47SB EXIT 7 0
48#2 #
48RL #
49?= Z1PREPREAD
49QW #
4==G #SKI K6PREPREAD>199-199
4=Q6 TRACE 1,INPREP
4?9Q CALL 7 SINFIN [SET BIT FOR FINISH COMMAND
4?PB STOZ AWORK1(2)
4#92 STOZ AWORK2(2) [NO TERMINATOR
4#NL PARANUMB 3 [NO OF PARAMS IN INPUT.
4*8= SBN 3 2 [ DECREASE BY 2
4*MW STO 3 AWORK3(2)
4B7G MJCK
4BM6 CALL 7 SOURCE [ IS COMMAND FROM AN MDF?
4C6Q BRN NOSET [ NO
4CLB BRN SET13 [ YES-SET B13 AWORK1
4D62 BRN NOSET
4DKL BRN NOSET
4F5= SET13 LDN 6 #2000 [SET B13
4FJW ORS 6 AWORK1(2)
4G4G NOSET BRUSEN NOUS [J IF 'NO USER'
4GJ6 BRN XCOM
4H3Q NOUS
4HHB #SKI K6PREPREAD>199-199
4J32 TRACE CONTEXT(2),DIRECTIV
4JGL LDN 3 1
4K2= SBS 3 AWORK3(2)
4KFW SPARAPAS [USER NAME
4K^G MHUNT 3,CPB,CUNI
4LF6 NGX 4 ANUM(3)
4LYQ BPZ 4 NULLUN [J IF NULL OR NON EXISTANT
4MDB LDN 1 1
4MY2 USERNORM 1 [CHECK IF USER NAME IS OK
4NCL TESTREP2 USERFORM,TOCOP,USERMIS,NULLUN
4NX= MHUNT 3,FILE,ADICT
4PBW ADN 3 A1
4PWG LDN 4 CPREFIX(2)
4QB6 MOVE 3 3 [MOVE INTO CPAT
4QTQ PROPUSER [GET PROPER USER
4R*B [ IF 'PSEUDO' REPLY, MOVE PROPER USER INTO ADICT BLOCK IN ORDER
4RT2 [ TO GET ASSOCIATED ADICTENT IN ORDER TO CHECK SECURITY
4S#L TESTREP2 OK,SITJ,NOUSER,NOUSER2
4SS= MHUNT 3,FILE,ADICT [PSEUDO REPLY ASSUMED
4T?W ADN 2 ACOMMUNE1
4TRG ADN 3 A1
4W?6 MOVE 2 3 [MOVE PROPER NAME INTO ADICT
4WQQ SITJ
4X=B ISITJOB SECHK [J IF NOT G3 JOB INTERNAL INPUT
4XQ2 BRN XCOMX [J IF G3 JOB INTERNAL INPUT
4Y9L SECHK
4YP= LDX 2 FX2
4^8W LDX 6 BIT11
4^NG ANDX 6 EXT+11(2) [J IF 7600 JOB INTERNAL INPUT
5286 BNZ 6 XCOMX
52MQ SETNCORE 10,3,FILE,FABSNB
537B ADN 3 A1
53M2 LDN 2 XDICT(1)
546L MOVE 2 10
54L= OPEN XBREAK,READ [OPEN DICTIONARY
555W TESTRPN2 OK,XBREAK [CRASH IF CANT OPEN
55KG READDICT [READ USER'S ENTRY
5656 TESTREP2 NOUSER,NOUSER [J IF NOT KNOWN
56JQ #SKI
574B (
57J2 PROPUSER
583L TESTREPN PSEUDO,PROPUS [J IF PROPER USER
58H= LDN 3 ACOMMUNE1(2)
592W LDN 4 CPREFIX(2)
59GG MOVE 3 3 [PROPER USER INTO CPAT
5=26 PROPUS
5=FQ )
5=^B CLOSETOP [DICTIONARY
5?29 ...#UNS G3UGSI
5?34 ...#SKI
5?3X ...(
5?4Q ...#SKI G551&1
5?5K ...(
5?6D ... LDCT 7 #400
5?7? ... ORN 7 2
5?86 ... DOWN INITJOB,20
5?8^ ... BRN XBRKIN
5?9S ... BRN PASNOK
5?=M ... BRN XCOMX
5??G ... BRN XPW
5?#* ...)
5?*8 ...#SKI G421^G551^G600&1$1
5?B3 ...(
5?BW ...#UNS G400
5?CP ... TESTHOOK TEREP [IGNORE SECURITY IF FROM A HOOK
5?F2 MHUNT 3,FILE,ADICTENT
5?YL LDX 6 CONTEXT(2)
5#D= ANDN 6 8
5#XW BZE 6 MBACK [ J IF NOT MOP
5*CG [
5*X6 [ B22,23 = 0 MEANS 'NORMAL'
5BBQ [ B23 = 1 MEANS 'HIGH' ; B22 = 1 MEANS 'LOW'
5BWB SECHECK 3,TEREP,NORHIGH [CHECK USER'S SECURITY
5CB2 NORHIGH
5CTL CHEKPASWRD XBRKIN,PASNOK [ CHECK PASSWORD
5CXJ ...)
5C^G ...#UNS G3UGSI
5D3D ...(
5D5B ...[ CODE FOR USER GROUP SECURITY INTERFACE
5D7# ... SINMAC2 TOCOP,XBRKIN,4
5D9= ...)
5D?8 ...)
5D*= XCOMX MFREE CPB,CUNI [FREE PARAMETER BLOCK
5DSW XCOM
5F#G SPARAPASS [ACCESS FILE NAME PARAMETER
5FS6 MHUNT 3,CPB,CUNI
5G?Q #SKI K6PREPREAD>599-599
5GRB TRACEVER APARA(3),FILENAME
5H?2 NGX 4 ANUM(3)
5HQL BPZ 4 NOFN [J IF NULL
5J== NAMETOP 3,FILE,FNAME [RENAMED READY FOR 'OPEN'
5JPW FNORM 3
5K9G TESTREP2 NAMEFORM,TOCOP [J IF ERROR
5KP6 HUNT 3,FILE,FNAME
5L8Q NAMETOP 3,CPB,CUNI [RENAME FOR ERROR REPORT
5LNB [ THIS CURES B137 - NO USER INPUT TO PSEUDO DIRECTORY(TRAPS CLOSED)
5M82 [
5MML BRUSEN PUSER [ J IF NO USER CONTEXT
5N7= BRN PARM
5NLW PUSER
5P6G PROPUSER
5PL6 TESTRPN2 PSEUDO,PARM [ J IF PROPER USER
5Q5Q LDN 3 ACOMMUNE1(2) [PSEUDO USER
5QKB LDN 4 CPREFIX(2)
5R52 MOVE 3 3 [ PROPER USER INTO CPAT FOR TRAP CHEC
5RJL #
5S4= #
5SHW # THIS IS THE PARAMETER ANALYSING SECTION
5T3G #
5TH6 PARM LDN 4 1 [ NO' OF CHARS'
5W2Q LDCT 5 #600 [ 'P'
5WGB CALL 7 NXTPARAM [ 'P' PARAMETER?
5X22 BRN NOMORE
5XFL BRN NOPS [ NO PARASUB GIVEN
5X^= LDX 6 APARA(3) [ 'P' GIVEN
5YDW BXE 6 PS(1),XIT [ ='PS'?
5YYG LDX 7 APARA+1(3)
5^D6 TXU 6 PARSUB(1)
5^XQ TXU 7 PARSUB+1(1) [ ='PARASUB'?
62CB BCS NFREE [ NO-INVALID PARAM.-IGNORE IT
62X2 XIT LDX 6 AWORK1(2) [ PS GIVEN-TEST IF FROM MDF,JDF
63BL ANDN 6 #2000 [ PS GIVEN IS B13 SET?
63W= BZE 6 MJDFER
64*W SRC 6 11 [ B13 SHOULD BE SET
64TG BPZ 6 MJDFER [ CONTEXT INCORRECT
65*6 LDN 6 #4000
65SQ ORS 6 AWORK1(2) [ OK-SET B12 AWORK1
66#B NFREE CALL 4 XFREE [ FREE CPB,CUNI
66S2 NOPS
67?L LDN 4 4 [ NO. OF CHARS. -'TABS'
67R= LDX 5 TABS(1) [ ='TABS'?
68=W CALL 7 NXTPARAM
68QG BRN NOMORE
693W #SKI JSKI38
6972 BRN SCODE
698J #SKI JSKI38-1
69=6 BRN TREQ [ LOOK FOR 'T'
6#7W CALL 7 TT [ TABS GIVVEN-DEAL WITH THEM
6#8P #SKI JSKI38
6#9J (
6#=C SCODE
6#?= LDX 5 PCODE(1) [GET CODE PARAMATER
6##5 LDN 4 4
6##Y CALL 7 NXTPARAM
6#*R BRN NOMORE
6#BL BRN SAG
6#CF BRN XCOTOG
6#D# SAG
6#F7 LDX 5 PCO(1) [OR CO PARAM
6#G2 LDN 4 2
6#GT CALL 7 NXTPARAM
6#HN BRN NOMORE
6#JH BRN TREQ
6#KB XCOTOG
6#L9 LDX 6 APARA(3)
6#M4 LDX 7 APARA+1(3)
6#MX BXU 6 PBINA(1),TEBCD
6#NQ BXU 7 PRY(1),TEBCD [J IF PARAM NOT BINARY
6#PK LDN 0 #400
6#QD BRN SETBIT
6#R? TEBCD
6#S6 BXU 6 PEBCD(1),TKDF9
6#S^ BXU 7 PIC(1),TKDF9 [J IF PARAM NOT EBCDIC
6#TS LDN 0 #200
6#WM BRN SETBIT
6#XG TKDF9
6#Y* BXE 6 PKDF9(1),SETBIT1
6#^8 LDX 4 XJCOMIS(1)
6*23 BRN XCOMR [OUTPUT ERROR MESSAGE
6*2W SETBIT1
6*3P LDN 0 #100
6*4J SETBIT
6*5C ORS 0 AWORK1(2)
6*6= )
6*76 TREQ LDN 4 1
6*LQ LDCT 5 #640 [ 'T'
6B6B CALL 7 NXTPARAM [ 'T' GIVEN?
6BL2 BRN NOMORE
6C5L BRN SREQ [ LOOK FOR 'S'
6CK= LDN 5 #64 [ GIVE SR5 TERM. TYPE
6D4W TRMN CALL 7 SR5 [STORE TERMINATOR
6DJG MFREE CPB,CUNI
6F46 BRN WHICHSEG
6FHQ SREQ LDCT 5 #630 [ 'S'
6G3B CALL 7 NXTPARAM [ LOOK FOR 'S'
6GH2 BRN NOMORE
6GQS #SKI JSKI38-1
6H2L BRN NOMORE [ ILLEGAL PARAMS LEFT
6H7S #SKI JSKI38
6H*2 BRN TERMB
6HG= LDN 5 #63 [ GIVE SR5 TERM. TYPE
6H^W BRN TRMN [ 'S' GIVEN-STORE TERM.
6J2G #SKI JSKI38
6J36 (
6J3Q TERMB
6J4B LDCT 5 #420
6J52 CALL 7 NXTPARAM
6J5L BRN NOMORE
6J6= BRN TERMHASH
6J6W LDN 0 #400
6J7G ANDX 0 AWORK1(2)
6J86 BZE 0 RADEF
6J8Q CALL 7 SR6
6J9B BRN WHICHSEG
6J=2 TERMHASH
6J=L LDCT 5 #230
6J?= CALL 7 NXTPARAM
6J?W BRN NOMORE
6J#G BRN NOMORE
6J*6 LDN 0 #400
6J*Q ANDX 0 AWORK1(2)
6JBB BZE 0 RADEF
6JC2 CALL 7 SR7
6JCL BRN WHICHSEG
6JD= )
6JFG NOMORE
6J^6 CALL 7 SR4 [ STORE DEFAULT TERM
6KDQ WHICHSEG
6KYB CALL 7 SOURCE [ WHICH SEGMENT NEXT?
6LD2 BRN MOPWRK [ MOP
6LXL BRN XJDFWRK [ JDF
6MC= BRN REMSLW
6MWW REMSLW
6NBG CALL 7 SCREATE [ SET UP CREATE BLOCK
6NW6 HUNT 1,FILE,ADJUNCTS
6NWC #SKI JSKI38
6NWN (
6NW^ LDN 0 #400
6NX= ANDX 0 AWORK1(2)
6NXH BNZ 0 XCHQUAL [J IF BINARY
6NXS LDN 0 #200
6NY5 ANDX 0 AWORK1(2)
6NYB BZE 0 TAPER [J IF NOT KDF9
6NYM BNG 1 XDEFAULT [J IF NO ADJUNCT
6NYY LDX 5 A1+2(1)
6N^9 BZE 5 XDEFAULT [J IF NO MODE
6N^G LDX 0 5
6N^R ANDX 0 #10
6P24 BZE 0 OKMODE [J IF MODE NOT GRAPHIV
6P2* LDX 1 FX1
6P2L LDX 4 XJCODNO(1)
6P2X BRN XCOMR
6P38 XDEFAULT
6P3F LDX 1 FX1
6P3Q LDX 5 SALLCHAR(1) [SET DEFAULT ALLCHAR
6P43 OKMODE
6P4# STO 5 CETM(3) [PUT MODE IN CREARE
6P4K BRN USEROPEN
6P4W XCHQUAL
6P57 BNG 1 NOFADJ1 [J IF NO ADJUNCTS
6P5D LDX 5 A1+2(1)
6P5P BZE 5 NOFADJ1 [J IF NO QUAL GIVEN
6P62 LDX 0 5
6P6? ANDN 5 #10
6P6J BZE 5 WRADJ [J IF NOT GRAPHIC
6P6T HUNT 2,AINPAR,ATB
6P76 BNG 2 WRADJ [EROR IF TABS GIVEN
6P7C NOFADJ1
6P7N SMO FX1
6P7^ LDX 5 SGRAPHIC [SET GRAPHIC DEFAULT
6P8= STO 5 CETM(3)
6P8H LDCH 7 JSOURCE1(2)
6P8S BZE 7 TAPER [J IF NOT CR
6P95 CALL 7 SOURCE
6P9B BRN Z
6P9M BRN Z
6P9Y BRN TAPER
6P=9 Z
6P=G LPROP ,0
6P=R ANDN 0 #10
6P?4 BNZ 0 USEROPEN
6P?* SMO FX1
6P?L LDX 4 XJCODNO
6P?X BRN XCOMR
6P#8 TAPER
6P#F )
6P*Q BNG 1 NOFADJ
6PTB LDCT 0 #377
6Q*2 ANDX 0 A1+2(1)
6QSL BNZ 0 WRADJ
6R#= LDX 5 A1+2(1) [ PERI MODE
6RRW BZE 5 NOFADJ [ NO MODE?
6S?G LDCH 7 JSOURCE1(2)
6SR6 LDX 4 5
6T=Q BZE 7 USEMODE [ TR-USE GIVEN MODE
6TQB ANDN 5 #10
6W=2 BNZ 5 USEMODE [ GRAPHIC?
6WPL BRN WRADJ [ ILLEGAL QUAL.
6X9= NOFADJ
6XNW LDX 1 FX1
6Y8G LDX 5 SGRAPHIC(1) [ GRAPHIC MODE
6YN6 STO 5 CETM(3) [ STORE DEFAULT-GRAPHIC
6^7Q BRN USEROPEN
6^MB USEMODE
7272 STO 4 CETM(3)
72LL [
736= [
73KW USEROPEN
745G LDN 4 0 [ CLEAR MODE WMRDS
74K6 LDN 5 0 [ DO USEROPEN
754Q HUNT 3,FILE,ADJUNCTS
75JB BNG 3 MODEAD [ NO ADJUNCTS-SET UP MODES
7642 SETUPMODE 4,5,COMMUNE,GDR
76HL ANDX 4 A1+1(3)
773= ANDX 5 A1+4(3) [ AND IN COMM,GDR IF PRESENT
7777 MODEAD
77?4 #UNS FTS1
77B^ (
77GW ISITJOB MODEAD1
77LR ADDINMODE ,5,FROZEN
77QN )
77WK MODEAD1
782G #SKI AMULTUSER
78G6 ADDINMODE 4,5,APPEND,CREATE,EMPTY,MULT,FILE
78^Q #SKI AMULTUSER<1$1
79FB ADDINMODE 4,5,APPEND,CREATE,EMPTY,STREAMS
79^2 #SKI K6PREPREAD>599-599
7=DL (
7=Y= TRACEVER 4,MODEWRD1
7?CW TRACEVER 5,MODEWRD2
7?XG )
7#C6 USEROPEX XBRKIN,4,5
7#WQ REPERR OKREPLY [ OK?
7*BB CALL 7 SINFIN [ ERROR REPLY
7*W2 ENDCOM
7B*L OKREPLY
7BKD VFREE FILE,CREATE [ IF FILE ALREADY EXISTS
7BT= CALL 7 SOURCE [ WHICH SEGMENT?
7C#W BRN MOPXIT [ MOP
7CSG BRN XJDF [ JDF
7D#6 BRN REMOTE [ REMOTE
7DRQ LDCH 4 JSOURCE1(2)
7F?B TOPFCB2 3 [ TR
7FR2 LDX 7 FETM(3) [ X7=MODE
7G=L LDN 5 128 [ COUNT=128
7GQ= ANDN 7 #10 [ X7=>GRAPHIC IF PRESENT
7H9W BNZ 4 XCARD [ J IF CR
7HPG HUNT 1,AINPAR,ATB
7J96 BPZ 1 XTABS [ TABS GIVEN?
7JNQ BNZ 7 XGRAPH [ NO-J IF GRAPHIC
7K8B MODEUSE
7KN2 LDX 4 FETM(3) [ NO-MUST BE NOR,ALLCHAR-USE MODE
7L7L BRN QMERG [ GO STORE MODE,COUNT
7LM= XGRAPH
7LNM #SKI JSKI38
7LQ4 (
7LRF LDN 0 #400
7LSW ANDX 0 AWORK1(2)
7LW? BZE 0 XGRAPH1
7LXN LDN 4 #20
7L^5 LDN 5 126
7M2G BRN QMERG
7M3X XGRAPH1
7M5# )
7M6W LDN 4 #12 [ X4=>GRAPHIC
7MLG LDN 5 127 [ COUNT=127
7N66 BRN QMERG
7N9F XCARD
7N#S #SKI JSKI38
7ND7 (
7NHG LDN 0 #400
7NLT ANDX 0 AWORK1(2)
7NQ8 BZE 0 XCARD1
7NTH LDN 4 2
7NYW LDN 5 160
7P49 BRN QMERG
7P7J XCARD1
7P=X )
7PB= LDN 4 0
7PFK LDN 5 80
7PK2 BRN QMERG [
7Q4L XTABS
7QJ= BZE 7 MODEUSE [ TABS GIVEN-GRAPHIC?
7R3W LDN 4 #44 [ GRAPHIC,TABS
7RHG DCH 4 AWORK1(2) [ STORE MARKER
7S36 LDN 4 2 [ PERI MODE NORMAL
7SGQ QMERG
7T2B #SKI K6PREPREAD>599-599
7TG2 (
7T^L TRACEVER 4,DCAMODE
7WF= TRACEVER 5,DCACOUNT
7WYW )
7XDG DCA ,DLA,4,MODE [ MODE IN DCA
7XY6 DCA ,DLA,5,COUNT
7YCQ LDCT 4 #200
7YXB ORS 4 EXT+9(2) [ SET B1
7^C2 BNZ 7 OVER [ GRAPHIC?
7^WL ERS 4 EXT+9(2) [ CLEAR B1
7^Y3 OVER
7^^D #SKI JSKI38
822T (
824= LDN 0 #400
825M ANDX 0 AWORK1(2)
8274 BZE 0 XNBIN [J-NOT BINARY
828F LTYPE ,5
829W BNZ 5 XCONTGS [J-NOT PPT READER
82?? DISENGPER
82#N ENGPER XCANTDO,,XCANTDO,4
82B5 BRN XCONTGS
82CG XCANTDO
82DX MFREE CPB,CUNI
82G# CLOSEABANDON
82HP CALL 7 SINFIN
82K6 ENDCOM
82LH
82MY XCONTGS
82P* MFREE CPB,CUNI
82QQ XNBIN
82S7 )
82TW ACROSS INLOOP,1
83*G REMOTE
83T6 SAWCE PCT,XPCT
83TX #SKI JSKI38
83WN (
83Y= STOZ ACOMMUNE1(2)
83^S LDN 0 #400
843B ANDN 0 AWORK1(2)
844Y BZE 0 REMOTE1
846G LDX 0 GSIGN
8484 ORS 0 ACOMMUNE1(2)
849L REMOTE1
84?8 )
84#Q ACROSS READBULK,2
84SB XPCT ACROSS INPCT,2
85#2 XJDFWRK
85RL CALL 7 SCREATE [ SET UP CREATE BLOCK
86?= TOPFCB 1
86QW LDX 6 FETM(1)
87=G STO 6 CETM(3) [ F,C BLOCK
87Q6 BRN USEROPEN [ DO USEROPEN
889Q XJDF
88PB ACROSS INPUTJDF,1
8992 MOPWRK
89NL CALL 7 SCREATE
89P# ...#SKI G501&1
89Q2 ...(
89QN ... LDX 4 SGRAPHIC(1)
89RB ... HUNT 1,FILE,ADJUNCTS
89S4 ... BNG 1 USEMODE [ NO QUALIFIERS
89SQ ... LDX 6 A1+2(1)
89TD ... BZE 6 USEMODE [ NO TYPE QUAL, TAKE AS GRAPHIC
89W6 ... TXU 4 6
89WS ... BCC USEMODE [ GRAPHIC SPECIFIED
89XG ... LDX 4 6
89Y8 ... STO 6 CETM(3) [ STORE TYPE/MODE, ASSUMING OK
89YW ... ANDN 6 2 [ TEST IF NORMAL OR ALLCHAR
89^J ... BZE 6 WRADJ [ FAIL - NOT SERIAL FILE
8=2= ... BS 2,G501SHIFT [ NORMAL OR ALLCHAR
8=2Y ... ANDN 4 #20
8=3L ... BZE 4 USEROPEN [ NORMAL
8=4# ... BS 2,G501ALLC
8=52 ... BRN USEROPEN [ ALLCHAR
8=5N ...)
8=6B ...#SKI G501&1$1
8=74 ...(
8=8= HUNT 1,FILE,ADJUNCTS
8=MW BNG 1 MODEOK [ DEFAULT USED
8?7G LDX 6 A1+2(1)
8?M6 BZE 6 MODEOK [ OK IF ZERO OR GRAPHIC
8#6Q ANDN 6 #10 [ SHOULD BE GRAPHIC
8#LB BNZ 6 MODEOK [ IT IS
8*62 BRN WRADJ [ ILLEGAL QUALIFIER
8*KL MODEOK
8B5= SMO FX1
8BJW LDX 5 SGRAPHIC
8C4G STO 5 CETM(3) [ STORE DEFAULT
8CJ6 BRN USEROPEN
8CRY ...)
8D3Q MOPXIT
8DHB ACROSS INPUTMOP,1
8F32 # TABS ANALYSING ROUTINE
8FGL #
8G2= TT LDX 0 ANUM(3)
8GFW SRL 0 12 [PARAMETER TYPE
8G^G BZE 0 RADEF [ERROR IF SIMPLE
8HF6 SBX 7 FX1
8HYQ PARALYSE ,,JPARNUM(3) [SPLIT PARAMETERS
8J8J TESTREP2 TOOMANY,TOOMANY
8JDB HUNT 3,CPB,CMULTI
8JY2 BNG 3 RADEF [J IF NOT VALID TABS
8KCL LDN 1 2 [2ND PARAMETER
8KX= PARALYSE #34,ANALEV(3),1 [SPLIT TABS
8L74 TESTREP2 TOOMANY,TOOMANY
8LBW MHUNT 3,CPB,CUNI
8LWG FREECORE 3
8MB6 MHUNT 3,CPB,CMULTI
8MTQ LDX 2 APARANUM(3) [N/PARAMETERS IN CPB/CMULTI
8N*B BZE 2 TABAG [J IF NO TABS
8NT2 HUNT 1,AINPAR,ATB
8P#L BPZ 1 TABAG [J IF 2ND TABS
8PS= SLL 2 1
8Q?W ADX 2 APARANUM(3) [N/P*3
8QRG ADN 2 2 [N/P*3+2
8R?6 SETUPCOR 2,3,AINPAR,ATB
8RQQ MHUNT 2,CPB,CMULTI
8S=B LDX 5 APARANUM(2) [NUMBER OF PARAMETERS
8SQ2 STO 5 A1(3) [STORE N/TABS
8T9L STOZ 4
8TP= NEWPR PARAPASS [A TAB
8W8W MHUNT 2,CPB,CUNI
8WNG LDX 0 ANUM(2) [N/CH IN PARAMETER
8X86 BZE 0 SUBTA [J IF NULL PARAMETER
8XMQ CHNUMCOD ,2 [CONVERT TO BINARY
8Y7B MHUNT 3,AINPAR,ATB
8YM2 TESTREP CHNUMERR,SUBTA [J IF TAB IS NOT VALID
8^6L LDX 1 ACOMMUNE1(2) [TAB
8^L= BNZ 1 TETA [J IF TAB>0
925W SUBTA LDN 0 1
92KG SBS 0 A1(3) [SUBTRACT 1 FROM N/TABS
9356 BRN PBFRE
93JQ TETA SBN 1 2001
944B BPZ 1 SUBTA [J IF ILLEGAL
94J2 LDX 1 ACOMMUNE1(2) [TAB
953L ADN 4 1 [UPDATE PTR IN ATB
95H= SMO 4
962W STO 1 A1(3) [STORE THE TAB
96GG SMO 4
9726 STOZ A1+1(3)
97FQ PBFRE MHUNT 2,CPB,CUNI
97^B FREECORE 2 [FREE CPB/CUNI
98F2 BCT 5 NEWPR [J FOR NEXT TAB
98YL BNZ 4 OKTAB
99D= FREECORE 3 [FREE ATB IF NO TABS
99XW OKTAB MHUNT 3,CPB,CMULTI
9=CG TABAG FREECORE 3 [FREE 1RST CPB
9=X6 MHUNT 3,CPB,CMULTI
9?BQ FREECORE 3 [FREE 2ND CPB
9?WB ADX 7 FX1
9#B2 EXIT 7 0
9#TL #
9**= #
9*SW TOCOP CALL 7 SINFIN
9B#G ENDCOM
9BS6 #
9C?Q WRADJ LDX 1 FX1
9CRB LDX 4 XILLQUAL(1) [ MESSAGE : AN ILLEGAL QUALIFIER GIVE
9D?2 BRN XCOMR
9DQL RADEF LDX 4 XADEFT(1) [ MESSAGE : NOT A VALID TERMINATOR
9F== BRN XCOMR [OUTPUT ERROR REPORT
9FB7 TOOMANY
9FG4 LDX 4 XJMAXPAR(1) [MESSAGE : TOO MANY PARAMETERS
9FK^ BRN XCOMR
9FPW NULLUN
9G9G LDX 5 XJUSNA(1) [SUBMESSAGE 'USER NAME'
9GP6 BRN XCOMS [OUTPUT ERROR
9H8Q NOUSER
9HNB CLOSETOP [CLOSE THE DICTIONARY
9J82 NOUSER2
9JML LDX 4 XERNOUSER(1) ['USER NOT FOUND' MESSAGE
9K7= XCOMR
9KLW CALL 7 SINFIN [UNSET BIT FOR FINISH
9L6G COMERRX 4 [ERROR REPORT
9LL6 NOFN
9M5Q LDX 5 XJFNAME(1) [SUBMESSAGE 'FILE-NAME'
9MKB XCOMS LDX 4 XJPARMIS(1) ['PARAMETER MISSING' MESSAGE
9N52 CALL 7 SINFIN [UNSET BIT FOR FINISH
9NJL COMERRX 4,5 [ERROR REPORT
9P4= XBREAK
9PHW GEOERR 1,NOBRKIN
9PMR ...#UNS G3UGSI
9PRN ...#SKI
9PXK ...(
9Q3G TEREP MFREEW FILE,ADICTENT
9QH6 BRN XCOMX
9R2Q MBACK SECHECK 3,TEREP,TEREP
9R7Y ...#SKI G551&1
9R*6 ...XPW
9RGB LDX 4 XHSECURE(1) [ 'INPUT NOT ALLOWED' MESSAGE
9S22 BRN XCOMR
9S9S ...)
9SFL MJDFER [ PS NOT ALL. OUTSIDE MDF,JDF
9S^= LDX 4 XERPSUB(1)
9TDW BRN XCOMR
9TYG XBRKIN
9WD6 CALL 7 SINFIN [ RESET FINISH BIT
9WXQ COMBRKIN
9X3M ...#UNS G3UGSI
9X7J ...#SKI
9X?F ...(
9XCB PASNOK [ INCORRECT PASSWORD
9XX2 LDX 4 XIMPASSE(1)
9YBL BRN XCOMR [ REPORT ERROR
9YW= ...)
=4?L #
=4R= SEGENTRY K99PREPREAD
=5=W MENDAREA 100,K99PREPREAD
=5QG #
=6=6 #END
^^^^ ...15470426000300000000