IDENT 0MF,ILDX PERIPH J BASE M SST *COMMENT 0MF - INITIALIZE MMF LINK DEVICE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE 0MF - INITIALIZE MMF LINK DEVICE. SPACE 4 *** 0MF - INITIALIZE MMF LINK DEVICE. * P. D. HAAS 75/07/14. SPACE 4 *** 0MF IS RESPONSIBLE FOR INITIALIZATION OF THE * MULTI-MAINFRAME LINK DEVICE (ECS). SPACE 4 *** ENTRY CONDITIONS. * * * (EQ) = ECS EST ORDINAL. * (RS) = RECOVERY STATUS. * (TW) = CONSTANT TW0. * (P1) = TOTAL NUMBER OF DEVICES TO PRESET. * (P2) = NUMBER OF BUFFERED DEVICES TO PRESET. * (CN - CN+4) = *ALGL* WORD OF MST FOR ECS. * (FN - FN+4) = EST ENTRY FOR ECS. SPACE 4 *** EXIT CONDITIONS. * * * ECS RESIDENT INITIALIZED. * *PRSI* INTERLOCK CLEARED. * (QT) = CURRENT *DAT* TRACK. * (QI) = CURRENT *DAT* INDEX. * (BAEI - BAEI+4) = IMAGE OF *BAET* ENVIRONMENT TABLE WORD. SPACE 4 *CALL COMPMAC *CALL COMPREL *CALL COMSCPS *CALL COMSMSP *CALL COMSMST LIST X MMF$ EQU 1 INITIALIZE COMSMMF DIRECT CELLS *CALL COMSMMF LIST * *CALL COMSZOL TITLE MAIN ROUTINE. ** ILD - MAIN ROUTINE. ORG 5 ILD SUBR ENTRY/EXIT SFA EST,EQ ADK EQAE CRD CM LDD CM+2 PRESET EM TRACK SHIFT COUNT SHN -6 LPN 3 RAM ILDF STM ILDH LDD LA BIAS INSTRUCTIONS BY LOAD ADDRESS RAM ILDA STM ILDB STM ILDC * RESERVE DAT/FAT TRACK CHAIN. LDN ZERL CRD CM LDD EQ SET EST ORDINAL IN REQUEST STD CM+1 LDD RS NJN ILD2 IF RECOVERY SELECTED LDD CN+4 ZJN ILD1 IF NO DAT/FAT TRACK CHAIN STD CM+2 MONITOR DTKM RELEASE DAT/FAT TRACK CHAIN ILD1 LDD EQ SET EST ORDINAL STD CM+1 LDD P1 NUMBER OF SHARED DEVICES ILDF SHN 4 CONVERT TRACK COUNT TO SECTOR COUNT * SHN 4+EMSC (EMSC = EM TRACK SHIFT COUNT) ADN 1 ADDITIONAL TRACK FOR DAT-S AND FAT-S STD CM+4 SHN -14 STD CM+3 MONITOR RTCM LDD CM+4 SET FIRST TRACK IN *ALGL* STD CN+4 STD CM+2 LDN SPFS SET PRESERVED FILE STATUS STD CM+3 LDC 4000 INCLUDE CHECKPOINT REQUEST RAD CM+1 MONITOR STBM ILD2 LDD FN+4 STORE DEVICE ALLOCATION WORD SHN 3 ADN ALGL CWD CN SBN ALGL-SDGL GET SHARED DEVICE WORD CRD FS ADN PFGL-SDGL READ PF DESCRIPTOR WORD CRM. ILDD,ON ILDA EQU *-1 * SETUP *DAET* IN ENVIRONMENT TABLE SECTOR. LDD FN+4 READ TRT WORD SHN 3 ADN TRLL CRD CM LDD CM+3 LPN 77 RAM ILDE SET FWA OF TRT STM SNTA LPN 77 SHN 14 LMD CM+4 STM ILDE+1 STM SNTA+1 LDD CN+4 SET *DAT* TRACK FOR LINK DEVICE RJM SNT SET NEXT TRACK STM ILDD+4 SET TRACK IN *DAT* ENTRY STD QT STD T6 LDN 0 STD T7 RJM CEA CONVERT ECS ADDRESS LDD CM+3 STD FS LDD CM+4 SET ABSOLUTE MST/TRT ADDRESS STD FS+1 LDD HN SET ONE TRT ACCESS STD FS+4 LDD FN+4 STORE DRIVER ACTIVITY WORD SHN 3 ADN SDGL CWD FS LDD CN+4 SET FIRST TRACK IN *DAT* CHAIN STD T6 STM ILDG LDN ZERL CRD FS LDN 0 SET WORD COUNT STD CM+1 LDD QT SET CURRENT TRACK IN *DAET* IMAGE STD FS LDN 2 SET *DAT* INDEX STD QI STD FS+4 LDD MA MOVE *DAET* IMAGE TO BUFFER CWD FS STD CM+2 SET BUFFER ADDRESS LDD CN+1 SET LABEL TRACK STD T6 STM ILDK LDN ETLT CONVERT ENVIRONMENT TABLE SECTOR ADDRESS STD T7 RJM CEA LDN DAET RAD CM+4 SHN -14 ADC WECS*1000 SET WRITE FUNCTION RAD CM+3 MONITOR ECSM STORE *DAET* WORD LDD RA STORE *DAT* ENTRY IN CM COPY OF *DAT* SHN 6 ADD CA+1 CWM. ILDD,TW ILDC EQU *-1 LDD TH ADVANCE TRT BUFFER ADDRESS RAD CA+1 * STORE MST/TRT FOR LINK DEVICE IN ECS. LDC 500-5*MSTL STD T7 ILD3 LDN 0 CLEAR BUFFER STM. BFMS+1+5*MSTL,T7 SOD T7 NJN ILD3 LDD EQ SET ECS EST ORDINAL STD T5 LDD QT SET MST/TRT TRACK STD T6 LDN MXMF-1 STD T0 LDK 5*LLLL STD T1 ILD3.1 LDN MLUNL+MLDUL SET UNLOAD STATUS STM. BFMS+2+5*STLL,T1 LDN 5*LLLL RAD T1 SOD T0 NJN ILD3.1 IF MORE LOCAL AREAS LDD HN SET FULL SECTOR WORD COUNT STM. BFMS+1 LDN MSTL SET LENGTH OF MST STD T1 LDD FN+4 READ MST TO PP BUFFER SHN 3 ADK TDGL CRD CN CRM. BFMS+2,T1 LDM. BFMS+2+5*MDGL SET 16-WORD PFC FLAG LPC 6777 LMD TH STM. BFMS+2+5*MDGL LDD FN+4 UPDATE MST IN CMR SHN 3 ADN MDGL CWM. BFMS+2+5*MDGL,ON SETMS IO,(DF,NS) LDN 0 STD CN+4 UJN ILD6 ENTER LOOP WITH (A) = 0 ILD4 SBD HN DECREMENT BLOCK COUNT PJN ILD5 IF ANOTHER FULL SECTOR ADD HN STM. BFMS+1 SET SHORT SECTOR LDN 0 ILD5 STD CN+2 ILDE LDC ** (FWA OF TRT) ADD CN+4 CRM. BFMS+2,HN READ NEXT BLOCK LDD HN ADVANCE TRT ADDRESS RAD CN+4 AOD T7 ADVANCE SECTOR ILD6 ADN 1 STM. BFMS LDC BFMS WRITE NEXT SECTOR RJM. WDS LDD CN+2 NJN ILD4 LOOP TO END OF TRT LDD FN+4 GET TRT LENGTH FROM MST SHN 3 ADK TDGL CRD CN LDN MRST-1 INITIALIZE MRT SECTOR STD T7 LDD CN+2 SET MRT LENGTH ADN 7 SHN -3 STM. BFMS+1 LDC 500 BUFFER LENGTH STD T1 ILD7 LDN 0 CLEAR BUFFER STM. BFMS+1,T1 SOD T1 NJN ILD7 LDN MXMF SET LOOP COUNT STD CN * CLEAR MRT SECTORS FOR *MXMF* MAINFRAMES. ILD8 AOD T7 ADVANCE MRT SECTOR ADN 1 SET NEXT SECTOR IN LINKAGE STM. BFMS LDC BFMS CLEAR MRT RJM. WDS SOD CN NJN ILD8 IF NOT *MXMF* MRT-S CLEARED STD T7 LCN 20 CLEAR RECOVERY IN PROGRESS FLAG RAM ILDD+11 LDC ** SET DAT/FAT TRACK ILDG EQU *-1 STD T6 LDD MA MOVE LINK DEVICE DAT ENTRY TO BUFFER CWM. ILDD,TW ILDB EQU *-1 LDD MA CRM. BFMS+2,TW LDD HN STM. BFMS+1 * INITIALIZE DAT/FAT TRACK. ILD9 LDD T7 SET SECTOR IN LINK BYTE ADN 1 ILD10 STM. BFMS LDC BFMS RJM. WDS WRITE NEXT SECTOR LDN ZERL CRM. BFMS+2,ON LDN ZERL CRM. BFMS+2+5,ON AOD T7 ADVANCE TO NEXT SECTOR ADN 1 SBM. SLM MJN ILD9 IF NOT LAST SECTOR NJN ILD11 IF LAST SECTOR WRITTEN STM. BFMS+1 SET EOI SECTOR UJN ILD10 ILD11 ENDMS END MASS STORAGE OPERATION * RESERVE BRT/BDT/BAT TRACK CHAIN. LDD FN+4 GET BRT/BDT/BAT TRACK CHAIN POINTER SHN 3 ADN NVGL CRD CN LDN ZERL CRD CM LDD EQ SET EST ORDINAL IN REQUEST STD CM+1 LDD RS NJP ILD13 IF RECOVERY SELECTED LDD CN+3 ZJN ILD12 IF NO BRT/BDT/BAT TRACK CHAIN STD CM+2 MONITOR DTKM RELEASE BRT/BDT/BAT TRACK CHAIN STD CN+3 CLEAR POINTER ILD12 LDD EQ SET EST ORDINAL STD CM+1 LDD P2 NUMBER OF SHARED BUFFERED DEVICES ZJN ILD13 IF NO SHARED BUFFERED DEVICES ADN 1 ADDITIONAL TRACK FOR BRT-S ILDH SHN 4 CONVERT TRACK COUNT TO SECTOR COUNT * SHN 4+EMSC (EMSC = EM TRACK SHIFT COUNT) ADN 1 ADDITIONAL TRACKS FOR BDT-S STD CM+4 SHN -14 STD CM+3 MONITOR RTCM LDD CM+4 SET FIRST TRACK IN *NVGL* STD CN+3 STD CM+2 LDN SPFS SET PRESERVED FILE STATUS STD CM+3 LDC 4000 INCLUDE CHECKPOINT REQUEST RAD CM+1 MONITOR STBM ILD13 LDD FN+4 STORE *NVGL* SHN 3 ADN NVGL CWD CN * SETUP *BAET* IN ENVIRONMENT TABLE SECTOR. LDN ZERL CRD FS LDD P2 ZJN ILD14 IF NO SHARED BUFFERED DEVICES LDD CN+3 FIRST TRACK OF BRT/BDT/BAT TRACK CHAIN STD FS SET BRT TRACK INTO *BAET* IMAGE RJM SNT SET NEXT TRACK STD FS+1 SET BDT TRACK INTO *BAET* IMAGE RJM SNT SET NEXT TRACK STD FS+4 SET FIRST BAT TRACK INTO *BAET* IMAGE ILD14 LDD MA MOVE *BAET* IMAGE TO BUFFER STD CM+2 SET BUFFER ADDRESS CWD FS CRM. BAEI,ON SAVE *BAET* IMAGE LDN 0 SET WORD COUNT STD CM+1 LDC ** SET LABEL TRACK ILDK EQU *-1 STD T6 LDN ETLT CONVERT ENVIRONMENT TABLE SECTOR ADDRESS STD T7 RJM CEA LDN BAET RAD CM+4 SHN -14 ADC WECS*1000 SET WRITE FUNCTION RAD CM+3 MONITOR ECSM STORE *BAET* WORD * ENABLE BRT PROCESSING IN *MTE*. LDD P2 ZJN ILD15 IF NO SHARED BUFFERED DEVICES LDD FS SET BRT TRACK STD CM+4 LDD FS+1 SET BDT TRACK STD CM+3 LDN 0 STD CM+2 LDN EBRS ENABLE BRT PROCESSING STD CM+1 MONITOR MTEM ILD15 LCN PRSI CLEAR *PRSI* INTERLOCK RJM IFR LJM ILDX RETURN ILDD VFD 42/0LMMFLINK,6/0,12/0 VFD 60/20 TITLE SUBROUTINES. SNT SPACE 4,10 ** SNT - SET NEXT TRACK IN EXTENDED MEMORY TRACK CHAIN. * * ENTRY (A) = TRACK NUMBER. * (SNTA) = CM ADDRESS OF TRT. * * EXIT (A) = TRACK NUMBER OF NEXT TRACK IN CHAIN. * * USES T1, CM - CM+4. SNT SUBR ENTRY/EXIT SHN 21-1 REMOVE TRACK BIT LMD TH STD T0 SET WORD INDEX SHN 1-21 STD T1 SET BYTE INDEX SNTA LDC ** (FWA OF TRT) ADD T0 CRD CM LDM. CM,T1 EXTRACT NEXT TRACK UJN SNTX RETURN SPACE 4 ** COMMON DECKS. *CALL COMPCEA *CALL COMPIFR SPACE 4,10 OVERFLOW 5,ZMFL END