Preh-Werke GmbH & Co. KG
An der Stadthalle
D-97616 Bad Neustadt a. d. Saale
Tel. 09771/92-0
Fax. 09771/92-105

MWXC460.TXT/mk/712/24.03.98                            nderungen vorbehalten

		 MWXC.EXE (Preh MWX-Compiler) Version 4.60
		 -----------------------------------------
		  Copyright (c) Preh, Bad Neustadt 1998
		  -------------------------------------

Inhalt
======
1.    Allgemeines
2.    Befehle
2.1.  Lndercode ................ LANGUAGE
2.2.  Matrixtype ................ TYPE
2.3.  Host-Schnittstelle ........ INTERFACE
2.4.  Signalgeber ............... SOUND
2.5.  Vordefinitionen ........... DEFINE
2.6.  Hotkeys ................... HOTKEYx
2.7.  Autoinput/Modes ........... MODE
2.8.  Wiederholungsrate ......... RATE
2.9.  BCR-Port .................. PORT
2.10. Magnetkartenleser ......... MSR
3.    Tastendefinitionen
3.1.  Spezielle Tasten-IDs
3.2   Scancode-Makros
4.    Kommentare
5.    Parameter zu 2.5. und 3.1.
5.1.  Ebenendefinitionen
5.2.  Attribute
6.    Hinweise
6.1.  MWF-Update
6.2.  PCPOS/PCPOS-JUNIOR Grundbelegung
6.3.  Beispiele


1. Allgemeines
==============
Der MWX-Compiler setzt, die in einer ASCII-Datei (MWF-Datei) festge-
legten Tastenbelegungen und Einstellungen, in eine Binrdatei (MWX-Datei)
um. Dadurch besteht die Mglichkeit Tastaturbelegungen auf einem beliebigen 
Textsystem zu erstellen bzw. zu bearbeiten und diese Belegung in einer 
lesbaren Form zu speichern.
MWF-Dateien sind kompatibel zu den LST-Dateien des Preh-Programmers und
die MWX-Dateien sind identisch zu den gleichnamigen Sicherungsdateien des 
Preh-Programmers. Die MWX-Dateien knnen mit COPY2WX.EXE in die Tastatur
geladen werden.

	    Eingabe                        Eingabe
	       |                              |
	[ ASCII-Editor ]               [ PREH-MWX.EXE ]
	       |                         |    |    |
	 *.mwf |   +---------------------+    |    |
	       |   |           *.lst          |    |
	    [ MWXC.EXE ]                      |    |
		 |                      *.mwx |    |
	   *.mwx |                            |    |
		 +---------------+------------+    | Download/
		 ^               |                 |  Upload
		 |        [ COPY2WX.EXE ]          |
		 |               |                 |
	   [ READWX.EXE ]        +-----------------+
		 |               |
		 |       ! PREH TASTATUR !
	  Upload |       !  MWX / PCPOS  !
		 |               |
		 +---------------+
       
       berblick ber die bestehenden Tools und Dateiformate

Aufgerufen wird der Compiler mit:
    MWXC name[.ext]
Wird keine Erweiterung angegeben wird automatisch .mwf verwendet.

Die MWF-Datei besteht aus einer Folge von Befehlen und Tastendefinitionen.
In einer Zeile darf nur ein Befehl bzw. eine Tastendefinition stehen. 
Bei allen Parametern und Befehlen wird die Gro-/Kleinschreibung ignoriert.


2. BEFEHLE
==========
Alle Befehle stehen blicherweise am Anfang der MWF-Datei. Um besondere 
Effekte zu erzielen, knnen sie aber auch an jeder anderen Stelle der Datei 
stehen. Alle numerischen Eingaben, auer dem Schnittstellenparameter, knnen 
sowohl dezimal als auch hexadezimal (mit nachgestelltem H) angegeben werden.
Achten sie bitte immer darauf, da bei hexadezimalen Zahlen das H angegeben
wird, da sonst diese Zahl als Dezimalzahl interpretiert wird.

2.1. Lndercode
---------------
Syntax:
    LANGUAGE <Tastaturcode>[,S|C]

Mit diesem Befehl wird der lnderspezifische Tastaturcode definiert.
Der Tastaturcode entspricht dem aus den zwei Buchstaben bestehenden
gleichnamigen Code beim DOS-Befehl 'KEYB'.
Beispiele:
    LANGUAGE US
Wird der Code mehrfach definiert, so gilt fr die MWX-Tastatur die letzte
Definition. Alle Tastendefinitionen werden allerdings mit dem vor
der Tastendefinition eingestellten Sprache und den zugehrigen Scancodes  
bersetzt.
Zur Zeit werden folgende Codestze untersttzt:
 <Tastaturcode>   Land/Sprache
      US           Vereinigte Staaten  (Standardeinstellung)
      GR           Deutschland
      FR           Frankreich (FR189)
      UK           Grobritanien (UK166)
      SG           Schweiz(Deutsch)
      SF           Schweiz(Franzsisch)
      IT           Italien (IT142)
      SP           Spanien

