15 22FL #LIS K0WSPERIS>K0WHATSTATE>K0COMMAND>K0ALLGEO 12 22_= ... SEG WSPERIS,867,SECTION CENT 4 23YG # 4 244C ...[ 16 248# ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 24#9 ...[ 11 24D6 SEGENTRY K1WSPERIS,SENTRY1 11 24QG SEGENTRY K2WSPERIS,SENTRY2 12 24T6 FSHENTRY K3WSPERIS,,ST1,ST1 14 24WD FSHENTRY K4WSPERIS,SENTRY4,,SENTRY4 19 24XQ # THIS SEGMENT IMPLEMENTS THE LAST PART OF THE WS COMMAND 17 25CB # IT DEALS WITH THE PERIPHERALS ATTACHED TO A JOB 17 25X2 # IT GATHERS INFORMATION FROM :THE PER LIST (ONLINE) 14 26BL # THE PRB 4 27*W # 7 27TG #DEF ZADATA=A1 8 28*6 #DEF ZHEAD=ZADATA+1 8 28SQ #DEF XDUJOB=A1+8 8 28W# #DEF WJOBNO = A1 9 28X# #DEF WPERPTR = A1+28 9 28XW ZAWSPERFH +EWSPERIS 9 28_D ZAWSPEROH +AWSPEROH 10 2932 ZAWSPERISO +AWSPERISO 10 294J ZAWSPERISF +AWSPERISF 10 2966 ZAWSPERISG +AWSPERISG 9 297N ZAWSSAVED +HNOWSAVE 9 299= ZAWSPERGO +BWSPERIS 9 29=S ZAWSNOCOR +AWSPERIS 19 29?# ZFNFD +FNFD [^NO FURTHER DETAILS AVAILABLE^ 4 29?S [ 17 29#B TWENTFOURHR +60*60*24/K9*1000 [1 DAY OF SC COUNTS 8 29#Q TDIRLANG 4HC1 4 29*2 [ 8 29*7 WSW SBX 5 FX1 8 29*Y ASSMESS 4 10 29BP MHUNTW 3,GMON,AOUT 10 29CG NAME 3,FILE,FAPB 8 29D? LDX 0 A1(3) 8 29F4 ADN 0 11 7 29FT SRL 0 2 16 29GL STO 0 A1(3) [RESET WORD COUNT 17 29HC LDX 0 AWORK4(2) [DEPTH OF 'WS' FILE 8 29J8 BZE 0 WSW3 9 29J_ APPEND 1,WSW9 8 29KQ BRN WSW8 9 29LH WSW3 APPEND 0,WSW9 9 29M# WSW8 MFREE FILE,FAPB 9 29N5 TESTRPN2 OK,WSW10 7 29NW ADN 5 1 7 29PM WSW9 ADN 5 1 8 29QD WSW10 ADX 5 FX1 7 29R9 EXIT 5 0 16 29S2 # SUBROUTINE TO O/P PERIPHERAL TYPE AND UNIT NO 4 2=?L # 8 2=R= PERTY SBX 5 FX1 7 2?=W LDX 2 0 10 2?QG OUTPACK 2,4,PERINAME 8 2#=6 ADX 5 FX1 7 2#PQ EXIT 5 0 5 2F6B N3 +3 5 2FL2 N4 +4 14 2G5L # SR TO SET X456 TO NXT RECORD IN CQ11 10 2GK= # ACC TO WD AFTER CALL 11 2H4W MOVE MHUNTW 1,ADATA,CSTORE 17 2HJG ADX 1 AWORK1(2) [X1->TOP OF RECOED 16 2J46 ADX 1 0(3) [ADD DISPLACEMRNT 7 2JHQ LDN 2 4 7 2K3B MOVE 1 3 7 2KH2 EXIT 3 1 4 2L2L # 11 2L*3 # SR TO OUTPUT A PARAMETER WITH 11 2LMD # DATA OF 1ST WORD AFTER CALL 12 2L_T # DATA LENGTH OF 2ND WD AFTER CALL 10 2M#= # PDC OF 3RD WD AFTER CALL 7 2MLM OUTP LDX 1 3 8 2M_6 SBX 3 FX1 16 2NDQ OUTPACKX 0(1),1(1),2(1) [O/P PARAM 8 2PD2 ADX 3 FX1 7 2PXL EXIT 3 1 4 2QC= # 5 2QDY SCQPRINT 11 2QFG MHUNTW 2,CQPRINT,CQ11 7 2QG4 EXIT 1 0 5 2QGL SADATA 11 2QH8 MHUNTW 2,ADATA,CSTORE 7 2QHQ EXIT 1 0 4 2QJ# [ 5 2QJW SENTRY1 10 2QKD LDX 0 ACOMMUNE1(2) 16 2QL2 STO 0 AWORK4(2) [DEPTH OF WS FILE 8 2QLJ BRN ST1 5 2QM6 SENTRY2 11 2QMN SETNCORE 20,3,ADATA,CSTORE 8 2QN= BRN ST1 5 2QNS RESTART 10 2QPB LDX 7 ALOGLEN(3) 7 2QPY SLL 7 1 20 2QQG ALTLENG 3,7,SADATA [DOUBLE LENGTH OF ADATA/CSTORE 11 2QR4 ST1 MHUNTW 3,CQPRINT,CQ11 9 2QRL LDXC 4 WJOBNO(3) 18 2QS8 LDN 5 0 [NON-ZERO IF HLS XCODE 8 3YG2 JOBLOCK 4,2 16 3Y_L BNG 2 THING [J IF BLOCK LOST 9 3_F= LDEX 0 JMISC(2) 19 3_YW BZE 0 XPRINOCORE [J IF NO LONGER A CORE IMAGE 17 43CQ LDX 6 2 [KEEP -> JOB BLOCK 20 43XB # THIS HAS BEEN NECESSARY INCASE THE JOB HAS CHANGED ITS STATUS 14 44C2 # SINCE CO-ORDINATING HAS TAKEN PLACE. 4 44WL # 14 45B= # THE PERIPHERAL LIST IS NOW EXAMINED. 9 45TW # POINTS TO NOTE. 19 46*G # THE 1ST WORD OF THE LIST CONTAINS THE SIZE OF THE RED TAPE 21 46T6 # THE ZEROTH WORD OF THE RECORD CONTAINS, IN BIT 21, WHETHER OFFOR 11 47#Q # ON LINE. SET IF ON-LINE 13 47SB # 4TH WORD IN LS HALF THE JOB-NUMBER 17 48#2 # IN THE MOST SIG. CH. OF ZEROTH WORD IS THE TYPE 14 48RL # 1ST. WORD IN LS. CHAR. THE GEOG. NO. 4 49?= # 12 49QW # THIS GEN IS STORED AS FOLLOWS 9 4==G # AWORD MS CH = TYPE 10 4=Q6 # 2WORD LS CH = GEOG NO. 4 4?9Q # 11 4?PB MHUNT 3,ADATA,CSTORE 10 4#92 ST2 LDX 7 ALOGLEN(3) 16 4#NL SBN 7 4 [X7 WILL CONTAIN 21 4*8= LDN 5 0 [CORE LEFT AND X5:CT OF ONLINE PERS 17 4*MW STOZ A1+1(3) [INITIALISE CO NTS 9 4B7G LDN 1 A1+1(3) 15 4BM6 FINDPERE 2,APJOB,4,REENT [FIND ENTRY 19 4C6Q ADN 1 3 [UPDATE PTR ALONG CQ11 BLOCK 16 4CLB BNG 2 PHIN [J WHEN ALL DONE 7 4D62 SBN 7 3 15 4DKL BNG 7 RESTART [TRY AGAIN 15 4F5= LGEOG 2,0 [GET GEOG NO 8 4FJW STO 0 1(1) 15 4G4G STOZ 0(1) [JUST IN CASE 8 4G## STOZ 2(1) 15 4GJ6 BUX 5 REENT [+1 FOR FOUND 17 4K2= PHIN STO 5 A1(3) [STORE CT OF O/L PERS 15 4KFW FPCAJO 2,6 [X2 -> PCA 9 4K_G #SKI K6WSPERIS<199-199 10 4LF6 TRACE A1(3),WSOLPER 9 4LRH PCATEST 2,TP,TP 8 4M5Y FINDTP 2,2 20 4MDB TP STO 1 A1+2(3) [X1 -> 1ST POSN FOR OFFLINE INFO 15 4MY2 STO 2 A1+3(3) [X2 -> APET 9 4NCL XLOOP LDX 2 FPTR(2) 9 4NX= LDX 0 ATYPE(2) 8 4PBW TXL 0 CACT 18 4PWG BCC OUTPUT [J IF NO APERI/APERIRES 8 4QB6 SRL 0 12 11 4QTQ SBN 0 APERI+APERIRES 8 4R*B BNZ 0 XLOOP 15 4RT2 XLOOP1 [PRB FOUND 8 4S#L LDX 6 A1(2) 17 4TRG BNG 6 XDONE [J IF AT END OF PRB 9 4W?6 LDXC 1 A1+1(2) 17 4WQQ BCS OFFLINE [J IF MARKED OFFLINE 18 4X=B LGEOG 1,6 [ELSE GET OPS NUM IN X6 5 546L PONLY 18 54L= LDN 1 A1+4(3) [X1-> 1ST ONLINE ENTRY 17 555W LDX 5 A1(3) [CT OF ONLINE ENTRINS 8 55KG ROUND TXU 6 1(1) 9 5656 BCC PHOUND 7 56JQ ADN 1 3 8 574B BCT 5 ROUND 8 57J2 BRN UPD 5 583L PHOUND 18 58H= LDX 0 A1(2) [GET PER TYPE/NUMBER WORD 18 592W STO 0 0(1) [KEEP COPY OF 1ST WORD 9 595F LDXC 6 A1+1(2) 8 5984 BCC PER 16 59=M LDX 6 4 [PTR TO DEVICE LIST 8 59*= PER LOBJPERIS 6,0 8 59CT STO 0 2(1) 7 59GG UPD ADN 2 2 9 5=26 BRN XLOOP1 5 5=FQ OFFLINE 8 5=_B SBN 7 10 19 5?F2 BNG 7 RESTART [RESTART IF INSUFF1CIENT CORE 17 5?YL LDX 1 A1+2(3) [X1-> 1ST FREE WORD 18 5#D= LDX 4 2 [SAVE PTR -> PRB ENTRY 17 5#XW LDX 2 A1+3(3) [X2 -> APET/LAST OLPA 10 5*CG LDX 2 ACTRING(2) 15 5*X6 SBN 2 ACTRING [X2 -> AOLPT 15 5BBQ STO 2 A1+3(3) [KEEP COPY 9 5BWB LDX 0 ATMARK(2) 7 5CB2 SBN 0 2 19 5CTL BZE 0 PSDMT [J IF PSEUDO OFFLINE MAGTAPE 7 5D*= SBN 0 6 17 5DSW BZE 0 PSDMT [J IF PS-ONLINE DRUM 8 5F#G STO 6 0(1) 9 5FJ# LDX 6 ACOUNT(2) 8 5FS6 STO 6 9(1) 8 5G3Y LDN 6 10 16 5G?Q ADS 6 A1+2(3) [UPDATE X1 COPY 7 5GRB LDN 6 1 20 5H?2 ADS 6 A1+1(3) [& COUNT OF OFFLINE PERIPHERALS 7 5HQL ADN 0 7 14 5J== BZE 0 XOFILE [EXOFILE 7 5JPW SBN 0 3 16 5K9G BZE 0 TRANS [J IF ONLINE CI 7 5KP6 SBN 0 2 14 5L8Q BZE 0 PCOMM [J IF IPC 6 5L?* #UNS AV7900S 4 5L*Y ( 7 5LDH SBN 0 3 17 5LH6 BZE 0 V7900 [J IF VIRTUAL 7900 4 5LKP ) 10 5LNB LDX 0 FILERING(2) 19 5M82 SBN 0 FILERING(2) [NULL RING IF TRANSIENT STATE 8 5MML BNZ 0 SOME 19 5N7= TRANS STOZ 1(1) [SET TRANSIENT STATE MARKER 18 5NLW LDX 2 4 [RESET PTR-> PRB ENTRY 8 5P6G BRN UPD 8 5PL6 SOME TOPFCBV 2,2 9 5Q5Q #SKI K6WSPERIS<199-199 9 5QKB TRACE 2,WSFILE 9 5R52 LDN 5 FUSER1(2) 8 5RJL LDN 6 1(1) 17 5S4= MOVE 5 6 [COPY OF FILE NAME 9 5S87 LDN 5 FGEN(2) 8 5S#4 LDN 6 7(1) 7 5SC_ MOVE 5 2 15 5SDG JBC SOME9,2,BFDIR [J IF NOT DIR 14 5SDT LDN 2 1 [GEN. NO. 8 5SF8 STO 2 7(1) 8 5SFJ SMO FX1 9 5SG5 LDX 2 TDIRLANG 15 5SGL STO 2 8(1) [LANG CODE 5 5SH7 SOME9 16 5SHW LDX 2 4 [RESET X2 -> PRB 8 5T3G BRN UPD 5 5TH6 XOFILE 14 5W2Q LDN 6 1(1) [SET X6 17 5WGB STOZ 1(1) [IN CASE NOT FOUND 9 5X22 LDX 5 EXNUM(2) 16 5XFL LDX 2 4 [RESET X2 -> PRB 7 5X_= #SKI EXUDAS<1$1 4 5YDW ( 8 5YYG LDN 1 BCCB 9 5_D6 SEEK LDX 1 FPTR(1) 8 5_XQ TXU 1 CXCC 16 62CB BCC UPD [J IF NOT FOUND 9 62X2 LDX 0 ATYPE(1) 8 63BL SRL 0 12 10 63W= SBN 0 AONBS+EXOF 8 64*W BNZ 0 SEEK 9 64TG TXU 5 EXFILE(1) 8 65*6 BCS SEEK 4 65SQ ) 6 66#B #SKI EXUDAS 4 66S2 ( 9 67?L FINDEXOF 1,5,UPD 4 67R= ) 9 68=W #SKI K6WSPERIS<199-199 10 68QG TRACE 1,WSXOFILE 15 69=6 LDN 5 FIP(1) [MOVE IN NAME 7 69PQ MOVE 5 3 7 6=9B SMO 6 16 6=P2 STOZ 3 [EXOFILE DARKER 8 6?8L BRN UPD 11 6?N= PSDMT [PSEUDO OFFLINE MAGTAPE 15 6#7W MTPTR 2,1 [X1->DEV LIST 15 6#MG LGEOG 1,6 [X6:=GEOG NUM 16 6*76 LDX 2 4 [RESTORE X2->PRB 7 6*BY LDX 4 1 17 6*LQ BRN PONLY [J TO ONLINE SEARCH 6 6B6B #SKI IPCV1 4 6BL2 ( 11 6C5L # IPC - TREAT AS EXOFILES 16 6CK= PCOMM STOZ 1(1) [SET TRANSIENT 10 6D4W LDX 0 ALINDIR(2) 8 6DJG ERN 0 #1700 17 6F46 BZE 0 QFILE [J IF ENQUIRY FILE 10 6FHQ LDN 5 ALINAME(2) 8 6G3B LDN 6 1(1) 16 6GH2 MOVE 5 3 [NAME IN CQ BLOCK 6 6GJP #UNS AV7900S 4 6GLD ( 8 6GN7 BRN QFILE 13 6GPW # VIRTUAL 7900 - TREAT AS EXOFILES 10 6GRK V7900 LDN 5 ACOMMUNE7(2) 8 6GT# LDN 6 1(1) 21 6GX3 MOVE 5 3 [LINK NAME (IF ANY) TO CSTORE BLOCK 4 6GYQ ) 5 6H2L QFILE 16 6HG= STOZ 4(1) [SET AS 'EXOFILE' 7 6H_W LDX 2 4 8 6JFG BRN UPD 4 6J_6 ) 5 6KDQ OUTPUT 17 6KYB XDONE LDX 6 A1(3) [CT OF ONLINE PERS 17 6LD2 LDX 7 A1+1(3) [CT OF OFFLINE PERS 11 6LLM MHUNTW 3,CQPRINT,CQ11 9 6LNW LDXC 0 WJOBNO(3) 16 6LR5 BCS XCODEND [J IF HLS XCODE 9 6LXL BNZ 6 OPHEAD 8 6MC= BZE 7 PHEW 5 6MWW OPHEAD 8 6NBG LDN 1 A1+4 8 6NW6 SMO FX2 15 6P*Q STO 1 AWORK1 [KEEP REL PTR 8 6PKJ LDX 1 FX1 10 6PTB LDX 4 ZAWSPERFH(1) 8 6Q58 CALL 5 WSW 8 6Q*2 BRN XER 8 6QJS BRN XBRK 16 6QSL BZE 6 NOOL [J IF NO OL PERS 10 6R73 LDX 4 ZAWSPEROH(1) 8 6RFD CALL 5 WSW 8 6RRT BRN XER 8 6S6= BRN XBRK 11 6SDM MHUNTW 3,ADATA,CSTORE 9 6SR6 LDN 1 A1+4(3) 15 6T=Q OPONL LDX 4 1(1) [OPS NUMBER 16 6TQB LDX 0 0(1) [TYPE/UNIT NUMBER 8 6TW? LDX 5 2(1) 8 6W28 LDX 2 FX2 18 6W65 STO 5 AWORK2(2) [NO. OF TRANSFERS 15 6W=2 SBX 1 3 [RELATIVISE 7 6WPL ADN 1 3 9 6X9= STO 1 AWORK1(2) 16 6Y8G CALL 5 PERTY [CONVERT AND O/P 8 6YN6 OUTNUM 4,0 10 6Y_3 OUTNUM AWORK2(2),7,1 10 6_9Y LDX 4 ZAWSPERISO(1) 8 6_GT CALL 5 WSW 8 6_RQ BRN XER 8 724M BRN XBRK 11 72*J MHUNT 3,ADATA,CSTORE 9 72LL LDX 1 AWORK1(2) 16 736= ADX 1 3 [X1-> NEXT ENTRY 8 73KW BCT 6 OPONL 8 73TN LDX 1 FX1 17 745G NOOL BZE 7 PHEW [J FI NO OFFLINE PERS 10 74CX LDX 4 ZAWSPERISF(1) 8 74Q# CALL 5 WSW 8 754P BRN XER 8 75C6 BRN XBRK 11 75PH MHUNT 3,ADATA,CSTORE 18 7642 LDX 1 AWORK1(2) [X1 -> REL POSN OF ENTRY 17 76CP OPOFF STO 1 AWORK1(2) [KEEP -> RECORD 7 76RD LDN 0 1 18 7777 STO 0 AWORK3(2) [UNSET USER SET ID. 7 77GW ADX 1 3 8 782G LDX 0 0(1) 8 787N LDX 5 9(1) 16 78#W STO 5 AWORK2(2) [NO. OF TRANSFERS 17 78G6 CALL 5 PERTY [CONVERT AND OUTPUT 8 78_Q CALL 3 MOVE 12 79FB +1 [TOP 3 WDS IS USERNAME ? 16 79_2 BZE 4 TRAN [J IF TRANSITIVE 17 7=DL LDX 2 3(1) [LOAD 'LOACL ' NAME 18 7=Y= BZE 2 XOF [J ID EXOFILE MARKER SET 8 7?CW CALL 3 OUTP 5 7?K4 +4 5 7?Q= +3 15 7?XG +JPDUSERNAME [USERNAME OYT 18 7?YX CALL 3 MOVE [GET GEN NO. & LANG. CODE 5 7#2# +7 16 7#3P CALL 3 OUTP [OUTPUT GEN. NO. 5 7#56 +4 5 7#6H +1 7 7#7Y +JPDGENNUM 17 7#9* CALL 3 OUTP [OUTPUT LANG. CODE 5 7#=Q +5 5 7##7 +1 8 7#*J +JPDLANGUAGE 8 7#C6 CALL 3 MOVE 11 7#WQ +4 [LOCALNAME INTO X456 8 7*BB BRN OFF 8 7*W2 TRAN LDCT 4 #370 8 7B*L ERX 4 ACES 8 7BT= LDX 5 ACES 16 7C#W LDX 6 5 [X456 ='? ' 8 7CSG XOF SMO FX2 17 7D#6 STOZ AWORK3 [SET USER SET ID. 8 7DRQ OFF CALL 3 OUTP 5 7DYY +4 5 7F66 +3 18 7F?B +JPDJOBNAME [OUTPUT X456 AS ' OR NAME 10 7FF3 OUTNUM AWORK2(2),7,1 9 7FLN LDX 0 AWORK3(2) 18 7FS* BNZ 0 OFF8 [J IF USERNAME INCLUDED 10 7G22 LDX 4 ZAWSPERISO(1) 8 7G7M BRN OFF9 10 7G*# OFF8 LDX 4 ZAWSPERISG(1) 8 7GG_ OFF9 CALL 5 WSW 8 7GNL BRN XER 8 7GW? BRN XBRK 11 7H3Y MHUNT 3,ADATA,CSTORE 14 7H9W LDX 1 AWORK1(2) [RESET X1 18 7HPG ADN 1 10 [X1-> NEXT OFFLINE ENTRY 8 7J96 BCT 7 OPOFF 4 7JNQ PHEW 7 7K8B UP UPPLUS 2 16 7KC3 THING BNZ 5 XCODNOC [J IF HLS XCODE 10 7KF= SHLSQ 4,2,XPRILOST 10 7L7L LDX 4 ZAWSSAVED(1) 8 7LM= CALL 5 WSW 8 7M6W BRN XER 8 7MLG BRN XBRK 8 7P5B BRN UP 5 7PK2 XPRILOST 10 7PWB LDX 4 ZAWSPERGO(1) 8 7Q7Q CALL 5 WSW 8 7QF6 BRN XER 8 7QQG BRN XBRK 8 7R3W BRN UP 6 7RHG XPRINOCORE 16 7RPQ BNZ 5 XCODNOC [J IF HLS XCODE 10 7RSW LDX 4 ZAWSNOCOR(1) 8 7S6= CALL 5 WSW 8 7SCL BRN XER 8 7SP2 BRN XBRK 8 7T2B BRN UP 5 7TG2 XER UP 7 7T_L XBRK UPPLUS 1 5 7X?= XCODEND 11 7XP6 MHUNTW 2,ADATA,CSTORE 9 7Y72 LDX 5 A1+2(2) 9 7YJW SBN 5 A1+5(2) 17 7_2Q BNG 5 XCODNOC [J IF NO PER. INFO. 7 7_DL ADN 5 3 11 7_WG MHUNTW 3,CQPRINT,CQ11 10 82#B LDX 4 ALOGLEN(3) 10 82Q= STO 4 WPERPTR(3) 17 8386 ADX 4 5 [REQ. LENGTH FOR CQ11 18 83L2 ALTLENG 3,4,SCQPRINT [LENGTHEN CQPRINT/CQ11 11 843W MHUNTW 3,ADATA,CSTORE 8 84FQ ADN 3 A1+2 11 84XL MHUNTW 2,CQPRINT,CQ11 8 85*G ADN 4 A1(2) 19 85RB SBX 4 5 [X4-> 1ST FREE WORD OF CQ11 7 869= SMO 5 7 86M6 MOVE 3 0 7 8752 SBN 3 2 18 87GW MOVE 3 2 [STORE PERIPHERAL COUNTS 5 87YQ XCODNOC 10 88BL MFREEW ADATA,CSTORE 10 88SG ACROSS HLSREAD,30 4 89NL #END 8 ____ ...55107475000100000000