PDA

View Full Version : So i'm reading the CP/M 3.0 Systems guide



Klee
March 3rd, 2011, 11:38 AM
And I came across this :

"CP/M 3 supports a maximum of sixteen logical floppy or hard disks with a storage capacity of up to 512 megabytes each. The maximum file size supported is 32 megabytes."

Also :
"CP/M 3 provides an environment for program development and execution on computer
systems that use the Intel 8080, 8085, or Z8O microprocessor chip"

Very interesting 32 mb FILE SIZE ..........on a 8088 , 8085 , or z80 ? I'm confused now. :confused:

I though the 8088 could not handle that large of file.

glitch
March 3rd, 2011, 11:46 AM
Sure, it's just some file pointers and a buffer. The whole file doesn't get read into memory at once.

Klee
March 3rd, 2011, 11:57 AM
Sure, it's just some file pointers and a buffer. The whole file doesn't get read into memory at once.

Ok I get it , i'm thinking ram.

But the 512mb partition limits is very cool , I always been on the understanding that that cpm was limited to 8mb.

krebizfan
March 3rd, 2011, 01:32 PM
Ok I get it , i'm thinking ram.

But the 512mb partition limits is very cool , I always been on the understanding that that cpm was limited to 8mb.

8MB was with CP/M 2.2. Though if I did the math right, a 32MB file on a 512MB disk would need about 2000 directory entries which might be a trifle cumbersome.

Chuck(G)
March 3rd, 2011, 01:36 PM
8MB was with CP/M 2.2. Though if I did the math right, a 32MB file on a 512MB disk would need about 2000 directory entries which might be a trifle cumbersome.

How do you get that number? I get far less, with a large extent size.

krebizfan
March 3rd, 2011, 01:50 PM
How do you get that number? I get far less, with a large extent size.

Oops. Skipped a division step there.

Chuck(G)
March 3rd, 2011, 02:10 PM
Here's how I figure it. The maximum block size for CP/M 2.2 (at least what's published; I have no idea if you couldn't go larger) is 16K bytes. Since you want to store 32MB, your hard drive has to have more than 256 blocks on it. Thus, a single directory entry can describe 8 blocks worth of data, or 128K. There are 8 directory entries per megabyte, so a 20MB file would require 20*8 = 160 directory entries under CP/M 2.2.

But this is the gotcha--the EX field in a directory entry records the starting "logical" extent for the physical extent. So add 3 bits to the 8 already needed for the 160 physical extents and you're out of space.

That's why CP/M 2.2 has an 8MB file size limit.