75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
|
# RC2014
|
||
|
|
||
|
The [RC2014][rc2014] is a nice and minimal z80 system that has the advantage
|
||
|
of being available in an assembly kit. Assembling it yourself involves quite a
|
||
|
bit of soldering due to the bus system. However, one very nice upside of that
|
||
|
bus system is that each component is isolated and simple.
|
||
|
|
||
|
The machine used in this recipe is the "Classic" RC2014 with an 8k ROM module
|
||
|
, 32k of RAM, a 7.3728Mhz clock and a serial I/O.
|
||
|
|
||
|
The ROM module being supplied in the assembly kit is an EPROM, not EEPROM, so
|
||
|
you can't install Collapse OS on it. You'll have to supply your own.
|
||
|
|
||
|
There are many options around to boot arbitrary sources. What was used in this
|
||
|
recipe was a AT28C64B EEPROM module. I chose it because it's compatible with
|
||
|
the 8k ROM module which is very convenient. If you do the same, however, don't
|
||
|
forget to set the A14 jumper to high because what is the A14 pin on the AT27
|
||
|
ROM module is the WE pin on the AT28! Setting the jumper high will keep is
|
||
|
disabled.
|
||
|
|
||
|
## Goal
|
||
|
|
||
|
Have the shell running and accessible through the Serial I/O.
|
||
|
|
||
|
## Pre-collapse
|
||
|
|
||
|
You'll need specialized tools to write data to the AT28 EEPROM. There seems to
|
||
|
be many devices around made to write in flash and EEPROM modules, but being in
|
||
|
a "understand everything" mindset, I [built my own][romwrite]. This is the
|
||
|
device I use in this recipe.
|
||
|
|
||
|
### Gathering parts
|
||
|
|
||
|
* `shell.asm` from `parts`
|
||
|
* [scas][scas]
|
||
|
* [romwrite][romwrite] and its specified dependencies
|
||
|
* [GNU screen][screen]
|
||
|
* A FTDI-to-TTL cable to connect to the Serial I/O module of the RC2014
|
||
|
|
||
|
### Build the image
|
||
|
|
||
|
We only have the shell to build, so it's rather straightforward:
|
||
|
|
||
|
scas -o rom.bin shell.asm
|
||
|
|
||
|
### Write to the ROM
|
||
|
|
||
|
Plug your romwrite atmega328 to your computer and identify the tty bound to it.
|
||
|
In my case (arduino uno), it's `/dev/ttyACM0`. Then:
|
||
|
|
||
|
screen /dev/ttyACM0 9600
|
||
|
CTRL-A + ":quit"
|
||
|
cat rom.bin | pv -L 10 > /dev/ttyACM0
|
||
|
|
||
|
See romwrite's README for details about these commands.
|
||
|
|
||
|
### Running
|
||
|
|
||
|
Put the AT28 in the ROM module, don't forget to set the A14 jumper high, then
|
||
|
power the thing up. Connect the FTDI-to-TTL cable to the Serial I/O module and
|
||
|
identify the tty bound to it (in my case, `/dev/ttyUSB0`). Then:
|
||
|
|
||
|
screen /dev/ttyUSB0 115200
|
||
|
|
||
|
Press the reset button on the RC2014 and you should see the Collapse OS prompt!
|
||
|
|
||
|
## Post-collapse
|
||
|
|
||
|
TODO
|
||
|
|
||
|
[rc2014]: https://rc2014.co.uk
|
||
|
[romwrite]: https://github.com/hsoft/romwrite
|
||
|
[scas]: https://github.com/KnightOS/scas
|
||
|
[screen]: https://www.gnu.org/software/screen/
|