клавиатура
- Строительство [ редактировать ]
- Запрос [ редактировать ]
- Проблемы [ редактировать ]
- Кнопка RESTORE [ редактировать ]
- Схема [ редактировать ]
- Запасные ключи [ редактировать ]
- Клавиатура PS / 2 на порту набора данных [ редактировать ]
- Прямой запрос ключа в ассемблере [ редактировать ]
- Запрос ключа в бейсике [ редактировать ]
- Полезные пики и тыквы [ редактировать ]
Клавиатура является наиболее важной устройство ввода компьютер. Пользователь может использовать все это доступно знак Enter. Некоторые входные строки используются компьютером как команды как например СПИСОК , RUN , НАГРУЗКИ , SAVE распознан. Путем сопоставления (см. программирование ) Команды часто сочетаются с номера строк возникать программы которые затем могут быть отредактированы, выполнены, сохранены или загружены.
C64 это клавиатурный компьютер (OEM Mitsumi), компьютер, который встроил клавиатуру в корпус и оптически объединяет в одно устройство. Другие принадлежат к этому роду домашний компьютер как коммодор ВК 20 , C16 , C116 , C128 , Плюс / 4 , Amiga или Atari ST ,
Клавиатура является основным устройством ввода C64.
Строительство [ редактировать ]
Клавиатура C64 имеет 66 клавиш.
- Блокировка переключения передач механически фиксируется и подключается параллельно левому переключателю.
- ВОССТАНОВЛЕНИЕ действует непосредственно над монотриггер на NMI Ввод процессор ,
- Оставшиеся 64 клавиши соединены в матрицу 8 × 8 (см. схема ниже).
Как работает матрица:
Например, если был нажат A, между линиями PA1 и PB2 имеется проводящее соединение ЦРУ первый
Запрос [ редактировать ]
Операция запроса клавиатуры, как в Kernal реализовано:
- Инициализация портов ввода-вывода происходит в $ FDA3 :
- порта биты PB0-PB7 из ЦРУ 1 запрограммированы как входы ($ DC03 = 0).
- Без нажатия клавиши входы имеют высокий уровень благодаря встроенным в модуль порта подтягивающим резисторам.
- Биты порта PA0-PA7 CIA 1 программируются как выходы ($ DC02 = 255).
- Настоящий keyscan Рутина в $ EA87 сделайте следующее:
- 0 (низкий уровень) проталкивается через биты порта PA0-PA7 ($ DC00 = 254,253,251,247,239 ..., см. KERNAL $ EAA3 и $ EAD6).
- Если в битах входного порта PB0-PB7 / DC01 (KERNAL $ EAAB) обнаружены нули, соответствующие клавиши нажаты.
Проблемы [ редактировать ]
- Среди прочего, джойстики Используя одни и те же линии (каждое движение тянет одну из линий на землю или 0 В), есть несколько побочных эффектов.
- У которой Kernal -Выполнение запроса клавиатуры заметно в джойстике 1, наиболее сильном (символы появляются без нажатия кнопки), но также и джойстик 2 мешает запросу клавиатуры (клавиши больше не распознаются или неправильно распознаются).
- Хотя альтернативные запросы клавиатуры (в ваших собственных программах или играх) могут помешать обнаружению движений джойстика в качестве нажатия клавиши (строка CIA не установлена на низкий уровень, но все равно читает низкий => перемещаемый джойстик), но все равно не клавиатура (безопасно) читать, когда джойстик перемещается.
- При одновременном нажатии как минимум на три клавиши, в некоторых случаях другие клавиши ошибочно распознаются как нажатые. Это может быть проверено, например, обоими курсор Удерживая левую клавишу Shift вверх и вниз. Есть такие символы, как Shift- «A». В матрице в нижней части статьи вы можете видеть, что если вы создаете вдумчивый прямоугольник с левой клавишей Shift и двумя клавишами CRSR в виде трех углов, четвертый угол находится на клавише «A». С помощью того же метода вы можете узнать с другими комбинациями трех клавиш, если и какие другие клавиши были распознаны неправильно. Этот эффект сделан эмуляторы не подражал до сих пор (2008). Диоды в матрице клавиатуры предотвратили бы эту проблему, но не использовались.
- С точки зрения C64, некоторые комбинации входных сигналов принципиально не различимы. Например, между
- Джойстик 2 вверх + F1 и
- Джойстик 2 вверх + джойстик 1 огонь
нельзя отличить.
Кнопка RESTORE [ редактировать ]
ВОССТАНОВЛЕНИЕ Кнопка напрямую подключена к конденсатору через конденсатор NMI Оборудование подключено к процессору. Так как это, по крайней мере, рано хлебница -C64s слишком маленький, вы должны очень сильно нажимать на клавишу (= быстро), чтобы он реагировал. Средство устранения - замена или параллельное подключение оригинального компонента (51 пФ, C38) конденсатором 1 нФ.
Схема [ редактировать ]
И вот назначение контактов в C64:
Запасные ключи [ редактировать ]
- Commodore клавиатуры: C128 ; С + 4 ; C232 ; C264 ; C364 ; SX-64 ; C65 ; C64GS
- Amiga Клавиатуры: A500; A500 +; A600 (также в черном цвете); A1000; A1200; A1500; A2000; A2500; A3000; A4000; SX-500; CDTV (черный); CD32 (черный)
- Клавиатура Mitsumi AT KKR-E99AC
- Клавиатура Mitsumi AT KKR-E99AC-9
- Клавиатура Mitsumi Amiga (с MOS Technology 6570-036 - микроконтроллер 6500/1 на плате клавиатуры в Amiga 500)
Соединение C128 [ редактировать ]
- масса
- X
- NMI
- VCC
- Row3
- Row6
- Row5
- Row4
- Row7
- row2
- Row1
- row0
- COL0
- Col6
- COL5
- COL4
- COL3
- COL2
- COL1
- COL7
С16 время [ редактировать ]
Клавиатура PS / 2 на порту набора данных [ редактировать ]
Адаптер и программное обеспечение для подключения немецкий английский
увидеть таблица клавиатуры C64 ,
Клавиатура запросов может с Бейсик - команда ВХОД , GET или PEEK сделано или через соответствующий языковые программы машины ( ассемблер ).
Прямой запрос ключа в ассемблере [ редактировать ]
; Эта программа ожидает, пока не будет нажата клавиша «S». Программа начинается с SYS 49152 * = с000; Начальный адрес начала программы было ; прерывания блокировка ( IRQ Выключите подпрограмму, чтобы избежать совпадения со старым запросом клавиатуры) Lda #% 11111101; Тестовый столбец 1 (COL1) матрицы (линия порта PA1 = 0) станция $ dc00; Записать в регистр цикл Lda $ dc01; Считать строчные регистры и #% 00100000; Маскирующая линия 5 (ROW5) (линия порта PB5) BNE петля; Подождите, пока не нажмете "S" ( аккумулятор = 0) кли ; Разрешить прерывания до конца ртс ; возвращение Бейсик .c000 78 be .c001 a9 fd lda # $ fd .c003 8d 00 dc sta $ dc00 .c006 ad 01 dc lda $ dc01 .c009 29 20 и # $ 20 .c00b d0 f9 bne $ c006 .c00d 58 cli .c00e 60 rts
Запрос ключа в бейсике [ редактировать ]
10 ВВОД «Пожалуйста, введите что-нибудь»; 20 долларов PRINT «Они вошли:»; Примечание: для этого требуется подтверждение ввода с клавиатуры ВОЗВРАТ продолжить программу. Ввод с клавиатуры находится в переменная A $.
10 PRINT "Пожалуйста, нажмите клавишу:" 20 GET A $: ЕСЛИ A $ = "" ТОГДА 20 30 ПЕЧАТЬ "Они нажали клавишу:"; CHR $ (34); A $; CHR $ (34) Примечание. Если клавиша не нажата, ответ переменной A $ будет пустым строка , Чтобы реализовать состояние ожидания, необходимо проверить A $, а если A $ пусто, команда GET должна быть снова указана.
- Буфер клавиатуры в сочетании с ОСНОВНОЙ командой GET
198,0: ПОДОЖДИТЕ 198,1: GET A $ Примечание: [[буфер клавиатуры] будет сначала очищен, используя WAIT, чтобы изменить количество символов в клавиатуре. буфер клавиатуры подождал, а затем прочитал символ с помощью GET. Вы спасаете себя здесь line_number зависит строительство петли ,
- С помощью команды BASIC PEEK
10 KL = 245: KH = KL + 1: REM Указатель адреса таблицы кодов клавиш 20 AZ $ = CHR $ (34): REM Кавычка 30 IF PEEK (197) <> 64 THEN 30: REM Дождаться, пока не будет нажата ни одна клавиша 40 PRINT CHR $ (14); «Пожалуйста, нажмите клавишу ...» 50 T = PEEK (197): ЕСЛИ T = 64, ТО 50 60 TB = PEEK (KL) + PEEK (KH) * 256: REM TB: Адрес в таблице кодов ключей 70 PRINT "Вы нажали клавишу"; AZ $; CHR $ (PEEK (TB + T)); AZ $; "," 80 PRINT "код клавиши"; T; "в таблице @"; TB 90 POKE 198,0: REM Пустой буфер клавиатуры Примечание . Клавиатура вводится чтением Адрес памяти 197 (00C5 $).
код ключа будет в переменная Т подал. Если ни одна клавиша не нажата, обратная связь всегда имеет значение 64. Поэтому, чтобы реализовать состояние ожидания, необходимо проверить T на это значение. Если возвращаемое значение равно 64, код клавиатуры должен быть снова считан с помощью PEEK. кнопки управления CTRL, SHIFT и C = изменить указатель в ячейках памяти 245 и 246. Этот указатель находится в IRQ Рутина настроена на другую таблицу кодов клавиш в зависимости от комбинации этих клавиш. Однако на этом этапе программа BASIC имеет так называемое состояние гонки (несогласованность, зависящая от выполнения программы): если обработка двух прерываний (IRQ) происходит между двумя командами PEEK, которые изменяют указатель, значения двух команд PEEK больше не совпадают Поэтому TB не содержит адреса в таблице клавиатуры, поэтому вычисляется неверный результат. Поскольку это может происходить редко, этот факт не включен в программу.
Полезные пики и тыквы [ редактировать ]
Объяснение используемых областей памяти можно найти под нулевой Page ,
Auto Repeat:
POKE 650,128 заставляет каждую клавишу повторяться автоматически, пока клавиша удерживается нажатой.
POKE 650.0 снова отменяет эту функцию.
Keylock:
POKE 649.0 блокирует ввод с клавиатуры, потому что буфер клавиатуры установлен на длину 0.
POKE 649,10: POKE 808,237 разрешает ввод снова.
или
POKE 655,71 Изменение указателя на таблицу декодирования, а также блокировку клавиатуры
Тыкать 655.72 Разблокировать клавиатуру.
или
POKE 56322,224 также выключает клавиатуру, на этот раз регистр направления данных ЦРУ 1 изменился. Поэтому этот POKE часто используется во время запроса джойстика, поскольку сигналы джойстика частично перекрываются с клавиатурой.
POKE 56322,255 снова активирует клавиатуру.
или выключив прерывания (Исключение: RUN / STOP + ВОССТАНОВЛЕНИЕ ) или I / O логика ,
Отключить отдельные ключи:
- RUN / STOP: POKE 788,52 - включить с помощью POKE 788,49
- ВОССТАНОВИТЬ: POKE 792,193 - Включение с помощью POKE 792,234
Буфер клавиатуры: в ячейках памяти 631-640 находится буфер клавиатуры который может быть длиной до 10 символов. Он может быть считан с помощью PEEK, но также может быть смоделирован с помощью нажатий клавиш POKE. Это может быть использовано, например, для
- ОСНОВНЫЕ строки, например, с объявлениями функций через DEF FN динамически создавать поверх пользовательского ввода или
- отмена, связанная с ошибкой, включая возврат в прямой режим перехватить (сравнить TRAP или ОШИБКА ).
С соответствующим образом подготовленным экраном (программными строками), позиционированным курсором и вымышленными нажатиями клавиш в буфере клавиатуры это возможно на таком обходном пути .
POKE 198.0 очищает буфер клавиатуры. Это особенно полезно в начале нового ввода, чтобы предотвратить нежелательный ввод любых предыдущих нажатий клавиш, хранящихся в буфере клавиатуры.
Похожие
Автомобили на иностранных номерах: риски и преимуществаЗа последние два года Европа стала ближе к Украине. По крайней мере, если говорить о покупке автомобиля с пробегом, зарегистрированного в ЕС, - подобными теперь торгуют буквально на обочинах киевских улиц. Около € 2,0-4,5 тыс. - вот цена автомобилей, которые уже поездили в ЕС, но все еще крепкие и аккуратные на вид, - пишет Nissan Versa - недостатки и проблемы
Ниссан Versa это компактный седан, который хорошо представлен на внутреннем рынке. Ранее импортированная из Мексики, модель обращает внимание на ее размер, который приближается к 4,5 метра. Выдающийся багажник является маркой модели, несмотря на Citroen C4 Cactus (с 2014 года) - схема предохранителей - Auto Genius
... ключателей (под сенсорным планшетом), кондиционер, сенсорный планшет F16 15 Розетка 12 В F18 20 Радио F19 15 Ремни безопасности F20 5 Подушки безопасности F21 5 Комбинация приборов F22 30 F-замки 23 5 Потолочный светильник, лампа для чтения карт F26 15 Эхолот F27 15 Ветровое стекло и омыватель заднего стекла F28 5 Замок рулевого управления (Neiman) F30 15 Стеклоочиститель заднего стекла Правый блок предохранителей Citroen C4 Cactus - предохранители - панель приборов (правая сторона) Предохранители Маркировка шин
... время на всей территории Европейского Союза маркировка шин одинакова. Умение читать информацию с этикеток поможет вам сделать правильный выбор! С 1 ноября 2012 года маркировка шин является обязательной на всей территории Европейского Союза в соответствии с постановлением ЕС 1222/2009 о дорожном транспорте. Благодаря этикеткам потребители лучше информированы о шинах, доступных на рынке. Это позволяет им сделать выбор на основе четких критериев, сравнивая шины в соответствии Снятие / удаление EGR
... запроса рабочего времени, чтобы открыть клапан и рециркулировать сгоревшие газы. Датчик абсолютного давления в коллекторе затем используется для регистрации количества дополнительного газа, который впоследствии подается обратно в ЭБУ в качестве контрольной меры. ПРОБЛЕМЫ КЛАПАНА EGR Поскольку клапан рециркуляции отработавших газов постоянно работает со сгоревшими выхлопными газами, они, естественно, имеют высокое содержание сажи. Эта сажа в газах вызывает Как установить умягчитель воды? Упрощенная схема установки
В этой статье я бы хотел развеять миф об установке умягчителя воды. Откройте для себя самые популярные схемы установки и посмотрите, как это просто! Не беспокойтесь об установке умягчителя воды По моему опыту, многие клиенты все еще отказываются от покупки умягчителя воды через Интернет. Оказывается, главная причина - незнание сборки - как она должна выглядеть, что для этого нужно. Многие люди боятся, что это может быть просто слишком сложно, другие думают, что вместе с умягчителем