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 listReceived on 2012-05-28 20:00:05
Archive generated by hypermail 2.2.0.