tasten codes
-
das mit al wusst ich auch(hat mich nur vertippt
)und sind 72, 75 und so nich eigentlich buchstaben??????????? ich hab halt in nem tutorial gelesen, dass jeder taste ein hexcode zugeortnet ist. also dacht ich mir okguckste halt mal in dein tafelwerk und da sehe ich , dass die pfeiltasten dort nicht aufgeführt sind!
wie krieg ich das nu raus???????????????????????cu
-
ich hab grad rausgefunden,dass wenn in al ooh steht eine der pfeiltasten gedrückt wurde. ich vermute einfach mal, dass jetzt in ah steht welche!!!!
probier ich jetzt halt noch 'n bisschen rum
-
72 und 75 sind als dezimalzahlen gemeint.
soweit ich weiss spielt ah keine rolle, was soll ah auch für eine rolle spielen, wenn "in al,60h" nur einen wert in al reinschreibt und ah gar nicht berührt??hab mal ein pascalprogramm geschrieben, das zeigte
72 = oben
75 = links
80 = unten
77 = rechtsuses crt; begin while port[$60] <> 1 do begin gotoxy(1,1); clrscr; writeln(port[$60]); repeat until port[$3da] and 8=8; end end.
falls du nen pascal compiler hast kannst du ausprobieren was passiert wenn du schreibst:
while port[$60] <> 1+128 do beginoder
while port[$60] <> 72+128 do begindie 128 heisst dass das bit #7 gesetzt ist, wenn das der fall ist dann wurde die taste gerade losgelassen und tada!!! das programm beendet sich wenn die jeweiligen tasten gerade losgelassen wurden ...
lies dir einfach nochmal meinen vorigen post durch.
-
lauit meiner ascii tabelle ist 72="H"!!!
das verstehe ich nich wirklich!!!!!!!!!!!!!
-
laut meiner auch, aber wir reden hier über tastencodes und nicht über ascii.
das sind 2 verschiedene dinge.
-
stimmt jetzt wo de das so sagst!!!
gibts irgendwie so ne art tabelle wo die alle aufgelistet sind???danke für die hilfe!
-
Hi.
@<wasiliy>:
Wieso benutzt du nicht die DOS oder BIOS-Funktionen?
Bei den Pfeiltasten ist es AFAIK nun gerade so, dass die Ext-Keycodes die Pfeiltasten auf dem Numblock sind, sodass keine Doppeldeutigkeiten auftreten koennen, aber ideal ist das trotzdem nicht gerade:
Entweder laeuft bei aktiviertem Keyboard-Interrupt irgendwann der Tastaturpuffer ueber, was zur Folge hat, dass jeder Tastendruck von diesem schoenen -wahrscheinlich jedem von uns verhassten - Piepton begleitet wird
oder es kann zu Fehlern beim Auslesen von Port 60h kommen, wenn bei abgeschaltetem Interrupt der Keyboardcontroller nicht zurueckgesetzt wird.@CaGa:
Die Keyboardscancodes von Port 60h stimmen nicht mit den ASCII-Codes ueberein.
Die Tasten auf der Tastatur wurden hierbei praktisch einfach ihrer Anordnung nach durchnummeriert.
-
@Nobuo T:
wo haben die da bei der durchnummerierung angefangen?
dann liese sich das ganze evtl. besser nachvollziehen@<wasiliy>:danke trotzdem für den tip!!
-
Ist wie alles beim PC ein bissel chaotisch:
Other Countries: 102 keys ------------------------- +--++-----------++-----------++-----------++--------+ ¦10¦¦12¦13¦14¦15¦¦16¦17¦18¦19¦¦20¦21¦22¦23¦¦24¦25¦26¦ <-- Add 100 to the +--++-----------++-----------++-----------++--------+ keycodes on this line +-----------------------------------------++--------++-------------+ ¦1¦ 2¦ 3¦ 4¦ 5¦ 6¦ 7¦ 8¦ 9¦10¦11¦12¦13¦ 15¦¦75¦80¦85¦¦90¦95¦100¦105¦ +-----------------------------------------¦+--+--+--¦+--+--+---+---¦ ¦16¦17¦18¦19¦20¦21¦22¦23¦24¦25¦26¦27¦28¦43¦¦76¦81¦86¦¦91¦96¦101¦ ¦ +---------------------------------------+ ¦+--------++--+--+---¦ ¦ ¦30 ¦31¦32¦33¦34¦35¦36¦37¦38¦39¦40¦41¦42¦ ¦ ¦92¦97¦102¦106¦ +-----------------------------------------¦ +--+ +--+--+---+---¦ ¦44¦45¦46¦47¦48¦49¦50¦51¦52¦53¦54¦55¦ 57 ¦ ¦83¦ ¦93¦98¦103¦ ¦ +-----+-----------------------------+-----¦+--+--+--++-----+---¦ ¦ ¦58 ¦ ¦60 ¦ 61 ¦ 62¦ ¦ 64¦¦79¦84¦89¦¦ 99 ¦104¦108¦ +---+ +-----------------------------+ +---++--------++-------------+ This has the extra 42 and 45 keys. Their characters change from country to country. Key Scan Key Scan Key Scan Key Scan Key Scan Key Scan no. code no. code no. code no. code no. code no. code ----------Ê----------Ê----------Ê----------Ê----------Ê---------- 1 ¦29 ¦19 ¦12 ¦36 ¦23 ¦53 ¦33 ¦86 ¦e0 51¦106 ¦4e 2 ¦02 ¦20 ¦13 ¦37 ¦24 ¦54 ¦34 ¦89 ¦e0 4d¦108 ¦e0 1c 3 ¦03 ¦21 ¦14 ¦38 ¦25 ¦55 ¦35 ¦90 ¦45 ¦110 ¦01 4 ¦04 ¦22 ¦15 ¦39 ¦26 ¦57 ¦36 ¦91 ¦47 ¦112 ¦3b 5 ¦05 ¦23 ¦16 ¦40 ¦27 ¦58 ¦1d ¦92 ¦4b ¦113 ¦3c 6 ¦06 ¦24 ¦17 ¦41 ¦28 ¦60 ¦38 ¦93 ¦4f ¦114 ¦3d 7 ¦07 ¦25 ¦18 ¦42°°¦2b ¦61 ¦39 ¦95 ¦e0 35¦115 ¦3e 8 ¦08 ¦26 ¦19 ¦43 ¦1c ¦62 ¦e0 38¦96 ¦48 ¦116 ¦3f 9 ¦09 ¦27 ¦1a ¦44 ¦2a ¦64 ¦e0 1d¦97 ¦4c ¦117 ¦40 10 ¦0a ¦28 ¦1b ¦45°°¦56 ¦75 ¦e0 52¦98 ¦50 ¦118 ¦41 11 ¦0b ¦29° ¦2b ¦46 ¦2c ¦76 ¦e0 53¦99 ¦52 ¦119 ¦42 12 ¦0c ¦30 ¦3a ¦47 ¦2d ¦79 ¦e0 4b¦100 ¦37 ¦120 ¦43 13 ¦0d ¦31 ¦1e ¦48 ¦2e ¦80 ¦e0 47¦101 ¦49 ¦121 ¦44 15 ¦0e ¦32 ¦1f ¦49 ¦2f ¦81 ¦e0 4f¦102 ¦4d ¦122 ¦57 16 ¦0f ¦33 ¦20 ¦50 ¦30 ¦83 ¦e0 48¦103 ¦51 ¦123 ¦58 17 ¦10 ¦34 ¦21 ¦51 ¦31 ¦84 ¦e0 50¦104 ¦53 ¦124 ¦(*) 18 ¦11 ¦35 ¦22 ¦52 ¦32 ¦85 ¦e0 49¦105 ¦4a ¦125 ¦46 ¦126 ¦(*)
[ Dieser Beitrag wurde am 30.06.2003 um 16:05 Uhr von Nobuo T editiert. ]
-
mir fällt grad noch auf, dass ich vergessen hab zu sagen:"ich benutze int 21h um die tasten abzufragen!"
danke für die krasse übersicht!!!!!!!!
(sind tabellen die mit ascii{!!!}zeichen gemacht sind nich ne wahre augenweide???)[ Dieser Beitrag wurde am 30.06.2003 um 16:56 Uhr von CaGa editiert. ]
-
@Nobuo T:
zu deiner frage ...
normalerweise benutze ich die tastatur nicht. wenn dann nur um das programm per esc zu beenden und das geht am besten mit:_again:
... ... ...
in al,60h
dec al
jnz _againinterrupts sind sowieso langsamer.
und wenn ich ein computerspiel machen würde, dann würde ich auch über port 60h gehen und nen handler für int 9 schreiben weil du sonst nicht mehrere tasten gleichzeitig abfragen kannst.
naja, wenn ich ein ein-, ausgabeprogramm für dos schreiben würde dann würde ich die dos interrupts benutzen, weil es einfach ist und den zweck erfüllt.