Quelltext /~heha/hs/dos/mrec_src.zip/MREC.DOC

Dokumentation zu MREC 1.0, dem Tastatur-Makrorecorder
Copyright 1994 Berauer Computer Cossebaude

Dieser Makrorekorder ist ein aufzeichnendes wie auch wiedergebendes System
fr die Steuerung anderer Programme. Gem der Problemstellung wurde
dieses Programm nicht als TSR (<engl: terminate and stay resident, residentes
Programm nach Beendigung) entwickelt, sondern als Vater-Programm. Das
bedeutet, da MREC in der Lage ist, ein anderes Programm als sog. Child-
Proze zu starten und whrend seiner Abarbeitung die Kontrolle ber die
Tastatureingaben des Child-Programms zu berwachen und zu emulieren.
Vorteilhaft ist bei dieser Art des Steuerprogramms, da es keine De-
installationsprobleme geben kann (es sei denn, man startet ein TSR als
Child) und da der "Treiber" sich selbst bei Programmbeendigung mit
entfernt.

Mindestanforderungen:
- IBM-PC 8088 oder kompatibler auf BIOS-Ebene
- MS-DOS 3.3 oder vergleichbares Betriebssystem
- PC- oder MF2-Tastatur mit deutschem Tastaturtreiber KEYB oder kompatiblem
- 3 Kilobyte konventioneller oder hoher Speicher neben dem Nutzprogramm
...sollte wohl jeder haben!

Wie funktioniert das Programm im Innern prinzipiell? (Experten-Hinweis)
 Zunchst wird geprft, ob die Makrodatei existiert oder nicht. Je nach
Ergebnis wird dann aufgenommen oder wiedergegeben. Bei Wiedergabebetrieb
wird das File in einen internen Puffer gelesen und gewandelt, soda
jede Taste 2 Bytes bentigt.
 Kurz vor dem Start des Childs, was je nach Option /x direkt das Programm
oder die command.com ist, wird der Tastaturinterrupt Int16 angezapft und
das Child gestartet. Die Anzapfung bewirkt dann die Emulation der
Tastendrcke bzw. das Mitschneiden.
 Nach Beendigung des Programms wird (im Record-Fall) dieser 2-Byte-je-Taste-
Puffer gewandelt und geschrieben. Damit dieser Programmteil nicht
whrend der Laufzeit des Childs im Speicher verbleibt, wird er
erst nach seiner Beendigung als Overlay nachgeladen. Das Overlay ist
hierbei keine weitere Datei, sondern in MREC.COM enthalten.

Die Form der Eingabezeile ermglicht ein und denselben Programmaufruf
zum Anlernen wie zur Geisterfahrt. Das kann Tipparbeit sparen helfen.

Die ASCII-Steuerdatei enthlt editierbare ASCII-Zeichen und kann mit jedem
Standard-Text-Editor, wie z.B. EDIT.COM, TURBO.EXE oder NE.EXE bearbeitet
werden.

Hinweis: Bei 'besseren' Texteditoren, wie Word oder WordPerfect, mu
die Ausgabedatei "normaler DOS-Text", niemals "Dokument" sein!

Kommandozeilen-Parameter von MREC:

/? oder /h  Online-Hilfe mit Kurzhinweisen zu allen Parametern

/r  erzwingt selbst bei vorhandener Tastaturmakrodatei die Aufnahme.
 Gleiches wrde das vorherige Lschen jener Datei bewirken

/x  startet das Child-Programm ohne den Befehlsinterpreter command.com
 (bzw. einen mit %comspec% definierten anderen Kommandointerpreter).
 Standardmig wird der Kommandointerpreter geladen, der die Suche
 der Datei im Pfad und die korrekte Ausfhrung von Batch-Dateien
 bernimmt. (nach dem System: La andere arbeiten!) Nachteilig ist,
 da die command.com noch einmal 3 Kilobyte RAM bentigt.
 Wird /x angegeben, wird das Child-Programm direkt ausgefhrt.
 ACHTUNG:
 - Es mu ein kompletter absoluter oder relativer Pfad angegeben werden,
   da der DOS-Suchpfad nicht abgesucht wird!
 - Die korrekte Extension (.COM oder .EXE) mu angegeben werden
 - NIEMALS Batch-Dateien (*.BAT) angeben - sonst Absturz!
 - Die Pfadangabe darf "/" statt "\" enthalten (der offizielle DOS=UNIX-Bug)
 - Die Extension kann auch anders als .COM oder .EXE lauten, wenn das
   entsprechende Programm *ausfhrbar* ist. (Experten-Hinweis)

