Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #1303

Re: 80 column card RAM disk

From Jeff Blakeney <CUTjeffrey_blakeney@yahoo.ca>
Newsgroups comp.sys.apple2.programmer
Subject Re: 80 column card RAM disk
Date 2014-09-01 20:09 -0400
Organization A noiseless patient Spider
Message-ID <lu31rv$607$1@dont-email.me> (permalink)
References <96730f4e-8bc7-4603-9159-2f1dbbaaf37f@googlegroups.com>

Show all headers | View raw


On 01/09/2014 6:05 PM, ivan@ivanx.com wrote:
> I found this in section A.5 of the ProDOS 8 Tech Ref manual:
>
> "The Apple lie computer can optionally contain an Extended 80-Column
> Text Card, giving the computer access to an additional 64K of RAM.
> (The Apple lie has the equivalent of such a card built in.) ProDOS
> uses this extra RAM as a volume, just like a small disk volume. This
> volume is initially given the name /RAM, but it can be renamed. The
> 64K of RAM on the card is logically partitioned into 127 512-byte
> blocks of information. The contents of these blocks are:
 > Blocks 00-01 Unavailable
 > Block 02 Volume directory
 > Block 03 Volume bit map
 > Blocks 04-07 Unavailable
 > Blocks 08-126 Directories and Files"
>
> I thought it was interesting that blocks 4-7 are unavailable, since
> ProDOS would certainly allow them to be used for files. Then it
> occurred to me that maybe this was to protect the text page, so you
> can still use, you know, 80 columns; seems like a viable theory.
>
> What I don't get is the math. At 512 bytes per block, block 4 would
> correspond to $800, not $400. And the text page is only 1K, whereas
> 2K are reserved (I guess that could be for text page 2; is that
> used)?
>
> Mostly just curious. Anyone have any insight into this?

I've not really looked into this before but I do know that the /RAM 
driver does some strange things so I'm pretty sure nothing maps 
directly.  I know that the first file you save to /RAM gets stored 
starting at $2000 so that you can protect the hi-res area in case you 
are going to use double hi-res.

/RAM is not bootable so there is no need to have blocks 0 and 1 taking 
up memory so they aren't used at all.  /RAM also only uses a single 
directory block for the root directory instead of the usual 4 blocks and 
has moved the start block of the volume bit map from block 6 down to 
block 3.

I decided to look into it a bit and discovered that the directory block 
(block 2) is stored at $0E00 - $0FFF and the volume bit map block (block 
3) is stored at $0C00 - $0DFF.

I couldn't come up with a reasonable reason why blocks 4 to 7 are 
unavailable so I grabbed my copy of "Exploring Apple GS/OS and ProDOS 8" 
by Gary B. Little.  Here is what he has to say about the missing blocks:

      'When ProDOS 8 initializes the /RAM volume, 119 blocks are 
available for file storage.  (They are numbered from 8 to 126.)  Since a 
64K space is normally capable of holding 128 512-byte blocks, you might 
be wondering about the "missing" 9 blocks.  Two of these are relatively 
easy to track down:  One is used for the volume directory (block 2) and 
another for the volume bit map (block 3).  There is no room in auxiliary 
memory for the other seven blocks (0, 1, 4-7, and 127) because space 
must be reserved to support the /RAM disk driver itself ($0000-$03FF), 
the 80-column text screen ($0400-$07FF), the keyboard and serial input 
buffers on the Apple IIc ($0800-$08FF), and the auxiliary memory 
interrupt vectors ($FFFA-$FFFF). Thus these seven blocks are marked as 
"in use" in the /RAM volume bit map.'

He also states that $00-$3B, $44-$FF, $0900-$0BFF and $FE00-$FFF9 are 
not used but should be considered reserved.  The area from $0800-$08FF 
are only reserved on the IIc.

I don't know if anyone has ever done a memory map showing where each 
block is stored in /RAM.  That might be an interesting thing to see as 
from reading Mr. Little's section on /RAM, it turns out that first two 8 
KB files stored will use $2000-$3FFF and $4000-$5FFF by default so that 
you can protect hi-res pages 1 and 2.  However, I just checked and if 
you save a 1 block Applesoft file, it stores it in block 8 starting at 
$2000 but if you save a second 1 block Applesoft file it will store it 
in block 9 but puts it at $1000 instead of $2200 like I thought it might.

/RAM definitely does some weird stuff.  I don't know why they use blocks 
numbered 8 to 126 and skip 4 to 7.  I could see them skipping 4 to 6 as 
those blocks are normally used for file storage on standard ProDOS 
volumes.  Having blocks 7 to 125 for file storage on /RAM would make 
some sense to me as would leaving the volume bit map at block 6 and 
simply making blocks 3 to 5 unavailable.

Anyway, thanks for the fun little diversion.  :)

Back to comp.sys.apple2.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

80 column card RAM disk ivan@ivanx.com - 2014-09-01 15:05 -0700
  Re: 80 column card RAM disk dempson@actrix.gen.nz (David Empson) - 2014-09-02 11:41 +1200
    Re: 80 column card RAM disk dempson@actrix.gen.nz (David Empson) - 2014-09-02 11:44 +1200
      Re: 80 column card RAM disk Jeff Blakeney <CUTjeffrey_blakeney@yahoo.ca> - 2014-09-02 07:53 -0400
    Re: 80 column card RAM disk Jeff Blakeney <CUTjeffrey_blakeney@yahoo.ca> - 2014-09-02 07:46 -0400
      Re: 80 column card RAM disk dempson@actrix.gen.nz (David Empson) - 2014-09-03 14:15 +1200
        Re: 80 column card RAM disk Jeff Blakeney <CUTjeffrey_blakeney@yahoo.ca> - 2014-09-02 22:36 -0400
          Re: 80 column card RAM disk Antoine Vignau <antoine.vignau@laposte.net> - 2014-09-05 14:27 -0700
  Re: 80 column card RAM disk Jeff Blakeney <CUTjeffrey_blakeney@yahoo.ca> - 2014-09-01 20:09 -0400

csiph-web