(11-05-2022, 01:01 AM)CheshireNoir Wrote: someone, are you suspecting CHARRAM may be the issue? The system isn't booting to any of those strings by default. I get a "no video synch" state. They only appear after I press RESET. Once they appear, the system doesn't do any more and the graphics seem to flicker like crazy.
Just stipulating that this particular Memory Test is reliant upon working CHAR RAM and is a possible cause until discounted.
Some signs of life is a good thing!
The CPU is able to configure the CRTC & write some strings correctly.
However the preceding clear screen seems to have failed.
(Note: The continual flickering on the screen is probably due to the CPU continuously accessing the Video memory).
Just for you info the screen should look like this:
Your photos indicate that the CLS clear screen routine is probably writing corrupted bytes writing '(' [0x28] instead of ' ' [0x20] for the LDIR being used to do so.
i.e unwantedly setting bit 3.
So you'll need to find its root cause.
Here's some information that may help you:
As a part of the CLS routine, the ROM writes a space character to the CHAR RAM at beginning of (left corner) of the CHAR RAM and then performs an LDIR to fill the remainder of the screen. It appears the initial LDI read from the CHAR RAM is reading back a 0x28 instead of 0x20 thus filling the screen with the wrong value from that point onwards.
Assuming that CHAR RAM writes are working correctly and the LDIR is commencing at the correct source address, it could be the CPU reading from CHAR RAM may be problematic.
It's possible the CHAR RAM is fine (because the strings are being displayed correctly) but the associated data transceiver (IC11) has a broken bit 3.
This could also explain why the microbee goes haywire because the Test ROM uses the CHAR RAM as its stack storage space and is reading some wrong values (with bit 3 being set).
Tracking down the source of the unwanted value would be a good start.
Writing your own temporary Test Case ROM is a viable option because it requires no modifications to your Bee.
If you do so, try to use code that doesn't rely upon the stack or other stored variables.
This is the beauty of the Z80 over the 6502 because it doesn't need working RAM to operate.
As for the initial POJ, you'll have to sort that out too. At least you've got your keyboard reset working to execute the ROM program.
