What the hell this thing does?

Well, this is just a project for the Digital Techniques signature at Electronics Engineering in UTN FRBA, Argentina. This program initializes a x86 Intel compatible processor, thanks to Dario Alpern for the code of the initialization, and then runs some API initialization for running a minimalistic kernel with five tasks. Some system calls are implemented, pagination, keyboard handler and other features. I have to thank Diego Garcia for the code of the RTC too.

Enjoy it!

PS: I will translate the comments in code to English for better understanding of people and I will make a wiki for keeping things right.

Tools

This code has been done with:

Contenido de cada archivo:


System Calls

To create a system call follow these steps:

wrapper:      
    mov     eax, SYSTEM_API_SYSCALL_ID
    int     0x80
    ret

Initial task or Idle task

The idle task loads some kernel configurations and it just does a hlt and jmp $-1 to reduce the CPU power consumption when no other task has to use the processing time slice. It must be set with priority 1.