/nn (nn=Zahl von 0 bis 65535)  verndert die Wiederholrate bei der Tasten-
 statusabfrage. Standardmig steht sie auf 256. Eine Erhhung wird not-
 wendig, wenn bei der Wiedergabe offenbar Tastenanschlge verschluckt
 werden. Eine Erhhung von nn kann ein recht starkes "Einschlafen" des
 Rechners bewirken. Wird dies bemerkt, kann man den Rechner durch Drcken
 irgendeiner Taste auf die Sprnge helfen.
 Bei Angabe von genau nn=65535 wird bei der Statusabfrage stets "keine Taste"
 gemeldet. Eventuell kann das Programm stehenbleiben; dann irgendeine Taste
 drcken und beim nchsten Mal den Wert fr nn verkleinern! Probiere auch
 Parameter /v!

/l  Verhindert, da ein Tastendruck bei stehenbleibendem Programm weiterhilft.
 Dies ermglicht einen sicheren Schutz beim Verlassen des Rechners, da das
 Programm korrekt arbeitet. Whrend der Testphase diesen Schalter bitte
 *nicht* setzen!

/v  aktiviert den Bildschirm-Vernderungs-Test bei jeder Tastenstatusabfrage
 des Programms. Ist der Bildschirm seit dem letzten Zugriff verndert, wird
 der Wiederholungszhler, der von Null bis nn zhlt, zurckgesetzt. Dies
 ist dann hilfreich, wenn ein lngerwhrender Job, z.B. ein Druckjob, nicht
 korrekt funktioniert, und auf dem Bildschirm irgendein Statuswert "zappelt",
 z.B. eine Satznummer oder ein Balkendiagramm. Ursache fr die sonst auf-
 tretenden Fehlverhalten ist ein periodisches ClrKeybrdBuf, welches sich
 naturgem nur sehr schwer programmtechnisch abfangen lt.

/t  Tastaturmakrodatei bersetzen
 Der Typ der Eingabedatei (Text, binr, gescrambelt) wird automatisch erkannt.
 Stansardmig wird in eine editierbare ASCII-Datei gewandelt.

/b  Binrdatei erzeugen (sonst ASCII-Datei)

/bx gescrambelte Binrdatei erzeugen
 Ein Pawort einer existierenden gescrambelten Datei lt sich deshalb
 unter Verwendung der Optionen /t und /bx verndern. Beachte: Ein leeres
 Pawort ist hierbei auch ein Pawort und erzeugt eine gescrambelte Datei!
 Die Zeichenzahl im Pawort ist auf 15 Zeichen beschrnkt. Das Pawort
 ist case-sensitiv, also bei Eingabe bitte auf Shift-Lock achten! Intern
 werden 16 Bit fr den Pawort-Check verwendet.
 Das Pawort-System ist zwar rein prinipiell brauchbar, d.h. an den Inhalt
 der Makrodatei ist an sich schwer heranzukommen. Jedoch lt sich die
 ganze Sache jmmerlich leicht unterlaufen, wenn man mit dem Makro einen
 x-beliebigen Texteditor startet! Eine sptere Version mte hierfr
 wenigstens den korrekten Namen des Zielprogramms abchecken! Aber auch
 hier wre ein simpler Hack, das ausfhrbare Programm umzubenennen...

/s  Anzeige aller mglichen Textmakros. Da die Ausgabe ber mehrere Bildschirm-
 seiten erfolgt, empfiehlt es sich, die Ausgabe ber MORE oder in eine Datei
 umzuleiten. Genaueres s. DOS-Handbuch

Fehlermeldungen:
Sie sind meistens selbsterklrend, bis auf die beiden, die vor oder nach der
Ausfhrung des Child-Programms auftauchen knnten
(Platzmangel fr Meldungstexte):

- Fehler xx beim Ausfhren des Hauptprogramms
   Das Tochterprogramm (i.a. command.com) konnte nicht ausgefhrt werden
  xx=02 (oder 03): Datei (oder Pfad) nicht gefunden
  xx=05: Zugriff verweigert

  Sollte diese Meldung ohne Angabe des Parameters /x auftreten, liegt wohl
  ein schwerer Programm- oder Systemfehler vor, da das bedeutet, da der
  Kommandointerpreter nicht gefunden wurde. Vielleicht hilft neu booten...
  Zum Auffinden des Kdo.-Interpreters wird die Umgebungsvariable COMSPEC
  herangezogen; fehlt diese, wird X:\command.com angenommen, wobei
  X: das Bootlaufwerk ist

  Ansonsten haben Sie bei Fehler 02 den Pfad oder (hufiger) die Extension
  vergessen. Bei Fehler 05 ist ein Sharing-Problem im Netzwerk die einzig
  mgliche Ursache.

