diff --git a/src/sys/kernel/exec.c b/src/sys/kernel/exec.c index 1e6f75e..9a4318f 100644 --- a/src/sys/kernel/exec.c +++ b/src/sys/kernel/exec.c @@ -405,23 +405,23 @@ kfree(binaryHeader); kfree(programHeader); - /* Jump To Start Of New Binary */ - asm volatile( - "pusha \n" - "pushf \n" - "pushl $0x2B \n" - "pushl %0 \n" - "pushl %1 \n" - "pushl %%eax \n" - /* "call *%0 \n" */ - "iret\n" - : - : "g" (eStart),"g" (argv),"a" (argc) - ); + /* Adjust iframe */ + tmp = (uInt32)(_current->tss.esp0)-20; + tmp[0] = eStart; + tmp[3] = 0x5DD000-12; + tmp = 0x5DD000 - 12; + tmp[0] = argc; + tmp[1] = argv; + tmp[2] = 0x0; + + return; } /*** $Log$ + Revision 1.45 2004/07/22 17:32:25 reddawg + I broke it hopefully + Revision 1.44 2004/07/20 22:29:55 reddawg assert: remade assert diff --git a/src/sys/sys/video.c b/src/sys/sys/video.c index bd8149f..24bf91c 100644 --- a/src/sys/sys/video.c +++ b/src/sys/sys/video.c @@ -102,26 +102,24 @@ } /* Clears The Screen */ -void -clearScreen() -{ - unsigned int i = 0x0; - spinLock(&videoSpinLock); - for (i = 0x0; i < (80 * 25); i++) { /* Fill the screen with */ - /* background Color */ +void clearScreen() { + short i = 0x0; + + for (i = 0x0; i < (80 * 25); i++) { videoBuffer[i * 2] = 0x20; videoBuffer[i * 2 + 1] = defaultColor; - } /* for */ - - outportByte(0x3D4, 0x0f); /* Set the cursor to the */ - outportByte(0x3D5, 0); /* upper-left corner of the */ - outportByte(0x3D4, 0x0e); /* screen */ + } + outportByte(0x3D4, 0x0f); outportByte(0x3D5, 0); - spinUnlock(&videoSpinLock); -} /* clearScreen() */ + outportByte(0x3D4, 0x0e); + outportByte(0x3D5, 0); + } /*** $Log$ + Revision 1.6 2004/07/19 01:40:55 reddawg + video: added spinLock protection + Revision 1.5 2004/07/16 04:06:32 reddawg Tune ups this stuff should of been taken care of months ago