Mit dem SC-Code kann die lnderspeziefische Einstellung der Shift-/Capslock
Taste gendert werden. Shiftlock wird nur bei GR und FR als Defaultwert
verwendet. Mit dem entsprechenden Anfangsbuchstaben nach dem Lndercode kann
dieser Wert modifiziert werden.
Beispiele:
    LANGUAGE GR,C   ! deutsche Belegung mit Capslock-Funktion


2.2. Matrixtype
---------------
Syntax:
    TYPE M84|M128|PCPOS|PCJUN|MC80|MC128

Bitte geben sie hier den Matrixtype ihrer Tastatur an. Durch diese Angabe
wird die korrekte Zuordnung von Tasten-ID und Layoutposition ermglicht.
Folgende Typen werden zur Zeit untersttzt
     M84        M 84 W/X
     M128       M 128 W/X (Grundeinstellung)
     M119       M 119 W/X
     PCPOS      PC-POS
		PC-Chip
     PCJUN      PC-Junior
     MC80       MC 80
     MC128      MC 128
     MCJUN      MC-Junior
     MC25       MC 25
     MC35       MC 35


2.3. Host-Schnittstelle
-----------------------
Syntax:
    INTERFACE AT|PC|COM:[<baudrate>],[<parity>],[<datenbits>],[H]

INTERFACE legt die Schnittstelle fest, die bei der angegebenen Tastatur-
belegung verwendet werden soll.
    AT    AT-Tastaturschnittstelle (Standardeinstellung)
    PC    PC-Tastaturschnittstelle
   COM:   RS232-Schnittstelle
	  Fr die Schnittstellenparameter sind folgende Werte zulssig:
	   <baudrate>   300,600,1200,2400,4800,9600,19200,38400
	   <parity>     E,O,N
	   <datenbits>  7,8
	  Das Attribut H schaltet den RS232-Handshake mittels RTS/CTS ein.
	  Wird ein Parameter nicht angegeben, so wird seine Standard-
	  einstellung verwendet (COM,9600,O,8).

Beispiele:
    INTERFACE AT                ! unntig, da Standardeinstellung
    INTERFACE COM:30,E          ! =COM:300,e,8
    INTERFACE COM:              ! =COM:9600,o,8


2.4. Signalgeber
----------------
Syntax:
    SOUND <kl>,<kd>,<al>,<ad>

Mit diesem Befehl knnen Lautstrk und Dauer des Keyklick-Beeps (<kl>,<kd>)
und des Fat-Finger-Alarms (<al>,<ad>) festgelegt werden. Die Lautstrk wird
in Prozent (0 bis 100), die Dauer in ms (20 bis 5100 in 20ms-Schritten)
angegeben.

Beispiel:
    SOUND 33,40,100,400     ! Standardeinstellung
    SOUND 0,20,100,400      ! Allgemein kein Keyklick


2.5. Vordefinition
------------------
Syntax:
    DEFINE [<Ebene>][<Attribute>]

DEFINE ermglicht die Voreinstellung der Parameter fr die Tastendefinition.
Die Voreinstellung wird durch einen neuen DEFINE-Befehl aufgehoben. Alle
Tastendefinitionen nach dem DEFINE-Befehl, die keine Ebene- und Attribut-
angaben besitzen bernehmen die voreingestellten Werte. Die Syntax fr die
Parameter <Ebene> und <Attribut> werden im Kapitel 5 beschrieben.


2.6. Hotkeys
------------
Syntax:
    HOTKEYx [<Ebene>]:[<Hotkeycode>]

Mit diesem Befehl werden die Hotkeys fr die ON-LINE-Programmierung auf der
Haupttastatur definiert. Die ON-LINE-Programmierung wird nur von Tastaturen
mit Verkettungsbuchse untersttzt.
HOTKEY0 legt den Hotkey fr die String-ON-LINE-Programmierung und HOTKEY1
fr die Singelkey-ON-LINE-Programmierung fest.
Die Syntax fr den Parameter <Ebene> wird im Kapitel 5 beschrieben. Das
Ebenenkrzel 'K' wird nicht untersttzt.
Die Syntax fr <Hotkeycode> entspricht den Tastenbelegungsstrings (Kap. 3).
Es wird jedoch nur das erste Zeichen/Scancode-Makro ausgewertet.

Beispiel:
    HOTKEY0 +C:"{F1}"   ! Ctrl+F1 als Hotkey1
    HOTKEY1 +A:"{F1}"   ! Alt+F1 als Hotkey2
    HOTKEY0   :"{SYS}"  ! Grundeinstellung
    HOTKEY1 +C:"{SYS}"  ! Grundeinstellung


2.7. Autoinput/Modes
--------------------
Syntax:
    MODE [+|-<Code>,] [+|-<Code>] ...

