[????] BUILD 0.1.1.50 DATE 9/20/2011 AT 12:43 PM
==================================================== Mainly changed: Tasking + Implemented multitasking + Switching works ? TODO: Fix other not working tasking routines
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
Log created: 2011-09-20T09:23:01.130988600Z
|
||||||
|
Executable: C:\PROGRA~1\oracle\Virtua~1\VirtualBox.exe
|
||||||
|
Commandline: C:\PROGRA~1\oracle\Virtua~1\\virtualbox --startvm "lux Testbed" --dbg
|
||||||
|
fatal error in recompiler cpu: triple fault
|
||||||
@@ -118,3 +118,9 @@ int32 LogWrite (uint8 error, string device, string format, ...)
|
|||||||
ConsoleCursorUpdateHardware();
|
ConsoleCursorUpdateHardware();
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LogAssert (int32 condition, string file, int32 line)
|
||||||
|
{
|
||||||
|
if (!condition)
|
||||||
|
Panic("Assert", "Assertion failed in file %s line %d.\n", file, line);
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
volatile TimeSystem _internal_time;
|
volatile TimeSystem _internal_time;
|
||||||
uint32 _internal_frequency_hz;
|
uint32 _internal_frequency_hz;
|
||||||
|
|
||||||
extern void TaskSwitch ();
|
extern void TaskSwitch (_RegsStack32* regs);
|
||||||
|
|
||||||
void TimeHandler(_RegsStack32* UNUSED(r))
|
void TimeHandler(_RegsStack32* r)
|
||||||
{
|
{
|
||||||
if (_internal_frequency_hz == 0) return;
|
if (_internal_frequency_hz == 0) return;
|
||||||
|
|
||||||
@@ -19,5 +19,5 @@ void TimeHandler(_RegsStack32* UNUSED(r))
|
|||||||
_internal_time.Time-=MILISECONDS_IN_DAY;
|
_internal_time.Time-=MILISECONDS_IN_DAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskSwitch();
|
TaskSwitch(r);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -70,8 +70,8 @@ void CrashMessage(_RegsStack32 *r)
|
|||||||
ConsoleCursorGoto(c); ConsoleWrite("eflags=0x%x", r->eflags);
|
ConsoleCursorGoto(c); ConsoleWrite("eflags=0x%x", r->eflags);
|
||||||
ConsoleCursorGoto(d); ConsoleWrite("useresp=0x%x\n", r->useresp);
|
ConsoleCursorGoto(d); ConsoleWrite("useresp=0x%x\n", r->useresp);
|
||||||
|
|
||||||
ConsoleCursorGoto(a); ConsoleWrite("gs=0x%x", r->ss);
|
ConsoleCursorGoto(a); ConsoleWrite("ss=0x%x", r->ss);
|
||||||
ConsoleCursorGoto(b); ConsoleWrite("fs=0x%x", r->int_no);
|
ConsoleCursorGoto(b); ConsoleWrite("int_no=0x%x", r->int_no);
|
||||||
ConsoleCursorGoto(c); ConsoleWrite("err_code=0x%x", r->err_code);
|
ConsoleCursorGoto(c); ConsoleWrite("err_code=0x%x", r->err_code);
|
||||||
|
|
||||||
// Useful info about page fault
|
// Useful info about page fault
|
||||||
|
|||||||
@@ -65,10 +65,12 @@ extern void ConsoleMain();
|
|||||||
// External test routines
|
// External test routines
|
||||||
extern void SystemPanic();
|
extern void SystemPanic();
|
||||||
extern int32 LogWrite (uint8 error, string device, string format, ...);
|
extern int32 LogWrite (uint8 error, string device, string format, ...);
|
||||||
|
extern void LogAssert (int32 condition, string file, int32 line);
|
||||||
|
|
||||||
// Debug print
|
// Debug print
|
||||||
#define Log(dev, ...) { LogWrite(0, dev, __VA_ARGS__); }
|
#define Log(dev, ...) { LogWrite(0, dev, __VA_ARGS__); }
|
||||||
#define Error(dev, ...) { LogWrite(1, dev, __VA_ARGS__); }
|
#define Error(dev, ...) { LogWrite(1, dev, __VA_ARGS__); }
|
||||||
#define Panic(dev, ...) { LogWrite(1, dev, __VA_ARGS__); SystemPanic(); }
|
#define Panic(dev, ...) { LogWrite(1, dev, __VA_ARGS__); SystemPanic(); }
|
||||||
|
#define Assert(c) { LogAssert(c, __FILE__, __LINE__); }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -13,10 +13,11 @@
|
|||||||
|
|
||||||
typedef struct _Task {
|
typedef struct _Task {
|
||||||
uint32 Pid;
|
uint32 Pid;
|
||||||
uint32 Esp, Ebp; // Stack
|
uint32 Eip, Esp, Ebp;
|
||||||
PageDirectory* Pd;
|
PageDirectory* Pd;
|
||||||
uint32 StackLowerBase;
|
uint32 StackLowerBase;
|
||||||
uint32 StackUpperBase;
|
uint32 StackUpperBase;
|
||||||
|
uint8 Initialized;
|
||||||
struct _Task* Next;
|
struct _Task* Next;
|
||||||
} Task;
|
} Task;
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
#define OS_BUILD "0.1.1.19"
|
#define OS_BUILD "0.1.1.50"
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
; tasking.asm
|
||||||
|
bits 32
|
||||||
|
|
||||||
|
global TaskReadEip
|
||||||
|
TaskReadEip:
|
||||||
|
pop eax
|
||||||
|
jmp eax
|
||||||
@@ -7,27 +7,41 @@
|
|||||||
|
|
||||||
#include <tasking.h>
|
#include <tasking.h>
|
||||||
#include <memory-add.h>
|
#include <memory-add.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
Task* TaskList;
|
Task* TaskList;
|
||||||
Task* CurrentTask;
|
Task* CurrentTask;
|
||||||
uint32 NextPid = 1;
|
uint32 NextPid = 1;
|
||||||
|
|
||||||
void TaskSwitch ()
|
void TaskSwitch (_RegsStack32* regs)
|
||||||
{
|
{
|
||||||
|
MagicBreakpoint();
|
||||||
|
|
||||||
if (!TaskList) return;
|
if (!TaskList) return;
|
||||||
|
|
||||||
|
uint32 eip = TaskReadEip();
|
||||||
|
if (eip == 0xABCDEF) return;
|
||||||
|
|
||||||
// Save context
|
// Save context
|
||||||
asm volatile ("mov %%esp, %0" : "=r"(CurrentTask->Esp)); // Stack pointer
|
asm volatile ("mov %%esp, %0" : "=r"(CurrentTask->Esp));
|
||||||
asm volatile ("mov %%ebp, %0" : "=r"(CurrentTask->Ebp)); // Base pointer
|
asm volatile ("mov %%ebp, %0" : "=r"(CurrentTask->Ebp));
|
||||||
CurrentTask->Pd = CurrentDirectory;
|
CurrentTask->Eip = eip;
|
||||||
|
|
||||||
// Next task
|
// Next task
|
||||||
CurrentTask = (!CurrentTask->Next) ? TaskList : CurrentTask->Next ;
|
CurrentTask = (!CurrentTask->Next) ? TaskList : CurrentTask->Next ;
|
||||||
|
|
||||||
// Switch context
|
// Switch context
|
||||||
PagingSwitchDirectory(CurrentTask->Pd);
|
PagingSwitchDirectory(CurrentTask->Pd);
|
||||||
asm volatile ("mov %0, %%esp" : : "r"(CurrentTask->Esp)); // Stack pointer
|
|
||||||
asm volatile ("mov %0, %%ebp" : : "r"(CurrentTask->Ebp)); // Base pointer
|
// Prepare for jump
|
||||||
|
asm volatile (""
|
||||||
|
"mov %0, %%ebp; "
|
||||||
|
"mov %1, %%esp; "
|
||||||
|
"mov %2, %%ecx; "
|
||||||
|
"mov $0xABCDEF, %%eax; "
|
||||||
|
"jmp *%%ecx; "
|
||||||
|
: : "r"(CurrentTask->Ebp), "r"(CurrentTask->Esp), "r"(CurrentTask->Eip)
|
||||||
|
: "eax", "ecx");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback for new tasks
|
// Fallback for new tasks
|
||||||
@@ -64,25 +78,16 @@ void TaskCreate (void (*func)())
|
|||||||
t->Pid = NextPid++;
|
t->Pid = NextPid++;
|
||||||
|
|
||||||
// Set up stack
|
// Set up stack
|
||||||
*(uint32 *) (t->StackUpperBase - 0x4) = (uint32) TaskEnd; // Fallback function
|
/*memset(&t->Regs, 0, sizeof(_RegsStack32));
|
||||||
t->Ebp = (uint32) t->StackUpperBase;
|
t->Regs.ebp = t->StackUpperBase;
|
||||||
|
t->Regs.esp = (t->StackUpperBase - 0x4 - sizeof(_RegsStack32));
|
||||||
|
t->Regs.useresp = t->StackUpperBase - 0x4;
|
||||||
|
t->Regs.eip = (uint32) func;
|
||||||
|
*(uint32 *) (t->Regs.esp) = (uint32) TaskEnd; // Fallback function
|
||||||
|
t->Initialized = 0;
|
||||||
|
|
||||||
_RegsStack32* regs = (_RegsStack32*) (t->StackUpperBase - 0x4 - sizeof(_RegsStack32));
|
// Read eflags
|
||||||
|
asm volatile ("pushf; pop %0" : "=r"(t->Regs.eflags));*/
|
||||||
asm volatile ("mov %%ss, %0" : "=r" (regs->ss));
|
|
||||||
asm volatile ("mov %%cs, %0" : "=r" (regs->cs));
|
|
||||||
asm volatile ("pushf; pop %0" : "=r" (regs->eflags));
|
|
||||||
asm volatile ("mov %%esi, %0" : "=r" (regs->esi));
|
|
||||||
asm volatile ("mov %%edi, %0" : "=r" (regs->edi));
|
|
||||||
asm volatile ("mov %%gs, %0" : "=r" (regs->gs));
|
|
||||||
asm volatile ("mov %%fs, %0" : "=r" (regs->fs));
|
|
||||||
asm volatile ("mov %%es, %0" : "=r" (regs->es));
|
|
||||||
asm volatile ("mov %%ds, %0" : "=r" (regs->ds));
|
|
||||||
regs->eax = regs->ebx = regs->ecx = regs->edx = 0;
|
|
||||||
regs->eip = (uint32)func;
|
|
||||||
regs->useresp = t->StackUpperBase-0x4;
|
|
||||||
regs->esp = t->StackUpperBase - 40;
|
|
||||||
regs->ebp = t->Ebp = t->StackUpperBase;
|
|
||||||
|
|
||||||
// Add the task to the list
|
// Add the task to the list
|
||||||
Task* last = TaskList;
|
Task* last = TaskList;
|
||||||
@@ -96,7 +101,6 @@ void TaskInitialize()
|
|||||||
|
|
||||||
t->Pid = NextPid++;
|
t->Pid = NextPid++;
|
||||||
t->Pd = KernelDirectory;
|
t->Pd = KernelDirectory;
|
||||||
t->Esp = t->Ebp = 0;
|
|
||||||
t->Next = NULL;
|
t->Next = NULL;
|
||||||
|
|
||||||
TaskList = CurrentTask = t;
|
TaskList = CurrentTask = t;
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
Exception: STATUS_ACCESS_VIOLATION at eip=6102048B
|
||||||
|
eax=00925C98 ebx=61243754 ecx=75907BBE edx=002F51F8 esi=00000000 edi=0022FA10
|
||||||
|
ebp=61020C00 esp=0022C7E0 program=C:\cygwin\bin\bash.exe, pid 2900, thread main
|
||||||
|
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
|
||||||
|
Stack trace:
|
||||||
|
Frame Function Args
|
||||||
|
End of stack trace
|
||||||
+44
-142
@@ -1,6 +1,6 @@
|
|||||||
00000000000i[ ] Bochs x86 Emulator 2.4.6
|
00000000000i[ ] Bochs x86 Emulator 2.4.6
|
||||||
00000000000i[ ] Build from CVS snapshot, on February 22, 2011
|
00000000000i[ ] Build from CVS snapshot, on February 22, 2011
|
||||||
00000000000i[ ] Compiled at Feb 22 2011, 19:57:47
|
00000000000i[ ] Compiled at Feb 22 2011, 20:08:42
|
||||||
00000000000i[ ] System configuration
|
00000000000i[ ] System configuration
|
||||||
00000000000i[ ] processors: 1 (cores=1, HT threads=1)
|
00000000000i[ ] processors: 1 (cores=1, HT threads=1)
|
||||||
00000000000i[ ] A20 line support: yes
|
00000000000i[ ] A20 line support: yes
|
||||||
@@ -30,13 +30,13 @@
|
|||||||
00000000000i[ ] SB16 support: yes
|
00000000000i[ ] SB16 support: yes
|
||||||
00000000000i[ ] USB support: yes
|
00000000000i[ ] USB support: yes
|
||||||
00000000000i[ ] VGA extension support: vbe cirrus
|
00000000000i[ ] VGA extension support: vbe cirrus
|
||||||
00000000000i[MEM0 ] allocated memory at 028C0020. after alignment, vector=028C1000
|
00000000000i[MEM0 ] allocated memory at 03C60020. after alignment, vector=03C61000
|
||||||
00000000000i[MEM0 ] 32.00MB
|
00000000000i[MEM0 ] 32.00MB
|
||||||
00000000000i[MEM0 ] mem block size = 0x00100000, blocks=32
|
00000000000i[MEM0 ] mem block size = 0x00100000, blocks=32
|
||||||
00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('C:\Program Files\Bochs-2.4.6\BIOS-bochs-latest')
|
00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('C:\Program Files\Bochs-2.4.6\BIOS-bochs-latest')
|
||||||
00000000000i[MEM0 ] rom at 0xc0000/40448 ('C:\Program Files\Bochs-2.4.6\VGABIOS-lgpl-latest')
|
00000000000i[MEM0 ] rom at 0xc0000/40448 ('C:\Program Files\Bochs-2.4.6\VGABIOS-lgpl-latest')
|
||||||
00000000000i[CMOS ] Using local time for initial clock
|
00000000000i[CMOS ] Using local time for initial clock
|
||||||
00000000000i[CMOS ] Setting initial clock to: Thu Sep 15 08:03:00 2011 (time0=1316062980)
|
00000000000i[CMOS ] Setting initial clock to: Tue Sep 20 12:05:43 2011 (time0=1316509543)
|
||||||
00000000000i[DMA ] channel 4 used by cascade
|
00000000000i[DMA ] channel 4 used by cascade
|
||||||
00000000000i[DMA ] channel 2 used by Floppy Drive
|
00000000000i[DMA ] channel 2 used by Floppy Drive
|
||||||
00000000000i[FDD ] fd0: 'a:' ro=0, h=2,t=80,spt=18
|
00000000000i[FDD ] fd0: 'a:' ro=0, h=2,t=80,spt=18
|
||||||
@@ -54,6 +54,7 @@
|
|||||||
00000000000i[ ] init_dev of 'speaker' plugin device by virtual method
|
00000000000i[ ] init_dev of 'speaker' plugin device by virtual method
|
||||||
00000000000i[ ] init_dev of 'extfpuirq' plugin device by virtual method
|
00000000000i[ ] init_dev of 'extfpuirq' plugin device by virtual method
|
||||||
00000000000i[ ] init_dev of 'gameport' plugin device by virtual method
|
00000000000i[ ] init_dev of 'gameport' plugin device by virtual method
|
||||||
|
00000000000i[ ] init_dev of 'iodebug' plugin device by virtual method
|
||||||
00000000000i[ ] init_dev of 'pci_ide' plugin device by virtual method
|
00000000000i[ ] init_dev of 'pci_ide' plugin device by virtual method
|
||||||
00000000000i[PCI ] PIIX3 PCI IDE controller present at device 1, function 1
|
00000000000i[PCI ] PIIX3 PCI IDE controller present at device 1, function 1
|
||||||
00000000000i[ ] init_dev of 'acpi' plugin device by virtual method
|
00000000000i[ ] init_dev of 'acpi' plugin device by virtual method
|
||||||
@@ -75,6 +76,7 @@
|
|||||||
00000000000i[ ] register state of 'speaker' plugin device by virtual method
|
00000000000i[ ] register state of 'speaker' plugin device by virtual method
|
||||||
00000000000i[ ] register state of 'extfpuirq' plugin device by virtual method
|
00000000000i[ ] register state of 'extfpuirq' plugin device by virtual method
|
||||||
00000000000i[ ] register state of 'gameport' plugin device by virtual method
|
00000000000i[ ] register state of 'gameport' plugin device by virtual method
|
||||||
|
00000000000i[ ] register state of 'iodebug' plugin device by virtual method
|
||||||
00000000000i[ ] register state of 'pci_ide' plugin device by virtual method
|
00000000000i[ ] register state of 'pci_ide' plugin device by virtual method
|
||||||
00000000000i[ ] register state of 'acpi' plugin device by virtual method
|
00000000000i[ ] register state of 'acpi' plugin device by virtual method
|
||||||
00000000000i[ ] register state of 'ioapic' plugin device by virtual method
|
00000000000i[ ] register state of 'ioapic' plugin device by virtual method
|
||||||
@@ -104,6 +106,7 @@
|
|||||||
00000000000i[ ] reset of 'speaker' plugin device by virtual method
|
00000000000i[ ] reset of 'speaker' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'extfpuirq' plugin device by virtual method
|
00000000000i[ ] reset of 'extfpuirq' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'gameport' plugin device by virtual method
|
00000000000i[ ] reset of 'gameport' plugin device by virtual method
|
||||||
|
00000000000i[ ] reset of 'iodebug' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'pci_ide' plugin device by virtual method
|
00000000000i[ ] reset of 'pci_ide' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'acpi' plugin device by virtual method
|
00000000000i[ ] reset of 'acpi' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'ioapic' plugin device by virtual method
|
00000000000i[ ] reset of 'ioapic' plugin device by virtual method
|
||||||
@@ -111,6 +114,7 @@
|
|||||||
00000000000i[ ] reset of 'harddrv' plugin device by virtual method
|
00000000000i[ ] reset of 'harddrv' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'serial' plugin device by virtual method
|
00000000000i[ ] reset of 'serial' plugin device by virtual method
|
||||||
00000000000i[ ] reset of 'parallel' plugin device by virtual method
|
00000000000i[ ] reset of 'parallel' plugin device by virtual method
|
||||||
|
00000000000i[ ] set SIGINT handler to bx_debug_ctrlc_handler
|
||||||
00000003305i[BIOS ] $Revision: 1.257 $ $Date: 2011/01/26 09:52:02 $
|
00000003305i[BIOS ] $Revision: 1.257 $ $Date: 2011/01/26 09:52:02 $
|
||||||
00000200000i[WGUI ] dimension update x=720 y=400 fontheight=16 fontwidth=9 bpp=8
|
00000200000i[WGUI ] dimension update x=720 y=400 fontheight=16 fontwidth=9 bpp=8
|
||||||
00000318042i[KBD ] reset-disable command received
|
00000318042i[KBD ] reset-disable command received
|
||||||
@@ -156,142 +160,40 @@
|
|||||||
00014041548i[BIOS ] Booting from 0000:7c00
|
00014041548i[BIOS ] Booting from 0000:7c00
|
||||||
00023137418i[BIOS ] int13_harddisk: function 41, unmapped device for ELDL=80
|
00023137418i[BIOS ] int13_harddisk: function 41, unmapped device for ELDL=80
|
||||||
00023142199i[BIOS ] int13_harddisk: function 08, unmapped device for ELDL=80
|
00023142199i[BIOS ] int13_harddisk: function 08, unmapped device for ELDL=80
|
||||||
00023146850i[BIOS ] *** int 15h function AX=00c0, BX=0000 not yet supported!
|
00023146850i[BIOS ] *** int 15h function AX=00c0, BX=0000 not yet supported!
|
||||||
00044779044i[KBD ] setting typematic info
|
00044035593i[CPU0 ] [44035593] Stopped on MAGIC BREAKPOINT
|
||||||
00044779062i[KBD ] setting delay to 500 mS (unused)
|
00044142237i[CPU0 ] [44142237] Stopped on MAGIC BREAKPOINT
|
||||||
00044779062i[KBD ] setting repeat rate to 10.9 cps (unused)
|
00044779187i[KBD ] setting typematic info
|
||||||
00044779105i[KBD ] Switched to scancode set 2
|
00044779205i[KBD ] setting delay to 500 mS (unused)
|
||||||
00044779168i[KBD ] keyboard: scan convert turned off
|
00044779205i[KBD ] setting repeat rate to 10.9 cps (unused)
|
||||||
01114335114i[CPU0 ] CPU is in protected mode (active)
|
00044779248i[KBD ] Switched to scancode set 2
|
||||||
01114335114i[CPU0 ] CS.d_b = 32 bit
|
00044779311i[KBD ] keyboard: scan convert turned off
|
||||||
01114335114i[CPU0 ] SS.d_b = 32 bit
|
00044838196i[CPU0 ] [44838196] Stopped on MAGIC BREAKPOINT
|
||||||
01114335114i[CPU0 ] EFER = 0x00000000
|
00044838228i[ ] dbg: Quit
|
||||||
01114335114i[CPU0 ] | RAX=00000000c0081b54 RBX=0000000000000064
|
00044838228i[CPU0 ] CPU is in protected mode (active)
|
||||||
01114335114i[CPU0 ] | RCX=0000000001be729c RDX=0000000000000000
|
00044838228i[CPU0 ] CS.d_b = 32 bit
|
||||||
01114335114i[CPU0 ] | RSP=000000000000000c RBP=00000000c0081b54
|
00044838228i[CPU0 ] SS.d_b = 32 bit
|
||||||
01114335114i[CPU0 ] | RSI=000000000000000e RDI=0000000000000005
|
00044838228i[CPU0 ] EFER = 0x00000000
|
||||||
01114335114i[CPU0 ] | R8=0000000000000000 R9=0000000000000000
|
00044838228i[CPU0 ] | RAX=0000000000108f18 RBX=0000000000000064
|
||||||
01114335114i[CPU0 ] | R10=0000000000000000 R11=0000000000000000
|
00044838228i[CPU0 ] | RCX=0000000000111720 RDX=0000000000000014
|
||||||
01114335114i[CPU0 ] | R12=0000000000000000 R13=0000000000000000
|
00044838228i[CPU0 ] | RSP=0000000000111720 RBP=0000000000000014
|
||||||
01114335114i[CPU0 ] | R14=0000000000000000 R15=0000000000000000
|
00044838228i[CPU0 ] | RSI=0000000000111806 RDI=0000000000000002
|
||||||
01114335114i[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af pf cf
|
00044838228i[CPU0 ] | R8=0000000000000000 R9=0000000000000000
|
||||||
01114335114i[CPU0 ] | SEG selector base limit G D
|
00044838228i[CPU0 ] | R10=0000000000000000 R11=0000000000000000
|
||||||
01114335114i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
|
00044838228i[CPU0 ] | R12=0000000000000000 R13=0000000000000000
|
||||||
01114335114i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1
|
00044838228i[CPU0 ] | R14=0000000000000000 R15=0000000000000000
|
||||||
01114335114i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
00044838228i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf ZF af PF cf
|
||||||
01114335114i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
00044838228i[CPU0 ] | SEG selector base limit G D
|
||||||
01114335114i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
00044838228i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
|
||||||
01114335114i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
00044838228i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1
|
||||||
01114335114i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
00044838228i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
01114335114i[CPU0 ] | MSR_FS_BASE:0000000000000000
|
00044838228i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
01114335114i[CPU0 ] | MSR_GS_BASE:0000000000000000
|
00044838228i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
01114335114i[CPU0 ] | RIP=0000000000106882 (0000000000106882)
|
00044838228i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
01114335114i[CPU0 ] | CR0=0xe0000011 CR2=0x00000000fffffffc
|
00044838228i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
01114335114i[CPU0 ] | CR3=0x0011b000 CR4=0x00000000
|
00044838228i[CPU0 ] | MSR_FS_BASE:0000000000000000
|
||||||
01114335114i[CPU0 ] 0x0000000000106882>> pushad : 60
|
00044838228i[CPU0 ] | MSR_GS_BASE:0000000000000000
|
||||||
01114335114e[CPU0 ] exception(): 3rd (14) exception with no resolution, shutdown status is 00h, resetting
|
00044838228i[CPU0 ] | RIP=0000000000108f60 (0000000000108f60)
|
||||||
01114335114i[SYS ] bx_pc_system_c::Reset(HARDWARE) called
|
00044838228i[CPU0 ] | CR0=0xe0000011 CR2=0x0000000000000000
|
||||||
01114335114i[CPU0 ] cpu hardware reset
|
00044838228i[CPU0 ] | CR3=0x0011b000 CR4=0x00000000
|
||||||
01114335114i[APIC0] allocate APIC id=0 (MMIO enabled) to 0x00000000fee00000
|
00044838228i[CMOS ] Last time is 1316509554 (Tue Sep 20 12:05:54 2011)
|
||||||
01114335114i[CPU0 ] CPUID[0x00000000]: 00000003 756e6547 6c65746e 49656e69
|
|
||||||
01114335114i[CPU0 ] CPUID[0x00000001]: 00000f23 00000800 00002000 07cbfbff
|
|
||||||
01114335114i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x00000007]: 00000000 00000000 00000000 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000001 2a100800
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000
|
|
||||||
01114335114i[CPU0 ] CPUID[0x80000008]: 00003028 00000000 00000000 00000000
|
|
||||||
01114335114i[ ] reset of 'unmapped' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'biosdev' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'speaker' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'extfpuirq' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'gameport' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'pci_ide' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'acpi' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'ioapic' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'keyboard' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'harddrv' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'serial' plugin device by virtual method
|
|
||||||
01114335114i[ ] reset of 'parallel' plugin device by virtual method
|
|
||||||
01114338420i[BIOS ] $Revision: 1.257 $ $Date: 2011/01/26 09:52:02 $
|
|
||||||
01114714063i[KBD ] reset-disable command received
|
|
||||||
01114840783i[VBIOS]
|
|
||||||
VGABios $Id: vgabios.c,v 1.69 2009/04/07 18:18:20 vruppert Exp $
|
|
||||||
|
|
||||||
01114840854i[CLVGA] VBE known Display Interface b0c0
|
|
||||||
01114840886i[CLVGA] VBE known Display Interface b0c5
|
|
||||||
01114843811i[VBIOS] VBE Bios $Id: vbe.c,v 1.62 2009/01/25 15:46:25 vruppert Exp $
|
|
||||||
01115156500i[BIOS ] Starting rombios32
|
|
||||||
01115156997i[BIOS ] Shutdown flag 0
|
|
||||||
01115157678i[BIOS ] ram_size=0x02000000
|
|
||||||
01115158156i[BIOS ] ram_end=32MB
|
|
||||||
01115198776i[BIOS ] Found 1 cpu(s)
|
|
||||||
01115217763i[BIOS ] bios_table_addr: 0x000fb928 end=0x000fcc00
|
|
||||||
01115217866i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush)
|
|
||||||
01115545563i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush)
|
|
||||||
01115873491i[P2I ] PCI IRQ routing: PIRQA# set to 0x0b
|
|
||||||
01115873512i[P2I ] PCI IRQ routing: PIRQB# set to 0x09
|
|
||||||
01115873533i[P2I ] PCI IRQ routing: PIRQC# set to 0x0b
|
|
||||||
01115873554i[P2I ] PCI IRQ routing: PIRQD# set to 0x09
|
|
||||||
01115873564i[P2I ] write: ELCR2 = 0x0a
|
|
||||||
01115874449i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a
|
|
||||||
01115882407i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 class=0x0600
|
|
||||||
01115884969i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 class=0x0601
|
|
||||||
01115887370i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 class=0x0101
|
|
||||||
01115888304i[BIOS ] region 4: 0x0000c000
|
|
||||||
01115890614i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 class=0x0680
|
|
||||||
01115890852i[ACPI ] new irq line = 11
|
|
||||||
01115890866i[ACPI ] new irq line = 9
|
|
||||||
01115890938i[PCI ] setting SMRAM control register to 0x4a
|
|
||||||
01116055032i[CPU0 ] Enter to System Management Mode
|
|
||||||
01116055042i[CPU0 ] RSM: Resuming from System Management Mode
|
|
||||||
01116219062i[PCI ] setting SMRAM control register to 0x0a
|
|
||||||
01116228233i[BIOS ] MP table addr=0x000fba00 MPC table addr=0x000fb930 size=0xd0
|
|
||||||
01116230292i[BIOS ] SMBIOS table addr=0x000fba10
|
|
||||||
01116232680i[BIOS ] ACPI tables: RSDP addr=0x000fbb30 ACPI DATA addr=0x01ff0000 size=0x988
|
|
||||||
01116235918i[BIOS ] Firmware waking vector 0x1ff00cc
|
|
||||||
01116247031i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush)
|
|
||||||
01116247875i[BIOS ] bios_table_cur_addr: 0x000fbb54
|
|
||||||
01128376669i[BIOS ] Booting from 0000:7c00
|
|
||||||
01137472539i[BIOS ] int13_harddisk: function 41, unmapped device for ELDL=80
|
|
||||||
01137477320i[BIOS ] int13_harddisk: function 08, unmapped device for ELDL=80
|
|
||||||
01137481971i[BIOS ] *** int 15h function AX=00c0, BX=0000 not yet supported!
|
|
||||||
01159114165i[KBD ] setting typematic info
|
|
||||||
01159114183i[KBD ] setting delay to 500 mS (unused)
|
|
||||||
01159114183i[KBD ] setting repeat rate to 10.9 cps (unused)
|
|
||||||
01159114226i[KBD ] Switched to scancode set 2
|
|
||||||
01159114289i[KBD ] keyboard: scan convert turned off
|
|
||||||
01470312000p[WGUI ] >>PANIC<< POWER button turned off.
|
|
||||||
01470312000i[CPU0 ] CPU is in protected mode (active)
|
|
||||||
01470312000i[CPU0 ] CS.d_b = 32 bit
|
|
||||||
01470312000i[CPU0 ] SS.d_b = 32 bit
|
|
||||||
01470312000i[CPU0 ] EFER = 0x00000000
|
|
||||||
01470312000i[CPU0 ] | RAX=00000000001118ff RBX=00000000001118c8
|
|
||||||
01470312000i[CPU0 ] | RCX=00000000000003d4 RDX=00000000001118c8
|
|
||||||
01470312000i[CPU0 ] | RSP=00000000001117c8 RBP=0000000000000014
|
|
||||||
01470312000i[CPU0 ] | RSI=0000000000111806 RDI=0000000000000002
|
|
||||||
01470312000i[CPU0 ] | R8=0000000000000000 R9=0000000000000000
|
|
||||||
01470312000i[CPU0 ] | R10=0000000000000000 R11=0000000000000000
|
|
||||||
01470312000i[CPU0 ] | R12=0000000000000000 R13=0000000000000000
|
|
||||||
01470312000i[CPU0 ] | R14=0000000000000000 R15=0000000000000000
|
|
||||||
01470312000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf sf ZF af PF cf
|
|
||||||
01470312000i[CPU0 ] | SEG selector base limit G D
|
|
||||||
01470312000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
|
|
||||||
01470312000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1
|
|
||||||
01470312000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
|
||||||
01470312000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
|
||||||
01470312000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
|
||||||
01470312000i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
|
||||||
01470312000i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
|
||||||
01470312000i[CPU0 ] | MSR_FS_BASE:0000000000000000
|
|
||||||
01470312000i[CPU0 ] | MSR_GS_BASE:0000000000000000
|
|
||||||
01470312000i[CPU0 ] | RIP=0000000000108b8e (0000000000108b8e)
|
|
||||||
01470312000i[CPU0 ] | CR0=0xe0000011 CR2=0x0000000000000000
|
|
||||||
01470312000i[CPU0 ] | CR3=0x0011b000 CR4=0x00000000
|
|
||||||
01470312000i[CPU0 ] 0x0000000000108b8e>> mov al, byte ptr ds:0x10d9dd : A0DDD91000
|
|
||||||
|
|||||||
+10217
-10209
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
-1
@@ -1,7 +1,9 @@
|
|||||||
[????] BUILD 0.1.1.??? DATE 9/0?/2011 AT ?:?? ??
|
[????] BUILD 0.1.1.50 DATE 9/20/2011 AT 12:43 PM
|
||||||
====================================================
|
====================================================
|
||||||
Mainly changed: Tasking
|
Mainly changed: Tasking
|
||||||
+ Implemented multitasking
|
+ Implemented multitasking
|
||||||
|
+ Switching works
|
||||||
|
? TODO: Fix other not working tasking routines
|
||||||
|
|
||||||
[GOOD] BUILD 0.1.0.629 DATE 9/08/2011 AT 5:20 PM
|
[GOOD] BUILD 0.1.0.629 DATE 9/08/2011 AT 5:20 PM
|
||||||
====================================================
|
====================================================
|
||||||
|
|||||||
@@ -13,3 +13,6 @@ Kernel/hal/cpu/isrs-asm.asm
|
|||||||
HAL :: Interrupt Requests assembly module
|
HAL :: Interrupt Requests assembly module
|
||||||
Kernel/hal/cpu/irq-asm.asm
|
Kernel/hal/cpu/irq-asm.asm
|
||||||
|
|
||||||
|
Tasking :: Assembly module
|
||||||
|
Kernel/tasking/tasking-asm.asm
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
|||||||
19
|
50
|
||||||
|
|||||||
Reference in New Issue
Block a user