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 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. 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 The heart of the program is the large block of Z80 machine code embedded in the Each scene change is preceded by a The primary state variable is Navigation is entirely text-input driven via Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.REM at line 0. It is invoked with GOSUB 0, and the first two bytes (\FE
Skip to content
) form the entry-point preamble checked by the Truck
Program Analysis
Program Structure
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
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
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 screenDRAW x1,y1,x2,y2,... — draw polyline or shapeUNDRAW ... — erase a previously drawn shapeCIRCLE r,cx,cy — draw circleUNCIRCLE ... — erase circleMOVE col,row,startx,starty,dir,steps,... — animate a sprite along a pathPAPER x1,y1,x2,y2,\@@ — fill rectangular region (darkness/highlight)UNPAPER ... — clear paper fillPRINT AT row,col,string — print text within sceneState Variables and Game Logic
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
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
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.%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.GOSUB 0 and returns after the machine code processes the associated REM.Bugs and Anomalies
REM POOP — a placeholder or developer note left in the released program.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.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.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."TOMOROW" (mixed case) at line 115 is inconsistent with the otherwise all-caps text.Content
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 42FE 0C8F5CD2015F1CD1D15EF 534CDA7 EC9EBCDEF40CD9042CDA542CDB242CDCE42CD4C4920EFC911D840 6 4D5CD 842CDCD41CD 141CD 64912D1C9EB 61ACD364223 622CD3642C921DB407E2B96 6 04E5F2B7E2B96577E2A C40 9 E213DC8 918FBC9E53ADC4043CD F4E10FBE1 9E51520F4E1C97EB9D8CF75C5C3C645C9EBCDEF4011D840 6 4D5CD 842D1EB2346234E702B712B 0 E40CDE04223CDE042 E3023CDE04223CDE04221D840113D40 6 2CD744513 6 2CD74451E 0213E40CD48452323CD4845233A3F4077CD4845213C407316 0CB46201E3A40405FCD5B45ED53454016 03A42405FCD5B45ED534740D53A4340181B3A3D405FCD5B45ED53454016 03A43405FCD5B45ED534740D53A4240C1CD6842ED434940213C40CB4620 ECB4E28 2CBDECB562810CBE618 CCB4E28 2CBE6CB5628 2CBDE114B40237E12232323137E12213C40CB4620 53A434018 33A424047 4 02A4540113F 019224540CDE542CD4C49C25449C923 6 311E9434E1AB9C0231310F8C929263923235E23562319C932323232232323237EFEEAC93232CDCD417EFE76C9323232E52323EBA72A1440ED52E1C93232322AD640CDF2 9EB22D640C932323232C6402AD640CD4149C8F52A104022D640CD C44DC5D44F1CD4149C8F5CD1B4418EFC932E52323EB2A C40A7ED52E1C93232CF72CF 1EBCDEF40221640CD754718 9CDEC43CD4D44DC5B44E5CDF84320 5CDDA4328 3E118E9D1CDEF40 0 0 0 022DE40C92432323232CD1D152A1C40 1 5 0ED42221C40ED5BD64013EDB0C93232322ADE40CD 24420 723CD7444CDCD41221640CDBA46DF22DE40FE1AC8CF7DEBCDEF40CDCD41CD 141CD2242CD68472AD440CD4B4120EFC92A104022D6402A 240C9C5CB38 4CB39 C3E1990472A C401121 018 11910FD5919C1CD99463E2F90473E 1CB2830 23E 4CB2930 1 7F57E 7FE1030 6 F30 2EE8F47CD914628 5F12FA018 2F1B0FE 838 2EE8F77C99677C9CB7E20 3CBCEC9CB8EC97E2B9638 5CB132318 5CB137E23962377C996 6 7A7CB13CB1210F9C92396 6 7A7CB1ACB1B10F9C94B40ED7E12231310FAC92A4540ED5B49403A3C40CB5F20 31918 797ED5230 2676C224540EBCD6745C9C53A3C40CB4720 5214B4018 3214C40CB6720 33418 135CD7B45213C407BCB4620 5324C4018 3324B40ED4B4B40CDED44C110CBC9E5EB5E2356EBD1 1DD45C5E92AD440CDCD41FE E20 6CDCD41C3FE412AD240221640 1 1 0C9CD F4638 5CD164118 ACD2242CD2A44CD174679C91B1B1B5F2B3E2596237BC9CD1E46CDA7 EC92A1C40 1 5 0 9221C40ED42EB2AD64023EDB0C91B 0CD4F4E2A C402322 E403E 032DC401E201618 E21CDCE42C92336 12336212336 0CDAE42C9ED5B C402121 01319 1F7 2EDB0 620EB36 02310FBCD3648C9C9 0 0 0EBCDEF4011D840 6 1D5CD 842D11A3C47C5CD5A46C110F9C93A2140CB47C93D3DCD914620 97EE678FE 0C836 0C97EE678FE 0C8C1C9CDAD4838 4CDD8 9C9E1C9FE1628 9FE1520 1E7CDD914C9E7CDD914E5CD851BCDA01AE1C92ADE40237EFE7620 523CD7444232B22DE40C91B2ADE4023CDF54622DE40C91B1B 1 0 07EFE1AC8FE7620 2CF7D 32318F21B1B2AD640234E36 0234636 02378B1C460 AC92AD6402371237023CD9E 9C91B1B2B7EA728FBCDCE1438 2CF70C620CD2C44237E23B628 3CD 847CDD44623E5CDE846C5CD1A47C1E178B1C8ED5BD640131313EDB0C91BCD2A44CDAC44CD9644C9FE D20 5CD284718 3CD5E47C9E7CDBA46DF22D4407EFE1A28 2CF7DCD8A1520 578FE4038 2CF146069CDD8 9C97EFE7620 1231ACB7728 23E8F771323 B78B1C8D5ED5B3C40ED5219D138E1D5C522 E40CD5A462A E40C1D118D2 0EBCDEF40CD5548CDCD41CD 141CD2242FE DF5CC1C42CD28494FF1F57928 2C620C620CD2C44F1F5C42E49F1CC3B49EB2A10402B223C402A E40CDA74722 E40CD12482AD440CD4B412B20BBC9A72A E40ED5B C4013ED521121 03E18ED5238 33D18F9323A40197B95323940C91B1B1B3A3A40FE1820 62A C402318 9A72A E401121 0ED5222 E40CD1248C9CF17E5CD1C42FE3920F6CD1C42FE2628 2E1C9E111D840D5 6 2CD 842E1 E18CDE04223 E20CDE0422A C40233AD840FE 028 7471121 01910FD3AD94016 05F1922 E40CD12482AD440C91B1B1BEB2BCDEF4011D840 6 1D5CD 842CDCD41CD 141CD2242CD2A44D11A4FED78CD93442AD440CD4B412B20DAC9BCEBCDEF4011D840 6 2D5CD 842E14E2346FDCB3B7628 8ED41 0D3FE7618 CCB41F5CC2B FF1ED41CC23 F2AD440CD4B412B20D0C9CF73CB4028FACD2242CB48C0FE1120F02B2B3E10BE20E92323D5CD 146D1CB77C83E8FC9CDCE14D8CF70CD1E46CDD51BE5CDA314E1C91B234E234623C9BEC8FE60D8CBFFBECBBFC92AD440CD4B412BC9E521D940545D7E1B122323137E12E11BD51313 6 2C3F442251CEBCDEF40CD904211D840D5213C40EB 1 4 0EDB0D1CDA542CDB242227B40D52AD44011DD40 6 1CD 8424F1B1B1AD9D1D9 0FE2A28 EFE3C28 AFE332826FE382822CF16C5D9C1D9FE2A28 2CBC8FD7021213E40 6 21E21CDC54A2A7B40CD5E4AC3124AF5C5E1C5D1 6 5CD5D4519E5D9C1D9 6 0F1FE3820 2CBC0FD7021213C40 6 21E19CDC54A2A7B40FDCB214628 FD9D5D9C11121 018 11910FD227B40CD374ACD4C49C811DC40CDCD41CD 141CD 64912C37549ED5B1040ED52193FD8ED5B C40ED5219C9D9C5D5D9E5CDA44AA7FDCB214628 31918 2ED52CD264A38 5113C40EBEDB0CDFA4A20E1C3AA4E3ADD40FE 0C8CDA44A79D5C15FFDCB214EF5CC7D4AF1C48F4ACDFA4A20E8C9CD5F4EC8 04B113C40BEC8EBEDA0EBE018F7CD5B4EC84B113B40EB 9EBBEC8EBEDA8EBE018F7F7D9D5D9C1 6 0C52A7B40E5113C40EDB0E1C1C5 0 0 0 0 0 0 0 0D9C5D9D1C1C920 E7E81BB38 27B3D77231C10F418 D7E3D9130 33E 2903C772310F311D840213C40 1 4 0EDB0C92B16 0193E76EDB9C9 0 0 02A7B401121 0FDCB214620 31918 2ED52227B40D915D9C91B1B1121 018 11910FD227B40C940C9C9113C40EBC9EBCDEF4011D840 6 3D5CD 842CD5A4CE11E 3D516 05EC5CD5B45C1237B 2 37A 2 3D11D20ECCD5B4BCD4C4920D5C9 0 0 0 6CA97C5ED5B3C40CB4FC4D24B 6 5CD69452A3E40CB4F20 8ED5230 9CBC718 51930 2CB87223E40EBCB47C4D24B 6 5CD69452A3C40CB4720 71930 ACB8F18 6ED5230 2CBCF223C40F5ED5B4240CDBB4132454097B22018ED5B40402A3E40CDBB4132444097B220 7ED4B4440CDD94BF1C1108DC921FFFFED52EBC9972148405E2356EBED42C8EB702B713E3FB9D83E2FB8D8CDED44C91B32343B6E4935372EC547283138B441343A39CF4829372656422B2E31314E372A26CA442E3319A248372A385F44382837A0413A33295D42282E3749423A33285042312A2B644C372E2C684C322E296C4C302A3E9341352635394E3A3335354E283435474E1B213C4070237023E5C1C93E 218 63E 118 23E 4322140C3EF4C2A3C4097E5CD 013BADC44422AD84062EBED524D44E1C9D5CDCD41CD 141CD2242FE DC42C42CD1C42CD2849C620CD2C44D17D12137C12132AD440C9CDE24CC87EF5CD3B49C52A3C40E5CD B47E1C178B120 2F1C9E5C5CD1D47C1E1F1E5C5CD3344C1D1232323CD5747C9 0 0 02A3E403A3C40BDC03A3D40BCC9EBCDEF40113C40CD8B4CCD8B4C11D840 6 1FDCB215628 1 4CD 842CDB04CCD3A4DCD1D4DCD4F4DCD4C4920D7C9FDCB2146C8CD744C30 4CD B47C9CD344D4B42CD60 AC92371237023C9FDCB214EC8CD744CD8C54B42CD344D 9C1CD60 AC9FDCB2156C8CD224D21D8407E23BE38 72A3C40CD B47C9477E902B77CD3F4DC9CDBB 2444D513E 014C8CDBD 77EC9CDCD41CD 141CD2242FE D20 DCD1C42CD2849C620CD2C4437C9CD2A44373FC9CD 24ED8237E 0 6 0CDC242CD264AC91CEBCDEF40FDCB2146F528 B11D840 6 2CD 8422AD440CD7E4D3818F120 ACD6F4DD61C30 19718 7CD9E4D7E30 197CD9344C9CD B47F128 7CD9E4D7ED818 5CD6F4DB7C8 1 1 0CD1A472AD64023232377C921D8403E20BED84E3E 0B93FC9FDCB214628 37723C9FDCB214E28 7BE20 236 023C9F597BE20 4F17723C9F123C93E 118 53E 218 197FD7721C37A42EBCD4841C8CF1BCD404E1618C36B 8CD404E2139403621233618C92B16 019533E76BEC8979228 336 015FDCB214E28 22B2B23 D28 218E73E753CC91BD51121 0FDCB214628 31918 2ED52D1C9D5E560691121 0ED527CB5444DE1D1C9C5E59743772310FCE1C1C9E1D1D5421121 0FDCB214620 918 11910FD18 4ED5210FCD1C178B1C8D5CD264AD138 3CD9F4ECD8F4EC815C8CD7E4E18EB1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
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
People
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 screenDRAW x1,y1,x2,y2,...— draw polyline or shapeUNDRAW ...— erase a previously drawn shapeCIRCLE r,cx,cy— draw circleUNCIRCLE ...— erase circleMOVE col,row,startx,starty,dir,steps,...— animate a sprite along a pathPAPER x1,y1,x2,y2,\@@— fill rectangular region (darkness/highlight)UNPAPER ...— clear paper fillPRINT 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 0and 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 11followed byIF A=50 THEN GOTO 12. SinceAstarts at 0 (line 3), line 9 always branches to 11 on first run, and line 10 is only reached on return from line 111, whereA=50is guaranteed — making line 9’s test functionally correct but line 10’sGOTO 12redundant with simply falling through. - Lines 206–207 use
IF T=9 THEN GOTO 210andIF T<>9 THEN GOTO 213— mutually exclusive and exhaustive, so one branch is always dead code at that point; a simpleIF/ELSEstructure would suffice. - Line 291 and the
SAVEat 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 — thePRINTandGOTO 1at 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
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 42FE 0C8F5CD2015F1CD1D15EF 534CDA7 EC9EBCDEF40CD9042CDA542CDB242CDCE42CD4C4920EFC911D840 6 4D5CD 842CDCD41CD 141CD 64912D1C9EB 61ACD364223 622CD3642C921DB407E2B96 6 04E5F2B7E2B96577E2A C40 9 E213DC8 918FBC9E53ADC4043CD F4E10FBE1 9E51520F4E1C97EB9D8CF75C5C3C645C9EBCDEF4011D840 6 4D5CD 842D1EB2346234E702B712B 0 E40CDE04223CDE042 E3023CDE04223CDE04221D840113D40 6 2CD744513 6 2CD74451E 0213E40CD48452323CD4845233A3F4077CD4845213C407316 0CB46201E3A40405FCD5B45ED53454016 03A42405FCD5B45ED534740D53A4340181B3A3D405FCD5B45ED53454016 03A43405FCD5B45ED534740D53A4240C1CD6842ED434940213C40CB4620 ECB4E28 2CBDECB562810CBE618 CCB4E28 2CBE6CB5628 2CBDE114B40237E12232323137E12213C40CB4620 53A434018 33A424047 4 02A4540113F 019224540CDE542CD4C49C25449C923 6 311E9434E1AB9C0231310F8C929263923235E23562319C932323232232323237EFEEAC93232CDCD417EFE76C9323232E52323EBA72A1440ED52E1C93232322AD640CDF2 9EB22D640C932323232C6402AD640CD4149C8F52A104022D640CD C44DC5D44F1CD4149C8F5CD1B4418EFC932E52323EB2A C40A7ED52E1C93232CF72CF 1EBCDEF40221640CD754718 9CDEC43CD4D44DC5B44E5CDF84320 5CDDA4328 3E118E9D1CDEF40 0 0 0 022DE40C92432323232CD1D152A1C40 1 5 0ED42221C40ED5BD64013EDB0C93232322ADE40CD 24420 723CD7444CDCD41221640CDBA46DF22DE40FE1AC8CF7DEBCDEF40CDCD41CD 141CD2242CD68472AD440CD4B4120EFC92A104022D6402A 240C9C5CB38 4CB39 C3E1990472A C401121 018 11910FD5919C1CD99463E2F90473E 1CB2830 23E 4CB2930 1 7F57E 7FE1030 6 F30 2EE8F47CD914628 5F12FA018 2F1B0FE 838 2EE8F77C99677C9CB7E20 3CBCEC9CB8EC97E2B9638 5CB132318 5CB137E23962377C996 6 7A7CB13CB1210F9C92396 6 7A7CB1ACB1B10F9C94B40ED7E12231310FAC92A4540ED5B49403A3C40CB5F20 31918 797ED5230 2676C224540EBCD6745C9C53A3C40CB4720 5214B4018 3214C40CB6720 33418 135CD7B45213C407BCB4620 5324C4018 3324B40ED4B4B40CDED44C110CBC9E5EB5E2356EBD1 1DD45C5E92AD440CDCD41FE E20 6CDCD41C3FE412AD240221640 1 1 0C9CD F4638 5CD164118 ACD2242CD2A44CD174679C91B1B1B5F2B3E2596237BC9CD1E46CDA7 EC92A1C40 1 5 0 9221C40ED42EB2AD64023EDB0C91B 0CD4F4E2A C402322 E403E 032DC401E201618 E21CDCE42C92336 12336212336 0CDAE42C9ED5B C402121 01319 1F7 2EDB0 620EB36 02310FBCD3648C9C9 0 0 0EBCDEF4011D840 6 1D5CD 842D11A3C47C5CD5A46C110F9C93A2140CB47C93D3DCD914620 97EE678FE 0C836 0C97EE678FE 0C8C1C9CDAD4838 4CDD8 9C9E1C9FE1628 9FE1520 1E7CDD914C9E7CDD914E5CD851BCDA01AE1C92ADE40237EFE7620 523CD7444232B22DE40C91B2ADE4023CDF54622DE40C91B1B 1 0 07EFE1AC8FE7620 2CF7D 32318F21B1B2AD640234E36 0234636 02378B1C460 AC92AD6402371237023CD9E 9C91B1B2B7EA728FBCDCE1438 2CF70C620CD2C44237E23B628 3CD 847CDD44623E5CDE846C5CD1A47C1E178B1C8ED5BD640131313EDB0C91BCD2A44CDAC44CD9644C9FE D20 5CD284718 3CD5E47C9E7CDBA46DF22D4407EFE1A28 2CF7DCD8A1520 578FE4038 2CF146069CDD8 9C97EFE7620 1231ACB7728 23E8F771323 B78B1C8D5ED5B3C40ED5219D138E1D5C522 E40CD5A462A E40C1D118D2 0EBCDEF40CD5548CDCD41CD 141CD2242FE DF5CC1C42CD28494FF1F57928 2C620C620CD2C44F1F5C42E49F1CC3B49EB2A10402B223C402A E40CDA74722 E40CD12482AD440CD4B412B20BBC9A72A E40ED5B C4013ED521121 03E18ED5238 33D18F9323A40197B95323940C91B1B1B3A3A40FE1820 62A C402318 9A72A E401121 0ED5222 E40CD1248C9CF17E5CD1C42FE3920F6CD1C42FE2628 2E1C9E111D840D5 6 2CD 842E1 E18CDE04223 E20CDE0422A C40233AD840FE 028 7471121 01910FD3AD94016 05F1922 E40CD12482AD440C91B1B1BEB2BCDEF4011D840 6 1D5CD 842CDCD41CD 141CD2242CD2A44D11A4FED78CD93442AD440CD4B412B20DAC9BCEBCDEF4011D840 6 2D5CD 842E14E2346FDCB3B7628 8ED41 0D3FE7618 CCB41F5CC2B FF1ED41CC23 F2AD440CD4B412B20D0C9CF73CB4028FACD2242CB48C0FE1120F02B2B3E10BE20E92323D5CD 146D1CB77C83E8FC9CDCE14D8CF70CD1E46CDD51BE5CDA314E1C91B234E234623C9BEC8FE60D8CBFFBECBBFC92AD440CD4B412BC9E521D940545D7E1B122323137E12E11BD51313 6 2C3F442251CEBCDEF40CD904211D840D5213C40EB 1 4 0EDB0D1CDA542CDB242227B40D52AD44011DD40 6 1CD 8424F1B1B1AD9D1D9 0FE2A28 EFE3C28 AFE332826FE382822CF16C5D9C1D9FE2A28 2CBC8FD7021213E40 6 21E21CDC54A2A7B40CD5E4AC3124AF5C5E1C5D1 6 5CD5D4519E5D9C1D9 6 0F1FE3820 2CBC0FD7021213C40 6 21E19CDC54A2A7B40FDCB214628 FD9D5D9C11121 018 11910FD227B40CD374ACD4C49C811DC40CDCD41CD 141CD 64912C37549ED5B1040ED52193FD8ED5B C40ED5219C9D9C5D5D9E5CDA44AA7FDCB214628 31918 2ED52CD264A38 5113C40EBEDB0CDFA4A20E1C3AA4E3ADD40FE 0C8CDA44A79D5C15FFDCB214EF5CC7D4AF1C48F4ACDFA4A20E8C9CD5F4EC8 04B113C40BEC8EBEDA0EBE018F7CD5B4EC84B113B40EB 9EBBEC8EBEDA8EBE018F7F7D9D5D9C1 6 0C52A7B40E5113C40EDB0E1C1C5 0 0 0 0 0 0 0 0D9C5D9D1C1C920 E7E81BB38 27B3D77231C10F418 D7E3D9130 33E 2903C772310F311D840213C40 1 4 0EDB0C92B16 0193E76EDB9C9 0 0 02A7B401121 0FDCB214620 31918 2ED52227B40D915D9C91B1B1121 018 11910FD227B40C940C9C9113C40EBC9EBCDEF4011D840 6 3D5CD 842CD5A4CE11E 3D516 05EC5CD5B45C1237B 2 37A 2 3D11D20ECCD5B4BCD4C4920D5C9 0 0 0 6CA97C5ED5B3C40CB4FC4D24B 6 5CD69452A3E40CB4F20 8ED5230 9CBC718 51930 2CB87223E40EBCB47C4D24B 6 5CD69452A3C40CB4720 71930 ACB8F18 6ED5230 2CBCF223C40F5ED5B4240CDBB4132454097B22018ED5B40402A3E40CDBB4132444097B220 7ED4B4440CDD94BF1C1108DC921FFFFED52EBC9972148405E2356EBED42C8EB702B713E3FB9D83E2FB8D8CDED44C91B32343B6E4935372EC547283138B441343A39CF4829372656422B2E31314E372A26CA442E3319A248372A385F44382837A0413A33295D42282E3749423A33285042312A2B644C372E2C684C322E296C4C302A3E9341352635394E3A3335354E283435474E1B213C4070237023E5C1C93E 218 63E 118 23E 4322140C3EF4C2A3C4097E5CD 013BADC44422AD84062EBED524D44E1C9D5CDCD41CD 141CD2242FE DC42C42CD1C42CD2849C620CD2C44D17D12137C12132AD440C9CDE24CC87EF5CD3B49C52A3C40E5CD B47E1C178B120 2F1C9E5C5CD1D47C1E1F1E5C5CD3344C1D1232323CD5747C9 0 0 02A3E403A3C40BDC03A3D40BCC9EBCDEF40113C40CD8B4CCD8B4C11D840 6 1FDCB215628 1 4CD 842CDB04CCD3A4DCD1D4DCD4F4DCD4C4920D7C9FDCB2146C8CD744C30 4CD B47C9CD344D4B42CD60 AC92371237023C9FDCB214EC8CD744CD8C54B42CD344D 9C1CD60 AC9FDCB2156C8CD224D21D8407E23BE38 72A3C40CD B47C9477E902B77CD3F4DC9CDBB 2444D513E 014C8CDBD 77EC9CDCD41CD 141CD2242FE D20 DCD1C42CD2849C620CD2C4437C9CD2A44373FC9CD 24ED8237E 0 6 0CDC242CD264AC91CEBCDEF40FDCB2146F528 B11D840 6 2CD 8422AD440CD7E4D3818F120 ACD6F4DD61C30 19718 7CD9E4D7E30 197CD9344C9CD B47F128 7CD9E4D7ED818 5CD6F4DB7C8 1 1 0CD1A472AD64023232377C921D8403E20BED84E3E 0B93FC9FDCB214628 37723C9FDCB214E28 7BE20 236 023C9F597BE20 4F17723C9F123C93E 118 53E 218 197FD7721C37A42EBCD4841C8CF1BCD404E1618C36B 8CD404E2139403621233618C92B16 019533E76BEC8979228 336 015FDCB214E28 22B2B23 D28 218E73E753CC91BD51121 0FDCB214628 31918 2ED52D1C9D5E560691121 0ED527CB5444DE1D1C9C5E59743772310FCE1C1C9E1D1D5421121 0FDCB214620 918 11910FD18 4ED5210FCD1C178B1C8D5CD264AD138 3CD9F4ECD8F4EC815C8CD7E4E18EB1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B
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.







