mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-26 20:28:06 +11:00
Compare commits
No commits in common. "7d28637740e7af358dd032d1edc05034268eee7c" and "c86d8a74a0c8dad7810893920431c4d57e088040" have entirely different histories.
7d28637740
...
c86d8a74a0
1
blk/001
1
blk/001
@ -6,7 +6,6 @@ MASTER INDEX
|
|||||||
150 Extra words
|
150 Extra words
|
||||||
200 Z80 assembler 260 Cross compilation
|
200 Z80 assembler 260 Cross compilation
|
||||||
280 Z80 boot code 350 Core words
|
280 Z80 boot code 350 Core words
|
||||||
410 PS/2 keyboard subsystem
|
|
||||||
490 TRS-80 Recipe 520 Fonts
|
490 TRS-80 Recipe 520 Fonts
|
||||||
550 TI-84+ Recipe 580 RC2014 Recipe
|
550 TI-84+ Recipe 580 RC2014 Recipe
|
||||||
620 Sega Master System Recipe
|
620 Sega Master System Recipe
|
||||||
|
11
blk/410
11
blk/410
@ -1,11 +0,0 @@
|
|||||||
PS/2 keyboard subsystem
|
|
||||||
|
|
||||||
Provides (key) from a driver providing (ps2kc). That is, for a
|
|
||||||
driver taking care of providing all key codes emanating from a
|
|
||||||
PS/2 keyboard, this subsystem takes care of mapping those key-
|
|
||||||
strokes to ASCII characters. This code is designed to be cross-
|
|
||||||
compiled and loaded with drivers.
|
|
||||||
|
|
||||||
Requires PS2_MEM to be defined.
|
|
||||||
|
|
||||||
Load range: 411-414
|
|
14
blk/411
14
blk/411
@ -1,14 +0,0 @@
|
|||||||
: PS2_SHIFT [ PS2_MEM LITN ] ;
|
|
||||||
: PS2$ 0 PS2_SHIFT C! ;
|
|
||||||
|
|
||||||
( A list of the values associated with the 0x80 possible scan
|
|
||||||
codes of the set 2 of the PS/2 keyboard specs. 0 means no
|
|
||||||
value. That value is a character that can be read in (key)
|
|
||||||
No make code in the PS/2 set 2 reaches 0x80. )
|
|
||||||
CREATE PS2_CODES
|
|
||||||
( 00 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C,
|
|
||||||
( 08 ) 0 C, 0 C, 0 C, 0 C, 0 C, 9 C, '`' C, 0 C,
|
|
||||||
( 10 ) 0 C, 0 C, 0 C, 0 C, 0 C, 'q' C, '1' C, 0 C,
|
|
||||||
( 18 ) 0 C, 0 C, 'z' C, 's' C, 'a' C, 'w' C, '2' C, 0 C,
|
|
||||||
( 20 ) 0 C, 'c' C, 'x' C, 'd' C, 'e' C, '4' C, '3' C, 0 C,
|
|
||||||
( 28 ) 0 C, 32 C, 'v' C, 'f' C, 't' C, 'r' C, '5' C, 0 C,
|
|
16
blk/412
16
blk/412
@ -1,16 +0,0 @@
|
|||||||
( 30 ) 0 C, 'n' C, 'b' C, 'h' C, 'g' C, 'y' C, '6' C, 0 C,
|
|
||||||
( 38 ) 0 C, 0 C, 'm' C, 'j' C, 'u' C, '7' C, '8' C, 0 C,
|
|
||||||
( 40 ) 0 C, ',' C, 'k' C, 'i' C, 'o' C, '0' C, '9' C, 0 C,
|
|
||||||
( 48 ) 0 C, '.' C, '/' C, 'l' C, ';' C, 'p' C, '-' C, 0 C,
|
|
||||||
( 50 ) 0 C, 0 C, ''' C, 0 C, '[' C, '=' C, 0 C, 0 C,
|
|
||||||
( 58 ) 0 C, 0 C, 13 C, ']' C, 0 C, '\' C, 0 C, 0 C,
|
|
||||||
( 60 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 8 C, 0 C,
|
|
||||||
( 68 ) 0 C, '1' C, 0 C, '4' C, '7' C, 0 C, 0 C, 0 C,
|
|
||||||
( 70 ) '0' C, '.' C, '2' C, '5' C, '6' C, '8' C, 27 C, 0 C,
|
|
||||||
( 78 ) 0 C, 0 C, '3' C, 0 C, 0 C, '9' C, 0 C, 0 C,
|
|
||||||
( Same values, but shifted )
|
|
||||||
( 00 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C,
|
|
||||||
( 08 ) 0 C, 0 C, 0 C, 0 C, 0 C, 9 C, '~' C, 0 C,
|
|
||||||
( 10 ) 0 C, 0 C, 0 C, 0 C, 0 C, 'Q' C, '!' C, 0 C,
|
|
||||||
( 18 ) 0 C, 0 C, 'Z' C, 'S' C, 'A' C, 'W' C, '@' C, 0 C,
|
|
||||||
( 20 ) 0 C, 'C' C, 'X' C, 'D' C, 'E' C, '$' C, '#' C, 0 C,
|
|
12
blk/413
12
blk/413
@ -1,12 +0,0 @@
|
|||||||
( 28 ) 0 C, 32 C, 'V' C, 'F' C, 'T' C, 'R' C, '%' C, 0 C,
|
|
||||||
( 30 ) 0 C, 'N' C, 'B' C, 'H' C, 'G' C, 'Y' C, '^' C, 0 C,
|
|
||||||
( 38 ) 0 C, 0 C, 'M' C, 'J' C, 'U' C, '&' C, '*' C, 0 C,
|
|
||||||
( 40 ) 0 C, '<' C, 'K' C, 'I' C, 'O' C, ')' C, '(' C, 0 C,
|
|
||||||
( 48 ) 0 C, '>' C, '?' C, 'L' C, ':' C, 'P' C, '_' C, 0 C,
|
|
||||||
( 50 ) 0 C, 0 C, '"' C, 0 C, '{' C, '+' C, 0 C, 0 C,
|
|
||||||
( 58 ) 0 C, 0 C, 13 C, '}' C, 0 C, '|' C, 0 C, 0 C,
|
|
||||||
( 60 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 8 C, 0 C,
|
|
||||||
( 68 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C,
|
|
||||||
( 70 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 27 C, 0 C,
|
|
||||||
( 78 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C,
|
|
||||||
|
|
15
blk/414
15
blk/414
@ -1,15 +0,0 @@
|
|||||||
: _shift? ( kc -- f ) DUP 0x12 = SWAP 0x59 = OR ;
|
|
||||||
: _get ( -- kc ) 0 ( dummy ) BEGIN DROP (ps2kc) DUP UNTIL ;
|
|
||||||
: (key) _get
|
|
||||||
DUP 0xe0 ( extended ) = IF ( ignore ) DROP (key) EXIT THEN
|
|
||||||
DUP 0xf0 ( break ) = IF DROP ( )
|
|
||||||
( get next kc and see if it's a shift )
|
|
||||||
_get _shift? IF ( drop shift ) 0 PS2_SHIFT C! THEN
|
|
||||||
( whether we had a shift or not, we return the next )
|
|
||||||
(key) EXIT THEN
|
|
||||||
DUP 0x7f > IF DROP (key) EXIT THEN
|
|
||||||
DUP _shift? IF DROP 1 PS2_SHIFT C! (key) EXIT THEN
|
|
||||||
( ah, finally, we have a gentle run-of-the-mill KC )
|
|
||||||
PS2_CODES PS2_SHIFT @ IF 0x80 + THEN + C@
|
|
||||||
DUP NOT IF DROP (key) THEN ;
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user