home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Der Mediaplex Sampler - Die 6 von Plex
/
6_v_plex.zip
/
6_v_plex
/
DISK2
/
MULTI_04
/
JPEGVIEW.ZIP
/
JVIEW.PCH
< prev
next >
Wrap
Text File
|
1992-04-16
|
24KB
|
704 lines
diff -rc2N jpegsrc3/jconfig.h jviewsrc/jconfig.h
*** jpegsrc3/jconfig.h Sat Mar 7 21:26:04 1992
--- jviewsrc/jconfig.h Thu Apr 16 01:27:04 1992
***************
*** 178,181 ****
--- 178,182 ----
/* these defines indicate which image (non-JPEG) file formats are allowed */
#define GIF_SUPPORTED /* GIF image file format */
+ #define VIEW_SUPPORTED /* image viewer on screen */
/* #define RLE_SUPPORTED */ /* RLE image file format (by default, no) */
#define PPM_SUPPORTED /* PPM/PGM image file format */
diff -rc2N jpegsrc3/jdmain.c jviewsrc/jdmain.c
*** jpegsrc3/jdmain.c Tue Mar 17 15:23:13 1992
--- jviewsrc/jdmain.c Thu Apr 16 01:27:04 1992
***************
*** 70,74 ****
--- 70,79 ----
*/
+ #ifdef VIEW_SUPPORTED
+ unsigned char selmode;
+ #endif
+
typedef enum {
+ FMT_VIEW, /* view on screen */
FMT_GIF, /* GIF format */
FMT_PPM, /* PPM/PGM (PBMPLUS formats) */
***************
*** 106,109 ****
--- 111,119 ----
*/
switch (requested_fmt) {
+ #ifdef VIEW_SUPPORTED
+ case FMT_VIEW:
+ jselview(cinfo);
+ break;
+ #endif
#ifdef GIF_SUPPORTED
case FMT_GIF:
***************
*** 159,163 ****
{
fprintf(stderr, "usage: %s ", progname);
! fprintf(stderr, "[-G] [-P] [-R] [-T] [-b] [-g] [-q colors] [-1] [-D] [-d] [-m mem]");
#ifdef TWO_FILE_COMMANDLINE
fprintf(stderr, " inputfile outputfile\n");
--- 169,173 ----
{
fprintf(stderr, "usage: %s ", progname);
! fprintf(stderr, "[-v mode] [-G] [-P] [-R] [-T] [-b] [-g] [-q colors] [-1] [-D] [-d] [-m mem]");
#ifdef TWO_FILE_COMMANDLINE
fprintf(stderr, " inputfile outputfile\n");
***************
*** 208,213 ****
/* Scan command line options, adjust parameters */
! while ((c = egetopt(argc, argv, "GPRTbgq:1Dm:d")) != EOF)
switch (c) {
case 'G': /* GIF output format. */
requested_fmt = FMT_GIF;
--- 218,230 ----
/* Scan command line options, adjust parameters */
! while ((c = egetopt(argc, argv, "v:1GPRTbgq:1Dm:d")) != EOF)
switch (c) {
+ case 'v': /* viewer output */
+ if (optarg == NULL)
+ usage(argv[0]);
+ if (sscanf(optarg, "%d", &selmode) != 1)
+ usage(argv[0]);
+ requested_fmt =FMT_VIEW;
+ break;
case 'G': /* GIF output format. */
requested_fmt = FMT_GIF;
***************
*** 276,281 ****
if (optind != argc-2) {
! fprintf(stderr, "%s: must name one input and one output file\n", argv[0]);
! usage(argv[0]);
}
if ((cinfo.input_file = fopen(argv[optind], READ_BINARY)) == NULL) {
--- 293,308 ----
if (optind != argc-2) {
! if (requested_fmt == FMT_VIEW)
! { if (optind != argc-1)
! {
! fprintf(stderr, "%s: must name one input file\n", argv[0]);
! usage(argv[0]);
! }
! }
! else
! {
! fprintf(stderr, "%s: must name one input and one output file\n", argv[0]);
! usage(argv[0]);
! }
}
if ((cinfo.input_file = fopen(argv[optind], READ_BINARY)) == NULL) {
***************
*** 283,290 ****
exit(EXIT_FAILURE);
}
! if ((cinfo.output_file = fopen(argv[optind+1], WRITE_BINARY)) == NULL) {
! fprintf(stderr, "%s: can't open %s\n", argv[0], argv[optind+1]);
! exit(EXIT_FAILURE);
! }
#else /* not TWO_FILE_COMMANDLINE -- use Unix style */
--- 310,321 ----
exit(EXIT_FAILURE);
}
!
! if (requested_fmt != FMT_VIEW)
! {
! if ((cinfo.output_file = fopen(argv[optind+1], WRITE_BINARY)) == NULL) {
! fprintf(stderr, "%s: can't open %s\n", argv[0], argv[optind+1]);
! exit(EXIT_FAILURE);
! }
! }
#else /* not TWO_FILE_COMMANDLINE -- use Unix style */
diff -rc2N jpegsrc3/jview.c jviewsrc/jview.c
*** jpegsrc3/jview.c
--- jviewsrc/jview.c Thu Apr 16 01:27:04 1992
***************
*** 0 ****
--- 1,354 ----
+ /*
+ * jview.c
+ *
+ * JPEG VGA-viewer V 1.0
+ * Copyright (C) 1992, by Hubertus Kehl
+ * This file is not part of the Independent JPEG Group's software.
+ *
+ * For conditions of distribution and use, see the accompanying README file,
+ * and the README.VIW file.
+ *
+ * This file contains routines to write output images to screen.
+ *
+ * These routines may need modification for non TSENG 3000 VGA-cards.
+ * PERMISSION TO USE this software is only granted, if you use it at your own
+ * risk. That means especially trying on non TSENG 3000 cards and trying
+ * on monitors and cards that don't support the hires modes.
+ * No warranty at all for implied defects of your hard- and software.
+ * Read README.VIW first.
+ * Send bugs, patches, additional config files etc. to
+ * kehl@informatik.tu-muenchen.de
+ *
+ * These routines are invoked via the methods put_pixel_rows, put_color_map,
+ * and output_init/term.
+ *
+ * Modified from jwrgif contributed by Thomas G. Lane.
+ * but there isn't any GIF-stuff in here any more
+ */
+
+ /* from jwrgif ....
+ * This code is loosely based on ppmtogif from the PBMPLUS distribution
+ * of Feb. 1991. That file contains the following copyright notice:
+ * Based on GIFENCODE by David Rowley <mgardi@watdscu.waterloo.edu>.
+ * Lempel-Ziv compression based on "compress" by Spencer W. Thomas et al.
+ * Copyright (C) 1989 by Jef Poskanzer.
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. This software is provided "as is" without express or
+ * implied warranty.
+ *
+ * We are also required to state that
+ * "The Graphics Interchange Format(c) is the Copyright property of
+ * CompuServe Incorporated. GIF(sm) is a Service Mark property of
+ * CompuServe Incorporated."
+ */
+
+ #include "jinclude.h"
+ #include <conio.h>
+ #include <mem.h>
+ #include <dos.h>
+
+ #ifdef VIEW_SUPPORTED
+
+ struct Vmode
+ { unsigned int modeax;
+ unsigned int modebx;
+ unsigned int xres;
+ unsigned int yres;
+ } Vmodes[10];
+
+ extern unsigned char selmode;
+
+
+ static decompress_info_ptr dcinfo; /* to avoid passing to all functions */
+
+ unsigned char palette[257][3];
+ unsigned int grow;
+ unsigned int maxwidth,maxrow,width;
+
+ void far setpal(unsigned char far *pal)
+ {
+ unsigned numcol;
+
+ numcol=256;
+
+ asm {
+ mov ax,1012h /* set EGA palette registers (block) */
+ sub bx,bx /* no. of the startregister == 0 */
+ mov cx,numcol /* no. of the colorregisters */
+
+ /* pointer to the colorpalette in RGB format (3 bytes per entry) */
+
+ les dx,pal /* Segment to ES, Offset to DX */
+ int 10h
+ }
+ }
+
+ void setvideomode(unsigned int modeax,unsigned int modebx)
+ {
+ _AX=modeax;
+ _BX=modebx;
+ geninterrupt(0x10);
+ }
+
+
+ LOCAL void
+ emit_header (int num_colors, JSAMPARRAY colormap)
+ /* set the palette according to the params */
+ /* If colormap==NULL, synthesize a gray-scale colormap */
+ {
+ int BitsPerPixel, ColorMapSize, FlagByte;
+ int cshift = dcinfo->data_precision - 6;
+ int i;
+ unsigned int val;
+ unsigned char bt;
+
+
+ /* set the video mode */
+ setvideomode(Vmodes[selmode].modeax,Vmodes[selmode].modebx);
+
+ if (num_colors > 256)
+ ERREXIT(dcinfo->emethods, "Viewer can only handle 256 colors");
+
+ /* Compute bits/pixel and related values */
+ BitsPerPixel = 1;
+ while (num_colors > (1 << BitsPerPixel))
+ BitsPerPixel++;
+ ColorMapSize = 1 << BitsPerPixel;
+
+ /* Set the Global Color Map */
+ /* If the color map is more than 8 bits precision, */
+ /* we reduce it to 8 bits by shifting */
+ for (i=0; i < ColorMapSize; i++) {
+ if (i < num_colors) {
+ if (colormap != NULL) {
+ if (dcinfo->out_color_space == CS_RGB) {
+ /* Normal case: RGB color map */
+ palette[i][0]=GETJSAMPLE(colormap[0][i]) >> cshift;
+ palette[i][1]=GETJSAMPLE(colormap[1][i]) >> cshift;
+ palette[i][2]=GETJSAMPLE(colormap[2][i]) >> cshift;
+ } else {
+ /* Grayscale "color map": possible if quantizing grayscale image */
+ bt=GETJSAMPLE(colormap[0][i]) >> cshift;
+ palette[i][0]=bt;
+ palette[i][1]=bt;
+ palette[i][2]=bt;
+ }
+ } else {
+ /* Create a gray-scale map of num_colors values, range 0..255 */
+ val=(i * 255 + (num_colors-1)/2) / (num_colors-1);
+ bt=val;
+ bt >>= 2;
+ palette[i][0]=bt;
+ palette[i][1]=bt;
+ palette[i][2]=bt;
+ }
+ }
+ }
+ setpal((unsigned char far *) &palette[0][0]);
+ }
+
+
+ /*
+ * Initialize for output on screen.
+ */
+
+
+ METHODDEF void
+ output_init (decompress_info_ptr cinfo)
+ {
+ unsigned char i,argu;
+ char ch;
+ FILE *stream;
+
+ dcinfo = cinfo; /* save for use by local routines */
+
+ for(i=0;i<=9;i++)
+ { Vmodes[i].modeax=0x13;
+ Vmodes[i].modebx=0x00;
+ Vmodes[i].xres=320;
+ Vmodes[i].yres=200;
+ }
+
+ if (selmode > 9)
+ ERREXIT(cinfo->emethods, "wrong modenr: only 9 modes supported");
+
+ /* open config file */
+ if ((stream = fopen("vgamode.cfg", "r"))
+ == NULL)
+ {
+ ERREXIT(cinfo->emethods, "could not open vgamode.cfg");
+ }
+ argu=1;
+ i=1;
+ do
+ {
+ /* read chars until EOF or # found */
+ ch = fgetc(stream);
+ if (ch=='#')
+ switch (argu)
+ { case 1: if (i > 9)
+ ERREXIT(cinfo->emethods, "vgamode.cfg: "
+ "too much videomodes described (>9).");
+ fscanf(stream,"%x#",&(Vmodes[i].modeax));
+ argu++;
+ break;
+ case 2: fscanf(stream,"%x#",&(Vmodes[i].modebx));
+ argu++;
+ break;
+ case 3: fscanf(stream,"%u#",&(Vmodes[i].xres));
+ argu++;
+ break;
+ case 4: fscanf(stream,"%u#",&(Vmodes[i].yres));
+ argu=1;i++;
+ break;
+ }
+ } while (ch != EOF);
+
+ fclose(stream);
+
+ /*
+ * If we aren't quantizing, put_color_map won't be called,
+ * so emit the header now. This only happens with gray scale output.
+ * (If we are quantizing, wait for the color map to be provided.)
+ */
+
+
+ if (! cinfo->quantize_colors)
+ emit_header(256, (JSAMPARRAY) NULL);
+ else
+ printf("Quantizing color map... please wait\n");
+
+ maxwidth=Vmodes[selmode].xres;
+ maxrow=Vmodes[selmode].yres;
+
+ width= cinfo->image_width;
+ /* is row longer as row of selected mode */
+ if (width > maxwidth) width=maxwidth;
+ /* start in first row */
+ grow=0;
+
+ }
+
+
+ /*
+ * Write the color map.
+ */
+
+ METHODDEF void
+ put_color_map (decompress_info_ptr cinfo, int num_colors, JSAMPARRAY colormap)
+ {
+ emit_header(num_colors, colormap);
+ }
+
+
+ void putrow(int y, unsigned char far *bitmap,unsigned int size)
+ {
+ unsigned int offset,seg;
+ unsigned char page;
+ unsigned int fsize;
+
+ asm { push ax /* save regs */
+ push dx
+ push bx
+
+ mov bx,y
+ mov ax,maxwidth /* max xres of current video mode */
+ mul bx /* calculate offset in video mem */
+ add ax,0h /* xpos =0 */
+ adc dx,0000
+ mov offset,ax
+ mov al,dl
+ or al,40h /* select page for desired row */
+ mov page,al
+ mov dx,03CDh
+ out dx,al
+
+ pop bx /* restore regs */
+ pop dx
+ pop ax
+ }
+ /* check if row goes over page border */
+ if (((long) offset+size)<0x10000L)
+ { seg=0xA000;
+ /* move row to video mem */
+ movedata(FP_SEG(bitmap),FP_OFF(bitmap),seg,offset,size);
+ }
+ else
+ { /* Writing row over page border */
+ fsize=(unsigned int) (0x10000L-offset);
+ seg=0xA000;
+ /* move first part of row to video mem */
+ movedata(FP_SEG(bitmap),FP_OFF(bitmap),seg,offset,fsize);
+ /* select next page */
+ page++;
+ outportb(0x3CD,page);
+ /* move second part of row to video mem */
+ movedata(FP_SEG((bitmap+fsize)),FP_OFF((bitmap+fsize)),
+ seg,0,size-fsize);
+ }
+ }
+
+
+ /*
+ * Write some pixel data.
+ */
+
+ METHODDEF void
+ put_pixel_rows (decompress_info_ptr cinfo, int num_rows,
+ JSAMPIMAGE pixel_data)
+ {
+ unsigned int row;
+
+ for (row = 0; row < num_rows; row++)
+ {
+ /* are there more rows as on screen ? */
+ if ((grow+row) < maxrow)
+ putrow(row+grow,&pixel_data[0][row][0],width);
+ }
+ grow=grow+row;
+ }
+
+
+ /*
+ * Wait for end of viewing
+ */
+
+ METHODDEF void
+ output_term (decompress_info_ptr cinfo)
+ {
+ /* wait for end of viewing, restore crt */
+ getch();
+ setvideomode(0x03,0x00);
+ }
+
+
+ /*
+ * The method selection routine for the viewer.
+ * This should be called from d_ui_method_selection if viewer output is wanted.
+ */
+
+ GLOBAL void
+ jselview (decompress_info_ptr cinfo)
+ {
+ cinfo->methods->output_init = output_init;
+ cinfo->methods->put_color_map = put_color_map;
+ cinfo->methods->put_pixel_rows = put_pixel_rows;
+ cinfo->methods->output_term = output_term;
+
+ if (cinfo->out_color_space != CS_GRAYSCALE &&
+ cinfo->out_color_space != CS_RGB)
+ ERREXIT(cinfo->emethods, "Viewer output must be grayscale or RGB");
+
+ /* Force quantization if color or if > 8 bits input */
+ if (cinfo->out_color_space == CS_RGB || cinfo->data_precision > 8) {
+ /* Force quantization to at most 256 colors */
+ cinfo->quantize_colors = TRUE;
+ if (cinfo->desired_number_of_colors > 256)
+ cinfo->desired_number_of_colors = 256;
+ }
+ }
+
+ #endif /* VIEW_SUPPORTED */
diff -rc2N jpegsrc3/makdjpeg.lst jviewsrc/makdjpeg.lst
*** jpegsrc3/makdjpeg.lst Tue Mar 17 15:24:47 1992
--- jviewsrc/makdjpeg.lst Thu Apr 16 01:27:04 1992
***************
*** 2,4 ****
jdhuff.obj jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj jquant2.obj
jrevdct.obj jrdjfif.obj jwrgif.obj jwrppm.obj jwrrle.obj jwrtarga.obj
! jutils.obj jerror.obj jmemmgr.obj jmemsys.obj jmemdosa.obj
--- 2,5 ----
jdhuff.obj jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj jquant2.obj
jrevdct.obj jrdjfif.obj jwrgif.obj jwrppm.obj jwrrle.obj jwrtarga.obj
! jutils.obj jerror.obj jmemmgr.obj jmemsys.obj jmemdosa.obj jview.obj
! graphics.lib emu.lib
\ No newline at end of file
diff -rc2N jpegsrc3/makefile.bcc jviewsrc/makefile.bcc
*** jpegsrc3/makefile.bcc Tue Mar 17 15:24:45 1992
--- jviewsrc/makefile.bcc Thu Apr 16 01:27:04 1992
***************
*** 12,20 ****
# The name of your C compiler:
! CC= bcc
# You may need to adjust these cc options:
! CFLAGS= -DHAVE_STDC -DINCLUDES_ARE_ANSI \
! -ms -DMSDOS -DINCOMPLETE_TYPES_BROKEN -w-par -O2
# -DHAVE_STDC -DINCLUDES_ARE_ANSI enable ANSI-C features (we DON'T want -A)
# -ms selects small memory model for most efficient code
--- 12,20 ----
# The name of your C compiler:
! CC= tcc
# You may need to adjust these cc options:
! CFLAGS= -DHAVE_STDC -DINCLUDES_ARE_ANSI -ms -DMSDOS -O -G -Z\
! -DINCOMPLETE_TYPES_BROKEN -w-par
# -DHAVE_STDC -DINCLUDES_ARE_ANSI enable ANSI-C features (we DON'T want -A)
# -ms selects small memory model for most efficient code
***************
*** 35,39 ****
jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
! jwrppm.c jwrrle.c jwrtarga.c
# virtual source files (not present in distribution file)
VIRTSOURCES= jmemsys.c
--- 35,39 ----
jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
! jwrppm.c jwrrle.c jwrtarga.c jview.c
# virtual source files (not present in distribution file)
VIRTSOURCES= jmemsys.c
***************
*** 64,68 ****
jdhuff.obj jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj \
jquant2.obj jrevdct.obj jrdjfif.obj jwrgif.obj jwrppm.obj \
! jwrrle.obj jwrtarga.obj
DOBJECTS= jdmain.obj $(DLIBOBJECTS) $(COMOBJECTS)
# These objectfiles are included in libjpeg.lib
--- 64,68 ----
jdhuff.obj jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj \
jquant2.obj jrevdct.obj jrdjfif.obj jwrgif.obj jwrppm.obj \
! jwrrle.obj jwrtarga.obj jview.obj
DOBJECTS= jdmain.obj $(DLIBOBJECTS) $(COMOBJECTS)
# These objectfiles are included in libjpeg.lib
***************
*** 132,135 ****
--- 132,136 ----
jwrjfif.obj : jwrjfif.c jinclude.h jconfig.h jpegdata.h
jwrgif.obj : jwrgif.c jinclude.h jconfig.h jpegdata.h
+ jview.obj : jview.c jinclude.h jconfig.h jpegdata.h
jwrppm.obj : jwrppm.c jinclude.h jconfig.h jpegdata.h
jwrrle.obj : jwrrle.c jinclude.h jconfig.h jpegdata.h
diff -rc2N jpegsrc3/readme.viw jviewsrc/readme.viw
*** jpegsrc3/readme.viw
--- jviewsrc/readme.viw Thu Apr 16 01:27:04 1992
***************
*** 0 ****
--- 1,67 ----
+
+ README for the viewer version 1.0 (C) 4/1992 by Hubertus Kehl
+ =============================================================
+
+ This distribution is an additional source based on the JPEG sources of the
+ Independent JPEG Group. An viewer for VGA-cards has been implemented (jview)
+ and some changes in jdmain have been made, to implement a new switch -v mode
+ for the viewer. For details about the JPEG sources read README and USAGE.
+ This file describes only the things about the viewer source. Conditions for the
+ viewer are nearly the same as the Independent JPEG Group states for their
+ sources.
+ You are welcome to redistribute this software and to use it for any purpose,
+ subject to the conditions under LEGAL ISSUES, below.
+
+
+ DISCLAIMER
+ ==========
+
+ THIS SOFTWARE IS NOT COMPLETE NOR FULLY DEBUGGED. It is not guaranteed to be
+ useful for anything. (See LEGAL ISSUES for even more disclaimers.)
+
+ Please report any problems with this software to kehl@informatik.tu-muenchen.de
+
+ LEGAL ISSUES
+ ============
+
+ The author makes NO WARRANTY or representation, either express or implied,
+ with respect to this software, its quality, accuracy, merchantability, or
+ fitness for a particular purpose. This software is provided "AS IS", and you,
+ its user, assume the entire risk as to its quality and accuracy.
+
+ This software is copyright (C) 1992, Hubertus Kehl.
+ All Rights Reserved except as specified below.
+
+ Permission is hereby granted to use, copy, modify, and distribute this
+ software (or portions thereof) for any purpose, without fee, subject to these
+ conditions:
+ (1) If any part of the source code for this software is distributed, then this
+ README files must be included, with this copyright and no-warranty notice
+ unaltered; and any additions, deletions, or changes to the original files
+ must be clearly indicated in accompanying documentation.
+ (2) Permission for use of this software is granted only if the user accepts
+ full responsibility for any undesirable consequences; the author accepts
+ NO LIABILITY for damages of any kind.
+
+ Permission is NOT granted for the use of any author's name or author's company
+ name in advertising or publicity relating to this software or products derived
+ from it.
+
+ I specifically permit and encourage the use of this software as the basis of
+ commercial products, provided that all warranty or liability claims are
+ assumed by the product vendor.
+
+ CHANGES
+ =======
+
+ The following changes/additions to the jpegsrc.v3 of the Independent JPEG Group
+ have been made:
+
+ makdjpeg.lst added jview.obj for linker
+ makefile.bcc added generation and dependencies of jview.obj
+ jconfig.h defined compiler switch VIEW_SUPPORTED
+ jdmain.c Added option -v [mode] and checks for this
+ jview.c The viewer itself
+ vgamode.cfg configuration file for the VGA modes
+ README.VIW the viewer readme
+ USAGE.VIW the viewer usage
diff -rc2N jpegsrc3/usage.viw jviewsrc/usage.viw
*** jpegsrc3/usage.viw
--- jviewsrc/usage.viw Thu Apr 16 01:27:04 1992
***************
*** 0 ****
--- 1,54 ----
+ USAGE instructions for the VGA viewer
+ =====================================
+ (C) 4/1992 by Hubertus Kehl
+
+ INTRODUCTION
+
+ This distribution is an additional source based on the JPEG sources of the
+ Independent JPEG Group. An viewer for VGA-cards has been implemented (jview)
+ and some changes in jdmain have been made, to implement a new switch -v mode
+ for the viewer.
+ You can reconstruct my changes on the jpegsrc.v3 if you patch the
+ diff-file over these sources.
+ I don't distribute sources of Independent JPEG Group only my changes on it.
+ Permission for use of this software is only granted, if you use it at
+ your own risk. No warranty at all for damaged soft and hardware (monitors
+ tortured with wrong hires modes etc.)
+ (see also README.VIW and README)
+ This software has only been tested on a TSENG 3000 card. A file to configure
+ the videomodes has been provided. But if this helps to get the viewer work on
+ your card, i don't know. Some changes may be necessary in jview.c (setvideomode
+ or putrow etc.) The viewer can only be compiled with TURBO C or Borland C
+ because it makes heavy use of the compiler's inline assembler and memory lib
+ functions. Use Makefile.bcc for this.
+ The viewer itself is very fast. The viewer takes only about 1% of the whole
+ run-time of program. (Measured with a profiler). On a "normal" color image
+ the quantization takes about 40-50 % and the decompression the rest. For faster
+ viewing try -g or -1 to avoid the good looking, but slow 2-pass quantization.
+
+ GENERAL USAGE
+
+ djpeg [switches] jpegfile imagefile
+
+ and for the viewer:
+
+ djpeg [switches] jpegfile
+
+
+ DJPEG DETAILS
+
+ A parameter for the viewer has been added:
+
+ -v mode Output a jpeg file to screen using the given videomode.
+ Mode corresponds to the videomodes defined in the vgamode.cfg file.
+ The first entry there, is mode 1. Viewing has only been tested
+ on a TSENG 3000, for over cards you may need some modification in
+ the sources in setvideomode, putrow or setpal.
+ All options of djpeg are supported. Most times you can use -g
+ (grayscale) for faster viewing, because of avoiding color
+ quantization.
+ (viewing implies -q, with default of 256 colors).
+ You have only to specify one inputfile and no outputfile.
+
+ Send bugs, patches, additional config files etc. to
+ kehl@informatik.tu-muenchen.de
diff -rc2N jpegsrc3/vgamode.cfg jviewsrc/vgamode.cfg
*** jpegsrc3/vgamode.cfg
--- jviewsrc/vgamode.cfg Thu Apr 16 01:35:05 1992
***************
*** 0 ****
--- 1,10 ----
+ VGA-videomode config file
+ for TSENG 3000 cards
+ Be careful with editing this file !!!
+
+ setvideomode with int 10:
+ AX BX resolution X resolution Y
+ #0x13# #0x00# #320# #200#
+ #0x2D# #0x00# #640# #350#
+ #0x2E# #0x00# #640# #480#
+ #0x30# #0x00# #800# #600#