ASCII keyboard

Компьютеры прошлого, не попавшие в другие разделы

Moderator: Shaos

User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

ASCII keyboard

Post by MC68k »

если не обращать внимание на ололо спектрум и ему подобные, то оказывается сабж довольно распространенное явление. если я правильно понимаю, то практически все терминалы "больших ЭВМ"(я это дело пропустил, ибо недостаточно стар) имели ASCII клавиатуру. из машин помельче навскидку APPLE I, II и монструозный АГАТ.

PS/2 keyboard -> PIC(ololo ATMEGA) -> ASCII - это понятно, а есть ли более изящное решение?
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Покупаем клавку, заменяем родной контроллер на PIC(ololo ATMEGA) и всего делов. :3
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

на анально огороженном наверное поболее про ASCII-клавы знают. собственно вопрос - могут быть еще варианты,кроме использования PS/2?
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

А нафига сейчас ASCII-клава? Самый простой вариант - самому напаять кнопок. А в PS/2 контроллер, вроде бы, аналог 1816ВЕ51 (или ВЕ49?). Тоже можно написать свою прошивку, если кто любитель мазохизма.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

VituZz wrote:А нафига сейчас ASCII-клава? Самый простой вариант - самому напаять кнопок. А в PS/2 контроллер, вроде бы, аналог 1816ВЕ51 (или ВЕ49?). Тоже можно написать свою прошивку, если кто любитель мазохизма.
Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

VituZz wrote:А в PS/2 контроллер, вроде бы, аналог 1816ВЕ51 (или ВЕ49?).
Да, на подобном, только с зашитой прогой. В последнее время делаются в виде среднего размера капель.
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

HardWareMan wrote: Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

VituZz wrote:Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...
Смысл в получении ASCII кодов (да хоть сканкодов, с нажатием-отжатием) по обычному UART'у, используя встроенные UART'ы в контроллеры. Чтобы не мучится с PS/2 протоколом, капишь? Пришел байт - автоматом в обработчике прерывания отработался. Отсылаем байт - и не задумываемся об телодвижениях смены направления. Полный дуплекс по 3м проводам на одном UART'е любого МК, хоть х51.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

HardWareMan wrote: Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
примерно так - без лишних кодов
VituZz wrote:Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...
штаны можно надеть через голову, но есть и более удобные варианты.
HardWareMan wrote:Смысл в получении ASCII кодов (да хоть сканкодов, с нажатием-отжатием) по обычному UART'у, используя встроенные UART'ы в контроллеры. Чтобы не мучится с PS/2 протоколом, капишь? Пришел байт - автоматом в обработчике прерывания отработался. Отсылаем байт - и не задумываемся об телодвижениях смены направления. Полный дуплекс по 3м проводам на одном UART'е любого МК, хоть х51.
сдается мне, те, кто говорят, что PS/2 scan-code - хорошо и зачем нам ASCII-клавиатура, ничего слаще морковки не ели :wink:
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ASCII keyboard

Post by Lavr »

HardWareMan wrote: 02 Sep 2011 10:17
VituZz wrote: 02 Sep 2011 08:19
HardWareMan wrote:Я так понял: под ASCII клавкой понимают клавку, которая по 2м проводам человеческим UART'ом передает буковки-факты нажатий и повторов. Это чертовски удобно, я вам скажу. А на 3х проводах можно в обратку посылать байт состояния лампочек и раскладки. Уё@#е PS/2 тут и рядом не стояло. :3
Если мне память не отшибает, PS/2 тоже отсылает в последовательном коде, только не ASCII-код, а скан-код, и может принимать какие-то команды. Смысл именно в том, чтобы получать сразу ASCII? Но в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx... А без них клава будет как-то не очень...
Смысл в получении ASCII кодов (да хоть сканкодов, с нажатием-отжатием) по обычному UART'у, используя встроенные UART'ы в контроллеры. Чтобы не мучится с PS/2 протоколом, капишь? Пришел байт - автоматом в обработчике прерывания отработался. Отсылаем байт - и не задумываемся об телодвижениях смены направления. Полный дуплекс по 3м проводам на одном UART'е любого МК, хоть х51.
Мы, помню я, RS-232-клавиатуры подробно на форуме где-то обсуждали, но что-то я снова с этим вопросом
неожиданно столкнулся в проекте SC/MP NIBL Basic.

