COMSMMF 
COMMON
          CTEXT  COMSMMF - MULTI-MAINFRAME EQUIVALENCES.
          BASE   M
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4
***       COMSMMF - MULTI-MAINFRAME EQUIVALENCES. 
*         D. A. HIVELEY.     74/12/09.
          SPACE  4
***              COMSMMF DESCRIBES THE LAYOUT OF THE LINK DEVICE
*         WHICH IS UTILIZED BY MULTI-MAINFRAME. IN ADDITION 
*         COMSMMF PROVIDES EQUIVALENCES WHICH ARE USED BY ANY PROGRAMS
*         THAT REFERENCE AREAS OF THE LINK DEVICE THAT RELATE 
*         TO MULTI-MAINFRAME. 
          SPACE  4,10 
*         DEFINE MAXIMUM NUMBER OF MAINFRAMES.
  
 MXMF     EQU    4           MAXIMUM NUMBER OF MAINFRAMES 
          ERRNG  4-MXMF      CODE CAN HANDLE UP TO 4 MAINFRAMES 
  
 MISD     EQU    20          MAXIMUM NUMBER OF MAINFRAMES THAT CAN
                             ACCESS AN INDEPENDENT SHARED DEVICE
 MMPF     MAX    MXMF,MISD   MAXIMUM NUMBER OF MAINFRAMES THAT CAN
                             ACCESS A PERMANENT FILE
          SPACE  4,10 
*         INSTALLATION PARAMETERS.
  
  
 NBIR     EQU    20          NUMBER OF BAT INTERLOCK RETRIES
  
 NBRR     EQU    10          NUMBER OF BRT REQUESTS TO REJECT 
          SPACE  4
***              FOLLOWING IS THE BREAKDOWN OF THE LABEL TRACK FOR THE
*         LINK DEVICE. THE DEFINITION OF THE FIRST 16B SECTORS (0-15B)
*         IS THE SAME FOR ALL MASS STORAGE DEVICES. THE NEXT SECTOR 
*         (ENVIRONMENT TABLE) IS USED ONLY ON THE LINK DEVICE.
*         THE STORAGE MOVE SECTOR IS USED ONLY IN ECS.
  
  
 LSLT     EQU    0           LABEL SECTOR 
 TRLT     EQU    1 - 12      TRACK RESERVATION TABLE
 LMLT     EQU    13          SECTOR OF LOCAL AREAS
 DILT     EQU    14          DEVICE INFORMATION SECTOR
*         EQU    15          UNUSED 
 ETLT     EQU    16          ENVIRONMENT TABLE
 SMLT     EQU    17          STORAGE MOVE AREA
          SPACE  4,10 
***              THE MRT-S FOR INDEPENDENT SHARED DEVICES RESIDE ON 
*         THE LABEL TRACK.
  
  
 MRTL     EQU    17 - 36     ISD MRT SECTORS
          SPACE  4,10 
**        THE DESCRIPTION OF THE LABEL SECTOR IS GIVEN IN *COMSLSD*.
*         DESCRIPTIONS OF THE *MST* AND THE *TRT* CAN BE FOUND
*         IN *PPCOM*. 
 DILT     SPACE  4,10 
***       THE DEVICE INFORMATION SECTOR IS ALLOCATED AS FOLLOWS.
  
  
 SMIT     EQU    0           SECTOR MODIFICATION DATE/TIME
*         EQU    1 - 7       RESERVED 
 MNIT     EQU    10          MINIMUM USER-SPECIFIED INDEX 
 MDIT     EQU    10          MASTER DEVICE INHIBIT DATE/TIME
 RDIT     EQU    11          RESIDENT DEVICE INHIBIT DATE/TIME
*         EQU    12 - 77     RESERVED 
          SPACE  4
