Truck

Developer(s): Frits Beniest
Date: 198x
Type: Program
Platform(s): TS 1000
Tags: Game

This is a ZX81/TS1000 text-and-graphics game in which the player drives a truck to collect firewood, navigating a branching network of roads by choosing compass directions and yes/no decisions at intersections. The program is split across two cassette sides, with side 1 ending at line 300 upon reaching the firewood yard and instructing the player to load side 2. Line 0 contains a large block of Z80 machine code stored in a REM statement, called repeatedly via GOSUB 0 to drive a custom graphics/animation engine; REMs at lines 6, 8, 48, 64, etc. carry command strings (CLS, DRAW, UNDRAW, CIRCLE, MOVE, PAPER, UNPAPER, PRINT AT) that the machine code interpreter processes to render and animate the road scenes. The variable A tracks the player’s current route state and R/T carry sub-route flags, while S$ holds the string “STOP” used as a display label in scene rendering.


Program Analysis

Program Structure

The program is organized into a main narrative flow (lines 1–244), a small set of scene/animation subroutines (lines 950–987), a road-scene background subroutine (line 1000–1002), and a two-part ending (lines 290–302 and 800–806). Line 0 contains the machine code engine in a REM statement. Line 290 performs a SAVE "TRUCKI%N" (the %N being inverse-video N), which is the game’s save/auto-run mechanism for re-loading.

Machine Code Engine in Line 0

