diff --git a/src/bin/init/main.c b/src/bin/init/main.c index 4e069c2..9ad3bf4 100755 --- a/src/bin/init/main.c +++ b/src/bin/init/main.c @@ -46,7 +46,7 @@ printf("Initializing system.\n"); exec("shell"); while(1) { - printf("Testing 123\n"); + //printf("Testing 123\n"); } exit(1); } \ No newline at end of file diff --git a/src/sys/boot/bootsec.asm b/src/sys/boot/bootsec.asm index fb25b58..f0d8c47 100755 --- a/src/sys/boot/bootsec.asm +++ b/src/sys/boot/bootsec.asm @@ -156,18 +156,18 @@ ; Re-enter protected mode ! A20 is already enabled -mov ax, 0x4f0a -xor bx,bx -int 0x10 -xor eax,eax -mov ax,es -mov bx,di -xor dx,dx -mov es,dx -mov si, 0x3000 -mov [es:si],ax -mov [es:si+4],bx -mov [es:si+8],cx +;mov ax, 0x4f0a +;xor bx,bx +;int 0x10 +;xor eax,eax +;mov ax,es +;mov bx,di +;xor dx,dx +;mov es,dx +;mov si, 0x3000 +;mov [es:si],ax +;mov [es:si+4],bx +;mov [es:si+8],cx cli ; No interrupts please at all lgdt [gdtinfo] mov ecx, cr0 diff --git a/src/sys/init/main.c b/src/sys/init/main.c index b968699..f58e1df 100755 --- a/src/sys/init/main.c +++ b/src/sys/init/main.c @@ -74,9 +74,6 @@ } int main() { - int i = 0; - uShort *vesaInfo = (uShort*) 0x3000; - uChar *vesaData; clearScreen(); outputVersion(); //Display Version Info init8259(); //Initialize PIC @@ -87,11 +84,6 @@ initScheduler(); //Initialize Scheduler initFloppy(); //Initialize Floppy Controller initUbixFS(); - /* kprintf("[%i][%i][%i][%i][%i][%i]\n",vesaInfo[0],vesaInfo[1],vesaInfo[2],vesaInfo[3],vesaInfo[4],vesaInfo[5]); - vesaData = (uChar *) (vesaInfo[0]*16)+vesaInfo[3]; - for (i=0;iid >= 0) && (_current->id <= numTasks)) { - pd = (long *)_current->tss.cr3; + pd = (uLong *)_current->tss.cr3; } else { - pd = (long *)pageDirectory; + pd = (uLong *)pageDirectory; } - remapPage((long)pd,(long)pd); - taskList[pid].tss.cr3 = (long)pdn; + taskList[pid].tss.cr3 = (uLong)pdn; pdn[0] = pd[0]; - kprintf("a"); for (i=768;i<1024;i++) { pdn[i] = pd[i]; } + if (pid > 1) { pdn = pageDirectory; } kprintf("[%i][%i][%i]\n",pageDirectory,pd,fdTable[0].status); _current = &taskList[pid]; + kprintf("Pd: [%i][%i]\n",*pdn,pdn); asm( "movl %0,%%eax \n" "movl %%eax,%%cr3 \n" : : "d" ((uLong *)(pdn)) ); + kprintf("Pd: [%i][%i]\n",*pdn,pdn); kprintf("[%i][%i][%i]\n",pageDirectory,pd,fdTable[0].status); - if (pid > 1) { while(1); } - //if (_current->id > 1) { while (1); } fd = fopen(file,1); + //if (_current->id > 1) { while (1); } for (i=0;feof(fd) == 0;i++) { binarySpace[i] = fgetc(fd); } @@ -104,11 +101,13 @@ taskList[pid].tss.ldt = 0x18; taskList[pid].tss.trace_bitmap = 0x80000000; taskList[pid].status = RUNABLE; + kprintf("Done"); asm( "movl %0,%%eax \n" "movl %%eax,%%cr3 \n" : : "d" ((uLong *)(pd)) ); + kprintf("!\n"); } void execThread(void (* tproc)(void),int stack,char *descr) { diff --git a/src/sys/kernel/idlethread.c b/src/sys/kernel/idlethread.c index 74ae2f6..f9b91f1 100755 --- a/src/sys/kernel/idlethread.c +++ b/src/sys/kernel/idlethread.c @@ -33,7 +33,7 @@ while (1) { testBuf[0] = 'c'; testBuf[1] = printColor; - kprintf("^"); + //kprintf("^"); //checkTasks(); /* Looks for run away proccesses and kills thems */ } } diff --git a/src/sys/kernel/idt.c b/src/sys/kernel/idt.c index 3e3f885..adc02dd 100755 --- a/src/sys/kernel/idt.c +++ b/src/sys/kernel/idt.c @@ -57,7 +57,7 @@ setVector(_int4,4,dPresent + dInt + dDpl3); setVector(_int5,5,dPresent + dInt + dDpl3); setVector(_int6,6,dPresent + dInt + dDpl3); - setVector(_sysCall,128,dPresent + dInt + dDpl3); + setVector(_sysCall,128,dPresent + dInt + dDpl1); } /* Sets Up IDT Vector */