White screen but no problem with Minerva?
White screen but no problem with Minerva?
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.
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!
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.
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!
My videos: https://www.youtube.com/NoelsRetroLab
-
- QL Wafer Drive
- Posts: 1097
- Joined: Sat Oct 25, 2014 9:53 am
Re: White screen but no problem with Minerva?
Hi Noel!
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.
Good luck!
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.)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.
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.
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.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?
Good luck!
Re: White screen but no problem with Minerva?
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
https://www.nightfallcrew.com/minervaram/index.php
HTH
Alan
Re: White screen but no problem with Minerva?
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!
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!
My videos: https://www.youtube.com/NoelsRetroLab
Re: White screen but no problem with Minerva?
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
--
All things QL - https://dilwyn.theqlforum.com
All things QL - https://dilwyn.theqlforum.com
-
- QL Wafer Drive
- Posts: 1097
- Joined: Sat Oct 25, 2014 9:53 am
Re: White screen but no problem with Minerva?
Hi again Noel!
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).
My own thinking having observed this result myself before (RAM Test failure apparently corrected by replacing the ROM) goes like this: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).
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).
Re: White screen but no problem with Minerva?
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.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).
I didn't know you could put ROMs from one issue in another! I'll definitely try that and report. Thanks!
My videos: https://www.youtube.com/NoelsRetroLab
Re: White screen but no problem with Minerva?
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.
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.
My videos: https://www.youtube.com/NoelsRetroLab
Re: White screen but no problem with Minerva?
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...
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...
My videos: https://www.youtube.com/NoelsRetroLab
Re: White screen but no problem with Minerva?
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.
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.
My videos: https://www.youtube.com/NoelsRetroLab