"CP/M compatible" vs. "MS-DOS Compatible" machines?

Allison ajp166 at bellatlantic.net
Tue Feb 5 06:55:29 CST 2008


>
>Subject: Re: "CP/M compatible" vs. "MS-DOS Compatible" machines?
>   From: "Roy J. Tellason" <rtellason at verizon.net>
>   Date: Tue, 05 Feb 2008 01:21:19 -0500
>     To: "General Discussion: On-Topic and Off-Topic Posts" <cctalk at classiccmp.org>
>
>On Sunday 03 February 2008 09:19, Chuck Guzis wrote:
>> > However while the IO was better CP/M had a far better file system that
>> > accomodated fragmentation (scatter/gather) where RT-11 (and NS* DOS) had
>> > the linear tag and dump that made enlarging a files or creating variable
>> > length files harder.
>>
>> On the other hand, fragmentation on a floppy can result in very bad
>> performance--and CP/M had no "defragment" utility.
>
>Sure it did.  It was whatever you used to format a disk...  :-)   Seriously,  
>I'd copy stuff off elsewhere and then with a clean start re-copy it back 
>again,  no fragmentation.

Defragger for CP/M is both easy and fun... Use pip to copy the source disk 
to the destination disk.  Best with two or more drives.  the real problem
is it's hard to defrag with limited on disk space without buffering in
ram and thats doable too.

>I thought I had remembered one,  but can't seem to find it at the moment.
>
>> I can see the advantages of a system that tends to keep files in a small
>> number of pieces.   I've seen the single-piece file structure a lot on
>> industrial equipment controllers.

Makes sense where the file is static in size and whats really being done 
a loader.  what happens if your doing data bases or data collection 
and the assumed file size exceeds the as built file... oops.


>> > Assemble CP/M BDOS at around 100k using ASM and you find any disk under
>> > 400K free space is too small.  You still see that today with faster disks
>> > and interfaces. 
>>
>> CP/M was singularly ill-equipped to support hard disks of any size beyond a
>> couple of megabytes.  We'd started offering SA-8000 14" drives as an option
>> and before too many months, we were getting 40MB drives for what we'd been
>> paying for the single-platter ones.  5.25" HD size increases went even more
>> quickly.  We bought 7 and 14MB drives from Rodime and it wasn't long before
>> Rodime was telling us that they were substituting 10MB and 20MB drives.  I
>> was asked if I could artificially (via software) limit the new drives to 7MB
>> and 14MB so that marketing could charge for the extra storage.  I
>> discouraged the idea very strongly, pointing out that the customers weren't
>> stupid--someone was going to peek inside and read the drive nameplate.

It supported drives to 8mb as a logical unit.  ou can have up to 16(less
if you have floppies) logical units (A->P) for a total of 128mb.

All of the CP/M derived works starting with P2DOS and on fixed the math
inside the BDOS allowing for drives to 1Gb.


>Oh yeah.  I think if there were one thing I'd like to change about CP/M that 
>would probably be it,  give me a multi-level directory.  Last time I gave 
>that some thought I was considering using something like *.LBR files do,  
>only in those the utilities commonly used would have you set the number of 
>entries you wanted to add at the outset,  and you had to go through some 
>stuff to add more or compact it.,  and compressing/decompressing library 
>members was a whole separate operation and also had to be done manually.  But 
>I think it's possible.

Thae allocation scheme used makes it hard to keep track of how many blocks 
are used by the content of a subdirectory...  you can do it but lots of 
recursion needed and that means a rewrite of the whole files system
code and also compatability issues as none of the apps will have any idea
of subdirs.

>I did have a "COMMAND.LBR" that was around 600K in size,  had all sorts of 
>stuff in it,  though mostly I used a fairly small handful of utilities.
>
>> But then DRI was really thinking of the "user number" feature as that-
>> -there was the system (user 0) and your own files under your number,
>> never considering that some users might want to use the feature to
>> organize their data and go cross-number frequently.
>
>Yup,  that's exactly what I did.

Many of the ZCPR and later improved CP/M work alikes added named directories
that equated to user numbers.

>Any of you know how some of the CP/M variants dealt with HDs and these other 
>issues?

Briefly CP/M doesn't, the BIOS writer does.  Since basic CP/M has a
hard limit of 8mb per logical disk drives larger than 8mb are divided 
into logical partitions as needed.  I have many (6 or more) systems 
with hard disks and all have disks greater than 10MB. The system with 
a 45mb is partitioned (in bios not using MBR or other dosisms) into 
5 logial disks four 8mb and one 5mb.  The bios also allows for 
assigning what partition is what letter though a user utility.  I 
also have a system with a 120mb disk set up so any four 8mb partitions
can be "mounted" and "dismounted" as needed.  Reason for this is 
each disk in the BIOS has buffers associated and they can become 
significant in space used.  By limiting the number of active drives 
I save that space at the cost of only have 32mb on line at any given 
time.  That was a fair trade for a large TPA in a non banked machine.
that and by most users even 8 megs of disk in one lump is luxury
afer using floppies.


Allison



More information about the cctalk mailing list