BMOW title
Floppy Emu banner

Apple IIc ROM Upgrade

20150528_155647_resized copy

The more I learn about the Apple II world, the stranger it seems. Who knew the Apple IIc went through four different ROM versions, each with different capabilities, but mentioned nowhere in the model number or product label? I recently bought a IIc system, and discovered it had the oldest of these ROM versions, meaning it lacked support for external Smartport disks. Experimenting with a Smartport hard drive was the main reason I wanted the IIc, so that was a problem! After a bit of research, I did what any self-respecting hacker would do, and replaced the IIc ROM myself with a simple logic board modification. Fortunately I learned a few interesting things along the way.

 
Finding an Apple IIc

20150528_154918_resized copy

The IIc that I bought was a fairly nice one, with minimal yellowing, and the external power adapter included. If you’re searching for a IIc system on eBay, you’ll quickly notice that 80% of them don’t include the power adapter. And to make matters worse, the power adapter uses an uncommon DIN plug, so you can’t just substitute a modern laptop power supply with a standard barrel plug. What happened to all the original Apple power adapters? Did everyone carefully pack away their IIc system in the attic in 1990, but throw the power adapter in the trash? Did they all stop working? Is some guy in Kansas hoarding a stockpile of 10,000 power adapters for the Apple IIc?

Fortunately, someone in New Mexico has a large quantity of new laptop power supplies with an appropriate DIN plug for the IIc, and is selling them on eBay for $18 each. They’re probably more efficient than the original, too.

My IIc system suffered a mishap during shipping. I understand that accidents sometimes happen, but I’ve received too many vintage computers that were minimally packaged, as if expecting the post office to handle them with tender loving care. In reality these packages take a lot of abuse – imagine the box being thrown down a flight of stairs. In my case, the single layer of bubble wrap (with most bubbles popped) surrounding a 10 pound machine didn’t offer much protection. One of the corners got whacked hard, breaking the case surrounding the power switch, and leaving many small pieces rattling around inside.

20150528_153135_resized-2

The system still worked, and I was eventually able to fish out the missing pieces. The seller gave me a partial refund for the damage, and I was able to make a rough repair with a liberal helping of super glue. Onward!

 
IIc ROM Versions

For the curious, you can type PRINT PEEK (64447) at the BASIC prompt to find what ROM version is present in an Apple IIc. There are four versions:

  • 255 – The original Apple IIc ROM, size 16K. No support for Smartport disks. However, it has a nifty “PR#7” feature that allows for booting from an external floppy drive configured as drive #2, something that’s not normally possible. This was the ROM installed in my IIc. In my tests, PR#7 worked to begin booting from the external drive, but most software seemed to be hard-coded to expect to boot from drive #1. The disks would start the boot process, but then the empty drive #1 would begin seeking in vain. The only disks I found that booted successfully from drive #2 were ProDOS and the game Moon Patrol.
  • 0 – With version 0, the ROM doubled in size to 32K. This ROM version eliminated the option for booting from drive #2, but added support for Smartport disks. The most common of these was the Unidisk 3.5, an intelligent external 800K floppy drive. But the Smartport protocol could also be used to communicate with other types of external disks, including hard disks up to 32MB in size.
  • 3 – Version 3 accompanied a logic board change, making it possible to expand the IIc’s memory.
  • 4 – Version 4 corrected some bugs present in version 3.

20150529_095129_resized

You can download binary images of all four versions of the Apple IIc ROM from apple2.org.za. As far as I can tell, the first 256 bytes of the ROM aren’t actually used, and attempting to read these locations on a running IIc system will modify various hardware switches instead.

 
ROM Upgrade

Since my IIc system lacked the memory expansion connector, there was no reason to upgrade to ROM version 3 or 4. Version 0 would give me the Smartport support I wanted, so I set that as my goal. But wait! ROM version 255 was a 16K ROM, while ROM version 0 was a 32K ROM. Obviously this wasn’t going to be a simple chip swap.

