<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pub/users/cem/toxicos.git/src/kernel.asm, branch master</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='http://toxiclabs.cc/cgit.cgi/pub/users/cem/toxicos.git/'/>
<entry>
<title>Enable interrupts only after IDT is set</title>
<updated>2025-09-14T13:11:20+00:00</updated>
<author>
<name>Carlos Maiolino</name>
<email>cem@toxiclabs.cc</email>
</author>
<published>2025-09-14T13:11:20+00:00</published>
<link rel='alternate' type='text/html' href='http://toxiclabs.cc/cgit.cgi/pub/users/cem/toxicos.git/commit/?id=9c7a059f64c86e5026cbbc5c6ae2f48be0f56c0c'/>
<id>9c7a059f64c86e5026cbbc5c6ae2f48be0f56c0c</id>
<content type='text'>
So far we've been playing a dangerous game... We enabled interrupts
before we actually had the interrupt descriptor table setup.

Fix this so we prevent IRQs to fire before the table is initialized
and attempt to run garbage instead of code

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So far we've been playing a dangerous game... We enabled interrupts
before we actually had the interrupt descriptor table setup.

Fix this so we prevent IRQs to fire before the table is initialized
and attempt to run garbage instead of code

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Setup interrupt handling</title>
<updated>2025-08-01T19:03:16+00:00</updated>
<author>
<name>Carlos Maiolino</name>
<email>cem@toxiclabs.cc</email>
</author>
<published>2025-08-01T19:03:16+00:00</published>
<link rel='alternate' type='text/html' href='http://toxiclabs.cc/cgit.cgi/pub/users/cem/toxicos.git/commit/?id=2725b95a1f78d2feac553d37252f2e560c2f9aac'/>
<id>2725b95a1f78d2feac553d37252f2e560c2f9aac</id>
<content type='text'>
Remap master PIC to IOAddress 0x20 to avoid collisions with CPU
exceptions.

Setup a default interrupt handler and map all interrupts to this handler
by default.

Setup a Keyboard interrupt handler for testing purposes

Wire everything up in the Makefile

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remap master PIC to IOAddress 0x20 to avoid collisions with CPU
exceptions.

Setup a default interrupt handler and map all interrupts to this handler
by default.

Setup a Keyboard interrupt handler for testing purposes

Wire everything up in the Makefile

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add kernel.c</title>
<updated>2025-07-20T12:41:57+00:00</updated>
<author>
<name>Carlos Maiolino</name>
<email>cem@toxiclabs.cc</email>
</author>
<published>2025-07-20T12:38:22+00:00</published>
<link rel='alternate' type='text/html' href='http://toxiclabs.cc/cgit.cgi/pub/users/cem/toxicos.git/commit/?id=c6882778696fe40b799887d35ec3f4b48792abaf'/>
<id>c6882778696fe40b799887d35ec3f4b48792abaf</id>
<content type='text'>
Create the kernel.c file and its initial start_kernel(), and
jump to it from the ASM.

Also setup the build system to actually build it

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Create the kernel.c file and its initial start_kernel(), and
jump to it from the ASM.

Also setup the build system to actually build it

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Force alignment of kerne code.</title>
<updated>2025-07-20T11:53:24+00:00</updated>
<author>
<name>Carlos Maiolino</name>
<email>cem@toxiclabs.cc</email>
</author>
<published>2025-07-20T11:53:24+00:00</published>
<link rel='alternate' type='text/html' href='http://toxiclabs.cc/cgit.cgi/pub/users/cem/toxicos.git/commit/?id=49776b17697afb8f9b4f7c5689d16a44633aed48'/>
<id>49776b17697afb8f9b4f7c5689d16a44633aed48</id>
<content type='text'>
It should be aligned to 16-bits IIRC, forcing the kernel.asm to be
alined to a 512 byte boundary should suffice

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It should be aligned to 16-bits IIRC, forcing the kernel.asm to be
alined to a 512 byte boundary should suffice

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Start writing the kernel and add a linker script</title>
<updated>2025-07-17T17:20:28+00:00</updated>
<author>
<name>Carlos Maiolino</name>
<email>cem@toxiclabs.cc</email>
</author>
<published>2025-07-17T17:20:28+00:00</published>
<link rel='alternate' type='text/html' href='http://toxiclabs.cc/cgit.cgi/pub/users/cem/toxicos.git/commit/?id=d8392002629bc97c05ca82961c7ab3439ed7248e'/>
<id>d8392002629bc97c05ca82961c7ab3439ed7248e</id>
<content type='text'>
Move the code unders [BITS 32] label to its own file to be loaded as a
kernel by the boot loader.

Add a linker script to link the bootloader and the kernel in a single
binary file.

Add a build script to make it easier to use the cross compiler

Update the Makefile to build everything and pack it into the os.bin

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the code unders [BITS 32] label to its own file to be loaded as a
kernel by the boot loader.

Add a linker script to link the bootloader and the kernel in a single
binary file.

Add a build script to make it easier to use the cross compiler

Update the Makefile to build everything and pack it into the os.bin

Signed-off-by: Carlos Maiolino &lt;cem@toxiclabs.cc&gt;
</pre>
</div>
</content>
</entry>
</feed>
