Buid 0.1.1.19
This commit is contained in:
parent
e3b3584734
commit
581c6b92fe
@ -1,4 +0,0 @@
|
||||
Log created: 2011-09-08T11:08:21.957118500Z
|
||||
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
|
@ -1,4 +0,0 @@
|
||||
Log created: 2011-09-08T11:55:49.393922000Z
|
||||
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
|
BIN
Build/main.o
BIN
Build/main.o
Binary file not shown.
@ -20,10 +20,11 @@ string ConsoleCommands[] =
|
||||
"reboot",
|
||||
"restart",
|
||||
"dir",
|
||||
"cat"
|
||||
"cat",
|
||||
"task"
|
||||
};
|
||||
|
||||
int32 ConsoleCommandsCount = 13;
|
||||
int32 ConsoleCommandsCount = 14;
|
||||
|
||||
/*****************************************
|
||||
* osver - get os info *
|
||||
@ -335,3 +336,31 @@ void CommandCat (string argv[], int32 argc)
|
||||
kfree(buffer);
|
||||
VfsClose(&f);
|
||||
}
|
||||
|
||||
#include <tasking.h>
|
||||
void task()
|
||||
{
|
||||
Point p = {5, 1};
|
||||
uint32 t = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
ConsoleCursorGoto(p);
|
||||
ConsoleWrite("Hello world! %u ", t++);
|
||||
}
|
||||
}
|
||||
|
||||
void CommandTask()
|
||||
{
|
||||
ConsoleClear();
|
||||
TaskCreate(task);
|
||||
|
||||
Point p = {5, 2};
|
||||
uint32 t = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
ConsoleCursorGoto(p);
|
||||
ConsoleWrite("%#Hello world! %u ", ColorLightBlue, t++);
|
||||
}
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ loop:
|
||||
case 10: SystemReboot(); break;
|
||||
case 11: CommandDir(params, count); break;
|
||||
case 12: CommandCat(params, count); break;
|
||||
case 13: CommandTask(); break;
|
||||
|
||||
default: ConsoleWrite ("%#! Command %#%s%# was not implemented (yet)!\n",
|
||||
Color(0,ColorLightRed), Color(0,ColorWhite), params[0], Color(0,ColorLightRed)); break;
|
||||
|
@ -6,6 +6,8 @@
|
||||
volatile TimeSystem _internal_time;
|
||||
uint32 _internal_frequency_hz;
|
||||
|
||||
extern void TaskSwitch ();
|
||||
|
||||
void TimeHandler(_RegsStack32* UNUSED(r))
|
||||
{
|
||||
if (_internal_frequency_hz == 0) return;
|
||||
@ -16,4 +18,6 @@ void TimeHandler(_RegsStack32* UNUSED(r))
|
||||
_internal_time.Date++;
|
||||
_internal_time.Time-=MILISECONDS_IN_DAY;
|
||||
}
|
||||
|
||||
TaskSwitch();
|
||||
}
|
||||
|
27
Kernel/include/tasking.h
Normal file
27
Kernel/include/tasking.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* tasking.h
|
||||
*
|
||||
* Created on: Sep 8, 2011
|
||||
* Author: Tiberiu
|
||||
*/
|
||||
|
||||
#ifndef TASKING_H_
|
||||
#define TASKING_H_
|
||||
|
||||
#include <types.h>
|
||||
#include <memory-add.h>
|
||||
|
||||
typedef struct _Task {
|
||||
uint32 Pid;
|
||||
uint32 Esp, Ebp; // Stack
|
||||
PageDirectory* Pd;
|
||||
uint32 StackLowerBase;
|
||||
uint32 StackUpperBase;
|
||||
struct _Task* Next;
|
||||
} Task;
|
||||
|
||||
extern void TaskInitialize();
|
||||
extern void TaskSwitch ();
|
||||
extern void TaskCreate (void (*func)());
|
||||
|
||||
#endif /* TASKING_H_ */
|
@ -1 +1 @@
|
||||
#define OS_BUILD "0.1.0.629"
|
||||
#define OS_BUILD "0.1.1.19"
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <memory.h>
|
||||
#include <multiboot.h>
|
||||
#include <tasking.h>
|
||||
|
||||
extern uint32 _end;
|
||||
|
||||
@ -29,6 +30,8 @@ void k_main(MultibootInfo* info)
|
||||
MemoryTempInitialize(KernelEnd);
|
||||
MemoryInitialize(info);
|
||||
|
||||
TaskInitialize();
|
||||
|
||||
HalInitialize();
|
||||
luxInitrdInstall(info);
|
||||
|
||||
|
103
Kernel/tasking/tasking-multi.c
Normal file
103
Kernel/tasking/tasking-multi.c
Normal file
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* tasking-multi.c
|
||||
*
|
||||
* Created on: Sep 8, 2011
|
||||
* Author: Tiberiu
|
||||
*/
|
||||
|
||||
#include <tasking.h>
|
||||
#include <memory-add.h>
|
||||
|
||||
Task* TaskList;
|
||||
Task* CurrentTask;
|
||||
uint32 NextPid = 1;
|
||||
|
||||
void TaskSwitch ()
|
||||
{
|
||||
if (!TaskList) return;
|
||||
|
||||
// Save context
|
||||
asm volatile ("mov %%esp, %0" : "=r"(CurrentTask->Esp)); // Stack pointer
|
||||
asm volatile ("mov %%ebp, %0" : "=r"(CurrentTask->Ebp)); // Base pointer
|
||||
CurrentTask->Pd = CurrentDirectory;
|
||||
|
||||
// Next task
|
||||
CurrentTask = (!CurrentTask->Next) ? TaskList : CurrentTask->Next ;
|
||||
|
||||
// Switch context
|
||||
PagingSwitchDirectory(CurrentTask->Pd);
|
||||
asm volatile ("mov %0, %%esp" : : "r"(CurrentTask->Esp)); // Stack pointer
|
||||
asm volatile ("mov %0, %%ebp" : : "r"(CurrentTask->Ebp)); // Base pointer
|
||||
}
|
||||
|
||||
// Fallback for new tasks
|
||||
void TaskEnd ()
|
||||
{
|
||||
// Find parent of current task
|
||||
if (CurrentTask->Pid == TaskList->Pid) TaskList = TaskList->Next;
|
||||
|
||||
else {
|
||||
Task* t = TaskList;
|
||||
while (t->Next && t->Next->Pid != CurrentTask->Pid) t = t->Next;
|
||||
|
||||
t->Next = CurrentTask->Next;
|
||||
}
|
||||
|
||||
// Free allocated space
|
||||
kfree((void*)CurrentTask->StackLowerBase);
|
||||
kfree(CurrentTask);
|
||||
|
||||
// Wait for next task
|
||||
for (;;) ;
|
||||
}
|
||||
|
||||
void TaskCreate (void (*func)())
|
||||
{
|
||||
// Create a new task
|
||||
Task* t = kmalloc(sizeof(Task));
|
||||
|
||||
// Set up data
|
||||
t->StackLowerBase = (uint32) kmalloc(0x1000); // Allocate some space for new stack
|
||||
t->StackUpperBase = t->StackLowerBase + 0x1000;
|
||||
t->Next = NULL;
|
||||
t->Pd = KernelDirectory;
|
||||
t->Pid = NextPid++;
|
||||
|
||||
// Set up stack
|
||||
*(uint32 *) (t->StackUpperBase - 0x4) = (uint32) TaskEnd; // Fallback function
|
||||
t->Ebp = (uint32) t->StackUpperBase;
|
||||
|
||||
_RegsStack32* regs = (_RegsStack32*) (t->StackUpperBase - 0x4 - sizeof(_RegsStack32));
|
||||
|
||||
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
|
||||
Task* last = TaskList;
|
||||
while (last && last->Next) last = last->Next;
|
||||
if (last) last->Next = t;
|
||||
}
|
||||
|
||||
void TaskInitialize()
|
||||
{
|
||||
Task* t = kmalloc(sizeof(Task));
|
||||
|
||||
t->Pid = NextPid++;
|
||||
t->Pd = KernelDirectory;
|
||||
t->Esp = t->Ebp = 0;
|
||||
t->Next = NULL;
|
||||
|
||||
TaskList = CurrentTask = t;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
CREATE "filename" ; creates a new ramdisk with the filename
|
||||
MKDIR "name" ; creates a new directory (in current dir)
|
||||
CD "\path" ; sets current directory
|
||||
CD "\path" ; sets current directory, where \ is root
|
||||
ADD "filename" ; adds a file to current directory!
|
||||
SETFLAGS 1A1B01 ; sets flags for next added files, number is in hex using this mask:
|
||||
* bits description
|
||||
|
@ -30,13 +30,13 @@
|
||||
00000000000i[ ] SB16 support: yes
|
||||
00000000000i[ ] USB support: yes
|
||||
00000000000i[ ] VGA extension support: vbe cirrus
|
||||
00000000000i[MEM0 ] allocated memory at 028A0020. after alignment, vector=028A1000
|
||||
00000000000i[MEM0 ] allocated memory at 028C0020. after alignment, vector=028C1000
|
||||
00000000000i[MEM0 ] 32.00MB
|
||||
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 0xc0000/40448 ('C:\Program Files\Bochs-2.4.6\VGABIOS-lgpl-latest')
|
||||
00000000000i[CMOS ] Using local time for initial clock
|
||||
00000000000i[CMOS ] Setting initial clock to: Thu Sep 08 15:41:40 2011 (time0=1315485700)
|
||||
00000000000i[CMOS ] Setting initial clock to: Thu Sep 15 08:03:00 2011 (time0=1316062980)
|
||||
00000000000i[DMA ] channel 4 used by cascade
|
||||
00000000000i[DMA ] channel 2 used by Floppy Drive
|
||||
00000000000i[FDD ] fd0: 'a:' ro=0, h=2,t=80,spt=18
|
||||
@ -156,39 +156,142 @@
|
||||
00023137418i[BIOS ] int13_harddisk: function 41, 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!
|
||||
00043965427i[KBD ] setting typematic info
|
||||
00043965445i[KBD ] setting delay to 500 mS (unused)
|
||||
00043965445i[KBD ] setting repeat rate to 10.9 cps (unused)
|
||||
00043965488i[KBD ] Switched to scancode set 2
|
||||
00043965551i[KBD ] keyboard: scan convert turned off
|
||||
01748376000p[WGUI ] >>PANIC<< POWER button turned off.
|
||||
01748376000i[CPU0 ] CPU is in protected mode (active)
|
||||
01748376000i[CPU0 ] CS.d_b = 32 bit
|
||||
01748376000i[CPU0 ] SS.d_b = 32 bit
|
||||
01748376000i[CPU0 ] EFER = 0x00000000
|
||||
01748376000i[CPU0 ] | RAX=00000000001108ff RBX=0000000000000066
|
||||
01748376000i[CPU0 ] | RCX=00000000000003d4 RDX=0000000000000308
|
||||
01748376000i[CPU0 ] | RSP=00000000001107c8 RBP=0000000000000018
|
||||
01748376000i[CPU0 ] | RSI=0000000000110806 RDI=0000000000000002
|
||||
01748376000i[CPU0 ] | R8=0000000000000000 R9=0000000000000000
|
||||
01748376000i[CPU0 ] | R10=0000000000000000 R11=0000000000000000
|
||||
01748376000i[CPU0 ] | R12=0000000000000000 R13=0000000000000000
|
||||
01748376000i[CPU0 ] | R14=0000000000000000 R15=0000000000000000
|
||||
01748376000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf sf ZF af PF cf
|
||||
01748376000i[CPU0 ] | SEG selector base limit G D
|
||||
01748376000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
|
||||
01748376000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1
|
||||
01748376000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01748376000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01748376000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01748376000i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01748376000i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01748376000i[CPU0 ] | MSR_FS_BASE:0000000000000000
|
||||
01748376000i[CPU0 ] | MSR_GS_BASE:0000000000000000
|
||||
01748376000i[CPU0 ] | RIP=0000000000108a0a (0000000000108a0a)
|
||||
01748376000i[CPU0 ] | CR0=0xe0000011 CR2=0x0000000000000000
|
||||
01748376000i[CPU0 ] | CR3=0x0011a000 CR4=0x00000000
|
||||
01748376000i[CPU0 ] 0x0000000000108a0a>> mov al, byte ptr ds:0x10c9dd : A0DDC91000
|
||||
01748376000i[CMOS ] Last time is 1315486137 (Thu Sep 08 15:48:57 2011)
|
||||
01748376000i[ ] restoring default signal behavior
|
||||
01748376000i[CTRL ] quit_sim called with exit code 1
|
||||
00044779044i[KBD ] setting typematic info
|
||||
00044779062i[KBD ] setting delay to 500 mS (unused)
|
||||
00044779062i[KBD ] setting repeat rate to 10.9 cps (unused)
|
||||
00044779105i[KBD ] Switched to scancode set 2
|
||||
00044779168i[KBD ] keyboard: scan convert turned off
|
||||
01114335114i[CPU0 ] CPU is in protected mode (active)
|
||||
01114335114i[CPU0 ] CS.d_b = 32 bit
|
||||
01114335114i[CPU0 ] SS.d_b = 32 bit
|
||||
01114335114i[CPU0 ] EFER = 0x00000000
|
||||
01114335114i[CPU0 ] | RAX=00000000c0081b54 RBX=0000000000000064
|
||||
01114335114i[CPU0 ] | RCX=0000000001be729c RDX=0000000000000000
|
||||
01114335114i[CPU0 ] | RSP=000000000000000c RBP=00000000c0081b54
|
||||
01114335114i[CPU0 ] | RSI=000000000000000e RDI=0000000000000005
|
||||
01114335114i[CPU0 ] | R8=0000000000000000 R9=0000000000000000
|
||||
01114335114i[CPU0 ] | R10=0000000000000000 R11=0000000000000000
|
||||
01114335114i[CPU0 ] | R12=0000000000000000 R13=0000000000000000
|
||||
01114335114i[CPU0 ] | R14=0000000000000000 R15=0000000000000000
|
||||
01114335114i[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af pf cf
|
||||
01114335114i[CPU0 ] | SEG selector base limit G D
|
||||
01114335114i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
|
||||
01114335114i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1
|
||||
01114335114i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01114335114i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01114335114i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01114335114i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01114335114i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||
01114335114i[CPU0 ] | MSR_FS_BASE:0000000000000000
|
||||
01114335114i[CPU0 ] | MSR_GS_BASE:0000000000000000
|
||||
01114335114i[CPU0 ] | RIP=0000000000106882 (0000000000106882)
|
||||
01114335114i[CPU0 ] | CR0=0xe0000011 CR2=0x00000000fffffffc
|
||||
01114335114i[CPU0 ] | CR3=0x0011b000 CR4=0x00000000
|
||||
01114335114i[CPU0 ] 0x0000000000106882>> pushad : 60
|
||||
01114335114e[CPU0 ] exception(): 3rd (14) exception with no resolution, shutdown status is 00h, resetting
|
||||
01114335114i[SYS ] bx_pc_system_c::Reset(HARDWARE) called
|
||||
01114335114i[CPU0 ] cpu hardware reset
|
||||
01114335114i[APIC0] allocate APIC id=0 (MMIO enabled) to 0x00000000fee00000
|
||||
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
|
||||
01470312000i[CMOS ] Last time is 1316063346 (Thu Sep 15 08:09:06 2011)
|
||||
01470312000i[ ] restoring default signal behavior
|
||||
01470312000i[CTRL ] quit_sim called with exit code 1
|
||||
|
10664
bochs/dump.txt
Normal file
10664
bochs/dump.txt
Normal file
File diff suppressed because it is too large
Load Diff
2
build.sh
2
build.sh
@ -4,7 +4,7 @@
|
||||
OBJ=build
|
||||
COMPILER=i586-elf-gcc
|
||||
LINKER=i586-elf-ld
|
||||
BUILD_VER="0.1.0"
|
||||
BUILD_VER="0.1.1"
|
||||
|
||||
BuildC()
|
||||
{
|
||||
|
BIN
build/clock.o
BIN
build/clock.o
Binary file not shown.
BIN
build/console.o
BIN
build/console.o
Binary file not shown.
BIN
build/tasking-multi.o
Normal file
BIN
build/tasking-multi.o
Normal file
Binary file not shown.
@ -3,6 +3,13 @@
|
||||
Mainly changed: Tasking
|
||||
+ Implemented multitasking
|
||||
|
||||
[GOOD] BUILD 0.1.0.629 DATE 9/08/2011 AT 5:20 PM
|
||||
====================================================
|
||||
Mainly changed: Memory manager
|
||||
+ Rewritten virtual memory manager (easier to understand now :D)
|
||||
+ Updated physical memory manager
|
||||
+ Other minor bug fixes
|
||||
|
||||
[GOOD] BUILD 0.1.0.601 DATE 9/06/2011 AT 5:20 PM
|
||||
====================================================
|
||||
Mainly changed: bugfixes
|
||||
|
@ -133,3 +133,6 @@ Kernel/memory/mem-phys.c
|
||||
Memory Manager :: Paging
|
||||
Kernel/memory/mem-paging.c
|
||||
|
||||
Tasking :: Multitasking
|
||||
Kernel/tasking/tasking-multi.c
|
||||
|
||||
|
BIN
kernel.bin
BIN
kernel.bin
Binary file not shown.
@ -1 +1 @@
|
||||
629
|
||||
19
|
||||
|
Loading…
Reference in New Issue
Block a user