Autor Thema: Assembler Frage  (Gelesen 6299 mal)

MasterQ32

  • Beiträge: 10
    • Profil anzeigen
    • MasterQ32.de
Gespeichert
« am: 01. June 2013, 15:10 »
Hey,

ich bastel grade fleißig an meinem Kernel. Hab mittlerweile Interrupts am laufen, meinen eigenen "Bluescreen" (Bei exception dumped er einfach die CPU-Status auf den Bildschirm) und eine einfachste Tastatureingabe (erkenne, ob taste gedrückt wurde oder wieder losgelassen).
Ich würde jetzt gerne meine Tastatureingabe verbessern, bevor ich mich an Speichermanagement und Multi-Tasking hänge.

Dabei stellen sich mir zwei Fragen:
Nummer 1:
Gibt es im GCC-Assembler (ich weiß er heißt net so, hab aber grade kein Lnx zur Verfügung) eine Direktive, dass ich eine Datei einbinden kann? Also quasi wie .db oder .space, bloß dass er mir da den Inhalt einer Datei hinpackt.

Nummer 2:
Ich habe mir ein Key-Mapping angelegt, welches jede Taste einem Virtual Key zuordnet. Was ist besser?
Texteingabe (unter Windows wäre das WM_CHAR) via Virtual Keys übersetzen, oder aber
Texteingabe im Interrupt Handler durch die Scancodes direkt übersetzen?

Gruß
Felix
"Wenn ich Populist wäre, müsste ich mich jetzt sofort hinsetzen und das Feature programmieren. Gut, dass ich kein Populist bin." - JCL

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #1 am: 01. June 2013, 15:13 »
Hi,
zu deiner ersten Frage weiss ich vielleicht die (halbe) Antwort: ich glaube die direktive heisst include nur weiss ich nicht, ob ein Punkt oder ein #-Zeichen davor muss.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

MasterQ32

  • Beiträge: 10
    • Profil anzeigen
    • MasterQ32.de
Gespeichert
« Antwort #2 am: 01. June 2013, 15:24 »
Danke, du hast mich auf die richtige Spur gebracht:
http://tigcc.ticalc.org/doc/gnuasm.html#SEC97
ich denke .incbin ist genau das richtige
"Wenn ich Populist wäre, müsste ich mich jetzt sofort hinsetzen und das Feature programmieren. Gut, dass ich kein Populist bin." - JCL

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 01. June 2013, 17:46 »
Ich habe mir ein Key-Mapping angelegt, welches jede Taste einem Virtual Key zuordnet. Was ist besser? Texteingabe (unter Windows wäre das WM_CHAR) via Virtual Keys übersetzen, oder aber Texteingabe im Interrupt Handler durch die Scancodes direkt übersetzen?
Gegenfrage: Was machst du mit Tasten wie F2, WinLinks oder MediaPause? Die lassen sich nicht vernünftig als Text darstellen, also sind virtuelle Tasten im Tastaturtreiber das Mittel der Wahl.

Im Eingabesystem des Kernels solltest du aber beide Möglichkeiten anbieten. Spiele, Emulatoren usw. möchten die gedrückten Tasten wissen, normale Anwendungen sind eher mit Buchstabenfolgen (plus Steuerzeichen wie Ctrl+C) zufrieden.

MasterQ32

  • Beiträge: 10
    • Profil anzeigen
    • MasterQ32.de
Gespeichert
« Antwort #4 am: 01. June 2013, 17:48 »
Zitat
Im Eingabesystem des Kernels solltest du aber beide Möglichkeiten anbieten.
Das möchte ich ja. Ich frage mich jetzt blos, ob ich die chars aus den Virtual Keys erzeuge oder duch eine zusätzliche Variante...
"Wenn ich Populist wäre, müsste ich mich jetzt sofort hinsetzen und das Feature programmieren. Gut, dass ich kein Populist bin." - JCL

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 01. June 2013, 23:44 »
Chars aus Virtual Keys zu erzeugen ist sinnvoll, weil unabhängig von der Tastatur (gibt ja auch andere Eingabegeräte, die Zeichen erzeugen können - zum Beispiel Fernbedienungen - und dafür, wenn überhaupt, andere Scancodes verwenden).

MasterQ32

  • Beiträge: 10
    • Profil anzeigen
    • MasterQ32.de
Gespeichert
« Antwort #6 am: 01. June 2013, 23:46 »
Okay, vielen Dank. Muss jetzt blos mein Dualboot ordentlich zum laufen bringen...
"Wenn ich Populist wäre, müsste ich mich jetzt sofort hinsetzen und das Feature programmieren. Gut, dass ich kein Populist bin." - JCL

 

Einloggen