Hey,
bin neu hier und stelle mich erstmal kurz vor, ich heiße Moritz bin 18 Jahre und komme aus der Nähe von Frankfurt.
Seit ich 13 bin hab ich was mit Programmierung am Hut (mehr oder weniger) und seit etwas mehr als einem Monat studier ich Informatik an der TU Darmstadt. Da ich sowieso mehr so der Hardware als der Software Mensch bin kam ich gestern drauf ob man sich nicht während der Unizeit sein eigens kleines Os zusammenbasteln kann.
Daher habe ich das Tutorial hier entdeckt und mich einmal drangesetzt. Soweit klappt auch alles ganz gut. Bin jetzt mit Tutorial 5 fertig und GDT und IDT
funktionieren einwandfrei. Bevor ich nun mit Multitasking weiter mache wollte ich mir einen Tastaturtreiber schreiben (steht ja dabei das man das jetzt schon kann). Hab mir also mal das Kapitel zu KBC angeschaut und blicke nicht ganz durch ...
Also wenn ich das richtig verstanden habe brauche ich die Ports 0x60 und 0x64 zum empfangen und senden.
inb und outb machen was sie sollen (Y)
jetzt steht im Beispielcode aber diese Zeile:
// IRQ-Handler fuer Tastatur-IRQ(1) registrieren
register_intr_handler(IRQ_BASE + 1, &irq_handler);
Und mir ist nicht ganz klar wie ich diese umsetzen soll... also IRQ_BASE is ein int und wahrscheinlich 32 wenn ich das richtig interpretiere.
ab 32 fangen die Hardware Interupts an und IRQ_BASE + 1 sollte der von der Tastatur sein also 33. Soweit richtig oder ?
Dann die Referenz auf irq_handler ist ja einfach die Funktion die unten drunter erklärt ist.
Was macht jetzt aber register_intr_handler ?
Also soweit ich das verstehe müsste die Funktion ja den intr_stub 33 mit der Funktion irq_handler verknüpfen oder ?
Also muss sozusagen in dem Handler der in Tutorial 5 erstellt wurde für 0x21 die Funktion irq handler gesetzt werden oder sehe ich das falsch?
Wenn mir jemand meinen Gedankengang vielleicht korrigieren kann wäre das sehr cool
MfG
Moritz