--- title: "Dungeon of Ymir" type: "article" slug: "dungeon-of-ymir" url: "http://localhost/article/dungeon-of-ymir/" markdown_url: "http://localhost/article/dungeon-of-ymir.md" published_at: "2022-09-14T02:42:17+00:00" modified_at: "2026-06-21T23:24:17+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Dungeon of Yair is a multi-level maze adventure game written completely in machine code. Ymir requires 24K of RAM, and versions are available for the 1500 with a Hunter Board or other 8-16K RAM, OR for the 32K 1500 (with 16k RAMpack). Ymir is true HI-RES, using a HI-RES technique which works only with the…" category: - name: "ZX-Appeal" slug: "zx-appeal" taxonomy: "category" url: "http://localhost/category/periodicals/zx-appeal/" post_tag: - name: "Full Text" slug: "fulltext" taxonomy: "post_tag" url: "http://localhost/tag/fulltext/" - name: "Software review" slug: "software-review" taxonomy: "post_tag" url: "http://localhost/tag/software-review/" - 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/" - name: "Roelof Mulder" slug: "roelof-mulder" taxonomy: "indiv" url: "http://localhost/indiv/roelof-mulder/" publication_r: id: 36087 title: "ZX-Appeal" type: "periodical" url: "http://localhost/periodical/zx-appeal/" authors: "Roelof Mulder" issues_articles: - id: 39701 title: "ZX-Appeal Summer 87" type: "issue" url: "http://localhost/issue/zx-appeal-summer-87/" pages: "38" pubdate: "Summer 1987" archive_link: false article_media: - id: 51376 title: "Dungeon of Ymir" type: "computer_media" url: "http://localhost/computer_media/dungeon-of-ymir/" --- # Dungeon of Ymir Dungeon of Yair is a multi-level maze adventure game written completely in machine code. Ymir requires 24K of RAM, and versions are available for the 1500 with a Hunter Board or other 8-16K RAM, OR for the 32K 1500 (with 16k RAMpack). Ymir is true HI-RES, using a HI-RES technique which works only with the 1500 (NOT the 1000 of ZX81). A version for the ZX8/TS1000 is scheduled for release in the near future. ## WHAT IS THIS YMIR? Upon loading (in 2 parts), a 64 column cover screen displays the Cast of Characters, and control keys. The object of the qame is to successfully make it to the 7th level of the maze, retrieve the SWORD OF KASLO, and return it to your village. The game operates in the traditional form of the genre: you have a certain number of Hit Points (damage you can sustain), based on your Experience level, healing rate, and on what spells and potions you have at your disposal. On your journey, you will encounter 16 different types of monsters, lamps, mystery chests (which can be either very good or very bad), pits, ceiling holes, stairs up and down, gold (which is ‘cashed in’ for Experience Points at the Temple of Asylum on each level), and an Oracle, who can hand out useful gifts, Bake suggestions, and punish impudence. There are also several types of Spell Vials, which say be simply found in the maze, or in a mystery box, or handed out by the Oracle. These include Teleport spells, Rejuvenation spells, Healing potions, Drift spells, Shield spells, etc. The playing screen is very impressive, with hi-res UDGs for all the monsters and objects. The maze ie revealed only as you travel through it. As you proceed to lower levels, monsters become more difficult to cope with. Monsters are in constant action, which starts randomly and takes on sore evil intent as the game progresses! Critical information is displayed throughout the qame on the bottom line of the screen. A FAST-SAVE with autoboot reloading permits the qame to be saved in progress at any time, and reloaded in 70 seconds. I have found the fast save/load to be very reliable. Conclusions: I must confess that I was very skeptical when I first loaded YMIR, since I’ve never been a D&D-type game aficionado. (“OK, I’ll load Fred’s new game, just to be polite…”) My skepticism quickly turned to interest, curiosity, frustration, fascination, addiction. The graphics and animation are excellent (the little man bends over when you pick something up!), and the presentation of auxiliary screens (progress reports, etc.) is snappy and eye-catching. Dungeon of Ymir is, in the words of its author, “easy to play, difficult to master”. I’m hooked, and I have yet to live past the 3rd level. This game has even made me late for work. Dungeon of Ymir is five-star software: a MUST-HAVE. You’ve really done it this time, Fred! ## Source Code: Dungeon of Ymir ``` 0 REM GOSUB # <> DIM NEXT Y▛# ( CLEARLEN LOAD W4 CLEAR▞"")4 5 4<>5""RND/▒)4 ▌ASN INT RND;# GOSUB ###▙"" GOSUB # GOSUB #7E£RND) RUN ▙;Y2 GOSUB #Y PRINT ▘▛▝LN [>]▝LN 4▝<>5[A]RND#[8]▝ FASTSTR$ VAL 5 4\,, FAST5 # RETURNRNDS▝CHR$ RND- #ACS 7ACS >ACS 7ACS >ACS 7ACS >; FOR LPRINT ▞▒,STR$ #)4 ;SGN <( PRINT AT SGN LPRINT TAN <> FAST LPRINT [J])[C]RND GOSUB #COS LN F?STR$ <> LPRINT TAN # RETURN4S▀: ▖# RETURN/SQR # RETURN#COS LN LET RND7£/ DIM +#4▖SGN TAN 1#STR$ PRINT ▌Y█ LN LET RND LET X4 POKE SGN TAN 5#INKEY$ QY7Q▙7Q ▘ COPY )5-5#INKEY$ Q£LN #INKEY$ Q▖LN #INKEY$ Q$LN #INKEY$ Q▌LN #INKEY$ 5#INKEY$ YY[Y]4 LPRINT 7Q█/>=5 #)#▝ CLEAR#WXC▀;/ IF 6XRNDTAN FASTVAL EXRND▌$- #PI\,,#▞▌ACS 7ACS >( IF ;ACS 5[B] GOSUB PI###5[K]Z RETURN(K▞▐##AT LPRINT TAN ACS [Z]ACS [R]ACS [J]ACS [B]I""/ INPUT 5#INKEY$ QLN 7Q[L]7QINKEY$ LN [2]INKEY$ ▘ ▘)3=##INKEY$ VAL ▞(##5 DACS )*K▘;( RUN AT TAN :▘/▞:▝/▝: #[E] NEW█#STR$ LN #PI STOPLN #PI FOR LPRINT #[B]CQ#[L] FAST GOSUB # GOSUB # FASTAT SGN 5 RZ PRINT ##2▒DK▌[?] GOSUB #/\,,▗ GOSUB #S▀ GOSUB PIXW14 GOTO # LET K LLIST ACS #4▘ FOR ACS #COS /"LN PIACS (SQR /▀#▛SQR FOR [B] GOSUB # GOSUB #TAN STR$ )# GOSUB #MRND▀##LN \,,< FAST##LN \,, CLEAR#WX4 CONT 5## FASTQ[C]5## FASTQ▝5## FASTQ▀LN RND# LPRINT Q▖ LPRINT Q▌ LPRINT Q[4]LN RND#/OY▒ CLEAR#WX5[4]Z▐## PRINT LN [2]INKEY$ LN PEEK PILN [L]INKEY$ [B]4 RUN STR$ )#▝ LPRINT ;#[B]4 GOSUB Q▌ GOSUB #Q▖ LET X4 TO CLEAR#WX4INT TAN 5[=]#Q▌Y▒M[8]# PRINT Y\,, CLEAR#WACS ZWW PRINT LN #PI LET - #LN *PIY▘▐ PRINT LN [2]INKEY$ LN PEEK PILN [L]INKEY$ [B]4 RUN Y£> LET X4 GOTO CLEAR#WX4SGN LET W RETURN$K£ RETURN\,,4AT W5[=]#Q▘/[T]Y? PRINT 5 LIST Z▐## CLEAR## LET PRINT 5SQR Z▗▐## CLEAR##G# CLEAR## LET PRINT 5[(]Z▐##MWRNDLN [2]INKEY$ LET PRINT [B]3K▝ACS TO PRINT [B] GOSUB #XRND5/# GOSUB #STR$ FASTLN #PISGN LN *PISGN ;#[B]4 CONT FASTLN #PIU#RND- #LN *PIU#RND▐ACS BACS BACS BACS B# LPRINT LET PRINT █#U#RNDXC▞ CLEAR## LET /[V] LET LET X PAUSE CODE # PRINT VAL STR$ FAST# FAST#VAL FASTVAL LN ##Y([)]AT #LN VINKEY$ LPRINT AT TAN 5[/]T#Y#: [Y]7C▀£/ RAND ( PRINT INKEY$ ACS TF( CLEARFTAN LN LIST #Y▘▞▌LN ##Y▝▞▒LN ##Y▀▞?VAL PRINT LN ## LET AT RETURN▞C▖W▖/ LET LN LOAD PI##INKEY$ PRINT VAL STR$ FAST- #EORND[J] GOSUB ## PAUSE #STR$ FAST#[F]\~~ FASTSTR$ VAL PRINT LEN 0NOT #[8]▝ PRINT VAL STR$ FAST CLEARQ6 ▘▘*LN PRINT ▒ CLEAR#ZA LN [F]#Y"NOT ▘▒*LN PRINT ▒E#RNDLN [F]# CLEAR##A LN [F]#Y"NOT Y[,]NOT UPIRNDLN [K]#Y"NOT Y[.]NOT U#RNDLN [K]#Y"NOT Y[0]NOT U#RNDLN [K]#Y"NOT Y[1]NOT URNDRNDLN [K]#Y"NOT Y[2]NOT Y[3]NOT UINKEY$ RNDLN [K]#▘ *LN PRINT ▒Y[+]NOT Y[-]NOT ▘▌*LN PRINT ▒Y"NOT Y[*]NOT Y[/]NOT ▘£*LN PRINT ▒Y"NOT Y[;]NOT E£RND) SAVE ▝;▘ *LN VINKEY$ /#VAL PRINT ▘3-[J]LN LET RND$ PAUSE ## LET LN ##AT TAN 5#Z▞\~~LN DIM ▒LN LLIST ▒5#S)ZRND▘▒ GOSUB [K] CLEARQ#\,, CLEARQW▘LN [2]INKEY$ LN PEEK PILN [L]INKEY$ [B]4 RUN GOSUB ##RND5#S) S▘( GOSUB [K]TAN > LPRINT 6XRNDTAN #[8]▝ CLEARACS #CHR$ 5#SLN [5]#EXRND FAST5 #6XRNDLN PEEK PILN [L]INKEY$ [B]4 RUN Y▝/CHR$ LN [V]▝##GC▛LN [X]▛K▝#TAN [J]TAN PRINT VAL STR$ FASTLN ##)IZLN ▀#U#RNDLN ##LN ▀#>Y#LN ##/[H]# RETURN#COS >7/[O]#/ IF PRINT CLEAR##[B]C? RETURN▛C"ACS #ACS [Z]4▛LEN CLN ## LET TAN PRINT ACS [3]LEN 5 CLEAR## LET LEN )LN FAST# LET TAN FASTVAL 5 Q▘ COPY LN PLOT #AT LPRINT TAN LN #INKEY$ LN ##5[.]INKEY$ Q▙ FASTLN #INKEY$ LPRINT Q█▞▀Y▘LN ##▞▌Y▒ CLEAR#WLN £#▞\,,# CLEAR##LN £#▞\~~# CLEAR##LN £#▞"# CLEAR## CLEAR##LN :#▞£# CLEAR##LN £#▞:Y$ CLEAR##A LN £# CLEAR#WX5#Z▐##[B] PRINT C▒P▞)Y:LN ##Y▛▞=LN ##LN USR # RETURN#4 RAND LN #INKEY$ LET COS # CONT INKEY$ A PRINT VAL FAST▘ LN PRINT ▒ LPRINT LN USR #AT LET LN ##E£RND7)CZVAL STR$ ▘▌ GOSUB [K] LPRINT AT :,#VINKEY$ 5[2]# FASTQ?I[9] FASTQ(I CONT FASTQ[J]LN [?]# LPRINT Q# LPRINT Q▒ LPRINT Q▘LN CONT INKEY$ #[0]# GOSUB ##RND£▖Y▀ PRINT VAL Y▀ PRINT LN ▗# LET $X4 RUN AT LET ▌X4 GOSUB Y▘ GOSUB ##RND# LET RND#[B]COS RETURN+SQR #[B]COS RETURN3TAN LN ##SQR LN [L]INKEY$ / CONT GOSUB ##RND▖▖▖££££5## FASTQ\,,5## FASTQ"LN ## LPRINT Q▀ LPRINT Q▀TAN VAL ▞▌VAL GOSUB ##RNDY[£] PRINT LN LET RNDY▌LN [.]# LET W RETURN[(]4 LET AT ( SCROLLLN ##YKLN [.]#AT TAN ▞▝VAL GOSUB ##RND# PRINT LN LET RNDY▒LN [.]# LET PRINT CHR$ ▌LN LET RNDY▀LN [.]# LET X[X]4 NEWAT (<>TAN VAL FASTYYLN ##5 PRINT # FASTQW5 SLOW# FASTQ▖5[+][)]LN NOT # LPRINT Q▒ LPRINT QX5[(][=]LN NOT # LPRINT AT Y▀LN [.]#LN [L]####VAL STR$ ▞▖Y[£]VAL PRINT GOSUB ##RNDLN [L]INKEY$ LN LET RNDY▖LN [.]# LET W RETURN[(]4▝Y[£] PRINT LN LET RNDY▞LN [.]# LET AT ( AND Y▀LN [.]#LN ##SGN AT TAN Y▀/▝Y<)[3]#>) #VAL ▘▒ VAL FASTSTR$ ) #▘▒ GOSUB [K]SGN LET AT LPRINT FASTVAL PRINT STR$ GOSUB [K] GOSUB ##RNDY[4]LN LET RND CLEAR##LN G#SGN LPRINT LET AT ▀VAL PRINT AT $4SGN AT CLEARQ# TAN PRINT VAL STR$ FAST▘▒#5K# CLEARQ#/LN ###[8]▝ PRINT VAL STR$ FAST▘##5 # CLEARQ#£LN ##[J]LN ##/ NEW PRINT VAL STR$ FAST▘▒#5S# CLEARQ#/LN ##/PEEK PRINT VAL STR$ FAST▘##5 # CLEARQ#▞LN ##/USR PRINT VAL STR$ FAST▘ +LN PRINT ▒A CLEAR#ZLN [F]#E£RND)[R]▝;▘▝*#LN LET RND£7#LN LET RND£7#LN LET RND/[>] CLEAR#W[B]ASN LPRINT #LN [2]INKEY$ # RETURN$4▝Q 7.#[N]4 NEXT W PRINT A ###LN .PI CLEAR##[X]S▛ LET RETURN\,,C▀/ DIM LET CLEAR###A ##LN .PI)▀ LN .PI)▝ LN ### CLEARACS ## PRINT CODE [H]# LET ATN 1#TAN CLEARACS ## CLEARACS #[2]COS VAL ▞▒Y#LN ##( RAND AT TAN PRINT VAL STR$ FASTYJ CLEARACS #[-]LN ##LN [2]#▘#▝5 ## RETURN▝4▝Q 7"#[L]4 NEXT LN #PI)#▝LN *PI5""#;#[B]4 LOAD Q?#[8]▝ CLEARQ# L RETURN#Y$ CLEAR▚W CLEARACS ##C▝LEN ▖LN [.]#LN USR # GOSUB ##RND RETURN CY RETURN6C# RETURN7C# RETURN8C# RETURNRASN ## RETURNSASN ## RETURNTASN ## RETURNHASN [:]# RETURNLASN X# RETURN""ASN £# RETURN54( $VAL 5▒S)▒#▘▒ GOSUB [K]AT LN [L]INKEY$ RETURN▟C"LN ##K▞ CLEARACS ##C▖ GOSUB ##RND GOSUB ##RNDLN [L]INKEY$ /$£VAL 5 S/SGN ▌/NOT ▖/USR [B]4(U#RND[B]C=XM#RND[B]ATN ##/\~~LN £#LN ## CLEARQ#▖LN ## CLEARO# CLEARACS ##4> CLEARACS ##4D CLEARACS ##CE CLEARACS ##C8 CLEAR##ACS ZACS ZACS ZW CLEAR▚Z CLEAR[Y]#S▀ CLEAR## CLEAR#ZLN CLEAR#/▛ CLEARACS ##4<> CLEAR##ACS #TAB SQR # RETURN 4▛ CLEARACS #[:]# UNPLOT # RETURN▖C▖ RETURN▞4LY[(]LN LET RNDY2LN [.]#LN REM # CLEAROW CLEAR##[B]C-LN USR # RETURND4?YRNDLN ## CLEARACS # NEW CLEARP#LN [U]#LN F#/"" RETURN?4-LN [N]#Y▘ GOSUB ##RNDLN LET RNDLN [L]INKEY$ [J] CLEAR##>/[,] RETURN▌4C CLEAR##[B]C[0]LN USR # RETURND4[+] CLEARP#YRNDLN ##LN ""#LN [U]# CLEARPW CLEARACS # NEWLN F#/[T] RETURN▝4£LN USR # RETURN#4[H]LN [G]#/ STOP RETURN▀4Y[9]/# RETURN\,,4"LN USR # RETURN#4[9]I#/[V] RETURN▘4# CLEARACS #EXP Y[▒]LN LET RNDY▞LN [.]# CLEAR#WGACS XA CLEAR##- LN .PI GOSUB ##RND;6#RND CLEAR##[B] CLEARQ# CODE [U]#Y▘ GOSUB ##RNDLN LET RND# UNPLOT # LN #PI)# #*PI RETURN"4ZLN USR # RETURN#4[8]LN ### RETURN-K< CLEARO#YWLN ##LN [U]#YKLN [.]##[B]# RETURNGK▛ CLEARO#YV/ SCROLL RETURNPIK▛ CLEAROPIYU/>= CLEAROINKEY$ YT/STR$ RETURN£C▛ RETURN$ASN [N]#/WLN S#4[Q]LN ### RETURN(K▛ CLEARORNDYS/[Q] RETURN4S[H] RETURNMS"" RETURN#K▒LN CLEAR#LN [.]#/[H] RETURN#K CLEARACS #▚# UNPLOT # PRINT VAL STR$ FAST[J] GOSUB ##RNDLN LET RNDLN [0]#Y RETURN2C: GOSUB #▞KVAL ( RETURNAT ( IF LEN ▝/ INPUT LN EINKEY$ LN PEEK PILN [L]INKEY$ [B]4 RUN GOSUB ##RND#[8]▝U#RND[B]C▞ CLEARP#LN [(]## UNPLOT #UPIRND[B]C RUN CLEARPPILN ▛#LN [U]#/[7]U#RND[B]C NEW CLEARACS ##4 STEP CLEARP# CLEARACS # THENYZLN ##/ LPRINT URNDRND[B]CATN CLEARACS ##4LEN CLEARPRND CLEARACS # INPUT YS/ SLOWUINKEY$ RND[B]C[P] CLEARPINKEY$ LN [0]#/[H] PRINT U#RNDACS Z CLEAR▚Z CLEAR[Y]#S▀U#RNDMZRNDYINKEY$ LN ##LN [U]# LET TAN CLEARACS ##C\,,LN ##Y5[X]ABS TAB #LN ##YM[X]S4 CLEARQ# LN [U]#LN U#Q: CLEARACS ## CLEARACS #[Y]C\~~Y#LN ##Y4LN [.]#LN ##YM[X]S= CLEARACS ## CLEARACS #[Q]C\~~Y#LN ##Y4LN [.]#LN ##YM[X]**##INKEY$ LN [U]#- CLEAR#W5▛ LN .PI FASTLN #PISGN LN *PI#LEN ▀/- LN #PI)/+LN *PI FOR 5 #;#[B]4 INPUT TAN #[J]UZRND[1]K3 PRINT [J]MZRND CLEAR[Y]INKEY$ C, CLEARPINKEY$ LN [0]#Y(LN [.]# LET [B] CLEAR[:]ZK SLOW#[U]#MZRND/ SAVE CLEARQZ LN ##LN [U]#LN [L]#LN [0]#Y#LN ##LN S#4 CLSLN P#### GOSUB ##RND# RETURN=4▘▌Y[5]LN LET RNDY[6]▖LN LET RND[J]TAN LN #PI)) LN *PI#WACS Z[B]4#LN #PI GOSUB ##RNDSTR$ ACS UACS .LN *PI FOR LPRINT [J] GOSUB #6#RNDY#LN [U]#I PRINT YKLN [.]# LET LN ##YKLN [.]# GOSUB ##RNDLN [L]INKEY$ #>LN PEEK PILN [L]INKEY$ ,[B]4 PLOT Y$># UNPLOT # RETURN▝K:LN #PI)▀ LN *PIY#▐/CODE RETURN▌K#LN ### RETURNMK#YKLN [.]#LN #PI)\,, LN *PI#W CLEAR[Y]W4▛W RETURN\~~4▝Y▘X5DZQ 7Q:7Q 7 PRINT LEN 1# CLEARQ##Y:LN FAST# LET 5#Z▐#OI Y## LPRINT # RETURN#K▌I"/ NEXT I\~~/ INPUT 40 CLEAR## CLEAR#W[S]S▌Y## TO #LEN ▀[S]S▖Y#/ POKE Y#/ LIST RETURN▞4> CLEAR##[B]ASN [N]# CLEARQ# Y##>=# RETURN▛4( CLEARACS ##TAB [N]# CLEARACS # RETURNY#/LEN CLEARACS ##4 INPUT CLEARACS # PLOT Y#/[R] ACS [Z] PRINT LN J# LET PRINT CLEARACS ##C▞ CLEARACS #LEN /BLN S#4£[B]TAB ## CLEAR##[B]TAB ## LN #PI LET PRINT )#Z▄#,#- LN *PIG#LN ## CLEAR##X CLEAR##[B]TAB ## LET PRINT ACS [3]LEN 5 CLEAR##Y#LN FAST#▞▒VAL GOSUB ##RNDY£LN LET RNDY▘LN G#Y▘LN LET RNDY▀LN G#AT ( SLOW CLEARQ# CLEARO# LET W▛▛ACS BACS B#- ACS >E#RND;6#RNDLN [H]#LN T# CLEARACS #▚/#LN ##AT CLEAR##[B]CX CLEARACS ##4R# RETURN▌KM CLEARQ# #ACS [3]LEN 5 CLEARQ#PILN FAST#Y4LN [.]#LN U#Q: GOSUB ##RNDLN [L]INKEY$ , PRINT LN U# LET CLEARQ# CLEARQ# #/[N] GOSUB ##RNDLN [L]INKEY$ LN M#LN [U]# CLEARACS ## CLEARACS #[Q]C\~~Y#LN ##Y4LN [.]## UNPLOT # FAST2 ▘ LIST **LN LPRINT ▛LN [H]\~~TAN Y#LN ##LN USR # RETURN#4 RAND 5[2]# FASTQ?LN [,,]# LPRINT Q▘ CLEARQZ ### FASTVAL 5 #)#▝XC▀;/ IF ▌$- #PI\,,#▞▌ACS 7ACS >( IF ;ACS 5[B] GOSUB PI###AT LPRINT TAN VAL # CLEAR#O[(]AT CLEAR[Y]O4 CLSTAN GOSUB ##RND CLEAR#W CLEAR##LN ##"" CLEAR##TAN CLEAR## RETURN\,, PRINT LN ###)#▝ LET FASTC>;# RETURN▝Y▀ LPRINT 4▝#TAN U#RND RETURN▝** FAST[J] GOSUB ## LPRINT RETURN▀4▖Y▝/ REM RETURN▖""Y▌/ STOP FASTSTR$ PRINT VAL #5 4\,,# RETURN COPYAT C/#5[K]Z RETURN(S\~~ACS [Z]ACS [R]ACS [J]ACS [B]I""▐##LN ## LET SGN LPRINT TAN Y2 GOSUB #<>5▟▝TAN RETURN▖C▖ RETURN▞4> CLEARACS ##4£5#▝; FOR CLEAR##G#A#NN) PLOT #STR$ DIM """TIME WARP"""#ACS UNPLOT 6#RND CLEAR##W4( CLEARQ# CLEARLN ACS #ASN ## CLEAR#PW4 IF EORND GOSUB ##RND[J] GOSUB # AND [8]▝ASN [8]▝ CLEARP#A## CLEAR## CLEAR##ATN PI##,# CLEAR##LN ##/[Z]LN USR # RETURN# CLEAR#PITAN G0# RETURN#S▀2#H# RETURN#S▝IL CLEAR## CLEAR## CLEARQ#\,,TAN CLEARQ#L CLEARQ## CLEARQ#\~~ CLEARQ#[V]#[,,]# LN # RETURN(** CLEAR## CLEAR## PRINT [J]> LET PRINT CLEAR##VAL STR$ LN ##SGN AT LET PRINT CLEAR[Y]W4▖#LN ▚# LET LN ""# CLEAR##># CLEAR[Y]W"",LN ▚##TAN STR$ ## CLEAR[Y]W4\~~ CLEAR##[T]4▖ CLEAR##[S]#SGN TAN #LN [F]#COS CLEARACS ##45 CLEARACS ##4. VAL LN #PI)£ LN *PIAT Y\~~ CLEARACS ##4▀ CLEAR##[X]ABS [C]#Y▒VAL PRINT CLEAR##LN [6]PILN ##K▞ CLEAR##LN (# LET AT X4 CONT CLEAR##LN # CLEAR##TAN LN #[B]C$ RETURN▝CF RETURN▀CQ RETURN(S CLEAR## RETURN£4▝ACS [1] GOSUB [K]AT LET # LET RNDLN [R]#LN 7?LN E\~~#F? CLEAR## CLEAR[Y]WC0K$WLN # RETURN▝4> CLEAR##GTAN XLN # RETURN▀4▌ CLEAR##HTAN CLEARQ# # CLEAR[Y]#C▖ CLEARACS # THENK▖ CLEARACS #EXP # CLEAR[Y]#C▖ CLEARACS #CHR$ K▖ CLEARACS #LEN 5#Z CLEAR##▐##VAL PRINT LN 1#>=(# LET AT XVAL PRINT LN 1#>=(# LET AT WWVAL PRINT LN 1#>=(# LET AT # GOTO #LN D#LN ##U#RNDTAN A##ACS 9▐LEN T## CLEAR## DIM ▌TAN £▌TAN £ TAN £▖TAN ▖TAN $▖TAN $ TAN $▌TAN ▌TAN £▌TAN TAN TAN TAN TAN TAN TAN TAN TAN TAN LN LIST #LN ##5 4) #▘ *,[B]C\~~#7<"#[L]C$/ PAUSE <,Q XC LIST 7"/ RUN 5[X]#▘-▖LN VINKEY$ 7▘=▛LN VINKEY$ 7▘-\,,LN VINKEY$ 7▘$(LN VINKEY$ 7▘:>LN VINKEY$ LN USR #[B]C IF LN E\~~LN ###?# CHEERS[7]#P[E][A][C][E] R[E][I][G][N][S]#[A][T] [L][A][S][T].#E[V][I][L] [I][S] [V][A][N][Q][U][I][S][H][E][D][7]#T[H][O][U] [A][R][T] [A] HERO[7]# 4 4 4 4 4 4 4 4 4 4 4 4 4 \~~0 + \~~Y ▖:# ? ▒### ▖#< ? ▛▘66# ▖▖#RND : ▛▖#RND# ▀▘))4 : ▛▒ ▘▒# ▀▝##4 : ▛)))# ▀▌()( : ▛6E## ▖RND▖# : ▛RND#▘#RND ▝\,,)INKEY$ ? ▛▒ ▘▘#RND ▝=PI8RND : ▞▘) ▘▘#RND ▝▘▌)= : ▀S ▝▝6 ▘▘#RND ▝8### : ▀# ▝▝# ▘▘#RND ▝)▝5= : ▀# ▀▒ ▘▘#RND ▝#INKEY$ ## : ▀# ▝▘▖ ▘▘#RND ▝(\,,▒- : ▀F ▝▝4 ▘▘#RND ▝RND▒# ? ▀# ▀# ▘▘#RND ▝#INKEY$ INKEY$ # : ▀#RND ▘▝▒ ▘▘#RND ▝PI669 : ▀#RND ▘▘( ▘▘#RND ▝+++* : ▀TS ▘▝8 ▘▘#RND ▝#### : ▀## ▘▝# ▘▘#RND ▝#66B : ▀## ▝▒ ▘▘#RND ▝INKEY$ INKEY$ INKEY$ # : ▀W# ▘▘> ▘▘#RND ▝)\,,\,,* : ▀VV ▘▘6 ▘▘#RND ▝##▒RND : ▀##RND ▘# ▘▘#RND ▝)))* : ▀##RND ▀▘#RND ▝8RND## : ▀##RND ▘) ▘▘#RND ▝)>#* : ▀VVS ▘6 ▘▘#RND ▝▒PI## : ▀O## ▘#RND▘#RND ▝▖=#- : ▀O## ▘C4▘#RND ▝▘▖## : ▀W## ▘)(▘#RND ▀#)- : ▀VVV ▘\~~C▘#RND ▖#( : ▀▛##RND▖#▘#RND ▖## : ▀▛##RND▝\~~▘#RND ▖## : ▀▛##RND▘▘▘#RND ▖## : ▀▀VVS ▘6▘#RND ▖▖ ? ▀▖### ▘#INKEY$ #RND ▀▛## : ▀▖### ▘C5#RND ▀▌## : ▀▖### ▘))#RND ▀▛## : ▀▀VVVK\~~D#RND ▖▖ ? ▀▀####▖##RND ▘▛##)# : ▖####▝▖# ▝▌#### : ▖####▘## ▝▛##*# : ▖VVVVV(# + ▖*############ ? ▖+############ ? ▖3############ ? ▌VV ▘▀ ▘# + ▖▛############ ? ▖▌############ ? ▖▛############ ? ▌## ▀# ▖#RND ? ▌###########RND ? ▌▌########## ( ▌▛########## ( ▞▌######## ) ▞▛######## ) ▛▌###### > ▛▛###### > ▒##### < ▒3#### < \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## ▘▒ > \,,▛## ▘▒ > \,,▛## ▘( > \,,▛## = \,,▛## ▘4 > \,,▛## ▘4 > \,,▛## ▘RND > \,,▛## ▘RND > \,,▛## = \,,▛## = \,,▛##▘ < \,,▛##▝▘ > \,,▛##▝▝ > \,,▛##▖ < \,,▛## ▘▒ > \,,▛##▒( > \,,▛##▒4 > \,,▛##(RND > \,,▛##( < \,,▛##5 < \,,▛##6 < \,,▛### < \,,▛###▘ > \,,▛## ▘▞ > \,,▛##4K > \,,▛##INKEY$ RND > \,,▛##▝ < \,,▛##( < \,,▛##RND < \,,▛## = \,,▛####RND ) \,,▛## = \,,▛##RND < \,,▛##( < \,,▛##▝ < \,,▛##INKEY$ RND > \,,▛##4Q > \,,▛##(▘ > \,,▛##▒ < \,,▛## = \,,▛##▝ < \,,▛##▘ < \,,▛## = \,,▛## ▘RND > \,,▛## ▘4 > \,,▛##RND < \,,▛##RND▒ > \,,▛##RND▖ > \,,▛##4▝ > \,,▛##4▘ > \,,▛## = \,,▛##( < \,,▛##( < \,,▛##( < \,,▛##▒ < \,,▛## = \,,▛##▒ < \,,▛##▖ < \,,▛##▖ < \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▛## = \,,▀## = \,,▘#RND = \~~# + \~~# + \~~Q + \~~0 + \~~▒ + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5▜RND▞4#LEN █#7( RAND TAN LN 7?5 COPY#6##76["]#5[7]# FASTQTAN LN ## LPRINT Q#5 COPY36##5=RND6["]#TAN ▘▛(▒£▖>\~~$▝<:▞"▀?=▌)\,,\~~<▝$▌+1(2▛/)▀,:"*.▒▘;=\,,-▖£>▞?0 PRINT Y▛LN ##LN EINKEY$ LN USR # RETURN#4 RAND LET L RETURN#TAB UNPLOT ##£# LN LIST #LN EINKEY$ LN ##LN [4]SLN E\~~LN ##LN ##LN [U]#LN ### UNPLOT #[0] ▌ #INKEY$ #INKEY$ ▄INKEY$ ▜INKEY$ #INKEY$ £""▜INKEY$ ▜INKEY$ RND#RND ▝ [Z] CLEAR COPY3#INKEY$ ▌ [$]£ CONT DIM [W]5/ # ▜4 ████[,,]RND[+][=][>][(] [/] ▘TAB REM 5[C]RND) NEW#STR$ ▘[;] GOSUB [K]TAN 5#RND RAND 5 █6▖RNDFQYF RAND FF6▝RND##▞ # ▀" RAND USR VAL "16528"# ▖▌ SAVE "[1]"# ▌" RAND USR VAL "16514"##########################█ LN 7?▘ COPY COPY( RETURN$4 CLS5[4]#▞[4]VAL LN 2▀AT 7( SAVE FAST5 NEW#▞[;]VAL LN 2▀AT 7( SAVE LPRINT ▞#VAL LN 2▀AT 7( SAVE TAN LN EINKEY$ LN USR # RETURN#4 RAND 5#RND RAND 5 █6▖RNDFQYF RAND FF6▝RNDLN F?/P" SELECT",,,," SAVE 0-9",," STOP- SH. Q",," CONT - C",," NEW - N"#LN E\~~LN [R]#E-RND FAST5 AND #6-RNDLN INT \~~ LPRINT 6-RNDEORND6MRNDLN [V]▝G4 IF LN USR # RETURN""ASN #▞ RETURNC4▛UZRND[B]### RETURNNASN LIST # RETURN0S SLOW RETURNAK STEP ACS COPYM[4]#/▖ LN PAUSE SLN ▜#LN E\~~5 72 LN [A]## RETURN▝4 PRINT 2 COPYLN [Y]#2[F]LN [A]#5 COPY3- 7##▙#LN [A]#STR$ FOR E=RND[B] GOSUB # FOR SGN 4 GOTO #LN [A]##LN [A]##LN [A]#LN F?#£#LN [Y]#LN [Y]#LN [Y]#LN [Y]#LN [Y]#LN [Y]#LN [Y]# [B]ACS < AND ASN #LN NOT ##SQR #LN THEN# <= RETURN▞>( RETURNTAN PEEK COPY▞>( RETURNTAN PEEK COPY▞S( RETURNTAN LN 7?- LN #?ABS [A]▀=PEEK COPY# RETURN2K£2 LN ### RETURN 4 NEW/ NEWPEEK COPY2 LN ### RETURN C POKE LN ### RETURN[F]4SQR 5 COPY3- ▞ PEEK COPY7LN ####▙#STR$ FOR E=RND[B] GOSUB # FOR SGN 4 REM LN ##LN ###[U]4\,,YONOT YKNOT #[Q]#INT =2 LN ##LN ##LN ##LN ##LN ##LN ##LN ## Y <= RETURN*S RAND : £ Y <= RETURN*ABS ###LEN PAUSE ACS = RETURNHC** RETURNLCUSR TAN NOT Y#NOT TAN LN ##5 LLIST #▘▒-LN VINKEY$ CLEARQ#▘ CLEARACS ##4▝[B]TAN CLEAR##W CLEAR## RETURN▖TAN A 5 4▘ COPY*## $\,,#XW## ,)#;,C8 (/##/88 ▖▀PIYYPI9 0###YE# #0#0#▒6 ###0##INKEY$ YINKEY$ #INKEY$ ##Y 0#Y▒0=Q▒▒▒▒▒▒▒▒ #Y▒▒▒▒▒ ▒YCY\~~Y▒ ( ( #▝YK K ▖▒▒▒▒▖ 4((((4 (▒▖▒( ▖▒(▒▖ Y Y ▒▒Y▒▒ Y 0###>S #PI##PI# ▒ ▒▒( // 0Q###Q0 K/////£ Y#▀:/K# Y#▀:▀#Y £0W##££ Z##N▀#Y ▛0K###Y #▀▞£/K# Y##Y##Y Y##Z▞0# 3N##### ####### 2N###N2 ####### ####### ####### 2N###N3 ####### W/////W W££££#S ####### ####### ####### ####### 0Q###Q0 ####### 0Q###Q3 ####### Y##Y▀#Y #////// #N####Z ##NN.2£ #N####Z #N2£2N# #N2££££ Z#▞£/L# COPY COPY COPY COPY COPY COPY COPY COPY########)#)#)#)# (▒00#Y ▒Q====0 2A##### ▒ 0 Y # # Y 0 ▒ ▒0#6EEY 0####0 ▒=E=▒ ###W//W8££▒##▒Y6/<###