***              THE ENVIRONMENT TABLE SECTOR IS BROKEN DOWN IN THE 
*         FOLLOWING MANNER. 
  
  
 BEGIN    BSSN   0
 MFET     BSSN   MXMF        *MMFL* FOR EACH MAINFRAME
 SMET     BSSN   MXMF        SYSTEM TIME FOR EACH MAINFRAME 
 DAET     BSSN   1           DAT POINTERS 
 FAET     BSSN   1           FAT POINTERS 
 FRET     BSSN   18D         FLAG REGISTER INTERLOCK IDENTIFICATIONS
 BAET     BSSN   1           BAT/BRT/BDT POINTERS 
 IBDT     BSSN   MXMF        I/O BUFFER DEFINITION TABLE
          BSSN   70-*        RESERVED 
 INET     BSSN   100-70      INSTALLATION AREA
 END      BSSN
  
  
**        THE ABOVE WORDS HAVE THE FOLLOWING FORMATS. 
* 
* 
*T  MFET  60/ (SEE *MMFL* IN *PPCOM*) 
*T, SMET  60/ (SEE *PDTL* IN *PPCOM*) 
*T, DAET  12/NTP,36/RESERVED,12/DAC 
*T, FAET  48/RESERVED,12/FAC
*T, FRET  48/,12/  MIN
*T, BAET  12/FBR,12/FBD,24/RESERVED,12/NBT
* 
*         NTP = NEXT TRACK IN DAT CHAIN AVAILABLE FOR USE 
*         DAC = DAT ENTRY COUNT, POINTS TO NEXT AVAILABLE ENTRY 
*         FAC = FAT ENTRY COUNT, POINTS TO NEXT AVAILABLE ENTRY 
*         MIN = MACHINE INDEX 
*         FBR = FIRST TRACK OF BRT. 
*         FBD = FIRST TRACK OF BDT. 
*         NBT = NEXT AVAILABLE BAT TRACK. 
* 
*   NOTE- THE *FRET* TABLE CONTAINS ONE WORD FOR EACH FLAG REGISTER 
*         BIT. THE ENTRIES IN THIS TABLE SHOULD BE INDEXED BY THE 
*         EQUIVALENCED TAGS DEFINED BELOW FOR THE FLAG REGISTER.
          SPACE  4
***       WORDS *DAET* AND *FAET* ABOVE POINT TO THE DAT/FAT TRACK
*         CHAIN. THE FIRST TRACK OF THIS CHAIN CONTAINS THE 
*         DAT (DEVICE ACCESS TABLE) AND THE FAT (FAST ATTACH
*         TABLE). THERE IS ONE ADDITIONAL TRACK IN THIS CHAIN 
*         FOR EACH SHARED DEVICE DEFINED IN THE COMPLEX, WHICH
*         CONTAINS THE MST AND TRT FOR THAT DEVICE. 
* 
* 
*         THE FORMAT OF THE DAT IS AS FOLLOWS.
* 
*T  DAT   42/FAMILY NAME OR PACK NAME,6/DN,12/MST 
*T, DAT+1 24/BAT,24/RESERVED,12/STATUS
* 
*                DN = DEVICE NUMBER 
*                MST = EM TRACK OF MST/TRT, IF SHARED DEVICE. 
*                BAT = EM ADDRESS OF BAT, IF SHARED BUFFERED DEVICE.
*                STATUS = 11    DEVICE RECOVERY IN PROGRESS 
*                         10-0  MASKS OF MACHINES ACCESSING DEVICE
* 
* 
*         THE FAT (FAST ATTACH TABLE) ENTRY HAS THE FOLLOWING FORMAT. 
* 
*T  FAT   42/ FAST ATTACH FILE NAME,18/ 0 
*T, FAT+1 12/ 1ST TRACK ,12/ RM,6/ RA,6/ R,4/ W,6/ RU,1/N,1/0 
*T, FAT+2 12/ MID 1,12/ ,12/ RM,6/ RA,6/ R,4/ W,6/ RU,1/N,1/0 
*T, FAT+3 12/ MID 2,12/ ,12/ RM,6/ RA,6/ R,4/ W,6/ RU,1/N,1/0 
*T, . 
*T, . 
*T, FAT+MXMF+1 12/ MID MXMF,12/ ,12/ RM,6/ RA,6/ R,4/ W,6/ RU,1/N,1/0 
*T, FAT+MXMF+2 42/ FAMILY NAME,6/ DN,12/ 0
* 
*         RM     USER COUNT FOR READ ALLOW MODIFY ACCESS. 
*         RA     USER COUNT FOR READ ALLOW APPEND ACCESS. 
*         R      USER COUNT FOR READ ACCESS.
*         W      MODE OF ATTACH.
*                10 = UPDATE. 
*                 7 = WRITE.
*                 3 = MODIFY. 
*                 1 = APPEND. 
*         RU     USER COUNT FOR READ ALLOW UPDATE ACCESS. 
*         N      NON-ROLLABLE OPTION FLAG.
*         DN     DEVICE NUMBER. 
  
  
 FAST     EQU    10          FAST ATTACH SECTOR NUMBER
  
          IFGT   3+MXMF,10
 FATL     EQU    20          FAT ENTRY LENGTH FOR *MXMF* .GT. 5 
 FATS     EQU    4           SHIFT COUNT TO COMPUTE FAT ADDRESS 
          ELSE
 FATL     EQU    10          FAT ENTRY LENGTH FOR *MXMF* .LE. 5 
 FATS     EQU    3           SHIFT COUNT TO COMPUTE FAT ADDRESS 
          ENDIF 
  
  
