Path: news.larc.nasa.gov!amiga-request
From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
Subject: v91i134: AmyInfo 1.3 - Uptime, current time and available memory viewer, Part01/01
Reply-To: po87553@cs.tut.fi (Pasi 'Albert' Ojala)
Newsgroups: comp.sources.amiga
Message-ID: <comp.sources.amiga.v91i134@ab20.larc.nasa.gov>
Date: 08 Jul 91 23:51:57 GMT
Approved: tadguy@uunet.UU.NET (Tad Guy)
X-Mail-Submissions-To: amiga@uunet.uu.net
X-Post-Discussions-To: comp.sys.amiga.misc

Submitted-by: po87553@cs.tut.fi (Pasi 'Albert' Ojala)
Posting-number: Volume 91, Issue 134
Archive-name: utilities/amyinfo-1.3/part01

[ uuencoded executable enclosed  ...tad ]

AmyInfo 1.3 contains the following features:
	-visual memory bars (chip and fast in separate bars)
	-visual CPU load meter
	-null task searches for "perfect numbers", does not busy loop :)
	-keeps log of boot times, uptimes and average cpu loads
	-shows current time and date
	-shows current uptime in days, hours, minutes and secs

New feature is systemlog which is written to AmyInfo: (most 
people like to assign it to s:, I think). Here is a snapshot
of my AmyInfo:SystemLog:

Booted: 01-Jul-91  18:03:39                    
Uptime: 0000 01:55:49    Average CPU load: 25 %

-Juha

