White screen but no problem with Minerva?

Nagging hardware related question? Post here!
User avatar
llopis
ROM Dongle
Posts: 32
Joined: Tue Oct 27, 2020 12:07 pm
Contact:

White screen but no problem with Minerva?

Post by llopis »

Hi!

I'm repairing two QLs at the moment (bear with me, I'm very new to the QL). An Issue 5 and an Issue 6. Both of them show that dot pattern (RAM test I imagine) and one of them ends in a white screen and the other one in a green screen.

From what I read, that looks like a likely RAM issue. Since nothing was warming up and the busses looked fine, I decided to put the Minerva ROM because I read it also does a RAM test but actually prints information about failing chips if it detects any.

I ended up making a quick adaptor to put in a 27C512 with the Minerva ROM.
ql.jpg
In the Issue 5 with green screen, it reports some numbers (I still need to figure out how to map those back to ICs) for about 20 seconds, then it does the RAM test again all by itself and it looks like starts up. Is that the expected behavior? Weird that it can get that far with RAM problems.

The weird thing comes from the other board. I popped in the same Minerva ROM and... it just starts up correctly. Doesn't report any errors! Does that mean that the problem was with the original ROM then? That's a bit strange, although I suppose the test could also include a ROM checksum in addition to a RAM test. Anyone knows if that's the case?

Thanks!


martyn_hill
QL Wafer Drive
Posts: 1097
Joined: Sat Oct 25, 2014 9:53 am

Re: White screen but no problem with Minerva?

Post by martyn_hill »

Hi Noel!
In the Issue 5 with green screen, it reports some numbers (I still need to figure out how to map those back to ICs) for about 20 seconds, then it does the RAM test again all by itself and it looks like starts up. Is that the expected behavior? Weird that it can get that far with RAM problems.
Minerva takes the approach that, upon a RAM test failure, it will where possible reduce the 'RAMTOP' by (IIRC) 64KB and re-test to the lower level. Your observation looks like the error was detected in the upper memory block (the QL DRAM is effectively split in to 2x 64KB chunks across 2 lots of 8x 1bit DRAM ICs.)

There is a SuperBASIC utility available in the Minerva distribution that, assuming you can get the QL to at least boot successfully (or run it on a second working QL, having first recorded the RAM test report from the faulty unit), can be run to help you deduce which are the likely suspect DRAM ICs by entering the results that were shown on-screen after the first RAM test - before it then successfully rebooted to the lower RAMTOP.
The weird thing comes from the other board. I popped in the same Minerva ROM and... it just starts up correctly. Doesn't report any errors! Does that mean that the problem was with the original ROM then? That's a bit strange, although I suppose the test could also include a ROM checksum in addition to a RAM test. Anyone knows if that's the case?
I have observed changing ROM ICs to apparently correct a failed RAM test and whilst ROMs are pretty robust, it may indicate a faulty IC as you are thinking - possibly not releasing the data-bus when disabled between CPU accesses, though there are other theories that you'll read elsewhere on the forum.

Good luck!


User avatar
ajb
ROM Dongle
Posts: 49
Joined: Sat Oct 19, 2019 6:14 am
Location: W.Yorks

Re: White screen but no problem with Minerva?

Post by ajb »

There is also a web-based utility to decode the meaning of the minerva RAM report.

https://www.nightfallcrew.com/minervaram/index.php

HTH

Alan


User avatar
llopis
ROM Dongle
Posts: 32
Joined: Tue Oct 27, 2020 12:07 pm
Contact:

Re: White screen but no problem with Minerva?

Post by llopis »

Thanks to both of you!

I'm glad that the behavior I saw was consistent with what Minerva was supposed to do. And that web site will definitely come in handy. Bookmarking it now.

I'll have to experiment with the ROM. I guess next I'll burn an EPROM with the original ROMs and see if that starts up fine. If so then, I can definitely say it was the original ROM that web bad somehow (but good enough to run the tests, which is what bugs me).

I'll post back to let you know of any progress. Thanks again!


User avatar
dilwyn
Mr QL
Posts: 3114
Joined: Wed Dec 01, 2010 10:39 pm

Re: White screen but no problem with Minerva?

Post by dilwyn »

I think this is the original SuperBASIC program which that page refers to:

Code: Select all

