A DOS Education in Your Browser

In the 1970s and 1980s, a lot of us learned to program using good old-fashioned BASIC on machines ranging from Altairs, Commodores, Apple IIs, and the like. Sometime in the 80’s the IBM PC running MSDOS because the de facto standard, but it was still easy enough to launch BASIC and write a simple little program. Of course, there were other programs, some serious like C compilers, some semi-serious like flight simulators, and some pure fun like Wolfenstein 3D.

If you read Hackaday, you’ve probably noticed that a lot of people emulate old computers–including old MSDOS PCs–using a variety of techniques, including Raspberry PI boards running DOSBox or another emulator. Honestly, though, that’s a lot of effort just to run some old software, right? You can load up DOS emulators on your desktop too. That’s a little easier, but you still have to find software. But if you are as lazy as we are, you might want to check out the MSDOS collection at archive.org.

The collection has over 7,000 old MSDOS titles which is impressive. But what is fascinating is that they will all run inside your Web browser. You are two clicks away from running BASIC, Borland C, flight simulators, or even Commander Keen. Be careful, though. Some key strokes (like Control+C) may not work in the browser.

If you are really hardcore, you can even boot some old versions of Windows in your browser. Or, if you want to go further back in time, try emulating DOS in your browser and then emulating a TRS-80 under DOS. There’s even old versions of Microsoft Word and Wordperfect if you want to write blog posts old school.

If you wish to do some hardware hacking, you don’t have to do all this in the browser. There are also plenty of old computers you can emulate in your browser. There’s even a Windows 95 in a browser (see the video below).

