CMM2 demo programs


Author Message
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6206
Posted: 05:59am 22 May 2020      

This is one that serves no purpose at all.

To change it from QB64, I added the colours array and changed PSET to PIXEL and set the MODE

 'sinecube QB64 2006 mennonite
 'translated to MMBasic by TassyJim May2020
 
 DIM blox(40, 40, 40) AS INTEGER
 DIM col(15) ' GWBasic colours
 col(0) = RGB(BLACK)
 col(1) = RGB(BLUE)
 col(2) = RGB(GREEN)
 col(3) = RGB(CYAN)
 col(4) = RGB(RED)
 col(5) = RGB(MAGENTA)
 col(6) = RGB(150, 75, 0)    ' brown
 col(7) = RGB(192,192,192)   ' dull white
 col(8) = RGB(127,127,127)   ' grey
 col(9) = RGB(173, 216, 230) ' light blue
 col(10) = RGB(173, 216, 230)' light green
 col(11) = RGB(144, 238, 144)' light cyan
 col(12) = RGB(255, 100, 100)' light red
 col(13) = RGB(255, 120, 255)' light magenta
 col(14) = RGB(YELLOW)       ' yellow
 col(15) = RGB(WHITE)        ' bright white
 
 MODE 2,16
 CLS
 
 B$ = "00000000...llnnnnnnl..l8lnnnnnnl.l88lllllllll88l000000ll88l00000"
 B$ = B$ + "0ll88l000000ll88l000000l.l8l000000l..ll000000l...llllllll"
 l = 8
 blox(2, 3, 32) = 1
 
 FOR l = 8 * 32 TO 1 STEP -8
   FOR y = 4 TO 4 * 32 STEP 4
     FOR x = 8 * 32 TO 1 STEP -8
       mm = SIN(x * y * l * 3.14): IF mm<0 THEN mm=-1 ELSE IF mm>0 THEN mm=1
       IF blox(x / 8, y / 4, l / 8) = mm + 1 THEN
         FOR by = 1 TO 11
           FOR bx = 1 TO 11
             IF RIGHT$(LEFT$(b$,(by - 1) * 11 + bx),1) <> "." THEN
               z = 11
               c = ASC(RIGHT$(LEFT$(b$,(by - 1) * 11 + bx),1)) MOD 16 + (y MOD 2)
               PIXEL x + bx - 1 + y - 3, by - 1 + y + l + 4, col(c)
             END IF
             
           NEXT bx
         NEXT by
       END IF
       IF INKEY$ = CHR$(27) THEN END
     NEXT x
   NEXT y
 NEXT l
 
 mode 1,8
 


Jim