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