Implement new_line method

This commit is contained in:
Philipp Oppermann
2019-01-25 13:18:58 +01:00
parent cbfe6221bd
commit 3574958d5f

View File

@@ -82,11 +82,29 @@ impl Writer {
// not part of printable ASCII range // not part of printable ASCII range
_ => self.write_byte(0xfe), _ => self.write_byte(0xfe),
} }
} }
} }
fn new_line(&mut self) {/* TODO */} fn new_line(&mut self) {
for row in 1..BUFFER_HEIGHT {
for col in 0..BUFFER_WIDTH {
let character = self.buffer.chars[row][col].read();
self.buffer.chars[row - 1][col].write(character);
}
}
self.clear_row(BUFFER_HEIGHT - 1);
self.column_position = 0;
}
fn clear_row(&mut self, row: usize) {
let blank = ScreenChar {
ascii_character: b' ',
color_code: self.color_code,
};
for col in 0..BUFFER_WIDTH {
self.buffer.chars[row][col].write(blank);
}
}
} }
impl fmt::Write for Writer { impl fmt::Write for Writer {