Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!utcs!wagner
From: wagner@utcs.UUCP
Newsgroups: comp.sys.amiga
Subject: Re: HAM Ray Traced Juggler (THE FIX)
Message-ID: <1986Dec28.124744.5871@utcs.uucp>
Date: Sun, 28-Dec-86 12:47:44 EST
Article-I.D.: utcs.1986Dec28.124744.5871
Posted: Sun Dec 28 12:47:44 1986
Date-Received: Sun, 28-Dec-86 13:35:17 EST
References: <16708@ucbvax.BERKELEY.EDU> <133@mentat.UUCP>
Reply-To: wagner@utcs.UUCP (Michael Wagner)
Distribution: na
Organization: University of Toronto Computing Services, general purpose UNIX
Lines: 108
Checksum: 15223

Well, Mike Cherry's fix (posted to USENET recently) works, 
and I now have a working Juggler!

My christmas present to the net is the following little segment of program,
which helps you solve the labour relations problem that the juggler program
was getting into. 

For people who downloaded the thing at 1200 baud, and don't want to go
through that again, I have written (poorly) a small  C program to fix
the problem on the Amiga, so that you don't have to fix the original,
re-uudecode it, and re-transmit it.  You'll have to rename the file 
movie.data to movie.bad.data.  My program takes the file movie.bad.data,
corrects it, and outputs it as RAM:movie.good.data. You should then copy
this file to your juggler disk as movie.data.   You better have 
something like 300K free before you run my program, or else change it to work
to disk.  If you have only one disk, you're in for a long wait.  If you
have two disks, put the output on a different disk from the input.  

Incidentally, some people seem to have gotten files of the wrong sizes.
Perhaps there are two problems floating around, one of which is a USENET
transmission problem.  You're file sizes should look like this:

juggler                    13784 rwed Friday    14:16:14
movie.data                295610 rwed Today     11:48:38
fixer.c                     1523 rwed Today     12:01:16
movie.bad.data            295610 rwed Friday    14:07:43
fixer                      16124 rwed Today     12:02:02
juggler.info                 562 rwed Friday    14:16:11
13 files - 1 directory - 1308 blocks used

Hope this helps.  Merry Christmas (belatedly), Happy Chanukah, and 
Happy New Year to all.  

Michael (wagner@utcs or ...manyplaces!utzoo!utcs!wagner)

Tiny little kludge program follows.  Snip at the cut line.  
'You all know the drill by now'

(sorry, Andy, couldn't resist)

-  -  -  -  -  -  -  -  C  U  T     H  E  R  E  -  -  -  -  -  -  -  -  -

/* this program tries to fix the problem with the recent juggler posting */
/* it tries to fix the binary rather than forcing you to uudecode and    */
/* retransmit again.  Movie.data is a big file */

#include "stdio.h"

main()
{
FILE *in,*out;
int inchar;
int current = 0;
long counter;
static long corrections[] ={
162779, 0237, 0227,
162780, 0374, 0372,
162781, 00,   0377,
162782, 0117, 0377,
162783, 0374, 030,
162784, 0141, 0120,
162785, 0100, 01,
162786, 04,   040,
162787, 0200, 040,
162788, 0201, 0120,
162789, 0100, 01,
162790, 05,   0140,
162791, 0201, 0160,
162792, 0301, 0160,
162793, 0300, 01,
162794, 05,   0140,
162795, 0201, 0160,
162796, 0301, 0160,
162797, 0300, 00,
162798, 01,   0140,
162799, 0201, 0100,
162800, 00,   060,
162801, 0300, 01,
162802, 05,   0140,
162803, 0201, 0160,
162804, 0301, 0160,
162805, 0303, 0377,
162809, 0374, 030,
162810, 0140, 050};
in = fopen("movie.bad.data","r");
if (in == (FILE *)0) {printf("can't open input"); exit(1);}

out= fopen("ram:movie.good.data","w");
if (out== (FILE *)0) {printf("can't open output"); exit(2);}

for (counter = 1; EOF != (inchar = getc(in)) ; counter++) {
	if (counter == corrections[current]) {
		if (inchar == corrections[current+1]) {
			inchar = corrections[current+2];
			current += 3;
			}
		   else printf("byte doesn't match - position %d expecting %d got %d",
				counter, corrections[current],corrections[current+1]);
			}
		
		if (EOF == putc(inchar, out)) {
			printf("output problems");
			break;
			}
		}
	fclose(in);
	fclose(out);
	}