i8042, KBC (keyboard controller), , , , . , , . (KBC BIOS) ; , . , . - - Gate A20, , . 18242, , PS/2-Mouse. ( ) PS/2 AT, . AT , . BIOS Setup.
8- . CS# , 0060h 0064h; SA2 . IORD# IOWR#, IN OUT. , - CPU 60h ( ) 64h ( ), . 8.1. , , , . , , , . , . ( , - ) , . . / 1 ( 064h).
8.1.
, R/W | |
060 RW | 8042 |
064 R | 8042 (R/O): 7 ; 6 - / -¹; 5 - / (Mouse_OBF)¹; 4: 0 ; 3:1 , 0 ; 2: , 0 , 1 ( Reset OK); 1: 1 , 0 /; 0: 1 (OBF) |
064 W | 8042 |
¹ i8242B, PS/2-Mouse.
|
|
, , GateA20, . - PC; . T0 T1, ( CPU). KB-Data, KB-Clock, MS-Data MS-Clock . PS/2 KB-Clock MS-Clock T0 T1, AT T1 KB-Data.
P1 C0h; PS/2 :
♦ 7 (Keylock): 0 ;
♦ 6 : 0 (Color), 1 (Mono);
♦ 5 : 0 ;
♦ 4 : 0 256 , 1 512 ;
♦ 3, 2 ;
♦ 1 MS-Data;
♦ 0 KB-Data.
0, 1 7; AT 0 1 .
(P2), D1h D0h , :
♦ 7 KB-Data;
♦ 6 KB-Clk;
♦ 5 (IRQ12), AT ;
♦ 4 (IRQ1);
♦ 3 MS-Clk, AT ;
♦ 2 MS-Data, AT ;
♦ 1 A20 (Gate A20, . . 12.3): 0 A20 , 1 ;
♦ 0 ( INIT, ).
, - ( ) OBF=1, IRQ1 ( ). ( -, ..) (60h). XT AT (. ) - 60h. Mouse_OF=1, IRQ12 ( ). 60h. To ( D2h) ( D3h), IRQ1 IRQ12.
|
|
, , OBF=1, IRQ1 ( ). ( 60h). , .
( 064h). 1 64h . [2, 8]. , , (KBC BIOS), BIOS .