Tai

Products: Tai
Date: 1983
Type: Cassette
Platform(s): TS 1000
Tags: Arcade, Game

Tai is a maze/shooter game in which the player must navigate through a planetary core, destroying ghost enemies while avoiding fireballs and alien ships, ultimately finding an exit to join a mothership in orbit. The program stores its main game logic as machine code embedded within a large REM statement at line 0, with the BASIC lines serving primarily as a loader and development/utility scaffold. Control uses keyboard keys L and P for left/right movement in the core section, with shifted P and L for up/down in the orbital phase, and SHIFT to fire a neutron stream. The REM block at line 0 contains an elaborate ASCII-art title screen, planetary graphic rendered in block graphics, and the encoded machine code payload; POKE 23094,205 at line 2 patches the system to enable the USR call at line 4 that transfers control to the machine code at address 23357.


Program Analysis

Program Structure

The listing is dominated by line 0 REM, which is an enormous data block containing the game’s title screen graphics, storyline text rendered in block graphics characters, decorative ASCII art of the planet Tai, and the actual machine code for the game engine. The BASIC lines that follow (lines 1–5, 30308, 110–140, 300–400, 500–650, 1010, 1300) are a mixture of a minimal bootstrap loader and what appear to be development/utility routines left in the listing.

Bootstrap Loader

The active entry path is brief:

  1. Line 2: POKE 23094,205 — patches a system variable to install an interrupt or redirect, enabling the subsequent USR call.
  2. Line 3: SAVE "TAI" — saves the program to tape.
  3. Line 4: LET X=USR 23357 — jumps to machine code at address 23357, which lies within the system variables / display file area. The machine code stored in the REM at line 0 is relocated here by the loader before this call is made.
  4. Line 5: STOP — safety stop if the USR call returns.

Machine Code Delivery via REM

Storing machine code inside a REM statement is a classic technique: the bytes following the REM token are never interpreted by the BASIC parser, so arbitrary binary data can be embedded. The utility loop at lines 110130 copies PEEK bytes from addresses 31584–31979 into a destination pointer maintained in X (initialised at line 30308 to 22862), effectively relocating a 396-byte block of machine code from inside the REM statement to a working address in RAM.

Development/Utility Routines

