Spectrum 48K Upper Ram Fault

hatman72
Posts: 14
Joined: Fri Feb 12, 2021 12:59 am

Spectrum 48K Upper Ram Fault

Post by hatman72 »

Hi all. This is my first post and I’m hoping to get some advice on tracking down what appears to be an upper RAM fault on a rubber key Issue 2 Spectrum 48K.

I recently bought it non-working off EBay. I had to replace the keyboard membrane and after that it started, but in 16K mode. Using Poke and Peek commands I was able to identify an issue with IC20, so replaced it. Now it comes back fine when doing the same pokes and peeks, but still starts in 16K mode, and I’m a bit confused as to why.

I have run a memory test on Spectrum Test 3 which comes back as:
This Spectrum has faulty memory
Location 8000
With 00 entered, reads - 00
With FF entered, reads - FF

If I run PRINT PEEK 23732 + PEEK 23733 * 256 it returns 32775

Is anybody able to suggest any possible causes or where I can go from here?

Thanks!
User avatar
Tiger
Posts: 26
Joined: Tue Sep 01, 2020 10:37 am

Re: Spectrum 48K Upper Ram Fault

Post by Tiger »

Perfect - you really got an probably faulty Speccy 👍 For the upper RAM fault it is possible that one or more of the IC15-IC22 are damaged. The best solution is to replace all with new RAM's which must all be of the same type. The other way is to swap them one by one and look if the value of the "PRINT PEEK"-command changes. So you can find the faulty IC(s). The technical manual explains this method:
Table 1 : RAM check procedures
The following routine will isolate a fault at one address of the RAM:
(1) Enter the following: PRINT PEEK 23732 + 256 * PEEK 23733
(2) If the result if other than 65535 or 32767 (16k version) there's a fault.
(3) Add one to the faulty result. Let's say it was 54321.
POKE 54322,85 (Enter) then:
PRINT PEEK 54322 (Enter)
Use your result +1 in place of the example quoted above.
(4) If the answer returned is 85, repeat steps 3 using 170 instead of 85.
(5) One of the answers should differ from the 85 or 170 entered. Provided there is only one faulty ic at the address, Table 2 will indicate which one it is. Find the line with the wrong data bit then refer to IC6-13 if the address is below 32768 or IC15-22 if the address is above 32768.
(6) Repeat step 1 after the repair to ensure that there isn't another fault.
Table 2 : Identifying the faulty chip
Wrong answer obtained from procedure given in Table 1
Wrong data bit Defective chip 16k Defective chip 32k
84 or 171 0 IC6 IC15
87 or 168 1 IC7 IC16
81 or 174 2 IC8 IC17
93 or 162 3 IC9 IC18
69 or 186 4 IC10 IC19
117 or 138 5 IC11 IC20
21 or 234 6 IC12 IC21
213 or 4 7 IC13 IC22
gozzo
Posts: 450
Joined: Fri Jul 08, 2011 8:52 pm

Re: Spectrum 48K Upper Ram Fault

Post by gozzo »

easiest replacement for the upper rams is a 4164 or equivalent, noting that it 'may' have to be a 128 cyle refresh type, not 256 as some are.? dunno if 256 cycles types work ok or not?? anyone??? may depend on the ram type link settings ..
hatman72
Posts: 14
Joined: Fri Feb 12, 2021 12:59 am

Re: Spectrum 48K Upper Ram Fault

Post by hatman72 »

Tiger wrote: Sat Feb 13, 2021 1:18 am Perfect - you really got an probably faulty Speccy 👍 For the upper RAM fault it is possible that one or more of the IC15-IC22 are damaged. The best solution is to replace all with new RAM's which must all be of the same type. The other way is to swap them one by one and look if the value of the "PRINT PEEK"-command changes. So you can find the faulty IC(s). The technical manual explains this method:
Table 1 : RAM check procedures
The following routine will isolate a fault at one address of the RAM:
(1) Enter the following: PRINT PEEK 23732 + 256 * PEEK 23733
(2) If the result if other than 65535 or 32767 (16k version) there's a fault.
(3) Add one to the faulty result. Let's say it was 54321.
POKE 54322,85 (Enter) then:
PRINT PEEK 54322 (Enter)
Use your result +1 in place of the example quoted above.
(4) If the answer returned is 85, repeat steps 3 using 170 instead of 85.
(5) One of the answers should differ from the 85 or 170 entered. Provided there is only one faulty ic at the address, Table 2 will indicate which one it is. Find the line with the wrong data bit then refer to IC6-13 if the address is below 32768 or IC15-22 if the address is above 32768.
(6) Repeat step 1 after the repair to ensure that there isn't another fault.
Table 2 : Identifying the faulty chip
Wrong answer obtained from procedure given in Table 1
Wrong data bit Defective chip 16k Defective chip 32k
84 or 171 0 IC6 IC15
87 or 168 1 IC7 IC16
81 or 174 2 IC8 IC17
93 or 162 3 IC9 IC18
69 or 186 4 IC10 IC19
117 or 138 5 IC11 IC20
21 or 234 6 IC12 IC21
213 or 4 7 IC13 IC22
Thanks Tiger, that is the procedure I followed to identify the faulty chip. But since I replaced IC20 I’m not getting any bad results. But when I run the command in step 1 I only get 32775. But when I poke 32776 it always returns the correct number when I peek; I have tried 0, 85, 170 & 255. That is why I’m confused.
User avatar
Tiger
Posts: 26
Joined: Tue Sep 01, 2020 10:37 am

