git-svn-id: https://spexeah.com:8443/svn/Asuro@56 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
		
							
								
								
									
										43
									
								
								src/drivers/isr49.pas
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/drivers/isr49.pas
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
{ ************************************************
 | 
			
		||||
  * Asuro
 | 
			
		||||
  * Unit: Drivers/isr32
 | 
			
		||||
  * Description: 1024/s Timer interrupt
 | 
			
		||||
  ************************************************
 | 
			
		||||
  * Author: Aaron Hance
 | 
			
		||||
  * Contributors: 
 | 
			
		||||
  ************************************************ }
 | 
			
		||||
 | 
			
		||||
unit isr32;
 | 
			
		||||
 | 
			
		||||
interface
 | 
			
		||||
 | 
			
		||||
uses
 | 
			
		||||
    util,
 | 
			
		||||
    console,
 | 
			
		||||
    IDT;
 | 
			
		||||
 | 
			
		||||
type 
 | 
			
		||||
    pp_void = procedure();
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
    procedure_ptr : pp_void = nil;
 | 
			
		||||
 | 
			
		||||
procedure register();
 | 
			
		||||
 | 
			
		||||
implementation
 | 
			
		||||
 | 
			
		||||
procedure Main; interrupt; //IRQ0, called every 55ms
 | 
			
		||||
begin
 | 
			
		||||
    CLI;
 | 
			
		||||
    if(procedure_ptr <> nil) then begin
 | 
			
		||||
        procedure_ptr();
 | 
			
		||||
    end;
 | 
			
		||||
    outb($0020, $20);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure register();
 | 
			
		||||
begin
 | 
			
		||||
    IDT.set_gate(40, uint32(@Main), $08, ISR_RING_0);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
end.
 | 
			
		||||
		Reference in New Issue
	
	Block a user