Ladder on a Modern PC

Lab Notes

One of my favorite home computer games from early childhood is Ladder for the Kaypro, an action platformer rendered entirely in text characters. Here’s how to play it on your modern PC.

The Ladder title screen
The Ladder title screen, running in macOS with two layers of emulation

Ladder by Yahoo Software was bundled with the early Kaypro computers of the 1980’s, bulky “luggable” portable computers with green monochrome screens optimized for text. The Kaypro ran the CP/M operating system. My father used his Kaypro primarily for writing in WordStar. When he wasn’t using it, I used it for Microsoft BASIC and Ladder.

Ladder is an action platform game drawn entirely in ASCII characters. You are the lad, represented by a p or q depending on which way you’re facing, or g if you’re sitting still. You walk on platforms =, climb ladders H, and jump over falling boulders o, to collect minor treasures & and reach the main treasure $. Some levels feature spike hazards ^. Touching a hazard or boulder loses and life and restarts the level. Trampolines . send you jumping in a random direction if you land on them. The upward motion of the character and downward motion of the boulders remind some of Donkey Kong, though there is no gorilla or any real other characters other than the lad. (Boulders emanate periodically from hanging V and are absorbed by sitting *.)

Level 2 of Ladder
Level 2 of Ladder

The game can be quite difficult, but it remains addictive thanks to surprisingly precise and fluid controls. Jumps have predictable arcs along the character grid, and you can change direction in mid-air or stop to wait. Clever tricks like hovering over a boulder can rack up points, and several of the single-screen levels have multiple paths and additional challenges. The original game only included seven levels, though to progress you had to loop back to level 1 multiple times, so later levels were difficult to reach.

The source code to the original Ladder is lost to time, but the binary .COM files are easy to find (though not necessarily the complete set). There have been several attempts to recreate Ladder from memory and folk knowledge: Ladder written in Java by Stephen Ostermiller, Ladder in Go by Mats Engstrom, and Ladder in Turbo Pascal by Github user mecparts. I assume at least one of these extracted the original level data from the Ladder .COM file, if only because it’s not that difficult to do.

I’ve always kept it in the back of my mind to periodically try to figure out ways to run the original Ladder program, but I’ve never really done a deep dive on CP/M. For no reason in particular, last night I was inspired to poke around again, and I found a comp.sys.cpm Usenet post from 2020 (!) with a lovely tip: use two layers of emulation, a CP/M emulator written for MS-DOS, running in DOSBox. Minutes later I was playing Ladder on my MacBook Pro.

Things you’ll need:

To set everything up:

  1. Unzip 22nce132.zip into an empty folder. The macOS Finder refused to open this, but I was able to use the unzip command in a Terminal: mkdir 22nice; cd 22nice; unzip ../22nce132.zip
  2. Unzip LADDER.ZIP into the same folder. This provides a file named LADDER.COM. This is a CP/M command file, not an MS-DOS command file.
  3. Open DOSBox. Run all following commands in DOSBox.
  4. Mount the 22nice folder as drive C: mount c ~/Downloads/22nice where the path is whatever it is on your system. Switch to drive C: c:
  5. Rename ladder.com to ladder.cpm: ren ladder.com ladder.cpm
  6. Use 22NICE’s gencom to wrap the CP/M program as a DOS program, using the Kaypro display mode: gencom ladder.cpm dis=kay This produces a new ladder.com DOS command.

You can now run ladder at the DOS prompt to start the game.

Controls:

  • , and . move left and right
  • a and z move up and down when on a ladder
  • Space to jump
  • b to stop (useful!)
  • Escape to pause

Of course, you can use 22NICE and DOSBox to run other CP/M software this way. If you do, check out the 22NICE manual (22NICE.DOC) for information about some handy features like keyboard mapping.

Hooka! Hooka! Hooka!