Because the calculation of the byte offset within the framebuffer was
wrong, the framebuffer could only be written to on the first line.
That is now fixed.
The function which is added with this commit writes a caller-supplied
hexadecimal string of a caller-supplied length to the display, nibble
by nibble, leaving the background black and making the text white.
The error in the GDT caused the whole memory space to be offset by
128B or 256B (It's not entirely sure which one of those). This was
only made visible by later changes, but now it's fixed.
This commit changes the final jump from the bootsector to the second
stage (the partition which gets loaded completely) to be a near jump.
That's important to keep consistency with protected mode.
This commit adds a .gitignore file which includes a few common
binary file extensions, dumps, the build-script's working folder,
a private folder for convenience and an ignore for the VSCode
editor's configuration folder.
This commit deletes the gdt.asm for the i386 architecture as it was
quite buggy in that state. In a short while, the real GDT code which
works is going to be committed.
The private folder is for convenience, for putting some files away and
for own TODO lists; generally for data which is related to the project
but shouldn't be committed.
The build folder contains intermediate/object files for building the
different stages; it should be ignored explicitly, even though the
file ending of all files marks the folder as ignored implicitly.
This commit adds a README.md file for the loader partition in the i386
architecture version. The README contains basic information about what
the loader partition has to do and to some degree on how it should be
accomplishing those tasks.
It is just general information which can be useful to have for looking
information up after some time.
This commit adds a build script for the loader partition. Currently,
it is very simplistic, but it works for assembling the entry.asm,
which in turn includes all other files.
This commit adds the entry point for the second stage of the loader.
It currently doesn't contain a lot of code, but it will have to expand
in the next bit of time.
This commit adds the well known primitive memory functions:
- Copy Memory
- Compare Memory for being equal
- Set Memory to a value
It also adds a math utility file at the according location.
This commit adds a check for whether the A20 line is usable; checking
whether more than one megabyte of RAM can be used. If it isn't usable,
it currently isn't activated, but rather, the boot process is stopped.
This commit adds a basic .gitignore which only contains machine code
file endings; files which shouldn't be committed as they're better to
be distributed in other ways.