In theory
you could replace the boot ROM (desolder the 8041, read
its
contents, and burn an 8741 with the new boot image. Or even an 8742,
if you wanted more than 256 bytes of boot program). In the 9512 it
would be even easier, because the corresponding microcontroller used
an external ROM.
Hmmm. Tony seems to think that the boot code resided in the
ASIC,
but that would have been the difficult way to go about it.
That is what I was told
by one of the designers at Amstrad.
Using the 8041 as a boot ROM would be problematic IMHO. There could be
code i nthere to preset the boot ROM bytes one at a time on a noraml read
cycle I suppose -- i nfact that could eb why the PROG pin is conencted to
a signal o nteh SIC alled NBOOT. Readign the ROM directly involves
overvoltaging one of the 8041 pins, I can't eee the circuitry to do that.
That would be insane as 8041 was a 1Kb (code space) embedded micro with
and trivial IO port designed as a intelligent IO device. Boot code there
I agree. I don't believe (at hte moment, I am open to evidence) that the
Amstrad PCW bootstrap code is i nthe pritner controller.
would have to be small and the main system would still
need a boot to get
the code out as the 8041 could not be a bus master
(it could be a DMA target/source).
I thought for a momnen that perhaps the Z80 wasn't involved in booting
the mahcine, and that hardwired logic in the gae array set up the FDC,
read i na sector, and wrote the data to RAM. After all, the FDC and the
system DRAM are both connected to the gate array.
But I don't think that can happen. The problem is that the A) input
(register select) and the CS/ input (conencted to A7 fo the Z80 address
bus) are both conencted to the Z80 address lines. While those lines are
lso conencted to the gate array, there doesn't seem to be any way for
force the Z80 to 3-state them, sicne the gate array doesn't drive the
BUSRQ/ signal.
So it looks like the Z80 must run bootstrap code that sets up the FDC,
reads a secotr, and writes it to RAM. That's a fairly simple program, and
it could easily be done with hardwired logic simulating a ROM inside that
gate array. I would think that would be a lot easier than trying to run
code stored in an 8041 ROM.
One can be creative but that seems like the hard way to get things done and
every system I've seen that has the 8041 used all the code space to do more
useful things (printers, keyboard scanning or IO for examples).
SSure. The PCW uses an 8041 (maybe an 8042, all I have is the Amstrad
part number) to control the standard dot-matrix printer. This chip sits o
nthe Z80 bus, the port liens go to the printer conenctor. The pritner
itslf is essentaiall jsut driver cirucits.
The main parts o nthe lgoic board of the PCW are : Z80A processor, a
custom gate array chip, 256K or 512K DRAM, a 765 FDC chipop and data
separator and this pritner controller 8041. The gate array handles DRAM
timing and refresh, video genreation, the serial interfave to the
keyboard (clock + data line, the keyboarsd has an 8048 or something in
it), etc. And I believe it contains the boot code.
-tony