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

Re: Prodos Woes



Bill Garber (willy46pa@comcast.net) wrote:

: "Bender MX" <no@morespam.com> wrote in message
: news:HMXCb.69905$bC.24737@clgrps13...
: : Hi Bill,
: :
: :   Thanks for the reply! ... But I run into "No Buffers Avail"
: : when I try to reload the picture with a "BLOAD PIC,A1024"
: : Even with a reset of MAXFILES=3 It happens?!

: Ok, first, I think you need to define your memory location
: as A$xxxx as HEX. You should anyway. Also, on a BLOAD the
: file that you have previously BSAVE'd will contain a few bytes
: header with the location to be BLOAD'd into. No need to define
: this location on a BLOAD. Now getting down to the base of your
: problem. If you wish to poke data into the screen area, the best
: way will be to first transfer the screen area to memory that is
: free for use. Then, BSAVE it. Now to BLOAD it, then transfer it
: back to screen area with code. I believe you can also load screen
: data into another page of memory and redefine that area as the
: new screen area, not sure though. Anyone???

You're on the right track.  First of all, BSAVE and BLOAD allow you to use
either decimal or hex numbers.  Just use a $ if you are using hex. 
Second, if you are loading into the same area of memory you saved from,
then ProDOS will keep track of it, so you need not specify an address on a
load.  But you do need to specify an address if you are loading into
memory other than where the data originally came from.

I just posted an Assembly routine that allows you to load a text page into
$6000, then move it down to $400.  I wrote it on the fly (using the
Mini-Assembler in my IIgs to generate the opcodes) but I didn't test it;
that's left as an exercise for the reader.  8-)

--Dave Althoff, ][.
-- 
    /*\        _       _               _   *** Merry Christmas!!! ***
   /###\      /X\     /X\_      _     /X\__      _     _        _____
  /#####\    /XXX\  _/XXXX\_   /X\   /XXXXX\    /X\   /X\      /XXXXX
_/XXX#XXX\__/XXXXX\/XXXXXXXX\_/XXX\_/XXXXXXX\__/XXX\_/XXX\_/\_/XXXXXX