🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: net.micro.atari16
1 messages
1 total messages Started by Jwahar R. Bammi Sat, 22 Mar 1986 04:30
ProGEM part 5 of 6
#302
Author: Jwahar R. Bammi
Date: Sat, 22 Mar 1986 04:30
600 lines
19643 bytes
#!/bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #!/bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	apndx5.prf
#	apndx6.prf
#	apndx7.prf
#	apndx8.prf
# This archive created: Fri Mar 21 22:40:59 1986
# By:	Jwahar R. Bammi ()
export PATH; PATH=/bin:$PATH
echo shar: extracting "'apndx5.prf'" '(5475 characters)'
if test -f 'apndx5.prf'
then
	echo shar: over-writing existing file "'apndx5.prf'"
fi
sed 's/^X//' << \SHAR_EOF > 'apndx5.prf'
X.!****************************************************************************
X.! 
X.! ANTIC PUBLISHING INC., COPYRIGHT 1985.  REPRINTED BY PERMISSION.
X.!
X.! ** Professional GEM ** by Tim Oren
X.!
X.! Proff File by ST enthusiasts at
X.! Case Western Reserve University
X.! Cleveland, Ohio
X.! uucp : decvax!cwruecmp!bammi
X.! csnet: bammi@case
X.! arpa : bammi%case@csnet-relay
X.! compuserve: 71515,155
X.!
X.!****************************************************************************
X.!
X.!			Begin Appendix 5
X.!
X.!***************************************************************************
X.!
X.!
X.AP V Sample Code for Part VI
X/* >>>>>>>>>>>>>>>>>>>>>>>>>>> MFDB Structure <<<<<<<<<<<<<<<<<<<<<<<<<< */
X					/* Memory Form Definition Block */
Xtypedef struct fdbstr
X{
X	long		fd_addr;	/* Form address			*/
X	int		fd_w;		/* Form width in pixels		*/
X	int		fd_h;		/* Form height in pixels	*/
X	int		fd_wdwidth;	/* Form width in memory words	*/
X	int		fd_stand;	/* Standard form flag		*/
X	int		fd_nplanes;	/* Number of color planes	*/
X	int		fd_r1;		/* Dummy locations:		*/
X	int		fd_r2;		/* Reserved for future use	*/
X	int		fd_r3;
X} MFDB;
X.bp
X/* >>>>>>>>>>>>>>>>>>>> Resource Transform Utilities <<<<<<<<<<<<<<<<<< */
X/*------------------------------*/
X/*	vdi_fix			*/
X/*------------------------------*/
XVOID
Xvdi_fix(pfd, theaddr, wb, h)		/* This routine loads the MFDB */
X	MFDB		*pfd;		/* Input values are the MFDB's */
X	LONG		theaddr;	/* address, the form's address,*/
X	WORD		wb, h;		/* the form's width in bytes,  */
X	{				/* and the height in pixels    */
X	pfd->fww = wb >> 1;
X	pfd->fwp = wb << 3;
X	pfd->fh = h;
X	pfd->np = 1;			/* Monochrome assumed	       */
X	pfd->mp = theaddr;
X	}
X
X/*------------------------------*/
X/*	vdi_trans		*/
X/*------------------------------*/
XWORD
Xvdi_trans(saddr, swb, daddr, dwb, h) 	/* Transform the standard form */
X	LONG		saddr;		/* pointed at by saddr and     */
X	UWORD		swb;		/* store in the form at daddr  */
X	LONG		daddr;		/* Byte widths and pixel height*/
X	UWORD		dwb;		/* are given		       */
X	UWORD		h;
X	{
X	MFDB		src, dst;	/* These are on-the-fly MFDBs  */
X
X	vdi_fix(&src, saddr, swb, h);	/* Load the source MFDB	       */
X	src.ff = TRUE;			/* Set it's std form flag      */
X
X	vdi_fix(&dst, daddr, dwb, h);	/* Load the destination MFDB   */
X	dst.ff = FALSE;			/* Clear the std flag	       */
X	vr_trnfm(vdi_handle, &src, &dst );	/* Call the VDI	       */
X	}
X
X/*------------------------------*/
X/*	trans_bitblk		*/
X/*------------------------------*/
XVOID
Xtrans_bitblk(obspec)			/* Transform the image belonging */
X	LONG	obspec;			/* to the bitblk pointed to by   */
X	{				/* obspec.  This routine may also*/
X	LONG	taddr;			/* be used with free images	 */
X	WORD	wb, hl;
X
X	if ( (taddr = LLGET(BI_PDATA(obspec))) == -1L)
X		return;			/* Get and validate image address */
X	wb = LWGET(BI_WB(obspec));	/* Extract image dimensions	  */
X	hl = LWGET(BI_HL(obspec));
X	vdi_trans(taddr, wb, taddr, wb, hl);	/* Perform a transform	  */
X	}					/* in place		  */
X
X/*------------------------------*/
X/*	trans_obj		*/
X/*------------------------------*/
XVOID
Xtrans_obj(tree, obj)			/* Examine the input object.  If  */
X	LONG	tree;			/* it is an icon or image, trans- */
X	WORD	obj;			/* form the associated raster	  */
X	{				/* forms in place.		  */
X	WORD	type, wb, hl;		/* This routine may be used with  */
X	LONG	taddr, obspec;		/* map_tree() to transform an     */
X					/* entire resource tree		  */
X
X	type = LLOBT(LWGET(OB_TYPE(obj)));		/* Load object type */
X	if ( (obspec = LLGET(OB_SPEC(obj))) == -1L)	/* Load and check   */
X		return (TRUE);				/* ob_spec pointer  */
X	switch (type) {
X		case G_IMAGE:
X			trans_bitblk(obspec);		/* Transform image  */
X			return (TRUE);
X		case G_ICON:				/* Load icon size   */
X			hl = LWGET(IB_HICON(obspec));
X			wb = (LWGET(IB_WICON(obspec)) + 7) >> 3;
X							/* Transform data   */
X			if ( (taddr = LLGET(IB_PDATA(obspec))) != -1L)
X				vdi_trans(taddr, wb, taddr, wb, hl);
X							/* Transform mask   */
X			if ( (taddr = LLGET(IB_PMASK(obspec))) != -1L)
X				vdi_trans(taddr, wb, taddr, wb, hl);
X			return (TRUE);
X		default:
X			return (TRUE);
X		}
X	}
X.bp
X/* >>>>>>>>>>>>>>>>  Macro definitions for the code above <<<<<<<<<<<<<<< */
X
X#define BI_PDATA(x)	(x)
X#define BI_WB(x)	(x + 4)
X#define BI_HL(x)	(x + 6)
X#define OB_TYPE(x) 	(tree + (x) * sizeof(OBJECT) + 6)
X#define OB_SPEC(x) 	(tree + (x) * sizeof(OBJECT) + 12)
X#define IB_PMASK(x)	(x)
X#define IB_PDATA(x)	(x + 4)
X#define IB_WICON(x)	(x + 22)
X#define IB_HICON(x)	(x + 24)
X.bp
X/* >>>>>>>>>>>>>>>>>>>>>>>> VDI Copy Mode Table <<<<<<<<<<<<<<<<<<<<<<<<< */
X
XSymbols: N = new destination pixel value (0 or 1)
X	 D = old destination pixel value (0 or 1)
X	 S = source pixel value (0 or 1)
X	 ~ = Boolean not (inversion)
X	 & = Boolean and
X	 | = Boolean or
X	 ^ = Boolean xor (exclusive-or)
X
XMode Number	Action
X----------	------
X    0		N = 0		(USE V_BAR INSTEAD)
X    1		N = S & D
X    2		N = S & ~D
X    3		N = S		(REPLACE)
X    4		N = ~S & D	(ERASE)
X    5		N = D		(USELESS)
X    6		N = S ^ D	(XOR)
X    7		N = S | D	(TRANSPARENT)
X    8		N = ~ (S | D)
X    9		N = ~ (S ^ D)
X   10		N = ~D		(USE V_BAR INSTEAD)
X   11		N = S | ~D
X   12		N = ~S
X   13		N = ~S | D	(REVERSE TRANSPARENT)
X   14		N = ~ (S & D)
X   15		N = 1		(USE V_BAR INSTEAD)
X
X/* >>>>>>>>>>>>>>>>>>>>>>>> END OF DOWNLOAD <<<<<<<<<<<<<<<<<<<<<<<<<< */
X.!
X.!****************************************************************************
X.!
X.!			End Appendix 5
X.!
X.!****************************************************************************
SHAR_EOF
if test 5475 -ne "`wc -c 'apndx5.prf'`"
then
	echo shar: error transmitting "'apndx5.prf'" '(should have been 5475 characters)'
