Discussion:
How much ROM/RAM does CP/M need?
(too old to reply)
Martin Skoles
2013-12-01 10:05:57 UTC
Permalink
Greetings gentle listers,

Could anyone let me know please how much ROM and RAM are required and
recommended for CP/M on Z80 processor. I thought maybe CP/M can be a good
choice for an embedded OS for a device I have in mind. I don't know so I
pose the question to you experts.

Regards,

Martin
l***@gmail.com
2013-12-01 13:48:09 UTC
Permalink
Martin,
CP/M typically used 64K RAM, but some had 128K RAM (switched in Banks).
ROM's depended on how much Microcode was to be burned into ROM'S/EPROM's,
and placed on the Circuit Board. Z80 ONLY supported 8 Bit.

The smallest CP/M system I own is the Ampro Little Board (Z80) and it's physical
size is that of a 5 1/4" Drive. It doesn't support USB, Ethernet, HDMI, SATA,
or Large RAM sizes. Another negative is that it been discontinued for years.


I'd think you would be better served with one of the following systems:
1. Aurdino
[url]http://arduino.cc/[/url]
[url]http://en.wikipedia.org/wiki/Arduino[/url]

2. Chipino - The name has been changed recently to ChitKit
[url]http://www.jameco.com/Jameco/pressroom/fishstew.html[/url]
[url]http://www.greatcowbasic.com/chipino.html[/url]
[url]http://www.kickstarter.com/projects/818225433/demo-shield-for-arduino-chipkit-chipino[/url

3. Raspberry Pi *** Probably your best choice
[/url]http://www.raspberrypi.org/[/url]
[url]http://en.wikipedia.org/wiki/Raspberry_Pi[/url]

The Nuts & Volts magazine has a monthly article on the Arduino. You can buy a Digitial Edition and download the Issues. Arduino has many modules that give you all kinds of support for about any device.

Chuck Hellebuyck, has articles in Nuts & Volts too, about the Chipino. He also has books out supporting the Chipino, that are advertised in Nuts & Volts. The Chipino is based on the MicroChip Processors of Chandler, AZ.

The Raspberry Pi Development system is just about the size of a Pack of Cigarettes. It just needs a Wall Wart for Power, USB Keyboard, USB Mouse, and SD Memory Card (Class 10 for speed) to burn an Image that boots it up. I've seen the Debian Version boot, and it's fast.

So, it's your choice. It's going to basically depend on the CPU's choice, and accessories you will be required to support.

Happy Browsing!


Larry
l***@gmail.com
2013-12-01 13:59:28 UTC
Permalink
Martin,
CP/M typically used 64K RAM, but some had 128K RAM (switched in Banks).
ROM's depended on how much Microcode was to be burned into ROM'S/EPROM's,
and if the designer wanted 1, 2, or 3 ROM's placed on the Circuit Board.
Z80 ONLY supported 8 Bit.

The smallest CP/M system I own is the Ampro Little Board (Z80) and it's physical
size is that of a 5 1/4" Drive. It doesn't support USB, Ethernet, HDMI, SATA,
or Large RAM sizes. Another negative is that it been discontinued for years.


I'd think you would be better served with one of the following systems:
1. Aurdino
http://arduino.cc/
http://en.wikipedia.org/wiki/Arduino

2. Chipino - The name has been changed recently to "ChipKit"
http://www.jameco.com/Jameco/pressroom/fishstew.html
http://www.greatcowbasic.com/chipino.html
http://www.kickstarter.com/projects/818225433/demo-shield-for-arduino-chipkit-chipino

3. Raspberry Pi *** Probably your best choice
http://www.raspberrypi.org/
http://en.wikipedia.org/wiki/Raspberry_Pi

The Nuts & Volts magazine has a monthly article on the Arduino. You can buy a Digitial Edition Magazine and download the Issues. Arduino has many modules that give you all kinds of support for about any device/need.

Chuck Hellebuyck, has articles in Nuts & Volts too, about the Chipino. He also has books out supporting the Chipino, some are advertised in Nuts & Volts. The Chipino is based on the MicroChip Processors of Chandler, AZ.

The Raspberry Pi Development system is just about the size of a Pack of Cigarettes. It just needs a Wall Wart for Power, USB Keyboard, USB Mouse, and SD Memory Card (Class 10 for speed) to burn an Image that boots it up. I've seen the Debian Version boot, and it's fast.

So, it's your choice. It's going to basically depend on the CPU's choice, if you want 8, 16, or 32 Bit, and accessories you will be required to support.

Happy Browsing!


Larry
trevor
2013-12-01 14:07:47 UTC
Permalink
not sure but i think we might have a new version of cpm
i think it uses the external ram on the trinity ethernet interface that is for the sam coupe and can page external ram into the bottom rom area
that means its full 6MHz running

is it called prodos:

http://comments.gmane.org/gmane.comp.systems.sam-coupe/28086
Bill Buckels
2013-12-02 13:29:46 UTC
Permalink
Post by trevor
is it called prodos
The Apple II uses ProDOS. It's for the 6502 not the Z80 and uses the SOS
filing system.
John Elliott
2013-12-03 21:46:37 UTC
Permalink
Post by Bill Buckels
Post by trevor
is it called prodos
The Apple II uses ProDOS. It's for the 6502 not the Z80 and uses the SOS
filing system.
There's also a CP/M workalike on the Sam Coupe, with the same name. I
think that's what's referred to here.
--
John Elliott

Thinks: This is what a nice clean life leads to. Hmm, why did I ever lead one?
-- Bluebottle, in the Goon Show
Bill Buckels
2013-12-04 03:07:58 UTC
Permalink
There's also a CP/M workalike on the Sam Coupe, with the same name. I think
that's what's referred to here.
Thanks John. Interesting... and a sad but notable story.

http://sam.speccy.cz/misc/boi_1.pdf

Chris Pile, author of PRODOS, the SAM Coupé's CP/M2.2 compatible operating
system was sentenced to 18 months imprisonment under section 3 of the
Computer Misuse Act of 1990.

As Black Baron, Christopher Pile, an unemployed 26 year old from Efford,
Plymouth created the viruses Pathogen, Queeg and Smeg. At his trial on 26th
May 1995, Pile pleaded guilty to eleven charges arising from his creation
and release of these viruses.

Christopher Pile is the first person in the United Kingdom to be convicted
of writing and distributing computer viruses. He is the first person in the
world to be convicted of inciting others to create computer viruses.

Bill
j***@mdfs.net
2013-12-07 19:08:01 UTC
Permalink
I've managed to get the ROM BIOS down to 512 bytes ;)
http://mdfs.net/Software/CPM/SmallSys

jgh
Bill Buckels
2013-12-08 10:25:15 UTC
Permalink
Post by j***@mdfs.net
I've managed to get the ROM BIOS down to 512 bytes ;)
http://mdfs.net/Software/CPM/SmallSys
Beautifully done!

I can see why you are smiling.

Bill
Bill Buckels
2013-12-02 13:55:39 UTC
Permalink
Post by l***@gmail.com
The Raspberry Pi Development system is just about the size of a Pack of
Cigarettes. It just needs a Wall Wart for Power, USB Keyboard, USB Mouse,
and SD Memory Card (Class 10 for speed) to burn an Image that boots it up.
I've seen the Debian Version boot, and it's fast.
Yes Larry,

The Pi is the best direction for him to go I think, and have a look at the
following link too...

http://appleii.ivanx.com/rasppleii

Some of these guys like Ivan are completely into it. CP/M is for lame fun...
so is Aztec C for that matter. I would get a headache these days if I had to
think as fast and hard as guys like Ivan and David Schmenk. Fortunately I
have kids who are into that to help me out when I get lost:)

Not that others like Arduino shouldn't be reviewed:

https://hayesduino.codeplex.com/

I was a little surprised when I saw the op's post... he needs to do some
research before getting started on selecting OS's for unspecified devices,
starting with the device itself and where it will be needed, and whether or
not it will be needed.

Doing so will answer many questions before an OS needs to be selected after
he selects a processor... perhaps not a Z80.

Bill
Mr. Emmanuel Roche, France
2013-12-01 15:03:23 UTC
Permalink
Hello, Martin!
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM
are required and recommended for CP/M on Z80 processor.
I thought maybe CP/M can be a good choice for an embedded
OS for a device I have in mind. I don't know so I pose
the question to you experts.
Ok. I am a programmer, not an electronician.

(I was a COBOL programmer on IBM Mainframes. But I wanted to have my own computer, so arrived logically (at the time: I have white hair, now) to CP/M.)

So, I know only the barest things on the hardware, but have 30 years of experience with CP/M.

First, CP/M is a *FAMILY* of Operating Systems.

Version 1 (up to 1.4) was designed around the characteristics of the IBM 3740 8-inch floppy disk.

