I've searched for information about what the hell does it do to the
console. Nothing. Last week, I used a logic analyzer to try to find
out what's hapenning with it.
My findings were documented in this thread (spanish forum, sorry, you
can try Google for an automatic translation):
http://amstradcpc.mforos.com/305097/7723493-que-hace-exactamente-el-chip-acid-de-los-cartuchos/?pag=5
To make short a long history, what I found it's that the ACID,
somehow, controls acess to memory (RAM or mapped ASIC registers) for
reading operations.
If you try to run a program from a cartridge, and the ACID is not
present, you will be able to read from EPROM, execute from EPROM, read/
write to any I/O port (like the 8255, the AY-8912, or the gate array),
and write to any RAM position, whether it's true RAM memory, or ASIC
memory mapped registers that control the new palette, or the hardware
sprites.
But you won't be able to read whatever you wrote into memory. If
trying to read from a valid position within the block ocupped by the
ASIC registers, you will given &7E as a result. No matter what address
in the range &4000-&7FFF you read.
If trying to read from screen memory, you will get &B0 as the value
returned. The read cycle performs well in RAM, and RAM returns the
right result, but this result is blocked into the ASIC and all Z80
gets is &B0.
Bypassing the ASIC to get read access to RAM directly from the Z80 is
not a difficult task. I documented a FSM that could be implemented in
a GAL, that could detect valid RAM reads and connect the data bus of
the Z80 to the data bus of DRAM only for that access. But it's
impossible to do the same if you want to read whatever you wrote in
any of the memory mapped registers held inside the ASIC.
So I'm looking for any clues you guys would have found. As
circumventing the ACID is not a solution, the only thing left is
deciphering its behaviour. To me, SIN and CCLR are mostly unknown
signals. I can see the evolution of SIN (I think it's an output signal
from the ACID) but don't see any recognizable pattern. As for CCLR,
when the ACID is present, it's just a 5 volt. fixed value (although if
you watch it under an oscilloscope, you can see how it "tries" to go
to zero, but "something" fforces it again to be 5 volts again. If you
take away the ACID, the CCLR signal is a negative pulse that last a
whole CLK4 period, and repeats every 18 clock cycles.
Thanks for theses finding , as i am planning to create cartridge game
i am pretty interested.I'll keep an eye on this ;)
Glad people like you exist tho'
World would be a very sad place without the eccentrics..;-)
Oh & good luck but don't forget...can't use self modifying code on
cartridges..
"fano" <fano.aka.mainb...@gmail.com> wrote in message
news:efce96f1-0c8f-4624...@v25g2000yqk.googlegroups.com...