. 1. .1 1.
.2. IBM PC - , - 60.
- , 7 , (. 9). ( 7) ( 0) ( 1) . , -: , . 128 .
- 60 . / (09), :
- 60;
( ) - ASCII, 2- ;
2- .
. 9
- | - | - | - | ||||
Esc | Enter | RightShift | ScrollLock | ||||
2-11 | 1¸9,0 | Ctrl | PrtScr | 71¸73 | 7¸9 | ||
30¸40 | A¸ | Alt | |||||
= | ` | 75¸77 | 4¸6 | ||||
Backspace | LeftShift | CapsLock | + | ||||
Tab | \ | 59¸68 | F1¸F10 | 79¸82 | 1¸3,0 | ||
16¸27 | Q¸] | 44¸53 | Z¸/ | NumLock | . |
- 60 / , :
;
60H ;
60H ;
;
- .
Pascal / Port PortW. Port Byte, PotrW Word. Byte, , :
State:= Port [$80]; { 80 State}
Port [$90]:= State+1; { 90 }
- :
Uses crt, dos;
Var ScanCodeDown, ScanCodeUp,Scan:byte;
Begin
..
Delay(1000); { }
|
|
{ }
Port [$21]:=2; { }
Scan:=Port [$60]; { }
Writeln( );
Repeat
ScanCodeDown:=Port [$60]; { }
Until ScanCodeDown <> Scan; { }
Scan:=ScanCodeDown; { - }
Repeat
ScanCodeUp:=Port [$60]; { }
Until ScanCodeUp <> Scan; { }
Port [$21]:=0; { }
Writeln (- , ScanCodeDown);
Writeln (- , ScanCodeUp);
Writeln ( );
Readkey;
End.
. 3. ( FIFO) . , . , , . , . , , .
32 0040:001EH 0040:003. 0040:001AH 0040:001CH . 1EH 3CH, BIOS.
, .. . 15 . 15 16 , , (ASCII13) - Enter. , , .
, - ASCII . - ASCII 3 :
- (. 9);
ASCII (. 11);
ASCII (. 12).
ASCII , , .. - 2- , ASCII, - .
, F1-F10, Home, PageUp ., Alt-A, Ctrl-B .. - 2- , 0, , - , , .
. :
;
, .
|
|
: - ; . Turbo Pascal Keypressed.
, ( ). Turbo Pascal Readkey, , .. .
:
Begin
{ }
writeln( : ,MemW[$0040:$001A);
writeln( : ,MemW[$0040:$001C);
repeat until keypressed; { }
{ }
writeln( : ,MemW[$0040:$001A);
writeln( : ,MemW[$0040:$001C);
ch:=readkey; { }
writeln(': ',ch);
writeln (ASCII : ,ord(ch));
{ }
writeln( : ,MemW[$0040:$001A);
writeln( : ,MemW[$0040:$001C);
Writeln ( );
Readkey;
End.
. 4. - , , . , Alt, Ctrl, Shift,CapsLock . , -, . 0040:0017 0040:0018 (. 10).
Ins, , . , , .
. 10
, | |||
0040:0017 | Insert Caps Lock Num Lock Scroll Lock Alt Ctrl Shift Shift | Caps Lock Num Lock Scroll Lock | |
0040:0018 | 2 - 0 | Insert Caps Lock Num Lock Scroll Lock Ctrl Num Lock | Ctrl Num Lock |
Mem, - . :
Status17:= Mem [$0040:$0017]; { }
If Status17 and 4 <> 0 { 4H = 00000100B }
then .... { Ctrl }
else { Ctrl }
.5. BIOS 09 :
, - (. 3).
09 8.
09, ;
.
KeyBoard . :
ClearBuf ;
|
|
count_ press . , :
..
ClearBuf; { }
Count_press:= 0; { }
repeat
until count_press = 7; { 7 }
.
Status_ Print ( 0417);
Status_ Print ( 0417);
Buffer_ Print ( 041-041D ( 041-043).
.6. : - (. 9), ASCII (. 11.), (. 12.).
. 11
! | A | a | |||||||||||||
B | b | ||||||||||||||
# | C | c | |||||||||||||
$ | D | d | |||||||||||||
% | E | e | |||||||||||||
& | F | f | |||||||||||||
BEL | G | g | |||||||||||||
BK | ( | H | h | ||||||||||||
Tab | ) | I | i | ||||||||||||
LF | * | J | j | ||||||||||||
+ | K | k | |||||||||||||
¢ | L | i | |||||||||||||
CR | - | M | m | ||||||||||||
. | N | n | |||||||||||||
/ | O | o | |||||||||||||
P | p | ||||||||||||||
Q | q | ||||||||||||||
R | r | ||||||||||||||
S | s | ³ | |||||||||||||
T | t | £ | |||||||||||||
U | u | ó | |||||||||||||
V | v | õ | |||||||||||||
W | w | ÷ | |||||||||||||
X | x | ||||||||||||||
Y | y | ||||||||||||||
: | Z | z | . | ||||||||||||
; | [ | { | . | ||||||||||||
< | \ | | | Ö | ||||||||||||
= | ] | } | h | ||||||||||||
> | ^ | ~ | z | ||||||||||||
? | _ | Del | g | ||||||||||||
@ |
. 12
|
|
2- | |
16-25 30-38 44-50 59-68 84-93 94-103 104-113 120-131 | Shift + Tab (back-tab) Alt+Q Alt+P ( ) Alt+A Alt+L ( ) Alt+Z Alt+M ( ) F1-F10 Home Cursor-up ( ) PgUp Cursor-left ( ) Cursor-right ( ) End Cursor-down ( ) PgDn Ins Del F1-F10 +Shift F1-F10 +Ctrl F1-F10 +Alt Ctrl + PrtSc Ctrl + Cursor-left Ctrl + Cursor- right Ctrl + End Ctrl + PgDn Ctrl + Home Alt+l Alt+= ( ) Ctrl + PgUp |
1. -?
2. ?
3. ?
4. ?
5. ?
6. ?
7. ?
8. ?
9. , ?
10. ?
3