20 lines
585 B
Zig
20 lines
585 B
Zig
const std = @import("std");
|
|
|
|
extern fn console_write(ptr: [*]const u8, len: usize) void;
|
|
|
|
// Embed the Subject Zero binary
|
|
export var subject_bin = @embedFile("subject.bin");
|
|
|
|
export fn launch_subject() void {
|
|
const target_addr: usize = 0x84000000;
|
|
const dest = @as([*]u8, @ptrFromInt(target_addr));
|
|
|
|
console_write("[Loader] Copying Subject Zero to 0x84000000...\n", 48);
|
|
@memcpy(dest[0..subject_bin.len], subject_bin);
|
|
|
|
console_write("[Loader] Jumping to Subject Zero...\n", 36);
|
|
|
|
const entry = @as(*const fn () void, @ptrFromInt(target_addr));
|
|
entry();
|
|
}
|