ZX 16K RAM expansion explained

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ค. 2024
  • We do a deep dive into the inner workings of the 16K RAM expansion module.
    This is a bridge video between the ZX80/81 series and the ZX Spectrum series under development.

ความคิดเห็น • 57

  • @DrMattRegan
    @DrMattRegan  7 หลายเดือนก่อน +3

    I just want to clarify that the design is essentially a ZX80 with a ZX81 ROM and ZX81 NMI modification (for slow mode). The details of the ULA aren't that well known.

  • @h7qvi
    @h7qvi 7 หลายเดือนก่อน +2

    Excellent explanation of early dram refreshing

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +2

      Glad you liked it! Thanks for the feedback.

  • @stuc8446
    @stuc8446 7 หลายเดือนก่อน +6

    Very interesting video. One observation - ULA did not stand for Unified Logic Array but Uncommitted Logic Array.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +3

      Yeah, i caught that in post processing, but didn;t want to re-record the audio, i probably should have clarrified it with a comment.
      I called it an Uncommited Logic Array in previous videos, but i've heard it referred to as both.
      That said, i think uncommitted is the correct name.

    • @peterhemmings2929
      @peterhemmings2929 7 หลายเดือนก่อน

      So it's just a bunch of mixed logic gates on a single chip, and you wire them up however you want for your product?

    • @talideon
      @talideon 7 หลายเดือนก่อน

      ​@@peterhemmings2929ULAs were a similar technology to FPGAs and CPLDs today, but whereas the latter two are programmable, ULAs still require a chip foundry that can deposit and etch the connections. That's why they went into decline. These days it's much more typical to use FPGAs for low runs and prototypes and to use FPGA to ASIC conversion services for larger runs.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +1

      Yeah, i think the top layer orfmetal can be modified by the user, so they only need to pay for 1 mask. All the other layers of silicon are fixed.
      I was loosely involved in a project in the 1990s where we were using something similar - poor mans ASIC.

  • @nutsnproud6932
    @nutsnproud6932 7 หลายเดือนก่อน +1

    I used to work at a computer repair shop and lashed up an internal 16K ZX81 upgrade with cheap 1K SRAMs "dead bug style" leads splayed out with verro wire. Total 17K. Extra 1K for the tape copier program!

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      Yeah, i wish they'd used it as a programmable character set like the VIC-20, would have made games easier.

  • @axelBr1
    @axelBr1 7 หลายเดือนก่อน +4

    I had a ZX81 but couldn't afford the 16k RAM extension. I knew of the difference between S-RAM and D-RAM and that the Z80, (Z80 fanboy here) had refresh circuitry for D-RAM chips but no idea how it or other forms for refresh circuitry worked.
    I had no idea about the Z80's D-RAM refresh cycle being hijacked to perform the video output, will have to go through the video again to try and understand what they are doing. It's humbling when you can barely understand a design and learn of engineers who understand it so well they know how to abuse it to achieve something even more complex.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +1

      You might want to have a look at this series, th-cam.com/play/PLjQDRjQfW-84WG47-5UjPz1BrXxc1acvd.html
      I go over the video circuit starting with a bare Z80 and an EPROM.

    • @axelBr1
      @axelBr1 7 หลายเดือนก่อน

      @@DrMattRegan Thanks. TH-cam only just recommended your channel to me, so haven't had a chance to check out all your videos yet.
      As a teenager I had dreams of making a Z80 based computer, but I wasn't focused enough to do it, so I'm going to enjoy doing it vicariously through your channel.

    • @melkiorwiseman5234
      @melkiorwiseman5234 6 หลายเดือนก่อน +1

      People these days can't understand just how horrendously expensive RAM was "back in the day." That was the primary reason why early computers shipped with so little RAM by default. Only fairly well-off people could afford to add more RAM, and computers with 1K, 4K or occasionally 16K of RAM were the most common.
      Around the time that RAM was becoming affordable at long last, the IBM PC came out and its capacity for 640K of RAM combined with the reduced price of RAM eventually killed off all the computers with smaller RAM sizes, especially once other manufacturers started making "IBM Compatibles" at a far cheaper price than the original.
      Computers such as the Commodore 64 filled the narrow gap between RAM becoming more affordable and the development of the IBM PC, but the IBM compatible pretty much put an end to most other home computers, apart from Apple/Mackintosh which are a special case.

    • @DrMattRegan
      @DrMattRegan  6 หลายเดือนก่อน +1

      That's for sure. I wasn't able to get the 16K expansion back in the day.

  • @BertGrink
    @BertGrink 5 หลายเดือนก่อน

    I believe the first few batches of the Sinclair RAM Pack lacked the little plastic "key" in the third position of the edge connector, and this lack allowed the connector to slowly slide sideways and short-circuit the contact "fingers" on the PCB, forcing the user to unplug/replug the RAM Pack.
    Later versions, and AFAIK all 3rd-party RAM expansions did have that plastic key.
    This shows how keen Clive Sinclair was to make things as cheap as possible.

    • @DrMattRegan
      @DrMattRegan  5 หลายเดือนก่อน +1

      Wouldn't surprise me. With the 5V signal next to the 9V signal, there may have been some unhappy outcomes.

  • @____________________________.x
    @____________________________.x 7 หลายเดือนก่อน +1

    This was great, I learnt lots of new things about the ZX81. I started wondering a while back if the (normally wasted) Refresh part of the Z80 cycle could be used used for something else like say an independent Read/Write cycle, turns out the original designers had already thought of that

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +1

      I think they used it and abused it (the refresh cycle). But still amazing what they did to get the machine so cheap.

  • @nmjerry
    @nmjerry 7 หลายเดือนก่อน

    I had the original ZX-81, but no RAM pack, at $200 1981 dollars I think. It disappeared. I seen a more modern version with the 16K RAM pack for $5 at some garage sale in the 1990s. I have had it I haven't fired it up yet. I think it is an interesting experience writing a program that runs in 1K using macroed tokenized basic. Some day, I wouldn't mind relating my physical experience with a mach III, having been born in 1962 (actually just the adder circuit).

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      I think i paid AU$200 for my ZX81. Only had it for about 6 months before i accidentally killed it.

  • @DavidHembrow
    @DavidHembrow 6 หลายเดือนก่อน

    As I recall, the 16 K rampack was initially available in wie packaging to match the ZX80. Before that they briefly sold a 3 K expansion card which used static ram. That was addressed just above the internal memory for 4K in total.

    • @DrMattRegan
      @DrMattRegan  6 หลายเดือนก่อน

      Correct, there was ZX80 16K RAM pack but they're pretty rare. I haven't seen the schematic for these, but i presume they are pretty similar. If you haven't watched it yet you might want to have a look at this series th-cam.com/play/PLjQDRjQfW-84WG47-5UjPz1BrXxc1acvd.html

    • @DavidHembrow
      @DavidHembrow 6 หลายเดือนก่อน

      @@DrMattRegan I watched the whole series already ! Truly excellent work. Thanks.

    • @DrMattRegan
      @DrMattRegan  6 หลายเดือนก่อน +1

      @@DavidHembrow great, glad you liked it. Working on some spectrum ones at the moment

  • @deviljelly3
    @deviljelly3 7 หลายเดือนก่อน

    Ohhh... this brings back memories

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +2

      Memories of lost typing?

  • @stevetodd7383
    @stevetodd7383 7 หลายเดือนก่อน +1

    The RAS/CAS multiplexing of addresses is another reason that DRAM supplanted SRAM for bulk storage. Smaller physical packages made for cheaper chips. You can find 1+M byte SRAM chips these days, but nothing like the multi-gigabyte DRAM modules available.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      Yes, for retro projects it's SRAM all the way. DRAM is such a pain. When i was at NVIDIA, we were starting to design for DDR5 and it was god awful.

    • @stevetodd7383
      @stevetodd7383 7 หลายเดือนก่อน

      @@DrMattRegan yup, for DRAM you need some sort of controller, and that controller got progressively more complicated as the DRAM generations progressed. By the time you reached DDR DRAM you needed a state machine, and probably a CPLD or FPGA to handle it.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +1

      I built an SDRAM interface with Xilinx FPGA many moons ago. Very complicated and i don't think it adds much to peoples basic understanding of computing.

    • @stevetodd7383
      @stevetodd7383 7 หลายเดือนก่อน +1

      @@DrMattRegan probably not, and most FPGA manufacturers provide pre-rolled solutions for you that make use of embedded SERDES to handle the high speed interface. The Spectrum is about as far as you can go with 74 series logic (see the Harlequin, which does this, but at the cost of pretty much filling the system board with logic chips). Beyond that it may be interesting to show more complex retro devices implemented in programmable logic, say like the VIC II chip.

  • @kirknelson156
    @kirknelson156 7 หลายเดือนก่อน +1

    I had the timex sinclair 1000 US variant of the ZX80, and that dang 16k module was flaky as hell, can even count the number of times it disconnected and I had to start over while programming on it.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      Yeah, i think the 16K expansion was an afterthought.

  • @TheDiveO
    @TheDiveO 7 หลายเดือนก่อน

    Can you please send a copy of your video on VHS tape back into '81, where I needed it? Fun fact: my father bought a ZX81+16K RAM pack back in Nov 81 and it was a real motivation for me to overcome my struggle with learning English despite a terrible and wholly incompetent English teacher.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      Excellent. I think i got mine in 1982 but blew it up trying to make a memory expansion. Oh why was the +5V next to the +9 on the edge connector.

  • @polarstar
    @polarstar 6 หลายเดือนก่อน

    The only problem with these videos is the nostalgia I feel

    • @DrMattRegan
      @DrMattRegan  6 หลายเดือนก่อน

      Enjoy! It was a great time to learn computing.

  • @SteveInScotland
    @SteveInScotland 7 หลายเดือนก่อน +1

    With memory always being expensive and always being in demand for use its a shame the ZX80/81 just turns off the internal memory and that the external memory isn’t added to that. I believe one of the Timex machines does this to give 18K (2k+16k) also a shame the base ZX81 wasn’t 2k to give more separation in specs between it and the ZX80.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +4

      Yeah, the really annoying thing is that if they had wired the SRAM address lines in parallel with the ROM, they could have used the SRAM for user generated character sets and it would have completely opened up pseudo high-res.

  • @peterhemmings2929
    @peterhemmings2929 7 หลายเดือนก่อน

    Interesting details. I wish I could try (on a ZX81 or speccy) writing a little bit of code to sit in a loop, writing a fixed value to the R register. In theory this would mean only a few RAM rows get refreshed, so most of the memory would "fade" to zero in a pleasingly random way?

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +2

      Correct, on the ZX81 you would lose video and on the Speccy, you would lose memory. Ironically, i don't think the code would crash, because reading the opcodes for the loop would keep those DRAM rows refreshed.

    • @DavidHembrow
      @DavidHembrow 6 หลายเดือนก่อน

      ​@@DrMattReganIt's years since I did that but I seem to remember that the lower 16 K of ram on the spectrum was adequately refreshed by the video circuitry from it

    • @DrMattRegan
      @DrMattRegan  6 หลายเดือนก่อน +1

      Other computers (ie Apple2) did that but i don't think so for the ZX80/81. The initial display file with the inverted K will only have 26 items in it. Even if the display file were completely full, there wouldn't be enough in the blanking periods.

  • @Deploracle
    @Deploracle 6 หลายเดือนก่อน

    As luck would have it .. after a 20 minutes cassette upload I'd accidently bump the 16K pack and POOF, all gone.

    • @DrMattRegan
      @DrMattRegan  6 หลายเดือนก่อน

      Yeah, it’s a bit of a crappy system.

  • @mheermance
    @mheermance 7 หลายเดือนก่อน

    I know DRAM is a key technology, but it seems really high maintenance. In the TI-99/4A they had the video chip do all the DRAM management, which walled off the complexity. But that required the CPU to go through the video chip for RAM access which hamstrung performance. I am not surprised which is a worse design tradeoff, the Z80 being tied to video generation, or theTMS 9900 being bottlenecked by a video chip.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      Hi Martin, Yes, but i think the guys at Sinclair solved it pretty elegantly in the Spectrum (next video). Didn't even really require much more logic, but it let the Z80 have free run. How are you finding these video's compared to me earlier ones?

    • @mheermance
      @mheermance 7 หลายเดือนก่อน

      @@DrMattRegan I am finding them interesting. At the time I was aware of the ZX 80 and 81's existence, but didn't have first hand experience with them. So learning how they performed video generation and DRAM refresh with minimal cost is impressive. I am not sure which video series is closer to general interest, the pure Turing videos, or early 1980s hardware engineering tradeoffs? I think we're in rarified company here.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +1

      Yes, i like the theory videos myself, but that is the inner geek. I still have a couple of pure turing videos to go!

    • @BertGrink
      @BertGrink 5 หลายเดือนก่อน +1

      The TMS9900 was a strange CPU indeed; besides having to go through the video chip to access the memory, it only had 3 (three) CPU registers: a Program Counter, a Stack Pointer, and a Workspace Pointer.
      While the first two worked as one would expect, the third register gave the CPU a 16-byte "window" into RAM where all the calculations, interemediate storage, et.c. was carried out.
      This scheme allowed for faster context switching during subroutiine calls, where each subroutine could have its own private register window, and upon return to the calling program, the old register window would be restored by a single instruction.
      Thus there was no need to push and pop a bunch of registers, which would have been dreadfuly slow thanks to the aforementioned memory access through the video chip.

    • @mheermance
      @mheermance 5 หลายเดือนก่อน

      @@BertGrink Indeed, that'll because it is based upon TI's minicomputer architecture from the 1960s. In the 1960s making on chip registers was expensive, while magnetic core memory was much cheaper. So many architectures of that era had few registers and used main memory instead. The PDP-8 for example used page zero RAM as it's index registers, which was an idea borrowing from the CDC 160. In the TI 99/4a they included 256 bytes of static RAM mapped to one page, and used as 128 "registers". So, the dynamic RAM bottleneck could be avoided if your program was on a cartridge and used little RAM. Basically TI initially built a machine to compete with Atari's 2600, not general purpose systems like the Apple II. But TI management and marketplace had other ideas, and it was a massive flop.

  • @markusm.lambers8893
    @markusm.lambers8893 7 หลายเดือนก่อน

    Please switch on, the translation to other languages ! Can't put on the "cc" here!
    So I can not read some difficult content and words, into my home-tounge, ... !
    That helps me so much, to understand, a very elaborated technical text!
    73 de Markus - db9pz - (my HAM-radio call in DL) - and a happy new year !

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน

      The captions are currently in English. I'm asking google now how to enable translations.

    • @DrMattRegan
      @DrMattRegan  7 หลายเดือนก่อน +2

      Apparently, automatic translation should be available Dutch, English, French, German, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish, Ukrainian and Vietnamese.

    • @markusm.lambers8893
      @markusm.lambers8893 7 หลายเดือนก่อน

      Now it's working !
      Thanks !
      Sometimes it is 'easier' to have a little help from my mother-language, to understand very elaborated and technical talks, ... ! It's not that easy, to follow these 'computer-things' in a high technical English. I am now 61, and still 'learning' every day, ... !
      ZX81 (+16kB Ram-Pack) a ZX80 (bought as a 'kit', for nearly 'nothing'!), and a Spectrum (48kB) where my first 'computers'! Then stepped to a QL, and in the beginnig 1990's, comming to 'IBM'-Clones, ... !
      73 es happy new year, de Markus - db9pz - (JN39fq 5km/3miles east of LX)