Mit Mode werden Sonderfunktionen gendert, die sich auf die optionellen 
Module (BCR, KL usw.) beziehen.
Die gewnschte Einstellung wird durch das Vorzeichen ('+'=ein,'-'=aus)
und den funktionsspezifischen Code definiert.

   <Code>   Vorzeichen '+'           Vorzeichen '-'
  -----------------------------------------------------------------
    MSR    *Autoinput MSR an         Autoinput MSR aus
    BCR    *Autoinput BCR an         Autoinput BCR aus
    FCR    *Autoinput FCR/FSR an     Autoinput FCR/FSR aus
    KL     *Autoinput KL an          Autoinput KL aus

    KVK     KVK-Format: FestFormat  *KVK-Format: ASN.1-Format
    BA0     Betriebsart 0 whlen     ---
    BA1    *Betriebsart 1 whlen     ---
    BA2     Betriebsart 2 whlen     ---

    EF     *EF-Kommandos zulassen    EF-Kommandos sperren
    EC     *EC-Kommandos zulassen    EC-Kommandos sperren
    MCO     Moduldaten: Make        *Moduldaten: Make/Break
    IEK    *Init external. Keyb.     kein Init external. Keyb.

Mit * gekennzeichnete Einstellungen entsprechen der Grundeinstellung.

Beispiel:
    MODE -EC -BCR   ! EC-Kommandos und Barcodereader sperren

VORSICHT! Mittels EF-Kommandos werden die Einstellungen der Tastatur
gesteuert und gendert. Wird '-EF' gewhlt so kann u.a. das Lesen und
Schreiben der MWX-Dateien von bzw. zur Tastatur nicht mehr vollzogen werden.
Wird eine MWX-Datei in die Tastatur geladen die EF-Kommandos sperrt, so kann
dieser Zustand nur durch das Zurcksetzen der Tastaturelektronik aufgehoben
werden.

Mittels EC-Kommandos vom Rechner werden alle LCD-Daten an das LCD-Modul
(falls vorhanden) gesendet.

Die Daten der optionellen Gerte der Tastatur Magnetkarten-Leser (MSR),
Barcode-Leser (BCR), Funktions-Schlo (KL), Kellnerstift (FSR) und Funk-
tionskarte (FCR) werden standardmig bei einer entsprechenden Aktion bzw.
nderung am entsprechenden Modul gesendet (Autoinput). Diese Funktion kann
durch den zugehrigen Code ausgeschalten werden.

KVK legt das Ausgabeformat fr den KVK-Lesers der PC-Chip-KVK fest.
PC-CHIP-KVK0 / Tastatur-Version (90313-004/0000)
 BA0  ASCII-Ausgabe beim Einstecken der KVK
 BA1  ASN.1-Ausgabe nach senden der Befehlssequenz EFh 26h (Default)
 BA2  ASCII-Ausgabe beim Einstecken der KVK (schneller als BA0,
      funktioniert jedoch nicht bei allen Systemen)

PC-CHIP-KVK2 / RS232-Version (90313-004/0002)
 +KVK        ASCII-Ausgabe nach KBV-Spec.
 -KVK        ASN.1-Ausgabe nach KBV-Spec. (Default)

Alle KVK-CODES (KVK, BA0, BA1, BA2) beeinflussen sich gegenseitig.
So ist +KVK zu +BA0 und -KVK zu +BA1 identisch .Es gilt bei Mehrfach-
nennungen der letzte Code.


MCO ermglicht die Ausgabegeschwindigkeit aller Moduldaten zu verdoppeln.
Dies wird durch +MCO erreicht, indem alle Breakcodes des Datenstroms unter-
drckt werden. Bestimmte Systeme bestehen auf die Breakcodeausgabe. Die
Grundeinstellung ist deshalb -MCO.

Durch -IEK wird die in der Grundeinstellung aktive Initailisierung eines
Keyboards nach dem Einstecken an der Verkettungsbuchse unterbunden.
Die Initalisierung erfolgt fr das externe Keyboard genauso als ob das
Keyboard an einen Rechner gesteckt wrde.


2.8. Wiederholungsrate
----------------------
Syntax:
    RATE <Typematicrate>,<Delay>,<Slowoutputspeed>

Mit RATE werden die Parameter fr die Autorepeatfunktion definiert. 
<Typematicrate> gibt die Wiederholungsrate in Zeichen pro Sekunde (cps) an.
Zulssige Werte sind 2, 10, 20 und 30 cps.
Mit <Delay> wird die Wartezeit in ms nach dem ersten Zeichen definiert.
Zulssige Werte sind hier 250, 500, 750 und 1000 ms
<Slowoutputspeed> gibt die Ausgabegeschwindigkeit fr Tastenbelegungen und
Gertedatenfelder mit der Option 'slow output' an.
Zulssige Werte sind DEFAULT, FAST, MEDIUM, SLOW und VERY SLOW. Mit DEFAULT 
wird diese Geschwindigkeit auf den 4fachen Wert der Typematicrate des
Rechners eingestellt (1/4 der Geschwindigkeit, s.a. DOS-Handbuch: MODE-
Befehl).

