Discussion:
Building my own CP/M-3 system
(too old to reply)
Ruud
2011-03-13 20:01:46 UTC
Permalink
Hallo allemaal,


Quite some time has passed since my last post but I'm still alive :)
And I'm stil working on my Commodore-CP/M project: turn any Commodore
into a CP/M machine. The idea is based on the idea Elektor and Acorn
used: a Z80 system that exchanges data over an I/O interface with an
host. The host provides the screen, keyboard and external data
storage.

I use a Micro-Professor MPF-1b (http://en.wikipedia.org/wiki/Micro-
Professor_MPF-I) as base. The idea is to add a 512 KB SRAM, a Z80-PIO,
four NAND- and four NOR-gates to make it CP/M-3 compatible. See:
Loading Image...
The new PIO provides the four signals for A15..A18. The four OR-gates
make sure that always the same block of 32 KB of RAM is choosen when
accessing an addres > $7FFF, the common RAM block. The four NAND gates
enable switching between the orignal RAM/ROM and the new RAM plus
permanent access to the common RAM block.
The original PIO takes care of the communication with the host system.

Now I have some questions. I collected a lot of stuff in the form of
PDFs, text files, HTM(L)s etc. Maybe they contains the answers I need
but how to find them?

First question: is there a kind of "Build your own CP/M system for
dummies"? If not, I'll make one using my own experiences.

2: Can CP/M3 handle those 512 KB? And is there a limit?

I found a source named BIOS3.Z80 and it contains the lines:

?BOOT JP BOOT ; 0
?WBOOT JP WBOOT ; 1
JP CONST ; 2
JP CONIN ; 3

This looks familiar and it is the code that should be loaded from
$0000 on once the ROM has been swapped out (= CPM3.SYS ???).
But I also found a documented source of the Bondwell 14. And that one
confused me. I read "; load cpmldr.com at 100h", 35 sectors from track
0. Next: "; yes, now load ccp.com at 9000h" to be loaded from track 1.
A book about CP/M (2 ???)nmentions the FDOS which exists of two parts:
the BDOS and BIOS. It also mentions the CCP and that it is situated
under the FDOS but above the TPA in the RAM. A book about CP/M-3 (DR's
CP/M-Plus) places CCP above page Zero.
I am quite sure I can create a ROM for my system using the Bondwell's
one as base. I'm also sure I can create my own CPM3.SYS based on the
Bondwell ones but
3: what about CPMLDR.COM and CCP.COM?
4: So who can tell me in short what I still need?
5: In what order are the files loaded?
6: And where can I find documented sources that I could use as base
for my files? (P112 comes into my mind ???)

Many thanks for answering my questions and other help!


Groetjes, Ruud Baltissen
Ole Christensen
2011-03-13 23:19:50 UTC
Permalink
This post might be inappropriate. Click to display it.
Telespalla Bob
2011-03-19 23:23:22 UTC
Permalink
Post by Ole Christensen
Post by Ruud
But I also found a documented source of the Bondwell 14. And that one
confused me. I read "; load cpmldr.com at 100h", 35 sectors from track
0. Next: ";
When You switch on that 5v to the Z80 it don't know anything,
just run off at 0000h,...
let's say Your hardware are wired for read from ROM write to RAM,
the ROM read 128 byte from track 0, sector 1, place it at 0000h,
call it with RST xx,...
next it read the size of Your CPMLDR, (or TurboDos loader or whatever),
from track 0, sector 2...track x, sector x, place it at 0100h
and exit with JP 0100h,...
then CPMLDR load CPM3.SYS witch load CCP.COM, (the bios-part),...
and CP/M 3 are up and running...
CPMLDR.asm should come with Your system-disk, (the DRI-part only),
(it is a two-part "thing", a mini-bdos and a mini-bios)
to get things working You have to make the "mini-bios" witch are
able to do simple console i/o, simple read sector from media, hand
it to CPMLDR, (the bdos part), in 128 byte records,
(just like a real BIOS),...
and in the case of memory banks, switch and move mem<-->mem,...
Hi, this is the same for CP/M 2.2?
I am building my first CP/M Z80 computer, but I must to learn more.

Under CP/M-3, the common RAM block must be 32K or can be 16K with 16K pages?

The pages must start to 0000h?
If 16K common RAM block is allowed, it can be placed within first half
of Z80 addressing space?

Thanks.

Paolo Carrer.
Ole Christensen
2011-03-20 13:17:02 UTC
Permalink
Post by Telespalla Bob
Hi, this is the same for CP/M 2.2?
Yes and no,... up to the point where cpmldr are loaded by CP/M+
CP/M 2.x loads the OS instead...
Post by Telespalla Bob
I am building my first CP/M Z80 computer, but I must to learn more.
Not bad,... sure,... why not start with the set of manuals for the
OS You want to run and build for...?
Post by Telespalla Bob
Under CP/M-3, the common RAM block must be 32K or can be 16K with 16K pages?
On page 11 in the CP/M 3 System Guide You will find the minimum
requirements for both banked & no-banked CP/M+...

On many home-build system today You will find 32K + 32K and there could
be more reason to do it that way,...? maybe they don't could figure out
how to decode 48K + 16K or there was no space left on the board after
the huge RAM & EPROM for the extra chip,...? or the bios could not
fit in 16K,...? or they was thinking that it could be a good idea to
have some space in common for user-irq routine for some bit-banging
to all kind of fancy devices to be developed later...? (who knows?)
Post by Telespalla Bob
The pages must start to 0000h?
Could be a good idea,...!

You will find the answer on the same page as above...
(the whole page are worth reading for sure)
Post by Telespalla Bob
If 16K common RAM block is allowed, it can be placed within first half
of Z80 addressing space?
Could that be a good idea,...?
maybe one have to read between the lines on that page 11 in the CP/M 3
System Guide...?

If i was about to make an CP/M Z80 computer, and sure if it was my
first, i would read that from page 1 to the end and not relay on
anything i read in a news-group... (at this point at least)

But anyway, good luck with Your CP/M Z80 computer.
<ole>
Post by Telespalla Bob
Thanks.
Paolo Carrer.
Telespalla Bob
2011-03-21 22:49:27 UTC
Permalink
Post by Ole Christensen
Post by Telespalla Bob
Hi, this is the same for CP/M 2.2?
Yes and no,... up to the point where cpmldr are loaded by CP/M+
CP/M 2.x loads the OS instead...
Post by Telespalla Bob
I am building my first CP/M Z80 computer, but I must to learn more.
Not bad,... sure,... why not start with the set of manuals for the
OS You want to run and build for...?
thanks, I have found system reference manual for CP/M plus, but nothing
for CP/M 2.2
Do you have a link?
Post by Ole Christensen
Post by Telespalla Bob
Under CP/M-3, the common RAM block must be 32K or can be 16K with 16K pages?
On page 11 in the CP/M 3 System Guide You will find the minimum
requirements for both banked & no-banked CP/M+...
seen, thanks.
Post by Ole Christensen
On many home-build system today You will find 32K + 32K and there could
be more reason to do it that way,...? maybe they don't could figure out
how to decode 48K + 16K or there was no space left on the board after
the huge RAM & EPROM for the extra chip,...? or the bios could not
fit in 16K,...? or they was thinking that it could be a good idea to
have some space in common for user-irq routine for some bit-banging
to all kind of fancy devices to be developed later...? (who knows?)
I would want to try with 16K pages because I start my project thinking
to make my computer running in two modes.
The first mode (at reset) is "'80s home computer style" with 32K ROM
from 0000h that includes basic, characters fonts and any other system
routines, and 32K RAM after ROM space.
I also have built my own "graphic card" without dedicated chips, and its
32K memory is mapped, in write only mode, "under" system ROM (ROM
disable is allowed to gain read access to video memory, once executable
code is resident in RAM).

The second mode is "CP/M style" and I thinking to CP/M 2.2 when I
designed my computer.
Switching to CP/M mode is done disabling ROM and swapping 32K system RAM
to 0000h and video ram to 8000h.
Under CP/M 2.2 I think that is ok, but if I want to run CP/M 3 I must
make some modifications to motherboard, like RAM bank switching, and my
address space is 32K because other 32K is for Graphic card used as
output console.
Otherwise I can try to map video RAM to another specific page of
memory... I'm thinking... is all under construction :-)

Thanks for any resources.
Roger Ivie
2011-03-22 00:30:38 UTC
Permalink
Post by Telespalla Bob
thanks, I have found system reference manual for CP/M plus, but nothing
for CP/M 2.2
Do you have a link?
Have you not poked about http://cpm.z80.de/drilib.html ?
--
roger ivie
***@ridgenet.net
Ole Christensen
2011-03-22 18:58:30 UTC
Permalink
Post by Telespalla Bob
I would want to try with 16K pages because I start my project thinking
to make my computer running in two modes.
The first mode (at reset) is "'80s home computer style" with 32K ROM
from 0000h that includes basic, characters fonts and any other system
routines, and 32K RAM after ROM space.
I also have built my own "graphic card" without dedicated chips, and its
32K memory is mapped, in write only mode, "under" system ROM (ROM
disable is allowed to gain read access to video memory, once executable
code is resident in RAM).
The second mode is "CP/M style" and I thinking to CP/M 2.2 when I
designed my computer.
Switching to CP/M mode is done disabling ROM and swapping 32K system RAM
to 0000h and video ram to 8000h.
Under CP/M 2.2 I think that is ok, but if I want to run CP/M 3 I must
make some modifications to motherboard, like RAM bank switching, and my
address space is 32K because other 32K is for Graphic card used as
output console.
Otherwise I can try to map video RAM to another specific page of
memory... I'm thinking... is all under construction :-)
Thanks for any resources.
You seems to already have a go for 32/32 so why not continue with
that...?

Think You mess up with "pages", "banks" & "common",...
but anyway, if You go for those 2 modes then both ROM & VDU-ram
must start from 0000h, let's call the RAM from 8000 to FFFF for
"common", the routine to switch banks must be in "common" for both
modes, the code to disabling ROM and load CP/M, (any version), must be
in "common", CP/M, (any version), must have RAM from 0000...
(and, hopefully, a bit longer than to 7FFF)

Never tell CP/Mplus about those 2 banks because it expect "banks"
of clean RAM from 0000 to the limit,... (in this case 7FFF)
to access the VDU-ram are done from Your bios code, (in common),
(CP/M don't care how this are done...)

But i could have got this all wrong...
<ole>
Telespalla Bob
2011-03-24 21:41:18 UTC
Permalink
Post by Ole Christensen
Post by Telespalla Bob
Thanks for any resources.
You seems to already have a go for 32/32 so why not continue with
that...?
Think You mess up with "pages", "banks" & "common",...
but anyway, if You go for those 2 modes then both ROM & VDU-ram
must start from 0000h, let's call the RAM from 8000 to FFFF for
"common", the routine to switch banks must be in "common" for both
modes, the code to disabling ROM and load CP/M, (any version), must be
in "common", CP/M, (any version), must have RAM from 0000...
(and, hopefully, a bit longer than to 7FFF)
Never tell CP/Mplus about those 2 banks because it expect "banks"
of clean RAM from 0000 to the limit,... (in this case 7FFF)
to access the VDU-ram are done from Your bios code, (in common),
(CP/M don't care how this are done...)
But i could have got this all wrong...
<ole>
Is all OK, thanks.
Ruud
2011-03-27 12:13:12 UTC
Permalink
Hallo Ole,
Where can I find this file?
       www.e-tech.net/~pbetti/archive/rlee/
404 error :(


Groetjes, Ruud
Peter Dassow
2011-03-27 12:20:01 UTC
Permalink
Post by Ruud
Hallo Ole,
Where can I find this file?
Post by Ole Christensen
www.e-tech.net/~pbetti/archive/rlee/
404 error :(
Groetjes, Ruud
Try http://z80cpu.eu/archive/rlee/

Regards
Peter
Ruud
2011-03-27 14:34:26 UTC
Permalink
Hallo Peter,
Post by Peter Dassow
Try http://z80cpu.eu/archive/rlee/
http://z80cpu.eu/archive/rlee/D/DIGITAL%20RESEARCH/CPM_3-0/SOURCES/ to
be more exact.
Thank you very much !!!


Groetjes, Ruud Baltissen
glen herrmannsfeldt
2011-03-14 01:34:53 UTC
Permalink
Post by Ruud
Quite some time has passed since my last post but I'm still alive :)
And I'm stil working on my Commodore-CP/M project: turn any Commodore
into a CP/M machine. The idea is based on the idea Elektor and Acorn
used: a Z80 system that exchanges data over an I/O interface with an
host. The host provides the screen, keyboard and external data
storage.
There used to be a plug-in adaptor with Z80 for the C64.

I believe the schematic was available, too.

-- glen
Ruud
2011-03-14 13:19:19 UTC
Permalink
Hallo Glen,
Post by glen herrmannsfeldt
There used to be a plug-in adaptor with Z80 for the C64.
I believe the schematic was available, too.  
I know, I was the one who draw it and put it on Internet :)

But 1) Commodore has more computers then the wellknown C64, think of
the various CBMs and CBM-IIs, and 2) the C64 cartridge was awfully
slow.


Groetjes, Ruud Baltissen
glen herrmannsfeldt
2011-03-14 19:11:17 UTC
Permalink
Post by Ruud
Post by glen herrmannsfeldt
There used to be a plug-in adaptor with Z80 for the C64.
I believe the schematic was available, too.  
I know, I was the one who draw it and put it on Internet :)
But 1) Commodore has more computers then the wellknown C64, think of
the various CBMs and CBM-IIs, and 2) the C64 cartridge was awfully
slow.
Not so slow considering what it has to do. It uses the C64 memory,
so has to interface to that through the bus, while the 6510 is
still running. (And running at about 1MHz.) The bus cycle of
a Z80 connected directly to its RAM is very different from what
the cycle of the C64 bus looks like, so much delay is needed,
in addition to waiting for the 6510.

-- glen
Tom Lake
2011-03-15 01:26:23 UTC
Permalink
Post by glen herrmannsfeldt
Post by Ruud
But 1) Commodore has more computers then the wellknown C64, think of
the various CBMs and CBM-IIs, and 2) the C64 cartridge was awfully
slow.
Not so slow considering what it has to do.
The benchmarks I've run on mine show it's the equivalent of a 2 MHz
system.

Tom L
Ruud
2011-03-15 11:56:13 UTC
Permalink
Hallo Tom,
Post by Tom Lake
The benchmarks I've run on mine show it's the equivalent of a 2 MHz
system.
I have to correct my previous message. I just checked my own
schematics and the Z80 runs at 4 MHz but effectively runs indeed at
about 2 MHz.


Groetjes, Ruud
Ruud
2011-03-15 11:48:53 UTC
Permalink
Hallo Glen,
while the 6510 is still running.
No. The Z80 and 6510 have been placed parallel to each other. So it is
either the 6510 that can run or the Z80.
The bus cycle of a Z80 connected directly to its RAM ...
The Z80 runs at 1 MHz and that's why it is slow. AFAIK it schedules
certain tasks like disk accesses to the 6510 and, IMHO, that is faster
then doing this itself.


Groetjes, Ruud
Mr Emmanuel Roche, France
2011-03-14 08:23:02 UTC
Permalink
Hello, Ruud!
turn any Commodore into a CP/M machine.
Well, there are at least 4 versions of CP/M using the Intel family of
processors (I assume that you are thinking to CP/M 2.2 when you say
"CP/M machine"). Since you are a fan of the C=64, another way of doing
would be to port CP/M to the native CPU of your system, since all the
source codes are now available.
Now I have some questions. I collected a lot of stuff in the form of
PDFs, text files, HTM(L)s etc. Maybe they contains the answers I need
but how to find them?
First question: is there a kind of "Build your own CP/M system for
dummies"? If not, I'll make one using my own experiences.
The only know book dealing specifically with writing a BIOS and
debugging it is:

- "The Programmer's CP/M Handbook"
Andy Johnson-Laird
Osborne-McGraw Hill, 1983

and Jack Rubin made the files of this book available, as I already
explained several times (I even published the READ.ME file of this
book!).

