Fix.
git-svn-id: https://spexeah.com:8443/svn/Asuro@75 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								bin/kernel.bin
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/kernel.bin
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/idt.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/idt.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/isr0.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/isr0.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/kernel.o
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/kernel.o
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/kernel.ppu
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/kernel.ppu
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/libpkernel.a
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/libpkernel.a
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -41,6 +41,7 @@ end;
 | 
			
		||||
 | 
			
		||||
procedure register();
 | 
			
		||||
begin
 | 
			
		||||
    memset(uint32(@Hooks[0]), 0, sizeof(pp_hook_method)*MAX_HOOKS);
 | 
			
		||||
    IDT.set_gate(0, uint32(@Main), $08, ISR_RING_0);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
@@ -53,7 +54,10 @@ begin
 | 
			
		||||
        if uint32(Hooks[i]) = hook_method then exit;
 | 
			
		||||
    end;
 | 
			
		||||
    for i:=0 to MAX_HOOKS-1 do begin
 | 
			
		||||
        if uint32(Hooks[i]) = 0 then Hooks[i]:= pp_hook_method(hook_method);
 | 
			
		||||
        if uint32(Hooks[i]) = 0 then begin
 | 
			
		||||
            Hooks[i]:= pp_hook_method(hook_method);
 | 
			
		||||
            exit;
 | 
			
		||||
        end;
 | 
			
		||||
    end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ begin
 | 
			
		||||
    IDT_Pointer.limit:= (sizeof(TIDT_Entry) * 256) - 1;
 | 
			
		||||
    IDT_Pointer.base:= uint32(@IDT_Entries);
 | 
			
		||||
    console.writestringln('IDT: CLEAR.');
 | 
			
		||||
    util.memset(uint32(@IDT_Entries), 0, sizeof(TIDT_Entry) * 256);
 | 
			
		||||
    util.memset(uint32(@IDT_Entries[0]), 0, sizeof(TIDT_Entry) * 256);
 | 
			
		||||
    console.writestringln('IDT: LOAD.');
 | 
			
		||||
    load(uint32(@IDT_Pointer));
 | 
			
		||||
    console.writestringln('IDT: INIT END.');
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ uses
 | 
			
		||||
     idt,
 | 
			
		||||
     isr,
 | 
			
		||||
     irq,
 | 
			
		||||
     isr0,
 | 
			
		||||
     console,
 | 
			
		||||
     bios_data_area,
 | 
			
		||||
     keyboard;
 | 
			
		||||
@@ -17,6 +18,11 @@ procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
 | 
			
		||||
 
 | 
			
		||||
implementation
 | 
			
		||||
 
 | 
			
		||||
procedure test(data : void);
 | 
			
		||||
begin
 | 
			
		||||
    console.writestringln('It works.');
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain'];   
 | 
			
		||||
var
 | 
			
		||||
   c : uint8;
 | 
			
		||||
@@ -72,6 +78,10 @@ begin
 | 
			
		||||
     console.writeint(((mbinfo^.mem_upper + 1000) div 1024) +1);
 | 
			
		||||
     console.writestringln('MB');
 | 
			
		||||
     console.setdefaultattribute(console.combinecolors(lYellow, Black));
 | 
			
		||||
 | 
			
		||||
     isr0.hook(uint32(@test));
 | 
			
		||||
     asm INT 0 end;
 | 
			
		||||
 | 
			
		||||
     util.halt_and_dont_catch_fire;
 | 
			
		||||
end;
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user