From 415f75c275c991949ef7c9d2c62d07e8eba761b5 Mon Sep 17 00:00:00 2001 From: Xander Date: Tue, 4 Jul 2023 13:26:09 +0200 Subject: Overloading print + cleanup --- kernel/output/writer.sats | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 kernel/output/writer.sats (limited to 'kernel/output/writer.sats') diff --git a/kernel/output/writer.sats b/kernel/output/writer.sats new file mode 100644 index 0000000..fd33424 --- /dev/null +++ b/kernel/output/writer.sats @@ -0,0 +1,33 @@ +#define BUFFER_HEIGHT 23 +#define BUFFER_WIDTH 80 +#define N BUFFER_HEIGHT * BUFFER_WIDTH + +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 buffer = [l : agz] (@[screenChar][N] @ l | ptr l) +typedef writer = @{position = [a:int | a >= 0 && a < N] int (a), color_code = uint8} + +castfn i2u8 {n: nat} (i: int n): uint8 n + +fun put_string (str : string) : void +fun clear_screen() : void + -- cgit v1.2.3