Середовище програмування MADL

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Середовище програмування MADL » Архів (чернетки) » Чернетка.ПК-01 "Львів".Клавіатура.


Чернетка.ПК-01 "Львів".Клавіатура.

Сообщений 1 страница 8 из 8

1

Чернетка.ПК-01 "Львів".Клавіатура.

2

https://forumupload.ru/uploads/001b/d4/a7/2/583027.png
https://forumupload.ru/uploads/001b/d4/a7/2/125466.jpg
https://forumupload.ru/uploads/001b/d4/a7/2/200594.jpg
https://forumupload.ru/uploads/001b/d4/a7/2/221127.png
https://forumupload.ru/uploads/001b/d4/a7/2/379380.png
https://forumupload.ru/uploads/001b/d4/a7/2/748524.png
https://forumupload.ru/uploads/001b/d4/a7/2/571567.png

3

"_ПОРТЫ ВВОДА-ВЫВОДА                          ------------------"

Код:
                         ПОРТЫ ВВОДА-ВЫВОДА
                         ------------------

	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-

4

Клавиатура

Код:
 
    	  порт А      вывод
      -------------------------------
     | 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 - СУ

5

https://forumupload.ru/uploads/001b/d4/a7/2/881363.jpg

6

Клавиатура.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 - СУ

7

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

8

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 ;  //   С

Вы здесь » Середовище програмування MADL » Архів (чернетки) » Чернетка.ПК-01 "Львів".Клавіатура.