ZORK+
ZORK+ is a made-up programming language from the satirical Wikipedia fork Uncyclopedia based on its version[1] of the text adventure Zork.
Variables
ZORK+ variables do not have value, only location, and can be moved by way of the INV push-down stack, but only if it has enough room. They can act as certain locations and cannot be declared by the user, instead, they can only be found in certain locations.
The CRETIN module
Manipulation of data is carried out by a special access pointer, called the Computational REctlinear Transfer Input Node module, or CRETIN for short, which looks across the predifined virtual database. Experienced programmers may gain direct access to particularly valuable stores of data by judicious handling of all three of the CRETIN's coordinate registers, circumventing the many barriers which litter the dataspace.
Syntax
ZORK+ is a stack-based programming language, meaning it stores memory in a stack, or more commonly, one command line at a time per user input. The basic syntax uses a verb followed by a noun just like the Zork games, which, except for one-word control operators, must be adhered to. Unlike the UnGames:Zork concept (referred to as its predecessor), ZORK+ also supports a special 4-word command syntax (verb-noun-preposition-noun) for dynamic control of multiple variables.
Documented commands
ZORK+ uses commands based on the different instructions in the Zork series of text adventures.
| Command | Description |
|---|---|
| N | Increments the Y-command register. |
| S | Decrements the Y-command register. |
| E | Increments the X-command register. |
| W | Decrements the X-command register. |
| U | Increments the Z-command register. |
| D | Decrements the Z-command register. |
| LOOK | Reads data from memory location pointed to by the X, Y and Z registers and outputs it. |
| INV | Opens the user’s INV stack for direct access by the CRETIN module. |
| GET foo | Attempts to retieve data from the current memory location and loads it to the current INV file. If the data is inaccessible or badly formatted, it throws the error “I see no foo here” |
| DROP foo | Attempts to store data from INV to the current memory location; nonexistence of the data throws “You don’t have any foo>!” |
| EAT foo | Attempts to decompile certain types of data by passing them through the CRETIN module. Using this command on the wrong type of data may result in an error message “Caution: The effects of this command may cause irreversible lossage of data” or failure of the CRETIN module. |
| ATTACK foo WITH bar | Attempts to clear the variable foo, resetting to 0. If foo and bar are of incompatible types, it may result in the OS triggering a sarcastic error message and end the program. |
| PUT foo IN bar | Used for a specialized class of variable only. The user may specify recursive structures, provided that variable bar is pretyped by the OS as a “container”. |
| XYZZY | Has unpredictable effects. Can only be used when the X, Y and Z registers have certain predetermined values. |
| PLUGH | Ditto, but requires an audio card and can only be used when the OS prompts the user in a hollow voice. |
| QUIT | Ends the program. |
Auxillary commands
ZORK+ has auxillary commands that are not mentioned in the official command list, and need to be manually discovered.