[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ProDOS misc. questions
..@SUBJECT:Re: ProDOS misc. questions N
..@MSGID :<4tl5bg$sof@elna.ethz.ch> N
H'>> > > o Why the root directory of a ProDOS volume is limited to 51 files?
H'>> > There's limited space for the root structure.
H'>> Why this root structure has to fit entirely into Block 2?
H'>
H'>Actually, the root directory has more than just block 2. There are 4 blocks
H'>with 13 directory entries each = 52 files total.
H'>(One of them holds the volume name.)
It is possible to expand (or shrink) the Volume [root] Directory, but it will
have to be done be manually (I've done before).
Of course, doing so can >break< some disk utility programs that "know" what a
ProDOS volume should look like :)
What would need to happen is:
1) Start with a freshly formatted disk (it's a lot easier <g>)
If expanding the Root Directory,
2) Save off the Volume_Bit_Map (Block 7 thru ???)
3) Create the additional Root Directory blocks starting at Block #7 and set
the forward/backward links in the 1st 4-bytes of each block.
4) Modify the Volume_Bit_Map pointer in the Volume_Name entry to point to the
block where the Volume_Bit_Map will start.
5) Write the Volume_Bit_Map to it's new location.
6) Mark out the additional block that are now consumed byt the Volume_
Directory and Volume_Bit_Map (this is the 'fun' part <g>).
If shrinking the size of the Root Directory:
2) Zero the forward Directory_Block pointer of the "new" last Root directory
block (to mark the end of the Root Directory).
3) Modify the Volume_Bit_Map pointer in the Volume_Name entry to point to the
block where the Volume_Bit_Map will start.
4) Relocate the Volume_Bit_Map to begin at the 1st block past the new end of
the Root directory.
5) Mark as free the blocks in the Volume_Bit_Map that are no longer in use by
either the Root_Directory or Volume_Bit_Map.
H'>> An Apple II expert could then hack a new 24-bit addressing version of =
H'>> ProDOS, couldn't he? Is there a need for this?
H'>
H'>As I said before, you can't simply change everything from 16bits to 24
H'>or even 32. The disk structure, buffers, variables etc. do all depend
H'>on 16-bit block numberss and 512 byte blocks. Using logical block
H'>numbers would allow you to keep the current disk structure to some
H'>degree but there's still the software that has to support it. Looks
H'>like someone is gonna release ProDOS 3.0 :-)
With the structure of ProDOS, I don't think it will be possible without
breaking 90% of the applications ever written for P8.
The main problem is that when Apple coded the P8 kernel, they hard coded in
certain limitations (512-byte blocks, 16-bit block numbers, and 24-bit byte
offsets) that severely limit how far the O/S can be re-coded to keep up the
current hard drive technology.
If Apple would have have made any 2 of them (all 3 would have been best)
larger values, then perhaps we would be were we are in relation to total disk
size.
* KingQWK 1.05 # [PK] * The pedestrian didn't know which way to go so I hit him
----
+------------------------------------------------------------------------+
|Ye Olde Bailey BBS Zyxel 713-520-1569(V.32bis) USR 713-520-9566(V.34/FC)|
| Houston,Texas yob.com Home of alt.cosuard |
+------------------------------------------------------------------------+