# Programming contests

## ECN programozó csapatverseny, 2017. május 13.

May 13, 2017 10:10 AM – May 13, 2017 3:10 PM

# A Turing Child Computer

The problem is described in the input.

## Input

1. ` `
2. `   `
3. `       `
4. ` A Turing Child Computer `
5. `  `
6. ` `
7. ` The great-grantchild of the great mathematician and computer scientist Alan Mathison `
8. `Turing is a student at the Sapientia University (nicknamed GAMT) and he is studying -- what `
9. `else -- Computer Science. He became aware of the fundamental invention of his famous`
10. `great-grandfather -- today called Turing machine, -- and he had an idea to further develop this`
11. `simple computer.`
12. `The main difference of the architecture of his simple computer is a 2D memory cell grid, M --`
13. `instead of the linear cell structure of the old Turing machine -- with an address pointer mechanism`
14. `which reflects the 2D structure by the possibility of addressing one after another only the neighboring `
15. `cells in Left, Right, Up and Down direction. The computer has a single Accumulator `
16. `register A, which can hold 0 or positive integer values, just like the memory cells M.`
17. `A computer program is a sequence of instruction codes read from a tape one by one`
18. `and are immediately executed. The complete instruction set of this computer is listed in the `
19. `table below:`
20. `-----------------------------------------------------------------------------------------------------------------------`
21. `Code Effect/Meaning                                 `
22. `-----------------------------------------------------------------------------------------------------------------------`
23. `Start/Stop               `
24. `0 start the execution, NOP `
25. `1 repeat the next instruction 3 times`
26. `2 repeat the next instruction     4 times    `
27. `3 stop the execution`
28. `Set memory/pointer/A`
29. `4 clear memory, all memory cells are set to 0, reset memory`
30. `5 set memory pointer to default, reset address pointer `
31. `6 set Accumulator register A to 0, reset A  `
32. `7 increment A, increase the value of  A by 1 `
33. `Move memory pointer`
34. `8 step Right, point to the Right neighbour cell    `
35. `9 step  Up, point to the  Up neighbour      cell`
36. `10 step    Left, point to Left  neighbour cell`
37. `11 step  Down, point to  the  Down neighbour     cell `
38. `Read/Write`
39. `12 write A to M, copy the content of A to the currently pointed memory cell   `
40. `13 write A to the standard output, display the character codified by the value of A (see below)   `
41. `14 write (17^A)(mod 37) to the currently pointed memory location, well, thereis an arithmetic coprocessor too:)`
42. `15 read M to A, read the content of the currently pointed memory cell in the Accumulator    `
43. `-----------------------------------------------------------------------------------------------------------------------`
44. `When the content of A is displayed, each value is the code of a character from the list`
45. `below in increasing order, such that the first character has code 1, and the `
46. `last character has code 36.`
47. `!@_-+.;?/:ABCDEFGHIJKLMNOPQRSTUVWXYZ`
48. `GAMT has a message to you, a message displayed by a program which he wrote in the`
49. `machine code of his computer. Unfortunately, he hid the code in a tricky way, he said, actually`
50. `we are seeing it, without realising we see it.    `
51. `Can you discover the program code, and then write an emulator of his computer, run the program,`
52. `and send us the message revealed?             `
53. `                         `
54. `P.S. A last minute hint. We found out that the program code is indeed right here: it `
55. `is just hidden in this text file! The two spacing characters of this text has to be converted, `
56. `Space and Tab in 1 and 0 respectively, and read as numbers in base two, each group of four is `
57. `a machine code.  So all we actually see and read in this text file are just comments for this `
58. `hidden code!                                          `
59. `    `
60. `                  `
61. `                    `
62. `                   `
63. `                `
64. `                    `
65. `            `
66. `                  `
67. `                 `
68. `                     `
69. `               `
70. `                      `
71. `                 `
72. `              `
73. `                       `
74. `                `
75. `               `
76. `                  `
77. `           `
78. `                 `
79. `           `
80. `                `
81. `   `