This book deals, of course, only with CP/M 2.2.
2: Can CP/M3 handle those 512 KB? And is there a limit?
Well, my Amstrad PCW8512 had a 800KB RAMdisk, and I know that there
was a 2MB RAMdisk sold in England (and another one for the Epson QX-10
in the USA).
But I also found a documented source of the Bondwell 14. And that one
confused me.
As I said, there were at least 4 versions of CP/M running with the 8-
bit family of Intel processors, so I would advice you to get the
relevant manuals, and forget the idiosyncrasies of the other versions.
the BDOS and BIOS.
Correct. This was how the "memory image" of CP/M 2.2 used to be
called. Under CP/M Plus, this became known as the "resident" part of
the OS (versus the "banked" part).
It also mentions the CCP and that it is situated
under the FDOS but above the TPA in the RAM. A book about CP/M-3 (DR's
CP/M-Plus) places CCP above page Zero.
Yes, of course. Under CP/M 2.2, the CCP was high in the TPA, below the
BDOS. Under CP/M Plus, there are several options. The CCP can be
reloaded from the system tracks (like older version), from the data
tracks, or from a "banked" copy. The CP/M Plus' CCP is a standard COM
file, so runs at 100H. Its source code is given in "The Amstrad CP/M
Plus" book, an essential book (512 pages) if you want to do any work
with CP/M Plus.
3: what about CPMLDR.COM and CCP.COM?
CPMLDR is, of course, a loader. CCP is, of course, the CCP.
4: So who can tell me in short what I still need?
? Hum... Reading the manual?
5: In what order are the files loaded?
Haha! Interesting question... The Amstrad PCW8256 uses a mini-loader
in the system disk (less than 512 bytes). This mini-loader do not load
one official CPMLDR program (loading, in turn, the SYS file), but
instead loads directly one EMS file into the appropriate banks of
memory, which is a SYS file with a less than 128 bytes loader. (All
this is explained in "The Amstrad CP/M Plus".)

As far as I know, short of using a ROM, this is the smallest, simplest
way of loading CP/M Plus.
6: And where can I find documented sources that I could use as base
for my files? (P112 comes into my mind ???)
Correct. In Europe, the Amstrads were best-sellers (8 millions PCWs
sold, according to Amstrad). I have never understood why nobody
disassembled them, and published the result. Me, since Amstrad France
was providing absolutely no technical information ("The PCW is a
typewriter, not a computer!") I disassembled CP/M Plus v1.4 for the
PCW but, since I am not an electronician, did not comment how the
"Gate Array" works. At the time (20+ years ago), I had a dozen of
files recreating the EMS file. I think that I should still have them,
somewhere.
Many thanks for answering my questions and other help!
You are welcome.

Yours Sincerely,
Mr. Emmanuel Roche, France
Peter Dassow
2011-03-16 21:05:02 UTC
Permalink
Post by Mr Emmanuel Roche, France
Hello, Ruud!
turn any Commodore into a CP/M machine.
Well, there are at least 4 versions of CP/M using the Intel family of
processors (I assume that you are thinking to CP/M 2.2 when you say
"CP/M machine"). Since you are a fan of the C=64, another way of doing
would be to port CP/M to the native CPU of your system, since all the
source codes are now available.
This is already done - porting CP/M to a native 65xx environment
(without any need for an additional Z80), and it was made for the C64,
feel free to visit http://www.z80.eu/dos65.html ...
If that was not the intention, then all needed CP/M 2.2 sourcecode files
(even for BIOS65) for the C64 and the Z80 cartridge are available at
http://www.z80.eu/c64.html , btw also Ruud's schematics for the above
mentioned Z80 cartridge.

Regards
Peter
PC Pete
2011-03-14 08:43:55 UTC
Permalink
Post by Ruud
First question: is there a kind of "Build your own CP/M system for
dummies"? If not, I'll make one using my own experiences.
John Monahan's site has a very detailed DIY CP/M 3 system building guide. Go to :
http://s100computers.com/Software%20Folder/CPM3%20BIOS%20Installation/CPM3%20BIOS%20Software.htm to get a start. While it's not discussing explicit details on every
system type, it's great for seeing the order of execution and how and where to make changes - but of course the changes are up to you!

If you already have the manuals in a usable format, skip the rest of this message...
Post by Ruud
The CP/M 3 Programmer's Manual has been recovered, and can be
downloaded from the same page as the other manual. The link is
http://www.audiography.com.au/Software/Downloads.htm
It's the link at the very bottom of the table.
The other 3 manuals are also available there in the same "builder friendly" format. ;=)
and will (or should be) on the european z80 site (sorry, I'm still bringing up my system and I don't have every detail available just yet...)

