On Fri, Aug 16, 2024 at 11:42:01PM -0600, ben via cctalk wrote:
On 2024-08-16 12:11 p.m., Peter Corlett via cctalk
wrote:
[...]
> From what I can tell of a casual peruse of the
documentation of CP/M-68K
> and CP/M-86, they support the full address space of 4GiB and 1MiB
> respectively. This is kind of obvious on the m68k since why would they
> artificially limit it, but on x86 it's less obvious because they could
> have restricted changing the segment registers. CP/M-86 *also* supports
> an "8080 model" with CS == DS == ES, presumably to ease quick ports of
> 8080 code through source-to-source translation.
I picked up a bare bones 68000 single board computer,
and the only OS is
is a hacked CPM/68000 version in C. Any guess what compiler/assembler was
used back then and on what host? Does one have sub directories?
Classic CP/M does not have subdirectories, and instead has 16 "user areas",
which are of limited utility. But of course the 68000 is far more powerful
than the x80, and the popular 68000 platforms all had hierarchical file
systems, so one might wonder if support had been added since it would be a
bit silly to have a machine which can access 16MiB of memory but is still
limited to a flat file system which can only hold a few tens of files.
Source code to CP/M-68K can be found at <http://www.cpm.z80.de/source.html>,
so I downloaded them to have a look. I looked at the 1.0x sources as they
are a ZIP file of conventional text files, whereas the later versions are
ZIP files of disk images which are harder to read without a running CP/M
system.
The bulk of the code is written in K&R C, with some assembly for things such
as exception handlers which can't be written in C or performance-critical
such as floating-point. The source code is for BDOS plus utilities, notably
including a C compiler and assembler. There are various other file droppings
which give a hint of what's going on here.
From a very rough perusal of the source code, these are my tentative answers
to your questions:
The sources include a C compiler and assembler, and the readme says they are
"ALCYON Compiler/Assembler/Loader". So this is probably what everything was
built with. They are cross-platform, so long as you are using a
common-or-garden VAX or PDP-11 running Unix or VMS such as the one we all
had in our childhood bedrooms back then, VERSAdos (no, me neither), and
fortunately also natively on CP/M-68K. The file droppings suggest that
Alcyon Corporation probably cross-compiled it on VMS.
I can't find any likely-looking code in the BDOS sources pertaining to
subdirectories such as file types or attribute bits indicating a directory
entry is actually a subdirectory rather than a regular file, so I think
CP/M-68K still has a flat file system after all. The source for 1.1 comes as
14 256,256-byte disk images, suggesting a lot of disk-swapping to build it
natively.