fi
echo shar: extracting "'apndx6.prf'" '(5246 characters)'
if test -f 'apndx6.prf'
then
	echo shar: over-writing existing file "'apndx6.prf'"
fi
sed 's/^X//' << \SHAR_EOF > 'apndx6.prf'
X.!****************************************************************************
X.! 
X.! ANTIC PUBLISHING INC., COPYRIGHT 1985.  REPRINTED BY PERMISSION.
X.!
X.! ** Professional GEM ** by Tim Oren
X.!
X.! Proff File by ST enthusiasts at
X.! Case Western Reserve University
X.! Cleveland, Ohio
X.! uucp : decvax!cwruecmp!bammi
X.! csnet: bammi@case
X.! arpa : bammi%case@csnet-relay
X.! compuserve: 71515,155
X.!
X.!****************************************************************************
X.!
X.!			Begin Appendix 6
X.!
X.!***************************************************************************
X.!
X.!
X.AP VI Sample Code for Part VII 
X/*
X>>>>>>>>>>>>>>>>>>>>>> Download file for GEM column #7 <<<<<<<<<<<<<<<<<<<<<
X>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sample Menu Tree <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
X*/
X
X-1, 1, 6, G_IBOX, NONE, NORMAL, 0x0L, 0,0, 80,25,	/* ROOT */
X6, 2, 2, G_BOX, NONE, NORMAL, 0x1100L, 0,0, 80,513,	/* THE BAR */
X1, 3, 5, G_IBOX, NONE, NORMAL, 0x0L, 2,0, 20,769,	/* THE ACTIVE */
X4, -1, -1, G_TITLE, NONE, NORMAL, 0x0L, 0,0, 6,769,	/* Title #1 */
X5, -1, -1, G_TITLE, NONE, NORMAL, 0x1L, 6,0, 6,769,	/* Title #2 */
X2, -1, -1, G_TITLE, NONE, NORMAL, 0x2L, 12,0, 8,769,	/* Title #3 */
X0, 7, 22, G_IBOX, NONE, NORMAL, 0x0L, 0,769, 80,19,	/* THE SCREEN */
X16, 8, 15, G_BOX, NONE, NORMAL, 0xFF1100L, 2,0, 20,8,	/* Drop-down #1 */
X9, -1, -1, G_STRING, NONE, NORMAL, 0x3L, 0,0, 19,1,	/* About... entry */
X10, -1, -1, G_STRING, NONE, DISABLED, 0x4L, 0,1, 20,1,
X11, -1, -1, G_STRING, NONE, NORMAL, 0x5L, 0,2, 20,1,	/* Desk acc entries */
X12, -1, -1, G_STRING, NONE, NORMAL, 0x6L, 0,3, 20,1,
X13, -1, -1, G_STRING, NONE, NORMAL, 0x7L, 0,4, 20,1,
X14, -1, -1, G_STRING, NONE, NORMAL, 0x8L, 0,5, 20,1,
X15, -1, -1, G_STRING, NONE, NORMAL, 0x9L, 0,6, 20,1,
X7, -1, -1, G_STRING, NONE, NORMAL, 0xAL, 0,7, 20,1,
X22, 17, 21, G_BOX, NONE, NORMAL, 0xFF1100L, 8,0, 13,5,	/* Drop-down #2 */
X18, -1, -1, G_STRING, NONE, NORMAL, 0xBL, 0,0, 13,1,
X19, -1, -1, G_STRING, NONE, DISABLED, 0xCL, 0,1, 13,1,
X20, -1, -1, G_STRING, NONE, NORMAL, 0xDL, 0,4, 13,1,
X21, -1, -1, G_STRING, NONE, NORMAL, 0xEL, 0,2, 13,1,
X16, -1, -1, G_STRING, NONE, DISABLED, 0xFL, 0,3, 13,1,
X6, 23, 25, G_BOX, NONE, NORMAL, 0xFF1100L, 14,0, 26,3,	/* Drop down #3 */
X24, -1, -1, G_STRING, NONE, NORMAL, 0x10L, 0,2, 26,1,
X25, -1, -1, G_STRING, NONE, NORMAL, 0x11L, 0,0, 26,1,
X22, -1, -1, G_STRING, LASTOB, DISABLED, 0x12L, 0,1, 26,1
X.bp
X/*
X>>>>>>>>>>>>>>>>>>>>>>>> Menu enable/disable utility <<<<<<<<<<<<<<<<<<<<<<
X*/
X
X/*------------------------------*/
X/*	undo_obj		*/
X/*------------------------------*/
X	VOID
Xundo_obj(tree, which, bit)
X	LONG	tree;
X	WORD	which;
X	UWORD	bit;
X	{
X	WORD	state;
X
X	state = LWGET(OB_STATE(which));
X	LWSET(OB_STATE(which), state & ~bit);
X	}
X
X/*------------------------------*/
X/*	enab_obj		*/
X/*------------------------------*/
X	WORD
Xenab_obj(tree, which)
X	LONG	tree;
X	WORD	which;
X	{
X	undo_obj(tree, which, (UWORD) DISABLED);
X	return (TRUE);
X	}
X
X/*------------------------------*/
X/*	do_obj  		*/
X/*------------------------------*/
X	VOID
Xdo_obj(tree, which, bit)
X	LONG	tree;
X	WORD	which;
X	UWORD	bit;
X	{
X	WORD	state;
X
X	state = LWGET(OB_STATE(which));
X	LWSET(OB_STATE(which), state | bit);
X	}
X
X/*------------------------------*/
X/*	disab_obj		*/
X/*------------------------------*/
X	WORD
Xdisab_obj(tree, which)
X	LONG	tree;
X	WORD	which;
X	{
X	do_obj(tree, which, (UWORD) DISABLED);
X	return (TRUE);
X	}
X
X/*------------------------------*/
X/*	set_menu		*/
X/*------------------------------*/
X	VOID
Xset_menu(tree, change)			/* change[0] TRUE selects all entries*/
X	LONG	tree;			/* FALSE deselects all.  Change list */
X	WORD	*change;		/* of items is then toggled.	     */
X	{
X	WORD	dflt, screen, drop, obj;
X
X	dflt = *change++;			/* What is default?   */
X	screen = LWGET(OB_TAIL(ROOT));		/* Get SCREEN 	      */
X	drop = LWGET(OB_HEAD(screen));		/* Get DESK drop-down */
X						/* and skip it        */
X	for (; (drop = LWGET(OB_NEXT(drop))) != screen; )
X		{
X		obj = LWGET(OB_HEAD(drop));
X		if (obj != NIL)
X		if (dflt)
X			map_tree(tree, obj, drop, enab_obj);
X		else
X			map_tree(tree, obj, drop, disab_obj);
X		}
X
X	for (; *change; change++)
X		if (dflt)
X			disab_obj(tree, *change);
X		else
X			enab_obj(tree, *change);
X	}
X.bp
X/*
X>>>>>>>>>>>>>>>>>>>>> Definitions used in this article <<<<<<<<<<<<<<<<<<<<<<
X*/
X
X#define ROOT 0
X
X#define G_IBOX    25
X#define G_STRING  28
X#define G_TITLE   32
X
X#define R_TREE     0
X
X#define MN_SELECTED 10
X
X#define CHECKED   0x4
X#define DISABLED  0x8
X
X#define OB_NEXT(x) (tree + (x) * sizeof(OBJECT) + 0)
X#define OB_HEAD(x) (tree + (x) * sizeof(OBJECT) + 2)
X#define OB_TAIL(x) (tree + (x) * sizeof(OBJECT) + 4)
X#define OB_TYPE(x) (tree + (x) * sizeof(OBJECT) + 6)
X#define OB_FLAGS(x) (tree + (x) * sizeof(OBJECT) + 8)
X#define OB_STATE(x) (tree + (x) * sizeof(OBJECT) + 10)
X#define OB_SPEC(x) (tree + (x) * sizeof(OBJECT) + 12)
X#define OB_X(x) (tree + (x) * sizeof(OBJECT) + 16)
X#define OB_Y(x) (tree + (x) * sizeof(OBJECT) + 18)
X#define OB_WIDTH(x) (tree + (x) * sizeof(OBJECT) + 20)
X#define OB_HEIGHT(x) (tree + (x) * sizeof(OBJECT) + 22)
X
X#define M_OFF     256
X#define M_ON      257
X.!
X.!****************************************************************************
X.!
X.!			End Appendix 6
X.!
X.!****************************************************************************
SHAR_EOF
if test 5246 -ne "`wc -c 'apndx6.prf'`"
then
	echo shar: error transmitting "'apndx6.prf'" '(should have been 5246 characters)'