100 REMark 1990 Dominic Brown
110 INK#1,7:PAPER#1,2
120 INK#0,4:PAPER#0,0
130 WINDOW#1,480,200,32,16
140 WINDOW#0,480,40,32,216
150 BORDER#1;1,0,7
160 FOR i=0 TO 1:CSIZE#i,1,0
170 DIM x(16),y(16),ram_chip(16)
180 DIM faulty_address$(20),go_again$(2)
190 RESTORE
200 true = 1
210 false = 0
220 FOR i = 1 TO 16:READ x(i),y(i)
230 REPeat MAIN_LOOP
240   PAPER 0
250   CLS:CLS#0
260   REPeat get_address_loop
270     INPUT#0,'Enter Address reported as faulty ';faulty_address$
280     IF faulty_address$<>''
290       faulty_address = DEC(faulty_address$)
300       IF faulty_address <> 1E9: EXIT get_address_loop
310       PR 2,'Invalid Character used in Hex try again!!!'
320     END IF
330   END REPeat get_address_loop
340   IF faulty_address > 262144
350     PR 7,'Faulty ram is in expansion memory!!!'
360   ELSE
370     d1$=get_data$("Enter first data value  >")
380     d2$=get_data$("Enter second data value >")
385     failmap=0
395     FOR i=1 TO 7 STEP 2:failmap=failmap||xorbyte(d1$(i TO i+1),d2$(i TO i+1))
450     hibank=8*(faulty_address>=196608)
455 PRINT #0;BIN$(failmap,8)
460     FOR i=1 TO 16:ram_chip(i) = false
470     mask%=128
480     FOR i=8 TO 1 STEP -1:IF failmap&&mask% THEN ram_chip(i+hibank) = true:bad_chip=i+hibank:END IF :mask%=mask%/2
490     FOR ic = 1 TO 16
500       IF ram_chip(ic) = true
510         block_colour = 2
520       ELSE
530         block_colour = 7
540       END IF
550       BLOCK 25,45,x(ic),y(ic),block_colour
560       CURSOR x(ic)+5,y(ic)+10
570       PRINT 'IC'
580       CURSOR x(ic)+5,y(ic)+20
590       PRINT ic
600     END FOR ic
610     PR 7,'The error has occured in IC'&bad_chip
620   END IF
630   PRINT#0,'Press Esc to Finish, any other key to continue '
640   go_again$=INKEY$(#0,-1)
650   IF go_again$ = CHR$(27): EXIT MAIN_LOOP
660 END REPeat MAIN_LOOP
670 STOP
680 :
690 DEFine FuNction get_data$(x$)
695   LOCal ans$
700   REPeat l
710     INPUT #0;(x$);ans$
740  REMark   IF res==1E9 THEN PRINT #0;'Invalid hex digit!':NEXT l
750     EXIT l
760   END REPeat l
770   ans$=FILL$('0',8)&ans$
780   ans$=ans$(LEN(ans$)-7 TO)
860   RETurn ans$
870 END DEFine
872 :
875 DEFine FuNction xorbyte(x$,y$)
877   RETurn DEC(x$)^^DEC(y$)
878 END DEFine
880 :
890 DEFine FuNction DEC(A$)
900   LOCal S,T,Q,valid_chr
910   LOCal valid_chr$(22)
920   T=0
930   valid_chr$ = '0123456789abcdef'
940   FOR Q=1 TO LEN(A$)
950     valid_chr=A$(Q) INSTR valid_chr$
960     IF valid_chr = false:EXIT Q
1000     T=T*16+valid_chr-1
1010   END FOR Q
1040   IF valid_chr = false:RETurn 1E9
1050   RETurn T
1060 END DEFine DEC
1070 :
1080 DEFine PROCedure PR(ink_colour,statement$)
1090   INK#0,ink_colour
1100   PRINT#0,statement$
1110   INK#0,4
1120 END DEFine PR
1130 DATA 90,40
1140 DATA 130,40
1150 DATA 170,40
1160 DATA 210,40
1170 DATA 250,40
1180 DATA 290,40
1190 DATA 330,40
1200 DATA 410,110
1210 DATA 90,110
1220 DATA 130,110
1230 DATA 170,110
1240 DATA 210,110
1250 DATA 250,110
1260 DATA 290,110
1270 DATA 330,110
1280 DATA 370,110


martyn_hill
QL Wafer Drive
Posts: 1097
Joined: Sat Oct 25, 2014 9:53 am

Re: White screen but no problem with Minerva?

Post by martyn_hill »

Hi again Noel!
If so then, I can definitely say it was the original ROM that web bad somehow (but good enough to run the tests, which is what bugs me).
My own thinking having observed this result myself before (RAM Test failure apparently corrected by replacing the ROM) goes like this:

During the QL initial start-up sequence until the end of the RAM test phase, the only interaction between the CPU and the rest of the hardware is:
a) Reading the ROM (ROMOE active, RD)
b) Writing to DRAM (ROMOE deactive, WR)
c) Reading from DRAM (ROMOE deactive, RD)
d) A few writes/reads to the ZX8301 display/DRAM controller registers

The second ULA (ZX8302) is not accessed until after the RAM test and on a basic QL, there isn't anything else directly connected to the CPU bus, so nothing else to interfere (yet).

