HLSREAD867

(George Source)

Macros used: ACROSS, BACKREAD, BITDEFS, BS, BXE, BXGE, BXL, BXU, CHAIN, CHECKB, CLEAR, COOR1, DFLOAD, FADDRESS, FCAJO, FINDJOBQ, FINDPEREC, FINMOVE, FOUTMOVE, FREECORE, FSHACCWK, FSHCODE, FSHENTRY, FSHSKIP, HLSAV, HUNTW, ILLEGAL, JALLOC, JBACK, JBC, JBS, JENVNOT, JMT, JOBLOCK, JONL, JSWIN, JWRONG, LADDP, LGEOG, LINK, LJOBNO, LPROP, MFREEW, MHUNTW, OLPFIN, OUTRVCT, PAIR, RELOFP, REPEAT, SEG, SEGENTRY, SETNCORE, SETUPCORE, SFUB, SHLSQ, TOPCA, TRACE, TRANSBEG, UNPLUG, VFREEW, WRONG, XCLEAR

HLSREAD867.txt
22FL    #LIS  K0HLSREAD>K0HLS>K0OBJPROG>K0ALLGEO>K0GREATGEO 
22R2 ...      SEG      HLSREAD,867,SECTION CENT,,G402   
234B ...[   
23*Q ...[  (C)  COPYRIGHT INTERNATIONAL COMPUTERS LTD   1982
23M6 ...[   
23YG    # THIS SEGMENT DEALS WITH SPECIAL PERI EXTRACODES ISSUED BY HIGH LEVEL  
24D6    # SCHEDULER AND RELATED SYSTEM SUBJECT PROGRAM. THE PERIS ARE READING   
24XQ    # INFORMATION SUCH AS JOB BLOCKS INTO THE SUBJECT PROGRAM AREA. THE 
25CB    # ACTIVITIES MAKING USE OF THESE ROUTINES ARE SET UP BY THE ACCESS  
25X2    # COMMAND   
26BL    #     ENTRY POINTS  
26W=    #   
27*W          SEGENTRY K1HLSREAD,ZK1       [HLSACTIVE CHANNEL   
27TG          SEGENTRY K2HLSREAD,ZK2       [HLSPASSIVE CHANNEL  
28*6          SEGENTRY K3HLSREAD,REPEAT    [RETURN FROM SCHEDJOB
28SQ          SEGENTRY K4HLSREAD,ZK4       [RESVIOL ILLEGAL 
29#B          SEGENTRY K5HLSREAD,ZK5       [ILLINS ILLEGAL  
29S2          SEGENTRY K7HLSREAD,ZK7       [READ JOBQ   
2=?L          SEGENTRY K8HLSREAD,ZK8       [NEXT HLSQ   
2=R=          SEGENTRY K9HLSREAD,ZK9       [NEXT JOBQ   
2?=W          SEGENTRY K10HLSREAD,ZK10     [INSTPARA
2?QG          SEGENTRY K11HLSREAD,ZK11     [TEMPQ   
2#=6          SEGENTRY K12HLSREAD,ZK12     [PERIPHERAL LIST 
2#PQ          SEGENTRY K13HLSREAD,ZK13     [GEORGE CORE 
2*9B          SEGENTRY K14HLSREAD,ZK14     [SCHEDJOB XCODE  
2*P2          SEGENTRY K15HLSREAD,ZK15     [READ HLSQ   
2B8L          SEGENTRY K30HLSREAD,ZK30     [RETURN FROM WS XCODE
2BDD ...      FSHENTRY K31HLSREAD,ZK31,,ZK31
2BN=    #DEF  RVMODE = #114 
2C7W    XMODE                              [                       MODE 
2CMG    #HAL           5,P1-XMODE          [READ HLSQ              #100 
2D76    #HAL           5,P11-XMODE         [READ JOBQ              #101 
2DLQ    #HAL           5,P60-XMODE         [READ PERIPHERAL LIST   #102 
2F6B    #HAL           4,P30R-XMODE        [READ NEXT HLSQ         #103 
2FL2    #HAL           4,P40R-XMODE        [READ NEXT JOBQ         #104 
2G5L    #HAL           4,P50R-XMODE        [READ IPS               #105 
2GK=    #HAL           #4004,S6-XMODE      [READ TEMPQ             #106 
2H4W    #HAL           4,ZM107-XMODE       [READ TEMPQ (PASSIVE)   #107 
2HJG    #HAL           5,X25K-XMODE        [READ GEORGECORE        #110 
2J46    #HAL           2,ZM111-XMODE       [REWIND HLSQ            #111 
2JHQ    #HAL           2,ZM112-XMODE       [REWIND JOBQ            #112 
2K3B    #HAL           #4004,ZM113-XMODE   [SCHEDJOB XCODE         #113 
2KH2    #HAL           3,ZM114-XMODE       [RETRIEVE XCODE         #114 
2L2L    #HAL           5,ZM115-XMODE       [WHATSTATE XCODE        #115 
2LG=    XMODEND 
2LJ8 ...#UNS  G402  
2LL6 ...(   
2LN4 ...#HAL           5,XMNB-XMODE        [MONITOR BLOCK          #170 
2LQ2 ...#HAL           5,XPRG-XMODE        [CORE IMAGE             #171 
2LRY ...XDSKMODEND  
2LTW ...TDSKMODEND     #170+XDSKMODEND-XMODEND  
2LXS ...)   
2L^W    TMODEND        #100+XMODEND-XMODE  [UPPER LIMIT OF MODES
2MFG    SA1            +1   
2M^6    SA3            +3   
2NDQ    MODMASK        #77777   
2NYB    XGEOG          #40000077
2PD2    X100           #100 
2PXL    X101           #101 
2QC=    #UNS           ECS  
2QWW    #SKI
2RBG    RECL           +10               [MAX LENGTH OF SCHED CONTROL RECORD
2RW6    #UNS           ECS  
2S*Q    RECL                     +12       [MAX LENGTH OF SCHED CONTROL RECORD  
2STB    SCHMAX         +8                  [LOWER LIMIT OF ILLEG. INDEX NO. 
2T*2    SAPERLEN       +6                  [LENGTH OF PERIPHERAL ENTRY TRANS-   
2TSL                                       [FERRED TO PROGRAM   
2W#=    XCLOSE      #1000   
2WRW    PLINK1  
2X?G         PAIR     HLSREAD,4 
2XR6    PLINK2  
2Y=Q          PAIR     HLSREAD,5
2YQB          BITDEFS  ATYPE,23,PRMARK     [PASSIVE READ INDICATOR  
2^=2    [ TABLE OF MAXIMUM LENGTHS OF CONTROL RECORDS   
32NW    SCHLEN                 +12         [0 STARTJOB  
338G                   +12                 [1 RESET 
375G                   +1                  [2 WAIT  
37K6                   +2                  [3 STOPJOB   
384Q                   +2                  [4 SAVEJOB   
38JB                   +512                [5 JOBWAIT   
39HL                   +12                 [6 DEWELL
3?G6                   +4                  [7 SWITCH
3?^Q    RCHECKA 
3#FB          LDX   1  FX1  
3#^2          SBX   3  FX1  
3*DL          CHECKB   4,5,RILLEGAL,APETADDR(2),W,WORDA,,,REPEAT
3*Y=    WORDA   
3BCW          ADX   3  FX1  
3BXG          EXIT  3  0
3CC6
3CWQ    [ THE ROUTINE BELOW MOVES OUT THE WORDS2,3,4 OF THE CONTROL AREA
3DBB    [ INTO ACOMMUNE1-3  
3DW2    XFOUTMOVE   
3F*L          LDN   3  ACOMMUNE1(2)        [X3->DESTINATION FOR FOUTMOVE
3FT=          LDX   1  APETADDR(2)  
3G#W          LDX   2  EVENT2(2)
3GSG          LDN   4  3
3H#6          ADN   2  2
3HRQ          FOUTMOVE 1,2,3,4,HLOCK1,,X
3J?B          LDX   1  FX1  
3JR2          LDX   2  FX2  
3K=L          EXIT  6  0
3KQ=    [     ROUTINE TO COPY DATA FROM SUBJECT PROGRAM 
3L9W    [ ON ENTRY     X2-> ADDR. OF PROGRAM DATA   
3LPG    [              X3-> ADDR. OF OUTPUT BUFFER  
3M96    [              X4 = LENGTH OF DATA  
3MNQ    [              X6 - LINK ADDRESS
3N8B    [              X1=FX1,X2=FX2,X3 DESTROYED ON EXIT   
3NN2    XFOUTMOVE2  
3P7L          SMO      FX2  
3PM=          LDX   1  APETADDR 
3Q6W          FOUTMOVE 1,2,3,4,HLOCK2   
3QLG          LDX   1  FX1  
3R66          LDX   2  FX2  
3RKQ          EXIT  6  0
3S5B    [   
3SK2    XCLEAR  
3T4L          SBX   7  FX1  
3TJ=          CLEAR    APETADDR(2),0,HLOCK2 
3W3W          ADX   7  FX1  
3WHG          EXIT  7  0
3X36    #   
3XGQ    #   
3Y2B    # NOTE:- X5 WILL HOLD LENGTH OF BUFFER  
3YG2    #        X7 WILL HOLD ADDITIONAL INFORMATION
3Y^L    #        X4 WILL HOLD ADDRESS OF BUFFER : THROUGH SEG AFTER CHECKB  
3^F=    #   
3^YW
42DG    [ THE ROUTINE BELOW DEALS WITH THE HLSACTIVE AND HLSPASSIVE 
42Y6    [ CHANNELS. IT HAS THE FOLLOWING CONTROL AREA:  
43CQ    [     WORD0    52/MODE  
43XB    [     WORD1    0 -THE REPLY WORD
44C2    [*    WORD2    NO. OF WORDS IN PROGRAMS BUFFER  
44WL    [     WORD3    START ADDR. OF PROGRAMS BUFFER   
45B=    [     WORD4    ADDITIONAL INFORMATION   
45TW    [*    THE RV XCODE HOLD JOB NO. IN WORD2
46*G    ZK1   LDN   6  0                   [HLSACTIVE CHANNEL INDICATOR 
46T6          BRN      ZK2A 
47#Q    ZK2   LDN   6  1                   [HLSPASSIVE CHANNEL INDICATOR
47SB    ZK2A  STOZ     AWORK1(2)           [HLSQ MARKER 
48#2          STOZ     AWORK2(2)           [JOBQ MARKER 
48RL          STO   6  AWORK4(2)           [SAVE CHANNEL INDICATOR  
49?=    ZK3                                [RETURN FROM SCHEDJOB
49QW          LDX   0  EVENT4(2)
4==G          ANDN  0  #7777               [GET MODE
4=Q6          BXE   0  XCLOSE(1),XCL       [J IF CLOSE CHANNEL  
4=X# ...#UNS  G402  
4?4G ...#SKI
4?9Q          BXGE  0  TMODEND(1),SILLEGAL [J IF ILLEGAL MODE   
4??7 ...#UNS  G402  
4?#J ...(   
4?*^ ...      BXL   0  TMODEND(1),ZDSK1    [NORMAL MODE 
4?CB ...      BXGE  0  TDSKMODEND(1),SILLEGAL   
4?DR ...      SBN   0  #170 
4?G8 ...      BNG   0  SILLEGAL            [NOT SPECIAL MODE EITHER 
4?HK ...      ADN   0  XMODEND-XMODE       [CREATE POINTER  
4?K2 ...      BRN      ZDSK2               [JOIN NORMAL CODE
4?LC ...ZDSK1   
4?MS ...)   
4?PB          SBN   0  #100 
4#92          BNG   0  SILLEGAL            [J IF ILLEGAL MODE   
4#B8 ...#UNS  G402  
4#HB ...ZDSK2   
4#NL          SMO      0
4*8=          LDXC  5  XMODE(1) 
4*MW          BCC      ZK1C                [J IF PASSIVE XCODE  
4B7G          LDX   6  AWORK4(2)
4BM6          BNZ   6  SILLEGAL            [J IF HLSPASSIVE CHANNEL 
4C6Q    ZK1C  SRL   5  12                  [LENGTH OF PERI CONTROL AREA 
4CLB          BRN      RD2  
4D62    ZK1D  LDEX  0  EVENT4(2)           [GET MODE
4D89 ...#UNS  G402  
4D=D ...(   
4D#M ...      BXL   0  TMODEND(1),ZDSK3    [NORMAL MODE 
4DBW ...      SBN   0  #70+XMODE-XMODEND   [MODIFY POINTER  
4DF5 ...ZDSK3   
4DH# ...)   
4DKL          SBN   0  #100 
4F5=          SMO      0
4FJW          LDX   0  XMODE(1)            [MODE'S ENTRY IN TABLE   
4G4G          ANDN  0  #7777
4GJ6          SMO      0                   [J TO APPROPRIATE... 
4H3Q          BRN      XMODE               [  ...    MODE ROUTINE   
4H3X ...#UNS  G402  
4H44 ...(   
4H49 ...XG402LANG      4HB1B0   
4H4B ...#   
4H4H ...XPRG
4H4N ...      JOBLOCK  7,3  
4H4T ...      BNG   3  R1   
4H52 ...      FSHCODE  A,XPRGA  
4H57 ...(   
4H5# ...      JBC      XPRGA,3,JBFSHALIEN  [JIF RUNNING ON MASTER   
4H5F ...      LDN   0  9                   [SET OPTION "9"  
4H5L ...      CALL  1  XSWOPMC             [GET DATA FROM OTHER MC. 
4H5R ...      BRN      P15  
4H5Y ...XPRGA   
4H65 ...)   
4H6= ...      LDN   1  AJBRING(3)   
4H6C ...      BXE   1  AJBRING(3),R1
4H6J ...      LDX   1  AJBRING(3)          [PTR TO APET/CPAT
4H6P ...      SBN   1  JOBRING             [TO BEGINING OF BLOCK
4H6W ...      LDCH  0  ATYPE(1) 
4H73 ...      SBN   0  APET/64  
4H78 ...      BNZ   0  R1                  [J NOT APET  
4H7* ...      LDX   3  1
4H7G ...XPRG2   
4H7M ...      LDX   3  FPTR(3)  
4H7S ...      LDCH  0  ATYPE(3) 
4H7^ ...      SBN   0  AOBJPROG/64  
4H86 ...      BZE   0  XPRG1               [J IF PROG BLOCK 
4H8? ...      SBN   0  #6000-AOBJPROG/64
4H8D ...      BNG   0  XPRG2               [J UNLESS ACTY BLOCK 
4H8K ...      BRN      R1   
4H8Q ...XPRG1   
4H8X ...      ADN   3  A1D-A1              [PROG START ADDR 
4H94 ...      LDX   0  ALIMIT(1)
4H99 ...      BRN      P16  
4H9B ...#   
4H9H ...XMNB
4H9N ...      JOBLOCK  7,3  
4H9T ...      BNG   3  R1                  [JOB NOT FOUND   
4H=2 ...      FSHCODE  A,XMNBA  
4H=7 ...(   
4H=# ...      JBC      XMNBA,3,JBFSHALIEN  [JIF RUNNING ON MASTER   
4H=F ...      LDN   0  10                  [SET OPTION "10" 
4H=L ...      CALL  1  XSWOPMC             [GET DATA FROM OTHER MC. 
4H=R ...      BRN      P15                 [DATA TRANSFERED 
4H=Y ...#              BLOCK SWAPPED OUT - READ DIRECTLY
4H?5 ...      LDX   2  A1(3)               [RESIDENCE NO.   
4H?= ...      LDX   6  A1+1(3)             [BLOCK NUMBER
4H?C ...      LDX   7  A1+2(3)             ["CMOD"  
4H?J ...      BRN      XDSKH               [REJOIN NORMAL CODE  
4H?P ...XMNBA   
4H?W ...)   
4H#3 ...      LDN   1  AJBRING(3)   
4H#8 ...      BXE   1  AJBRING(3),R1
4H#* ...      LDX   1  AJBRING+1(3)        [CPAT
4H#G ...      LDX   2  FILERING-JOBRING(1)  
4H#M ...      SBN   2  FILERING-JOBRING(1)  
4H#S ...      BZE   2  XNOTF               [FILERING EMPTY  
4H#^ ...      LDX   1  FILERING+1-JOBRING(1)
4H*6 ...      ADX   1  2(1)                [STACK   
4H*? ...      LDX   2  BPTR(1)             [FCB 
4H*D ...      LDX   7  FLAN(2)  
4H*K ...      SMO      FX1  
4H*Q ...      BXU   7  XG402LANG,XNOTF     [NOT MONITORING FILE 
4H*X ...      LDX   7  CMOD(2)  
4HB4 ...      BNG   7  XNOTF               [NOT IN USE  
4HB9 ...      LDX   3  FBLMOD(2)
4HBB ...      LDN   6  BSPRE-A1+1   
4HBH ...      BXE   3  6,XNOTF             [NOT IN USE  
4HBN ...      SMO      3
4HBT ...      LDX   6  A1-1(2)             [CURRENT BLOCK NUMBER
4HC2 ...      SFUB     1,6,3,XDSKF         [FIND BLOCK  
4HC7 ...      BRN      XDSKG
4HC# ...#              READ BLOCK INTO STORE
4HCF ...XDSKF LDX   2  BSPRE(2)            [RESIDENCE NO.   
4HCL ...XDSKH LDN   1  512                 [TRANSFER LENGTH 
4HCR ...      BACKREAD ,1,XNOTF,2,EX6      [READ BLOCK INTO STORE   
4HCY ...      SMO      FX2  
4HD5 ...      LDX   3  FPTR                [ADDR.OF READ BLOCK  
4HD= ...XDSKG LDX   0  7                   [GET "CMOD"  
4HDC ...      SMO      0
4HDJ ...      ADX   0  0(3)                [ADD IN LAST RECORD  
4HDP ...      SBN   0  A1                  [LENGTH TO TRANSFER  
4HDW ...      LDX   2  FX2  
4HF3 ...      BRN      P16  
4HF8 ...XNOTF LDX   2  FX2  
4HF* ...      BRN      R1                  [BLOCK NOT FOUND 
4HFG ...)   
4HHB    # THE ROUTINE BELOW DEALS WITH THE READ HLSO ENTRY EXTRACODE
4J32    #   IT HAS THE FOLLOWING CONTROL AREA:  
4JGL    #   WORD0      6/0  
4K2=    #   WORD1      0-THE REPLY WORD 
4KFW    #   WORD2      NO. OF WORDS TO BE READ  
4K^G    #   WORD3      START ADDRESS OF PROGRAM INPUT AREA  
4LF6    #   WORD4      JOB ENTRY OF HLSQ JOBENTRY TO BE READ
4LYQ    #   
4MDB    ZK15
4MY2    # ON ENTRY,EXEC1 POINTS TO PERI CONTROL AREA IN SUBJECT PROGRAM 
4NCL
4NX=          LDN   6  2                   [HLS READ EXTRACODE ROUTINE N0.0 
4PBW          BRN      READOUT         [READ OUT WORD2-WORD4 OF PERI CONTROL ARE
4PWG                                   [ CA1-CA3 OF CURRENT ACTIVITY BLOCK (OLPA
4QB6    # RETURN (VIA SWITCH TABLE) & CONTINUE  
4QTQ    # LOOK DOWN HLSQ FOR BLOCK WITH SPECIFIED JOBNO.
4R*B    #   
4RT2    P1  
4S#L    #   
4SS=          FSHCODE  B,XB1
4T?W    (   
4TRG    #     FOR SHARED FILESTORE, WE CAN ONLY SEARCH THE HLSQ ON 'A'  
4W?6    #   
4WQQ          LDN   0  0                   [SET OPTION '0'  
4X=B          CALL  1  XSWOPMC             [& SWOP MACHINES 
4XQ2    #   
4Y9L    XB1 
4YP=    )   
4^8W          FSHSKIP  B,XB2
4^NG    (   
5286          SHLSQ    7,3,R1              [X3 -> HLSQ BLOCK
52MQ    #   
537B    XB2 
53M2    )   
546L          LDN   0  AHLS                [ONLY READ AHLS WORDS OF LONG HLSQ BL
54L=          BRN      P16  
555W    # THE ROUTINE BELOW DEALS WITH THE READ JOB BLOCK EXTRACODE.
55KG    #   IT HAS THE FOLLOWING CONTROL AREA:  
5656    #   WORD0      6/0  
56JQ    #   WORD1      0 -THE REPLY WORD
574B    #   WORD2      NO. OF WORDS TO BE READ  
57J2    #   WORD3      START ADDRESS OF PROGRAM INPUT AREA  
583L    #   WORD4      JOB NUMBER OF JOB BLOCK TO BE READ   
58H=    ZK7 
592W    # ON ENTRY,EXEC1 CONTAINS PTR TO PERI CONTROL AREA  
59GG          LDN   6  3                   [HLSREAD EXTRACODE ROUTINE NO.1  
5=26          BRN      READOUT         [READ OUT WORD2-WORD4 OF PERI CONTROL ARE
5=FQ                                   [ CA1-CA3 OF CURRENT ACTIVITY BLOCK (OLPA
5=^B    P11 
5?F2          JOBLOCK  7,3                 [X3 -> JOB BLOCK 
5?YL          FSHCODE  AORB 
5#D=    (   
5#XW    #     FOR SHARED FILESTORE WE HAVE EXTRA CHECKS TO MAKE HERE
5*CG    #   
5*X6          FSHCODE  A,XA1
5BBQ    (   
5BWB          BNG   3  R1                  [ERROR IF JOB BLOCK NOT FOUND ON 'A' 
5CB2          JBC      Y1,3,JBFSHALIEN     [JIF JOB NOT ALIEN IN 'A'
5CTL    #   
5D*=    XA1 
5DSW    )   
5F#G          FSHCODE  B,XB3
5FS6    (   
5G?Q          BNG   3  XB3                 [JIF THE JOB DOES NOT EXIST ON 'B'   
5GRB    #   
5H?2    #     WE COPY JOB BLOCKS ON 'B' SO THAT WE CAN SET A BIT IN THEM
5HQL    #     INDICATING THAT THE JOB IS 'AT HOME' IN 'B'   
5J==    #   
5JPW          CALL  6  SCOPYBLOCK          [COPY THE BLOCK AND SET 'IN-B' BIT   
5K9G          BRN      P11                 [JIF COPY HAS FAILED 
5KP6          BRN      Y1                  [JIF COPY WAS OK!!!  
5L8Q    #   
5LNB    XB3 
5M82    )   
5MML    #   
5N7=    #     JOB BLOCK MUST BE FETCHED/LOOKED FOR ON THE OTHER MACHINE 
5NLW    #   
5P6G          LDN   0  1                   [SET OPTION '1'  
5PL6          CALL  1  XSWOPMC             [GO TO OTHER MACHINE 
5Q5Q    #   
5QKB    Y1  
5R52    )   
5RJL          FSHSKIP   
5S4=          BNG   3  R1                  [J. IF JOBLOCK CANNOT BE FOUND   
5SHW          LDX   0  ALOGLEN(3)   
5T3G          SBN   0  JOBNUM-A1
5TH6          ADN   3  JOBNUM-A1
5W2Q          BRN      P16  
5WGB    P15   LDX   0  ALOGLEN(3)   
5X22    P16   LDN   7  0
5XFL          LDX   6  5                   [SAVE BUFFER SIZE
5X^=          LDX   5  0
5YDW          BXGE  6  5,P17             [J IF BUFFER>DATA REQD.
5YYG          LDX   5  6
5^D6    P16A  LDCT  7  #200 
5^XQ    P17   ADN   3  A1   
62CB    P17A  [LABEL FOR INSTPARA EXTRACODE WHICH IS NOT MOVING THE CONTENTS OF 
62X2          BZE   5  P17C              [J IF NO DATA TO BE MOVED  
63BL          LDX   1  APETADDR(2)         [X1 -> APET  
63W=          LDX   6  4                   [SAVE ADDR. OF TRANSFER  
64*W          FINMOVE  1,4,3,5,HLOCK2      [MOVE -> PROGRAM 
64TG    P17C  LDXC  4  AWORK4(2)
65*6          BCC      P17B                [J IF NOT SPECIAL ACTIVE TEMPQ   
65SQ          STO   4  AWORK4(2)
66#B    P17D
66S2          LDX   1  BHTEMP              [X1 -> BLOCK TO BE FREED 
67?L          FREECORE 1                   [FREE TEMPQ BLOCK
67R=    P17B
68=W          ADX   5  AWORK3(2)           [END OF TRANS ADDRESS AS REPLY   
68QG          ORX   5  7                   [SET OVERFLOW BIT
69=6    P17R  LDX   3  EVENT2(2)
69PQ          ADN   3  1                   [X3 -> REPLY WORD
6=9B          LDX   1  APETADDR(2)         [X1 -> PCA   
6=P2          FADDRESS 1,3,HLOCK1          [PTR -> REPLY WORD IN X3 
6?8L          STO   5  0(3)                [SET REPLY   
6?N=          VFREEW   ADATA,APLIST 
6#7W          VFREEW   CQPRINT,CQ11 
6#*4 ...#UNS  G402  
6#G= ...      VFREEW   BSTB,BREAD   
6#MG          FSHCODE  AORB 
6*76          VFREEW   FSH,HLSTRANSFER  
6*LQ                                       [ -TRANSFERRED-INTO-INPUT AREA INTO R
6B6B    #SKIP K6HLSREAD>199-199 
6BL2          TRACE    6,OLPFINX6   
6C5L          OLPFIN   APETADDR(2)                   [END.  RETURN TO SUBJ-PROG 
6CK=    P17T  SMO      AWORK4(2)
6D4W          BRN      REENTRYPT
6DJG
6F46
6FHQ    # THE ROUTINE BELOW DEALS WITH THE'READ NEXT HLSQ ENTRY'EXTRACODE   
6G3B    [  IT HAS THE FOLLOWING CONTROL AREA:   
6GH2    [     WORD0 
6H2L    [     WORD1    0-THE REPLY WORD 
6HG=    [     WORD2    NO.OF WORDS TO BE READ   
6H^W    [     WORD3    START ADDRESS IF PROGRAM INPUT AREA  
6JFG    [  ON ENTRY:EXEC1 POINTS TO PERI CONTROL AREA IN SUBJECT PROGRAM
6J^6    #   
6KDQ    #     THE'NEXT'HLSQ OR JOBQ BLOCK IS THAT BLOCK WHICH IMMEDIATELY FOLLOW
6KYB    #      BLOCK LAST ACCESSED BY THIS ROUTINE. 
6LD2    #     THE NUMBER OF LAST ONE READ IS KEPT IN AWORK1 (HLSQ) OR   
6LXL    #     AWORK2 (JOBQ). IF NO MORE FOUND SET ZERO AND NEXT 
6MC=    #     TIME WILL READ 1ST AGAIN  
6MWW    #     IF EITHER Q IS FOUND TO BE EMPTY THE REPLY WORD IN THE PERI CONTRO
6NBG    #      IS SET NEGATIVE  
6NW6    ZK8 
6P*Q          STOZ     AWORK1(2)
6PTB    P30                          [RE-ENTRY PT. FOR SUBSEQUENT PERIS 
6Q*2          LDN   6  4                   [THIS HLSREAD XCODE NO.2 
6QSL          LDN   5  4                   [SET X5=LENGTH OF *FR PERI CONTROL AR
6R#=          BRN      RD1                 [J.TO S/R TO CHECK THAT THE PERI CONT
6RRW                                       [ AREA AND THE INPUT AREA TO WHICH IT
6S?G                                       [ ARE BOTH  WITHIN THE SUBJ.PROG.S RE
6SR6    P30R
6T=Q    # RETURN (VIA SWITCH TABLE) & CONTINUE  
6TQB          FSHCODE  B,XB4
6W=2    (   
6WPL    #     FOR SHARED FILESTORE,WE MUST GO TO 'A' TO SEARCH THE HLSQ 
6X9=    #   
6XNW          LDN   0  2                   [SET OPTION '2'  
6Y8G          CALL  1  XSWOPMC             [& CHANGE TO THE 'A' MACHINE 
6YN6    #   
6^7Q    XB4 
6^MB    )   
7272          FSHSKIP  B,XB4A   
72LL    (   
736=          LDX   0  AWORK1(2)           [GET LAST NUMBER (CAN BE ZERO)   
73KW          STOZ     AWORK1(2)           [CLEAR, JUST IN CASE END REACHED 
745G    SOME  LDN   3  BHLSQ
74K6    TOUR  LDX   3  FPTR(3)  
754Q          TXU   3  CXHL 
75JB          BCC      R1                  [SET -VE REPLY IF END
7642    MIDQ  TXL   0  HLSJONO(3)   
76HL          BCC      TOUR 
773=          LDX   0  HLSJONO(3)   
77GW          STO   0  AWORK1(2)           [ONE READ AND STORE NEW NUMBER   
782G    #   
78G6    XB4A
78^Q    )   
79FB          LDN   0  AHLS                [ONLY READ AHLS WORDS OF LONG BLOCK  
79^2          BRN      P16  
7=DL
7=Y=
7?CW
7?XG    # THE ROUTINE BELOW DEALS WITH THE'READ NEXT JOBQ ENTRY'EXTRACODE   
7#C6
7#WQ    [  IT HAS THE FOLLOWING CONTROL AREA:   
7*BB    [     WORD0 
7*W2    [     WORD1    0-THE REPLY WORD 
7B*L    [     WORD2    NO.OF WORDS TO BE READ   
7BT=    [     WORD3    START ADDRESS IF PROGRAM INPUT AREA  
7C#W
7CSG    [  ON ENTRY:EXEC1 POINTS TO PERI CONTROL AREA IN SUBJECT PROGRAM
7D#6    #   
7DRQ    ZK9 
7F?B          STOZ     AWORK2(2)
7FR2    P40                          [RE-ENTRY PT. FOR SUBSEQUENT PERIS 
7G=L          LDN   6  5                   [THIS IS HLSREAD XCODE NO.3  
7GQ=          LDN   5  4                   [SET X5=LENGTH OF PERI CONTROL AREA  
7H9W          BRN      RD1                 [J.TO S/R TO CHECK THAT THE PERI CONT
7HPG                                       [ AREA AND THE INPUT AREA TO WHICH IT
7J96                                       [ ARE BOTH  WITHIN THE SUBJ.PROG.S RE
7JNQ    P40R
7K8B    # RETURN (VIA SWITCH TABLE) & CONTINUE  
7KN2          LDX   7  AWORK2(2)           [PICK UP LAST
7L7L          FSHSKIP   
7LM=          STOZ     AWORK2(2)           [CLEAR,JUST IN CASE END REACHED  
7M6W    PHEW  LDN   3  BJOBQ
7MLG    ROUND LDX   3  FPTR(3)  
7N66          TXU   3  CXJO 
7NKQ          FSHCODE  AORB 
7P5B          BCC      XENDQ               [JIF END OF QUEUE IS REACHED 
7PK2          FSHSKIP   
7Q4L          BCC      R1   
7QJ=    MIDJ  TXL   7  JOBNUM(3)
7R3W          BCC      ROUND               [J IF NOT THERE YET  
7RHG          FSHCODE  B,XB12   
7S36    (   
7SGQ    #     FOR SHARED FILESTORE IN THE 'B' MACHINE, WE CAN ACCEPT THE NEXT   
7T2B    #     JOB QUEUE BLOCK IF IT'S JOB NUMBER IS 'LAST'+1.  OTHERWISE, WE
7TG2    #     MUST GO TO 'A' AND SEARCH THERE.  
7T^L    #   
7WF=          ADN   7  1
7WYW          BXU   7  JOBNUM(3),Y6        [JIF JOB NUMBER IS NOT 'LAST'+1  
7XDG    #   
7XY6    #     WE MUST NOW COPY THE BLOCK AND SET A BIT TO INDICATE THAT THE 
7YCQ    #     JOB IS ACTUALLY IN 'B'
7YXB    #   
7^C2          CALL  6  SCOPYBLOCK          [COPY BLOCK AND SET 'IN-B' MARKER
7^WL          BRN      P40R                [ERROR IN COPY - START AGAIN!!   
82B=    #   
82TW    XB12
83*G    )   
83T6          FSHCODE  A,XA5
84#Q    (   
84SB    #     FOR SHARED FILESTORE IN THE 'A' MACHINE, WE MUST CHECK IF THE 
85#2    #     BLOCK WE HAVE FOUND IS FOR AN ALIEN JOB.  IF IT IS, WE GO TO 'B'  
85RL    #     TO GET UP-TO-DATE INFORMATION ABOUT THE JOB.  
86?=    #   
86QW          JBC      OK,3,JBFSHALIEN     [JIF NOT AN 'ALIEN' JOB  
87=G    #   
87Q6          LDX   0  JOBNUM(3)           [UPDATE 'LAST' JOB NUMBER TO REMEMBER
889Q          STO   0  AWORK2(2)           [WHERE WE HAVE GO TO 
88PB    #   
8992          LDN   0  8                   [SET OPTION '8'  
89NL          CALL  1  XSWOPMC             [AND TRANSFER TO 'B' MACHINE 
8=8=          BRN      P40R                [JOB NOT FOUND, SO REPEAT SEARCH HERE
8=MW    #   
8?7G    XA5 
8?M6    )   
8#6Q    OK    LDX   0  JOBNUM(3)
8#LB          STO   0  AWORK2(2)           [KEEP LAST NUMBER
8*62          LDX   0  ALOGLEN(3)   
8*KL          ADN   3  JOBNUM-A1
8B5=          SBN   0  JOBNUM-A1           [ADJUST PAST JOBRING ELEMENTS
8BJW          BRN      P16  
8C4G          FSHCODE  AORB 
8CJ6    (   
8D3Q    XENDQ   
8DHB    #   
8F32    #     END OF QUEUE PROCESSING IS DIFFERENT FOR SHARED FILESTORE 
8FGL    #   
8G2=          FSHCODE  A,XA4
8GFW    (   
8G^G    #     CLEAR LAST JOB NUMBER MARKER  
8HF6    #   
8HYQ          STOZ     AWORK2(2)
8JDB          BRN      R1   
8JY2    #   
8KCL    XA4 
8KX=    )   
8LBW          FSHCODE  B,XB5
8LWG    (   
8MB6    #     AT END OF QUEUE IN 'B' WE HAVE TO GO TO 'A' IN CASE THERE ARE 
8MTQ    #     OTHER JOBS THERE  
8N*B    #   
8NT2    Y6  
8P#L          LDN   0  3                   [SET OPTION '3'  
8PS=          CALL  1  XSWOPMC             [AND SWOP TO THE 'A' MACHINE 
8Q?W          BRN      P40R                ['B' M/C JOB FOUND, SO START AGAIN!! 
8QRG          BRN      OK                  [BLOCK SENT WITH DATA
8R?6    #   
8RQQ    #     WHEN THERE ARE NO MORE JOBS, THE RETURN TO THE LABEL 'R1' DIRECT  
8S=B    #   
8SQ2    XB5 
8T9L    )   
8TP=    )   
8W8W
8WNG
8X86    # THE ROUTINE BELOW DEALS WITH THE INSTPARA EXTRACODE.  
8XMQ    #     IF HAS THE FOLLOWING CONTROL AREA:
8Y7B    #     WORD0    50/0 
8YM2    #     WORD1    0-THE REPLY WORD 
8^6L    #     WORD2    NO.OF WORDS TO BE READ   
8^L=    #     WORD3    PROGRAM ADDRESS OF INPUT AREA
925W    #   
92KG    ZK10
9356          LDN   6  6                   [THIS IS HLSREAD EXTRACODE NO.4  
93JQ    P50   LDN   5  4                   [SET X5= LENGTH OF *FR PERI CONTROL A
944B          BRN      RD1                 [J.TO S/R TO CHECK THAT THE PERI CONT
94J2                                       [ AND THE INPUT AREA TO WHICH IT REFE
953L                                       [ BOTH WITHIN THE SUBJ.PROGRAM'S RESE
95H=    P50R                               [RETURN VIA SWITCH TABLE 
962W    #UNS  IPEXTENSION+1*IPEXTENSION 
96GG          LDX   6  5                   [REMEMBER NUMBER OF IPS REQUESTED
9726          LDN   0  INSTPARL            [ = LENGTH OF INSTALLATION PARAMETER 
97FQ          TXL   0  5
97^B          BCC      P51                 [J IF MORE IPS THAN REQUESTED
98F2          LDX   5  0                   [STORE NO OF IPS=LENGTH OF TRANS 
98YL    P51   LDN   3  INSTPARAM           [INSTPARAM = START OF INPUT AREA 
99D=          LDN   7  0                   [NO OVERFLOW 
99XW    #UNS  IPEXTENSION+1*IPEXTENSION 
9=CG    (   
9=X6          SBX   6  5                   [NUMBER OF IPS STILL REQD AFTER MOVE 
9?BQ          BZE   6  P17A                [J IF GOT NUMBER REQUIRED
9?WB          LDX   1  APETADDR(2)         [ADDRESS OF AREA IN APET 
9#B2          FINMOVE  1,4,3,5,HLOCK2      [MOVE IPS INTO SUBJECT PROGRAM AREA  
9#TL          ADS   5  AWORK3(2)           [UPDATE PTR TO NEXT SPARE LOCATION IN
9**=          LDX   4  AWORK3(2)           [  AREA MOVING INTO AND SET IN X4
9*SW          LDX   0  IPEXTCOUNT          [COUNT OF WORDS IN EXTENSION TABLE   
9B#G          LDX   5  6                   [RESET X5 TO NO. OF IPS STILL REQD   
9BS6          TXL   0  5
9C?Q          BCC      P52                 [J IF NOT REQUIRE ALL EXTENSION TABLE
9CRB          LDX   5  0                   [SET X5 TO SIZE OF EXTENSION TABLE   
9D?2    P52   LDX   3  IPEXTTAB            [PTR TO START OF EXTENSION TABLE 
9DQL    )   
9F==          BRN      P17A 
9FPW
9G9G    #     THE ROUTINE BELOW IS THE EXTRACODE TO READ THE NEXT ENTRY 
9GP6    #     FROM HLSTEMP AND INSERT IT ON THE HLSQ IN THE ORDER OF
9H8Q    #     ITS JOBNUMBER 
9HNB    #     WORD0    50/0 
9J82    #     WORD1    0- REPLY WORD
9JML    #     WORD2    NO. OF WORDS TO BE READ  
9K7=    #     WORD3    START ADDRESS OF PROGRAM INPUT AREA  
9KLW    ZK11
9L6G          LDN   6  8                   [SET SWITCH FOR EXTRACODE
9LL6    S5    LDN   5  4                   [SET X5=LENGTH OF CONTROL AREA   
9M5Q          BRN      RD1                 [J TO S/R TO CHECK THAT CA  AND INPUT
9MKB                                       [BUFFER ARE WITHIN PROG RESERVATIONS 
9N52    S6    LDX   3  BHTEMP   
9NJL          TXU   3  CXHT 
9P4=          BCC      R1   
9PHW          LDX   0  ATYPE(3) 
9Q3G          SRL   0  12   
9QH6          SBN   0  ADATA+ASUP   
9R2Q          BNZ   0  NOTASUP          [J IF NOT SUP. BLOCK
9RGB          LDX   0  AWORK3(2)
9S22          STOC  0  AWORK3(2)
9SFL          BCS      S7                [TRANSFER BLOCK IF SUP WANTED  
9S^=          FREECORE 3                [ELSE THROW IT AWAY 
9TDW          BRN      S6   
9TYG    NOTASUP 
9WD6          LDXC  0  AWORK3(2)
9WXQ          BCS      R1               [ERROR IF SUP WANTED
9XCB          LDX   7  HLSJONO(3)          [X7 HOLDS JOB NO 
9XX2          LDX   0  HLSYONQA(3)  
9YBL          ANDN  0  #7777
9YW=          SBN   0  EVWAITIN 
9^*W          BZE   0  S8         [RECHAIN IF WAITIN EVENT  
9^TG          LDCT  0  #001 
=2*6          ANDX  0  HLSYONQ(3)   
=2SQ          BNZ   0  S8              [J IF REQUEST
=3#B          LDN  0  #10   
=3S2          ANDX  0  HLSYONQ(3)   
=4?L          BZE   0  S7              [J IF NOT B-IN BLOCK 
=4R=          SHLSQ    7,1,S7              [X1 -> HLSQ BLOCK
=5=W          FREECORE 1                   [FREE HLS ENTRY  
=5QG          BRN      S7   
=6=6    S8  
=6PQ          LDX   2  BHLSQ
=79B          TXU   2  CXHL 
=7P2          BCC      S4                  [J. IF HLSQ IS EMPTY 
=88L          BRN      S2   
=8N=    S1    LDX   2  FPTR(2)             [GET POINTER TO NEXT BLOCK   
=97W          TXU   2  CXHL                [IN HLSQ 
=9MG          BCC      S3                  [J. IF END OF HLSQ REACHED   
==76    S2    LDX   6  HLSJONO(2)          [GET JOBNUMBER OF BLK IN HLSQ
==LQ          TXL   7  6
=?6B          BCC      S1                  [J. IF BLOCK FROM HLSTEMP HAS
=?L2                                       [THE  LOWER JOBNUMBER
=#5L    S3    LDX   2  BPTR(2)             [GET PTR TO PRECEDING BLOCK  
=#K=    S4    CHAIN    3,2                 [CHAIN NEW BLOCK IN HLSQ 
=*4W          BRN      P15  
=*JG    S7    LDX   6  GSIGN               [SET X6 -VE TO INDICATE THAT HLS BLK 
=B46          LDX   2  FX2  
=BHQ          ORS   6  AWORK4(2)           [TEMPQ TO BE REMOVED INDICATOR   
=C3B          BRN      P15  
=CH2                                       [BEEN COPIED INTO SUBJ.PROGS. AREA   
=D2L
=DG=    [ THE ROUTINE BELOW DEALS WITH THE PASSIVE READ OF HLSTEMPQ 
=D^W    [ IT HAS THE FOLLOWING CONTROL AREA 
=FFG    [     WORD0    52/#107  
=F^6    [     WORD1    0 -REPLY WORD
=GDQ    [     WORD2    NO.OF WORDS TO BE READ   
=GYB    [     WORD3    START ADDRESS OF PROGRAM INPUT AREA  
=HD2    ZM107   
=HXL          FSHCODE  B,XB6
=JC=    (   
=JWW    #     WE CANNOT SEARCH THE TEMPQ IN THE 'B' MACHINE AND SO WE TRANSFER  
=KBG    #     TO 'A' AND LOOK FOR DATA THERE
=KW6    #   
=L*Q          LDN   0  4                   [SET OPTION '4'  
=LTB          CALL  1  XSWOPMC             [AND SWOP MACHINES   
=M*2    #   
=MSL    XB6 
=N#=    )   
=NRW          FSHSKIP  B,XB7
=P?G    (   
=PR6          LDX   3  BHTEMP   
=Q=Q          BRN      T7L2 
=QQB    T7L1  LDX   3  FPTR(3)           [NEXT ENTRY OF TEMPQ   
=R=2    T7L2  BXE   3  CXHT,R1             [J IF END OF TEMPQ   
=RPL          JBS     T7L1,3,PRMARK       [J IF UNREAD BLOCK
=S9=          LDX   0  ATYPE(3) 
=SNW          SRL   0  12   
=T8G          SBN   0  ADATA+ASUP   
=TN6          BNZ   0  PNOTASUP         [J IF NOT SUP. BLOCK
=W7Q          BS       3,PRMARK            [SET READ IND.   
=WMB          LDX   0  AWORK3(2)
=X72          STOC  0  AWORK3(2)
=XLL          BCS      P15              [TRANSFER BLOCK IF SUP WANTED   
=Y6=          BRN      T7L1 
=YKW    PNOTASUP
=^5G          LDXC  0  AWORK3(2)
=^K6          BCS      R1               [ERROR IF SUP WANTED
?24Q          BS       3,PRMARK           [SET READ IND 
?2JB    #   
?342    XB7 
?3HL    )   
?43=          BRN      P15          [J IF UNREAD ENTRY  
?4GW
?52G
?5G6    # THE ROUTINE BELOW DEALS WITH THE PERILIST EXTRACODE   
?5^Q    #  IT HAS THE FOLLOWING CONTROL AREA:   
?6FB    #     WORD0    6/0  OR  52/#102 
?6^2    #     WORD1    0-THE REPLY WORD 
?7DL    #     WORD2    THE NO. OF WORDS TO BE READ  
?7Y=    #     WORD3    START ADDRESS OF THE PROGRAM INPUT AREA  
?8CW    #     WORD4    #100 IF ALL PERIPHERAL LIST TO BE READ   
?8XG    #     OR A PERIPHERAL TYPE,IF ONLY RECORDS OF THAT TYPE TO BE READ. 
?9C6    ZK12
?9WQ          LDN   6  7                   [SET SWITCH FOR RETURN   
?=BB          BRN      READOUT             [FROM READOUT ROUTINE
?=W2    P60 
??*L          STO   4  ACOMMUNE1(2) 
??T=          FSHCODE  AORB 
?##W    (   
?#SG    #     FOR SHARED FILESTORE, THERE MAY BE BITS SET AT THE TOP OF THE 
?*#6    #     COUNT WORD.   THESE ARE CLEARED BEFORE THE COUNT VALUE IS STORED  
?*RQ    #   
?B?B          LDX   3  5                   [KEEP FULL COUNT WORD CONTENTS   
?BR2          ANDX  5  BITS22LS            [AND MASK THE COUNT FIELD
?C=L    )   
?CQ=          STO   5  ACOMMUNE2(2) 
?D9W          BNG   7  R1   
?DPG          BXGE  7  X101(1),R1          [J IF T# OUT OF RANGE FOR -VE REPLY  
?F96          FSHCODE  AORB 
?FNQ    (   
?G8B    #     WE MUST NOW ANALYSE THE ADDITIONAL INFORMATION SUPPLIED IN THE
?GN2    #     COUNT WORD.   
?H7L    #   
?HM=          SLC   3  2                   [GET BITS DOWN TO BOTTOM OF X3   
?J6W          ANDN  3  3                   [AND MASK OUT OUR BITS   
?JLG          FSHCODE  A,XA2
?K66    (   
?KKQ          SMO      3                   [USE JUMP TABLE TO INTERPRET 
?L5B          BRN      £                   [REQUIRED ACTION 
?LK2          BRN      Y3                  [STAY HERE   
?M4L          BRN      Y2                  [GO TO OTHER MACHINE 
?MJ=          BRN      Y3                  [STAY HERE   
?N3W          BRN      Y2                  [GO TO OTHER MACHINE 
?NHG    #   
?P36    XA2 
?PGQ    )   
?Q2B          FSHCODE  B,XB8
?QG2    (   
?Q^L          SMO      3                   [USE JUMP TABLE TO INTERPRET 
?RF=          BRN      £                   [REQUIRED ACTION 
?RYW          BRN      Y3                  [STAY HERE   
?SDG          BRN      Y2                  [GO TO OTHER MACHINE 
?SY6          BRN      Y2                  [GO TO OTHER MACHINE 
?TCQ          BRN      Y3                  [STAY HERE   
?TXB    #   
?WC2    XB8 
?WWL    )   
?XB=    #   
?XTW    Y2    LDN   0  5                   [SET OPTION '5'  
?Y*G          CALL  1  XSWOPMC             [AND GO TO OTHER MACHINE 
?YT6          BRN      P17R                [JIF NO DATA TO PROCESS  
?^#Q          BRN      P15                 [GO TO SET DATA INTO PROGRAM 
?^SB    #   
#2#2    Y3  
#2RL    )   
#3?=          LDX   3  7
#3QW          LDX   4  JPTI(3)  
#4=G          SBX   4  JPTI                [X4 WILL CONTAIN NO OF PERIPHERALS   
#4Q6          TXU   7  X100(1)  
#59Q          BCC      WHOLE               [IF =#100, ALL LIST REQD 
#5PB          LDX   4  JPTI+1(3)
#692          SBX   4  JPTI(3)             [X4 WILL CONTAIN NO OF PERS OF REQD  
#6NL                                       [TYPE
#78=          BNZ   4  WHOLE               [J IF SOME ENTRIES   
#7MW          LDX   5  AWORK3(2)           [SET REPLY EQUAL TO TRANSFER ADDRESS 
#87G          BRN      P17R                [J TO SET REPLY AND RESTART THE PROGR
#8M6    WHOLE LDN   0  6
#96Q          MPY   4  0                   [CORE REQD IN X5 
#9LB          SETUPCOR 5,1,ADATA,APLIST    [GET BLOCK TO HOLD GEN   
#=62          STOZ     A1(1)
#=KL          LDN   3  A1(1)
#?5=          LDN   4  A1+1(1)  
#?JW          SBN   5  1
##4G          SMO      5
##J6          MOVE  3  0                   [ZEROISE BLOCK   
#*3Q          LDX   3  1                   [KEEP X3 -> START OF BLOCK   
#*HB          LDN   5  #100 
#B32          LDX   4  7
#BGL          ADN   1  A1                  [X1 -> 1ST WORD FOR STORING GEN  
#C2=          SBN   4  #100 
#CFW          BZE   4  THELOT              [J IF ALL REQD   
#C^G          LDN   5  1
#DF6          ADN   4  #100 
#DYQ    THELOT                     [HERE X4 HAS PER TYPE,X5 COUNT OF PERS TO
#FDB                               [BE INSPECTED
#FKJ ...[ SET X2 = DEVICE LIST ENTRY ADDRESS
#FQQ ...[ IN CME, MACRO BRNS TO XCME IF 
#FXY ...[ DEVICE IS SWITCHED OUT WITH UNIT NO. KNOWN OR IF  
#G56 ...[ DEVICE IS ANONYMOUS   
#G=# ...      FINDPEREC  2,APFOTY,4,RETRY,,XCME,XCME
#GCL          BNG   2  MISS                [J IF NO MORE TO FIND
#GMD ...XCME
#GX=          STO   4  0(1)                [STORE PER TYPE  
#HBW          LGEOG    2,4                 [GET GEOG NO 
#HDS ...[ IF CME, TEST FOR SWITCHED OUT DEVICE AND  
#HGQ ...[ SET BIT IN PERIPHERAL LIST ENTRY  
#HJN ...      JENVNOT  XNOSW,CME
#HLL ...      JSWIN  2,XNOSW
#HNJ ...      LDCT  0  #100 
#HQG ...      ORX   4  0
#HSD ...XNOSW   
#HWG          ORX   4  GSIGN               [SET WRONGED BIT 
#JB6          JWRONG   2,WRONG             [J IF WRONGED
#JTQ          ERX   4  GSIGN               [UNSET IT
#K*B    WRONG STO   4  1(1)                [STORE THIS LOT  
#KT2          JONL     2,ONL               [J IF ONLINE 
#L#L          JMT      2,SAMMT             [J IF MAG TAPE   
#LS=          BRN      NOOL 
#M?W    SAMMT JALLOC   2,SAMMS             [J IF IN USE BY GEORGE   
#MRG          BRN      NOOL 
#N?6    SAMMS LDCT  0  #200                [SET ALLOCATED REPLY FOR USER
#NQQ          ORS   0  1(1) 
#P=B          BRN      NOOL 
#PQ2    ONL   LJOBNO   2,4                 [GET JOB NUM 
#Q9L          ORX   4  GSIGN               [SET ONLINE BIT  
#QP=          STO   4  2(1)                [STORE THIS LOT  
#R8W    NOOL  LPROP    2,4  
#RNG          ORS   4  3(1)                [STORE PROPS (PHYSICAL)  
#S86          JMT      2,TSN               [J FOR MAG TAPE  
#SMQ          JBACK    2,XCSN              [J IF SUSN/CSN TO PICK UP
#T7B          BRN      NOSN 
#TM2    XCSN
#W6L          LDX   4  3                   [KEEP -> ADATA/APLIST
#WL=          LADDP    2,3  
#X5W          LDXC  0  BSUNIT2(3)   
#XKG          BCC      NINUSE              [J IF NOS IN USE BY GEORGE   
#Y56          LDCT  0  #200 
#YJQ          ORS   0  1(1) 
#^4B    NINUSE  
#^J2          LDCT  0  #20  
*23L          ANDX  0  BSUNIT(3)
*2H=          BZE   0  UNENG               [J IF CSN NOT THERE  
*32W          LDX   0  BSUNIT5(3)   
*3GG    UNENG LDX   3  4                   [RESTORE PTR 
*426          BRN      STOSN
*4FQ    TSN   DFLOAD   2,TSN,0  
*4^B    STOSN   
*5F2          STO   0  4(1) 
*5YL    NOSN
*6D=          LDX   4  0(1)                [RESTORE PER TYPE
*6XW          ADN   1  6                   [UPDATE PTR  
*7CG          BRN      RETRY
*7X6    MISS  ADN   4  1                   [SET NEXT PER TYPE   
*8BQ          BCT   5  THELOT              [IF ALL RETURN FOR NEXT  
*8WB          LDX   2  FX2  
*9B2          LDX   4  ACOMMUNE1(2) 
*9TL          LDX   5  ACOMMUNE2(2)        [RESTORD 
*=*=          BRN      P15                 [GO TO MOVE IT ALL IN
*=SW    #   
*?#G    # THE ROUTINE BELOWS DEALS WITH THE GEORGECORE EXTRACODE
*?S6    # IT HAS THE FOLLOWING CONTROL AREA 
*#?Q    #     WORD 0   6/0  
*#RB    #     WORD 1   0-THE REPLY WORD 
**?2    #     WORD 2   THE NO. OF WORDS TO BE READ  
**QL    #     WORD 3   START ADDRESS OF THE PROGRAM 
*B==    #     WORD 4   ADDRESS IN GEORGE'S CORE OF FIRST WORD TO BE READ
*BPW    #   
*C9G    ZK13  LDN   6  9
*CP6          BRN      READOUT  
*D8Q    #              X4=BUFFER  X5=COUNT  X7=GEORGE ADDRESS   
*DNB    X25K
*F82          FSHCODE  AORB 
*FML    (   
*G7=    #     FOR 'GEOCORE' IN SHARED FILESTORE, THE COUNT WORD OF THE PERI 
*GLW    #     INDICATES WHERE THE EXTRACODE IS TO BE CARRIED OUT
*H6G    #   
*HL6          LDX   3  5                   [COPY THE COUNT WORD AND THEN
*J5Q          ANDX  5  BITS22LS            [CLEAR THE BIT MARKERS (B0,B1)   
*JKB          SLC   3  2
*K52          ANDN  3  3                   [FORM MODIFIER FROM BITS 0 & 1   
*KJL    #   
*L4=          FSHCODE  A,XA3
*LHW    (   
*M3G          SMO      3                   [USE JUMP TABLE TO GET REQUIRED  
*MH6          BRN      £                   [ACTION  
*N2Q          BRN      Y5                  [STAY HERE              (HOME)   
*NGB          BRN      Y4                  [OTHER MACHINE          (AWAY)   
*P22          BRN      Y5                  [STAY HERE              ('A')
*PFL          BRN      Y4                  [OTHER MACHINE          ('B')
*P^=    #   
*QDW    XA3 
*QYG    )   
*RD6          FSHCODE  B,XB9
*RXQ    (   
*SCB          SMO      3                   [USE JUMP TABLE TO GET REQUIRED  
*SX2          BRN      £                   [ACTION  
*TBL          BRN      Y5                  [STAY HERE            (HOME) 
*TW=          BRN      Y4                  [OTHER MACHINE        (AWAY) 
*W*W          BRN      Y4                  [OTHER MACHINE        ('A')  
*WTG          BRN      Y5                  [STAY HERE            ('B')  
*X*6    #   
*XSQ    XB9 
*Y#B    )   
*YS2    #   
*^?L    Y4    LDN   0  6                   [SET OPTION '6'  
*^R=          CALL  1  XSWOPMC             [AND GO TO OTHER MACHINE 
B2=W          ADN   3  A1                  [SET ABSOLUTE ADDRESS IN CORE
B2QG          BRN      P17A                [GO TO PUT DATA INTO PROGRAM 
B3=6    #   
B3PQ    Y5  
B49B    )   
B4P2          TXL   5  B513 
B58L          BCS      X5OK 
B5N=          LDN   5  512                 [ALLOW MAX TRANSFER OF 512 WORDS 
B67W    X5OK  TXL   7  CORES
B6MG          BCC      R1                  [-VE REPLY IF ILLEGAL GEORGE ADDRESS 
B776          LDX   3  7
B7LQ          LDX   0  7
B86B          LDN   7  0                   [NO OVERFLOW 
B8L2          ADX   0  5
B95L          SBX   0  CORES
B9K=          BNG   0  P17A                [J IF REQUESTED AREA ALL BELOW LIMIT 
B=4W          SBX   5  0                   [...ELSE ADJUST COUNT.   
B=JG          BRN      P17A 
B?46    #   
B?HQ    [ THE ROUTINE BELOW DEALS WITH THE REWIND HLSQ  
B#3B    [ IT HAS THE FOLLOWING CONTROL AREA:
B#H2    [     WORD0    52/#111  
B*2L    [     WORD1    0 -REPLY WORD
B*G=    ZM111 STOZ     AWORK1(2)           [RESET MARKER
B*^W          BRN      REWI5
BBFG    [ THE ROUTINE BELOW DEALS WITH THE REWIND JOBQ  
BB^6    [ IT HAS THE FOLLOWING CONTROL AREA 
BCDQ    [     WORD0    52/#112  
BCYB    [     WORD1    0 -REPLY WORD
BDD2    ZM112 STOZ     AWORK2(2)           [RESET MARKER
BDXL          BRN      REWI5
BFC=    [ THE ROUTINE BELOW DEALS WITH THE SCHEDJOB XCODE   
BFWW    [     WORD0    52/#113  
BGBG    [     WORD1    0 -REPLY WORD
BGW6    [     WORD2    NO. OF WORDS IN CONTROL RECORD   
BH*Q    [     WORD3    ADDRESS OF PROGRAMS CONTROL AREA 
BHTB    ZK14  LDN   6  10                  [CHANNEL INDICATOR   
BJ*2          STO   6  AWORK4(2)
BJSL          LDN   5  4                   [LENGTH OF PERI CONTROL AREA 
BK#=          BRN      RD2  
BKRW    ZM113 BZE   5  SILLEGAL            [CONTROL RECORD ZERO LENGTH  
BL?G          LDX   7  5                   [SAVE REC. LENGTH
BLR6          BXL   5  RECL(1),T13L2       [J IF REC.< AOLPT AREA   
BM=Q          LDX   5  RECL(1)  
BMQB    T13L2 LDN   3  HLSCONREC(2) 
BN=2          LDX   0  GSIGN
BNPL          STO   0  0(3) 
BP9=          LDN   4  1(3) 
BPNW          SMO      RECL(1)  
BQ8G          MOVE  3  511                 [SET DEFAULTS
BQN6    #UNS           ECS  
BR7Q          STOZ     11(3)
BRMB          LDX   2  AWORK3(2)
BS72          LDX   4  5
BSLL          CALL  6  XFOUTMOVE2          [CONTROL REC -> AOLPT
BT6=          LDX   3  HLSCONREC(2)        [GET INDX NO. OF CON.REC.
BTKW          BXGE  3  SCHMAX(1),SILLEGAL  [ILLEGAL INDX NO.
BW5G          SMO      FX1  
BWK6          LDX   0  SCHLEN(3)
BX4Q          BXL   0  7,SILLEGAL          [CONTROL REC. OVERSIZE   
BXJB          SBN   3  2
BY42          BNG   3  NEEDS               [J IF STARTJOB OR RESET  
BYHL          SBN   3  4
B^3=          BZE   3  NEEDS               [J IF DEWELL 
B^GW          ADN   3  1
C22G          BZE   3  WAITMESS            [J IF JOBWAIT
C2G6          BRN      XECUTE   
C2^Q    [ GET ONLINE PERIPHERAL REQUIREMENTS
C3FB    NEEDS LDXC  4  HLSCONREC+7(2)      [PTR. TO NEEDS DATA  
C3^2          BCS      XECUTE              [J IF NO NEEDS   
C4DL          CALL  7  XCLEAR      [CLEAR HLOCK2
C4Y=          LDN   5  1
C5CW          CALL  3  RCHECKA             [1ST WORD OF NEEDS CHECK 
C5XG          LDN   3  5
C6C6          LDX   2  4
C6WQ          LDN   4  1
C7BB          CALL  6  XFOUTMOVE2          [X5 = 1ST WORD OF NEEDS  
C7W2          ANDN  5  #777 
C8*L          BZE   5  SILLEGAL            [J IF NO NEEDS DATA  
C8T=          CALL  7  XCLEAR      [CLEAR HLOCK2
C9#W          LDX   4  HLSCONREC+7(2)   
C9SG          CALL  3  RCHECKA             [CHECK IF NEEDS IN SBJ.PROG. 
C=#6          SETUPCORE 5,3,ADATA,CSTORE
C=RQ          LDN   3  A1(3)
C??B          LDX   2  HLSCONREC+7(2)   
C?R2          LDX   4  5
C#=L          CALL  6  XFOUTMOVE2          [MOVE NEEDS->AOLPT   
C#Q=          MHUNTW   3,ADATA,CSTORE   
C*9W          LDN   0  #777 
C*PG          ANDS  0  A1(3)
CB96          BRN      XECUTE   
CBNQ    [ SET UP GMON/HLSOUT FOR JOBWAIT
CC8B    WAITMESS
CCN2          LDX   0  HLSCONREC+2(2)   
CD7L          SBN   0  4
CDM=          BNG   0  SETUPBLK 
CF6W          SBN   7  4
CFLG          BNG   7  SILLEGAL            [J IF NO MESSAGE 
CG66 ...      ADN   7  3
CGKQ    [WE ALWAYS SET UP BLOCK TO KEEP MESS NO 
CH5B    SETUPBLK
CHK2          SETUPCORE 7,3,GMON,HLSOUT 
CJ4L ...      SBN   7  2
CJJ=          STO   7  A1(3)
CK3W          LDX   2  AWORK3(2)
CKHG          ADN   2  3
CL36          LDN   3  A1+2(3)  
CLGQ          LDX   4  7
CM2B          CALL  6  XFOUTMOVE2          [MOVE CON.REC.->GMON/HLSOUT  
CMG2    XECUTE  
CNYW    # CODE FOR WAIT,DEWELL AND SWITCH (CONTROL NOS 2,6 AND 7) IS IN 
CPDG    # THE OVERFLOW SEGMENT SCHDJOBA 
CPY6          LDX   0  HLSCONREC(2) 
CQCQ          SBN   0  2
CQXB          BZE   0  XECUTA   
CRC2          SBN   0  4
CRWL          BPZ   0  XECUTA   
CSTW          ACROSS   SCHEDJOB,1   
CW#Q    XECUTA  
CWSB          ACROSS   SCHDJOBA,1   
CXRL    [ THE ROUTINE BELOW DEALS WITH THE RETRIEVE XCODE   
CY?=    [ IT HAS THE FOLLOWING CONTROL AREA 
CYQW    [     WORD0    52/#114  
C^=G    [     WORD1    0 -REPLY WORD (COUNT OF OUTSTANDING RVS ON EXIT) 
C^Q6    [     WORD2    JOB NUMBER   
D29Q    ZM114 BZE   5  R1   
D2PB          FSHCODE  B,XB10   
D392    (   
D3NL    #     WE CANNOT DEAL WITH COUNTS OF OUTSTANDING RETRIEVES ON 'B'
D48=    #     SO WE MUST GO TO 'A'  
D4MW    #   
D57G          LDN   0  7                   [SET OPTION '7'  
D5M6          CALL  1  XSWOPMC             [AND TRANSFER TO 'A' 
D66Q    #   
D6LB    XB10
D762    )   
D7KL          FSHSKIP  B,XB11   
D85=    (   
D8JW          LDN   6  0                       [SET ZERO COUNT  
D94G          JOBLOCK  5,3                     [FIND JOBLOCK
D9J6          BNG   3  SAMNW                   [J NONE PRESENT  
D=3Q          HLSAV    3,SET,SAVING,JOBQ,SAMNW [CHECK AND J IF JOB BEING SAVED  
D=HB          FCAJO    2,3                     [FIND CPAT   
D?32          LDEX  3  CLONG1(2)               [CHECK IF JOB IS WAITING FOR A RE
D?GL          LDN   2  #24  
D#2=          TXU   2  3
D#FW          BCS      SAMNW                   [J IF NOT
D#^G          LDN   6   1                      [SET COUNT IF IT IS  
D*F6    SAMNW   
D*YQ          OUTRVCT  5,5                 [PUT COUNT OF OUTSTANDING... 
DBDB          ADX   5  6                       [ADD NO. OF NON-AUTONOMOUS RETRIE
DBY2    #   
DCCL    XB11
DCX=    )   
DDBW          BRN      P17R                [RVS IN X5 (X5=JOBNO ON ENTRY)   
DDWG    [ THE ROUTINE BELOW DEALS WITH THE WHATSTATE XCODE(STARTED JOBS)
DFB6    [ IT HAS THE FOLLOWING CONTROL AREA:
DFTQ    [     WORD0    52/#115  
DG*B    [     WORD1    0 -REPLY WORD
DGT2    [     WORD2    NO. OF WORDS TO BE READ  
DH#L    [     WORD3    ADDRESS OF PROGRAM'S BUFFER  
DHS=    [     WORD4    JOB NUMBER   
DJ?W    ZM115 BNG   7  R1                  [ERROR...
DJRG          BZE   7  R1                  [...NO SUCH JOB NUMBER   
DK?6          STO   7  ACOMMUNE1(2) 
DKQQ          ACROSS   WSJOBS,1            [GET WS INFORMATION  
DL=B    ZK30  HUNTW    3,CQPRINT,CQ11   
DLQ2          BNG   3  R1                  [J IF NO SUCH JOB
DM9L          LDX   0  GSIGN
DMP=          ERS   0  A1(3)               [REMOVE XCODE IND. FROM JOB N0.  
DN8W          STO   3  ACOMMUNE7(2) 
DNNG          CALL  6  XFOUTMOVE           [REREAD CONTROL AREA 
DP86          LDX   3  ACOMMUNE7(2)        [X3-> CQPRINT/CQ11   
DPMQ          LDX   4  ACOMMUNE2(2)        [X4-> BUFFER 
DQ7B          LDX   5  ACOMMUNE1(2)        [X5 = LENGTH 
DQM2          BRN      P15                 [ OUTPUT RESULTS 
DR6L
DRL=    SILLEGAL
DS5W          LDX   1  FX1  
DSKG          TOPCA    PLINK2(1)           [SET LINK FOR ILLEGAL ILLINS MESSAGE 
DT56          COOR1 
DTJQ          BRN      REPEAT   
DW4B    RILLEGAL
DWJ2    # THE PERI IS ILLEGAL,TRANSFER TO PROCESS CONTROL ACTIVITY  
DX3L          TOPCA    PLINK1(1)
DXH=          COOR1 
DY2W
DYGG
D^26    REPEAT  
D^FQ          SMO      AWORK4(2)           [SINCE THIS IS LEFT SET AS THE ENTRY 
D^^B          BRN      REENTRYPT           [ ALINK2 OF AOLPT),A SWITCH TABLE IS 
F2F2    REENTRYPT                          [ J.TO THE APPROPIATE ENTRY POINT
F2YL                                       [ (X6) = EXTRACODE NO.   
F3D=          BRN      ZK3  
F3XW          BRN      ZK3  
F4CG          BRN      ZK15 
F4X6          BRN      ZK7  
F5BQ          BRN      P30  
F5WB          BRN      P40  
F6B2          BRN      ZK10 
F6TL          BRN      ZK12 
F7*=          BRN      ZK11 
F7SW          BRN      ZK13 
F8#G          BRN      ZK14 
F8S6
F9?Q
F9RB    READOUT                            [FIRST CHECK MODE FOR ED PERIS   
F=?2          STO   6  AWORK4(2)         [EXTRACODE NO. 
F=QL          LDN   5  5
F?==          LDX   0  EVENT4(2)
F?PW          ANDN  0  #7777
F#9G          BZE   0  RD2                 [J IF NORMAL CASE FOR ED 
F#P6          TXU   0  XCLOSE(1)
F*8Q          BCC      XCL  
F*NB          BRN      SILLEGAL            [OTHERWISE ILLEGAL MODE  
FB82    RD1   STO   6  AWORK4(2)           [EXTRACODE NO.   
FBML          LDEX  0  EVENT4(2)
FC7=          SBN   0  2
FCLW          BZE   0  RD2                 [J IF MODE 2 
FD6G          SBN   0  5
FDL6          BNZ   0  SILLEGAL            [J UNLESS MODE 7 
FF5Q          LDX   7  6                   [NOW IF EXTRACODE NO 2 OR 3  
FFKB          SBN   7  4                   [MODE 7 IS ALLOWED & IS REWIND   
FG52          TXU   7  SA1(1)   
FGJL          BCC      REWI 
FH4=          BNZ   7  SILLEGAL 
FHHW    REWI  LDX   4  EVENT2(2)
FJ3G          CALL  3  RCHECKA  
FJH6          SMO      7                   [X7=1 FOR JOBQ, 0 FOR HLSQ   
FK2Q          STOZ     AWORK1(2)
FKGB    REWI5 LDN   5  0
FL22          BRN      P17R                [SET REPLY AND FINISH
FLFL    RD2 
FL^=          LDX   4  EVENT2(2)           [ADDR OF PCA 
FMDW          CALL  3  RCHECKA             [CHECK CONTROL AREA IS WITHIN  SUBJEC
FMYG                                       [RESERVATIONS  AND SET X4=SUBJ PROG'S
FND6          CALL  6  XFOUTMOVE           [MOVE OUT CONTROL AREA   
FNXQ          LDX   4  ACOMMUNE2(2)        [X4->BUFFER  
FPCB          LDX   5  ACOMMUNE1(2)        [X5=LENGTH   
FPX2          LDX   7  ACOMMUNE3(2)        [X7=ADDITIONAL INFORMATION   
FQBL          STO   4  AWORK3(2)           [SAVE ADDR. OF BUFFER
FQW=          LDEX  0  EVENT4(2)
FR*W          SBN   0  RVMODE   
FRTG          BZE   0  ZM114               [J IF RETRIEVE XCIODE
FS*6          LDEX  0  EVENT4(2)
FSSQ          SBN   0  #111 
FT#B          BZE   0  ZM111               [J IF REWIND HLSQ EXTRACODE  
FTS2          SBN   0  1
FW?L          BZE   0  ZM112               [J IF REWIND JOBQ EXTRACODE  
FWR=          BZE   5  P16A                [J IF ZERO WORDS TO BE READ  
FX=W          FSHCODE  AORB 
FXQG          ANDX  5  BITS22LS            [MAKE SURE M/C BITS ARE UNSET
FY=6          CALL  3  RCHECKA  
FYPQ          FSHCODE  AORB 
F^9B          LDX   5  ACOMMUNE1(2)        [RECOVER COUNT WORD (WITH M/C BITS)  
F^P2          SMO      AWORK4(2)           [CONTROL SWITCHES TO THE INSTRUCTION 
G28L          BRN      SWITCH              [ THE APPROPRIATE BRN READOUT USING T
G2N=    SWITCH                             [ IN X6(SET ON ENTRY,=0 FOR K1,=1 FOR
G37W          BRN      ZK1D                [ OPERATE ON THE SWITCH TABLE
G3MG          BRN      ZK1D 
G476          BRN      P1   
G4LQ          BRN      P11  
G56B          BRN      P30R 
G5L2          BRN      P40R 
G65L          BRN      P50R                [RETURN TO INSTPARA EXTRACODE
G6K=          BRN      P60                 [RETURN TO PERILIST EXTRACODE
G74W          BRN      S6                  [RETURN TO HLSTEMP EXTRACODE 
G7JG          BRN      X25K                [RETURN TO GEORGECORE XCODE  
G846          BRN      ZM113
G8HQ    #     TO CLOSE DOWN THE 'FILE'  
G93B    XCL   RELOFP   HLSPTYPE(2)  
G9H2
G=2L    ZK4 
G=G=          UNPLUG
G=^W        ILLEGAL  RESVIOL
G?FG    R1    LDX   5  GSIGN
G?^6          BRN      P17R                [GO TO STORE -VE REPLY   
G#DQ    ZK5 
G#YB          UNPLUG
G*D2          ILLEGAL  ILLINS   
G*XL          FSHCODE  AORB 
GBC=    (   
GBWW    XSWOPMC 
GCBG    #   
GCW6    #     THE FOLLOWING S/R IS USED TO SWOP FROM ONE MACHINE TO THE OTHER   
GD*Q    #     USING A 'SUPERVISORY' TRANSBEG.  IT STORES THE OPTION INDICATOR   
GDTB    #     INTO ACOMMUNE4 AND A RELATIVISED LINK INTO ACOMMUNE5  
GF*2    #   
GFSL          SBX   1  FX1  
GG#=          STO   0  ACOMMUNE4(2)        [STORE OPTION INDICATOR  
GGRW          STO   1  ACOMMUNE5(2)        [STORE RETURN LINK   
GH?G    #   
GH*9 ...#   
GHBY ...#     ERROR RECOVERY DEMANDS A /FSHAMBLES BLOCK WITH A LINK TO THE ERROR
GHDM ...#     ROUTINE   
GHGB ...#   
GHJ5 ...      SETNCORE 1,3,FSH,FSHAMBLES   [SET UP THE /FSHAMBLES BLOCK AND GIVE
GHKS ...      LDX   0  X31HLSREAD(1)       [IT A LINK   
GHMH ...      STO   0  FSHCDLINK(3) 
GHP= ...#   
GHR6          TRANSBEG FSHHLSEXID,FSHHLSRD,1,NOBLOCKS,,ACOMMUNE8,XCANTSWOP,SUP  
GHY# ...#   
GJ5G ...      MFREEW   FSH,FSHAMBLES       [ERROR BLOCK WAS NOT NEEDED!!!!  
GJ=Q    #   
GJCY ...      SMO      3                   [NOW APPLY THE OFFSET SUPPLIED BY THE
GJK6 ...      BRN      £                   [OTHER MACHINE   
GJQB          BRN      R1                  [ERROR REPLY EXIT
GK=2          BRN      XSWOPMCX            [OK REPLY - NO DATA BLOCK
GKPL          MHUNTW   3,FSH,HLSTRANSFER   [OK REPLY - FIND DATA BLOCK SENT 
GL9=    #   
GLNW    XSWOPMCX
GM8G          LDX   0  ACOMMUNE5(2)        [PICK UP LINK AND EXIT   
GMN6          SMO      FX1  
GN7Q          EXIT  0  0
GN?M ...#   
GNCJ ...X31HLSREAD  
GNHF ...      LINK     HLSREAD,31   
GNMB    #   
GP72    #   
GP=6 ...ZK31           [ERROR RECOVERY ENTRY POINT: TIDY UP AND GIVE ERROR REPLY
GP*= ...#   
GPDB ...      FSHACCWK                     [RESTORE LINK, ACCS AND AWORKS   
GPHG ...#   
GPLL    XCANTSWOP   
GQ6=    #   
GQKW    #     STANDARD ERROR REPLY IF THE LINK IS NOT RUNNING   
GR5G    #   
GR*# ...      MFREEW   FSH,FSHAMBLES       [GET RID OF ERROR RECOVERY BLOCK 
GRK6          LDN   5  #101 
GS4Q          ORX   5  GSIGN               [SET REPLY = #40000101   
GSJB          BRN      P17R                [AND GO TO RUN SUBJECT PROGRAM   
GT42    )   
GTHL          FSHCODE  B,XB13   
GW3=    (   
GWGW    #   
GX2G    SCOPYBLOCK  
GXG6    #   
GX^Q    #     SHARED FILESTORE:  THIS SUBROUTINE IS USED TO MAKE A COPY 
GYFB    #     OF A JOB BLOCK AND TO SET A BIT IN THE COPY TO INDICATE THAT  
GY^2    #     THE JOB IS ACTUALLY IN 'B'
G^DL    #   
G^Y=    #     THE BIT THAT IS USED IS 'JBFSHALIEN' WHICH CANNOT BE SET IN THE   
H2CW    #     HOME COPY OF ANY JOB BLOCK!!  
H2XG    #   
H3C6    #     ON ENTRY:  X3 POINTS TO THE JOB BLOCK TO COPY 
H3WQ    #                X7 HOLDS THE JOB NUMBER
H4BB    #   
H4W2    #     ON EXIT:   X3 POINTS TO THE COPY OF THE JOB BLOCK 
H5*L    #   
H5T=          SBX   6  FX1                 [PROCESS LINK AND GET BLOCK FOR COPY 
H6#W          SETUPCOR ALOGLEN(3),3,FSH,HLSTRANSFER 
H6SG          ADX   6  FX1                 [RE-INSTATE THE LINK 
H7#6    #   
H7RQ    #   
H8?B          FINDJOBQ 2,7,SGONE           [FIND THE ORIGINAL JOB BLOCK 
H8R2          LDX   0  ALOGLEN(2)   
H9=L          BXU   0  ALOGLEN(3),SGONE    [JIF THE BLOCK LENGTH HAS CHANGED
H9Q=    #   
H=9W          LDN   0  A1(2)               [GET SOURCE ADDRESS FOR MOVE 
H=PG          LDN   1  A1(3)               [GET TARGET ADDRESS FOR MOVE 
H?96          SMO      ALOGLEN(3)          [COPY THE WHOLE BLOCK OVER   
H?NQ          MOVE  0  0
H#8B    #   
H#N2          BS       3,JBFSHALIEN        [SET THE BIT INDICATING 'B' M/C JOB  
H*7L          LDX   2  FX2  
H*M=          EXIT  6  1                   [RETURN TO CALLING ROUTINE - COPY OK 
HB6W    #   
HBLG    SGONE FREECORE 3                   [COPY HAS FAILED - SO FREE COPY BLOCK
HC66          EXIT  6  0                   [ERROR RETURN TO CALLING ROUTINE 
HCKQ    #   
HD5B    XB13
HDK2    )   
HF4L    #END
^^^^ ...672666170002
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1