v86 icon indicating copy to clipboard operation
v86 copied to clipboard

Mojo OS: support above 4-bit color

Open SuperMaxusa opened this issue 3 months ago • 2 comments

ISO: https://archiveos.org/mojoos/

Current problems:

  • kernel panic: Timer: CMOS memory is not valid fixed in #1395
  • most programs doesn't work (unimplemented ATAPI command READ(12): 0xA8) fixed in #1396
  • video modes above 4-bit color are not available (bga driver: error initializing)

SuperMaxusa avatar Aug 31 '25 17:08 SuperMaxusa

The GUI works after running puritygui, but only in grayscale mode:

mojo-v86

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?

SuperMaxusa avatar Aug 31 '25 21:08 SuperMaxusa

Here's the grayscale version: https://copy.sh/v86/?profile=mojo

copy avatar Sep 13 '25 23:09 copy