telehack.txt is the main help file for Telehack. You can use it to get hints when you're stuck. Back before Wikis and Google, text files were the only way to learn anything.

Here you can see a copy of the original telehack.txt file (dated 3rd of March, 2012), which can be found in the root directory of every user within the root Telehack system.



    Telehack is a simulation of a stylized arpanet/usenet, circa 1985-1990.
    It is a full multi-user simulation, including 25,000 hosts and BBS's
    the early net, thousands of files from the era, a collection of
    adventure and IF games, a working BASIC interpreter with a library of
    programs to run, simulated historical users, and more.


On the web:

or open a shell and type

    telnet supports an open web telnet interface.  You can also telnet
directly to telehack on the standard telnet port 23.


Non-sighted users: please type STTY /dumb after connecting to telehack.
This will invoke plain terminal mode in the ZRUN games and avoid using
ANSI cursor addressing.

About this Document

Telehack is case-insensitive.  Commands are often shown in uppercase to
distinguish them from surrounding text.  Note that you do not need to type
commands in all-caps.  For example:

    Type DIR for a list of files

You may type DIR or dir to obtain a list of files.

In help messages, <> signifies required arguments to commands, whereas
[] signifies optional arguments.  The pipe symbol | signfies "or" or an
alternative.  For example,

    send <user|port> [message]

means that a user or port must follow the send command, but that the
message argument is optional (send will prompt for messages lines if you
do not specify one on the command line).

    @ send forbin hello
    @ send 15 hello

    @ send forbin
    forbin> hello

Getting Help

You can type ? at any prompt to get a list of available commands:

    @ ?
    Command, one of the following:
      acct        basic       clear       daytime     dial        dir
      exit        files       finger      halt        help        hosts
      ipaddr      joke        jsr         link        list        log
      netstat     password    ping        ps          ptycon      quest
      rem         run         send        starwars    status      systat
      telnet      traceroute  type        uptime      usenet      users

The HELP command provides one-line descriptions of command functions,
including any modifier arguments that may be available. Examples:

    @ help
    @ help telnet

Getting Unstuck

Any command may be terminated by typing ^C (control-C).  To log out of a
remote host or exit a subshell, type ^D (control-D), EXIT or QUIT.

Control Characters

A control key (CTRL) initiates a number of system functions when it is used
in conjunction with  another character.

To type a control character, hold down the control key, and at the same
time press the character you want.  For example:  to type a CTRL-C, hold
down the control key and  at  the  same  time  press the letter C.  In most
cases this prints (echoes) on your terminal as ^C.  In system documentation,
a control character such as control-C may also be described as CTRL-C or ^C.

Special control characters:

    ctrl-C	   interrupt program
    ctrl-N	   next line
    ctrl-P	   previous line
    ctrl-R	   quick relay (requires backgrounded relay)
    ctrl-T	   print system status
    ctrl-W	   delete word
    (up arrow)	   previous line
    (next arrow)   next line
    (tab)	   autocomplete next command/file/user/host

Quick Fun

Type STARWARS to view the pinnacle of ASCII-mation, a full-length rendition
of Star Wars in ASCII.

Typing JOKE will display a joke randomly selection from a massive unified
historical arpanet/caltech joke database.

NLI Lobby

When you first connect to Telehack, you will be in the not-logged-in
lobby.  The NLI lobby is indicated by the '.' prompt:

    $ telnet Trying  Connected
    to  Escape character is '^]'.

    Connected to TELEHACK port 13

    It is 8:16 am on Saturday, April 30, 2011 in Mountain View, California, USA.
    There are 10 local users. There are 24139 hosts on the network.

      Type ? for a command list.
      Type HELP for a more detailed command listing.
      Type control-C to interrupt any command.

    May the command line live forever.

    Command, one of the following:
      acct        basic       clear       daytime     exit        finger
      help        hosts       ipaddr      joke        list        login
      netstat     newuser     ping        ps          run         starwars
      systat      telnet      traceroute  uptime      users


