54 lines
869 B
C
54 lines
869 B
C
//kernel.c
|
|
//08/13/03 Josh Holtrop
|
|
//Holtrop's Operating System
|
|
|
|
#include "k_defines.h"
|
|
#include "functions.h"
|
|
#include "video.h"
|
|
|
|
void isr(dword num);
|
|
void k_init();
|
|
|
|
#include "functions.c"
|
|
#include "video.c"
|
|
|
|
dword timer = 0;
|
|
|
|
void k_init()
|
|
{
|
|
remap_pics(0x20, 0x28);
|
|
//set timer : 2e9c = 100hz
|
|
outportb(0x43, 0x34);
|
|
outportb(0x40, 0x9c); //lsb
|
|
outportb(0x40, 0x2e); //msb
|
|
enable_ints();
|
|
video_init((ModeInfoBlock *) 0x90306);
|
|
int a;
|
|
for (a=0;a<768;a+=10)
|
|
{
|
|
video_horiz(a, 2, 1021, 0);
|
|
video_vert(a, 2, 765, 0x0000FFFF);
|
|
}
|
|
video_rect(10, 10, 100, 100, 0x00FFFFFF);
|
|
video_rectf(11, 11, 99, 99, 0x00FFFF00);
|
|
}
|
|
|
|
void isr(dword num)
|
|
{
|
|
if (num == 0x20)
|
|
{
|
|
timer++;
|
|
video_rect(20,20,600,600,timer);
|
|
(*(char*)0xB8000)++;
|
|
*(char*)0xB8001 = 7;
|
|
eoi();
|
|
}
|
|
//if (num == 0x21)
|
|
// restart();
|
|
}
|
|
|
|
|
|
|
|
|
|
|