The System guide gives a good introduction to the relationships between the various modules, where they're loaded and the load order, public entrypoints, usage tips for
the supplied utilities, and so on. If you haven't already got them, get them. Plus, they're much nicer to use than the scanned manuals. (My opinion only!)
HTH, and good luck with the "conversion"!
PCPete
Ruud
2011-03-14 13:41:15 UTC
Permalink
Hallo Pete,


Thank you for answering.
Go to :http://s100computers.com/Software%20Folder/CPM3%20BIOS%20Installation...
I found this site AFTER placing my email. So far what I have read it's
looking very good!
I'm surprised (given the amount of noise I've been making) that no-one's referred
I scanned the complete manual in 2008 only to find out later that I
already downloaded its three parts as OCRed PDF's on 2005-04-04. With
other words, I'm afraid that somebody did your job already six years
ago.

Of course I read the various parts but yet couldn't pinpoint things.
But with the above link I'm quite sure I can get things going!


Groetjes, Ruud Baltissen
Ruud
2011-03-26 21:11:47 UTC
Permalink
Hallo allemaal,


I'm still busy with my project but I'm still puzzled as well. The CP/M
3 System Guide mentions on page 12 that the CPMLDR has to be loaded
which on its turn loads CPM3.SYS which then loads CCP.COM.
If I understood correctly, CCP.COM is the same for all machines i.e.
you could copy this file from the disk of a Kaypro and it would run on
a Bondwell. So the two only machine independant files are CPMLDR and
CPM3.SYS, yes?

If the only thing CPMLDR does is loading CPM3.SYS then I won't have
troubles with progamming it.

But the troubleshooter is CPM3.SYS. Roughly it is the combination of
the BIOS and BDOS. Once run it creates the STA/page zero, yes?
The guide describes how the BIOS should look. But what puzzles me is
where this jump table should begin. If I understood correctly, GENCPM
handles all things and tells BDOS where to find this table, yes?
But I need BDOS, where can I find it? I found a source on Gaby's site
but that one was in 8080 mnemonics.
The docs say to use GENCPM, but what does it use as input, source code
or a bin? Or is it possible to create my own CPM3.SYS pure from a
source code, thus without using GENCPM?

Any comment is welcome!


Groetjes, Ruud Baltissen
Jeffrey W. Shook
2011-03-27 01:21:18 UTC
Permalink
Hello Ruud,

Section 5.1 of the CP/M 3 System Guide tells all. There are files
supplied in the distribution for non-banked systems, BDOS3.SPR, and
banked systems, BNKBDOS3.SPR and RESBDOS.SPR. GENCPM combines these
files with the other system files and adjusts the addresses
appropriately to create CPM3.SYS. You don't have to do anything with the
BDOS source unless you want to.
Post by Ruud
Hallo allemaal,
I'm still busy with my project but I'm still puzzled as well. The CP/M
3 System Guide mentions on page 12 that the CPMLDR has to be loaded
which on its turn loads CPM3.SYS which then loads CCP.COM.
If I understood correctly, CCP.COM is the same for all machines i.e.
you could copy this file from the disk of a Kaypro and it would run on
a Bondwell. So the two only machine independant files are CPMLDR and
CPM3.SYS, yes?
CPMLDR and CPM3.SYS are system dependent. CCP.COM and the utility files
are system independent and presumably the same for all systems.
Post by Ruud
If the only thing CPMLDR does is loading CPM3.SYS then I won't have
troubles with progamming it.
But the troubleshooter is CPM3.SYS. Roughly it is the combination of
the BIOS and BDOS. Once run it creates the STA/page zero, yes?
The guide describes how the BIOS should look. But what puzzles me is
where this jump table should begin. If I understood correctly, GENCPM
handles all things and tells BDOS where to find this table, yes?
The setting of the BIOS addresses is done by the linker. The code in the
cseg section goes in common memory, that in the dseg section goes into
banked memory. At boot time the CPMLDR moves these sections of code to
the proper banks and addresses.
Post by Ruud
But I need BDOS, where can I find it? I found a source on Gaby's site
but that one was in 8080 mnemonics.
The docs say to use GENCPM, but what does it use as input, source code
or a bin? Or is it possible to create my own CPM3.SYS pure from a
source code, thus without using GENCPM?
As I said above the BDOS code is supplied on the CP/M 3 distribution disk.
Post by Ruud
Any comment is welcome!
Groetjes, Ruud Baltissen
Good luck,

