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

Re: Launching programs from ProDOS



aiiadict@gmail.com wrote:
: Hi,
: 
: I made a BASIC program (startup) that lets me select:
: 
: 1)merlin
: 2)copy 2 plus
: 
: b)ye
: 
: 6)boot slot 6
: 
: 0)basic prompt
: 
: 
: I added an option:  P)ain  816 paint
: 
: it tries to do:  print chr$(4)"-paint.std.hires"
: 
: but basic.system reports "NO BUFFERS AVAILABLE"
: 
: the startup program does nothing more than printing
: a menu (using PRINT statements), waits for input
: (GET statement), and then branches based on input
: (in this case, IF A$="P"then goto 2000...2000 print
: chr$(4);"-paint.std.hires".
: 
: is there an easy fix?

Don't know for certain, but NO BUFFERS AVAILABLE in ProDOS/BASIC.SYSTEM 
is a bit of a catch-all...after all, how can there be "no buffers 
available" if ProDOS file buffers are dynamically assigned?

Start by making sure you can launch the program from BASIC.SYSTEM.  Does 
"-paint.std.hires" work from the Applesoft prompt?  If it doesn't, then 
you're beyond anything I could help you with.  But if that works, then 
there is no reaon you couldn't do it from within an Applesoft program.

Did you say that you are using GET to read the user input?  I don't know 
if this was as much of an issue in ProDOS, but under DOS 3.3 there was a 
big problem with using GET in that it would confuse the output routine 
and prevent the command from being parsed correctly by DOS.  The 
traditional workaround for DOS 3.3 was to issue commands thusly--

nnn PRINT CHR$(13);CHR$(4);"BRUN PAINT STD HIRES"

It turns out that doesn't work at all in ProDOS, but the input confusion 
problem persists.  Try changing your command to...

nnn PRINT : PRINT CHR$(4);"-PAINT.STD.HIRES"

That extra PRINT might solve your problem.  Then again, it might not.  8-)

--Dave Althoff, ][.
    /X\        _      *** Respect rides. They do not respect you. ***
   /XXX\      /X\     /X\_      _     /X\__      _     _        _____
  /XXXXX\    /XXX\   /XXXX\_   /X\   /XXXXX\    /X\   /X\      /XXXXX
_/XXXXXXX\__/XXXXX\/XXXXXXXX\_/XXX\_/XXXXXXX\__/XXX\_/XXX\_/\_/XXXXXX