Version 2 introduced the BIOS, and was provided with ASM and DDT, so that "system implementers" could write their own BIOS and use the huge "CP/M Software Library" available then. (Recently, we had a discussion about the only book ever written on the subject of writing a BIOS: "The Programmer's CP/M Handbook". If you are serious about CP/M, don't miss this essential reference.)

Version 3 was intended to be introduced with the Zilog Z-800 CPU, and to provide multi-tasking like its parent OS, MP/M, but Zilog failed to deliver the Z-800 in time (it appeared many, many years later, under the name "Z-280". The German Electronics Engineer Tilmann Reh then made a "CPU-280" using this chip, running CP/M 3 (known as "CP/M Plus" in Europe). The "CPU-280" is the fastest 8-bit CP/M Plus computer ever made (less than 50 were sold). It uses the ECB bus -- don't ask me the technical details!). As a result of Zilog's failure, the 8086 version of CP/M Plus has multi-tasking, but not the Z-80 version! (Yet, both run at the same speed...) If Zilog had released the Z-800 in time, the multi-tasking version of CP/M Plus would have competed against the "IBM Clown", a clone of CP/M 2.2! The less that can be said is that History would not have been the same...

There are also multi-tasking, multi-user versions of CP/M. At the moment, the commonest hardware upon which MP/M runs is something named "P112". For the details, have a look to:

http://p112.sourceforge.net/

Then, you have the 8086, 68000, and Z-8000 versions of CP/M, but let us go back to your initial question(s).
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM
are required and recommended for CP/M on Z80 processor.
Ok. At the origin, CP/M 1.4 was distributed on a 8-inch floppy disk, so as to run on a microcomputer fitted with 16KB of RAM. After that, it was up to the "system implementer" to do what he wanted. So, he could have his own version of CP/M running under different sizes of RAM.

With CP/M 2, the concept of a BIOS was introduced, with the MOVCPM utility, which simplified the production of the resulting SYS file.

With CP/M 3, a program named GENCPM is used. It is a kind of specialized linker liking all the modules (provided by the "system implementor" in Microsoft REL file format).

MP/M introduced the concept of "banked memory": several times the 64KB limit of the Z-80 CPU. The idea was to provide each user of MP/M with his own "TPA" (another concept of CP/M, the Transient Program Area. Most programs need only their space to run in RAM, then enough to access a "DMA Buffer" but, lazy programmers demanded more and more RAM until, at the end, each one wanted to have his own 64KB space... Hence the concept of "banks", providing a 64KB TPA to each user, via "bank-switching".)

So, my personal conclusion (remember: I am a programmer) would be: It depends on the size of your program.

I imagine that, if you build an "embedded system", it is to run a program?

Then, you only need enough RAM in the TPA to run your program.

Else, 99.999% of the CP/M 2.2 computers had 64KB of RAM.

(The size of the ROM varied greatly. Some, like the Amstrad PCW did not even had a Boot ROM! (The trick was to use the printer's controller, which could contain a few hundred bytes of boot code...) Else, 99.999% of the CP/M 2.2 computers had 2KB of ROM.
Post by Martin Skoles
I thought maybe CP/M can be a good choice for an embedded
OS for a device I have in mind.
I can tell you a secret: many, many "data loggers", out there, are using, in fact, CP/M internally. The customers do not know: they only see the data collected by those "data loggers".

The beauty of the Zilog Z-80 CPU is is "family" of support chips. This fact was used several times to build simple and cheap (notice that I did not write: fast and efficient) CP/M computers. But if your "embedded system" is just a "data logger", then, as long as it is fast enough to log correctly its data, speed is not a problem.

Technically, CP/M 2 could manage files up to 8MB. CP/M 3 = 32MB.

If a floppy size is not enough, you can of course use a hard disk. You can even use a CF card: it seems popular among electronicians.

Rather than physically move the disks, you can use the network version of CP/M, CP/NET, to connect via a network to your "data logger", then do whatever you want with your remote CP/M "node". (Apparently, there are several electronicians, out there, playing with CP/M networks... We even have one, Dr. James Moxham of Adelaide, Australia, using a Radio network! (He is a fan of XMODEM for his file transfer protocol.))

The big advantage of CP/M is that it is an Operating System, was the standard 8-bit operating system, so there are thousands of programs that have been debugged out there, and most of the things that you can do with a computer have already been made with CP/M.
Post by Martin Skoles
Should I remind you that you can do only 6 things
1) word processing
2) programming
3) spread-sheet
4) database
5) communications
6) graphics
As long as those 6 needs are satisfied, the computer is a
useful tool. And there are/were standards for those 6 needs
under CP/M: WordStar is obviously the standard for word
processors; BASIC is obviously the standard for programming,
MultiPlan is obviously the standard for spread-sheet, dBase II
is obviously the standard for database; XMODEM is obviously
the (lowest common denominator) standard for communications;
and finally GSX is obviously the standard graphics system for CP/M.
(Another is: Do *NOT* re-invent the wheel!)

