--- title: "WA-TOR" id: 51399 type: "computer_media" slug: "wa-tor" url: "http://localhost/computer_media/wa-tor/" markdown_url: "http://localhost/computer_media/wa-tor.md" published_at: "2023-07-30T07:41:03+00:00" modified_at: "2026-04-04T20:18:07+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2019/02/20230809-041332.jpg" excerpt: "Populate a toroidal ocean world with fish and sharks in this machine-code-powered predator-prey simulator based on a famous Scientific American article." 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: "Fred Nachbaur" slug: "fred-nachbaur" taxonomy: "indiv" url: "http://localhost/indiv/fred-nachbaur/" genre: - name: "Game" slug: "game" taxonomy: "genre" url: "http://localhost/type/game/" - name: "Simulation" slug: "simulation" taxonomy: "genre" url: "http://localhost/type/simulation/" media_type: "Cassette" programmers: - name: "Fred Nachbaur" slug: "fred-nachbaur" taxonomy: "indiv" url: "http://localhost/indiv/fred-nachbaur/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Wa-Tor%20%281985%29%28Nachbaur%2C%20Fred%29%28US%29%28TS1000%29%28Program%29.zip" mediadate: "1985" producer_company: - id: 11390 title: "Thomas B. Woods" type: "company" url: "http://localhost/company/thomas-b-woods/" related_products: - id: 14567 title: "WA-TOR" type: "product" url: "http://localhost/product/wator-zx81/" media_type_tags: "Game, Simulation" --- # WA-TOR WA-TOR is a predator-prey population simulator based on the [Computer Recreations piece in *Scientific American*](https://en.wikipedia.org/wiki/Wa-Tor), in which the user populates a toroidal ocean planet with fish and sharks and observes whether both species can reach a long-term equilibrium. The program is heavily machine-code driven: line 0 contains a large REM block holding the entire executable, with RAND USR calls throughout the BASIC launching routines for the title screen, parameter input, graphing, and simulation engine. It incorporates [Nissim Elmaleh’s](http://localhost/company/nissim-elmaleh/) “SHR” machine-code library for the cover screen and graphing routines. The BASIC layer is minimal—lines 1 through 37—serving mainly as a loader and menu shell, with VAL “number” used in GO TO and RAND USR targets as a memory-saving idiom. A save/restart menu (lines 13–37) allows the user to preserve a run to tape or restart the simulation. *** ## Program Analysis ### Program Structure The program is divided into two distinct layers. The first is a large machine-code payload stored in the `REM` statement at line `0`, which contains all simulation logic, graphics routines, the title/cover screen renderer, and population-graphing code. The second layer is a short BASIC shell (lines `1`–`37`) that acts as a loader, parameter-input handler, and save/restart menu. Execution flow proceeds as follows: 1. Line `1`: `RAND USR VAL "18048"` — jumps into the machine-code title/cover screen routine. 2. Lines `2`–`3`: Initialize BASIC variables `N=0` and `Y=1` using `NOT PI` and `NOT N`. 3. Line `4`: `RAND USR VAL "16514"` — launches the parameter-input machine-code routine. 4. Lines `5`–`12`: BASIC INPUT loop that validates a numeric parameter `A` against a PEEK-derived maximum, POKEs it into a system address, and calls further machine-code routines at addresses `16660`, `16771`, and `16708`. 5. Lines `13`–`17`: Post-run save menu — prompts the user to save, collects a filename via INPUT, and executes `SAVE N$`. 6. Lines `20`–`23`: Restart sequence using `RAND USR VAL "17577"`, `CLS`, `LIST VAL "18"`, and `STOP`. 7. Lines `30`–`37`: Keypress-driven menu loop for launching a new game or saving the program to tape as `"WATOR"` (with the R in inverse video as an auto-run marker). ### Machine Code Usage The `REM` block at line `0` is several kilobytes long and contains the full simulation and display engine. Multiple `RAND USR` calls throughout the BASIC dispatch into specific offsets within this block. Key entry points identified from the BASIC include: | Address | Role | | --- | --- | | `18048` | Title/cover screen display (uses SHR library) | | `16514` | Parameter input machine-code routine | | `16660` | Simulation initialisation | | `16771` | Main simulation/graphing loop | | `16708` | Error/re-prompt routine | | `17577` | Restart/reset routine | | `18496` | Called during tape-save restart sequence | | `16698` | Called on non-S keypress in menu loop (line `32`) | The machine code handles the toroidal ocean grid, creature movement rules, breeding and starvation counters for both species, and population graph rendering — none of which appears in BASIC. ### Key BASIC Idioms - **`VAL "number"` in `RAND USR` and `GO TO`**: Used throughout (e.g., `RAND USR VAL "18048"`, `GOTO VAL "11"`) as a standard memory-saving technique — storing the line number or address as a short string rather than a full floating-point constant. - **`NOT PI` / `NOT N`**: Lines `2`–`3` use `LET N=NOT PI` (evaluates to 0) and `LET Y=NOT N` (evaluates to 1) as a compact way to assign integer 0 and 1. - **Computed branch in line `14`**: `GOTO 14+(INKEY$="Y")+(7 AND INKEY$="N")` — a single-line dispatch: staying at 14 if no key, jumping to 15 on “Y”, jumping to 21 on “N” (14+7=21), neatly implementing a yes/no branch without IF statements. - **Busy-wait loop at line `30`**: `IF INKEY$="" THEN GOTO 30` waits for any keypress before the menu branches. - **Parameter bounds check via PEEK**: Line `6` uses `PEEK VAL "16393"` to fetch the upper limit for parameter `A` from a machine-code-written memory location, keeping the validation dynamic. ### Save/Restart Menu Lines `30`–`37` implement a tape-oriented utility loop. Pressing “S” branches to line `36`, which saves the program. Any other key calls the machine-code routine at `16698` (likely a screen clear or reset), then `CLEAR`, then `RAND USR VAL "18496"`, and finally `RUN` to restart. The `GOTO VAL "30"` at line `37` returns to the wait loop after a save, allowing repeated saves or a subsequent restart. ### Notable Techniques - The REM block embeds the SHR machine-code library for cover-screen rendering and graphing, integrating third-party assembly into the program as data within line `0`. - The inverse-video `REM` comment at line `19` (`RESTART: GOTO 20`) serves as an in-listing human-readable label with no runtime effect, a common documentation practice in machine-code-heavy BASIC programs. - Storing the machine-code entry points as `VAL "number"` strings rather than numeric literals marginally reduces the memory used by the BASIC program’s variable-length number representation. - The use of `PEEK VAL "16393"` for the parameter maximum means the BASIC validation loop is automatically coupled to whatever the machine code has set up, requiring no hardcoded limit in BASIC. ### Anomalies and Observations - Line `22` uses `LIST VAL "18"` in the restart path (between `CLS` and `STOP`), which is unusual — it will display part of the BASIC listing momentarily before `STOP` halts execution. This appears intentional, possibly to show the user which line to `RUN` from. - Line `19` is a `REM` with a human-readable label but is never the target of any `GO TO`; the actual restart entry is line `20`. - The jump from line `10` is `GOTO VAL "13"`, skipping lines `11`–`12` (the error path), after a successful parameter entry and machine-code simulation run. ## Source Code ``` 0 REM F3FD2A3544112101394421BB40E500219E40E99E40E9ED44ED44FD19AFEFF2893ED47ED473E0FDE913A443E14ED47FDE9ED44ED44A714302A1040ED42FD210403E1EED47CBFC1133EEE1130ED4FFB3EDDE918A3003A2E44FE0C021FA67E536762336FD2336E52336E123366F2336E93EE9112106AE197710FC36E12377AFE1E5111B0ED52CBFC2235443E1322E44E122C40C90000212E44CB46C0CFF000000000000212E44CB46C8CB862A10401193AFED4222C40C90000001E11821EFECD2641ED4B36403EAD91D8D54F50CB38CB38CB38AF7817171792C685715284CB318F9D5CDA941ED5B37441AE52ABE46CB9D5787878760CB104F9CB129FAEE1D1C1CB41203A3181B31840C579E6F891ED442139445F856F566B2601C292929292929604B91AF449C1E5ED53BE46AF585747676929292929299191E619ED5BC4019223744E1C9FE41382F6C0E0CB7F2832FE801605F197E81CB77C0ED5B374412C9CD2641ED4B36403E1F90D83EAD914FD81E1CDA9413A2140CDE941C9CDBE42C3E14000002A2F441832A31442233442A29401509ED5B3640ED532B447EFE76C8FEDD2014233A2B44D68322B443236403A2C4432374018E423E5108CB7F282E1C5260E63F6F292929ED5B334419EBC13A3444FE1E1A202CB3FCB412812F322140C5D5CD742D1C1132136403510E021374034CB6E2093A2B44323640E118983A3640322B443A2C44323740E1188911F86621EB4273237221E44236162120441100237EFEFFC8C680E5FEA320521E4423615615218119EB210681977C5D5E5D11311F0EDB0D1C110E82AEB42112101922EB42E118C5808080B9AEB2AA8E809D80A9AEBB9B8094809D9C80A8ADB7B4B3B4B3B880808076B2A6BD94A39CA0808080A6B3BE80B0AABE80B7AAB9BAB7B3B88076012347600003E03CF52137403623EAD324A4421364077CD59413A4A443DFE028218ECF1FE228218DC3E1F324A442137407721214036021364036ACD7423A4A443DFEFF28218E22A2940224644215432229403E73236403E0323740CD2D423E0324A4421374077213640369CD594121364036BCD59413A4A44C6AFE428218DE6721214036DF21364036AC5AF3A3640C6163236403E1F323740F5CD742F13DFEFF28218F1C110E2C9000000000000000000000000000000000005349F17337232DFF44AD044001E804401EDFE78775141C146E61412FFB0231B1261B615FF00584302126432229403EAD3236403E0323740CD2D422141432229403EAB323640CD32422A4644222940C900000000FFFF3F9CE08F3FFFDFCFC0000FBF7FFFF1F31F3FFFFFFFFEEF4F8F4EFFFFFFFFF3FF1FFFFF0000000852E1A2C2F2BB1E8ADBAFAB2BB1EAADA13C1937BDA68AF11F8A3CB923382415283434BDA622B10103430B33022EA13CA7A6BDA622FB936B923B9232D34A02732C3F2F82193E2F242F2E2F24BCA3A1A110ADBB8A392E38A802E38A1CFF253D9FBB252B151558015552BFB3A33D29BB142BAAB3B380AA11A2229F2F1CB13A30B7B123C183C1A3CB8B1BB1B4B43D21A221323E18181A3EB8AE2052C283D8BA22836A31411992D2D2D3F2C2C2C3DA2A2D253939D999999AE2417B6A521A83F2222161F202018BA188731B5862A1B8C29879EB5B5873D871A87A2C302C308CB7A73CAD2F23381038B3AAD8686B78CB7B73CAD1A3B1A1A1A8BB3B988C28CA38411BB119C82A380B211ABB78A8B222D848BBB299C8BA3803F3D3AB719B722B7301018FBEFB78095ABAB299EAF222D36292929BE8080802C37349521CBB33BB3F1867331827BB3FFBCBC9393B719FBEBE272727B919162C2C2C32B262929B812808080B91924AB2ABBBB9A220A2B9A23AA2B930232D30B32F3184B3AA3B143B3C3BB3B3BD9898981C39A83AAA1414143C3C8F9E9131713B6BF192B1F1F8B3BB53B8F9E2C58C3AB63AA83A348B8B9E8F9E8F9E1A2D2E35BA2318BABABB119C3131818BA2F332833BCBCA4A12F2F1833882F39808F32BD322833A4A125143F372537398016BDBDA1A4A1A4A116BD3980398039803E0000FD21040CFCD511200A74742A8546ED5210FCC15919CBE4C5CB610FCCBFEC1CBE10FCCB6C9CD34486C0C51E20AFD3FBCD46F38A1FD3FBC1FD21040CFCDBFB87FA294730E94E68AFCB11F57DBFB1F30FB7AD3FB10F1231D20EADBFB1F30FB7BD3FBC1520C13E4D3FBCD72C9CD3448227B4016182AC4023E51E0E1E54E79236754B8281CE5CB27878726FCB14836FCB119FAE2A7B404EB17723227B40E118DB1CCB5B28D4C11520CDC9CD2448FD660FD6E1FD562FD5E37A943082F3CFD364FF184FD364157FD7E4FD7767B953082F3CFD365FF184FD36515FFD36707BBA38FFD3660FD7E5FD777D5D533D1337ACB3F42FD3680F5C5D5E5CDA646E1D1C1F183304FD368FFBA382B9238BFD86838DFD3680187FD868FD3680F5FD7E0FD864FD770FD7E1FD865FD771F1181AFDCB84620CFF5FD7E0FD866FD770FD7E1FD867FD771F110A4C9CD23F2A854611A18A7ED52E5FDE1C9CD244811A0FDE5E119C90C305711824021304F7EF51A77F1122313B78B1C818F203A8240FEF3285CD404818F4CD2342216C5122225122265121FE50226551C93A8240FEF3C0CDBE42CD3A4121BE42222251222651215042226551CD4048C9617CDB64415021194FCD7141CDBB27CFEFDCA04AFEFB20F30617CDB644CD4349CD3049CD5848CD504362C53E0324A44CDF1483A4A443C28218F2C110ECCD5044CD3049CD7748CD8049C31D44000000000210573A4A441605F32374019191919E52323CD1249CD5941E1CD1249CD5941C95E2356EB2323232311A0CD1951112C0CD115111A0197D323640C90CDBB27C3C28218F7CDBB27C3CC018F80017021A41E5361823368212141E5364E213341E53693E1322140CDCF40E136AE13671E1362A2336D6C9ED5BC4011832104CEDB0C90003AE456FEFFC021EC4B18DCD7141CDBB27CFEDF28AFEEF20F47DFE7F20EFC97DFEDF20E9C121DD4B1EDCD714121057CDCE4921257CDCE4921D14B111DCD7141CD4048CD4048C3BD483EFD5E2356232323F5E5D55E2356D5D5C12323235E2356D5E1D119D119C51130CD6342C1D1EB732372F13DC8505918D40CDB444CD23FCD774A3AE556FE02019CD434921AE4B10DCD7141218B4B10ECD71413EC01823E40F5CD3147CD514AF1640CD864ACDE546CD774A6C078CD864ACDE546FD21040CD2BFC31D44AF32F5673E3F32F66732F8673EFF32F767CD7147C932E946FE402043E81823E18322C48C9101811FE7F21FF7F360EDB8C90F53EC0C5CD664A783DFE3F2823EBAF532F667AFF532F567CDA346C1AF78CE2438218F0C1AF78DEA38218E2AF32F56732F66732F767F1F53D32F867CD7147C1783DF5FE3F202921057E5CD204B3AF56732D0563E032F5673E3F32F667E12323F1CD204B3AF56732D256F1CD664AC93AD05632F5673EBE32F667F1F521058E5CD204B3AD25632F5673EBE32F667E12323F1CD204B18D30F5E55E235632F867EB1190CD6B4211190CD63427D32F767CD7147E1F13DFEFFC82323232318D810021544BCD7141C900B392D343226380271B03C34342938038342B393C26372AB1AB10281101D25242102B1B3326282D27263A37B76000000B2D34372E3F3433392631E01D0292E3B01401D1C0282D3734333433381BB76B3B2A37392E282631313EE01D0292E3B0141D1C1C028372A26393A372A38B76B028343235312A392AB76B2E332C1B1B1B1B1B1B1B1B1BB76B38323434392D029263926F03E018033B7680000008000808080000080808080800080808000808080076800000080880000808888880888800008088000807680000008008000080000008000080000800800080768000800080880808080808808080880888800008088080800768000800080080000800000080000800008008000807608080808080888000080888888088888080808880008076161616161616161616161616161616161616161616161616161616161616161676000000000B9ADAA80B5A6B7A6B2AAB9AAB7B8000000000760003E343A3702F342702E38039340382A312A28390333A32272A373876292A3828372E272E332C0392D2A0312E2B2A0283E28312A0342B0392D2A762B2E382D02633290382D263730381B0B333A32272A37B032263E0272A763A350393401E21211A0263131034392D2A373803A35039340221F1B076B3BAB2A7AAB70160392D2A02E332E392E2631003534353A3126392E34337600312A3B2A310342B02A26282D038352A282E2A381B0000000076B1AEABAAB8B5A6B301602D343C03134332C0392D2A034372C26332E38327600383A373B2E3B2A381A02E330282D3734333433381B0000000076A7B7AAAAA90160392D2A0262C2A0263903C2D2E282D0392D2A034371676002C26332E38320323A38390272A0272A2B34372A027372A2A292E332C7600352637392D2A33342C2A332A392E282631313E01026382A3D3A2631111B76ABAAAAA901602D343C03134332C0392D2A028372A26393A372A028263376003126283002B2A2A292E332C0102B2E382D183531263330393433111B0768080B5B7AAB8B8808BA7B7AAA6B08B80A6B980A6B3BE80B9AEB2AA80B9B480807680AAB8A8A6B5AA80B9B480A8B4B2B2A6B3A980B2AAB3BA80B4B5B9AEB4B3B89B7635372A3838026333E0302A3E039340283433392E333A2A03C261639343776B3828372A2A33D935372E33392A37F0381835B760CD7049CD3049CDB4441A15C5218055CD7141C1C5218F55CD7141C1C5219E55CD7141C110E6000218F55CD7141102CDF58CD7B4121AD55CD6A41CD7B4121EF55CD6A41CD7B41178211256CD7141212056CD6A412A294022D6563E1327A40F5FE128FFE53E3F3294020B212856CD6A413EFF32940F12EC6856F26566ECD6A412AD656222940100C93A21404F2EE63A7A40856F26567126069CD5D41217B56CD6A413A7A403CFEA20AD3A2140FE0C00217D40222940C92AC4011E1219EB217D561C0EDB0CDBB2237CB528F8C9E51E01F0D8CDE17CDADAC9221640CDCFAC9221640CDF58CDCFAC96203E8D710FBC921D8563AE756CD94413AEB56CD944118A6377233602310F9C9210573601115717F9EDB01013CDF58CD7B41CD7B41CD7B4102144236EC21F42368021184236EE3AEB56CDE8412144236E821F42364021184236EA3AE756CDE841C3C043F52105BE5CDC84211C02CD6742EBE119197EFE020EAE5CDC8423AE8561605FCD6742EBE13E40837723E5CDC8423AEA561605FCD6742EBE173F1F5624FAF791F4F381D10F83A7A40FE802873E80327A401843E8F18F76F26551A14CD7141F13DC81898C56107C4D210029CB11173011910F7C1C9E1186E2182E07CAAE68047D5CDBE42E3CDBE42EBE179A7283678B1E5ED62ED52E5C1D12100373FF57A531E8293058FED4A18987ED4A383ED423D3C1D20EC5FF130E2CB4F201EBCB7FC818BCD5042CB10D01837C7D0EBA7ED62ED52C9D5114B0ED4B324036268CD913E56269CD913C17C813014677D90301256F2B223240CDBE42D1C906162AC401105B237EFE7628171ACB7F208CB7720836801863695182369A131318E310E19703222401016CDF5811D85666C51A6F131A6713D5CD5D41D1C13E4B820AC5D511016CDF58D1C110E21016CDF583EABD73E14D71616CDF583E92D71B16CDF583E93D711016CDF583EB8D73E14D711616CDF583E92D711B16CDF583E93D711F16CDF583EBED73E39D73E14D72AE456E5CD5D4111617CDF58E1E5260CD5D41E16C260CD5D411B17218055CD71413E2322240C9000AF32E556AF32E456CDF342CD46F304DCDC8442105B5E23E556CB7220ACB73C24045CB7BC2D045CBB6E1237CFE6020E57DFE8020E0210573AE4565F160191919191D856A77233A77231DE56A77233A777B3C28318A90617CDB6441A0216856CD7141217756CD6A413E1F52E79856F26556E24CD6A41F13CFE620EECDBB27DFEF720F87CFEFD2814FEFBCA3D41FEF72827FEEFCA9648FEDF283B18DF3AE456FEFFC2C5432105736011157104EDB03AE5563CC3C143CDF3422AC406177EFE76286C680772318F510FB1618CD6B8C31D44CDB4442A294022D656C92AD656222940C31D44006192AC407EFE762853602318F610FBC900CDC8421180CD67424543ED8710FD32E656C9AFE33AE656F382CB81F382CB8932E6560545DCB49201CCB4120E13137AFE60C07BFE80C01105BC91B1B7AFE5AC0117E60C9AFE511400CB4120FED527CFE5A2041180519EBE1C90197CFE6020F67DFE7F38F111805AFED5218E9000CBB3CBB22B141C3AE856BB3863AEA56BA301D360233640ED5BDA562AD8562B22D856E5AFED52E130322DA56C3EA4364D5CDDC441AFE028A10F6D1CBF373237218E8C1D5E550593AE956BB38B1640E136023360E118E3E1364023360E13640233640ED5BD8562ADC5613ED53D856D5AFED52E130B322DC5618AE00000000000000000CBBBCBB22B3AEC56BB3863AEE56BA301D360233640ED5BE0562ADE562B22DE56E5AFED52E130322E056C3EA4364D5CDDC441ACB77201A10F6D1141CD564CDDC441AFE0282910F6D1CBFB73237218D8C1D5E550593AED56BB382416401CC1E1CBFB732372C5E136023360C35845C14CCBF036023360D5C5D1E118CAE1368023360E13680233640ED5BDE562AE25613ED53DE56D5AFED52E1D2584522E256C3584500000000215B40F921FF7F1B18160722BB78B120F9224402B363E2BF92B2B22240C3756CD2448FD7E047E675778CB3FCB3FCB3F5FFD7E1FEC0386FD21040CFCD5112000000008B97A2B2BD0B868613C2616393437266B76B664BCA696B9B4B7878686B76B8808080808080808080808B76B2726382A29034330263302E292A260273E0261B301B0292A3C29332A3EC038282E2A33392E2B2E28026322A372E282633C00292A281B01D252420B76B83C372E39392A330273E02B372A2903326282D27263A371A01D2524218B76BEE35263726322A392A3738B761ABABAEB8ADB761ABB8ADA6B7B0B76B333A32272A37B1A76B312E2B2A38352633B1A76B27372A2A29B1A76B2B2A2A29B1A761ABB4B08F808080103ED93311B76BA8B4B2B2A6B3A980B2AAB3BAB761A1ABB76BB4BAB980B4AB80B7A6B3ACAAB76B1D1BFEDF3C26393437B76B1E1BE63C26393437B76B1F1BF510FF1103828372A2A33B76B201BF52C3726352DB76B211BE3352C321BB76313B4750313B4750580000001261316406922F0704A0FF03664F531E14A51000000000000000021404836123364023366AF322240107CDF583E10F5CD2950F13D20F83E23222401F6CDF583EA6D72180573E87F54E234623E53E80CDB2BE1F13D28218EE1BBCDF58AFD71FACDF58AFD71119CDF58AFD71BD217057221640CDF58CDCFAC3D05A00BB5B7B4A9BAA8B9AEB4B3B760002514F1A171A1E182F1A1917231A28181E1A281A15151217161825183016261A141A21171B181B1A201A1219111A1D1A2D1A2C1A2119311823161D17191A1417161A2A1A311A251610191B16251A2D18F1818182917221A1A1A111727161E142B1A1F18181527172C1614181017231512152C18271A1816151611192F182B172116211A181A2B182114301A25171616F1929152F17101529181B17241A2816241411162E1A1B1418171D15291A1D142B16121AF1421183018101A14162D1710181D161C1A12162F161F1A1A1627182F142715111429162B14F1729142D15111425192214111518141D182F152E14F15151A211512142B15251516173114271410141B15231430141F14151419076141414141414141414141414143B01E1B1C1E14141414141414141414141414761B1B292E3839372E273A392A2903A33292A370312E282A33382A0273E1B1B76E83838348700408383087004083830083830008783830E76E0850085838358500585866585005283830008583831E76E0850085005850058500585335870050085005E76E0200200103302001200103300023301768AAAAAA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8AAAAAAA8A8A8A8A8A765000005009990000999000000700000E7650000050A878383A00A83834A00000500878383476500000508710086006002400638650050027650000050850340856865034050850005008683834768608786087108500085874500050850005000008576E86108610008683831585283836000868368200868383676E0000000000085005000000000000000E76E3534027343D0222040012008702F2A2B2B2A373834331A332DE76E010221C1F11000853838383833500001C1F21241F0000E76E2124221623231F20008683838383600003A1B0381B0261B00E76760000000000000CD30492AC401C6091312119058EBEDB0CD3049610C5EACDB5BE9CDB5BEACDB5BEBCDB5BC110E8C34048CCCCCCCC9610C5CDF583E17D7C1C5CD35BCDF583E17D7AF3D20FDC1C5CDF583E34D7C1C5CD35BCDF583E34D765AF3D20FD10FAC1C5CDF583E0D7C1CD35BCDF583E0D7C9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1 RAND USR VAL "18048" 2 LET N=NOT PI 3 LET Y=NOT N 4 RAND USR VAL "16514" 5 INPUT A 6 IF APEEK VAL "16393" THEN GOTO VAL "11" 7 POKE VAL "16417",A 8 RAND USR VAL "16660" 9 RAND USR VAL "16771" 10 GOTO VAL "13" 11 RAND USR VAL "16708" 12 GOTO VAL "5" 13 PRINT AT N,VAL "8";" SAVE THIS RUN ?" 14 GOTO 14+(INKEY$="Y")+(7 AND INKEY$="N") 15 PRINT ,," SAVE NAME?" 16 INPUT N$ 17 SAVE N$ 19 REM %R%E%S%T%A%R%T%: GOTO 20 20 RAND USR VAL "17577" 21 CLS 22 LIST VAL "18" 23 STOP 30 IF INKEY$="" THEN GOTO 30 31 IF INKEY$="S" THEN GOTO 36 32 RAND USR 16698 33 CLEAR 34 RAND USR VAL "18496" 35 RUN 36 SAVE "WATO%R" 37 GOTO VAL "30" ```