fork download
  1.  
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4.  
  5. #define X
  6.  
  7. enum {
  8. MAX = 0x40
  9. };
  10.  
  11. typedef unsigned char uchar;
  12.  
  13. uchar dec2[] =
  14. X
  15. X
  16. X X X X
  17. X X
  18. X X
  19. "*"
  20. ">>>"
  21. ">>>O>"
  22. ">O<O>o@"
  23. "O>o>o>>O@"
  24. ">>@<O>o<@>>"
  25. "@O>o@O<o<@<<@"
  26. "O<<<o>>>@O<<<o<"
  27. "o<O<@>>>O>>>o>@>>"
  28. ">>>O>o@O<<o@<O>o@>>"
  29. "O<<<<o@O<<<<<o>o>>@O<"
  30. "o<<O@>>>>>O<<<<o@O<o@><"
  31. "<<<<<<<@>O<o>>>@>O>>>>>>o"
  32. ">@O>>o<@O>>o@<O>>>o<o>>@O<<"
  33. "o>>>>>@<<O>o<o>>@>>>>O>o@<O>>"
  34. "o>>@O<<<<o@O>>o><><<>><<>>><><@"
  35. ;;;
  36. ;;;
  37. ;;;
  38.  
  39. int main(void)
  40. {
  41. uchar reg[MAX] = {0};
  42. uchar *prg = dec2;
  43. uchar *p = reg;
  44.  
  45. while (*prg) {
  46. if (p < reg || p >= reg + MAX) {
  47. fprintf(stderr, "Bad address.\n");
  48. exit(1);
  49. }
  50.  
  51. switch (*prg) {
  52. case 'O': p++; break;
  53. case 'o': p--; break;
  54. case '>': (*p)++; break;
  55. case '<': (*p)--; break;
  56. case '@': printf("%d\n", *p); break;
  57. }
  58.  
  59. prg++;
  60. }
  61.  
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0s 5508KB
stdin
Standard input is empty
stdout
255
0
2
0
2
2
1
255
2
0
4
9
9
8
10
5
10
15
15
8
12
14
13
13
5
10
8
12
13
13
14