diff options
| author | Tianhao Wang <shrik3@riseup.net> | 2023-03-11 00:39:38 +0100 |
|---|---|---|
| committer | Tianhao Wang <shrik3@riseup.net> | 2023-03-11 00:39:38 +0100 |
| commit | 2625fd044547c7e8b8de287963ba9422aff1f051 (patch) | |
| tree | 0d48aa38831399d0006efdb18a6e983586ebb9f2 /src/machine/cgascr.rs | |
| parent | 29e28bc9c67378d0d9a7174dec6a0b541fb7f4d5 (diff) | |
fix linking
Diffstat (limited to 'src/machine/cgascr.rs')
| -rw-r--r-- | src/machine/cgascr.rs | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/src/machine/cgascr.rs b/src/machine/cgascr.rs index a43e073..f67501c 100644 --- a/src/machine/cgascr.rs +++ b/src/machine/cgascr.rs @@ -1,9 +1,9 @@ -const CGA_START:u32 = 0xb8000; +const vga_buffer:*mut u8 = 0xb8000 as *mut u8; #[allow(dead_code)] pub struct CGAScreen{ - max_cows:u32, - max_rows:u32, + pub max_cows:u32, + pub max_rows:u32, } #[allow(dead_code)] @@ -12,24 +12,31 @@ impl CGAScreen{ Self {max_cows: cows, max_rows:rows,} } - pub fn set_pos(x:u32, y:u32){ - - } - - pub fn get_pos(x:&mut u32, y:&mut u32){ - // TODO - *x = 1; - *y = 1; - } - - pub fn putchar(c:char, attr:u8){ - - } // this function should be the only one that "directly touches" // the memory by address. // and since it's unsafe, it shouldn't be public - fn show(&self, x:u32, y:u32, c:char, attr:u8){ + // + // fn show(&self, x:u32, y:u32, c:char, attr:u8){ + // + // } + pub fn test(&self){ + let mut r = 0; + let mut c = 0; + + while r<self.max_rows { + while c<self.max_cows { + let index:u32 = r*self.max_cows + c; + unsafe { + *vga_buffer.offset(index as isize * 2) = index as u8; + *vga_buffer.offset(index as isize * 2 + 1) = index as u8; + } + c+=1; + } + r+=1; + c=0; + } + } |