Re: Spectrum 48K Upper Ram Fault

Post by Tiger »

@gozzo - you can also use 256-RAM's. I'd fixed some Speccys with NEC D41256C, OKI M41256A (always the same refresh cycle) without any problems. ;)
User avatar
1024MAK
Posts: 3592
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Spectrum 48K Upper Ram Fault

Post by 1024MAK »

Try my quick ‘n simple RAM test:

48K ZX Spectrum quick ‘n simple RAM test
1 CLEAR 24999
2 FOR a=25000 TO 65535 STEP 250
3 PRINT AT 0,0;a: POKE a,0: LET d=PEEK a: IF d<>0 THEN GO SUB 8
4 POKE a,255: LET d=PEEK a: IF d<>255 THEN GO SUB 8
5 NEXT a
6 PRINT “done”: STOP
8 PRINT “error at “;a;” “;d
9 RETURN

Please note that in order to make it quick it only sample tests, it does not test every memory location.

Mark
hatman72
Posts: 14
Joined: Fri Feb 12, 2021 12:59 am

Re: Spectrum 48K Upper Ram Fault

Post by hatman72 »

1024MAK wrote: Sat Feb 13, 2021 12:17 pm Try my quick ‘n simple RAM test:

48K ZX Spectrum quick ‘n simple RAM test
1 CLEAR 24999
2 FOR a=25000 TO 65535 STEP 250
3 PRINT AT 0,0;a: POKE a,0: LET d=PEEK a: IF d<>0 THEN GO SUB 8
4 POKE a,255: LET d=PEEK a: IF d<>255 THEN GO SUB 8
5 NEXT a
6 PRINT “done”: STOP
8 PRINT “error at “;a;” “;d
9 RETURN

Please note that in order to make it quick it only sample tests, it does not test every memory location.

Mark
Thanks Mark, I have been running that as I found it on another thread on this forum. It keeps coming back clear. I even changed the step to 1 to see if that would make a difference - it just took a long time to complete. Is there a better way to make it more thorough?
The ram check when the spectrum is turned on is short and clearly it decides it’s running as 16K, and the ram check from the program I am using (from that same thread) states there is a problem, but doesn’t give me any clues as to where.
User avatar
1024MAK
Posts: 3592
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Spectrum 48K Upper Ram Fault

Post by 1024MAK »

Assuming you are not already running the ZX Spectrum diagnostic software, give that a go. It’s mainly intended to run from a test ROM, but there is also a cut down version that can be loaded from “tape”. Here’s a link to the site. The tape version is here.

Mark
User avatar
Tiger
Posts: 26
Joined: Tue Sep 01, 2020 10:37 am

Re: Spectrum 48K Upper Ram Fault

Post by Tiger »

@hatman72 I think the answer is in the second sentence of point 5 in Table 1: "Provided there is only one faulty ic at the address". I think there is more than one of the IC's out of order so the PEEK's and POKE's are not very helpful. A other problem I've found on some Speccy's are "perfect" soldered IC-sockets. Sometimes there are PCB-wires brocken or connected by very talented technicians... :evil:
hatman72
Posts: 14
Joined: Fri Feb 12, 2021 12:59 am

Re: Spectrum 48K Upper Ram Fault

Post by hatman72 »

Thanks guys, the memory test on that diagnostics software is reporting failures on the March and Random tests. It is saying that IC15 and IC16 need to be checked. They both seem to be connected properly so I’m going to need to replace them and see what happens after that.

I will report back when I have had a chance to do that.
Post Reply