NEWS, EDITORIALS, REFERENCE
Review: 1541 Ultimate II+
I feel like I'm late to the party. When I started the Commodore 8 Bit Buyer's Guide, one of the things I knew I had to do was have a special feature section and put the 1541 Ultimate II+ top front and center.
It seemed like everyone was talking about it, and raving about how great it is. Sight unseen, I took a couple of quotes from people on Twitter, did my research online, and wrote a Buyer's Guide feature about this contraption, built and brought to us by Gideon's Logic Architectures. In that My Take, which is in essence a mini-review, I described the 1541UII+ (as it is frequently referred to for short) as the The Jesus Device. And that epithet is well earned, but there are a couple of small caveats.
Gideon's Logic Architectures — Webstore
Almost five months ago, Christmas 2017 was over, but daddy needed a little retro pick me up. At the very start of the year, January 2nd, 2018, I placed an order so I could finally get my hands on one and join the crowd. When I placed my order, they were temporarily on back order waiting for a new batch of stock to come in.
I didn't have to wait too long, just a hair over 6 weeks from time of order to the day it arrived, on February 16. And that time included the delay for getting the device back into stock. I tweeted out the day it arrived. As you can see, I got one of the white ones.
This is one of the most professionally put together #c64 products I’ve bought in a long long time. pic.twitter.com/hlUiXB3gAR— Gregorio Naçu (@gregnacu) February 16, 2018
Reading other people's thoughts and reviews and some online documentation is one thing, but there is nothing quite like having something in your hands. The very first thing I noticed when I took it out of the package was the professional quality of the enclosure. It doesn't just look svelt and smooth, it feels really solid in your hand. The seams and cutouts are totally custom for the hardware features of this uber-cartridge. The buttons have a great clicky feel, and that's important, because you're gonna be pushing those buttons a lot.
There is so much to talk about with the 1541 Ultimate, it's hard to know where to start. So, I guess I'll start at the top, the unboxing. Then I'll work my way into exactly what it is this device is and what it can do. And I'll link to the reviews of others along the way. A lot has already been said and demonstrated, and I don't want to just repeat the work of others.
Ordering and Unboxing
People now do those amazing unboxing experience videos on YouTube. Well, sad to say, the past is the past and I didn't record myself taking this puppy out of its box. But I did take some photos.
Before placing the order you have to create an account at 1541ultimate.net. It seems to me that this is the original official website for the 1541ultimate, but there is a newer site, ultimate64.com, which is just a webstore and a project status page. At the moment, 1541ultimate.net has much more than just the order form, it also has user and developer forums, firmware updates, and lots of other technical information. Both sites have the ability to log in, but you need to create separate accounts at each, which is what I did. Eventually, everything at 1541ultimate.net will be migrated to ultimate64.com.
I placed my order via 1541ultimate.net, but going forward all orders are now placed via ultimate64.com. In that webstore, there are a few accessories that can be purchased in addition to the main cartridge. A short, 1' IEC cable, the Tape Adapter Set, and other 1541UII+ cases in alternative colors. Also in the store, just become available for pre-order, is the up-and-coming Ultimate64. But a discussion of this will have to wait for its own review.
I ordered January 2, 2018. But, as mentioned earlier, it was on backorder waiting for another batch to be ready. The order confirmation email included a very professional looking invoice. It shipped on February 3, so almost exactly a month later. At the same time that I received notice of shipment, the email came with the attached Quick Start Guide, as a PDF. This was once included in hardcopy, but is now only sent in digital. Not a big deal. I don't know if the Quick Start Guide is available for download via the website, but reading it immediately answered a number of my technical questions. We'll get to those soon.
Now, I'm in Canada, and the 1541UII+ shipped from the Netherlands on February 3. It arrived at my door on February 16, so it took approximately 2 weeks from the actual ship date, again not bad at all.
It arrived in a small corrigated cardboard box, with a printed address label. The contents inside were protected by large foam packing chips. The 1541 Ultimte II+ cartridge itself, a bit surprisingly, was just loose among the packing chips. However, it arrived unscathed and in perfect condition, so that did seem to work. Elsewhere among the chips was a 1' (30cm) black IEC cable. Technically I don't need another one of these, because I have extras, plus I recently ordered three of these short cables from RETRO Innovations. But, it goes along with the idea that every drive ought to come with its own serial cable. Also in the box was an included 8GB USB thumb drive. That was a pleasant surprise. The drive even has its metal sheath laser engraved with the 1541Ultimate wordmark. Very nice!
UPDATE: July 12, 2018
I've been told on Twitter that not everyone is getting a USB thumb drive with their 1541UII+. Perhaps it was only a promotion. I was not expecting to get mine, so please be aware that this is not necessarily part of the deal. I don't want to anyone to have false expectations and then be disappointed.
I got the white one. But they come in red, black, white, and also transparent. (Actually, at the time of this writing, white is not available. Maybe transparent replaced white? In any case, I really like white, I think it looks sharp. Red is a bit too ostentatious for my tastes.)
Hardware Features and Hookup
I'm not going to spend a huge amount of time describing the hardware features, because others have done such a lovely job. MsMadLemon, I'm looking at you! She has posted a four-part YouTube video series exploring the 1541 Ultimate II+. The first video in the series is, C64 Ultimate II+ Part 1 - Hardware overview and tour. So if you'd prefer to listen to the melodious tone of her voice rather than read my words, please do. I highly recommend it.
I'll give you my thoughts now.
Hardware-wise, the 1541 Utimate II+ is a slightly oversized cartridge, with a ton of ports, buttons, LEDs, and even a speaker, strewn across all sides. It plugs into the expansion port like any other cartridge, and it can also be used with some cartridge port expanders, although I haven't tested that myself. I'll save my description of the top LEDs and the three buttons for when we get into the software side of things.
The layout of the ports is sensible. And despite one questionable decision, they're easy to understand. When the cartridge is plugged into your C64, and you're in front of the keyboard, we'll refer to the right side of the 1541UII+ as the side on your right, that's closest to the power cable and on/off switch of the C64. The left side, then, faces towards the rest of the C64's rear ports. Ports on the 1541UII+ only appear on its left and right sides.
On the right side are an ethernet port and two stacked USB-A ports. These are ordinary network and USB ports. The ethernet port can take an ethernet cable that is connected to the internet, or to a local area network (LAN), and the USB-A ports are for USB-based storage media. There is also a micro USB port, which is labeled in the Guide as "external power." I assume this is used to help with larger devices connected to a USB-A port, if those devices are not independently powered, and draw too much from the C64 itself.
The left side has two ports designed to interface directly to the C64. One is an IEC Serial port, and the other looks like a USB-3 port, but is not actually a USB-3 port. I consider this to be the questionable decision. The PC standard for identifying port variations that look similar is to use different colors. This goes back a long time. For example, when PCs used PS/2 ports for mouse and keyboard, they look physically the same but (typically) the mouse can only go in one and the keyboard can only go in the other. The mouse was green, the keyboard purple. A USB-3 port looks similar to a USB-2 port, and is in fact backwards compatible, but includes extra PINs inside the sheath. To distinguish them, USB-3 (Type A and B) connectors are blue.
On the 1541 Ultimate II+ though, the left-side USB port is blue, which makes it look like a USB-3 port. It's blue because it is the same connector used for USB-3. But only the USB-2 pins are wired up for use with USB. That means, you can safely plug a USB-2 device into this port, and somewhat unintuitively, you can also safely plug a USB-3 device into the right-side USB-2 ports, because USB-3 devices plugged into USB-2 ports automatically fall back. However, the extra pins in the left-side port are not wired up for USB-3. They are in fact used to connect the 1541UII+ to the Cassette port on the C64 (via the Tape Adapter, available as mentioned earlier as an additional purchase.) It's bad news if you attempt to hook up a USB-3 device to the left USB port.
In my mind, that's a bit of a design mistake. The fact that it looks like a USB-3 port and fits a USB-3 cable, seems to just invite someone who doesn't know what it is to try plugging in a USB-3 device to see what will happen. And doing so could damage the device or the 1541UII+. The warnings are duly given in the Quick Start Guide and elsewhere, but it still doesn't seem like a great idea for the long term. Essentially, the port just makes use of a USB-3 cable, because USB-3 cables are commonly available, have extra PINS that can be used for transporting the casette port data, and can also do double-duty as a third USB-2 port. But, if you sell your 1541UII+ to someone, and they don't have or never read the Quick Start Guide, they could damage one or both devices.
Please note that the port on the left is not a USB 3.0 port. Although you may use this port as a 2.0 port, it is not USB 3.0 compliant. The extra signals on a USB 3.0 connector are used to communicate with the tape port (see below). Please do not attempt to attach a USB 3.0 device to the blue USB connector on the Ultimate-II+. You may safely use a USB 3.0 device on the right side of the cartridge. Quick Start Guide — Ultimate II+, Page 5
The extra tape adapter, with included short USB-3 cable
Also on the left side are two 3.5mm audio jacks. These are also color-coded as per the PC standard. The green jack is for stereo audio output, and the blue jack is for stereo audio input. Audio output can be configured for a number of different things: SID audio, Ultimate Audio module (for digital samples), and the drive access sounds can optionally be directed out this port rather than the built in speaker.
Somewhat disappointingly, the audio in port is not yet available. But, as we'll see shortly, the abilities of the 1541UII+ are in a bit of flux. New firmware updates continue to expose more aspects of the hardware to the C64.
What IS a 1541 Ultimate II+?
I will be the first to admit, that I was confused for at least a year about what exactly the 1541 Ultimate (and its later versions the II and II+) actually are. The name makes it sound like it's a kind of 1541 disk drive emulator, and to that end that is indeed what it is. But the name also, in my opinion, does it a disservice, because it is so much more!
When you ask around on Twitter you get comments such as this one:
I got two. Greatest retro add-on of all time IMHO. Rob O'Hara — Twitter, 2017
Really? The greatest retro add-on of all time? That's some pretty high praise for something that you might mistake for just a disk drive replacement. After all, haven't there been disk drive replacements in the past? What makes this one so special?
Even Gideon himself, in my opinion, fails to adequately explain what it is that makes the 1541UII+ such an incredible piece of kit. In the introduction on 1541ultimate.net, besides referring to it as a way of backing up 1541 disks and accessing .D64 images, he only briefly mentions that it can do a lot more.
I would like to make the '1541 Ultimate' hardware available for all Commodore enthusiasts, especially because this piece of hardware is very powerful and can potentially do a lot more than 'just' implementing a replacement for the 1541 drive. Gideon Zweijtzer — 1541ultimate.net, Introduction
Truer words have never been spoken. But he does not describe in prose what that means. For that, you have to look to the bullet point list of features which doesn't spell out exactly how it is all works. So here goes.
The 1541 Ultimate II+ evades having a good name, because it is hard to pin down just one thing that it is. Despite the fact that it was originally meant to be a storage device, to me, it is first and foremost a cartridge. It plugs into the standard cartridge/expansion port of a C64 or C128, and if it is not plugged into that port it doesn't do anything. However, in addition, it also interfaces with the computer via the IEC cable or the Tape adapter and cable.
The fact that it is on the expansion port, aka, it is on the computer's data and address buses, it is able to see and interact with those buses in many ways. Now, clearly, every cartridge is similarly connected to the data and addresses buses, even when it is little more than a single EPROM chip mapped into one of the standard external ROM address ranges. What makes the 1541UII+ different though, is that most cartridges are just hardwired for what they do, while the 1541UII+ is more like its own little computer running inside a cartridge case.
Take a traditional ram explansion unit, (an REU,) for example. It has some RAM chips, and it has a ram expansion controller (REC) chip, and a few minor components like resistors to make the electrical connections work properly. When such a cartridge is plugged in, the REC chip is essentially hardwired into the address bus in one of the external expansion ranges, such as $DExx or $DFxx. Sometimes a cartridge like this will have configurable jumpers that allow you to change the physical hardwiring so it appears at a different address range. When the computer accesses those addresses the REC chip helplessly responds by doing what it's designed to do and copying data between main ram and its own ram.
The more advanced nature of the 1541UII+ puts a layer of mechanical abstraction between what it offers and what the C64 interacts with. It's all configurable by software, which we'll get to.
The 1541UII+ is in this way able to be many different kinds of things that are typically accomplished with different physical hardware cartridges. GEORAM? No problem. It can be a GEORAM cartridge. Imagine though, that all you really want is to run GEOS or Wheels, from the CMD HD or CMD FD, or 1581, or whatever drives you already have, but you want to have the benefits that can be derived from owning a GEORAM ram expansion unit. (In the case of Wheels, it actually requires some form of REU to work at all.) The 1541UII+ can be used in this fashion, completely independent of any of the other things it can do.
A stand-alone GEORAM cartridge clone, 1MB of memory, is sold by GGLabs for $79. And a 512K version, in a professional cartridge case, is sold by Shareware Plus for £39.95.
How about a standard REU, a Commodore 17xx REU? These are notoriously hard to come by these days because they depend on the Commodore REC chip which is no longer commercially available, is in short old-stock supply, and has yet to be directly cloned (the way the PLA and others have been.) The 1541UII+ can be a 17xx REU. Better yet, it can be one of these REUs with access to up to 16 megabytes of ram. Back in the 90s, I paid well over a hundred dollars for a 1750XL clone REU, from CMD, which has a whopping 2 megabytes. Huge compared to the 512K standard 1750. And that was a great investment, as I'm still using that REU today. It makes native programming with Turbo Macro Pro (+REU) much faster and more convenient. The 1541UII+ can be this REU, even if you don't use it for anything else.
And the list of what it can do goes on. But before I mention more of these, I just want to drive home the point, that the 1541UII+ is essentially each and all of these devices, stuffed into just one neat and tidy, beautiful little package, with one price tag.
It can mount .CRT images, so it can become any ROM-based game or utility cartridge, for which you have the ROM image. It can be, for example, the 1541 diagnostic cartridge, with the freely distributed 1541 diagnostic cartridge ROM images.
Better yet, it can mount huge .CRT images, such as the wonderful port of Prince of Persia. That's a 525KB .CRT image designed to be used with the EasyFlash. So, the 1541UII+ can essentially take the place of the EasyFlash cartridge too.
A stand-alone EasyFlash3 cartridge is available from RETRO Innovations for $60.
In late 2010, a group of folks suggested the need for a KERNAL replacement cartridge. This cartridge would allow those with socketed KERNAL ROMs to enjoy KERNAL upgrades like JiffyDOS and would also help KERNAL developers try out new ideas before committing them to EPROM. EasyFlash Product Description — RETRO Innovations
Just as the EasyFlash itself was designed, in part, to be able to serve as an external KERNAL ROM replacement, the 1541UII+ can do this too. I purchased two legit copies of the JiffyDOS KERNAL ROM several years ago, one for a C128, the other for a C64c. I upgraded my flat C128 to JiffyDOS about 2 years ago, which you can see a couple of pictures of here. But my C64c JiffyDOS ROM has been sitting in its anti-static bag literally for years, because when I discovered that the KERNAL ROM in a C64c is soldered straight onto the mainboard, I was too afraid of damaging my precious C64 to risk doing the upgrade. Then the 1541UII+ enters my life, and I'm able to use a JiffyDOS64 KERNAL ROM image to give my C64c JiffyDOS without chopping the original ROM off the mainboard like an animal. (No offense to all those who have.)
The JiffyDOS KERNAL ROM for C64 is available from RETRO Innovations for $20.
You may notice that the EasyFlash cartridge, seen above, has three buttons: Menu, Special and Reset. The 1541UII+ also has three buttons which function more or less the same way. We all know what reset is for, but the special button is there because these cartridges support ROM images for "Freezer" cartridges. You know, those cartridges for game hacking that give the FREEZE64 fanzine its name. The special button plays the role of the freeze button on dedicated freezers. Not only does the 1541UII+ support the ability to be a freezer cartridge, but it comes with all the most common ones built into its firmware:
- Action Replay
- Retro Replay
- Final Cartridge III
- Super Snapshot
Plus other classic cartridges, right out of the box, like Epyx Fastload. I've never owned a freezer cartridge before. I've known about their existence for years, but never felt the need to actually pick one up. Then I became a subscriber of FREEZE64, and the majority of the hacks, pokes and codes depend on having a freezer cart. For the first so many issues I read, I was starting to feel a bit left out. Here were all these great hacks and tricks, and I couldn't use any of them. Now I've got a 1541UII+, and it's like I instantly got access to all the classic freezer carts ever made.
The Nordic Replay cartridge, the successor to the Retro Replay, is available from Individual Computers for 59,94 €.
The menu button does something similar to what a freezer cartridge does. It freezes the machine, but then it takes one into the menu system of the device. We'll dive into that a bit later.
Other hardware features
Before I even get to what is eponymously the point of this device, being a kind of 1541 disk drive, I want to talk about the other hardware features a little bit first.
The Network Port.
The 1541 Ultimate II+ has an ethernet port. That much is evident from the photographs. The specifications list: 100 Mbps Ethernet port (for use with Telnet or FTP)
It's possible that somewhere else on the site describes what the network port is for and what it can do. In fact, I know if you root through the user forums, or even just ask the question, it will come up. So maybe I just didn't do my homework, that's possible. But some part of me just assumed that the network port would be RR-Net compatible. RR-Net feels to me like it has become the de facto standard on the C64 for ethernet interfaces. The 64NIC+, which I bought two or three of, has a native mode, but it also has an RR-Net compatible mode, selectable with a switch. The only other ethernet adapter that I can recall (and also have a few of) is the ETH64, an add-on card that connects to the shortbus of the IDE64. Rumor on the street is that support for ETH64 is quite spotty, as it is not nearly as popular as RR-Net.
Straight out of the box, the network port on the 1541UII+ was a definite disappointment for me. When the description in the specifications said: for Telnet or FTP, I thought those were examples. Telnet and FTP are obvious choices of protocol for C64 users. I spent many years dialing into a Unix shell account, for email, ICQ, IRC, text-based webbrowsing, image conversion, cross assembly, and all sorts of stuff. Having a telnet client over ethernet is the natural evolution over dialing in. And FTP is another obvious use-case. One can easily imagine the usefulness of FTPing into a remote server to fetch .D64 images, or other stand-alone programs and resources, like SID files, MODs or graphics.
Right-hand side of 1541 Ultimate II+ board. The ethernet port is visible.
One of the first things I did was poke around in the software trying to figure out where the FTP and Telnet clients were and how to launch them. The problem is that that's not what this meant at all. I'll get into this a bit more in the section about software, below, but the telnet feature allows a second computer (presumably a Mac or PC, probably elsewhere on the LAN) to telnet into the 1541UII+. The main interface of the 1541UII+ is then navigable via the telnet session, allowing the other computer to change settings, or change mounted disks, without interrupting what the C64 is doing. That's interesting, but it's not what I was expecting, and it's nearly useless to me personally.
What about FTP, then? This too is meant to work the other way around. A PC or Mac running an FTP client can open an FTP connection into the 1541UII+. Once connected, you can remotely upload files to its connected storage media. This is a bit more interesting. If I poke a hole in my router's firewall, and leave my C64 running all day, it would probably let me shoot files I find on the internet, while I'm at work, directly into the 1541UII+ at home. I can at least imagine the usefulness of that, even though, all things being equal, I'd much rather be able to run the FTP client on the C64. This may not be everyone's end goal, but I've always aimed for independence with my Commodore. Cloud services are one thing. Everyone, even on modern computers, accesses and retrieves data that is processed and served up by remote machines. What I mean by independence is the ability to sit in front of my C64, type and mouse on my C64, and get access to new things that are somewhere else, out there, on machines I don't manage, control, configure or care about. FTPing out over an ethernet connection furthers that goal. Being able to use a PC to FTP in, well, that might be useful, but it does not further the goal of independence.
So, is that the end of the story for the network port? Actually… no it's not. It's not as disappointing I may have made it sound. But I'll return to this teaser a bit later.
The Audio Port(s).
Many people in this world are much deeper into music and audio production than I ever will be. I am a simple user, with fairly pedestrian expectations about a computer's audio ability. I love SID music, but that's mostly for nostalgic reasons, and for keeping my ears occupied when playing a game. I have no ear for the difference, for example, between the 6581 and the 8580. And the difference between an emulated SID and a real one is a challenge for me to notice. But then, I was also one of those guys who had a hard time telling the difference between low quality MP3 files and the original CD.
If you want a deeper analysis of the SIDs and SID emulation provided by the 1541UII+, I recommend the third video in the series by MsMadLemon, C64 Ultimate II+ Part 3 - Exploring the Audio, SID and MOD player. Give this one a watch:
We've already learned about how the 1541UII+ can transform itself into a variety of cartridge port expansion devices. Different types of REU, Freezer Cartridges, simple ROM carts, EasyFlash, KERNAL replacements, etc.
The 1541UII+ also has those beautiful little audio ports on the left side. As the greatest retro add-on of all time, of course, it can also emulate a SID chip, or even two. We'll get to the software configuration soon. But the basic idea is that you get to configure what you want to come out of that green stereo audio output jack.
Let's think about this for a second. The original SID is a single channel of audio (with 3 voices, various waveforms, etc.) The audio signal line comes out the standard A/V port, along with the split chroma/luma-sync video signals to go via a single A/V cable to your Commodore monitor. The monitor typically has a single (ie. mono) speaker in it, and a volume control on the front panel. That was all fine and dandy, until we wanted to expand our audio world to stereo via the addition of a second SID chip.
A second SID chip has to be addressed somewhere different than the original, requires specific software support, and provides a second, wholly independent, single audio channel. You can get a stereo effect by using both channels at the same time and routing them to left and right speakers respectively. One common way to add a second SID chip is by housing it in a cartridge plugged into the expansion port. CMD sold the SID Symphony cartridge, and a number of projects have cloned it, such as the SID Symphony II by Digital Audio Concepts, both are shown below.
These cartridges provide the second audio channel via a single RCA jack built into the cartridge. Since the Commodore monitors only provided one speaker, usually you would hook these up to a set of stereo speakers. The audio RCA plug from your A/V cable can be routed to the left speaker and an RCA cable can be run from the cartridge to the right speaker. (These could be reversed if you prefer.) Later solutions came along for embedding the second SID chip on a tiny daughter board that could be installed inside the C64's chassis itself. Such as MixSID, SIDFX or others.
The SIDFX can be purchased direct from Project SIDFX for kr 460 (~$72 USD).
These internal dual SID solutions still get addressed somewhere new, still need explicit software support and provide a second independent audio channel. But the new audio line is present inside the chassis of the C64. So, it is often routed to the unused PIN 7 of the A/V port. In order to get at that second audio channel though, you then need a custom A/V cable with support for stereo audio (many of these are commercially available today, check the A/V Cables section under Video in the Commodore 8 Bit Buyer's Guide,) or something similar such as the Multimedia breakout board shown below.
Now, nothing is perfect. The problem with all of these stereo SID solutions is that each speaker, left and right, is linked only to the audio channel provided by one SID chip. Why is that a problem? Because, as stated, second SID chips need explicit software support. Many programs offer support for stereo SID, but the vast majority do not. As soon as you run software with only mono audio, there is no way to route the mono audio to the second speaker. Instead, the speaker hooked up to the second SID just sits there being totally silent.1
In the most parallel way to dual SID solutions described above, the 1541UII+ can be used just like a SID Symphony cartridge. It plugs into the cartridge port, you can select that it emulate a SID chip, and you can output that on one or both of the channels of its audio out jack. You can then combine the audio from your real internal SID from the A/V cable's audio RCA plug, with a cable you run off the side of the 1541UII+, and boom, it's virtually the same setup as SID Symphony.
Left-hand side of 1541 Ultimate II+ board. The audio jacks are visible.
But, that's just the beginning.
One potential problem with a SID Symphony cartridge is that it could have a different type of SID than the one in your machine. The internal SID might be a 6581, and the external one might be an 8580. The internal dual SID boards usually require you to provide your own SID chip, and have jumpers or switches to configure the board for compatibility with either type. Now, I can't really tell the difference between these, but there are plenty of people who can. The 1541UII+ has the option to choose which type of SID chip it emulates.
The 1541UII+ has a stereo audio out jack though. So, what can it do with that? Rather than running two RCA cables from different sources and joining them together at a stereo receiver or a set of speakers, wouldn't it be great to be able to use a 3.5mm cable from one source? Many PC Speakers (I use Harman/Kardon Soundsticks, shown below.) have a built-in amplifier and use a 3.5mm audio jack for input. It would be so convenient to have one port into which to plug your speakers.
The issue here is, how can you get the left channel (the original) out of the internal SID chip into the stereo mini jack of a device plugged into the cartridge port? The analog audio output of the internal SID is not included among any of the lines on the cartridge port. In fact, as you can see in the section of schematic below (simplified, unrelated video lines and subcircuitry have been removed), you can see that the SID's solitary analog audio output line is hardwired only to the A/V port, PIN 3, and to the RF Modulator for output to a TV.
How can the 1541UII+ provide stereo SID output via a single jack that's hung off the expansion port?
Simplified section of schematic, highlighting SID analog outputs.
The trick is to use "snooping." The 1541UII+ monitors the address bus, and whenever the bus is addressing the I/O register range of the regular SID ($D400—$D7FF) it runs the data through a second emulated SID chip. Technically the internal SID chip will be retrieving the data at the same time, and will be doing its thing and producing its output. But you can just not bother to hook up the internal SID's output to anything and let the emulated SID handle it.
So sneaky. Very clever.
There is one problem with that though. And it's covered by a technical note in the Quick Start Guide:
Technical note: The emulated stereo SID is taking the CPU writes from the cartridge slot. Unfortunately, there is no way to tell whether the access is made to the I/O region ($D400- $D7FF), or to the RAM below. The necessary signal to differentiate between the two accesses is simply not available on the cartridge port. For this reason, when software uses the RAM in this area, it is possible that you will hear unintended clicks and pops, or even notes. Quick Start Guide — Page 6
This is a bit unfortunate, because C64 OS, specifically, makes very serious use of the RAM under I/O. It uses it for screen memory. So, if you use this option of the 1541UII+ with C64 OS, it will probably start squeaking and popping and playing notes uncontrollably as the screen gets rendered.
This problem aside, the 1541UII+ solves two of the problems already mentioned. Regardless of which SID you have inside your machine, you can opt to emulate either SID type, and can select which type to use for each channel indpendently. You can also reverse the channel assignment (swap left and right), you can change the address of the second SID, and, best yet, you can configure the standard SID (the one that's always addressed $D400—$D7FF) to output to both left and right channels simultaneously. AND, you can configure all of these settings in software.
You'd think, well, that's just the bomb! But it's even better than that. The emulated SIDs in the 1541UII+, while completely backwards compatible, optionally open up 5 additional voices, each. So you can program SID music with up to 16 voices simultaneously. The SIDs are not just conveniently addressed and output, but they're on steroids too.
Digital Audio and Other
I've been busy singing the praises of the 1541UII+'s SID functionality, because, the SID is so famously associated with the C64 and music and audio production. But, I used to be a member of Digital Audio Concepts. I added stereo support to the Digimax sound driver in WiNGs. I also wrote a full motion (25 FPS) movie player with synchronized digital audio for WiNGs. When I returned to the scene the first thing I did was order a tube full of MAX505 chips, and bought a prefabbed DigiMax and 8-Bit Stereo Sampler from Shareware Plus.
The Digimax user-port sound board is available from Shareware Plus for £19.95. And the 8 Bit Stereo Sampler is also available from Shareware Plus for £24.95.
It's fair and safe to say, I've been a long time fan of digital audio on my C64. And serious digital audio, not just tiny digital samples in a SID tune. (Although those have become very impressive in recent years. I'm not knocking them.)
The 1541UII+ also embeds the Ultimate Audio Module. This can be enabled in settings, which maps control registers of the module into I/O space. Gideon provides an entire Ultimate Audio Register API document so that programmers can get in there and start making use of it to play digital audio.
Now, one of the trickiest problems for a C64 to play serious digital audio, is that it takes up serious amounts of memory. For anything more than a handful of seconds an REU becomes essential. But, the REU is not direct access, so it was always a bit of a pain to playback samples while continually swapping data between banked and main memory. But as has been proven by Vanessa Dannenberg's MOD Player, it is entirely possible and the results are pretty stunning. The Ultimate Audio module, though, has built-in support for playing samples straight out of REU memory. And, that REU memory, as we saw, can be up to 16 megabytes.
So beyond just a SID Symphony with steroidally beefed up SID chips, it's also a competitor to the DigiMax. It supports both 8 and 16-bit samples, up to to 48kHz. With a convenient API for playing straight from the REU. Samples can be loaded into the REU, and you can instruct it to playback ranges of REU memory. Ideal for digital sound effects in games, or even long spoken tracts. If you can't tell, I'm very excited! I can't wait to dig into it with C64 OS.
Last point about Audio before we move on. The blue line-in connector. I had hoped that this would work much as the 8-Bit Stereo Sampler works, only with wider bit widths, higher sample rates and direct to REU memory, and a simple well documented API. Essentially, my dream would be for it to be the mirror image of the Ultimate Audio module, for recording audio.
Alas, it is, at the time of this writing, non-functional. However, this can change in a future firmware update. I held back from discussing this once before, and I'll hold back again here.
1541 Ultimate II+, The Storage Device
Okay, you've made it this far with me. We're over 7,000 words deep and I'm just getting around to talking about the 1541 Ultimate II+ as a storage device. Let's hop right in.
Like it or not, the Commodore 1541 disk drive is a lot more important to Commodore 64 users than merely being a huge, old, clunky, nostalgic, venerable but outmoded, 170 kilobyte, 5.25" floppy disk drive. The vast majority of the C64's rich software history was written around the features, track and sector layout, and other low-level idiosyncrasies of the 1541 drive. Programmers in the 80s were, rightly, insatiably hungry for storage features, speed and performance. It was therefore never going to be good enough to access files and data merely by their names in directories, and to load them generically and agnostically, using standard KERNAL routines. Tricks and hacks, both for performance and expediency, but also in an often vain attempt to staunch piracy, quickly became the norm for commercial software packages.
The unintended consequence of this is that unless old software gets patched, a very sizable percentage of it will fail to load correctly if it is not loading from a real 1541. Many alternative storage solutions exist and most (although not all, I'm lookin' at you IDE64) pay at least some attention to replicating features of the 1541 in an effort to overcome the most egregious incompatibility issues.
The CMD devices, the CMD HD, FD 2000/4000 and the RamLink, all offered built-in support for 1541 partitions. These partitions are exactly the same capacity and mimic the track and sector layout of a 1541 disk. The SD2IEC-based storage devices allow for mounting .D64 disk images.2 The SD2IEC devices go a bit further still allowing you to configure a file from which to spoof a memory read. These devices also go out of their way to support as much of the DOS command set and syntax that was used in the 1541. Additionally, (unlike the IDE64, and with the exception of the RamLink,) the CMD drives and the SD2IEC devices are on the IEC serial bus. This is important because a lot of C64 software forgoes any layer of device abstraction and interacts directly with the serial bus. The impetus is to extract performance, but the underlying assumption is that that's where the 1541 is always found.
But, we all know that these steps, while useful for improving compatibility, fall far short of replacing a 1541 disk drive. The consequence is that a great many software packages continue to fail, for all sorts of low-level technical reasons, because these modern drives are, after all, not really 1541 disk drives.
The fundamental aim of the 1541 Ultimate (any version of it), is to be, for all intents and purposes, a real 1541. That's a tall order. That's a big ask. But that's what the 1541 Ultimate aims to accomplish. That the computer, running any software, regardless of tricks, hacks or shenanigans, should be incapable of distinguishing between the 1541 Ultimate and an original physical 1541 floppy disk drive. To the end that it accomplishes this goal, one is justified in saying that it is a 1541 drive.
Let's a explore a bit, what that means.
I cannot seem to get a straight answer on the difference between emulation and simulation. At one point in her video reviews, MsMadLemon, after saying emulation, corrects herself and says: simulation. I've searched the web for a clear distinction but I've only come up with two highly ranked answers on StackOverflow that are arguing the opposite of each other.
The question, What's the difference between emulation and simulation, has the following answer with 300 up-votes. That is to say, it is strongly accepted as correct.
The Simulator tries to duplicate the behavior of the device.
The Emulator tries to duplicate the inner workings of the device. Carlos Gutiérrez — StackOverflow, February 1, 2010
However, that question is a duplicate of this previous question, Simulator or Emulator? What is the difference? The accepted answer here, with 385 up-votes, says this:
Emulation is the process of mimicking the outwardly observable behavior to match an existing target.[...]
Simulation, on the other hand, involves modeling the underlying state of the target. Toybuilder — StackOverflow, October 18, 2009
Read those two answers carefully and compare them. As someone deftly pointed out in the comments on Toybuilder's answer, it is exactly the opposite of the answer given by Gutiérrez. Therefore, I'm personally at a loss for which word should be used to describe exactly what the 1541 Ultimate II+ does in relationship to a real 1541. However, according to Gideon himself at 1541ultimate.net:
This piece of hardware implements a 'real' 1541 diskdrive for Commodore computers.[...] Features: Full, cycle accurate emulation of two real Commodore 1541 diskdrives. Gideon Zweijtzer — 1541ultimate.net, 2018
What this means is that, at the lowest level of behaviour, the 1541UII+ acts exactly like a 1541 does. And this gives it unparalleled compatibility with all the whacky software tricks floating about out there. They should all work just as they work on an original 1541 drive.3
Part of what makes the device so hard to categorize is the way it hooks up to the C64, like an octopus, with one tentacle probing into every port. Is it a tape cassette deck? Is it a serial bus device? Is it a cartridge?
Photo compliments of Realm of Zoggins
The truth is that it really is all those things. Internally, it is (up to) two 1541 disk drives. Those drives are connected to the IEC serial bus just like an original 1541. It isn't faster or slower than an original 1541. One aspect that I think can justifiably be called simulation is that the 1541UII+ has a small speaker on the bottom. The speaker can be configured to play the sounds of disk spinning, head knocking, and other twirls and chirps you usually hear from a 1541. This to me feels like simulation, because it makes it feel more like you are using an original 1541 drive, even though those sounds are entirely unnecessary.
When I learned that it plays those sounds, my first thought was, "Oh God, I hope you can turn those off." As with everything 1541 Ultimate, you have a lot of options. You can turn the sounds off completely, but you can also set the volume of the sounds. And you can optionally direct the sounds out the audio out port, whence your SID and Ultimate Audio sounds emerge (unfortunately, not at the same time). Here's the funny thing. The sounds are on by default, so I played around with it for a while listening to them buzz and whirl. Then I decided to shut the sounds off… and I really didn't like it. The silence was deafening, I felt a sense of being lost and experienced slight anxiety without the reassuring feedback that the disk is still spinning and the head is still moving about. After my initial disdain for the idea of simulated drive sounds, in the end I have chosen to leave them turned on, albeit, at a slightly lower volume. Turns out they're pretty useful, who'd have thought?
Storage Media and Reading Content
It's finally time to talk about those USB ports. An earlier version of the 1541 Ultimate had an integrated Micro SD Card slot, and only one USB port. The 1541UII+ has dropped the card slot, but in its place has room for the integrated network port, plus three USB ports, one of which as discussed earlier doubles as the connector for the tape adapter. All of the USB ports are USB-2 compatible. And also as mentioned earlier, a USB-3 device can be used, but only in the right-side USB-2 ports. At which time, the USB-3 device will automatically downgrade itself to USB-2 speed. And one should avoid plugging a real USB-3 device into the pseudo-USB-3 port on the left-side, so as not to have the extra pins used for the tape adapter conflict with the USB-3 device's extra pins.
Virtually any USB storage device can be connected to those USB ports. Thumb drives (one of which comes in the box,) USB-based DVD and CD drives and external harddrives. When I bought my uIEC from RETRO Innovations, my little 11" MacBook Air was missing an SD Card slot. So I went down to the local computer store and picked up a USB to multi-card adapter. It's got 4 card slots, SD Card, Micro SD, Compact Flash and Sony Memory Stick. These adapters are abundantly available, and relatively inexpensive. Here are just a few examples of the many:
When I hooked up my multi-card reader to the 1541UII+, it sees each card slot as a separate device. When no card is plugged in, it simply says "No media" beside that device. You can plug in or remove a card with the power turned on, and after a brief second to scan the card, the device changes from "No media" to "Ready". The ports are numbered:
- Usb0 - Upper port of the pair on the right side
- Usb1 - Lower port of the pair on the right side
- Usb2 - Faux USB-3 port on the left side
- Net0 - The ethernet network port
In the screenshot below, six USB devices are listed. Usb0 and Usb2 are two thumb drives. Usb1L0 through Usb1L3 are all labeled as Multi-Reader, that's how my card reader identifies itself. The sub-devices, the four memory cards, do not get their own names. Your mileage may vary.
The firmware of the 1541UII+ supports the standard file systems, ISO9660/Joliet for optical discs and FAT16 and FAT32 for all other media types. This means you can pop a USB thumb drive into your Mac or PC, copy some files onto it, and then pop it back into the side of your 1541UII+ and those files are now accessible to your C64, with some caveats, which we're coming to. Similarly, the SD2IEC firmware uses the FAT file system on SD Cards, so you can swap an SD Card (or a MicroSD card with an SD to MicroSD adapter card) between your 1541UII+ (with appropriate card reader) and your SD2IEC drive. There are good reasons why you may still want to have an SD2IEC-based drive, which I'll return to discuss later.
When we say that the 1541UII+ can access a file system, we have to be very clear. It is the internals of the 1541UII+ itself that can access those file systems. What exactly gets exposed to the computer, either via the IEC bus or via I/O mapping, is a different story. A 1541/71/81 drive, a CMD HD or an SD2IEC-based device inherently expose on the serial bus exactly the same things that they can see internally. The 1541UII+ is quite different, and it took me a bit of time to fully grok exactly how this works.
When you hook up a CMD HD, or a uIEC, to your Commodore via the serial port, how do you interact with the contents of the media?
Well, you can use BASIC commands to open a channel, on its device number. Open channel 15 to send commands and read the drive status. Open channels 2 through 14 to stream data in or out of a particular file. Or, open channel 0 or 1 to load or save, respectively, a chunk of executable code. This is all very standard stuff, built into the KERNAL and Commodore DOS going back to the PET. (Before I was alive.) If you want to change a partition, or change a directory, or copy or scratch a file, these can all be accomplished by issuing DOS commands over the command channel, channel 15. I wrote a long blog post earlier this year, KERNAL, File Refs and Services, about just this topic.
The 1541UII+ is fundamentally not like this.
When you scan through the serial bus with your software routines, you find, lo and behold, a 1541 drive. Just a 1541 drive (maybe two if you've enabled the other one.) That 1541 drive supports exactly the DOS and command set as an original 1541, nothing more nothing less. (The ROMs can be changed, and we'll talk about how you can do that later, but this is exactly the same as how ROMs can be changed in an original 1541.) There is therefore, nothing you can do or send to that 1541 drive which will penetrate beyond the veil of the disk that is in that drive. Of course, there is no disk in the drive, not at first. And so loading a directory (LOAD"$",8) from the 1541UII+ will result in nothing more than some drive chirping noises, and a flashing LED to indicate an error. (74,DRIVE NOT READY,OO,OO)
How, then, do you insert a disk?
How not to insert a disk.
Just like the EasyFlash, the 1541UII+ has three buttons on the back. These are Freezer, Menu and Reset, although not necessarily in that order. The order of the buttons can be configured in settings, so I'll stick to using their names rather than referring to them by their physical positions. Push the menu button and you are magically transported out of whatever you happen to be doing, and in a flash are presented with the 1541UII+ main menu system.
How this actually works, I have no idea. It is, I would guess, similar to how generic freezer cartridges work, only the 1541UII+ is a significantly more advanced, FPGA-based computer, rather than a simple freezer cart.
Some time after writing this portion of the article, I stumbled upon this little gem from c64-wiki.com: https://www.c64-wiki.com/wiki/Cartridge#Freezer_cartridges
These cartridges exploits the C64's ability to "emulate" the MAX Machine: In this mode, often referred to as "ultimax mode", all of 44 KB are "left open" so that the cartridge may map ROM, RAM and more into the system: The CPU then runs cartridge code, using RAM residing in the cartridge, and thus preserving the "frozen" content of the machine's own RAM. c64-wiki.com
FPGA (Field Programmable Gate Array) is the evolutionary descendent of PROM (Programmable Read Only Memory). But, rather than mere memory being programmable into a chip, an FPGA allows logic and computational gate arrays to be programmed and reprogrammed into a chip. This effectively allows one to program an implementation of a computer which is then written as firmware into the FPGA chip. That is, quite simply, amazing. You can read all about FPGAs on Wikipedia.
A Brief Aside
The 1541 Ultimate II+ appears to be using an Altera Cyclone IV, from Intel. Which you can read more about here.
There it is, smack in the middle.
When you press the menu button everything in the C64 is frozen, the state of its memory, and all the registers of all of its I/O chips preserved. Although, I have no idea what happens if the computer is in the process of interfacing with some external hardware, say, a WiFi modem on the user port. It's just unclear to me what will happen, but I wouldn't be surprised if it failed in some way that can't be anticipated. The C64 then becomes like a dumb terminal into the computer running on the inside of the 1541UII+. The keyboard and joystick control navigation through the menu system. The screen displays whatever the 1541UII+ tells it to display. I believe it really is most closely analogous to a dumb terminal. This is how you are able to telnet into the 1541UII+, and interact with its menu system, without disrupting whatever the C64 is running. The only way this is possible, is that the generation of the menu system, and navigation control, (such as skipping through a long list by typing the first couple of characters of a filename,) is being computed by the FPGA and its firmware. This code and logic are not being executed by the C64's own 6510 CPU itself.
This whole interaction model is very revealing. The 1541UII+ is not your father's C64 cartridge. It is a powerful computer, bundled up in an oversized cartridge case, and interfaced to the C64 via multiple touch points. When you push the menu button to call up the menu system, it hijacks the C64's keyboard, joystick and monitor to function as its own keyboard, joystick and monitor. It relinquishes control, and allows the C64 to take over again, when you press the menu button a second time, or after certain actions are taken, such as mounting a disk image. (Or when you reset the whole machine.)
Okay, so we jumped the gun a bit there. You press the menu button, and now your C64 is being used to control the computer inside the 1541UII+. You can navigate around the storage devices, and navigate through their directory hierarchies, all of which I will describe in more detail in the section specifically about its software and user interface, below.
When you find a .D64 image, you can mount it into one of the two 1541 drives that are exposed on the IEC bus. These are internally referred to as Drive A and Drive B, but they are, in every way that matters, two 1541 disk drives chained together on the serial bus. When you mount a .D64 image into one of those drives, it is the equivalent of inserting a disk physically into the drive. You can even mount a disk into drive B and then disable drive B. That's analogous to putting a disk in a 1541 and then turning that drive off. It may be off, but there can still be a disk in it.
After mounting a disk into a drive, the 1541UII+ automatically relinquishes control, and returns the user to the C64 in the state exactly as it was before the menu button was pressed. Only this time, those 1541 drives on the IEC bus have access to a different disk. And thus, only the inner content of that .D64 image is accessible via serial bus commands.
NOTE: ONLY .D64 images can be mounted. Not .D71, not .D81. The 1541UII+ is a 1541. It is not a 1571, nor a 1581. I was initially shocked to realize it cannot mount, and therefore cannot expose to the IEC bus, my .D81 images. But, in afterthought, this does make sense; You cannot shove a 1581 disk into a 1541 disk drive. And you cannot mount a .D81 image on a 1541UII+.
Drive Settings and Custom ROMs
If you think about it a certain way, it's as though there are several separate devices at work inside the 1541UII+. There are two 1541 disk drives, but there is also a backend carousel, like a sophisticated (and hierarchical) JukeBox, that holds disks for you. You can use the keyboard and monitor to control the JukeBox itself, or you can telnet into the JukeBox, to tell it to insert a disk from the carousel (the USB media) into one of the drives. Then you can talk to the drive, the standard way, to access the contents of that disk.
My JukeBox analogy of the 1541 Ultimate II+
The JukeBox can do other things besides stuff disks into the drives. As mentioned before, it can turn the drives on and off. It can change their device numbers. It can swap their ROM chips. It can even do some more exotic things, such as enable an optional RAM board.4 There is also an option to have the drive not reset when the serial bus's reset line is triggered. I have one IEC Cable, that I always keep handy, from which I physically tore out the middle pin on one end. That's the reset pin. It can be super helpful when you're developing software that keeps crashing. You sometimes want to be able to reset the computer, to get it back to a usable state, without resetting the drive. You can then use the computer to probe the drive to find out where your program got to before it crashed.
The JukeBox analogy works really well in all of these cases. The 1541UII+ is like a robot. You use the computer to send commands to it, and it performs a bunch of actions on your two 1541 drives that originally would have required physical (as opposed to digital) interaction. Flipping power switches, swapping cables, swapping ROM chips, setting DIP switches, swapping disks, etc.Realm of Zoggins
You can choose a file to serve as a ROM. The file has to have the correct extension (.bin, for example) and must be precisely the right size, 16K or 8K, etc. You can choose to use that file as a drive ROM or as a KERNAL ROM. (The size matters, a KERNAL ROM must be 8K for example.) At which point the ROM image gets copied into some form of persistent memory.
When you are configuring the drives, you have the option of using one of the built-in ROMs (1541, 1541-II, or 1541-C), or custom. If you choose custom it will use whatever ROM image you last assigned to be a drive ROM. It appears to me that you can only select one ROM to use as a drive ROM, and if you set both 1541 drives to use custom, they will both use that same ROM. It works similarly for the KERNAL. You find an 8K .bin file, and when you select it there is a menu option to let you use it as a KERNAL ROM. This does not immediately and irrevocably assign it as the KERNAL ROM. Elsewhere in settings you can opt to enable an alternate KERNAL ROM. If you choose custom from there, it will use the one you last selected to use as a KERNAL ROM.
It appears that the ROMs are copied to persistent memory, because if you unplug all of the USB storage media, the custom ROMs keep working. Even if you power cycle the computer, and the 1541UII+ along with it, when it powers back on (even with no storage media connected,) the custom drive and KERNAL ROMs continue to work.
The Ultimate Retro Gamer's Add-on
The 1541UII+ gives you two real 1541 drives. Real 1541 drives are maximally compatible with old software, and commercial games in particular. This makes the 1541UII+ the ideal choice of add-on for storage and more, especially for the retro gamer.
The retro gamer wants to head on over to c64.com whence they can download with a PC or Mac over 2500 games, all of which are distributed in .D64 image format. Load them onto a USB thumb drive, pop the thumb drive in the 1541UII+ and you've got a JukeBox full of your favourite disk-based games, ready to play and fully compatible with whatever whacky copy protection scheme or build-in speedloader they may have.
The 1541UII+ really shines when you're playing a multi-disk game, such as the brilliant new Sam's Journey. It's on 4 disks, or 4 .D64 image files. On a CMD HD, you could copy disks into 1541 emulation partitions, and there are these arcane button combination incantations you can invoke, with LEDs that count in binary. You can use this to change the selected partition number from inside any program, even one that knows nothing about the CMD HD. But, it's so hard to setup and complicated to use, and half the time a 1541 emulation partition is not compatible enough anyway, that I've basically never used it. In all the years I've had a CMD HD, I recall using it for only 2 multi-disk games: Space Rogue and Mean Streets.
The SD2IEC, which suffers from similar compatibility issues, at least made changing disk images more seamless. It introduced the idea of a switch list. A text file that lists several disk image files by name. Pressing the back and forward buttons allows you to cycle through the images in the list. Each directory, containing just the images for a single game, can have its own switch list. There is even a way for it to auto-generate the switch list.
But, nothing beats the 1541UII+. You press the menu button, mid-game, and you have the entire menu system available to change the configuration of the drives, or the other add-on hardware, you can visually navigate the storage media's directory tree, and choose which image to mount. The game resumes with a new disk in the drive. Easy and visual disk image swapping combined with the built-in speed loader and freezer cartridges, makes the 1541UII+ truly the retro gamers best friend.
Rob Caporetto, who makes YouTube videos and other content for Retro Gaming and Reviews, is the perfect fit for showing how the 1541UII+ is used in a retro gaming context. Check out his YouTube Review, if you haven't seen it already.
The Menu System and Interface
There is a lot of stuff you can do with the 1541UII+. And so it is not a surprise that it can be at times a bit overwhelming to try to find where everything is. Included here are some choice screenshots, literally photos of my C64's screen, to show what is being described.
Note: I've changed the color scheme from the default black background to have the more C64 standard look of light and dark blues. The interface colors can be changed in settings, as you'll see below. One point to make, only the background, foreground, border and selection highlight colors can be customized. But certain elements such as screen titles and info footers, and columns of directory meta data, have fixed colors. If you select white as your background color, the white titles on various screens will be rendered invisible. I also remember, many many moons ago, configuring my dad's PC running Windows 3.1 to have the foreground, background and all the other element colors set to black. Oops, everything becomes invisible. As an inquisitive kid I remember having to scramble around through DOS trying to find the right config file to manually restore the colors. A word of warning: You can easily fall into the same trap with your 1541UII+. Do not set all the colors to one color, to see if that'll work. It works, and you end up flying blind.
The interface is built mostly on a series of nested menus. You can navigate using the keyboard or using a joystick in port 2. Joystick control seems to make most sense when you're gaming, and the game wants you to switch disks. You've already got the joystick in hand, you press the menu button, then you can use the joystick to move the selection up or down, press fire on the image file to get the action menu, move the selection to mount the disk, and press fire again to select that action. Very streamlined.
There are only a couple of things I found confusing. There are fundamentally two different types of menu. There is the hierarchy of the storage devices and file systems, and there is the settings menu system. How you control these is slightly different and can be a bit confusing at first.
When you are in the file system, the cursor keys up and down move the selection up and down one file at a time. Pressing F1 and F7 (the topmost and bottommost of the set 4 function keys) take you up or down a page, respectively. This lets you page quickly through directories containing many files and subdirectories. Files are automatically sorted alphabetically, and you can type the first couple of letters of a filename to jump to that place in the list. This is super handy and can make navigating long lists fast and easy.
If you press cursor right when a subdirectory is selected, you will navigate down a level into that directory. Pressing cursor left will navigate you back up a level to the parent directory. If you travel left all the way back to the root level you get to the list of storage devices. Pressing Run/Stop at any time in these file system menus will exit the 1541UII+'s menu system and unfreeze your C64.
If a file is highlighted and you press return, you are presented with a small, contextual, pop-over action menu. A PETSCII art break in the border around the context menu points at the file the menu applies to, and the filename itself also has a highlighted color. The complete set of all the options in these menus is hard to quantify because they are, after all, contextual. What appears in the action menu depends upon the kind of file you've selected.
The action menu for .CRT cartridge image files, for example, offers you the ability to run the cartridge. Firmware updates are periodically released, the context menu for a firmware update file offers you the ability to run the update. Standard options available for all file types include renaming and deleting the file.
The 1541UII+ also has native support for playing SID music files, and Amiga MOD music files. The action menu for these files, then, includes the option to play the file, or show info about the file. It isn't the most feature-full SID Player, but it gets the job done, and it's built right into the firmware. There is also a built in text file viewer, which makes it handy for reading text-based readme files.
The action menu for a .D64 image file, naturally, has some of the most varied options. The topmost and default action is to mount the disk in Drive A. Remember, Drive A is not necessarily device #8. The 1541UII+ has two 1541's which it labels as A and B, and you can think of them as primary and secondary. You can indpendently assign the device number, ROM, RAM Board, and other settings on each drive. But, Drive A is still the primary one as far as the menu system is concerned. Mounting the .D64 is the equivalent of putting the disk in the drive. After mounting you're returned to the C64 automatically.
Other options include:
- Run disk (Mount the disk, reset the machine, and issue LOAD"*",8)
- Mount Disk Read Only (Put a sticker over the virtual disk notch.)
- Mount Disk Unlinked
Unlinked means the image is copied into memory, and any writes that the software makes will go back to the in-memory copy only, not back to the original image file. When a different .D64 is mounted, any changes will be lost.
Most of the same options are available, but to Drive B instead of Drive A.
- Mount on B
- Mount Read Only on B
- Mount Unlinked on B
Additionally, you can view the contents of a .D64. This allows you to navigate into the image as though it were a subdirectory, but without mounting it. You may similarly view the contents of .D81 and .D71 images, but, as discussed earlier, these cannot be mounted, for the same reason that you can't shove a 3.5" disk into a 5.25" disk drive.5
There is another way of loading PRG files, that does not involve mounting a .D64 image and then loading it using BASIC commands. This applies to any stray file ending in .PRG, for example, single PRG files you've put on a thumbdrive that are not embedded in a disk image, as well as files you can get to that are inside a .D64, .D71 or .D81 image by viewing its contents. The action menu for these files includes an option to DMA Load. The 1541UII+ reads the load address out of the first two bytes of the file, and then dumps the file directly into memory starting at that address. It does this over the expansion port, so the file loads effectively instantaneously.
This is such a great option for any game or program that is just a one-filer. DMA stands for Direct Memory Access, so it skips the entire loading process. Nothing is transferred over the serial bus, the file is just plopped into memory about as fast as an REU can swap memory. Let me assure you, DMA load is wicked fast. This also provides the 1541UII+ a way of loading some programs even if they're in a type of disk image that cannot be mounted.
Special REU Features
Speaking of REUs and fast memory transfers, the 1541UII+ has some very interesting REU related features. We've already seen, above, that the 1541UII+ can become an REU, which is great because these have become difficult to acquire due to the unavailability of the REC chip. And we've also seen that the 1541UII+ steps the REU up a notch by expanding it to 16 megabytes of RAM.
But there are some other great tricks up its sleeve. Devices like the, relatively rare, CMD RAMDrive, combined a bank of rechargeable batteries built into an REU. This was the precursor to the much more common CMD RAMLink. The RAMLink had its own power supply and an external rechargable battery to preserve contents if you lose power. It had four 30-pin RAM simm slots for up to 16 megabytes of memory, and it also had a passthrough port for a cartridge-based REU. The REU passthrough was also power-backed so that it would not lose its contents when the computer was turned off. This allowed you to install RAMDOS (built into the RAMLink automatically), and use the REU as a small (by mass storage device standards, 16MB is a lot less than gigabytes or even hundreds of megabytes,) but super fast storage device.
These power-backed RAM devices had to be loaded from traditional storage media though. And if they ever lost power completely, you had to reload them again, and heaven help you if you had files stored on them that were not backed up elsewhere.
The 1541UII+ takes this concept, and puts it on steroids too. From the menu system of the 1541UII+ you have the option of backing up the current contents of the REU, and saving it as a file to your USB storage media.
You can reload the REU from any previously saved .REU backup file. And, you can configure the 1541UII+ to automatically preload the REU with any image file when it powers up. Rather than the contents of your RAMLink being a fixed 16 megabytes, the 1541UII+ gives you a virtually unlimited number of REU images up to 16 megabytes each. And, rather than having all that data held precariously in semi-non-volatile memory, the data is written to the USB media for much more reliable storage.
Of course, the 1541UII+ is loading the memory internally, so it can backup and restore even 16 megabyte images in just a couple of seconds.
The file system menus are good for more than just finding and loading files. Files can be deleted and renamed, via the action menu. You can select individual files by pressing the spacebar, or press C=-A to select all files and directories. (C=-N to deselect all.) While some files or directories are selected you can press C=-C to copy those files. This effectively retains the selection while you navigate off to another directory. Press C=-P to paste the previously copied files to the new location. This allows you to copy files and directories not only between directories, but also between USB storage devices. Files can be copied from inside a disk image to outside a disk image, or into a different disk image, and even a disk image of a different type. For example files can be copied out of a .D81 on an SD Card directly into a .D64 on a USB thumbdrive.
Better yet, copies of directories are recursive! This makes the 1541UII+ one of the handiest ways to seriously rearrange large directory trees. Most file copy utilities on the C64 (FCOPY, DraCopy, or the Dashboard in Wheels, being obvious examples) do not support recursive copying. If you need to move a directory full of subdirectories, doing so is usually a horrendous pain in the butt.
Consider this, you can pop the SD Card out of your SD2IEC or uIEC and put it into a USB Card Reader hooked up to the 1541UII+, and use that to do your recursive file management. That's so great. In this respect, the 1541UII+ really helps further the goal of independence. This is one way that a 1541UII+ makes an SD2IEC better.
We saw that F1 and F7 page you up and down. F3 will always call up help. F5 is for a different type of contextually sensitive action menu. If you are in a directory, pressing F5 brings up a large context menu that is centered, and does not apply to any of the files or directories in this directory, but to this directory itself. Options include the ability to create a new directory here, create a new blank .D64 image file here, or save the contents of the REU hither.
Somewhat strangely, this context menu also has a few system functions that have nothing to do with the context you happen to be in. You can reset either of the 1541 drives, this is the equivalent of turning the drive off and on again. You can reset the C64, this is the equivalent of pressing the reset button on the 1541UII+ itself. There is also an option to reboot the C64. This is slightly different, slightly deeper, than reset. Certain settings in the 1541UII+ will not take effect until the C64 is rebooted.
The settings menu is invoked by pressing F2. My guess is that this is the only shifted function key because you're supposedly going to be accessing settings less often than the other features. If I had my druthers, I'd switch the roles of F2 and F3. F3 currently calls up the help screen, but once you get familiar with the keyboard controls, you basically never need to go into the help screen again, yet it remains forever accessible by a single key. Settings, on the other hand, I find myself going into frequently. Why? There are many reasons. Among them: Sam's Journey requires the second 1541 to be disabled. When not listening to stereo SIDs, you've got to change both channels to output SID 1. You wanna enable or disable the Freezer cartridge? You're in settings. Need to disable JiffyDOS? Settings.
Keyboard navigation is slightly different while in the settings menu, and this can be a bit confusing. The settings menu is hierarchical, but not infinitely so, like file system navigation. When you're in the settings menu, pressing Run/Stop will leave the settings menu. Cursor up and down will navigate you up and down the items in the current menu, however, pressing cursor left and right do not take you back and forth through the hierarchy, well, not quite. If you're in the root settings menu, pressing right will take you into that menu. But from there, left cursor does not take you back up. Instead, cursor left and right cycle the currently selected setting through its available options. Pressing return causes that list of options to be brought up in a contextual menu, much like a file's action menu. Until you realize what's happening it can definitely feel disorienting.
To go back up a level in the settings hierarchy, since you can't do it with cursor left, you press the delete key. This is very strange to me. But I believe it derives from a Microsoft Windows standard, where the delete key is labeled backspace sometimes with a left-pointing arrow. This is used to mean go back. Frankly, as a guy who moved on from using his Commodore fulltime, to becoming a Mac user, this convention has never made sense to me. In my mind, a delete key should be reserved for deleting things, and shouldn't be tossed into the fray of hierarchical navigation. But, if you've been a Windows user for a decade or more, this choice might feel more natural to you.
Settings are divided into several root level sections:
The 1541UII+ has a battery backed Realtime Clock built in. This sets the timestamp on files as they are created or modified. As far as I know, there is no way to programmatically read the RTC from the C64. This would be handy for setting the system clock in C64 OS, for example.
This option in settings allows you to change the date and time of the RTC.
The Audio settings menu is where you go to configure all of the audio options of the 1541UII+. The internal speaker plays the sounds of Drive A. Here you can adjust its volume. I personally turned the volume down to 3, but as noted, I prefer to have it enabled.
Each channel, left and right, can be configured independently. In the screenshots you can see that SID Left is being directed to both channels. SID Left is the built-in SID, your extra SID chip is usually the right channel. These channels can be set, alternatively, to output the ultimate audio module, or the drive sounds. I think it's a shame that the SID and ultimate audio module cannot be configured to output to those channels at the same time.
The SID Base refers to the base address of the SID chip's register range. A SID chip has 29 registers. $00 to $1C. This means that a SID's registers can all fit within just 5-bits. The last few addresses, $1D, $1E and $1F go unused. The built-in SID ignores the upper bits, and thus its lower 5-bits work without respect to the upper bits. This causes the the SID to mirror 31(!) times from $D420 to $D7FF.
A second SID can, technically, be packed into one of these mirrored spaces. The only problem is that when you address the second SID, the first SID will continue to respond as well, because it's hardwired on the mainboard to not even see those upper bits.
However, when you use a 1541UII+, you simply don't hook your speakers up to the internal SID, and allow the 1541UII+'s SIDs to listen in on the addresses. This is called address "snooping." The virtual SIDs are simply listening in on the data that would ordinarily go to the real SID.
The 1541UII+ emulates two 1541 disk drives. And those disk drives only expose to the IEC bus the inner contents of the .D64 images that have been mounted into them. If that were all it could do there would be no way to use your C64 itself, from BASIC programs, or the READY prompt, to open and read files not in mounted .D64 images via the IEC bus.
That is why the 1541UII+ also allows you to enable a software IEC Drive. You also specify the device number, which has be unique, obviously. If the two 1541 drives were #8 and #9 you could make the soft IEC Drive #10. When you return to the READY prompt you can then load a directory from device 10, and lo and behold, you get a directory of files that is coming directly from the file systems of one of the USB storage devices. You can even get the list of storage devices themselves as the root directory.
There are some caveats though. It's far from a perfect solution, yet.
For one, the data is coming over the IEC bus. So, even though it could behave like the RAMLink or IDE64, which wedge themselves into some vectors that the KERNAL jumps through and then route the data over the expansion port, it doesn't do this. The upshot is that it's going to be a lot slower than it could be. The second problem is that the DOS is comparatively primitive. It doesn't support JiffyDOS, so it can't get speed benefits from it. It also doesn't support many of the standards that began with the 1541, and were retained and extended with the CMD drives and further in the SD2IEC.
It has some odd behaviors that make it exceptional, and that make it require special treatment. Its path handling is in some ways more advanced than SD2IEC or CMD's drives. For example, to go up a directory on the SD2IEC you use CD←, this doesn't work on 1541UII+'s IEC drive. You have to use the more PC standard CD.. However, despite this difference, it is in some ways more powerful. There is no way on the SD2IEC to specify a relative path that goes up a folder and then back down another. On the IEC Drive you can do that easily: CD../../games for example.
I hope that in a future Firmware update, or even a future version of the 1541 Ultimate hardware, we will see a much more complete, and perhaps even backwards compatible DOS for the Soft IEC drive. The fact that the Soft IEC drive is, at least at the moment, so primitive is the main reason why I would still recommend having an SD2IEC-based drive. Both can be used in conjunction. But, as a generic mass storage device, for something like C64 OS, that the C64 has full and unfettered access to, an SD2IEC-based drive is still the answer. The 1541UII+ is so much more than merely a mass storage device, though. Having them both on the same system is clearly the best option.
All this said, there is one other option for getting at the full file system, which I'll touch on below, under Future Expandability.
C64 and Cartridge Settings
This is a settings panel that, besides the audio settings, you will probably find yourself in most often.
Here you can choose which cartridge you want to attach to the 1541UII+. The built-in options include freezer cartridges and faster loaders. Turning on an Action Replay cartridge might be something you want to do when you're planning on sitting down with the latest issue of FREEZE64 and hacking some games, or trying out some of the pokes and codes. But you might not always want a Freezer plugged in, maybe you'll swap it out for a GEORAM if you're going to play around with GEOS for a while.
Alternatively, here's where you can enable or disable your custom KERNAL ROM. I use JiffyDOS, which typically comes with a hardware switch for disabling it. Instead, you'd come in here to disable your custom ROM.
All your REU settings are here. You can enable or disable the REU, pick its size in various increments from 128K to 16 megabytes. You can also specify the preload options and path to a preload image, as mentioned above. You can also load an REU image offset to a specific place within the REU.
You can set the address mapping of the ultimate audio module, configure the device number that a game should recognize it was loaded from if you use the DMA Load, and you can also find the option for assigning the physical button functions. There are even a couple of technical options that I have no idea how how to use.
Lastly, there is the option to enable something called the Command Interface. We'll return to this in the last section, below, under Future Expandability.
1541 Drive Settings
This settings panel is available twice. Once for Drive A and once for Drive B.
Here's where you can enable or disable one of the 1541 drives itself. Disabling it is just like turning the drive off. You can also configure its device number here. You have to take care not to produce conflicting ids, just like you would have to with physical drives.
The settings here also let you turn on or off any assigned custom ROM. If you've assigned a JiffyDOS ROM as a drive ROM, here's where you can enable or disable the use of that ROM, by choosing custom*. Alternatively, you can choose one of the built-in ROMs for: 1541, 1541-II or 1541 C.
You can turn on the custom RAM board, adjust the swap delay, disable the reset PIN and a couple of other options. 1541 Freezes in menu, I believe that causes the 1541 to become frozen just like the C64 when you press the 1541UII+'s menu button. This answers at least one of my questions about what happens to externally interfaced hardware when you activate a freezer cartridge. If it were an original 1541 drive, and you jumped into the 1541UII+ menu mid-write, that might cause a problem. But with one of the emulated 1541 drives, it can be frozen in sync with the computer.
As mentioned earlier, the network port and options on the 1541UII+ are a bit of a disappointment to me. It's mostly, for now, for allowing an external computer to reach in. But, even for that it is quite basic and has some caveats.
The network settings themselves are very simple. There is a DHCP option, although I have not been able to get that to work. But there is an alternative to DHCP, by way of a static IP, netmask and gateway.
Conspicuously missing are any settings for FTP or Telnet, which are currently the only two use-cases for the network port.
I was unable to get a Link Up, until I realized that I was connecting via a small Ethernet hub. As soon as I bypassed the hub and connected directly to my Eero router, boom the link came up. The problem is, the Eero is heavily oriented towards WiFi. There is only one lonely LAN port, which I typically hook up to the Voice over IP system for my home telephone. With the 1541UII+ occupying the only LAN port, I was able to get a link up, but no computer or mobile device connected via WiFi was able to FTP or Telnet in. I assume this is for the same routing reasons that prevented the link from being established through the hub.
My assumption was more or less confirmed when I decided to connect my old 11" MacBook Air to the 1541UII+ directly (with a thunderbolt to ethernet adapter on the Mac.) Not only did the link come up, but I was also able to FTP in from the Mac, no problem. That's when the full extend of the matter became clearer.
There are literally no settings for the FTP server. It is always running. It has no configurable security settings, it doesn't even have a username and password! On afterthought, maybe it's a good thing that it doesn't support routing beyond the direct physical link. If you could put it on the internet, say, by port forwarding on your router, it would be wide open to the whole internet. Ouch.
But, this is not the last word. Let's move on to the final leg of this article, Future Expandability.
All the things that a 1541 Ultimate II+ can do is truly mind blowing. It's hard to imagine having anything else to say after writing over 18,000 words on the subject. But, I haven't even touched such things as the IEC Printer emulation, Tape adapter, software backup, and several other nooks and crannies that are outside my wheelhouse. Nor the fact that the firmware can be updated, which can at any time come along and smooth over some of the few rough edges that I've noticed.
If there is one thing that anyone could ever wish for, it would be to have more direct access to many of the brilliant hardware features packed into this wonder cartridge. But, as it turns out, there is a path to direct access. It's called the Command Interface.
The Quick Start Guide links to an API document describing how to use the Command Interface. But it is essentially a generic set of registers through which you can programmatically issue commands to various modules within the 1541UII+.
At present, the primary purpose is to access the full File System via Ultimate DOS. This is completely incompatible with how storage devices are accessed via the KERNAL, but custom software can be written to interface with it. There has already been written one utility, available on the Commodore Scene Database, called Ultimate Opus, available for download here.
Although the Ultimate DOS is for accessing the File System, and can do interesting things such as seek through large files, and return the present working directory (both difficult things to do on older Commodore and CMD storage devices), it also has the ability load and save to and from the REU. This really opens up the REU even more. As C64 software can write commands to the command interface to request the 1541UII+ to load huge files in the REU. This data can then be accessed on the front end via the REU's memory swapping registers. Some clever programming could use this get the C64 to play back video files or access other prohibitively large resources.
The opportunities are quite exciting.
In the forums on 1541ultimate.net, there is discussion about opening up access to the network port via the command interface. It will not be RR-Net compatible, but, in my opinion, any access would be appreciated. The future possibility of writing true networking applications for the C64 that use the 1541UII+'s network port is certainly not foreclosed.
The command interface is interesting. It leaves open the opportunity to get access to any other feature of the hardware, if the will to implement it is there. I'd love to see access to the RTC. And, I think it would also be pretty great if you could programmatically change the configuration of SID chips. Being able to set the right channel to play the left SID, programmatically, before using software that doesn't support stereo, would be great.
Additionally, I'd love to see greater control over the Ultimate Audio module, and get also gain access to that tantalizing blue stereo audio in jack.
If the 1541UII+ is like a JukeBox robot which controls the other hardware, then the command interface is the ability to open up that robot to accept commands directly from the C64.
The future is very bright for the 1541UII+. In my opinion, it's worth every penny, and is a must-have add-on for any serious C64 user, and a brilliant piece of kit for retro gamers.
Last, but certainly not least, Gideon Zweijtzer has been hard at work building the Ultimate64. This is a complete C64 mainboard implementation in FPGA. PLUS, it has all the functionality of the 1541 Ultimate II+ built directly into that mainboard.
Who would ever have imagined that this would be coming to us, here, nearly 4 decades after the original release of the Commodore 64. We are a truly blessed community to have such passion and technical sophistication continuing to support us.
The 1541 Ultimate II+ is available for order now.
The Ultimate64 is now available for pre-order.
- Yes, you can get around this by using a special hardware mixer. Plug both channels into the mixer, and when you run software that supports only mono audio you can flip a switch or twist dials to externally mix the two channels to mono that is routed to both speakers. But, that's a solution above and beyond the essential nature of the problem. [↩]
- The CMD devices also support 1571 and 1581 partitions, and the SD2IEC devices support mounting .D71 and .D81 (as well as .DNP etc) disk images. Although these are less important for compatibility with old software. [↩]
- This is my new choice of terminology. A 1541 Disk Drive by Commodore is no longer the "real" 1541, but rather the "original" 1541. This escape from "real" allows us to think of the 1541UII+ as a "real" 1541 as well. [↩]
- I seem to remember, many years ago, that Raymond Day was big into upgrading the ram in the 1541, and possibly the 1571 and 81. Sounds like this RAM Board option is the same upgrade. [↩]
- Although it is technically possible to insert a 1571 disk into a 1541, the 1541 drive will fail to read the disk correctly. For this reason, the 1541UII+ will not allow you to mount a .D71 image. [↩]
Do you like what you see?
You've just read one of my high-quality, long-form, weblog posts, for free! First, thank you for your interest, it makes producing this content feel worthwhile. I love to hear your input and feedback in the forums below. And I do my best to answer every question.
I'm creating C64 OS and documenting my progress along the way, to give something to you and contribute to the Commodore community. Please consider purchasing one of the items I am currently offering or making a small donation, to help me continue to bring you updates, in-depth technical discussions and programming reference. Your generous support is greatly appreciated.
Greg Naçu — C64OS.com