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

Re: Garbage Collection



Neil Parker (nparker@cie-2.uoregon.edu) wrote:
: dalloff@freenet.columbus.oh.us (Dave Althoff) writes:
: >[...]
: >Thanks for the help!  I guess I also got an explanation of why I got a
: >BUFFERS NOT AVAILABLE error trying to open one file under ProDOS.  I
: >must've had another buffer open for something, and didn't have room to
: >create another on account of all the strings...

: Eh?  If you mean "trying to open one file under DOS 3.3," then yes,
: that is a problem.  If you lower MAXFILES to 1, and then OPEN a file,
: you won't be able to do any other DOS command that uses a file buffer.
: This means the only DOS commands still available (besides the text
: file commands) are MON, NOMON, MAXFILES, PR#, IN#, INT, and (unless it
: has to load Applesoft from disk) FP.  Anything else causes NO BUFFERS
: AVAILABLE.  You can't even do a CATALOG.

: Since ProDOS allocates a new buffer automatically whenever it needs one,
: running out of buffers like this isn't a problem.  Instead, NO BUFFERS
: AVAILABLE means one of two things:

:      * You tried to open more than eight files at once, or
:      * You tried to load data into memory marked as "reserved."

That must be it.  I didn't change any of the memory settings or anything
else.  My guess is that BASIC.SYSTEM, or possibly something in GS/OS (I
had come to BASIC.SYSTEM from the Finder), had marked some of the P8
buffer space while my program was running.  It opened *one* file, read all
the data from it, closed it, then manipulated the data.  Then it tried to
open *one* new file and write out the manipulated data, and crashed with
NO BUFFERS AVAILABLE.  Obviously a bogus error, since I was able to use
ProDOS commands from the command line.  Hmmm...

(It's a moot point now, by the way...I finally did get the program toun by
changing the data handling tactic...using two files at once and much less
string space)

--Dave Althoff, Jr.
-- 
    /-\        _      |\                        
   /XXX\      /X\    /X \            XX    
  /XXXXX\    /XXX\  /XXXX<##>  X    XXXXX_ (hard hat area...       )
_/XXXXXXX\__/XXXXX\/XXXXXXXXo XXX  XXXXXXX (.sig under construction)