The “save” icon for plenty of modern computer programs, including Microsoft Office, still looks like a floppy disk, despite the fact that these have been effectively obsolete for well over a decade. As fewer and fewer people recognize what this icon represents, a challenge is growing for retrocomputing enthusiasts that rely on floppy disk technology to load any programs into their machines. For some older computers that often didn’t have hard disk drives at all, like the Commodore 64, it’s one of the few ways to load programs into computer memory. And, rather than maintaining an enormous collection of floppy discs, [RaspberryPioneer] built a way to load programs on a Commodore using Microsoft Excel instead.
The Excel sheet that manages this task uses Visual Basic for Applications (VBA), an event-driven programming language built into Office, to handle the library of applications for the Commodore (or Commodore-compatible clone) including D64, PRG, and T64 files. This also includes details about the software including original cover art and any notes the user needs to make about them. Using VBA, it also communicates to an attached Arduino, which is itself programmed to act as a disk drive for the Commodore. The neceessary configuration needed to interface with the Arduino is handled within the spreadsheet as well. Some additional hardware is needed to interface the Arduino to the Commodore’s communications port but as long as the Arduino is a 5V version and not a 3.3V one, this is fairly straightforward and the code for it can be found on its GitHub project page.
With all of that built right into Excel, and with an Arduino acting as the hard drive, this is one of the easiest ways we’ve seen to manage a large software library for a retrocomputer like the Commodore 64. Of course, emulating disk drives for older machines is not uncommon, but we like that this one can be much more dynamic and simplifies the transfer of files from a modern computer to a functionally obsolete one. One of the things we like about builds like this, or this custom Game Boy cartridge, is how easy it can be to get huge amounts of storage that the original users of these machines could have only dreamed of in their time.
Oh. My. God.
1st class job! The “hardware connections” graphic in the Instructables write-up is outstanding. I love the Lego project enclosure.
Now to port this to c64 Multiplan to manage your c64 from a spreadsheet on the c64!
Functionally obsolete? Fight me!
“this task uses Visual Basic for Applications (VBA), an event-driven programming language built into Office,”
I find it interesting that we have reached a time where that has to be explained. I hope this is a sign of Microsoft’s market dominance fading away. (so long as it isn’t going to Apple anyway)
I will never forget the “ILOVEYOU” virus. It was written in VBScript which is an interpreted subset of VBA. Someone infected with it had my workplace’s fax machine in their address book. One day in engineering we got the call that the fax machine was spitting out reams of paper filled with “garbage”. As a more or less dumb device the fax machine only printed what it received, no interpreter. Skimming the surprise printout for only a minute I was able to learn that VBScript had all sorts of built in methods for writing to the registry, accessing the user’s address book and sending messages. It was a veritable virus/worm author’s toolkit! And it lived in every Microsoft Office product and Internet Explorer where it would automatically execute this stuff without ever asking or informing the user.
A lot of my long lasting opinion about Microsoft was formed that day.
64-bit Intel MCS BASIC-52 VM machine language verbs?
Verbs compile 0123456789abcdef hex digits.
c, puts on hex digit into memory, then advances the machine language pointer to the next available location in memory.
s, puts two hex digits in memory, with most significant digit in higher memory, if necessary.
d, puts four hex digits into memory, the advances the machine language pointer.
q, puts eight hex digits into memory …
Poster introduced to this software technology in ~1982 by studying the fig forth 8080 source code listings.
c, s, d, q, implementations no greater than on page of code for compliance with Boeing hardware engineers’ software standards, of course.
Just because you *can* use excel to do something doesn’t mean you should.
It means you *must.*
Hail Satan!
You’d think that by now Excel would be powerful enough in its own right to emulate a C64 entirely.
… You do you. Just don’t ask me to troubleshoot that container ship full of containers, filled with dumpsters, all on fire. :D :D :D
(We have a few analytical analysts in our finance department at [RedactedCo] that work with spreadsheets that pulled data directly from several database servers, injected the data into specific pages within a workbook, then did whatever black magic they do to the numbers, and put the results onto a separate workbook with pages for each department. First time I’ve even seen Excel want more than 4 GB of memory…)
Since the addition of the Lambda function circa-2021, Excel is now is Turing Complete and can do anything that can be done with an automatic digital computer. Look upon their work and despair: https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/
They’re waiting for you, Gordon. In the test chamber…
Oh, now that’s just twisted enough to be interesting!
” “save” icon for plenty of modern computer programs, including Microsoft Office, still looks like a floppy disk, despite the fact that these have been effectively obsolete for well over a decade. As fewer and fewer people recognize what this icon represents,”
I counter that new users don’t need to know what a floppy disk was, they just need to learn the icon means “Save”.
I think there are plenty of “ancient” things (words, images, practices, etc.) that may be unrecognizable by today’s youth, terms relating to telephones (e.g. “dial this number”) or audio recording (e.g. “like a broken record”) that may continue for decades to come.
Interesting; I noted that this doesn’t do a full-blown emulation of the disk drive (I can only assume it’s a ‘classic’ 1541 drive and not the 1571 or 1581) as the notes mention that “Some C64 program files do not load because they require features of the actual disk drive hardware”- I’m going to guess that’s the copy protection, which on that platform got pretty wild and crazy at times.
I must say this is quite an achievement. Especially that someone was willing to even work with VB in Excel to complete this project . KUDOs for that!
One of my first tasks here (10 years ago now) was to ‘purge’ all all Excel and Access VB code from our automated systems… which I did. Took me 3 years about to complete removing all that unreliable/unmaintainable code written by ‘non-programmers’. Now we have real stable systems and very few call-outs… And no need to install any OFFICE products there either. VB doesn’t have a good ‘rep’ around here. I think I’d almost rather program in Cobol…. before writing any VB code!
It uses an Arduino to act as a drive so the next step would be to use a PiPicoW or ESP-32 so you can load the file over wifi.