Add UVM32_SYSCALL_RAND to get a "true" random number from the host, as I want to play zigtris and not have it be the same every time.

This commit is contained in:
Toby Jaffey 2025-12-17 20:19:31 +00:00
parent 3d83844d5c
commit d780c4e69d
6 changed files with 18 additions and 1 deletions

View file

@ -50,6 +50,7 @@ static uint32_t syscall(uint32_t id, uint32_t param1, uint32_t param2) {
#define printbuf(x, y) syscall_cast(UVM32_SYSCALL_PRINTBUF, x, y)
#define render(x, y) syscall_cast(UVM32_SYSCALL_RENDER, x, y)
#define getkey() syscall_cast(UVM32_SYSCALL_GETKEY, 0, 0)
#define rand() syscall_cast(UVM32_SYSCALL_RAND, 0, 0)
extern char _estack;

View file

@ -10,7 +10,7 @@ export fn main() void {
var gameRunning = true;
var lastUpdate:u32 = 0;
zigtris.gamesetup(console, uvm.millis()) catch |err| {
zigtris.gamesetup(console, uvm.rand()) catch |err| {
_ = console.print("err {any}\n", .{err}) catch 0;
_ = console.flush() catch 0;
return;

View file

@ -27,6 +27,10 @@ pub inline fn millis() u32 {
return syscall(uvm32.UVM32_SYSCALL_MILLIS, 0, 0);
}
pub inline fn rand() u32 {
return syscall(uvm32.UVM32_SYSCALL_RAND, 0, 0);
}
// dupeZ would be better, but want to avoid using an allocator
// this is of course, unsafe...
var termination_buf:[128]u8 = undefined;