.
This commit is contained in:
FantasyPvP
2023-10-04 23:20:51 +01:00
parent 4a7cf2a634
commit d5e95433da
6 changed files with 27 additions and 17 deletions
+2 -2
View File
@@ -184,7 +184,7 @@ impl Renderer {
self.internal_render(); self.internal_render();
} }
pub fn with_colour(&mut self, cols: ColorCode) { pub fn set_colour(&mut self, cols: ColorCode) {
self.temp_colour = Some(cols); self.temp_colour = Some(cols);
} }
pub fn reset_colour(&mut self) { pub fn reset_colour(&mut self) {
@@ -334,7 +334,7 @@ pub fn write(args: fmt::Arguments, cols: (Color, Color)) {
interrupts::without_interrupts(|| { interrupts::without_interrupts(|| {
let mut writer = RENDERER.lock(); let mut writer = RENDERER.lock();
writer.with_colour(colour_code); writer.set_colour(colour_code);
writer.write_fmt(args).unwrap(); writer.write_fmt(args).unwrap();
writer.reset_colour(); writer.reset_colour();
}) })
+2 -2
View File
@@ -143,9 +143,9 @@ impl ScanCodeStream {
pub fn try_next(&mut self) -> Option<u8> { pub fn try_next(&mut self) -> Option<u8> {
let queue = SCANCODE_QUEUE.try_get().expect("not initialised"); let queue = SCANCODE_QUEUE.try_get().expect("not initialised");
if let Ok(c) = queue.pop() { if let Ok(c) = queue.pop() {
return Some(c); Some(c)
} else { } else {
return None; None
} }
} }
} }
+1
View File
@@ -4,6 +4,7 @@ use crate::{
}; };
use alloc::string::String; use alloc::string::String;
use alloc::vec::Vec;
pub use crate::{print, println, serial_print, serial_println}; pub use crate::{print, println, serial_print, serial_println};
pub use crate::kernel::render::Color; pub use crate::kernel::render::Color;
+2 -2
View File
@@ -4,7 +4,7 @@ use cmos_rtc::{ReadRTC, Time};
use crate::println; use crate::println;
use super::super::kernel::interrupts::GLOBALTIMER; use super::super::kernel::interrupts::GLOBALTIMER;
use x86_64::instructions::interrupts; use x86_64::instructions::interrupts;
pub fn wait(seconds: i64) { pub fn wait(seconds: f64) {
let mut start = 0; let mut start = 0;
interrupts::without_interrupts(||{ interrupts::without_interrupts(||{
start = GLOBALTIMER.lock().val; start = GLOBALTIMER.lock().val;
@@ -15,7 +15,7 @@ pub fn wait(seconds: i64) {
interrupts::without_interrupts(||{ interrupts::without_interrupts(||{
new = GLOBALTIMER.lock().val; new = GLOBALTIMER.lock().val;
}); });
if new + seconds > start { if new as f64 > start as f64 + seconds * 16.0 {
return return
} }
}; };
+15 -6
View File
@@ -6,12 +6,8 @@ use x86_64::instructions::interrupts;
use alloc::{boxed::Box, string::{String, ToString}, vec, vec::Vec}; use alloc::{boxed::Box, string::{String, ToString}, vec, vec::Vec};
use vga::writers::{GraphicsWriter, PrimitiveDrawing}; use vga::writers::{GraphicsWriter, PrimitiveDrawing};
use crate::{ use crate::{print, println, std, std::application::{Application, Error}, user::bin::*};
print, println, use crate::std::io::{Color, write, Screen, Stdin};
std::application::{Application, Error},
user::bin::*,
};
use crate::std::io::{Color, write, Screen};
use crate::std::random::Random; use crate::std::random::Random;
use crate::user::bin::gigachad_detector::GigachadDetector; use crate::user::bin::gigachad_detector::GigachadDetector;
use crate::user::bin::grapher::Grapher; use crate::user::bin::grapher::Grapher;
@@ -123,6 +119,19 @@ async fn exec() -> Result<(), Error> {
gigachad_detector.run(args).await?; gigachad_detector.run(args).await?;
} }
"wait" => {
use std::time::wait;
for _ in 0..20 {
wait(0.5);
let key = Stdin::try_keystroke();
println!("waited {}", match key {
Some(c) => c,
None => '_',
});
}
}
// direct OS functions (not applications) // direct OS functions (not applications)
"echo" => { "echo" => {
println!( println!(
+5 -5
View File
@@ -50,13 +50,13 @@ impl Application for Game {
'gameloop: loop { 'gameloop: loop {
time::wait(20); time::wait(0.2);
// if let Some(c) = Stdin::try_keystroke() { if let Some(c) = Stdin::try_keystroke() {
// self.mv = c; self.mv = c;
// } }
self.mv = Stdin::keystroke().await; //self.mv = Stdin::keystroke().await;
match self.mv { match self.mv {
'w' => self.head.y -= 1, 'w' => self.head.y -= 1,