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

Reply via email to