A slightly different version of Microsoft BASIC was the first programming environment I ever used, starting maybe when I was 4 or so. So I was happy to find that I could download a copy of it and run it in SIMH. Here’s a two-line generator of the Sierpinski triangle:
kra...@inexorable:~/pkgs/cpm.tmp/altsw$ altair Altair 8800 simulator V3.7-0 sim> attach dsk mbasic.dsk sim> set cpu 8080 sim> go MEMORY SIZE? LINEPRINTER? C HIGHEST DISK NUMBER? 0 HOW MANY FILES? 3 HOW MANY RANDOM FILES? 2 44297 BYTES FREE ALTAIR BASIC REV. 4.1 [DISK EXTENDED VERSION] COPYRIGHT 1977 BY MITS INC. OK let leaf = 3 OK let life = 3 SYNTAX ERROR OK new OK 1c=64:dimw(c):c$=" #":w(c/2)=1:forj=1toc/2:fori=1toc:?mid$(c$,w(i)+1,1); 2next:fori=2toc-1:t=w(i-1)+w(i)+w(i+1):w(i-1)=n:n=-(t=1):next:?:next:end run # ### # # ### ### # # ### ### # # # # ### ### ### ### # # ### ### # # # # ### ### ### ### # # # # ### ### ### ### # # # # # # # # ### ### ### ### ### ### ### ### # # ### ### # # # # ### ### ### ### # # # # ### ### ### ### # # # # # # # # ### ### ### ### ### ### ### ### # # # # ### ### ### ### # # # # # # # # ### ### ### ### ### ### ### ### # # # # # # # # ### ### ### ### ### ### ### ### # # # # # # # # # # # # # # # # ## ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## OK Here’s an IFS generator, although the fern equations I’m feeding into it here are somewhat suboptimal: 100 ' "chaos game" simple iterated function system 110 DEFINT I 120 DIM SC(48,72) 130 X = 0: Y = 0 140 FOR I = 1 TO 10000 150 C = RND(1) 160 Z = X 170 IF C > .9 THEN 190 180 X = .9 * X - .2 * Y + 11: Y = -.9 * Y - .2 * Z + 47: GOTO 200 190 X = .25 * Y: Y = -.25 * Z + 24 200 IF I > 40 AND X > 0 AND X <= 72 AND Y > 0 AND Y <= 48 THEN SC(Y+1, X+1) = 1 210 NEXT I 220 FOR Y = 1 TO 24: FOR X = 1 TO 72 230 IF SC(Y*2-1, X) THEN IF SC(Y*2, X) THEN PRINT ":"; ELSE PRINT "'"; ELSE IF SC(Y*2, X) THEN PRINT "."; ELSE PRINT " "; 240 NEXT X: PRINT: NEXT Y You could probably get this down into a much smaller space if you squinched it like the Sierpinski code above. Output: : ::. .: :::. ::. : . :::: ::: ::: ::. :. . '::::. :::: :::. ::: :: :: : : .. . :::::: :::::' :::: :::: ::: :::. ::: .:. :: :: : : ...... .:::::' ::::::. .::::: .::::. ::::: :::: :::.:::.:::::.:::::::::: ::::::'' ...:::::. .:::::. '':::. ::::'':::''::'::':::::::::::::::::' ''':::::'' ..::::''' ::::'' '''' .. ''..:...::::::::'::':: ::':''' :::::' ''''' ... ..::... :::::' :::: '::: ::: :: : '' ..::. ''':::::: .::::. ::::: '::: ::' :: ' ''::::::'' ''::::: ::::: '::: ::: : ' '':::::' :::::: ':::: ::: :' ':::::' ::::: ::: :: ':::::' '::: :: ' :::: ':: '' '::: :: ::: : -- To unsubscribe: http://lists.canonical.org/mailman/listinfo/kragen-hacks