Yours Sincerely,
Mr. Emmanuel Roche, France
m***@gmail.com
2013-12-01 16:52:32 UTC
Permalink
Post by Mr. Emmanuel Roche, France
Hello, Martin!
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM
are required and recommended for CP/M on Z80 processor.
I thought maybe CP/M can be a good choice for an embedded
OS for a device I have in mind. I don't know so I pose
the question to you experts.
Ok. I am a programmer, not an electronician.
(I was a COBOL programmer on IBM Mainframes. But I wanted to have my own computer, so arrived logically (at the time: I have white hair, now) to CP/M.)
So, I know only the barest things on the hardware, but have 30 years of experience with CP/M.
First, CP/M is a *FAMILY* of Operating Systems.
Version 1 (up to 1.4) was designed around the characteristics of the IBM 3740 8-inch floppy disk.
Version 2 introduced the BIOS, and was provided with ASM and DDT, so that "system implementers" could write their own BIOS and use the huge "CP/M Software Library" available then. (Recently, we had a discussion about the only book ever written on the subject of writing a BIOS: "The Programmer's CP/M Handbook". If you are serious about CP/M, don't miss this essential reference.)
Version 3 was intended to be introduced with the Zilog Z-800 CPU, and to provide multi-tasking like its parent OS, MP/M, but Zilog failed to deliver the Z-800 in time (it appeared many, many years later, under the name "Z-280". The German Electronics Engineer Tilmann Reh then made a "CPU-280" using this chip, running CP/M 3 (known as "CP/M Plus" in Europe). The "CPU-280" is the fastest 8-bit CP/M Plus computer ever made (less than 50 were sold). It uses the ECB bus -- don't ask me the technical details!). As a result of Zilog's failure, the 8086 version of CP/M Plus has multi-tasking, but not the Z-80 version! (Yet, both run at the same speed...) If Zilog had released the Z-800 in time, the multi-tasking version of CP/M Plus would have competed against the "IBM Clown", a clone of CP/M 2.2! The less that can be said is that History would not have been the same...
http://p112.sourceforge.net/
Then, you have the 8086, 68000, and Z-8000 versions of CP/M, but let us go back to your initial question(s).
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM
are required and recommended for CP/M on Z80 processor.
Ok. At the origin, CP/M 1.4 was distributed on a 8-inch floppy disk, so as to run on a microcomputer fitted with 16KB of RAM. After that, it was up to the "system implementer" to do what he wanted. So, he could have his own version of CP/M running under different sizes of RAM.
With CP/M 2, the concept of a BIOS was introduced, with the MOVCPM utility, which simplified the production of the resulting SYS file.
With CP/M 3, a program named GENCPM is used. It is a kind of specialized linker liking all the modules (provided by the "system implementor" in Microsoft REL file format).
MP/M introduced the concept of "banked memory": several times the 64KB limit of the Z-80 CPU. The idea was to provide each user of MP/M with his own "TPA" (another concept of CP/M, the Transient Program Area. Most programs need only their space to run in RAM, then enough to access a "DMA Buffer" but, lazy programmers demanded more and more RAM until, at the end, each one wanted to have his own 64KB space... Hence the concept of "banks", providing a 64KB TPA to each user, via "bank-switching".)
So, my personal conclusion (remember: I am a programmer) would be: It depends on the size of your program.
I imagine that, if you build an "embedded system", it is to run a program?
Then, you only need enough RAM in the TPA to run your program.
Else, 99.999% of the CP/M 2.2 computers had 64KB of RAM.
(The size of the ROM varied greatly. Some, like the Amstrad PCW did not even had a Boot ROM! (The trick was to use the printer's controller, which could contain a few hundred bytes of boot code...) Else, 99.999% of the CP/M 2.2 computers had 2KB of ROM.
Post by Martin Skoles
I thought maybe CP/M can be a good choice for an embedded
OS for a device I have in mind.
I can tell you a secret: many, many "data loggers", out there, are using, in fact, CP/M internally. The customers do not know: they only see the data collected by those "data loggers".
The beauty of the Zilog Z-80 CPU is is "family" of support chips. This fact was used several times to build simple and cheap (notice that I did not write: fast and efficient) CP/M computers. But if your "embedded system" is just a "data logger", then, as long as it is fast enough to log correctly its data, speed is not a problem.
Technically, CP/M 2 could manage files up to 8MB. CP/M 3 = 32MB.
If a floppy size is not enough, you can of course use a hard disk. You can even use a CF card: it seems popular among electronicians.
Rather than physically move the disks, you can use the network version of CP/M, CP/NET, to connect via a network to your "data logger", then do whatever you want with your remote CP/M "node". (Apparently, there are several electronicians, out there, playing with CP/M networks... We even have one, Dr. James Moxham of Adelaide, Australia, using a Radio network! (He is a fan of XMODEM for his file transfer protocol.))
The big advantage of CP/M is that it is an Operating System, was the standard 8-bit operating system, so there are thousands of programs that have been debugged out there, and most of the things that you can do with a computer have already been made with CP/M.
Post by Martin Skoles
Should I remind you that you can do only 6 things
1) word processing
2) programming
3) spread-sheet
4) database
5) communications
6) graphics
As long as those 6 needs are satisfied, the computer is a
useful tool. And there are/were standards for those 6 needs
under CP/M: WordStar is obviously the standard for word
processors; BASIC is obviously the standard for programming,
MultiPlan is obviously the standard for spread-sheet, dBase II
is obviously the standard for database; XMODEM is obviously
the (lowest common denominator) standard for communications;
and finally GSX is obviously the standard graphics system for CP/M.
(Another is: Do *NOT* re-invent the wheel!)
Yours Sincerely,
Mr. Emmanuel Roche, France
Great Summary!
Thanks
Jeffrey W. Shook
2013-12-02 01:13:01 UTC
Permalink
Post by Mr. Emmanuel Roche, France
Hello, Martin!
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM
are required and recommended for CP/M on Z80 processor.
I thought maybe CP/M can be a good choice for an embedded
OS for a device I have in mind. I don't know so I pose
the question to you experts.
Ok. I am a programmer, not an electronician.
(I was a COBOL programmer on IBM Mainframes. But I wanted to have my own computer, so arrived logically (at the time: I have white hair, now) to CP/M.)
So, I know only the barest things on the hardware, but have 30 years of experience with CP/M.
First, CP/M is a *FAMILY* of Operating Systems.
Version 1 (up to 1.4) was designed around the characteristics of the IBM 3740 8-inch floppy disk.
Version 2 introduced the BIOS, and was provided with ASM and DDT, so that "system implementers" could write their own BIOS and use the huge "CP/M Software Library" available then. (Recently, we had a discussion about the only book ever written on the subject of writing a BIOS: "The Programmer's CP/M Handbook". If you are serious about CP/M, don't miss this essential reference.)
Version 3 was intended to be introduced with the Zilog Z-800 CPU, and to provide multi-tasking like its parent OS, MP/M, but Zilog failed to deliver the Z-800 in time (it appeared many, many years later, under the name "Z-280". The German Electronics Engineer Tilmann Reh then made a "CPU-280" using this chip, running CP/M 3 (known as "CP/M Plus" in Europe). The "CPU-280" is the fastest 8-bit CP/M Plus computer ever made (less than 50 were sold). It uses the ECB bus -- don't ask me the technical details!). As a result of Zilog's failure, the 8086 version of CP/M Plus has multi-tasking, but not the Z-80 version! (Yet, both run at the same speed...) If Zilog had released the Z-800 in time, the multi-tasking version of CP/M Plus would have competed against the "IBM Clown", a clone of CP/M 2.2! The less that can be said is that History would not have been the same...
http://p112.sourceforge.net/
Then, you have the 8086, 68000, and Z-8000 versions of CP/M, but let us go back to your initial question(s).
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM
are required and recommended for CP/M on Z80 processor.
Ok. At the origin, CP/M 1.4 was distributed on a 8-inch floppy disk, so as to run on a microcomputer fitted with 16KB of RAM. After that, it was up to the "system implementer" to do what he wanted. So, he could have his own version of CP/M running under different sizes of RAM.
With CP/M 2, the concept of a BIOS was introduced, with the MOVCPM utility, which simplified the production of the resulting SYS file.
Hello Emmanuel,

Actually CP/M 1.3 and 1.4 did have a BIOS, what they did not have was
documented Disk Parameter Tables to allow adjusting to the various types
and sizes of diskettes. If one knew the secret of the location of the
proprietary OEM area in the BDOS then one could adapt to various types
of disks. In CP/M 2.0 Digital Research provided access to the disk
parameters and made adapting to various disks much easier.

jws
Post by Mr. Emmanuel Roche, France
With CP/M 3, a program named GENCPM is used. It is a kind of specialized linker liking all the modules (provided by the "system implementor" in Microsoft REL file format).
MP/M introduced the concept of "banked memory": several times the 64KB limit of the Z-80 CPU. The idea was to provide each user of MP/M with his own "TPA" (another concept of CP/M, the Transient Program Area. Most programs need only their space to run in RAM, then enough to access a "DMA Buffer" but, lazy programmers demanded more and more RAM until, at the end, each one wanted to have his own 64KB space... Hence the concept of "banks", providing a 64KB TPA to each user, via "bank-switching".)
So, my personal conclusion (remember: I am a programmer) would be: It depends on the size of your program.
I imagine that, if you build an "embedded system", it is to run a program?
Then, you only need enough RAM in the TPA to run your program.
Else, 99.999% of the CP/M 2.2 computers had 64KB of RAM.
(The size of the ROM varied greatly. Some, like the Amstrad PCW did not even had a Boot ROM! (The trick was to use the printer's controller, which could contain a few hundred bytes of boot code...) Else, 99.999% of the CP/M 2.2 computers had 2KB of ROM.
Post by Martin Skoles
I thought maybe CP/M can be a good choice for an embedded
OS for a device I have in mind.
I can tell you a secret: many, many "data loggers", out there, are using, in fact, CP/M internally. The customers do not know: they only see the data collected by those "data loggers".
The beauty of the Zilog Z-80 CPU is is "family" of support chips. This fact was used several times to build simple and cheap (notice that I did not write: fast and efficient) CP/M computers. But if your "embedded system" is just a "data logger", then, as long as it is fast enough to log correctly its data, speed is not a problem.
Technically, CP/M 2 could manage files up to 8MB. CP/M 3 = 32MB.
If a floppy size is not enough, you can of course use a hard disk. You can even use a CF card: it seems popular among electronicians.
Rather than physically move the disks, you can use the network version of CP/M, CP/NET, to connect via a network to your "data logger", then do whatever you want with your remote CP/M "node". (Apparently, there are several electronicians, out there, playing with CP/M networks... We even have one, Dr. James Moxham of Adelaide, Australia, using a Radio network! (He is a fan of XMODEM for his file transfer protocol.))
The big advantage of CP/M is that it is an Operating System, was the standard 8-bit operating system, so there are thousands of programs that have been debugged out there, and most of the things that you can do with a computer have already been made with CP/M.
Post by Martin Skoles
Should I remind you that you can do only 6 things
1) word processing
2) programming
3) spread-sheet
4) database
5) communications
6) graphics
As long as those 6 needs are satisfied, the computer is a
useful tool. And there are/were standards for those 6 needs
under CP/M: WordStar is obviously the standard for word
processors; BASIC is obviously the standard for programming,
MultiPlan is obviously the standard for spread-sheet, dBase II
is obviously the standard for database; XMODEM is obviously
the (lowest common denominator) standard for communications;
and finally GSX is obviously the standard graphics system for CP/M.
(Another is: Do *NOT* re-invent the wheel!)
Yours Sincerely,
Mr. Emmanuel Roche, France
Mr. Emmanuel Roche, France
2013-12-02 08:42:36 UTC
Permalink
Hello, Jeffrey!
Post by Jeffrey W. Shook
Actually CP/M 1.3 and 1.4 did have a BIOS, what they
did not have was documented Disk Parameter Tables to
allow adjusting to the various types and sizes of
diskettes. If one knew the secret of the location of
the proprietary OEM area in the BDOS then one could adapt
to various types of disks. In CP/M 2.0 Digital Research
provided access to the disk parameters and made adapting
to various disks much easier.
My memories of CP/M 1.4 are a little rusty, since it has been 30 years since I used it, briefly before settling for CP/M 2.2 on a NorthStar Horizon. However, I had a look to all the work that Udo Munk made, to recreate very early versions of CP/M:

http://www.autometer.de/unix4fun/z80pack/

So, I agree with you, with the following difference: CP/M Version 1 was written in PL/M: There was no need to provide ASM and DDT to the "system implementer" and details of the registers used, since (usually) the customers (companies at the time, not crazy individuals) were provided with the high-level source code, written in PL/M. (You should have noticed that the CP/M Version 1 manuals document how to call CP/M in Intel PL/M System Language, not in Intel 8080 Assembly Language...)

"In 1976, (...) IMSAI Incorporated (...)
I was somewhat reluctant to
adapt CP/M to yet another controller, and thus the notion of a separated Basic
I/O System (BIOS) evolved. (...) IMSAI was subsequently licensed to
distribute CP/M version 1.3 (...)"

- "The Evolution of an Industry: One Person's Viewpoint"
Gary Kildall
DDJ ("Dr. Dobb's Journal"), #41, Vol.5, No.1, January 1980, pp.6-7

