Running Monte Carlo (and other software from PBI) from a hard disk.

The problem:  Too many CDA's or NDA's loaded cause Monte Carlo to fail
with a "Memory allocation error" when launched from a hard disk.

The reason: Poor memory management by PBI (Or perhaps a poor method of
attempting to do Copy Protection).  Anyway, PBI tries to allocate a specific
storage location that may not be available if CDA's or NDA's have been
loaded.

The solution (At least one anyway):
Two small programs to execute at boot-up time to reserve the memory that PBI
wants later on.  One program reserves the memory before any CDA or NDA
loading takes place, the other releases the memory after loading has been
completed.

REQUIREMENTS:  You MUST be booting into Prosel's START program in order for
all this to work correctly and automatically.  I have been using this
set-up for a while and have seen no problems so far.

The set-up:  There are two programs included in this download.

   MEM.SAVE is a File Type $B6 file.  This type of program is executed by
Prodos-16 at Boot time.  This file MUST be copied into your
/system/system.setup directory AND MUST be moved to the TOP of the
directory!  Of course, since you must be a Prosel user to use this,
you can use CAT.DOCTOR to re-sort your directory and move this file
to the TOP.

   MEM.CLEAR is a File Type S16 file.  I recommend that this file be copied
into the /system directory.

IMPORTANT!!!!!!!!!!!!!

The START program from Glen Bredon needs to be modified via Block Warden:

Glen has included a feature in Block warden to detect if the program being
edited supports the Prosel start-up pathname feature.  See the Prosel
documentation for mote details.  The program START must be modified to set
the start-up path to:

      */system/mem.clear

NOTE:  If this step is NOT done then you will probably have BIG problems
since the memory has already been reserved by MEM.SAVE but NOT made
available again by MEM.CLEAR.

For the curious:  The two programs were written using APW assembler and
contain tool calls to the memory manager to perform the
allocation/de-allocation functions.

This set-up appears to work for me.  If you have any questions, I can
be reached at:

Compuserve:    [73177,2323]
GEnie:         D.G.SHIELDS

Special Note:  If you manage to win a Large sum of money at Monte Carlo
(I have accumulated over $1,000,000 on the video poker machine) I will
accept any and all donations from the proceeds.

- Dale G. Shields -

