- daveho.github.io (unfinished)
- wandel.ca (documentation of older project)
- kiwi that's a really adorable project!
v0.2 address decoder |
This allows the first 32k of RAM to be accessed with short addressing as well as the slow I/O address range, but not the fast I/O range:
- %xxxxxxxx,xxxx00xx,xxxxxxxx,xxxxxxxx selects RAM and
%00000000,00000000,0xxxxxxx,xxxxxxxx is a possible subset of this which fit's in a signed word. - %xxxxxxxx,xxxx01xx,xxxxxxxx,xxxxxxxx selects ROM and can never be accessed with short addressing.
- %xxxxxxxx,xxxx11xx,xxxxxxxx,xxxxxxxx selects slow I/O and
%11111111,11111111,1xxxxxxx,xxxxxxxx is a possible subset of this which fit's in a signed word as a negative value. - %xxxxxxxx,xxxx10xx,xxxxxxxx,xxxxxxxx selects fast I/O and can never be accessed with short addressing.
v0.3 address decoder |
Now the memory map is as follows:
- %xxxxxxxx,xxxx00xx,xxxxxxxx,xxxxxxxx selects RAM and
%00000000,00000000,0xxxxxxx,xxxxxxxx is a short addressable subset. - %xxxxxxxx,xxxx01xx,xxxxxxxx,xxxxxxxx selects ROM (no short addressable subset).
- %xxxxxxxx,xxxx1xxx,x1xxxxxx,xxxxxxxx selects slow I/O and
%11111111,11111111,11xxxxxx,xxxxxxxx is a short addressable subset. - %xxxxxxxx,xxxx1xxx,x0xxxxxx,xxxxxxxx selects fast I/O and
%11111111,11111111,10xxxxxx,xxxxxxxx is a short addressable subset.
Funny Note
Actually this second 2-to-4 line decoder could be replaced entirely by one NAND gate: !FAST_IO is not used anywhere (actually it is currently used to reset the INIT line, but this could have been !SLOW_IO as well) and !SLOW_IO becomes low when A14 and A19 are both high, so, yes, that's a NAND function. The NAND gate would even be faster (the 74HCT139 is pretty slow) but – i don't have a spare NAND gate, but i had a spare 2-to-4 line decoder. :-)
No comments:
Post a Comment