Beispiel:
    RATE 20,500,DEFAULT       ! Grundeinstellung


2.9. BCR-Port
-------------
Syntax:
    PORT [<baud>,][<parity>,][<datenb>,][<stopb>,][NRTS,]["<Initstring>"]
Mit dem BCR/RS232-Modul knnen RS232-Gerte (insbesondere Barcodereader)
an die Tastatur angeschlossen werde. Hierdurch ist es mglich deren Daten
ber die Tastaturschnittstelle an den Host zu bergeben. PORT initialisiert
diese Schnittstelle und definiert den <Initstring>, der nach jeden Power-On-
Reset an diese Schnittstelle gesendet wird.
Fr die Schnittstellenparameter sind folgende Werte zulssig (Fehlende
Parameter werden durch ihre Defaultwerte (*) ersetzt) :
   <baud>rate   300,600,1200,2400,4800,9600*,19200
   <parity>     E*,O,N
   <datenb>its  7*,8
   <stopb>its   1,2*
Mit den Parameter NRTS wird die Handshake Untersttzung abgeschalten.
In der Defaulteinstellung wird der Handshake untersttzt.
Im Initalisierungsstring haben folgende Teilstrings besondere Bedeutungen:
   \\    Zeichen '\'
   \"    Zeichen '"'
   \^    Zeichen '^'
   \xhh  hexadezimal codierte ASCII-Code (Bsp. \x41='A')
   ^c    Control-Code (Bsp: ^a=\x01='')

Beispiel:
    PORT 300,o,8,1,,"TEST"      ! ohne Handshake


2.10. Magnetkartenleser
-----------------------
Syntax:
    MSR [NA,][N1,][N2,][N3,][NSE,][LRC,][M3,]["<BadReadString>"]

Der Magnetkartenleser kann bis zu drei Spuren folgender Normen lesen:
   Norm                     ISO 7811    ISO 7811    ISO 7811    JIS X6302
   Spur                       1           2           3          JISII
   max. Zeichenzahl          79          40         107           72
   Spurdichte/bpi           210          75         210          210
   Wortlnge o. Parity        6           4           4            7
   Startsentinel (ASCII)    05h('%')    0Bh(';')    0Bh(';')      7Fh
   Endsentinel (ASCII)      1Fh('?')    0Fh('?')    0Fh('?')      7Fh
Die Ausgabe erfolgt ber die Tastaturschnittstelle mit Scancodes, d.h. die
Daten werden in der gleichen Codierung ausgegeben als erfolge die Eingabe
ber das Tastenfeld. Voraussetzung hierzu ist, da die Lndereinstellung des
Tastaturtreibers (z.B. KEYB GR) mit der Language-Einstellung der Tastatur
(z.B. GR) bereinstimmt. Die Magnetkartenleserspuren werden in der Reihen-
folge ihrer Spurnummer ausgegeben. Ist eine JISII-Spur vorhanden, so wird
diese anstatt der niedrigsten fehlenden ISO-Spur ausgegeben.

Zu jeder Spur kann ein String definiert werden, der vor (Header) und nach
(Terminator) den Spurdaten ausgegeben wird. Die Geschwindigkeitsformatierung
des Headers wird fr die Spurdaten mit bernommen, so kann ein berlauf des
Systempuffers bei groen Datenstzen vermieden werden.
Die Formatierung von Header und Terminator ist identisch zu den Tasten-
definitionen (Kap. 3.1.). Die Grundeinstellung fr Header und Terminator sind
Leerstrings (nur Spurstring ausgeben).

Die sofortige Ausgabe der Spurdaten nach Einlesen der Magnetkarte kann durch
disablen der Option Autoinput (NA) verhindert werden. Die Daten bleiben dann
gespeichert bis sie entweder mit der Befehlssequenz EFh 1Ah oder Efh 18h
abgerufen werden. Zu dieser Funktion gehren drei Befehlssequenzen, die an
die Tastatur gesendet werden knnen:
    EFh 18h  MSR Autoinput  an
    EFh 19h  MSR Autoinput  aus
    EFh 1Ah  MSR-Daten lesen
Die in der Tastenbelegung abgelegte Grundeinstellung ist 'Autoinput an'.

Mit N1,N2 und N3 kann die entsprechende Spur des Magnetkartenlesers ge-
sperrt bzw. freigegeben werden. Hiermit wird auch der Header und Terminator
von nicht vorhandenen MSR-Spuren unterdrckt.

