A powerful utility which should only be used when you desperately need to cheat. Txd will decompile a game file into its original source code.

The following sample code and data was extracted from advent.z5 using the command line:

txd advent.z5 > advent.txt

Resident data ends at 599c, program starts at 599c, file ends at 17a70

Starting analysis pass at address 599a

End of analysis pass, low address = 599c, high address = 131c4

[Start of code]

-------- some code here --------

Routine R0214, 0 locals

            JE Ge9,#21 [FALSE] L0003
            PRINT "It is a shiny brass lamp"
            TEST_ATTR Geb,#0d [TRUE] L0001
            PRINT_RET ". It is not currently lit."
L0001: CALL_VS R0377 (Geb,#49) -> -(SP)
            JL (SP)+,#1e [FALSE] L0002
            PRINT_RET ", glowing dimly."
L0002: PRINT_RET ", glowing brightly."
L0003: JE Ge9,#35 [FALSE] L0004
            CALL_VN R0059 (#2d,Geb)
L0004: JE Ge9,#4a [FALSE] L0005
            PRINT_RET "Rubbing the electric lamp is not particularly
            rewarding. Anyway, nothing exciting happens."
L0005: JE Ge9,#2d [FALSE] L0007
            CALL_VS R0377 (Geb,#49) -> -(SP)
            JG (SP)+,#00 [TRUE] L0006
            PRINT_RET "Unfortunately, the batteries seem to be dead."
L0006: RFALSE 
L0007: JE Ge9,#0101 [FALSE] L0010
            JE G1e,#0101 [FALSE] L0008
            PRINT_RET "Those batteries are dead; they won't do any good at all."
L0008: JE G1e,#0100 [FALSE] L0009
            CALL_VN R0378 (Geb,#4a)
L0009: PRINT_RET "The only thing you might successfully put in the lamp
            is a fresh pair of batteries."
L0010: RFALSE 

Routine R0215, 0 locals

            JE Ge9,#2d [FALSE] L0001
            SET_ATTR Geb,#09
            CALL_2N R0065 (Geb)
L0001: JE Ge9,#2e [FALSE] L0002
            CLEAR_ATTR Geb,#09
L0002: RFALSE 

Routine R0216, 0 locals

            JE Ge9,#0100 [FALSE] L0002
            JIN G1e,"small bottle" [FALSE] L0001
            PRINT_RET "You're holding that already (in the bottle)."
L0001: RFALSE 
L0002: JE Ge9,#0101 [FALSE] L0004
            JE G1e,#19,#008c [FALSE] L0003
            CALL_VN R0059 (#43,Geb)
L0003: PRINT_RET "The bottle is only supposed to hold liquids."
L0004: JE Ge9,#43 [FALSE] L0010
            GET_CHILD "small bottle" -> -(SP) [FALSE] L0005
L0005: JZ (SP)+ [TRUE] L0006
            PRINT_RET "The bottle is full already."
L0006: JIN "stream",G00 [TRUE] L0007
            JIN "spring",G00 [FALSE] L0008
L0007: INSERT_OBJ "bottled water","small bottle"
            PRINT_RET "The bottle is now full of water."
L0008: JIN "pool of oil",G00 [FALSE] L0009
            INSERT_OBJ "bottled oil","small bottle"
            PRINT_RET "The bottle is now full of oil."
L0009: PRINT_RET "There is nothing here with which to fill the bottle."
L0010: JE Ge9,#61 [FALSE] L0014
            GET_CHILD "small bottle" -> -(SP) [FALSE] L0011
L0011: JZ (SP)+ [FALSE] L0012
            PRINT_RET "The bottle is already empty!"
L0012: GET_CHILD "small bottle" -> -(SP) [FALSE] L0013
            PRINT_RET "Your bottle is now empty and the ground is now wet."
L0014: RFALSE 

Routine R0217, 0 locals

            JE Ge9,#42 [FALSE] L0001
            REMOVE_OBJ "bottled water"
            CALL_VN R0059 (#42,#19)

-------- more code here -------- 

[End of code]

[Start of text]

S002: "
The Interactive Original
By Will Crowther (1973) and Don Woods (1977)
Reconstructed in three steps by:
Donald Ekman, David M. Baggett (1993) and Graham Nelson (1994)
[In memoriam Stephen Bishop (1820?-1857): GN]
S003: "960912"
S004: "6/2"
S005: "a"
S006: "You can't go that way."
S007: "the"
S008: "the"
S009: "the"
S010: "the"
S011: "the"
S012: "the"
S013: "the"
S014: "the"
S015: "the"
S016: "the"
S017: "the"
S018: "the"
S019: "Darkness"
S020: "It is pitch dark, and you can't see a thing."
S021: "As good-looking as ever."
S022: "Nameless item"
S023: "your former self"
S024: "You are standing at the end of a road before a small brick building.
Around you is a forest. A small stream flows out of the building and down a
S025: "It's a small brick building. It seems to be a well house."
S026: "The road is dirt, not yellow brick."
S027: "The trees of the forest are large hardwood oak and maple, with an
occasional grove of pine or spruce. There is quite a bit of undergrowth,
largely birch and ash saplings plus nondescript bushes of various sorts. This
time of year visibility is quite restricted by all the leaves, but travel is
quite easy if you detour around the spruce and berry bushes."
S028: "You have walked up a hill, still in the forest. The road slopes back
down the other side of the hill. There is a building in the distance."
S029: "It's just a typical hill."
S030: "the"
S031: "Why not explore it yourself?"
S032: "You are inside a building, a well house for a large spring."
S033: "The stream flows out through a pair of 1 foot diameter sewer pipes. The
only exit is to the west."
S034: "The pipes are too small."
S035: "The stream flows out through a pair of 1 foot diameter sewer pipes."
S036: "Too small. The only exit is to the west."
S037: "It's just a normal-looking set of keys."
S038: "There are some keys on the ground here."

-------- more text here -------

S265: "Maze"
S266: "You are in a maze of twisty little passages, all different."
S267: "You are in a little maze of twisting passages, all different."
S268: "You are in a maze of twisting little passages, all different."
S269: "You are in a little maze of twisty passages, all different."
S270: "You are in a twisting maze of little passages, all different."
S271: "You are in a twisting little maze of passages, all different."
S272: "You are in a twisty little maze of passages, all different."
S273: "You are in a twisty maze of little passages, all different."
S274: "You are in a little twisty maze of passages, all different."
S275: "You are in a maze of little twisting passages, all different."
S276: "You are in a maze of little twisty passages, all different."

-------- more text here -------

[End of text]

[End of file]