If we assume that the DRAM and associated databus buffer/address multiplexors and the ZX8301 itself are all good - indicated by the fact that after replacing the ROM ICs with your EPROM board allows a successful start-up - and that the RAM test fails during the first phase (white-screen), then something is interfering with the ability to read-back the test values just written to DRAM.

If either of the two default ROM ICs fail to deactivate/make high-impedence their datalines between valid ROM access (when ROMOE is active), then it is conceivable that what the CPU is trying to write (and read-back) to DRAM is contending with whatever the ROM is currently holding on the databus.

Its just speculation, but sufficiently satisfied my curiosity when I first thought it through. Others on the forum with far greater reasoning skills than I may have a better explanation!

If you can be bothered, you could test this theory by replacing the ROM ICs from the Issue 6 (white-screen) in to the Issue-5 (green screen), and see whether the error moves from second phase (green) to first (white).


User avatar
llopis
ROM Dongle
Posts: 32
Joined: Tue Oct 27, 2020 12:07 pm
Contact:

Re: White screen but no problem with Minerva?

Post by llopis »

martyn_hill wrote:If we assume that the DRAM and associated databus buffer/address multiplexors and the ZX8301 itself are all good - indicated by the fact that after replacing the ROM ICs with your EPROM board allows a successful start-up - and that the RAM test fails during the first phase (white-screen), then something is interfering with the ability to read-back the test values just written to DRAM.

If either of the two default ROM ICs fail to deactivate/make high-impedence their datalines between valid ROM access (when ROMOE is active), then it is conceivable that what the CPU is trying to write (and read-back) to DRAM is contending with whatever the ROM is currently holding on the databus.

Its just speculation, but sufficiently satisfied my curiosity when I first thought it through. Others on the forum with far greater reasoning skills than I may have a better explanation!

If you can be bothered, you could test this theory by replacing the ROM ICs from the Issue 6 (white-screen) in to the Issue-5 (green screen), and see whether the error moves from second phase (green) to first (white).
That's interesting. When I first looked at the data bus there was nothing suspicious, but for this to happen it doesn't have to be constantly activated, it could be a timing issue.

I didn't know you could put ROMs from one issue in another! I'll definitely try that and report. Thanks!


User avatar
llopis
ROM Dongle
Posts: 32
Joined: Tue Oct 27, 2020 12:07 pm
Contact:

Re: White screen but no problem with Minerva?

Post by llopis »

All right, just a quick test: I moved the ROMs in the Issue 5 to the Issue 6 board and... same thing. Dot pattern and then white screen. So it's not the ROMs!

Just for grins I'm planning on burning a 27C512 EPROM with the ROMs that came in that computer and trying it. I don't expect it to work now though. It really feels like a RAM issue that Minerva is not detecting from my limited knowledge!

Oh I just realized something (which I'll confirm as soon as I fix the Issue 5 board): When Minerva starts up it says 64K on the bottom left corner. I suspect it should say 128K, right? So maybe the RAM is so bad that Minerva simply thinks there are only 64K and doesn't actually test the rest. If that's the case, what's likely to be faulty? How does the QL go about finding the maximum amount of available RAM? On the ZX Spectrum we used to write to an address and read back from it to see if that existed to detect 48K vs 16K.


User avatar
llopis
ROM Dongle
Posts: 32
Joined: Tue Oct 27, 2020 12:07 pm
Contact:

Re: White screen but no problem with Minerva?

Post by llopis »

Right. I seem to have confirmed my own theory: Once I repaired the faulty RAM IC on the Issue 5, Minerva starts up and reports 128K!

I'm off to find what could cause that. The multiplexors before the DRAM seem like a reasonable candidate. Or I suppose even the ULA that seems to be involved in memory mapping could cause that...


User avatar
llopis
ROM Dongle
Posts: 32
Joined: Tue Oct 27, 2020 12:07 pm
Contact:

Re: White screen but no problem with Minerva?

Post by llopis »

OK, replying to myself just in case someone else is interested in the future. All of this will be documented in a video I'll release probably next week anyway.

I was reading through the Minerva manual and it talks about starting the RAM test in different places and to try doing a reset a few times to get all the possibilities. So I tried that, and once every 10-15 times, it reports an error!

It turns out this error is at address 0x30000, which is a suspiciously round number. I wonder if that's the address that it writes to to detect the upper RAM? Completely guessing here. Anyway, that bit patter in that address apparently corresponds to IC15. I replaced it without much hope and... it turns out now it works reliably!

I'm glad but it's surprising that Minerva manages to confuse RAM errors with missing RAM. Oh well. I learned a lot along the way. Thanks again for your input! It was very useful.


Post Reply