From 2bbe0027f28070aceb69fc4b9293b5e367bed653 Mon Sep 17 00:00:00 2001 From: JanNeuendorf Date: Fri, 9 May 2025 09:09:28 +0200 Subject: [PATCH] Moved example program to a new file --- README.md | 56 +-------------------------------------------- example_projects.md | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 55 deletions(-) create mode 100644 example_projects.md diff --git a/README.md b/README.md index afd0ab3..c862c76 100644 --- a/README.md +++ b/README.md @@ -141,61 +141,7 @@ A program is just the initial state of the main memory. There is no distinction between memory that contains instructions and memory that contains some other asset. The initial state is loaded from a binary file that is read as containing the (little-endian) u16 values in order. The maximum size is $2*2^{16}$ bytes ($\approx$ 131.1kB). It can be shorter, in which case the end is padded with zeroes. The computer will begin by executing the instruction at index 0. - -## Example - -A simple example would be to print all $2^{16}$ possible colors to the screen. -We make our lives easier, by mapping each index of the screen-buffer to the color which is encoded with the index. -Here, we use the names of the opcodes instead of their numbers. - -``` -Set 501 1 0 // Write the value 1 to address 501 -Set 502 65535 0 // Write the largest possible value to 502 -Print 500 500 0 // Display color=@500 at screen-index=@500 -Add 500 501 500 // Increment the color/screen-index -Cmp 500 502 503 // See if we are not at the max number -Xor 503 501 503 // Negate it -Skip 0 4 503 // Unless we are at the max number, go back 4 instructions -Sync 0 0 0 // Sync -GoTo 0 0 0 // Repeat to keep the window open -``` -We could rely on the fact that the value at index 500 starts at zero and we did not have to initialize it. - -To build a program that we can execute, we could use python: - -```python -import struct - -code = [ - 0, 501, 1, 0, #Opcodes replaced with numbers - 0, 502, 65535, 0, - 11, 500, 500, 0, - # ... -] -with open("all_colors.svc16", "wb") as f: - for value in code: - f.write(struct.pack("