ASCII keyboard
Moderator: Shaos
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
ASCII keyboard
если не обращать внимание на ололо спектрум и ему подобные, то оказывается сабж довольно распространенное явление. если я правильно понимаю, то практически все терминалы "больших ЭВМ"(я это дело пропустил, ибо недостаточно стар) имели ASCII клавиатуру. из машин помельче навскидку APPLE I, II и монструозный АГАТ.
PS/2 keyboard -> PIC(ololo ATMEGA) -> ASCII - это понятно, а есть ли более изящное решение?
PS/2 keyboard -> PIC(ololo ATMEGA) -> ASCII - это понятно, а есть ли более изящное решение?
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3VituZz wrote:А нафига сейчас ASCII-клава? Самый простой вариант - самому напаять кнопок. А в PS/2 контроллер, вроде бы, аналог 1816ВЕ51 (или ВЕ49?). Тоже можно написать свою прошивку, если кто любитель мазохизма.
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...HardWareMan wrote: Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Смысл в получении ASCII кодов (да хоть сканкодов, с нажатием-отжатием) по обычному UART'у, используя встроенные UART'ы в контроллеры. Чтобы не мучится с PS/2 протоколом, капишь? Пришел байт - автоматом в обработчике прерывания отработался. Отсылаем байт - и не задумываемся об телодвижениях смены направления. Полный дуплекс по 3м проводам на одном UART'е любого МК, хоть х51.VituZz wrote:Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
примерно так - без лишних кодовHardWareMan wrote: Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
штаны можно надеть через голову, но есть и более удобные варианты.VituZz wrote:Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...
сдается мне, те, кто говорят, что PS/2 scan-code - хорошо и зачем нам ASCII-клавиатура, ничего слаще морковки не елиHardWareMan wrote:Смысл в получении ASCII кодов (да хоть сканкодов, с нажатием-отжатием) по обычному UART'у, используя встроенные UART'ы в контроллеры. Чтобы не мучится с PS/2 протоколом, капишь? Пришел байт - автоматом в обработчике прерывания отработался. Отсылаем байт - и не задумываемся об телодвижениях смены направления. Полный дуплекс по 3м проводам на одном UART'е любого МК, хоть х51.

-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ASCII keyboard
Мы, помню я, RS-232-клавиатуры подробно на форуме где-то обсуждали, но что-то я снова с этим вопросомHardWareMan wrote: 02 Sep 2011 10:17Смысл в получении ASCII кодов (да хоть сканкодов, с нажатием-отжатием) по обычному UART'у, используя встроенные UART'ы в контроллеры. Чтобы не мучится с PS/2 протоколом, капишь? Пришел байт - автоматом в обработчике прерывания отработался. Отсылаем байт - и не задумываемся об телодвижениях смены направления. Полный дуплекс по 3м проводам на одном UART'е любого МК, хоть х51.VituZz wrote: 02 Sep 2011 08:19Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...HardWareMan wrote:Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
неожиданно столкнулся в проекте SC/MP NIBL Basic.
В авторском оригинале эта конструкция выглядит вот так: Вот описание конструкции: Терминал там самодельный вот по такой схеме: Я правильно понимаю, что в данном случае это и есть чистая ASCII-клавиатура? Поскольку:
То есть, мы получаем по прерыванию или опросу последовательного порта только ASCII-коды?VituZz wrote: 02 Sep 2011 08:19...в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx...
А если клавиатура - RS-232, то получаем "сканкоды, с нажатием-отжатием по обычному UART'у..." ?
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Maniac
- Posts: 237
- Joined: 01 Jan 2022 04:34
- Location: USSR, Tashkent
Re: ASCII keyboard
к ASCII кодам относятся и ESС последовательности, а там чо хошь есть
-
- Doomed
- Posts: 518
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: ASCII keyboard
Насколько понимаю, ASCII клавиатура формирует коды клавиш в ASCII кодировке. Обычно имеет параллельный интерфейс - данные и строб. Так было на заре, до того как появились XT/AT, PS/2, USB...
С виду, ничто не мешает иметь последовательный интерфейс, типа RS-232. Только ASCII код - никаких отжатий.
Заглавные, строчные, автоповтор, управляющие, индикация - всё это формируется в самой клавиатуре. На комп только коды символов.
С виду, ничто не мешает иметь последовательный интерфейс, типа RS-232. Только ASCII код - никаких отжатий.
Заглавные, строчные, автоповтор, управляющие, индикация - всё это формируется в самой клавиатуре. На комп только коды символов.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ASCII keyboard
Ну, к примеру, клавиши управления курсором частенько нужны.imsushka wrote: 05 Mar 2025 07:21к ASCII кодам относятся и ESС последовательности, а там чо хошь есть
Вот фото клавиатуры Apple II:
Она - ASCII keyboard, как говорится, бесспорно!
Клавиш управления курсором явно нет, (хотя кое-где пишут, что были "влево" и "вправо").
Курсором, как пишут в статье Википедии, командовали так: То есть, передаётся ASCII-код 1BH, а после него обычные ASCII-коды букв IJKM ?
И, судя по статье, это локальная договоренность сугубо для компьютеров Apple II ?
Поскольку в статье "Клавиши со стрелками" приводятся и другие варианты соглашений...
Встречается и такое вот замечание:
"Все символы в таблице ASCII ниже кода 20Н (технически это набор управляющих кодов C0) относятся к этому типу, включая CR и LF, используемые для разделения строк текста.
В отдельных случаях коды управления курсором выбирали в этом наборе из неиспользуемых управляющих кодов."
Ну как в привычных нам 8-битных компьютерах - клавиши курсора выдают ASCII-коды:
[<-08H],[19H-UP],[1AH-DOWN],[18H->]
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Maniac
- Posts: 237
- Joined: 01 Jan 2022 04:34
- Location: USSR, Tashkent
Re: ASCII keyboard
ascii - это от 00 до 7F
vt100 - ascii terminal - железка, принимающая и передающая ascii коды
вот пример железяки
https://github.com/maccasoft/propeller-vt100-terminal
управление курсором , вот примеры
https://citforum.ru/operating_systems/f ... ansi.shtml
вот более расширенный набор
https://en.wikipedia.org/wiki/ANSI_escape_code
vt100 - ascii terminal - железка, принимающая и передающая ascii коды
вот пример железяки
https://github.com/maccasoft/propeller-vt100-terminal
управление курсором , вот примеры
https://citforum.ru/operating_systems/f ... ansi.shtml
вот более расширенный набор
https://en.wikipedia.org/wiki/ANSI_escape_code
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ASCII keyboard
Ну да, но стандартные управляющие коды ASCII от 00 до 1F
Вот я, к примеру, скопировал таблицу управляющих кодов ПК "Специалист" ОС RAMFOS: Красными точками пометил коды совпадающие с управляющими кодами ASCII от 00 до 1F.Lavr wrote: 05 Mar 2025 19:00 Встречается и такое вот замечание:
"Все символы в таблице ASCII ниже кода 20Н (технически это набор управляющих кодов C0) относятся к этому типу, включая CR и LF, используемые для разделения строк текста.
В отдельных случаях коды управления курсором выбирали в этом наборе из неиспользуемых управляющих кодов."
Ну как в привычных нам 8-битных компьютерах - клавиши курсора выдают ASCII-коды:
[<-08H],[19H-UP],[1AH-DOWN],[18H->]
Те, которые не совпадают, в стандартной таблице ASCII имеют следующие значения: На них видеосистема ПК "Специалист" как "терминал" реагировать никак не сумеет.
Значит интерпретировать их как коды управления курсором для ОС RAMFOS вполне можно!
Я очень сомневаюсь, что vt100 - ascii terminal поймёт управляющие коды курсора от Apple II.imsushka wrote: 05 Mar 2025 19:19vt100 - ascii terminal - железка, принимающая и передающая ascii коды
вот пример железяки
https://github.com/maccasoft/propeller-vt100-terminal

Значит оргвывод такой: если используемый "терминал" (а он чаще всего самодельный сейчас) понимает
управляющие коды по какой-либо определённой договорённости, то он их и будет корректно обслуживать.
А если не понимает, то никакой ASCII или какой другой стандарт ему не указ.

You do not have the required permissions to view the files attached to this post.
iLavr