Data bus on the Z80 processor is 8 bits wide. Data bus wires carrying information within the chip itself do not simply connect to package pins and out to the world - the gate circuitry of each bit is quite complex. This article presents a transistor level schematic of a data bit’s gate which I reverse-engineered from a die photograph. ...continue reading "The Anatomy of a Z80 Gate"
After reading excellent Ken Shirriff's blog on reverse-engineering parts of the Z80 CPU, I decided to learn how to decipher some of the chip die-shots myself. It turns out not to be that difficult if you follow certain guidance which I will describe in this post. ...continue reading "Z80 Instruction Register deciphered"
In my previous post I described an Arduino dongle and the software that can be used to clock a Z80 CPU and dump states of its buses and pins while executing a controlled set of test cases.
Here I show a trace of every single Z80 instruction as run by that setup. I also outlined some of the tests created manually that clarified few situations which were not too obvious (to me) after reading various pieces of documentation.
If you want to find out exactly what a venerable Z80 is doing on its bus while executing instructions, in this post I outlined a dongle and the software that will let you see that. Using just a few components and connecting them to an Arduino Mega, you can trace instructions clock by clock and observe what's happening on the bus. ...continue reading "Arduino and ZiLOG Z80"
This set of short articles will show you a making of a PCB, from the initial requirement stage, through the design and manufacture and to final software programming.
If you are new to PCB making, I am hoping this text should paint some basic picture of what is involved in a home board design and manufacture. If you are already an experienced hobbyist, I hope you will find some parts informative or interesting enough to try them yourself on your next project. If you see anything wrong, or have a better way of doing it, please post it in a comment. I will appreciate learning from you and sharing the experience!
This is a step of looking for an idea or the purpose of what a board should be doing. You will likely know what you need and then build a suitable board. I needed to build something useful so I can look forward to it once it was done: I wanted to be able to interact with it but also use parts that I already have at home. ...continue reading "PCB Making: 2. Get Started"
The software I use to create board schematics and layouts is Eagle CAD.
Software-wise, I also use git version control: I frequently version and commit all changes to project files and then upload them to a cloud server. I like GitHub and BitBucket servers which are free. My suggestion is to always version your work and to always backs it up. ...continue reading "PCB Making: 3. Schematics"
When you switch to Eagle’s layout editor, all the components are going to be grouped together in a corner. Yellow lines (“airwires”) will connect pins. A good way to start untangling that mess is to separate and group components that belong to each design block. For example, the power block contains 7805 and a couple of caps and connectors or terminals. Then you can move them around as groups and play with the placement to get a feel of where they would fit on the final board. ...continue reading "PCB Making: 4. Layout"
Before placing (expensive) transparency into a laser printer, I do several test prints using a regular paper.
When you print a transparency mask always invert the TOP layer so that the ink die is close to a board when sandwiched and the thicknesses of a transparency foil is not in the way => print with MIRROR option checked.
TOP: select (1) Top, (17) Pads, (18) Vias, (20) Dimension and MIRROR option
BOTTOM: select (2) Bottom, (17) Pads, (18) Vias, (20) Dimension. Do not print with MIRROR.