(George Source)
Macros used: BXE, CHECKLFN, CLOSETOP, DATECON, FREECORE, GEOERR, GETJOB, MFREE, MHUNT, OPENSYSX, PARAMOVE, PARANOTX, PHOTO, PMOVE, READ, READAGAIN, SEG, SEGENTRY, SETMODE, SETNCORE, SETUPCORE, SPARABEG, SPARANOX, SPARANXT, SPARAPAS, STEP, TESTMOVE, TESTREP2, TESTRPN2, TIMECON, UP, UPPLUS
22FL ... SEG SETJD,,CENT(INSTALLATION HOOKS),,G400 22^= [ 23DW [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23YG [ 24D6 # 24XQ SEGENTRY K1SETJD,SENTRY1 25CB SEGENTRY K2SETJD,SENTRY2 25X2 # 26BL #DEF VARPOINT=+11 26W= #DEF SIZELIST=+10 27*W #DEF XFACLEN=+18 27TG X1K +1024 28*6 X2K +2048 28SQ X5 +5 29#B X15 +15 29S2 XBR 4H ) 2=?L XBRL 4H ( 2=R= XCM 4H , 2?=W XCOM 4H, 2?QG X2TENS +100 2#=6 XSECS 4HSECS 2#PQ XHASH 4H # 2*9B XZERO 4H 0 2*P2 MAGIC +7036875 2B8L MINUS #35 2BN= SPA1 #20 2C7W SPEC 8H-8388608 2CMG SEVEN +7 2D76 TABLE 32HTRTPLPCRCPMTEDMCDSDR MXCTFDAD 2DLQ 32H GPGD HDMD 2F6B 32H 2FL2 32H IPOPGECOEMOIOOGSRRET 2G5L XER1 +JUSERJOB 2GK= XER2 +JUSNA 2H4W XER3 +JJOBNA 2HJG XER4 +JPARMIS 2J46 XER5 +JINVJNO 2JHQ XER6 +APFERR 2K3B XER7 +GENERR 2KH2 XER8 +JNUMBER 2L2L XER9 +JPARNULL 2LG= XER10 +JNUMBER1 2L^W XER11 +JONLINE 2MFG XER12 +JTOOMANY 2M^6 XER13 +ERNOCMD 2NDQ # 2NYB # 2PD2 # TABLE OF INVALID IDENTIFIERS FOR JD HOOK FORMAT 2PXL # USED WHEN VALIDATING JOBDATA STARTING WITH * 2QC= PDUR 2HUR 2QWW PDJT 2HJT 2RBG PDMZ 2HMZ 2RW6 PDNE 5HNEEDS 2S*Q PDDE 8HDEADLINE 2STB PDST 9HSTARTTIME 2T*2 PDEND +0 [END OF TABLE NEW ENTRIES IN FRONT 2TSL # 2W#= # THE FOLLOWING ARE POINTERS TO ABOVE DATA 2WRW # CH 0 = COUNT CH 1,2,3 = PTR ADDRESS 2X?G # 2XR6 JDTAB 2Y=Q #HAL #0200,+PDUR 2YQB #HAL #0200,+PDJT 2^=2 #HAL #0200,+PDMZ 2^PL #HAL #0500,+PDNE 329= #HAL #1000,+PDDE 32NW #HAL #1100,+PDST 338G #HAL #0100,+PDEND 33N6 # END OF POINTERS 347Q # 34MB # S/R TO GET :USERNAME AND CHECK LOCAL NAME FORMAT 3572 # 35LL UPAR 366= LDN 4 1 36KW LDCT 5 #120 [: 375G SBX 6 FX1 37K6 SPARABEG 1,4 384Q ADX 6 FX1 38JB UPAR1 3942 SBX 6 FX1 39HL CHECKLFN UPAR2,UPAR3 3=3= ADX 6 FX1 3=GW MHUNT 3,CPB,CUNI 3?2G EXIT 6 2 [OK 3?G6 UPAR2 3?^Q ADX 6 FX1 3#FB EXIT 6 1 [NULL 3#^2 UPAR3 3*DL ADX 6 FX1 3*Y= EXIT 6 0 [FORMAT ERROR 3BCW # 3BXG # THIS S/R MOVES THE NO. OF CHARS HELD IN THE ANUM 3CC6 # WORD TO THE ADDRESS IN X5 3CWQ # AT ENTRY X4: START ADDRESS OF CHAR STRING 3DBB # X5: DEST. ADDRESS OF CHAR STRING 3DW2 # X6 CORRUPTED 3F*L # X7 LINK 3FT= PMOVE 3G#W LDX 6 ANUM(3) 3GSG ANDN 6 #7777 3H#6 SMO 6 3HRQ MVCH 4 0 3J?B EXIT 7 0 3JR2 READ 3K=L SBX 7 FX1 3KQ= STEP 3L9W ADX 7 FX1 3LPG EXIT 7 0 3M96 XCOMP 3MNQ STO 7 GEN0 3N8B LDN 0 3 3NN2 XCA1 3P7L SMO 5 3PM= LDX 7 0(3) 3Q6W SMO 1 3QLG TXU 7 A1(2) 3R66 BCS XCA3 3RKQ ADN 5 1 3S5B ADN 1 1 3SK2 BCT 0 XCA1 3T4L SBN 5 3 3TJ= LDX 7 GEN0 3W3W EXIT 7 1 [RECORD FOUND 3WHG XCA3 3X36 SBN 0 3 [RESTORE X5 TO POINTING TOUSER 3XGQ ADX 5 0 3Y2B LDX 7 GEN0 3YG2 EXIT 7 0 3Y^L # 3^F= # S/R SETS UP COMDAT CSETP BLK AND INSERTS OPENING 3^YW # PARENTHESIS ON ENTRY X1:=FX1 42DG # X7:=LINK 42Y6 # AT EXIT X3:=BLOCK POINTER 43CQ # X6:=CHAR PTR TO N1 OF APARA(3) 43XB # A "(" HAS BEEN INSERTED IN NO 44C2 # 44WL XOPCC 45B= ADN 0 APARA-A1 45TW SBX 7 FX1 46*G SETUPCORE 0,3,COMDAT,CSETP 46T6 ADX 7 FX1 47#Q LDN 6 APARA(3) 47SB STOZ ANUM(3) 48#2 EXIT 7 0 48RL # 49?= # S/R TO DUMP 1CHAR IN COMDAT/CSETP BLOCK 49QW # AT ENTRY X3:= PTR. TO BLOCK 4==G # X6:= ABS. CHAR PTR TO NEXT CHAR IN BLOCK 4=Q6 # X0:= IN N3 THE CHAR TO BE DUMPED 4?9Q # X7:= LINK 4?PB # AT EXIT X6:= CHAR PTR TO NEXT CHAR 4#92 # X3:= BLOCK PTR 4#NL # X2:= FX2 4*8= # 4*MW XCH1 4B7G SBX 6 3 4BM6 STO 6 2 4C6Q ADX 6 3 4CLB BCHX 6 £ 4D62 SMO 3 4DKL DCH 0 0(2) 4F5= LDX 2 FX2 4FJW EXIT 7 0 4G4G # 4GJ6 # S/R TO MOVE CHARS TO COMDAT CSETP BLOCK 4H3Q # COUNT IN ANUM WORD IS ADVANCED 4HHB # AT ENTRY X7:= NO OF CHARS 4J32 # X5:= CHAR. PTR. TO 1ST CHAR 4JGL XCH2 4K2= SMO 7 4KFW MVCH 5 0 4K^G ADS 7 ANUM(3) 4LF6 EXIT 4 0 4LYQ # 4MDB # BINARY TO DECIMAL CONVERSION. AT ENTRY X1=FX1,X2 = 4MY2 # DESTINATION CHAR ADDRESS,X4 CONTAINS NO. TO BE CONVERTED 4NCL # ON EXIT X1=FX1,X2=PTR TO LAST CHAR DUMPED,X7=COUNT OF 4NX= # CHARACTERS TRANSFERRED.X6=LINK.X3 IS UNUSED. 4PBW # 4PWG XCONV 4QB6 STO 6 GEN2 [INITIAL COUNT 4QTQ LDN 7 1 [INITIAL COUNT 4R*B BPZ 4 POZ 4RT2 ADN 7 1 4S#L NGX 4 4 4SS= BNG 4 SPECIAL 4T?W LDX 6 MINUS(1) 4TRG DCH 6 0(2) 4W?6 BCHX 2 £ 4WQQ POZ 4X=B MPY 4 MAGIC(1) 4XQ2 LDN 0 7 4Y9L MODE 0 4YP= XCDR 4^8W CBD 4 0(2) 4^NG LDCH 6 0(2) 5286 BNZ 6 YOKO [1ST NON-ZERO CHAR 52MQ BCT 0 XCDR 537B BRN WEND 53M2 ONO 546L BCHX 2 £ 54L= CBD 4 0(2) 555W ADN 7 1 55KG YOKO 5656 BCT 0 ONO 56JQ WEND 574B BRN XIT 57J2 SPECIAL 583L LDN 1 SPEC(1) 58H= MOVE 1 2 592W LDN 7 8 59GG XIT 5=26 LDX 1 FX1 5=FQ LDX 6 GEN2 5=^B EXIT 6 0 5?F2 # 5?YL # S.R. TO CONVERT A DECIMAL NUMBER IN ACPB BLOCK 5#D= # TO BINARY.ANY SPACES IN THE PARAMETER ARE DROPPED. 5#XW # ON ENTRY-X3=PTR.TO 1ST CHAR OF DEC NO.X4=CHAR COUNT 5*CG # ON EXIT X6=BINARY NUMBER X3=CPB BLK PTR 5*X6 # X0,X4,X5,GEN0,GEN1,ARE USED.X7=LINK 5BBQ # 5BWB NUMST 5CB2 STO 3 GEN0 5CTL ADN 3 APARA 5D*= [ ABOVE SET POINTER 5DSW NUMCON 5F#G STOZ 5 5FS6 STOZ 6 5G?Q NU1 5GRB LDCH 0 0(3) 5H?2 TXU 0 SPA1(1) [IGNORE SPACES 5HQL BCC NU2 5J== CDB 5 0(3) 5JPW BCS NU3 [INVALID CHARACTER 5K9G NU2 5KP6 BCHX 3 £ 5L8Q BCT 4 NU1 5LNB ADN 7 1 [UPDATE EXIT PASSED ERROR LAB 5M82 NU3 5MML STO 3 GEN6 [PTR FOR QJD3 5N7= LDX 3 GEN0 5NLW EXIT 7 0 5P6G # 5PL6 # 5Q5Q # ############################################################# 5QKB # 5R52 # K K 1 5RJL # K K 11 5S4= # K K 1 5SHW # K K 1 5T3G # KKK 1 5TH6 # K K 1 5W2Q # K K 1 5WGB # K K 1 5X22 # K K 1 5XFL # 5X^= # ############################################################# 5YDW # 5YYG SENTRY1 5^D6 # 5^XQ # THE MAIN ENTRY POINT FROM SETPC.THE CODE 62CB # ACCESSES THE SPECIFIED FIELD IN :SYSTEM.JOBLIST 62X2 # FORMATS IT AND RETURNS IT TO THE COMMAND PARAMETER 63BL # IN A COMDAT CSETP BLOCK 63W= # 64*W LDN 4 2 64TG SPARANXT #34,,4 65*6 SETNCORE 8,2,ADATA,CSTORE 65SQ MHUNT 3,CPB,CUNI 66#B LDX 4 ANUM(3) 66S2 BZE 4 PT2 [PARAM NULL 67?L BNG 4 PARERR [NON-EXISTENT 67R= ANDN 4 #7777 68=W CALL 7 NUMST 68QG BRN PT1 [J IF MON NUMERIC 69=6 BZE 6 NUMERR [JOBNO ZERO 69PQ BRN PT3 6=9B PT2 6=P2 SMO FX2 6?8L LDX 6 JOBNO [DEFAULT JOBNO. 6?N= PT3 6#7W MHUNT 2,ADATA,CSTORE 6#MG STO 6 A1+1(2) 6*76 NGN 4 1 [MARKER TO INDICATE KEYED 6*LQ STO 4 A1(2) [SEARCH OF JOBLIST 6B6B MHUNT 3,CPB,CUNI 6BL2 FREECORE 3 [LOSE CUNI BLK 6C5L LDN 0 2 [SET UP FOR PARANOX 6CK= BRN PCH1 6D4W # 6DJG # JOBNO NOT GIVEN.SEARCH AMONG PARAMS FOR USERNAME/JOBNAME 6F46 # 6FHQ PT1 6G3B MHUNT 3,CPB,CUNI 6GH2 FREECORE 3 6H2L CALL 6 UPAR 6HG= BRN SJERR1 [FORMAT ERROR 6H^W BRN NUSERR [NO USERNAME PARAM FOUND 6JFG # 6J^6 # SPACEFILL ADATA/CSTORE BLOCK 6KDQ # 6KYB MHUNT 2,ADATA,CSTORE 6LD2 LDX 4 ACES 6LXL STO 4 A1(2) 6MC= LDN 4 A1(2) 6MWW LDN 5 A1+1(2) 6NBG MOVE 4 7 6NW6 # 6P*Q # TRANSFER USERNAME TO ADATA/CSTORE BLOCK 6PTB # 6Q*2 LDN 4 APARA(3) 6QSL LDN 5 A1(2) 6R#= CALL 7 PMOVE 6RRW # 6S?G # NOW SEE WHICH PARAM IN CMULTI BLOCK MUST BE JOBNAME 6SR6 # 6T=Q LDX 0 ATYPE(3) 6TQB ANDN 0 #7777 6W=2 SBN 0 1 6WPL BNZ 0 PC1 [JOBNAME IS 1ST PARAM 6X9= LDN 0 2 [JOBNAME IS 2ND PARAM 6XNW PC1 6Y8G STO 0 5 6YN6 FREECORE 3 6^7Q LDX 0 5 6^MB SPARANOX 0 7272 CALL 6 UPAR1 72LL BRN PARERR2 [ERROR IN JOBNAME FORMAT 736= BRN NJOBERR [NO JOBNAME FOUND 73KW MHUNT 2,ADATA,CSTORE 745G LDN 4 APARA(3) 74K6 LDN 5 A1+3(2) 754Q CALL 7 PMOVE 75JB FREECORE 3 7642 LDN 0 3 [STEP TO GET NEXT PARAM 76HL PCH1 773= PARANOTX 0 [SHOULD BE FAC/ITEM NO. 77GW MHUNT 3,CPB,CUNI 782G LDX 4 ANUM(3) 78G6 BZE 4 NULLERR [PARAM NULL 78^Q BNG 4 NUMERR2 [PARAM NON EXISTENT 79FB ANDN 4 #7777 79^2 CALL 7 NUMST 7=DL BRN VNO [J TO CHECK IF V-FORMAT 7=Y= SBX 6 X2K(1) 7?CW BPZ 6 PARERR1 [ITEM NO.TOO LARGE 7?XG ADX 6 X2K(1) 7#C6 BRN V5 [SKIP OVER 'V' TEST 7#WQ # 7*BB # THE FOLLOWING CHUNK OF CODE CHECKS TO SEE IF THE 7*W2 # ITEM NUMBER IS PRECEDED BY THE LETTER "V" 7B*L # 7BT= VNO 7C#W MHUNT 3,CPB,CUNI 7CSG LDCH 5 APARA(3) [1ST CHAR OF PARAM 7D#6 SBN 5 #66 7DRQ BNZ 5 PARERR1 [NON NUMERIC PARAM OF FORBIDD- 7F?B LDN 5 APARA(3) [EN FORMAT 7FR2 LDX 6 5 7G=L BCHX 5 £ 7GQ= SBN 4 1 [NEW LENGTH OF PARAM 7H9W BZE 4 PARERR1 [NO CHARACTER AFTER "V" 7HPG SMO 4 [MOVE UP NUMERIC CHARS IN 7J96 MVCH 5 0 [CPB/CUNI BLOCK 7JNQ STO 4 ANUM(3) [RESET COUNT 7K8B CALL 7 NUMST 7KN2 BRN PARERR1 [NON-NUMERIC FACILITY NUMBER 7L7L NNON2 7LM= ADX 6 X2K(1) [J TO HERE IF NEWNEEDS ON TO SIMULATE 7M6W V5 7MLG MHUNT 2,ADATA,CSTORE 7N66 STO 6 A1+6(2) [FAC/ITEM NO. 7NKQ # 7P5B # DATA TO READ JOBLIST RECS NOW IN ADATA/CSTORE BLOCK. 7PK2 # THE NEXT SECTION OF CODE OPENS JOBLIST 7Q4L # 7QJ= SETMODE 6,READ 7R3W OPENSYSX XBRK,JOBLIST,6 7RHG TESTREP2 OK,XOK 7S36 GEOERR 1,JOBLIST? 7SGQ XOK 7T2B CALL 7 READ [READ FORMAT REC 7TG2 MHUNT 2,ADATA,CSTORE 7T^L LDX 1 FX2 7WF= LDX 4 VARPOINT(3) 7WYW STO 4 AWORK1(1) [STORE FOR LATER IF NEC. 7XDG LDX 6 A1+6(2) [FAC/ITEM NO 7XY6 SMO FX1 7YCQ TXL 6 X1K 7YXB BCS PF1 [J IF FIXED RESOURCE 7^C2 BRN RED1 [TO SEARCH JOB'S REC 7^WL # 82B= # NOW FROM THE FIXED FAC.TABLE FIND THE 3-WORD ENTRY 82TW # 83*G # CORRESPONDING TO THE FAC. NO AND TRANSFER TO AWORK2-4 83T6 # 84#Q PF1 84SB STO 3 GEN0 85#2 LDX 4 JFACTAB-A1(3) [PTR. TO FAC.TABLE WITHIN RECORD 85RL ADN 4 1 [PTR. TO FAC. TABLE WITHIN BUFFER 86?= ADX 3 4 [PTR, TO LENGTH WORD 86QW LDX 5 0(3) [LENGTH OF TABLE 87=G SBN 5 1 [SET UP LENGTH-1 FOR COMPARISON 87Q6 ADN 3 1 [1ST WORD OF TABLE 889Q SLL 6 1 [MULT. BY 3 88PB ADX 6 A1+6(2) 8992 TXL 5 6 89NL BCS NOFACERR1 [NO ENTRY FOR THIS FAC NO. 8=8= # 8=MW # NOW TEST IF FAC. NUMBER IS 5 AND NEWNEEDS IS ON 8?7G # IF SO, JUMP OUT HERE AND RE-ENTER SIMULATING A VARIABLE 8?M6 # FIELD ENTRY WITH ITEM N0. OF 5 8#6Q # 8#LB SMO FX1 8*62 TXU 6 X15 8*KL BCS NOTN [J. IF NEWNEEDS NOT ON 8B5= SMO 6 8BJW LDX 4 1(3) 8C4G BNG 4 NNON1 [J IF PTR IS NEGATIVE -NEWNEEDS ON 8CJ6 NOTN 8D3Q SMO 6 8DHB LDN 4 0(3) 8F32 LDN 5 AWORK2(1) 8FGL MOVE 4 3 8G2= LDX 3 GEN0 [PTR TO START OF FORMAT REC 8GFW # 8G^G # NOW READ JOBLIST ENTRY FOR EACH JOB AFTER FIRST 8HF6 # DECIDING WHETHER TO DO AN INDEXED SEARCH BY JOBNO 8HYQ # 8JDB RED1 8JY2 LDX 6 A1(2) 8KCL ADN 6 1 8KX= BZE 6 XKEY [KEYED READ BY JOBNO 8LBW # 8LWG # JOB ENTRY MUST BE FOUND BY USERNAME/JOBNAME SEARCH 8MB6 # FIRST OBTAIN THESE PTRS. FROM JLIST FORMAT RECORD 8MTQ # 8N*B LDX 5 JUSERELADD-A1(3) 8NT2 LDX 4 JJOBRELADD-A1(3) 8P#L XCA4 8PS= CALL 7 READ 8Q?W LDX 7 0(3) 8QRG BZE 7 SJERR1A [NO REC FOR THIS USER/JOBNAME 8R?6 MHUNT 2,ADATA,CSTORE 8RQQ LDN 1 0 [WORD POINTER 8S=B CALL 7 XCOMP 8SQ2 BRN XCA4 [RECORD NOT FOUND 8T9L XCA5 8TP= STO 5 GEN1 [KEEP USERPOINTER 8W8W LDX 5 4 [AND LOOK FOR JOBNAME 8WNG LDN 1 3 8X86 CALL 7 XCOMP 8XMQ BRN XCA6 [NOT THE CORRECT JOBNAME 8Y7B LDX 1 FX1 [JUMP TO GET FAC.DATA 8YM2 BRN XTRACT 8^6L XCA6 8^L= LDX 5 GEN1 925W BRN XCA4 [READ NEW RECORD 92KG XKEY 9356 LDX 6 A1+1(2) 93JQ GETJOB 6,SYSTEM 944B TESTRPN2 OK,NUMERR1 [NO JOB OF THIS NO. 94J2 XTRACT 953L READAGAIN [REC. IN FRB BLK 95H= CLOSETOP 962W MHUNT 2,ADATA,CSTORE 96GG LDX 6 A1+6(2) 9726 FREECORE 2 [FINISHED WITH ADATA BLOCK 97FQ MHUNT 3,FILE,FRB 97^B LDX 5 ALOGLEN(3) 98F2 ADN 3 A1 [X3 POINTS TO HEADER REC. 98YL LDX 2 FX2 99D= TXL 6 X1K(1) 99XW BCC VAR1 [DATA IN VAR.RESOURCE FIELD 9=CG # 9=X6 # DATA IS IN FIXED FIELD.GET FORMAT NUMBER AND BRANCH TO 9?BQ # APPROPRIATE CONVERSION ROUTINE 9?WB # 9#B2 LDX 0 ACES 9#TL STO 0 ACOMMUNE1(2) 9**= STO 0 ACOMMUNE2(2) 9*SW STO 0 ACOMMUNE3(2) 9B#G ADX 3 AWORK3(2) [PTS. TO ENTRY 9BS6 SMO AWORK2(2) 9C?Q BRN XFORMAT-1 9CRB # 9D?2 # BRANCH TABLE FOR FORMAT TYPE 9DQL # 9F== XFORMAT 9FPW BRN XFORM1 9G9G BRN XFORM2 9GP6 BRN XFORM3 9H8Q BRN XFORM4 9HNB BRN XFORM5 9J82 BRN XFORM6 9JML BRN XFORM7 9K7= BRN XFORM8 9KLW BRN XFORM9 9L6G BRN XFORM10 9LL6 BRN XFORM11 9M5Q BRN XFORM12 9MKB # 9N52 NNON1 9NJL LDX 6 X5(1) 9P4= CLOSETOP 9PHW BRN NNON2 9Q3G # 9QH6 # ROUTINE TRANSFERS CHARS TO COMDAT/CSETP BLOCK 9R2Q # 9RGB XFORM1 9S22 LDN 0 2 9SFL LDX 4 0(3) [KEEP FORLATER X3 WILLBE LOST SOON 9S^= CALL 7 XOPCC [SET UP BLOCK 9TDW STOZ 0 9TYG LDN 7 4 [MAX CHAR COUNT 9WD6 LDX 1 4 9WXQ RL1 9XCB SLL 01 6 9XX2 BZE 0 RL2 [IGNORE LEADING ZERO 9YBL SRL 01 6 9YW= LDN 5 1 9^*W CALL 4 XCH2 [MOVE CHARACTERS 9^TG BRN XACR =2*6 RL2 =2SQ BCT 7 RL1 =3#B BRN XFNULL [NULL PARAM SET UP =3S2 # =4?L # ROUTINE TO CONVERT TIME =4R= # =5=W XFORM2 =5QG LDX 4 0(3) =6=6 SLL 4 2 =6PQ ADX 4 0(3) [MULT BY 5 =79B TIMECON 4 =7P2 LDN 0 3 [LOG LENGTH =88L CALL 7 XOPCC [INITIALISE COMDAT BLK =8N= LDN 7 8 =97W LDN 5 ACOMMUNE1(2) =9MG CALL 4 XCH2 ==76 BRN XACR ==LQ # =?6B # S/R TO CONVERT DATE =?L2 # =#5L XFORM3 =#K= LDX 4 0(3) =*4W DATECON 4 =*JG LDN 0 3 [LOG LENGTH =B46 CALL 7 XOPCC =BHQ LDX 4 ACOMMUNE1(2) =C3B TXU 4 ACES =CH2 BCC XFNULL [J. TO RETURN NULL STRING IF ZERO FIE =D2L LDN 7 8 =DG= LDN 5 ACOMMUNE1(2) =D^W CALL 4 XCH2 =FFG BRN XACR =F^6 # =GDQ # ROUTINE TO CONVERT A BINARY NO. TO DECIMAL =GYB # =HD2 XFORM4 =HXL LDX 4 0(3) =JC= LDN 0 3 =JWW CALL 7 XOPCC =KBG LDX 2 6 =KW6 CALL 6 XCONV =L*Q ADS 7 ANUM(3) =LTB BRN XACR =M*2 # =MSL # ROUTINE TO CONVERT TIME TO DEC & O.P WITH 'SECS' STRING =N#= # =NRW XFORM5 =P?G LDX 4 0(3) =PR6 LDN 0 4 =Q=Q CALL 7 XOPCC =QQB LDX 2 6 =R=2 CALL 6 XCONV =RPL LDCH 5 0(2) =S9= BNZ 5 X51 [J. IF FINAL CHAR MOVED WAS NONZERO =SNW LDX 5 7 =T8G SBN 5 1 [IF JT FIELD IS ZERO,ONE CHAR WILL =TN6 BZE 5 XFNULL [SET NULL STRING =W7Q X51 =WMB LDX 6 2 =X72 BCHX 6 £ =XLL ADS 7 ANUM(3) =Y6= LDN 5 XSECS(1) =YKW LDN 7 4 =^5G CALL 4 XCH2 =^K6 BRN XACR ?24Q # ?2JB # ROUTINE FORMATS THE NEEDS FIELD AND OUTPUTS IT AS ?342 # DECIMAL NUMBERS FOLLOWED BY 2 CHAR PERIPHERAL NAMES ?3HL # -NUMBERS OF EACH TYPE SEPARATED BY COMMAS ?43= # S R FOR FORMATS 6 7 10 ?4GW # ?52G # COMMON CODE ?5G6 # ?5^Q XF6710 ?6FB LDN 0 84 ?6^2 PHOTO 4 ?7DL STO 3 AWORK2(2) ?7Y= CALL 7 XOPCC [SET UP BLOCK ?8CW LDX 0 XBRL(1) ?8XG CALL 7 XCH1 [PUT IN BRACKET ?9C6 STO 3 7 ?9WQ TESTMOVE 4,XG2 [J IFNO BLOCKS MOVED ?=BB MHUNT 3,FILE,FRB [FIND BLOCK ?=W2 ADN 3 A1 ??*L ADX 3 AWORK3(2) ??T= BRN XG3 ?##W XG2 ?#SG LDX 3 AWORK2(2) ?*#6 XG3 ?*RQ STOZ AWORK2(2) ?B?B STO 3 GEN0 ?BR2 STO 7 GEN1 [KEEP POINTERS ?C=L LDX 0 AWORK4(2) ?CQ= BZE 0 NOFACERR ?D9W EXIT 5 0 ?DPG # ?F96 # END OF FIRST S R ?FNQ # ?G8B # START OF SECOND ?GN2 # ?H7L XF6710A ?HM= LDX 1 FX2 ?J6W STO 5 AWORK1(1) ?JLG STO 0 AWORK4(1) ?K66 LDX 3 GEN1 ?KKQ BZE 4 XNOEN ?L5B STO 2 AWORK3(1) ?LK2 LDN 7 1 ?M4L LDX 0 AWORK2(1) [PTR TO CHAR ?MJ= ADS 7 AWORK2(1) ?N3W BZE 0 NOCOM ?NHG SMO FX1 ?P36 LDN 5 XCOM [PUT IN COMMA ?PGQ MVCH 5 1 ?Q2B ADS 7 ANUM(3) ?QG2 NOCOM ?Q^L LDX 2 6 ?RF= LDX 1 FX1 ?RYW CALL 6 XCONV [PUT IN PARAM ?SDG LDX 6 2 ?SY6 BCHX 6 £ ?TCQ ADS 7 ANUM(3) [UPDATE COUNT IN BLOCK ?TXB SMO FX2 ?WC2 LDX 2 AWORK3 ?WWL SMO FX2 ?XB= LDX 5 AWORK1 ?XTW EXIT 5 1 ?Y*G XNOEN ?YT6 LDX 1 FX1 ?^#Q SMO FX2 ?^SB LDX 5 AWORK1 [NO ENTRY RETURN #2#2 EXIT 5 0 #2RL # #3?= # END OF SECOND ROUTINE #3QW # #4=G # START OF THIRD #4Q6 # #59Q XF6710B #5PB ADN 5 TABLE(1) [FIND TABLE ENTRY #692 LDN 7 2 #6NL CALL 4 XCH2 #78= EXIT 0 0 #7MW # #87G # END OF THIRD #8M6 # END OF COMMON CODE FOR 6 7 10 #96Q # #9LB XFORM6 #=62 CALL 5 XF6710 [SET BLOCK #=KL SLL 0 2 #?5= LDN 2 0 #?JW X62 ##4G SMO GEN0 ##J6 LDCH 4 0(2) #*3Q CALL 5 XF6710A [PUT IN NUMBER #*HB BRN X61 #B32 STO 2 5 #BGL SLC 5 1 #C2= CALL 0 XF6710B [PUT IN TYPE #CFW X61 #C^G BCHX 2 £ #DF6 SMO FX2 #DYQ LDX 0 AWORK4 #FDB BCT 0 X62 #FY2 BRN XENDBR [END PARAM #GCL # #GX= # FORMAT 7 SHARES CODE WITH 6 & 10 #HBW # #HWG XFORM7 #JB6 CALL 5 XF6710 [SETUP BLOCK COMMENTS ARE AS FOR TYPE #JTQ LDN 2 0 #K*B X72 #KT2 SMO GEN0 #L#L LDX 4 0(2) #LS= CALL 5 XF6710A #M?W BRN X71 #MRG STO 2 5 #N?6 SRC 5 1 #NQQ CALL 0 XF6710B #P=B X71 #PQ2 ADN 2 1 #Q9L SMO FX2 #QP= LDX 0 AWORK4 #R8W BCT 0 X72 #RNG BRN XENDBR #S86 # #SMQ # END OF FORMAT 7 #T7B # #TM2 # ROUTINE COMBINING FORMATS TYPE 2,3,5 #W6L # #WL= XFORM8 #X5W LDX 4 0(3) [DATE #XKG XF2 #Y56 DATECON 4 #YJQ LDX 4 ACOMMUNE1(2) #^4B TXU 4 ACES #^J2 BCS XF1 *23L DATECON EDATE [SPACES SO RETURN TODAY'S DATE *2H= XF1 *32W LDN 0 12 [INITIALISE COMDAT/CSETP BLOCK *3GG CALL 7 XOPCC *426 LDN 7 8 *4FQ LDN 5 ACOMMUNE1(2) *4^B CALL 4 XCH2 [MOVE DATE ACROSS *5F2 LDX 0 XCM(1) *5YL CALL 7 XCH1 [COMMA NEXT *6D= STO 3 AWORK4(2) [PTR TO COMDAT/CSETP BLK *6XW MHUNT 3,FILE,FRB *7CG ADN 3 A1 *7X6 ADX 3 AWORK3(2) [PTR TO 1ST WRD OF DATA *8BQ STO 3 AWORK2(2) *8WB ADN 3 1 [PTR. TO BINARY TIME *9B2 LDX 4 0(3) *9TL SLL 4 2 *=*= ADX 4 0(3) [MULTIPLY BY 5 FOR K9 COUNT *=SW PHOTO 7 *?#G TIMECON 4 *?S6 TESTMOVE 7,XF4 *#?Q MHUNT 3,FILE,FRB *#RB ADN 3 A1 **?2 ADX 3 AWORK3(2) **QL STO 3 AWORK2(2) *B== MHUNT 3,COMDAT,CSETP *BPW BRN XF5 *C9G XF4 *CP6 LDX 3 AWORK4(2) *D8Q XF5 *DNB LDN 7 8 *F82 LDN 5 ACOMMUNE1(2) *FML CALL 4 XCH2 [MOVE TIME ACROSS *G7= LDX 0 XCM(1) *GLW CALL 7 XCH1 [COMMA NEXT *H6G LDX 3 AWORK2(2) *HL6 ADN 3 2 *J5Q LDX 4 0(3) [NO. TO BE CONVERTED *JKB LDX 3 AWORK4(2) [PTR TO C.CSETP BLK *K52 LDX 2 6 *KJL CALL 6 XCONV *L4= LDCH 5 0(2) [SEE COMMENTS IN XFORM5 *LHW BNZ 5 XF81 *M3G LDX 5 7 *MH6 SBN 5 1 *N2Q BZE 5 XF82 *NGB XF81 *P22 LDX 6 2 *PFL BCHX 6 £ *P^= ADS 7 ANUM(3) [STEP COUNT FOR CHARS MOVED *QDW LDN 5 XSECS(1) *QYG LDN 7 4 *RD6 CALL 4 XCH2 [MOVE 'SECS' & UP COUNT *RXQ LDN 7 2 *SCB ADS 7 ANUM(3) *SX2 BRN XF83 *TBL XF82 *TW= LDN 7 1 *W*W ADS 7 ANUM(3) [-1 FOR COMMA *WTG XF83 *X*6 BRN XACR [PREV. INSTR. UPS CT FOR COMMAS *XSQ # *Y#B # ROUTINE TRANSFERS CHAR STRING *YS2 # *^?L XFORM9 *^R= STO 3 5 [SAVE PTR. TO START OF STRING B2=W LDX 4 AWORK4(2) [WORDLENGTH OF STR B2QG LDX 0 4 B3=6 ADN 0 1 [LOG. LENGTH FOR BLOCK B3PQ SLL 4 2 [CHAR .LENGTH OF STR B49B CALL 7 XOPCC B4P2 LDX 7 4 [COUNT B58L CALL 4 XCH2 B5N= BRN XACR B67W # B6MG # SIMILAR TO XFORM6 B776 # FORMAT 10 USES COMMON CODE SEE FORMAT 6 &7 B7LQ # B86B XFORM10 [SPEC ENTRY WILL BE FROM VAR FIELD B8L2 CALL 5 XF6710 [SEE TYPE 6 FOR COMMENT B95L X102 B9K= SMO GEN0 B=4W LDCH 4 0 B=JG CALL 5 XF6710A B?46 BRN X101 B?HQ LDX 3 GEN0 B#3B LDCH 5 0(3) B#H2 SRC 5 1 B*2L LDX 3 GEN1 B*G= CALL 0 XF6710B B*^W X101 BBFG LDN 7 1 BB^6 ADS 7 GEN0 BCDQ SMO FX2 BCYB LDX 0 AWORK4 BDD2 BCT 0 X102 BDXL BRN XENDBR BFC= # BFWW # T.S.N. TO BE TRANSFERRED BGBG # BGW6 XFORM11 BH*Q LDX 5 0(3) [TAPE NO. BHTB LDN 0 3 [LOG. LENGTH BJ*2 CALL 7 XOPCC [SET UP COMDAT. CSETP BLK BJSL LDX 0 XBRL(1) [INSERT LEFT PAREN FOR TAPENO. BK#= CALL 7 XCH1 BKRW LDN 2 0 [CHAR MODIFIER FOR CONVERSION BL?G LDN 7 8 [COUNT BLR6 TS1 BM=Q STOZ 4 BMQB SLL 45 3 BN=2 LDCH 0 4 BNPL BNZ 0 TS2 [FIRST NON ZERO CHARACTER BP9= BCT 7 TS1 BPNW BRN TS3 [TAPE NO = ZERO BQ8G TS2 BQN6 STO 7 GEN0 [COUNT OF SIGNIFICANT CHARS BR7Q BRN TS5 BRMB TS4 BS72 STOZ 4 BSLL SLL 45 3 BT6= LDCH 0 4 BTKW TS5 BW5G SMO FX2 BWK6 DCH 0 AWORK3(2) BX4Q BCHX 2 £ BXJB BCT 7 TS4 BY42 LDX 7 GEN0 BYHL BRN TS6 B^3= TS3 B^GW LDN 7 1 C22G SMO FX2 C2G6 STOZ AWORK3 [IF TAPE NO. IS ZERO C2^Q TS6 C3FB LDX 2 FX2 C3^2 LDN 5 AWORK3(2) C4DL SMO 7 C4Y= MVCH 5 0 C5CW ADS 7 ANUM(3) C5XG BRN XENDBR C6C6 # C6WQ # BINARY-OCTAL CONVERSION C7BB # C7W2 XFORM12 C8*L LDX 7 0(3) [BINARY NO. TO BE CONVERTED C8T= LDN 0 8 [COUNT OF CHARS C9#W LDN 5 ACOMMUNE1 C9SG XOCT C=#6 STOZ 6 C=RQ SLL 67 3 C??B SMO 5 C?R2 DCH 6 0(2) [CHARS IN ACOMMUNE1-2 C#=L BCHX 2 £ C#Q= BCT 0 XOCT C*9W LDX 2 FX2 C*PG LDN 0 3 CB96 CALL 7 XOPCC CBNQ LDX 0 XHASH(1) CC8B CALL 7 XCH1 [DUMP # CCN2 LDN 7 8 CD7L LDN 5 ACOMMUNE1(2) CDM= CALL 4 XCH2 CF6W LDN 7 1 CFLG ADS 7 ANUM(3) [ + # CG66 BRN XACR CGKQ # CH5B # THE CODE WHICH FOLLOWS EXTRACTS DATA FROM THE VARIABLE CHK2 # RESOURCE FIELD. X6 CONTAINS ITEM NO. AN ITEM NO RESULTING CJ4L # FROM A"V" FORMAT PARAMETER MUST FIRST HAVE 2048 SUBTRACTED CJJ= # FROM IT .X3 POINTS TO HEADER REC.X5=REC.LENGTH CK3W # AWORK1 = PTR.TO VAR.RESOURCE FIELD PTR CKHG # CL36 VAR1 CLGQ SBX 6 X2K(1) [CORRECT ITEM NUMBER CM2B BPZ 6 VA1 CMG2 ADX 6 X2K(1) CM^L VA1 CNF= LDX 2 AWORK1(2) CNYW SMO 3 [PTR TO VAR.RES FIELD CPDG LDX 2 0(2) CPY6 BZE 2 NOFACERR [ERROR! NO VAR.RES FIELD CQCQ SBN 5 1 [SET UP REC LENGTH IN FILE FRB CQXB VA2 CRC2 TXL 5 2 CRWL BCS VA4 [NO ENTRY FOR THIS ITEM NO CSB= SMO 3 CSTW LDX 4 0(2) [WORD 0 OF ENTRY CT*G LDEX 7 4 [LENGTH OF ENTRY CTT6 SRL 4 12 [ITEM NO IN L.S.END CW#Q TXU 4 6 CWSB BCC VA3 [BRANCH IF FOUND CX#2 ADX 2 7 [STEP ON POINTER CXRL BRN VA2 [AND TRY AGAIN CY?= VA3 CYQW ADN 2 1 [POINTS TO 1ST WORDOF DATA C^=G LDX 0 7 [LOG. LENGTH FOR COMDAT BLK C^Q6 SBN 7 1 D29Q # D2PB # IF FACILITY NUMBER IS 5 THE ENTRY WILL ALWAYS BE THE D392 # NEEDS FIELD IN FORMAT 6, HENCE WE CAN REFORMAT D3NL # AWORK3 NON ZERO IMPLIES FORMAT 10 D48= # D4MW TXU 6 X5(1) D57G BCS NNOFF D5M6 ADX 3 2 D66Q SMO FX2 D6LB STO 2 AWORK3 D762 LDX 2 FX2 D7KL STO 7 AWORK4(2) D85= BRN XFORM10 [J. TO STANDARD FORMAT ROUTINE D8JW NNOFF D94G LDX 5 2 [SET UP ADDRESS PTR D9J6 ADX 5 3 [FOR MOVE D=3Q SLL 7 2 [CHAR. COUNT FOR MOVE D=HB LDX 4 7 D?32 CALL 7 XOPCC [INITIALISE D?GL LDX 7 4 [RETURN COUNT D#2= CALL 4 XCH2 D#FW BRN XACR D#^G # D*F6 VA4 D*YQ TXU 6 X5(1) DBDB BCS NOFACERR [ERROR MESSAGE IF NOT FAC 5 DBY2 LDN 0 1 [LOG LENGTH DCCL CALL 7 XOPCC [OTHERWISE RETURN NULL STRING DCX= LDX 0 XBRL(1) DDBW CALL 7 XCH1 DDWG # DFB6 # PATHS REJOIN HERE FOR LAST BRACKET DFTQ # DG*B XENDBR DGT2 LDX 0 XBR(1) [ PUT IN CLOSE BRACKET DH#L CALL 7 XCH1 DHS= LDN 7 2 DJ?W ADS 7 ANUM(3) DJRG BRN XACR DK?6 # DKQQ XFNULL DL=B STOZ ANUM(3) [SET NULL PARAM DLQ2 # DM9L # END OF CHAPTER FOR SETPARAM ENTRY DMP= # DN8W XACR DNNG MFREE FILE,FRB DP86 UPPLUS 2 DPMQ # DQ7B # ############################################################# DQM2 # DR6L # K K 222 DRL= # K K 2 2 DS5W # K K 2 DSKG # K K 2 DT56 # KKK 2 DTJQ # K K 2 DW4B # K K 2 DWJ2 # K K 2 DX3L # K K 2222222 DXH= # DY2W # ############################################################# DYGG # D^26 SENTRY2 D^FQ # D^^B # F2F2 # JOBDATA ENTRY TO SETJD F2YL # F3D= # AT THIS ENTRY, WE HAVE IDENTIFIED THE FIRST PARAMETER F3XW # TO THE JD COMMAND AS STARTING WITH AN ASTERISK. THE CPB/ F4CG # CUNI BLOCK HAS BEEN FREED F4X6 # F5BQ LDN 6 1 F5WB PARAMOVE 6 [OVERWRITE * F6B2 SPARAPAS F6TL MHUNT 3,CPB,CUNI F7*= LDX 4 ANUM(3) F7SW BZE 4 PARERR [NULL PARAM F8#G BNG 4 PARERR [NON-EXISTENT PARAM F8S6 ANDN 4 #7777 F9?Q CALL 7 NUMST F9RB BRN QT1 F=?2 # F=QL # CONTINUE HERE IF NUMERIC JOBNO. PARAMETER F?== # F?PW BZE 6 NUMERR [JOBNO ZERO F#9G ORX 6 GSIGN [MARKS JOBNO F#P6 LDX 7 6 F*8Q BRN QJD1 F*NB QT1 FB82 FREECORE 3 FBML CALL 6 UPAR FC7= BRN SJERR1 [LOCAL NAME FORMAT ERROR FCLW BRN NUSERR [NO USERNAME FOUND FD6G LDN 7 3 FDL6 SBX 7 JPARNUM(3) FF5Q QT2 FFKB FREECORE 3 FG52 SPARANOX 7 FGJL CALL 6 UPAR1 FH4= BRN PARERR2 [ERROR IN JOBNAME FORMAT FHHW BRN NJOBERR [NONE FOUND FJ3G # FJH6 # THE NEXT UNACCESSED PARAM IN CPB/CALAS BLOCK SHOULD BE FK2Q # FACILITY NO. HENCE WE CAN REJOIN JOBDATA AT K1JOBDATA FKGB # AWORK1 HAS SUFFICIENT INFORMATION IN IT TO DETERMINE FL22 # THE STRUCTURE OF THE CPB/CALAS BLOCK: VIZ FLFL # B0 = 1 IF IDENTIFIED BY JOBNO. BS 1 - 23 = JOBNO FL^= # B0 = 0 BS1-23 = +1 JOBNAME/USERNAME FMDW # B0 =0 BS1-23 = +2 USERNAME/JOBNAME FMYG # FND6 # FNXQ QJD1 FPCB MFREE CPB,CUNI [BLK CONTAINS JOB OR USER NAME FPX2 # FQBL # FQW= # NOW INVESTIGATE NEXT PARAM IN CPB CALAS BLK FR*W # TO SEE IF IT IS A FAC. NUMBER LESS THAN SEVEN FRTG # FS*6 MHUNT 3,CPB,CALAS FSSQ # FT#B # CHECK FOR TO MANY PARAMS FTS2 # FW?L STO 7 AWORK1(2) FWR= # FX=W BNG 7 QJD2 [J. IF SEARCH IS TO BE BY JOBNO. FXQG # FY=6 # IF JOB IS TO BE IDENTIFIED BY JOB AND USER NAMES FYPQ # THE PARAPASS POINTER HAS TO BE UPDATED TO POINT TO F^9B # FACILITY-ITEM NUMBER BEFORE GOING UP TO JOBDATA850 F^P2 # G28L CALL 5 XUPTR [UPDATE PARAM PTR IN BLOCK G2N= SBN 4 1 G37W SRL 4 2 G3MG ADN 4 2 [ROUNDED +1 FOR TYPE WORD G476 SLL 4 12 G4LQ ADN 4 1 [PARAM NO ADDITION G56B ADS 4 APTBEPAR(3) G5L2 QJD2 G65L CALL 5 XUPTR [UPDATE PARAM PTR IN BLOCK G6K= STO 4 GEN5 G74W STO 3 GEN0 [SET UP FOR S.RQ G7JG ADX 3 2 G846 ADN 3 1 [PTR TO 1ST CHAR OF UNACCESSED PARAM G8HQ CALL 7 NUMCON G93B BRN QJD3 [J IF NON NUMERIC G9H2 TXL 6 SEVEN(1) G=2L BCS XJDERR [FAC. NUMBER OUT OF RANGE G=G= LDX 2 FX2 G=^W LDX 4 AWORK1(2) G?FG LDN 5 3 G?^6 BNG 4 QQ2 G#DQ ADN 5 1 G#YB QQ2 G*D2 SBX 5 APARANUM(3) [MAX 4 PARAMS G*XL BNG 5 XTOMANY [TOO MANY FOUND GBC= QJD4 GBWW LDX 2 FX2 GCBG LDX 4 AWORK1(2) GCW6 STO 4 ACOMMUNE1(2) [PRESERVE OVER CO-ORDINATION GD*Q UPPLUS 2 [SUCCESSFUL RETURN GDTB # GF*2 # THE NEXT PARAMETER IS NON-NUMERIC AND WILL BE GFSL # ANALYSED BY THE STANDARD ICL ROUTINES IN JOBDATA850 GG#= # WE GO DOWN TO OVERFLOW TO CHECK WHETHER IT IS ONE OF GGRW # THE SCHEDULING IDENTIFIERS REFERRING TO FACILITY NUMBERS GH?G # 0-6.IF IT IS ,AN ERROR MESSAGE IS OUTPUT GHR6 # GJ=Q # CHECK FOR INVALID IDENT GJQB # GK=2 QJD3 GKPL SMO FX2 GL9= LDX 7 AWORK1 GLNW LDN 5 2 GM8G BNG 7 QQ1 [J ONLY 2PARAMS FOR JOBNO TYPE GMN6 ADN 5 1 GN7Q QQ1 GNMB SBX 5 APARANUM(3) GP72 BNG 5 XTOMANY [J TOO MANY PARAMS GPLL LDX 3 GEN6 GQ6= LDX 7 GEN5 GQKW SBX 7 4 [CNT BEFORE FIRST ALPHA CHAR GR5G BZE 7 QJD9 [J IF FIRST CHAR GRK6 SLC 3 2 GS4Q SBX 3 7 GSJB SRC 3 2 GT42 QJD5 [CHECK PRECEDING CHARACTERS GTHL LDCH 5 0(3) GW3= TXU 5 SPA1(1) GWGW BCS QJD4 [J NOT ALPHA CONNOT BE INVALID CHAR S GX2G BCHX 3 £ GXG6 BCT 7 QJD5 GX^Q QJD9 GYFB STOZ 0 GY^2 QJD6 [CHECK FOR INVALID IDENT G^DL SMO 0 G^Y= LDCH 6 JDTAB(1) H2CW SMO 0 H2XG LDX 2 JDTAB(1) H3C6 ANDN 2 #7777 H3WQ ADX 2 1 [ABS ADDRESS H4BB QJD7 H4W2 LDCH 4 0(3) H5*L LDCH 5 0(2) H5T= TXU 4 5 H6#W BCS QJD8 [J CHAR DO NOT AGREE H6SG BCHX 3 £ H7#6 BCHX 2 £ H7RQ BCT 6 QJD7 H8?B BRN XJDERR H8R2 QJD8 H9=L BZE 5 QJD4 [J BECAUSE END OF TABLE H9Q= ADN 0 1 H=9W BRN QJD6 [CHECK NEXT TABLE ENTRY H=PG # H?96 # S R FOR EARLIER CODE AT QJD2 H?NQ # H#8B XUPTR H#N2 LDX 2 APTBEPAR(3) [PARAM PTR H*7L SRL 2 12 H*M= SMO 3 HB6W LDX 4 0(2) HBLG BXE 4 GMINUS1,PARERR1 [J END OF PARAM HC66 ANDN 4 #7777 HCKQ BZE 4 PARERR1 [J NULL PARAM HD5B EXIT 5 0 HDK2 # HF4L # END OF S R HFJ= # HG3W # ERROR ROUTINES FOR RETURN TO JOBDATA HGHG # HH36 XJDERR [RESERVED FACILITY TYPES HHGQ LDX 6 XER13(1) HJ2B BRN XNER HJG2 XTOMANY [TO MANY PARAMS HJ^L LDX 6 XER12(1) HKF= XNER [SETS %B TO NULL HKYW NGN 7 1 HLDG BRN XERROR HLY6 PARERR1 HMCQ LDX 7 XER10(1) HMXB BRN XAPFERR HNC2 PARERR2 HNWL LDX 7 XER3(1) HPB= BRN XAPFERR HPTW PARERR HQ*G LDX 7 XER1(1) HQT6 BRN PARMISS HR#Q NUSERR HRSB LDX 7 XER2(1) HS#2 BRN PARMISS HSRL NJOBERR HT?= LDX 7 XER3(1) HTQW PARMISS HW=G LDX 6 XER4(1) HWQ6 BRN XERROR HX9Q NUMERR1 HXPB CLOSETOP HY92 NUMERR HYNL LDX 7 XER5(1) H^8= BRN XAPFERR H^MW SJERR1A J27G CLOSETOP J2M6 SJERR1 J36Q LDX 7 XER1(1) J3LB XAPFERR J462 LDX 6 XER6(1) J4KL BRN XERROR J55= NUMERR2 J5JW LDX 6 XER7(1) J64G LDX 7 XER8(1) J6J6 BRN XERROR J73Q NULLERR J7HB LDX 6 XER9(1) J832 LDX 7 XER10(1) J8GL BRN XERROR J92= NOFACERR1 J9FW CLOSETOP J9^G NOFACERR J=F6 LDX 6 XER11(1) J=YQ LDX 7 XER10(1) J?DB XERROR [STORE DETAILS READY FOR UP J?Y2 LDX 2 FX2 J#CL STO 6 ACOMMUNE1(2) J#X= STO 7 ACOMMUNE2(2) J*BW # J*WG # JBB6 # ERROR RETURN JBTQ # JC*B UPPLUS 1 JCT2 # JD#L # BREAKIN RETURN JDS= # JF?W XBRK JFRG UP JG?6 # JGQQ #END ^^^^ ...600127460001