**        THE ADDITIONAL TRACKS IN THIS CHAIN ARE DEFINED 
*         IN THE FOLLOWING MANNER.
  
  
 MSST     EQU    0           MST SECTOR 
 MGST     EQU    0 - 11      GLOBAL AREA OF MST 
 MLST     EQU    12 - XX     LOCAL AREAS (*MXMF*) OF MST (6 WORDS EACH) 
*         EQU    XX - 77     RESERVED 
          ERRNG  100-MLST-MXMF*6  LOCAL AREAS OVERFLOW MST SECTOR 
  
 TRST     EQU    1 - 11      TRT SECTORS
 MRST     EQU    11 - 17     MRT SECTORS (MAXIMUM OF 7) 
          ERRNG  20-MRST-MXMF  MRT SECTOR OVERFLOW
          SPACE  4,30 
***       WORD *BAET* ABOVE POINTS TO THE BRT/BDT/BAT TRACK CHAIN.
*         THE FIRST TRACK CONTAINS THE BRT-S FOR ALL MAINFRAMES.
*         THE SECOND TRACK CONTAINS THE BDT-S FOR ALL DEVICES.
*         EACH ADDITIONAL TRACK CONTAINS CONTAINS A SINGLE BAT. 
* 
* 
*         THE BUFFER REQUEST TABLES (BRT-S) ARE INDEXED BY MAINFRAME
*         INDEX, WITH 400B WORDS (ONE HEADER WORD AND 377B ENTRIES) 
*         FOR EACH BRT.  THE BRT HAS THE FOLLOWING FORMAT.
* 
*T BRT    12/ CT,12/ R1,12/ R2,12/ R3,12/ R4
*T,BRT+N  12/ EST,12/ TR,1/M,7/RESERVED,4/MASK,24/ MST ADDR 
* 
*         CT     TOTAL NUMBER OF ACTIVE REQUESTS IN THE BRT.
*         R(N)   INDEX OF THE LAST REQUEST OF INTEREST TO MF WITH MI N. 
*         EST    EST ORDINAL FOR DEVICE.
*         TR     TRACK. 
*         M      MODE REQUIRED. 
*                0 = READ.
*                1 = WRITE. 
*         MASK   MACHINE MASK FOR MF-S HOLDING CONFLICTING ACCESS.
*         MST ADDR  EXTENDED MEMORY ADDRESS OF MST FOR DEVICE.
* 
* 
*         THE BUFFERED DEVICE TABLE (BDT) CONTAINS A ONE-WORD ENTRY 
*         FOR EACH SHARED BUFFERED DEVICE.  THE ENTRIES ARE INDEXED 
*         BY THE DAT INDEX.  THE BDT HAS THE FOLLOWING FORMAT.
* 
*T,       1/E,11/ EMI,1/R,11/ RMI,36/ CSN 
* 
*         E = *DAS* ERROR PROCESSING INTERLOCK. 
*         EMI = MACHINE INDEX OF THE MF WHICH HOLDS THE INTERLOCK.
*         R = RESTORE IN PROGRESS INTERLOCK.
*         RMI = MACHINE INDEX OF THE MF PERFORMING THE RESTORE. 
*         CSN = SERIAL NUMBER (DISPLAY CODE) OF THE CONTROLLER
*               PERFORMING THE RESTORE. 
* 
*         IF THE RESTORE INTERLOCK IS SET, THE ERROR PROCESSING 
*         INTERLOCK MAY ONLY BE SET BY THE SAME MAINFRAME.  IF THE
*         ERROR PROCESSING INTERLOCK IS SET, THE RESTORE INTERLOCK
*         MAY NOT BE SET.  NEITHER INTERLOCK MAY BE SET WHILE THE 
*         THE FLAG REGISTER BIT *BDRI* IS SET.  IF EITHER INTERLOCK IS
*         SET FOR ANY DEVICE, AN ATTEMPT TO SET THE FLAG REGISTER BIT 
*         *BDRI* WILL SET THE BIT AND RETURN AN *INCOMPLETE* STATUS.
* 
* 
*         ONE TRACK WILL BE ALLOCATED IN THE BRT/BDT/BAT TRACK CHAIN
*         TO CONTAIN THE BUFFER ACCESS TABLE (BAT) FOR EACH SHARED
*         BUFFERED DEVICE.  THE BAT IS 1000B WORDS LONG.  FOR EACH
*         TRACK, THE BAT CONTAINS A 12 BIT FIELD.  EACH 60-BIT WORD 
*         OF THE TABLE CONTAINS FOUR 12-BIT ENTRIES, FOLLOWED BY
*         12 BITS OF ZERO.  THE FORMAT OF EACH ENTRY IS AS FOLLOWS. 
* 
*T        4/RMM, 4/WMM, 1/URW, 3/RESERVED 
* 
*         RMM = MACHINE MASKS OF ALL MAINFRAMES HOLDING READ ACCESS.
*         WMM = MACHINE MASK OF THE ONE MAINFRAME HOLDING WRITE ACCESS. 
*         URW = 1, IF MF HOLDING WRITE ACCESS IS UNABLE TO RELEASE IT.
  
  
 BRTL     EQU    400B        LENGTH OF BRT
          ERRNZ  400B-BRTL   *MTE* REQUIREMENT
  
 BATL     EQU    1000B       LENGTH OF BAT
          ERRNZ  1000B-BATL  *MTE* REQUIREMENT
          SPACE  4
