Дмитрий Радищев (dibr) wrote,
Дмитрий Радищев
dibr

Category:

+++

Давным-давно, во второй половине прошлого века, когда модемы ещё только учились шипеть в линию (телефонную, конечно, других особо не было), встал вопрос о стандартизации управления модемами со стороны компьютера. Кроме стандартного набора команд, нужно было решить ещё один вопрос - и команды управления, и передаваемые данные, передавались по одним и тем же проводам, и их надо было как-то различать. Для этого у модемов было сделано два режима: "командный" - в котором он воспринимал то, что в него шло из компьютера, как команды, и "передачи данных" ("онлайн") - в котором всё воспринималось как данные и передавалось на удалённую сторону. Для перехода из командного режима в "онлайн" была специальная команда... а вот как заставить модем перейти из онлайн-режима в командный? Ведь данные могут быть любыми, и всё, что модем получает - он просто передаёт в линию? Да, очень часто доступны дополнительные линии управления, но в общем случае их может и не быть.

Согласно легенде (т.е. "я это когда-то слышал, но ленюсь проверить"), на сцену тогда вышла фирма Hayes, и сказала: "а вот ведь, скажем, комбинация букв "+++" встречается очень редко - вероятность случайно встретить её в потоке одна сколькитотаммиллионная. Пусть модем, увидев в потоке данных такую комбинацию, переходит в командный режим!" Все радостно решили, что таки да, три плюса подряд в реальных данных почти не встречаются, и включили это в стандарт.

После чего фирма Hayes запатентовала небольшую модификацию стандарта - модем переходит в командный режим только от "обособленных" плюсов, с обязательной паузой перед и после "+++" - такая ситуация, с паузами, в реальной жизни действительно почти невозможна. А остальные участники стандарта внезапно обнаружили, что "+++" - не такая уж редкая комбинация! Например, она содержится в, собственно, описании стандарта команд модема. И прочих документах, где про эти самые "+++" пишется. Да и - 2^24 - это только кажется что много, на самом деле достаточно прокачать всего пару десятков мегабайт, чтобы наверняка налететь на случайный "+++". А поздно - патент!


Прошло сколько-то десятков лет. И оказалось, что бутлоадер Arduino Mega 2560 R3 переходит в интерактивный (командный) режим, увидев в потоке данных три восклицательных знака подряд (чаще всего в текстовых константах повышенной эмоциональности, но у автора поста "!!!" встретилось прямо в бинарном коде). Привет, Хайес? :-)

Subscribe

Recent Posts from This Journal

  • Юрьев день

    Поздравил на работе коллег с Юрьевым днём. Выяснил, что молодое поколение уже не знает исторического значения слов "Юрьев день": ну то есть…

  • ...но электрик перед смертью ещё и танцует

    А я правильно понимаю про "отвёртку электрика", она же "отвёртка под шлиц PH/S или PZ/S", что сначала производители электрооборудования придумали для…

  • полиш

    О польках и полонезах. Несмотря на то, что "полонез" буквально означает "польский"[1], на поверку внезапно оказалось, что "полька"[2] к Польше…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments

Recent Posts from This Journal

  • Юрьев день

    Поздравил на работе коллег с Юрьевым днём. Выяснил, что молодое поколение уже не знает исторического значения слов "Юрьев день": ну то есть…

  • ...но электрик перед смертью ещё и танцует

    А я правильно понимаю про "отвёртку электрика", она же "отвёртка под шлиц PH/S или PZ/S", что сначала производители электрооборудования придумали для…

  • полиш

    О польках и полонезах. Несмотря на то, что "полонез" буквально означает "польский"[1], на поверку внезапно оказалось, что "полька"[2] к Польше…