A limited subset of commands are available in the lobby.

To login or create a new account, type LOGIN.

Pager commands

When viewing any paginated output on Telehack, you may receive a --More--
prompt. This may be seen in the commands type, cat, more, less, as well as
any command which produces paginated output.

At the --More-- prompt, the following single-key commands may be typed:

    space   show next page
    b       back one page
    q       quit
    g       go to top
    G       go to bottom
    return  down one line
    j       up one line
    k       up one line
    /       search for a given string

Network Hosts

There are approximately 25,000 virtual hosts on the Telehack network.
These represent systems that were on the early Usenet/arpanet as well
as defunct BBS systems from the 80's and 90's.

Type HOSTS to see a partial list of network hosts.  Type HELP HOSTS for
more information on the hosts command.

A collection of retro files has been distributed across the hosts in the
network.  The files were sourced from the extensive archive assembled by
Jason Scott of as well as other sources.

Telnetting to Hosts

You may telnet to any host appearing in your netstat list:

    @ netstat
       host      organization                               location
       ----      ------------                               --------
       sunkist   Sun Microsystems Inc.                      Irvine, California
       mimsy     Computer Science Dept., Univ of Maryland   College Park, MD
       spgh01    Church of the Holy Sepulchre               Butler, PA
       vitam6    Vitalink Communications                    Fremont, CA
       hell      Clinton Reilly Campaigns                   Alameda, CA
       accom     Axial Corp.                                Belmont, CA

    @ telnet mimsy
    Connected to MIMSY

    Computer Science Dept., University of Maryland, College Park
    DEC Vax-8600 4.3BSD

    login: guest

    Authentication successful.
    Last login: Thu May 5 16:32:51 2011
       WARNING:  You must have prior authorization to access this system.
                 All connections are logged and monitored. By connecting to
                 to this system you fully consent to all monitoring.
                 Unauthorized access or use will be prosecuted to the full
                 extent of the law.

If you have not yet hacked into a host, you can try to login as the guest
user.  The full set of commands on the host may not be available if you are
logged in as guest.

Hacking a Host

    @ dir *.exe
      porthack.exe  wardial.exe
    @ run porthack
    [loading PORTHACK into static core]

    host? mimsy
    probing MIMSY for open sockets...

Once a host has been successfully hacked, you should be able to log into it
using your Telehack username and password.

Note that hosts which have been hacked and which you can log in to with
your username/password are identified in the netstat list with a '*'.

Collecting Programs

Look for .exe programs in the filesystem of each host you visit by typing
DIR *.exe or ls *.exe.  Use the RUN command to see what the program does.
The first time you run a program, it will be added to your static core, and
available for running in the future on other hosts, even if the .exe file is
not in the local filesystem.

You can see what programs have been loaded in your static core with the
LIST command:

    @ list
      num  program       ver  header
      ---  -------       ---  ------
      1.   wardial            find more hosts
      2.   porthack           open port exploit
      3.   morrisworm         Alert System Command Execution
      4.   kerntrap           Kernel VM Page Table Corrupter
      5.   rmicrack           Deserialization Escalation Exploit
      6.   trojan             Energizer DUO Trojan Scanner
      7.   metaframe          MetaFrame ICA Application Bruteforcer
      8.   nightstalker       Wireless Frame Injector
      9.   forbin             Telnet Login Check Scanner Exploit

      Type list or list <program> for program details.
      Type run or run <program> to run a program.

Historical Users

The 25,000 virtual hosts within Telehack were real systems available via
modem dialup, fidonet, uucp/usenet, or on the arpanet in the 1980's and
90's.  Real people used these systems and could often be seen logged in
doing work, reading, socializing or playing games.

Data archaeology applied against the oldest available uucp archives, UUCP
network maps from the era, as well as other available electronic sources
has allowed Telehack to reconstruct the online occupants of these vanished
network hosts.