Looking at the schematics of an Apple IIc, it’s clear there’s some funny business happening with the ROM:

AppleIIROM

It’s labeled as a 27256, which is a 32K EPROM. But pin 27, which should be the highest address bit (A14), is instead connected to some strange components labeled W1 and W2. Huh? After a bit of poking around, it became obvious that W2 was a solder bridge jumper (normally open), while W1 was a track designed to be cut (normally closed). You can see them both here:

20150528_155630_resized

It looks like Apple designed the IIc from the start to support 32K ROMs, but initially shipped ROM version 255 as a 16K ROM, perhaps as a cost-saving measure. This would have allowed them to use 27128 ROMs, which hold only 16K instead of 32K. With the 27128, pin 27 is the /P or “program” pin, which must be kept high during normal operation. W1 (normally closed) connects pin 27 to the supply voltage to keep it high, while W2 is open and therefore disconnected. 16K ROM operation works.

In order to upgrade to a 27256 ROM with 32K, W1 must be cut, and W2 must be bridged. This disconnects pin 27 from the supply voltage, and connects it through W2 to the address bus, A14. Now 32K ROM operation works. It’s not the most user-friendly upgrade path, as it involves making permanent modifications to the logic board, but it’s better than nothing. You can see my cut at W1 and bridge at W2 here:

20150529_102855_resized copy

20150529_102840_resized copy

But say, where can you find a replacement ROM chip in the year 2015? Those old 27256 UV-erasable EPROMs are ancient, and I don’t own a UV eraser anyway. I looked into using a 28C256, an electrically-erasable EEPROM with an almost identical pinout, but “almost” isn’t quite enough. With some creative cutting and jumpering it could probably work, but I wanted a cleaner solution.

Jameco sells a one-time programmable 27C256 that might work. The pinout is the same, and since it can only be programmed once, there’s no need for UV erasing. But what if I made a mistake while programming the chip – I’d be left with a brick. And this particular OTP chip also has a fairly slow access time of 250ns. I wasn’t sure what speed was needed, but the RAM appeared to be 150ns, and I guessed the ROM may have the same speed requirements.

Also at Jameco is a standard UV-erasable 27C256, with a 150ns access time. This looked good, except it was labeled as a refurb product. If it were already programmed with somebody’s old data, I wouldn’t have any way to erase the chip except to leave it in the sun for a week or two, and I’m not that patient.

In the end, I bought one of each. Fortunately, the UV-erasable 27C256 proved to be already erased. After programming the version 0 image to the ROM, and making the necessary logic board mods at W1 and W2, it worked!

20150529_103053_resized copy

 
A Final Mystery

While I had the logic board exposed, I noticed a few mysterious modifications already present. Just next to the 1.8432 MHz oscillator, a narrow purple wire connected two vias. And nearby, a resistor connected pin 19 of the TMG chip to another via. The purple wire looked very cleanly done, but the resistor was much uglier. Were these older repairs from another hobbyist, or perhaps factory changes made by Apple for some earlier logic board revisions? What are these changes for?

20150528_160826_resized copy

Read 25 comments and join the conversation 

