Чернетка.ПК-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