mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-10 02:28:06 +11:00
7001446212
Recipes contain bits and pieces of hardware-related knowledge, but these bits feel sparse. I've been wanting to consolidate hardware- related documentation for a while, but always fell at odds with the recipes organisation. We don't have recipes anymore, just a /doc/hw section that contains hardware-related documentation which often translate to precise instructions to run Collapse OS on a specific machine. With this new organisation, I hope to end up with a better, more solid documentation.
43 lines
1.6 KiB
Plaintext
43 lines
1.6 KiB
Plaintext
# Writing to a AT28 from Collapse OS
|
|
|
|
# Gathering parts
|
|
|
|
* A RC2014 Classic
|
|
* An extra AT28C64B
|
|
* 1x 40106 inverter gates
|
|
* Proto board, RC2014 header pins, wires, IC sockets, etc.
|
|
|
|
# Building the EEPROM holder
|
|
|
|
The AT28 is SRAM compatible so you could use a RAM module for
|
|
it. However, there is only one RAM module with the Classic
|
|
version of the RC2014 and we need it to run Collapse OS.
|
|
|
|
You could probably use the 64K RAM module for this purpose, but
|
|
I don't have one and I haven't tried it. For this recipe, I
|
|
built my own module which is the same as the regular ROM module
|
|
but with WR wired and geared for address range 0x2000-0x3fff.
|
|
|
|
If you're tempted by the idea of hacking your existing RC2014
|
|
ROM module by wiring WR and write directly to the range
|
|
0x0000-0x1fff while running it, be aware that it's not that
|
|
easy. I was also tempted by this idea, tried it, but on bootup,
|
|
it seems that some random WR triggers happen and it corrupts the
|
|
EEPROM contents. Theoretically, we could go around that by
|
|
putting the AT28 in write protection mode, but I preferred
|
|
building my own module.
|
|
|
|
I don't think you need a schematic. It's really simple.
|
|
|
|
# Writing contents to the AT28
|
|
|
|
There is an AT28! writer word in B400 which is A!-compatible
|
|
(see "Addressed devices" in doc/usage.txt) and and waits until
|
|
the write is complete before returning. If you use C! directly,
|
|
bytes you write might not have the time to completely write
|
|
themselves before you write another one.
|
|
|
|
To use, set A! with "' AT28! ' A! **!". Once this is done, you
|
|
can use MOVE, or /tools/upload, both will call A! and do the
|
|
right thing. Unset A! with "' C! ' A! **!" afterwards.
|