Issue 3 16k internal RAM mod

Discussions about Sinclair ZX80 and ZX81 Hardware
User avatar
1024MAK
Posts: 1859
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Issue 3 16k internal RAM mod

Post by 1024MAK » Fri Jul 21, 2017 12:11 pm

Of course, the next photo you post will be a photo showing it working :P - no pressure, much :lol:

Mark

Lardo Boffin
Posts: 699
Joined: Sat Nov 26, 2016 2:42 am

Re: Issue 3 16k internal RAM mod

Post by Lardo Boffin » Fri Jul 21, 2017 3:49 pm

That may take a while with so many pads to desolder, tracks to cut and wires to solder! :oops:
ZX81 iss 1 (bugged ROM, kludge fix, normal, kit)
Iss 3 with ZXVid, another in nearly perfect box
TS 1000 iss 3, ZXPand AY, ZX8-CCB & ZX-KDLX
TS 1500
TS 2000
Spectrum 16k (iss 1 s/n 1499)
Spectrum 48k
Toastrack + DIVMMC future

Lardo Boffin
Posts: 699
Joined: Sat Nov 26, 2016 2:42 am

Re: Issue 3 16k internal RAM mod

Post by Lardo Boffin » Sat Jul 22, 2017 12:33 am

Not quite finished as I ran out of time but

IC4 socket pads desoldered
Tracks cut and continuity tested
One wire attached (it looked easier to put it under the socket)
Socket soldered in

IMG_6439.JPG
(2.79 MiB) Downloaded 524 times

Only 5 wires to go and it is fingers crossed time!
ZX81 iss 1 (bugged ROM, kludge fix, normal, kit)
Iss 3 with ZXVid, another in nearly perfect box
TS 1000 iss 3, ZXPand AY, ZX8-CCB & ZX-KDLX
TS 1500
TS 2000
Spectrum 16k (iss 1 s/n 1499)
Spectrum 48k
Toastrack + DIVMMC future

Lardo Boffin
Posts: 699
Joined: Sat Nov 26, 2016 2:42 am

Re: Issue 3 16k internal RAM mod

Post by Lardo Boffin » Sun Jul 23, 2017 12:01 am

Underside finished-
IMG_6463.JPG
(2.76 MiB) Downloaded 505 times

Top side finished-

IMG_6462.JPG
(2.58 MiB) Downloaded 505 times

And running The Gauntlet!

IMG_6460.JPG
(4.11 MiB) Downloaded 505 times

I think that took about 2 hours in total. :?
ZX81 iss 1 (bugged ROM, kludge fix, normal, kit)
Iss 3 with ZXVid, another in nearly perfect box
TS 1000 iss 3, ZXPand AY, ZX8-CCB & ZX-KDLX
TS 1500
TS 2000
Spectrum 16k (iss 1 s/n 1499)
Spectrum 48k
Toastrack + DIVMMC future

Lardo Boffin
Posts: 699
Joined: Sat Nov 26, 2016 2:42 am

Re: Issue 3 16k internal RAM mod

Post by Lardo Boffin » Sun Jul 23, 2017 10:03 am

Does anyone know how the zeddy determines that it has 16k? I understand that the ROM does a check when reset etc. but how does it actually find out?

I guess where the question is leading is whether it is possible to mod the hardware such that a switch or similar could be fitted to change between 1k and 16k mode by fooling the ROM? Mostly in case there are programs that only run in 1k or you wish to test that a program will run on 1k in actual hardware.

Just a curious thought :)
ZX81 iss 1 (bugged ROM, kludge fix, normal, kit)
Iss 3 with ZXVid, another in nearly perfect box
TS 1000 iss 3, ZXPand AY, ZX8-CCB & ZX-KDLX
TS 1500
TS 2000
Spectrum 16k (iss 1 s/n 1499)
Spectrum 48k
Toastrack + DIVMMC future

User avatar
sirmorris
Posts: 2775
Joined: Thu May 08, 2008 5:45 pm
Location: oxon, uk

Re: Issue 3 16k internal RAM mod

Post by sirmorris » Sun Jul 23, 2017 10:09 am