As far as I understand what Gary writes, the concept of a BIOS started with CP/M 1.3. before that, the details of the controller used were "hard-coded" into the BDOS. From CP/M 1.3, there was a separate BIOS area in the PL/M program (as shown in Udo Munk's PL/M source code files. Finally, from CP/M Version 2, the "system implementer" used low-level Intel 8080 Assembly Language, rather than high-level Intel PL/M System Language, to interface his hardware to CP/M.

(At the time, PL/M ran mainly on IBM Mainframes, so it was a little bit out of reach of "computer hobbyists"... "But the use of PL/M on larger time-sharing computers was considered sufficient, and the CP/M idea was rejected.")

"(...) CP/M customers required support
for disk drives ranging from single 5-inch floppy disks to high-capacity
Winchester disk drives. In response, CP/M was totally redesigned in 1979 to
become table-driven. All disk-dependent parameters were moved from the
invariant disk operating system to tables in the variant portion, to be filled
in by the system implementer."

- "CP/M: A Family of 8- and 16-Bit Operating Systems"
Gary Kildall
"BYTE", June 1981, p.216

Yours Sincerely,
Mr. Emmanuel Roche, France
Mr. Emmanuel Roche, France
2013-12-02 17:43:22 UTC
Permalink
While searching for something else, I found the following:

https://docs.google.com/file/d/0B9rh9tVI0J5mMzMwMmEwNzMtZjg2Yy00MzdmLWIzMDMtYWJkNDEwYmFjZTZl/edit?hl=en

Yes, those are pages 117 to 123 of the "Intel Intellec 8" manual, that Gary Kildall used to boot CP/M in 1974...

I was thinking that I was the last Man on Earth to have it!

(Why does Google Books not show the first 116 pages? Is it a dark, satanic secret, 40 years later?) (Or maybe it is "covered" by Copyright, in case a Chinese has the idea of copying the 8080?)

After that, there are advertisements for the MCS-8. Some people will notice (I hope) that this is an early version of the MDS-800, the system used as an example by Digital Research for writing a BIOS. (I had the curiosity of searching Wikipedia for "Intel MDS-800": It is totally unknown... I wonder if it ever existed?)

Yours Sincerely,
Mr. Emmanuel Roche, France
Rob Doyle
2013-12-03 14:52:10 UTC
Permalink
Post by Mr. Emmanuel Roche, France
https://docs.google.com/file/d/0B9rh9tVI0J5mMzMwMmEwNzMtZjg2Yy00MzdmLWIzMDMtYWJkNDEwYmFjZTZl/edit?hl=en
Yes, those are pages 117 to 123 of the "Intel Intellec 8" manual,
that Gary Kildall used to boot CP/M in 1974...
I was thinking that I was the last Man on Earth to have it!
(Why does Google Books not show the first 116 pages? Is it a dark,
satanic secret, 40 years later?) (Or maybe it is "covered" by
Copyright, in case a Chinese has the idea of copying the 8080?)
After that, there are advertisements for the MCS-8. Some people will
notice (I hope) that this is an early version of the MDS-800, the
system used as an example by Digital Research for writing a BIOS. (I
had the curiosity of searching Wikipedia for "Intel MDS-800": It is
totally unknown... I wonder if it ever existed?)
Yours Sincerely, Mr. Emmanuel Roche, France
Yes it existed. I used one for many years - probably until around 1987.
At then end I even had a 14 inch winchester hard drive
attached to it. It had an 8080 CPU and a multibus backplane.

I think the units with integrated displays were 8085 based.

I still have piles of 8 inch floppy disks for it including PLM-80,
Fortran-80, linker, locator, etc.

Someday I'd like to build a machine that could run ISIS-II...

Rob.
Ole Christensen
2013-12-04 00:15:01 UTC
Permalink
Post by Rob Doyle
Yes it existed. I used one for many years - probably until around 1987.
At then end I even had a 14 inch winchester hard drive
attached to it. It had an 8080 CPU and a multibus backplane.
I think the units with integrated displays were 8085 based.
well I'm no expert on those things, but have an model 231,
(230V + 12" Ball Brothers),.. the main CPU card are i8080,
and a second i8085 card for ICE-85,...
but also think i read somewhere that the main CPU card in all
MDS800 models could be i8080 or i8085 depending on year,...(?)

(save Your floppy,...!)
<ole>
Holger Petersen
2013-12-02 11:00:12 UTC
Permalink
Post by Jeffrey W. Shook
Actually CP/M 1.3 and 1.4 did have a BIOS,
And that BIOS was to be written by that person(s) that made the disk-
contoler-board.
In Dezember 1979 I bought a "SD-Sales" floppy-controller-board; and
the listing of the BIOS was in the manual (and maybe on the system-
disks?). It was in 8080-assembler ready to be assembled by the ASM.COM
from Digital research (NO PL/M!).
Post by Jeffrey W. Shook
what they did not have was
documented Disk Parameter Tables to allow adjusting to the various types
and sizes of diskettes.
The Controller-Board did have two connectors for 50-pol _OR_ 34-pol cable.
It was not possible to use both at the same time for the connector,
which hindered one to the other.
Post by Jeffrey W. Shook
If one knew the secret of the location of the
proprietary OEM area in the BDOS then one could adapt to various types
of disks
So they (SD-SALES) knew and provided as well an 8-inch disk as an 5.25" one.
It was the CP/M-version 1.4
Post by Jeffrey W. Shook
jws
yours, Holger
Peter Heitzer
2013-12-02 09:35:00 UTC
Permalink
Post by Martin Skoles
Greetings gentle listers,
Could anyone let me know please how much ROM and RAM are required and
recommended for CP/M on Z80 processor. I thought maybe CP/M can be a good
choice for an embedded OS for a device I have in mind. I don't know so I
pose the question to you experts.
AFAIR the minimum RAM size was 16K but normal were 64K. It is important
that the RAM begins at address 0 so you need some logic to map out the
ROM after boot.
The ROM can be as small as 1K. The code only has to initialize the
hardware and to load the CP/M boot code from floppy.
For new development I would use no Z80 processor. There are nice
microcontrollers with ARM core you could use. Or use a board like
the Raspberry Pi or Beaglebone.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
HTML mails will be forwarded to /dev/null.
Axel Berger
2013-12-02 13:27:00 UTC
Permalink
Post by Peter Heitzer
but normal were 64K.
Towards the end, after William Henry had already done the dastardly
deed. In the beginning was the RAM and the RAM was expensive. IIRC CP/M
tkes up 8k after booting and leaves everything else to the user and his
program and data.
Bill Buckels
2013-12-02 13:25:14 UTC
Permalink
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM are required and
recommended for CP/M on Z80 processor.

Hi Martin,

I can't answer your question... it seems to me that you need to decide that.
First read some books on CP/M.... start with the following book I have in my
hand (it's also available from google books) then work your way down:

"Introduction to CP/M Assembly Language" by John Lindsay
(3rd Edition) ISBN 0-8104-5210-3

Next read the CP/M Primer (lots of us have a hard copy of that)... you can
get one from Amazon for $1.61 but they only have 8 left.

http://www.amazon.com/Stephen-M.-Murtha/e/B001KE655O/ref=ntt_athr_dp_pel_pop_1

Then run-up an emulator with CP/M 80 on it. I'd suggest AppleWin. Visit
www.cpm8680 for a little more info. You need to research a bit I think.

Here's what Wikipedia says:

The BIOS directly controls hardware components other than the CPU and main
memory. By porting the limited number of simple routines in the BIOS to a
particular hardware platform, the entire OS will work.

A minimal 8-bit CP/M system contains the following components:

A computer terminal using the ASCII character set
An Intel 8080 (and later the 8085) or Zilog Z80 microprocessor
At least 16 kilobytes of RAM
A means to bootstrap the first sector of the diskette.
At least one floppy disk drive

Digital Research distributed core of CP/M (BDOS, CCP, core transient
commands) do not use any of the Z80-specific instructions.

Z80 based systems use Z80 code in the system specific BIOS.

The "bootstrap" is a minimal bootloader in ROM combined with some means of
minimal bank switching or a means of injecting code on the bus (since the
8080 needs to see boot code at Address 0 for start-up).

In the 8-bit versions, while running, the CP/M operating system loaded into
memory has three components:

Basic Input/Output System or BIOS,
Basic Disk Operating System or BDOS,
Console Command Processor or CCP.

The BIOS and BDOS are memory resident, while the CCP is memory resident
unless overwritten by an application, in which case it is automatically
reloaded after the application finishes running. A number of transient
commands for standard utilities are also needed.

x--- example ---x

The Apple II Z-80 Softcard (MicroSoft's first Hardware Product) was the
single most popular platform to run CP/M. It was first demonstrated publicly
at the West Coast Computer Faire in March 1980.

http://en.wikipedia.org/wiki/Z-80_SoftCard

See here for memory map and usage:

http://mirrors.apple2.org.za/ground.icaen.uiowa.edu/MiscInfo/Programming/memorymap.cpm
Post by Martin Skoles
I thought maybe CP/M can be a good choice for an embedded OS for a device I
have in mind.
Maybe. Seems like CP/M is more suited to old devices. But then since you
don't say what you have in mind, so how can I comment? Maybe you need to
write your own embedded OS...

Following the MK14 which used (a INS8060 cpu), the Timex Sinclair 1000
launched as the ZX81 in March 1981... a better example of a small Z80 based
system:

http://en.wikipedia.org/wiki/Sinclair_ZX81

It had only four silicon chips on board and only 1K of RAM and 8K of ROM.

Bill
glen herrmannsfeldt
2013-12-02 18:15:15 UTC
Permalink
Post by Martin Skoles
Post by Martin Skoles
Could anyone let me know please how much ROM and RAM are required and
recommended for CP/M on Z80 processor.
I can't answer your question... it seems to me that you need to
decide that. First read some books on CP/M.... start with the
following book I have in my hand (it's also available from google
"Introduction to CP/M Assembly Language" by John Lindsay
(3rd Edition) ISBN 0-8104-5210-3
Next read the CP/M Primer (lots of us have a hard copy of that)... you can
get one from Amazon for $1.61 but they only have 8 left.
(snip)
Post by Martin Skoles
The BIOS directly controls hardware components other than the CPU and main
memory. By porting the limited number of simple routines in the BIOS to a
particular hardware platform, the entire OS will work.
In the usual implementation the BIOS, BDOS, and CCP were all in RAM,
so no ROM would be needed, unless needed to read the boot block
off disk. It should have been possible to put the BIOS at least,
and maybe BDOS into ROM. I believe some programs expect to write over
the CCP, but with bank switching that could also be in ROM.

With more of the system in ROM, you might live with 4K or 8K or RAM.

-- glen
Jay_in_Dallas
2014-06-12 16:53:09 UTC
Permalink
...I thought maybe CP/M can be a good choice for
an embedded OS for a device I have in mind.
Regarding LEGAL issues:
----------------------
I thought the legal issues should be mentioned if your embedded device is intended for commercial markets. Someone will correct me if I'm wrong but I thought the typical release to use the old versions of various programs and operating systems allows for *personal use*.

If you're making anything for revenue generating commercial sales, you might have a lawyer read and advise you on any vintage software's legal limitations. You may not be able to sell a device that comes with any CP/M binaries, images, or source code loaded as any part of the package. This aspect may be responsible for killing a resurgence of CP/M use in modern commercial applications.

Perhaps the best way around those legal complications is to develop a new, completely independent operating system. That has a side advantage of being unbound by the 1970s limitations of the original development.


Regarding Modern Utility for CP/M:
---------------------------------
I do agree with your premise, that CP/M offers efficiency and simplicity that has modern possibilities. However, if you're looking into a modern design, CP/M is rather *clunky* - with all due respect, Gary Kidall wouldn't design CP/M today, as he had 40 years ago with hardware limitations of that time. But "Keep It Simple," a concept lost by today's PC operation systems.

The natural conclusion is that a new operating system is needed.

Personally I see that as a niche between a vintage computer and a PC, updated for today's chips and peripherals. A good guideline: Leave floppy drives to restoration projects and hard drives for PCs. Don't make a computer that burns up and dies when a cooling fan stops. Pick the MIPS for the real application requirements, not for hyperbolic PC upgrade marketing strategies. In short, question whether the PC isn't just habitual overkill for office computer or control applications.

In regard to hardware, the Zilog eZ80 is the perfect platform if you'd like to also allow access to vintage files; I have about 600 floppies I'd like to access.

I do worry about the eZ80's life-cycle and how long it will be available. It looks to me that the eZ80 was designed for the purpose of bridging the old to the next new (that never developed). Perhaps CP/M emulators running on PC scared designers and investors away from making new hardware. Unintended consequences happen.

The eZ80 can easily run just about any CP/M era operating system in a mixed OS, multiuser environment. Its easy to add the necessary banking support in a flexible manner even though many kicking around design ideas may assume a built-in MMU would be necessary; let the hardware guys handle that aspect of the design.


Regarding CP/M requirements:
---------------------------
I've been exploring this for my own eZ80 design. To add potential support for CP/M 3.* and MP/M memory banking, it needs to support 3 to 16 banked pages with a common area that can be between ~4K and 32K. It doesn't take much hardware to implement universal CP/M configurations allowing each user space to run its own selected combination.

For example, concurrent users could be running, (A) CP/M 2.2, (B) MP/M with 4 banks and 20K common, (C) MP/M with 16 banks and 4K common, etc. That's hardware with the kernel configuring the system for the user running the next time-slice. The configuration is cleared when the kernel is invoked when the time-slice expires or a hardware BIOS operation requires action from the circuit board and peripherals. The best way to do this is to hardware-force any interrupt to clear the user configuration and jump to the kernel for interrupt processing. That assures the kernel doesn't find itself bound within the small workspace of any user.

In this environment, the OS is part of the user page (i.e. CP/M), and a kernel is running the time-slicing, i/o, interrupts and serial communications buffers.


Can the eZ80 Run Multiple Users in a Safe Mode:
----------------------------------------------
When micros only had 64K workspaces, banking had a side benefit of preventing one workspace from clobbering another. If you need your board's kernel to have ADL mode capability (why wouldn't you?), the eZ80 can not prevent a user from flipping to ADL mode too and possibly accessing areas outside their workspace.

However hardware design attention needs to be focused upon maintaining a safe and separate environment for all users; you don't want some newbie testing code that erases all 16MBs and crashes all other users' work.

Hardware can build safety fences between users. I'm still looking for hardware solutions to handle some remaining issues. In my opinion *only the kernal* should have pathways to bridging multiple users or tasks... its dangerous to let anyone get access directly into memory, IO, outside their assigned workspace. You can always choose to lessen the restrictions to allow superusers greater access.


-Jay in Dallas
David Griffith
2014-06-12 17:35:11 UTC
Permalink
...I thought maybe CP/M can be a good choice for
an embedded OS for a device I have in mind.
Regarding LEGAL issues: ---------------------- I thought the legal
issues should be mentioned if your embedded device is intended for
commercial markets. Someone will correct me if I'm wrong but I thought
the typical release to use the old versions of various programs and
operating systems allows for *personal use*.
If you're making anything for revenue generating commercial sales, you
might have a lawyer read and advise you on any vintage software's
legal limitations. You may not be able to sell a device that comes
with any CP/M binaries, images, or source code loaded as any part of
the package. This aspect may be responsible for killing a resurgence
of CP/M use in modern commercial applications.
Perhaps the best way around those legal complications is to develop a
new, completely independent operating system. That has a side
advantage of being unbound by the 1970s limitations of the original
development.
Have you looked at ZSDOS? It's a CP/M look-alike that's GPLed.
--
David Griffith
***@acm.org <--- Put my last name where it belongs
Alexandre MONTARON
2015-03-21 16:25:12 UTC
Permalink
I would like to comment this little sentence outside the whole
discussion about eZ80 ...
Post by Jay_in_Dallas
(B) MP/M with 4 banks and 20K common, (C) MP/M with 16 banks and 4K common
I was thinking MP/M (in fact MP/M II) was limited to only 8 banks. It is
said in the User Manual (mpm2ug.pdf) that MP/M II is supporting up to
400KB (supposedly 7x48KB+64KB).

The GENSYS.COM utility is limited to 8 "memory segments base" ...
I tried one day and wasn't able to go further of what is done in the
MP/M II disks implementation from z80pack. Even if z80pack banking
support more than 400K...

Also, that way the tasks (48K CP/M apps) is limited to 7 plus one for
system ... Use of .PRL files instead of .COM files don't increase the
maximum task number I can run ... Sadly, only one .PRL executable can be
run in a 48K bank exactly like a .COM executable file would be. So, a
maximum of 7 .PRL exec at a time.

And, the MP/M II process descriptor table seems to be limited to 8
entries again.

Is all that correct ? Is there a way to extend what MP/M II use in term
of memory / tasks / .PRL files run simultaneously ?

Perhaps, I should create a new thread in comp.os.cpm for that ...?

Alex. http://canal.chez.com/CPM/ (my WM patches for CP/M-80)


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Udo Munk
2015-03-21 17:41:35 UTC
Permalink
Post by Alexandre MONTARON
I was thinking MP/M (in fact MP/M II) was limited to only 8 banks. It is
said in the User Manual (mpm2ug.pdf) that MP/M II is supporting up to
400KB (supposedly 7x48KB+64KB).
MP/M is limited to 8 banks, but the size of the common segment can be
anything. 16KB was quite common and suitable for a MP/M server, as long
as it was not running CP/NET. For release 0 and 1 of that I am using 32KB
common, to get all needed processes to fit. They improved this for release 2,
this would work with a 16KB common segment again, I'm using 20KB to
have all processes included I wanted.
Post by Alexandre MONTARON
The GENSYS.COM utility is limited to 8 "memory segments base" ...
I tried one day and wasn't able to go further of what is done in the
MP/M II disks implementation from z80pack. Even if z80pack banking
support more than 400K...
Also, that way the tasks (48K CP/M apps) is limited to 7 plus one for
system ... Use of .PRL files instead of .COM files don't increase the
maximum task number I can run ... Sadly, only one .PRL executable can be
run in a 48K bank exactly like a .COM executable file would be. So, a
maximum of 7 .PRL exec at a time.
The PRL's just are page relocatable, so the code is not tied to start at
100H, but that is all. And this systems still had to run all the CP/M
software available, so one process per user bank.
Post by Alexandre MONTARON
And, the MP/M II process descriptor table seems to be limited to 8
entries again.
The kernel data structures as well as tools like gensys allow 8 banks,
well you have all sources and build tools, so that can be changed.
Post by Alexandre MONTARON
Is all that correct ? Is there a way to extend what MP/M II use in term
of memory / tasks / .PRL files run simultaneously ?
No, but you can write system resident processes like the spooler, the
program scheduler and such, and these can share a page, the OS page
only, though.
Alexandre MONTARON
2015-03-21 18:35:56 UTC
Permalink
Post by Udo Munk
The PRL's just are page relocatable, so the code is not tied to start at
100H, but that is all. And this systems still had to run all the CP/M
software available, so one process per user bank.
In the example I found -in my old books- there is 3 tasks like that
(mpmstat):
0-4000h for PIP
4000-6000h * free *
6000-7100h for DIR

No mention of bank numbers. Seems to be MP/M I not II.
But these three tasks and mandatory .PRL files surely not .COM files ...

I suppose it is due to the scheme of banks used ... 3 banks in the same
64KB perhaps ...??? Seems strange however ...
Post by Udo Munk
Post by Alexandre MONTARON
And, the MP/M II process descriptor table seems to be limited to 8
entries again.
The kernel data structures as well as tools like gensys allow 8 banks,
well you have all sources and build tools, so that can be changed.
Yes, but huge work to do as all addresses will slighty be moved some
bytes ago ...
Post by Udo Munk
Post by Alexandre MONTARON
Is all that correct ? Is there a way to extend what MP/M II use in term
of memory / tasks / .PRL files run simultaneously ?
No, but you can write system resident processes like the spooler, the
program scheduler and such, and these can share a page, the OS page
only, though.
Yes, I know that... but that's only "tiny" apps ...

Alex. - http://canal.chez.com/CPM/


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Udo Munk
2015-03-21 18:58:18 UTC
Permalink
Post by Alexandre MONTARON
Post by Udo Munk
The PRL's just are page relocatable, so the code is not tied to start at
100H, but that is all. And this systems still had to run all the CP/M
software available, so one process per user bank.
In the example I found -in my old books- there is 3 tasks like that
0-4000h for PIP
4000-6000h * free *
6000-7100h for DIR
No mention of bank numbers. Seems to be MP/M I not II.
But these three tasks and mandatory .PRL files surely not .COM files ...
That was the idea yes, but it was given up. Cromemco faced the same
problem with Cromix, so only the well written system processes can
share a bank. The user programs don't behave and so need to be
isolated each into their own bank.

1980 when they worked on the multiuser OS's the CP/M software bus
was so successful already, that no one could afford to give up on it.

There still is no solution to this problem because it requires support
from the hardware, which the Z80 doesn't have.
Post by Alexandre MONTARON
I suppose it is due to the scheme of banks used ... 3 banks in the same
64KB perhaps ...??? Seems strange however ...
No, my first MP/M system only had 64KB of memory, simply because more
was not affordable for me. So it had 3 small user banks and into 2 of them
it could load prl's.
Post by Alexandre MONTARON
Yes, I know that... but that's only "tiny" apps ...
A question of point of view. The first CP/M system supported 16KB for everything.
With MP/M you can fill up 32 KB or so in bank 0 with your processes, which is twice
what was available for OS + application in the beginning. If you study the command
processors for MP/M, Cromix and the like you'll find, that there is only one instance
of the code, shared by all users. Another example is CP/NET, they got a complete
file and print server into that "tiny" space.
Alexandre MONTARON
2015-03-21 20:40:35 UTC
Permalink
Post by Udo Munk
Post by Alexandre MONTARON
Post by Udo Munk
The PRL's just are page relocatable, so the code is not tied to start at
100H, but that is all. And this systems still had to run all the CP/M
software available, so one process per user bank.
In the example I found -in my old books- there is 3 tasks like that
0-4000h for PIP
4000-6000h * free *
6000-7100h for DIR
No mention of bank numbers. Seems to be MP/M I not II.
But these three tasks and mandatory .PRL files surely not .COM files ...
That was the idea yes, but it was given up. Cromemco faced the same
problem with Cromix, so only the well written system processes can
share a bank. The user programs don't behave and so need to be
isolated each into their own bank.
So, you mean this example is not reachable on MP/M II whatever the banks
configuration is ?
Post by Udo Munk
1980 when they worked on the multiuser OS's the CP/M software bus
was so successful already, that no one could afford to give up on it.
There still is no solution to this problem because it requires support
from the hardware, which the Z80 doesn't have.
You mean no MMU ... or no memory protection like Z280 (and probably
Z380). Yes, not a good OS to do new developments :-D
But should work OK with cooperative apps !
Post by Udo Munk
Post by Alexandre MONTARON
I suppose it is due to the scheme of banks used ... 3 banks in the same
64KB perhaps ...??? Seems strange however ...
No, my first MP/M system only had 64KB of memory, simply because more
was not affordable for me. So it had 3 small user banks and into 2 of them
it could load prl's.
Was not linear 64K ???
Post by Udo Munk
Post by Alexandre MONTARON
Yes, I know that... but that's only "tiny" apps ...
A question of point of view. The first CP/M system supported 16KB for everything.
With MP/M you can fill up 32 KB or so in bank 0 with your processes, which is twice
what was available for OS + application in the beginning. If you study the command
Yes CLI/TMP.
Post by Udo Munk
processors for MP/M, Cromix and the like you'll find, that there is only one instance
of the code, shared by all users. Another example is CP/NET, they got a complete
file and print server into that "tiny" space.
Of course, you're right ... But there is many others reasons ... simply
it is not .COM standard executables !


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Udo Munk
2015-03-21 21:12:41 UTC
Permalink
Post by Alexandre MONTARON
Post by Udo Munk
Post by Alexandre MONTARON
Post by Udo Munk
The PRL's just are page relocatable, so the code is not tied to start at
100H, but that is all. And this systems still had to run all the CP/M
software available, so one process per user bank.
In the example I found -in my old books- there is 3 tasks like that
0-4000h for PIP
4000-6000h * free *
6000-7100h for DIR
No mention of bank numbers. Seems to be MP/M I not II.
But these three tasks and mandatory .PRL files surely not .COM files ...
That was the idea yes, but it was given up. Cromemco faced the same
problem with Cromix, so only the well written system processes can
share a bank. The user programs don't behave and so need to be
isolated each into their own bank.
So, you mean this example is not reachable on MP/M II whatever the banks
configuration is ?
That example was doable, sure, but who wanted that? In this moment when
really wanted CP/M applications like dbase, wordstar and so one come into
the game, it won't work anymore, because this applications take all memory
from 100H to whatever memory locations 4 and 5 say. So the process models
of the multiuser OS's had to take that into account, and the only possible
solution was different banks for all applications. As that became clear they also
gave up on loading multiple PRL's into one bank.
Post by Alexandre MONTARON
Post by Udo Munk
There still is no solution to this problem because it requires support
from the hardware, which the Z80 doesn't have.
You mean no MMU ... or no memory protection like Z280 (and probably
Z380). Yes, not a good OS to do new developments :-D
But should work OK with cooperative apps !
Yep, with the basic Z80 you can't isolate a program from other programs
running in the same page. It works with cooperative programs, so DRI
and Cromemco allowed that for such programs, but not so for the bunch
of CP/M programs, that were written in the assumption, that the whole
machine belongs to them. So they had to find compromises for the users
who wanted to use all and any CP/M applications.
Post by Alexandre MONTARON
Post by Udo Munk
Post by Alexandre MONTARON
I suppose it is due to the scheme of banks used ... 3 banks in the same
64KB perhaps ...??? Seems strange however ...
No, my first MP/M system only had 64KB of memory, simply because more
was not affordable for me. So it had 3 small user banks and into 2 of them
it could load prl's.
Was not linear 64K ???
Linear 64KB, a single bank. MP/M actually uses memory segments, they can be allocated
in the same or in a different bank. Very clever solution, that allowed me to run MP/M
multi-processing on a not banked system in the beginning.
Post by Alexandre MONTARON
Post by Udo Munk
A question of point of view. The first CP/M system supported 16KB for everything.
With MP/M you can fill up 32 KB or so in bank 0 with your processes, which is twice
what was available for OS + application in the beginning. If you study the command
Yes CLI/TMP.
Post by Udo Munk
processors for MP/M, Cromix and the like you'll find, that there is only one instance
of the code, shared by all users. Another example is CP/NET, they got a complete
file and print server into that "tiny" space.
Of course, you're right ... But there is many others reasons ... simply
it is not .COM standard executables !
No, this is only suitable for your own self written tasks, not for existing COM
executables. The Z80 lacks the necessary features for that and requires creative
work arounds.
Jay_in_Dallas
2014-06-12 18:23:01 UTC
Permalink
Regarding: Floppy Cables To Both 8 inch and 5 1/4 inch drives:
-------------------------------------------------------------
...a "SD-Sales" floppy-controller-board;
...what they did not have was documented Disk Parameter Tables
...two connectors for 50-pol _OR_ 34-pol cable
...not possible to use both at the same time
I assume you mean SD Systems' "Versa-Floppy I (or II)."

If it only supported one or the other, perhaps it could have been due to an older floppy disk controller chip or even some poor circuitry design.

However, I'd caution against just making that as an *assumption* simply because both connectors (34 and 50 pin) share most of the circuit traces. That alone doesn't not mean "either or."

Examples:
(1) Steve Ciarcia's SB-180 has the FDC and circuitry to support both size drives hooked up at the same time.
(2) The SD-Systems VFW-III that I designed could also run both floppy size drives (and a up to 3 winchester hard drives).

Of course the BIOS has to support it.

*SD Systems knew 8 inch drives*. Their non-engineering offices were packed with a monsterous metal-cased "business computer" SD Systems manufactured with two 8 inch drives (plus monitor, keyboard etc). It took two people to lift and move those heavy all-in-one computer monsters.

But in contrast to that mess, about a year before SD Systems disappeared, Gary Keto led us in the design of the "SD-300," a tiny S-100 bus system that used a folded-over S-100 backplane. It was about 4" tall, maybe 18" wide and 30" deep. It was a sweet package for our Generation 3 IEEE-696 board set. I had a harddrive in the back, a fan and switching power supply. It used either external floppy drives or an internal floppy drive that sacrificed some of the S100 board slots space.

That's on my WANT-TO-BUY list. :)

-Jay in Dallas

(SD Systems - The Last/Lost Generation)
Jay_in_Dallas
2014-06-13 16:00:17 UTC
Permalink
Regarding: Floppy Cables To Both 8 inch and 5 1/4 inch drives:
-------------------------------------------------------------
...a "SD-Sales" floppy-controller-board;
...two connectors for 50-pol _OR_ 34-pol cable
...not possible to use both at the same time
I dug out the SD Sales/SD Systems manuals last night and confirmed Holger's point that the Versa-Floppy One, designed in February 1978 as SD Systems, could only be jumpered for either full sized drives (i.e. 8") or minis (5 1/4") because of the different data rates.

While they could have designed in mixed drive support, to be fair at that time having a mixed set of drives would likely have seemed a strange request.

About two years later in December of 1979, SD Systems released the Versa-Floppy Two which added dual density with mixed drive capability.

It wasn't until September of 1983, that the Versa-Floppy-Winchester Three was released which also supported mixed drive capability plus 3 hard drives on a IEEE-696 bus.


SD Whatever, Generation X:
-------------------------
While I had the manuals out, I documented the dates of their product release and it was rather interesting to see the life-cycle of the company.

Generation Zero was basically 1976-1977 as SD Sales with some contracted designs
Generation One was 1978 with a big product line as SD Systems
Generation Two was 1979 added enhanced features to each of the boards
Generation Three was 1983 with IEEE-696

-Jay in Dallas
Mr. Emmanuel Roche, France
2015-03-21 17:20:39 UTC
Permalink
Sadly, only one .PRL executable can be run in a 48K bank exactly like a .COM executable file would be.
"I would like to comment this little sentence outside the whole discussion about eZ80..."

1) I have never used a MP/M-II system. David Griffith happens to be selling his last P112s, able to run MP/M-II at 4 times the original speed, if someone is interested...

2) However, I had 15 years of experience of CP/M Plus, the single-user version of MP/M-II. In order to understand the system, I quickly understood that I had to study MP/M-II, and the MP/M-II manuals were my usual bedtime reading, at the time.

3) Instead of typing FILENAME, you typed FILENAME.PRL and the PRL program is loaded by the CCP.

4) Under MP/M-II, all the standard CP/M utilities were provided in PRL form. Under CP/M Plus, some utilities were provided in RSX form (SAVE, GET, PUT, and "attached" to their COM files: DIRLBL (DIR.COM), SUBRSX (SUBMIT.COM), LOADER (CCP.COM)). Loading them in an appropriate order, I managed to load 3 RSXs in the TPA plus the CP/M Plus' CCP LOADER. I had a file showing the "Headers" of those 4 RSXs in TPA, but it is still on my Epson QX-10 floppies...