Jede Magnetkartenspur hat ein Startzeichen (Startsentinel) und Endzeichen
(Endsentinel) mit denen die Daten eingerahmt werden. In der Grundeinstellung
werden diese Zeichen mit ausgegeben. Um eine einfache Handhabung von
numerischen MSR-Daten zu ermglichen knnen die Sentinels durch NSE unter-
drckt werden.

Die auf der Magnetkarte codierte Prfsumme (XOR) wird normalerweise nicht mit
bertragen. Mit gesetzten LRC (Longitudinal Redundancy Check) wird diese auch
bertragen und mit der gleichen ASCII-Konvertierung wie alle anderen Zeichen
am Ende angehngt. Durch die ASCII-Konvertierung sind bei der Prfsumme nur
die Stellen gltig, die durch die Wortlnge definiert sind. Die Prfsumme ist
immer diejenige, die auf der Karte codiert ist. Werden Start- und Endsentinel
disabled, mssen diese entsprechend der verwendeten Norm mit der bertragenen
Prfsumme verknpft werden um die Prfsumme des aktuellen Datenstrings zu er-
halten.

Normalerweise erkennt die Tastatur ihre Hardwarekonfiguration alleine. In
Sondertastaturen mu ein 3-Spur-MSR zustzlich mit dem Flag M3 identifiziert
werden.

Mit dem <BadReadString> kann ein String definiert werden, der als Datenstring
bei Fehllesungen (defekte Karte, Datensatz nicht nach Norm, ...) gesendet
wird. Im String wird das Token"/#" durch die Fehlernummer ersetzt:
	0       kein Startsentinel erkannt
	1       Parity-Fehler
	2       Prfsummenfehler
Der Fehlercode wird bei gesetzter Sentineloption mit Start- und Endsentinel
gesendet.

Durch die verschiedenen Modulkonzepte werden bei den einzelnen Magnetkarten-
lesermodulen die Parameter M3, LRC und BadReadString nicht bei allen Tasta-
turtypen untersttzt!

Das Ausgabeformat ist wie folgt strukturiert:
 Header1 Startsentinenl1 Daten1 Endsentinel1 Prfsumme1 Terminator1
 Header2 Startsentinenl2 Daten2 Endsentinel2 Prfsumme2 Terminator2
 Header3 Startsentinenl3 Daten3 Endsentinel3 Prfsumme3 Terminator3


Beispiel1:
    MSR NSE,N1,N3,"FEHLER-Nr.\#"        ! nur Track2 mit Fehlercode
Beispiel2:
  Tastenbelegung:
    M1H: "msr1"     M1T: "ende1{Return}"
    M3H: "msr3"     M3T: "ende3{Return}"
    MSR  lrc,n2
  Ausgabe:
    msr1%DATEN1?Qende1
    msr3;123?4ende3


3. Tastendefinition
===================
Syntax:
    <Tasten-ID> [<Ebene>][<Attribute>]:"<ASCII-String>"

Der <Tasten-ID> setzt sich aus einem Buchstaben (A..H), der die Zeile Charak-
terisiert, und zwei Ziffern (01..23), die die Spalte festlegen, zusammen. Aus-
gangspunkt der Zhlweise ist immer die Taste unten links (A01).

   __ H01 H02 H03 H04 H05 H06 H07 H08 H09 H10 H11 H12 H13 H14 H15 H16
      G01 G02 G03 G04 G05 G06 G07 G08 G09 G10 G11 G12 G13 G14 G15 G16
      F01 F02 F03 F04 F05 F06 F07 F08 F09 F10 F11 F12 F13 F14 F15 F16
      E01 E02 E03 E04 E05 E06 E07 E08 E09 E10 E11 E12 E13 E14 E15 E16
      D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16
      C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14 C15 C16
      B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 B16
      A01 A02 A03 A04 A05 A06 A07 A08 A09 A10 A11 A12 A13 A14 A15 A16
						     |

	      Zuordung der Tasten-IDs fr M 84/128 W/X


   G01 G02 G03 G04 G05 G06 G07 G08 G09 G10 G11 G12 G13 G14 G15 G16 G17
   F01 F02 F03 F04 F05 F06 F07 F08 F09 F10 F11 F12 F13 F14 F15 F16 F17
   E01 E02 E03 E04 E05 E06 E07 E08 E09 E10 E11 E12 E13 E14 E15 E16 E17
   D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16 D17
   C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14 C15 C16 C17
   B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 B16 B17
   A01 A02 A03 A04 A05 A06 A07 A08 A09 A10 A11 A12 A13 A14 A15 A16 A17
	      
	      Zuordung der Tasten-IDs fr M 119 W/X
	      

F: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    16 17 18   19 20 21   22 23

