{{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