ableos/sysdata/programs/time_driver/src/main.hb

65 lines
1.1 KiB
Plaintext
Raw Normal View History

stn := @use("../../../libraries/stn/src/lib.hb");
log := stn.log;
mem := stn.memory;
page := 0
main := fn(): void {
page += mem.request_page(1);
port_str := "\0\{46}\0";
a := @eca(u8, 3, 3, port_str, 2);
log.debug(&a);
n := 5000000;
loop {
if n == 0 break;
n -= 1;
stack_reclamation_edge_case := 0;
}
td := display_int(100);
log.debug(td);
return;
}
display_int := fn(num: int): ^u8 {
p := page;
i := 0;
if num == 0 {
set(p, 48);
return p;
}
loop {
if num == 0 break;
set(p + i, num % 10 + 48);
num /= 10;
i += 1;
}
reverse(p);
//null terminate
set(p + i, 0);
return p;
}
reverse := fn(s: ^u8): void {
//reverse a string, don't remove digits
len := 0;
loop {
if *(s + len) == 0 break;
len += 1;
}
i := 0;
j := len - 1;
loop {
if i >= j break;
temp := *(s + i);
*(s + i) = *(s + j);
*(s + j) = temp;
i += 1;
j -= 1;
}
return;
}
set := fn(change: ^int, new: int): void {
*(change) = new;
return;
}