E: 01 02 03 04 05 06 07 08 09 10 11 12 13[14 15]   16 17 18   19 20 21   22 23
D:[01] 02 03 04 05 06 07 08 09 10 11 12 13 [ 14]   15 16 17   18 19 20   21 22
C:[01 ] 02 03 04 05 06 07 08 09 10 11 12 13 [14]   15 16 17   18 19 20   21 22
B:[01] 02 03 04 05 06 07 08 09 10 11 12 [13  14]   15 16 17   18 19 20   21 22
A:[01 ]  [02 ]  [      03       ]  [ 04 ] [ 05 ]   06 07 08   09 10 11   12 13

	      Zuordung der Tasten-IDs fr PC-POS


       G:  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15  16
       F:  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15  16
       E:  01 02 03 04 05 06 07 08 09 10 11 12 13[14 15] 16
       D: [01] 02 03 04 05 06 07 08 09 10 11 12 13 [ 14] 15
       C: [01 ] 02 03 04 05 06 07 08 09 10 11 12 13 [14] 15
       B: [01] 02 03 04 05 06 07 08 09 10 11 12 [13  14] 15
       A: [01 ]  [02 ]  [      03       ]  [ 04 ] [ 05 ] 06

	    Zuordung der Tasten-IDs fr PCPOS/MC-JUNIOR

      H01 H02 H03 H04 H05 H06 H07 H08 H09 H10 H11 H12 H13 H14 H15 H16
      G01 G02 G03 G04 G05 G06 G07 G08 G09 G10 G11 G12 G13 G14 G15 G16
   __ F01 F02 F03 F04 F05 F06 F07 F08 F09 F10 F11 F12 F13 F14 F15 F16
      E01 E02 E03 E04 E05 E06 E07 E08 E09 E10 E11 E12 E13 E14 E15 E16
      D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16
      C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14 C15 C16
      B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 B16
      A01 A02 A03 A04 A05 A06 A07 A08 A09 A10 A11 A12 A13 A14 A15 A16
						      
	      
	      Zuordung der Tasten-IDs fr MC 80/128

Die Syntax fr die Parameter <ebene> und <attribut> werden im Kapitel 5
beschrieben.
Der ASCII-String setzt sich aus beliebig vielen Teilstrings zusammen, die
durch ein Komma getrennt werden. Die Teilstrings werden durch Apostrophe  
am Anfang und Ende gekennzeichnet. Die Zeichen '"','\','{','}' und '+' im 
String werden durch ein vorangestelltes '\' markiert.

