Serielle Maus unter MicroDOS

von Dirk Walther

Nach der Veröffentlichung von (1) lag es nah, neben den vorgestellten Maustreibern für das CAOS auch eine Lösung für MicroDOS zu suchen. Unter Verwendung und Abwandlung der MC- Routine MOUSE0.KCC aus (1) habe ich deshalb einen Maustreiber für die PC-Betriebsart des KC realisiert.

Das Programm MOUSE.COM selbst ist in Turbo-Pascal geschrieben. Der Quelltext ist in den beiden Dateien MOUSE.PAS und MOUSE.UPS enthalten. Ich stelle ihn jedem zur freien Verfügung.

Der Treiber schreibt eine Interrupt-Service-Routine in den RAM des KC-Grundgerätes und initialisiert Kanal 2 des ersten gefundenen V.24-Moduls für den Mausbetrieb. Falls es User gibt, die ihre Maus an einem anderen Kanal betreiben, sollten diese sich bitte bei mir melden.

Bei Interesse läßt sich der Treiber dann auch noch für andere Kanäle einrichten. Der Maustreiber läßt sich ohne Schwierigkeiten in die Datei INITIAL.SUB einbinden. Dazu war jedoch eine Umleitung aller Ausgabeoperationen auf die BIOS-Routine nötig.

Beim Aufruf des Programms lassen sich eine Reihe von Optionen angeben. Eine Liste aller möglichen Optionen erscheint bei dem Aufruf "MOUSE /?". Für die Optionen sind schon sinnvolle Voreinstellungen getroffen, die eine vernünftige Benutzung der Maus im 80-Zeichen-Modus erlauben.

Die möglichen Belegungen der rechten Maustaste in der PC-Betriebsart sind (2) zu entnehmen. Als Adresse der Interrupt-Service-Routine im Grundgerät ist 0000H voreingetellt, weil in der PC-Betriebsart der Speicherbereich unterhalb des Systemstacks noch frei ist.

Die Voreinstellungen lassen sich auch dauerhaft den eigenen Bedingungen anpassen. Im Programmkopf von MOUSE.PAS stehen die Voreinstellungen in der CONST-Vereinbarung und lassen sich dort nach Belieben modifizieren. Beim Compilieren des Quelltextes in ein .COM-File bitte unbedingt als Endadresse 4200H angeben! Das ist wichtig für die Speicherorganisation, falls MOUSE.COM aus einem anderen Programm heraus aufgerufen wird.

Für den Maustreiber war es erforderlich, EDAS-Programme in den Pascal-Quelltext einzubinden. Ein kleiner Tip, wie das einfach zu realisieren ist, soll im folgenden gegeben werden.

  1. Das fertige und getestete EDAS-Programm wird mittels der Assembler-Option S in ein .KCC-File auf die Zieldiskette assembliert.
  2. In der PC-Betriebsart wird am Eingabeprompt die Zeile ">>name.txt" eingegeben.
  3. Mit einem geeigneten Programm (z.B. in POWER oder DIENST mit "TYPEH") wird der vollständige HEX-Dump des Programms ausgegeben. Ein anschließender Warmstart beendet die Ausgabe in eine Datei.
  4. Mit einem Texteditor kann die Datei name.txt anschließend nachbearbeitet werden: alle überflüssigen Zeilen sowie der Vorblock werden entfernt, alle Leerzeichen durch ", $" ersetzt.
  5. Dann kann der HEX-Dump in den Quelltext eingefügt werden und z.B. in eine CONST-Vereinbaruwg oder ein INLINE eingebunden werden.

Literatur

(1) Hendrik Haftmann: "Serielle Maus am KC" in KC-News 1/95; S.10 ff.

(2) KC 85 D004 Manual; S.22 ff.