My 2 cents...

Yours Sincerely,
Mr. Emmanuel Roche, France
Udo Munk
2015-03-21 17:54:46 UTC
Permalink
Post by Mr. Emmanuel Roche, France
3) Instead of typing FILENAME, you typed FILENAME.PRL and the PRL program is loaded by the CCP.
No you did not:

0A>sdir pip.*

Directory For Drive A: User 0

Name Bytes Recs Attributes Name Bytes Recs Attributes
------------ ------ ------ ------------ ------------ ------ ------ ------------
PIP COM 8k 58 Dir RW PIP PRL 10k 77 Sys RW

0A>pip.prl

Blnk file type rqd
0A>pip.com

Blnk file type rqd
0A>pip
MP/M II PIP VERSION 2.0
*

The MP/M user manual explains the details about search order.
Post by Mr. Emmanuel Roche, France
4) Under MP/M-II, all the standard CP/M utilities were provided in PRL form. Under CP/M Plus,
DIRLBL (DIR.COM), SUBRSX (SUBMIT.COM), LOADER (CCP.COM)). Loading them in an appropriate
order, I managed to load 3 RSXs in the TPA plus the CP/M Plus' CCP LOADER. I had a file showing
the "Headers" of those 4 RSXs in TPA, but it is still on my Epson QX-10 floppies...
Resident System Extension is something different than Page ReLocatable. Fortunately the z80pack
repository has 8" IBM disk images with all the RSX's and also a utility program to show informations
about the loaded RSX's.
Mr. Emmanuel Roche, France
2015-03-21 18:12:49 UTC
Permalink
Yes, you did.
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
3) Instead of typing FILENAME, you typed FILENAME.PRL and the PRL program is loaded by the CCP.
Try to read what I write, Udo!

