From bdc41230f972039daedda353e5195babc94cafe2 Mon Sep 17 00:00:00 2001
From: Arthur Beck <averse.abfun@gmail.com>
Date: Sat, 25 Jan 2025 19:37:05 -0600
Subject: [PATCH] Changed gitignore, changed color struct to work better
 cross-arch

---
 .gitignore                                  |   8 ++++----
 kernel/kernel.flat                          | Bin 33188 -> 0 bytes
 kernel/src/include/arch/x86_asmp/egatext.rs |  15 +++++++++------
 kernel/src/include/traits.rs                |   9 ++++++---
 kernel/src/internal/arch/x86_asmp/entry.rs  |   3 +--
 5 files changed, 20 insertions(+), 15 deletions(-)
 delete mode 100755 kernel/kernel.flat

diff --git a/.gitignore b/.gitignore
index 1d1b46b..4ab24a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,12 +22,12 @@ Cargo.lock
 
 # Generated grub files
 kernel/grub/
-aphrodite-grub.iso
-aphrodite.iso
+kernel/aphrodite-grub.iso
+kernel/aphrodite.iso
 
 # Generated files
-kernel.flat
+kernel/kernel.flat
 config.aphro.tmp
 
 # Per-developer files
-config.aphro
\ No newline at end of file
+kernel/config.aphro
\ No newline at end of file
diff --git a/kernel/kernel.flat b/kernel/kernel.flat
deleted file mode 100755
index 66281f39849d70e30e0406aca09c3c92493dd653..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 33188
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

diff --git a/kernel/src/include/arch/x86_asmp/egatext.rs b/kernel/src/include/arch/x86_asmp/egatext.rs
index 9c3725d..7027d7e 100644
--- a/kernel/src/include/arch/x86_asmp/egatext.rs
+++ b/kernel/src/include/arch/x86_asmp/egatext.rs
@@ -25,15 +25,18 @@ pub const ERR_INVALID_X: i16 = -1;
 /// Returned when the provided position is invalid in the Y direction.
 pub const ERR_INVALID_Y: i16 = -2;
 
-
-/// White text on a black background.
-pub const WHITE_ON_BLACK: u8 = 0b00000111;
-/// Black text on a black background.
-pub const BLACK_ON_BLACK: u8 = 0b00000000;
-
 impl crate::TextDisplay for FramebufferInfo {
     /// Writes a character to the screen.
     fn write_char(&self, mut pos: (u32, u32), char: u8, color: Color) -> Result<(), crate::Error<'static>> {
+        let mut clr = color.0;
+        if color.1 {
+            match clr {
+                0 => clr = 0,
+                1 => clr = 0b00000111,
+                _ => {}
+            }
+        }
+        let color = clr;
         if pos.0>self.width {
             return Err(crate::Error::new("Invalid X position", ERR_INVALID_X));
         }
diff --git a/kernel/src/include/traits.rs b/kernel/src/include/traits.rs
index e9ce602..772aaf7 100644
--- a/kernel/src/include/traits.rs
+++ b/kernel/src/include/traits.rs
@@ -1,14 +1,17 @@
 //! General traits. Mostly implemented in arch/*.
 
 /// A type used for color in the functions of [TextDisplay].
-pub type Color = u8;
+/// 
+/// Type alias for (u8, bool). Boolean argument is whether to
+/// change the value(i.e. for [COLOR_BLACK] and [COLOR_DEFAULT]).
+pub type Color = (u8, bool);
 
 /// Black-on-black.
-pub const COLOR_BLACK: Color = 0;
+pub const COLOR_BLACK: Color = (0, true);
 
 /// Should be whatever color commonly used for status messages.
 /// Generally should be white-on-black. Value is one.
-pub const COLOR_DEFAULT: Color = 1;
+pub const COLOR_DEFAULT: Color = (1, true);
 
 /// Some form of display that can be written too with text.
 pub trait TextDisplay {
diff --git a/kernel/src/internal/arch/x86_asmp/entry.rs b/kernel/src/internal/arch/x86_asmp/entry.rs
index ef2e815..9a2315b 100644
--- a/kernel/src/internal/arch/x86_asmp/entry.rs
+++ b/kernel/src/internal/arch/x86_asmp/entry.rs
@@ -12,7 +12,6 @@ use aphrodite::boot::BootInfo;
 use aphrodite::multiboot2::{FramebufferInfo, MemoryMap, MemorySection, RawMemoryMap, RootTag, Tag};
 use aphrodite::arch::output::*;
 use aphrodite::arch::egatext as egatext;
-use egatext::*;
 use aphrodite::output::*;
 
 #[cfg(not(CONFIG_DISABLE_MULTIBOOT2_SUPPORT))]
@@ -248,7 +247,7 @@ extern "C" fn _start() -> ! {
 
             let ega: &dyn aphrodite::TextDisplay = &framebuffer_info;
             framebuffer_info.disable_cursor();
-            ega.clear_screen(WHITE_ON_BLACK);
+            ega.clear_screen(aphrodite::COLOR_DEFAULT);
             tdebugsln("Testing EGA Text framebuffer...", ega).unwrap();
             tdebugsln("Testing EGA Text framebuffer...", ega).unwrap();
             tdebugsln("Testing EGA Text framebuffer...", ega).unwrap();