Adding 1MB to an 8-bit Computer!

242,077
0
Published 2023-11-10
This episode is sponsored by PCBWay www.pcbway.com/ Today I'm taking an Amstrad CPC with 64KB of RAM and adding to it... 1 MB of RAM! How is that possible? And why would you even want to do something crazy like that? Let's find out 😃

Links:
Original 1MB expansion github.com/revaldinho/cpc_ram_expansion/wiki/Unive…
Updated 1MB expansion github.com/Rebobinando/CPC-1MB-RAM-Expansion
MiniWare TS80P soldering iron amzn.to/3SzhNzS
McKlain music mcklain.bandcamp.com/

Support Noel's Retro Lab on Patreon: www.patreon.com/NoelsRetroLab
You can also support Noel's Retro Lab on YouTube by joining this channel:
youtube.com/channel/UC2-SP1bYi3ueKlVU7I75wFw/join

Chapters:
00:00 Intro
00:50 How can an 8-bit computer have more than 64KB?
02:23 RAM expansion
06:14 CPLD
07:12 Build
09:37 RAM test
13:09 80s programs that use more RAM
17:26 Modern OSs
20:56 Cost
21:19 Conclusion


Music tracks:
Funky Stars by McKlain mcklain.bandcamp.com/track/funky-stars-amstrad-cpc…
Battro OST by McKlain mcklain.bandcamp.com/track/battro-ost
More awesome music by McKlain: www.mcklain.com/

🛠 Tools I use ➤ noelsretrolab.com/tools.html

Connect with Noel's Retro Lab:
Discord ➤ discord.gg/ETcCh6J
Facebook ➤ www.facebook.com/NoelsRetroLab
Twitter ➤ twitter.com/NoelsRetroLab
Instagram ➤ www.instagram.com/NoelsRetroLab
Mailing list ➤ noelsretrolab.com/

