View Single Post
Old 26th Sep 2022, 2:10 pm   #86
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,560
Default Re: 1978 Commodore PET project

That's a better result than I dared hope for with a meter.

To amplify what Mark said earlier in the thread, the operating system starts by filling the display memory with 20 (hex), which is the character code for blank / space. It then goes on to write a few other bits of text in the upper left area, the Commodore BASIC and Bytes Free messages.

As mentioned earlier, unlike most RAM, the display memory chips are selected 100% of the time and they are held in read mode for almost all of the time while the display hardware runs continually through all of the screen memory addresses.

What this means is that, if the display memory really does mostly contain 20 (hex) or 0010 0000 (Binary), then the average voltages being output by the display memory SD0-SD7 bus should look like this:

SD0 UF8 Pin 14 = 0.22 = '0'
SD1 UF8 pin 13 = 0.21 = '0'
SD2 UF8 pin 12 = 0.03 = '0'
SD3 UF8 pin 11 = 0.04 = '0'
SD4 UF7 pin 14 = 1.11 = '0'
SD5 UF7 pin 13 = 3.62 = '1'
SD6 UF7 pin 12 = 0.03 = '0'
SD7 UF7 pin 11 = 0.03 = '0'

Turning those binary digits 90 degrees to the right, we get 0010 0000 binary, or 20 hex.

So what this suggests to us is that (a) the CPU is successfully writing the value 20 hex to most of the screen locations initially, then (b), the screen RAM also outputs the correct values when it is being scanned by the display hardware.

However, instead of the expected blanks / spaces across the screen, you are instead getting a screen mostly full of '0'.

The difference between the codes for those two characters is:

Space =
0010 0000
'0' =
0011 0000

We can verify this again by looking at a few of the other characters, for example the first three on the screen should be
'###' = 0010 0011
but instead they are
'333' = 0011 0011

And there again we can see that the fifth bit in from the right is '1' when it should be '0'.

Somewhere between the output of the display RAMs and the video output, the state of the fifth bit from the right is being changed from a '0' to a '1'.

The next items in the chain after the display RAM outputs are the video latch UF9 and the character generator ROM UF10.

Could you now measure the voltages on these pins... this time you will be jumping all over the IC to get to the next pin so be careful to make the measurements on the right pin numbers.

UF9 pin 2
UF9 pin 19
UF9 pin 5
UF9 pin 16
UF9 pin 6
UF9 pin 15
UF9 pin 9
UF9 pin 12
SiriusHardware is offline