Seite 1 von 1

TSR Hotkey bleibt manchmal „stehen

Verfasst: So 12. Dez 2021, 11:16
von markusk
Hallo,

Hab mir in Turbo Pascal eine Unit bzw. ein Assemblermodul geschrieben um Turbo Pascal Programme auch resident nutzen zu können.

Hab das bisher in der Dosbox umgesetzt und funktioniert auch soweit ganz gut. Nun hab ich es gestern mal auf einem echten 486er System ausprobiert und da ist aufgefallen daß scheinbar der Hotkey, also die Buchstabentaste welche ich in Kombination mit den Steuertasten (z.b. rechte + linke Shift Taste) zur Aktivierung des TSR drücken muß, nicht aus dem Tastaturpuffer entfernt wird obwohl ich nach der Erkennung der Tastenkombination diesen explizit über den Int 16h aus dem Tastaturpuffer „lösche“.

Hat wer eine Idee warum das in der Dosbox funktioniert und auf dem echten System nicht? Klar, die Dosbox wird sich nie 100% ig gleich verhalten wie irgendein Echtsystem, aber es wär eben interessant ob ich da vielleicht noch einen Fehler in meinem Programm habe der in der Dosbox irgendwie untergeht.

Lg, Markus

Re: TSR Hotkey bleibt manchmal „stehen

Verfasst: Mo 13. Dez 2021, 23:02
von Langer Don
Hallo Markus,

Du erwähnst ja leider nicht welche Int 16h Funktion Du benutzt. Falls Du es also nicht sowieso schon überprüfst, würde ich an Deiner Stelle mal schauen was Int 15/AH=C0h und ggf. Int 16h/AH=9h zurückgeben wie dort [1] beschrieben. Denn ich würde schlicht vermuten, dass eine der benützten Interrupt Funktionen nicht unterstützt wird.

[1] http://www.ctyme.com/intr/rb-1769.htm

Re: TSR Hotkey bleibt manchmal „stehen

Verfasst: Di 14. Dez 2021, 20:26
von markusk
Hallo,

Ich teste mit int 16h, Funktion 01 ob ein Zeichen im Tastaturpuffer bereitsteht und wenn ja lese ich es mit Funktion 00 aus.

Was auch aufgefallen ist: Es tritt nur auf wenn ich das TSR von der DOS Kommandozeile aus aufrufe, wenn ich z.b. eine Anwendung starte und dann die Tastenkombination drücke ist das Verhalten wie erwartet.

Vielleicht hat es irgendwas mit dem Interrupt 28h zu tun, für den musste ich auch einen eigenen Handler implementieren um das TSR von der DOS Kommandozeile aus aufrufen zu können.

Lg, Markus

Re: TSR Hotkey bleibt manchmal „stehen

Verfasst: Mi 15. Dez 2021, 15:26
von Langer Don
Dann würde ich mal schauen, ob es in einer Subshell [1] funktioniert, also eine, die man mit EXIT wieder verlassen kann. Wenn es dann geht, würde das m. E. nach erklären, warum es in der DOSBox geht.

EDIT: [1] Bzw. in CONFIG.SYS COMMAND.COM ohne /P in einer expliziten SHELL Definition aufrufen.

Re: TSR Hotkey bleibt manchmal „stehe

Verfasst: Sa 18. Dez 2021, 11:08
von markusk
Hallo,

Hab das Problem zumindest mal eingegrenzt, es tritt anscheinend nur auf wenn die Hotkey Tastenkombination eine Shift Taste und eine Buchstabentaste enthält. Wenn ich die Shift Taste durch Alt oder Ctrl ersetze dann wird das jeweilige Zeichen nicht mehr angezeigt.

Weiß zwar noch immer nicht warum das Problem auftritt, aber Ich hab zumindest mal einen Anhaltspunkt.

Auch die Versionen aus den Büchern von Michael Tischer und Martin Althaus haben dieses Problem.

Lg, Markus