This is a Hang-Man word-guessing game for the Sinclair TS2068, where the player must identify hidden words letter by letter before the hangman figure is fully drawn. The program’s entire logic, word list, graphics, and game engine are embedded as machine code within a large REM statement at line 0, with line 2 using PEEK to check a flag at address 23681 and then jumping into that code via USR 35505. Line 3 clears the screen and halts normal BASIC execution, making the REM block the true program. The word list encoded in the REM data includes several hundred vocabulary words spanning common English terms, and the game includes a DEMO mode and scoring feedback messages. Published by Byte Power in 1986 and written by Eric Boisvert.
Program Analysis
Program Structure
The program consists of only four numbered lines, but the vast majority of its content resides in the REM statement at line 0. This REM block contains the entire game engine as embedded machine code, along with a large word list, UDG graphics data, display strings, and game logic. The actual BASIC lines are:
- Line 0:
REM— contains machine code, word data, UDG definitions, and all game assets. - Line 1:
REM— copyright notice: “Copyright BYTE POWER 1986 / WRITTEN BY ERIC BOISVERT”. - Line 2:
IF PEEK 23681<>0 THEN PRINT USR 35505— checks a system flag and if nonzero, transfers control into the machine code at address 35505 (within the REM block). - Line 3:
CLS : LIST 9999: STOP— clears the screen, attempts to list a nonexistent line, and halts; this prevents normal BASIC from running the REM data. - Line 9999:
SAVE "HANG-MAN" LINE 1: VERIFY "HANG-MAN"— saves the program with auto-run from line 1 and immediately verifies the tape.
Machine Code Execution
The technique of storing machine code inside a REM statement is a well-known Sinclair idiom. The REM data at line 0 is not interpreted by BASIC; instead, the USR 35505 call in line 2 jumps the Z80 CPU directly into the byte sequence stored there. The address 35505 corresponds to a location inside the REM block in RAM. The PEEK 23681 check tests system variable COORDS (or an equivalent flag in that memory location) to conditionally launch the machine code, possibly detecting whether the system is in a suitable state or whether the program has been freshly loaded.
Word List Encoding
The REM statement encodes an extensive vocabulary list of several hundred English words. The words are stored as truncated keyword-token sequences — a side effect of how the Sinclair BASIC tokenizer compresses text inside REM statements during entry, where any sequence matching a BASIC keyword is stored as a single token byte. For example, ABANDONMEN is stored partly as the token for AND followed by further characters. This means the word list occupies far less memory than raw ASCII strings would require, a significant space optimization on a RAM-constrained machine.
UDG and Graphics Data
The REM block contains UDG (User Defined Graphics) definitions, referenced later by \a through \r escapes visible in the data strings. These UDGs form the hangman figure’s body parts, the gallows structure, and possibly letter-display tiles. Block graphic characters (▘, ▝, ▄, █, etc.) are also heavily used throughout the embedded data for drawing the game screen.
Game Features Visible in Data
Several string literals embedded in the REM data reveal game features:
- Player prompts:
INPUT YOUR LETTER: - Result messages:
THE WORD WAS,YOU HAVE FOUND WORDS OUT OF ! - Scoring feedback ranging from
THIS IS A VERY POOR SCORE!toALL OF THEM, YOU ARE VERY CLEVER! - Word-found notification:
YOU HAVE FOUND THE WORD... - Repeated-letter warning:
YOU HAVE USED THIS LETTER - Score word labels:
NO ONE TWO THREE FOUR FIVE - Menu options:
PLAY,DEMO,QUIT - Title display:
HANG-MANandQ U I T
Notable Techniques
- REM-as-machine-code: The entire game fits in one REM statement, making the BASIC wrapper trivially small and the program effectively a machine code binary with a BASIC loader.
- Keyword tokenization of word list: Vocabulary words are stored as BASIC token sequences rather than plain text, involuntarily compressing the data.
- Conditional USR launch:
PEEK 23681<>0acts as a guard before executing machine code, a defensive pattern to avoid crashes on unexpected system states. - Line 3 LIST 9999 / STOP: Targeting a nonexistent line with
LISTis harmless and, combined withSTOP, prevents any accidental further execution of BASIC. - SAVE LINE 1: The save command targets line 1 as the auto-run entry point, so after loading from tape the machine code is entered via the
PEEK/USRcheck immediately.
Anomalies and Observations
The word list contains a few apparent misspellings that would be present in the game data itself — for instance HIPNOSI (for “hypnosis”), KNICKERBOKER, ELOQUAN, and YEILBIN — suggesting the word list was entered manually with occasional typographical errors. The word DIARRHOESTR$ and similar entries with appended STR$, CHR$, INK, etc. fragments are artifacts of the tokenizer consuming trailing characters as keywords during program entry; the machine code likely strips or accounts for these token bytes when reading words at runtime.
Content
Source Code
0 REM \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN \nIN COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY COPY b▝ COPY b▝ 1s▝ RETURN AND STR$ RETURN INPUT ▝ COPY j▝ ▝ COPY RETURN RETURN RUN FREE STICK RETURN SAVE STICKFREE STICK\cSTICK RUN \l RETURN STICK RETURN xSTICK RETURN VERIFY STICK RETURN PLOT PLOT STICKv PLOT z ERASE STICK COPY COPY PRINT UUUUUUUUUUUUUUUUUUUUUUUUUUUU_ COPY COPY PRINT _ COPY COPY PRINT FORMAT O RETURN \nIN ABAC THEN ABANDO DEF FN ABANDONMEN CLOSE #ABASEMEN CLOSE #ABAS>=ABAT OR ABBREVIATIO DEF FN ABDICAT OR ABDOME DEF FN ABDUCTIO DEF FN ABEBIN ABEYANC OR ABHO ERASE ABHORRENC OR ABID OR ABILIT INK ABJEC CLOSE #ABJUR OR ABL OR ABNORMA TO ABOARBIN ABOLIS>=ABOLITIO DEF FN ABROGATIO DEF FN ABRUP CLOSE #ABSCES OPEN #ABSENC OR ABSOLUT OR ABSOLV OR ABSORBIN ABSTEMIOU OPEN #ABSURBIN ABUNDANC OR ABUS OR ABYS OPEN #ACADEMINOT ACADEM INK ACCELERAT OR ACCEN CLOSE #ACCENTUAT OR ACCEPTABL OR ACES OPEN #ACCESSIBL OR ACCESSORIE OPEN #ACCIDEN CLOSE #ACCOMMODAT OR ACCOMPANIMEN CLOSE #ACCOMPAN INK ACCOMPLIC OR ACHEIV OR ACIBIN ACKNOWLEDG OR ACQUAIN CLOSE #ACQUAINTANC OR ADHER OR ADJUS CLOSE #ADMINISTRATIO DEF FN AGGRANDIZ OR ASSASSINATIO DEF FN AWAKE DEF FN AWKWARDNES OPEN #AWFU TO BACHELO ERASE BAC THEN BACO DEF FN BAGGAG OR BAILIF AND BAI CLOSE #BAK OR BALANC OR BALCON INK BALBIN BALLOO DEF FN BALUSTRAD OR BANANSTR$ BANDAG OR BAPTIZ OR BARCHR$ BARBARIA DEF FN BARBAROU OPEN #BARGAI DEF FN BAR THEN BARRACK OPEN #BARRE TO BATTL OR BA INK BEAC>=BEA ERASE BEARBIN BEAVE ERASE BEBIN BEETL OR BEFAL TO BEGGA ERASE BEL TO BELLOW OPEN #BELL INK BELON<=BENEAT>=BICYCL OR BLAMEWORTH INK BLOUS OR BLOO STEP BLOOBIN BONFIR OR BONNE CLOSE #BOROUG>=BOS OPEN #BOUNBIN BOWLE ERASE BO CIRCLE BRANC>=BREADT>=BUTTERFL INK CABBAG OR CABL OR CAJOL OR CADD INK CANDIDAT OR CANDIBIN CAPTIVAT OR CARBO DEF FN CARETAKE ERASE CARG CAT CARRO CLOSE #CARRIAG OR CARTRIG OR CARTOO DEF FN CASIN CAT CATCHWORBIN CATARR>=CATASTROPH OR CATHEDRA TO CAUSELES OPEN #CEILIN<=CENSUR OR CELEBRAT OR CELLOPHAN OR CELLULOIBIN CELLULOS OR CENTRA TO CHANNE TO CHANCELLO ERASE CHAMOI OPEN #CHEE THEN CHEE ERASE CHICKE DEF FN CHESTNU CLOSE #CHIP OPEN #CHIRRU FORMAT CHOCOLAT OR CHOIC OR CHURCHYARBIN CIDE ERASE CIPHE ERASE CIRCUI CLOSE #CLOCKWIS OR COMFORTABL OR COMMUNA TO COMMUNIO DEF FN COMPLET OR CONCEI CLOSE #CONCLUSIV OR CONDUCTO ERASE CON OR CONFOR STEP CONINOT CONSCIENTIOU OPEN #CORDUROY OPEN #CUCKO CAT DADD INK DAINTINES OPEN #DAMAS THEN DAMPE ERASE DANC OR DANGE ERASE DARKE DEF FN DEADLOC THEN DEA AND DEAT>=DECADEN CLOSE #DECEAS OR DEDICATIO DEF FN DEDUCTIO DEF FN DEEPNES OPEN #DELEGAT OR DEGENERATIO DEF FN DEMANBIN DENOMINATIO DEF FN DEPOSI CLOSE #DESCENDAN CLOSE #DETEC CLOSE #DEVI TO DIARRHOESTR$ DIC OR DISADVANTAGEOU OPEN #DISCOVE ERASE DISCOURS OR DISINHERI CLOSE #DISTI TO DOCTO ERASE DOMINEE ERASE DRES OPEN #DRIZZL OR DYSENTER INK DYNAM CAT DWAR AND DWEL TO DUS THEN DUNGEO DEF FN DUE TO DYNAMIT OR DROWS INK DROUGH CLOSE #DRESSMAKE ERASE DUBIOU OPEN #DOWE ERASE DOUCH OR DOUBL OR DOWNPOU ERASE DOZE DEF FN DRAWBAC THEN DUCHES OPEN #DROO FORMAT DURATIO DEF FN EAGERNES OPEN #EAR TO EART>=EAVESDRO FORMAT ECCENTRINOT EDITIO DEF FN EGOIS STEP ELOQUAN CLOSE #ELOP OR EMBEZZLEMEN CLOSE #EMBOL INK EMPHASI OPEN #ENDLES OPEN #ENLIS CLOSE #ENMIT INK ENTITL OR ENVELOP OR EQUI FORMAT ERRANBIN ESCOR CLOSE #ERRO ERASE ETHIC OPEN #EVASIV OR EXAMPL OR EXASPERAT OR EXCEEBIN EXCE TO EWE ERASE EVI TO EXI CLOSE #EXHOR CLOSE #EXHUM OR EXPOR CLOSE #EXPANBIN ENDEAV CAT ENCUMBE ERASE ENCOUNTE ERASE EMPIR OR EMPOWE ERASE ENAC CLOSE #ENBIN ENIGMSTR$ ENLIGHTE DEF FN ENHANC OR ENEMSTR$ ENTIC OR ENTRUS CLOSE #ENUMERAT OR ENTHUSIAS STEP ERUPTIO DEF FN EROD OR EQUILIBRIU STEP ERSTR$ ESTAT OR ESTRANGEMEN CLOSE #FABL OR FACTITIOU OPEN #FAGGO CLOSE #FAL TO FAMOU OPEN #FALTE ERASE FA DEF FN FAS CLOSE #FARTHE ERASE FAULT INK FEA ERASE FEE TO FENC OR FELLO BEEP FEMAL OR FETTE ERASE FIBR OR FIERCENES OPEN #FIL OR FIL STEP FIR OR FLAS>=FLAS THEN FLIMS INK FLI FORMAT FLUS>=FLOUNDE ERASE FLUT OR FOA TO FOLBIN FOO CLOSE #FOO TO FORBIBIN FORCIBL OR FOREFINGE ERASE FORTHCOMIN<=FORGETFULNES OPEN #FORSWEA ERASE FORTRES OPEN #FRANKNES OPEN #FRAUBIN FROLICSOM OR FURNAC OR FUTIL OR FUTUR OR GALLO DEF FN GANGWA INK GARAG OR GA OPEN #GARMEN CLOSE #GENERA TO GENERALIZATIO DEF FN GENUIN OR GHOSTL INK GIRLHOOBIN GLAZIE ERASE GLEA STEP GLE OR GLID OR GLOB OR GLOO STEP GLOS OPEN #GNAS>=GOGGLE OPEN #GOODNES OPEN #GOVERNO ERASE GOOSEBERR INK GRACEFUL TO GRAMOPHON OR GRANAR INK GRAVE TO GRASSHOPPE ERASE GREEDINES OPEN #GRAVITATIO DEF FN GROUNDLES OPEN #GROWE ERASE GUARANTE OR GUMBOI TO GU DEF FN GUNNE ERASE GUS CLOSE #GU CLOSE #GUTTE ERASE GU INK GYMNASTIC OPEN #GYMPSU STEP GUES OPEN #GROW TO GRUDG OR GRUF AND GUILELES OPEN #GUILT INK GUITA ERASE GAZETT OR GEOGRAPHE ERASE GENTL OR GAUG OR GAT OR GIGGL OR GLANBIN HABERDASHE ERASE HABI CLOSE #HABITUA TO HAGGARBIN HANDWRITIN<=HAST INK HATCHE CLOSE #HEALT>=HEA FORMAT HAZARDOU OPEN #HEARS OR HEARTBEA CLOSE #HEIGH CLOSE #HEI ERASE HELICOPTE ERASE HEMISPHER OR HE DEF FN HEROINOT HICCU FORMAT HILARIOU OPEN #HOBB INK HOMAG OR HOMEL INK HOMEWARD OPEN #HORRO ERASE HORIZO DEF FN HOSTE TO HOU ERASE HUG OR HUMILIATIO DEF FN HURDL OR HURRICAN OR HUS THEN HUSK INK HUSTL OR HYDROGE DEF FN HYENSTR$ HYGIEN OR HYSTERICA TO HYPOCRIT OR HYPNOTIZ OR HIPNOSI OPEN #HU CLOSE #HAMMOC THEN IC OR ICICL OR IDESTR$ IDEA TO IDEALIS CLOSE #IDIO CLOSE #IDL OR IDYLLINOT IGNITIO DEF FN IGNORANC OR ILLEGITIMAC INK ILLUMINAT OR ILLUSIO DEF FN IMAG OR IMPASSABL OR IMPE TO IMPENETRABL OR IMPERTURBABL OR IMPRACTICABL OR IMPOSIN<=INCESSAN CLOSE #INC>=INCU ERASE INCREAS OR INCONVERTIBL OR INCONVENIENC OR INCOMPARABL OR INDECISIO DEF FN INDEEBIN INDE CIRCLE INDISCREE CLOSE #INDIGNATIO DEF FN INDULGENC OR INEXHAUSTIBL OR INDUSTRIALIZ OR INFAN CLOSE #INFLAMMATIO DEF FN INFINIT OR INFAMOU OPEN #INHABITABL OR INHERITANC OR INNUMERABL OR INOCULAT OR INSOLVENC INK INSEC CLOSE #INSUFFERABL OR INTELLIGEN CLOSE #INTOXICAT OR INTERVIE BEEP INVESTIGAT OR IRREPROACHABL OR IRRESPONSIBL OR IRRITAT OR ISLANBIN ITERAT OR ITE STEP JAUNDIC OR JA BEEP JEOPARDIZ OR JOK OR JOGGL OR JINGL OR JEWE TO JOINE ERASE JACKE CLOSE #JOL CLOSE #JERSE INK JELL INK JOCHR$ JOURNA TO JOURNE INK JUBILE OR JUDG OR JUDICATUR OR JUGGLE ERASE JUNCTIO DEF FN JUM FORMAT JUNGL OR JUNIO ERASE JURISDICTIO DEF FN JUR INK JUS CLOSE #JUSTIC OR JUSTIF INK JUT OR JUIC OR JUDICIOU OPEN #JUDICIA TO JOYFU TO JAI TO JACKA TO JOIN CLOSE #JOURNALIS CLOSE #JE CLOSE #JAC THEN JA ERASE JEE ERASE JEALOUS INK KANGARO CAT KEE TO KEE DEF FN KEE FORMAT KEEPSAK OR KENNE TO KERNE TO KETTL OR KE INK KEYBOARBIN KIDNE INK KIL TO KILOGRA STEP KILOMETR OR KILOWAT CLOSE #KINDL OR KINDREBIN KIN<=KITCHE DEF FN KIS OPEN #KITTE DEF FN KNAPSAC THEN KNAV OR KNEABIN KNE OR KNEE TO KNICKERBOKER OPEN #KNIGH CLOSE #KNI CLOSE #KNOCHR$ KNO CLOSE #KNO BEEP KNOWIN<=KNOWLEDG OR KNUCKL OR LABE TO LABORATOR INK LAC OR LADDE ERASE LAD INK LAGE ERASE LAGOO DEF FN LAM FORMAT LAMCHR$ LANBIN LANDLORBIN LANDSCAP OR LANGUAG OR LAN OR LAPE TO LAPS OR LARG OR LAR THEN LAS>=LAS CLOSE #LATHE ERASE LATITUD OR LATTE ERASE LATTIC OR LAUDABL OR LAUG>=LAUNC>=LAUNDRES OPEN #LAUNDR INK LAVSTR$ LAYE ERASE LAXATIV OR LAZ INK LEAFLE CLOSE #LEAGU OR LEAR DEF FN LEAS CLOSE #LEATHE ERASE LECTUR OR LETTE ERASE LES CLOSE #LEGITIMAT OR LEPE ERASE LEMONAD OR LENBIN LIABILIT INK LIBE TO LIBERT INK LIF OR LICENS OR LINE DEF FN LIMCHR$ LIM FORMAT LIO DEF FN LI FORMAT LISTE DEF FN LISTLES OPEN #LITTL OR LOA DEF FN LOADIN<=LOITE ERASE LOO THEN LORDSHI FORMAT LORR INK LOUNG OR LO BEEP LUM FORMAT LOYA TO LUKEWAR STEP LOZENG OR LUBRICAT OR LUC THEN LUGGAG OR LUMBAG CAT LUMINOU OPEN #LUNATINOT LUR THEN LUSCIOU OPEN #LUSTR OR LUT OR LYN CIRCLE LYRINOT LYRIC OPEN #MACAROO DEF FN MACHIN OR MACHINIS CLOSE #MACKERE TO MACKINTOS>=MABIN MADA STEP MADNES OPEN #MAGINOT MAIBIN MAGNIF INK MAI TO MAI STEP MAKE ERASE MAN OR MANFU TO MANGL OR MANHOOBIN MANISTR$ MANL INK MAR THEN MARMALAD OR MARRIAG OR MATC>=MATERNA TO MATHEMATIC OPEN #MATTE ERASE MASSACR OR MASSAG OR MASSIV OR MASTE ERASE MASTERPIEC OR MAXIMU STEP MEANIN<=MEA CLOSE #MEDICIN OR MENBIN MEL CLOSE #MEETIN<=MERCER INK MELOD INK MER OR MERR INK MICROSCOP OR MICROPHON OR MIDDA INK MIDNIGH CLOSE #MIDS CLOSE #MIDSUMME ERASE MILBIN MILITAR INK MINUT OR MISCARRIAG OR MISCELLANEOU OPEN #MISE ERASE MISTRES OPEN #MISUS OR MOCHR$ MOCKER INK MODERAT OR MOO DEF FN MOROS OR MUDDL OR MYTHOLOG INK NA<=NAI TO NAIV OR NAKEBIN NAM OR NA FORMAT NAPKI DEF FN NARCOSI OPEN #NARRO BEEP NAST INK NATIV OR NAUSESTR$ NAUTICA TO NAV OR NAVE TO NEPHE BEEP NERV OR NES CLOSE #NETWOR THEN NEURALGISTR$ NEEDLES OPEN #NEUTRALIT INK NIGHTINGAL OR NOBILIT INK NOBL OR NOBOD INK NICKNAM OR NOR STEP NOTWITHSTANDIN<=NOTORIOU OPEN #NOURISHIMEN CLOSE #NUL TO NUDG OR NUISANC OR NOZZL OR NOXIOU OPEN #NO BEEP NUMEROU OPEN #NU DEF FN NURS OR NURSER INK NU CLOSE #NUTRITIV OR NUTSHEL TO NOMINAT OR NOTHIN<=NONSENS OR NIEC OR NEGLIGEN CLOSE #NIPPL OR NUD OR OA THEN OASI OPEN #OAT>=OBDURAC INK OBEDIENC OR OBLON<=OBNOXIOU OPEN #OBSERVATOR INK OBSTRUC CLOSE #OBTAI DEF FN OBTRUD OR OCCURENC OR OFFSPRIN<=OFTE DEF FN OOZ OR OPERSTR$ OMNIOU OPEN #ONWARBIN ONL INK ORGANIZ OR OSTENSIBL OR OUTLA INK OUTRU DEF FN OVERCHARG OR OUTSTANDIN<=OW OR OW TO OW DEF FN OWNE ERASE OWNERSHI FORMAT OXYGE DEF FN OYSTE ERASE PAC OR PAI TO PAINFUL TO PALATABL OR PADDIN<=PALPITATIO DEF FN PARAMOUN CLOSE #PARAPE CLOSE #PARENTA TO PARSONAG OR PAR CLOSE #PARTAK OR PARTICIPAT OR PARTNERSHI FORMAT PASTEBOARBIN PATC>=PASSWORBIN PAW DEF FN PA BEEP PATHOLOGICA TO PA INK PEACEFU TO PEACOC THEN PEA THEN PEDESTRIA DEF FN PE<=PE DEF FN PEE ERASE PENSIO DEF FN PERAMBULATO ERASE PERFOR STEP PER STEP PERPLEXIT INK PERSEVERANC OR PERTINACIOU OPEN #PESSIMIS STEP PETT INK PETTICOA CLOSE #PHILOSOPHICA TO PHENOMENO DEF FN PICKPOCKE CLOSE #PIEC OR PI OR PINEAPPL OR PIRAT OR PISTO TO PIONEE ERASE PLAGU OR PLAINNES OPEN #PLASTE ERASE PLEASUR OR PLU STEP PLO CLOSE #PLIABL OR PLAYBIL TO PLEA CLOSE #PLEDG OR PNEUMONISTR$ POISONOU OPEN #POK OR POLIC OR POODL OR POO ERASE PORCELAI DEF FN POSSIBILIT INK POSSESSIO DEF FN POSTCARBIN POSTPONEMEN CLOSE #POTTER INK POWE ERASE PREDOMINEN CLOSE #PRIS STEP PROVOCATIV OR PSYCHOLOGICA TO PURPOSELES OPEN #PUZZL OR PYRAMIBIN QUAC THEN QUAI TO QUALIFICATIO DEF FN QUARANTIN OR QUARRELSOM OR QUESTIO DEF FN QUICKNES OPEN #QUIT OR QUIL CLOSE #QUIVE ERASE QUOTSTR$ QUOTATIO DEF FN QUOT OR QUOTIDIA DEF FN QUEE ERASE QUENC>=QUES ERASE IONNAIR OR QUADRANGL OR RABBI CLOSE #RAC OR RACKETEE ERASE RADI CAT RADA ERASE RADIOGRAP>=RADIOGRA STEP RAI DEF FN RADIS>=RAINCOA CLOSE #RAPACIOU OPEN #RASPBERR INK RA CLOSE #REACTIONAR INK READE ERASE REASONABL OR RECEPTIONIS CLOSE #RECKLES OPEN #RECOMMENDATIO DEF FN RECONSTRUC CLOSE #RECORBIN REDUCTIO DEF FN RECREATIO DEF FN RECTANGL OR REFRESHMEN CLOSE #REFUSA TO REINSURANC OR RELINQUIS>=REMARKABL OR RENEWA TO REPREHENSIO DEF FN REPRESENTATIV OR REPRESENTATIO DEF FN REQUIREMEN CLOSE #RESEMBLANC OR RESPONSIBILIT INK RETROSPECTIV OR RUDENES OPEN #SALABIN SADNES OPEN #SA BEEP SCARECRO BEEP SCAFFOLDIN<=SCHOO TO SCOOTE ERASE SEASICKNES OPEN #SENIL OR SENSELES OPEN #SEQUESTRATO ERASE SERPEN CLOSE #SESSIO DEF FN SHORTCOMIN<=SITUATIO DEF FN SLO CLOSE #SMIL OR SPEEDOMETE ERASE SPASMODICA TO SPOO DEF FN STRIK OR STUPENDOU OPEN #STUBBOR DEF FN STUDEN CLOSE #SUBCONSCIOU OPEN #SUBMARIN OR SUPPLEMENTAR INK SURNAM OR SWA DEF FN SYNONYMOU OPEN #TABL OR TA CIRCLE TAST OR TEA STEP THERMOMETR OR THUNDERSTOR STEP TO FORMAT TOTALITARIA DEF FN TOWE ERASE TOW DEF FN TROPICA TO TROUBL OR TUCHR$ TUB OR TWEEZER OPEN #TYPHOO DEF FN TYPEWRITE ERASE UMBRELLSTR$ UNDRES OPEN #UNIVERSA TO UNTRANSLATABL OR US OR UTILIZ OR VACCINATIO DEF FN VEGETABL OR VENTURESOM OR VOIC OR VOLCAN CAT VULTUR OR WALLFLOWE ERASE WALLPAPE ERASE WAV OR WA CIRCLE WEBIN WECHR$ WEE THEN WHAL OR WHISPE ERASE WILDERNES OPEN #WITHDRA BEEP WIR OR WORBIN WORKMANSHI FORMAT WRESTLE ERASE YESTERDA INK YOUTHFU TO YELLO BEEP YEILBIN ZEA TO ZIGZA<=ZON OR ZEALOU OPEN #ZEBRSTR$ ZER CAT ZOOLOGICA TO ZOOLOGIS CLOSE #ZOOLOG INK ZES CLOSE #WA CIRCLE AEIOURSTLGNMP@USR @@@USR @@0CAT \a\a FORMAT VAL p▄CHR$ 5\a\a FORMAT VAL \a\a FORMAT VAL ▖HT#*BIN VAL USR COPY COPY COPY COPY COPY COPY LPRINT LPRINT LLIST READ NEW GO TO SAVE LIST `USR COPY RETURN RETURN `\a(?©© LPRINT LPRINT LPRINT LPRINT LPRINT LPRINT LPRINT LPRINT LPRINT LPRINT LPRINT LIST SAVE GO TO NEW READ ?©© LET LPRINT LPRINT NEW P DRAW RETURN RETURN █<=gff`""! ,ffDD▗4$# $BIN USR ▀@p█I)Q▝A▘▗▐▌▄\j\c PLAY A\r!Q\b)I\fPOINT \c▄▐▘▝ COPY %I\b!A▝ COPY \i\i COPY COPY COPY COPY COPY RETURN COPY COPY COPY COPY COPY © RETURN RETURN FREE FREE FREE FREE FREE FREE ©©FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE COPY COPY RETURN SAVE LPRINT (l COPY COPY ©USR LIST SAVE SAVE LIST USR 0 SAVE P\a USR EANIROLTSCUDMPGBHYKFWVJZQX<<ff$ COPY FREE CIRCLE STICK6 DRAW 0 AND TO 0` AND ▚x TO ` DEF FN AND AND STICK00 LPRINT l8 RETURN 8lFREE 0STICK0`USR STICK AND DEF FN VERIFY NEW AND STICK0p LIST 000 DRAW STICK AND STICKUSR USR RETURN STICK AND AND STICK<l TO RETURN RETURN USR DRAW AND AND STICKSTICKUSR DRAW AND AND AND STICK RETURN AND 00xSTICK AND AND STICK AND AND STICKSTICK AND AND FREE STICK00`0STICKSTICK`00`STICK AND 00STICK AND DEF FN OVER TO USR FREE 8l AND RETURN AND AND AND DRAW ffSTICKff DRAW STICK AND USR USR USR AND STICK SAVE lfffl SAVE RETURN bhxhb RETURN RETURN bhxh` LIST STICK AND USR OVER AND AND STICK AND AND AND RETURN AND AND AND DRAW 00000 DRAW STICK NEW lxpxl NEW LPRINT ```bf RETURN AND INPUT RETURN VERIFY AND AND AND AND NEW PLOT OVER DEF FN AND AND STICK AND AND AND AND AND STICK DRAW ffSTICK`` LIST STICK AND AND AND AND AND STICKf NEW STICK AND USR STICK AND STICK COPY \j< AND AND AND AND AND AND STICK AND AND AND AND l8 AND AND AND VERIFY RETURN INPUT AND AND AND l8l AND AND NOT NOT f<< RETURN ▄0`CHR$ RETURN <00000<USR `0<<<FREE Z COPY <f` SAVE `b RETURN xSTICK TO STICKUSR USR \i\i\i\i\i\i\m\n\i\j\k\l \a\b\a\b\c\d\e\f\g\h\o\p███████████████-INPUT YOUR LETTER:#\a\b\c\d\e\f\g\h\i\j\k\l\m\o\q\q\q\n\p\r\r\r\f\h\h\j\e\g\g\i\a\b\c\dTHE WORD WAS YOU HAVE FOUND WORDSOUT OF !THIS IS A VERY POOR SCORE!WELL, BETTER LUCK NEXT TIME!YOU DISAPPOINT ME VERY MUCH!YOU'RE NOT GOOD,BUT NOT BAD!YOU ARE A FINE PLAYER!ALL OF THEM,YOU ARE VERY CLEVER!NOONETWOTHREEFOURFIVE YOU HAVE FOUND THE WORD...YOU HAVE USED THIS LETTER \a\b \a\b \a\a \a\b \a\a \a\b \c\d\e\f \c\d\e\f\h \g \h \g \j \i \j \i \j \i \j \i \l \k \l \kPLAYDEMOQUITHANG-MAN HANG-MANQ U I T RESTORE FOR FOR LLIST s#r+<> RESTORE ATN FOR GO SUB B PAUSE RESTORE >bkLN CLS EXP SAVE STOP ATN RESTORE FOR B0 CLS MERGE !6\>4w!7\>▐w!▖h STEP ▘▌!#6NOT DATA \e! STEP ▘▌! STEP ▘▌!:x\w#6! GO SUB [P STEP \d▌! GO SUB K STEP ▘▌![ SPECTRUM ▌ STEP ▘▌!▖h STEP ▘▌!▖ GO SUB [▖ FOR GO SUB \q FOR 6!▖ GO SUB [▖ STEP ▘▌!▖ GO SUB [▖ FOR GO SUB \q FOR 6!▖ GO SUB [▖ STEP \d▌ GO SUB K▖ STEP ▘▌!▖ GO SUB [▖ STEP ▘▌*▖ GO SUB [ GO SUB RCHR$ ▌▛NOT INPUT ▌*▖iATN GO SUB R LINE \j▛NOT 2▛*▖:▖w!▖ GO SUB [▖ STEP ▘▌!▖ GO SUB [▖ STEP SPECTRUM ▌*▖:▖w!▖ GO SUB [▖ STEP ▘▌*▖iATN GO SUB RCHR$ NEW ▛!▖h STEP ▘▌!▖i STEP ▘▌*ATN GO SUB RCHR$ ▄NOT ;▄!▖ GO SUB [▖ STEP ▘▌!▖ GO SUB [▖ FOR GO SUB \q FOR 6*▖ GO SUB R IF 8▄![ STEP ▄▌NOT PAUSE ▛NOT ▄ STEP REM ! ▖▚ STEP ▘▌!"▖ STEP ▘▌!STICK\>▗w!ON ERR\>INT wF▖ STEP FLASH !P▖ STEP FLASH ! STEP \h!W▖ STEP FLASH !Y▖ STEP FLASH ![▖ STEP FLASH !]▖ STEP FLASH ! STEP \h!:"▖G_▖ STEP FLASH ! STEP \h!!"▖ GO SUB ["▖ STEP ▘▌*"▖ATN GO SUB R LINE RANDOMIZE ▄NOT >=▄ STEP SIN ▖ STEP FLASH ! STEP SIN ▖ STEP FLASH ! STEP \h!!$▖ STEP ▘▌!&▖ GO SUB [▖ STEP ▘▌p▖ STEP FLASH !!$▖ GO SUB [$▖ STEP ▘▌!(▖ GO SUB [&▖ FOR GO SUB \q FOR 6*(▖ GO SUB R IF o▟NOT ©▟!&▖ GO SUB [&▖ STEP ▘▌NOT <▟!*▖▗ STEP ▘▌**▖>w!*▖ GO SUB [*▖ STEP ▘▌**▖▗ATN GO SUB R LINE TAB ▟NOT ▛▟!*▖▗ STEP ▘▌!,▖ STEP ▘▌ STEP SIN ▖ STEP FLASH ! STEP \h!*D▖ATN GO SUB RCHR$ ▙!.▖ FLASH RETURN w#6!0▖ GO SUB [ ▖ FOR GO SUB \q FOR 6! ▖ GO SUB [ ▖ STEP ▘▌ STEP DIM 0 STEP FOR !2▖' STEP ▘▌NOT ]▙ STEP DIM 0 STEP FOR !0▖:\w#6*0▖ATN GO SUB R PAUSE A▙NOT ▙*0▖ GO SUB R IF Q▙NOT ▙!2▖ STEP ▘▌SIN :0▖ STEP GO SUB \h!*D▖ATN GO SUB RCHR$ ▖▙*.▖ATN GO SUB R LINE ▖▙NOT DATA \e!2▖ GO SUB [2▖ STEP ▄▌*2▖ATN GO SUB R LINE PLAY ▙NOT ▖▙!4▖▗ STEP ▘▌!▖ GO SUB [4▖ FOR GO SUB \q FOR 6*▖ GO SUB [0▖ATN GO SUB RCHR$ STEP ▙NOT SPECTRUM \e*4▖ GO SUB [*▖ATN GO SUB R LINE REM ▙!4▖ GO SUB [4▖ STEP ▘▌NOT VAL ▙**▖:0▖w!*▖ GO SUB [*▖ STEP ▘▌!6▖ STEP ▘▌!▖ STEP ▘▌!&▖ GO SUB [▖ STEP ▘▌!8▖ GO SUB [$▖ STEP ▘▌!▖ GO SUB [&▖ FOR GO SUB \q FOR 6*▖ GO SUB R IF c█!▖ GO SUB [▖ STEP ▄▌!▖ STEP ▘▌*▖ GO SUB [0▖ATN GO SUB RCHR$ ██!$▖ GO SUB [$▖ STEP ▄▌:6▖O STEP SIN :0▖ STEP GO SUB \h!!6▖ GO SUB [6▖ STEP ▘▌*▖ATN GO SUB RCHR$ ATTR █NOT SQR █!&▖ GO SUB [&▖ STEP ▘▌NOT 0█*8▖ GO SUB [$▖ATN GO SUB R LINE THEN █NOT h\e:,▖O STEP SIN :0▖ STEP GO SUB \h!!,▖ GO SUB [,▖ STEP ▘▌*,▖ATN GO SUB RCHR$ 5\a!ON ERR\>:w!STICK\>▐w▗▖ STEP FLASH !▚▖ STEP FLASH !▖▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ t\a▌▖ STEP FLASH !▄▖ STEP FLASH !▙▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ OPEN #\a\a▖ STEP FLASH !\b▖ STEP FLASH !\c▖ STEP FLASH !▖ STEP FLASH !\e▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ 2\b\f▖ STEP FLASH !\g▖ STEP FLASH !\h▖ STEP FLASH !▖ STEP FLASH !\j▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ ▜\b!ON ERR\> LINE w\k▖ STEP FLASH !\l▖ STEP FLASH !\m▖ STEP FLASH !\n▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ VERIFY \b\o▖ STEP FLASH !\p▖ STEP FLASH !\q▖ STEP FLASH !\r▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ PRINT \b STEP SIN ▖ STEP FLASH ! STEP \h!*,▖ATN GO SUB RCHR$ STEP SIN ▖ STEP FLASH ! STEP \h!NOT \cNOT OR ▟ STEP SIN ▖ STEP FLASH ! STEP \h!!▖ GO SUB [▖ STEP ▘▌ STEP SIN !:▖ GO SUB [▖ FOR GO SUB \q FOR 6::▖ STEP GO SUB ▖ GO SUB [▖ STEP ▘▌!&▖ GO SUB [▖ FOR GO SUB \q FOR 6*&▖ GO SUB R IF \n\c!&▖ GO SUB [&▖ STEP ▄▌:&▖ STEP GO SUB \h!x STEP DIM 0 STEP FOR NOT \q\cNOT A\c STEP T\e STEP SIN ▖ STEP FLASH !!<▖ GO SUB [ STEP ▘▌ STEP MERGE \d▖ STEP FLASH !* GO SUB R IF STOP \c▖ STEP FLASH ! STEP \h!▖ STEP FLASH !!<▖ GO SUB [ STEP ▘▌ STEP MERGE \d▖ STEP FLASH ! STEP \h!TAN STEP DIM 0 STEP FOR STEP T\e! GO SUB [ STEP ▘▌*ATN GO SUB R PAUSE 2\dNOT INPUT ▌ STEP SIN *ATN GO SUB RCHR$ Q\d▖ STEP FLASH ! STEP \h!*ATN GO SUB RCHR$ i\d▖ STEP FLASH ! STEP \h!*ATN GO SUB RCHR$ ▝\d▞ STEP FLASH ! STEP \h!*ATN GO SUB RCHR$ \j\d▞ STEP FLASH ! STEP \h!*ATN GO SUB RCHR$ LEN \d▞ FLASH ! STEP \h!*ATN GO SUB RCHR$ <>\d▞ STEP FLASH ! STEP \h!TAN STEP DIM 0 STEP FOR NOT DATA \e*<▖ATN GO SUB RCHR$ REM \d▞ STEP FLASH !*<▖ATN GO SUB RCHR$ COPY \d▞ STEP FLASH !*<▖ATN GO SUB RCHR$ ▞ STEP FLASH !*<▖ATN GO SUB RCHR$ )\e▞ STEP FLASH !*<▖ATN GO SUB RCHR$ >\e▞ STEP FLASH !*<▖ATN GO SUB RCHR$ S\e▞ STEP FLASH !<> STEP SIN ▞@ STEP FLASH ! STEP \h!<>*$▖ATN GO SUB RCHR$ \q\e STEP SIN ▞ STEP FLASH ! STEP \h!x STEP DIM 0 STEP FOR ! GO SUB [ STEP ▘▌NOT \q\cNOT OR ▟ STEP SIN ▞ STEP FLASH ! STEP \h!!2▖a STEP ▘▌!2▖ GO SUB [2▖ STEP ▄▌*2▖ATN GO SUB R LINE OVER \eNOT CHR$ \e STEP T\eNOT OR ▟ STEP REM &▖▐ STEP ▘▌!ON ERR\:&▖w!>▖ GO SUB [&▖ STEP SPECTRUM ▌!STICK\:>▖w> STEP GO SUB ▌ STEP FLASH !> STEP FLASH ! STEP \h!!&▖ GO SUB [&▖ STEP ▘▌*&▖▐ATN GO SUB R LINE Z\fNOT IF \e> STEP GO SUB STEP FLASH !>▌ STEP FLASH ! STEP \h!> STEP GO SUB ▌ STEP FLASH !>▌ STEP FLASH ! STEP \h!> STEP GO SUB !▌ STEP FLASH !>&▌ STEP FLASH ! STEP \h!!\b\>w+▌ STEP FLASH !>/▌ STEP FLASH !> STEP GO SUB 4▌ STEP FLASH !>9▌ STEP FLASH !> STEP GO SUB >▌ STEP FLASH !>C▌ STEP FLASH !> STEP GO SUB H▌ STEP FLASH !>M▌ STEP FLASH ! STEP \h!!\b\>wR▌ STEP FLASH ! STEP \h!Z▌ STEP FLASH ! STEP \h!▌ STEP FLASH ! STEP \h!!@▖ STEP ▘▌!B▖ STEP ▘▌ STEP SIN > GO SUB B▖ STEP GO SUB j▌ STEP FLASH !> GO SUB r▌ STEP FLASH ! STEP \h!!2▖ STEP ▘▌!2▖ GO SUB [2▖ STEP ▄▌!0▖:\w#6*2▖ATN GO SUB R LINE ]\h*0▖ATN GO SUB R LINE ]\h*0▖ATN GO SUB R LINE ]\h*0▖ATN GO SUB R LINE ]\h*0▖ATN GO SUB R LINE ]\hNOT \h*2▖ATN GO SUB RCHR$ \b\h!@▖ GO SUB [@▖ STEP ▄▌*@▖ATN GO SUB RCHR$ \b\h!D▖ STEP ▘▌NOT VERIFY ▌*2▖ATN GO SUB RCHR$ CHR$ \h!B▖ GO SUB [B▖ STEP ▘▌*B▖ATN GO SUB RCHR$ CHR$ \h!B▖ STEP ▘▌*2▖ATN GO SUB RCHR$ MOVE \hNOT LINE \g!D▖ STEP ▘▌*0▖ATN GO SUB RCHR$ GO TO \hNOT \i*0▖ATN GO SUB RCHR$ \i!D▖ STEP ▘▌NOT VERIFY ▌ STEP REM ON ERR▌ STEP FLASH ! STEP \h!< STEP DIM 0 STEP FOR STEP DIM
1 REM Copyright BYTE POWER 1986 WRITTEN BY ERIC BOISVERT
2 IF PEEK 23681<>0 THEN PRINT USR 35505
3 CLS : LIST 9999: STOP
9999 SAVE "HANG-MAN" LINE 1: VERIFY "HANG-MAN"
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

