; RESET_TLM - Resets Telemetry output board to ; i) halt current downlink or ; ii) Recover from a board hang. ; ; Restrictions: ; 1) Resets Prime Telemetry board only ; 2) Resets only page 8 or 9 ; 3) A page must be initialised as list (8 byte EDAC) memory ; with it's parameters in IP registers 136-143. ; ; Side Effects: ; 1) First 550 words of page 11 are clobbered. ; 2) IP Registers 552-560 are clobbered. ; ; Parameters: ; 1) $IPRL_TLM_PAGE - Page to be freed ; 2) $IPRL_TLM_STATUS - Status of the reset operation ; 0 - Successful ; 1 - Failed ; 0xff - Reset not attempted ; ; History: ; Written by Dnyanesh Mathur, 17-Oct-95 ;-------------------------------------------------------------------------- ; QSR_TLM_RESET:: ; BRANCHIF R0081 &CKPAGE ; HR OK => Continue Reset SETREG $IPRL_TLM_STATUS 0x00ff ; Status Code = "RESET not attempted" RTNQUE ; HR NOK => Skip Reset ; CKPAGE: BRANCHNR 0x4000 &DOHRDINIT ; Page 8 busy => Do Reset BRANCHNR 0x4800 &DOHRDINIT ; Page 9 Busy => Do Reset RTNQUE ; No Page Busy => Exit DOHRDINIT: SETREG $IPRL_TLM_STATUS 0 ; Assume success ; SETREGS R552 6 1 0x0000 0x5800 0x00 0xCFFF 0xFF98 HRDINIT R552 SETREGS R558 2 0x00001L START1HR 0x33 0x5800 R558 ; D/L P11 to free P8 ; COPYREG R143 R552 ; Save Block Count SETREG R143 16 ; Set Block count to 16 PURGELST R136 ; While away 82 ms COPYREG R552 R143 ; Restore Block Count ; BRANCHNR 0x4000 &ERREXT ; P8 still busy => HR NOK BRANCHNR 0x4800 &ERREXT ; P8 still busy => HR NOK RTNQUE ; ERREXT: SETREG $IPRL_TLM_STATUS 1 RTNQUE