Könntest du das bei der einen Datei mal in eine S19-Datei umwandeln, ich habs nämlich nciht so ganz kappiert, wäre echt super.
Hier schonmal der ASM-Code
Wenn ich das richtig sehe, ist der erste Teil sowiso nciht entscheidend.Code:; Scancode AT-Tastatur ; Author Martin Kaup (kaup@nettypes.de) ; nettypes GmbH ; Datum 08.04.2002 ; Code ist frei verfügbar, und dient als Beispiel ; Ein Scancode besteht aus 11 seriellen bits. ; 1. Startbit 2.-9. Datenbits, Paritybit und Stopbit ; Scancode (22) 00010110 zB. entspricht der Taste 1 (nicht in NUM-Block!) ; Es gibt Tasten (zB. Entf, Ende, Bild hoch etc., die senden zwei Codes. 1. den ESC-Code 224(dezimal) und dann den ; Tastencode 112(dezimal) bei der Taste Einfg. ; Die Tastatur übermittelt auch noch ob eine entsprechende Taste losgelassen wurde mit dem Code 240(dezimal). ; Bsp. Die Taste 1 (nicht in NUM-Block!) ; Ein einzelner Anschlag besteht also aus 33 Takten. Tastencode - Taste wurde losgelassen - Tastencode. ; Es sei denn, es wurde eine 'ESC'-Taste gedrückt - dann liegen uns 55 Takte vor. ; Also: LS MS ; BitNr.: 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11 ; BitArt: S|D0|D1|D2|D3|D4|D5|D6|D7| P| s S=Startbit, Dn=Datenbits, P=Paritybit ODD, s=Stopbit ; S| 0| 1| 1| 0| 1| 0| 0| 0| P| sS| 0| 0| 0| 0| 1| 1| 1| 1| P| sS| 0| 1| 1| 0| 1| 0| 0| 0| P| s ; Weitere Details bitte dem Code entnehmen, oder per E-Mail. ; Die Anschlüsse der Tastatur, Clock und Data liegen an 0,01 und 1,01 Data. ; Die Daten liegen mit fallender Flanke der Clock an. Beide Signale sind low-aktiv. ; Das Ergebnis des Scancode liegt in ERG (A4) vor. ; Ein Umsetzung der Scancodes in ASCII ist noch im Basic nötig. ; Scancode:ASCII:Zeichen ; 22:49:1 30:50:2 38:51:3 37:52:4 ...etc. ; Nächster Schritt wird sein, da es sich beim AT-Keyboard um ein bidirektionales Protokoll handelt, die LED's ; und weitere "Setup"-Funktionen (Delay,Repeat...) zu aktivieren. ; Der Code erhebt kein Anspruch auf Vollständigkeit oder Funktion. Mir ging es nur um die Möglichkeit eine preiswerte ; Lösung zur Ansteuerung von Relais mit einer Tastatur zu haben. ; Der Code als solcher lässt sich bestimmt noch Optimieren, aber ich hab's mit Assembler nicht so. ; Ich habe auf die 'ESC'-Sequenz der 'ESC'-Tasten verzichtet. Ich hoffe nur, dass es keine Normal-Codes mit gleichen ; Codes gibt, so dass es notwendig wird die ESC-Sequenzen mit Auzuwerten, denn der Code ist mit 80 Sys-Bytes ; noch entschieden zu gross. ; Viel Spass mit den Scancodes ; Martin Kaup im April 2002 :-} porta equ $00 portb equ $01 ddrb equ $05 A1 equ $A1 A2 equ $A2 A3 equ $A3 ERG equ $A4 org $101 sei ; Interrupts Maskieren, damit wir die grüne LED behalten! ; bclr 0,ddrb ; bit0 auf portb als Eingang (CLock) ; bclr 1,ddrb ; bit1 auf portb als Eingang (Data) ldx #9 ; 1. bit ist Startbit, es folgen 8 Datenbit jsr read1 sta A1 ; letzten 8bit in A1 ldx #3 ; 1. bit ist 2. bit ist Stopbit, 2. es folgen 8 Datenbit jsr read1 ldx #8 jsr read1 sta A2 ldx #3 jsr read1 ldx #8 jsr read1 sta A3 lda #!240 cmp A1 beq SCistA2 cmp A2 beq SCistA3 lda #!224 cmp A1 beq SCistA2 lda A1 cmp A2 beq SCistA2 rts SCistA2 lda A2 bra raus SCistA3 lda A3 bra raus raus sta ERG rts read1 brclr 0,portb,read1 read2 brset 0,portb,read2 brset 1,portb,w1 ; 8 mal Databit = Databyte w1 rora decx bne read1 rts
MFG Moritz







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen