Dec 082017
Source code for IMDISP v7.8 - uploaded by local author.
File IMDSRC78.ZIP from The Programmer’s Corner in
Category C Source Code
Source code for IMDISP v7.8 – uploaded by local author.
File Name File Size Zip Size Zip Type
ATIVGA.ASM 8366 2416 deflated
ATIVGA.H 649 265 deflated
BROWSE.C 14869 3642 deflated
BROWSE.H 89 49 deflated
BUFFER.C 18836 3547 deflated
BUFFER.H 534 246 deflated
BUFFERS.TXT 8541 2882 deflated
CHANGES.DOC 8435 2598 deflated
DGIF_LIB.C 30176 6385 deflated
DISPIO.C 51379 8208 deflated
DISPIO.H 1830 758 deflated
DISPLAY.C 16850 4183 deflated
DISPLAY.H 643 269 deflated
DISPSUB.ASM 15116 3311 deflated
DISPSUB.H 347 158 deflated
DISPUTIL.C 22422 4342 deflated
DISPUTIL.H 995 380 deflated
EMSIF.H 5046 1398 deflated
EMSIFL.LIB 7168 3194 deflated
EMSLIBL.H 3734 1036 deflated
EV629.H 2173 782 deflated
EV629.LIB 8809 3718 deflated
EVGAIO.C 7411 2069 deflated
EVGAIO.H 516 265 deflated
FILEIO.C 14227 3225 deflated
FILEIO.H 1077 356 deflated
FILEUTIL.C 16273 4208 deflated
FILEUTIL.H 328 202 deflated
FILTER.C 64628 6285 deflated
FILTER.H 670 243 deflated
GIF_HASH.C 5633 1618 deflated
GIF_HASH.H 1721 578 deflated
GIF_LIB.C 27157 5931 deflated
GIF_LIB.H 6321 1948 deflated
HELP.C 26323 5909 deflated
HELP.H 251 168 deflated
IM-PIF.DVP 416 96 deflated
IMAGEIO.C 37513 7784 deflated
IMAGEIO.H 2063 677 deflated
IMAGUTIL.C 21745 5402 deflated
IMAGUTIL.H 436 234 deflated
IMDEF.H 4899 1594 deflated
IMDISP 5145 1273 deflated
IMDISP.C 60140 12708 deflated
IMDISP.DOC 109883 34039 deflated
IMDISP.H 2645 852 deflated
IMDISP.ICO 766 239 deflated
IMDISP.PIF 545 143 deflated
IMDISP.RSP 310 149 deflated
IMDUTIL.C 9950 3006 deflated
IMDUTIL.H 429 237 deflated
KEYWUTIL.C 8194 1395 deflated
KEYWUTIL.H 883 362 deflated
LABUTIL.C 43410 8136 deflated
LABUTIL.H 1077 366 deflated
MEM.C 5563 1021 deflated
MEM.H 365 181 deflated
MOUSE.LIB 3072 1173 deflated
MSHELL.C 11591 2718 deflated
MSHELL.H 1658 552 deflated
PALETTE.H 34967 5773 deflated
PALUTIL.C 31903 6519 deflated
PALUTIL.H 465 221 deflated
PARADISE.ASM 6452 883 deflated
PARADISE.H 233 134 deflated
PLOT.C 39331 6262 deflated
PLOT.H 786 309 deflated
REFRESH.C 5852 1674 deflated
REFRESH.H 752 299 deflated
RESCALE.ASM 2980 803 deflated
RESCALE.H 134 84 deflated
SWAP.ASM 94145 16354 deflated
SWAP.H 1701 735 deflated
TEXTUTIL.C 21070 5141 deflated
TEXTUTIL.H 836 345 deflated
TIMER.ASM 3038 1430 deflated
TIMER.H 248 169 deflated
TRIDENT.H 259 147 deflated
TRIDENT.OBJ 727 434 deflated
VESA.C 3351 1025 deflated
VESA.H 706 341 deflated
XMSIF.H 4191 1098 deflated
XMSIFL.LIB 3584 1978 deflated
XMSLIB.H 9179 3016 deflated
XMSLIBL.H 3287 914 deflated

Download File IMDSRC78.ZIP Here

Contents of the BUFFERS.TXT file

From:SMTP%"[email protected]" 21-JUN-1991 11:20:35.21
To:[email protected], [email protected]
Subj:IMDISP 7.2

Date: Fri, 21 Jun 1991 15:22:31 GMT+0000
From: [email protected] (Ron Baalke)
Message-Id: <[email protected]>
Subject: IMDISP 7.2
To: [email protected], [email protected]
X-Vmsmail-To: IMDISP

Here are my latest changes for IMDISP 7.2. They don't include Archie's latest
changes, so they will have to be merged together.


I've extended the MEAN filter to support a 5x5 mask. To use it, type


I've found that a 5x5 mask smooths out the Magellan images much
better than the regular 3x3 mask.


Multiple copies of images (or the entire screen) can now be copied and stored
away into buffers, limited by the available memory. If you don't have enough
memory, the buffers can still be used, but as virtual files (see HINTS & TIPS
ON CONSERVING MEMORY, down below). Using the buffers, images can now be
merged together to create interesting effects. You can add or subtract
images from each other. You can store an image away into a buffer before
applying a filter, and if you didn't like the result, then retrieve it
back from the buffer, effectively creating an UNDO feature. You can create
a "face-on-Venus image" by merging the face-on-Mars image with a Magellan

There are 26 buffers available in IMDISP, limited by memory or disk space.
The buffers are referenced by name as a single letter, one for each letter
of the alphabet (A-Z). Two new commands have been created to use the


Buffers can only be created with the COPY or MERGE command.

The following existing commands were changed to accomodate the buffers:


COPY - copies the image or screen to a buffer


COPY buffer [FILe]
COPY TO buffer [FILe]
COPY source TO buffer [FILe]

where buffer = A-Z
where source = A-Z or SCReen

The COPY command will attempt to copy the image last displayed with the
DISPLAY command, the screen or another buffer to a destination buffer.
IMDISP will attempt to put the buffer into extended memory. An FILE option
is provided to allow the buffer to be put into a file on the disk.


COPY A Copies the last displayed image to buffer A
COPY A TO B Copies buffer A to buffer B
COPY A TO B FILE Copies buffer A to buffer B, buffer B is a file
COPY SCREEN TO Z Copies the entire screen to buffer Z

MERGE - Merge buffers


MERGE buffer
MERGE source1 [scale1] WITH source2 [scale2] [TO buffer] [FILE]

The MERGE command will merge buffers, images or the screen together. A
scaling option can be provided to control the amount of merging. If the
TO option is not used then the result will be displayed on the screen by
default. The result can also be written to a buffer.


MERGE A Merge the last displayed image with buffer A and
display the result back on the screen

MERGE A WITH B Merge buffer A with buffer B and display the result
on the screen. Since no scaling parameter are
specified IMDISP will default to 50% of A and 50% of

MERGE A WITH B TO C Merge buffer A with buffer B and store the result
into buffer C

MERGE A WITH B -1 Subtract buffer A from buffer B

MERGE A .75 Merge 25% of the last displayed image with 75% of
buffer A, display the result on the screen.

MERGE A .75 with B .8 Merge 75% of buffer B with 80% of buffer B, display
result on the screen

MERGE B WITH SCREEN Merge buffer B with the screen

MERGE A 3 WITH B -2 TO C FILE Subtract 200% of buffer B from 300% of A,
store the result in buffer.

DISPLAY (modified)

Modified to display a buffer. Most of the options of the DISPLAY command
can be used with the buffer


DISP A Displays buffer A
DISP A SUB 2 Displays buffer A, subsampled twice
DISP A CEN ZOOM 3 Zooms in on the center of buffer A

ERASE (modifed)

When the ERASE is used with a buffer, the buffer will be erased and
any memory allocated for the buffer will be freed up.


ERASE A Erase buffer A

BROWSE (modifed)

You can BROWSE through all of the buffers that have been created. Useful
if you forget what you put in which buffer. Most of the options normally
used with the BROWSE command can be applied to the buffers.


BROWSE BUFFERS PAUSE Displays the contents of each buffer, pausing
in between each display

BRO BUFFERS SIZE 100 SUB 4 Displays a small version of each buffer


If you use the FILE option on the COPY or MERGE command, IMDISP will create
the buffer as a file on the hard disk. The file will be created on the
root directory of the C drive by default. The file will be deleted if
you ERASE the buffer, or upon exit from IMDISP. If you do not want to
have the buffer file created on the C:\ directory, then you specify the
directory name with the SET BUFFERS command.


SET BUFFERS c:\temp\
SET BUFFERS d:\buffers\

Putting it all together:

The following example shows how to use the buffers that will sharpen an
image. If you blur an image, and then subtract the original from the blurred
image, the net result is the image will be sharpened.

FILE io.img load in a image
DISP display it
COPY A copy the image to buffer A
ENH MEAN 1 apply a 5x5 mean filter to blur the image
COPY B copy the blurred image to buffer B
MERGE A 3 WITH B -2 subtract 2 * B from 3 * A, display the result
on the screen. The image should now be sharpened.


If you have no extended memory, or don't have enough extended memory, don't
despair. You can still use the buffers if you use the following tips to
help you maximize the use of the memory

o IMDISP will automatically create a refresh buffer in extended memory
whose size is he size of the screen. You can disable the refresh
buffer and this memory will be freed up for buffer use. To disable
the refresh buffer, type:


The refresh buffer can be enabled with


o IMDISP will also attempt to load an entire image into extended memory
whenever you do the FILE command. You can have IMDISP not do this
by using the NOMEMORY option:


o If you are using a Super VGA graphics card in its highest resolution,
then if you switch to a lower screen resolution, this will generally
cause the buffers to be smaller. For example, if you using an
Orchid Pro Designer II card in its highest resolution (1024x768), then
you can switch to the 800x600 or 640x480 screen resolutions:


o Subsample the image so that it doesn't take up the entire screen, which
then can be saved to smaller buffers:


o Use the FILE option on the COPY or MERGE commands to store buffers
into a file instead of extended memory.

o Erase any unused buffers:


 December 8, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>