Z80 board reverse engineer

Skip to first unread message

Les Bird

Oct 31, 2022, 8:18:39 PM10/31/22
Hi all,

Anyone have any tips on reverse engineering a Z80 based board without any schematics? I have a ROM dump of the board and I know what chips are on it but trying to figure out what ports go to what chips. What are good methods for figuring out port numbers to chips? Also no access to a debug terminal (that I now of) where I can output to ports and check results.

The board has a NEC 765 disk controller, a couple Intel 8275 CRT controllers, a SMC CRT8021 CRT attribute controller, 256K of RAM and 4K of video RAM and a few other chips.

Thanks for any help.

For context I won an old iTek Graphix computer on eBay with a low bid and as a side project would like to turn it into a CP/M machine by rewriting the ROM (2764 EPROM) and then building a CP/M BIOS for it.


Douglas Miller

Oct 31, 2022, 8:41:50 PM10/31/22
to se...@googlegroups.com

What I've done in the past is do a basic disassembly of the ROM (try to identify code vs. data as much as possible), and then look through the code for various input/output instructions. If you know what peripheral chips are being used, you can usually determine what the I/O instructions are doing and work outward to identify routines. Of course, you need to have ready access to the chip datasheets and a high-level understanding of how they work. And it helps if you've seen code that uses those chips before (makes it easier to identify routines). That's how I'd approach it, at least.

You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/cf42c22a-9e03-4251-b3ad-d8e3d03c14fdn%40googlegroups.com.

Joseph Travis

Oct 31, 2022, 8:42:28 PM10/31/22
to se...@googlegroups.com
I frequently dealt with similar issues in the past and wrote a program that would read all I/O ports, 0-FFh.  More often than not, when hardware is present it will return a value other than 00h (or FFh depending on the bus).  It doesn't tell you what it is but, gives you a starting point.  Good luck!

Joe Travis n6ypc

Les Bird

Oct 31, 2022, 9:49:41 PM10/31/22
Douglas, yes I've disassembled the ROM code and identified some of the in/out ports that are in use. Also, I downloaded all of the data sheets for the chips so my first idea is exactly as you outlined, try to identify the chip ports by looking at the data being sent to them. Hopefully I can find commands that are recognizable and match the chip to the port. But, wasn't sure if there was a better way to approach this. Sounds like I was on the right track so I'll keep going this direction to see what I can figure out.

I also ordered an EEPROM emulator on eBay so I can plug it into the ROM socket and write small code to output commands to ports and see what works. The disk drives will probably be easy to find as I can just write a "select" command to a port until the drives activate.

Thanks for the tips guys, I'll keep exploring.

Reply all
Reply to author
0 new messages