ESMPP * /--- FILE TYPE = E * /--- BLOCK ESM 00 000 78/08/22 14.20 ESMPP IDENT ESM,ESM CONTROL EXTENDED SEMI-CONTONDUCTOR MEMORY PERIPH BASE MIXED SST WDS LIST F COMMENT CONTROL EXTENDED SEMI-CONDUCTOR MEMORY. COMMENT COPYRIGHT CONTROL DATA CORP. 1978. TITLE ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY SPACE 5,11 *** ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY. * R. S. EHRLICH. 78/01/20. SPACE 5,11 *** ESM CONTROLS THE FUNCTIONS OF EXTENDED SEMI-CONDUCTOR MEMORY. * * THIS INVOLVES MANAGING THE RELOCATION MEMORY, * THE ERROR LOGS, AND INITIALIZING THE FLAG * REGISTERS. SPACE 5,11 *** CALL. * * *T 18/ *ESM*, 6/ CP, 6/AD, 24/ADDRESS * AD - ADDRESS TYPE. * 0 - PARAMETERS ARE AT *ADDRESS* IN CM. * 1 - PARAMETERS ARE AT *ADDRESS* IN ESM. * ADDRESS - ADDRESS WHERE FUNCTION CODES ARE * STORED. * * ADDRESS WORD FORMAT - * * 48/PARAMETERS, 12/FUNCTION CODE * BIT 0 SET UPON COMPLETION OF FUNCTION. * DATA REQUIRED FOR FUNCTION OR ACQUIRED AS A * RESULT OF THE FUNCTION IMMEDIATELY FOLLOWS * THE FUNCTION WORD. * * ADDRESS WORD UPON FUNCTION COMPLETION * * 36/ , 12/ERROR CODE, 12/COMPLETION BIT * * ERROR CODE - 0 - COMPLETED SUCCESSFULLY * 1 - CHANNEL ERROR SPACE 5,11 *CALL COMPMAC *CALL COMPCHI *CALL COMSCPS *CALL AIDTEXT *CALL PLASESM SPACE 5,12 .DCH IF -MAC,DCHAN SHOULD ONLY HAPPEN IF COMSOURCE DCHAN MACRO RJM DCH ENDM .DCH ENDIF .RCH IF -MAC,RCHAN SHOULD ONLY HAPPEN IF COMSOURCE RCHAN MACRO RJM RCH ENDM .RCH ENDIF SPACE 5,11 **** DIRECT LOCATION ASSIGNMENTS. CN EQU 20 - 24 CM WORD STORAGE RI EQU 25 REQUEST INDEX IN *FTAB* ES EQU 26 EST ORDINAL OF SIDE-DOOR PORT MS EQU 27 MAINT CHANNEL ON *DE* FLAG CM1 EQU 30 - 34 CM WORD STORAGE **** * /--- BLOCK ESM 00 000 79/10/01 21.04 TITLE MAIN PROGRAM. ORG PPFW ESM RJM PRS LDN CN READ FUNCTION REQUEST STD T1 LDD IR+3 STD T2 LDD IR+4 STD T3 LDC 1*10000+5 RJM RMEM * CHECK FUNCTION REQUEST LDD CN+4 SHN -1 STD T1 SBN MXNF/2 MJN ESM1 IF FUNCTION IN RANGE LDC =C* ESM - ILLEGAL FUNCTION REQUEST.* LJM ERR ESM1 LDD T1 SHN 2 STD RI LDM FTAB,RI GET ENTRY FROM TABLE SHN 6 PJN ESM2 IF FUNCTION CODE SHN -6 LMC 7777 STM ESMA ESM2 LDN 0 SHOW NO ERROR YET STD CN+3 RJM FNC ESMA EQU *-1 * SET COMPLETE BIT / DROP PP AOD CN+4 LDN CN STD T1 LDD IR+3 STD T2 LDD IR+4 STD T3 LDC 1*10000+5 RJM WMEM MONITOR DPPM LJM PPR * /--- BLOCK FTAB 00 000 79/10/22 21.28 FTAB SPACE 5,11 *** FTAB - FUNCTION CODE TABLE * *FNC FTAB A,B,C * * FNC - NAME OF FUNCTION * * A - FUNCTION CODE OR PROCESSING ROUTINE * B - INPUT-OUTPUT FLAG * C - NUMBER OF PP BYTES TO TRANSFER ** REQUEST TABLE FORMAT * * WORD 1 - FUNCTION CODE / PROCESSING ROUTINE * WORD 2 - INPUT-OUTPUT FLAG * WORD 3 - NUMBER OF PP BYTES * WORD 4 - NUMBER OF CM WORDS MACRO FTAB,N,A,B,C .S IFC EQ,$A$$ N BSS 0 .2 SET N .S ELSE ORG .2+N*2 .E IFC NE,$B$$ LOC N .D IF DEF,A CON A .D ELSE CON -A .D ENDIF CON B CON C .1 SET C+4 .1 SET .1/5 CON .1 .E ENDIF .S ENDIF BSS 0 ENDM IN EQU 0 OUT EQU 1 FTAB FTAB RRMF FTAB 1004,IN,200 READ RELOCATION MEMORY WRMF FTAB 1005,OUT,200 WRITE RELOCATION MEMORY RELF FTAB 1010,IN,3+20*2+20*2+20 READ ERROR LOG RSEF FTAB 1011,IN,0 RESET ERROR LOG SPEF FTAB 1012,OUT,4 SET PROGRAMMABLE ERROR LOG CNTR RSBF FTAB 1040,IN,4 READ STATUS BITS SMAF FTAB 1204,OUT,1 SET MAXIMUM ADDRESS RSPF FTAB REQ,0,0 REQUEST SIDE-DOOR PORT REPF FTAB REL,0,0 RELEASE SIDE-DOOR PORT SXPF FTAB SXP,0,0 SET RAX/FLX IN EXCHANGE PACKAGE MXNF FTAB 0 END OF TABLE * /--- BLOCK ERR 00 000 79/10/01 20.38 ERR SPACE 5,11 *** ERR - ISSUE ERROR MESSAGES. * * ENTRY - (A) - MESSAGE ADDRESS ERR RJM DFM MONITOR ABTM LJM PPR DROP/EXIT PP * /--- BLOCK FNC 00 000 79/10/22 21.26 FNC SPACE 5,11 *** FNC - ISSUE FUNCTION TO ESM. * * ENTRY - * * (RI) - INDEX INTO FTAB. FNC0 AOD CN+3 SET ERROR FNC SUBR LDD MS NJN FNC1.1 IF CHANNEL DEFINED ON *DE* .NOSV2 IFLT OSLEV,562D IF NOS V1 LDM ESTS CHECK SIDE-DOOR PORT ASSIGNED ADD ES CRD CM READ EST ENTRY LDD CM LPN 37 SHN 7 LMD CP .NOSV2 ELSE IF NOS V2 * CHECK IF SIDE-DOOR PORT ASSIGNED TO THIS CP .NOS22 IFGE OSLEV,594D IF NOS 2.2 SFA EST,ES GET CM ADDRESS OF SP ENTRY ADK EQAE ADD OFFSET FOR EQUIP ASSIGNMENT .NOS22 ELSE LDK ESTP (A) = CM WORD WITH EAT POINTER CRD CM READ EST POINTER ENTRY LDD CM+1 (A) = FWA OF EAT ADD ES (A) = SIDE-DOOR PORT EAT ENTRY .NOS22 ENDIF CRD CM READ SIDE-DOOR PORT EAT ENTRY LDD CP (A) = CP AREA FWA ADK TERW (A) = ADDR OF CP EJT ORDINAL CRD CM1 READ CP EJT ORDINAL LDD CM+4 (A) = SIDE-DOOR PORT EJT ORD LMD CM1 COMPARE WITH THIS CP EST ORD .NOSV2 ENDIF NJN FNC0 IF NOT ASSIGNED TO THIS CP FNC1.1 BSS 0 CHTE * LDN CH RCHAN LDM FTAB+1,RI CHECK FUNCTION TYPE ZJN FNC1 LJM FNC4 * PROCESS INPUT TYPE FUNCTIONS FNC1 LDM FTAB+2,RI STD T1 SAVE PP BYTES TO TRANSFER IJM FNC2,CH DCN CH FNC2 LDM FTAB,RI FAN CH ISSUE FUNCTION TO ESM ACN CH LDD T1 CHECK IF ANY DATA TO TRANSFER ZJN FNC3 IF NONE IAM BFMS,CH INPUT DATA ZJN FNC3 IF TRANSFER COMPLETE LJM FNC6 FNC3 IJM FNC3.1,CH DCN CH CHTE * FNC3.1 LDN CH DCHAN LDC BFMS WRITE DATA TO USER BUFFER STD T1 LDD IR+4 ADN 1 STD T3 SHN -14 ADD IR+3 STD T2 LDM FTAB+3,RI SHN 14 LMM FTAB+2,RI ZJN FNC3.2 IF NO DATA TO TRANSFER RJM WMEM FNC3.2 LJM FNCX EXIT * /--- BLOCK FNC 00 000 79/10/22 21.27 * PROCESS OUTPUT TYPE FUNCTIONS. FNC4 LDC BFMS STD T1 LDD IR+4 ADN 1 STD T3 SHN -14 ADD IR+3 STD T2 LDM FTAB+3,RI SHN 14 LMM FTAB+2,RI RJM RMEM LDM FTAB+2,RI GET BYTES TO TRANSFER STD T1 IJM FNC5,CH DCN CH FNC5 LDM FTAB,RI FAN CH ACN CH LDD T1 OAM BFMS,CH FJM *,CH NJN FNC6 IF TRANSFER INCOMPLETE IJM FNC7,CH DCN CH CHTE * LDN CH DCHAN LJM FNCX EXIT * PROCESS FUNCTION ERRORS FNC6 DCN CH+40 CHTE * FNC7 LDN CH DCHAN LDC =C* ESM - FUNCTION FAILED.* RJM DFM LJM FNC0 SPCH CHTB SIDE-DOOR PORT CHANNEL TABLE * /--- BLOCK REQ/REL 00 000 79/10/04 10.04 REL SPACE 5,11 *** REL - RELEASE ASSIGNMENT OF SIDE-DOOR PORT REL SUBR LDD MS NJN RELX MAINT CHANNEL ON *DE* .NOSV2 IFLT OSLEV,562D IF NOS V1 LDM ESTS VERIFY ASSIGNED TO THIS CP ADD ES CRD CM READ EST ENTRY LDD CM LPN 37 SHN 7 LMD CP .NOSV2 ELSE IF NOS V2 * CHECK IF SIDE-DOOR PORT ASSIGNED TO THIS CP .NOS22 IFGE OSLEV,594D IF NOS 2.2 SFA EST,ES GET CM ADDRESS OF SP ENTRY ADK EQAE ADD OFFSET FOR EQUIP ASSIGNMENT .NOS22 ELSE LDK ESTP (A) = CM WORD WITH EAT POINTER CRD CM READ EST POINTER ENTRY LDD CM+1 (A) = FWA OF EAT ADD ES (A) = SIDE-DOOR PORT EAT ENTRY .NOS22 ENDIF CRD CM READ SIDE-DOOR PORT EAT ENTRY LDD CP (A) = CP AREA FWA ADK TERW (A) = ADDR OF CP EJT ORDINAL CRD CM1 READ CP EJT ORDINAL LDD CM+4 (A) = SIDE-DOOR PORT EJT ORD LMD CM1 COMPARE WITH THIS CP EST ORD .NOSV2 ENDIF NJN REL2 LDD ES STD CM+1 MONITOR DEQM REL1 LJM RELX REL2 AOD CN+3 SET ERROR RETURN UJN REL1 REQ SPACE 5,11 *** REQ - ASSIGN SIDE-DOOR PORT TO CP. REQ SUBR .NOS242 IFGE OSLEV,642D LDN REQS (A) = REQUEST ACTIVE EQUIPMENT .NOS242 ELSE LDN 0 (A) = REQUEST ACTIVE EQUIPMENT .NOS242 ENDIF STD CM+2 LDD ES STD CM+1 MONITOR REQM LDD CM+1 CHECK IF ASSIGNED NJN REQX IF ASSIGNED AOD CN+3 SET ERROR UJN REQX * /--- BLOCK SXP 00 000 79/10/08 20.15 SXP SPACE 5,11 *** SXP - SET EXCHANGE PACKAGE. * * THE EXCHANGE PACKAGE IS SET UP TO ALLOW * ESM DATA TRANSFER BY THE CPU PROGRAM. * * FUNCTION WORD * 24/ESM RAX, 24/ESM FLX, 12/FUNCTION SXP SXP SUBR LDD CP CHECK IF PROGRAM IN AUTO-RECALL ADN STSW CRD CM LDD CM .NOSV2 IFGE OSLEV,562D NOS V2 SHN -11B SBN 6 AUTO RECALL = 6 ZJN SXP1 IF IN AUTO RECALL .NOSV2 ELSE NOS V1 SHN 21-11 MJN SXP1 IF IN AUTO-RECALL .NOSV2 ENDIF LDC =C* ESM - AUTO-RECALL ERROR.* LJM ERR SXP1 LDD CN+1 CHECK IF RAX/FLX LOW 6 BITS = 0 LPN 77 NJN SXP2 LDD CN+3 LPN 77 ZJN SXP3 SXP2 LDC =C* ESM - ILLEGAL RAX/FLX.* LJM ERR SXP3 LDD CP READ RAX/FLX FROM EXCHANGE ADN 4 CRD CM READ RAX ADN 1 CRD CM1 READ FLX LDD CN SET RAX LPN 77 SHN 14 LMD CN+1 SHN -6 STD CM+1 LDD CN SHN -6 STD CM LDD CN+2 SET FLX LPN 77 SHN 14 LMD CN+3 SHN -6 STD CM1+1 LDD CN+2 SHN -6 STD CM1 LDD CP RE-WRITE TO EXCHANGE PACKAGE ADN 4 CWD CM ADN 1 CWD CM1 LJM SXPX EXIT * /--- BLOCK RMEM 00 000 79/10/04 10.13 RMEM SPACE 5,11 *** RMEM - READ TABLE FROM CM/ESM. * * READS DATA FROM CM/ESM INTO PP. * * ENTRY - * * (T1) - PP WORD TO READ INTO. * (T2-T3) - ADDRESS TO READ FROM. * (A) - NUMBER OF WORDS TO READ. * 6/CM WORDS, 12/PP WORDS * * EXIT - * DATA READ. RMEM SUBR LJM RME7 READ DATA FROM CM RMEA EQU *-1 STM RMEB SAVE NUMBER OF WORDS TO READ LDD T1 STM RMEC CHTE * LDN CH RCHAN IJM RME1,CH DCN CH RME1 FNC 5004,CH SELECT EXTENED ADDRESSING MODE FNC 5001,CH READ DATA ACN CH LDN 2 OUTPUT ECS ADDRESS OAM T2,CH LDC ** NUMBER OF WORDS TO READ RMEB EQU *-1 IAM **,CH RMEC EQU *-1 NJN RME5 IF READ ERROR RME2 IJM RME4,CH EJM RME2,CH DCN CH CHTE * LDN CH RELEASE DDP DCHAN RME3 LJM RMEMX RETURN RME4 FNC 5010,CH RME5 IJM RME6,CH DCN CH RME6 LDD CM+1 RELEASE CHANNEL DCHAN LDC =C* ESM - READ ESM ERROR.* RJM DFM UJN RME3 EXIT * READ DATA FROM CM. RME7 SHN -14 SAVE NUMBER OF WORDS TO READ STD CM LDD T1 STM RMED SAVE TRANSFER ADDRESS LDD T2 CHECK IF ADDRESS WITHIN FL LPN 37 SHN 14 LMD T3 ADD CM SHN -6 SBD FL MJN RME8 IF IN RANGE LDC =C* ESM - CM ADDRESS OUTSIDE FL.* LJM ERR RME8 LDD T2 LPN 37 SHN 6 ADD RA SHN 6 ADD T3 CRM **,CM RMED EQU *-1 LJM RMEMX EXIT * /--- BLOCK WMEM 00 000 79/10/04 10.16 WMEM SPACE 5,11 *** WMEM - WRITE DATA TO CM/ESM. * * ENTRY - * * (T1) - PP WORD TO WRITE FROM. * (T2-T3) - ADDRESS TO WRITE TO. * (A) - NUMBER OF WORDS TO WRITE. * 6/CM WORDS, 12/PP WORDS * * EXIT - * DATA WRITTEN. WMEM SUBR LJM WME8 WMEA EQU *-1 STM WMEB SAVE NUMBER OF WORDS TO WRITE LDD T1 STM WMEC CHTE * LDN CH RCHAN IJM WME1,CH DCN CH WME1 FNC 5004,CH SELECT EXTENDED ADDRESSING MODE FNC 5002,CH WRITE DATA ACN CH LDN 2 OUTPUT ECS ADDRESS OAM T2,CH LDC 0 NUMBER OF WORDS TO WRITE WMEB EQU *-1 OAM 0,CH WMEC EQU *-1 FJM *,CH NJN WME6 IF WRITE ERROR DCN CH GET DDP STATUS WME2 FNC 5004,CH ACN CH IAN CH INPUT STATUS DCN CH LPN 11 CHECK WRITE/ABORT NJN WME5 IJM WME3,CH DCN CH CHTE * WME3 LDN CH RELEASE CHANNEL DCHAN WME4 LJM WMEMX RETURN WME5 LPN 10 NJN WME2 IF WRITE IN PROGRESS FNC 5010,CH WME6 IJM WME7,CH DCN CH CHTE * WME7 LDN CH RELEASE CHANNEL DCHAN LDC =C* ESM - WRITE ESM ERROR.* RJM DFM UJN WME4 EXIT * WRITE DATA TO CM WME8 SHN -14 SAVE NUMBER OF WORDS TO WRITE STD CM LDD T1 SAVE PP ADDRESS STM WMED LDD T2 VERIFY ADDRESS WITHIN FL LPN 37 SHN 14 LMD T3 ADD CM SHN -6 SBD FL MJN WME9 IF IN RANGE LDC =C* ESM - ADDRESS OUT OF RANGE.* LJM ERR WME9 LDD T2 LPN 37 SHN 6 ADD RA SHN 6 ADD T3 CWM **,CM WMED EQU *-1 LJM WMEMX EXIT DPCH CHTB DDP CHANNEL TABLE * /--- BLOCK PRS 00 000 87/02/10 11.29 PRS SPACE 5,11 *** PRS - PRESET PROGRAM. * * THE ADDRESSING MODE AND CHANNEL NUMBER OF THE * SIDE-DOOR PORT IS INITIALIZED. PRS5 LDC =C* ESM - ILLEGAL USER ACCESS.* LJM ERR PRS SUBR RJM CUA GO CHECK USER ACCESS NJN PRS5 ILLEGAL USER ACCESS CALL * SEARCH FOR SIDE-DOOR PORT LDC 2R"SP" RJM EQN PJN PRS2 IF *SP* FOUND LDC 2RDE RJM EQN PJN PRS1 IF *DE* FOUND PRS0 LDC =C* ESM - SIDE-DOOR PORT NOT FOUND.* LJM ERR PRS1 STD ES SAVE EST ORDINAL .NOS252 IFGE OSLEV,678D SFA EST ADK EQAE CRD CM .NOS252 ENDIF LDD CM+2 ZJN PRS0 IF NO *MC* DEFINED STD CM+1 SAVE CHANNEL LDD ES PRS2 STD ES LDD CM+1 CLEAR OTHER CHANNELS LPN 77 STD CM+1 LDC SPCH RJM ICH INSERT CHANNEL NUMBERS * * SET FLAG FOR CHECKING IF MAINTENANCE CHANNEL WAS * DEFINED ON THE *DE* EST ENTRY. IF IT WAS, ESM * SHOULD NOT TRY TO RESERVE THIS EQUIPMENT. * .NOSV2 IFLT OSLEV,562D IF NOS V1 LDM ESTS ADD ES .NOSV2 ELSE IF NOS V2 .NOS22 IFLT OSLEV,594D IF NOS 2.1 LDK ESTP (A) = CM WORD WITH EAT POINTER CRD CM READ EST POINTER ENTRY LDD CM (A) = FWA OF EST ADD ES .NOS22 ELSE IF NOS 2.2 SFA EST,ES GET CM ADDRESS OF EST ENTRY ADK EQDE ADD OFFSET FOR EQUIP DEFINITION .NOS22 ENDIF .NOSV2 ENDIF CRD CM READ EST ENTRY LDD CM SHN 7 MASK OFF MASS STORAGE FLAG LPN 1 STD MS * SET ADDRESSING MODE FOR TABLES LDD IR+2 CHECK ADDRESSING TYPE LPN 77 STD T1 SBN MXTY MJN PRS3 IF VALID TYPE LDC =C* ESM - ILLEGAL ADDRESS TYPE.* LJM ERR * /--- BLOCK PRS 00 000 87/02/10 11.25 PRS3 LDM ATY,T1 ZJN PRS4 IF NO PROCESSOR FOR THIS TYPE STM PRSA RJM ** PRSA EQU *-1 PRS4 LJM PRSX EXIT ATY BSS 0 LOC 0 CON 0 TABLES IN CM CON AEC TABLES IN ESM MXTY BSS 0 LOC *O AEC SPACE 5,11 *** AEC - INITIALIZE TO READ/WRITE TABLES FROM ESM AEC SUBR LDC RMEA+1 SET TO READ/WRITE FROM ESM STM RMEA LDC WMEA+1 STM WMEA * SEARCH FOR DDP LDD T7 STD CN AES1 LDD CN CRD CM LDD CM+3 LMC 2R"DP" ZJN AES2 IF DDP FOUND AOD CN LMD CN+1 NJN AES1 IF MORE TO SEARCH LDC =C* ESM - DDP NOT FOUND.* LJM ERR AES2 LDD CM+1 LPN 77 STD CM+1 LDC DPCH RJM ICH INSERT CHANNEL NUMBERS LJM AECX * /--- BLOCK ICH 00 000 79/10/04 10.32 ICH SPACE 5,11 ** ICH - INSERT CHANNEL NUMBERS INTO I/O INSTRUCTIONS * * COMPCHI MUST BE CALLED TO RE-DEFINE INSTRUCTIONS. * * ENTRY - * * (A) - ADDRESS OF CHANNEL TABLE * (CM+1) - CHANNEL NUMBER. ICH SUBR STD T2 ICH1 LDI T2 ZJN ICHX IF END OF TABLE STD T1 LDI T1 SCN 37 LMD CM+1 STI T1 SET NEW CHANNEL NUMBER AOD T2 UJN ICH1 * /--- BLOCK END 00 000 78/08/22 14.20 * COMMON DECK THAT MAY BE OVERLAYED. *CALL COMPCUA *CALL PLAPEQN ERRNG 7770-* PP OVERFLOW END