; ; FILE: page_dump.ips ; PURPOSE: To dump a half page of data ; RESTRICTIONS: ; Pages used: 0 (for input of the raw camera image) ; 13 (for output of 589824 words) ; HISTORY: Written 18-Apr-96 by M.Morrison ; QPROG_PAGE_DUMP:: BRANCHEQ R3072 10 &FRM10 END FRM10: SETREG $IPRP_PDUMP_POINTER $IPRL_PDUMP_LIST ;put the starting register number for the page list info a reg REGADD $IPRP_PDUMP_POINTER $IPRL_PDUMP_COUNTER $IPRP_PDUMP_POINTER ;move forward to point to the right page COPYRI2D $IPRP_PDUMP_POINTER $IPRL_PDUMP_PAGE 3 ;copy the page number out into a fixed place ;---- Step #1: Save the data and make the header COPYREG $IPRL_PDUMP_PAGE $IPRL_PDUMP_COPYD+1 ;set the source (h) _MOVBLKI $IPRL_PDUMP_COPYD ;copy the data from page 0 to page 1 SETREGS $IPRL_HDECODE_PARAM 2 0x0000 0x6800 CALLQUE $QSR_DO_HDECODE ;decode the value SETREGS $IPRP_HDECODE_PAGE13+3 2 0 0x6400 ;n/k, dpc(h) COPYREG $IPRL_PDUMP_PAGE $IPRP_HDECODE_PAGE13+5 ;dpc(l) COPYRD2D $IPRP_HDECODE_PAGE13 $IPRP_HDECODE_PAGE13+6 3 ;define the final desintation SETREGS $IPRP_HDECODE_PAGE13+8 2 589824L ;n CALLQUE $QSR_DO_HEADER ;---- Step #2: Downlinking the observable SETREG $IPRL_DL_PARAM 0x6800 ;setup the source page to downlink (page 2) CALLQUE $QSR_DL_1PAGE ;downlink the image ;---- Step #3: Move the pointer forward ADDREGD $IPRL_PDUMP_COUNTER 1 ;increment the list pointer REGSUB $IPRL_PDUMP_COUNTER $IPRL_PDUMP_N $IPRP_ADD_ADDR ;Counter - N (should always be negative or 0) BRANCHLT $IPRP_ADD_ADDR 0 &DONE ;=0 means at the last one SETREG $IPRL_PDUMP_COUNTER 0 ;reset the counter DONE: END