#!/bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 1)."
# Contents:  AmyInfo.c AmyInfo.doc AmyInfo.uu
# Wrapped by tadguy@ab20 on Mon Jul  8 19:51:56 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'AmyInfo.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'AmyInfo.c'\"
else
echo shar: Extracting \"'AmyInfo.c'\" \(14583 characters\)
sed "s/^X//" >'AmyInfo.c' <<'END_OF_FILE'
X
X/*	AmyInfo v1.3 by Digital Design, Inc.
X
X	Author: Juha Tuominen
X	Released: 30-Jun-91		*/
X
X#include <exec/types.h>
X#include <exec/memory.h>
X#include <exec/execbase.h>
X#include <exec/tasks.h>
X#include <libraries/dos.h>
X#include <devices/timer.h>
X#include <intuition/intuitionbase.h>
X#include <graphics/rastport.h>
X#include <graphics/gfx.h>
X#include <graphics/gfxmacros.h>
X#include <graphics/text.h>
X#include <proto/all.h>
X#include <string.h>
X#include <stdio.h>
X#include <stdlib.h>
X
X#define FONTSIZE 8
X#define NAME "AmyInfo"
X#define STACK_SIZE 1000L	/* Meisseli-Make's stack size */
X
XBOOL	task_added=FALSE;
XBOOL	timeropen=FALSE;
XBOOL	keepgoing=TRUE;
XBOOL	time_requested=FALSE;
XBOOL	log=FALSE;
XBOOL	init=TRUE;
Xchar	*months[]={"","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
Xchar	date[16]="               ";
Xchar	tempdays[8]="       ";
Xchar	timetemp[8]="       ";
Xchar	booted[80];
Xint		upsecs=0,upmins=0,uphours=0,updays=0;
XULONG	maxchip, maxfast, freechip=0, freefast=0;
XULONG	cputime=NULL,cputemp=NULL,prevcpu=68;
XULONG	count=0;
XULONG	chipscale=0, fastscale=0;
XULONG	jakaja=0,cputemp2=0;
Xchar	*taskname="Meisseli-Make";
XAPTR	stack=NULL;
XUSHORT	ditherdata=0x5555;
Xint		tempmins,cpuload=0;
X
Xextern	struct ExecBase	*SysBase;
Xstruct	IntuitionBase *IntuitionBase=NULL;
Xstruct	Window *window=NULL;
Xstruct	GfxBase *GfxBase=NULL;
Xstruct	MsgPort *timerport=NULL;
Xstruct	timerequest *timermsg=NULL;
Xstruct	IntuiText abouttext[];
Xstruct	IntuiText proceed;
Xstruct	Task *task=NULL;
Xstruct	NewWindow mywindow = 
X{
X	100,
X	100,
X	400,
X	76,
X	0,1,
X	CLOSEWINDOW | MOUSEBUTTONS,
X	SMART_REFRESH | WINDOWDRAG | WINDOWCLOSE | WINDOWDEPTH | RMBTRAP,
X	NULL,
X	NULL,
X	NAME,
X	NULL,
X	NULL,
X	NULL,
X	NULL,
X	NULL,
X	NULL,
X	WBENCHSCREEN
X
X};
X
Xstruct TextAttr aifont[1] =
X{
X	{(UBYTE *)"topaz.font",8,FS_NORMAL ,FPF_ROMFONT},
X};
X
Xstruct IntuiText abouttext[7] =
X{
X	{2,1,JAM1,8, 4,(struct TextAttr *)&aifont[0],(UBYTE *)"AmyInfo v1.3",(struct IntuiText *)&abouttext[1]},
X	{2,1,JAM1,8,14,(struct TextAttr *)&aifont[0],(UBYTE *)"by Juha Tuominen",(struct IntuiText *)&abouttext[2]},
X	{2,1,JAM1,8,22,(struct TextAttr *)&aifont[0],(UBYTE *)"Copyright (c) 1991",(struct IntuiText *)&abouttext[3]},
X	{2,1,JAM1,8,30,(struct TextAttr *)&aifont[0],(UBYTE *)"Digital Design, Inc.",(struct IntuiText *)&abouttext[4]},
X	{2,1,JAM1,8,38,(struct TextAttr *)&aifont[0],(UBYTE *)" ",(struct IntuiText *)&abouttext[5]},
X	{2,1,JAM1,8,46,(struct TextAttr *)&aifont[0],(UBYTE *)"Meisseli-Make has found",(struct IntuiText *)&abouttext[6]},
X	{2,1,JAM1,8,54,(struct TextAttr *)&aifont[0],(UBYTE *)"0 perfect numbers.",(struct IntuiText *)NULL}
X};
X
Xstruct IntuiText proceed =
X{
X	2,1,JAM1,5,3,(struct TextAttr *)&aifont[0],(UBYTE *)"Continue",(struct IntuiText *)NULL
X};
X
X
X
Xvoid cleanexit(int error);
Xvoid openthings(void);
Xvoid copyfile(char *source, char *dest);
Xvoid addtimerequest(long secs, long micros);
Xvoid currenttime(void);
Xvoid changefont(void);
Xvoid initgraphics(void);
Xvoid printfinetext(char *text,int x,int y,int color);
XULONG maxmemsize(long memtype);
Xvoid idletask(void);
Xvoid __saveds switchroutine(void);
X
Xvoid CXBRK(void) 
X{ 
X	cleanexit(0);
X}
X
Xvoid cleanexit(int error)
X{
X	if(task_added) RemTask(task);
X	if(task) FreeMem(task,sizeof(struct Task));
X	if(stack) FreeMem(stack,STACK_SIZE);
X	if(timeropen)
X	{
X		if(time_requested)
X		{
X			AbortIO((struct IORequest *)timermsg);
X			WaitIO((struct IORequest *)timermsg);
X		}
X		CloseDevice((struct IORequest *)timermsg);
X	}
X	if(timermsg) DeleteExtIO((struct IORequest *)timermsg);
X	if(timerport) DeletePort(timerport);
X	if(window) CloseWindow(window);
X	if(GfxBase) CloseLibrary(GfxBase);
X	if(IntuitionBase) CloseLibrary((struct Library *)IntuitionBase);
X	exit(error);
X}
X
X
Xvoid openthings(void)
X{
X	FILE	*fp;
X
X	if(!DeviceProc("AmyInfo:") && log)
X	{
X		printf("\aAmyInfo: not assigned\n");
X		cleanexit(10);
X	}
X	if(!DeviceProc("T:") && log)
X	{
X		printf("\aT: not assigned\n");
X		cleanexit(10);
X	}
X	if (!(GfxBase=(struct GfxBase *)OpenLibrary("graphics.library",33L)))
X	{
X		printf("\aError opening GfxBase\n");
X		cleanexit(30);
X	}
X	if (!(IntuitionBase=(struct IntuitionBase*)OpenLibrary("intuition.library",33L)))
X	{
X		printf("\aError opening IntuitionBase\n");
X		cleanexit(30);
X	}
X	if(!(timerport=CreatePort(0,0)))
X	{
X		printf("\aError creating timerport\n");
X		cleanexit(22);
X	}
X	if(!(timermsg=(struct timerequest *) CreateExtIO(timerport, sizeof(struct timerequest))))
X	{
X		printf("\aError creating timerequest\n");
X		cleanexit(22);
X	}
X	if(OpenDevice("timer.device", UNIT_VBLANK, ((struct IORequest *) timermsg), 0))
X	{
X		printf("\aError opening timer.device\n");
X		cleanexit(22);
X	}
X	timeropen=TRUE;
X	if(!(window=OpenWindow(&mywindow)))
X	{
X		printf("\aError opening window\n");
X		cleanexit(27);
X	}
X	if(!(stack=AllocMem(STACK_SIZE, MEMF_CLEAR)))
X	{
X		printf("\aCannot allocate stack for idletask\n");
X		cleanexit(10);
X	}
X	if(!(task=(struct Task*)AllocMem(sizeof(struct Task),MEMF_CLEAR|MEMF_PUBLIC)))
X	{
X		printf("\aCannot create idletask\n");
X		cleanexit(10);
X	}
X
X	maxchip=maxmemsize(MEMF_CHIP);
X	maxfast=maxmemsize(MEMF_FAST);
X
X	/*	Because we run this part only once we just have to assume that user 
X		does not add memory cartiges while this program is running :) */
X
X	chipscale=maxchip/142;
X	fastscale=maxfast/142;
X	changefont();
X	if(log)
X	{
X		currenttime();
X		if(!(fp=fopen("AmyInfo:SystemLog","a")))
X		{
X			printf("\aUnable to open AmyInfo:SystemLog - check for protect bits!\n");
X			cleanexit(10);
X		}
X		fputs(booted,fp);
X		fclose(fp);
X		copyfile("AmyInfo:SystemLog","T:TEMP.AmyInfo");
X	}
X
X}
X
Xvoid copyfile(char *source, char *dest)
X{
X	FILE	*fpsource,*fpdest;
X	char	store[80]="AmyInfo!";
X	
X	if(!(fpsource=fopen(source,"r")))
X		cleanexit(10);
X	else
X	{
X		if(!(fpdest=fopen(dest,"w")))
X			cleanexit(10);
X		else
X		{
X			while(store[0]!=NULL)
X			{
X				fgets(store,80,fpsource);
X				fputs(store,fpdest);
X			}
X			fclose(fpdest);
X		}
X		fclose(fpsource);
X	}
X}
X
Xvoid addtimerequest(long secs, long micros)
X{
X	time_requested=TRUE;
X	timermsg->tr_node.io_Command=TR_ADDREQUEST;
X	timermsg->tr_time.tv_secs=secs;
X	timermsg->tr_time.tv_micro=micros;
X	SendIO((struct IORequest *)timermsg);
X}
X
X
Xvoid currenttime(void)
X{
X	long	n;
X	int		m,d,y,hours,mins,secs;
X	char	temp[16],uptemp[40];
X	long	v[3];
X	struct	DateStamp ds;
X	FILE	*fp;
X
X	DateStamp((struct DateStamp *)v);
X	n=v[0]-2251;
X	y=(4*n+3)/1461;
X	n-=1461*(long)y/4;
X	y+=84;
X	m=(5*n+2)/153;
X	d=n-(153*m+2)/5+1;
X	m+=3;
X	if (m>12)
X	{
X		y++;
X		m-=12;
X	}
X
X/*	Date stamp conversation routine from Robert A. Peck's book 
X	'Programming Guide to the Amiga. Routine by Tom Rokicki. */
X
X	sprintf(temp,"%02d-%3s-%02d",d,months[m],y);
X	if(strcmp(temp,date))
X	{
X		printfinetext(temp,70,38,2);
X		strcpy(date,temp);
X	}
X
X	DateStamp(&ds);
X	hours=ds.ds_Minute/60;
X	mins=ds.ds_Minute%60;
X	secs=ds.ds_Tick/50;	
X
X	sprintf(temp,"%02d:%02d:%02d",hours,mins,secs);
X	if(strcmp(timetemp,temp))
X	{
X		strcpy(timetemp,temp);
X		printfinetext(temp,70,25,2);
X		if(++upsecs>59)
X		{
X			upsecs=0;
X			if(++upmins>59)
X			{
X				upmins=0;
X				if(++uphours>23)
X				{
X					uphours=0;
X					updays++;
X				}
X			}
X		}		
X		if(init)
X		{
X			sprintf(booted,"\nBooted: %s  %s\n",date,temp);
X			tempmins=mins;
X			init=FALSE;
X		}
X		sprintf(uptemp,"%02d:%02d:%02d",uphours,upmins,upsecs);
X		printfinetext(uptemp,230,25,2);
X	}
X
X	sprintf(temp,"%04d",updays); /* I think 9999 days is enough for most of people :) */
X	if(strcmp(temp,tempdays))
X	{
X		printfinetext(temp,230,38,2);
X		strcpy(tempdays,temp);
X	}
X	if(tempmins-mins==45 || mins-tempmins==15)
X	{
X		tempmins=mins;
X		copyfile("T:TEMP.AmyInfo","AmyInfo:SystemLog");
X		if(!(fp=fopen("AmyInfo:SystemLog","a")))
X			cleanexit(10);
X		else
X		{
X			sprintf(booted,"Uptime: %s %s    Average CPU load: %d %%\n",temp,uptemp,100-cpuload);
X			fputs(booted,fp);
X			fclose(fp);
X		}
X	}
X}
X
Xvoid changefont(void)
X{
X	struct	TextAttr	textattr;
X	struct	TextFont	*textfont;
X
X	textattr.ta_Name="topaz.font";
X	textattr.ta_YSize=FONTSIZE;
X	textattr.ta_Style=FS_NORMAL;
X	textattr.ta_Flags=FPF_DESIGNED | FPF_ROMFONT;
X
X	if(textfont=OpenFont(&textattr))
X		SetFont(window->RPort,textfont);
X	else
X	{
X		printf("Cannot open topaz 8!\n");
X		cleanexit(10);
X	}
X}
X
Xvoid initgraphics(void)
X{
X	printfinetext("Time:",10,25,3);
X	printfinetext("Date:",10,38,3);
X	printfinetext("UpTime:",160,25,3);
X	printfinetext("Days:",160,38,3);
X	printfinetext("Chip:         K",10,51,3);
X	printfinetext("Fast:          K",160,51,3);
X
X	SetDrMd(window->RPort,JAM1);
X	SetAPen(window->RPort,1);
X	Move(window->RPort,310,69);
X	Draw(window->RPort,310,18);
X	Draw(window->RPort,390,18);
X	Move(window->RPort,7,69);
X	Draw(window->RPort,7,59);
X	Draw(window->RPort,148,59);
X	Move(window->RPort,152,69);
X	Draw(window->RPort,152,59);
X	Draw(window->RPort,303,59);
X	SetAPen(window->RPort,2);
X	Draw(window->RPort,303,69);
X	Draw(window->RPort,153,69);
X	Move(window->RPort,148,60);
X	Draw(window->RPort,148,69);
X	Draw(window->RPort,8,69);
X	Move(window->RPort,390,19);
X	Draw(window->RPort,390,69);
X	Draw(window->RPort,310,69);	
X}
X
X
XULONG maxmemsize(long memtype)
X{
X	ULONG blocksize=0;
X	struct MemHeader *MemHeader;
X
X	Forbid();
X		for(MemHeader=(struct MemHeader *)SysBase->MemList.lh_Head;MemHeader->mh_Node.ln_Succ;MemHeader=(struct MemHeader *)MemHeader->mh_Node.ln_Succ)
X		{
X			if(MemHeader->mh_Attributes&memtype)
X				blocksize+=((ULONG)MemHeader->mh_Upper-(ULONG)MemHeader->mh_Lower);
X		}
X	Permit();
X
X	return(blocksize);
X
X	/* MaxMemSize() by Louis A. Mamakos. */
X}
X
X
Xvoid updatememorybar(void)
X{
X	ULONG currentchip, currentfast;
X	long tempx;
X	char temp[16];
X
X	currentchip=AvailMem(MEMF_CHIP);
X	currentfast=AvailMem(MEMF_FAST);
X
X
X	if(currentchip!=freechip)
X	{
X		sprintf(temp,"%05d",currentchip/1024);
X		printfinetext(temp,70,51,2);
X
X		tempx=currentchip/chipscale;
X		SetDrMd(window->RPort,JAM1);
X		if(freechip>currentchip)
X		{
X			SetAPen(window->RPort,0);
X			RectFill(window->RPort,tempx+10,61,freechip/chipscale+11,67);
X		}
X		SetAPen(window->RPort,3);
X		RectFill(window->RPort,10,62,tempx+10,66);
X		Move(window->RPort,tempx+11,61);
X		SetAPen(window->RPort,1);
X		Draw(window->RPort,tempx+11,67);
X		Draw(window->RPort,9,67);
X		SetAPen(window->RPort,2);
X		Draw(window->RPort,9,61);
X		Draw(window->RPort,tempx+11,61);
X		freechip=currentchip;				
X	}
X
X	if(currentfast!=freefast)
X	{
X		sprintf(temp,"%05d",currentfast/1024);
X		printfinetext(temp,230,51,2);
X
X		tempx=currentfast/fastscale;
X		SetDrMd(window->RPort,JAM1);
X		if(freefast>currentfast)
X		{
X			SetAPen(window->RPort,0);
X			RectFill(window->RPort,tempx+155,61,freefast/fastscale+156,67);
X		}
X		SetAPen(window->RPort,3);
X		RectFill(window->RPort,155,62,tempx+155,66);
X		Move(window->RPort,tempx+156,61);
X		SetAPen(window->RPort,1);
X		Draw(window->RPort,tempx+156,67);
X		Draw(window->RPort,154,67);
X		SetAPen(window->RPort,2);
X		Draw(window->RPort,154,61);
X		Draw(window->RPort,tempx+156,61);
X		freefast=currentfast;				
X	}
X	/* scale cputime to usable form - we've got 50 pixels to fill */
X	cputemp=(100*cputemp/60)/2;
X	ScrollRaster(window->RPort,1,0,311,19,389,68);
X	SetDrMd(window->RPort,JAM1);
X	SetAPen(window->RPort,3);
X	if(ditherdata==0x5555)
X		ditherdata=0xaaaa;
X	else
X		ditherdata=0x5555;
X	SetDrPt(window->RPort,ditherdata);
X	Move(window->RPort,389,68);
X	Draw(window->RPort,389,68-cputemp);
X	SetAPen(window->RPort,0);
X	Draw(window->RPort,389,19);
X	SetDrPt(window->RPort,~0);
X	SetAPen(window->RPort,1);
X	Move(window->RPort,388,prevcpu);
X	Draw(window->RPort,389,68-cputemp);
X	prevcpu=68-cputemp;
X}
X
Xvoid printfinetext(char *text,int x, int y, int color)
X{
X	int	tempy,
X		tempx,
X		len,
X		x1,
X		y1;
X	struct RastPort *rastport=window->RPort;
X
X	SetDrMd(rastport,JAM2);
X	SetAPen(rastport,0);
X	SetBPen(rastport,0);
X	Move(rastport,x,y+2-FONTSIZE);
X	len=strlen(text);
X	tempy=y+2-FONTSIZE;
X	tempx=x+len*8;
X	x1=x+1;
X	y1=y+1;
X
X	WaitTOF();
X
X	/* 	Uh, well .. I can't discover any better way to avoid the flickering.
X		Don't place AmyInfo too high on your WB-screen :)
X		It does not make any flickering on my big A, but I've got A2620..
X		The following part will take ~5-> lines to be executed */
X
X	Draw(rastport,tempx,tempy);
X	SetAPen(rastport,1);
X	Move(rastport,x1,y1);
X	Text(rastport,text,len);
X	SetDrMd(rastport,JAM1);
X	SetAPen(rastport,color);
X	Move(rastport,x,y);
X	Text(rastport,text,len);
X}
X
Xvoid idletask(void)	/*	This is Meisseli-Make! */
X{
X	ULONG suurinluku=1,taydellinenluku,luku;
X
X	Disable();
X		task->tc_Switch=switchroutine;
X		task->tc_Flags|=TF_SWITCH;
X	Enable();
X
X	while(1)
X	{
X		taydellinenluku=0;
X		for(luku=suurinluku;luku>1;luku--)
X		{
X			if(!(suurinluku%luku))
X				taydellinenluku+=luku;
X		}
X		if(taydellinenluku==suurinluku)
X			count++;
X		suurinluku++;
X	}
X}
X
Xvoid __saveds switchroutine(void)
X{
X	/*	Thanks to Juhani Vehvilainen for sweatting with me because of
X		this idle counting routine */
X
X	cputime+=SysBase->Quantum-SysBase->Elapsed;
X}
X
Xvoid main(int argc, char *argv[])
X{
X	ULONG	timersignal, 
X			idcmpsignal, 
X			signals, 
X			class;
X	UWORD	code, 
X			qualifier;
X	struct	IntuiMessage *msg=NULL;
X	char	temp[80];
X	int		i;
X
X	if(argc==2 && (!strncmp(argv[1],"?",1) || !strncmp(argv[1],"-?",2)))
X	{
X		printf("\nUsage: AmyInfo <LEFT> <TOP>\n");
X		printf("AmyInfo v1.3  Copyright (c) 1991 Juha Tuominen / Digital Design, Inc.\n\n");
X	}
X	else
X	{
X		if(argc>1)
X		{
X			for(i=1;i<=argc;i++)
X			{
X				if(!strncmp(argv[i],"-log",4))
X					log=TRUE;
X			}
X		}
X		if(argc>=3)
X		{
X			mywindow.LeftEdge=atoi(argv[1]);
X			mywindow.TopEdge=atoi(argv[2]);
X		}
X		
X		openthings();
X		initgraphics();
X
X		timersignal = 1L << timerport->mp_SigBit;
X		idcmpsignal = 1L << window->UserPort->mp_SigBit;
X		addtimerequest(0,1);
X
X		task->tc_Node.ln_Type=NT_TASK;
X		task->tc_Node.ln_Name=taskname;
X		task->tc_Node.ln_Pri=-128;
X		task->tc_SPLower=(APTR)stack;
X		task->tc_SPUpper=(APTR)(STACK_SIZE+(ULONG)stack);
X		task->tc_SPReg=task->tc_SPUpper;
X		AddTask(task,idletask,0L);
X		task_added=TRUE;
X
X		while(keepgoing)
X		{
X			signals = Wait(timersignal | idcmpsignal);
X			if(signals & timersignal)
X			{
X				GetMsg(timerport);
X				addtimerequest(1,0);
X				if(100*cputime/60<100)
X					cputemp=cputime;
X				cputemp2+=100*cputime/60;
X				cpuload=cputemp2/++jakaja;
X				cputime=0;
X				currenttime();
X				updatememorybar();
X				sprintf(temp,"%d perfect numbers.",count);
X				abouttext[6].IText=(UBYTE *)temp;
X			}
X			if(signals & idcmpsignal)
X			{
X				while(msg=(struct IntuiMessage *)GetMsg(window->UserPort))
X				{
X					class=msg->Class;
X					code=msg->Code;
X					qualifier=msg->Qualifier;
X					ReplyMsg((struct Message *) msg);
X
X					switch(class)
X					{
X						case CLOSEWINDOW:
X							keepgoing=FALSE;
X							break;
X						case MOUSEBUTTONS:
X							if(code==MENUDOWN)
X								AutoRequest(NULL,&abouttext[0],NULL,&proceed,NULL,NULL,272,128);
X					}
X				}
X			}
X		}
X	}
X	cleanexit(0);
X}
END_OF_FILE
if test 14583 -ne `wc -c <'AmyInfo.c'`; then
    echo shar: \"'AmyInfo.c'\" unpacked with wrong size!
fi
# end of 'AmyInfo.c'
fi
if test -f 'AmyInfo.doc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'AmyInfo.doc'\"
else
echo shar: Extracting \"'AmyInfo.doc'\" \(2370 characters\)
sed "s/^X//" >'AmyInfo.doc' <<'END_OF_FILE'
X
X
XAmyInfo(1)                  USER COMMANDS                    AmyInfo(1)
X
XNAME
X	AmyInfo, AmyInfo - Uptime, current time and available memory viewer
X
XSYNOPSIS
X	AmyInfo [ -?] [<TOP> <LEFT] [-log]
X
XDESCRIPTION
X	AmyInfo is a small program which shows you available memory
X	(chip and fast in separate bars) and current uptime, current
X	date and current time. A new feature added to version 1.2 is
X	graphical output of free processor time. Processor time is
X	calculated by using null task called Meisseli-Make (it's 
X	Finnish, something like 'Big-Dick' :) Because it's forbidden to
X	make busy loops I decided to code Meisseli-Make to do something
X	useful. He calculates perfect numbers as fast as he can and by 
X	pressing right mouse button you get his current perfect number count.
X
X	Version 1.3 contains a new feature - SystemLog. It keeps log
X	of uptime and average processor load. Needs AmyInfo: and T:
X	assignments. Log will be placed to AmyInfo:. Assigning
X	AmyInfo: to S: works just fine.
X
X	It is recomended to use Kickstart 2.0, but if you want to
X	use AmyInfo under 1.3, it's better for your mental health
X	to change some color definations in the included SAS/C
X	source.
X
X	By pressing right mouse button you get more information of author.
X
XOPTIONS
X
X	-?	Gives a short usage line
X	<TOP>
X	<LEFT>	Cordinatetes where AmyInfo window will be placed
X	-log	Starts log file updating
X                
XFILES
X	AmyInfoCompiled AmyInfo
X	AmyInfo.cSAS/C source
X	AmyInfo.docGuess what you're reading :)
X
XSEE ALSO
X	foo 
X	bar
X
XBUGS
X	SystemLog will NOT be updated while info window is open.
X	Because of this it's possible that AmyInfo forgets to
X	update SystemLog for 45 minutes, but after that everything
X	is normal again.
X
XNOTES
X	I'm reachable in many ways:
X
X		E-Mail:		po87553@cs.tut.fi
X		Conventional
X		mail:		Juha Tuominen / Digital Design, Inc.
X				Opiskelijankatu 30 B 42
X				TAMPERE 33720-SF
X				FINLAND
X		Home phone:	358-31-182 851/Juha
X		Home BBS:	The Amiga Project
X				v.22bis, open 19-07 (local time, time zone +03)
X		phone: 		358-31-182 851 (yep, it's the same as
X				my home phone number!)
X
X	I've spend about 100 hours coding this little program. I did this
X	because I needed program like this. But if you find this useful too
X	and want to support my work, you can send $5-$10 to the address
X	showed up there.
X
XDigital Design, Inc. Release 1.3   Last change: 30 June 1991
END_OF_FILE
if test 2370 -ne `wc -c <'AmyInfo.doc'`; then
    echo shar: \"'AmyInfo.doc'\" unpacked with wrong size!
fi
# end of 'AmyInfo.doc'
fi
if test -f 'AmyInfo.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'AmyInfo.uu'\"
else
echo shar: Extracting \"'AmyInfo.uu'\" \(20345 characters\)
sed "s/^X//" >'AmyInfo.uu' <<'END_OF_FILE'
Xbegin 666 AmyInfo
XM```#\P`````````$``````````,```=P```%=P````,```%_```#Z0``!W!(>
XMYW[^)$@D`$GY`````"QX``1'^0```RQR`"`\````M&`")L%1R/_\*4\#;"E.)
XM`V1"K`-H<``B/```,`!.KO[.0_H!J'``3J[]V"E`!?AF!G!D8``!+"9N`10IR
XM:P"8`V!*JP"L9P``DB`/D*\`.`:`````@"E``S`@:P"LT<C1R")H`!#3R=/)#
XM(`)R`!(9*4D#=-"!7H`"0/_\*4`#?$CG0$`B/``!``%.KO\Z3-\"`DJ`9@P@+
XM/````^@O`&<``1P@0"E``W@@`E.`U($1L@``(`)3@E'(__81O``@(`)3@A&\A
XM`"(@`A&Q(``@`5'*__@0O``B+PA@>"EK`#H#,'!_4H#1K`,P0>L`7$ZN_H!!+
XMZP!<3J[^C"E``V@O`"1`("H`)&<8+&P%^"!`(B@``$ZN_Z`I0`-@(@!.KO^"F
XM(BH`(&<:)#P```/M3J[_XBE``W!G"N6(($`G:``(`*0@;`-H+PA(;`,L(&@`(
XM)"EH``0#=$ZZ`(9.N@5F<`!@!"`O``0N;`-L+P`@+`-89P0@0$Z03KH1MDZZW
XM`&1*K`-H9RHL;`7X(BP#<&<$3J[_W"(L`V!G!$ZN_Z8L>``$3J[_?")L`VA.1
XMKOZ&8!(@+`-\9PPB;`-X+'@`!$ZN_RXB;`7X3J[^8B`?3-]_?DYU9&]S+FQI6
XM8G)A<GD```!.=4YU2.<',"XO`!@F;P`<+"\`("\'3KH:]%A/)$`@"F8$</]@G
XM-@@J``,``V<02'@``D*G+P=.NA%(3^\`#"\&+PLO*@`$3KH6#$_O``PJ`$JL1
XM`T1G!'#_8`(@!4S?#.!.=0``````````<&%(YP,0)F\`$"!+2AAF_%.(D<LL,
XM"'X`'AM*AV<N4ZP!XFT2(&P!VE*L`=H@!Q"`<@`2`&#@(`=R`!(`2&P!UB\!G
XM3KH'$E!/(@!@RDAL`=9(>/__3KH'`%!/(`9,WPC`3G4```````!P84Y5_\1(>
XMYR<P)FT`""1M``Q^`'P`>@!P`!M\`"#_^W(`*T'_]G3_*T+_\D'M_]`;0/_QW
XM&T#__"M!_^0K0?_H*TC_S!`39RQR`!(`!$$`(&<45T%G%%%!9PA50686?@%@5
XM#GP!8`IZ`6`&&WP``?_\4HM@T!`3<C"P`68&4HL;0?_[<"JP$V8,(%)8DBM0Q
XM__92BV`.2&W_]B\+3KH,6E!/U\`0$W(NL`%F(E*+<"JP$V8,(%)8DBM0__)2*
XMBV`.2&W_\B\+3KH,,%!/U\`0$W)LL`%F"AM\``'_\5*+8`AR:+`!9@)2BQ`;]
XM<@`2`!M`__`$00!09P`!;%%!9P`!>@1!``MG``(&4T%G)`1!``MG``$.4T%G*
XM``%,5T%G``&V54%G``#@5T%G``%.8``!]$HM__%G""!26)(@$&`&(%)8DB`07
XM*T#_[&P*<@%$K?_L*T'_Z"`M_^AG!'(M8`I*!F<$<BM@`G(@&T'_T'(`$@:`7
XM@7(`$@6`@6<(4JW_S%*M_^0O+?_L+RW_S$ZZ"M!03RM`_\@@+?_R2H!J!G(!R
XM*T'_\B`M_\@B+?_RDH!([0`"_\1O-"!M_\S1P2\`+P@O+?_,3KH.E$_O``QP[
XM`!`M__LB+?_$(&W_S&`"$,!3@63Z("W_\BM`_\C1K?_D0>W_T"M(_\Q*!V<`)
XM`3`;?``@__M@``$F2BW_\6<((%)8DB`08`8@4EB2(!`K0/_L8`#_9$HM__%GD
XM""!26)(@$&`&(%)8DB`0*T#_[$HM__QG$B!M_\P0_``P<@$K0?_D*TC_S"\`*
XM+RW_S$ZZ"C103RM`_\A@`/\R("W_\DJ`:@9P""M`__(;?``!__%*+?_Q9P@@9
XM4EB2(!!@!B!26)(@$"M`_^Q*+?_\9Q8@;?_,$/P`,!#\`'AR`BM!_^0K2/_,\
XM+P`O+?_,3KH*&%!/*T#_R`@M``7_\&8`_M!(;?_03KH(A%A/8`#^PB!26)(B+
XM4"M)_\QF"$'Z`-@K2/_,(&W_S$H89OQ3B)'M_\PK2/_D("W_\DJ`:R:QP&\B_
XM*T#_Y&`<<`$K0/_D(%)8DB`0&T#_T$(M_]%@!G``8```C"`M_^0B+?_VLH!L2
XM"'0`*T+_]F`$D:W_]DH'9S93K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/*
XM8.)3K?_V;4AP`!`M__LO`"!M`!!.D%A/8.A3K?_V;1)P`!`M__LO`"!M`!!.A
XMD%A/8.A3K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/8.(@"TS?#.1.74YU<
XM``!.5?_T2.<!,"9M``@D;0`,*VT`$/_V'AI*!V<T<"6^`&8BL!)F!%**8!HO[
XM"TAM__8O"F$`_!1/[P`,*T#_^F<$)$!@TG``$`<O`$Z36$]@QDS?#(!.74YU7
XM3E7_[$CG(3(F;0`(#*P````@!59L``#2$!-R(+`!9PQR";`!9P9R"K`!9@12W
XMBV#H$!-G``"T(BP%5N6!4JP%5D'L!5[1P21(<B*P`69R4HL@2R2(*TC_[!`39
XM<B*P`6=0<BJP`68^4HMP`!`3!$``16<(!$``"6<08!P@;?_L$/P`%RM(_^Q@N
XM&"!M_^P0_``**TC_[&`*(&W_[!#3*TC_[%*+8+0@;?_L$-LK2/_L8*A2BR!M+
XM_^Q"&"M(_^Q@`/].)(L0$V<6<B"P`6<0<@FP`6<*<@JP`6<$4HM@YDH39@)@6
XM!D(;8`#_)B`L!59F!B!L`VA@!$'L!5XI2`5:2H!F?$/Z`39-[`4<+-DLV2S9_
XM+-D\D2)L`V@@:0`D2'@`*"\H``1(;`4<3KH&J$_O``Q![`4<(@@D/````^XL%
XM;`7X3J[_XBE``^`I0`/H<A`I00/D*4`#\"E!`^SE@"M`__"3R2QX``1.KO[:%
XM(&W_\")`(V@`"`"D?@`K0/_T8#PL;`7X3J[_RBE``^!.KO_$*4`#Z$'Z`+@B;
XM""0\```#[4ZN_^(I0`/P2H!F#D'Z`*(B"$ZN_^(I0`/P?A`@!P!`@`&!K`/<1
XM(`<`0(`"@:P#Y`"L``"``P/L2JP"'&<$<`!@!B`\``"``"X`0JP!T"`'`$``@
XM`2E``<QP`2E``?(@!P!```(I0`'N<`(I0`(4(`<`0`"`*4`"$$'Z`%PI2`-<_
XM+RP%6B\L!59.N@`Z0I=.N@[P3.U,A/_83EU.=6-O;CHQ,"\Q,"\S,C`O.#`O4
XM`"H`3DE,.@````````````````````!.^0``$N````````````````!.^0``'
XM``````````!P82\+)F\`"$JK`!1G#`@K``,`&V8$<`!@-"\L`RA.N@JR6$\G[
XM0``$)T``$&8*<`PI0`7T</]@%B=L`R@`%'#SP:L`&'``)T``#"=```@F7TYU!
XM````````````````3E7_[$CG+Q`N+0`()FT`#"@'<#'`JP`89P9P_V```F0([
XM*P`'`!I6P$0`2(!(P"P`2JL`%&8``(`(*P`"`!MF=G``)T``#'+_OH%G``(VO
XM+PM.NO]26$]*@&<,".L`!0`;</]@``(>".L``0`;2@9G#B`K`!0B`$2!)T$`[
XM#&`(("L`%"=```Q3JP`,;1(@:P`$4JL`!"`'$(!R`!(`8!(@!W(`$@`O"R\!A
XM80#_5E!/(@`@`6```<X(*P`"`!MG6'#_OH!F!G``8``!NB`'&T#__TH&9R)P#
XM"KZ`9AQP`B\`2'H!JB\K`!PK0/_P3KKW6$_O``PJ`&`:<`$O`$AM__\O*P`<V
XM*T#_\$ZZ]SQ/[P`,*@!^_V```-P(ZP`!`!M*!F=.</^^@&=(5*L`#'(*OH%F>
XM(B!K``12JP`$$+P`#2(K``Q*@6L*+PLO`&$`_K903U*K``P@:P`$4JL`!"`'!
XM$(`@*P`,2H!J!B`'8``!&'[_("L`!)"K`!`K0/_P9W((*P`&`!IG4DAX``)";
XMIR\K`!Q.N@@P3^\`#"M`_^Q*!F<X4ZW_[&TR0J<O+?_L+RL`'$ZZ"!!(>``!]
XM2&W__2\K`!Q.N@7@3^\`&$JL`T1F"A`M__UR&K`!9\@O+?_P+RL`$"\K`!Q.U
XMNO9@3^\`#"H`8`)Z`'#_NH!F"`CK``4`&V`,NJW_\&<&".L`!``;2@9G#B(K=
XM`!0D`42")T(`#&`8""L``@`;9PAR`"=!``Q@""(K`!0G00`,(&L`$"=(``2^:
XM@&<J4ZL`#&T2(&L`!%*K``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_9Q03R(`G
XM<##`JP`89P1P_V`,</^X@&8$<`!@`B`$3-\(]$Y=3G4-"@````!(YP<0)F\`W
XM%`@K``<`&E;`1`!(@$C`+@!P,,"K`!AG"D*K``AP_V```48(*P`'`!MG%`@KB
XM``8`&V<,+PM(>/__3KK]+E!/2JL`%&8T0JL`"`@K``(`&V<0<`$G0``40>L`5
XM("=(`!!@=B\+3KK\J%A/2H!G:@CK``4`&W#_8```\$H'9UI4JP`(("L`"&Y09
XM(&L`!%*K``1\`!P0(`9R#9"!9PAR#9"!9R1@+E.K``AM$"!K``12JP`$<``09
XM$&```+`O"V$`_SQ83V```*0(ZP`$`!MP_V```)@@!F```)((*P`!`!MF3@CKH
XM````&R\K`!0O*P`0+RL`'$ZZ!!9/[P`,*@!*A6H&".L`!0`;2H5F!@CK``0`#
XM&TJ%;QI*!V<*(`5$@"=```A@!"=%``@@:P`0)T@`!'`RP*L`&&<62@=G"'#_$
XM)T``"&`&<``G0``(</]@'%.K``AM#B!K``12JP`$<``0$&`(+PMA`/Z66$],*
XMWPC@3G5(YP<`+B\`$"`L`9A3@"P`2D9K,"`&2,#G@$'L`]PJ,`@`2@5G&@@%<
XM``1F%"`&2,#G@$'L`]PO,`@$3KH,Y%A/4T9@S"\'3KKS>%A/3-\`X$YU````,
XM``````!P84CG(#`F;P`0)$L0$F<D<@`2`$'L`B4(,``!&`!G"G(`$@!T()*"7
XM8`1R`!(`%(%2BF#8(`M,WPP$3G4``````````'!A2.<#,"9O`!0D;P`8+B\`>
XM'$J'9R!*$V<<2A)G&'``$!MR`!(:D($L`$J&9P0@!F`:4X=@W$J'9Q!*$V<$F
XM<`%@"DH29P1P_V`"<`!,WPS`3G5.5?_X2.<#,"9M``@D;0`,+BT`$"!*2AAFN
XM_%.(D<HL""!+2AAF_%.(D<L@"")+T\`K2?_XO(=C`BP'(`8@2F`"$MA3@&3Z'
XM(&W_^$(P:``@"TS?#,!.74YU+PLF;P`(<``0$T'L`B4(,``#"`!G!%*+8.P@C
XM"R9?3G4@+P`((&\`!$Y5__0B3W(*3KH,'`9!`#`2P4J`9O`@"1#AO\EF^D(0N
XMD(].74YU```@+P`((&\`!$Y5__0B3R(``D$`!P9!`#`2P>:(9O`@"1#AO\EF`
XM^D(0D(].74YU```P,3(S-#4V-S@Y86)C9&5F("\`""!O``1#[P`$,@`"00`/?
XM$OL0W.B(9O(@"2(/6($0X;*)9OI"$)"!3G4@;P`$(DAR`'``+P(,$``K9P8,V
XM$``M9@)22!`8!```,&T2#```"6X,)`'E@=*"TH'2@&#F#!$`+68"1($D'R`(5
XM4X`@;P`(((&0B4YU+P<N+P`(4JP%Y"`'(&P%X!#`*4@%X"X?3G5.50``2.<`)
XM,"9M``@D;0`,0JP%Y"E+!>!(;0`0+PI(>O_&3KKV.B!L!>!"$"`L!>1,[0P`2
XM__A.74YU3E7_Z$CG`3(N+0`,2H=N!G#_8```TG`(OH!D`BX`(`=6@"X``D?_;
XM_"1M``@@+0`(T(??K`&L0>P!J"90*T#_\"M(__0@"V<``)`@2R`K``31P$CMG
XM`0#_[")M__"WR6,0)(LE1P`$+&W_]"R*<`!@=K?)9AHL4R2.("L`!"(`TH<ED
XM00`$+&W_]"R*<`!@6+7(9`B?K`&L</]@3+7(9BH@$V<,L\!C")^L`:QP_V`X[
XMWZL`!"`39PZSP&8*("D`!-&K``0FD7``8!XK2__T*VW_[/_H)E-@`/]N(&W_P
XM]""*0I(E1P`$<`!,WTR`3EU.=0``````````<&%(YP<P+B\`&"9O`!PL+P`@/
XM+P=.N@N86$\D0"`*9@1P_V`>+P8O"R\J``1.N@>(3^\`#"H`2JP#1&<$</]@[
XM`B`%3-\,X$YU``!.5?_D2.</,"9M``@N+0`,0BW__T*L`T0K;`7T__)Z`[JL]
XM`9AL$B`%YX!![`/<2K`(`&<$4H5@Z"`L`9BPA68,<!@I0`7T</]@``$@(`7GM
XM@$'L`]S1P"1(("T`$&<&"````F<**WP```/L_^Y@""M\```#[O_N(#P``(``:
XMP*P!L+&'"`<``V<,(`<"0/_\+@``1P`"(`=R`\"!2H!G"%.`9P13@&8&+`=2-
XMAF`,<!8I0`7T</]@``"T(`<"@````P!G``"("`<`"F<6&WP``?__+RW_[B\+G
XM3KH'F%!/*`!@/`@'``EF%DAX`^TO"TZZ!LI03R@`2H1J!`C'``D(!P`)9QH;O
XM?``!__\I;?_R!?0O+?_N+PM.N@>^4$\H`$HM__]G-B`'<GC2@<"!2H!G*DJ$R
XM:R8O!$ZZ"`9(>`/M+PM.N@9X3^\`#"@`8`Y(>`/M+PM.N@9F4$\H`$JL`T1GS
XM!'#_8`@DAB5$``0@!4S?#/!.74YU```````````````````@;P`$(F\`""`OG
XM``QO%K/(90S1P-/`$R!3@&;Z3G42V%.`9OI.=0``2.<`,B9L!>@@"V<4)%,B)
XM2R`I``@L>``$3J[_+B9*8.B1R"E(!>PI2`7H3-],`$YU2.</$"XO`!@L+P`<R
XM*B\`("\'3KH)>%A/)D`@"V8$</]@'B\%+P8O*P`$3KH$]$_O``PH`$JL`T1GD
XM!'#_8`(@!$S?"/!.=0``2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z)D`@"V8$]
XM<`!@."='``A%[`7H(&H`!"=(``21R":(2I)F`B2+("H`!&<$(D`BBR5+``1*=
XMK`&<9@0I2P&<0>L`#"`(3-],@$YU````````````````2.<#,"XO`!1*AVX&V
XM<`!@``"D<`B^@&0"+@`@!U:`+@`"1__\1>P!J"92(`MG0"`K``2PAVTRL(=F3
XM#"!3)(B?K`&L(`M@;B`K``20AW((L(%E%B!+T<<DB"1()),E0``$GZP!K"`+&
XM8$PD2R938+P@!R(L`B#0@5.`3KH&>B(L`B!.N@92+`!0AB`&5H`L``)&__PO?
XM!DZZ_OY83R9`(`MG$B\&+PM.NON.+H=A`/]44$]@`G``3-\,P$YU````````/
XM``!P84CG`3`F;P`0)&\`%'X`'AM*AV<2+PHO!TZZ`!903U*`9NIP_V`"<`!,9
XMWPR`3G4``$CG`1`N+P`,)F\`$`@K``8`&V<2<`J^@&8,+PLO!TZZ]'A03V`L"
XM4ZL`#&T2(&L`!%*K``0@!Q"`<@`2`&`2(`=R`!(`+PLO`4ZZ]$Y03R(`(`%,3
XMWPB`3G5.5?_X2.<`,$?L`;0@"V<,2JL`&&<&)$LF4V#P(`MF(DAX`").NOZ.$
XM6$\F0$J`9@1P`&`<)(MP(7(`($L0P5'(__PO"R\M``PO+0`(3KH`#DSM#`#_/
XM\$Y=3G4``$Y5__!(YP\P)FT`#"1M`!!*J@`89P@O"DZZ`:I83RHL`AQ^`7``/
XM$#-X``1``&%G!E-`9P9@#'H`8`8J/```@`!2AW(KLC-X`%?`1`!(@$C`*`!P5
XM`!`3!$``86<.!$``$6="6T!G?&```+Y(>``,+SP``($"+RT`"$ZZ^U)/[P`,4
XM+`!P_[R`9@9P`&```-!*A&<&<$#0@&`"<`(N``!'0`!@``"(2H1G!'`"8`)P,
XM``!`@`!(>``,+P`O+0`(3KK[#D_O``PL`'#_O(!F!G``8```C$J$9P9P0-"`4
XM8`)P`2X`8$A*A&<$<`)@`G`!`$"```!``0``0`(`2'@`#"\`+RT`"$ZZ^LA/B
XM[P`,+`!P_[R`9@1P`&!&2H1G!G!`T(!@`G`"+@!@!'``8#*1R"5(`!!P`"5`@
XM`!0E1@`<)6H`$``$)4``#"5```A*A68&(#P``(``(@>"@"5!`!@@"DS?#/!.[
XM74YU2.</,"9O`!PN+P`@)&\`)"@+4X<L!TJ&:S!3J@`(;0X@:@`$4JH`!'``<
XM$!!@""\*3KKTWEA/*@!P_[J`9PQ3AB`%%L!P"KJ`9LQ"$[R'9@1P`&`$($0@<
XM"$S?#/!.=0``2.<#$"9O`!`(*P`!`!MG$"\+2'C__TZZ\@A03RX`8`)^`'`,"
XMP*L`&&842JL`%&<.+RL`%"\K`!!.NOB.4$]"JP`8+RL`'$ZZ!-Q83RP`</^^C
XM@&<&2H9F`G``3-\(P$YU2.<#$"XO`!!'[`&T(`MG-`@K``(`&V8H""L``0`;5
XM9R`@*P`$D*L`$"P`2H9G$B\&+RL`$"\K`!Q.NNG*3^\`#"938,@O!TZZ]7Q88
XM3TS?",!.=0``2.<W$BXO`"`F;P`D+"\`*$JL`UQG!$ZZ!.!"K`-$(@<D"R8&;
XM+&P%^$ZN_]`J`'#_NH!F#DZN_WPI0`-$<`4I0`7T(`5,WTCL3G4``$CG/P(N*
XM+P`@+"\`)"HO`"A*K`-<9P1.N@240JP#1"`%4X`B!R0&)@`L;`7X3J[_OB@`+
XM</^X@&8.3J[_?"E``T1P%BE`!?0@!4J`9PI3@&<*4X!G#&`8(`9@%"`$T(9@`
XM#B('=``F`BQL!?A.KO^^3-]`_$YU2.<W$BXO`"`F;P`D+"\`*$JL`UQG!$ZZ$
XM!"!"K`-$(@<D"R8&+&P%^$ZN_]8J`'#_NH!F#DZN_WPI0`-$<`4I0`7T(`5,Y
XMWTCL3G4``$CG(Q(F;P`8+B\`'$JL`UQG!$ZZ`]A"K`-$(@LD!RQL!?A.KO_B"
XM+`!*AF823J[_?"E``T1P`BE`!?1P_V`"(`9,WTC$3G4``$CG`!(F;P`,2JL`W
XM"F<*(DLL>``$3J[^F!=\`/\`"'#_)T``%'``$"L`#RQX``1.KOZP(DMP(DZNM
XM_RY,WT@`3G5(YP`2)F\`#!=\`/\`"#!\__\G2``4)T@`&'``,"L`$B)++'@`!
XM!$ZN_RY,WT@`3G5.5?_\2.<A$B9M``A*K`-<9P1.N@,@0JP#1"(+=/XL;`7X2
XM3J[_K"X`2H=G"B('3J[_IG#_8"8B"R0\```#[DZN_^(N`$J'9A).KO]\*4`#+
XM1'`"*4`%]'#_8`(@!TS?2(1.74YU3E7__$CG(1(F;0`(2JP#7&<$3KH"O$*L$
XM`T0B"W3^+&P%^$ZN_ZPN`$J'9PPB!TZN_Z8B"TZN_[@B"R0\```#[DZN_^(N'
XM`$J'9A).KO]\*4`#1'`"*4`%]'#_8`(@!TS?2(1.74YU``!(YP$"+B\`#$JLR
XM`UQG!$ZZ`E@B!RQL!?A.KO_<<`!,WT"`3G5(YS``)``F`4A"2$/$P<;`P,'4^
XM0TA"0D+0@DS?``Q.=4J`:@``'D2`2H%J```,1(%A```@1(%.=6$``!A$@$2!$
XM3G5*@6H```Q$@6$```9$@$YU+P)(030!9@``(DA`2$%(0C0`9P``!H3!,`)(I
XM0#0`A,$P`DA",@(D'TYU+P-V$`Q!`(!D```&X9E10PQ!"`!D```&Z9E90PQ!6
XM(`!D```&Y9E50TI!:P``!N.94T,T`.:H2$)"0N:J2$.`P38`,`(T`TA!Q,&07
XM@F0```A30]"!9/YR`#(#2$/GN$A`P4$F'R0?3G5(YP,R)F\`&"XO`!QP_RQXZ
XM``1.KOZV?``<`'#_O(!F!'``8&9P(B(\``$``4ZN_SHD0"`*9@@@!DZN_K!@J
XM2B5+``H@!Q5```D5?``$``A"*@`.(`850``/D\E.KO[:)4``$"`+9P@B2DZN1
XM_IY@&D'J`!@E2``40>H`%"5(`!Q"J@`8%7P``@`@(`I,WTS`3G5(YP$R)F\`T
XM%"XO`!@@"V8$<`!@+"`'(CP``0`!+'@`!$ZN_SHD0"`*9Q05?``%``A"*@`):
XM)4L`#B`'-4``$B`*3-],@$YU``!(YP$0+B\`#"\'3KH`/%A/)D`@"V8$</]@D
XM*`@K``0``V<&<``F@&`:+RL`!$ZZ_?)83W``)H!*K`-$9P1P_V`"<`!,WPB`-
XM3G4O!RXO``AP`"E``T1*AVLBOJP!F&P<(`?G@$'L`]Q*L`@`9PX@!^>`0>P#V
XMW-'`(`A@"'`)*4`%]'``+A].=0``2.<!`G``(CP``#``+'@`!$ZN_LXN``*'O
XM```P`$J'9R!*K`-<9QH@;`-<3I!*@&8"8`Y"K`-<2'@`%$ZZ\#Q83TS?0(!.\
XM=6&X3G4``$Y5__PO"R9M``@@"V8$<`!@%B\+3KKQ7B9`2&W__"\+3KKR#B`MU
XM__PF;?_X3EU.=0```^P````"`````0``"3X```E0`````@````,````4````>
XM"@````````/R```#Z0``!7<O#$GY`````$*G80`#SEA/*%].=0``2F%N`$9ET
XM8@!-87(`07!R`$UA>0!*=6X`2G5L`$%U9P!397``3V-T`$YO=@!$96,`365II
XM<W-E;&DM36%K90!!;7E);F9O`'1O<&%Z+F9O;G0``$%M>4EN9F\@=C$N,P``L
XM8GD@2G5H82!4=6]M:6YE;@``0V]P>7)I9VAT(*D@,3DY,0``1&EG:71A;"!$*
XM97-I9VXL($EN8RX``"``365I<W-E;&DM36%K92!H87,@9F]U;F0`,"!P97)F%
XM96-T(&YU;6)E<G,N``!#;VYT:6YU90``06UY26YF;SH```=!;7E);F9O.B!NZ
XM;W0@87-S:6=N960*`%0Z```'5#H@;F]T(&%S<VEG;F5D"@!G<F%P:&EC<RYL2
XM:6)R87)Y```'17)R;W(@;W!E;FEN9R!'9GA"87-E"@!I;G1U:71I;VXN;&EB\
XM<F%R>0`'17)R;W(@;W!E;FEN9R!);G1U:71I;VY"87-E"@`'17)R;W(@8W)ER
XM871I;F<@=&EM97)P;W)T"@``!T5R<F]R(&-R96%T:6YG('1I;65R97%U97-TY
XM"@``=&EM97(N9&5V:6-E```'17)R;W(@;W!E;FEN9R!T:6UE<BYD979I8V4*3
XM```'17)R;W(@;W!E;FEN9R!W:6YD;W<*```'0V%N;F]T(&%L;&]C871E('-TY
XM86-K(&9O<B!I9&QE=&%S:PH```=#86YN;W0@8W)E871E(&ED;&5T87-K"@``*
XM06UY26YF;SI3>7-T96U,;V<`80`'56YA8FQE('1O(&]P96X@06UY26YF;SI3(
XM>7-T96U,;V<@+2!C:&5C:R!F;W(@<')O=&5C="!B:71S(0H``%0Z5$5-4"Y!W
XM;7E);F9O``!R`'<`)3`R9"TE,W,M)3`R9``E,#)D.B4P,F0Z)3`R9```"D)O&
XM;W1E9#H@)7,@("5S"@``)3`T9```57!T:6UE.B`E<R`E<R`@("!!=F5R86=E&
XM($-052!L;V%D.B`E9"`E)0H`0V%N;F]T(&]P96X@=&]P87H@."$*`%1I;64ZN
XM`$1A=&4Z`%5P5&EM93H`1&%Y<SH`0VAI<#H@("`@("`@("!+`$9A<W0Z("`@B
XM("`@("`@($L``"4P-60``#\`+3\```I5<V%G93H@06UY26YF;R`\3$5&5#X@U
XM/%1/4#X*`$%M>4EN9F\@=C$N,R`@0V]P>7)I9VAT(*D@,3DY,2!*=6AA(%1U9
XM;VUI;F5N("\@1&EG:71A;"!$97-I9VXL($EN8RX*"@`M;&]G```E9"!P97)F:
XM96-T(&YU;6)E<G,N`$CG`0I)^0`````N+P`02FP``&<,(FP`NBQX``1.KO[@B
XM2JP`NF<.(FP`NG!<+'@`!$ZN_RY*K`"<9Q(B;`"<(#P```/H+'@`!$ZN_RY*A
XM;``"9R9*;``&9Q0B;`"V+'@`!$ZN_B`B;`"V3J[^)B)L`+8L>``$3J[^/DJLV
XM`+9G"B\L`+9.NA%,6$\@+`"R9P@O`$ZZ$2Q83R`L`*IG"B!`+&P`IDZN_[A*.
XMK`"N9PPB;`"N+'@`!$ZN_F)*K`"F9PPB;`"F+'@`!$ZN_F(O!TZZ$1183TS?)
XM4(!.=4CG`!I)^0````!!^OPJ(@@L;`7X3J[_4DJ`9AA*;``(9Q)(>OP<3KH0\
XMQ$AX``IA`/[X4$]!^OPB(@@L;`7X3J[_4DJ`9AA*;``(9Q)(>OP.3KH0FDAXF
XM``IA`/[.4$]#^OP.<"$L>``$3J[]V"E``*Y*@&822'K\"DZZ$')(>``>80#^/
XMIE!/0_K\$'`A+'@`!$ZN_=@I0`"F2H!F$DAZ_`Q.NA!*2'@`'F$`_GY03T*G8
XM0J=.NA`.4$\I0`"R2H!F$DAZ_`9.NA`F2'@`%F$`_EI03TAX`"@O+`"R3KH/'
XM_E!/*4``MDJ`9A)(>OOZ3KH/_DAX`!9A`/XR4$]!^OP&<`$B;`"V<@`L>``$<
XM3J[^1$J`9Q)(>OO\3KH/U$AX`!9A`/X(4$\Y?``!``)![`"^+&P`IDZN_S0IZ
XM0`"J2H!F$DAZ^^Y.N@^H2'@`&V$`_=Q03R`\```#Z'(!2$$L>``$3J[_.BE`3
XM`)Q*@&822'K[VDZZ#WQ(>``*80#]L%!/<%PB/``!``$L>``$3J[_.BE``+I*U
XM@&822'K[UDZZ#U)(>``*80#]AE!/2'@``F$`!K8I0`/02'@`!&$`!JHI0`/4Q
XM("P#T')'TH%.N@\8*4``B"`L`]1R1]*!3KH/""E``(QA``0F4$]*;``(9TIA(
XM``%`2'K[J$AZ^Y).N@[64$\F0"`+9A)(>ON63KH.Y$AX``IA`/T84$\O"TALC
XM`X!.N@\`+HM.N@[02'K[LDAZ^UQA```,3^\`$$S?6`!.=4Y5_ZA(YP`X2?D`U
XM````)FT`""1M``Q!^0````!#[?^H<$\2V%'(__Q(>ON$+PM.N@YD4$\K0/_\`
XM2H!F#$AX``IA`/RL6$]@7DAZ^V8O"DZZ#D103RM`__A*@&8,2'@`"F$`_(Q8R
XM3V`T$"W_J$H`9R(O+?_\2'@`4$AM_ZA.N@Y>+JW_^$AM_ZA.N@Y83^\`$&#6Q
XM+RW_^$ZZ#B!83R\M__Q.N@X66$],WQP`3EU.=4CG`PI)^0`````N+P`4+"\`9
XM&#E\``$`!B!L`+8Q?``)`!P@;`"V(4<`("!L`+8A1@`D(FP`MBQX``1.KOXR7
XM3-]0P$YU3E7_D$CG-QI)^0````!![?^@(@@L;`7X3J[_0"X\___W-=ZM_Z`@7
XM!^6`5H`B/```!;5.N@UH(CP```6U*T#_\$ZZ#;1*@&H"5H#D@)Z`<%31K?_P1
XM(`?EB-"'5(!R9D8!3KH-.BP`(`9R9D8!3KH-B%2`<@5.N@TF(@>2@"H!4H564
XMAG`,O(!O!E*M__"<@"`&Y8`O+?_P0>P`#"\P"``O!4AZ^AY(;?_43KH-.D_O6
XM`!1![?_40^P`0!`8L!EF!DH`9O9G)$AX``)(>``F2'@`1DAM_]1A``C43^\`#
XM$$'M_]1#[`!`$MAF_$'M_Y0B""QL!?A.KO]`("W_F'(\3KH,GBM`_^P@+?^8%
XM<CQ.N@R0("W_G"M!_^AR,DZZ#((O`"\M_^@O+?_L2'KYIDAM_]0K0/_D3KH,+
XML$_O`!1![`!80^W_U!`8L!EF"$H`9O9G``"Z0>W_U$/L`%@2V&;\2'@``DAX&
XM`!E(>`!&2&W_U&$`"#Q/[P`04JP`8`RL````.P!@;RYP`"E``&!2K`!D#*P`[
XM```[`&1O&BE``&12K`!H#*P````7`&AO""E``&A2K`!L2FP`"F<B2&W_U$AL)
XM`$!(>OD>2&P#@$ZZ#!Q/[P`0*6W_Z`/80FP`"B\L`&`O+`!D+RP`:$AZ^.A(%
XM;?^L3KH+]DAX``)(>``92'@`YDAM_ZQA``>H3^\`)"\L`&Q(>OCB2&W_U$ZZG
XM"\Y/[P`,0>W_U$/L`%`0&+`99@9*`&;V9R1(>``"2'@`)DAX`.9(;?_480`'O
XM:$_O`!!![?_40^P`4!+89OP@+?_H(BP#V"0!E(!V+;2#9PHD`)2!<@^T@69B:
XM*4`#V$AZ]^1(>O@R80#\D$AZ]^I(>O?43KH+&$_O`!`F0"`+9@Q(>``*80#Y*
XM8%A/8#!P9)"L`*(O`$AM_ZQ(;?_42'KX0DAL`X!.N@LH+HM(;`.`3KH+*BZ+T
XM3KH*^D_O`!A,WUCL3EU.=4Y5__1(YP`:2?D`````0?KUE"M(__@[?``(__Q"*
XM+?_^&WP`0?__0>W_^"QL`*Y.KO^X)D`@"V<0(FP`JB)I`#(@2TZN_[Y@$DAZS
XM]_Q.N@J82'@`"F$`^,Q03TS?6`!.74YU2.<`"DGY`````$AX``-(>``92'@`S
XM"DAZ]^)A``922'@``TAX`"9(>``*2'KWU&$`!CY(>``#2'@`&4AX`*!(>O?&^
XM80`&*DAX``-(>``F2'@`H$AZ][IA``862'@``TAX`#-(>``*2'KWK&$`!@)/G
XM[P!02'@``TAX`#-(>`"@2'KWI&$`!>I/[P`0(FP`JB)I`#)P`"QL`*Y.KOZ>3
XM(FP`JB)I`#)P`4ZN_JHB;`"J(FD`,B`\```!-G)%3J[_$")L`*HB:0`R(#P`E
XM``$V<A).KO\*(FP`JB)I`#(@/````89R$DZN_PHB;`"J(FD`,G`'<D5.KO\0/
XM(FP`JB)I`#)P!W([3J[_"B)L`*HB:0`R<$K0@'([3J[_"B)L`*HB:0`R<$S00
XM@')%3J[_$")L`*HB:0`R<$S0@'([3J[_"B)L`*HB:0`R(#P```$O<CM.KO\*H
XM(FP`JB)I`#)P`DZN_JHB;`"J(FD`,B`\```!+W)%3J[_"B)L`*HB:0`R<&9&9
XM`')%3J[_"B)L`*HB:0`R<$K0@'(\3J[_$")L`*HB:0`R<$K0@')%3J[_"B)L]
XM`*HB:0`R<`AR14ZN_PHB;`"J(FD`,B`\```!AG(33J[_$")L`*HB:0`R(#P`4
XM``&&<D5.KO\*(FP`JB)I`#(@/````39R14ZN_PI,WU``3G5(YP,:2?D`````3
XM+B\`&'P`+'@`!$ZN_WP@;`-D)F@!0DJ39QIP`#`K``[`AV<,("L`&"(K`!209
XM@=R`)E-@XBQX``1.KO]V(`9,WUC`3G5.5?_@2.<_"DGY`````'("+'@`!$ZNQ
XM_R@N`'($3J[_*"P`("P`<+"'9P`!/"`'X(CDB"\`2'KUN$AM_^1.N@@B2'@`4
XM`DAX`#-(>`!&2&W_Y&$``]1/[P`<(`<B+`"(3KH'T"H`(FP`JB)I`#)P`"QLH
XM`*Y.KOZ>("P`<+"'8SXB;`"J(FD`,G``3J[^JB`%<@K0@2]``"`@+`!P(BP`N
XMB$ZZ!Y!R"]"!)``B;`"J(FD`,B`O`"!R/79#3J[^SB)L`*HB:0`R<`-.KOZJY
XM(`5R"M"!+T``("`!(FP`JB)I`#)R/B0O`"!V0DZN_LX@!7(+T($B;`"J(FD`P
XM,G(]3J[_$")L`*HB:0`R<`%.KOZJ(`5R"]"!(FP`JB)I`#)R0TZN_PHB;`"J0
XM(FD`,G`)<D-.KO\*(FP`JB)I`#)P`DZN_JHB;`"J(FD`,G`)<CU.KO\*(`5RT
XM"]"!(FP`JB)I`#)R/4ZN_PHI1P!P("P`=+"&9P`!3"`&X(CDB"\`2'KT=$AM7
XM_^1.N@;>2'@``DAX`#-(>`#F2&W_Y&$``I!/[P`<(`8B+`",3KH&C"H`(FP`A
XMJB)I`#)P`"QL`*Y.KOZ>("P`=+"&8T(B;`"J(FD`,G``3J[^JB`%<F1&`="!L
XM+T``("`L`'0B+`",3KH&2G).TH'0@20`(FP`JB)I`#(@+P`@<CUV0TZN_LXB_
XM;`"J(FD`,G`#3J[^JB`%<F1&`="!+T``("`!(FP`JB)I`#)R/B0O`"!V0DZNY
XM_LX@!7).TH'0@2)L`*HB:0`R<CU.KO\0(FP`JB)I`#)P`4ZN_JH@!7).TH'06
XM@2)L`*HB:0`R<D-.KO\*(FP`JB)I`#)P3="`<D-.KO\*(FP`JB)I`#)P`DZN/
XM_JHB;`"J(FD`,G!-T(!R/4ZN_PH@!7).TH'0@2)L`*HB:0`R<CU.KO\**48`_
XM="`L`'QR9$ZZ!9)R/$ZZ!6CBB"E``'PO!2)L`*HB:0`R<`%R`"0\```!-W830
XM*#P```&%+&P`KGI$3J[^="H?(FP`JB)I`#)P`$ZN_IXB;`"J(FD`,G`#3J[^$
XMJC`L`*`,0%559@@Y?*JJ`*!@"#(\554Y00"@(FP`JB!I`#(Q;`"@`"(B;`"J7
XM(&D`,@CH````(2)L`*H@:0`R$7P`#P`>(`0B;`"J(FD`,G)$+&P`KDZN_Q!P)
XM1)"L`'PO0``@(`0B;`"J(FD`,B(O`"!.KO\*(FP`JB)I`#)P`$ZN_JH@!"(#L
XM(FP`JB)I`#).KO\*(FP`JB!I`#(Q?/__`"(B;`"J(&D`,@CH````(2)L`*H@6
XM:0`R$7P`#P`>(FP`JB)I`#)P`2QL`*Y.KOZJ(FP`JB)I`#(@/````80B+`"`)
XM3J[_$'!$D*P`?"]``"`@!")L`*HB:0`R(B\`($ZN_PIP1)"L`'PI0`"`3-]0E
XM_$Y=3G5.5?_H2.<O.DGY`````"9M``@N+0`,+"T`$"HM`!0@;`"J)&@`,B)*$
XM<`$L;`"N3J[^GB)*<`!.KOZJ(DIP`$ZN_J0@!EV`(@`B2B`'3J[_$"!+2AAF_
XM_%.(D<LH!EV$(`@K0/_TYX#0AR('4H$D!E*"*T#_^"M!__!.KO[R(DH@+?_X9
XM(@1.KO\*(DIP`4ZN_JHK0O_L(@(B2B`M__!.KO\0(DH@2R`M__1.KO_$(DIP-
XM`$ZN_IXB2B`%3J[^JB)*(`<B!DZN_Q`B2B!+("W_]$ZN_\1,WUST3EU.=4CG!
XM!PI)^0````!^`2QX``1.KO^(0?H`1B)L`+HC2`!"$"D`#@```$`@;`"Z$4``1
XM#DZN_X)\`"H'<`&Z@&,2(`<B!4ZZ`NQ*@68"W(53A6#HO(=F!%*L`(12AV#80
XM+PQ)^0````!P`"!L`V0P*`$@<@`R*`$BD('1K`!X*%].=4Y5_Y1(YS<Z2?D`P
XM````+BT`")?+<`*^@&902'@``4AZ\%8@;0`,+R@`!$ZZ`GI/[P`,2H!G'$AX#
XM``)(>O`\(&T`#"\H``1.N@)>3^\`#$J`9AA(>O`H3KH"9EA/2'KP/$ZZ`EQ8[
XM3V```AIP`;Z`;S8K0/^4("W_E+"';BKE@$AX``1(>O!<(&T`#"\P"`!.N@(6C
XM3^\`#$J`9@8Y?``!``A2K?^48,YP`[Z`;2(@;0`,+R@`!$ZZ`AHY0`"^(&T`:
XM#"ZH``A.N@(*6$\Y0`#`80#Q`F$`]V9P`"!L`+(0*``/<@$D`>&B+`(B;`"JF
XM(&D`5G``$"@`#R0!X:(J`B\!0J=A`/.X4$\@;`"Z$7P``0`((&P`NB%L`)@`U
XM"B!L`+H1?`"```D@;`"<(FP`NB-(`#H@+`"<!H````/H(&P`NB%``#X@;`"Z_
XM(4``-B\+(DA%^OXRE\LL>``$3J[^YB9?.7P``0``2FP`!&<``1@@!H"%+'@`8
XM!$ZN_L(K0/_TP(9G``""(&P`LDZN_HQ"ITAX``%A`/,H4$\@+`!X<F1.N@$XQ
XM<CQ.N@$.<F2P@60(("P`>"E``'P@+`!X3KH!''(\3KH`\M&L`)12K`"0("P`=
XME"(L`)!.N@#>*4``HD*L`'AA`/,>80#XGB\L`(1(>N[Z2&W_F$ZZ`.Y/[P`,'
XM0>W_F"E(`7H@+?_TP(5G`/]:(&P`JB!H`%8L>``$3J[^C"9`(`MG`/]"*VL`'
XM%/_P.VL`&/_N.VL`&O_L(DM.KOZ&("W_\%&`9PX$@````?AFP$)L``1@NG!I0
XML&W_[F:R+PN1R$/L`/8D2'``(@`D/````1!V0-:#+&P`ID?L`8).KOZD)E]@/
XMBD*G80#N=$SM7.S_<$Y=3G4``$[Y```;Y$[Y```;($[Y```5>$[Y```.7$[YH
XM```<=$[Y```;4D[Y```9H$[Y```"9$[Y```7F$[Y```9X$[Y```=D$[Y```;]
XM`$[Y```7^$[Y```0)D[Y```7.$[Y```4\$[Y```;`'!A```#[````!$`````G
XM```5L@``%8@``!6X```5Q```%=8``!5\```5R@``%:8``!70```5@@``%90`%
XM`!6.```5=@``%:```!6^```5F@``%:P````!`````@``!P0````.`````P``%
XM$NH``!+"```2:```$9(```UL```-&@``"R````K"```'Z```!Z````;V```$:
XMN````^`````$`````````_(```/J`````T%M>4EN9F\A`````````_(```/JZ
XM````RP```````0```````0```!0````6````&@```!X````B````)@```"H`A
XM```N````,@```#8````Z````/@```$(@("`@("`@("`@("`@("``("`@("`@P
XM(``@("`@("`@`````````````````````````````````````````````````
XM1```````````````````````````````1@````!550``````````````````T
XM````````````````````9`!D`9``3``!```""``!``X``````````````%0`3
XM``````````````````````$```!<``@``0(!````"``$````[@```&@```$*6
XM`@$````(``X```#N````=@```1X"`0````@`%@```.X```"(```!,@(!````I
XM"``>````[@```)H```%&`@$````(`"8```#N````L````5H"`0````@`+@``8
XM`.X```"R```!;@(!````"``V````[@```,H``````@$````%``,```#N````!
XMW@```````````"@`````````````````````````````@`````'6````````=
XM```````````````````````````````````!^```````````````````````Y
XM`````````````````````````````````````````````````````````````
XM````````@`````0``"`@("`@("`@("@H*"@H("`@("`@("`@("`@("`@("`@L
XM2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0$!`0@8&!@8&!`0$!`0$!<
XM`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("`@("`@("`@("`@("`@("`@("@
XM`A`0$!`@("`@("`@("`@*"@H*"@@("`@("`@("`@("`@("`@("!($!`0$!`0R
XM$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!`0$!`0$!`0$!`0$![
XM`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@("`@("`@("$!`0$"``[
XM``````(````#[````!@````!```!C@```7H```%F```!4@```3X```$J```!Y
XM%@```0(```#N````V````)@````\````.````#0````P````+````"@````D'
XM````(````!P````8````%````!`````,````$`````,```'6```!M````8H`N
XM``%V```!:@```6(```%6```!3@```4(```$Z```!+@```28```$:```!$@``M
X.`08```#^`````````_)60
X``
Xend
Xsize 14504
END_OF_FILE
if test 20345 -ne `wc -c <'AmyInfo.uu'`; then
    echo shar: \"'AmyInfo.uu'\" unpacked with wrong size!
fi
# end of 'AmyInfo.uu'
fi
echo shar: End of archive 1 \(of 1\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have the archive.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
Mail comments to the moderator at <amiga-request@uunet.uu.net>.
Post requests for sources, and general discussion to comp.sys.amiga.misc.
