refactor(ps2): correct naming
+ 50
- 64
file deleted
kernel/irq.cr
@@ -1,51 +0,0 @@
-lib KernelShim
-  fun outb(port : UInt16, value : UInt8) : Void
-end
-
-module IRQ
-  IRQ_COUNT = 16
-  HANDLERS = StaticArray(Proc(UInt8, Void)?, IRQ_COUNT).new()
-  
-  def self.init
-    self.register_keyboard
-    puts "IRQ initialized!\n"
-  end
-  
-  private def self.register_keyboard
-    # todo: handle keyboard events
-    register(1, # IRQ 1 = keyboard
-    ->(scan_code : UInt8) {
-      if scan_code == 0x1C
-        puts "Enter\n"
-      end
-      # do smth
-      puts "keyboard event\n"
-    })
-  end
-
-  def self.register(irq : Int32, handler : Proc(UInt8, Void)) : Proc(UInt8, Void)?
-    return nil if irq < 0 || irq >= IRQ_COUNT
-    prev = HANDLERS[irq]
-    HANDLERS[irq] = handler
-    prev
-  end
-
-  def self.dispatcher(irq : UInt32)
-    i = irq.to_u8
-    h = HANDLERS[i]
-    h.call(i) if h
-  end
-end
-
-fun irq_dispatcher_c(irq : UInt32)
-  puts "irq_dispatcher_c\n"
-  IRQ.dispatcher(irq)
-end
-
-fun pic_send_eoi(irq : UInt32)
-  puts "pic_send_eoi\n"
-  if irq >= 8
-    KernelShim.outb(0xA0_u16, 0x20_u8)
-  end
-  KernelShim.outb(0x20_u16, 0x20_u8)
-end

@@ -1,7 +1,6 @@
 require "./vga.cr"
 require "./tiny_alloc_i386.cr"
-require "./idt.cr"
-require "./irq.cr"
+require "./ps2.cr"
 # require "./pmm.cr"
 
 lib LibBootstrap

...
@@ -23,12 +22,9 @@ fun kmain
     "[CrystalOS Kernel] Hello from Crystal.\n",
     color: VGA::Colors::BLACK_ON_CYAN,
   )
-
-  IDT.init
-  IRQ.init # Should be PS2 ?
-  TinyAllocI386.init
   # PMM.init # Physical Memory Init
-
+  TinyAllocI386.init
+  PS2.init
   puts("weeeeeeee\n")
 
   VGA.puts("Can print on multiple lines\n", color: VGA::Colors::BLACK_ON_LIME)

@@ -1,11 +1,52 @@
-require "./vga.cr"
+lib KernelShim
+  fun outb(port : UInt16, value : UInt8) : Void
+end
 
-# PS2 module - Keyboard/Mouse driver
 module PS2
+  IRQ_COUNT = 16
+  HANDLERS = StaticArray(Proc(UInt8, Void)?, IRQ_COUNT).new()
+  
+  def self.init
+    self.register_keyboard
+    puts "PS/2 initialized!\n"
+  end
+  
+  private def self.register_keyboard
+    # todo: handle keyboard events
+    register(1, # IRQ 1 = keyboard
+    ->(scan_code : UInt8) {
+      if scan_code == 0x1C
+        puts "Enter\n"
+      end
+      # do smth
+      puts "keyboard event\n"
+    })
+  end
+
+  def self.register(irq : Int32, handler : Proc(UInt8, Void)) : Proc(UInt8, Void)?
+    return nil if irq < 0 || irq >= IRQ_COUNT
+    prev = HANDLERS[irq]
+    HANDLERS[irq] = handler
+    prev
+  end
 
-  def self.init : Nil
-    # Initialize PS/2 controller
-    VGA.puts("PS/2 initialized!\n")
+  def self.dispatcher(irq : UInt32)
+    i = irq.to_u8
+    if handler = HANDLERS[i]
+      handler.call(i)
+    end
   end
+end
+
+fun irq_dispatcher_c(irq : UInt32)
+  puts "irq_dispatcher_c\n"
+  PS2.dispatcher(irq)
+end
 
-end
+fun pic_send_eoi(irq : UInt32)
+  puts "pic_send_eoi\n"
+  if irq >= 8
+    KernelShim.outb(0xA0_u16, 0x20_u8)
+  end
+  KernelShim.outb(0x20_u16, 0x20_u8)
+end