Beispiel:
    A01:"Falsch:"\{"      ! Wunschstring: Falsch:"\{ 
    B02:"Richtig:\"\\\{"  ! O.K.  Ergibt: Richtig:"\{

Alternativ dazu knnen auch ASCII-Codes bzw. Scancodes dezimal oder 
hexadezimal angegeben werden. Die Zahlenbasis fr diese Eingaben wird 
durch das Kommando
    BASE H|Z
voreingestellt. Unabhngig von der Voreinstellung kann durch das Anhngen
von 'H' bzw. 'Z' an den Zahlencode die Hex-Darstellung bzw. die Dezimal-
darstellung gewhlt werden.
Beispiel:
    BASE H
    A01: %2A %2AH     ! beide Codes identisch
    A02: %33 %33Z     ! Codes unterscheiden sich

ASCII-Codes werden durch ein vorangestelltes '#' gekennzeichnet.
Beispiele:
    A01:"Zeile1",#13,"Zeile2",#13d
    C03:"eins recht und zwei hoch",#0dh

Die Bedeutung der ASCII-Codes unterscheidet sich teilweise, wegen den 
besonderen Eigenschaften der Tastaturschnittstelle.
DOS lst innerhalb einer ASCII-Datei beim Code 13 ein Return und beim Code 10
das dazugehrige Linefeed aus. MWXC interpretiert den ersten Code entsprechen 
der Taste {Return} als (Return+Linefeed) und den zweiten entsprechend der 
Tastenkombination {Ctrl+Return}. Um die Funktion Linefeed zu erhalten, mu 
die Tastenkombination  {Ctrl + L} nachgebildet werden.

Insbesondere um besondere Effekte zu erzielen, knnen auch Tastaturscancodes
durch ein vorangestelltes '%' eingebunden werden.
Beispiele:
    A01:%29h    ! '^' als Deathkey
    A02:"^"     ! wird als ALT-Sequenz gesendet
Scancodes knnen alternativ durch '{\xNN}' als Hex-Code im Teilstring  
definiert werden.
Beispiel:
    A03:"{\x2A\x2a}"  ! Ergebnis entspricht A03: %2Ah %2Ah


3.1. Spezielle Tasten-IDs              
-------------------------
Die Daten der optionellen Gerte der Tastatur Magnetkarten-Leser (MSR), 
Barcode-Leser (BCR), Funktions-Schlo (KL), Kellnerstift (FSR) und Funk-
tionskarte (FCR) knnen von einem Startstring (Header) und einem Endstring 
(Terminator) eingerahmt werden.
Diese Strings knnen mit nachfolgenden Tasten-IDs genauso wie alle anderen
Tasten definiert werden.

    M1H    Header-String fr MSR Track 1
    M1T    Terminator-String fr MSR Track 1
    M2H    Header-String fr MSR Track 2
    M2T    Terminator-String fr MSR Track 2
    M3H    Header-String fr MSR Track 3
    M3T    Terminator-String fr MSR Track 3
    BCH    Header-String fr Barcode-Leser
    BCT    Terminator-String fr Barcode-Leser
    FIH    Header-String fr Funktionsstift/-karte stecken und Chipkarte
    FIT    Terminator-String fr Funktionsstift/-karte stecken und Chipkarte
    FRH    Header-String fr Funktionsstift/-karte ziehen
    FRT    Terminator-String fr Funktionsstift/-karte ziehen
    KLH    Header-String fr Funktionsschlo
    KLT    Terminator-String fr Funktionsschlo


3.2 Scancode-Makros
-------------------
Bei der Eingabe der Teilstrings mssen alle Tasten, die nicht durch einen
ASCII-Code dargestellt werden knnen durch ihren Tastennamen ersetzt werden,
z.B. {F1} fr die F1-Taste, {Ctrl+Up} fr Ctrl-Cursor nach oben. Die Tasten-
bezeichnungen (Scancode-Makros) entnehmen sie bitte folgender Tabelle:

    F1 .. F12     Funktionstasten F1 .. F12
    FS1 .. FS12   SHIFT + Funktionstaste F1 .. F12
    FC1 .. FC12   CTRL + Funktionstaste F1 .. F12
    FA1 .. FA12   ALT + Funktionstaste F1 .. F12
    N0 .. N9,N.   Nummernblockposition
    #0 .. #9,#.   Nummernblockcodes
    SPACE         Zwischenraum (wird nur am Zeilenende
		  verwendet)
    BACKSPACE     BackSpace-Taste (Abkrzung BS erlaubt)
    PAUSE         Pause-Taste
    BREAK         Break-Taste ( = CTRL + Pause)
    EMPTY         Leerer String
    NO_DATA       Datenstring wird unterdrckt (nur bei Gerte-IDs)
    INS           INS-Taste
    DEL           DEL-Taste
    PGUP          PgUp-Taste
    PGDN          PgDn-Taste
    HOME          Home-Taste
    END           End-Taste
    SYS           SysRq-Funktion einschalten
    SYSBREAK      SysRq-Funktion ausschalten
    NUMLOCK       NumLock-Taste
    SCROLL-LOCK   Scroll-Lock-Taste
    PRTSC         PrtSc-Taste
    ESC           ESC-Taste
    TAB           Tab-Taste
    LEFT          Cursor nach links
    RIGHT         Cursor nach rechts
    UP            Cursor nach oben
    DOWN          Cursor nach unten
    RETURN        RETURN-Taste
    ENTER         ENTER-Taste
    PLUS          Plus-Taste im Numerikblock
    MINUS         Minus-Taste im Numerikblock
    STAR          x-Taste im Numerikblock
    DIV           /-Taste im Numerikblock
    DELAY         0.5 sec Ausgabeverzgerung
    LED_ON        Tasten-LED an (nur M W/X bel)
    LED_OFF       Tasten-LED aus (nur M W/X bel)
    RESET         RESET-Funktion
    NUL           NULL-Byte
    SHIFT         Shift-Taste
    CTRL          Ctrl-Taste
    ALT           Alt-Taste
    ALTxxx        Alt-Sequenz mit den Code xxx (z.B. ALT27=ESC)
    ALTGR         AltGr-Taste
    SHIFT+..      Shift-Funktion von ..
    CTRL+..       Ctrl-Funktion von ..
    ALT+..        Alt-Funktion von ..
    ALTGR+..      AltGr-Funktion von ..

    LWIN+..       Left-WIN95-Funktion von ..
    RWIN+..       LRight-WIN95-Funktion von ..
    APP           WIN95-Applikation-Taste

Beispiele:
   {F1}, {Ctrl+F5}, {up}, {Ctrl+A}, {Delay}, {Alt+X}, ...


4. Kommentare
=============
Syntax:
    ! <Kommentar>

Kommentare werden mit dem Ausrufezeichen (!) eingeleitet. Ab diesem Zeichen
werden alle Eingaben bis zum Zeilenende ignoriert.


5. Parameter
=============

5.1. Ebenendefinition
---------------------
Mit der Ebenendefinition (Parameter <Ebene>) wird festgelegt bei welchen
Voraussetzungen die Stringausgabe aktiviert wird. Ist eine Definition nicht
angegeben so wird diese Vorausetzung ignoriert. Ein vorangestelltes '+'
signalisiert, da diese Voraussetzung vorhanden sein mu, ein '-', sie
soll nicht vorhanden sein.
Die nachfolgende Tabelle gibt Auskunft ber die mglichen Voraussetzungen
und ihre dazugehrigen Krzel:

     L    Tasten-LED aktiv/nicht aktiv
     S    Shift-Taste gedrckt/nicht gedrckt
     C    Ctrl-Taste gedrckt/nicht gedrckt
     A    linke Alt-Taste gedrckt
    SL    Scroll-Lock eingeschalten
    NL    Num-Lock eingeschalten
    CL    Caps-Lock eingeschalten
     K    (siehe unten)

Mit 'K' wird definiert zu welchen Zeitpunkt der String gesendet wird.
Ohne Angabe wird er beim Drcken der Taste gesendet. Mit '-K' wird er
beim Lsen der Taste gesendet und '+K' ermglicht das Senden beim Drcken
UND Lsen.
Beispiele:
    A05 -S+A:"A05"  ! <Alt> mu und <Shift> darf nicht
		    ! gedrckt sein
    G01 +K:"d"      ! nach Bettigung (drcken und lsen) dieser
		    ! Taste erscheint "dd"
    G01 -K:"l"      ! erst beim Lsen der Taste erscheint "l"
    F16 +K+CL:"F"   ! senden beim Drcken und Loslassen wenn
		    ! Caps-Lock aktiv ist


5.2. Attribute
--------------
Der Parameter <Attribut> ermglicht Ihnen bestimmte Eigenschaften
der Taste bei der Tastendefinition einzustellen.

    /K    Keyklick: Stringausgabe mit akustischen Tasten-Klick
    /A    Autorepeat: Stringausgabe mit Autorepeat-Funktion
    /P    Protected: String durch ONLINE-Programmierung nicht vernderbar
    /M    Taste sendet Makecodes beim Drcken und Breakcodes beim Lsen
	  Dieses Attribut mu angegeben werden wenn eine <Shift>-,
	  <Ctrl>-Taste usw. definiert werden soll
    /R    Restore: Ebene nach dem Senden nicht restaurieren.
	  Attribut fr Lock-Funktionen (z.B. Ctrl-Lock)
    /L    sLow output: langsame Zeichenausgabe **)
	  (=4fache Repeatgeschwindigkeit)
    /C    wandelt den String nicht in Scancodes um *).
    /S    Standard: Entspricht der Kombination +K/K/A/M/R und ist die
	  Standardeinstellung bei der Single-Key Online-Programmierung
	  (nicht vordefiniert)

