Conversation
Add new input box Completely moved from GNU to NASM Updated NINA and VBE for binary bitmap drawing
This update introduces a fully functional storage subsystem and dynamic driver architecture. Major Changes: - Storage: Implemented ATA PIO driver for disk access. - Filesystem: Added full FAT32 support (File/Directory reading). - Module Loader: Implemented ELF object linking and relocation for dynamic drivers. - Driver System: Added auto-detection for PCI devices (BGA) to load matching drivers from disk. - Graphics: Added BGA driver for high-resolution support. - GUI: Removed hardcoded bitmaps; assets are now loaded from the HDD. Desktop now adapts to dynamic resolutions. - Maintenance: Normalized all source files to LF line endings and fixed hardcoded dimensions.
Added an image for the Dynamic BGA Graphics feature in the README.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This Pull Request introduces major architectural improvements to the kernel, moving from a static setup to a dynamic, file-based system.
Summary of Changes:
Storage Subsystem: Implemented ATA PIO driver and full FAT32 filesystem support (Read/Write/Streams).
Dynamic Linking: Added an ELF Module Loader capable of relocating and linking drivers at runtime.
Graphics: Added a dedicated BGA driver (loaded dynamically via PCI detection) for high-resolution support.
Assets: Removed hardcoded bitmaps. The OS now loads UI assets (wallpapers, BMPs) directly from the HDD.
Code Cleanup: Normalized all source files to LF line endings and fixed hardcoded GUI dimensions.
Key Features
ATA Driver: Read/Write support for IDE/PATA drives.
FAT32: Directory parsing and file reading.
Module Loader: Custom .sys driver loading with symbol resolution.
Hardware Detection: PCI scanning to auto-load the correct graphics driver.
Responsive Desktop: GUI now adapts to the resolution provided by the loaded driver.
Testing
QEMU and VirtualBox: Verified booting from HDD.vdi.
Filesystem: Successfully read driver files and bitmaps from the disk.
Graphics: Confirmed resolution switch to 1600x900 upon loading the BGA module.
Build: Verified make run and make hdd commands work on Linux/WSL.