***              THE FLAG REGISTER IS USED TO INTERLOCK 
*         PROCESSING ON THE LINK DEVICE. THE FOLLOWING
*         EQUIVALENCES ARE UTILIZED FOR THAT PURPOSE. 
 FLAG     SPACE  4,10 
**        FLAG - DEFINE FLAG REGISTER BITS. 
* 
*BIT      FLAG
*                BIT = NAME OF FLAG BIT BEING DEFINED.
  
  
          PURGMAC  FLAG 
  
          MACROE FLAG,BIT 
 BIT      EQU    .1 
 .2       DECMIC .1,2 
 .BIT     EQU    1BS".2"
 .1       SET    .1+1 
 FLAG     ENDM
  
 .1       SET    MXMF        *TRTI* OWNER MACHINE MASK
 TRTI     FLAG               TRT INTERLOCK
 DATI     FLAG               DAT INTERLOCK
 PRSI     FLAG               PRESET INTERLOCK 
 COMI     FLAG               *IFR* COMMUNICATION REQUESTED FLAG 
 BTRI     FLAG               BLOCK TRANSFER INTERLOCK 
 IFRI     FLAG               INTER-MACHINE FUNCTION REQUEST INTERLOCK 
 FATI     FLAG               FAT INTERLOCK
 CIRI     FLAG               *CPUMTR*/*MTE* INTERLOCK RECOVERY
 BATI     FLAG               BAT INTERLOCK
 BDTI     FLAG               BDT INTERLOCK
 BDRI     FLAG               BUFFERED DEVICE RECOVERY INTERLOCK 
 DSRI     FLAG               DAS SLAVE RESET INTERLOCK
          ERRNG  18D-.1      FLAG REGISTER BIT OVERFLOW 
          SPACE  4,10 
**        MMF TABLES. 
* 
*         THE FOLLOWING MMF TABLES RESIDE IN *CPUMTR* MEMORY. 
*         BYTES 0 AND 1 OF *EFRL* CONTAIN THE FWA OF THESE TABLES.
  
 MXQP     EQU    100B        MAXIMUM QUEUE ENTRIES (*MTET*/*MTBT*)
  
 BEGIN    BSSN   0
 MFST     BSSN   MXMF        MMF STATE TABLE
 MTET     BSSN   MXQP        *MTE* REQUEST QUEUE (LSPMMF ONLY)
 MTQP     BSSN   1           *MTET* END OF QUEUE POINTER
 MTIN     BSSN   1           *MTBT* QUEUE IN POINTER
 MTOT     BSSN   1           *MTBT* QUEUE OUT POINTER 
 MTBT     BSSN   MXQP        BAT REQUEST QUEUE (DAS MMF ONLY) 
 END      BSSN
 MFST     SPACE  4,15 