The heart of the program is the large block of Z80 machine code embedded in the REM at line 0. It is invoked with GOSUB 0, and the first two bytes (\FE

Truck

Developer(s): Frits Beniest
Date: 198x
Type: Program
Platform(s): TS 1000
Tags: Game

This is a ZX81/TS1000 text-and-graphics game in which the player drives a truck to collect firewood, navigating a branching network of roads by choosing compass directions and yes/no decisions at intersections. The program is split across two cassette sides, with side 1 ending at line 300 upon reaching the firewood yard and instructing the player to load side 2. Line 0 contains a large block of Z80 machine code stored in a REM statement, called repeatedly via GOSUB 0 to drive a custom graphics/animation engine; REMs at lines 6, 8, 48, 64, etc. carry command strings (CLS, DRAW, UNDRAW, CIRCLE, MOVE, PAPER, UNPAPER, PRINT AT) that the machine code interpreter processes to render and animate the road scenes. The variable A tracks the player’s current route state and R/T carry sub-route flags, while S$ holds the string “STOP” used as a display label in scene rendering.


Program Analysis

Program Structure

The program is organized into a main narrative flow (lines 1–244), a small set of scene/animation subroutines (lines 950–987), a road-scene background subroutine (line 1000–1002), and a two-part ending (lines 290–302 and 800–806). Line 0 contains the machine code engine in a REM statement. Line 290 performs a SAVE "TRUCKI%N" (the %N being inverse-video N), which is the game’s save/auto-run mechanism for re-loading.

Machine Code Engine in Line 0

The heart of the program is the large block of Z80 machine code embedded in the REM at line 0. It is invoked with GOSUB 0, and the first two bytes (\FE\00) form the entry-point preamble checked by the IF USR . THEN RETURN at line 0 itself — the USR . idiom calls the machine code at the address of the first byte of the REM body. The machine code implements a complete command interpreter that parses the text strings stored in subsequent REM statements (lines 6, 8, 48, 64, 82, 86, etc.) and executes drawing and animation primitives.

REM-Based Command Strings

Each scene change is preceded by a GOSUB 0 followed by a REM on the next line whose content is a semicolon-separated command string. The machine code reads the program’s own line store to find these commands. Supported commands inferred from the REM data include:

  • CLS — clear screen
  • DRAW x1,y1,x2,y2,... — draw polyline or shape
  • UNDRAW ... — erase a previously drawn shape
  • CIRCLE r,cx,cy — draw circle
  • UNCIRCLE ... — erase circle
  • MOVE col,row,startx,starty,dir,steps,... — animate a sprite along a path
  • PAPER x1,y1,x2,y2,\@@ — fill rectangular region (darkness/highlight)
  • UNPAPER ... — clear paper fill
  • PRINT AT row,col,string — print text within scene

State Variables and Game Logic

The primary state variable is A, an integer that encodes which route branch the player is on (0 = North, 1 = South, 2 = East, 3 = West, 50 = loop-back trigger). Secondary flags R (set to 100 when the tunnel branch is active) and T (set to 9 to alter house-recognition logic) modify later decision points. S$ is set to "STOP" at line 13 and passed into scene renders via the machine code’s PRINT AT command in the subroutine at line 951.

Branching and Flow

Navigation is entirely text-input driven via INPUT U$ or INPUT A$. The branch table is implemented with sequential IF tests rather than computed GO TO. Several paths form loops: a wrong turn at line 109–111 sends the player back to line 3 (resetting A), and the tunnel path at lines 67–68/228–244 re-enters the main flow at line 197. The game explicitly ends at line 302 with STOP and instructs loading side 2.

Notable Techniques

  • GOSUB 0 pattern: Every scene transition calls line 0, which uses USR . to jump into machine code stored in the same line’s REM body. The machine code then reads the immediately following REM line for its command string — a self-modifying-style technique using the program’s own list structure as a data stream.
  • Two-sided cassette design: Line 290 saves the program with an auto-run marker and line 300 explicitly tells the player to load side 2, indicating the full game spans two tape sides.
  • Inverse video in PRINT: Line 115 uses %I%T%S%... escapes to print the “ITS TOO DARK NOW” message in inverse video characters for visual emphasis, filling the remainder of the screen with inverse spaces.
  • Scene subroutines 950–987: Eight paired subroutines (draw/undraw for three vehicle shapes plus the road background) keep scene management modular; each calls GOSUB 0 and returns after the machine code processes the associated REM.

Bugs and Anomalies

  • Line 1 contains REM POOP — a placeholder or developer note left in the released program.
  • Lines 9 and 10 are a redundant pair: IF A<>50 THEN GOTO 11 followed by IF A=50 THEN GOTO 12. Since A starts at 0 (line 3), line 9 always branches to 11 on first run, and line 10 is only reached on return from line 111, where A=50 is guaranteed — making line 9’s test functionally correct but line 10’s GOTO 12 redundant with simply falling through.
  • Lines 206–207 use IF T=9 THEN GOTO 210 and IF T<>9 THEN GOTO 213 — mutually exclusive and exhaustive, so one branch is always dead code at that point; a simple IF/ELSE structure would suffice.
  • Line 291 and the SAVE at line 290 appear in the middle of the narrative flow rather than at the start, suggesting the save line was added late and not integrated cleanly — the PRINT and GOTO 1 at lines 291–293 would execute if the save completed and resumed, looping back to the start.
  • The typo "TOMOROW" (mixed case) at line 115 is inconsistent with the otherwise all-caps text.

Content

Appears On

Related Products

Related Articles

Related Content

Image Gallery

Source Code

   0 IF USR . THEN RETURN  FROM    EX. BASIC  AUT: FRITS BENIEST   (C) 070/988735 %V%E%R%S%I%E% %2%.%17676%-%-!!RNDZ50%86A~~;45E' ;;4F'  U£RND47U(RNDLEN SCROLL %SCOS INT $.'.'INKEY$( SAVE INT 7C 76C''7( POKE INT 7D6USR RNDTAN  Y. %SATN 62INKEY$%(4FFLN 5AINKEY$$COS 2~~57LN NINKEY$$COS 26457LN NINKEY$TAN FLN 5AINKEY$ RETURN  COS 477A..>=62INKEY$( IF TAN      6USR RNDLN  '44COS RETURN :TAN    TAN PLOT SQR Y3 PLOT SQR INT 3   AT STR$ LN ATN INKEY$LN  INKEY$LN EXP INKEY$.'=VAL FAST STR$ .''',%Y4~~LN LN INKEY$<( PLOT AT AT AT TAN SGN LPRINT <<<<<AT ( STOP INT . CLEAR ACS 5'./.  CLEAR ACS 5LEN C3%J4D FOR FAST LN EXP INKEY$%;INKEY$ RETURN OASN 7846INT . CLEAR Q5' C3M46; FOR LN 67457BTAN R7846UND5DPI   7 TO 6ABS RNDLN STOP 44775E756YC%U'   **<72F73. FOR LN **,,5675E GOSUB 53:'RNDLN LLIST RND7777) PRINT 4BLN 6FINKEY$C3SGN 45 COPY VAL STR$ LN LN INKEY$LN ' INKEY$ FAST LN RUN 45 LPRINT SGN ><AT ( GOSUB TAN F. %SC: FLN EXP INKEY$ RETURN ,COS INT 7D5E7567B RETURN  C.'%>K''7A%(**INT 75    CLEAR ACS 5'.C3C4B CLEAR ACS 5LEN / RUN U5RNDACS  ./: U5RNDACS SIN M5RNDC3 REM 42FE0C8F5CD2015F1CD1D15EF534CDA7EC9EBCDEF40CD9042CDA542CDB242CDCE42CD4C4920EFC911D84064D5CD842CDCD41CD141CD64912D1C9EB61ACD364223622CD3642C921DB407E2B96604E5F2B7E2B96577E2AC409E213DC8918FBC9E53ADC4043CDF4E10FBE19E51520F4E1C97EB9D8CF75C5C3C645C9EBCDEF4011D84064D5CD842D1EB2346234E702B712B0E40CDE04223CDE042E3023CDE04223CDE04221D840113D4062CD74451362CD74451E0213E40CD48452323CD4845233A3F4077CD4845213C4073160CB46201E3A40405FCD5B45ED5345401603A42405FCD5B45ED534740D53A4340181B3A3D405FCD5B45ED5345401603A43405FCD5B45ED534740D53A4240C1CD6842ED434940213C40CB4620ECB4E282CBDECB562810CBE618CCB4E282CBE6CB56282CBDE114B40237E12232323137E12213C40CB462053A43401833A424047402A4540113F019224540CDE542CD4C49C25449C9236311E9434E1AB9C0231310F8C929263923235E23562319C932323232232323237EFEEAC93232CDCD417EFE76C9323232E52323EBA72A1440ED52E1C93232322AD640CDF29EB22D640C932323232C6402AD640CD4149C8F52A104022D640CDC44DC5D44F1CD4149C8F5CD1B4418EFC932E52323EB2AC40A7ED52E1C93232CF72CF1EBCDEF40221640CD7547189CDEC43CD4D44DC5B44E5CDF843205CDDA43283E118E9D1CDEF40000022DE40C92432323232CD1D152A1C40150ED42221C40ED5BD64013EDB0C93232322ADE40CD24420723CD7444CDCD41221640CDBA46DF22DE40FE1AC8CF7DEBCDEF40CDCD41CD141CD2242CD68472AD440CD4B4120EFC92A104022D6402A240C9C5CB384CB39C3E1990472AC40112101811910FD5919C1CD99463E2F90473E1CB283023E4CB293017F57E7FE10306F302EE8F47CD9146285F12FA0182F1B0FE8382EE8F77C99677C9CB7E203CBCEC9CB8EC97E2B96385CB1323185CB137E23962377C99667A7CB13CB1210F9C9239667A7CB1ACB1B10F9C94B40ED7E12231310FAC92A4540ED5B49403A3C40CB5F2031918797ED52302676C224540EBCD6745C9C53A3C40CB47205214B40183214C40CB672033418135CD7B45213C407BCB46205324C40183324B40ED4B4B40CDED44C110CBC9E5EB5E2356EBD11DD45C5E92AD440CDCD41FEE206CDCD41C3FE412AD240221640110C9CDF46385CD164118ACD2242CD2A44CD174679C91B1B1B5F2B3E2596237BC9CD1E46CDA7EC92A1C401509221C40ED42EB2AD64023EDB0C91B0CD4F4E2AC402322E403E032DC401E201618E21CDCE42C92336123362123360CDAE42C9ED5BC402121013191F72EDB0620EB3602310FBCD3648C9C9000EBCDEF4011D84061D5CD842D11A3C47C5CD5A46C110F9C93A2140CB47C93D3DCD91462097EE678FE0C8360C97EE678FE0C8C1C9CDAD48384CDD89C9E1C9FE16289FE15201E7CDD914C9E7CDD914E5CD851BCDA01AE1C92ADE40237EFE7620523CD7444232B22DE40C91B2ADE4023CDF54622DE40C91B1B1007EFE1AC8FE76202CF7D32318F21B1B2AD640234E36023463602378B1C460AC92AD6402371237023CD9E9C91B1B2B7EA728FBCDCE14382CF70C620CD2C44237E23B6283CD847CDD44623E5CDE846C5CD1A47C1E178B1C8ED5BD640131313EDB0C91BCD2A44CDAC44CD9644C9FED205CD2847183CD5E47C9E7CDBA46DF22D4407EFE1A282CF7DCD8A1520578FE40382CF146069CDD89C97EFE76201231ACB772823E8F771323B78B1C8D5ED5B3C40ED5219D138E1D5C522E40CD5A462AE40C1D118D20EBCDEF40CD5548CDCD41CD141CD2242FEDF5CC1C42CD28494FF1F579282C620C620CD2C44F1F5C42E49F1CC3B49EB2A10402B223C402AE40CDA74722E40CD12482AD440CD4B412B20BBC9A72AE40ED5BC4013ED52112103E18ED523833D18F9323A40197B95323940C91B1B1B3A3A40FE182062AC4023189A72AE4011210ED5222E40CD1248C9CF17E5CD1C42FE3920F6CD1C42FE26282E1C9E111D840D562CD842E1E18CDE04223E20CDE0422AC40233AD840FE028747112101910FD3AD9401605F1922E40CD12482AD440C91B1B1BEB2BCDEF4011D84061D5CD842CDCD41CD141CD2242CD2A44D11A4FED78CD93442AD440CD4B412B20DAC9BCEBCDEF4011D84062D5CD842E14E2346FDCB3B76288ED410D3FE7618CCB41F5CC2BFF1ED41CC23F2AD440CD4B412B20D0C9CF73CB4028FACD2242CB48C0FE1120F02B2B3E10BE20E92323D5CD146D1CB77C83E8FC9CDCE14D8CF70CD1E46CDD51BE5CDA314E1C91B234E234623C9BEC8FE60D8CBFFBECBBFC92AD440CD4B412BC9E521D940545D7E1B122323137E12E11BD5131362C3F442251CEBCDEF40CD904211D840D5213C40EB140EDB0D1CDA542CDB242227B40D52AD44011DD4061CD8424F1B1B1AD9D1D90FE2A28EFE3C28AFE332826FE382822CF16C5D9C1D9FE2A282CBC8FD7021213E40621E21CDC54A2A7B40CD5E4AC3124AF5C5E1C5D165CD5D4519E5D9C1D960F1FE38202CBC0FD7021213C40621E19CDC54A2A7B40FDCB214628FD9D5D9C1112101811910FD227B40CD374ACD4C49C811DC40CDCD41CD141CD64912C37549ED5B1040ED52193FD8ED5BC40ED5219C9D9C5D5D9E5CDA44AA7FDCB214628319182ED52CD264A385113C40EBEDB0CDFA4A20E1C3AA4E3ADD40FE0C8CDA44A79D5C15FFDCB214EF5CC7D4AF1C48F4ACDFA4A20E8C9CD5F4EC804B113C40BEC8EBEDA0EBE018F7CD5B4EC84B113B40EB9EBBEC8EBEDA8EBE018F7F7D9D5D9C160C52A7B40E5113C40EDB0E1C1C500000000D9C5D9D1C1C920E7E81BB3827B3D77231C10F418D7E3D913033E2903C772310F311D840213C40140EDB0C92B160193E76EDB9C90002A7B4011210FDCB214620319182ED52227B40D915D9C91B1B112101811910FD227B40C940C9C9113C40EBC9EBCDEF4011D84063D5CD842CD5A4CE11E3D51605EC5CD5B45C1237B237A23D11D20ECCD5B4BCD4C4920D5C90006CA97C5ED5B3C40CB4FC4D24B65CD69452A3E40CB4F208ED52309CBC718519302CB87223E40EBCB47C4D24B65CD69452A3C40CB472071930ACB8F186ED52302CBCF223C40F5ED5B4240CDBB4132454097B22018ED5B40402A3E40CDBB4132444097B2207ED4B4440CDD94BF1C1108DC921FFFFED52EBC9972148405E2356EBED42C8EB702B713E3FB9D83E2FB8D8CDED44C91B32343B6E4935372EC547283138B441343A39CF4829372656422B2E31314E372A26CA442E3319A248372A385F44382837A0413A33295D42282E3749423A33285042312A2B644C372E2C684C322E296C4C302A3E9341352635394E3A3335354E283435474E1B213C4070237023E5C1C93E21863E11823E4322140C3EF4C2A3C4097E5CD013BADC44422AD84062EBED524D44E1C9D5CDCD41CD141CD2242FEDC42C42CD1C42CD2849C620CD2C44D17D12137C12132AD440C9CDE24CC87EF5CD3B49C52A3C40E5CDB47E1C178B1202F1C9E5C5CD1D47C1E1F1E5C5CD3344C1D1232323CD5747C90002A3E403A3C40BDC03A3D40BCC9EBCDEF40113C40CD8B4CCD8B4C11D84061FDCB21562814CD842CDB04CCD3A4DCD1D4DCD4F4DCD4C4920D7C9FDCB2146C8CD744C304CDB47C9CD344D4B42CD60AC92371237023C9FDCB214EC8CD744CD8C54B42CD344D9C1CD60AC9FDCB2156C8CD224D21D8407E23BE3872A3C40CDB47C9477E902B77CD3F4DC9CDBB2444D513E014C8CDBD77EC9CDCD41CD141CD2242FED20DCD1C42CD2849C620CD2C4437C9CD2A44373FC9CD24ED8237E060CDC242CD264AC91CEBCDEF40FDCB2146F528B11D84062CD8422AD440CD7E4D3818F120ACD6F4DD61C30197187CD9E4D7E30197CD9344C9CDB47F1287CD9E4D7ED8185CD6F4DB7C8110CD1A472AD64023232377C921D8403E20BED84E3E0B93FC9FDCB21462837723C9FDCB214E287BE20236023C9F597BE204F17723C9F123C93E11853E218197FD7721C37A42EBCD4841C8CF1BCD404E1618C36B8CD404E2139403621233618C92B16019533E76BEC8979228336015FDCB214E2822B2B23D28218E73E753CC91BD511210FDCB214628319182ED52D1C9D5E5606911210ED527CB5444DE1D1C9C5E59743772310FCE1C1C9E1D1D54211210FDCB21462091811910FD184ED5210FCD1C178B1C8D5CD264AD1383CD9F4ECD8F4EC815C8CD7E4E18EB1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
   1 REM POOP
   2 SLOW 
   3 LET A=0
   5 GOSUB 0
   6 REM CLS:DRAW;9,5,9,11,23,11,23,16,29,16,33,11,41,11,41,5,9,5,:CIRCLE;4,37,4,:CIRCLE;4,15,4,:DRAW;7,0,7,21,1,21,7,21,1,28,
   7 GOSUB 0
   8 REM MOVE;10,25,5,30,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,
   9 IF A<>50 THEN GOTO 11
  10 IF A=50 THEN GOTO 12
  11 PRINT "AH,GOING AFTER SOME FIRE WOOD I SEE.WILL YOU GO NORTH OR SOUTH?"
  12 IF A=50 THEN PRINT "YOU FORGOT THE WOOD,YOU BETTER  TRY AGAIN.WILL YOU GO               NORTH OR SOUTH?"
  13 LET S$="STOP"
  15 INPUT U$
  20 IF U$="NORTH" THEN LET A=0
  21 IF U$="SOUTH" THEN LET A=1
  40 GOSUB 1000
  44 IF A=0 THEN PRINT AT 7,26;"NORTH"
  45 IF A=1 THEN PRINT AT 7,26;"SOUTH"
  46 PAUSE 100
  47 GOSUB 0
  48 REM MOVE;8,14,20,32,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,
  49 IF A=0 THEN GOTO 70
  50 PRINT AT 2,1;"BETTER WATCH YOUR SPEED I SEE A COP UP AHEAD...ARE YOU GOING TO TURN LEFT AT THIS INTERSECTION?            Y/N"
  55 INPUT A$
  56 IF A$="Y" THEN GOTO 80
  57 IF A$="N" THEN GOTO 60
  60 GOSUB 1000
  61 PRINT AT 1,1;"I SEE A TUNNEL AHEAD.."
  62 PAUSE 100
  63 GOSUB 0
  64 REM UNDRAW;63,40,49,40,49,25,63,25,:DRAW;23,24,23,37,45,37,45,24,:PAPER;6,12,12,24,@@,
  65 PAUSE 150
  66 GOSUB 1000
  67 LET R=100
  68 GOTO 228
  70 GOSUB 950
  72 PRINT AT 1,1;"YOU ARE AT A FOUR WAY STOP.    WHICH WAY TO THE FIRE WOOD?             NORTH/EAST/WEST"
  73 INPUT A$
  74 IF A$="NORTH" THEN GOTO 120
  75 IF A$="EAST" THEN LET A=2
  76 IF A$="WEST" THEN LET A=3
  77 IF A=2 THEN GOTO 112
  78 IF A=3 THEN GOTO 87
  80 GOSUB 1000
  81 GOSUB 0
  82 REM PAPER;1,23,1,32,@@,
  83 PRINT "THE COP GOT YOU BUT LET YOU GO."
  84 PAUSE 200
  85 GOSUB 0
  86 REM UNPAPER;1,23,1,32,@@,
  87 GOSUB 1000
  88 GOSUB 960
  89 GOSUB 980
  90 PRINT AT 1,1;"NASTY CORNER AHEAD."
  91 PAUSE 200
  92 GOSUB 985
  93 GOSUB 965
  94 PRINT AT 1,1;"      YOU MADE IT            "
  95 GOSUB 950
  96 PRINT AT 1,1;"YOU ARE AT A THREE WAY STOP.       WHICH WAY?  W/E?"
  97 INPUT A$
  98 IF A$="E" THEN GOTO 198
  99 IF A$="W" THEN GOTO 112
 100 GOSUB 955
 101 GOSUB 960
 102 GOSUB 970
 103 PRINT "A CORNER AHEAD."
 104 PAUSE 150
 105 GOSUB 975
 106 GOSUB 980
 107 PRINT "ANOTHER CORNER.WILL YOU TURN    LEFT AT THIS INTERSECTION?           Y/N"
 108 INPUT A$
 109 IF A$="Y" THEN LET A=50
 110 IF A$="N" THEN GOTO 60
 111 IF A=50 THEN GOTO 3
 112 GOSUB 0
 114 REM PAPER;1,23,1,32,% ,
 115 PRINT AT 1,1;"%I%T%S% %T%O%O% %D%A%R%K% %N%O%W%.% %T%R%Y% %A%G%A%I%N% % % % % % % % % %T%O%M%O%R%O%W% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
 116 PAUSE 500
 117 GOTO 1
 120 GOSUB 955
 121 PRINT AT 1,1;"LOOK OUT FOR PIGS IN THIS PART  OF THE COUNTRY."
 122 PAUSE 150
 123 GOSUB 0
 124 REM CIRCLE;4,34,20,:UNCIRCLE;4,34,20,:CIRCLE;4,34,18,:UNCIRCLE;4,34,18,:CIRCLE;4,34,16,:UNCIRCLE;4,34,16,:CIRCLE;4,34,14,:UNCIRCLE;4,34,14,
 125 PRINT AT 10,7;"YOU GOT HIM.."
 126 PAUSE 300
 127 GOSUB 1000
 128 PRINT AT 1,1;"YOU HAVE COME TO A ""T""IN THE   ROAD. WILL YOU GO E/W?"
 129 GOSUB 950
 130 INPUT A$
 140 IF A$="E" THEN GOTO 145
 141 IF A$="W" THEN PRINT AT 1,1;"YOU RAN OFF THE ROAD AND   DIED. TRY AGAIN? Y/N              "
 142 INPUT A$
 143 IF A$="Y" THEN GOTO 1
 144 IF A$="N" THEN STOP 
 145 GOSUB 955
 146 GOSUB 1000
 147 GOSUB 960
 148 GOSUB 970
 150 PAUSE 150
 151 GOSUB 975
 152 GOSUB 980
 153 PAUSE 150
 154 GOSUB 985
 155 GOSUB 980
 156 PAUSE 180
 157 GOSUB 985
 159 GOSUB 965
 160 PRINT AT 1,1;"YOU SEEM TO BE GOING SOUTH NOW. WILL YOU TURN LEFT AT THIS NEXT INTERSECTION?       Y/N"
 161 INPUT A$
 162 IF A$="Y" THEN GOTO 87
 163 IF A$="N" THEN GOTO 173
 165 LET T=9
 166 GOTO 87
 173 LET T=9
 174 GOTO 200
 197 LET R=1
 198 LET T=0
 199 GOSUB 1000
 200 PRINT AT 1,1;"LOOK TO YOUR RIGHT. IS THAT       YOUR HOUSE?"
 201 PAUSE 200
 202 GOSUB 0
 203 REM CLS:DRAW;11,21,11,25,13,25,13,21,:DRAW;13,22,22,22,27,16,4,16,9,22,11,22,:DRAW;6,16,6,7,25,7,25,16,:DRAW;16,7,16,14,20,14,20,7,:DRAW;8,14,8,11,11,11,11,14,7,14,:MOVE;8,22,1,15,E,2,E,2,E,2,E,2,E,2,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,2,E,2,E,2,E,2,E,2,E,2,
 205 PRINT "WAS THAT YOUR HOUSE? Y/N"
 206 IF T=9 THEN GOTO 210
 207 IF T<>9 THEN GOTO 213
 210 INPUT A$
 211 IF A$="Y" THEN GOTO 127
 212 IF A$="N" THEN GOTO 800
 213 INPUT A$
 214 IF A$="Y" THEN GOTO 127
 215 IF A$="N" THEN PRINT AT 1,1;"I THINK YOUR MISTAKEN LETS SEE   IT AGAIN."
 216 PAUSE 150
 217 GOTO 200
 228 IF R<>100 THEN STOP 
 229 IF R=100 THEN GOTO 230
 230 GOSUB 0
 231 REM PAPER;1,23,1,32,@@,
 232 PRINT AT 1,1;"BETTER TURN ON YOUR LIGHTS OK?               Y/N"
 233 INPUT A$
 234 IF A$="Y" THEN GOTO 240
 235 IF A$="N" THEN PRINT AT 1,1;"YOU SHOULD HAVE TURNED THEM ON  YOU HAVE CRASHED. PLAY AGAIN?        Y/N"
 236 INPUT A$
 237 IF A$="Y" THEN GOTO 1
 238 IF A$="N" THEN STOP 
 240 GOSUB 0
 241 REM UNPAPER;1,23,1,32,@@,:DRAW;23,24,23,37,45,37,45,24,
 242 PRINT AT 1,1;"AH.....THE TUNNEL ENDS..                                                    "
 243 PAUSE 200
 244 GOTO 197
 290 SAVE "TRUCKI%N"
 291 PRINT "DRIVE OVER TO GET SOME FIRE WOODITS AS EASY AS THAT."
 292 PAUSE 250
 293 GOTO 1
 300 PRINT "YOU FINALY GOT HERE. IT  TOOK   SOME GOOD DRIVING TO DO IT. UH-  IS THAT PIG GUTS ON YOUR TRUCK?I£LL BET THERE£S AN ANGRY FARMEROUT THERE SOMEWHERE.             NOW THAT YOU MADE IT THIS FAR  YOU MAY AS WELL LOAD SIDE 2 AND SEE IF YOU CAN GET THAT FIRE    WOOD. GOOD LUCK."
 302 STOP 
 800 LET Q$="FIRE WOOD"
 801 LET R$="FOR SALE"
 802 GOSUB 0
 803 REM CLS:DRAW;31,0,31,16,16,16,16,31,47,31,47,16,32,16,32,0,:PRINT AT;9,12,Q$,:PRINT AT;13,12,R$,
 804 PRINT AT 1,1;"  CONGRATULATIONS..YOU MADE IT SO FAR.NOW LETS SEE IF YOU CAN  LOAD YOUR FIRE WOOD."
 805 PAUSE 300
 806 GOTO 300
 950 GOSUB 0
 951 REM UNDRAW;63,40,49,40,49,25,63,25,:DRAW;50,19,50,27,47,27,44,30,44,35,47,38,53,38,56,35,56,30,53,27,50,27,:PRINT AT;7,23,S$,
 952 RETURN 
 955 GOSUB 0
 956 REM UNDRAW;50,19,50,27,47,27,44,30,44,35,47,38,53,38,56,35,56,30,53,27,50,27,:MOVE;6,10,22,29,E,10,:MOVE;1,5,1,30,N,10,
 957 RETURN 
 960 GOSUB 0
 961 REM UNDRAW;63,40,49,40,49,25,63,25,:DRAW;50,19,50,27,44,33,50,38,56,32,50,27,
 962 RETURN 
 965 GOSUB 0
 966 REM UNDRAW;50,19,50,27,44,33,50,38,56,32,50,27,
 967 RETURN 
 970 GOSUB 0
 971 REM DRAW;52,30,52,33,47,33,49,35,47,33,49,31,
 972 RETURN 
 975 GOSUB 0
 976 REM UNDRAW;52,30,52,33,47,33,49,35,47,33,49,31,
 977 RETURN 
 980 GOSUB 0
 981 REM DRAW;48,30,48,33,52,33,50,35,52,33,50,31,
 982 RETURN 
 985 GOSUB 0
 986 REM UNDRAW;48,30,48,33,52,33,50,35,52,33,50,31,
 987 RETURN 
 1000 GOSUB 0
 1001 REM CLS:DRAW;63,40,49,40,49,25,63,25,:DRAW;1,10,24,10,27,6,63,6,:CIRCLE;10,14,3,:DRAW;63,5,34,25,3,10,
 1002 RETURN 

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

Scroll to Top
) form the entry-point preamble checked by the IF USR . THEN RETURN at line 0 itself — the USR . idiom calls the machine code at the address of the first byte of the REM body. The machine code implements a complete command interpreter that parses the text strings stored in subsequent REM statements (lines 6, 8, 48, 64, 82, 86, etc.) and executes drawing and animation primitives.

REM-Based Command Strings

Each scene change is preceded by a GOSUB 0 followed by a REM on the next line whose content is a semicolon-separated command string. The machine code reads the program’s own line store to find these commands. Supported commands inferred from the REM data include:

  • CLS — clear screen
  • DRAW x1,y1,x2,y2,... — draw polyline or shape
  • UNDRAW ... — erase a previously drawn shape
  • CIRCLE r,cx,cy — draw circle
  • UNCIRCLE ... — erase circle
  • MOVE col,row,startx,starty,dir,steps,... — animate a sprite along a path
  • PAPER x1,y1,x2,y2,\@@ — fill rectangular region (darkness/highlight)
  • UNPAPER ... — clear paper fill
  • PRINT AT row,col,string — print text within scene

State Variables and Game Logic

The primary state variable is A, an integer that encodes which route branch the player is on (0 = North, 1 = South, 2 = East, 3 = West, 50 = loop-back trigger). Secondary flags R (set to 100 when the tunnel branch is active) and T (set to 9 to alter house-recognition logic) modify later decision points. S$ is set to "STOP" at line 13 and passed into scene renders via the machine code’s PRINT AT command in the subroutine at line 951.

Branching and Flow

Navigation is entirely text-input driven via INPUT U$ or INPUT A$. The branch table is implemented with sequential IF tests rather than computed GO TO. Several paths form loops: a wrong turn at line 109–111 sends the player back to line 3 (resetting A), and the tunnel path at lines 67–68/228–244 re-enters the main flow at line 197. The game explicitly ends at line 302 with STOP and instructs loading side 2.

Notable Techniques

  • GOSUB 0 pattern: Every scene transition calls line 0, which uses USR . to jump into machine code stored in the same line’s REM body. The machine code then reads the immediately following REM line for its command string — a self-modifying-style technique using the program’s own list structure as a data stream.
  • Two-sided cassette design: Line 290 saves the program with an auto-run marker and line 300 explicitly tells the player to load side 2, indicating the full game spans two tape sides.
  • Inverse video in PRINT: Line 115 uses %I%T%S%... escapes to print the “ITS TOO DARK NOW” message in inverse video characters for visual emphasis, filling the remainder of the screen with inverse spaces.
  • Scene subroutines 950–987: Eight paired subroutines (draw/undraw for three vehicle shapes plus the road background) keep scene management modular; each calls GOSUB 0 and returns after the machine code processes the associated REM.

Bugs and Anomalies

  • Line 1 contains REM POOP — a placeholder or developer note left in the released program.
  • Lines 9 and 10 are a redundant pair: IF A<>50 THEN GOTO 11 followed by IF A=50 THEN GOTO 12. Since A starts at 0 (line 3), line 9 always branches to 11 on first run, and line 10 is only reached on return from line 111, where A=50 is guaranteed — making line 9’s test functionally correct but line 10’s GOTO 12 redundant with simply falling through.
  • Lines 206–207 use IF T=9 THEN GOTO 210 and IF T<>9 THEN GOTO 213 — mutually exclusive and exhaustive, so one branch is always dead code at that point; a simple IF/ELSE structure would suffice.
  • Line 291 and the SAVE at line 290 appear in the middle of the narrative flow rather than at the start, suggesting the save line was added late and not integrated cleanly — the PRINT and GOTO 1 at lines 291–293 would execute if the save completed and resumed, looping back to the start.
  • The typo "TOMOROW" (mixed case) at line 115 is inconsistent with the otherwise all-caps text.

Content

Appears On

Related Products

Related Articles

Related Content

Image Gallery

Source Code

   0 IF USR . THEN RETURN  FROM    EX. BASIC  AUT: FRITS BENIEST   (C) 070/988735 %V%E%R%S%I%E% %2%.%17676%-%-!!RNDZ50%86A~~;45E' ;;4F'  U£RND47U(RNDLEN SCROLL %SCOS INT $.'.'INKEY$( SAVE INT 7C 76C''7( POKE INT 7D6USR RNDTAN  Y. %SATN 62INKEY$%(4FFLN 5AINKEY$$COS 2~~57LN NINKEY$$COS 26457LN NINKEY$TAN FLN 5AINKEY$ RETURN  COS 477A..>=62INKEY$( IF TAN      6USR RNDLN  '44COS RETURN :TAN    TAN PLOT SQR Y3 PLOT SQR INT 3   AT STR$ LN ATN INKEY$LN  INKEY$LN EXP INKEY$.'=VAL FAST STR$ .''',%Y4~~LN LN INKEY$<( PLOT AT AT AT TAN SGN LPRINT <<<<<AT ( STOP INT . CLEAR ACS 5'./.  CLEAR ACS 5LEN C3%J4D FOR FAST LN EXP INKEY$%;INKEY$ RETURN OASN 7846INT . CLEAR Q5' C3M46; FOR LN 67457BTAN R7846UND5DPI   7 TO 6ABS RNDLN STOP 44775E756YC%U'   **<72F73. FOR LN **,,5675E GOSUB 53:'RNDLN LLIST RND7777) PRINT 4BLN 6FINKEY$C3SGN 45 COPY VAL STR$ LN LN INKEY$LN ' INKEY$ FAST LN RUN 45 LPRINT SGN ><AT ( GOSUB TAN F. %SC: FLN EXP INKEY$ RETURN ,COS INT 7D5E7567B RETURN  C.'%>K''7A%(**INT 75    CLEAR ACS 5'.C3C4B CLEAR ACS 5LEN / RUN U5RNDACS  ./: U5RNDACS SIN M5RNDC3 REM 42FE0C8F5CD2015F1CD1D15EF534CDA7EC9EBCDEF40CD9042CDA542CDB242CDCE42CD4C4920EFC911D84064D5CD842CDCD41CD141CD64912D1C9EB61ACD364223622CD3642C921DB407E2B96604E5F2B7E2B96577E2AC409E213DC8918FBC9E53ADC4043CDF4E10FBE19E51520F4E1C97EB9D8CF75C5C3C645C9EBCDEF4011D84064D5CD842D1EB2346234E702B712B0E40CDE04223CDE042E3023CDE04223CDE04221D840113D4062CD74451362CD74451E0213E40CD48452323CD4845233A3F4077CD4845213C4073160CB46201E3A40405FCD5B45ED5345401603A42405FCD5B45ED534740D53A4340181B3A3D405FCD5B45ED5345401603A43405FCD5B45ED534740D53A4240C1CD6842ED434940213C40CB4620ECB4E282CBDECB562810CBE618CCB4E282CBE6CB56282CBDE114B40237E12232323137E12213C40CB462053A43401833A424047402A4540113F019224540CDE542CD4C49C25449C9236311E9434E1AB9C0231310F8C929263923235E23562319C932323232232323237EFEEAC93232CDCD417EFE76C9323232E52323EBA72A1440ED52E1C93232322AD640CDF29EB22D640C932323232C6402AD640CD4149C8F52A104022D640CDC44DC5D44F1CD4149C8F5CD1B4418EFC932E52323EB2AC40A7ED52E1C93232CF72CF1EBCDEF40221640CD7547189CDEC43CD4D44DC5B44E5CDF843205CDDA43283E118E9D1CDEF40000022DE40C92432323232CD1D152A1C40150ED42221C40ED5BD64013EDB0C93232322ADE40CD24420723CD7444CDCD41221640CDBA46DF22DE40FE1AC8CF7DEBCDEF40CDCD41CD141CD2242CD68472AD440CD4B4120EFC92A104022D6402A240C9C5CB384CB39C3E1990472AC40112101811910FD5919C1CD99463E2F90473E1CB283023E4CB293017F57E7FE10306F302EE8F47CD9146285F12FA0182F1B0FE8382EE8F77C99677C9CB7E203CBCEC9CB8EC97E2B96385CB1323185CB137E23962377C99667A7CB13CB1210F9C9239667A7CB1ACB1B10F9C94B40ED7E12231310FAC92A4540ED5B49403A3C40CB5F2031918797ED52302676C224540EBCD6745C9C53A3C40CB47205214B40183214C40CB672033418135CD7B45213C407BCB46205324C40183324B40ED4B4B40CDED44C110CBC9E5EB5E2356EBD11DD45C5E92AD440CDCD41FEE206CDCD41C3FE412AD240221640110C9CDF46385CD164118ACD2242CD2A44CD174679C91B1B1B5F2B3E2596237BC9CD1E46CDA7EC92A1C401509221C40ED42EB2AD64023EDB0C91B0CD4F4E2AC402322E403E032DC401E201618E21CDCE42C92336123362123360CDAE42C9ED5BC402121013191F72EDB0620EB3602310FBCD3648C9C9000EBCDEF4011D84061D5CD842D11A3C47C5CD5A46C110F9C93A2140CB47C93D3DCD91462097EE678FE0C8360C97EE678FE0C8C1C9CDAD48384CDD89C9E1C9FE16289FE15201E7CDD914C9E7CDD914E5CD851BCDA01AE1C92ADE40237EFE7620523CD7444232B22DE40C91B2ADE4023CDF54622DE40C91B1B1007EFE1AC8FE76202CF7D32318F21B1B2AD640234E36023463602378B1C460AC92AD6402371237023CD9E9C91B1B2B7EA728FBCDCE14382CF70C620CD2C44237E23B6283CD847CDD44623E5CDE846C5CD1A47C1E178B1C8ED5BD640131313EDB0C91BCD2A44CDAC44CD9644C9FED205CD2847183CD5E47C9E7CDBA46DF22D4407EFE1A282CF7DCD8A1520578FE40382CF146069CDD89C97EFE76201231ACB772823E8F771323B78B1C8D5ED5B3C40ED5219D138E1D5C522E40CD5A462AE40C1D118D20EBCDEF40CD5548CDCD41CD141CD2242FEDF5CC1C42CD28494FF1F579282C620C620CD2C44F1F5C42E49F1CC3B49EB2A10402B223C402AE40CDA74722E40CD12482AD440CD4B412B20BBC9A72AE40ED5BC4013ED52112103E18ED523833D18F9323A40197B95323940C91B1B1B3A3A40FE182062AC4023189A72AE4011210ED5222E40CD1248C9CF17E5CD1C42FE3920F6CD1C42FE26282E1C9E111D840D562CD842E1E18CDE04223E20CDE0422AC40233AD840FE028747112101910FD3AD9401605F1922E40CD12482AD440C91B1B1BEB2BCDEF4011D84061D5CD842CDCD41CD141CD2242CD2A44D11A4FED78CD93442AD440CD4B412B20DAC9BCEBCDEF4011D84062D5CD842E14E2346FDCB3B76288ED410D3FE7618CCB41F5CC2BFF1ED41CC23F2AD440CD4B412B20D0C9CF73CB4028FACD2242CB48C0FE1120F02B2B3E10BE20E92323D5CD146D1CB77C83E8FC9CDCE14D8CF70CD1E46CDD51BE5CDA314E1C91B234E234623C9BEC8FE60D8CBFFBECBBFC92AD440CD4B412BC9E521D940545D7E1B122323137E12E11BD5131362C3F442251CEBCDEF40CD904211D840D5213C40EB140EDB0D1CDA542CDB242227B40D52AD44011DD4061CD8424F1B1B1AD9D1D90FE2A28EFE3C28AFE332826FE382822CF16C5D9C1D9FE2A282CBC8FD7021213E40621E21CDC54A2A7B40CD5E4AC3124AF5C5E1C5D165CD5D4519E5D9C1D960F1FE38202CBC0FD7021213C40621E19CDC54A2A7B40FDCB214628FD9D5D9C1112101811910FD227B40CD374ACD4C49C811DC40CDCD41CD141CD64912C37549ED5B1040ED52193FD8ED5BC40ED5219C9D9C5D5D9E5CDA44AA7FDCB214628319182ED52CD264A385113C40EBEDB0CDFA4A20E1C3AA4E3ADD40FE0C8CDA44A79D5C15FFDCB214EF5CC7D4AF1C48F4ACDFA4A20E8C9CD5F4EC804B113C40BEC8EBEDA0EBE018F7CD5B4EC84B113B40EB9EBBEC8EBEDA8EBE018F7F7D9D5D9C160C52A7B40E5113C40EDB0E1C1C500000000D9C5D9D1C1C920E7E81BB3827B3D77231C10F418D7E3D913033E2903C772310F311D840213C40140EDB0C92B160193E76EDB9C90002A7B4011210FDCB214620319182ED52227B40D915D9C91B1B112101811910FD227B40C940C9C9113C40EBC9EBCDEF4011D84063D5CD842CD5A4CE11E3D51605EC5CD5B45C1237B237A23D11D20ECCD5B4BCD4C4920D5C90006CA97C5ED5B3C40CB4FC4D24B65CD69452A3E40CB4F208ED52309CBC718519302CB87223E40EBCB47C4D24B65CD69452A3C40CB472071930ACB8F186ED52302CBCF223C40F5ED5B4240CDBB4132454097B22018ED5B40402A3E40CDBB4132444097B2207ED4B4440CDD94BF1C1108DC921FFFFED52EBC9972148405E2356EBED42C8EB702B713E3FB9D83E2FB8D8CDED44C91B32343B6E4935372EC547283138B441343A39CF4829372656422B2E31314E372A26CA442E3319A248372A385F44382837A0413A33295D42282E3749423A33285042312A2B644C372E2C684C322E296C4C302A3E9341352635394E3A3335354E283435474E1B213C4070237023E5C1C93E21863E11823E4322140C3EF4C2A3C4097E5CD013BADC44422AD84062EBED524D44E1C9D5CDCD41CD141CD2242FEDC42C42CD1C42CD2849C620CD2C44D17D12137C12132AD440C9CDE24CC87EF5CD3B49C52A3C40E5CDB47E1C178B1202F1C9E5C5CD1D47C1E1F1E5C5CD3344C1D1232323CD5747C90002A3E403A3C40BDC03A3D40BCC9EBCDEF40113C40CD8B4CCD8B4C11D84061FDCB21562814CD842CDB04CCD3A4DCD1D4DCD4F4DCD4C4920D7C9FDCB2146C8CD744C304CDB47C9CD344D4B42CD60AC92371237023C9FDCB214EC8CD744CD8C54B42CD344D9C1CD60AC9FDCB2156C8CD224D21D8407E23BE3872A3C40CDB47C9477E902B77CD3F4DC9CDBB2444D513E014C8CDBD77EC9CDCD41CD141CD2242FED20DCD1C42CD2849C620CD2C4437C9CD2A44373FC9CD24ED8237E060CDC242CD264AC91CEBCDEF40FDCB2146F528B11D84062CD8422AD440CD7E4D3818F120ACD6F4DD61C30197187CD9E4D7E30197CD9344C9CDB47F1287CD9E4D7ED8185CD6F4DB7C8110CD1A472AD64023232377C921D8403E20BED84E3E0B93FC9FDCB21462837723C9FDCB214E287BE20236023C9F597BE204F17723C9F123C93E11853E218197FD7721C37A42EBCD4841C8CF1BCD404E1618C36B8CD404E2139403621233618C92B16019533E76BEC8979228336015FDCB214E2822B2B23D28218E73E753CC91BD511210FDCB214628319182ED52D1C9D5E5606911210ED527CB5444DE1D1C9C5E59743772310FCE1C1C9E1D1D54211210FDCB21462091811910FD184ED5210FCD1C178B1C8D5CD264AD1383CD9F4ECD8F4EC815C8CD7E4E18EB1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
   1 REM POOP
   2 SLOW 
   3 LET A=0
   5 GOSUB 0
   6 REM CLS:DRAW;9,5,9,11,23,11,23,16,29,16,33,11,41,11,41,5,9,5,:CIRCLE;4,37,4,:CIRCLE;4,15,4,:DRAW;7,0,7,21,1,21,7,21,1,28,
   7 GOSUB 0
   8 REM MOVE;10,25,5,30,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,
   9 IF A<>50 THEN GOTO 11
  10 IF A=50 THEN GOTO 12
  11 PRINT "AH,GOING AFTER SOME FIRE WOOD I SEE.WILL YOU GO NORTH OR SOUTH?"
  12 IF A=50 THEN PRINT "YOU FORGOT THE WOOD,YOU BETTER  TRY AGAIN.WILL YOU GO               NORTH OR SOUTH?"
  13 LET S$="STOP"
  15 INPUT U$
  20 IF U$="NORTH" THEN LET A=0
  21 IF U$="SOUTH" THEN LET A=1
  40 GOSUB 1000
  44 IF A=0 THEN PRINT AT 7,26;"NORTH"
  45 IF A=1 THEN PRINT AT 7,26;"SOUTH"
  46 PAUSE 100
  47 GOSUB 0
  48 REM MOVE;8,14,20,32,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,N,1,E,1,
  49 IF A=0 THEN GOTO 70
  50 PRINT AT 2,1;"BETTER WATCH YOUR SPEED I SEE A COP UP AHEAD...ARE YOU GOING TO TURN LEFT AT THIS INTERSECTION?            Y/N"
  55 INPUT A$
  56 IF A$="Y" THEN GOTO 80
  57 IF A$="N" THEN GOTO 60
  60 GOSUB 1000
  61 PRINT AT 1,1;"I SEE A TUNNEL AHEAD.."
  62 PAUSE 100
  63 GOSUB 0
  64 REM UNDRAW;63,40,49,40,49,25,63,25,:DRAW;23,24,23,37,45,37,45,24,:PAPER;6,12,12,24,@@,
  65 PAUSE 150
  66 GOSUB 1000
  67 LET R=100
  68 GOTO 228
  70 GOSUB 950
  72 PRINT AT 1,1;"YOU ARE AT A FOUR WAY STOP.    WHICH WAY TO THE FIRE WOOD?             NORTH/EAST/WEST"
  73 INPUT A$
  74 IF A$="NORTH" THEN GOTO 120
  75 IF A$="EAST" THEN LET A=2
  76 IF A$="WEST" THEN LET A=3
  77 IF A=2 THEN GOTO 112
  78 IF A=3 THEN GOTO 87
  80 GOSUB 1000
  81 GOSUB 0
  82 REM PAPER;1,23,1,32,@@,
  83 PRINT "THE COP GOT YOU BUT LET YOU GO."
  84 PAUSE 200
  85 GOSUB 0
  86 REM UNPAPER;1,23,1,32,@@,
  87 GOSUB 1000
  88 GOSUB 960
  89 GOSUB 980
  90 PRINT AT 1,1;"NASTY CORNER AHEAD."
  91 PAUSE 200
  92 GOSUB 985
  93 GOSUB 965
  94 PRINT AT 1,1;"      YOU MADE IT            "
  95 GOSUB 950
  96 PRINT AT 1,1;"YOU ARE AT A THREE WAY STOP.       WHICH WAY?  W/E?"
  97 INPUT A$
  98 IF A$="E" THEN GOTO 198
  99 IF A$="W" THEN GOTO 112
 100 GOSUB 955
 101 GOSUB 960
 102 GOSUB 970
 103 PRINT "A CORNER AHEAD."
 104 PAUSE 150
 105 GOSUB 975
 106 GOSUB 980
 107 PRINT "ANOTHER CORNER.WILL YOU TURN    LEFT AT THIS INTERSECTION?           Y/N"
 108 INPUT A$
 109 IF A$="Y" THEN LET A=50
 110 IF A$="N" THEN GOTO 60
 111 IF A=50 THEN GOTO 3
 112 GOSUB 0
 114 REM PAPER;1,23,1,32,% ,
 115 PRINT AT 1,1;"%I%T%S% %T%O%O% %D%A%R%K% %N%O%W%.% %T%R%Y% %A%G%A%I%N% % % % % % % % % %T%O%M%O%R%O%W% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
 116 PAUSE 500
 117 GOTO 1
 120 GOSUB 955
 121 PRINT AT 1,1;"LOOK OUT FOR PIGS IN THIS PART  OF THE COUNTRY."
 122 PAUSE 150
 123 GOSUB 0
 124 REM CIRCLE;4,34,20,:UNCIRCLE;4,34,20,:CIRCLE;4,34,18,:UNCIRCLE;4,34,18,:CIRCLE;4,34,16,:UNCIRCLE;4,34,16,:CIRCLE;4,34,14,:UNCIRCLE;4,34,14,
 125 PRINT AT 10,7;"YOU GOT HIM.."
 126 PAUSE 300
 127 GOSUB 1000
 128 PRINT AT 1,1;"YOU HAVE COME TO A ""T""IN THE   ROAD. WILL YOU GO E/W?"
 129 GOSUB 950
 130 INPUT A$
 140 IF A$="E" THEN GOTO 145
 141 IF A$="W" THEN PRINT AT 1,1;"YOU RAN OFF THE ROAD AND   DIED. TRY AGAIN? Y/N              "
 142 INPUT A$
 143 IF A$="Y" THEN GOTO 1
 144 IF A$="N" THEN STOP 
 145 GOSUB 955
 146 GOSUB 1000
 147 GOSUB 960
 148 GOSUB 970
 150 PAUSE 150
 151 GOSUB 975
 152 GOSUB 980
 153 PAUSE 150
 154 GOSUB 985
 155 GOSUB 980
 156 PAUSE 180
 157 GOSUB 985
 159 GOSUB 965
 160 PRINT AT 1,1;"YOU SEEM TO BE GOING SOUTH NOW. WILL YOU TURN LEFT AT THIS NEXT INTERSECTION?       Y/N"
 161 INPUT A$
 162 IF A$="Y" THEN GOTO 87
 163 IF A$="N" THEN GOTO 173
 165 LET T=9
 166 GOTO 87
 173 LET T=9
 174 GOTO 200
 197 LET R=1
 198 LET T=0
 199 GOSUB 1000
 200 PRINT AT 1,1;"LOOK TO YOUR RIGHT. IS THAT       YOUR HOUSE?"
 201 PAUSE 200
 202 GOSUB 0
 203 REM CLS:DRAW;11,21,11,25,13,25,13,21,:DRAW;13,22,22,22,27,16,4,16,9,22,11,22,:DRAW;6,16,6,7,25,7,25,16,:DRAW;16,7,16,14,20,14,20,7,:DRAW;8,14,8,11,11,11,11,14,7,14,:MOVE;8,22,1,15,E,2,E,2,E,2,E,2,E,2,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,1,E,2,E,2,E,2,E,2,E,2,E,2,
 205 PRINT "WAS THAT YOUR HOUSE? Y/N"
 206 IF T=9 THEN GOTO 210
 207 IF T<>9 THEN GOTO 213
 210 INPUT A$
 211 IF A$="Y" THEN GOTO 127
 212 IF A$="N" THEN GOTO 800
 213 INPUT A$
 214 IF A$="Y" THEN GOTO 127
 215 IF A$="N" THEN PRINT AT 1,1;"I THINK YOUR MISTAKEN LETS SEE   IT AGAIN."
 216 PAUSE 150
 217 GOTO 200
 228 IF R<>100 THEN STOP 
 229 IF R=100 THEN GOTO 230
 230 GOSUB 0
 231 REM PAPER;1,23,1,32,@@,
 232 PRINT AT 1,1;"BETTER TURN ON YOUR LIGHTS OK?               Y/N"
 233 INPUT A$
 234 IF A$="Y" THEN GOTO 240
 235 IF A$="N" THEN PRINT AT 1,1;"YOU SHOULD HAVE TURNED THEM ON  YOU HAVE CRASHED. PLAY AGAIN?        Y/N"
 236 INPUT A$
 237 IF A$="Y" THEN GOTO 1
 238 IF A$="N" THEN STOP 
 240 GOSUB 0
 241 REM UNPAPER;1,23,1,32,@@,:DRAW;23,24,23,37,45,37,45,24,
 242 PRINT AT 1,1;"AH.....THE TUNNEL ENDS..                                                    "
 243 PAUSE 200
 244 GOTO 197
 290 SAVE "TRUCKI%N"
 291 PRINT "DRIVE OVER TO GET SOME FIRE WOODITS AS EASY AS THAT."
 292 PAUSE 250
 293 GOTO 1
 300 PRINT "YOU FINALY GOT HERE. IT  TOOK   SOME GOOD DRIVING TO DO IT. UH-  IS THAT PIG GUTS ON YOUR TRUCK?I£LL BET THERE£S AN ANGRY FARMEROUT THERE SOMEWHERE.             NOW THAT YOU MADE IT THIS FAR  YOU MAY AS WELL LOAD SIDE 2 AND SEE IF YOU CAN GET THAT FIRE    WOOD. GOOD LUCK."
 302 STOP 
 800 LET Q$="FIRE WOOD"
 801 LET R$="FOR SALE"
 802 GOSUB 0
 803 REM CLS:DRAW;31,0,31,16,16,16,16,31,47,31,47,16,32,16,32,0,:PRINT AT;9,12,Q$,:PRINT AT;13,12,R$,
 804 PRINT AT 1,1;"  CONGRATULATIONS..YOU MADE IT SO FAR.NOW LETS SEE IF YOU CAN  LOAD YOUR FIRE WOOD."
 805 PAUSE 300
 806 GOTO 300
 950 GOSUB 0
 951 REM UNDRAW;63,40,49,40,49,25,63,25,:DRAW;50,19,50,27,47,27,44,30,44,35,47,38,53,38,56,35,56,30,53,27,50,27,:PRINT AT;7,23,S$,
 952 RETURN 
 955 GOSUB 0
 956 REM UNDRAW;50,19,50,27,47,27,44,30,44,35,47,38,53,38,56,35,56,30,53,27,50,27,:MOVE;6,10,22,29,E,10,:MOVE;1,5,1,30,N,10,
 957 RETURN 
 960 GOSUB 0
 961 REM UNDRAW;63,40,49,40,49,25,63,25,:DRAW;50,19,50,27,44,33,50,38,56,32,50,27,
 962 RETURN 
 965 GOSUB 0
 966 REM UNDRAW;50,19,50,27,44,33,50,38,56,32,50,27,
 967 RETURN 
 970 GOSUB 0
 971 REM DRAW;52,30,52,33,47,33,49,35,47,33,49,31,
 972 RETURN 
 975 GOSUB 0
 976 REM UNDRAW;52,30,52,33,47,33,49,35,47,33,49,31,
 977 RETURN 
 980 GOSUB 0
 981 REM DRAW;48,30,48,33,52,33,50,35,52,33,50,31,
 982 RETURN 
 985 GOSUB 0
 986 REM UNDRAW;48,30,48,33,52,33,50,35,52,33,50,31,
 987 RETURN 
 1000 GOSUB 0
 1001 REM CLS:DRAW;63,40,49,40,49,25,63,25,:DRAW;1,10,24,10,27,6,63,6,:CIRCLE;10,14,3,:DRAW;63,5,34,25,3,10,
 1002 RETURN 

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

Scroll to Top