From 77e4e91b73b798e8b90c2cb7b3719d1b8a804c47 Mon Sep 17 00:00:00 2001 From: Nathan Cannon Date: Sat, 21 Oct 2017 19:23:17 +0100 Subject: [PATCH] Moved from a flat directory structure to a more sane one. --- boot.s => kernel/arch/i386/boot.s | 0 linker.ld => kernel/arch/i386/linker.ld | 0 kernel.nim => kernel/arch/i386/tty.nim | 36 +++---------------- kernel/arch/i386/vga.nim | 24 +++++++++++++ kernel/kernel.nim | 5 +++ panicoverride.nim => kernel/panicoverride.nim | 0 makefile | 6 ++-- nim.cfg | 7 ++-- 8 files changed, 40 insertions(+), 38 deletions(-) rename boot.s => kernel/arch/i386/boot.s (100%) rename linker.ld => kernel/arch/i386/linker.ld (100%) rename kernel.nim => kernel/arch/i386/tty.nim (57%) create mode 100644 kernel/arch/i386/vga.nim create mode 100644 kernel/kernel.nim rename panicoverride.nim => kernel/panicoverride.nim (100%) diff --git a/boot.s b/kernel/arch/i386/boot.s similarity index 100% rename from boot.s rename to kernel/arch/i386/boot.s diff --git a/linker.ld b/kernel/arch/i386/linker.ld similarity index 100% rename from linker.ld rename to kernel/arch/i386/linker.ld diff --git a/kernel.nim b/kernel/arch/i386/tty.nim similarity index 57% rename from kernel.nim rename to kernel/arch/i386/tty.nim index 83684c3..c70dc8c 100644 --- a/kernel.nim +++ b/kernel/arch/i386/tty.nim @@ -1,27 +1,4 @@ -type - VGA_Colour {.pure.} = enum - black = 0, - blue = 1, - green = 2, - cyan = 3, - red = 4, - magenta = 5, - brown = 6, - lightGrey = 7, - darkGrey = 8, - lightBlue = 9, - lightGreen = 10, - lightCyan = 11, - lightRed = 12, - lightMagenta = 13, - lightBrown = 14, - white = 15 - -proc vgaEntryColour(fg: VGA_Colour, bg: VGA_Colour): int = - result = ord(fg) or (ord(bg) shl 4) - -proc vgaEntry(c: char, colour: int): int16 = - result = int16(int(c) or (colour shl 8)) +import vga const vgaWidth = 80 @@ -35,9 +12,9 @@ var proc terminalWriteAtPoint(writeChar: char, colour: int, xPos: int, yPos: int) = let index = terminalBufferBaseAddress + (yPos * bufferWidthSkip + (xPos * 2)) - cast[ptr int16](index)[] = vgaEntry(writeChar, terminalColour) # Write directly to display memory + cast[ptr int16](index)[] = vga.vgaEntry(writeChar, terminalColour) # Write directly to display memory -proc terminalInitialize() = +proc terminalInitialize*() = terminalColour = vgaEntryColour(VGA_Colour.lightGreen, VGA_Colour.red) for x in 0..