The software: here
Note: This is the very first attempt to make it work. In this scheme the
interface and software are attached to port 16h (same port as CF interface),
but after the initital release I put it on port 8, and all the future software, starting with 2321 release works with
it. So instead of U5:13 connect it to U5:14 and reassemble the given source
(or just use loader_debug.hex from release files)
The results: at least, SD answers properly to "GO IDLE STATE" command (in the moment
of initial writing; currently it works with CP/M)
The note: by a strange reason, Z84C0006 (CMOS one) did not hear open collector (yes, inverted) input (at least in my
scheme), SHARP LH0080A does. That was because I had no pull-up resistors
(4.7k) on data bus. Install them!
And I used 1K resistors instead of 680 ohm resistors mentioned on scheme - I
had no 680 resistors around.
Testing
it all: Plug off SD/MMC, load basic, say OUT 16,0 Repeat OUT 16,7 and OUT 16,
anything and check for triggers Then, shorten data out line to
ground and PRINT INP(16) Lower bit should be 1 (this is
an inverted data) Leave data NC or plug it somewhere to +5 and
repeat, you should get lower bit 0. If it does not, change CMOS CPU
to NMOS.... install pull-up resistors on data bus!
As for CF interface, yes, it was very
hard to solder it, and ONCE it even loaded, but I mostly got a strange
hang after reading sector $38 (I wrote a debug program showing me how
does it loads). I've tried to change all the logic chips to HCT, make my
wires shorter - same result.
UPD 20130108: The purpose of the
led (that should be a RED led) is to drop voltage from +5 to somewhere
from +2.8 to 3.3. I saw this recipe in inet, but I do not remember where.
Note: before CS goes down, this led may not be turned on.