; ;FILE: fmt_extract_v03.ips ;PURPOSE: To perform an extract and make a header ;METHOD: ; Inputs ; $IPRL_EXTRACT_PARAM - Holds: count(l,h), xlen, ylen, rowlen, dpc(l) ; $IPRP_HDECODE_ADDR - Tells where the header information starts for source and destination ; Outputs/Modifies: ; < $IPRP_HDECODE_ADDR > - The header parameters for the input and output ; Internal Use: ; $IPRL_HEAD_WORK - a working copy of the header information ; $IPRL_EXTRACT_INSTR - the working area to build the instruction ; HISTORY: Written 14-Aug-95 by M.Morrison ; 30-Aug-95 (MDM) - Changed the name ; 5-Sep-95 (MDM) - Modified to point to the correct word for dpc(l) ; 16-Nov-95 (MDM) - Changed the subroutine call for the debug statement ; from QSR_DUMP_IPREG to QSR_DEBUG_IPREG ; 5-Dec-95 (MDM) - Added the lines to copy the extract offset value ; which is copied from the DEP table (R3078-79) ; into the offset registers (R91-92) QSR_FMT_EXTRACT:: COPYRD2D $IPRL_EXTRACT_PARAM+2 $IPRL_EXTRACT_INST+4 3 ;copy NX,NY,ROWLENGTH into the instruction list COPYREG R3078 R91 ;setup extract offset (corner) COPYREG R3079 R92 GETQADR $IPRL_DEBUG_ADDR CALLQUE $QSR_DEBUG_IPREG ;get the IP register status _EXTRACT $IPRL_EXTRACT_INST ;do the extract ;--- do the decoding of the source/destination page COPYREG $IPRL_EXTRACT_INST+1 $IPRL_HDECODE_PARAM ;copy the source page high word into a known fixed parameter place COPYREG $IPRL_EXTRACT_INST+3 $IPRL_HDECODE_PARAM+1 ;copy the dest page high word into a known fixed parameter place GETQADR $IPRL_DEBUG_ADDR CALLQUE $QSR_DEBUG_IPREG ;get the IP register status CALLQUE $QSR_DO_HDECODE ;decode the value ;--- now copy the relevant info to the hrdinit slot COPYRI2D $IPRP_HDECODE_ADDR+1 $IPRL_HEAD_WORK 10 ;copy the register list to a fixed working area COPYREG $IPRL_EXTRACT_INST+2 $IPRL_HEAD_WORK+6 ;copy the final dest(l) COPYREG $IPRL_EXTRACT_INST+3 $IPRL_HEAD_WORK+7 ;copy the final dest(h) COPYREG $IPRL_EXTRACT_PARAM+5 $IPRL_HEAD_WORK+5 ;overwrite dpc(l) COPYREG $IPRL_EXTRACT_PARAM+0 $IPRL_HEAD_WORK+8 ;set the output number of pixels (l) COPYREG $IPRL_EXTRACT_PARAM+1 $IPRL_HEAD_WORK+9 ;set the output number of pixels (h) COPYRD2I $IPRL_HEAD_WORK $IPRP_HDECODE_ADDR+1 10 ;copy the register list back to the slot GETQADR $IPRL_DEBUG_ADDR CALLQUE $QSR_DEBUG_IPREG ;get the IP register status CALLQUE $QSR_DO_HEADER RTNQUE