**        MFST - MAINFRAME STATE TABLE. 
* 
*         A TABLE IS MAINTAINED IN *CPUMTR* MEMORY TO KEEP TRACK
*         OF MACHINE DOWN PROCESSING. 
*         THIS TABLE PROVIDES THE MEANS OF COMMUNICATION BETWEEN
*         *CPUMTR*, *DSD*, AND *1MR* FOR MMF SYSTEMS, OR
*         *MTE*, *DSD*, AND *1MR* FOR LOW SPEED PORT MMF SYSTEMS. 
* 
*         THIS TABLE IS ONE CM WORD PER MACHINE INDEXED BY
*         MACHINE INDEX.
* 
*T,       42/  MMF,18/  ST
* 
*         MMF = SAME DATA AS IN *MMFL* WORD FOR MACHINE.
*         ST = STATE OF MACHINE AS DEFINED BELOW. 
 MTET     SPACE  4,15 
**        MTET - *MTE* QUEUE OF REQUESTS. 
* 
*         THE *MTE* QUEUE OF REQUESTS CONTAINS PROCESSING REQUESTS
*         MADE BY *CPUMTR* TO *MTE* FOR THE PURPOSE OF INTERFACING
*         TO EXTENDED MEMORY WHEN IN LOW SPEED PORT MMF MODE. 
* 
*         THESE REQUESTS TAKE ON THE FOLLOWING FORMAT.
* 
*         36/,12/  OA,12/  PPRF 
* 
*         OA = OUTPUT REGISTER ADDRESS OF PP FUNCTION TO PROCESS. 
* 
*         12/  FWA, 1/M, 2/,9/  LWA,12/  OA,12/  MST,12/  CDIF
* 
*         FWA = FIRST WORD OF TRT TO WRITE TO EXTENDED MEMORY.
*         M   = 1, IF NEED TO WRITE MRT.
*         LWA = LAST WORD + 1 OF TRT TO WRITE TO EXTENDED MEMORY. 
*         OA  = ADDRESS OF PP OUTPUT REGISTER WHOSE UPPER BYTE SHOULD 
*               BE CLEARED. 
*         MST = MST ADDRESS/10B OF EQUIPMENT FOR WHICH TO CLEAR THE 
*               DEVICE INTERLOCK. 
 MTE      SPACE  4,10 
