Advertisement
Voodlaz

Untitled

Dec 2nd, 2020
369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.56 KB | None | 0 0
  1. use volatile::Volatile;
  2.  
  3. #[derive(Debug, Clone, Copy, PartialEq, Eq)]
  4. #[repr(C)]
  5. struct ScreenChar{
  6.     character: u8,
  7.     color: u8,
  8. }
  9.  
  10. #[repr(transparent)]
  11. struct Buffer {
  12.     chars: [[Volatile<ScreenChar>; 80]; 25],
  13. }
  14.  
  15. pub fn writer(s: &str) {
  16.     let buffer = unsafe { &mut *(0xb8000 as *mut Buffer) };
  17.  
  18.     let row = 24;
  19.     let mut col = 0;
  20.  
  21.     let color = 0xf;
  22.  
  23.     for char in s.bytes() {
  24.         buffer.chars[row][col].write(ScreenChar {
  25.             character: char,
  26.             color: color,
  27.         });
  28.  
  29.         col += 1;
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement