--- title: "Truck" id: 56741 type: "computer_media" slug: "truck" url: "http://localhost/computer_media/truck/" markdown_url: "http://localhost/computer_media/truck.md" published_at: "2024-09-22T23:31:59+00:00" modified_at: "2026-04-03T07:58:53+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2024/09/SCR-20241102-ktpz.png" excerpt: "Navigate a truck through branching roads, dodge cops, survive tunnels, and find the firewood yard in this two-sided cassette driving adventure driven by an embedded machine code graphics engine." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" indiv: - name: "Frits Beniest" slug: "frits-beniest" taxonomy: "indiv" url: "http://localhost/indiv/frits-beniest/" genre: - name: "Game" slug: "game" taxonomy: "genre" url: "http://localhost/type/game/" media_type: "Program" programmers: - name: "Frits Beniest" slug: "frits-beniest" taxonomy: "indiv" url: "http://localhost/indiv/frits-beniest/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Truck%20%28198x%29%28Beniest%2C%20Frits%29%28TS1000%29%28US%29%28Program%29.zip" mediadate: "198x" images: - url: "http://localhost/wp-content/uploads/2024/09/SCR-20241102-ktpz.png" - url: "http://localhost/wp-content/uploads/2024/09/SCR-20241102-ktrs.png" - url: "http://localhost/wp-content/uploads/2024/09/SCR-20241102-ktnw.png" - url: "http://localhost/wp-content/uploads/2024/09/Truck.jpg" related_content: - id: 12513 title: "Extended Basic" type: "product" url: "http://localhost/product/extended-basic/" media_type_tags: "Game" --- # Truck 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. ## 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 <<<<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 ```