25 Comments so far

  1. Ben Combee May 29th, 2015 1:58 pm

    Looking at those two board changes, I think they’re both factory installed. The blue wire probably is improving stability of the oscillator, while the resistor is acting as a pull-down or pull-up resistor for the TMG’s Row-Address Stobe signal, likely to correct some glitching on the memory bus when the TMG wasn’t asserting that signal.

  2. Smartin May 29th, 2015 2:55 pm

    Hi Steve,

    That’s amazing. I have exactly the same vintage Apple iic with the same ROM revision and was in the process of doing the ROM upgrade as well. You have saved me hours of research. No doubt you have come across this:

    http://apple2online.com/web_documents/apple_iic_rom_versions.pdf

    But as you say with the original hardware version of the board, there is little benefit of upgrading beyond version 0.

    Cheers, Martin…

  3. Chris M. May 29th, 2015 8:16 pm

    That board modification looks like the serial port timing fix for early 255 ROM boards. It replaced a 74LS161 with an oscillator. The later memory expansion IIc got a new model number, A2S4100 and a much improved clicky Alps keyboard. The only major change in the later firmwares is that the built in “slinky” RAM card support lives at Slot 4 and the mouse firmware was moved to Slot 7.

    The guy selling the power supplies on ebay is long time Apple II community member Stephen Buggie.

    Also, I got my IIc and Unidisk 3.5″ fired up and working. Ready for whenever I get a FloppyEmu. At least Smartport doesn’t appear to need any more adapter changes.

  4. Erik Petrich May 30th, 2015 5:56 pm

    The 27SF512 would have been handy here, if your programmer supports it. It’s pin compatible with the 27C512 EPROM, but is based on flash technology, so you don’t have to do anything special to erase it. It’s twice the capacity you needed, but if you concatenate the source ROM image with itself to double its size, you don’t even have to worry about the extra address line.

  5. Mark June 1st, 2015 6:24 am

    Another option for getting old eproms and various other sweet ’80s parts.

    http://www.bgmicro.com/eproms.aspx

  6. Smartin July 13th, 2015 2:15 am

    Hi Steve,

    Just completed the ROM upgrade, followed your steps to the letter, easiest upgrade ever. I used a 27C256, just programmed it with ROM 0 code, did the board mods and plugged it in.

    Now to boot up prodos from my floppy EMU.

    Thanks and Cheers, Martin…

  7. Steve Hammond August 1st, 2015 6:53 am

    Hi all,

    I also have a ROM 255 in my Iic.

    I’m not equipped with a programmer to do that ROM upgrade, is there someone that are selling upgraded ROM somewhere?

  8. Steve Chamberlin August 1st, 2015 8:21 am
  9. Steve Chamberlin August 1st, 2015 9:02 am
  10. Smartin August 1st, 2015 3:34 pm

    Steve Hammond, if you are in Oz I would be more than happy to help out. I have a copy of all ROM versions.

    Cheers, Martin…

  11. Steve Hammond August 1st, 2015 8:43 pm

    Smartin, I guess Oz means Australia, but I am in Canada! Same Queen, but long distance.

    I looked at both auctions and the shipping cost is high or they don’t ship to Canada! It really s___!

  12. Smartin August 1st, 2015 8:55 pm

    Hi Steve. Yes, Oz meaning Australia. I’ve got buckets of Roms. Let me check the postage cost from Oz to Canada.

    Be in touch soon if you are interested?

    Cheers, Martin

  13. Steve Hammond August 1st, 2015 9:02 pm

    Cool, we’ll keep in touch!

    Postage cost sometimes just makes no sense. I order stuff from China for less than $5 and they offer free shipping. But if I order the same $5 good from Canada or the USA, shipping is 2 times higher. I wonder why Canada Post are constantly complaining the service is lesser used year by year!

  14. Steve Chamberlin August 2nd, 2015 6:52 am

    Getting off topic, but I’ve also wondered how some Chinese sellers can ship to North America so cheaply, compared to what it costs me to ship to China or anywhere else outside the USA. I think part of the answer is that they ship such huge volumes of stuff, they’re able to negotiate much lower shipping rates than someone shipping a one-off. And for destination countries where they ship a lot of products, they bundle up many shipments into one big package, then have an assistant in that country open the big package and repost the individual shipments using domestic shipping. And they often use shipping methods that take 1-2 months to reach North America.

    Even accounting for all this, international packages mailed with China Post are still significantly cheaper than a similar package mailed with the US Post Office. According to http://www.travelchinaguide.com/essential/postal-service/rate.htm , I could mail a 300 gram (about 10 ounces) small package from China to the USA for 27.5 yuan = $4.43 USD. But to mail the same package from USA to China costs $16.00 by the cheapest method.

    It’s also possible to batch up a large number of shipments and send them by truck or boat to a nearby country, then mail them using that country’s postal system. Some of the stuff I order from China is delivered by Singapore Post. I suspect this helps keep postage rates in the Shenzhen region low, because there’s competition between nearby countries. In the USA or Canada or Australia, shipping from another nearby country isn’t really a viable option.

  15. Keith Greene August 3rd, 2015 6:22 pm

    Wow, right on the tail of this announcement. It seems another update was posted.
    http://www.osnews.com/story/28751/Apple_IIgs_System_6_0_3_released

    Callapple.org seems to be down today, however. *sigh*
    Good to see the support is there for such a piece of history. Started out programming a IIE back in school, which is way too long ago.

    Keep up the great work on the floppy emu!

  16. Smartin August 3rd, 2015 6:56 pm

    From what I read on Facebook, 6.0.3 was released by someone else and doesn’t necessarily build on 6.0.2.
    I cant find the article, but it seems there are 2 competing programmers. They really need to combine efforts or this will rapidly turn into a nightmare, with disparate releases.

  17. Sean Fahey August 6th, 2015 7:24 am

    Yeah, there is some faction-esque shenanigans going on. I’m hoping the parties will resolve their creative and distribution schedule differences soon. The project isn’t forked (yet) and I hope it never is.

    6.0.2 was released a little earlier than some of the team wanted — the ‘some’ wanting to make an announcement during KansasFest. So, 6.0.2 went out to the masses missing some of the polish other members of the team wanted to add.

    6.0.3 is the release 6.0.2 probably should have been. It has better documentation and the latest fixes and features.

    The folks behind both releases are decent, committed people — they love the Apple IIGS, so I’m not completely sure why these friends who have always cooperated in the past have split on their mutual vision of an updated, modern GSOS for the future.

  18. lpastorelli December 27th, 2015 2:27 am

    Hi Steve,
    Congratulations for your wonderful website and thanks you for this excellent article which helped me a lot for upgrading my Apple //c ROM 255 to ROM 0.
    Best Regards from France.
    Laurent.

  19. Mark Cummings May 7th, 2016 4:43 am

    g\’day Steve,
    thanks for this easy to follow article. Excellent pictures. Upgraded an old IIc from ROM FF to ROM 00 easily. The Floppy EMU works like a champion now. I\’ve just got to get the early keyboard working better. Those key switches are horrid.
    Mark C, in Oz.

  20. DC May 8th, 2016 2:15 am

    Great Article…

    Love to hear from anyone in Australia that can help me with an upgrade ROM 0.

    Cheers!

  21. quarterturn May 18th, 2016 6:42 am

    Went through a similar thing with an Atari STFM. Had TOS 1.02, wanted TOS 1.04. No 2-ROM sets on eBay, so I bought some 27C010 EPROMS and borrowed a programmer. It\’s a bit of a bodge to get 32-pin chips into 28-pin sockets, but it works. Pic here:

  22. quarterturn May 18th, 2016 6:43 am

    I guess this blog blocks html? Original link http://i.imgur.com/CoGng7Z.jpg

  23. Ken May 18th, 2016 9:39 am

    Steve et al. – For the past few years, I’ve been selling both the Apple IIc upgrade ROM kit (I have O, 3 and 4 ROMs onhand so take your pick) and it comes with a detailed, photograph enriched manual on CD. The ROMs used are brand new, not recycled ROMs that have been rewritten.

    I also sell lightweight, low heat AC adapters for the IIc that match Apple’s power specs exactly. I sell them on eBay or if you want it cheaper, in my webstore ebluejay.com/store/Apple2OlineStore (proceeds from the webstore sales goes to support Apple2Online.com). Prices are generally cheaper in the webstore as there are no eBay fees to factor into pricing. We have a LOT of different parts.

    Ken
    Apple2Online.com

  24. Wyatt Wong September 28th, 2017 6:40 am

    Do you have the checksum value of Apple IIc ROM 4 ?

  25. Steve September 28th, 2017 6:43 am

    PEEK(64447) will show your ROM version number on the IIc.

Leave a reply. Comments may not be monitored regularly. For product support questions, visit the Contact page.