IDENT 0CT,/REL/LCCX PERIPH J BASE MIXED SST *COMMENT 0CT - LOAD CTS/CCC CONTROLWARE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE 0CT - LOAD CTS/CCC CONTROLWARE SPACE 4,10 *** 0CT - LOAD CTS/CCC CONTROLWARE. * * P. C. SMITH. 92/04/21. SPACE 4,10 *** *0CT* IS A LOCATION FREE ROUTINE CALLED BY *1MT* * TO LOAD CTS/CCC CONTROLWARE ON *MAGNET* INTITIATION, AND * DURING TAPE ERROR RECOVERY. SPACE 4,10 *** ENTRY CONDITIONS. * * (CN) = CHANNEL NUMBER. * (CN+1) = ADDRESS OF 100B CM WORD BUFFER. * * * USES CM - CM+4, CN - CN+4, T1 - T1+4. SPACE 4,10 *** EXIT CONDITIONS. * * (CN) = 0 IF NO ERROR. * (CN) = ERROR CODE IF ERROR. * (CN) = 7777 IF MICROCODE NOT FOUND. * (CN+1) = LAST FUNCTION ISSUED TO CCC. * (CN+2) = MICROCODE REVISION. SPACE 4,10 **** DIRECT LOCATION ASSIGNMENTS. DS EQU 24 DEVICE STATUS CN EQU 62 - 66 CM BUFFER SPACE 4,10 * ASSEMBLY CONSTANTS. CH EQU 13 CHANNEL NUMBER F0012 EQU 0012 GENERAL STATUS FUNCTION F0414 EQU 0414 AUTOLOAD FUNCTION **** SPACE 4,10 ** COMMON DECKS. *CALL COMPMAC QUAL MTX *CALL COMSMTX QUAL * *CALL COMSZOL REL$ SET 1 DEFINE FULL RELOCATION *CALL COMPRLI *CALL COMPCHM TITLE MAIN PROGRAM. LCC SPACE 4,10 ** LCC - MAIN ROUTINE. LCC SUBR ENTRY/EXIT REL$ EQU 1 SET FULL RELOCATION RJM. REL,LA RELOCATE ADDRESSES RJM MCI MODIFY CHANNEL INSTRUCTIONS LDD CN+1 SET CONTROLWARE BUFFER ADDRESS STM LCCA STM LCCB LCC1 DELAY LDK PLDP CHECK PERIPHERAL DIRECTORY POINTER CRD CM LDD CM ADD CM+1 ZJN LCC1 IF SYSEDIT IN PROGRESS * FIND CCC MICROCODE. LDN ZERL CRD CM LDD MA PUT CONTROLWARE ID IN MESSAGE BUFFER CWM LCCE,ON MONITOR SCDM SEARCH CENTRAL DIRECTORY LDD CM+3 SHN 14 LMD CM+4 CRD CM READ *PST* ENTRY LDD CM+1 SHN 21-12 PJP LCC5 IF NOT CM RESIDENT LDD CM+3 GET ADDRESS OF *RCL* ENTRY SHN 14 LMD CM+4 ADN 1 CRD CN READ 5200 RECORD HEADER ADN 6 CRD T1 SBN 5 SET FWA OF 5200 RECORD DATA STD CM+4 SHN -14 STD CM+3 LCN 1 ADJUST WORD COUNT FOR HEADER RAD CN+4 LDD T3 STD CN+2 SAVE MICROCODE REVISION * LOAD CCC MICROCODE. LDC F0414 AUTOLOAD FUNCTION RJM ICF ISSUE CTS FUNCTION NJP LCC6 IF FUNCTION TIMEOUT ACN CH LDD CN+4 LCC2 SBD HN MJN LCC3 IF LESS THAN 100B WORDS LEFT LDN 0 LCC3 ADD HN STD T1 LDD CM+3 SHN 14 LMD CM+4 CRM. **,T1 READ FROM CM LCCA EQU *-1 (ADDRESS OF CONTROLWARE BUFFER) STD CM+4 UPDATE CM ADDRESS SHN -14 STD CM+3 LDD T1 SET BYTES TO TRANSFER SHN 2 ADD T1 OAM **,CH LOAD BLOCK OF CONTROLWARE TO CCC LCCB EQU *-1 (ADDRESS OF CONTROLWARE BUFFER) FJM *,CH IF TRANSFER NOT COMPLETE LCCC EQU *-1 (ADDRESS TO BE RELOCATED) NJN LCC4 IF INCOMPLETE TRANSFER LDD CN+4 SBD T1 STD CN+4 NJN LCC2 IF MORE WORDS TO TRANSFER LDN F0012 GENERAL STATUS FUNCTION RJM ICF ISSUE FUNCTION NJN LCC6 IF FUNCTION TIMEOUT ACN CH LDN 1 IAM DS,CH INPUT GENERAL STATUS NJN LCC4 IF WORD NOT RECEIVED SFM LCC4,CH IF ERROR FLAG SET LCCD EQU *-1 (ADDRESS TO BE RELOCATED) LDD DS SHN 0-13 ZJN LCC6 IF NO ERROR LCC4 LDN /MTX/CMF CHANNEL MALFUNCTION UJN LCC6 SAVE ERROR CODE LCC5 LCN 0 INDICATE MICROCODE NOT FOUND LCC6 STD CN LJM LCCX RETURN LCCE VFD 30/0LMB468,30/0 ICF SPACE 4,10 ** ICF - ISSUE CCC/CTS FUNCTION. * * ENTRY (A) = FUNCTION. * * EXIT (A) = 0 IF NO ERROR. * (A) = ERROR CODE IF ERROR. * (CN+1) = FUNCTION THAT WAS ISSUED. ICF2 LDN 0 ICF SUBR ENTRY/EXIT DCN CH ENSURE CHANNEL IS INACTIVE STD CN+1 SAVE FUNCTION FAN CH ISSUE THE FUNCTION LCN 0 ICF1 IJM ICF2,CH IF FUNCTION REPLY RECEIVED ICFA EQU *-1 (ADDRESS TO BE RELOCATED) SBN 1 NJN ICF1 IF TIMEOUT NOT EXPIRED LDN /MTX/FRJ FUNCTION REJECT UJN ICFX RETURN MCI SPACE 4,10 ** MCI - MODIFY CHANNEL INSTRUCTIONS. * * ENTRY (CN) = CHANNEL NUMBER. * (LA) = LOAD ADDRESS. * * USES T3. MCI SUBR ENTRY/EXIT LDC. MCIA STD T3 ADDRESS OF CHANNEL TABLE MCI1 LDI T3 GET ADDRESS OF CHANNEL INSTRUCTION ZJN MCIX IF END OF CHANNEL TABLE ADD LA RELOCATE ADDRESS STD T0 LDI T0 SCN 37 LMD CN SET CHANNEL NUMBER STI T0 AOD T3 UJN MCI1 CONTINUE MODIFYING CHANNEL INSTRUCTIONS LIST G MCIA CHTB CH CHANNEL TABLE SPACE 4,10 * ASSEMBLE RELOCATION CODE. * * NOTE - DUE TO THE INTERACTION OF COMMON DECKS *COMPRLI* AND * *COMPCHM*, THE ADDRESS OF ANY INSTRUCTION WHICH * SPECIFIES BOTH A CHANNEL NUMBER AND A RELOCATABLE * ADDRESS MUST BE MANUALLY ADDED TO THE FOLLOWING TABLE. HERE CON LCCC CON LCCD CON ICFA CON 0 SPACE 4,10 * CHECK FOR OVERFLOW. ERRPL *-ZCTL *0CT* OVERFLOWS CALLING PROGRAM END