Right then, I'm having difficulties compiling the updated pettester ROM. Ead, is there any chance you can post the latest binary file and I'll add in the crt code to that?
In my patch, I mistakingly used his first version which I think only tested RAM with a $55 pattern which does not exercise data lines in both states.
You're right, using the out-dated pettester code has hidden a problem with the RAM.
I have written a simple bit of code to write the following values to the 1st 1K of RAM and then re-read it all and output it to the display RAM:
0000-00FF = 1
0100-01FF = 2
0200-02FF = 3
0300-03FF = 4
And have seen there is most definitely something wrong with the RAM, this is a screenshot from an emulator:
http://www.magicappstore.com/pet/ram-test-emu.jpg
And from my broken 8032:
http://www.magicappstore.com/pet/ram-test-8032.jpg
As you can see the values that get written to the upper 1K end up going in the lower part in this strange pattern. I'm not sure what this means, I guess there's a problem with the address lines on the RAM?
As I mentioned earlier in this thread I've tested all the RAM chips in a working ZX Spectrum (which uses them for the display RAM) and they all checkout fine. I'll double check them again though. Out of curiosity, what is the minimum amount of RAM you need in a PET? Just 1 4116 in UA4 and the rest empty which would give it 2KB?
I thought it was too good to be true when this 8032 seemed to pass the original pettester with no problems!
Although a good indicator, you can't assume that for certain. Reading only the first 240 bytes only tests the lower 8 address lines. A better approach is to checksum the entire rom.
Yep, good point, I'll certainly do some sort of checksum function to test the ROMs fully, but since I've found this RAM problem I'll get that sorted first.
What I was thinking was an even simpler power-off check: turn off the machine, put your VOM into "continuity test" mode
Yep I will give this a try now, I guess with the RAM problem I have now found that there may well be an issue with the address lines somewhere.