sms/kbd: PS/2 driver WIP
This commit is contained in:
parent
aad6b5c2e5
commit
c86d8a74a0
14
blk/640
Normal file
14
blk/640
Normal file
@ -0,0 +1,14 @@
|
||||
( kbd - implement (ps2kc) for SMS PS/2 adapter )
|
||||
: (ps2kcA) ( for port A )
|
||||
( Before reading a character, we must first verify that there
|
||||
is something to read. When the adapter is finished filling its
|
||||
'164 up, it resets the latch, which output's is connected to
|
||||
TL. When the '164 is full, TL is low. Port A TL is bit 4 )
|
||||
0xdc PC@ 0x10 AND IF 0 EXIT ( nothing ) THEN
|
||||
0x3f PC@ DROP 0b11011101 ( Port A TH output, low ) 0x3f PC!
|
||||
0xdc PC@ ( bit 3:0 go in 3:0 ) 0x0f AND ( n )
|
||||
0b11111101 ( Port A TH output, high ) 0x3f PC!
|
||||
0xdc PC@ ( bit 3:0 go in 7:4 ) 0x0f AND 4 LSHIFT OR ( n )
|
||||
( Port A/B reset ) 0xff 0x3f PC!
|
||||
;
|
||||
|
11
blk/641
Normal file
11
blk/641
Normal file
@ -0,0 +1,11 @@
|
||||
: (ps2kcB) ( for port B )
|
||||
( Port B TL is bit 2 )
|
||||
0xdd PC@ 0x04 AND IF 0 EXIT ( nothing ) THEN
|
||||
0x3f PC@ DROP 0b01110111 ( Port B TH output, low ) 0x3f PC!
|
||||
0xdc PC@ ( bit 7:6 go in 1:0 ) 6 RSHIFT ( n )
|
||||
0xdd PC@ ( bit 1:0 go in 3:2 ) 0x03 AND 2 LSHIFT OR ( n )
|
||||
0b11110111 ( Port B TH output, high ) 0x3f PC!
|
||||
0xdc PC@ ( bit 7:6 go in 5:4 ) 0xc0 AND 2 RSHIFT OR ( n )
|
||||
0xdd PC@ ( bit 1:0 go in 7:6 ) 0x03 AND 6 LSHIFT OR ( n )
|
||||
( Port A/B reset ) 0xff 0x3f PC!
|
||||
;
|
Loading…
Reference in New Issue
Block a user