Remove striped output example

Doesn't really add much value.
This commit is contained in:
Philipp Oppermann
2023-07-09 11:28:31 +02:00
parent c31f3c2728
commit 2676d69c31
3 changed files with 2 additions and 28 deletions

View File

@@ -1104,30 +1104,6 @@ We see that our guess that the whole screen would turn gray was right:
We finally see some output from our little kernel! We finally see some output from our little kernel!
You can try experimenting with the pixel bytes if you like, for example by increasing the pixel value on each loop iteration:
```rust ,hl_lines=5-9
// in src/kernel/main.rs
fn kernel_main(boot_info: &'static mut BootInfo) -> ! {
if let Some(framebuffer) = boot_info.framebuffer.as_mut() {
let mut value = 0x90;
for byte in framebuffer.buffer_mut() {
*byte = value;
value = value.wrapping_add(7);
}
}
loop {}
}
```
We use the [`wrapping_add`] method here because Rust panics on implicit integer overflow (at least in debug mode).
The result looks as follows:
[`wrapping_add`]: https://doc.rust-lang.org/std/primitive.u8.html#method.wrapping_add
![QEMU showing repeating gradient columns](qemu-wrapping-add.png)
### Booting on Real Hardware ### Booting on Real Hardware
To boot on real hardware, write either the `uefi.img` or the `bios.img` disk image to an USB thumb drive. To boot on real hardware, write either the `uefi.img` or the `bios.img` disk image to an USB thumb drive.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -38,7 +38,7 @@ The complete source code for this post can be found in the [`post-3.3`][post bra
In the [previous post], we learned how to make our minimal kernel bootable. In the [previous post], we learned how to make our minimal kernel bootable.
Using the [`BootInfo`] provided by the bootloader, we were able to access a special memory region called the _[framebuffer]_, which controls the screen output. Using the [`BootInfo`] provided by the bootloader, we were able to access a special memory region called the _[framebuffer]_, which controls the screen output.
We wrote some example code to display a gray stripe pattern: We wrote some example code to display a gray background:
[previous post]: @/edition-3/posts/02-booting/index.md [previous post]: @/edition-3/posts/02-booting/index.md
[`BootInfo`]: https://docs.rs/bootloader_api/latest/bootloader_api/info/struct.BootInfo.html [`BootInfo`]: https://docs.rs/bootloader_api/latest/bootloader_api/info/struct.BootInfo.html
@@ -48,10 +48,8 @@ We wrote some example code to display a gray stripe pattern:
fn kernel_main(boot_info: &'static mut BootInfo) -> ! { fn kernel_main(boot_info: &'static mut BootInfo) -> ! {
if let Some(framebuffer) = boot_info.framebuffer.as_mut() { if let Some(framebuffer) = boot_info.framebuffer.as_mut() {
let mut value = 0x90;
for byte in framebuffer.buffer_mut() { for byte in framebuffer.buffer_mut() {
*byte = value; *byte = 0x90;
value = value.wrapping_add(7);
} }
} }
loop {} loop {}