So I have the following (it all works unless specified and I fire it up at least twice a year unless specified). And yes, my office looks like a train-wreck twice a year when I pull all this stuff out to keep it alive..
2 Commodore 64s (one works, the other is for parts), and a Commodore 64C
1 1541-II disk drive (works) and a bunch of software.
1 Commodore 128 (Has a couple of broken keys on the numeric pad), and a 1571 disk drive
1 Laser 128 (Apple II clone) with two drives. Works fine and I have a bunch of games and office type software to go with it.
1 Amiga 500, the internal and two external drives (one pulled from an A1000 so it's very big. Another is an off-brand, very small and cool 3 1/2)
1 Commodore Plus/4. Works great.
1 Commodore Vic-20. Works great
1 Commodore 16 which is unfortunately busted
I have a serial modem (14.4) I use to hook up the Amiga to a PC. I cheat because it's actually just doing telnet, but it's cool to get on the web with Lynx by using a kermit terminal program (my Amiga software is so old that it doesn't have a TCP stack). At some point I started getting some public domain amiga tcp stack off ftp but I needed a hard drive to hold it all so I stopped (even emulation is better than the real thing when you don't have enough hardware).
And of course I also keep a bunch of emulators on the modern machines so I can try things out and have interesting stuff to run (being able to run it on the actual hardware gives you a reason to want to pull it out). I love retrocomputing. In fact, that's how I plan on teaching programming to my kids. Yes, they'll use modern hardware too, but for programming I want them to see how there can be very little between you and the metal and you can still accomplish a bunch. All the layers of abstractions can actually make the basics (like why assembly is important and how you actually talk to hardware) a lot harder to understand. If all you have is a Commodore and you have to send commands to the drive to initialize the hardware, and you have to poke values in order to create a little assembly routine or change colors, it just makes it so much more *real*, and there's a lot less to explain of what's going on in the background. Since everything is an extrapolation of that pattern of thought anyway, I think it's better to start the understanding at that level.