32 thoughts on “A DOS Education in Your Browser

    1. Likewise. I cut my teeth on QBasic, learning to code first by hacking up the examples, then working from there.

      Had some code somewhere for controlling a Fujitsu DL1100 dot-matrix printer, a Roland DG-DXY100A plotter (which we still have) and somewhere I have notes of my reverse engineering the SoundBLASTER 16 sound card mixer chip — done from QBasic/QuickBasic using in and out calls to I/O port 0x225.

      1. I spent a LOT of time programming on QuickBASIC back in the 90s. I’ve since lost all of my BASIC code, which is a shame because I’d like to look back at some of the more fun/interesting things I pulled off and see if I could implement similar things on a microcontroller.

        Much of my efforts went into a programmable menu program for my Dad so that he could more easily navigate his own DOS box. I even managed to get WIN95 to run UNDER my menu program, something MS claimed wasn’t possible at that time.

        While I don’t miss those days, it might be fun to check some of this stuff out.

      1. Exactly

        To clarify –
        When DOSBox runs in browser, it is being emulated by the browser because it’s native environment is x86.

        When DOSBox runs in a close environment on a windows machine it is running in a virtual machine or sandbox.

        1. Nope, pretty sure DOSBOX is a flat-out x86 emulator, whatever it runs on.

          A virtual machine, the VMWare type that’s so popular nowadays, runs stuff on the machine’s own core, with traps set to catch hardware accesses, etc.

          In DOSBOX programs run in an emulated machine. The emulated program doesn’t run on the host core. Well, except if you use recompiling emulation mode, but it’s still not the same thing. Although the difference is a bit thinner. Point is, DOSBOX is a traditional emulator. The ARM version contains all the code of the X86 version, you can compile the source to anything. DOSBOX’s “native” environment is C code. In a VMWare-type virtual machine, the host CPU needs to be the same type as the “virtual” one.

  1. I don’t have to emulate, I actually have a ms-dos computer sitting in a desk next to me, with a CRT, of course. I also recently picked an IBM N33sx from flea market for 2,30€. Now I just need to find a floppy drive for it.

    1. You can still buy floppy drives even though there getting harder to find now.

      If you want to use floppy disks then buy some of those silica gel moisture absorbents and watch a couple of youtubes on how to clean floppy drive heads.

      Alternately make a box with a light in it to keep the air dry inside.

      One floppy disk with a bit of surface mold will ruin everything when it gets on the heads of the floppy drive and transfers to other disks. So you need a storage environment that kills mold. Dry air is the best – stave it of moisture.

  2. Ahh, Windows 95 – three different flavors –

    Win95A – The 300MB mouse driver. It would crash often but the mouse would still control the mouse cursor. It couldn’t do anything of course but all the same move the mouse and the mouse pointer would move even though everything else was frozen.

    Win95B (try two) – Win95B was Win95A with some bug fixes and with lots of drivers included. Many of the included driver would crash the system.

    Win95C – Win95C was Win96B with most of the drivers that crashed it removed. Not all, just most.

  3. From my oldie Basic-10 on the DecSystems KL-10 & PDP-11 etc One got used to optimising programs such that it became a mostly automatic skill even at high levels eg re linked list data structures etc where IT students were asked to design an interpreter of a psuedo language inside an existing interpreter etc, so often looked like magic to neophytes, so has anyone noticed the redundancy in the title .gif program where the entire operation easily reduces to:-
    10 Print “Hello Hackaday”
    20 Goto 10
    (Well unless there was a thread/debug watching how quickly i changes re print speed)

    Having said that, I use MBASIC in a CML window in XP to do my ASX day trades confirmation settlements from the .csv which Commonwealth bank’s commsec supply as well as run it to assess cr/dr re liquidity with 100’s of transactions. All in 62K bytes available & without EMS/XMM :-)
    Runs a treat & damn fast too with nil effective call on system resources. Getting it to intercept IRESS real-time data feed from the ASX exchange data supplier is another matter, I might be tempted to gravitate to VBA in Excel – eeks !

    FWIW: I’m looking for a small tight basic like language with .net access & credentials (https/cookies) which is as quick & as easy to start/use as MBASIC which can compile to a .exe ?

    Even a lite windows version of Pascal to do above would be find, line numbers optional :P

    1. Sounds like you know your thing.

      As for .net – you can’t compile to exe without having the .net distro already installed on the target machine.

      Check out RapidQ

      I am biased though – .net puke puke puke

      1. I like .Net, though I am biased since I’m a .Net developer. If you are targeting windows, there is no problem in expecting the .Net framework to be there. For Linux, there is still support (Mono) although it’s missing pieces here an there. MS recently open sourced the core framework, run-time, and the compilers though, so hopefully cross compatibility will keep improving. Also Visual Studio is a free download now as well.

        JIT compilation also means there is no extra effort on your part to target x68, x64, or ARM, if you so choose, and it’s very performant (it compiles to native and runs like normal code). The latest version of C# also includes direct compile to native code, so you can include better optimizations than the Jit can offer(since JIt has to be fast). You can also code in C++ and mix .Net with standard C++, using manual memory management where you want and .Net framework where you need it. You can also call C/C++ libraries from .Net easily. Throw in C++ AMP for parallel processing (not part of .Net, I just think its cool) and you have a lot of tools at your disposal.

      1. Though the Lazarus IDE annoys me sometimes, I tend to use FreePascal for most of my hobby programming. You can even cross-compile (with minor modifications sometimes) to run on other systems than what you’re developing on.

    2. I tend to do most of my light .net hacking in VBA: It’s present in all the MS Office apps, has access to pretty much all of .Net if you’re willing to jump through some hoops (it doesn’t have the full OO capabilities of VB.Net), and best off, putting your results into Word or Excel is trivial.

      Strangely, the language has not appreciably changed since Word 2000 upgraded it from WordBasic — it needs modern VB.Net’s TRY/CATCH/FINALLY if nothing else — but it can certainly get the job done.

      1. I do electrical hardware design at my engineering job, but I end up writing a lot of VBA to make spreadsheets do my work for me. I’m surprised at how much time some people are willing to spend manually modifying lists of data one entry at a time when a regular expression or a few lines of code can finish the job in a second or two (and avoid the errors humans introduce).

    1. You’re probably looking for QBasic.

      QuickBasic was and IDE that had an editor and separate compiler.
      QBasic was an interpreted language (or pre-compiled) so you could edit your program and then click “Run” in the same window.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s