[????] 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:
2021-09-14 18:58:06 +03:00
parent 581c6b92fe
commit 17342b6665
22 changed files with 10331 additions and 10385 deletions
@@ -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
+6
View File
@@ -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);
}
+3 -3
View File
@@ -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
View File
@@ -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
+2
View File
@@ -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
+2 -1
View File
@@ -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
View File
@@ -1 +1 @@
#define OS_BUILD "0.1.1.19" #define OS_BUILD "0.1.1.50"
+7
View File
@@ -0,0 +1,7 @@
; tasking.asm
bits 32
global TaskReadEip
TaskReadEip:
pop eax
jmp eax
+29 -25
View File
@@ -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;
+7
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3 -1
View File
@@ -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
==================================================== ====================================================
+3
View File
@@ -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
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
19 50