**        *MTE* FUNCTION CODES. 
* 
*         THE FOLLOWING TAGS DEFINE FUNCTIONS PASSED FROM *CPUMTR* TO 
*         *MTE* THROUGH *MTET*. 
  
  
 BEGIN    BSSN   1
 PPRF     BSSN   2           PROCESS PP OUTPUT REGISTER REQUEST 
 CDIF     BSSN   2           CLEAR DEVICE INTERLOCK 
 END      BSSN
 MTBT     SPACE  4,10 
**        MTBT - *CPUMTR* TO *MTE* REQUEST QUEUE. 
* 
*         THIS QUEUE IS USED BY *CPUMTR* TO SEND BAT ACCESS REQUESTS
*         TO *MTE* WHEN SHARED BUFFERED DEVICES ARE PRESENT.
* 
*         THESE REQUESTS TAKE ON THE FOLLOWING FORMAT.
* 
*         12/  EST,12/  TRACK,1/M,11/,24/  0
* 
*         EST = EST ORDINAL.
*         M = MODE OF ACCESS (READ/WRITE).
          SPACE  4,10 
**        MAINFRAME STATE DEFINITIONS.
* 
*         THE FOLLOWING DEFINES THE STATES A MACHINE IS IN FOR
*         CONTROLLING DOWN MACHINE PROCESSING.
  
  
 BEGIN    BSSN   0
 MFDN     BSSN   1           MACHINE IS DOWN
 MFAC     BSSN   1           MACHINE IS ACTIVE
 MFD1     BSSN   1           MACHINE HAS BEEN SENSED DOWN ONCE
 MFD2     BSSN   1           MACHINE HAS BEEN SENSED DOWN TWICE OR MORE 
 MFDA     BSSN   1           MACHINE HAS BEEN ACKNOWLEGED TO BE DOWN
 MFCD     BSSN   1           MACHINE HAS HAD FLAG INTERLOCKS CLEARED
 MFMR     BSSN   1           MACHINE HAS HAD *1MR* INITIATED
  
 MFMX     BSSN   0           MAXIMUM STATES 
 END      BSSN
          SPACE  4,10 
*         DIRECT CELL AND DATA LOCATIONS COMMON TO *RMS* AND *0MF*
*         ARE DEFINED AS FOLLOWS. 
          SPACE  4,10 
 MMF$     IF     DEF,MMF$ 
 PP       IFPP
          SPACE  4,10 
 FS       EQU    20 - 24     CM WORD BUFFER (5 LOCATIONS) 
 TW       EQU    26          CONSTANT TWO 
 QT       EQU    27          QUEUED FILE TRACK (4DA)
 CN       EQU    30 - 34     CM WORD BUFFER (5 LOCATIONS) 
 QS       EQU    35          QUEUED FILE SECTOR (4DA) 
 QI       EQU    36          QUEUE INDEX (4DA)
 FN       EQU    40 - 44     EST ENTRY
 EQ       EQU    IR+3        EST ORDINAL
 RS       EQU    IR+4        RECOVERY STATUS
 CA       EQU    64 - 65     CENTRAL ADDRESS
 P1       EQU    66          SCRATCH
 P2       EQU    67          SCRATCH
          SPACE  4,10 
 BAEI     EQU    PPFW        *BAET* IMAGE BUFFER
 PP       ENDIF 
 MMF$     ENDIF 
          SPACE  4
          BASE   *
          ENDX
