<p>roox has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmocom-bb/+/19486">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Wrote my not yet feature complete implementation of Snake.<br><br>Change-Id: Ib146f749b60e5851ba0723546697e09a6a05ae85<br>---<br>M src/target/firmware/apps/snake_game/main.c<br>1 file changed, 267 insertions(+), 37 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/86/19486/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/target/firmware/apps/snake_game/main.c b/src/target/firmware/apps/snake_game/main.c</span><br><span>index 63dba3f..a4e8296 100644</span><br><span>--- a/src/target/firmware/apps/snake_game/main.c</span><br><span>+++ b/src/target/firmware/apps/snake_game/main.c</span><br><span>@@ -25,6 +25,10 @@</span><br><span> #include <string.h></span><br><span> </span><br><span> #include <debug.h></span><br><span style="color: hsl(120, 100%, 40%);">+#define DEBUG 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define KNRM  "\x1B[0m"</span><br><span style="color: hsl(120, 100%, 40%);">+#define UNDERLINE  "\x1B[4m"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <memory.h></span><br><span> #include <delay.h></span><br><span> #include <rffe.h></span><br><span>@@ -44,6 +48,227 @@</span><br><span> #include <fb/framebuffer.h></span><br><span> #include <battery/battery.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define BLANK 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define HEAD 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define TAIL 2</span><br><span style="color: hsl(120, 100%, 40%);">+#define HEAD_FOOD 3</span><br><span style="color: hsl(120, 100%, 40%);">+#define FOOD 9</span><br><span style="color: hsl(120, 100%, 40%);">+#define SBODY 20</span><br><span style="color: hsl(120, 100%, 40%);">+/* The numbers above 20 are the distance to the head.</span><br><span style="color: hsl(120, 100%, 40%);">+ * 21 is direly behind the head.</span><br><span style="color: hsl(120, 100%, 40%);">+*/</span><br><span style="color: hsl(120, 100%, 40%);">+#define STDLEN 3</span><br><span style="color: hsl(120, 100%, 40%);">+#define HEIGHT 7</span><br><span style="color: hsl(120, 100%, 40%);">+#define WIDTH 16</span><br><span style="color: hsl(120, 100%, 40%);">+struct position {</span><br><span style="color: hsl(120, 100%, 40%);">+     int x;</span><br><span style="color: hsl(120, 100%, 40%);">+        int y;</span><br><span style="color: hsl(120, 100%, 40%);">+} pos;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+uint8_t field[WIDTH][HEIGHT];</span><br><span style="color: hsl(120, 100%, 40%);">+uint16_t score = 0, lenght = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+enum errors { ALLRIGHT, SNAKE_COL,  } err;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void printField();</span><br><span style="color: hsl(120, 100%, 40%);">+void setItem(int, int, int);</span><br><span style="color: hsl(120, 100%, 40%);">+void movepos(char);</span><br><span style="color: hsl(120, 100%, 40%);">+void increaseBodyAge();</span><br><span style="color: hsl(120, 100%, 40%);">+void setFood() {</span><br><span style="color: hsl(120, 100%, 40%);">+      int x, y, c;</span><br><span style="color: hsl(120, 100%, 40%);">+  /* for (c = 0; c < 10;c++) { */</span><br><span style="color: hsl(120, 100%, 40%);">+    /*      x = rand() % (WIDTH -1); */</span><br><span style="color: hsl(120, 100%, 40%);">+   /*      y = rand() % (HEIGHT -1); */</span><br><span style="color: hsl(120, 100%, 40%);">+  /*      if (field[x][y] == BLANK) { */</span><br><span style="color: hsl(120, 100%, 40%);">+        /*              field[x][y] = FOOD; */</span><br><span style="color: hsl(120, 100%, 40%);">+        /*              return; */</span><br><span style="color: hsl(120, 100%, 40%);">+    /*      } */</span><br><span style="color: hsl(120, 100%, 40%);">+  /* } */</span><br><span style="color: hsl(120, 100%, 40%);">+       for (x = 0; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+              for (y = 0; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (field[x][y] == BLANK) {</span><br><span style="color: hsl(120, 100%, 40%);">+                           field[x][y] = FOOD;</span><br><span style="color: hsl(120, 100%, 40%);">+                           if (DEBUG > 0) printf("Set without rand (%d|%d) %d\n", x, y, c);</span><br><span style="color: hsl(120, 100%, 40%);">+                         return;</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void print_snake_str(char *text, int16_t x, int16_t y)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      x = 6 * x;</span><br><span style="color: hsl(120, 100%, 40%);">+    y = 8 * (y+1) -3;</span><br><span style="color: hsl(120, 100%, 40%);">+     printf("Put string %s to (%d|%d)\n", text, x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+   fb_gotoxy(x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+      fb_putstr(text, framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+void movepos(char dim) {</span><br><span style="color: hsl(120, 100%, 40%);">+  setItem(pos.x, pos.y, SBODY);</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (dim) {</span><br><span style="color: hsl(120, 100%, 40%);">+                case 'Y': pos.y++;break;</span><br><span style="color: hsl(120, 100%, 40%);">+              case 'y': pos.y--;break;</span><br><span style="color: hsl(120, 100%, 40%);">+              case 'X': pos.x++;break;</span><br><span style="color: hsl(120, 100%, 40%);">+              case 'x': pos.x--;break;</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     switch (dim) {</span><br><span style="color: hsl(120, 100%, 40%);">+                case 'Y': case 'y':</span><br><span style="color: hsl(120, 100%, 40%);">+                   if (pos.y == -1) pos.y = HEIGHT -1;</span><br><span style="color: hsl(120, 100%, 40%);">+                   else if (pos.y == HEIGHT) pos.y = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                  increaseBodyAge();</span><br><span style="color: hsl(120, 100%, 40%);">+                    break;</span><br><span style="color: hsl(120, 100%, 40%);">+                case 'X': case 'x':</span><br><span style="color: hsl(120, 100%, 40%);">+                   if (pos.x == -1) pos.x = WIDTH -1;</span><br><span style="color: hsl(120, 100%, 40%);">+                    else if (pos.x == WIDTH) pos.x = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                   increaseBodyAge();</span><br><span style="color: hsl(120, 100%, 40%);">+                    break;</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+     setItem(pos.x, pos.y, HEAD);</span><br><span style="color: hsl(120, 100%, 40%);">+  printField();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void increaseBodyAge() {</span><br><span style="color: hsl(120, 100%, 40%);">+  int y, x;</span><br><span style="color: hsl(120, 100%, 40%);">+     lenght = SBODY + STDLEN + score;</span><br><span style="color: hsl(120, 100%, 40%);">+      for (x = 0; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+              for (y = 0; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (field[x][y] >= lenght) field[x][y] = BLANK;</span><br><span style="color: hsl(120, 100%, 40%);">+                    else if (field[x][y] >= SBODY) field[x][y]++;</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void setItem(int x, int y, int item) {</span><br><span style="color: hsl(120, 100%, 40%);">+        if (item == HEAD) {</span><br><span style="color: hsl(120, 100%, 40%);">+           switch (field[x][y]) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        case FOOD: score++; setFood(); item = HEAD_FOOD; break;</span><br><span style="color: hsl(120, 100%, 40%);">+                       case BLANK: break;</span><br><span style="color: hsl(120, 100%, 40%);">+                    default: err = SNAKE_COL;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     field[x][y] = item;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void resetField() {</span><br><span style="color: hsl(120, 100%, 40%);">+ /* system("clear"); */</span><br><span style="color: hsl(120, 100%, 40%);">+      printf("\033[H\033[2J");</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void printField() {</span><br><span style="color: hsl(120, 100%, 40%);">+  fb_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+   int x, y;</span><br><span style="color: hsl(120, 100%, 40%);">+     for (y = 0; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+             for (x = 0; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      switch (field[x][y]) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                case BLANK:break;</span><br><span style="color: hsl(120, 100%, 40%);">+                             case HEAD:  print_snake_str("O", x, y);break;</span><br><span style="color: hsl(120, 100%, 40%);">+                               case HEAD_FOOD: print_snake_str("P", x, y);break;</span><br><span style="color: hsl(120, 100%, 40%);">+                           case FOOD: print_snake_str("#", x, y);break;</span><br><span style="color: hsl(120, 100%, 40%);">+                                default:</span><br><span style="color: hsl(120, 100%, 40%);">+                                      if (field[x][y] == lenght) print_snake_str(";", x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+                                      else print_snake_str("o", x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+     printf("Score: %d\n", score);</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_gotoxy(0, framebuffer->height+-9);</span><br><span style="color: hsl(120, 100%, 40%);">+      fb_lineto(framebuffer->width-1, framebuffer->cursor_y);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(0, framebuffer->height-1);</span><br><span style="color: hsl(120, 100%, 40%);">+       char text[16];</span><br><span style="color: hsl(120, 100%, 40%);">+        switch (err) {</span><br><span style="color: hsl(120, 100%, 40%);">+                case SNAKE_COL: fb_putstr("The snake ate itself!!!", framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+                                err = ALLRIGHT; break;</span><br><span style="color: hsl(120, 100%, 40%);">+                default: sprintf(text, "Score: %u", score);</span><br><span style="color: hsl(120, 100%, 40%);">+                         fb_putstr(text, framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+                               framebuffer->cursor_x = 45;</span><br><span style="color: hsl(120, 100%, 40%);">+                                fb_putstr("OsmocomBB", framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (DEBUG > 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           printf("Pos X: %d, Y: %d\n", pos.x, pos.y);</span><br><span style="color: hsl(120, 100%, 40%);">+         printf("\n\n");</span><br><span style="color: hsl(120, 100%, 40%);">+             for(y = -1; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     for(x = -1; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                              if (y == -1 || x == -1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     if (x == -1) printf(" %2d: ", y);</span><br><span style="color: hsl(120, 100%, 40%);">+                                   else if (y == -1) printf(UNDERLINE " %2d" KNRM, x);</span><br><span style="color: hsl(120, 100%, 40%);">+                         } else printf(" %2d",field[x][y]);</span><br><span style="color: hsl(120, 100%, 40%);">+                  }</span><br><span style="color: hsl(120, 100%, 40%);">+                     puts("\n");</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+int cursor = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+#define NEIGH_LINES      ((framebuffer->height +8) / 8)</span><br><span style="color: hsl(120, 100%, 40%);">+static void print_display(char *text, int *y, int c)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    /* skip lines, given by cursor */</span><br><span style="color: hsl(120, 100%, 40%);">+     (*y)++;</span><br><span style="color: hsl(120, 100%, 40%);">+       if (c >= (*y)) {</span><br><span style="color: hsl(120, 100%, 40%);">+           printf("Line %d: Return c >= y\n", *y);</span><br><span style="color: hsl(120, 100%, 40%);">+          return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* skip, if end of display area is reached */</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((*y) - c > NEIGH_LINES) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printf("Line %d: Return\n", *y);</span><br><span style="color: hsl(120, 100%, 40%);">+            return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   fb_gotoxy(0, -3 + (((*y) - c - 1) << 3));</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_putstr(text, framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void fb_clear_fancy(uint8_t delay) {</span><br><span style="color: hsl(120, 100%, 40%);">+    int16_t x, y;</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+     for (x = 0; x < framebuffer->width; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+              for (y = 0; y < framebuffer->height; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     fb_set_p(x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+             fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+           delay_ms(delay);</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setfg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setbg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+     /* for (x = 0; x < framebuffer->width; x++) { */</span><br><span style="color: hsl(120, 100%, 40%);">+        for (; x >= 0; x--) {</span><br><span style="color: hsl(120, 100%, 40%);">+              for (y = 0; y < framebuffer->height; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     fb_set_p(x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+             fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+           delay_ms(delay);</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setfg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void intro() {</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_setfg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+     fb_setfont(FB_FONT_HELVB14);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_gotoxy(framebuffer->width/2 - 7 * 3, 15);</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_putstr("Snake",framebuffer->width-4);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_gotoxy(14, framebuffer->height-5);</span><br><span style="color: hsl(120, 100%, 40%);">+      fb_setfont(FB_FONT_HELVR08);</span><br><span style="color: hsl(120, 100%, 40%);">+  fb_putstr("Version: " GIT_SHORTHASH, framebuffer->width-4);</span><br><span style="color: hsl(120, 100%, 40%);">+      fb_gotoxy(0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+      fb_boxto(framebuffer->width - 1, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_boxto(framebuffer->width - 2, framebuffer->height-1);</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_boxto(0, framebuffer->height-2);</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_boxto(1, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     printf("(%u, %u)\n", framebuffer->width, framebuffer->height);</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_gotoxy(2, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+      fb_lineto(framebuffer->width-3, framebuffer->height-3);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(2, framebuffer->height-3);</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_lineto(framebuffer->width-3, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Main Program */</span><br><span> const char *hr = "======================================================================\n";</span><br><span> </span><br><span>@@ -91,41 +316,36 @@</span><br><span>  puts(hr);</span><br><span> </span><br><span>        fb_clear();</span><br><span style="color: hsl(0, 100%, 40%);">-    bl_level(255);</span><br><span style="color: hsl(120, 100%, 40%);">+ bl_level(255);</span><br><span style="color: hsl(120, 100%, 40%);">+        /* srand(23); // need time or other changing value */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       intro();</span><br><span style="color: hsl(120, 100%, 40%);">+      delay_ms(5000);</span><br><span style="color: hsl(120, 100%, 40%);">+       fb_clear_fancy(20);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span>    fb_setfg(FB_COLOR_BLACK);</span><br><span>    fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(0, 100%, 40%);">-       fb_setfont(FB_FONT_HELVB14);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_gotoxy(framebuffer->width/2 - 7 * 3, 15);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_putstr("Snake",framebuffer->width-4);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   fb_gotoxy(14, framebuffer->height-5);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_setfont(FB_FONT_HELVR08);</span><br><span style="color: hsl(0, 100%, 40%);">-        fb_putstr("Version: " GIT_SHORTHASH, framebuffer->width-4);</span><br><span style="color: hsl(0, 100%, 40%);">-        fb_gotoxy(0, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_boxto(framebuffer->width - 1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_boxto(framebuffer->width - 2, framebuffer->height-1);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_boxto(0, framebuffer->height-2);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_boxto(1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-    /* set_pixel_r(9,9); */</span><br><span style="color: hsl(0, 100%, 40%);">-    /* set_pixel_r(10,10); */</span><br><span style="color: hsl(0, 100%, 40%);">-    /* set_pixel_r(10,11); */</span><br><span style="color: hsl(0, 100%, 40%);">-    /* set_pixel_r(10,12); */</span><br><span style="color: hsl(0, 100%, 40%);">-    /* set_pixel_r(12,10); */</span><br><span style="color: hsl(0, 100%, 40%);">-    /* set_pixel_r(0,0); */</span><br><span style="color: hsl(0, 100%, 40%);">-    printf("(%u, %u)\n", framebuffer->width, framebuffer->height);</span><br><span style="color: hsl(0, 100%, 40%);">-  fb_gotoxy(2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_lineto(framebuffer->width-3, framebuffer->height-3);</span><br><span style="color: hsl(0, 100%, 40%);">-       fb_gotoxy(2, framebuffer->height-3);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_lineto(framebuffer->width-3, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       fb_setfg(FB_COLOR_WHITE);</span><br><span style="color: hsl(0, 100%, 40%);">-       fb_setbg(FB_COLOR_BLACK);</span><br><span style="color: hsl(0, 100%, 40%);">-    fb_lineto(2, 20);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+        fb_setfont(FB_FONT_HELVR08);</span><br><span style="color: hsl(120, 100%, 40%);">+  int y = 0, i;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* for (i = 1; i <= 7; i++) { */</span><br><span style="color: hsl(120, 100%, 40%);">+   /*      printf("%d\n", i); */</span><br><span style="color: hsl(120, 100%, 40%);">+       /*      print_display("OOOOOOOOOOOOOOOO", &y, cursor - 1); */</span><br><span style="color: hsl(120, 100%, 40%);">+   /* } */</span><br><span style="color: hsl(120, 100%, 40%);">+       /* print_snake_str("U",0, 0); */</span><br><span style="color: hsl(120, 100%, 40%);">+    /* print_snake_str("U",0, 2); */</span><br><span style="color: hsl(120, 100%, 40%);">+    /* print_snake_str("U",2, 0); */</span><br><span style="color: hsl(120, 100%, 40%);">+    print_snake_str("U",2, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+  print_snake_str("U",2, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+  print_snake_str("U",6, 0);</span><br><span>         fb_flush();</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        pos.x = framebuffer->width/(6 * 2);</span><br><span style="color: hsl(120, 100%, 40%);">+        pos.y = framebuffer->height/(8 * 2);</span><br><span style="color: hsl(120, 100%, 40%);">+      setItem(pos.x, pos.y, HEAD);</span><br><span style="color: hsl(120, 100%, 40%);">+  setFood();</span><br><span style="color: hsl(120, 100%, 40%);">+    printf("Put string to (%d|%d)\n", pos.x, pos.y);</span><br><span style="color: hsl(120, 100%, 40%);">+    printField();</span><br><span> </span><br><span> </span><br><span>        sercomm_register_rx_cb(SC_DLCI_CONSOLE, console_rx_cb);</span><br><span>@@ -150,13 +370,13 @@</span><br><span>      switch (code) {</span><br><span>      case KEY_0: bl_level(0);break;</span><br><span>       case KEY_1: bl_level(10);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_2: bl_level(20);break;</span><br><span style="color: hsl(120, 100%, 40%);">+       case KEY_2: movepos('y');break;</span><br><span>      case KEY_3: bl_level(30);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_4: bl_level(40);break;</span><br><span style="color: hsl(120, 100%, 40%);">+       case KEY_4: movepos('x');break;</span><br><span>      case KEY_5: bl_level(50);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_6: bl_level(100);break;</span><br><span style="color: hsl(120, 100%, 40%);">+      case KEY_6: movepos('X');break;</span><br><span>      case KEY_7: bl_level(150);break;</span><br><span style="color: hsl(0, 100%, 40%);">-        case KEY_8: bl_level(200);break;</span><br><span style="color: hsl(120, 100%, 40%);">+      case KEY_8: movepos('Y');break;</span><br><span>      case KEY_9: bl_level(255);break;</span><br><span>             // used to be display_puts...</span><br><span>                break;</span><br><span>@@ -166,9 +386,19 @@</span><br><span>        case KEY_HASH:</span><br><span>               // used to be display puts...</span><br><span>                break;</span><br><span style="color: hsl(0, 100%, 40%);">-    case KEY_LEFT_SB: bl_mode_pwl(1);break;</span><br><span style="color: hsl(0, 100%, 40%);">-    case KEY_RIGHT_SB: bl_mode_pwl(0);break;</span><br><span style="color: hsl(0, 100%, 40%);">-    case KEY_POWER: twl3025_power_off_now();break;</span><br><span style="color: hsl(120, 100%, 40%);">+       case KEY_LEFT_SB:</span><br><span style="color: hsl(120, 100%, 40%);">+             bl_mode_pwl(1);</span><br><span style="color: hsl(120, 100%, 40%);">+               break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case KEY_RIGHT_SB:</span><br><span style="color: hsl(120, 100%, 40%);">+            bl_mode_pwl(0);</span><br><span style="color: hsl(120, 100%, 40%);">+               break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case KEY_POWER:</span><br><span style="color: hsl(120, 100%, 40%);">+               twl3025_power_off_now();</span><br><span style="color: hsl(120, 100%, 40%);">+              break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case KEY_RIGHT: movepos('X'); break;</span><br><span style="color: hsl(120, 100%, 40%);">+  case KEY_LEFT:  movepos('x'); break;</span><br><span style="color: hsl(120, 100%, 40%);">+  case KEY_UP:    movepos('y'); break;</span><br><span style="color: hsl(120, 100%, 40%);">+  case KEY_DOWN:  movepos('Y'); break;</span><br><span>         default:</span><br><span>             break;</span><br><span>       }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmocom-bb/+/19486">change 19486</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmocom-bb/+/19486"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib146f749b60e5851ba0723546697e09a6a05ae85 </div>
<div style="display:none"> Gerrit-Change-Number: 19486 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: roox <mardnh@gmx.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>