VIC-20 Gets ISA Slot, Networking

There are few computing collapses more spectacular than the downfall of Commodore, but its rise as a home computer powerhouse in the early 80s was equally impressive. Driven initially by the VIC-20, this was the first home computer model to sell over a million units thanks to its low cost and accessibility for people outside of niche markets and hobbyist communities.

The VIC-20 would quickly be eclipsed by the much more famous Commodore 64, but for those still using these older machines there are a few tweaks to give it some extra functionality it was never originally designed for like this build which gives it an ISA bus.

To begin adapting the VIC-20 to the ISA standard, [Lee] built a fixed interrupt line handled with a simple transistor circuit. From there he started mapping memory and timing signals. The first attempt to find a portion of memory to use failed as it wasn’t as unused as he had thought, but eventually he settled on using the I/O area instead although still had to solve some problems with quirky ISA timing. There’s also a programmable logic chip which was needed to generate three additional signals for proper communication.

After solving some other issues around interrupts [Lee] was finally able to get the ISA bus working, specifically so he could add a 3Com networking card and get his VIC-20 on his LAN. Although the ISA bus has since gone out of fashion on modern computers, if you still have a computer with one (or build one onto your VIC-20), it is a surprisingly versatile expansion port.

Thanks to [Stephen] for the tip!

22 thoughts on “VIC-20 Gets ISA Slot, Networking

  1. Not the craziest thing I’ve ever seen. Someone once gave one to an arduino.

    To explain, basically there’s a lot that an ISA slot and an IDE port have in common. Someone misused a chip intended to add an ISA slot to an I2C-based SMBUS to add an IDE port to an arduino over I2C, since it basically let you directly set all the pin states and port values. They then wrapped that up to create a fake SD card object connected to a fake SPI bus that they could hand to the arduino SD card library, because apparently that library and it’s mish-mashed API was worth using rather than grab a standalone FAT library? All to attach a CF card to an arduino.

        1. Hi! The 8-Bit part was called the PC bus or PC/XT bus originally.
          ISA bus as a whole is a standardized version of the 16-Bit AT bus.
          ISA got standardized in late 80s by the “Gang of Nine” , as legacy part of the then-new 32-Bit EISA bus.

          The difference between AT bus and ISA bus is that “AT” was considered a protected marketing term by IBM.

          Also the speed. ISA set the operating frequency into stone as part of the specification(8,33 MHz),
          whereas AT bus at the time could been using any speed depending whatever IBM AT model was released (6 MHz, 8 Mhz, ..)

          Formally spoken, I mean. It’s not about technology and its limits. Just about paper work. ;)

    1. I spotted the date to be from 2004. wanted to comment “why are old hacks new again?” but out of respect for Lee, I appreciate the article. would have been kind to take note of his passing in the article. only 49. So young.

  2. Major props! I think this is the first I’ve heard of someone adding an ISA slot to a 6502 based machine. Totally awesome, and now it makes me wonder what other hardware one could get working with it.

      1. There’s some modern cards that do that. Some even have WiFi. A friend of mine (who also wrote a video player for the C64 that combines decent video quality with good audio quality and all else you need is a REU with 16MB) used his C64 to live-chat on a webcast. Some uses are downloading games from a server over WiFi (no fuss with disk drives, tapes or cartridges).

    1. “and now it makes me wonder what other hardware one could get working with it.”

      CGA or VGA card, maybe?
      But VGA/MCGA framebuffers are large (64kB linear; and more via bank-switching).
      CGA has 16KB framebuffer, which the 6510 still could manage to address in one piece.

      Second, the AdLib card? Or the analog gameport?
      It’s just a couple of i/o ports.

      Serial/parallel ports might be accessible, too.
      Imagine being able to use an ISA modem to dial into a Commodore BBS! ^^

    1. hmmm… I didn’t even notice at first, sure the page looked a bit dated, but it matched the vibe of the project. So, thanks to your comment, I looked again and then I noticed at the bottom of the page and then all things fell into place.

      “Last page update: 29th February, 2004.”

    2. That’s the great thing about retrocomputing. 20 years from now, a VIC-20 will be no more obsolete than it is today. I bet it will still work though, can’t say the same for my current phone.

  3. On my VIC, I just got a serial to ethernet adapter, which mimics an AT command set to do things (like open a connection to an IP), and then I use it to telnet to BBS’s and MUDs. I think it cost me $10 on eBay about 10 years ago. The key is to not get one designed for “retro computing”, find one designed for industrial applications.

  4. To connect a Commodore 64 (C64) to the internet, you need a serial-to-network bridge device, such as a user port Wi-Fi modem or an Ethernet cartridge like the 64NIC+, to act as a bridge between the C64’s serial ports and your home network. These devices emulate a classic modem but use Wi-Fi or Ethernet to connect to the internet, allowing you to use retro terminal programs like CCGMS to interact with modern BBSs and online services. There are lots of videos on YouTube showing it.

Leave a Reply to threeveCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.