issue on a Z80 based board - Page 1
Forum section: electronics / general

author: enriven
author_rank: Newbie
timestamp: April 22, 2022, 10:33:34 am
content: greetings to all, I would like to expose a problem on a z80 based card that I'm attempting to repair.The board was initially able to show a value of 000 on the 7-seg. display, without recognizing any command.Within a few days, however, it completely stopped working.I got the schematic for myself and the display is governed by the PIO which appears to be no longer initialized by the CPU.First concern:I tried to read the eprom and I'm attaching the result. Given that I'm not an expert, I cannot understand if it is a mistake that I find the first lines of code starting from address 4000 and not from 0.My suspicions fall on the eprom which seems to be losing parts of the program, which is really strange.many thanks to all

author: PA0PBZ
author_rank: Super Contributor
timestamp: April 22, 2022, 10:43:21 am
content: If A14 is indeed floating like in the diagram then it will be high so A0-A13 will address 4000-7FFF in the EPROM and your dump makes sense.Why it is not working is hard to say from here, the best approach would be to check the address and data lines with a scope and see if there is activity and if the levels are normal.

author: retiredfeline
author_rank: Frequent Contributor
timestamp: April 22, 2022, 11:00:25 am
content: I wonder if the schematic has a mistake re A14 and it's actually tied to ground or Vcc. Can you check the trace on the EPROM's A14? The 74LS138 decoder indicates that EPROM is allocated the 16k region 0000-3FFF, while the 27256 EPROM has 32k capacity. I expect this is correct as the reset and interrupt vectors are at the start of memory. The region 4000-3FFF is allocated to the EEPROM. How did you infer the 4000 in the dump? Did you remove the EPROM from the socket and read it? Did you run it through a tool like ghidra?Edit: If A14 is tied to Vcc then the dump makes sense, they are using only the top half of the EPROM.The display card appears to be a simple multipliexed circuit. You should be able to test it separately with an Arduino or similar.

author: lintweaker
author_rank: Contributor
timestamp: April 23, 2022, 09:04:00 am
content: My guess would be, that indeed, A14 of the EPROM needs to be tied to GND. The Z80 executes code from 0000h. Looking at the first few bytes:Code:F3 DIC3 5F 01 JP 015Fhit want to run this code in the 0000-3fffh region.

author: PA0PBZ
author_rank: Super Contributor
timestamp: April 23, 2022, 10:09:19 am
content: Quote from: lintweaker on April 23, 2022, 09:04:00 amBut since the code starts at 4000H in the EPROM A14 shouldnotbe tied to GND!

author: enriven
author_rank: Newbie
timestamp: April 23, 2022, 11:51:58 am
content: Thanks guys, I checked and you were right A14 is linked to 1 along with Vpp.I think the display has no problem working, but it is not initialized. Looking at the input signals to the shift register there is no activity.The voltages and electrical levels all seem normal to me. I'm using an old HP1662 logic analyzer to check bus activity and there seems to be life.Since I have not done any work on the circuit since I started the checks and its functions have deteriorated over time, I am afraid that his memory is degrading. (I hope not and that there is an electrical problem)Currently I have tried to replace the CPU, PIO and IC10, but nothing has changed.Another test that I tried is to re-read the eprom and observing the result with the first reading it seems to me that some bytes are different.I am attaching the two dumps in .HEX format if you are curious.My next step is to retrieve a new eprom and try to rewrite it. (I will buy it soon)I am also attaching the other pages of the diagram I have drawn, but expect more errors

author: enriven
author_rank: Newbie
timestamp: April 23, 2022, 11:54:19 am
content: I have checked several times and it is at 5V

author: retiredfeline
author_rank: Frequent Contributor
timestamp: April 23, 2022, 12:01:11 pm
content: Try to disassemble the code in the top half of the EPROM. If the disassembler spits out patches of garbage, then the EPROM is losing it. Where will you get a correct binary for the EPROM? Do you have another board you can get the binary off?

author: enriven
author_rank: Newbie
timestamp: April 24, 2022, 07:34:17 am
content: unfortunately I don't have another machine to retrieve the code from.This is an old wheel balancing device and is not so popular