Re: Article PC-card

From: Marko Mäkelä (
Date: 2001-02-22 13:33:55

On Thu, 22 Feb 2001, Ruud Baltissen wrote:

> IOCHCK is an active (L) signal meant to signal the PC that there is a memory
> parity error. On the end this signal triggers the NMI-input of the CPU. As
> so we can use the NMI-input of the expansionport.

Or ignore the signal.  In original PCs, the only NMI source was memory
parity error.  Usually the BIOS would report something like "PARITY CHK 1"
and halt upon receiving an NMI.  I don't know the current sitation; at
least, parity bits are not so common on desktop machines.  High-end
servers might use error-correcting memory (with some Hamming code) and not
report parity errors at all.

> IOCHRDY signals the CPU that the card needs more time for whatever it is
> doing. This is realised by holding the CPU. The 6510 has such a feature as
> well but the problem is that the corresponding input can be found at the
> expansionport. To be honest, I never saw a card having this line. I did not
> use this line.

"input can be found"?  Probably you meant "can't".  But there is such an
input: the DMA signal (active low) will stop the CPU.  The Commodore RAM
Expansion Unit uses this signal to block the CPU during transfers.  It
also monitors the BA (Bus Available) output from the video chip and
suspends transfers during bad lines (character and colour code fetches).

> A PC-card uses 20 addresslines but the C64 only has 16. And to make it
> worse, we only have a range of 512 free to use for our own purposes. In 1988
> I hacked my C64 by de-mirroring the VIC and SID, freeing 1.5 KB. I used 512
> bytes for my interface. Why only 512? To remain compatible with users who
> didn't want to hack their C64. The idea was to use 256 bytes for the swap
> area and to reserve a part of the other 256 bytes for I/O.

You could also use free VIC and SID addresses.  The last VIC-IIe register
is at $d030, isn't it?  You could decode and use $d031-$d03f for your own
purposes.  You distinguish the mirrored areas from each other
($d071-$d07f, $d0b1-$d0bf and so on until $d3f1-$d3ff), you get more
registers. Of course, forming this kind of addresses is complicated both
in software and hardware.


This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.