Jeffrey W. Shook



5.1 GENCPM Utility

Syntax:

GENCPM [AUTO | AUTO DISPLAY}

Purpose:

GENCPM creates a memory image CPM3.SYS file, containing the
CP/M 3 BDOS and customized BIOS. The GENCPM utility performs
late resolution of intermodule references between system
modules.GENCPM can accept its command input interactively
from the console or from a file GENCPM.DAT.

In the nonbanked system, GENCPM creates a CPM3.SYS file from
the BDOS3.SPR and BIOS3.SPR files. In the banked system, GENCPM
creates the CPM3.SYS file from the RESBDOS3.SPR, the BNKBDOS3.SPR
and the BNKBIOS3.SPR files. Remember to back up your CPM3.SYS file
before executing GENCPM, because GENCPM deletes any existing
CPM3.SYS file before it generates a new system.

Input Files:

Banked System Nonbanked System
BNKBIOS3.SPR BIOS3.SPR
RESBDOS3.SPR BDOS3.SPR
BNKBDOS3.SPR
optionally GENCPM.DAT

...
Ruud
2011-03-27 11:57:58 UTC
Permalink
Hallo Jeffrey,
Post by Jeffrey W. Shook
Section 5.1 of the CP/M 3 System Guide tells all. There are files
supplied in the distribution for non-banked systems, BDOS3.SPR, and
banked systems, BNKBDOS3.SPR and RESBDOS.SPR. GENCPM combines these
files with the other system files and adjusts the addresses
appropriately to create CPM3.SYS. You don't have to do anything with the
BDOS source unless you want to.
The problem is, these SPR files are binaries, certainly no source
files. But if there are SPRs, IMHO the ASM or Z80 files should exist
as well. But Google cannot find them :(

Another problem: all sources written so far are meant to be assembled
by my self written assembler. And their format is completely different
from the ones I have seen so far. I even added a conversion part to my
assembler so it is able to read Z80 files.

But my goal is a CP/M system where _ALL_ needed files are supplied not
only as binaries but as SOURCE as well. Hmmm, just comes to my mind:
FreeCP/M, just what FreeDOS (http://www.freedos.org/) is for MS-DOS.
See new thread....
Post by Jeffrey W. Shook
... At boot time the CPMLDR moves these sections of code to
the proper banks and addresses.
Ah, something new to remember.


Groetjes, Ruud Baltissen
John Elliott
2011-03-29 07:28:19 UTC
Permalink
Ruud <***@gmail.com> wrote:
: The problem is, these SPR files are binaries, certainly no source
: files. But if there are SPRs, IMHO the ASM or Z80 files should exist
: as well. But Google cannot find them :(

<http://www.cpm.z80.de/source.html>

I'd recommend using one of 'DEVELOPERS BUILD DIRECTORY for CP/M 3' or
'CP/M 3 source' -- but then, I would, wouldn't I?
--
John Elliott

Thinks: This is what a nice clean life leads to. Hmm, why did I ever lead one?
-- Bluebottle, in the Goon Show
Ruud
2011-03-29 15:56:21 UTC
Permalink
Hallo John,
  <http://www.cpm.z80.de/source.html>
I forgot to mention that I was only looking for source codes with Z80
menmonics. Simply because my self written assembler doesn't support
the 8080. But last weekend I added a 8080 -> Z80 mnemonic convertor
which not only means I can assemble them but get Z80 sources in the
same go.


Groetjes, Ruud Baltissen
www.Baltissen.org

Continue reading on narkive:
Loading...