diff --git a/boot.c b/boot.c index df4154e..fcd173b 100644 --- a/boot.c +++ b/boot.c @@ -1,11 +1,28 @@ +#define DEVICE16 0x81080000 +#define DEVICE16END 0x810FFFFF +#define VRAM 0x80000000 +#define VRAMEND 0x80FFFFFF +#define BIOS 0xFFC00000 +#define BIOSEND 0xFFFFFFFF void begin(void) { - unsigned char* addr = 0x7FFFFFFF; - unsigned char* noise = 0xFFEE0000; - while (addr < 0x80500000){ - *addr = *noise; + unsigned char* addr = VRAM; + unsigned char* noise = BIOS+0x2E0000; + while (addr < VRAMEND) + { + *addr = *noise; addr++; noise++; } - for(;;); + begin(); +} + +void clearscreen(void) +{ + unsigned char* addr = 0x80000000; + while (addr < 0x80FFFFFF) + { + *addr = 0; + addr++; + } } diff --git a/load.fs b/load.fs index f58dae9..fbed8af 100644 --- a/load.fs +++ b/load.fs @@ -1,6 +1,8 @@ ." Booting through OpenFirmware..." cr frame-buffer-adr + . : rep dup 0 do i . loop ; 500 rep + boot hd:,\boot\kernel.elf