fi
echo shar: extracting "'apndx7.prf'" '(3278 characters)'
if test -f 'apndx7.prf'
then
	echo shar: over-writing existing file "'apndx7.prf'"
fi
sed 's/^X//' << \SHAR_EOF > 'apndx7.prf'
X.!****************************************************************************
X.! 
X.! ANTIC PUBLISHING INC., COPYRIGHT 1985.  REPRINTED BY PERMISSION.
X.!
X.! ** Professional GEM ** by Tim Oren
X.!
X.! Proff File by ST enthusiasts at
X.! Case Western Reserve University
X.! Cleveland, Ohio
X.! uucp : decvax!cwruecmp!bammi
X.! csnet: bammi@case
X.! arpa : bammi%case@csnet-relay
X.! compuserve: 71515,155
X.!
X.!****************************************************************************
X.!
X.!			Begin Appendix 7
X.!
X.!***************************************************************************
X.!
X.!
X.AP VII Sample Code for Part IX
X/*
X>>>>>>>>>>>>>>>> Routines to set clip to a GRECT <<<<<<<<<<<<<<<<
X*/
X
X        VOID
Xgrect_to_array(area, array)     /* convert x,y,w,h to upr lt x,y and    */
X        GRECT   *area;          /*                    lwr rt x,y        */
X        WORD    *array;
X        {
X        *array++ = area->g_x;
X        *array++ = area->g_y;
X        *array++ = area->g_x + area->g_w - 1;
X        *array = area->g_y + area->g_h - 1;
X        }
X
X        VOID
Xset_clip(clip_flag, s_area)     /* set clip to specified area           */
X        WORD    clip_flag;
X        GRECT   *s_area;
X        {
X        WORD    pxy[4];
X
X        grect_to_array(s_area, pxy);
X        vs_clip(vdi_handle, clip_flag, pxy);
X        }
X.bp
X/*
X>>>>>>>>>> Routines to set attributes before output <<<<<<<<<<<<
X*/
X        VOID
Xrr_perim(mode, color, type, width, pxy)      /* Draw a rounded    */
X        WORD    mode, color, width, *pxy;    /* rectangle outline */
X        {
X        vswr_mode(vdi_handle, mode);
X        vsl_color(vdi_handle, color);
X        vsl_type(vdi_handle, type);
X        vsl_width(vdi_handle, width);
X        v_rbox(vdi_handle, pxy);
X        vswr_mode(vdi_handle, MD_REPLACE);
X        }
X
X        VOID
Xpl_perim(mode, type, color, width, npts, pxy)     /* Draw a polygonal */
X                                                  /* figure           */
X        WORD    mode, type, color, width, npts, *pxy;
X        {
X        vswr_mode(vdi_handle, mode);
X        vsl_type(vdi_handle, type);
X        vsl_color(vdi_handle, color);
X        vsl_width(vdi_handle, width);
X        v_pline(vdi_handle, npts, pxy);
X        }
X
X        VOID                  /* Draw a filled polygonal area */
Xpl_fill(mode, perim, color, interior, style, npts, pxy)
X        WORD    mode, perim, color, interior, style, npts, *pxy;
X        {
X        vswr_mode(vdi_handle, mode);
X        vsf_color(vdi_handle, color);
X        vsf_style(vdi_handle, style);
X        vsf_interior(vdi_handle, interior);
X        vsf_perimeter(vdi_handle, perim);
X        v_fillarea(vdi_handle, npts, pxy);
X        }
X
X        VOID                  /* Draw a filled rectangle    */
Xrect_fill(mode, perim, color, interior, style, pxy)
X        WORD    mode, perim, color, style, interior, *pxy;
X        {
X        vswr_mode(vdi_handle, mode);
X        vsf_color(vdi_handle, color);
X        vsf_style(vdi_handle, style);
X        vsf_interior(vdi_handle, interior);
X        vsf_perimeter(vdi_handle, perim);
X        vr_recfl(vdi_handle, pxy);
X        }
X.!
X.!****************************************************************************
X.!
X.!			End Appendix 7
X.!
X.!****************************************************************************
SHAR_EOF
if test 3278 -ne "`wc -c 'apndx7.prf'`"
then
	echo shar: error transmitting "'apndx7.prf'" '(should have been 3278 characters)'