To see users logged into a Telehack host, use the FINGER @host command:

    @ finger @sgi
    Login      Name                Tty      Idle  Login Time   Office     Office Phone
    vjs        Vernon Schryver     pts/10   3h    Apr 29 06:34 (
    rpw3       Rob Warnock         pts/13   6h    Apr 25 10:31 (
    vic        Victor Mitnick      pts/6    1     Apr 28 23:33 (
    greg       Greg Chesson        pts/9    3     Apr 27 15:05 (
    davidf     David Fenstemaker   pts/8    2d    Apr 24 05:10 (
    cjohnson   Chris Johnson       pts/12   4h    Apr 29 12:21 (
    ian        Ian Clements        pts/4    6h    Apr 23 22:03 (
    baskett    Forest Baskett      pts/2    29    Apr 27 00:54 (
    pchin      Phil Chin           pts/7    2h    Apr 30 04:31 (
    root       Superuser           pts/3    1d    Apr 28 08:27 (
    artibee    Mary Artibee        pts/1    3h    Apr 23 09:19 (
    wen        Wen-ching Chow      pts/5    2d    Apr 29 04:36 (

    @ finger @chinet
    Login      Name                Tty      Idle  Login Time   Office     Office Phone
    schneier   Bruce Schneier      pts/20   3h    Apr 26 12:09 (
    randy      Randy Suess         pts/5    3h    Apr 27 17:37 (
    odesta     Odesta Corp.        pts/27   20    Apr 29 17:34 (
    ward       Ward Christensen    pts/0    7h    Apr 28 06:37 (
    saj        Stephen Jacobs      pts/8    1h    Apr 23 11:59 (

Guessing Passwords

Users in the past did not always choose strong passwords.  A common
hacking method was to try various common passwords such as "secret",
"love", "trustno1", etc. to find a way into a system.

Z-Code Games

A collection of games written for the Z-Machine have been distributed
across the hosts in the Telehack network.  Z-Code games are identified by
the .GAM extension:

    @ ls *.gam
      advent.gam   lostpig.gam  zork.gam

    @ run advent.gam

    Welcome to Adventure 

    At End Of Road
    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 gully.


    login and use the save command..

You can see a list of all z-code games by typing ZRUN by itself.

BASIC Interpreter

To enter the basic interpreter, type BASIC.

    @ basic
    Darthmouth DTSS TeleBASIC (c) 1964,1966,1969,1970,1971,1979

The basic interpreter subsystem has a number of historical programs
compiled from the SIMTEL archives as well as other sources. To see a full
list of available programs, type DIR within basic.  You can load a program
with LOAD or begin execution with RUN.

Basic commands are:

    > help
    delete          delete a user program
    dir             directory of basic programs
    help            print this list
    list            list the program in memory
    load <file>     load program from file
    quit            exit the basic interpreter
    run             run the program in memory
    run <program>   load and run the specified program file
    save <file>     save a user program

Example basic session:

    @ basic
    Darthmouth DTSS TeleBASIC (c) 1964,1966,1969,1970,1971,1979
    > ?
    Command, one of the following:
      delete  dir     help    list    load    quit    run     save
    > dir
      23matches.bas    3dplot.bas       aceyducey.bas    aceyducy.bas
      astrnmy2.bas     bar.bas          basketball.bas   basketbl.bas
      batnum.bas       baz.bas          bigcal2.bas      birthday.bas
      bobo.bas         bombsaway.bas    bombsawy.bas     boxing.bas
      budget.bas       bug.bas          bunny.bas        buzzword.bas
      calendar.bas     calendr5.bas     change.bas       chemist.bas
      chief.bas        combat.bas       command.bas      cpmprt51.bas
      craps.bas        cube.bas         deedyork.bas     delers.bas
      depthcharge.bas  depthchg.bas     diamond.bas      eddie.bas
      euphoria.bas     evenwin1.bas     evenwins.bas     fakephre.bas
      feesten.bas      finance.bas      godd.bas         gomoko.bas
      gunner.bas       hammurabi.bas    hamurabi.bas     hello.bas
      hi-lo.bas        hilo.bas         hurkle.bas       ic-timer.bas
      kalfeest.bas     kinema.bas       lander.bas       lem.bas
      letter.bas       life.bas         lifscore.bas     litquiz.bas
      loan2.bas        log10k.bas       lunar.bas        maptest.bas
      massa.bas        mathdice.bas     million.bas      nicoma.bas
      nicomachus.bas   nim.bas          number.bas       orbit.bas
      pirate.bas       pizza.bas        poetry.bas       qubit.bas
      queen.bas        rc5.bas          rocket.bas       rockscissor.bas
      rocksp.bas       rusrou.bas       satelite.bas     sceptre1.bas
      slalom.bas       slots.bas        snafufun.bas     sort.bas
      splat.bas        stars.bas        stock.bas        stockmarket.bas
      survival2.bas    target.bas       tem-ins.bas      test1.bas
      tictac1.bas      tictactoe1.bas   timer555.bas     trap.bas
      ttl-scrl.bas     ucase.bas        uitleg1.bas      uitleg2.bas
      unprotct.bas     war.bas          weekday.bas      windchil.bas
      xfertime.bas     xformer.bas      ykw1.bas         ykw2.bas
    > load hello.bas
    > list
        2  PRINT TAB(33); HELLO 
        6  PRINT: PRINT: PRINT
       40  INPUT B$: PRINT
       50  IF B$= YES  THEN 70
       55  IF B$= NO  THEN 80
    > run



6502 System Monitor

To enter the system monitor, type:

    @ call -151
    1441102  96 14      STX      $14,X

Monitor commands are:

    d   dump memory
    l   disassemble cpu opcodes
    r   return to last jsr point
    g   execute address

The memory dump will show the octal address on the left column, the hex
values for the memory at that address, and an ASCII translation of the
memory values:

    2364636  60 01 2C 26 6C D1 68 C7 45 40 1A F9 39 66 23 21   `.,&l.h.E@..9f  
    2364656  07 8D 39 0D 00 2C 1E F4 69 8D 64 07 19 10 00 35   ..9..,..i.d....5
    2364676  09 A1 2C 6E 2B B5 29 2E 65 D4 4F 01 04 3E 04 73   ..,n+.).e.O..>.s
    2364716  53 25 54 B9 14 E1 1D 9A 2B 19 60 13 51 20 52 E0   S%T.....+.`.Q R.
    2364736  4B 52 1E 2A 03 66 33 4A 47 C1 10 99 35 5E 00 54   KR.*.f3JG...5^.T
    2364756  32 26 4D 0A 03 34 70 D7 24 04 3C C8 40 21 09 CE   2&M..4p.$.<.@ ..
    2364776  2C 02 78 31 1A 60 51 6B 39 0E 1A 20 5D 58 56 93   ,.x1.`Qk9.. ]XV.
    2365016  61 45 C8 A5 BB AB 02 21 02 3A 01 08 AD A4 B2 01   aE..... .:......
    2365036  94 2B 00 52 61 84 A5 21 02 45 00 9D E0 1F 32 BF   .+.Ra.. .E....2.

To disassemble CPU instructions instead, use the l command:

    2366320  63         SUBD2
    2366321  04 25      TSB      $25
    2366323  64 9C      STZ      $9C
    2366325  2A         ROL
    2366326  31 04      AND      ($04),Y
    2366330  21 30      AND      ($30,X)
    2366332  31 09      AND      ($09),Y
    2366334  A3         MOVAB
    2366335  44         PUSHAW

If an entry point in the system monitor is known, you can execute it with
the g command:


To return to the Telehack command shell from the system monitor,
use the r command.

Remote Terminal Monitoring

The link command will connect a remote user's tty to your tty.  This will
let you assist the remote user by being able to view the remote output.

    @ link <user or port>

In this case, the other user would see something like

    %link from port 16 user foo

And their session from that point would be mirrored on the linking
user's terminal.

There is also a separate facility within ptycon to allow simultaneous
monitoring of all connected ports.

Finger from outside

Telehack also responds to finger requests from the outside Internet on port 79:

    $ finger
    TELEHACK SYSTEM STATUS  04-May-11  23:27:08
    4 users

      port  username   status               last  what     where
      ----  --------   ------               ----  ----     -----
      0     operator   System Operator      5m             console
      16    -                               3m    alice3   Lithuania
      17    forbin     Dr. Charles Forbin   13m            Provo, UT
      20    foo        Yoda Soda            19m   ptycon   Oakland, CA

    $ finger
    USER: forbin
       system level:          WIZARD
       account age:           95 days
       last login:            today
       system connects:       5
       commands executed:     143

       user status bits:
   HACK10      Hacked 10 network hosts          30-Jan-11  23:19:57
   HACK5       Hacked 5 network hosts           30-Jan-11  21:00:34
   HACKER      Hack the Planet                  29-Jan-11  22:31:48
   ACCT        Registered User                  29-Jan-11  22:23:17

    $ finger
    Login      Name                Tty      Idle  Login Time   Office     Office Phone
    vjs        Vernon Schryver     pts/10   3h    May 03 21:26 (
    rpw3       Rob Warnock         pts/13   6h    Apr 30 01:23 (
    vic        Victor Mitnick      pts/6    1     May 03 14:25 (
    greg       Greg Chesson        pts/9    3     May 02 05:57 (
    davidf     David Fenstemaker   pts/8    2d    Apr 28 20:02 (
    cjohnson   Chris Johnson       pts/12   4h    May 04 03:13 (
    ian        Ian Clements        pts/4    6h    Apr 28 12:55 (
    baskett    Forest Baskett      pts/2    29    May 01 15:46 (
    pchin      Phil Chin           pts/7    2h    May 04 19:23 (
    root       Superuser           pts/3    1d    May 02 23:19 (
    artibee    Mary Artibee        pts/1    3h    Apr 28 00:11 (
    wen        Wen-ching Chow      pts/5    2d    May 03 19:28 (

Usenet Archive

Type USENET to view the Usenet archive.

The archive was originally collected by Henry Spencer at the University of
Toronto beginning in 1981. Later it was rescued by David G. Wiseman from
the University of Western Ontario, who drove two hours in a pickup truck to
collect 141 magtapes and save them from destruction:

    If I recall correctly, the issue of Henry Spencer's (actually,
    the University of Toronto, Department of Zoology's) NetNews
    archive was raised at a Usenix conference in the early 90's.
    The question: can we get at them? Bruce Jones was especially
    interested in this. Henry's answer was that it really wasn't
    going to be easy because he had neither the disk space nor the
    tape drive to pull them all down to make them available.

    I, it turned out, did. So one bright winter day I drove from
    London (Ontario Canada) to Toronto (Ontario Canada) -- a two
    hour drive in my shiny new pickup truck and picked up 141
    magtapes from the Zoology department at UofT and brought them
    back to the Department of Computer Science at the University
    of Western Ontario. (A not unimpressive bandwidth, by the way,
    of some 18Mb/sec :-) never underestimate the bandwidth of a
    pickup truck on the highway )


Some additions have been made to the usenet archive available on
Telehack which have been provided from other sources.


Halting the CPU to enter the system monitor is not advised.  However, if
you do this, the operator will usually supply a monitor entry point to
enable CPU restart and re-entry into the telehack exec.


    .     repeat last command
    w     systat
    w     finger
    l     dir
    ls    dir
    date  daytime
    cat   type
    cls   clear
    ?     command list

How to enable telnet in Windows 7

Windows 7 ships with a telnet client, but it is shut off by default.
To enable it, do the following:

    Control Panel
    Programs And Features
    Turn Windows features on or off
    Check Telnet Client
    Hit OK

After that, you can open a command prompt and type


See Also

Community content is available under CC-BY-SA unless otherwise noted.