I have *NEVER* used MP/M-II! Understood?

I am talking, of course, of the CCP of CP/M Plus...
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
4) Under MP/M-II, all the standard CP/M utilities were provided in PRL form. Under CP/M Plus,
DIRLBL (DIR.COM), SUBRSX (SUBMIT.COM), LOADER (CCP.COM)). Loading them in an appropriate
order, I managed to load 3 RSXs in the TPA plus the CP/M Plus' CCP LOADER. I had a file showing
the "Headers" of those 4 RSXs in TPA, but it is still on my Epson QX-10 floppies...
Resident System Extension is something different than Page ReLocatable.
No, it is not. Their way to relocate in the TPA is the same. Only their "Headers" is different.
Post by Udo Munk
Fortunately the z80pack
repository has 8" IBM disk images with all the RSX's and also a utility program to show informations
about the loaded RSX's.
I know: It is *ME* who published the only program dumping PRL files...

By the way, on this Internet computer, I only managed to find:

A>put console output to file: UDO.ASC

A>mallard
Mallard-80 BASIC with Jetsam Version 1.29
(c) Copyright 1984 Locomotive Software Ltd
All rights reserved

29549 free bytes

Ok
run"rsx

RSX: Do you want a hardcopy (Y/N) : ? n

Resident System Extension
-------------------------

