My Authors
Read all threads
nearly 35 years ago the Commodore Amiga 1000 shipped. it was sold with 256KB RAM, standard. not many know this, but Commodore secretly equipped it with 256KB of *additional* RAM that could not be used by programs! let's take apart this Amiga and find this secret RAM.🧵
first let's admire the system unit. it's a very sleek slimline case, perhaps a foreshadowing of the "pizza box" cases that were popular later on. underneath you can see the "keyboard garage" where you could slide the keyboard when you were finished using it.
after removing some screws and unlatching some plastic tabs, we get to see the EMI shield. this piece of metal helped the Amiga pass the (at the time, new) strict FCC class B limits for home appliances.
underneath the shield you can see the motherboard. no RAM chips are visible yet. next, we'll need to remove the floppy drive and that funny-shaped daughterboard.
OK, you can see the 8 RAM chips in the lower left corner. they are 64K nibbles (4 bits) each for a total of 256K. but where is the secret RAM?
here is the secret RAM! 4 chips (again totaling 256K) on the daughterboard that we just removed! but what IS this mysterious daughterboard anyway?
the daughterboard plugs into the motherboard using a whole bunch of pin headers, most of which are soldered into IC footprints! for example, the motherboard says this chip, U3G, is a 74LS244. what's the deal?
the full story can be found in the wonderful book, "Commodore: The Amiga Years" by Brian Bagnall. the daughterboard is the Writable Control Store. when you insert the kickstart floppy disk, the first 256K gets copied into the WCS which gets write protected!
so they took a machine with 512K of RAM and sold it as a machine with 256K of RAM, simply because the software wasn't ready in time for the ROMs to get made. 🤯
imagine a modern computer company selling a computer with 256GB RAM but really it has 512GB inside!
so if the Amiga 1000 had no ROM and had this WCS board instead, how did it show the boot screen asking for the kickstart disk? it used this internal 8K ROM set for that. most of it was filled with the picture of the hand with the floppy disk!
later on, of course, people figured out how to replace the daughterboard with actual ROM chips. this was never an official option from Commodore. the successor product, the Amiga 500, had ROM chips instead of requiring a kickstart disk.
this thread dedicated to Dave Needle, hardware designer. may he rest in peace.
one little addendum: the kickstart disk icon may have been a vector image. at least, this is how the image was drawn for the workbench disk. it used some graphics libraries that may not have been in the 8KB boot ROM. 🤔

i've started disassembling the 8KB boot ROM. here's the code that checks for the floppy disk. you can see how it moves the head back and forth while checking for the disk change signal. the delay is just a busy loop!
this subroutine is what draws the picture of the floppy disk. you pass it a pointer to the image, and it starts interpreting it a word at a time. the first words are the x and y coordinates, the color, and then the first command word. -2 means it is a flood fill!
-3 and -4 are basically bitblt functions (to different display memory regions). anything else means it is a line. the line drawing algorithm is basically a lightly modified Bresenham, but the flood fill algorithm is something special...
this flood fill algorithm is a *brilliant* recursive function! if the existing color at the current x,y is good (valid fill region) then you plot a pixel and then you try to flood fill the pixels N, S, E, and W! obviously keep the fill regions small or it kills the stack 😂
so back to the floppy image itself. the data is 1157 bytes long, or about 14% of the total ROM size. not bad at all! the ROM has only 377 unused bytes so it definitely got crowded.
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Tube Time

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!