开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: Where's the CPM files


 

Ok, right, this isn't the COSMAC group.??

Thanks.


On Wednesday, December 6, 2023 at 11:28:30 a.m. EST, ajparent1/kb1gmx <kb1gmx@...> wrote:


Hi Josh,

Best place is the files section of the group.

While use PCs and program them even the older systems are my thing.
I still have the old don't you wish you have now what DEC had then.
For that I boot the MicroVAX as The OpenVMS Language Senstive Editor
LSE and cross platform systems are still cleaner than some of the current
PCisms.? Linux made than less painful.

The only time I've done SD so far I made FAT file of 256mb on a fresh 1GB
device?so that its allocated sequentially.? Then located the staring Block
number and addressed the blocks in it as LBA starting at xxxxxxH? to the
PC its just a block that's allocated with whatever inside.? The system then
doesn't need to know FAT at all.? The PC only created the larger
container file and allowed me to know the stating address. The CP/M
system populated the container file as sectors starting at xxxxxh.? The
PC was involved but minimally to initialize (create Fat 32 container file)
the disk.

As to BIOS design and storage allocation its not obvious but Alloc is a bit map
that has one bit per addressable block for the current allocation size.? I had to
figure that out in late 1979 when I got CP/M2.2 after running 1.3 and 1.4 in
prior years.? So Alloc map for 8mb using allocation block size of 4K bytes is
256 bytes, allocation block size can be as a large as 16K (32K on clones).
For large disks I use either 4K or 8k allocations.? The Allocation size limits
possible number of files as it sets a minimum granularity.? So for 8mb
using 8K allocation block size limits the disk to 1024 files, for 4K it would
be 2048 assuming DIRectory size can accommodate that.? The size of?
things in the bios for a given disk as all sorts of interactions.? The CP/M
Alteration Guide is rather vague on all that.. Andy Johnson-Larid
CP/M Handbook gets into it and helps make it clearer.

Once up as per earlier CP/M system getfile and putfile tools of my creation
are use to transfer serially via USB serial cable to PCs or real serial (tm)
to other non PC systems usually VAX, PDP-11, or CP/M.

For the BIOS I use on many systems where the device is LBA rather than
track sector I use sectors per track of 4 as the device is typically
512byte sectors and make tracks equal to the size of disk (8MB/512=16384).?
Offset is usually 0000 as I typically boot from Eprom (copy ccp and BDOS
from 8k eprom).? However offset is not part of the size of disk as literal 0th
is the first sector that happens to be directory for X many sectors with
data block after that.

Hard disks are not removable during operating of system so checked entries
will be zero (0) but is used for floppies to insure a media swap is caught before
a write which would trash the directory.

The next high memory cost item is the disk buffers typically equal to sector size or
sometimes block size? I try to keep them small.? For example 512 bytes by 4 drives
can easily eat up 2K of valuable ram in a basic 64K system.? Why?? They cannot
be shared if doing a disk to disk copy havoc would ensue. That's important
as high level languages like C, Pascal, and even assembles want ram to run? fast
and most the minimum is 48K (ram from 100h to base of BIOS) as the BDOS
and CCP are easily overlaid and reloaded.

Sector skew only applies to floppies (rotational delay) and for hard disks and
other modern media CF and SD zero (00) makes more sense.? Save having
skew table or calculating it.? I stopped building in floppies when IDE hit the
streets (as too small and salvage) and drives became cheap.?

CP/M itself has a internal math error that limits it to 8mb.? P2dos, NovaDOS, Zrdos
and a few others fix that at the cost of must be Z80 CPU.? For those 1GB is the limit
and 32Mb partitions makes more sense.? The latter due to the flat file structure.? I've
spent more than a little time inside CP/M (and enhanced clones) as sources have
been available since 1980.

Some of the buffers and other space eaters that the BIOS hides can be burred in
mapped ram such as Z80MC has for the first 32K.? I've used that before in?
a few of my machines where I strive for faster and larger available ram (usually 62K).?

The other trick is if the EPROM is large? as in greater than 16K a bootable image
of CP/M, Bios and a system monitor that will load it to ram. One block or mappable
ram is low ram and others used to support the BIOS.

FYI the z80MC will be paired with a small LCD Display and keyboard as a
portable system on battery.


Allison

Join [email protected] to automatically receive all group messages.