Due to an email about some software I wrote in the early ’90s, I was also reminded of a MUD version I wrote in Turbo Pascal1. Of course, I was ridiculed when I tried to share this in the community at the time. MUDs were written in C on Unix machines!2 Not under DOS in Pascal, for heaven’s sake?!

Of course, those people only knew about “standard” Pascal, whereas Turbo Pascal could basically do what Borland C++ could3. If I remember correctly, the unit files were even compatible (or something like that—it has been some time)4.

But the biggest mistake was that they didn’t think outside the box. While I freely admit that MyMUD wouldn’t be able to deal with hundreds of people, two or three users should have been perfectly possible5.

So what was MyMUD? It was a TinyMUD clone written in Turbo Pascal, designed to be used on a shared data file using record locking to avoid collisions6.

At the time I wrote the program, I was professionally running a BBS7 with six telephone lines and a UUCP interface to Internet newsgroups as they existed back then8. All of this was done with five PCs, a LANtastic network9, DESQview10 for multitasking, and QEMM11 for memory management.

This was also the environment in which I ran MyMUD: computers connected through LANtastic, with a shared folder containing the database and support files. And yes—it worked.

I did share the code at the time, and a few people played with it, but it never became popular. Other systems were better and more mature. Still, as a proof of concept, it worked quite nicely.

Since I still have the code (and the decompiled version), I recently tried running it in two DOSBox instances12—and lo and behold, it still worked. And I could still read the code, as it was very modular13.

So here’s to the days of yore, and to my exploration of MUDs on machines people could actually have at home.

Footnotes

  1. Turbo Pascal – A popular Pascal compiler and IDE from Borland in the 1980s–90s, known for fast compilation and advanced features for its time. Unlike “standard” Pascal, it supported DOS-specific memory tricks and modular programming through units.
  2. Most MUDs of the era, including DikuMUD, TinyMUD, and LPmud variants, were written in C and ran on Unix systems. DOS-based MUDs were extremely rare.
  3. Turbo Pascal had many features comparable to Borland C++, including modular units, separate compilation, and direct hardware access, making it surprisingly powerful for DOS.
  4. “Unit files” in Turbo Pascal were essentially modules that could be compiled separately and reused—some compatibility with Borland C++ headers existed, but it was limited.
  5. The scalability limit was due to DOS and Turbo Pascal’s memory model (conventional 640 KB, EMS/XMS extensions). Two or three simultaneous users could be handled through careful file locking; hundreds would have been impossible.
  6. TinyMUD clone – MyMUD replicated the core ideas of TinyMUD: a simple text-based world, flexible object-oriented design, and multiple users interacting via a shared database. Record locking was used to prevent corruption when multiple clients wrote to the same data simultaneously.
  7. BBS (Bulletin Board System) – Early pre-Internet online communities where users connected via modems to exchange messages, files, or games.
  8. UUCP – Unix-to-Unix Copy Protocol, used for sending emails and Usenet newsgroup posts across the early Internet infrastructure.
  9. LANtastic – A peer-to-peer LAN networking software popular in the late ’80s and early ’90s, allowing DOS PCs to share files and printers.
  10. DESQview – A multitasking environment for DOS that allowed running multiple DOS programs simultaneously on a single machine.
  11. QEMM – A memory manager that helped DOS applications access extended memory beyond the 640 KB conventional limit.
  12. DOSBox – Modern DOS emulator, useful for running legacy software on contemporary PCs.
  13. Modular coding in Turbo Pascal made the program readable decades later, demonstrating good programming practice even in small hobby projects.