v86
v86 copied to clipboard
Mojo OS: support above 4-bit color
ISO: https://archiveos.org/mojoos/
Current problems:
fixed in #1395kernel panic: Timer: CMOS memory is not validmost programs doesn't work (unimplemented ATAPI commandfixed in #1396READ(12):0xA8)- video modes above 4-bit color are not available (
bga driver: error initializing)
The GUI works after running puritygui, but only in grayscale mode:
Also I noticed a strange thing: the debug log in v86 (from Mojo OS) is noisier than in QEMU.
For example, in v86 this spams syscall (and sometimes irq) messages every second, all the time:
v86 serial log
Booting Mojo OS
Initializing kernel:
Kernel console
CPU startup
mem map: 0x0000000000000000, 0x000000000009fc00, 1
mem map: 0x000000000009fc00, 0x0000000000000400, 2
mem map: 0x00000000000f0000, 0x0000000000010000, 2
mem map: 0x0000000000100000, 0x0000000007f00000, 1
mem map: 0x00000000fffc0000, 0x0000000000040000, 2
Multiboot data parsed
Memory handling initialized
CPU initialized
ACPI handling initialized
PCI handling initialized
Interrupt handling initialized
Timer handling initialized
Process handling initialized
Loading boot modules
irq => exit time: 0xd31fa0ff,00000002, enter time: 0xd31fa0ff,00000002, irq: 8
syscall => exit time: 0xd33e257f,00000002, enter time: 0xd33e257f,00000002
syscall => exit time: 0xd35ca9ff,00000002, enter time: 0xd35ca9ff,00000002
syscall => exit time: 0xd38a70bf,00000002, enter time: 0xd38a70bf,00000002
syscall => exit time: 0xd3d6bbff,00000002, enter time: 0xd3d6bbff,00000002
Starting virtual file system [2]
syscall => exit time: 0xd413c4ff,00000002, enter time: 0xd413c4ff,00000002
syscall => exit time: 0xd432497f,00000002, enter time: 0xd432497f,00000002
syscall => exit time: 0xd450cdff,00000002, enter time: 0xd450cdff,00000002
syscall => exit time: 0xd5eccabf,00000002, enter time: 0xd5eccabf,00000002
Starting boot file system [3]
syscall => exit time: 0xd61a917f,00000002, enter time: 0xd61a917f,00000002
syscall => exit time: 0xd648583f,00000002, enter time: 0xd648583f,00000002
syscall => exit time: 0xd6761eff,00000002, enter time: 0xd6761eff,00000002
syscall => exit time: 0xd6a3e5bf,00000002, enter time: 0xd6a3e5bf,00000002
Mounting volume: /volumes/boot
syscall => exit time: 0xd6c26a3f,00000002, enter time: 0xd6c26a3f,00000002
syscall => exit time: 0xd7c5d07f,00000002, enter time: 0xd7c5d07f,00000002
syscall => exit time: 0xd7f3973f,00000002, enter time: 0xd7f3973f,00000002
syscall => exit time: 0xd84f24bf,00000002, enter time: 0xd84f24bf,00000002
syscall => exit time: 0xd87ceb7f,00000002, enter time: 0xd87ceb7f,00000002
syscall => exit time: 0xd9063fbf,00000002, enter time: 0xd9063fbf,00000002
syscall => exit time: 0xd934067f,00000002, enter time: 0xd934067f,00000002
syscall => exit time: 0xd94348bf,00000002, enter time: 0xd94348bf,00000002
syscall => exit time: 0xd961cd3f,00000002, enter time: 0xd961cd3f,00000002
syscall => exit time: 0xd98f93ff,00000002, enter time: 0xd98f93ff,00000002
syscall => exit time: 0xd98f93ff,00000002, enter time: 0xd98f93ff,00000002
syscall => exit time: 0xd9ae187f,00000002, enter time: 0xd9ae187f,00000002
<...>
While in QEMU, after a full startup, silence sets in:
QEMU serial log
Initializing kernel:
■ Kernel console
■ CPU startup
mem map: 0x0000000000000000, 0x000000000009fc00, 1
mem map: 0x000000000009fc00, 0x0000000000000400, 2
mem map: 0x00000000000f0000, 0x0000000000010000, 2
mem map: 0x0000000000100000, 0x0000000007f00000, 1
mem map: 0x00000000fffc0000, 0x0000000000040000, 2
■ Multiboot data parsed
■ Memory handling initialized
■ CPU initialized
■ ACPI handling initialized
■ PCI handling initialized
■ Interrupt handling initialized
■ Timer handling initialized
■ Process handling initialized
■ Loading boot modules
Starting virtual file system [2]
Starting boot file system [3]
Mounting volume: /volumes/boot
Starting PCI bus driver [4]
Starting VGA device driver [5]
Starting PS/2 device driver [6]
Starting terminal driver [7]
Starting harddisk device driver [8]
Starting BGA device driver [9]
Starting FAT file system [10]
Starting ISO 9660 file system [11]
Mounting volume: /volumes/mojo-data
===> Shell loaded - press ctrl+1 and ctrl+5 to switch between consoles <===
I have no idea why this is happening, maybe some drivers on init are causing it?
Here's the grayscale version: https://copy.sh/v86/?profile=mojo