Attachment:
MOUSE_PCB_alive.JPG [ 399.13 KiB | Viewed 1211 times ]
Hello,
after a whole day of debugging I found two missing connections on the PCB that were not reported by KiCad during the final check. The first one was between R/W and the read-write logic. It was a missing segment of the path from the CPU pin to the 74HC00. This caused the /READ and /WRITE lines to oscillate with the speed of PHI2. No matter what code was executed.
The second one was the small connection from the VCC pin (nr. 28) and the /WE pin (nr. 27) for pulling the write line to 5V on the EEPROM. That caused the write line floating with interesting results.
I tested the circuit with a real simple code and my Saleae logic analyzer.
Code:
.org $e000 ;start of ROM
start:
jmp start
.advance $fffa
.word start ; NMI vector
.word start ; RESET vector
.word start ; IRQ vector
With a fresh programmed EEPROM all the adress-logic and address -lines looked good, but after some time strange things happened on the bus. Suddenly there were chipselects on the ACIA and the other two IO selects without any representation in the code. After a reset all these things happened directly after the start. Looking at the EEPROM showed changed data. So I came to check the pullup of the /WE line.
This was some sort of code modifying hardware. It also compromised the content of the EEPROM of the breadboard version that I used to verify that the EEPROM is not defective. At the end I had two dead computers and thought about finding an analog hobby
But after a break I set down and started checking everthing part by part and reprogrammed the EEPROMS for both machines. That brought the breadboard version back to live as well as my trust in my engineering skills.
With the second finding all the strange things became explainable and by connecting the both pins on the EEPROM socket the problem was fixed and MOUSE started up as expected.
Thanks to all the kind people in this forum that spent their time to help nerds like me. What started as a dream and idea about thirty years ago is now a working piece of hardware in my desk.