RE: CBM's CP/M, Z-80 carts for the 64

From: Bil Herd <bherd_at_mercury-cg.com>
Date: Wed, 19 Dec 2012 16:26:21 -0500
Message-ID: <e3a57dbc58a2db1ec6c6b74d71e76932@mail.gmail.com>
I didn't recall that the quote in the book didn't mention the real reason
CPM carts didn't work in general, I might have dumbed down the answer to
how I sold the solution inside of CBM which is saving money gives a broad
license to implement remedies.  Claiming it never really worked on the C64
wouldn't fly either as it would have sounded like an excuse.

The biggest culprit in CPM cartridge design is that there are certain
times of some instructions where halting the Z80 via the clock stretching
mechanism results in the Z80 putting out a "non-logical" voltage through
the time/  I.E. they put out around 1-1.2v for an entire PHI cycle.  For
example some instructions were 3 clocks long and it was okay to halt the
clock between clocks 2 and 3 but not clocks 1 and 2. Some brands of
74LS257s would say that 1-1.2v was close enough to interpret as a "0" and
output a low voltage.  Other brands, one in particular, would go
metastable and actually oscillate or float the output in turn.  DRAMs hate
to see moving address lines when /RAS and /CAS make their transition,
internally they start to enable multiple rows/columns   that then collide
and this this collision causes corruption of DRAM contents in general.

So while it was known that TI 257's didn't work well (or Signetics I
forget which) everyone assumed it was speed when really it was how they
responded to 1-1.2v on their input for an extended time.

Also this was an "amplified" 1v, I.E. it wasn't a matter of just adding
stronger pullups, the internal bus of the Z80 was in a float condition
with the address buffers turned on.

That weird mishmash of gates that sits between the 650s and Z80, mostly
implemented by Frank Palaia, basically decoded the type of cycle that
would cause the problem and in that case would let one more clock go
through to the Z80 before stating the clock stretch.  Would like to have
done that jungle logic in a  PAL but the cost was prohibitive at the time.

Bil
-----Original Message-----
From: owner-cbm-hackers@musoftware.de
[mailto:owner-cbm-hackers@musoftware.de] On Behalf Of silverdr@wfmh.org.pl
Sent: Wednesday, December 19, 2012 4:09 PM
To: cbm-hackers@musoftware.de
Subject: Re: CBM's CP/M, Z-80 carts for the 64

> On 19/12/2012 12:47, silverdr@wfmh.org.pl wrote:
>> Do I recall correctly that those carts were unreliable / unstable?
Also, wikipedia states: [..] the cartridges only worked on early-model
C64s from 1982 and were incompatible with later units [..] What do the
authors mean there?

On 2012-12-19, at 14:35, didier derny wrote:
> I saw a few between 1984-1985...
> none really worked...
> in the best case it started and crashed after a few minutes...

On 2012-12-19, at 15:48, Craig Taylor wrote:
> I have been able to get the C64 CP/M cart working on a flat C128 (stock
powersupply / just as an experiment).   It ran reliably but I didn't spend
that much time with it due to the how _very_slow_ it was...

On 2012-12-19, at 16:11, Steve Gray wrote:
> I have one and it does work on the C64. I tested with a breadbin 64 but
I can't tell you how "early" the machine was.
> If anyone is REALLY TRUELY interested, I have lots of C64's I can test
on ;-)

On my wide (250425) board though I encountered the "best case" described
by didier. I was wondering whether my cart is broken or something. Then I
vaguely recalled a discussion about stability of the cart. I tried it on
the narrow board (according to some sources on which it should not work at
all) and it seemed to work. At least I could boot and issue some commands
for several minutes. And I still wonder what is the reason. Especially
that it seemed to work on the latest board. Maybe I should leave it
overnight..

-- 
SD!
       Message was sent through the cbm-hackers mailing list

       Message was sent through the cbm-hackers mailing list
Received on 2012-12-19 22:00:36

Archive generated by hypermail 2.2.0.