CHAPTER 7 TV MODULES 7.1 TVSTART SUBROUTINE This subroutine assigns a channel to the Grinnell. Call: CALL TYSTART(CHANNL,STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL R I2 is the channel assigned tothe Grinnell. STATUS R I4 is the status returned by the system. 7.2 TVSTOP SUBROUTINE This subroutine deassigns the channel to the Grinnell. Call: CALL TVSTOP(CHANL,STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANL C I2 is the channel assigned to the Grinnell. STATUS R I4 is the status returned by the system. Page 2 7.3 TVSEND SUBROUTINE This subroutine sends the contents of BUFFER to the Grinnell driver. Call: CALL TVSEND(CHANNL,BUFFER,NBYTES,STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C LOG1 is the array containing machine code to be sent to the Grinnell. NBYTES C I4 is the number of bytes to be sent. STATUS R I4 is the status returned by the system. 7.4 TVERAS SUBROUTINE This subroutine erases the Grinnell picture and graphics frames. Call: CALL TVERAS(CHANNL,BUFFER,NBUFFER,TOT,STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C I2 is the array containing machine code to be sent to the Grinnell. NBUFFR C I4 is the dimension of the array BUFFER. It is usually equal to 2048. TOT C I4 is a key such that when equal to 0, only the picture frame is erased; when equal to 1, the picture and overlay frames are erased. STATUS R I4 is the status returned by the system. Page 3 7.5 TVFIRST SUBROUTINE This subroutine takes the Grinnell through its internal tests, erases the screen, and sets the zoom, pan, and video lookup table. Call: CALL TVFIRST(CHANNL,BUFFER,NBUFFR,TVREGD,TVREGC, TVREGN,STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C I2 is the array containing machine code to be sent to the Grinnell. It is loaded in this subroutine. NBUFFR C I4 is the dimension of the array BUFFER. It is usually equal to 2048. TVREGD C I2 is the array for default values for the Grinnell. TVREGC C I2 is the array for comment values for the Grinnell. TVREGN C I4 is the dimension of the above two arrays. It is usually equal to 12. STATUS R I4 is the status returned by the system. Page 4 7.6 TVREAD SUBROUTINE This subroutine reads the contents of the buffer from the Grinnell driver. Call: CALL TVREAD(CHANNL,BUFFER,NBYTES,STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C LOG1 is the array containing the data sent from the Grinnell. NBYTES C I4 is the number of bytes requested from the Grinnell. STATUS R I4 is the status returned by the system. Page 5 7.7 TVCONVLT SUBROUTINE This subroutine receives information on the position of quad cursor #4 and then directs one of various subroutines to rewrite the video lookup table under the F, J, L, K, U, V, W, and X commands of IP option. Call: CALL TVCONVLT(CHANNL,BUFFER,NBUF,NTIMES,NX,NY,G,SCF,AMIN, STATUS) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C I2 is the array this subroutine uses to send machine code to the Grinnell. NBUF C I4 is the dimension of the array BUFFER. NTIMES C I4 is the number of times this subroutine loops to read cursor 4. IMAGROC calls this subroutine with NTIMES = 500. NX R I4 is the X location of the cursor measured from the center of the screen. NY R I4 is the Y location of the cursor measured from the bottom of the screen. G C I4 is the key to select the desired lookup table subroutine. SCF C R4 is the intensity scale factor in physical units per input memory address. AMIN C R4 is the physical intensity corresponding to the lowest value stored in the memeory. STATUS R I4 is the status returned by the system. Page 6 7.8 TVBWVLT SUBROUTINE This subroutine writes new values to the Grinnell virtual lookup table according to the location of quad cursor #4 as controlled by the quad cursor joystick. The X location shifts the assignment of 12-bit LUT values with respect to the 10-bit input values (either up or down the 1024 input addresses). Increasing Y location increases the number of 10-bit input addresses which are assigned the same 12-bit LUT word. The picture is displayed in black and white. The entry TVLOGBWVLT expesses the log of the input values as a black and white picture. Call: CALL TVBWVLT(CHANNL,BUFFER,NBUF,NX,NY) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C I2 is the array containing machine to be sent to the Grinnell. NBUF C I4 is the dimension of the array BUFFER. NX C I4 is the X location of the cursor measured from the center of the screen. NY C I4 is the Y location of the cursor measured from the bottom of the screen. Page 7 7.9 TVJVLT SUBROUTINE This subroutine writes new values to the Grinnell virtual lookup table according to the location of quad cursor 1 as controlled by the quad cursor joystick. The x location shifts the assignment of 12-bit LUT values with respect to the 10-bit input values (either up or down the 1024 input addresses). An increasing y location increases the number of 10-bit input addresses which are assigned the same 12-bit LUT word. When x=256 to 381, increasing addresses (or input values) are assigned mixtures of magenta, blue, cyan, green, yellow, and red with rollover. For x=382 to 511, the sequence of colors is reversed relative to the addresses. When x=255 to 128, increasing addresses are assigned mixtures of magenta, green, blue, yellow, cyan, and red with rollover. For x=127 to 0, the sequence of colors is reversed relative to the addresses. The entry TVLOGVLT expesses the log of the input values as a sequence of colors. Call: CALL(CHANNL,BUFFER,NBUF,NX,NY) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION CHANNL C I2 is the channel assigned to the Grinnell. BUFFER C I2 is the array containing machine code to be sent to the Grinnell. It is loaded by this subroutine. NBUF C I4 is the dimension of the array BUFFER. NX C I4 is the X location of the cursor measured from the center of the screen. NY C I4 is the Y location of the cursor measured from the botton of the screen. 7.10 TVUMPHYS SUBROUTINE This subroutine calls the various subroutines dealing with the Grinnell picture display system in the Physics Dept. at the University of Michigan. Internal tests can be run, pictures in the SAD format displayed (one or more at a time), and overlays written and erased. This subroutine is called by TV, which is called by MIIPSOPT. Page 8 7.11 GRENDELS SUBROUTINE This subroutine sends data from a SAD file to the Grinnell memory. It is used by the "I" command of the "TV" option and by other options which require loading of an image. This object code of this subroutine should go in the PAN library. RETURNS: XLOC Starting X location on TV in Grinnell pixels YLOC Starting Y location on TV in Grinnell pixels NPTSX Number of Grinnell pixels in the X direction NPTSY Number of Grinnell pixels in the Y direction SCF Scale factor for grayscale AMIN Lowest intensity AMAX Highest intensity DX Grinnell pixels per map pixels in the X direction DY Grinnell pixels per map pixels in the Y direction ADX Starting column in map ADY Starting row in map Call: CALL GRENDELS(KEY) where: NAME I/O TYPE DESCRIPTION NAME I/O TYPE DESCRIPTION KEY C I4 is the flag for whether the file name is to be requested from the user (=0), or is to be obtained from the common block DNAME (=1). 7.12 GRIMAGPROC SUBROUTINE This subroutine allows one to manipulate pictures on the Grinnell display system in the Physics Dept. at U of Michigan. After the picture has been loaded with option TV, this option allows reading of cursor locations, reading of pixel values, computation of statistics, and alteration of look up table and color gun logic. This subroutine is called by IMAGPROC, which is called by MIIPSOPT.