Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

New Amstrad PCW cold boot sequence?

263 views
Skip to first unread message

dr_...@ntlworld.com

unread,
Oct 18, 2017, 9:57:09 AM10/18/17
to
Hi

The Amstrad PCW cold boot sequence is a bit odd. There is no boot ROM inside the machine to load up the CP/M Plus boot sector, as documented here: https://www.chiark.greenend.org.uk/~jacobn/cpm/pcwboot.html

Instead, the machine starts up in a special mode whereby memory reads are serviced by the printer controller chip, and this contains a short program to copy the boot code to RAM for execution. As a result, it does not look possible to amend it to boot from any device other than the first floppy disk. Yet we know that at least one manufacturer managed this feat; the Cirtech GEM drive, a hard disk for the PCW, was bootable.

So the question is: how does the Gem drive work, and can we work out a way to replicate it?

The reason I ask is that since I already produced an IDE card for the PCW, I would like to make it directly bootable, bypassing the A: drive entirely.

Cheers
JonB

Udo Munk

unread,
Oct 18, 2017, 12:30:25 PM10/18/17
to
I guess you cannot modify the code in the printer controller.
A work arround would be a disk in drive A with boot code that
won't load the OS from A, but instead loads boot code from some
other drive, which then boots the OS from that.

Mr. Emmanuel Roche, France

unread,
Oct 18, 2017, 1:14:17 PM10/18/17
to
"Dr. Zee" wrote:

> The Amstrad PCW cold boot sequence is a bit odd. There is no boot ROM inside the machine to load up the CP/M Plus boot sector (...)
>
> Instead, the machine starts up in a special mode whereby memory reads are serviced by the printer controller chip (...)

I had never seen this Web page before, and I no longer have a PCW (20 years). I write from memory. Contrary to what you write, there is a ROM. Except that it contains only half the "cold boot loader". "They" (at the time, when I was writing them, Amstrad was telling me that it was Locomotive who wrote the BIOS, and Locomotive was telling me that it was Amstrad...) used the few bytes available in the printer controller chip to contain the beginning of the cold boot loader. Since it could not display an error message, they had the idea of displaying lines on the screen. This way, you count the number of lines appearing on the screen when booting, and you know where the error happened. Once the first part is done, it loads the remaining code from the first track of the floppy. Which starts with a table describing the characteristics of the disk, just to make it harder to disassemble it... Once you understand that the cold boot loader is in 2 separate places, it is standard Zilog Z-80 stuff.

This way, the Amstrad micros (CPC6128 and PCW8256) do not use the standard CP/M Plus LOADER, as explained in the "System Guide". If you want to follow the official doc (this way, no need to write your own doc), follow the "System Guide" (now, GENCPM is available. Don't forget COPYSYS.). (If you are English, John Elliott may help you.)

Since I am talking about the PCW, its problem was its cheapo plastic construction. At the time, I saw several keyboards destroyed by "office ladies" who were used to real keyboards. This and its too small A drive were its disadvantages. But it was a "best-seller" in Europe, and 8 millions were sold there. When Europeans are talking about CP/M Plus, chances are that they are thinking about the PCW.

If you are into electronics, let me finish by mentioning one of its greatest advantage. Since it had only 5 "Integrated Circuits", it was ridiculously simple. And Amstrad was famous for making good mass-market products, so its power supply could digest many bad electric lines.

Since the PCW was so simple, Amstrad was selling a "Diagnostic Tool" named "R.P.3" in the "Service Manual", but named "Test PCB" on itself.

http://www.computinghistory.org.uk/det/31263/Amstrad-PCW8256-Test-PCB/

It contains 2 ROMS. When you swith the current, you have a menu on the screen, then you can test interactively all the components of the PCW (it can format a "test floppy").

If you are into electronics, I would suggest first disassembling those 2 ROMs. They will give you an idea how to access the hardware of the PCW.

Yours Sincerely,
Mr. Emmanuel Roche, France

dr_...@ntlworld.com

unread,
Oct 19, 2017, 2:10:57 AM10/19/17
to
On Wednesday, October 18, 2017 at 6:14:17 PM UTC+1, Mr. Emmanuel Roche, France wrote:
> "Dr. Zee" wrote:
>
> > The Amstrad PCW cold boot sequence is a bit odd. There is no boot ROM inside the machine to load up the CP/M Plus boot sector (...)
> >
> > Instead, the machine starts up in a special mode whereby memory reads are serviced by the printer controller chip (...)
>
> I had never seen this Web page before, and I no longer have a PCW (20 years). I write from memory. Contrary to what you write, there is a ROM.

Perhaps I should have been more specific. I meant that it has no discreet ROM chip that you can pull out and replace with something to boot from a hard disk. Instead, as I said before, it loads a minimal boot from the printer controller's (internal) ROM, and some of the code appears to be derived by the controller chip rather than copied directly from its internal ROM, according to the write up I linked to.

> Except that it contains only half the "cold boot loader". "They" (at the time, when I was writing them, Amstrad was telling me that it was Locomotive who wrote the BIOS, and Locomotive was telling me that it was Amstrad...) used the few bytes available in the printer controller chip to contain the beginning of the cold boot loader. Since it could not display an error message, they had the idea of displaying lines on the screen. This way, you count the number of lines appearing on the screen when booting, and you know where the error happened.

You may recall it also beeped a number of times if an error occurred. I thought that the lines merely indicated the progress of the EMS file loading. Do you have any description of the errors indicated by the line count?

> Once the first part is done, it loads the remaining code from the first track of the floppy. Which starts with a table describing the characteristics of the disk, just to make it harder to disassemble it... Once you understand that the cold boot loader is in 2 separate places, it is standard Zilog Z-80 stuff.

Ah, OK. That's useful to know. I think the disk characteristic table is already documented, so I should be able to work that bit out.

> This way, the Amstrad micros (CPC6128 and PCW8256) do not use the standard CP/M Plus LOADER, as explained in the "System Guide". If you want to follow the official doc (this way, no need to write your own doc), follow the "System Guide" (now, GENCPM is available. Don't forget COPYSYS.). (If you are English, John Elliott may help you.)

Yes, I have already contacted John.

> If you are into electronics, let me finish by mentioning one of its greatest advantage. Since it had only 5 "Integrated Circuits", it was ridiculously simple. And Amstrad was famous for making good mass-market products, so its power supply could digest many bad electric lines.

I don't consider it simple as it contains a gate array chip that is custom and opaque. It may be simple in terms of construction, number of ICs, etc, but it is atypical in its approach - as you alluded to when you mentioned the CP/M boot loader.

> Since the PCW was so simple, Amstrad was selling a "Diagnostic Tool" named "R.P.3" in the "Service Manual", but named "Test PCB" on itself.
>
> http://www.computinghistory.org.uk/det/31263/Amstrad-PCW8256-Test-PCB/
>
> It contains 2 ROMS. When you switch the current, you have a menu on the screen, then you can test interactively all the components of the PCW (it can format a "test floppy").
>
> If you are into electronics, I would suggest first disassembling those 2 ROMs. They will give you an idea how to access the hardware of the PCW.

I would need to get a dump of the ROMs. Do you have a copy? Something is going on there that prevents the printer controller from taking control of the data bus at start up. It will be implemented by the other ICs on the diagnostic card (rather than in the ROMs). That mechanism is what I need to understand.

Regards
JonB

dr_...@ntlworld.com

unread,
Oct 19, 2017, 2:12:58 AM10/19/17
to
Yes, that would improve the speed of the boot but will not eliminate the A: drive. Booting from an alternative device is possible (it's been done before), it is just a matter of finding out how it is done.
0 new messages