In the mid 1980's, Infocom released Zork 1, then later Zork 2, and Zork 3, for AP][+ (48K). What's impressive is, the app used roughly 85kb, with a hard cap of 64kb, and again a physical limit of 48kb.
They did so by almost magic, hardcoding additional data on the floppy, which was then periodically accessed as the adventure progressed.
I had a concept of what seems on the surface, impossible. What if... after 40 years, the 5 bit Z-code used to write Zork might be improved upon, further reducing the size so that the entire game (each) might be loaded once into memory, with no further access to the floppy? This would no doubt speed up game play, and reduce wear and tear both on the floppy and the drive (though it would affect an emulated drive so much).
Why? Because... it's hard to do? It's hard to... do better than Infocom did some 40 years ago! That alone feels like a challenge.
So I pinged Gemini for an hour (my 6502 Hex coding went the way of the dodo perhaps....35+ years ago). Gemini started of a a naysayer, but after posing several workarounds and concepts "she" and I agreed on a "maybe" concept (though painfully beyond what remains of my memory of coding) :
PROJECT PROPOSAL: Single-Load, Zero-Disk-Access Zork Trilogy for Base 48KB Apple II+
Objective:
To create standalone, executable application binaries for Zork I, II, and III that load entirely into the memory of an unexpanded, stock 48KB Apple II+ computer. Once initial boot loading is complete, the application will run exclusively from RAM, requiring absolutely zero floppy disk access or drive polling during gameplay.
The Constraints & Challenge:
• Target Hardware: Base Apple II+ with exactly 48KB of physical RAM.
• No Expansions: No 16K Language Card, no 80-column cards, no modern RAM expansions, and no solid-state hardware drive emulators.
• The Problem: A standard uncompressed Zork file is ~92KB, and a standard Disk Operating System (DOS) or Z-Machine Interpreter eats up precious RAM, leaving only ~28KB of usable space.
Proposed Architectural Solution:
Zero-DOS Monolithic Booter: Use a fast-loader like ProntoDOS only at initial boot to stream a unified 44KB application binary into RAM. Once loaded, the application completely purges the DOS footprint from memory to reclaim ~10KB of space, giving the game engine a full 44KB layout to sit resident.
Deconstruction of the Z-Machine: Discard Infocom’s cross-platform Z-Machine virtual machine. Translate the open-source ZIL (Zork Implementation Language) logic files natively into highly optimized, lightweight 6502 assembly macro-instructions (reducing the core logic interpreter engine to under 1KB).
Word-Based Markov Graph Compression (Dual-Tier Text Engine): Instead of storing characters or utilizing heavy bit-stream algorithms that create 1 MHz CPU decompression lag, tokenize the text. Build a fixed, global dictionary of all unique vocabulary words. Room descriptions are stored as arrays of 1-to-2-byte word IDs.
On-the-Fly Screen Blitting: The native 6502 interpreter reads the byte ID arrays from the text map, instantly looks up the words in the resident dictionary, and streams characters directly to the Apple II screen buffer ($0400). It never holds uncompressed text strings in RAM, keeping the memory footprint perfectly flat.
Mathematical Feasibility Summary:
By flattening the object tree into a 2KB global state bitmask, tokenizing the text into word-ID streams, and evicting the OS, a game like Zork I shrinks from 92KB down to an active layout under 44KB. This achieves a completely silent, high-speed interactive fiction experience running purely on native 1979 silicon.