(George Source)
Macros used: ACROSS, ALTLENG, BC, BITDEFS, BS, BXE, BXGE, BXL, BXU, CHARMOVE, COMBRKIN, COMERRX, DOWN, ENDCOM, FREECORE, HUNTW, JBC, JBS, JDTABLES, JLADJUST, JMBAC, JMBS, MASK, MBC, MBS, MFREE, MHUNT, MHUNTW, PARAFREE, PARALYSE, PARANUMB, PARAPASS, PARSPLIT, SEGENTRY, SETNCORE, STOREN, STOREX, TESTHKN, TESTREP2, TRACE, UPPLUS
22FL #LIS K0JOBDATA>K0COMMAND>K0HLS>K0ALLGEO>K0GREATGEO 22^= #SEG JOBDATA [V E PHIPPS 23DW 8H JOBDATA 23NN ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23YG [ THIS SEGMENT IMPLEMENTS THE FOLLOWING COMMANDS:- 24D6 [ JOBDATA 24XQ [ JOBTIME 25CB [ URGENCY 25FK ...[ 25HS ...[ THIS SEGMENT HAS BEEN SPLIT INTO 'JOBDATA' & 'JOBDATAB' 25L3 ...[ AND LOGICALLY SHOULD BE REGARDED AS ONE PIECE OF CODE. 25N= ...[ THE LAYOUT OF 'JOBDATAB' FOLLOWS THE LAYOUT OF THIS 25QF ...[ SEGEMENT: OCT 1981. 25SN ...[ 25X2 [ THE JD COMMAND TAKES THE FORMAT:- 26BL [ JD INTEGER,DATA 26W= [ JD NAME DATA,NAME(DATA),.... 27*W [ 27TG [ RESTAB CONTAINS A TABLE OF POSSIBLE INTEGERS/NAMES THAT 28*6 [ IDENTIFY THE SCHEDULING DATA. EACH ENTRY IN RESTAB 28SQ [ IS OF THE FORM: 29#B [ WORDS 0-2 = NAME 29S2 [ WORD 3 BIT 0 = 0 IF VAR. RESOURCE 2=?L [ =1 IF FIXED RESOURCE 2=R= [ BITS1-11 = ITEM/FACILITY NUMBER 2?=W [ BIT 12 = 1 IF BINARY (COUNT SWITCH) 2?QG [ BITS 13-14 UNDEFINED 2#=6 [ BITS 15-23 = FORMAT ROUTINE NUMBER 2#PQ [ 2*9B # 2*P2 # ENTRY POINT 2B8L # 2BN= SEGENTRY K1JOBDATA,XK1 [JOBDATA COMMAND 2C7W SEGENTRY K2JOBDATA,XK2 [JOBTIME COMMAND 2CMG SEGENTRY K3JOBDATA,XK3 [JOBDATA PARAMETER 2D76 SEGENTRY K4JOBDATA,XK4 [URGENCY COMMAND 2DLQ SEGENTRY K5JOBDATA,RFIN [RETURN FROM XTRA UR/JT CHECKS IN JD 2F6B SEGENTRY K9JOBDATA,XK9 [ERROR RETURN FROM UR/JT CHECKS IN JD 2FB8 ... SEGENTRY K10JOBDATA,XK10 [RETURN FROM JOBDATAB,1 2FL2 2FTS ... BITDEFS AWORK4,0,TMAXSIZE [ B7270 CORRECTION 2G5L BITDEFS AWORK4,2,TFORMAT,STARTCOM,SIGNEED 2GK= BITDEFS AWORK4,5,SINGLE,TMINUS,TPLUS,PMINUS 2H4W [ BASIC RESOURCE TABLE 2HJG JDTABLES RESTAB,RESNEEDSPTR,TAB,TABCT,STARTPTR 2J46 YER1 +ERNOCMD 2JHQ YER2 +JPARNULL 2K3B YER3 +JPARMIS 2KH2 YER4 +APFERR 2L2L YER5 +ERMCH 2LG= YER7 +ERUNPAIR 2L^W YER8 +JDOVERFLOW [TOO MUCH SCHED, DATA 2M^6 YER10 +JDNOCOUNT 2N8Y ...YER11 +JMAXPAR 2NDQ XDA 4HDA 2NYB TOOSMALL 3 2PD2 TOOBIG 502 2PXL MASK #7777 2RBG ZHR 4HHRS 2RW6 MIN 4HMINS 2S*Q SEC 4HSECS 2STB SPACE #20 2T*2 XPLUS #33 2TSL XMINUS #35 2T^S ...#UNS G400 2W72 ...XASTRA #32 2W#= [ ROUTINES TO PICK UP NEXT COMMAND PARAMETER 2WRW [ AND LEAVE IN A CPB/CUNI . 2X?G [ X0 - ANUM, X7 = LINK, X3-> CPB/CUNI ON EXIT 2XR6 [ SPARA & RSPARAPASS KEEP SPACES 2Y=Q [ PARA & RPARAPASS REMOVE SPACES 2YQB SPARA ORX 5 GSIGN 2^=2 RSPARAPASS 2^PL JBS RPS7,2,SINGLE 329= SBX 5 FX1 32NW SPARAPASS 338G BRN RPS5 33N6 PARA ORX 5 GSIGN 347Q RPARAPASS 34MB JBS PARA1,2,SINGLE [J IF PARM IN CUNI 3572 SBX 5 FX1 35LL PARAPASS 366= RPS5 ADX 5 FX1 36KW RPS7 MHUNT 3,CPB,CUNI 375G STO 3 ACOMMUNE3(2) 37K6 RPS8 LDX 1 FX1 384Q LDX 0 ANUM(3) 38JB LDXC 5 5 3942 BCS RPS9 39HL BZE 0 PNULL [J IF NULL PARAM 3=3= BNG 0 PABS [J IF PARAM ABSENT 3=GW RPS9 EXIT 5 0 3?2G [ REMOVE SPACES FROM CPB/CUNI 3?G6 PARA1 MHUNT 3,CPB,CUNI 3?^Q STO 3 ACOMMUNE3(2) 3#FB LDX 1 3 3#^2 STO 5 GEN0 3*DL LDX 5 ANUM(3) 3*Y= ANDN 5 #7777 3BCW BZE 5 PARA7 [J IF NO DATA 3BXG PARA2 LDCH 0 APARA(1) 3CC6 DCH 0 APARA(3) [KEEP NON-SPACE CHARS. 3CWQ SBN 0 #20 3DBB BZE 0 PARA6 [J IF SPACE 3DW2 PARA5 BCHX 3 £ 3F*L PARA6 BCHX 1 £ 3FT= BCT 5 PARA2 3G#W SLC 1 2 3GSG SLC 3 2 3H#6 SBX 1 3 3HRQ LDX 3 ACOMMUNE3(2) [PTR->CPB/CUNI 3J?B SBS 1 ANUM(3) [ADJUST CHAR. COUNT 3JR2 PARA7 LDX 5 GEN0 3K=L BRN RPS8 3KQ= # 3L9W [ CHECK FOR + AND - ,THEN SCAN TO NEXT NON-SPACE CHAR. 3LPG [ ON ENTRY, X3->CPB/CUNI. 3M96 [ ON EXIT,APARA(3)->NEXT NON-SIGNED,NON-SPACE CHAR. 3MNQ [ X7 = COUNT OF REMAINING CHARS. 3N8B SIGNTEST 3NN2 LDX 7 ANUM(3) 3P7L ANDN 7 #7777 3PM= LDCH 0 APARA(3) 3Q6W ADN 6 2 3QLG BXE 0 XMINUS(1),SNTT5 3R66 SBN 6 1 3RKQ BXE 0 XPLUS(1),SNTT5 3S5B SBN 6 1 3SK2 SNTT3 LDCH 0 APARA(3) 3T4L BXU 0 SPACE(1),SNTT9 3TJ= SNTT5 BCHX 3 £ 3W3W BCT 7 SNTT3 3WHG SNTT9 EXIT 6 0 3X36 [ 3XGQ [ REFORMAT CPB/CUNI BY REMOVING THE INITIAL DATA 3Y2B [ON ENTRY,X7=COUNT OF CHARS IN NEW CPB/CUNI 3YG2 [ ACOMMUNE3-> CPB/CUNI 3Y^L [ APARA(3)->START OF DATA IN NEW CPB/CUNI 3^F= RESETCUNI 3^YW LDX 1 ACOMMUNE3(2) 42DG LDX 0 HALFTOP 42Y6 ANDS 0 ANUM(1) 43CQ ORS 7 ANUM(1) 43XB ADN 3 APARA 44C2 LDN 4 APARA(1) 44WL CHARMOVE 3,7 45B= NGX 1 7 45TW ANDN 1 3 46*G BZE 1 RESETCUNI9 46T6 LDN 3 ACES 47#Q MVCH 3 0(1) [SPACEFILL END OF LAST WORD 47SB RESETCUNI9 48#2 LDX 1 FX1 48RL EXIT 6 0 49?= [ ROUTINE TO PUT DATA INTO ADATA/CSTORE 49QW [ X6 IS LINK 4==G [ ON EXIT, X3 HOLDS DATA 4=Q6 STOREX [DATA HELD IN X7 4?9Q LDX 3 7 4?PB LDN 7 1 [COUNT OF WORD TO BE STORED 4#92 ORX 6 GSIGN [STOREX ENTRY INDICATOR 4#NL STOREN [DATA HELD IN CPB/CUNI 4*8= [ IF ENTERED AT STOREN, DATA IS IN CPB/CUNI 4*MW [ X7 HOLDS COUNT OF WORDS TO BE STORED 4B7G SBX 6 FX1 4BM6 CALL 1 SCSTORE [SET X2 ->ADATA/CSTORE 4C6Q BPZ 2 STO2 [J IF ADATA/CSTORE EXISTA 4CLB SETNCORE 10,2,ADATA,CSTORE 4D62 LDN 0 A1+2 4DKL STO 0 A1(2) [PTR->NEXT FREE WORD 4F5= STO 0 A1+1(2) 4FJW STO2 LDX 0 ALOGLEN(2) 4G4G ADN 0 A1 4GJ6 SBX 0 A1(2) 4H3Q SBX 0 7 4HHB BPZ 0 STO4 [J IF ENOUGH ROOM IN CSTORE 4J32 LDX 4 ALOGLEN(2) 4JGL SBX 4 0 4K2= ALTLENG 2,4,SCSTORE [INCREASE LEGTH OF CSTORE 4KFW CALL 1 SCSTORE [SET X2->ADATA/CSTORE 4K^G STO4 ADS 7 A1(2) [UPDATE PTR TO NEXT FREE WORD 4LF6 ADX 2 A1(2) 4LYQ SBX 2 7 4MDB STO 3 0(2) [STO DATA IN STOREX CASE 4MY2 LDXC 6 6 4NCL BCS STO9 [J IF STOREX CASE 4NX= MHUNT 1,CPB,CUNI 4PBW LDN 1 APARA(1) 4PWG SMO 7 4QB6 MOVE 1 0 [STORE DATA IN STOREN CASE 4QTQ STO9 ADX 6 FX1 4R*B LDX 1 FX1 4RT2 LDX 2 FX2 4S#L EXIT 6 0 4SS= SCSTORE 4T?W MHUNTW 2,ADATA,CSTORE 4TRG EXIT 1 0 5Q5Q # 5QKB RTIMEUNIT 5R52 # THIS S/R CONVERTS N UNITS OF TIME INTO BINARY SECS. 5RJL # 5S4= SBX 6 FX1 5SHW CALL 5 PARA [GET NEXT PARAMETER 5T3G RTU0 PARSPLIT 5 5T7C ...#UNS G400 5T?# ...#SKI 5TC9 ...( 5TH6 #SKI K6JOBDATA>99-99 5W2Q TRACE 5,PARSPLIT 5W=J ...) 5WGB BNG 5 RTU1 5X22 BNZ 5 RTU5 [J IF ERROR 5XFL RTU1 LDX 7 ACOMMUNE1(2) [BINARY NO. 5X^= BZE 5 RTU3 [J IF NO LETTERS -SECS. ASSUMED 5YDW TXU 5 SEC(1) 5YYG BCC RTU3 [J IF SECS 5^D6 TXU 5 MIN(1) 5^XQ BCC RTU4 [J IF MINS 62CB TXU 5 ZHR(1) 62X2 BCS RTU5 [J IF NOT RECOGNISED 63BL LDN 0 3600 63W= RTU2 MPY 7 0 [RESULT IN X0 64*W LDX 7 0 64TG RTU3 ADX 6 FX1 65*6 EXIT 6 0 65SQ RTU4 LDN 0 60 66#B BRN RTU2 66S2 RTU5 ADX 6 FX1 67?L EXIT 6 1 67R= [ JOBDATA PARAMETER 68=W XK3 68B2 ...#UNS G400 68F6 ...( 68J= ... STOZ AWORK3(2) 68MB ...) 68QG STOZ AWORK4(2) 69=6 MBS 2,STARTCOM,TFORMAT [SET JOBDATA PARAM. IND. 69PQ BRN NEXT 6=9B [ URGENCY COMMAND 6=P2 XK4 6=S6 ...#UNS G400 6=X= ...( 6?2B ... STOZ AWORK3(2) 6?5G ...) 6?8L STOZ AWORK4(2) 6?N= LDN 6 0 6#7W BRN ONE6 6#MG [ JOBDATA COMMAND 6*76 XK1 6*9P ...#UNS G400 6*## ...( 6*BX ... STOZ AWORK3(2) 6*FG ...XK6 6*J5 ...) 6*LQ STOZ AWORK4(2) 6B6B BRN NEXT 6BL2 [ THE FOLLOWING ENTRY POINT IS FOR THE JOBTIME COMMAND 6C5L XK2 6C89 ...#UNS G400 6C=S ...( 6C*C ... STOZ AWORK3(2) 6CD2 ... 6CGK ...) 6CK= # 6D4W STOZ AWORK4(2) 6DJG LDN 6 1 [JT FACILITY NO. 6F46 BRN ONE6 [J INTO JD CODE 6FHQ # 6FRJ ...XK10 6G3B NEXT0 MFREE CPB,CUNI 6GH2 NEXT MBC 2,SINGLE,TMINUS,TPLUS,PMINUS 6GQS ... BC 2,TMAXSIZE [ B7270 CORRECTION 6H2L CALL 5 SPARA [GET NEXT PARAMETER 6HG= BZE 0 NEXT0 [J IF NULL PARAMETER 6H^W BNG 0 RFIN9 [J IF END OF PARAMETERS 6JFG SRL 0 12 6J^6 BNZ 0 TWO [J IF NOT ALPHA-NUMERIC 6KDQ JBS TWO,2,TFORMAT [J IF 2ND FORMAT 6KYB [ THE FOLLOWING CODE CHECKS FOR THE FACILITY NO. 6LD2 LDX 4 ANUM(3) [TOTAL NO. OF CHARACTERS 6LXL STOZ 5 6MC= STOZ 6 6MWW LDN 7 #20 6MY4 ...[ CORRECTION TO ALLOW FACILITY 11 AS FORMAT 1,AS WELL 6M^= ...[ AS FORMAT 2 6N2D ...[ AWORK1 MUST BE SET TO LENGTH OF 1ST PARAMETER 6N3L ...[ EXCLUDING LEADING SPACES FOR JDTWO VALIDATION 6N4S ...[ NOTE IT ALLOWS FOR 'NN' & 'N N' BEING ACCEPTED 6N62 ...ONE1 LDCH 0 APARA(3) 6N78 ... BXU 0 7,ONE1A [J IF NOT SPACE 6N8B ... BCHX 3 £ 6N9J ... BCT 4 ONE1 6N=Q ... BRN PZER 6N?Y ...ONE1A STO 4 AWORK1(2) [KEEP COUNT IN CASE FAC'TY 11 6N*6 ...[ END OF B.0873 CORRECTION INSERTION 6NBG ONE2 LDCH 0 APARA(3) 6NW6 BXE 0 7,ONE4 [IGNORE SPACES 6P*Q CDB 5 APARA(3) 6PTB BCS TWO [J IF ALPHA-CHAR 6Q*2 ONE4 BCHX 3 £ 6QSL BCT 4 ONE2 6R#= BZE 6 PZER 6RRW [ JOBTIME AND URGENCY JOIN COMMON CODE HERE 6S?G ONE6 LDX 0 RESTAB+3(1) 6SR6 BZE 0 VARNEEDS [END OF TABLE 6T=Q BPZ 0 ONE7 [J IF VARIABLE ITEM 6TQB ERX 0 GSIGN 6W=2 SRL 0 12 [FACILITY NO. 6WPL BXE 0 6,ONE9 [J IF ENTRY FOUND 6X9= ONE7 ADN 1 4 6XNW BRN ONE6 6Y8G ONE9 SBX 1 FX1 6YN6 DSA 1 AWORK4(2) 6^7Q BRN PAN [ANALYSE REST OF PARAMETERS 6^MB [ LOOK FOR SCHEDULING IDENTIFIER IN TABLE 7272 TWO LDX 3 ACOMMUNE3(2) [X3->CPB CUNI 727L ...#UNS G400 728= ...( 728W ... TESTHKN TWO11 [NOT IN HOOK 729G ... LDX 0 JPARNUM(3) 72=6 ... SBN 0 1 72=Q ... BNZ 0 TWO11 [NOT 1ST PARAM 72?B ... LDCH 0 APARA(3) 72#2 ... TXU 0 XASTRA(1) 72#L ... BCS TWO11 [NOT NEW FORMAT 72*= ... FREECORE 3 72*W ... DOWN SETJD,2 72BG ... BRN XBREAK 72C6 ... BRN XJBD1 [ERROR REPORTING 72CQ ...XK5 [ SUCCESSFUL RETURN FOR SETJD 72DB ... LDX 4 ACOMMUNE1(2) 72F2 ... STO 4 AWORK3(2) 72FL ... BRN XK6 72G= ...XJBD1 LDX 7 ACOMMUNE1(2) 72GW ... LDX 6 ACOMMUNE2(2) [-TER ANALYSIS OF LAST PARAM 72HG ... BRN XJBD2 72J6 ...) 72JQ ...#UNS G400 72KB ...TWO11 72LL CALL 6 SIGNTEST [TEST FOR + OR - 736= BRN TWO1 [J IF NOT SIGNED 73KW BRN TWO05 [J IF + FOUND 745G BS 2,TMINUS [- FOUND 74K6 BRN TWO1 754Q TWO05 BS 2,TPLUS 75JB TWO1 STO 7 ACOMMUNE4(2) [NO. OF CHS IN PARAM 7642 STO 3 ACOMMUNE5(2) [PTR.TO SCHED.IDENT. 76HL LDN 5 #20 773= LDX 6 FX1 77GW TWO2 LDX 1 6 782G LDX 3 ACOMMUNE5(2) [RESET PTR.TO SCHED.IDENT. 78G6 LDN 7 12 [COUNT OF CHS.IN IDENT. 78^Q LDCH 0 RESTAB(1) 79FB BZE 0 NEEDS [END OF TABLE 79^2 BXE 0 5,TWO4 [J IF NO IDENTIFIER 7=DL TWO3 LDCH 0 APARA(3) 7=Y= LDCH 4 RESTAB(1) 7?CW BXE 4 5,TWO5 [J IF END OF IDENTIFIER 7?XG BXU 4 0,TWO4 [J IF WRONG IDENTIFIER 7#C6 BCHX 1 £ 7#WQ BCHX 3 £ 7*BB BCT 7 TWO3 7*W2 BRN TWO5 7B*L TWO4 ADN 6 4 7BT= BRN TWO2 7C#W TWO5 ADX 7 ACOMMUNE4(2) 7CSG SBN 7 12 [NO. OF CHARS. AFTER IDENT. 7D#6 BNG 7 TWO4 [J IF NO MATCH 7DRQ LDX 1 FX1 7F?B BZE 7 PNULL [J IF NO JOBDATA 7FR2 SBX 6 FX1 7G=L DSA 6 AWORK4(2) [SAVE PTR TO ENTRY 7GQ= BS 2,TFORMAT 7H9W [ SCHED. IDENTIFIER FOUND SO SET UP PARAMETER BLOCKS FOR 7HPG [ CONVERSION ROUTINES. THAT IS:- 7J96 [ IF PARAMETER OF THE FORM X(Y),LEAVE Y IN MULTI-PARAM BLOCK 7JNQ [ IF PARAMETER OF THE FORM XY, LEAVE Y IN CPB/CUNI BLOCK 7K8B SPLIT 7KN2 LDCH 0 APARA(3) 7L7L BXU 0 5,SPT1 [J IF NOT SPACE 7LM= BCHX 3 £ 7M6W BCT 7 SPLIT 7MLG BRN PNULL [J IF JOBDATA 7MSQ ...SPT1 LDX 6 ACOMMUNE4(2) 7N32 ... SBX 6 7 [BKEEP COUNT FOR TSN CASE 7N9= ... STO 6 AWORK1(2) 7NCG ... SBN 0 #30 7NKQ BZE 0 SPT2 [J IF X(Y) PARAMETER 7P5B CALL 6 RESETCUNI [REMOVE IDENT. FROM CUNI 7PK2 BS 2,SINGLE [INDICATE DATA IN CPB/CUNI 7Q4L BRN PAN 7QJ= SPT2 LDX 1 ACOMMUNE3(2) 7R3W LDEX 5 ATYPE(1) [PARAM NO. IN CMULTI 7RHG PARALYSE ,,5 [SPLIT INTO X AND (Y) 7S36 TESTREP2 UNPAIR,PTERR 7S*G ... TESTREP2 TOOMANY,TOOMANY 7SGQ PARANUMB 4 7T2B SBN 4 2 7TG2 BNZ 4 PTERR [J IF NOT 2 PARAMETERS 7T^L LDN 5 2 7WF= PARALYSE #34,,5 [REMOVE BRACKETS FROM (Y) 7WYW MFREE CPB,CUNI 7XDG BRN PAN [J TO ANALYSIS ROUTINE 7XY6 [ CHECK FOR VARIABLE NEEDS 7YCQ VARNEEDS 7YXB SBN 6 5 7^C2 BNZ 6 PZER [J IF UNKNOWN FACILITY NO. 7^WL MFREE CPB,CUNI 82B= BRN NEEDS2 82TW [ NEEDS ASSUMED IF SCHED. IDENTIFIER NOT RECOGNISED 83*G NEEDS BS 2,SINGLE 83T6 NEEDS2 84#Q BS 2,TFORMAT 84SB LDN 7 RESNEEDSPTR 85#2 DSA 7 AWORK4(2) [PTR.-> ENTRY IN RESTAB 85RL MBC 2,TMINUS,TPLUS 86?= [ PARAMETER ANALYSIS 86QW PAN LDX 7 AWORK4(2) [STORE INDS.IN 1ST. WD OF REC. 87=G CALL 6 STOREX [STORE 1ST WORD OF RECORD 87Q6 LDEX 6 AWORK4(2) 889Q SMO 6 88PB LDX 7 RESTAB+3(1) 88R5 ...[ B7270 CORRECTION 06.08.82 88SS ...[ SET TMAXSIZE IF MAXSIZE DATA SUPPLIED 88WH ... LDXC 6 7 88Y= ... SRL 6 12 88^^ ... SBN 6 6 893N ... BNZ 6 XMAXSIZE 895C ... BS 2,TMAXSIZE 8976 ...XMAXSIZE 8992 CALL 6 STOREX [2ND WORD (INCL. WORD COUNT) 89NL LDEX 6 AWORK4(2) 8=8= JBC PAN7,2,TFORMAT 8=MW LDX 0 6 8?7G SBN 0 STARTPTR 8?M6 BZE 0 STARTTIME [J IF STARTTIME 8#6Q PAN7 SMO 6 8#LB LDEX 3 RESTAB+3(1) 8*62 SMO 3 8*KL BRN SWITCH 8B5= SWITCH 8BJW BRN PURGENCY [FACILITY 0 8C4G BRN PCHARLOAD [FACILITY 1 8CJ6 ... BRN PJOBDATAB [FACILITY 2 8D3Q ... BRN PJOBDATAB [FACILITY 3 8DHB ... BRN PJOBDATAB [FACILITY 4 8F32 BRN PTIMEUNIT [FACILITY 5 8FGL BRN PCHARDIG1 [FACILITY 6 8G2= BRN PCHARDIG2 [FACILITY 7 8GFW ... BRN PJOBDATAB [FACILITY 8 8G^G ... BRN PJOBDATAB [FACILITY 9 8HF6 BRN PCHARDIG3 [FACILITY 10 8HYQ ... BRN PJOBDATAB [FACILITY 11 8JDB ... BRN PJOBDATAB [FACILITY 12 8JY2 ...[ THE ROUTINE TO PROCESS FACILITY 'N' IS CONTAINED 8KCL ...[ IN JOBDATAB. RETURN IS TO 'NEXT0', ACROSS TO JOBWRITE,1 OR UP 8KX= ...PJOBDATAB 8LBW ... ACROSS JOBDATAB,1 8MTQ PTIMEUNIT 8N*B CALL 6 RTIMEUNIT 8NT2 BRN TESTJBLK [J TO EXTRA CHECKS FOR UR/JT 8P#L PTUER BNG 5 XCOM [J IF LETTER STRING UNRECOGNISED 8PS= SBN 5 1 [J IF NULL 8Q?W BZE 5 PNULL [J IF NULL 8QRG SBN 5 1 8R?6 BZE 5 PABS [J IF PARAM MISSING 8RQQ ... BRN XEROP 8S=B PCHARDIG1 8SQ2 PCHARDIG2 8T9L PCHARDIG3 8TP= PCH1 8W8W CALL 5 PARA [SET UP CPB/CUNI BLOCK FOR PARSPLIT. 8WNG BNG 0 RFIN 8X86 BZE 0 PCH8 8XMQ BC 2,PMINUS [CLEAR PER. MINUS IND. 8Y7B CALL 6 SIGNTEST [TEST FOR + AND - 8YM2 BRN PCH16 [J IF NOT SIGNED 8^6L BRN PCH15 [J IF + FOUND 8^L= BS 2,PMINUS [- FOUND 925W PCH15 BS 2,TPLUS 92KG PCH16 BZE 7 PNULL [J IF NO MORE CHARS. 9356 CALL 6 RESETCUNI 93JQ PCH2 PARSPLIT 7 [X7 WILL CONTAIN LETTER STRING OR REP 944B BNG 7 PCH3 [IF X7 HOLDS A LETTER STRING,LEFT-JUS 94J2 [IT WILL HAVE B0 SET,SINCE 'A'=#41 953L [ 95H= [ 962W [-----ERROR REPORTING-- 96GG # PARSPLIT : REPLY WORD = 0 MEANS NO LETTER STRING 9726 # = 1 MEANS NULL PARAMETER 97FQ # = 2 MEANS PARAMETER ABSENT 97^B # = 3 MEANS ANY OTHER ERROR 98F2 # OTHERWISE %A WILL CONTAIN THE LETTER STRING LEFT-JUSTIFIED AND SPACE 98YL BZE 7 XCOM 99D= SBN 7 1 [REPLY WORD > 0 99XW BZE 7 PCH8 [J IF NULL PARAMETER 9=CG SBN 7 1 [REPLY WORD > 1 9=X6 BZE 7 PABS 9?BQ BRN XEROP [PARAM ERROR MESSAGE ALREADY O/P 9?WB PCH3 9#B2 LDX 1 FX1 9#TL LDN 3 TAB(1) [SET X3 TO POINT TO START OF TABLE 9**= LDN 0 TABCT 9*SW #SKI K6JOBDATA>999-999 9B#G TRACE 0,TABLE = 9BS6 PCH4 9C?Q TXU 7 0(3) [CHECK PARAM LETTERS AGAINST TABLE 9CRB BCC PCH6 [MATCHED? 9D?2 ADN 3 1 [MOVE PTR TO NEXT LETTER STRING 9DQL BCT 0 PCH4 9F== TXU 7 XDA(1) 9FPW BCS XCOM 9G9G LDN 0 TABCT-6 [X0 LOOKING AS THO TYPE 6 9GP6 PCH6 9H8Q #SKI K6JOBDATA>999-999 9HNB TRACE 5,HURDLE 1 9J82 NGX 7 0 [NEGATE COUNT INTO X7 9JML ADN 7 TABCT [X7=T# 9K7= CALL 6 STOREX [STORE PER. UNIT 9KLW LDX 7 ACOMMUNE1(2) [PER. COUNT 9L6G JBC PCH64,2,TMINUS 9LL6 NGX 7 7 9M5Q PCH64 JBC PCH7,2,PMINUS 9MKB NGX 7 7 9N52 PCH7 CALL 6 STOREX [STORE PER. COUNT 9NJL JMBAC PCH8,2,TMINUS,TPLUS,PMINUS [J IF NOT SIGNED 9QH6 BS 2,SIGNEED [SET NEEDS SIGNED IND. 9R2Q [ UPDATE COUNT OF PARAMETERS 9RGB PCH8 JBS RFIN,2,SINGLE [J IF XY TYPE PARAMETER 9S22 MFREE CPB,CUNI 9SFL BRN PCH1 =88L PURGENCY =8N= PCHARLOAD [FACILITY 0 =97W [PUTS UP-TO-4-LETTER-2ND-PARAMETER INTO X7,RIGHT JUSTIFIED. =9MG [CALLS PARAPASS,USES ALL ACCS.,EXITS TO PLOAD ==76 # ==LQ LDX 4 3 [ZERO IF URGENCY =?6B CALL 5 RPARAPASS =?L2 LDX 6 0 [TYPE/NO INTO X6 =#5L ANDN 6 #7777 =#K= LDN 2 5 [MAX = 4 LETTERS. =*4W TXL 6 2 =*JG BCC PTERR [J IF TOO MANY CHARS. =B46 STOZ 7 [CLEAR'RESULT'ACCUMULATOR. =BHQ ... LDN 2 #72 ['Z'=#72 =C3B LDN 5 #41 ['A'=#41 =CH2 RLOOP =D2L SLL 7 6 [MOVE UP TO MAKE ROOM FOR NEXT LETTER =DG= LDCH 0 APARA(3) [EXAMINE NEXT CHARACTER =D^W BXL 0 5,PTERR [J IF NOT ALPHABETIC =FFG ... BXL 2 0,PTERR [ [J IF NOT ALPHABETIC/ =F^6 ORX 7 0 [OK,SO COPY IT IN =GDQ BCHX 3 £ [ADVANCE CHARACTER POINTER =GYB BCT 6 RLOOP =HD2 BNZ 4 PLOAD [J IF NOT URGENCY =HXL ... BXL 2 7,PTERR [J IF NOT VALID URGENCY =JC= [ START OF 'CSSLIMUR' CODE =JWW [ RESTORE TIME MENDABLE CODE TO..... =KBG [ RESTRICT URGENCY RANGE =KW6 [ %A=IP MANAGERN (RANGE OF URGENCIES) =L*Q SEGENTRY K40JOBDATA =LTB LDX 2 7 [LDX 0 %A =M*2 TXU 2 7 =MSL BCC RUR9 =N#= LDX 2 7 =NRW SBN 2 #40 =P?G SLL 0 0(2) =PR6 BNG 0 RUR9 =Q=Q LDX 7 RUR1(1) =QQB BRN RERROR =R=2 SEGENTRY K41JOBDATA =RPL RUR1 +0 =S9= RUR9 =SNW [ END OF 'CSSLIMUR' CODE =T8G [ =TN6 [ EXTRA CHECKS REQUIRED FOR UR/JT IN STARTED JOBS =W7Q [ UR/JT IS HELD IN X7 =WMB TESTJBLK =X72 CALL 6 STOREX =XLL LDX 7 3 =YKW LDEX 6 AWORK4(2) =^5G SMO 6 =^K6 LDXC 0 RESTAB+3(1) ?24Q BCC RFIN [J IF NOT FIXED RESOURCE ?2JB SRL 0 12 ?342 SBN 0 1 ?3HL BPZ 0 TJB4 [J IF NOT URGENCY JD ?3NS ... JBC TJB3,2,STARTCOM [J IF NOT JOB START COMMAND ?3W2 ... MHUNTW 3,JWELL,COPYSYS ?438 ... JLADJUST 3 ?48B ... JBC RFIN,3,JLBLN [J IF NOT MLOGIN ?4*J ...TJB3 ACROSS JDWRITE,2 [FURTHER CHECKS ON URGENCY ?4GW TJB4 BNZ 0 RFIN [J IF NOT JOBTIME JD ?4QN ... JBS RFIN,2,STARTCOM [J IF NOT STARTED JOB ?52G ACROSS JDWRITE,3 [FURTHER CHECKS ON JOBTIME ?5G6 ...STARTTIME ?5^Q ...# THIS A SPECIAL ROUTINE TO EMULATE THE ?6FB ...# STARTTIME MACRO ?6^2 ... ACROSS JOBDATAB,3 #J6# ...PLOAD CALL 6 STOREX [STORE TIME ALSO USED BY JD NO ROUTI #JB6 RFIN #JTQ MHUNT 3,ADATA,CSTORE #K*B LDX 0 A1(3) #KT2 SBX 0 A1+1(3) #L#L BXGE 0 TOOSMALL(1),RFIN6 [J IF SOME JD DATA #LS= SBS 0 A1(3) [RESET PTR->NEXT FREE WORD #M?W BRN RFIN8 #MRG RFIN6 BXGE 0 TOOBIG(1),TOOMUCH #N?6 SMO A1+1(3) #NQQ DSA 0 0(3) [STORE WORD COUNT #P=B SMO A1+1(3) #PQ2 LDX 0 1(3) #Q9L BPZ 0 RFIN7 [J IF NOT FIXED RESOURCE #QP= ANDN 0 #4000 #R8W BNZ 0 RFIN7 [J IF COUNT SET #RNG JMBS NOCOUNT,2,TMINUS,TPLUS [ERROR IF SIGNED #S86 RFIN7 LDX 0 A1(3) #SMQ STO 0 A1+1(3) [PTR->NEXT RECORD #T7B RFIN8 LDN 7 0 #TM2 JBC RFIN81,2,STARTCOM [J IF JOBDATA PARAM #W6L LDN 7 3 #WL= RFIN81 #X5W PARAFREE 7 #XKG JBS NEXT0,2,TFORMAT [J IF 2ND JD FORMAT #Y56 RFIN9 #YJQ HUNTW 3,ADATA,CSTORE #^4B ... BNG 3 THENDNEAR [J IF NO JOB DATA SUPPLIED #^J2 MFREE CPB,CUNI *23L ACROSS JDWRITE,1 [UPDATE ENTRY IN JOBLIST *2H= # *32W # ERROR REPORTING *3GG # *426 # *4FQ PZER LDX 1 FX1 *4^B LDX 7 YER1(1) *5F2 BRN RERROR *5YL PNULL LDX 7 YER2(1) *6D= BRN RERROR *6XW PABS LDX 7 YER3(1) *7CG BRN RERROR *7PX ...PTERR LDX 1 FX1 *84# ... LDX 7 YER4(1) *8BQ BRN RERROR *8WB XCOM LDX 7 YER5(1) *9B2 BRN RERROR *9TL TOOMUCH *=*= LDX 7 YER8(1) *=F7 ... BRN RERROR *=K4 ...TOOMANY *=N^ ... LDX 7 YER11(1) *=SW BRN RERROR *#?Q NOCOUNT *#RB LDX 7 YER10(1) **?2 BRN RERROR **QL XEROP *B== LDX 7 GSIGN [ERROR ALREADY O/P *BPW [ ERROR ENTRY FROM JDWRITE *C9G XK9 *CP6 RERROR *D8Q ... ACROSS JOBDATAB,2 *DNB ...THENDNEAR *F82 ... LDX 2 FX2 *FML ... JBC THEND,2,STARTCOM *G7= ... MFREE CPB,CUNI *GLW ... UPPLUS 1 *H6G ...THEND ENDCOM *K52 XBREAK *KJL COMBRKIN *KM9 ...#UNS G400 *KPS ...( *KSC ...XJBD2 *KX2 ... COMERRX 7,6 *K^K ...) *L4= #END ^^^^ ...177653300006