Re: HP-41CY emulation for NoV-64 (also for Halfnuts) Message #5 Posted by Diego Diaz on 26 Sept 2010, 10:33 a.m., in response to message #4 by J-F Garnier
Hi J-F,
In fact it wasn't.
There were two points in my previous code for NoV-64CY which caused the Halfnuts to fail.
The first one was a Phi2 sincronization on puse #32. Apparently, Halfnuts processor generates a slightly larger Phi clock pulse width. Which eventually causes its falling edge being erroneously detected generating a sinchro-glitch. From this point ahead the whole thing crashes.
The second one (may also be related to Phi pulses width) was detected after fixing the first. It looks like Halfnuts are a bit more critical regarding DATA and ISA timing.
So the new code needs to makes sure that both lines (when driven by the NoV-64) keep the appropriate level (H or L) along the whole Phase (from Phi2 rising edge to next Phi2 r.e.).
Coconuts are just "happy" if they find the correct level at Phi1 rising edge.
On my previous projects (Clonix, NoVRAM...) these lines were driven from Ph2 to Ph2 so they work as expected both with Coconuts and Halfnuts. But since I had to replicate the "RAM shadowing" feature of the CY I wrote a new output routine which shorten the presence of the ISA and DATA signals between pulses. Which, in the end, causes the failure.
The bug was fixed once the routine was recoded to allow both: RAM shadowing and signal presence along the whole phase length.
As usual things are far more easy when one goes down to the bit level... :-)
Best wishes.
Diego.
|