Чернетка.ПК-01 "Львів".Клавіатура.
Чернетка.ПК-01 "Львів".Клавіатура.
Страница: 1
Сообщений 1 страница 8 из 8
Поделиться32023-03-12 09:01:48
"_ПОРТЫ ВВОДА-ВЫВОДА ------------------"
Код:
ПОРТЫ ВВОДА-ВЫВОДА
------------------
C0 порт А - только на вывод
C1 порт В - ввод или вывод
C2 порт С - ввод и вывод
C3 RS - регистр состояния
D0 порт А - вывод (Out D0)
D1 порт В - ввод (IN D0)
D2 порт С - С(0-3) вывод, С(4-7) ввод
D3 RS - регистр состояния
Порты подключены, как показано на рис. 4. Путём сканирования "0"
на фоне единиц (порты А и С(0-3)) определяется "столбец" отслеживае-
мых клавиш. После ввода (порты В и С(4-7)) окончательно выявляется на-
жатая клавиша по наличию "0" в определённом разряде. Если ни одна кла-
виша не нажата, то вводятся все "1".
Порт A ( только на вывод ) - C0H ( 192 )
Порт B ( ввод или вывод ) - C1H ( 193 )
Порт C ( ввод и вывод ) - C2H ( 194 )
Регистр управляющего слова - C3H ( 195 )
Порт A ( только на вывод ) - D0H ( 208 )
Порт B ( только на ввод ) - D1H ( 209 )
Порт C ( ввод и вывод ) - D2H ( 210 )
Регистр управляющего слова - D3H ( 211 )
Подключение портов к клавиатуре ПК-01 показано на рисунке.
Принцип опроса клавиатуры заключается в следующем : последова-
тельной подачей логического "0" на каждый из разрядов портов A
и C(0-3) разрешается опрос соответствующего полуряда клавиатуры.
Результат опроса содержат порты B и C(4-7) для основной и функ-
циональной клавиатуры соответственно.
порт С
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | |
| | |
| | |
чтение с МЛ ----- | -- запись на МЛ
|
---- управление
экранным ОЗУ:
"1"-отключено
(по умолчанию)
"0"-подключено
к шинам МП.
Рис. 3.
-7-
Порт $DO
порт А вывод
7 b d e f f f f
f f f f 7 b d e
f f f f e d b 7
e d b 7 f f f f
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | | | | | | |
--- --- --- --- --- --- --- ---
/ \ / \ / \ / \ / \ / \ / \ / \
--- --- --- --- --- --- --- ---
| | | |ПРО| | | | +5 В
--- ВР| ; | |СТР|БЕЛ| П | Г | 6 |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
FE | 0 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Я |РУС| |"G"| Б | О | Ш | 7 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
FD | 1 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ч | СУ| Й |"В"| Ю | Л | Щ | 8 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
FB | 2 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ь | П | Н | 5 | НР| ЗБ| ВК| ГТ| |
F7 | | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
порт | 3 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
В |---| Т | А | Е | 4 | _ | . | ПС|ТАБ| |
EF | | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
ввод | 4 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
IN D1 |---| И | В | К | 3 |ЛАТ| Э | * | = | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
DF | 5 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| М | Ы | У | 2 | / | Ж | Х | 0 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
BF | 6 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| С | Ф | Ц | 1 | , | Д | З | 9 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
7F | 7 |------*---*---*---*---*---*---*---*-----| |--*
| | ----
---
порт С вывод (D2)
---------------
| 3 | 2 | 1 | 0 |
---------------
| | | |
--- --- --- --- +5 В
/ \ / \ / \ / \
--- --- --- --- |
|ВНА| | | |
| ЧА| | | |
--- ->| ЛО|П/Д| ПЧ| |
| | .-* .-* .-* .-* ---- |
EF | 4 |----*-+-*-+-*-+-*-+---| |--*
Результат | | | | | | ---- |
опроса |---| ВВЕРХ| AS| F0| CD| |
| | .-* .-* .-* .-* ---- |
DF | 5 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
(D2) ввод |---| <-| ED|ЧМЛ|ЗВ.| |
| | .-* .-* .-* .-* ---- |
BF | 6 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| ВНИЗ| BS|ЗМЛ|"R"| |
| | .-* .-* .-* .-* ---- |
7F | 7 |----*---*---*---*-----| |--*
| | ----
---
Рис. 4.
-8-
Поделиться42023-03-12 09:02:11
Клавиатура
Код:
порт А вывод
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | | | | | | |
--- --- --- --- --- --- --- ---
/ \ / \ / \ / \ / \ / \ / \ / \
--- --- --- --- --- --- --- ---
| | | |ПРО| | | | +5 В
--- ВР| ; | |СТР|БЕЛ| П | Г | 6 |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 0 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Я |РУС| |"G"| Б | О | Ш | 7 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 1 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ч | СУ| Й |"В"| Ю | Л | Щ | 8 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 2 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ь | П | Н | 5 | НР| ЗБ| ВК| ГТ| |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
порт | 3 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
В |---| Т | А | Е | 4 | _ | . | ПС|ТАБ| |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
ввод | 4 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| И | В | К | 3 |ЛАТ| Э | * | = | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 5 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| М | Ы | У | 2 | / | Ж | Х | 0 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 6 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| С | Ф | Ц | 1 | , | Д | З | 9 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 7 |------*---*---*---*---*---*---*---*-----| |--*
| | ----
---
Основная клавитура
Порт D0H ( 208 ) - выбор полуряда ( вывод ) Порт D1H
------T-----T-----T-----T-----T-----T-----T-----¬ ( 209 )
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦ BIT опрос
+-----+-----+-----+-----+-----+-----+-----+-----+ полуряда
¦ 7FH ¦ BFH ¦ DFH ¦ EFH ¦ F7H ¦ FBH ¦ FDH ¦ FEH ¦ HEX ( ввод )
+-----+-----+-----+-----+-----+-----+-----+-----+
¦ 127 ¦ 191 ¦ 223 ¦ 239 ¦ 247 ¦ 251 ¦ 253 ¦ 254 ¦ DEC HEX BIT
+-----+-----+-----+-----+-----+-----+-----+-----+-----T-----T---¬
¦ НР ¦ ; ¦ ¦ СТР ¦ ПРБ ¦ R ¦ G ¦ 6 ¦ 254 ¦ FEH ¦ 0 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ Q ¦ РУС ¦ ¦ (G) ¦ B ¦ O ¦ [ ¦ 7 ¦ 253 ¦ FDH ¦ 1 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ ^ ¦ СУ ¦ J ¦ (B) ¦ @ ¦ L ¦ ] ¦ 8 ¦ 251 ¦ FBH ¦ 2 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ X ¦ P ¦ N ¦ 5 ¦ ВР ¦ ЗБ ¦ ВК ¦ ГТ ¦ 247 ¦ F7H ¦ 3 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ T ¦ A ¦ E ¦ 4 ¦ ___ ¦ . ¦ ПС ¦ ТАБ ¦ 239 ¦ EFH ¦ 4 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ I ¦ W ¦ K ¦ 3 ¦ ЛАТ ¦ \ ¦ : ¦ - ¦ 223 ¦ DFH ¦ 5 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ M ¦ Y ¦ U ¦ 2 ¦ / ¦ V ¦ H ¦ 0 ¦ 191 ¦ BFH ¦ 6 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ S ¦ F ¦ C ¦ 1 ¦ , ¦ D ¦ Z ¦ 9 ¦ 127 ¦ 7FH ¦ 7 ¦
L-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----
* * * * * * * *
const Angl='1234567890QWERTYUIOPASDFGHJKLZXCVBNM;[^@]_.\:-/,'';
const Rus='1234567890QWERTYUIOPASDFGHJKLZXCVBNM;[^@]_.\:-/,'';
const Angl='1234567890QWERTYUIOPASDFGHJKLZXCVBNM;[^@]_.\:-/,'';
порт С вывод
---------------
| 3 | 2 | 1 | 0 |
---------------
| | | |
--- --- --- --- +5 В
/ \ / \ / \ / \
--- --- --- --- |
|ВНА| | | |
| ЧА| | | |
--- ->| ЛО|П/Д| ПЧ| |
| | .-* .-* .-* .-* ---- |
0 | 4 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| ВВЕРХ| AS| F0| CD| |
| | .-* .-* .-* .-* ----|
1 | 5 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
ввод |---| <-| ED|ЧМЛ|ЗВ.| |
| | .-* .-* .-* .-* ---- |
2 | 6 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| ВНИЗ| BS|ЗМЛ|"R"| |
| | .-* .-* .-* .-* ---- |
3 | 7 |----*---*---*---*-----| |--*
| | ----
---
Рис. 4.
-8-
Функциональная клавиатура
Порт D2 ( 210 )
------T-----T-----T-----¬
¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦
+-----+-----+-----+-----+-----¬
¦ ПРА ¦ ДИА ¦ П/Д ¦ ПЧ ¦ 4 ¦ EFH
+-----+-----+-----+-----+-----+
¦ ВРХ ¦ F5 ¦ F0 ¦ CD ¦ 5 ¦ DFH
+-----+-----+-----+-----+-----+
¦ ЛЕВ ¦ F4 ¦ F1 ¦ ДИН ¦ 6 ¦ BFH
+-----+-----+-----+-----+-----+
¦ НИЗ ¦ F3 ¦ F2 ¦ (R) ¦ 7 ¦ 7FH
@ . L-----+-----+-----+-----+------
-+_-k/,,,ss/;,/ []^ = Г є
нные KYB_MODE ( BE1DH (48669)) и KYB_BEEP ( BE1EH (48670)).
Под системной переменной здесь и далее понимается зарезерви-
рованная ячейка ( ячейки ) системного ОЗУ, значение которой
является входным, выходным, либо промежуточным параметром при
работе одной из системных подпрограмм.
Структура системной переменной KYB_MODE приведена на рисунке:
----T---T---T---T---T---T---T---¬
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦
L-T-+---+---+---+---+-T-+-T-+-T--
¦ ¦ ¦ L-------- 1 - ВР
L 1 - РУС ¦ L------------ 1 - НР
0 - ЛАТ L---------------- 1 - СУ
Поделиться62023-03-12 09:05:55
Клавиатура.txt
Код:
порт А вывод
MVIA($F7);{11110111}OUT_($D0);(пробел)
IN_($D1); ANI($01){00000001} If FlagZ=True then Key:=IdShot; // выстрел
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | | | | | | |
--- --- --- --- --- --- --- ---
/ \ / \ / \ / \ / \ / \ / \ / \
--- --- --- --- --- --- --- ---
| | | |ПРО| | | | +5 В
--- ВР| ; | |СТР|БЕЛ| П | Г | 6 |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 0 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Я |РУС| |"G"| Б | О | Ш | 7 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 1 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ч | СУ| Й |"В"| Ю | Л | Щ | 8 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 2 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ь | П | Н | 5 | НР| ЗБ| ВК| ГТ| |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
порт | 3 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
В |---| Т | А | Е | 4 | _ | . | ПС|ТАБ| |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
ввод | 4 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| И | В | К | 3 |ЛАТ| Э | * | = | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 5 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| М | Ы | У | 2 | / | Ж | Х | 0 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 6 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| С | Ф | Ц | 1 | , | Д | З | 9 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 7 |------*---*---*---*---*---*---*---*-----| |--*
| | ----
---
Основная клавитура
Порт D0H ( 208 ) - выбор полуряда ( вывод ) Порт D1H
------T-----T-----T-----T-----T-----T-----T-----¬ ( 209 )
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦ BIT опрос
+-----+-----+-----+-----+-----+-----+-----+-----+ полуряда
¦ 7FH ¦ BFH ¦ DFH ¦ EFH ¦ F7H ¦ FBH ¦ FDH ¦ FEH ¦ HEX ( ввод )
+-----+-----+-----+-----+-----+-----+-----+-----+
¦ 127 ¦ 191 ¦ 223 ¦ 239 ¦ 247 ¦ 251 ¦ 253 ¦ 254 ¦ DEC HEX BIT
+-----+-----+-----+-----+-----+-----+-----+-----+-----T-----T---¬
¦ НР ¦ ; ¦ ¦ СТР ¦ ПРБ ¦ R ¦ G ¦ 6 ¦ 254 ¦ FEH ¦ 0 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ Q ¦ РУС ¦ ¦ (G) ¦ B ¦ O ¦ [ ¦ 7 ¦ 253 ¦ FDH ¦ 1 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ ^ ¦ СУ ¦ J ¦ (B) ¦ @ ¦ L ¦ ] ¦ 8 ¦ 251 ¦ FBH ¦ 2 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ X ¦ P ¦ N ¦ 5 ¦ ВР ¦ ЗБ ¦ ВК ¦ ГТ ¦ 247 ¦ F7H ¦ 3 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ T ¦ A ¦ E ¦ 4 ¦ ___ ¦ . ¦ ПС ¦ ТАБ ¦ 239 ¦ EFH ¦ 4 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ I ¦ W ¦ K ¦ 3 ¦ ЛАТ ¦ \ ¦ : ¦ - ¦ 223 ¦ DFH ¦ 5 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ M ¦ Y ¦ U ¦ 2 ¦ / ¦ V ¦ H ¦ 0 ¦ 191 ¦ BFH ¦ 6 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---+
¦ S ¦ F ¦ C ¦ 1 ¦ , ¦ D ¦ Z ¦ 9 ¦ 127 ¦ 7FH ¦ 7 ¦
L-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----
* * * * * * * *
const Angl='1234567890QWERTYUIOPASDFGHJKLZXCVBNM;[^@]_.\:-/,'';
const Rus='1234567890QWERTYUIOPASDFGHJKLZXCVBNM;[^@]_.\:-/,'';
const Angl='1234567890QWERTYUIOPASDFGHJKLZXCVBNM;[^@]_.\:-/,'';
порт С вывод
---------------
| 3 | 2 | 1 | 0 |
---------------
| | | |
--- --- --- --- +5 В
/ \ / \ / \ / \
--- --- --- --- |
|ВНА| | | |
| ЧА| | | |
--- ->| ЛО|П/Д| ПЧ| |
| | .-* .-* .-* .-* ---- |
0 | 4 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| ВВЕРХ| AS| F0| CD| |
| | .-* .-* .-* .-* ----|
1 | 5 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
ввод |---| <-| ED|ЧМЛ|ЗВ.| |
| | .-* .-* .-* .-* ---- |
2 | 6 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| ВНИЗ| BS|ЗМЛ|"R"| |
| | .-* .-* .-* .-* ---- |
3 | 7 |----*---*---*---*-----| |--*
| | ----
---
Рис. 4.
-8-
Функциональная клавиатура
Порт D2 ( 210 )
------T-----T-----T-----¬
¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦
+-----+-----+-----+-----+-----¬
¦ ПРА ¦ ДИА ¦ П/Д ¦ ПЧ ¦ 4 ¦ EFH
+-----+-----+-----+-----+-----+
¦ ВРХ ¦ F5 ¦ F0 ¦ CD ¦ 5 ¦ DFH
+-----+-----+-----+-----+-----+
¦ ЛЕВ ¦ F4 ¦ F1 ¦ ДИН ¦ 6 ¦ BFH
+-----+-----+-----+-----+-----+
¦ НИЗ ¦ F3 ¦ F2 ¦ (R) ¦ 7 ¦ 7FH
@ . L-----+-----+-----+-----+------
-+_-k/,,,ss/;,/ []^ = Г є
нные KYB_MODE ( BE1DH (48669)) и KYB_BEEP ( BE1EH (48670)).
Под системной переменной здесь и далее понимается зарезерви-
рованная ячейка ( ячейки ) системного ОЗУ, значение которой
является входным, выходным, либо промежуточным параметром при
работе одной из системных подпрограмм.
Структура системной переменной KYB_MODE приведена на рисунке:
----T---T---T---T---T---T---T---¬
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦
L-T-+---+---+---+---+-T-+-T-+-T--
¦ ¦ ¦ L-------- 1 - ВР
L 1 - РУС ¦ L------------ 1 - НР
0 - ЛАТ L---------------- 1 - СУ
Поделиться72023-03-12 09:06:53
KeyboardWin
Keyboard.dpr
Код:
program Keyboard; // программа для настройки клавиатуры в эмуляторе
// Программа создает файл "SASEmulator.key" который должен быть
// в том же каталоге что и эмулятор
//Key_engl:[код клавиши в винде]:=маска в ПК-01;
//Key_Rus:[код клавиши в винде]:=маска в ПК-01;
// в английской и русской расскладке возможно сделать разные клавиши
//
Var Key_engl: array[0..255]of word;// Английская расскладка клавиатуры
Key_Rus: array[0..255]of word;// Руская расскладка клавиатуры
w:word;
f:file of word;
begin
// инициализация
for w:=0 to 255 do begin Key_engl[w]:=$FFFF;Key_Rus[w]:=$FFFF;end;
// настройка английской раскладки
// Дополнительная клавиатура соответствие при английской раскладке
Key_engl[123]:=$FF00 ; // (F12) = (ПЧ)
Key_engl[122]:=$FF01 ; // (F11) = (CD)
Key_engl[121]:=$FF02 ; // (F10) = (Звук)
Key_engl[119]:=$FF03 ; // (F8) = ("R")
Key_engl[34]:=$FF10 ; // (PageDown) = (П/Д)
Key_engl[120]:=$FF11 ; // (F9) = (F0)
Key_engl[112]:=$FF12 ; // (F1) = (F1 чмл)
Key_engl[113]:=$FF13 ; // (F2) = (F2 змл)
Key_engl[36]:=$FF20 ; // Home = Home
Key_engl[116]:=$FF21 ; // F5
Key_engl[115]:=$FF22 ; // F4
Key_engl[114]:=$FF23 ; // F3
Key_engl[39]:=$FF30 ; // ->
Key_engl[38]:=$FF31 ; // UP
Key_engl[37]:=$FF32 ; // <- (влево)
Key_engl[40]:=$FF33 ; // DOWN
// Основная клавиатура соответствие при английской раскладке
Key_engl[54]:=$00FF ; // 6
Key_engl[55]:=$01FF ; // 7
Key_engl[56]:=$02FF ; // 8
Key_engl[45]:=$03FF ; // Insert = ГТ
Key_engl[9]:=$04FF ; // ТАБ (непойму почему-то работает как Ctrl+Tab)
Key_engl[189]:=$05FF ; // (-_) = (-=)
Key_engl[48]:=$06FF ; // 0
Key_engl[57]:=$07FF ; // 9
{1}
Key_engl[71]:=$10FF ; // G
Key_engl[219]:=$11FF ; // [
Key_engl[221]:=$12FF ; // ]
Key_engl[13]:=$13FF ; // ENTER
Key_engl[33]:=$14FF ; // PageUp = ПС
Key_engl[186]:=$15FF ; // (:;ж) = (:*)
Key_engl[72]:=$16FF ; // H
Key_engl[90]:=$17FF ; // Z
{2}
Key_engl[82]:=$20FF ; // R
Key_engl[79]:=$21FF ; // O
Key_engl[76]:=$22FF ; // L
Key_engl[8]:=$23FF ; // ЗБ
Key_engl[190]:=$24FF ; // (.>ю) = (.>)
Key_engl[220]:=$25FF ; // (\/|) = (\)
Key_engl[86]:=$26FF ; // V
Key_engl[68]:=$27FF ; // D
{3}
Key_engl[32]:=$30FF ; // Пробел
Key_engl[66]:=$31FF ; // B
Key_engl[222]:=$32FF ; // (@Ю)=("'ЄєЭэ)
Key_engl[16]:=$33FF ; // ВР
Key_engl[35]:=$34FF ; // (END) = (_)
// $35FF ; // ЛАТ
Key_engl[191]:=$36FF ; // /
Key_engl[188]:=$37FF ; // ,
{4}
Key_engl[27]:=$40FF ; // СТР
Key_engl[117]:=$41FF ; // (F6) - (G)
Key_engl[118]:=$42FF ; // (F7) - (B)
Key_engl[53]:=$43FF ; // 5
Key_engl[52]:=$44FF ; // 4
Key_engl[51]:=$45FF ; // 3
Key_engl[50]:=$46FF ; // 2
Key_engl[49]:=$47FF ; // 1
{5}
// 50 и 51 -пусто по таблице
Key_engl[74]:=$52FF ; // J
Key_engl[78]:=$53FF ; // N
Key_engl[69]:=$54FF ; // E
Key_engl[75]:=$55FF ; // K
Key_engl[85]:=$56FF ; // U
Key_engl[67]:=$57FF ; // C
{6}
Key_engl[192]:=$60FF ; // (`~)=(;+)
Key_engl[17]:= $61FF ; // РУС
Key_engl[18]:= $62FF ; // СУ
Key_engl[80]:=$63FF ; // P
Key_engl[65]:=$64FF ; // A
Key_engl[87]:=$65FF ; // W
Key_engl[89]:=$66FF ; // Y
Key_engl[70]:=$67FF ; // F
{7}
Key_engl[16]:=$70FF ; // Shift
Key_engl[81]:=$71FF ; // Q
Key_engl[187]:=$72FF ; // (+=) = (^)
Key_engl[88]:=$73FF ; // X
Key_engl[84]:=$74FF ; // T
Key_engl[73]:=$75FF ; // I
Key_engl[77]:=$76FF ; // M
Key_engl[83]:=$77FF ; // S
// настройка РУССКАЯ РАСКЛАДКИ
// Дополнительная клавиатура соответствие при РУССКАЯ РАСКЛАДКИ
Key_Rus[123]:=$FF00 ; // (F12) = (ПЧ)
Key_Rus[122]:=$FF01 ; // (F11) = (CD)
Key_Rus[121]:=$FF02 ; // (F10) = (Звук)
Key_Rus[119]:=$FF03 ; // (F8) = ("R")
Key_Rus[34]:=$FF10 ; // (PageDown) = (П/Д)
Key_Rus[120]:=$FF11 ; // (F9) = (F0)
Key_Rus[112]:=$FF12 ; // (F1) = (F1 чмл)
Key_Rus[113]:=$FF13 ; // (F2) = (F2 змл)
Key_Rus[36]:=$FF20 ; // Home = Home
Key_Rus[116]:=$FF21 ; // F5
Key_Rus[115]:=$FF22 ; // F4
Key_Rus[114]:=$FF23 ; // F3
Key_Rus[39]:=$FF30 ; // ->
Key_Rus[38]:=$FF31 ; // UP
Key_Rus[37]:=$FF32 ; // <- (влево)
Key_Rus[40]:=$FF33 ; // DOWN
// Основная клавиатура соответствие при РУССКАЯ РАСКЛАДКИ
Key_Rus[54]:=$00FF ; // 6
Key_Rus[55]:=$01FF ; // 7
Key_Rus[56]:=$02FF ; // 8
Key_Rus[45]:=$03FF ; // Insert = ГТ
Key_Rus[9]:=$04FF ; // ТАБ
Key_Rus[189]:=$05FF ; // (-_) = (-=)
Key_Rus[48]:=$06FF ; // 0
Key_Rus[57]:=$07FF ; // 9
{1}
Key_Rus[85]:=$10FF ; // Г
Key_Rus[73]:=$11FF ; // Ш
Key_Rus[79]:=$12FF ; // Щ
Key_Rus[13]:=$13FF ; // ENTER
Key_Rus[33]:=$14FF ; // PageUp = ПС
Key_Rus[221]:=$15FF ; // (:;ж) = (Ж)
Key_Rus[219]:=$16FF ; // Х
Key_Rus[80]:=$17FF ; // З
{2}
Key_Rus[72]:=$20FF ; // Р
Key_Rus[74]:=$21FF ; // О
Key_Rus[75]:=$22FF ; // Л
Key_Rus[8]:=$23FF ; // ЗБ
Key_Rus[220]:=$24FF ; //
Key_Rus[222]:=$25FF ; // Э
Key_Rus[186]:=$26FF ; // Ж
Key_Rus[76]:=$27FF ; // Д
{3}
Key_Rus[32]:=$30FF ; // Пробел
Key_Rus[188]:=$31FF ; // Б
Key_Rus[190]:=$32FF ; // Ю
//16]:=$33FF ; // НР
Key_Rus[35]:=$34FF ; // (END) = _
Key_Rus[17]:= $35FF ; // ЛАТ (вверху)
Key_Rus[191]:=$36FF ; // /
Key_Rus[187]:=$37FF ; // (,<) = (+=)
{4}
Key_Rus[27]:=$40FF ; // СТР
Key_Rus[117]:=$41FF ; // (F6) - (G)
Key_Rus[118]:=$42FF ; // (F7) - (B)
Key_Rus[53]:=$43FF ; // 5
Key_Rus[52]:=$44FF ; // 4
Key_Rus[51]:=$45FF ; // 3
Key_Rus[50]:=$46FF ; // 2
Key_Rus[49]:=$47FF ; // 1
{5}
// 50 и 51 -пусто по таблице
Key_Rus[81]:=$52FF ; // Й
Key_Rus[89]:=$53FF ; // Н
Key_Rus[84]:=$54FF ; // Е
Key_Rus[82]:=$55FF ; // К
Key_Rus[69]:=$56FF ; // У
Key_Rus[87]:=$57FF ; // Ц
{6}
Key_Rus[192]:=$60FF ; // (`~)=(;+)
// 61 -рус (выше)
Key_Rus[18]:= $62FF ; // СУ
Key_Rus[71]:=$63FF ; // П
Key_Rus[70]:=$64FF ; // А
Key_Rus[68]:=$65FF ; // В
Key_Rus[83]:=$66FF ; // Ы
Key_Rus[65]:=$67FF ; // Ф
{7}
Key_Rus[16]:=$70FF ;// ВР
Key_Rus[90]:=$71FF ; // Я
Key_Rus[88]:=$72FF ; // Ч
Key_Rus[77]:=$73FF ; // Ь
Key_Rus[78]:=$74FF ; // Т
Key_Rus[66]:=$75FF ; // И
Key_Rus[86]:=$76FF ; // M
Key_Rus[67]:=$77FF ; // С
//Создание файла SASEmulator.key
Rewrite(F,'SASEmulator.key');
For w:=0 to 255 do begin Write(F,Key_engl[w]); end;// Записывание в файл Английской расскладки
For w:=0 to 255 do begin Write(F,Key_Rus[w]); end;// Записывание в файл Русской расскладки
closeFile(F);
end.
SASEmulator_key.7z - http://forumstatic.ru/files/001b/d4/a7/62934.7z
Поделиться82023-03-12 09:30:08
KeyboardKOS.txt
Код:
Соответствие кодировки КОС и кодировки ПК-01 Львов.
Соответствие клавиш клавиатуры PC и клавиатуры ПК-01 Львов.
Процедурой обработки клавиш эмулятора код нажатой и отжатой
клавиши сводится к одному коду конкретной клавиши
т.е. если код-КОС более 128, что соотвествует коду отжатой,
от кода-КОС, отнимается 128, что становится соотвественным коду
нажатой клавиши. Далее идёт обработка по таблице.
Обработка дополнительных клавиш КОС (Extr) происходит для рус и англ.
языковых раскладок одинаково. Обработка клавиш не имеющих дополнительный
код, - производится разными процедурами для рус и англ. языковых раскладок.
ОБРАБОТКА ДОПОЛНИТЕЛЬНЫХ КЛАВИШ КОС
код-КОС, Код-ПК-01 :// клавиша PC = Клавиша ПК-01
77 , $ff30; ;//{ВВЕРХ}
72 , $ff31; ;//{ВВЕРХ}
75 , $ff32; ;//ВЛЕВО;
80 , $ff33; ;//ВНИЗ;
56 , $62FF ; // (ALT) = СУ
29 , $35FF ; // (R-CTRL) = ЛАТ
82 , $03FF ; // Insert = ГТ
73 , $14FF ; // PageUp = ПС
79 , $34FF ; // (END) = (_)
71 , $FF20 ; // Home = Home
81 , $FF10 ; // (PageDown) = (П/Д)
; // Основная клавиатура соответствие при английской раскладке
42 , $33FF ; L-Shift // ВР
54 , $70FF ; R-Shift // НР
56 , $62FF ; // (ALT) = СУ
29 , $61FF ; // (L-CTRL) = РУС
1 , $40FF ; // esc - СТР
59 , $FF12 ; // (F1) = (F1 чмл)
60 , $FF13 ; // (F2) = (F2 змл)
61 , $FF23 ; // F3
62 , $FF22 ; // F4
63 , $FF21 ; // F5
64 , $41FF ; // (F6) - (G)
65 , $42FF ; // (F7) - (B)
66 , $FF03 ; // (F8) = ("R")
67 , $FF11 ; // (F9) = (F0)
68 , $FF02 ; // (F10) = (Звук)
87 , $FF01 ; // (F11) = (CD)
88 , $FF00 ; // (F12) = (ПЧ)
7 , $00FF ; // 6
8 , $01FF ; // 7
9 , $02FF ; // 8
15 , $04FF ; // ТАБ
12 , $05FF ; // (-_) = (-=)
11 , $06FF ; // 0
10 , $07FF ; // 9
; {1}
34 , $10FF ; // G
26 , $11FF ; // [
27 , $12FF ; // ]
28 , $13FF ; // ENTER
39 , $15FF ; // (:;ж) = (:*)
35 , $16FF ; // H
44 , $17FF ; // Z
; {2}
19 , $20FF ; // R
24 , $21FF ; // O
38 , $22FF ; // L
14 , $23FF ; // ЗБ
52 , $24FF ; // (.>ю) = (.>)
43 , $25FF ; // (\/|) = (\)
47 , $26FF ; // V
32 , $27FF ; // D
; {3}
57 , $30FF ; // Пробел
48 , $31FF ; // B
; {4}
6 , $43FF ; // 5
5 , $44FF ; // 4
4 , $45FF ; // 3
3 , $46FF ; // 2
2 , $47FF ; // 1
; {5}
36 , $52FF ; // J
49 , $53FF ; // N
18 , $54FF ; // E
37 , $55FF ; // K
22 , $56FF ; // U
46 , $57FF ; // C
; {6}
41 , $60FF ; // (`~)=(;+)
25 , $63FF ; // P
30 , $64FF ; // A
17 , $65FF ; // W
21 , $66FF ; // Y
33 , $67FF ; // F
; {7}
16 , $71FF ; // Q
13 , $72FF ; // (+=) = (^)
45 , $73FF ; // X
20 , $74FF ; // T
23 , $75FF ; // I
50 , $76FF ; // M
31 , $77FF ; // S
40 , $32FF ; // ("'Ээ)= (@)
51 , $37FF ; // (,<) = (,)
53 , $36FF ; // (/?)= (/)
; - Конец основной англ.
; // Основная клавиатура соответствие при РУССКОЙ РАСКЛАДКИ
42 , $33FF ; L-Shift // ВР
54 , $70FF ; R-Shift // НР
56 , $62FF ; // (ALT) = СУ
29 , $61FF ; // (L-CTRL) = РУС
1 , $40FF ; // esc - СТР
59 , $FF12 ; // (F1) = (F1 чмл)
60 , $FF13 ; // (F2) = (F2 змл)
61 , $FF23 ; // F3
62 , $FF22 ; // F4
63 , $FF21 ; // F5
64 , $41FF ; // (F6) - (G)
65 , $42FF ; // (F7) - (B)
66 , $FF03 ; // (F8) = ("R")
67 , $FF11 ; // (F9) = (F0)
68 , $FF02 ; // (F10) = (Звук)
87 , $FF01 ; // (F11) = (CD)
88 , $FF00 ; // (F12) = (ПЧ)
7 , $00FF ; // 6
8 , $01FF ; // 7
9 , $02FF ; // 8
15 , $04FF ; // ТАБ
12 , $05FF ; // (-_) = (-=)
11 , $06FF ; // 0
10 , $07FF ; // 9
; {1}
22 , $10FF ; // Г
23 , $11FF ; // Ш
24 , $12FF ; // Щ
28 , $13FF ; // ENTER
27 , $15FF ; // (:;ж) = (Ж)
26 , $16FF ; // Х
25 , $17FF ; // З
; {2}
35 , $20FF ; // Р
36 , $21FF ; // О
37 , $22FF ; // Л
14 , $23FF ; // ЗБ
43 , $24FF ; // (\|) =
40 , $25FF ; // Э
39 , $26FF ; // Ж
38 , $27FF ; // Д
; {3}
57 , $30FF ; // Пробел
51 , $31FF ; // Б
52 , $32FF ; // Ю
;
53 , $36FF ; // / (+=) = (,)
13 , $37FF ; // (,<) = (+=)
; {4}
6 , $43FF ; // 5
5 , $44FF ; // 4
4 , $45FF ; // 3
3 , $46FF ; // 2
2 , $47FF ; // 1
; {5}
16 , $52FF ; // Й
21 , $53FF ; // Н
20 , $54FF ; // Е
19 , $55FF ; // К
18 , $56FF ; // У
17 , $57FF ; // Ц
; {6}
41 , $60FF ; // (`~)=(;+)
34 , $63FF ; // П
33 , $64FF ; // А
32 , $65FF ; // В
31 , $66FF ; // Ы
30 , $67FF ; // Ф
; {7}
44 , $71FF ; // Я
45 , $72FF ; // Ч
50 , $73FF ; // Ь
49 , $74FF ; // Т
48 , $75FF ; // И
47 , $76FF ; // M
46 , $77FF ; // ССтраница: 1







