Revision: 1746
Author: jsuijs
Date: Wed Mar  3 14:29:32 2010
Log: gol implemented as a demo
http://code.google.com/p/jallib/source/detail?r=1746

Modified:
 /trunk/test/external/lcd/test_glcd_ks0108.jal

=======================================
--- /trunk/test/external/lcd/test_glcd_ks0108.jal       Tue Mar  2 14:16:06 2010
+++ /trunk/test/external/lcd/test_glcd_ks0108.jal       Wed Mar  3 14:29:32 2010
@@ -75,6 +75,40 @@

 var byte gol_output_column[9]

+-- ----------------------------------------------------------------------------
+const byte power[] = { 1, 2, 4, 8, 16, 32, 64, 128 }
+-- ----------------------------------------------------------------------------
+
+-- ----------------------------------------------------------------------------
+-- gol_get_bit - get one bit from a colomn
+-- ---------------------------------------------------------------------------- +-- ----------------------------------------------------------------------------
+function gol_get_bit(byte in row_nr, byte in column[9]) return bit is
+
+   var byte byte_nr = (row_nr >> 3) & 0x07
+   var byte bit_nr  = row_nr & 0x07
+
+   return ((column[byte_nr] & power[bit_nr]) != 0)
+
+end function
+
+-- ----------------------------------------------------------------------------
+-- gol_set_outbit - set one bit in gol_output_column
+-- ---------------------------------------------------------------------------- +-- ----------------------------------------------------------------------------
+procedure gol_set_outbit(byte in row_nr) is
+
+   var byte byte_nr = (row_nr >> 3) & 0x07
+   var byte bit_nr  = row_nr & 0x07
+
+;   var bit*3 byte_nr at row_nr : 3
+;   var bit*3 bit_nr  at row_nr : 0
+
+   gol_output_column[byte_nr] = gol_output_column[byte_nr] | power[bit_nr]
+
+end procedure
+
+

-- ----------------------------------------------------------------------------
 -- gol_randomize - Game of Life _ Randomize screen
@@ -111,6 +145,22 @@

 end procedure

+
+procedure gol_print_column(byte in column[9]) is
+   var byte i
+   var bit b
+
+   for 64 using i loop
+      b = gol_get_bit(i, column)
+      if (b) then
+         serial_hw_data = "*"
+      else
+         serial_hw_data = "."
+      end if
+   end loop
+   print_crlf(serial_hw_data)
+end procedure
+
-- ---------------------------------------------------------------------------- -- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------
@@ -141,38 +191,6 @@
    end loop
 end procedure

--- ----------------------------------------------------------------------------
-const byte power[] = { 1, 2, 4, 8, 16, 32, 64, 128 }
--- ----------------------------------------------------------------------------
-
--- ---------------------------------------------------------------------------- --- ---------------------------------------------------------------------------- --- ----------------------------------------------------------------------------
-function gol_get_bit(byte in row_nr, byte in column[9]) return bit is
-
-   var byte byte_nr = (row_nr >> 3) & 0x07
-   var byte bit_nr  = row_nr & 0x07
-
-   return ((column[byte_nr] & power[bit_nr]) > 0)
-
-end function
-
--- ---------------------------------------------------------------------------- --- ---------------------------------------------------------------------------- --- ----------------------------------------------------------------------------
-procedure gol_set_outbit(byte in row_nr, bit in value) is
-
-   var byte byte_nr = (row_nr >> 3) & 0x07
-   var byte bit_nr  = row_nr & 0x07
-
-   if (value) then
- gol_output_column[byte_nr] = gol_output_column[byte_nr] | power[bit_nr]
-   else
- gol_output_column[byte_nr] = gol_output_column[byte_nr] | (power[bit_nr] ^ 255)
-   end if
-
-end procedure
-
 -- nbs - NumberofBitsSet
 --                  0  1  2  3  4  5  6  7
 const byte nbs[] = {0, 1, 1, 2, 1, 2, 2, 3}
@@ -221,18 +239,31 @@
       top_n = gol_get_bit(i, gol_next_column)

       neighbours = nbs[bottom] + nbs[(middle & 5)] + nbs[top]
-
+;print_byte_dec(serial_hw_data, neighbours)
+;serial_hw_data = " "
       if (neighbours == 2) then
          -- remain the same
-         gol_set_outbit(i-1, (middle & 2) == 2)
+;         gol_set_outbit(i-1, (middle & 2) == 2)
+         if ((middle & 2) == 2) then
+            gol_set_outbit(i-1)
+         end if
       elsif (neighbours == 3) then
          -- become alive
-         gol_set_outbit(i-1, true)
+         gol_set_outbit(i-1)
       else
          -- less then 2 or more then 3 = die
-         gol_set_outbit(i-1, false)
-      end if
+;         gol_set_outbit(i-1, false)
+      end if
+      i = i + 1
    until i > 64
+
+;   print_crlf(serial_hw_data)
+;   gol_print_column(gol_prev_column)
+;   gol_print_column(gol_this_column)
+;   gol_print_column(gol_next_column)
+;   gol_print_column(gol_output_column)
+;   print_crlf(serial_hw_data)
+

 end procedure

@@ -291,10 +322,10 @@
    -- randomize

    gol_generation()
-   delay_100ms(1)
+;   delay_100ms(1)


-
+   serial_hw_data = "+"

 end loop

--
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to