Skip to content

The Exchanging Disk Dream

Jason Scott edited this page Nov 25, 2013 · 1 revision

I have a dream. I'll explain the main context, then I will explain the theoretical implementation, which is up for debate.

Context

The Internet Archive has and will continue to grow its "software presentations", where we (and others uploading) will create items that, if you click on the "run" link in them, will then bring you to our standard loader (in Internet Archive clothing), and allow you to play the software. You can also read up on it at the page, and eventually can use a keyboard, and so on. In these cases, there's stuff at the archive, and the JSMESS emulator is the "player" to show you the stuff. That's going swimmingly.

However, there's another way to display computer history that I think is important - that of "just a computer".

The idea is that the Internet Archive would have a "computer lab", which consisted of your ability to choose a computer, and boot it up straight (with a default disk in the drive). Then you have "a computer". This computer presentation will possibly be more sexy than the way we currently do it, or not. But it's just 'a computer'. Just an Apple IIe, or just an Atari 800, or just a Commodore 64.

So far, all of this can be done already with the technology we have, no changes needed.

The functionality I'd like to have is the ability to load and save out floppies in the "drive" of these machines. I'd like you to boot up this "computer", click on a disk drive, and it opens a file dialog, which you can then give it a disk image, and it will have that disk image in there. Similarly, and even more important, you should be able to click on the disk, and SAVE OUT the disk image in there, to your local computer.

This will turn it into a truly portable, instantaneous, practice-anywhere learning computer, allowing people to put it into a window and then read documents online (in another tab or window), and program projects they can keep for another day. A miracle indeed.

IMPLEMENTATION

Disclaimer: I am utterly, totally ignorant about how this would be done in Javascript, and the structure of MESS itself for the purposes of providing images. The language I use may to discuss this implementation may be completely off.

There is a very slight dovetail here in that right now, the JSMESS emulator will only work with a single image. (In theory we can put two images up, one in each "drive" if a system has two drives, but that's the same situation. In once, in forever.) This is fine in most cases, but then we have, say, Oregon Trail, a seminal work, that requires two floppies.

Ideally, you should be able to boot up one of these multi-disk items, play it for a while, and then when the program says "Insert Disk Two", you can click on an icon or a button, and it will give you a list of disk images to choose from, and you can pop it in. (The acid test for this is a good Sierra On-Line program like Time Zone, which has six floppies.)

In that scenario, everything is still a case of putting in images, all of them existing on a server somewhere. It'd be a good middle ground for a range of cases and welcome, but I'm proposing going further.

I'd like it that if you click on a save icon, it will take the floppy disk in the drive and save out the disk image, pulling up a file dialogue, and which you then end up with MY_FLOPPY.DSK in your local disk. This should work in other emulators and other programs. I realize if you try and save out crap, the result is crap, just like on a "real" computer. But the general sense here is that if people are messing with these computers, they should be able to "save out" their work, so they can take it away.

Someone should be able to boot up an Apple II, "put in" a blank disk", and then write a BASIC program and save it on the "floppy", and then at that point say "save disk" and have a .dsk that, later, they can insert into the "Apple II" JSMESS instance.

This works also for inserting - you should be able to say "take this local file and shove it in the emulator". Same idea.

This is true virtual computing. You're using a computer in your browser.

There's the dream.