fi
echo shar: extracting "'apndx8.prf'" '(2151 characters)'
if test -f 'apndx8.prf'
then
	echo shar: over-writing existing file "'apndx8.prf'"
fi
sed 's/^X//' << \SHAR_EOF > 'apndx8.prf'
X.!****************************************************************************
X.! 
X.! ANTIC PUBLISHING INC., COPYRIGHT 1985.  REPRINTED BY PERMISSION.
X.!
X.! ** Professional GEM ** by Tim Oren
X.!
X.! Proff File by ST enthusiasts at
X.! Case Western Reserve University
X.! Cleveland, Ohio
X.! uucp : decvax!cwruecmp!bammi
X.! csnet: bammi@case
X.! arpa : bammi%case@csnet-relay
X.! compuserve: 71515,155
X.!
X.!****************************************************************************
X.!
X.!			Begin Appendix 8
X.!
X.!***************************************************************************
X.!
X.!
X.AP VIII Sample Code for Part X 
X/*
X>>>>>>>>>>> Demonstration of byte alignment of window interior <<<<<<<<<<<
X*/
X
X#define FEATURES    0x0fef	/* what border features are used   */
XWORD	msg[8];			/* message from evnt_multi	   */
XGRECT	work_area;		/* defines working area 	   */
XWORD	w_hndl;			/* handle for window being changed */
X
X	wind_calc(1, FEATURES, msg[4], msg[5], msg[6], msg[7], 
X		&work_area.g_x, &work_area.g_y, &work_area.g_w, 
X		&work_area.g_h);
X	work_area.g_x = align_x(work_area.g_x);
X	work_area.g_w = align_x(work_area.g_w);
X	wind_calc(0, FEATURES, work_area.g_x, work_area.g_y, 
X		work_area.g_w, work_area.g_h, &msg[4], &msg[5], 
X		&msg[6], &msg[7]); 
X	wind_set(w_hndl, WF_CXYWH, msg[4], msg[5], msg[6], msg[7]);
X.bp
X/*
X>>>>>>>>>>>>>>>>>>>>> Subroutine for above <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
X*/
X	WORD
Xalign_x(x)		/* forces word alignment for column position	*/
X	WORD	x;		/*   rounding to nearest word		*/
X	{
X	return((x & 0xfff0) + ((x & 0x0008) ? 0x0010 : 0));
X	}	
X.bp
X/*
X>>>>>>>>>>>>>>>>>>>>> Standard v_gtext binding <<<<<<<<<<<<<<<<<<<<<<<<<
X*/
X	WORD
Xv_gtext( handle, x, y, string)
X	WORD handle, x, y;
X	BYTE *string;
X	{
X	WORD i;
X	ptsin[0] = x;
X	ptsin[1] = y;
X	i = 0;
X	while (intin[i++] = *string++)	/* Copy characters to intin    */
X		;			/* There is NO error checking! */
X	contrl[0] = 8;
X	contrl[1] = 1;
X	contrl[3] = --i;
X	contrl[6] = handle;
X	vdi();
X	}
X.!
X.!****************************************************************************
X.!
X.!			End Appendix 8
X.!
X.!****************************************************************************
SHAR_EOF
if test 2151 -ne "`wc -c 'apndx8.prf'`"
then
	echo shar: error transmitting "'apndx8.prf'" '(should have been 2151 characters)'
fi
#	End of shell archive
exit 0

-- 
					Jwahar R. Bammi
			       Usenet:  .....!decvax!cwruecmp!bammi
			        CSnet:  bammi@case
				 Arpa:  bammi%case@csnet-relay
			   CompuServe:  71515,155
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads