Tag: DOS

HyperCard

I was looking for something to post about, and then Jeremy Parish posted a mail call for HyperCard comments over on Retronauts.

And I've got a few things to say about HyperCard, because there's a straight line between HyperCard and what I do for a living (and for a hobby) today.

HyperCard was my first development environment. I was 7 or 8 years old and I wanted to make games. Today we've got Kodu and Super Mario Maker. In 1990, we had HyperCard.

HyperCard's interface bore a certain resemblance to PowerPoint, with drawing tools that looked a lot like MacPaint. You could show slides -- or "cards" -- in order, as in PowerPoint, but you could also use buttons to link to cards out of order. So it was a useful language for making Choose Your Own Adventure-style games. "If you want to examine the sound coming from the next room, turn to page 38. If you want to see what's going on outside, turn to page 44." That kind of thing, but with buttons to click.

My game, SEKR's Awesome Adventures, was mostly that sort of thing. (It's pronounced "Seeker", and it was my grandpa's dog's name.) There were a few roundabout ways to get to where you were going, some of which would result in your untimely death. The most complex sequence involved selecting two tools from a list that you'd be allowed to use later on -- and keeping track of your selection required just a bit of actual programming.

I mostly built SEKR through the simple point-and-click frontend, but HyperCard also came with its own programming language, HyperTalk. I used HyperTalk to track what weapons/tools the user selected, and the endgame would adjust accordingly: you're in a pit; did you bring the grappling hook? It's pitch-black; did you bring the night-vision goggles? Store a variable and test a conditional; this is absolutely as simple as programming gets. It was a pretty good place to start.

And that's more or less how the Web works: fundamentally, it's a set of pages, and users navigate between them using hyperlinks. For more complicated stuff than just moving between pages, your browser has built-in support for a scripting language.

The similarities aren't coincidental. The HyperCard Wikipedia entry says:

Through its influence on Robert Cailliau (who assisted in developing Tim Berners-Lee's first Web browser), HyperCard influenced the development of the Web in late 1990. Javascript was inspired by Hypertalk.

HyperCard is where I started programming. And while I never did make a career of game development, I'm still programming, and there's a more-than-passing resemblance between developing for HyperCard and developing for the Web.

My grandmother's been cleaning old stuff out of her house, and a few weeks ago she gave me a bunch of old 3.5" floppies. SEKR's Awesome Adventures is probably in there somewhere -- the original graphical HyperCard version, the text-only remake I put together in QBasic a few years later, and maybe even the unfinished Turbo Pascal port with PC speaker music (which played fine on the 286 I wrote it on but way too fast on a 486; you had to turn off Turbo to slow it down. Remember Turbo buttons?).

I really should buy a USB floppy drive and see if I can get any data off those disks.

YUMI

Had a spot of trouble with a hard drive at work today and decided to see what thumb drive Linux is like these days. I found a program called YUMI (Your Universal Multiboot Installer) at pendrivelinux.com and discovered that it's pretty great.

YUMI is a simple Windows executable. It's got a long list of Linuxes -- Ubuntus, Fedoras, server OS's like CentOS, small OS's like Damn Small Linux and Puppy, and non-Linuxes like FreeDOS, as well as special-purpose diagnostic software like Ultimate Boot CD and various AV vendors' recovery discs.

Click on one of the supported OS's, point YUMI at an ISO, and it'll install it on your thumb drive -- as many as will fit, with GRUB to select which one you want at boot time. Better still, if you don't have an ISO, it's got a one-click download for every single one of them.

And while it's got dozens of supported OS's built in, it'll do arbitrary bootable ISO's, too; I tried two and found that one (the latest FreeDOS installer) worked while the other (Hitachi Drive Fitness Test) did not.

As for Puppy, it's definitely seen some progress in the years since I last used it but my gripes remain much the same: instead of programs being labeled by name, they have generic descriptions (hypothetically a good idea for neophyte users who don't know what Seamonkey is, but in practice I think "Web" would probably be a better name than "Browse"), and the package management system is less than entirely intuitive. Still, for coming in around 100MB it's a damned impressive, and a whole lot easier on the eyes than the last time I tried it.

Anyway, YUMI's made it easy enough to set up that you can easily spend a couple hours (or more) screwing around with various USB bootkits. It's an impressive piece of software and one I'll definitely be keeping in my admin toolkit.

(There appears to be a Linux equivalent called Multisystem LiveUSB Tool. I haven't tried it out yet so I can't vouch for it, but if you're looking for, you know, a Linux tool for Linux, that might be something to check out.)