A Resident System Extension (RSX) is a special type of program that can be
attached to the operating system to modify or extend the functionality of
the BDOS. RSX modules intercept BDOS functions and either perform them,
translate then into other BDOS functions, or pass them through untouched.
The BDOS execute non-intercepted functions in the standard manner.

0EE06H: C3 34 EE Start: JMP 0EE34H ; Jump to start of this RSX
0EE09H: C3 06 F3 Next: JMP 0F306H ; Jump to next RSX
0EE0BH: 07 00 Prev: DW 0007H ; Previous module
0EE0EH: 00 Remove: DB 00H ; Remove flag (no)
0EE0FH: 00 Nonbnk: DB 00H ; Nonbank flag (no)
0EE10H: 50 55 54 Name: DB 'PUT ' ; Any 8-character name
0EE18H: 00 Loader: DB 00H ; Loader flag (no)
0EE19H: 00 DB 00H ; (Reserved)
0EE1AH: 00 DB 00H ; (Reserved)

0F306H: C3 1B F3 Start: JMP 0F31BH ; Jump to start of this RSX
0F309H: C3 06 F6 Next: JMP 0F606H ; Jump to next RSX
0F30BH: 0B EE Prev: DW 0EE0BH ; Previous module
0F30EH: 00 Remove: DB 00H ; Remove flag (no)
0F30FH: 00 Nonbnk: DB 00H ; Nonbank flag (no)
0F310H: 4C 4F 41 Name: DB 'LOADER ' ; Any 8-character name
0F318H: FF Loader: DB 0FFH ; Loader flag (yes)
0F319H: 00 DB 00H ; (Reserved)
0F31AH: 00 DB 00H ; (Reserved)

Ok
system
A>That's All, Folks!

Yours Sincerely,
Mr. Emmanuel Roche, France
Udo Munk
2015-03-21 18:23:28 UTC
Permalink
Post by Mr. Emmanuel Roche, France
Yes, you did.
Post by Mr. Emmanuel Roche, France
3) Instead of typing FILENAME, you typed FILENAME.PRL and the PRL program is loaded by the CCP.
Try to read what I write, Udo!
I have *NEVER* used MP/M-II! Understood?
I am talking, of course, of the CCP of CP/M Plus...
Oh, but there where no .prl files included with CP/M Plus and the MP/M ones
won't work.
Post by Mr. Emmanuel Roche, France
No, it is not. Their way to relocate in the TPA is the same. Only their "Headers" is different.
Resident System Extension
-------------------------
A Resident System Extension (RSX) is a special type of program that can be
attached to the operating system to modify or extend the functionality of
the BDOS. RSX modules intercept BDOS functions and either perform them,
translate then into other BDOS functions, or pass them through untouched.
The BDOS execute non-intercepted functions in the standard manner.
Same as prl's? Only headers different? Extending the BDOS is something different
than just running some user application, IMHO.
Mr. Emmanuel Roche, France
2015-03-21 21:55:59 UTC
Permalink
Re-Hello, Udo!

Ok. It is 22:30. I have others things to do than repeat myself.

Below, I am just doing some remarks.

No need to reply to them.
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
I am talking, of course, of the CCP of CP/M Plus...
Oh, but there where no .prl files included with CP/M Plus and the MP/M ones
won't work.
1) No PRL files included with CP/M Plus ???

And what is the file format of the GSX-80 drivers?

Why did I disassemble several of them?

I sent a 162-page source code listing of the Epson FX-80 High Resolution GSX-80 printer driver... to Germany! Several persons saw it with their own eyes. I even produced a German version of this FX-80 printer driver! (And a French one.)

It was mentioned several times in the comp.os.cpm Newsgroup, many years ago.


2) the MP/M ones will not work.

Then, how comes that I was using the MP/M-II ZSID Version 2.5 debugger under CP/M Plus, and disassembled it? I explained this at length in... 2007!

http://compgroups.net/comp.os.cpm/xiz.com-with-macros/946347

(Search for "original DRI 8" disk".)
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
Post by Mr. Emmanuel Roche, France
I know: It is *ME* who published the only program dumping PRL files...
Something I also don't understand, because dump.prl that came with MP/M of
course is able to dump PRL files.

Hahaha! It depends what you mean by "dumping PRL files", Udo!

My version showed the 3 different areas of the PRL file, and *UNDERLINED* the bytes relocated in the code segment...

Again, this is old stuff, that was mentioned several times in the comp.os.cpm Newsgroup. (Sometimes, I wonder if someone reads what I write?) For example:

https://groups.google.com/forum/#!topic/comp.os.cpm/1gxwlbhgNqM

(Search for "I found another version of DUMPPRL" to find a demonstration of its use.)

Ok. Subject closed. Good night.

Yours Sincerely,
Mr. Emmanuel Roche, France
Udo Munk
2015-03-21 22:14:20 UTC
Permalink
Post by Mr. Emmanuel Roche, France
Post by Udo Munk
Oh, but there where no .prl files included with CP/M Plus and the MP/M ones
won't work.
1) No PRL files included with CP/M Plus ???
And what is the file format of the GSX-80 drivers?
GSX-80 was not included in a CP/M Plus distribution from DRI, that was a separate product.
It was included with some software bundles from machine vendors.

And this were drivers, try to execute them with driver.prl, hm, please don't do that with
my xtek driver, it has no provision for doing this ;-)
Post by Mr. Emmanuel Roche, France
Why did I disassemble several of them?
I have no idea, because the drivers were available in source form, commented
and understandable.
Post by Mr. Emmanuel Roche, France
I sent a 162-page source code listing of the Epson FX-80 High Resolution GSX-80 printer
driver... to Germany! Several persons saw it with their own eyes. I even produced a German
version of this FX-80 printer driver! (And a French one.)
Great, but some had the source for this, because DRI gave the GSX-80 driver sources
to licensed vendors.
Post by Mr. Emmanuel Roche, France
2) the MP/M ones will not work.
Then, how comes that I was using the MP/M-II ZSID Version 2.5 debugger under CP/M Plus,
and disassembled it? I explained this at length in... 2007!
Because ZSID is from 1977 and so was available before any MP/M and so won't care about
the OS.
Post by Mr. Emmanuel Roche, France
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
I know: It is *ME* who published the only program dumping PRL files...
Something I also don't understand, because dump.prl that came with MP/M of
course is able to dump PRL files.
Hahaha! It depends what you mean by "dumping PRL files", Udo!
My version showed the 3 different areas of the PRL file, and *UNDERLINED* the bytes
relocated in the code segment...
Cool, and I just used dump, without underlines.
Mr. Emmanuel Roche, France
2015-03-21 22:52:24 UTC
Permalink
Argh! I should be in bed, now: I have an appointment in the Hospital, very early in the morning...

The problem, with the Germans, is that they are very stubborn, and have difficulties understanding when some people (like the French..) are more intelligent than them.

We know from experience: France and Germany were one single country, some time ago. Since then, from time to time, we are regularly obliged to go to war with Germany when they simply do not understand what we tell them. (Why don't they speak French, the "lingua franca" of Europe, like everybody?)

So, let us hope that this is not the beginning of yet-another war...
Post by Udo Munk
GSX-80 was not included in a CP/M Plus distribution from DRI, that was a separate product.
It was included with some software bundles from machine vendors.
Me, I discovered GSX-80, along with Mallard BASIC-80, with the CP/M Plus provided with the Amstrad micros (which were best-sellers in Europe: 8 Millions Amstrad PCW were sold).
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
Why did I disassemble several of them?
I have no idea, because the drivers were available in source form, commented
and understandable.
In 1985? Stop kidding! I am an Old Timer, me! At the time, I wrote to Digital Research England: they told me that Amstrad had written the BIOS of the Amstrad micros. I then wrote Amstrad Plc: they told me that DR England had written it...
Post by Udo Munk
Great, but some had the source for this, because DRI gave the GSX-80 driver sources to licensed vendors.
Ok. I am obliged to reveal some personal details. At the time of the microcomputer revolution, and especially the Amstrad invasion, I worked for the only Amstrad PCW magazine published in France. Since I was fluent in English, it is me who was doing all the translation of the software and manuals that were sold in France. I speak from experience when I say that we never had any source code from anybody, either Amstrad or DR England. Everything that we knew, we learned it from disassembly. It is then that I disassembled the BIOS of the Amstrad PCW, as mentioned several times on the comp.os.cpm Newsgroup, many years ago, and did my GSX-80 work, producing the FX-80 German printer driver.
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
2) the MP/M ones will not work.
Then, how comes that I was using the MP/M-II ZSID Version 2.5 debugger under CP/M Plus,
and disassembled it? I explained this at length in... 2007!
Because ZSID is from 1977 and so was available before any MP/M and so won't care about the OS.
This time, it is obvious that you have not read what I wrote!

A>zsid
ZSID VERS 1.4
#^C
A>zsid.prl
ZSID VERS 2.5
NEXT PC END
0100 0100 CEFF
#d0200,023F
0200: 01 D4 24 C3 3E 01 43 4F 50 59 52 49 47 48 54 20 ..$.COPYRIGHT
0210: 28 43 29 20 31 39 38 30 2C 20 44 49 47 49 54 41 (C) 1980, DIGITA
0220: 4C 20 52 45 53 45 41 52 43 48 20 20 20 20 20 20 L RESEARCH
0230: 5A 53 49 44 20 56 45 52 53 20 32 2E 35 24 31 00 ZSID VERS 2.5$1.
#^C
A>That's All, Folks!

Yours Sincerely,
Mr. Emmanuel Roche, France
Udo Munk
2015-03-22 09:36:01 UTC
Permalink
Post by Mr. Emmanuel Roche, France
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
Why did I disassemble several of them?
I have no idea, because the drivers were available in source form, commented
and understandable.
In 1985? Stop kidding! I am an Old Timer, me! At the time, I wrote to Digital Research
England: they told me that Amstrad had written the BIOS of the Amstrad micros. I then
wrote Amstrad Plc: they told me that DR England had written it...
Both GSX-80 versions that we have nowadays come from Amstrad systems and are incomplete.
I was asking for a complete DRI distribution years ago, here: http://comp.os.cpm.narkive.com/htEmFCGB/gsx-80-anyone

I wanted the disks I got 1983 from DRI, that had driver sources which allowed me to write
drivers for my not supported video hardware. Well, this complete distribution disks
seems to be lost nowadays, doesn't really matter because I still can write my own drivers.
Post by Mr. Emmanuel Roche, France
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
2) the MP/M ones will not work.
Then, how comes that I was using the MP/M-II ZSID Version 2.5 debugger under CP/M Plus,
and disassembled it? I explained this at length in... 2007!
Because ZSID is from 1977 and so was available before any MP/M and so won't care about the OS.
This time, it is obvious that you have not read what I wrote!
They did not check the OS version in zsid from 1977, and the did not check the OS version
in zsid from 1980. So it is one of the few PRLs that also run under CP/M Plus, most MP/M
programs, even pip, check if they are running under MP/M and so won't work under CP/M Plus.
Go figure.

Udo Munk
2015-03-21 20:09:34 UTC
Permalink
Post by Mr. Emmanuel Roche, France
I know: It is *ME* who published the only program dumping PRL files...
Something I also don't understand, because dump.prl that came with MP/M of
course is able to dump PRL files.
Alexandre MONTARON
2015-03-21 21:06:41 UTC
Permalink
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
I know: It is *ME* who published the only program dumping PRL files...
Something I also don't understand, because dump.prl that came with MP/M of
course is able to dump PRL files.
Should be dumping RSX .PRL files I suppose !
In particular, dumping header RSX file as Emmanuel show us.

And tools to see which RSX are actually loaded in memory ... (I suppose).

Unless it's something to dump the .PRL bitmap ? :-D

Alex.


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Udo Munk
2015-03-21 21:26:24 UTC
Permalink
Post by Alexandre MONTARON
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
I know: It is *ME* who published the only program dumping PRL files...
Something I also don't understand, because dump.prl that came with MP/M of
course is able to dump PRL files.
Should be dumping RSX .PRL files I suppose !
You can't attach a RSX to a PRL, at least not with any existing tool.
Post by Alexandre MONTARON
In particular, dumping header RSX file as Emmanuel show us.
There is a tools disk image at z80pack repository, that can dump all details
about RSX's attached to a COM file. The dumps are pretty long, so I don't
include one here, see your self.
Post by Alexandre MONTARON
And tools to see which RSX are actually loaded in memory ... (I suppose).
For that there is one not producing all the nasty details:

I>rsxmap
CP/M Version 3.1 TPA is 60672 bytes
==================================================
BIOS entry at FC00
BDOS entry at F600 and is 6 pages
RSX 1) is at F300 and is 3 pages named LOADER
RSX 2) is at EE00 and is 5 pages named HIST
==================================================
Post by Alexandre MONTARON
Unless it's something to dump the .PRL bitmap ? :-D
Why do I want a tool for that, the oldest dump programs not aware about the
relocation bitmap will do this, CP/M dump, ddt...
Alexandre MONTARON
2015-03-21 18:14:48 UTC
Permalink
In fact yes.

Emmanuel Roche was talking about CP/M+ not MP/M II. Here, you can run
either a .COM file or .PRL file. I think it appears not to be documented
anywhere. This is how you can load a RSX at top of memory (need a bit
more). But can also serve to run a .PRL MP/M file on a CP/M+ system.
I've tried a lot and very few works as they are all specific for MP/M !

Alex.
Post by Udo Munk
Post by Mr. Emmanuel Roche, France
3) Instead of typing FILENAME, you typed FILENAME.PRL and the PRL program is loaded by the CCP.
0A>sdir pip.*
Directory For Drive A: User 0
Name Bytes Recs Attributes Name Bytes Recs Attributes
------------ ------ ------ ------------ ------------ ------ ------ ------------
PIP COM 8k 58 Dir RW PIP PRL 10k 77 Sys RW
0A>pip.prl
Blnk file type rqd
0A>pip.com
Blnk file type rqd
0A>pip
MP/M II PIP VERSION 2.0
*
The MP/M user manual explains the details about search order.
Post by Mr. Emmanuel Roche, France
4) Under MP/M-II, all the standard CP/M utilities were provided in PRL form. Under CP/M Plus,
DIRLBL (DIR.COM), SUBRSX (SUBMIT.COM), LOADER (CCP.COM)). Loading them in an appropriate
order, I managed to load 3 RSXs in the TPA plus the CP/M Plus' CCP LOADER. I had a file showing
the "Headers" of those 4 RSXs in TPA, but it is still on my Epson QX-10 floppies...
Resident System Extension is something different than Page ReLocatable. Fortunately the z80pack
repository has 8" IBM disk images with all the RSX's and also a utility program to show informations
about the loaded RSX's.
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Udo Munk
2015-03-21 18:33:36 UTC
Permalink
Post by Alexandre MONTARON
In fact yes.
Emmanuel Roche was talking about CP/M+ not MP/M II. Here, you can run
either a .COM file or .PRL file. I think it appears not to be documented
anywhere. This is how you can load a RSX at top of memory (need a bit
more). But can also serve to run a .PRL MP/M file on a CP/M+ system.
I've tried a lot and very few works as they are all specific for MP/M !
Most MP/M programs check the OS version and won't run. It is documented
in the CP/M Plus programmers guide, but we didn't bother to run prl's under
CP/M Plus, because they would load at 100H anyway.
Alexandre MONTARON
2015-03-21 20:53:43 UTC
Permalink
Post by Udo Munk
Most MP/M programs check the OS version and won't run. It is documented
in the CP/M Plus programmers guide, but we didn't bother to run prl's under
CP/M Plus, because they would load at 100H anyway.
That's why I think it was even not documented. You're right but if
someone do a MP/M .PRL file which also run on CP/M (especially CP/M+
:-D) it will run on CP/M 3 without being forced to strip the header...

I've found one ... It's not very usefull I agree ...

---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Floppy Software
2015-03-21 19:37:42 UTC
Permalink
Just tested PIP.PRL in CP/M PLUS:

--quote--
Altair 8800 (Z80) simulator V3.9-0 build 1625 (scp created Feb 10 2013 at 09:37:
45 with gcc 4.2.4)

sim> do cpm3
Disk write-protected because the image contains compressed sectors. Use IMDU to
uncompress.

LDRBIOS3 v1.07 27-Jun-2010

CP/M V3.0 Loader V1.00 18-Jan-2002
Copyright (C) 1982, Digital Research

BNKBIOS3 SPR ED00 0A00
BNKBIOS3 SPR AD00 1300
RESBDOS3 SPR E700 0600
BNKBDOS3 SPR 7F00 2E00

57K TPA

BIOS3 Banked for SIMH Altair V-1.27, 4 HD, 02-May-2009


A>setdef [uk]

Date format used - UK

A>dir *.prl
No File
A>r c:\cpm\pip.prl

READ V-2.24 (12-Jun-10) SIMH Interface V004
Read from "C:\CPM\PIP.PRL" and write to "PIP.PRL".
9.625kB written.

A>pip.prl
MP/M II PIP VERSION 2.0

REQUIRES MP/M II
A>
--unquote--
Alexandre MONTARON
2015-03-21 20:46:10 UTC
Permalink
Post by Udo Munk
Oh, but there where no .prl files included with CP/M Plus and the MP/M ones
won't work.
Try "A>prlcom.prl prlcom" which translate prlcom.prl to prlcom.com under
CP/M+ ... This one works !

Alex.
Post by Udo Munk
A>pip.prl
MP/M II PIP VERSION 2.0
REQUIRES MP/M II
A>
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Continue reading on narkive:
Loading...