Start reading at the label 'RAM-CHECK' ;)
--=== ZXpand+ ... A more moderner all-in-one upgrade solution for ZX81 ===--
* SD/MMC storage * 32K Hires-capable RAM * AY sound chip * Joystick port * Serial *
* BASIC enhancements - plug & play * Reset button * Auto-boot facility *

Moggy
Posts: 1549
Joined: Wed Jun 18, 2008 2:00 pm

Re: Issue 3 16k internal RAM mod

Post by Moggy » Sun Jul 23, 2017 1:08 pm

Excellent work there,Lardo nice one. :D

Lardo Boffin
Posts: 699
Joined: Sat Nov 26, 2016 2:42 am

Re: Issue 3 16k internal RAM mod

Post by Lardo Boffin » Sun Jul 23, 2017 11:07 pm

sirmorris wrote:
Sun Jul 23, 2017 10:09 am
Start reading at the label 'RAM-CHECK' ;)
Thanks SirMorris - that's certainly more interesting than the book on C# I had planned to read tonight!

The test is pretty simple then - if for whatever reason the 16k RAM 'stopped working' after the first K then presumably it would think it was a 1k computer and behave as such.

So the next question is for the hardware gurus - is it possible to cause this in hardware, i.e. allow only the first 1024 memory addresses to be written to based on a mechanical switch or similar?

Or if RAMTOP was altered by poking it would this have the effect of fooling the zeddy until the next reset? Although I strongly suspect there would be more to it than this!

Lardo
ZX81 iss 1 (bugged ROM, kludge fix, normal, kit)
Iss 3 with ZXVid, another in nearly perfect box
TS 1000 iss 3, ZXPand AY, ZX8-CCB & ZX-KDLX
TS 1500
TS 2000
Spectrum 16k (iss 1 s/n 1499)
Spectrum 48k
Toastrack + DIVMMC future

User avatar
1024MAK
Posts: 1859
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Issue 3 16k internal RAM mod

Post by 1024MAK » Mon Jul 24, 2017 10:29 am

It's alive :lol:

Well done Lardo 8-) :D

Funny, I posted about the RAM check in this post not long ago...

Yes, it is possible in hardware. If this was RAM controlled by your own address decoding circuitry, you just disable the RAM at all addresses other than the wanted area (and with the ZX81, of course being careful to allow a shadow/echo for the screen display). But if using the ULA's address decoding, that is not so easy. The alternative (that I need to think about some more) will be posted later maybe :|

For type in programs you can indeed POKE RAMTOP with a new value, then NEW, then type in your program.

For your own programs, you can do the same. In chapter 28 of the ZX81 BASIC Programming book (the one Sinclair supplied with ZX81s) it details which system variables are saved and hence loaded from tape. RAMTOP is NOT listed as being saved. So if you POKE it, and do a NEW before loading the program, if the program is just BASIC, or it uses RAMTOP to see the memory size, it should work okay.
This will not work if the program changes RAMTOP or ignores RAMTOP. Or even just assumes that everything above 1k (2k) of RAM is an echo :(

Mark

User avatar
gammaray
Posts: 378
Joined: Sun Apr 17, 2016 2:44 am
Location: Texas

Re: Issue 3 16k internal RAM mod

Post by gammaray » Wed Jul 26, 2017 3:11 am

Why not set the ROM to check for up to 32K? What problems arise?
0000 START OUT (+FD),A
LD BC,+7FFFBFFF
JP 03CB,RAM-CHECK
03CB RAM-CHECK LD H,B
LD L,C
LD A,+3F
03CF RAM-FILL LD (HL), +02
DEC HL
CP H
JR NZ,03CF,RAM-FILL
03D5 RAM-READ AND A
SBC HL,BC
ADD HL,BC
INC HL
JR NC,03E2,SET-TOP
DEC (HL)
JR Z,03E2,SET-TOP
DEC (HL)
JR Z,03D5,RAM-READ
03E2 SET-TOP LD (RAMTOP),HL
Last edited by gammaray on Thu Jul 27, 2017 1:32 am, edited 1 time in total.
Finish what you start. Truth is over the mountaintop or six feet under.
4 x TS1000, 2 x TS1500 , 2 x timex 2040 printer, 1/2 x timex 2020 cassette deck, ZXPAND+AY, ZeddyNET, ZXBlast..., unfinished Spectrum...Still no life!

Post Reply