Several routines present in the listing appear to be developer tools that were not stripped before release:

  • Lines 300330: Scans memory from 18110 to 22861, replacing any byte value 136 with 8. This is a data-fixup pass, likely normalising a character code, followed by a GOTO 200 to a non-existent line (a standard stop-execution idiom).
  • Lines 400450: Saves a secondary file named "PROG 10".
  • Lines 500650: A display/inspection loop that prints characters from memory offset from base address Y, with a secondary branch at line 570 that checks four neighbouring bytes for value 128 (a block-graphic sentinel) and calls GOSUB 1000. Lines 605650 provide an interactive memory-copy utility: the user inputs source (Y) and destination (Z) addresses and 33 bytes are POKEd across.
  • Line 1010: An incomplete or corrupted POKE expression referencing X+Y+INT(X/32 followed by block-graphic bytes — this line appears to be a fragment of the block-sentinel patching routine called from line 570.

REM Block Content

The REM at line 0 is multi-purpose. Its first portion contains the rendered title screen: a decorative border, the planet graphic built from block graphics characters (▘ ▝ ▀ ▌ ▐ █ ▒ etc.), and multi-line story text spelling out the game’s narrative. This is followed by the instructions screen (also encoded in the REM as display data), and then a long sequence of encoded BASIC-like tokens and binary data that constitutes the machine code payload and game data tables.

Notable Techniques

  • REM as binary store: The entire game engine — well over a kilobyte of machine code — is hidden in the line 0 REM, invisible to the BASIC execution path.
  • POKE 23094: Modifying this system variable (FLAGS or a related byte) before the USR call is used to condition the machine code environment.
  • Non-existent line GOTO: GOTO 200 at line 330 targets a line that does not exist, halting execution — a deliberate idiom.
  • INT(X/32) offset arithmetic: Used in lines 520–570 to navigate through memory that is laid out 32 bytes per row (matching the display file structure), allowing the utility code to skip row-attribute bytes or similar padding.
  • Block graphics for art: The planet image in the REM uses the full set of 2×2 block graphic characters to render a detailed spherical body with shading, craters, and surface features at text resolution.

Bugs and Anomalies

  • Line 1010 contains a syntactically incomplete or corrupted expression (POKE (X+Y+INT (X/32 followed by raw graphic bytes). This is almost certainly a data corruption artifact from the original tape encoding rather than intentional code.
  • Line 30308 appears far out of sequence (between lines 5 and 110), suggesting it is a patching or initialisation line whose high line number was chosen deliberately to keep it away from the normal flow but still reachable by a direct GOTO or as a starting point.
  • Line 570 calls GOSUB 1000, but line 1000 does not exist in the listing as shown; only line 1010 and 1300 appear, the former being corrupt. This routine may have been stored inside the REM block itself and accessed via machine code rather than BASIC.

Content

Appears On

Related Products

In any other time or galaxy, the dust ball of the world called Tai would have been quite unimportant. Time...

Related Articles

Related Content

Image Gallery

Source Code

   0 REM ##  ▘400093.█████████████▀▜▀▜▜██████████████#█████████████▌█▝▐▐██████████████#█████████████▙█▟▟▟██████████████#█[T][H][I][S]█[T][I][N][Y]█[A][R][I][D]█[D][U][S][T][B][A][L][L]█[O][F]█[A]███#█[W][O][R][L][D]█[C][A][L][L][E][D]█["][T][A][I]["]█[I][S]█[N][O][W]█[T][H][E]██#█[L][A][S][T]█[R][E][M][A][I][N][I][N][G]█[O][U][T][P][O][S][T]█[B][E][T][W][E][E][N]█#█[T][H][E]█[A][D][V][A][N][C][I][N][G]█[I][M][P][E][R][I][A][L]█[F][L][E][E][T]███#█[A][N][D]█[T][H][E]█[M][A][I][N]█[P][L][A][N][E][T][S]█[O][F]█[T][H][E]████#█[D][O][R][F][I][A][N]█[S][Y][S][T][E][M][.]████████████████#█[U][N][L][E][S][S]█[T][H][E]█[I][M][P][E][R][I][A][L]█[I][N][V][A][D][E][R][S]███#█[C][A][N]█[B][E]█[D][E][L][A][Y][E][D][,][U][N][T][I][L]█[T][H][E]█[R][E][P][-]██#█[P][U][B][L][I][C][A][N]█[B][A][T][T][L][E]█[F][L][E][E][T]█[A][R][R][I][V][E][,]██#█[A][N]█[E][N][T][I][R][E]█[C][I][V][I][L][I][Z][A][T][I][O][N]█[W][I][L][L]█[B][E]█#█[D][E][S][T][R][O][Y][E][D][.]█████████████████████#█[Y][O][U]█[H][A][V][E]█[B][E][E][N]█[C][H][O][S][E][N]█[T][O]█[D][E][F][E][N][D]█#█["][T][A][I]["][.]█████████████████████████#█[Y][O][U][R]█[M][I][S][S][I][O][N]█[I][S]█[T][O]█[P][R][E][V][E][N][T]█[T][H][E]█#█[I][M][P][E][R][I][A][L]█[T][R][O][O][P][E][R][S]█[F][R][O][M]█[R][E][A][C][H][I][N][G]#█[T][H][E]█[C][O][R][E]█[O][F]█[T][H][E]█[P][L][A][N][E][T][.]████████#█[T][H][E]█[G][A][L][A][C][T][I][C]█[F][U][T][U][R][E]█[D][E][P][E][N][D][S]█[O][N]█#█[Y][O][U][.][.][.][.][.][.][.][.][.][.][S][U][C][C][E][S][S]█[I][S]█[V][I][T][A][L][.]█#████████████████████████████████#█[P][R][E][S][S]["][I]["]█[F][O][R]█[M][O][R][E]█[I][N][S][T][R][U][C][T][I][O][N][S]█#███████[P][R][E][S][S]█["][R]["]█[T][O]█["][R][U][N]["]███████#▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒▒~~~~~~~~▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒        ,,,,,,▒▒▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒         ~~~~~~~~~~▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒,,              ~~~~▒▒▒▒▒▒▒▒#▒▒▒▒~~~~                  ▒▒▒▒▒▒  #▒▒▒        ▐[,,]██████[,,]▌▒▒▒▒▒▒     #▒          ▐▒██████▒▌           # ▐[,,][,,]▌     ▐[,,]▒██████▒[,,]▌          #▐[,,]▒▒[,,]▌▗["]▖▐[,,]▒▒██████▒▒[,,]▌     ▐[,,][,,]▌#[,,]▒▒▒▒[,,]["]["]["][,,]▒▒████████▒▒[,,]▌▗▖ ▐[,,]▒▒[,,]#▒▒▒▒▒▒[,,]["]["]▒▒▒████████▒▒▒▌▟▙▐[,,]▒▒▒▒#▒▒▒▒▒▒["][,,]▒▒▒██████████▒▒[,,]["]["][,,]▒▒▒▒▒#▒▒▒▒▒["]▒▒▒▒████████████▒▒[,,]["]▒▒▒▒▒▒#▒▒▒▒["]▒▒▒▒██████████████▒▒▒["]▒▒▒▒▒#▒▒["][,,]▒▒▒▒████████████████▒▒▒[,,]["]▒▒▒#▒["][,,]▒▒▒▒▒████████████████▒▒▒▒[,,]["]▒▒#["][,,]▒▒▒▒▒██████████████████▒▒▒▒[,,]["]▒#[,,]▒▒▒▒█████████████████████▒▒▒▒[,,]["]#▒▒▒▒███████████████████████▒▒▒▒[,,]#▒▒▒▒████████████████████████▒▒▒▒#▒▒▒▒████████████████████████▒▒▒▒#▒▒▒▒██████████▒..▒██████████▒▒▒▒#▒▒▒▒██████████▒▖▗▒██████████▒▒▒▒#▒▒▒███████████▒..▒███████████▒▒▒#▒▒▒██████████▒▒▖▗▒▒██████████▒▒▒#▒▒███████████▒....▒███████████▒▒#▒▒██████████▒▒▖▗▖▗▒▒██████████▒▒#▒▒█████████▒▒▒....▒▒▒█████████▒▒#▒▒█████████▒..▖▗▖▗..▒█████████▒▒#▒▒████████▒▒▖▗▘  ▝▖▗▒▒████████▒▒#▒▒████████▒..▒▗▖▗▖▒..▒████████▒▒#▒▒███████▒▒▖▗▒▝▘▝▘▒▖▗▒▒███████▒▒#▒▒███████▒▗▖▗▖▖..▗▗▖▗▖▒███████▒▒#▒▒███████▒▝▘▝▘▌~~~~▐▝▘▝▘▒███████▒▒#▒▒███████▒▖..▗▒▒▒▒▖..▗▒███████▒▒#▒▒███████▒▌~~~~▐▀▀▀▀▌~~~~▐▒███████▒▒#▒▒███████▒▒▀▀▀    ▀▀▀▒▒███████▒▒#▒▒███████▒            ▒███████▒▒#▒▒███████              ███████▒▒#▒▒███████  ▟▒▙    ▟▒▙  ███████▒▒#▒▒███████  ▒▒▒    ▒▒▒  ███████▒▒#▒▒███████  ▜▒▛    ▜▒▛  ███████▒▒#▒▒███████▒     ▗▖     ▒███████▒▒#▒▒███████▒     ▐▌     ▒███████▒▒#▒▒███████▒▒    ▟▙    ▒▒███████▒▒#▒▒████████▒    ▀▀    ▒████████▒▒#▒▒████████▒▒▒ ▒ ▒ ▒ ▒▒████████▒▒#▒▒████████▜▒ ▒ ▒ ▒ ▒▒▛████████▒▒#▒▒████████▝▒▒      ▒▒▘████████▒▒#▒▒████████ ▝▒▒    ▒▒▘ ████████▒▒#▒▒████████   ▒▒▒▒▒▒   ████████▒▒#▒▒████████▗   ▒▒▒▒   ▖████████▒▒#▒▒████████▐    ▒▒    ▌████████▒▒#▒▒█████████▐        ▌█████████▒▒#▒▒█████████▐        ▌█████████▒▒#▒▒██████████▐      ▌██████████▒▒#▒▒███████████▐    ▌███████████▒▒#▒▒███████████▐    ▌███████████▒▒#▒▒▒███████████▐  ▌███████████▒▒▒#▒▒▒▒███████████▐▌███████████▒▒▒▒#▒▒▒▒▒.█████████▐▌██████████.▒▒▒▒#▒▒▒▒▒..████████▐▌██████████.▒▒▒▒#▒▒▒▒▒..▗.██"████████"██████.▒▒▒▒#▒▒▒▒▒..▗.█████████████████..▒▒▒▒#▒▒▒▒▒▒.▗.▗███████████████..▒▒▒▒▒#▒▒▒▒▒▒▒▗.▗.█████████████..▒▒▒▒▒▒#▒▒▒▒▒▒▒▒.▗.▗███████████..▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒.▗.▗██████████..▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒.▗.▗▄████████...▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒▒▒██████████.▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒█▒██████████▒█▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒█▒██████████▒█▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒█▒██████████▒█▒▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒█▒█▒██████████▒█▒█▒▒▒▒▒▒#▒▒▒▒▒▒▒▒█▒██████████████▒█▒▒▒▒▒▒#▒▒▒▒▒▒▒▒█▒██████████████▒█▒▒▒▒▒▒#▒▒▒▒▒▒█▒█▒██████████████▒█▒█▒▒▒▒#▒▒▒▒▒▒█▒██████████████████▒█▒▒▒▒#▒▒▒▒▒▒████████████████████▒█▒▒▒▒#▒▒▒▒▒▞██████████████████████▒▒▒▒#▒▒▒▒,,▞███████████████████████▒▒▒#▒▒▒▗,,▞███████████████████████▒▒▒#▒▒.▗,,▞▝█████████████████████▒▒▒▒#▒▒▒▒,,▞▝.███████████████████▒▒▒▒▒#▒▒▒▒▒▒▝.▗▄████████████████▒▗▖▒▒▒#▒▒▒▒▒▒▝██████████████████▒▒▐▌~~▒▒#▒▒▒▒▒███████████████████▒▗▖▝▘▐▒▒#▒▒▒▒███████████████████▀▀▐▌▐▌▝▒▒#▒▒▒████████████████████▐▌▗▖▝▘▐▒▒#▒▒▒▒██████████████████▒▝▘▐▌▗▖▒▒▒#▒▒▒▒▒████████████████▗▖▐▌▗▖▐▒▒▒▒#▒▒▒▒▒▒███████████████▐▌▝▘▒▒▒▒▒▒▒#▒▒▒▒▒▒▒█████████████▒,,,,▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒███████████████▒▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▖████████████████▒▒▒▒▒▒▒▒▒▒#▒▒▒▒▖▌█████████████████▒▒▒▒▒▒▒▒▒#▒▒▒▖▌▌█████████████████▒▒▒▒▒▒▒▒▒#▒▒▖▌▌▌██████████████████▒▒▒▒▒▒▒▒#▒▒▌▌▌▌███████████████████▒▒▒▒▒▒▒#▒▒▒▌▌▌▖▖██████████████████▒▒▒▒▒▒#▒▒▒▌▌▌▌▌██████████████████▒▒▒▒▒▒#▒▒▒▒▒▒▌▌▖▖▄███████████████▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▌▌███████████████▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▒██████████████▀▀~~▒▒▒▒▒#▒▒▒▒▒▒▒▒▒██████████████▘   ▒▒▒▒▒#▒▒▒▒▒▒▒▒███████████████▌▌▌▌▒▒▒▒▒#▒▒▒▒▒▒▒████████████████▌▌▌▌▒▒▒▒▒#▒▒▒▒▒▒:███████████████▛    ▒▒▒▒▒#▒▒▒▒▒:::██████████████,,,,,,,,,,▒▒▒▒▒#▒▒▒▒▒:::███████████████▒▒▒▒▒▒▒▒▒#▒▒▒▒▒▒::▗▗███████████████▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒▐███████████████▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒▒██████▌▐████████▒▒▒▒▒▒▒#▒▒▒▒▒▒▒▒██████▐▌▐▌███████▒▒▒▒▒▒▒#▒▒▒▒▒▒▒█████▌▒▐▌▐▌▒▐██████▒▒▒▒▒▒#▒▒▒▒▒▒█████▌▌▒▝▘▝▘▒▐▐██████▒▒▒▒▒#▒▒▒▒▒▒█████▌▌▄▖  ▗▄▐▐██████▒▒▒▒▒#▒▒▒▒▒▒█████▌▘█▌  ▐█▝▐██████▒▒▒▒▒#▒▒▒▒▒▒██████        ███████▒▒▒▒▒#▒▒▒▒▒▒██████   MM   ███████▒▒▒▒▒#▒▒▒▒▒▒███████  WW  ████████▒▒▒▒▒#▒▒▒▒▒▒████████    █████████▒▒▒▒▒#▒▒▒▒▒▒███▒█████  █████▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒██████████▒▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒▒████████▒▒▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒▒▒██████▒▒▒▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒▒▒▒████▒▒▒▒▒████▒▒▒▒▒#▒▒▒▒▒████▒▒▒▒▒▒██▒▒▒▒▒▒████▒▒▒▒▒#▒▒▒▒█████▒▒▒▒▒████▒▒▒▒▒█████▒▒▒▒#▒▒██████▒▒▒▒▒██████▒▒▒▒▒██████▒▒#▒▒█████▒▒▒▒▒████████▒▒▒▒▒█████▒▒#▒▒████▒▒▒▒▒████▒▒████▒▒▒▒▒████▒▒#▒▒███▒▒▒▒▒████▒▒▒▒████▒▒▒▒▒███▒▒#▒▒████▒▒▒▒▒████▒▒████▒▒▒▒▒████▒▒#▒▒█████▒▒▒▒▒████████▒▒▒▒▒█████▒▒#▒▒██████▒▒▒██████████▒▒▒█████▒▒▒#▒▒▒▒█████▒▒██████████▒▒█████▒▒▒▒#▒▒▒▒▒████▒▒██████████▒▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒██████████▒▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒██████████▒▒████▒▒▒▒▒#▒▒▒▒▒▒███▒▒██████████▒▒████▒▒▒▒▒#▒▒▒▒▒▒████████▒..▒████████▒▒▒▒▒▒#▒▒▒▒██████████▒▖▗▒██████████▒▒▒▒#▒▒▒███████████▒..▒███████████▒▒▒#▒▒▒██████████▒▒▖▗▒▒██████████▒▒▒#▒▒███████████▒....▒███████████▒▒#▒▒██████████▒▒▖▗▖▗▒▒██████████▒▒#▒▒█████████▒▒▒....▒▒▒█████████▒▒#▒▒█████████▒..▖▗▖▗..▒█████████▒▒#▒▒████████▒▒▖▗▘  ▝▖▗▒▒████████▒▒#▒▒████████▒..▒▗▖▗▖▒..▒████████▒▒#▒▒███████▒▒▖▗▒▝▘▝▘▒▖▗▒▒███████▒▒#▒▒███████▒▗▖▗▖▖..▗▗▖▗▖▒███████▒▒#▒▒███████▒▝▘▝▘▌~~~~▐▝▘▝▘▒███████▒▒#▒▒███████▒▖..▗▒▒▒▒▖..▗▒███████▒▒#▒▒███████▒▌~~~~▐▀▀▀▀▌~~~~▐▒███████▒▒#▒▒███████▒▒▀▀▀    ▀▀▀▒▒███████▒▒#▒▒███████▒            ▒███████▒▒#▒▒███████              ███████▒▒#▒▒███████  ▟▒▙    ▟▒▙  ███████▒▒#▒▒███████  ▒▒▒    ▒▒▒  ███████▒▒#▒▒███████  ▜▒▛    ▜▒▛  ███████▒▒#▒▒███████▒     ▗▖     ▒███████▒▒#▒▒██████▒▒     ▐▌     ▒███████▒▒#▒▒███████▒▒    ▟▙    ▒▒███████▒▒#▒▒▒HARD LUCK YOU HAVE RUN OUT▒▒▒#▒▒▒ OF LIVES.RETURN TO START.▒▒▒#▒▒███████PRESS NEWLINE.███████▒▒#▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▌#▛▛▛▛▛▛▛▛▛PRESS▛NEWLINE▛▛▛▛▛▛▛▛▛▌#▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▛▌#)▘#E£RND7 FOR ▘/▀ GOSUB [K]LN [V]▝ FOR 5 CLS LOAD [B] GOSUB #ASN [A]#5 CLEAR CLEAR[B] GOSUB #4 FOR LN #▀▒▒▒██████████████████▒▒▒▒[,,]█▒#[,,]▒▒[Y][O][U]█[D][E][S][T][R][O][Y][E][D]███████[G][H][O][S][T][S]▒[,,]█#▒▒▒▒█[A][N][D]█[Y][O][U]█[A][R][E]█[F][R][E][E]█[T][O]█[G][O]█▒▒▒[,,]#▒▒▒▒████████████████████████▒▒▒▒#▒▒▒▒█████[P][R][E][S][S]█[N][E][W][L][I][N][E]██████▒▒▒▒#▒▒▒▒▒▒████████▒..▒████████▒▒▒▒▒▒#▒▒▒▒▒▒█████▌▘█▌  ▐█▝▐██████▒▒▒▒▒#▒▒███████▒▒    ▟▙    ▒▒███████▒▒#5▜RNDQ 7Q 7Q▘7Q47Q07Q07Q07Q97Q3▞█E£RND7VAL :/▞4#WACS #C▖ACS [R] INPUT █#7( PAUSE 7$4 GOTO AT 5▘ F#[P]4 IF ( AND )[:]RNDE£RND7 FOR ▘/▀ GOSUB [K]LN [V]▝ FOR 5 CLS LOAD [B] GOSUB #C"5 TO  RUN [B] GOSUB #4 GOTO ASN =#5▞# FAST5[A]#▞[O]F7# RETURN#4▖( SAVE /£ RETURN"C▖ RETURN[*]4 INPUT Q█/ REM  LPRINT  FASTU▜RND RETURN C#U▐RND RETURN 42)▝ ;7# RETURN█4 IF 7Q" LPRINT  FAST)* ;7# RETURN█4 IF Q"M▐RND LPRINT  FAST7# RETURN#4£# RETURN#4▛Y M▐RND/H# RETURN"4 DIM Q█U▚RND#-  FAST;# RETURN█4▌Q" LPRINT />U▗RND#U▚RNDM▗RND#M▚RND LPRINT ;Q"M▐RND/# LPRINT  FASTU▐RND RETURN 4>)$ ;7# RETURN█4 IF  Q[*]  M▐RND LPRINT  FAST7# RETURN#4£# RETURN#4▛Y M▐RND/F# RETURN[*]4 DIM Q█U▚RND#-  FAST;# RETURN█4▌Q[*] LPRINT />U▗RND#U▚RNDM▗RND#M▚RND LPRINT ;Q[*] LPRINT  FAST▘ ▀7"#[L]C## RETURN[.]4 PRINT  FAST)5▀Q█F14 UNPLOT # RETURN"41Q█U[,,]RNDW RETURNAC▌M[,,]RND/#Y0M[,,]RNDU[~~]RNDWM[~~]RND/Y RETURN[*]4JQ█U[▒]RNDW RETURN5C▌M[▒]RND/FY0M[▒]RNDU[,,]RNDW RETURNAC▌M[,,]RND/;Y0M[,,]RNDU[~~]RNDWM[~~]RND/" RETURN█4▛25+4[0]Q[.] LPRINT /[▒] SGN STR$ E£RND7 FOR ▘?▀ GOSUB [K]E£RND7▞▝U[£]RND#,,# RETURN█C?U["]RNDX RETURN.CF RETURN,CBM["]RNDQ[A])5 ;# RETURN█C?U["]RNDX RETURN.C) RETURN,C$M["]RNDU["]RND#;Q[>] FAST/1 LPRINT )##E£RND7 FOR ▘#  GOSUB [K]LN [V]▝ FOR 5[Z] CLEAR[B] GOSUB #4 POKE #X#LN [V]▝# RETURN RETURNC▒ RETURN IF C▖ RETURN UNPLOT 4$SGN  LPRINT  FASTSTR$ ▞▝U[£]RND#,,Q[.]    LN [V]▝# RETURN TO C0 RETURN[Z]4ISGN  LPRINT  FASTSTR$ ▞▝U[£]RND#,,F# RETURN#C1"#M[£]RND/-SGN  LPRINT  FASTSTR$ ▞▝U[£]RND#,,7# RETURN#C▌▀#M[£]RND▘█▌"#[L]4 CLS LPRINT Q[<]E£RND FAST▘(▀,,QS7QC7QO7QR7QE7Q:7U[~~]RND#7U[,,]RND# LPRINT 7# RETURN[A]4 IF ::▞5F( CLEAR# RETURN"C▌$4 NEXT /9-▒▘5 ,,##Q[:]▘ ▌"#[L]4 CLSQ█# RETURN[A]4,,U["]RNDXM["]RND/▀+4<> LPRINT  FAST FOR 5[A]#[B] GOSUB #4L LPRINT ▘▘M"#[L]C▝/ RAND -+E£RND▞/7# RETURN#C▞:█▟#/ POKE ( PAUSE +4 REM ###5[Z] CLEAR[B] GOSUB #4 POKE ###SGN STR$ 5[Y]#[B] GOSUB #4*U[~~]RND RETURN0C▖ RETURN14£SGN      5+##SIN #SGN STR$ 5▞#[B] GOSUB #4▌Y M▜RNDSGN STR$ 5VAL #[B] GOSUB #4▌Y█M▜RND LPRINT  FAST# RETURN#C( RETURN#C£ RETURNPIC▒ RETURNPIC▖ RETURNPI4▀M▐RND LPRINT  FAST)/▀;▞▖7# RETURN#4▖( SAVE /£ RETURN"C▖ RETURN[*]4 INPUT Q█/ REM  LPRINT  FAST▘█ "#[L]4 CLS7# RETURN#C▞ RETURN[.]4 PLOT Q█ LPRINT ▞5F( CLEARU["]RND RETURN.ASN ## RETURN,ASN ###SIN #▘▛=K#H#▀     SQR ▛█████████        ...............)▘#E£RND7 FOR ▘/▀ GOSUB [K]LN [V]▝ FOR 5 CLS LOAD [B] GOSUB #4 POKE U[,,]RND▞▒[(]ME#E5#F#[P]4 CLS 5;# FAST FAST) STEP #▘?  GOSUB [K] LPRINT )" STR$  FAST▘5 ,,SGN  FAST▘? #7 GOSUB [K] LPRINT  FAST▘? ,,# LPRINT SGN .#[N]4 STOP) STEP #7▘?  FOR  GOSUB [K] LPRINT   FAST▘) ,, FAST) STEP #▘?  GOSUB [K] LPRINT ▘: ,,)" STR$  FAST▘5 ,,SGN  FAST▘? #F GOSUB [S] LPRINT  FAST▞?F( CLEAR# LPRINT SGN .#[N]4 LLIST ) STEP #▞?F( CLEAR▘?  FOR  GOSUB [K] LPRINT   FAST▀ RUN ▝,, FAST) STEP #▘?  GOSUB [K] LPRINT )" STR$  FAST▞5F( CLEARSGN  FAST▘? #7 GOSUB [K] LPRINT  FAST▘? ,,# LPRINT SGN .#[N]4 LLIST ) STEP #7▘?  FOR  GOSUB [K] LPRINT   FAST▘▒▀,, FAST) STEP #▘?  GOSUB [K] LPRINT ▘: ,,)" STR$  FAST▞5F( CLEARSGN  FAST▘? #F GOSUB [S] LPRINT  FAST▞?F( CLEAR# LPRINT SGN .#[N]4 LPRINT ) STEP #▞?F( CLEAR▘?  FOR  GOSUB [K]  LPRINT )##▘ RUN ▝ GOSUB [K]U7# RETURN C"XM7##)#    LN [0]#LN [0]#/#EA# FAST GOSUB #C#,,# RETURN#4,,▘INKEY$   GOSUB #C# LPRINT TAN  LPRINT  FAST)4 ;,,# RETURN#4,,▘#  GOSUB #C# LPRINT TAN  LPRINT  FAST)[A] ;,,# RETURN#4▛▘▝  GOSUB #C#  LPRINT )7 ;,,# RETURN#""▘   GOSUB #C#TAN EA# GOSUB #C#,, FASTQ[/]▘4 ,,Q[/]7Q▞7Q[/],,Q[/] LPRINT )6  GOSUB #6A#5 GOSUB #Q▀77Q▀)1 ;Q▛7Q07Q:7QH7Q:7Q▝7Q[A]7); ;Q▘7Q=7Q=7Q(7Q[O]7Q)7Q=7Q=7Q▝;Q,,7Q>7Q:7Q87Q87Q87Q:7Q<7Q,,;Q[~~]7Q▒7Q,,7Q.7Q.7Q.7Q,,7Q▒7Q[~~];77Q[~~]7Q▒7Q▒7Q▒7Q[~~]5K#▞/)5 Q#;( CLSE£RND7)## FOR ▘/▀ GOSUB [K]Y M6RND▘,,*LN  PRINT ▒UE##UG#[T]K▖#MG#UG##▞ LN [/]~~▘>*LN  PRINT ▒ GOSUB #I#"#[L]ASN [-]# GOSUB #I#" GOSUB #I#LN [/]~~▘1*LN  PRINT ▒UE##▞ LN [/]~~E£RND▘ SCROLL ,,▞(F# RETURN▞ASN ##( RUN ▞?F# RETURN▞ASN ##( RUN ▞A7( CLEAR▞*7# RETURN▞ASN ##▞$7( CLEAR▞(F# RETURN▞ASN ##( RUN EI#[B]6I##[=]#;( SAVE [B]TAN  )4 ▞£/£)5 ▞~~/▌)6 ▞▒;# RETURN█S▛Q["]( PLOT ###-▘E£RND▞*7# RETURN#C▞:█▟#/ POKE ( PAUSE +4 REM )# EI#[B] GOSUB # AND [-]#6I####LN [V]▝ FOR 5[Z] CLS[B] GOSUB #C95 TO  CLEAR[B] GOSUB #C#5 TO  UNPLOT [B] GOSUB #C#5[Z] IF [B] GOSUB #ASN ##5 COPY RETURN[B] GOSUB #ASN #####LN ABS #LN Q#5S#)/  FASTSTR$ # FAST FASTSGN F▘3  GOSUB [S] LPRINT ▞3F( CLEAR#SGN  LPRINT ▘5 ,,.#[N]4 LLIST #▖#LN ABS #LN ##5;#)/ STR$ # FAST FASTSGN 7▘3  GOSUB [K] LPRINT ▘3 ,,#SGN 77.#[N]4 SCROLL#▖#LN ABS #LN ▚#5(#) STEP #▘4  GOSUB [K]5:#)J#▘ RUN ▝ GOSUB [S]5 STEP #);#▘4  GOSUB [K]#▖#LN ABS #LN [I]#5;#) STEP #▘4  GOSUB [K]5U#);#▘ RUN ▝ GOSUB [K]5 STEP #)(#▘4  GOSUB [K]#▖#-~~E£#▘[1]▘,,▞5F( CLEAR# RETURN▞C>Q[O]▘ COPY "#[L]4 CLSQ[:]+ASN  #/ SLOW FASTEI#)~~ ;6I# LPRINT )6  GOSUB #Q▛7Q[▒]7Q[,,])3 ;Q[~~]7Q[▒]7Q▟UE#WME#EI#▘M ,,6I#E5#F#[P]4 CLS#C#Y M6RND▘1*LN  PRINT ▒UE##▞ LN [/]~~Y~~M7#LN [V]▝ FOR 5[Z] CLEAR[B] GOSUB #4 POKE #X#....U## RETURN6C£ RETURN5C(Y5M#####Y4M#####Y6M#####.....E8#7# RETURNS4▝IH68#6A#Y▌M7#UC# RETURNINKEY$ TAB ##Y MC####............................................................................................................................................█ ▘PI▘ REM ................................5;####............................................  YOU MUST RETURN TO "TAI" FOR  #MORE FUEL,THE GAME WILL INCREASE#  IN SPEED ......PRESS NEWLINE  #.E£RND7)M# FOR ▘#  GOSUB [K]5 OR #LN COS #56#LN COS #5SQR ▛6I##USR # FOR 5[Z] CLEAR[B] GOSUB #4 POKE LN USR ##X#.#X RETURN COPY4▝Y▘#TAN 5C# FAST5D# FAST5[9]# FAST5CODE # FAST5LEN # FAST5 FAST# FAST53# FAST54# FAST)K#▞▒ LPRINT ,#<( IF TAN ......54# FAST53# FAST5 FAST# FAST5LEN # FAST5CODE # FAST5[9]# FAST5D# FAST5C# FAST)K#▞▒ LPRINT  FOR ,# FOR #<( RUN # # E£RND▘1 ,,▞/)5 # RETURN[/]COS ;( RAND EA#76A#LN ATN #TAN # FAST)K#▞▒ LPRINT  FOR ,E£RND)▖ ;▞/)5 # RETURN[/]COS ;( RAND EA#F6A#LN ATN #TAN ..........E£RND)#▝;▞LEN 7# RETURN[/]COS ( RAND EA#)5 ;6A#LN ATN #TAN ..........E£RND7▞RND7# RETURN[/]COS ( RAND EA#)5  GOSUB #6A#LN ATN #TAN ..E5#F#[P]4 CLSTAN IAT 68#TAN .....████████████████████████████████.████████████████████████████████#█[F][I][R][E][B][A][L][L][S]█[A][N][D]█[G][H][O][S][T][G][U][A][R][D][S]█[R][O][A][M]█#█[T][H][E]█[C][O][R][E][,][I][F]█[Y][O][U]█[D][E][S][T][R][O][Y]█[E][N][O][U][G][H]█#█[G][H][O][S][T][S]█[Y][O][U]█[W][I][L][L]█[B][E]█[S][H][O][W][N]█[T][H][E]███#█[E][X][I][T][.]█[F][I][V][E]█[F][I][R][E][B][A][L][L][S]█[E][Q][U][A][L]█[O][N][E]█#█[G][H][O][S][T][.]█████████████████████████#█[Y][O][U][R]█[C][O][N][T][R][O][L][S]█[A][R][E][:][-]████████████#█[1]█[P][R][E][S][S][.][.][.]█["]SHIFT["]█[T][O]█[F][I][R][E]█████#█████████████[N][E][U][T][R][O][N]█[S][T][R][E][A][M][.]████#█[2]█[P][R][E][S][S][.][.][.]█["]L["][T][O]█[M][O][V][E]█[L][E][F][T]█████#█[3]█[P][R][E][S][S][.][.][.]█["]P["][T][O]█[M][O][V][E]█[R][I][G][H][T]████#████████████████████████████████#█[W][H][E][N]█[Y][O][U]█[R][E][A][C][H]█[T][H][E]█[E][X][I][T]█[Y][O][U]████#█[J][O][I][N]█[T][H][E]█[M][O][T][H][E][R]█[S][H][I][P]█[I][N]█[O][R][B][I][T][.]█#█[B][E][W][A][R][E]█[O][F]█[A][L][I][E][N]█[S][H][I][P][S][,][A]█[H][I][T]█[O][N]█#█[Y][O][U][R]█[S][H][I][P]█[C][O][N][S][U][M][E][S]█[F][U][E][L][.][D][E][S][T][R][O][Y]#█[A][N]█[A][L][I][E][N]█[Y][O][U]█[W][I][L][L]█[G][A][I][N]█[F][U][E][L][.]███#█[Y][O][U][R]█[C][O][N][T][R][O][L][S]█[W][I][L][L]█[C][H][A][N][G][E][:][-]████#█[4]█[P][R][E][S][S][.][.][.]█[S][H][I][F][T][E][D]["]P["][T][O]█[M][O][V][E]█[U][P]#█[5]█[P][R][E][S][S][.][.][.]█[S][H][I][F][T][E][D]["]L["][M][O][V][E]█[D][O][W][N]█#█[P][R][E][S][S]["]R["][T][O]["]RUN["][,][P][R][E][S][S]["]A["][T][O]["]NEW["]#████████████████████████████████#████[C][O][P][Y][R][I][G][H][T]█[B][.][B][U][R][D][E][T][T]█[1][9][8][3]████#███[P][E][R][S][O][N][A][L]█[S][O][F][T][W][A][R][E]█[S][E][R][V][I][C][E][S]███#████████████████████████████████#████████████████████████████████#████████████████████████████████#█████████████████[.]███████████[.]██#██████[.]████████████████████[.]████#███████[.]████████████████████████#████████████████████████████████#████████████████████████████████#████████████████████████████████#████████████████████████████████#██████████████[.]█████████████████#██████████████████████[.]█████████#████████████████████████████████#███████████[*]████████████████████#████[.]███████████████████████████#███████[.]████████████████████████#███[*]████████████████████████████#████████████████████████████████#[.]███████████████████████████████#████████████████████████[.]███████#████████[.]███████████████████████#██████████████████[.]█████████████#████████████████████████████████#█████████[*]██████████████████████##################################████████████████████████████████#████████████████████████████████#████████████████████████████████#█████████████████[.]███████████[.]██#██████[.]████████████████████[.]████#███████[.]██████████████████[/]█████#█████████████████████████[/]▞[/]████#██████████████████████████[/]█████#████████████████████████████████#████████████████████████████████#██████████████[.]█████████████████#██████████████████████[.]█████████#███████████████▀█▀██████████████#███████████[*]█▛0:H:▝[A]████████████#████[.]███████▘==([O])==▝███████████#███████[.]████,,>:888:<,,███████████#███[*]████████[~~]▒,,...,,▒[~~]███████████#██████████████[~~]▒▒▒[~~]█████████████#[.]███████████████████████████████#████████████████████████[.]███████#████████[.]███████████████████████#██████████████████[.]█████████████#████████████████████████████████#HI-SCORE:    FUEL:     SCORE:   ########################################
   1 REM #################################
   2 POKE 23094,205
   3 SAVE "TA[I]"
   4 LET X=USR 23357
   5 STOP
 30308 LET X=22862
 110 FOR N=31584 TO 31979
 120 POKE X,PEEK (N)
 125 LET X=X+1
 130 NEXT N
 140 STOP
 300 FOR N=18110 TO 22861
 310 IF PEEK N=136 THEN POKE N,8
 320 NEXT N
 330 GOTO 200
 400 SAVE "PROG 1[0]"
 450 STOP
 500 LET X=0
 510 LET Y=18110
 520 PRINT CHR$ (PEEK (Y+X+INT (X/32)));
 530 LET X=X+1
 536 IF X=4540 THEN STOP
 540 GOTO 515
 560 PRINT CHR$ (PEEK (Y+X+INT (X/32)));
 570 IF PEEK (X+Y+INT (X/32))=128 AND PEEK (X+Y+INT (X/32)+1)<>128 AND PEEK (X+Y+32+INT (X/32))<>128 AND PEEK (INT (X/32)+X+Y+33)<>128 THEN GOSUB 1000
 605 PRINT "WHERE FROM ";
 610 INPUT Y
 612 PRINT Y
 615 PRINT "WHERE TO ";
 620 INPUT Z
 625 PRINT Z
 628 FOR X=0 TO 32
 630 POKE (Z+X),PEEK (Y+X)
 635 PRINT CHR$ (PEEK (Y+X));
 640 NEXT X
 650 GOTO 605
 1010 POKE (X+Y+INT (X/32▛[▒][,,]8
 1300 RETURN

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top