The Zilog Z80 is an incredible microprocessor. It dominated desktop and embedded systems from its introduction in 1976 and was the first open-source microprocessor.
Harley, a retired electronics engineer from Oregon has been working with Tom to emulate the Z80 for quite some time. The first design- back in the late 80′s was implemented entirely in TTL. 3 separate boards were required to emulate the display/keypad, control logic, and pod logic. Slowly, the TTL logic has been replaced by hobby microprocessors. At first the 12 ICâs responsible for the display/keypad was replaced by a single PIC microcontroller. More recently, a pair of Parallax Propellers has replaced the 55 TTL components responsible for the control logic.
Obviously, emulating the control logic for the Z80 is challenging- numerous signals need to be routed and accurate timing is critical.
Before Viewport, Harley relied on a 5″ b/w monitor, an Oscilloscope and even a Logic State Analyzer to debug the software responsible for the control logic. He used the b/w monitor display status information from the emulated Z80. The Oscilloscope and LSA were used to analyze signals going to and from the Propellers.
This setup worked- but was not ideal. Changing the information shown on the monitor was very time consuming- and of course only the latest values were shown. Wiring up handfuls of LSA probes also wasn’t easy- or safe. Documenting measurements from traditional scopes and LSA’s is also not easy. Lastly- a tv monitor, an oscilloscope, and an LSA and their required equipment take up bench space, consume energy, and are expensive.
Harley has now integrated Viewport and the 20 Mhz option of the QuickSample plugin into the programs running on both Propellers to replace the monitor, the oscilloscope, and the logic state analyzer.
Viewport’s QuickSample technology allows Harley to view all 32 bits of the Propeller’s IO port at any timescale he needs- up to 20Mhz, giving a top resolution of 50ns. These measurements are taken in a separate cog on the Propeller- while the Propeller is executing the Control Logic program. From within Viewport, Harley is able to trigger on different bits, change the timescale, and share his measurements by simply copying and pasting his result into emails or Word documents.
Viewportâs interface lets Harley see the LSA bit traces and the value of several variables from the program. When Harley wants to view information from other variables they’re just a click away. The status variables can also be graphed over time to show how variables change as an emulated program executes.
Harley has also taken advantage of Viewport’s ability to edit variables- while the program is running. This lets him change the control logic’s configuration on the fly.
Harley’s Viewport-enhanced setup is now much leaner and allows him to debug his Control Logic more efficiently
“Before Viewport, I had trouble programming and debugging the Propellers for a Z80 emulator design- it was difficult for me to see what was happening inside- there is only so much a blinking LED can tell you. Now, I can see AND edit variables in my program and also watch what’s happening on the 32 IO lines at high speed with NO wires!”