- Fehler xx beim Laden des Dekodier-Overlays
   Das fr die Ausfhrungszeit des Tochterprogramms gekrzte Programm
   MREC.COM konnte nicht mehr korrekt verlngert werden.
  xx=02 (oder 03): Datei MREC.COM nicht gefunden
  xx=05: Zugriff verweigert
  xx=08: kein RAM
  xx=10: Lesefehler, Datei zu kurz

  Bei Aufnahme eines Makros kann der RAM-Inhalt nicht mehr als Makrodatei
  gespeichert werden wegen obiger Fehler. Mglicherweise ist inzwischen
  der (remote) Rechner mit dem Programm MREC ausgefallen. Die Meldung 08 kann
  nur beim Aufruf eines TSR auftauchen. Hier hilft am besten das Hochladen
  entweder der TSR oder von MREC.
  Fehler 05 weist auf Sharing-Probleme hin. Ein anderer hat MREC.COM zum
  Schreiben geffnet o.. (was fr ein Schlingel!!) Oder Sie haben
  auf diese Datei Rechte nur zum Ausfhren, nicht zum Lesen vergeben.
  Geben Sie also Leserechte. Fragen Sie ggf. hierzu den Systemverwalter.
  Zum Nachladen wird ParamStr(0) herangezogen, welches den kompletten
  Pfad zur Datei MREC.COM enthlt. Fernstart-Probleme knnen daher nicht
  die Ursache von Fehlermeldungen sein!

  Fehler 10 tritt bei gekrzter Datei auf, dessen meiste Ursache das
  Komprimieren des Programms mittels PKLITE, LZEXE oder DIET ist. Also
  lassen Sie das Programm wie es ist. (Es ist doch gar nicht so lang!)

Enthlt die Textdatei Syntaxfehler, werden entsprechene Meldungen
ausgegeben. Sie sollten diese Fehler umgehend ausbauen.
Eine Textdatei wird an ihrem ersten Wort erkannt. Binrdateien haben ebenfalls
eine Kennung in den ersten 2 Bytes. Wird keines der 3 Formate erkannt,
gibt es eine Fehlermeldung, und MREC bricht ab. Stellen Sie die Datei
wieder korrekt her, lschen sie sie fr eine Neuaufnahme oder geben Sie
beim nchsten Mal in der Kommandozeile ein /r zustzlich an.

Bei allen Optionen kann als Anstrich auch "-" (Minus) verwendet werden.
Da es aber mglich ist, da Dateinamen mit "-" anfangen, mssen solche
Dateien mit einem "-" am Anfang *mehr* angegeben werden.

Alle Optionen sind case-insensitiv, d.h. ob Klein- oder Grobuchstaben
ist vllig egal.

Nicht vergessen, da man MREC auch hochladen kann, wenn's im Speicher
knapp wird!

Aufbau der ASCII-Steuerdatei:
- Einzelne Tasten entsprechen einzelne Buchstaben
- Shift+Buchstabe wird als Grobuchstabe dargestellt
- Control+Taste bzw. Alt+Taste werden als ctrl+x bzw. alt+x dargestellt,
  wobei x die normale Taste darstellt
- Trennzeichen zwischen Tastencodes ist sog. Weiraum, also Spaces, Zeilenenden
  usw.
- Mglich ist auch die direkte Angabe des Tastencodes als Dezimal- oder
  Hexadezimalzahl. Hexzahlen bentigen den Prfix "$".
- Das erste Wort der Datei ist das Kennwort und lautet "MREC#ASCII"
- Alle Angaben sind case-sensitiv, auer die Hexziffern A..F in Hexzahlen!
  Man sollte niemals Gro- und Kleinbuchstaben verwechseln. Im allgemeinen
  gelten NUR Kleinbuchstaben.
- Die Sonderzeichen {[]}\|~@, die auf der deutschen Tastatur nur via AltGr
  erreichbar sind, sind OHNE 'alt+' zu schreiben!
- Der geniale Vorteil einer ASCII-Datei ist ihre Austauschbarkeit bezglich
  anderer Tastaturtreiber. Lediglich MREC.COM mu zum momentanen Treiber
  passen! Die Binrdateien sind i.a. NICHT zwischen verschiedenen Keyboard-
  Layouts austauschbar!
- Augenscheinlich ist selbstverstndlich die Editierbarkeit dieser Datei
Vorgefundene Kodierung: UTF-80