SETUP867

(George Source)

Macros used: ACROSS, BXE, BXGE, BXL, BXU, CHAIN, CLALLOC, COOR1X, COOR2, COOR3, COOR3Y, DCA, DERING, DOWN, EMPTY, FON, FPUT, FSHENTRY, FSHTEST, FWAIT, GEOERR, GETACT, GETACTX, GPERI, HUNT2, LINK, LINKSET, LOCKC, MENDAREA, MHUNTW, MONOUT, OFF, OUTNUM, PAIR, SEGENTRY, SETALLOC, SETUPCORE, SUICIDE, TRACE, UP

SETUP867.txt
22FL    #SEG  SETUP                        [GENERAL EMS - COMM  
22PD ...[   (C)   INTERNATIONAL COMPUTERS LIMITED 1982  
22^=    #LIS  K0SETUP>K0EMS>K0ALLGEO
23DW                   8HSETUP8 
23YG    # E.M.S. SEGMENT
24D6    # ENTRY POINTS  
24K# ...#UNS G400   
24QG ...#      THIS MODIFIED CHAPTER IS FOR G3PLUS-IH MK2   
24XQ          SEGENTRY K1SETUP,Z1SETUP  
25CB          SEGENTRY K2SETUP,Z2SETUP  
25X2          SEGENTRY K3SETUP,Z3SETUP  
26BL          SEGENTRY K4SETUP,Z4SETUP  
26W=    #SKI  CAMK7>5-5^G4  
27*W    (   
27TG          SEGENTRY K5SETUP,Z5SETUP  
28*6    )   
28SQ          SEGENTRY K7SETUP,Z7SETUP  
28YM    #UNS AV7900S
294J          SEGENTRY K8SETUP,Z8SETUP     [SETS UP A VIRTUAL 7900 IN CORE  
295H    #UNS  AV7900S   
296G    #SKI
297F          SEGENTRY K8SETUP,(GEOERR)    [KEEPS ENTRY POINTS IN RIGHT PLACE!!!
298F    #   
298Y    #   
299C    #     THIS IS A SPECIAL ENTRY POINT FOR THE SHARED FILESTORE ENHANCEMENT
299W    #     WHEN RUNNING EARLY MORNING START IN MACHINE B TO COMPARE THE  
29=*    #     FILESTORE RESIDENCES BEING USED IN THE STORE  
29=S    #   
29??          FSHENTRY K9SETUP,,Z9SETUP,Z9SETUP 
29?Q    #   
29#B          MENDAREA 40,K100SETUP 
29*R    #UNS ADUALDME   
29C8    (   
29DK    XTAB
29G2          SEGENTRY K80SETUP 
29HC ...#REP (AENDCHAPS-KTAB)/24
29JS                   -1   
29L9                   +0   
29ML ...#FID 0,((AENDCHAPS-KTAB)-(((AENDCHAPS-KTAB)/24)*24)-1),-1   
29P3    XTABEND 
29QD    )   
29S2    SLINK1  
2=?L          PAIR     SETUPA,1 
2=BQ    #UNS  FSHTEST   
2=FW    #SKI
2=R=    SLINK2  
2?=W          PAIR     CONSET,1 
2?QG    SLINK3  
2#=6          PAIR     EMSENTER,1   
2#PQ    SLINK5  
2*9B          PAIR     CHARGESC,1   
2*P2    SLINK6  
2B8L          PAIR     PERFCHAP,1   
2BN=    #SKI  CAMK7>5-5^G4  
2C7W    (   
2CMG    SLINK7  
2D76          PAIR     SETUP,5  
2DLQ    )   
2F6B    SLINK9  
2FL2          PAIR     COREALLF,4   
2G5L    SCANTYPE
2GK=    #HAL  AMSCAN+AMXTYPE,0  
2H4W    POS            #37777777
2H6?    #UNS  FSHTEST   
2H7N    #SKI
2HH6    [   
2HH#    [   
2HHG    [   
2H^J    Z1SETUP 
2J46    # CURRENT ACTIVITY IS BLANKET   
2JHQ    #   
2JJ8    #UNS ADUALDME                      [ ****  DUALS ONLY  **** 
2JJL    (   
2JK4    #  FIRST WE MARK THE CHAPTER TABLE ENTRIES OF THOSE CHAPTERS WHICH  
2JKG    #  ARE NOT ALLOWED TO RUN CONCURRENTLY WITH EXECUTIVE.  
2JKY    #  TABLE 'XTAB' CONTAINS ONE BIT PER CHAPTER. IF THE BIT IS SET 
2JLB    #  THE CHAPTER IS NOT ALLOWED TO RUN WITH EXEC, SO WE SET BIT 9 
2JLS    #  OF ITS 'KTAB' ENTRY TO INDICATE THIS TO THE CHAPTER CHANGER. 
2JM=    #   
2JMN          LDN   4  0                   [ INITIALISE CHAPTER NO. 
2JN6          LDN   5  XTABEND(1)          [ => END OF TABLE
2JNJ          LDX   6  BIT9                [ 'FORBIDDEN' BIT
2JP2          LDN   2  XTAB(1)             [ => START OF TABLE  
2JPD    XNEXTWD 
2JPW          LDX   7  0(2)                [ GET NEXT BIT WORD  
2JQ#          LDN   3  24                  [ NO. OF BITS TO BE CHECKED  
2JQQ    XNEXTBIT
2JR8          BPZ   7  XNOACT              [ JIF CHAPTER NOT 'FORBIDDEN'
2JRL          SMO      4
2JRS          LDX   0  KTAB                [ GET KATB ENTRY 
2JS2          TXU   0  GMINUS1  
2JS8          BCC      XENDKTAB            [ JIF END OF VALID KTAB  
2JSB          LDXC  0  0                   [ SEE IF IN CORE 
2JSJ          BCC      XSETKTAB            [ JIF IT ISNT ELSE   
2JSQ          BZE   0  XNOACT              [ JIF FIXED CORE ENTRY   
2JSY          SMO      0                   [ CORE (EG CHAPTER 'SETUP'IS IN CORE)
2JTB          ORS   6  BACK2               [ SET BIT 9 IN 'BACK2'.  
2JTS          BRN      XNOACT              [ ALL DONE.  
2JW=    XSETKTAB
2JWN          SMO      4
2JX6          ORS   6  KTAB                [ ELSE SET BIT IN 'KTAB' ENTRY   
2JXJ    XNOACT  
2JY2          ADN   4  1                   [ UPDATE CHAPTER NO. 
2JYD          SLL   7  1                   [ MOVE UP NEXT CHAPTER'S BIT 
2JYW          BCT   3  XNEXTBIT            [ JIF NOT CHECKED ALL BITS IN THIS WD
2J^#          ADN   2  1                   [ ELSE UPDATE POINTER TO NEXT WORD   
2J^Q          BXL   2  5,XNEXTWD           [ JIF NOT AT END OF TABLE YET
2K28    XENDKTAB                           [ ELSE WE'VE FINISHED !  
2K2L    )   
2K3B          GETACT   BSA,CHAPTER         [SET UP E.M.S. ACTIVITY  
2KH2          LDX   2  BPTR(2)  
2L2L          LINKSET  2,SLINK1(1)         [LINK TO K1SETUPA
2LG=          LDCT  6  #200                [MAKE BACKING STORE PRIVILEGED   
2L^W          STO   6  CLONG1(2)
2MFG          FPUT                         [PUT ON THE LIST 
2M^6          LINKSET  2,SLINK5(1)         [LINK TO CHARGESC
2NDQ          LDCT  0  #400 
2NYB          ORS   0  K5   
2P5J          LDX   0  JTIME               [INITIALISE CLEANCT TO ALLOW 
2P=Q          STO   0  CLEANCT             [TIME OUTPUT IN EMS (8.61)   
2PD2          COOR1X                       [LET BLANKET RUN IN EMS  
2PXL    #   
2QC=    #              CURRENT ACTIVITY IS BSA/CHAPTER(E.M.S. ACTIVITY) 
2QM4    #   NEVER OBEYED ON MACHINE 'B' IN A TESTING ENVIRONMENT
2QWW    #   
2RBG    Z7SETUP                            [FROM SETUPA 
2XX3    # WITH THE 'VOPA ING4' ENHANCEMENT, THE NEED FOR DIFFERENT  
2Y=Q    #SKI  G4
2YQB    (   
2^=2                                       [SETUP OBJ PROG AREA 
2^PL          BRN      O41SETUP 
329=    R41SETUP
32NW    )   
338G          STOZ     APROCTIME           [INITIALISE PROCESS CONTROLLER CLOCK 
33N6          ACROSS   SETUPARA,1          [SETUP INSTALLATION PARAMETERS.  
347Q    Z2SETUP 
34MB          LDX   0  IPBADDR             [J. IF NO 7900'S ON THIS INSTALLATION
3572          BZE   0  NOIPB
35LL          DOWN     SETIDF,2            [OTHERWISE SET UP IDF FOR IPB'S. 
366=    NOIPB   
36KW          DOWN     IDFPROP,1
375G          LDX   0  GINCTSN  
37K6          BNZ   0  Z4SETUP  
384Q          ACROSS   HLSEMS,1 
389Y    XFSHNBZ2
38JB    #   
3942    Z4SETUP 
3998 ...#UNS G400   
39BB ...      DOWN DOIHEMS,1     [INITIALISE HOOK BLK   
39HL    #   
3=3=    # LINK TO PERFORMANCE CHAPTER   
3=GW          GETACT   GENERAL,CPERFACT 
3?2G          LDX   2  BPTR(2)  
3?G6          LINKSET  2,SLINK6(1)  
3?^Q          FWAIT    #54  
3#3#    NOPERFACT   
3#FB    #              SET UP INCREMENT DUMP/HLS ETC. ACTIVITY. 
3#^2          GETACT   CPAT                [GET ACTIVITY.   
3*DL          LDX   2  BPTR(2)             [ADDRESS OF ACTIVITY 
3*Y=          LINKSET  2,SLINK3(1)  
3BCW          LDCT  5  128                 [B. S. PRIVILEGED.   
3BXG          ORS   5  CLONG1(2)
3CC6          FWAIT    #54  
3CJ#    XFSHNBDUMP  
3CWQ    NBLOK   
3DBB          LDX   2  FPTR(2)             [HUNT FOR MOP SCANNING ACTIVITIES.   
3DW2          BXE   2  FX2,NOSCAN          [J. OUT IF NOT FOUND 
3F*L          LDX   0  ATYPE(2) 
3FT=          ANDX  0  HALFTOP  
3G#W          BXU   0  SCANTYPE(1),NBLOK
3GSG          FON      #102,1              [OTHERWISE WAKE ONE UP AND   
3H#6          COOR3Y   #102                [SLEEP UNTIL ALL HAVE FINISHED.  
3HRQ    NOSCAN  
3J?B    #SKI  K6SETUP>99-99 
3JR2          TRACE    K7,*READY*   
3K=L    #              OUTPUT 'GEORGE READY' ON CONSOLE.
3KQ=          FON      #50                 [WAIT UNTIL ALL EMS OUTPUT FINISHED  
3L9W          COOR3    #53  
3LPG          HUNT2    2,CONSA,CNTRAL      [HUNT FOR CONSOLE ACTIVITY   
3M96          LINKSET  2,SLINK2(1)         [LINK TO K1CONSIN
3MB#    XFSHNBCONSA 
3MNQ    #              WAKE UP ACTIVITIES WAITING FOR END OF EMS
3N8B    #              AND INITIALISE GEORGE'S TIMERS.  
3NN2          STOZ     CHCHCOUNT           [INITIALISE COUNT OF CHAPTER CHANGES.
3P7L          STOZ     K7                  [CLEAR GEORGE'S TIMER.   
3PM=    #   
3Q6W          OFF      EMSBIT                  [CLEAR  EMS SWITCH BIT.  
3Q#4          OUTNUM   GMTNOW,0            [OUTPUT 'GEORGE MEAN 
3QF=          MONOUT   GMTIME              [TIME' MESSAGE   
3QLG          DOWN     MORNING,7           [OUTPUT GEORGE READY 
3R66          FON      #54  
3RKQ          DOWN     TWINSET,2
3S5B          ACROSS   SUICIDE,1
3SK2    #   
3T4L    #   
3TJ=    #SKI  CAMK7>5-5^G4  
3W3W    (   
3WHG    REWFIND                            [FOR USE BY LOCKC
3X36          SMO      FX2  
3XGQ          LDX   2  BPTR 
3Y2B          EXIT  1  0
3YG2    #   
3Y^L    Z3SETUP                            [OBEYED FROM EMS MT REWIND ACTIVITY  
3^F=    #     IN GEORGE 4 THE REWIND PERI IS NOT ISSUED UNTIL AFTER THE LONGLOCK
3^YW    #     AREA HAS BEEN ESTABLISHED SO THAT THE ACTIVITY WAITING FOR THE
42DG    #     END OF THE REWIND CAN  BE PUT INTO THIS AREA & WILL NOT BLOCK 
42Y6    #     THE SETTING UP OF THE OBJ PROGRAM AREA AFTER BACKMAP  
43CQ    #   
43XB    #     IN GEORGE 3 THE REWIND PERI IS SIMILARLY DELAYED IN CASE BACKMAP  
44C2    #     FINISHES BEFORE THE PERI AND THE REWIND ACTIVITY OBSTRUCTS AN 
44WL    #     OBJECT PROGRAM SWAP IN
45B=    #   
45TW          GETACT   AREWIND,,1          [SET UP ACT TO WAIT FOR END OF REWIND
46*G          LDX   3  BPTR(2)  
46T6          LINKSET  3,SLINK7(1)         [LINK TO K5SETUP 
47#Q          LDX   0  CPPTR(2) 
47SB          STO   0  CPPTR(3) 
48#2          LDN   0  7
48RL          DCA       ,STO,0,MODE 
49?=          LOCKC    3,REWFIND
49QW          CALL  1  REWFIND  
4==G          LDX   3  2
4=Q6          LDX   1  FX1  
4?9Q          LDX   2  FX2  
4?PB          GPERI     ,3  
4#92          SUICIDE                      [FINISH  
4#NL    #   
4*8=    Z5SETUP 
4*MW    #   
4B7G    )   
4BM6    #SKI  CAMK7<6-6*G3  
4C6Q    Z3SETUP                            [OBEYED FROM EMS *MT REWIND ACTIVITY 
4CLB          CLALLOC   
4D62          SUICIDE                      [FINISHED!   
4DKL    #   
4F5=    #     THIS SECTION OBTAINS & INITIALISES THE OBJECT PROG AREA   
4FJW    #     GEORGE 4 ONLY - MARK 6 ONWARDS
4FM5    #   
4FP#    #      AND WHAT'S MORE, THIS CODE BECOMES REDUNDANT WITH THE
4FRH    #     'VOPA IN G4' ENHANCEMENT (MK 8.40?)   
4FTQ    #   
4G4G    #SKIP G4
4GJ6    (   
4GP#    #SKI  G4VOPA<1$1
4GWG    (   
4H3Q    MINGEOAREA     #10000              [4K ) VALUE ARBITARY AS YET  
4HHB    MINPROGAREA    #20000              [8K )
4J32    OFFSET         +FPTR-ACTRING
4JGL    O41SETUP
4K2=          LDX   7  APROGAREA           [ IF APROGAREA IS ZERO, THE  
4KFW                                       [ REQD. AMOUNT IS CALCULATED 
4K^G          BNZ   7  R1   
4LF6          LDX   7  AFREE               [CALC SIZE OF OBJ PROG AREA AS 1/2   
4LYQ          SRL   7  1                   [OF FREE SPACE   
4MDB          ANDX  7  B2T13               [ROUND TO 1K & STORE 
4MY2          STO   7  APROGAREA
4NCL    R1  
4NX=          TXL   7  MINPROGAREA(1)      [ERROR IF PROG AREA TOO SMALL
4PBW          BCC      Z03  
4PWG    R2  
4QB6          GEOERR   0,PROGAREA   
4QTQ    Z03 
4R*B          LDX   0  AFREE
4RT2          SBX   0  7
4S#L          BXL   0  MINGEOAREA(1),R2    [ ERROR IF GEORGE AREA TOO SMALL.
4SS=          LDX   0  APTURNPAGS   
4T?W          BZE   0  R2   
4TRG          BXGE  0  7,R2 
4W?6          LDX   0  APTABPAGS
4WQQ          BZE   0  R2   
4X=B          BXGE  0  7,R2 
4XQ2    Z07   LDN   6  20                  [WAIT UNTIL ALL AUTOCLOSES FINISHED  
4Y9L    Z08   COOR2 
4YP=          BCT   6  Z08  
4^8W          LDN   2  BACT+ACTRING 
4^NG    Z09   LDX   2  FPTR(2)  
5286          BXE   2  BACTR,Z10
52MQ          SMO      OFFSET(1)
537B          LDX   0  ATYPE(2) 
53M2          SRL   0  12   
546L          SBN   0  BSA+AUTCLOSE 
54L=          BNZ   0  Z09  
555W          BRN      Z07  
55KG    Z10 
5656          COREFLUSH FCORES,7           [FLUSH OUT OBJ PROG AREA 
56JQ          DERING   FCORES   
574B          ADS   7  FCORES              [REMOVE AREA FROM GEORGE SPACE   
57J2          SBS   7  AFREE
583L    Z04   SBX   7  BIT11               [SET MAX QUOTA ONLY DONE HERE
58H=          STO   7  AMAXQUOTA           [TEMORARILY UNTIL SETUPARA DOES IT   
592W    #   
59GG    #     SETUP CORE FOR PAGE TABLES WE PUT ONE PAGE ON THE CHAIN TO
5=26    #     START WITH
5=FQ    #   
5=^B          LDN   0  1
5?F2          STO   0  CPAGTAB  
5?YL          LDX   3  AOBJSTART
5#D=          STOZ     0(3)                [CLEAR PAGE  
5#XW          STOZ     1(3) 
5*CG          LDN   4  2(3) 
5*X6          MOVE  3  512  
5BBQ          ADN   4  512  
5BWB          MOVE  3  510  
5CB2          STO   3  BPAGTAB             [& INSERT IT ON CHAIN OF PAGE
5CTL          STO   3  BPAGTAB+1           [TABLE PAGES 
5D*=          LDN   0  BPAGTAB  
5DSW          STO   0  FPTR(3)  
5F#G          STO   0  BPTR(3)  
5FS6          LDN   0  960                 [INITIALISE NO OF WORDS FREE 
5G?Q          STO   0  APAGSP(3)
5GRB    #   
5H?2    #     PUT THE REST OF THE PAGES IN THE OBJ PROG AREA ON FREE PAGE CHAIN 
5HQL    #   
5J==          LDX   7  APROGAREA
5JPW          SRL   7  10   
5K9G          SBN   7  1                   [NO OF PAGES 
5KP6          STO   7  AOBJFREE 
5L8Q          STO   7  COBJFREE 
5LNB          LDN   2  BOBJFREE            [PUT PAGES ON FREE PAGE CHAIN
5M82          BRN      Z06  
5MML    Z05   LDX   2  3
5N7=    Z06   ADN   3  1024 
5NLW          STO   3  FPTR(2)  
5P6G          STO   2  BPTR(3)  
5PL6          BCT   7  Z05  
5Q5Q          STO   3  BOBJFREE+1          [COMPLETE CHAIN  
5QKB          LDN   0  BOBJFREE 
5R52          STO   0  FPTR(3)  
5RJL          BRN      R41SETUP 
5S4=    )   
5S5*    #UNS  G4VOPA
5S6D    (   
5S6^    O41SETUP
5S7H          STOZ  AOBJFREE
5S8L          STOZ  COBJFREE
5S9P          BRN   R41SETUP
5S=S    )   
5S#4    )   
5S#6    #UNS AV7900S
5S#8    (   
5S#=    [     SUBROUTINE SV7900CORE 
5S##    #   
5S#B    #     SUBROUTINE TO SET UP A DEVICE LIST AND AMOP/IPBIN ACTIVITY FOR
5S#D    #     A VIRTUAL 7900 . THIS SUBROUTINE COORDINATES .
5S#G    #     ON ENTRY X6 = THE OPS UNIT NUMBER OF THE VIRTUAL 7900 IN B15-23 ; 
5S#J    #     B0=1 IF UNIT IS MOPPED ON IN THE IDF .
5S#L    #     ON EXIT X3 -> THE V7900 DEVICE LIST ; X1= FX1 ; X2 = FX2  
5S#N    #     LINK IN X7 .  
5S#Q    [   
5S#S    [     SUBROUTINE SV7900CORE'S PRESETS   
5S#W    [   
5S#Y    PJK52BTOF      #00040000           [JK52B : B9 ALWAYS SET   
5S*2                   #03000000           [JK52C : PERIPHERAL TYPE 24  
5S*4                   0,0                 [JK52D,JK52E 
5S*6                   #40000200           [JK52F : STAN. INTERF.,WRONGABLE 
5S*8    #DEF  P1LEN = 0? - PJK52BTOF
5S*=    PIPBINLINK  
5S*# ...      LINK     IPBSTARB,10  
5S*B    PIPBINSW       #10040004           [ACTIVITY IS A VIRTUAL 7900(B9) AND  
5S*D    [                             AND GLOBAL TERM WORKS(B21)
5S*G                                       [IS ASLEEP(B2)   
5S*J    [   
5S*L    [     SUBROUTINE SV7900CORE'S SUBROUTINES   
5S*N    [   
5S*Q    #              S/R'S USED BY LOCKC TO REFIND THE BLOCK TO BE LOCKED 
5S*S    SLOCKCHUNT  
5S*W          MHUNTW   2,APERI,AV7900   
5S*Y          EXIT  1  0
5SB2    SLOCKCHUNTA 
5SB4          SMO      FX2  
5SB6          LDX   2  BPTR 
5SB8          EXIT  1  0
5SB=    [   
5SB#    [     SUBROUTINE SV7900CORE'S MAIN PATH 
5SBB    [   
5SBD    SV7900CORE  
5SBG          SBX   7  FX1                 [RELATIVISE LINK 
5SBJ    #              SET UP A VIRTUAL 7900 DEVICE LIST BLOCK (APERI/AV7900)   
5SBL          LDN   4  K54-A1              [LOGICAL LENGTH OF BLOCK 
5SBN          SETUPCORE 4,3,APERI,AV7900,1,1 [RING ELEMENT IS SET NULL  
5SBQ    #              INITIALISE THE VIRTUAL 7900 DEVICE LIST BLOCK
5SBS          EMPTY    AVOLPARING(3)       [SET RING ELEMENT TO AN EMPTY STATE  
5SBW          STOZ     AVCREADS(3)         [ZEROISE BLOCK AFTER RING ELEMENT
5SBY          LDN   4  AVCREADS(3)  
5SC2          LDN   5  AVCWRITES(3) 
5SC4          MOVE  4  K54-A1-2-1   
5SC6          LDN   4  PJK52BTOF(1)        [MOVE IN PRESET INFO 
5SC8          LDN   5  JK52B(3) 
5SC=          MOVE  4  P1LEN
5SC#          DEX   6  JK52C(3)            [INSERT VIRTUAL 7900 UNIT NUMBER 
5SCB    #              SET UP AN AMOP/IPBIN ACTIVITY FOR THE VIRTUAL 7900   
5SCD          LDN   4  AMOP+IPBIN   
5SCG          SLL   4  12   
5SCJ          LDN   5  BMOPLEN+IPBINLEN 
5SCL          GETACTX  4,5,1
5SCN    #              INTIALISE REST OF DEVICE LIST AND INITIALISE ACTIVITY
5SCQ          MHUNTW   3,APERI,AV7900      [DEVICE LIST 
5SCS          LOCKC    3,SLOCKCHUNT        [LOCK DL 
5SCW          LDX   2  BPTR(2)             [GET ADDRESS OF AMOP/IPBIN ACTIVITY  
5SCY          LOCKC    2,SLOCKCHUNTA       [LOCK ACT
5SD2          MHUNTW   3,APERI,AV7900      [MANDATORY HUNT AFTER LOCKC  
5SD4          LDX   2  BPTR(2)             [GET ADDRESS OF AMOP/IPBIN ACTIVITY  
5SD6          STO   2  AVAPIAENTRY+1(3)    [STORE AMOP/IPBIN ADDRESS IN PSEUDO  
5SD8                                       [APIA ENTRY IN THE DEVICE LIST   
5SD=          LDN   0  AVAPIAENTRY(3)      [STORE POINTER TO PSEUDO APIA ENTRY  
5SD#          STO   0  JADDP(3)            [IN THE DEVICE LIST  
5SDB          STO   3  CPPTR(2)            [STORE DEVICE LIST POINTER IN ACT BLK
5SDD          LDX   0  PIPBINSW(1)         [SET AMOP/IPBIN.IPBSW TO INDICATE A  
5SDG          STO   0  IPBSW(2)            [VIRTUAL 7900 ACT WHICH IS ASLEEP
5SDJ          BPZ   6  SIPBLIST            [VIRTUAL 7900 NOT MARKED MOPPED ON   
5SDL          STO   6  CHAINADD(2)         [SET AMOP/IPBIN'S CHAINADD NEGATIVE  
5SDN                                       [TO SIMULATE A MOPPED ON,INOPERABLE  
5SDQ                                       [7900 TO MOPCOM  
5SDS          LINKSET  2,PIPBINLINK(1)     [SET LINK IN AMOP/IPBIN ACT BLK  
5SDW          SETALLOC CPPTR(2)            [SET THE ALLOCATED (MOPPED ON) FLAG  
5SDY                                       [IN THE DEVICE LIST  
5SF2    #              NOTE NO FURTHER MOP ON ACTION IS TAKEN HERE . MOP ON OF A
5SF4    #              VIRTUAL 7900 IS NOT COMPLETED UNTIL THE PROGRAM ISSUES   
5SF6    #              ITS FIRST WMC READ FOR THE INITIALISE SEGMENT FROM G3
5SF8    #              (IE THE V7900 BECOMES OPERABLE) . BEFORE THE READ IS 
5SF=    #              ISSUED THE RESOURCES USED ARE THE SAME WHETHER MOPPED ON 
5SF#    #              OR OFF . 
5SFB    SIPBLIST
5SFD    #              INSERT AMOP/IPBIN IN LIST OF AMOP/IPBINS (IPB LIST)  
5SFG          LDX   4  IPBADDR             [INSERT AT FRONT OF LIST AS SETUPA   
5SFJ          STO   2  IPBADDR             [DOES
5SFL          STO   4  IPBL(2)  
5SFN    #              CHAIN THE VIRTUAL 7900 DEVICE LIST ON THE BACK OF THE
5SFQ    #              MISCELLANEOUS CHAIN .
5SFS          CHAIN    3,BMISC+BPTR 
5SFW    #              SET X2 = FX2 AND EXIT (X1 ALREADY = FX1) 
5SFY          LDX   2  FX2  
5SG2          ADX   7  FX1  
5SG4          EXIT  7  0
5SG6    #   
5SG8    #   
5SG=    Z8SETUP 
5SG#    #   
5SGB    #     THIS ENTRY POINT SETS UP A VIRTUAL 7900 IN CORE, IE IT SETS UP
5SGD    #     A DEVICE LIST AND AMOP/IPBIN ACTIVITY FOR A VIRTUAL 7900 .
5SGG    #     IT IS A SUBROUTINE FOR SETIDF AND IS ENTERED BY SETIDF DURING EMS,
5SGJ    #     IF THERE ARE VIRTUAL 7900'S DEFINED IN THE IDF, AND AFTER EMS,
5SGL    #     WHEN IMPLEMENTING A MAKEVCC COMMAND . 
5SGN    #     ON ENTRY ACOMMUNE1 = THE OPS UNIT NUMBER OF THE VIRTUAL 7900 IN   
5SGQ    #     B15-23 ; B0=1 IF UNIT IS MOPPED ON IN THE IDF .   
5SGS    #     ON EXIT ACOMMUNE1 -> THE V7900 DEVICE LIST
5SGW    #   
5SGY          LDX   6  ACOMMUNE1(2) 
5SH2          CALL  7  SV7900CORE   
5SH4          STO   3  ACOMMUNE1(2) 
5SH6          UP
5SH8    #   
5SH=    )   
5T2W    #   
5TGG    #   
8TNL    #END
^^^^ ...50271152000400000000