View Single Post
Old 4th Apr 2021, 10:19 pm   #1313
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,440
Default Re: Non-working Commodore PET 3016

Quote:
Originally Posted by Slothie View Post
My diagnostic ROM does the following:
1) Writes characters $FF (Checkerboard) to $20 (Space) to every screen location, to clear the screen and also show something on the screen. This takes about 5 seconds as noted and leaves the screen blank.
2) Checks memory locations $00-$FF by writing $55 and $AA to them and making sure they read back correctly. These patterns are chosen because they will reveal stuck, shorted or broken bits.
3) If 2 fails, displays the "Zero page error" message and then sits in a jump loop, so the processor should just be fetching instructions continually and not doing much else.
>>
>>
I intend to add other features including a better memory test that shows which blocks have been checked, and what the actual and expected values are when a test fails. I just need to write a non-interrupt version of the keyboard scan so options can be selected. Like an option to keep testing a "bad" block of memory so signals can be traced.
>>
>>

2) You need at least the first 0.75K to be working for the diagnostic to complete, although you will get a message if the ZP or Stack memory fails.

Comments/Suggestions always welcome.
I did wonder if showing the actual fail location would be useful, although if it's in zero page / stack it will be confined to a pair of 2114's anyway. However, displaying what is being written / the data being read back, should hopefully help in identifying which Lower / Upper nibble of the 2114's is at fault rather than having to take a 50:50 guess of which to remove / replace if both haven't failed.

Other Sinclair / Commodore etc. diagnostic ROM's will tell you IC number, but with so many different PET boards, then that's probably not too practical. Although I have also seen some using bars in the border to indicate which Databits are faulty.
So may be able to do something similar to indicate where fault is if screen RAM isn't entirely working and there's no audio beep feedback available. May also be able to pulse some user port etc. lines to indicate this.


Regarding the screen error message now mostly changing to different characters, that looks more like the screen memory has gone a bit faulty (or the character generator ROM - assuming this is using one - has connections to it a bit intermittent). As if there was a problem with the Data pins on the diagnostic EPROM socket, then the code wouldn't run on the 6502 correctly.

Last edited by ortek_service; 4th Apr 2021 at 10:26 pm.
ortek_service is offline