All Comments (21)
  • @NoelsRetroLab
    FAQ (hopefully this addresses some of the main comments/questions): * You got data bus and address bus backwards! Yes, I did! 🤪 I thought it was only in one part that I put some text, but apparently I messed up earlier too. Sorry! * LD (C), C is incorrect. No. The way the Z80 works, when you do out (c), XX, it actually sets the IOREQ line, writes the whole BC register on the address bus, and puts XX on the data bus. I know, it should have been called out (BC), XX, right? From my understanding, most Z80 systems only look at the lower 8 bits of the address bus during an IOREQ operation. I'm not sure why. Some kind of semi-standard? Reference implementation? The Amstrad decided to use the TOP 8-bits of the address bus to decide which IO to target. So the bottom 8 are ignored. So loading something on BC and doing out (c), c does put C on the data bus and B on the top half of the address bus. It's one of the Amstrad idioms. I'll keep adding things as they come up.
  • @Dank_Lulu
    Well, my motherboard supports 64Gb of RAM at this time. Such an upgrade would allow me to have 1088Gb. With this much, I could run Photoshop for an entire day without needing to restart it to clear the memory leak! Really puts things into perspective.
  • @MK-jo1gi
    The fact that the extra memory doesn't get wiped is one of the tricks that was used to ahem, backup software. Ideal in combination with an Instant Replay. Wait for the game to load, break into the process, copy the entire 64Kb to the second 64Kb bank, reset the Amstrad and then copy it back and extract the program. I've used it to extract music from games. :)
  • @Mat-Ellis
    If my memory serves me correctly, it's the address bus that's 16-bits wide, the data bus is what makes it an 8-bit computer. Still a great video.
  • @GrantMeStrength
    Thanks for the CPC love! I still adore my CPCs, and I suspect like most Amstrad users around today, I'm always delighted to see a deep dive into the rather esoteric joys of hardware expansions. I love picking up serial, sound, mouse and speech expansions for it to this day. My favourite hardware expansion that I had was a VIDI video capture card from the folks that made the ROMBO rom expansion box. That was mind-blowing, but I lost mine and I've never seen another. You touched on the CPLD and that's something I would definitely like to learn more about some time..
  • @cjh0751
    Great to have you back. I know you've been setting up your studio and I know this takes time. I've missed your content. You're back and this makes me happy. Nice one Noel.
  • @Mrshoujo
    Atari 8-bitters have been adding 1MB of RAM to their computers for years. A friend used to have an Apple IIc in which he installed 1MB with an upgrade. I helped him get the chips he needed.
  • @LongyFromCork
    Great video again Noel. Love your enthusiasm for tinkering with retro computers.
  • @JVHShack
    I did start designing an ATX version of the 6128, but now that I know about this project, I will do what my due diligence to see if it can be baked into my design.
  • @Zeal8bit
    Great video, I love the way you explain complex topics, like memory mapping, with simple words and diagrams! I considered porting Zeal 8-bit OS to the Amstrad CPC but wasn't sure how the memory was organized, I am happy to see it is also using the 4x16KB virtual pages segmentation, which makes it fully compatible. The first program that comes to my mind that would be able to use a lot of memory (maybe not the whole 1MB) is a C compiler. The compilers I have seen for the Z80 go from parsing to assembly generation in the same pass, which reduces the RAM usage but limits the potential optimizations. With that much RAM, an whole AST can fit in RAM, even if the source file is big, making optimizations possible!
  • @damouze
    Great video! I know virtually nothing about the Amstrad line of computers, so this was very educational. It always amazes me how inventive people get when they have very little memory to work with or when they have a system that is very limited in a more general sense. Adding that pressure makes people think more deeply about the choices they make when designing hardware or software for such a platform. One big bonus is, of course, that memory, both DRAM and SRAM are relatively cheap nowadays, especially compared to say, what the costs were in the '80s and '90s. I love SymbOS. I have it running on my MSX2 computer, a Philips NMS-8255, although of course, that system is also expanded with 1MB of memory and more storage than one could even dream of in the '80s. In its current configuration it has more RAM and more storage space than my very first PC had. I think that's pretty awesome.
  • @edgarwalk5637
    Gotta love the open source hardware community! I develop software, but I like seeing open source go to hardware as well.
  • @CyclingSteve
    I'd love to see more of this, there is a YouTuber named Prodatron who demos some great hardware.
  • Nice to know that there are cheap opensource expansions for CPC. I've never owned a CPC (Commodore user here) but partially thanks to your videos I can see how underrated it was compared to its true potential. Now I have 3 working pieces (2 464 and one 6128) that are waiting for when I have time for them :) They will probably require belt replacement, though.
  • @BrainSlugs83
    If the screen buffer can be relocated to banked ram (like on the C64), then you could use that functionality to play full screen animations really quickly. Edit: looks like you answered the question during the video. Cool!
  • @frankowalker4662
    Cool. Keeping track of all the blocks of memory while writing software to make use of it would be fun.
  • @lovemadeinjapan
    Nice video. We are making a 2MB expension for the Philips P2000T, a Dutch Z80 machine, internally, as it has plenty of room. 2MB is the limit, as the OUT toggle can deliver 256 positions for the upper 8kB of RAM. So you get 2108 kilobytes. Actually back in 1988 someone already made a 2MB expansion for this machine, byt with 256kbit chips (64 of them!): the use was running a BBS over the Viewdata protocol. They needed to upload 5 floppy's with all the user messages and such into the RAM, and they even managed to run it for 5 years without a single power-down. Our modern version has 4x512KB chips and TTL logic. Still it is pretty compact. What is weird though, the C128 does flip the entire RAM. Must have been hard to swap data between the two halves on that machine.
  • @Suzuki_Hiakura
    I love finding videos where the Youtuber makes custom hardware to improve older stuff, like old old stuff. Usually makes me wish that more programs would negotiate a percentage of available resources so they could take advantage of say more ram lol.
  • @davidhaslett9777
    My MSX 8 bit Z80, computer it has 2Mb of bank switching memory, not much use, a massive RAM disk, but, some cartridges use 8k bank switching, the 16k pages can handle those quite nicely
  • @VAXHeadroom
    I had a 40MB HD for an IBM PC in 1986 at work - HALF HEIGHT!! - and it had the first surface mount components I'd ever seen. The first 1GB drive I saw was in about 1989 for a VAX 8340. They were $25K each and we had 8...think about how much HD space $200K could buy today!!