Overview
If you had a home computer in the 1980s, chances are you played the game Zork. Zork is a computer game that first appeared on home computers back then. Unlike arcade inspired games, however, Zork is a text adventure game. Using just a keyboard and text screen, you could type in sentences like âopen mailbox and read leafletâ Â and the computer would understand and respond to it. Despite the apparent simplicity, stories grew out of the text adventure with puzzles to solve, making Zork a compelling game to play.Â
Zork sequels and other text adventure games appeared on home computers, thanks to the Z Machine, an interpreter for running text adventure games. With the release of a Z Machine for Adafruit's Fruit Jam (CPZ Machine), owners can now play these text adventures in their original full text glory!
Read more for a brief history of Zork and the Z Machine and how to install it and play it on your Fruit Jam.
Page last edited January 14, 2026
Text editor powered by tinymce.
Zork: the ChatGPT of the 1980s
Chatting with computers is common today, just ask ChatGPT :-) Â Unlike the near limitless resources that ChatGPT and other AI chatbots use to generate their responses (and possibly contribute to global warming), Zork was limited to as little as 32 KB of memory in its first release. This included not only the chat responses but also game play as well. Despite this apparent weakness, Zork's responses to entered text were at times smart and witty.
Zork was originally developed in the late 1970s on a DEC PDP-10 computer at MIT using a descendant of the LISP language. There was also a FORTRAN version that was translated to the C language. In 1979, the development moved to a commercial endeavor through the startup company Infocom, founded by MIT staff and students.
Due to the many different and incompatible computer systems at the time, Zork was divided into two parts when it was rewritten: an interpreter and a story file. The same story file could be read on any computer, while only the story interpreter had to be created for each different kind of computer. This also allowed new stories and sequels to be created that could run using the same interpreter. The name for the interpreter was called the Z Machine. It contained its own list of machine codes, much like a microprocessor, but within its own virtual environment. These machine codes were written for each computer where Zork would run, which could vary widely depending on the capabilities of the computers back in the 1980s. Today, there are several open source Z Machine implementations available for current computers, including one for the Adafruit Fruit Jam, the CPZ Machine.Â
When the interactive fiction game of Zork first appeared on home computers in the '80s, it was magical. Users playing the game were able to type sentences like âopen mailbox and read leafletâ and the computer would understand it. The parsing engine was truly a technological feat for 8 bit computers at the time, some of which had only 48KB of memory.
Also, there was no âcloudâ where sentences were uploaded to a cloud service for analysis like Amazonâs Alexa and Google Home. Parsing and analysis was all done locally. The end result was a rich game environment that provided hours of entertainment.Â
One reason Zork is popular is due to its dry humor. You can get smart aleck responses to some commands:
> pray
If you pray enough, your prayers may be answered.
>go down chimney
Only Santa Clause climbs down chimneys.
Sadly, the popularity of Zork and other interactive fiction games declined as home computers became more powerful and games with computer graphics emerged. Fortunately, Zork still lives on today through emulators and ports to new environments like the CPZ Machine.
Fun Fact: To save memory, characters in the Z Machine are coded as 5 bits as opposed to 8 bit characters found today in modern computers. This allowed storing 3 characters (3x5 = 15bits ) into 2 bytes (2x8 = 16 bits). A shift character was used to differentiate uppercase, lowercase, and special characters.
Page last edited January 14, 2026
Text editor powered by tinymce.
Zork on the Adafruit Fruit Jam
The requirements to run a Z Machine are straightforward:
- Enough RAM to hold the Z Machine and story file
- Storage to store one or more story files and associated save files
- Keyboard and terminal support
Fortunately, the Adafruit Fruit Jam meets all these requirements nicely.Â
Most Z Machines are written in the C language. However, the CPZ Machine is written in CircuitPython (hence the "CP" in "CPZ Machine"). This allows for easy installation either standalone or within the Fruit Jam OS environment.
Since it is an interpreter, the CPZ Machine can run any program that supports version 3 Z-coded games. In addition to the three Zork games included, there are dozens of other version 3 games available from the internet.
Back in the 1980s, computers were limited to monochrome and low resolution color screens. Since Zork was a text adventure, it would look better on a monochrome display. Green, amber, and black and white screens were popular for running Zork. The CPZ Machine recreates this with color themes, using the name of the computer most associated with the color theme:
TRS80 - white text on black background
Lisa - black text on white background
Compaq - green text on black background
Amiga - white text on blue background
Amber - amber text on black background
To switch to a theme, use the command "theme {color_theme}", matching one of the themes above. To get a list of themes, use the command "themes".
A blinking cursor is there too, to help "sell" the look of a 1980s text screen.
Frequently saving games is important in Zork and other games in case you unexpectantly "get eaten by a grue"Â or other untimely deaths in the game. The CPZ Machine supports multiple save points so you can move between different points in the game. Use the command, "save", and you will get a prompt for a save name.
The CPZ Machine saves all its games in the CPSAVES drive in the /cpz folder. This drive is available on the Adafruit Fruit Jam, and is writable by CircuitPython.
Page last edited January 14, 2026
Text editor powered by tinymce.
CircuitPython Install
Circuit Python version 10.x is required to run the CPZ Machine.
For Fruit Jam OS, follow the CircuitPython instructions provided in the Learn Guide:
CPZ Machine in Standalone Mode
For running CPZ Machine in standalone mode, download and install the latest version of CircuitPython with the instructions here:
Download the libraries at the CircuitPython.org site:
Â
You can copy all the libraries to the /lib folder on your CircuitPython drive. Or, at a minimum, you will need to install at least the following libraries into the lib folder:
adafruit_bitmap_font/
adafruit_display_shapes/
adafruit_display_text/
adafruit_esp32spi/
adafruit_fruitjam/
adafruit_imageload/
adafruit_io/
adafruit_minimqtt/
adafruit_portalbase/
adafruit_connection_manager.mpy
adafruit_fakerequests.mpy
adafruit_ntp.mpy
adafruit_requests.mpy
adafruit_sdcard.mpy
adafruit_simplemath.mpy
adafruit_ticks.mpy
adafruit_tlv320.mpy
neopixel.mpy
CPZ Machine in Fruit Jam OS Mode
There is a learn guide available on how to install Fruit Jam OS. The Fruit Jam OS installs all the libraries needed for the CPZ Machine. Follow this guide and then you can install the CPZ Machine in the next page.
Page last edited January 14, 2026
Text editor powered by tinymce.
Installing the CPZ Machine
The CPZ Machine can be installed either standalone or within the Fruit Jam OS environment. The Fruit Jam OS is a collection of CircuitPython games and utilities that can be launched from a GUI interface.Â
To install using either environment, find the latest version of the CPZ Machine from the link below, then click the "Source code (zip)" link under the Assets section to download it:Â
In a standalone environment, unzip and copy the files onto the root folder of your CircuitPython drive. For the Fruit Jam OS, first create a folder named CPZ or similar under the apps folder. Unzip and copy the files and folders to this folder. The next time you restart the Fruit Jam OS, you should see the "CPZ Machine" in the list of applications.
In addition to the three Zork games included, The CPZ Machine can play dozens of other version 3 Z Machine games (usually with a .z3 extension). You can find other compatible games and resources on the internet that can also be played with the CPZ Machine, including these sites:
The Interactive Fiction Archive
The Interactive Fiction Database
Z-Machine
To install other games, download and copy them to the stories folder on your CircuitPython drive.
Page last edited January 14, 2026
Text editor powered by tinymce.
Playing the Game
Starting the Game
From standalone mode, the program should start automatically. From the Fruit Jam OS, use the cursor or mouse to select the "CPZ Machine" game (you may need to move to the next page if you don't see it on the first page).
Once the program starts, you will be asked to select a story file. These files are located in the /stories folder, where you can add more. Once you select a story file, it loads and the game begins!
Overview of Commands
The game is a text adventure and recognizes different words that you type in to the computer.Â
The following is a list of some (but not all) of the verbs that you can use:
- look
- take
- examine
- kill
- talk
- open
- close
- enter
- exit
- push
- pull
- lift
- move
- tieÂ
You can also use compass directions to indicate that you want to move in that direction. For example, you can type: "go north" or you can type "north" or just "n" Typical directions are
N,S,E,W,NE,NW,SE,SW,Up,DownÂ
You can enter several commands together on the same line, like "open mailbox and read leaflet".
You can enter the word, "inventory" or just "i" to see what items you are carrying. That can be helpful for when you need to lighten your load.
To save a game, type "save" and the name of the game you want to save. To load a game, type "restore" and the name of the game you want to load. To restart the game, type "restart". To exit or play a different game, type "quit". To get a list of color themes, use the command, "themes". To set the theme, use "theme {color_theme}".
Stuck in the Game?
No spoilers here, but if you are stuck in the game, an internet search will most likely find a clue or a solution to your dilemma, after all, people have had 40+ years to solve the game!
Have fun!
Page last edited January 14, 2026
Text editor powered by tinymce.