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
