This repository was archived by the owner on Feb 17, 2026. It is now read-only.
MichalOS 3.0 Beta
FINAL RELEASE WITH PS/2 MOUSE SUPPORT!
- Code cleanup:
- MichalOS has been rewritten to real mode. The "32-bit" unreal mode is not used anymore. It caused more problems (crashes, unnecessary bugs) then it solved. These changes had to be made:
- No VESA support. We simply don't have enough RAM to use it anymore in the same way we used it before, which means that all SVGA demos (MOUSEVGA.APP, STARFLD.APP) had to be removed. However, alternate functions for VESA support are being planned. Non-VESA graphics functions are intact.
- All VESA-related system calls have been removed and are illegal to use now.
- All ACPI functionality had to be removed, since the tables are outside of our reach.
- Memory Editor can now only address with 20 bit pointers.
- It is still possible to work with 32-bit numbers though, so apps like Calculator are not affected in any way.
- A Makefile is now used for building. Legacy Windows build scripts have been patched and moved to "windows_scripts".
- EGA software text drawing removed. It was never used anyway.
- Functionality for multiple drives removed. It didn't even work properly anyway and didn't serve any purpose.
- "Test AdLib" in the Settings app removed
- MichalOS has been rewritten to real mode. The "32-bit" unreal mode is not used anymore. It caused more problems (crashes, unnecessary bugs) then it solved. These changes had to be made:
- The "Debug tools" menu has been updated and renamed to "Other stuff".
- RDTSC.APP - now updates every second
- Music Player:
- can be now launched from the Terminal and passed the filename
- now has a "Polyphonic piano" and "Play duo" mode - uses the AdLib device (see below)
- The screensaver is no longer tied to the number of CPU interrupts, the timer is now used instead => more precise
- Added some new example songs
- Added system calls for controlling the timer - no need to "out 40h, al" manually, now:
- you can pass the speed to "os_attach_app_timer" directly
- "os_return_app_timer" to also resets the timer to 0 (18.2 Hz)
- you can use "os_set_timer_speed" to change the speed while the timer is attached
- New Adlib functions
- os_start_adlib & os_stop_adlib: starts/stops the driver (os_start_adlib has to be called before any Adlib writes!)
- There are now 2 Adlib drivers: standard Adlib (ports 388h, 389h) and PC-speaker PWM emulation (square-wave only)
- Added "os_putchar" system call - does exactly the same thing as in C
- The kernel and all programs are no longer segment-dependant => the OS can be loaded anywhere in RAM instead of the 1000h segment and it will work