(George Source)
Macros used: BXE, CLOSE, DELETE, ENDCOM, ERROR, FREECORE, FREEPER, GEOERR, GSCAN, HUNTW, MENDAREA, MFREE, MHUNTW, NBREAKIN, OPEN, SEGENTRY, SETNCORE, SIX, SPARANOX, STEP, UNIFREE
22FL #OPT K0SPUNLOAD=0 22^= #LIS K0SPUNLOAD>K0LIBRARY>K0ALLGEO>K0COMMAND 23DW #SEG SPUNLOAD8 [LEN WAGSTAFF 23NN ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983. 23YG 8HSPUNLOAD 24D6 # THIS SEGMENT DEALS WITH THE UNLOADING OF SLOW 24XQ # PERIPHERALS(LOCAL OR REMOTE). 25CB # ON ENTRY THE CPAT IS FOLLOWED BY A STRING OF CPAR/JSCE BLOCKS WHIC 25X2 # CONTAIN DESCRIPTIONS OF SLOW PERIPHERALS TO BE UNLOADED.INFORMATIO 26BL # IN EACH CPAR/JSCE BLOCK IS ANALYSED.IF PERIPHRAL LOCAL A SEARCH IS 26W= # MADE IN SYSTEM.DOCUMENT.IF RECORD FOUND THEN IT IS 27*W # DELETED AND THE PERIPHERAL IS FREED.IF NOT A SEARCH 27TG # IS MADE THROUGH THE SLOW QUEUE FOR A CPAT IN APROPRIATE 28*6 # WAITING STYLE.IF REMOTE PERIPHERAL THEN SYSTEM.DOCUMENT 28SQ # IS NOT SEARCHED. 29#B SEGENTRY K1SPUNLOAD,Z1SPUNLOAD 29S2 PARAS STOZ 6 2=?L SBX 7 FX1 2=DS MHUNTW 3,CPAR,JSCE [LOCATE CPAR:JSCE BLOCK 2=L2 LDX 5 JSCEQ(3) [PARAM NO WORD 2=R8 FREECORE 3 [FREE BLOCK 2=YB SRL 5 12 [ISOLATE PARAM NO 2?5J SPARANOX 5,6 [REACCESS PARAM 2?=W ADX 7 FX1 2?QG EXIT 7 0 2#=6 SPNAME +10 2#PQ 12HSYSTEM 2*9B 12HDOCUMENT 2*P2 +0 2B8L +1 2BN= 4HB1 2C7W SIX +6 2CMG X12 #12 2D76 X21 #21 2DLQ X22 #22 2F6B X24 #24 2FL2 XHDD 4HHDDR 2G5L X44 #44 2GK= X40 +IWTDEST 2H4W #SKI IPL 2HJG XIPL +IPLJOBFIN 2J46 Z1SPUNLOAD 2JHQ R2 HUNTW 3,CPAR,JSCE 2K3B BNG 3 R1 [IF NOT EXISTENT - ENDCOM 2KH2 LDCH 0 JSCEB(3) 2L2L SRL 0 3 2LG= BNZ 0 STOP1 [J. TO STOP1 IF PERIPHERAL NOT 2L^W # [LOCAL 2MFG # [LOCAL PERIPHERAL 2M^6 LDEX 4 JSCEA(3) [GEO NO O E LOCAL PERIPHERAL 2NDQ STO 4 AWORK1(2) 2NYB STOZ AWORK4(2) [0 FOR LOCAL 2PD2 S20 2PXL SETNCORE 10,3,FILE,FABSNB 2QC= ADN 3 A1 2QWW LDN 2 SPNAME(1) 2RBG MOVE 2 10 2RW6 OPEN ZBRKERR,GENERAL 2S*Q MFREE FILE,FABSNB [FREE BLOCK 2STB Z20 STEP 2T*2 BZE 3 STOP 2TSL LDX 0 1(3) 2W#= BZE 0 Z20 2WRW TXU 0 XHDD(1) [MAG TAPE RECORD 2X?G BCC Z20 2X*# Z10 2Y8G ADX 3 0(3) [X3 NOW CONTAINS ADDRESS OF 2Y=Q SBN 3 1 [LAST WORD IN THE BLOCK 2YQB # [2ND PERIPHERAL WORD 2^=2 LDEX 6 0(3) [GEOG. NO. 2^PL TXU 6 4 329= BCS Z20 [JUMP IF GEOG. NO. NOT ONE 32NW # [REQUIRED 338G DELETE [DELETE RECORD 33N6 CLOSE 347Q XFREE 34MB HUNTW 3,CPAR,JSCE 3572 LDX 0 JSCEP(3) [DEVICE LIST POINTER 35LL STO 0 CPPTR(2) 366= FREEPER [FREE LOCAL PERIPHERAL 36KW BRN TEND 375G STOP1 [NOT LOCAL 37K6 LDN 0 1 384Q STO 0 AWORK4(2) 38JB LDCH 0 JSCEB(3) 3942 SRC 0 4 39HL BPZ 0 W1W [J IF DEVICE ON 7900 ELSE DEVICE ON 3=3= # [7007 3=GW LDX 6 JSCEA(3) [BAS.DEV.TYPE,TERMINAL IDE,INTERFACE 3?2G STO 6 AWORK2(2) [NUMBER 3?G6 BRN STOP2 3?^Q W1W LDX 0 JSCEA(3) 3#FB ANDN 0 #7777 3#^2 STO 0 AWORK2(2) [IDENTIFIER 3*DL BRN STOP2 3*Y= STOP CLOSE 3BCW STOP2 LDN 7 FLOWQ 3BXG LDX 3 FLOWQ 3CC6 BRN TTT 3CWQ SSS LDX 3 CHAINADD(3) 3DBB TTT TXU 3 7 3DW2 BCC XEND 3F*L SBN 3 CHAINADD [GET BLOCK DATUM 3FFH LDCH 6 ATYPE(3) [CHECK BLOCK TYPE 3FKD SBN 6 CPAT/64 3FP* BNZ 6 SSS [NOT A CPAT 3FT= LDCH 0 JSOURCE1(3) [BASIC TYPE 3G#W SBN 0 #77 [J IF CONSOLE 3GSG BZE 0 SSS 3H#6 LDX 0 AWORK4(2) 3HRQ BNZ 0 W2W [J. IF NOT LOCAL 3J?B # [LOCAL PERIPHERAL 3JR2 LDEX 0 JSOURCE1(3) 3K=L BZE 0 SSS 3KQ= SBX 0 AWORK1(2) 3L9W BNZ 0 SSS 3LPG BRN W4W [CORRECT GEOG. NO. 3M96 W2W [REMOTE PERIPHERAL 3MNQ STOZ 5 [CORRECT GEOG. NO. 3N8B LDX 6 JSOURCE2(3) 3NN2 BPZ 6 SSS 3NT8P...#SKI JSKI04<1$1 3P2BP...( 3P7L SLL 56 3 3PM= SBN 5 6 3PR7P...) 3PX4P...#SKI JSKI04 [COMMAND ISSUERS 3Q2^P...( 3Q6WP... SLL 56 2 3Q=RP... SBN 5 3 3QBNP...) 3QGK BZE 5 W3W [J. IF IPB OR CI 3QLG LDX 5 JSOURCE1(3) [7007 3R66 ERX 5 AWORK2(2) [COMPARE 3 LEAST SIGN CHS 3RKQ BNZ 5 SSS 3S5B BRN W4W [CORRECT INTERFACE NO AND TERM. 3SK2 W3W LDX 0 JSOURCE1(3) 3T4L ANDN 0 #7777 3TJ= SBX 0 AWORK2(2) 3W3W BNZ 0 SSS 3WHG W4W LDEX 6 ATYPE(3) 3YG2 TXU 6 X44(1) 3Y^L BCC XMEET [WAITING ON JOBLIMIT 3^F= TXU 6 SIX(1) [WAITING FOR FILE TO BECOME 3^YW BCC XMEET [AVAILABLE 42DG TXU 6 X12(1) [FILE TO BE ERASED 42Y6 BCC XMEET 43CQ TXU 6 X21(1) [BS JAM TO BE CLEARED 43XB BCC XMEET 44C2 TXU 6 X24(1) [FILE TO BE RETRIEVED 44WL BCC XMEET 45B= TXU 6 X40(1) [GDR TO FREE BS BLOCK 45TW BCC XMEET 46*G #SKI IPL 46T6 BXE 6 XIPL(1),XMEET [7600 JOB LIMIT 47#Q TXU 6 X22(1) [DUMPER TO FINISH 47SB BCS SEND [DUMPING 48#2 XMEET LDX 6 JOBNO(3) 48RL GSCAN JSOURCE1(3),UNLOADED,3 48T* #UNS ENBREAKIN 48X4 ( 48YR NBREAKIN 3,9,SEND [BREAK-IN ON CPA 492G [IF BREAK-IN REJECTED,GO TO SEND 4949 ) 495Y #UNS ENBREAKIN 497M #SKI 499B ( 49?= NBREAKIN 3,9 [BRK-IN ON CPA 49QW BRN SEND 4=2N ) 4==G TEND HUNTW 3,CPAR,JSCE 4=Q6 FREECORE 3 [FREE THE ANALYSED CPAR/JSCE BLOCK 4?9Q BRN R2 [AND TRY TO FIND ANOTHER IF IT EXISTS 4?PB XCANT GEOERR 1,CANTWAKE 4#92 XEND 4#NL SEND CALL 7 PARAS 4*8= ERROR JRES [PERIPHERAL NOT IN REQUIRED STATE 4*GM UNIFREE [FREE CPB,CUNI BLOCK 4*T4 BRN R2 4B7G ZBRKERR 4BM6 GEOERR 1,BREAKIN 4C6Q NODEV 4CLB GEOERR 1,NODEVLIS 4D62 R1 ENDCOM 4DKL MENDAREA 20,K99SPUNLOAD 4F5= #END ^^^^ ...31473100000100000000