; FILE: p30vc_fd_vc.ips ; PURPOSE: Grab the prime30 velocity and prime30 continuum. Make ; second 30 second continuum and velocity. Downlink P30C, ; and FD continuum and velocity as 2x2 binned and then cropped. ; ; HISTORY: ; Written 27-Oct-97 by M.Morrison ; 29-Oct-97 (MDM) - More initial work ; 3-Nov-97 (MDM) - Final tuneup before flight ; - Changed to _MOVSBLKI for P30C header save ; - Used page 19 for P30C ; - Use callback for all downlinks (because P30 stuff is 70% of D/L) ; 8-Dec-97 (MDM) - Changed downlink order ; From: Cam30V/Cam30C then P30V/P30C ; To: Cam30C/P30C then P30V/Cam30V ; - Increment the K value for P30C ; ; NOTES: ; ---- This program ; Downlink from ; p30 velocity page 15 ; p30 continuum page 19 ; c30 velocity page 13 ; c30 continuum page 5 ; ; formatting in page 17 ; ---- From mk_vlc30.ips (work done at frame 5,8 and 9 ; raw images page 0-3 ; sa (F1-F3) page 0 ; sc (F2-F4) page 1 ; sd (F1,2,3,4) page 2 ; si (FC) page 3 ; continuum filtergram 1024 page 19 (from frame 1) ; velocity unscaled (1 m/sec) page 13 ; velocity scaled (8 m/sec) page 7 ; si extracted page 17 ; sd extracted page 18 ; linedepth page 6 ; continuum observable page 5 ; Available pages: 4, 10(half), 11, 15, (17,18 used at frame 9/10) ; ---- From do_std_fmt.ips ; INPUT OUTPUT ; velocity scaled (8 m/sec) page 7 page 13 ; linedepth page 6 page 4/6 ; continuum observable page 5 page 4/5 ; continuum filtergram page 19 page 4/19 ; magnetogram page 17 page 18 ; prime30 velocity page 11 page 15 ; prime30 continuum observable page 11 page 18/11 QPROG_P30VC_FD_VC:: SETREG $IPRL_CB_ADDR &QCB_REENTRY CALLQUE $QSR_STORE_P30V ;store/move the prime30 velocity CALLQUE $QSR_STORE_P30C2 ;store/move the prime30 continuum CALLQUE $QSR_FD_VLC30 ;do all of the work BRANCHEQ R3072 6 &FRM6 BRANCHEQ R3072 10 &FRM10 END FRM6: ;---- P30 Formatting and storing COPYRD2D $IPRL_CROP_RAD504 $IPRL_CROP_PARAM+4 5 CALLQUE $QSR_STD_CFMT_PVEL ;P30V standard formatting COPYRD2D $IPRL_VVCC_P30C $IPRL_BIN_FMT_CROP 8 ;P30C format CALLQUE $QSR_BIN_CROP_COMP END FRM10: ;---- CAM30 Formatting and storing COPYRD2D $IPRL_VVCC_C30C $IPRL_BIN_FMT_CROP 8 ;Cam30C format CALLQUE $QSR_BIN_CROP_COMP COPYRD2D $IPRL_VVCC_C30V $IPRL_BIN_FMT_CROP 6 ;Cam30V format CALLQUE $QSR_BIN_CROP DONE: END ;----------------------- Start of callback code QCB_REENTRY: BRANCHEQ R3072 2 &CB_DO_DL1 BRANCHEQ R3072 7 &CB_DO_DL2 GOTO &QSR_CB_DONE_ADDR CB_DO_DL1: SETREGS $IPRL_DL_PARAM 2 0x9800 0x2800 ;downlink 5/13 P30C/Cam30c CALLQUE $QSR_DL_2PAGE ;0.6 sec GOTO &QSR_CB_DONE_ADDR CB_DO_DL2: ;---- Downlink the two observables SETREGS $IPRL_DL_PARAM 2 0x7800 0x6800 ;downlink 15/19 P30V/Cam30V CALLQUE $QSR_DL_2PAGE ;0.6 sec SETREG $IPRL_CB_ADDR 0 ;clear the callback register GOTO &QSR_CB_DONE_ADDR ;=========================================================== QSR_STORE_P30C2: ;partial copy of store_p30.ips BRANCHEQ R3072 2 &FRM2 RTNQUE FRM2: _SCALE $IPRL_STOREC2_SCALE ;copy from page 7 to 17 and scale _MOVSBLKI $IPRL_STOREC2_HEADER ;copy the header over SETREG $IPRP_HDECODE_PAGE19+5 0x2000 ;set to be 1024x1024 SETREGS $IPRP_HDECODE_PAGE19+8 2 0x100000L ;set the length COPYRD2D $IPRL_STR_IC30HDR+3 $IPRP_HDECODE_PAGE19+3 3 ;set n/k and dpc (l,h) ADDREGD $IPRP_HDECODE_PAGE19+3 1 ;increment n/k RTNQUE ;=========================================================== QSR_BIN_CROP: ; ;INPUT REGISTER LISTS: ; $IPRL_BIN_FMT_CROP - source, dest, dest#2 (sqrt comp) ; ;---- Bin the data into page 15 COPYRD2D $IPRL_BIN_FMT_CROP $IPRL_BIN_PARAM 4 CALLQUE $QSR_FMT_2X2BIN ;---- Crop to the output page COPYRD2D $IPRL_CROP_RAD504B $IPRL_CROP_PARAM+4 5 ;setup 2x2 bin crop list COPYRD2D $IPRL_BIN_FMT_CROP+2 $IPRL_CROP_PARAM 4 CALLQUE $QSR_FMT_CROP RTNQUE QSR_BIN_CROP_COMP: CALLQUE $QSR_BIN_CROP COPYRD2D $IPRL_BIN_FMT_CROP+4 $IPRL_SQRT_PARAM 4 CALLQUE $QSR_SQRT_COMP RTNQUE