*)  Mit dem Attribut /C versehene Strings knnen nur folgende Macros
    in der Form {...} eingegeben werden:

    SHIFT+...  Shift-Funktion der nachfolgenden Taste
    CTRL+...   Ctrl-Funktion  der nachfolgenden Taste

    BACKSPACE  Backspace-Funktion (ASCII: 08h)
    BS

    ESC        Escape-Funktion    (ASCII: 1Bh)

    TAB        Tab-Funktion       (ASCII: 09h)
    HT

    RETURN     CR-Funktion        (ASCII: 0Dh)
    ENTER
    CR

    LINEFEED   LF-Funktion        (ASCII: 0Ah)
    LF

    DEL        DEL-Funktion       (ASCII: 7Fh)

**) Wird bei dem Gerte-Header das Attribut /L angegeben so wird sowohl der
    Header als auch der Datenstring langsam ausgegeben.


6. Hinweise
===========

6.1. MWF-Update
---------------
Die Syntax hat sich gegenber lterer MWXC-Versionen gendert. Die alte
Syntax wird abgesehen von den Tastendefinitionen untersttzt. Ergeben sich
trotzdem Probleme so aktualisieren sie bitte ihre alten MWF-Dateien.

6.2. PCPOS/PCPOS-JUNIOR Grundbelegung
-------------------------------------
Um eine NEUE PCPOS- bzw. PCPOS-JUNIOR-Belegung zu erstellen, nutzen sie bitte
die Grundbelegung in der entsprechenden *.MWF-Datei . Hier sind schon alle
Tastenbelegungen fr MF2-Tastaturen vordefiniert. Kopieren sie diese Datei
mit ihren eigenen Namen (z.B. COPY PCPOS.MWF neu.MWF) und fgen sie in der 
neuen Datei ihre eigenen Definitionen hinzu.

6.3. Beispiele
--------------
Insbesondere Kombinationen der Ebenenparameter K und dem Attribute /M 
ermglichen besondere Effekte.
! BEISPIEL
! M=Makecode 
! B=Breakcode
!                          drcken  lsen    Bemerkung
A01     :"a"            !    M B             Normale Ausgabe fr Strings
A01 -k  :"a"            !            M B
A01 +k  :"a"            !    M B     M B
A01   /m:"a"            !     M
A01 -k/m:"a"            !             B
A01 +k/m:"a"            !     M       B      Mit Attribut /A Standardtaste
			!                    einer MF-Tastatur
B01 +k/m/r:"{CTRL}"     !     M       B      CTRL-Taste
B01   /m/r:"{CTRL}"     !     M              CTRL-LOCK-Taste !!!

