[jugglemaster] Jugglemaster for Pocket PC (JMPocket)

Barton Chittenden tiger at iglou.com
Sun Jun 20 11:13:22 EDT 2004

On Sun, 20 Jun 2004, Per Johan Groland wrote:

> Hi,
> Since this is the first time I'm posting to the JuggleMaster mailing
> list, I'll start by introducing myself. I'm Per Johan Groland, the
> original author of jmlib. (along with Palm OS and Pocket PC ports)

Good to have you on the list, Per.

> Anyway, I recently spent some time updating the Pocket PC version
> (JMPocket) to work with the new directory structure and changes made
> to jmlib.

Very cool. I'll be downloading the new binary when you have it ready :-)

> I also thought I'd make a few comments on the changes done to jmlib:
> #define BMAX 630		     // max number of balls
> This was originally 35. Since the arrays in jmlib are all declared
> statically, this adds something in the area of 32 kB to the static
> memory requirement of jmlib. This doesn't matter on a PC of course,
> but it does matter on some of the platforms I've been trying jmlib
> on. Is it possible to add a typedef (e.g. JMLIB_BMAX_630) to make
> jmlib chose 35 balls as default rather than 630?

Excellent point. I'm not quite sure that I understand exactly how using a 
typedef would solve the problem [don't get me wrong, this is my lack of 
understanding, not your lack of insight ;-)]. I understand using something

#define JMLIB_BMAX_630 /* this would not be defined for PalmOS */

#ifdef JMLIB_BMAX_630
 	#define BMAX 630
 	#define BMAX 35

This seems like a kluge to me. I don't like having that much stuff 
hardcoded. I think that the cleanest solution would be to have various 
arrays be dynamicly allocated, but maybe that's overkill. I dunno. I 
haven't actually compiled any of the code yet, so please take any thing I 
say with a grain of salt.

> the JMLib::initialize function seems to have changed quite a bit.
> This breaks the Pocket PC version:
>  srand(time(NULL));
> There is no time.h defined for the Pocket PC API. I'm not exactly
> sure why you want to use srand anyway, jmlib doesn't use any random
> number, right?

Au Contraire! :-)

Jmlib now has a "random" style: the site swap is parsed, and we find the 
number of throws and catches in the pattern. Then we assign a random catch 
and throw position to each toss in the pattern.

This raises a few interesting questions:

Is there a cannonical way of initializing random numbers under PalmOS, 
given that time.h is not available?

Jmlib does not currenly have any code for saving a random style which 
has beeen created. It occurs to me that this is something that will also 
have to be done somewhat abstractly, because the palm pilot does not 
directly support file IO {does it?}.

Are there other parts of the C standard library which are missing on 
PalmOS, and will need similar abstraction?


More information about the Jugglemaster mailing list