Image

В авторском оригинале эта конструкция выглядит вот так:
NIBL Computer.PNG
Вот описание конструкции:
Orton NIBL Computer with PAGE2 Support Manual.pdf
Терминал там самодельный вот по такой схеме:
NIBL ComputerT.PNG
Я правильно понимаю, что в данном случае это и есть чистая ASCII-клавиатура? Поскольку:
VituZz wrote: 02 Sep 2011 08:19...в таблице ASCII нет соответствия для клавиш управления курсором и прочих Fx...
То есть, мы получаем по прерыванию или опросу последовательного порта только ASCII-коды?

А если клавиатура - RS-232, то получаем "сканкоды, с нажатием-отжатием по обычному UART'у..." ?
You do not have the required permissions to view the files attached to this post.
iLavr
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: ASCII keyboard

Post by imsushka »

к ASCII кодам относятся и ESС последовательности, а там чо хошь есть
Mondx
Doomed
Posts: 518
Joined: 10 Aug 2022 07:27
Location: Crimea

Re: ASCII keyboard

Post by Mondx »

Насколько понимаю, ASCII клавиатура формирует коды клавиш в ASCII кодировке. Обычно имеет параллельный интерфейс - данные и строб. Так было на заре, до того как появились XT/AT, PS/2, USB...
С виду, ничто не мешает иметь последовательный интерфейс, типа RS-232. Только ASCII код - никаких отжатий.
Заглавные, строчные, автоповтор, управляющие, индикация - всё это формируется в самой клавиатуре. На комп только коды символов.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ASCII keyboard

Post by Lavr »

imsushka wrote: 05 Mar 2025 07:21к ASCII кодам относятся и ESС последовательности, а там чо хошь есть
Ну, к примеру, клавиши управления курсором частенько нужны.
Вот фото клавиатуры Apple II:
ASCII_Keyboard_(Close-Up_-_Top).jpg
Она - ASCII keyboard, как говорится, бесспорно!
Клавиш управления курсором явно нет, (хотя кое-где пишут, что были "влево" и "вправо").
Курсором, как пишут в статье Википедии, командовали так:
IJKM1.PNG
IJKM.PNG
То есть, передаётся 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
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: ASCII keyboard

Post by imsushka »

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
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ASCII keyboard

Post by Lavr »

imsushka wrote: 05 Mar 2025 19:19 ascii - это от 00 до 7F
Ну да, но стандартные управляющие коды ASCII от 00 до 1F
Lavr wrote: 05 Mar 2025 19:00 Встречается и такое вот замечание:
"Все символы в таблице ASCII ниже кода 20Н (технически это набор управляющих кодов C0) относятся к этому типу, включая CR и LF, используемые для разделения строк текста.
В отдельных случаях коды управления курсором выбирали в этом наборе из неиспользуемых управляющих кодов
."
Ну как в привычных нам 8-битных компьютерах - клавиши курсора выдают ASCII-коды:
[<-08H],[19H-UP],[1AH-DOWN],[18H->]
Вот я, к примеру, скопировал таблицу управляющих кодов ПК "Специалист" ОС RAMFOS:
ASCII-RAMFOS.png
Красными точками пометил коды совпадающие с управляющими кодами ASCII от 00 до 1F.
Те, которые не совпадают, в стандартной таблице ASCII имеют следующие значения:
ASCII-УПР.PNG
На них видеосистема ПК "Специалист" как "терминал" реагировать никак не сумеет.
Значит интерпретировать их как коды управления курсором для ОС RAMFOS вполне можно!
imsushka wrote: 05 Mar 2025 19:19vt100 - ascii terminal - железка, принимающая и передающая ascii коды
вот пример железяки
https://github.com/maccasoft/propeller-vt100-terminal
Я очень сомневаюсь, что vt100 - ascii terminal поймёт управляющие коды курсора от Apple II. :wink:

Значит оргвывод такой: если используемый "терминал" (а он чаще всего самодельный сейчас) понимает
управляющие коды по какой-либо определённой договорённости, то он их и будет корректно обслуживать.
А если не понимает, то никакой ASCII или какой другой стандарт ему не указ. :-?
You do not have the required permissions to view the files attached to this post.
iLavr