Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - moritz3101

Seiten: [1]
1
joa das habe ich mittlerweile auch verstanden   :-D

ich hab mir mal Linux keymaps angeschaut und da wird ja einfach in einer Datei das Layout per #define KEY_XY Keycode erstellt :D
bevor ich die Tastatur aber 100% implementiere mach ich erstmal weiter im Tutorial ^_^
2
Okay alles klar  :-D

ich wollte es nur so hinstellen weil ich eigentlich mehr der Befürworter des flexibelen bin  :-)

Deswegen auch nochmal eine Frage :D

also die Probleme hab ich jetzt erstmal beseitigt :D der Fehler mit der Ausgabe lag echt daran das ich einfach den Fall %c vergessen hatte  :| naja jetzt geht es ja  :-D
so wenn ich jetzt eine Taste drücke wird ein Interrupt ausgelöst und ein Zeichen, wenn ich die Taste länger gedrückt halte mehr Zeichen und wenn ich loslasse auch ein Zeichen, wird gesendet :)
Soweit ist das ganze klar :)
Dafür wird der über inb(0x60) empfangene Sendcode über das sc_to_ky Array in ein Keycode verwandelt.
So jetzt hab ich ja aber viele verschiedene Tastaturlayouts, das heißt ich muss ja eigentlich sc_to_ky Variabel definieren, dass man auch Englische Tastaturen usw verwenden kann oder ?
Bin mir darüber noch nicht so ganz im klaren deswegen die vielleicht etwas blöde Fragen
3
okay danke :)

hilf doch manchmal sich ins Bett zuhauen und drüber nachzudenken :D

@Kevin
also ich weiß nicht ob ich mir das vielleicht falsch vorstelle, aber ich bin immer für Flexibilität von daher finde ich das ganze dynamisch schon ein wenig schöner, klar ist das ein bisschen mehr Code aufwand aber im späteren hat man dann immer noch die Möglichkeit was anderes zu registrieren.

Bis jetzt bekomm ich bei der Ausgabe nur %c
liegt wahrscheinlich daran das noch kein c in meiner Kernelprint Funktion implementiert ist :D :D :D
4
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
Seiten: [1]

Einloggen