[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ProDOS Madness!



In article <3joqer$bd8@acme.freenet.columbus.oh.us>,
Dave Althoff <dalloff@freenet.columbus.oh.us> wrote:
> 
> Anyway, I have an Applesoft program which fiddles with a lot of strings,
> and fills up memory pretty fast.  It runs slightly faster under 3.3 than
> under ProDOS, because DOS 3.3 (after issuing a MAXFILES 1 command) leaves
> more memory available for BASIC by only taking up *one* *256-byte* file
> buffer.

Actually, that is one 560-byte buffer.

The speed difference might be due to BASIC.SYSTEM having "trace"
enabled at all times, to keep track of what the program is doing.

> I'd prefer to run this program under ProDOS because it works with
> downloaded text files (my comm program is under GS/OS), and GS/OS doesn't
> know how to write a DOS text file (and the file selection interface for the
> old CONVERT program is horrible).  So...
> 
> Q1:  Is there any way to get ProDOS to surrender six or so of its oversize
> (512-byte) file buffers to BASIC variable space?

Actually, there is only one 1k buffer in use by BASIC.SYSTEM at all
times (the general purpose buffer).  If any files are opened,
additional buffers (1k) will be allocated, and all your strings, etc.
will be moved down to make room.

Closing the files will release the extra buffer space immediately.

You cannot get rid of the general purpose buffer.  An earlier followup
mentions the GETBUFR and FREBUFR routines, but these are only used to
allocate extra memory above the buffers.

> Q2:  Didn't I hear that ProDOS had an improved string garbage-collection
> routine written into it?  How can I force this instead of the *SLOW*
> Applesoft garbage collection?  Or am I hallucinating?

It does, and it should kick in automatically before Applesoft's
built-in one.  If you want to force garbage collection, use

PRINT CHR$(4);"FRE"
-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand