aboutsummaryrefslogtreecommitdiff
path: root/kernel/writer.sats
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/writer.sats')
-rw-r--r--kernel/writer.sats27
1 files changed, 27 insertions, 0 deletions
diff --git a/kernel/writer.sats b/kernel/writer.sats
new file mode 100644
index 0000000..c9b8814
--- /dev/null
+++ b/kernel/writer.sats
@@ -0,0 +1,27 @@
+#define N 80 * 25
+
+datatype color =
+ | Black
+ | Blue
+ | Green
+ | Cyan
+ | Red
+ | Magenta
+ | Brown
+ | LightGray
+ | DarkGray
+ | LightBlue
+ | LightGreen
+ | LightCyan
+ | LightRed
+ | Pink
+ | Yellow
+ | White
+
+
+typedef screenChar = @{ ascii_character = char, color_code = uint8}
+
+vtypedef tptr (a: t@ype, l:addr) = (a @ l | ptr l)
+vtypedef writer = [l: addr] [n:nat | n < N] @{ column_position = size_t n, color_code = uint8 , buffer = tptr(@[screenChar][N],l)}
+
+fun print_char(c : char) : void