Releases: oculometric/novos
v0.04 Interrupts and Basic Keyboard Chitchat
this update contains:
- numerous fixes to small things, including fixing allocation and array bugs
- implementation of interrupts, IDT, and configurable ISRs from C++
- PIC configuration and remapping
- simple (incomplete) keyboard IO, driven by interrupts
- GUI text rendering, text in panel names and a dedicated text panel
- increased the stack size from
0x200
to0x800
bytes, due to stack overflows causing problems during interrupts - bitmap image encoding/packing into the kernel binary
i also updated the naming scheme in the code to reflect a more modern-feeling style.
the star of the show is the fact that for the first time, with the help of interrupts, keyboard input is now supported! yaaaay! give it a try with qemu
.
v0.03 3D wireframe rendering, streams, and strings
this update contains:
- several demo UI panels, including a star renderer, and memory manager visualiser
- 3D wireframe rendering of arbitrary 3D models
- loading of 3D models from .binmesh files, and pre-compilation conversion into binmesh format from obj
- 4D vector maths, and 2/3/4D matrix maths
- internal mesh format
nov_string
s, dynamic string functionality, built onnov_array
- much larger upper limit for things loaded from disk by the bootloader
nov_stream
s, making it easy to pass data onto other objects with the C++-styletarget << data
format- serial output now uses streams so you can easily do
com_1 << "Hello" << stream::endl
- stream support for conversion to
char*
s for text output:uintX_t
(as hex, dec, bin),intX_t
,float
,nov_vector2
,nov_vector3
,nov_vector4
,nov_matrix2_2
,nov_matrix3_3
,nov_matrix4_4
, and any more that i feel like implementing a<<
operator for - improved project structure
- assembly implementation of
sinf
,cosf
,tanf
,sqrt
, etc. - lots and lots of small bugfixes, including with memory management
nov_array
,nov_gui_manager
if you have qemu-system-x86_64
or qemu-system-i386
installed, i highly recommend giving this one a try! 3D and 2D graphics demo. i have again, yet to start properly documenting stuff beyond reasonably comprehensive commenting.
v0.02 GUI/layout demo
this release contains, among other things:
- memory management,
malloc()
andfree()
- dynamic arrays with
nov_array<>
, similar tostd::vector<>
- some graphics utils, box drawing etc
- a shiny GUI system of containers and panels for graphical layouting. a demo of this runs when you launch the binary with qemu
- random number generation using xoroshiro128+ (was this in the last release? i don't know)
i'll start fully documenting (diagrams and all) this stuff soon.
https://github.com/oculometric/novos/assets/32058792/0d4dee0c-b82b-4709-a05a-0933e0d81dd9
https://github.com/oculometric/novos/assets/32058792/a6f2bfb6-7fda-421d-9dc8-112b775ba4bf
v0.01
This is a demo/preview release. At this stage, we boot, jump into 32-bit protected mode, learn about memory, set the video mode and draw some pretty colours.