bios.ha (769B)
1 use os; 2 use io; 3 use fmt; 4 use util; 5 6 export type BIOS = struct { 7 data: []u8, 8 }; 9 10 export fn new() (io::error | BIOS) = { 11 const file = os::open("roms/scph1001.bin")!; 12 defer io::close(file)!; 13 14 let buffer = io::drain(file)!; 15 16 let b = BIOS { 17 data = buffer, 18 }; 19 20 return b; 21 }; 22 23 export fn load32(bios: BIOS, o: u32) u32 = { 24 let off = o; 25 26 //fmt::printfln("{:.02X}{:.02X} {:.02X}{:.02X}", bios.data[off], bios.data[off + 1], bios.data[2 + off], bios.data[3 +off])!; 27 28 let b0 = bios.data[off + 0]: u32; 29 let b1 = bios.data[off + 1]: u32; 30 let b2 = bios.data[off + 2]: u32; 31 let b3 = bios.data[off + 3]: u32; 32 33 let res = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24); 34 35 return res; 36 37 }; 38 39 export fn load8(bios: BIOS, o: u32) u8 = { 40 let off = o; 41 return bios.data[off: size]; 42 };