Re: 6702 chip

From: Rhialto <rhialto_at_falu.nl>
Date: Mon, 28 May 2012 21:49:37 +0200
Message-ID: <20120528194937.GB11828@falu.nl>
On Mon 28 May 2012 at 10:36:55 +0000, William Levak wrote:
> 
> This looks like it could reproduce the output with one addition: a
> control register for the shift registers that turns individual shift
> registers on or off.  We know this control register exists because
> bits 3 and 5 are initially off and are turned on if the correct
> input is received.

Ah, but the "trick" here is that the shift registers for those output
bits initially have only zeros in them. So they'll never change the
output bit until a  1 is put in them. Which is done by providing a
changed input bit. (It turns out that setting "previous input bits" to
all zeros works fine.) The bit that is changed if the input changes is
the leftmost bit in the shift register (before it is shifted).

> In the case where the output for a bit is all 0 or all 1, the shift
> register is turned off.

because all bits in it are 0.

> This occurs when the corresponding bit of the input is changed and the
> current output of the shift register is high.

The output of the shift is wrapped around to the left, so if the input
changes at the right moment, the 1 which was wrapped around will be
toggled to a 0.

The same method can turn it on again later. And of course there can be
multiple 1s. If the number is odd, the second cycle of N bits will be
the inverse of the first one.

I've put the code into VICE and it works with the Waterloo software, so
I checked it in. As of revision 25635 you can try it out.
Tarball of the full VICE source:
http://vice-emu.svn.sourceforge.net/viewvc/vice-emu/trunk/?view=tar
or
svn co https://vice-emu.svn.sourceforge.net/svnroot/vice-emu/trunk vice-emu 


-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- There's no point being grown-up if you 
\X/ rhialto/at/xs4all.nl    -- can't be childish sometimes. -The 4th Doctor

       Message was sent through the cbm-hackers mailing list
Received on 2012-05-28 20:00:05

Archive generated by hypermail 2.2.0.