#cursor-position #vga #getter-setter #freestanding #0x-b8000

cursor-rs

在独立 Rust 中获取和设置 VGA(0xB8000) 的光标位置

3 个版本

0.1.4 2023年11月29日
0.1.3 2023年11月29日
0.1.2 2023年11月28日
0.1.1 2023年11月28日
0.1.0 2023年11月28日

#1 in #freestanding


用于 vgastream-rs

MIT/Apache

6KB
86 行代码(不包括注释)

cursor-rs

在独立 Rust 中获取和设置 VGA(0xB8000) 的光标位置。

使用方法


cargo add cursor-rs

示例

#![no_std]
extern crate vgainfo_rs;
use vgainfo_rs::*;
extern crate cursor_rs;
use cursor_rs::*;

fn reset_screen() {
    let buffer_ptr = LENGTH as *mut VgaCharType;
    let iter = (0..LENGTH).map(|i| unsafe { buffer_ptr.add(i) });

    for ptr in iter {
        let value = unsafe { ptr.read_volatile() };
        unsafe { ptr.write_volatile(value & 0xff00) };
    }
    VgaCursor::new().set(0,0);
}

联系我


lib.rs:

cursor_rs

在独立 Rust 中获取和设置 VGA(0xB8000) 的光标位置。

示例

#![no_std]
extern crate vgainfo_rs;
use vgainfo_rs::*;
extern crate cursor_rs;
use cursor_rs::*;

fn reset_screen() {
    let buffer_ptr = LENGTH as *mut VgaCharType;
    let iter = (0..LENGTH).map(|i| unsafe { buffer_ptr.add(i) });

    for ptr in iter {
        let value = unsafe { ptr.read_volatile() };
        unsafe { ptr.write_volatile(value & 0xff00) };
    }
    VgaCursor::new().set(0,0);
}

依赖项

~7KB