{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: SETUP867)}}
====== SETUP867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLALLOC|CLALLOC]], [[george:macro:COOR1X|COOR1X]], [[george:macro:COOR2|COOR2]], [[george:macro:COOR3|COOR3]], [[george:macro:COOR3Y|COOR3Y]], [[george:macro:DCA|DCA]], [[george:macro:DERING|DERING]], [[george:macro:DOWN|DOWN]], [[george:macro:EMPTY|EMPTY]], [[george:macro:FON|FON]], [[george:macro:FPUT|FPUT]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:FSHTEST|FSHTEST]], [[george:macro:FWAIT|FWAIT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:GETACTX|GETACTX]], [[george:macro:GPERI|GPERI]], [[george:macro:HUNT2|HUNT2]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCKC|LOCKC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OFF|OFF]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:PAIR|PAIR]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETALLOC|SETALLOC]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]]
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