1
0
Fork 0
forked from AbleOS/ableos

I am good at this/s

This commit is contained in:
peony 2024-11-01 18:35:30 +01:00
parent 9e0a508a6f
commit d19f15aa5c
7 changed files with 29 additions and 24 deletions

14
Cargo.lock generated
View file

@ -34,9 +34,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.91" version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13"
[[package]] [[package]]
name = "autocfg" name = "autocfg"
@ -253,12 +253,12 @@ dependencies = [
[[package]] [[package]]
name = "hbbytecode" name = "hbbytecode"
version = "0.1.0" version = "0.1.0"
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#da7cd5926c81c3ff34bab0bb5d31f029efee4ebb" source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#38a00cbaa09434324d209fc5f59480d2b6743fb3"
[[package]] [[package]]
name = "hblang" name = "hblang"
version = "0.1.0" version = "0.1.0"
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#da7cd5926c81c3ff34bab0bb5d31f029efee4ebb" source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#38a00cbaa09434324d209fc5f59480d2b6743fb3"
dependencies = [ dependencies = [
"hashbrown 0.15.0", "hashbrown 0.15.0",
"hbbytecode", "hbbytecode",
@ -270,7 +270,7 @@ dependencies = [
[[package]] [[package]]
name = "hbvm" name = "hbvm"
version = "0.1.0" version = "0.1.0"
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#da7cd5926c81c3ff34bab0bb5d31f029efee4ebb" source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#38a00cbaa09434324d209fc5f59480d2b6743fb3"
dependencies = [ dependencies = [
"hbbytecode", "hbbytecode",
] ]
@ -677,9 +677,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.85" version = "2.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View file

@ -75,7 +75,6 @@ impl Package {
&path, &path,
Options { Options {
fmt: true, fmt: true,
optimize: true,
..Default::default() ..Default::default()
}, },
&mut bytes, &mut bytes,
@ -84,7 +83,6 @@ impl Package {
hblang::run_compiler( hblang::run_compiler(
&path, &path,
Options { Options {
optimize: true,
..Default::default() ..Default::default()
}, },
&mut bytes, &mut bytes,
@ -101,7 +99,6 @@ impl Package {
&path, &path,
Options { Options {
dump_asm: true, dump_asm: true,
optimize: true,
..Default::default() ..Default::default()
}, },
&mut bytes, &mut bytes,

View file

@ -0,0 +1,5 @@
.{Vec2} := @
get_pos := fn(): Vec2(uint) {
}

View file

@ -36,7 +36,7 @@ free_surface := fn(surface: Surface): void {
return @inline(memory.free, Color, surface.buf, @intcast(surface.width * surface.height), false) return @inline(memory.free, Color, surface.buf, @intcast(surface.width * surface.height), false)
} }
framebuffer := @as(^Color, idk) framebuffer := @as(^Color, null)
init := fn(doublebuffer: bool): Surface { init := fn(doublebuffer: bool): Surface {
framebuffer = dt.get(^Color, "framebuffer/fb0/ptr\0") framebuffer = dt.get(^Color, "framebuffer/fb0/ptr\0")
@ -162,7 +162,7 @@ put_line_high := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), color: Col
} }
put_line := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), color: Color): void { put_line := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), color: Color): void {
if math.abs(uint, p1.y - p0.y) < math.abs(uint, p1.x - p0.x) { if math.abs(uint, @intcast(@as(int, @intcast(p1.y)) - @as(int, @intcast(p0.y)))) < math.abs(uint, @intcast(@as(int, @intcast(p1.x)) - @as(int, @intcast(p0.x)))) {
if p0.x > p1.x { if p0.x > p1.x {
@inline(put_line_low, surface, p1, p0, color) @inline(put_line_low, surface, p1, p0, color)
} else { } else {
@ -331,9 +331,9 @@ put_hline := fn(surface: Surface, y: uint, x0: uint, x1: uint, color: Color): vo
} }
put_tri := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), p2: Vec2(uint), color: Color): void { put_tri := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), p2: Vec2(uint), color: Color): void {
put_line(surface, p0, p1, color) @inline(put_line, surface, p0, p1, color)
put_line(surface, p1, p2, color) @inline(put_line, surface, p1, p2, color)
put_line(surface, p2, p0, color) @inline(put_line, surface, p2, p0, color)
return return
} }

View file

@ -19,7 +19,6 @@ send_command := fn(command: u8): void {
@inline(send_info, 0xD4) @inline(send_info, 0xD4)
@inline(wait_for, 1) @inline(wait_for, 1)
memory.outb(0x60, command) memory.outb(0x60, command)
return
} }
get_response := fn(): u8 { get_response := fn(): u8 {
@ -35,10 +34,10 @@ main := fn(): int {
log.info("Aux mouse device enabled.\0") log.info("Aux mouse device enabled.\0")
send_command(0xF6) send_command(0xF6)
get_response() _ := get_response()
send_command(0xF4) send_command(0xF4)
get_response() _ = get_response()
loop { loop {
loop if (memory.inb(0x64) & 0x20) == 0x20 break loop if (memory.inb(0x64) & 0x20) == 0x20 break

View file

@ -13,7 +13,7 @@ Vec3 := struct {x: int, y: int, z: int}
vertecies := [Vec3].(.(-1, -1, -1), .(1, -1, -1), .(1, 1, -1), .(-1, 1, -1), .(-1, -1, 1), .(1, -1, 1), .(1, 1, 1), .(-1, 1, 1)) vertecies := [Vec3].(.(-1, -1, -1), .(1, -1, -1), .(1, 1, -1), .(-1, 1, -1), .(-1, -1, 1), .(1, -1, 1), .(1, 1, 1), .(-1, 1, 1))
projected := @as([Vec3; 8], idk) projected := @as([Vec3; 8], idk)
faces := [Face].(Face.(0, 1, 2, WIREFRAME, .(255, 0, 0, 255), @as(^Surface, idk))) faces := [Face].(Face.(0, 1, 2, WIREFRAME, .(255, 0, 0, 255), null))
d := @as(int, 1) d := @as(int, 1)
@ -55,11 +55,15 @@ example := fn(): void {
c := projected[face.c] c := projected[face.c]
if face.mode == WIREFRAME { if face.mode == WIREFRAME {
render.put_tri(screen, .(@intcast(0), @intcast(0)), .(@intcast(512), @intcast(128)), .(@intcast(256), @intcast(256)), face.color) //render.put_tri(screen, .(@intcast(0), @intcast(0)), .(@intcast(512), @intcast(128)), .(@intcast(256), @intcast(256)), .(255, 0, 0, 255))
//face.color)
} }
index += 1 index += 1
} }
//render.put_line(screen, .(1, 1), .(512, 128), .(255, 0, 0, 255))
//render.put_line(screen, .(256, 256), .(512, 128), .(255, 0, 0, 255))
render.put_tri(screen, .(1, 1), .(512, 128), .(256, 256), .(255, 0, 0, 255))
//render.put_filled_tri(screen, .(128, 256), .(512, 512), .(10, 10), .(255, 255, 255, 255)) //render.put_filled_tri(screen, .(128, 256), .(512, 512), .(10, 10), .(255, 255, 255, 255))
render.sync(screen) render.sync(screen)

View file

@ -26,8 +26,8 @@ resolution = "1600x900x24"
# [boot.limine.ableos.modules.diskio_driver] # [boot.limine.ableos.modules.diskio_driver]
# path = "boot:///diskio_driver.hbf" # path = "boot:///diskio_driver.hbf"
[boot.limine.ableos.modules.render_example] # [boot.limine.ableos.modules.render_example]
path = "boot:///render_example.hbf" # path = "boot:///render_example.hbf"
# [boot.limine.ableos.modules.serial_driver] # [boot.limine.ableos.modules.serial_driver]
# path = "boot:///serial_driver.hbf" # path = "boot:///serial_driver.hbf"
@ -56,8 +56,8 @@ path = "boot:///render_example.hbf"
# [boot.limine.ableos.modules.pumpkin_print] # [boot.limine.ableos.modules.pumpkin_print]
# path = "boot:///pumpkin_print.hbf" # path = "boot:///pumpkin_print.hbf"
# [boot.limine.ableos.modules.mouse_driver] [boot.limine.ableos.modules.mouse_driver]
# path = "boot:///mouse_driver.hbf" path = "boot:///mouse_driver.hbf"
# [boot.limine.ableos.modules.mouse_test] # [boot.limine.ableos.modules.mouse_test]
# path = "boot:///mouse_test.hbf" # path = "boot:///mouse_test.hbf"