IDENT 1CL,ALC PERIPH BASE MIXED SST SYSCOM *COMMENT 1CL - CPP FIRMWARE LOADER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE 1CL - CPP FIRMWARE LOADER. SPACE 4 *** 1CL - CPP FIRMWARE LOADER. * * S. L. BETH. 86/07/25. SPACE 4 *** 1CL IS LOADED INTO A CPP BY *BCL* TO LOAD FIRMWARE TO * CPP CONTROLLERS. 1CL THEN LOADS THE FIRMWARE FROM THE CM * BUFFER THAT *BCL* HAS SET UP. SPACE 4 *** CALL. * * *T IR 18/ *1CL*,1/,5/ CP,36/ *T MB 12/ CH,12/ RL,12/ DSTO,24/ CMA * * CH CHANNEL TO AUTOLOAD. * RL FIRMWARE RECORD LENGTH. * DSTO DEADSTART OPTIONS. * CMA CM ADDRESS OF FIRMWARE RECORD. * * MB = 12/7777,48/0 WHEN LOAD COMPLETE. SPACE 4 *** OPERATOR MESSAGES. * * LINE 2 OF DEADSTART CONTROL POINT - * * *TO CONTROLLER.* = THE FIRMWARE RECORD LISTED IN THE LINE 1 * MESSAGE AT THE DEADSTART CONTROL POINT IS BEING AUTOLOADED TO * THE CHANNEL AND EQUIPMENT TYPE LISTED IN THE LINE 1 MESSAGE. * IF THE DEADSTART STOPS WITH THIS MESSAGE AND THE LINE 1 * MESSAGE LISTED ABOVE DISPLAYED, A CONTROLLER OR CHANNEL * MALFUNCTION OR INCORRECT EQPDECK EQUIPMENT DEFINITION HAS * CAUSED THE AUTOLOAD PROGRAM TO HANG. * * *AUTOLOAD FAILURE, STXXXX.* = FOLLOWING THE AUTOLOADING OF * THE RECORD LISTED IN THE LINE 1 MESSAGE AT THE DEADSTART * CONTROL POINT TO THE CHANNEL AND EQUIPMENT TYPE LISTED IN THE * LINE 1 MESSAGE, CONTROLLER STATUS (STXXXX) INDICATED THAT A * CHANNEL PARITY ERROR OR FIRMWARE CHECKSUM ERROR OCCURED FOR * THE AUTOLOAD. A STATUS OF *ST0000* INDICATES THAT THE * CHANNEL WAS DISCONNECTED WITHOUT STATUS BEING SENT. WHEN * THIS MESSAGE IS DISPLAYED, DEADSTART STOPS UNTIL THE *GO* * COMMAND IS ENTERED BY THE OPERATOR. WHEN THE *GO* * COMMAND IS ENTERED, THE AUTOLOAD IS RETRIED. IF SEVERAL * RETRIES CONTINUE TO PRODUCE THIS MESSAGE AND THE LINE 1 * MESSAGE LISTED ABOVE, A SOLID HARDWARE FAILURE OR BAD * FIRMWARE RECORD ON THE DEADSTART TAPE IS INDICATED. * * * FUNCTION XXXX TIMEOUT.* = FUNCTION XXXX WAS NOT * ACCEPTED BY THE CONTROLLER, NOTIFY THE SITE CE. SPACE 4 *CALL COMPMAC *CALL COMSDSL *CALL COMSPIM *CALL COMPCHM OPMESS SPACE 4,10 ** OPMESS - SEND OPERATOR MESSAGE. * * OPMESS MADD,LINE * * MADD = ADDRESS OF MESSAGE. * LINE = 1 FOR A LINE ONE MESSAGE. * = 2 FOR A LINE TWO MESSAGE. OPMESS MACRO MADD,LINE LDC 200*DSCP+MS_LINE_W CWM MADD,TR ENDM SPACE 4 **** DIRECT LOCATION ASSIGNMENTS. CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS) FN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS) NC EQU 35 NUMBER OF CONTROL POINTS TP EQU 43 TEMP RL EQU 44 RECORD LENGTH DS EQU 45 DEADSTART OPTIONS CA EQU 46 - 47 CURRENT CENTRAL ADDRESS (2 LOCATIONS) **** SPACE 4 * ASSEMBLY CONSTANTS. BUF EQU TPBA TAPE BLOCK BUFFER FWBF EQU BUF FIRMWARE BUFFER FWBFL EQU 1000 FIRMWARE BUFFER LENGTH (CM WORDS) FCCN EQU 0 CONNECT FUNCTION FCOC EQU 10 OPERATION COMPLETE FUNCTION CODE FCGR EQU 11 GRENADE FUNCTION CODE FCGS EQU 12 GENERAL STATUS FUNCTION CODE FCLC EQU 71 LOAD CONTROL MODULE CONTROLWARE FROM PP FCAL EQU 414 AUTOLOAD FUNCTION CODE TITLE MAIN PROGRAM. 1CL SPACE 4 ** 1CL - MAIN PROGRAM. ORG PPFW ALC SPACE 4,20 ** ALC - AUTOLOAD CONTROLLER. * * EXIT CONTROLLER AUTOLOADED WITH FIRMWARE. * CONTROLLER GRENADED IF DEADSTART OPTION SPECIFIED. * WAITS FOR OPERATOR GO IF AN AUTOLOAD FAILURE OCCURS. * * CALLS C2D, FCN, MCI, OFR, PRS, STS, WOG. * * MACROS DCHAN, OPMESS, RCHAN. ALC RJM PRS PRESET PROGRAM RJM MCI MODIFY CHANNEL INSTRUCTIONS LDD T4 RESERVE CHANNEL RCHAN DCN CH INSURE CORRECT CHANNEL STATE ALC1 OPMESS MSGA,2 LDC 1S15 MASTER CLEAR THE CHANNEL ADAPTOR RJM FCN LDC FCAL ISSUE AUTOLOAD FUNCTION RJM FCN RJM OFR LOAD CONTROLWARE RJM STS ZJN ALC2 IF AUTOLOAD SUCCESSFUL SHN -6 PUT STATUS IN MESSAGE RJM C2D STM MSGB+12 LDD FN RJM C2D STM MSGB+13 LDC MSGB DISPLAY AUTOLOAD FAILURE MESSAGE RJM WOG UJN ALC1 RETRY AUTOLOAD ALC2 LDD DS CHECK DEADSTART OPTIONS LPN 1 ZJN ALC3 IF *GRENADE* NOT SPECIFIED LDN FCGR ISSUE GRENADE FUNCTION RJM FCN ALC3 LDN FCOC ISSUE OPERATION COMPLETE RJM FCN LDD T4 RELEASE CHANNEL DCHAN LCN 0 SET LOAD COMPLETE STD CM LDD MA CWD CM MONITOR DPPM LJM PPR EXIT FCN SPACE 4,15 ** FCN - ISSUE FUNCTION TO CONTROLLER. * * ENTRY (A) = FUNCTION CODE. * * EXIT (A) = 0 IF GENERAL STATUS FUNCTION TIMED OUT. * * USES FN. * * CALLS C2D. * * MACROS OPMESS. FCN SUBR ENTRY/EXIT STD FN FCN1 FAN CH FCN2 IJM FCNX,CH IF FUNCTION ACCEPTED ADD ON NJN FCN2 IF TIMEOUT NOT SATISFIED DCN CH LDD FN CHECK FUNCTION LMN FCGS ZJN FCNX IF GENERAL STATUS REQUEST SHN -6 RJM C2D STM FCNB LDD FN CONVERT FUNCTION FOR MESSAGE RJM C2D STM FCNB+1 OPMESS FCNA,2 DISPLAY TIMEOUT MESSAGE LDD FN UJN FCN1 RETRY FCNA DATA 10H FUNCTION FCNB DATA C*0000 TIMEOUT.* MCI SPACE 4,10 ** MCI - MODIFY CHANNEL INSTRUCTIONS. * * ENTRY (T4) = CHANNEL NUMBER. * * USES T1, T2, T3. MCI1 STD T2 SET INSTRUCTION ADDRESS LDI T2 SCN 37 LMD T3 MODIFY INSTRUCTION STI T2 AOD T1 ADVANCE LIST ADDRESS MCI2 LDI T1 NJN MCI1 IF NOT END OF LIST MCI SUBR ENTRY/EXIT LDD T4 LPN 37 REMOVE CONCURRENT FLAG STD T3 LDC CTCH SET CHANNEL TABLE ADDRESS STD T1 UJN MCI2 ENTER LOOP OFR SPACE 4,20 ** OFR - OUTPUT FIRMWARE RECORD. * * ENTRY (CA - CA+1) = CENTRAL MEMORY ADDRESS OF FIRMWARE * RECORD. * (RL) = WORD COUNT OF FIRMWARE RECORD. * CONTROLLER FUNCTIONED FOR AUTOLOAD. * * EXIT FIRMWARE RECORD TRANSFERRED FROM CENTRAL MEMORY TO * CONTROLLER. * CHANNEL INACTIVE. * * USES T1, T2, T5, T6. OFR3 FJM *,CH WAIT FOR LAST WORD ACCEPT DCN CH OFR SUBR ENTRY/EXIT LDD CA SET CENTRAL MEMORY ADDRESS OF RECORD STD T5 LDD CA+1 STD T6 OFRA ACN CH PREPARE CHANNEL FOR OUTPUT * PSN (IF 819 DRIVER LOAD) LDD RL RECORD WORD COUNT OFR1 ZJN OFR3 IF END OF RECORD STD T2 SAVE REMAINING WORD COUNT STD T1 SET BLOCK WORD COUNT ADC -FWBFL-1 MJN OFR2 IF REMAINING DATA FITS IN BUFFER LDC FWBFL SET BLOCK COUNT TO BUFFER SIZE STD T1 OFR2 LDD T5 SET CENTRAL BUFFER ADDRESS SHN 14 LMD T6 CRM FWBF,T1 READ BLOCK FROM CENTRAL MEMORY STD T6 SAVE NEXT CENTRAL MEMORY BUFFER ADDRESS SHN -14 STD T5 LDD T1 OUTPUT BLOCK TO CONTROLLER SHN 2 ADD T1 OAM FWBF,CH LDD T2 DECREMENT REMAINING RECORD WORD COUNT SBD T1 UJN OFR1 PROCESS NEXT BLOCK STS SPACE 4,10 ** STS - STATUS CONTROLLER. * * EXIT (A) = (FN) = GENERAL STATUS. * (A) = 775777 IF INCOMPLETE STATUS. * (FN) = 5777 IF INCOMPLETE STATUS. * * CALLS FCN. STS SUBR ENTRY/EXIT LDN FCGS RJM FCN ZJN STS1 IF FUNCTION TIMED OUT ACN CH STS1 LDC -2000 ERROR STATUS STSA IAN CH * IAN CH+40 INPUT STATUS STD FN UJN STSX RETURN WOG SPACE 4,10 ** WOG - WAIT FOR OPERATOR *GO.*. * * ENTRY (A) = ADDRESS OF MESSAGE TO BE WRITTEN TO MS2W. * * EXIT (A) = 0. * OPERATOR ENTERED *GO.* COMMAND. * * USES T1, CM - CM+4. * * MACROS PAUSE. WOG SUBR ENTRY/EXIT STM WOGA SET MESSAGE ADDRESS LDD NC SHN 7 READ SENSE SWITCH WORD ADN SNSW STD T1 SAVE ADDRESS CRD CM LDD CM+3 SET PAUSE BIT SCN 1 LMN 1 STD CM+3 LDD T1 CWD CM ADN MS2W-SNSW WRITE MESSAGE TO MS2W CWM *,TR WOGA EQU *-1 MESSAGE ADDRESS WOG1 PAUSE NE LDD T1 CHECK PAUSE BIT CRD CM LDD CM+3 LPN 1 ZJN WOGX IF PAUSE BIT CLEAR UJN WOG1 LOOP SPACE 4,10 ** CONSOLE MESSAGES. MSGA DATA C*TO CONTROLLER.* MSGB DATA C*AUTOLOAD FAILURE, ST0000.* SPACE 4,10 ** COMMON DECKS. *CALL COMPC2D TCHS SPACE 4,10 ** CHANNEL TABLE. CHTB CH PRS SPACE 4,10 ** PRS - PRESET PROGRAM. * * EXIT (NC) = NUMBER OF CONTROL POINTS. * (RL) = FIRMWARE RECORD LENGTH. * (DS) = DEADSTART OPTIONS. * (T4) = CHANNEL. * (CA - CA+1) = CMA OF FIRMWARE RECORD. * * USES DS, NC, RL, TP, T4, CA - CA+1. PRS SUBR ENTRY/EXIT LDD MA READ LOAD PARAMETERS CRD TP LDD TP SET CHANNEL STD T4 LDK NCPL SET NUMBER OF CONTROL POINTS CRD CM LDD CM+1 STD NC UJN PRSX RETURN END