Еггогология

Поделись знанием:
(перенаправлено с «ЕГГОГ»)
Перейти к: навигация, поиск

Еггоголо́гия — изучение недокументированных возможностей микрокалькуляторов.





Содержание

Происхождение

Название происходит от сообщения об ошибке «ЕГГОГ» (англ. Error — ошибка), которую выдавали программируемые микрокалькуляторы второго поколения советского производства (Электроника Б3-34, МК-54, МК-56, МК-61, МК-52, МС 1104) на семисегментных индикаторах. Термин впервые появился в журнале «Техника — молодёжи» после цикла статей, посвященных программированию на микрокалькуляторах серии «Электроника Б3-34»[1] и серии из девяти рассказов об увлекательном фантастическом путешествии с Луны на Землю (автор — Михаил Пухов) под общим названием «„Кон-Тики“: путь к Земле»[2]. В этом цикле, кроме игровых программ, описывались различные недокументированные возможности микрокалькуляторов и видеосообщения, многие из которых получались путём манипуляций с клавишами после появления сообщения об ошибке «ЕГГОГ» ().

Читатели журнала с огромным энтузиазмом откликнулись на рассказ об обнаруженных недокументированных возможностях микрокалькуляторов, стали искать новые, и по окончании цикла «Кон-Тики…» появился небольшой раздел «Новости еггогологии». С помощью опубликованных в нём недокументированных приёмов было написано множество новых игровых программ, большинство из которых просто не могло быть создано стандартными средствами, в силу ограниченности ресурсов калькуляторов семейства Б3-34.

Направления еггогологии

Одним из основных направлений еггогологии было расширение диапазона обрабатываемых чисел, и изучение реакции микрокалькулятора на попытки произвести операции с числами за пределами стандартного диапазона.

Другое направление еггогологии изучало реакцию микрокалькулятора на недокументированные последовательности нажатия программных клавиш и способы ввода недокументированных команд, а также исполнение микрокалькуляторами таких команд.

«Нестандартные» числа

Еггогология утверждает, что порядок (показатель степени) диапазона обрабатываемых микрокалькулятором чисел ограничен по модулю 1000 и делит этот диапазон на так называемые этажи или «ярусы»[3]. Каждый ярус — это сотня из диапазона от 0 до 999. То есть нулевой ярус — это числа с основанием степени от 0 до 99, первый ярус — числа с показателем степени от 100 до 199 и т. д. Всего ярусов десять, причем минус первый ярус эквивалентен девятому (то есть показатель степени −80 в представлении микрокалькулятора эквивалентен 920), минус второй — восьмому (например, показатель −180 эквивалентен 820) и т. д.

Документацией максимальное значение чисел, над которыми можно производить математические действия, ограничивалось значением ±9.9999999 × 10±99 (то есть нулевым и минус первым ярусами). В самом деле, если ввести в микрокалькулятор число 1 × 1050 (для чего достаточно последовательности нажатий клавиш 1 ВП 50) и возвести его в квадрат (нажать Fx²), то получаем сообщение на дисплее «ЕГГОГ». Такая индикация по документации является признаком сообщения об ошибке, так как число 1 × 10100 выходит за пределы «стандартного» диапазона. Оказывается, что это не сообщение об ошибке, а способ индикации чисел первого яруса, и с этим числом можно производить обычные операции: складывать, умножать, делить, вычислять значения функций, запоминать его в регистре памяти, вызывать из регистра. Таким же образом можно работать с числами второго яруса (например 1 × 10200, простейший способ получить такое число — возвести в квадрат число 1 × 10100). Чтобы выяснить реальные значения таких чисел, их нужно было разделить на 1 × 1099 или другие подобные числа для приведения к числу из нулевого яруса (по абсолютному модулю не более 9,9999999 × 1099).

Другими словами, давался способ расширения диапазона чисел, обрабатываемых стандартными действиями, до ±9.9999999 × 10299. Также было возможно с некоторыми ухищрениями (с помощью специально написанных программ) получать числа до ±9.9999999 × 10799 и анализировать их значение (то есть выяснить мантиссу и порядок). С помощью таких «вычислений» доказывалось, что девятый ярус представляет собой числа с отрицательным значением основания степени (например, 1 × 10920 было эквивалентным представлением числа 1 × 10−80). Числа восьмого яруса (числа от ±1 × 10800 до ±9.9999999 × 10899 а также от ±1 × 10900 до ±9.9999999 × 10900) невозможно сохранить после их получения, так как они немедленно преобразовывались в обычный нуль, независимо от того, с какой стороны к ним «подбираться» (с седьмого или девятого яруса).

Классификация числовых ярусов

Числовой ярус Название чисел Диапазон чисел Краткая характеристика числа из этого диапазона
Нулевой Обычные числа с неотрицательным порядком От ±1 до ±9.9999999 × 1099 Можно производить обычные вычисления
Первый «ЕГГОГи» От ±1 × 10100 до ±9.9999999 × 10199 Можно производить обычные вычисления, но отображаются на дисплее как
Второй «3ГГОГи» От ±1 × 10200 до ±9.9999999 × 10299 Можно производить обычные вычисления, но отображаются на дисплее как . Выполняют безусловный переход на адрес, совпадающий с двумя первыми цифрами порядка (от 20 до 29)
Третий «Неукротимые чудовища» От ±1 × 10300 до ±9.9999999 × 10399 Способны произвольно перевести микрокалькулятор в режим исполнения программы или привести к его зависанию
Четвертый «ОС-оборотни» От ±1 × 10400 до ±9.9999999 × 10499 Копируют в искажённом виде структуру ярусов, применяются для анализа других чисел. Искажают содержимое регистра С
Пятый «Тьма» От ±1 × 10500 до ±9.9999999 × 10599 При попытке вывода на дисплей приводят к зависанию микрокалькулятора. Индикатор гаснет, работоспособность восстанавливается после выключения и включения (в МС 1104 имелась специальная кнопка для подавления этого эффекта)
Шестой «С-ЕГГОГ-оборотни» От ±1 × 10600 до ±9.9999999 × 10699 Искажают содержимое регистра С
Седьмой «Длинные монстры» От ±1 × 10700 до ±9.9999999 × 10799 Копируют в искажённом виде структуру ярусов, применяются для анализа других чисел
Восьмой (минус второй) «Нули» От ±1 × 10800 до ±9.9999999 × 10900 или от ±1 × 10−200 до ±9.9999999 × 10−100 (зависит от способа получения) Немедленно преобразовывается в обычный ноль
Девятый (минус первый) Обычные числа с отрицательным порядком От ±1 × 10−99 до ±9.9999999 × 10−1 Можно производить обычные вычисления

Подробное описание

«ОС-оборотни»

От ±1 × 10400 до ±9.9999999 × 10499
При вытаскивании «ОС-оборотня» из регистра он заносит свой «хвост» в регистр С. «Хвост» также является сверхчислом, чьи две первые цифры порядка являются последними двумя цифрами порядка «ОС-оборотня». Если «хвост» также является «ОС-оборотнем» (это происходит для чисел с порядками с 440 по 449), то он также заносит свой «хвост» в регистр С. Существуют оборотни 3-го порядка — числа с порядком 444.
Пример:
В/О FПРГ Fx2 Fx2 × Fx2 ХПС Сх С/П FАВТ В/О 1 ВП 22 В↑ 1 ВП 50 С/П
ПХС на экране 0
ПХС на экране 0
ПХС на экране 0
ПХС на экране последний «Хвост» с тремя буквами Е.

«С-ЕГГОГ-оборотни»

От ±1 × 10600 до ±9.9999999 × 10699
Если «С-ЕГГОГ-оборотня» вытащить из регистра, то он прикроется содержимым регистра C, а сам переместится в регистр Y. При выполнении над ним арифметической операции — Г.ГГОГ
На основе свойств «С-ЕГГОГ-оборотня» придуман т. н. «АСО-анализ»:

  1. В регистр 0 помещаем «С-ЕГГОГ-оборотень» (можно и в другой регистр)
  2. В регистр А (только!) помещаем ЕГГОГ.
  3. ПXA ПX0 PX — содержимое регистра C — мантисса и 3-значная степень
  4. /-/ — содержимое P0

Меры предосторожности при работе с «С-ЕГГОГ-оборотнями»:

  1. «Тьма» наступает:
    • если после «АСО-анализа» нажать ВП, FАВТ
    • если сразу после формирования ЕГГОГА вытащить «С-ЕГГОГ-оборотня»
    • если вытащить «С-ЕГГОГ-оборотня» при «ПСЧ-режиме»
    • если «С-ЕГГОГ-оборотень» вытаскивает из регистра C сам себя

«Длинные монстры»

Другое название — «К-числа»
От ±1 × 10700 до ±9.9999999 × 10799
На индикаторе при появлении «Длинного монстра» появляется следующее число:
1,2345678·10735 = [50.12345678 3] Где первая цифра 5 на индикаторе это третья цифра порядка, а последняя цифра 3 на индикаторе это вторая цифра порядка. А сам «Длинный монстр» записывается на 73 адрес программы, что соответствует первым двум цифрам порядка числа.

Недокументированные команды

Команды «со стре́лками» в Б3-34

На микрокалькуляторе Б3-34 (и совместимых с ним МК-54, МК-56) существуют недокументированные команды КИП↑, КП↑ и др., которые обеспечивают косвенный доступ к регистру 0, но, в отличие от соответствующих команд КИП0, КП0 и др., не уменьшают его значения. Этот способ использования регистра 0 в некоторых случаях упрощал вычисления в программах. На микрокалькуляторах МК-61 и МК-52 такая команда не работает, так как в архитектуре МК-61/52 добавлен регистр Е, и коды недокументированных команд Б3-34 «со стрелками» совпадают с кодами соответствующих документированных команд МК-61/52 для косвенного доступа к регистру Е[4] (см. табл.). Следует заметить, что обозначениям клавиш П, ИП и в Б3-34 соответствуют Х→П, П→Х и Е в МК-61 и МК-52.

Коды команд Команды Б3-34 Команды МК-61, МК-52
7E Kx≠0↑ Kx≠0E
8E КБП↑ КБПЕ
9E Kx≥0↑ Kx≥0E
-E КПП↑ КППЕ
LE КП↑ КX→ПЕ
CE Кх<0↑ Kx<0E
ГE КИП↑ КП→ХЕ
EE Kx=0↑ Kx=0E

Некорректные операции с клавишей К

На микрокалькуляторе Б3-34 большинство недокументированных операций с клавишей К вызывает сообщение ЕГГОГ. Это команды К3—К9, К+, К−, К×, К÷, <math>\mathrm{K\underset{\rightarrow}{\overset{\leftarrow}{XY}}}</math>, К↑, К/−/, КВП, КСх и К десятичная запятая. Команды К1 и К2 эквивалентны операции КНОП.

На МК-61 и МК-52 к сообщению ЕГГОГ приводят только команды К−, К×, К÷. Команды К1 и К2 также эквивалентны операции КНОП. Коды остальных команд документированы и используются для преобразования временны́х и угловых мер, определения модуля и знака числа, целой и дробной частей числа, бо́льшего из двух чисел, логических операций и генерации случайного числа.

Некорректной операцией на МК-61 и МК-52 является также перевод минут (секунд) в градусы <math>\mathrm K \overrightarrow{_{\circ\,\prime}}</math> и <math>\mathrm K \overrightarrow{_{\circ\,\prime\,\prime\prime}}</math>, если величина минут или секунд более или равна 60.

Сообщение ЕГГОГ, полученное с помощью некорректных операций с клавишей К, не является «сверхчислом» первого «яруса» и не может быть сохранено в регистре памяти, но может быть использовано для вывода на индикатор символов 16-ричных цифр, например:

1 К− (высвечивается ЕГГОГ) ВП ВП ↑ (высвечивается буква Е).

Полученную букву Е можно сохранять в регистрах памяти и извлекать оттуда, а с помощью регистров 0—3 также и преобразовывать в символы других 16-ричных цифр:

П0 КИП0 ИП0 КНОП (Г) КИП0 ИП0 КНОП (С) КИП0 ИП0 КНОП (L) КИП0 ИП0 КНОП (-) КИП0 ИП0 КНОП (9) и т. д.

Подобные приёмы использовались для формирования видеосообщений, например, в игровых программах.

Получение видеосообщения, начинающегося с цифры F (изображается как пустое место) может нарушить нормальную работу микрокалькулятора (искажение программы и данных, самопроизвольный переход в режим счёта и т. п.). Избежать этого можно, сразу же «изгнав» его командой ↑, подаваемой не менее четырёх раз[4] (по другим данным — семь раз[5]), не пытаясь проводить какие-либо другие операции.

Искусственный ввод кодов команд

В одном шаге программной памяти микрокалькулятора могут содержаться две шестнадцатеричные цифры, то есть теоретически может существовать 256 различных кодов команд. Из них в руководстве пользователя МК-61/52 документированы 214. Существует искусственный приём, позволяющий ввести 12 из 42 недокументированных кодов. Для этого вводится одна из команд переходов, например БП (код 51) и за ней две 16-ричные цифры, воспринимаемые калькулятором как адрес перехода. После этого команда перехода затирается командой-«пустышкой» КНОП, а последующий шаг при выполнении программы будет воспринят калькулятором уже не как адрес перехода, а как команда[6]. Отметим, что некоторые из этих кодов можно ввести также путём недокументированных операций с клавишей К, описанных в предыдущем подразделе.

Коды команд Действия команд Ввод через клавишу К
27 Вызывает сообщение ЕГГОГ K−
28 Вызывает сообщение ЕГГОГ К×
29 Вызывает сообщение ЕГГОГ
2L Вызывает сообщение ЕГГОГ Нет
Вызывает сообщение ЕГГОГ Нет
Вызывает сообщение ЕГГОГ Нет
2E Вызывает сообщение ЕГГОГ Нет
Вызывает сообщение ЕГГОГ Нет
Копирует содержимое регистра Х в Х1. Содержимое регистров X, Y, Z и Т сохраняется. Нет
Перемещает содержимое регистра Х в Х1, копирует содержимое регистра Y в Х.

Содержимое регистров Y, Z и Т сохраняется.

Нет
55 Ничего не делает (равнозначна команде КНОП) К1
56 Ничего не делает (равнозначна команде КНОП) К2

Коды 55 и 56 использовались во входных языках малосерийных аналогов МК-52.[7]

Данный приём неприменим для ввода остальных 30 недокументированных кодов команд, содержащих 16-ричную цифру F (изображаемую на индикаторе как пустое знакоместо), поскольку на клавиатуре микрокалькулятора нет клавиши для ввода цифры F (не путать с префиксной клавишей F). Некоторые способы ввода таких кодов будут рассмотрены в следующем подразделе.

Ввод кодов команд, содержащих цифру F

В микрокалькуляторе МК-52 существует возможность формирования любого из 256 кодов команд по любому из адресов программной памяти. Для этого используется следующая особенность записи программ в ППЗУ. При нормальном процессе записи программы необходимо сначала стереть соответствующий участок памяти ППЗУ. Если же этого не сделать, то происходит побитовое логическое сложение кодов команд из ОЗУ с кодами, имевшимися в ППЗУ ранее[8]. Так, если в ППЗУ по некоторому адресу записана команда БП (код 51), а по соответствующему адресу в ОЗУ находится команда В↑ (код 0Е), то результатом логического сложения будет команда с кодом 5F (которая приводит к зависанию микрокалькулятора). Действия команд с кодами, содержащими цифру F, приведены в следующей таблице:

Коды команд Действия команд
0F Документированная команда FBx
1F, 2F, 3F Ничего не делают (равнозначны команде КНОП)
4F Равнозначна команде X→П0 (код 40)
5F Приводит к зависанию микрокалькулятора. Индикатор гаснет, работоспособность восстанавливается после отключения и включения питания.
6F Равнозначна команде П→Х0 (код 60)
7F Равнозначна команде Кх≠00 (код 70)
8F Равнозначна команде КБП0 (код 80)
9F Равнозначна команде Кх≥00 (код 90)
-F Равнозначна команде КПП0 (код -0)
LF Равнозначна команде КХ→П0 (код L0)
CF Равнозначна команде Кх<00 (код С0)
ГF Равнозначна команде КП→Х0 (код Г0)
EF Равнозначна команде Кх=00 (код Е0)
F0, F1, ... FF Ничего не делают (равнозначны команде КНОП)

К сожалению, недокументированные команды 7F, 8F, … EF, осуществляющие косвенный доступ к регистру 0, уменьшают его содержимое, так же как и их документированные аналоги с кодами 70, 80, … Е0 и не могут служить заменой командам «со стрелками» в Б3-34.

В Б3-34 и МК-61, не имеющих ППЗУ, также существует возможность ввода некоторых команд с кодами, содержащими цифру F, но лишь по нескольким фиксированным адресам. Один способ состоит в использовании команд В/0 КППN в режиме ручных вычислений (F АВТ), N — любой из регистров (0—9, А—Е). При этом микрокалькулятор переходит в режим программирования и вставляет код FN по адресу 30+N (для буквенных регистров А—Е соответственно 40—44). Заметим, что при использовании регистров 0—6 результат зависит от их содержимого[9] Другой способ (проверенный его автором только на МК-61[6]) использует воздействие некорректной операции «ВП десятичная запятая» на «сверхчисла» первого «яруса» (ЕГГОГи). Для этого сначала создаётся «сверхчисло» двукратным применением команды ВП с суммой порядков более 99 (например, ВП 10 ВП 90), а затем, после появления сигнала ЕГГОГ, нажатием клавиш «ВП десятичная запятая 0». Это также переводит микрокалькулятор в режим программирования, и в данном примере по адресу 51 будет записана команда F1. Второй знак и адреса, и команды определяется первым знаком порядка в первой команде ВП (например, ВП 20 ВП 80 ВП .0 даёт команду F2 по адресу 52 и т. д.)

Недокументированное применение десятичной запятой в программе

Команда «десятичная запятая» (код 0-), использованная в программе (за исключением случаев документированного применения — для ввода числа по программе знак за знаком), заменяет значение в регистре Х на то, которое было в нём после последней из команд 0, 1, … 9, В↑, П→Х0, П→Х1, … П→Х9, П→ХА, … П→ХЕ.[10]

Недокументированные способы диагностики ошибок

При возникновении сигнала ЕГГОГ при счёте по программе существует два недокументированных способа определить, в результате какой операции произошёл останов[4]:

  1. Нажатие клавиши ↑ в Б3-34 (В↑ в МК-61/52). Если на индикаторе по-прежнему ЕГГОГ, то произошло переполнение, а если число — некорректная операция, «виновником» которой является это число.
  2. Нажатие клавиши ВП. Возможные показания индикатора и соответствующие им ошибки:
    • «ЕГГОГ 00» — переполнение («сверхчисло» первого «яруса»)
    • «Г.ГГОГ 00» — деление на нуль, вычисление логарифма от нуля, степенной функции 00, некорректная операция с клавишей К.
    • «ЕГ.ГОГ 00» — вычисление tg 90°.
    • «Е.ГГОГ 00» — вычисление арксинуса или арккосинуса от числа, большего 1.
    • «ЕГГОГ 00» (с десятичной запятой на том же месте, что в аргументе) — положительный аргумент показательной функции больше допустимого
    • «−ЕГГОГ 00» (с десятичной запятой на том же месте, что в аргументе) — отрицательный аргумент показательной функции по модулю больше допустимого, или извлечение квадратного корня из отрицательного числа.

Второй способ не работает после первого, и наоборот. Чтобы применить обе диагностики, необходимо дважды запустить программу с одинаковыми исходными данными.

(В режиме ручных вычислений это также работает, но обычно не требуется, поскольку и так ясно, в результате какой операции возникла ошибка.)

Команда В/0 вне подпрограммы

Команда В/0, предназначенная для завершения подпрограмм, при использовании в основной программе, как правило, осуществляет переход на адрес 01. Этим иногда пользуются для сокращения программы, заменяя две команды БП 01 одной В/0. Особенно часто эта особенность используется при нестандартном использовании адресного пространства программы (см. Главная и побочные ветви). Однако иногда использование этой особенности приводит к неправильному результату.

Причина этой особенности в том, что адреса, с которых вызываются подпрограммы, записываются в пятирегистровый стек возврата, а по команде В/0 извлекаются из него и происходит возврат на адрес, на единицу больший. Если в стек возврата ничего не было записано, в нём хранятся нули и по команде В/0 происходит переход на адрес 01. То же самое произойдёт, если в стек возврата заносилось не более четырёх адресов при вызовах подпрограмм и все они были извлечены при возвратах — следующий извлекаемый адрес будет нулём.

Однако если в стек возврата занесено пять адресов, при извлечении первого из них в последнем регистре формируется «адрес-диверсант», обе цифры которого совпадают с последней цифрой адреса, находившегося там ранее. По мере извлечения остальных адресов из стека возврата, «адрес-диверсант» заполняет все его регистры, и затем, в случае использования команды В/0 вне подпрограммы, переход будет осуществлён неправильно.[4]

Очистить стек возврата можно с помощью ЗГГОГа с нулевой мантиссой: Сх В↑ ÷ ВП Fх2 Сх ↔ Сх

Косвенное обращение к регистру, содержащему число вне допустимого диапазона

Если в каком-либо из регистров 7—Е находится число, по модулю меньшее единицы, то при косвенном обращении к нему формируется адрес перехода, определяемый мантиссой и последней цифрой порядка[4] (см. табл., МN — N-я цифра мантиссы)

Последняя цифра порядка Адрес перехода при отрицательных порядках Адрес перехода при положительных порядках
1 М7М8 М1М2
2 М7М8 М2М3
3 М7М8 М2М3
4 М6М7 М4М5
5 М5М6 М5М6
6 М4М5 М6М7
7 М2М3 М7М8
8 М2М3 М7М8
9 М1М2 М7М8
0 1 1


ПСЧ-режим

«Псевдосчётный режим» — методика формирования на экране микрокалькулятора произвольных буквенно-цифровых комбинаций, т. н. «слов». Основан на переводе ПМК в особый режим работы, в котором происходит считывание на индикатор записанных в программной памяти кодов (вернее, их первых символов). Описан в заметке «Новости еггогологии» «Техники — молодежи» № 6 за 1987 год[11]. В этой статье первооткрывателями ПСЧ-режима названы С. Банников, И. Емельянов, Б. Мурадов. Также приведены альтернативные названия режима — «ненормальный», «режим сбора».
Перед вводом ПМК в ПСЧ-режим в память записывается короткая программа, коды команд которой начинаются со всех возможных символов (для удобства обычно используются сдвоенные символы вида 00, 11, … , EE).
Непосредственно вход в ПСЧ-режим осуществляется выдачей команд 6 F10x K- ВП . 0 В/О В/О БП В/О. Данная процедура по сути представляет собой способ получения команды «пусто-пусто». Также существует возможность входа в ПСЧ-режим из области «длинных монстров».
В ПСЧ-режиме меняются значения клавиш. В/О и С/П служат теперь для переключения из автономного режима в программный и наоборот. Команды FПРГ и FАВТ, а также любое «сверхчисло» возвращают ПМК в нормальный режим работы. Клавиши ШГ дают возможность перемещаться вдоль записанной в память программы. Клавиши БП и ПП переносят точку просмотра и считывания на 10 адресов вглубь программы, а также позволяют оперировать с числом на индикаторе непосредственно кодами команд.
Клавиша ВП считывает в первый регистр индикатора символ из текущего адреса программной памяти. Формирование «слов» начинается с заготовки вида 11111111, из соответствующей ячейки программной памяти считывается нужный символ, а затем с помощью команд ВП /-/ 1 ПА КИПА ИПА от заготовки отбрасывается последний регистр, а на место первого записывается ноль, который с помощью команды ВП может быть заменен следующим символом.
Метод позволяет вводить в буквенно-цифровые комбинации и пробел (пустышку). Пробел считывается из любого адреса «темной зоны». Однако из-за особенностей работы ПМК после появления «пустышки» при этом необходимы дополнительные действия (прочистка стека, усложненная последовательность команд для укорочения заготовки, соблюдение ограничений на использование клавиш ШГ).

Недокументированные особенности команды ВП

Команда ВП превращает 0 в 1. Это используется в программе вычисления факториала для её сокращения, заменяя несколько команд (условный переход, его адрес, ввод единицы) одной командой ВП.[12]


Ошибки в микрокалькуляторах

Кроме недокументированных возможностей, некоторые микрокалькуляторы содержали ошибки.

Ошибки в Б3-21 некоторых выпусков

В первых выпусках микрокалькулятора Б3-21 возникала ошибка при сложении числа, содержащего семь девяток в мантиссе и цифру более 4 в восьмом (неиндицируемом) разряде мантиссы, с бо́льшим по порядку числом; например, при сложении 9,9999999 и 10 получалось 120.

Также в некоторых Б3-21 при вычислении сложных операций (например, синуса) могло исказиться содержимое одного из регистров кольцевого стека.

Некоторые Б3-21 неправильно выполняли оператор вызова подпрограммы ПП, если он находился по одному из адресов 55, 65, 70, 80, 91 или 92. Вместо перехода к подпрограмме в них выполнялся оператор, код которого равен адресу подпрограммы.[13]

Ошибки в Б3-34 некоторых выпусков

В некоторых микрокалькуляторах Б3-34 операция возведения в степень Fxy выполнялась с ошибкой, если предыдущая операция была двухместной (кроме возведения в степень) и в её результате получилось число, имеющее в восьмом разряде мантиссы цифру 5 или 7. Этой ошибки можно избежать, если перед выполнением операции Fxy нажать дополнительно клавиши F1/x F1/x[14] (что заменяет результат двухместной операции таким же результатом одноместной, на котором эта ошибка не возникает). Другие «взаимоисключающие» операции (например, Fx2 F√ или Feх Fln) для этой цели менее пригодны, так как могут привести к переполнению.

В ранних выпусках микрокалькуляторов нельзя было заканчивать подпрограмму командами одноместных операций Fsin, Flg, F√ и др., а также производить смену знака результата вычислений клавишей /−/[15]

Ошибки в МК-61 и МК-52

Операция Kmax в МК-61 и МК-52 считает нуль самым большим числом. Эта ошибка использовалась в некоторых программах[16]

При некоторых операциях, например, определении дробной части отрицательного числа, возникает «отрицательный нуль» (изображается на индикаторе как «−0»), который при условных переходах ведёт себя как отрицательное число.[16]

Ошибки и нерациональные решения в блоках расширения памяти БРП-3 и БРП-4

В блоке БРП-3, программе 16 использована неправильная формула <math>x^z = e^z \ln x</math> вместо <math>x^z = e^{z \ln x}</math>, соответственно неправильно составлена и программа. Там же для определения аргумента комплексного числа <math>a+bi</math> используется формула <math>\phi = \operatorname{arctg}(b/a)</math> без учёта как знаков <math>a</math> и <math>b</math>, так и того, что действительная часть может быть нулём. В результате при <math>a < 0</math> происходит ошибка в определении аргумента на 180°, а при <math>a = 0</math> — останов деления на нуль.[17]

В блоке БРП-4 в «лунолётной» игровой программе «Космическая посадка» физическая модель совершенно ошибочна, что может приводить к бессмысленным результатам. Например, при свободном падении космического аппарата на Луну с большой высоты глубина кратера может составлять менее 8 мм, хотя скорость в момент соприкосновения с лунной поверхностью превышает 3000 м/с. В том же блоке микрокалькулятор «нарушает правила» в игровых программах «Жизнь» и «Магараджа». Целый ряд программ составлен нерационально и поддаётся значительным сокращениям. Например, программа для отыскания минимальной поверхности <math>S_\text{min}</math> или минимальной длины сварных швов <math>L_\text{min}</math> цилиндрической банки заданного объёма <math>V</math> может быть сокращена на 15 шагов при использовании более простых формул.[18]

См. также

Напишите отзыв о статье "Еггогология"

Примечания

  1. [zhurnalko.net/=nauka-i-tehnika/tehnika-molodezhi/1985-01--num51 «Техника — молодёжи», 1985, № 1—4, 6.]
  2. Михаил Пухов. «Кон-Тики»: путь к Земле. — «Техника — молодёжи», [zhurnalko.net/=nauka-i-tehnika/tehnika-molodezhi/1985-08--num50 1985, № 8]—12; 1986, № 1—4.
  3. «Техника — молодёжи», 1986, № 1, с. 54.
  4. 1 2 3 4 5 Школа начинающего программиста. Занятие двадцать шестое. — «Наука и жизнь», 1989, № 11, с. 124—130
  5. «Техника — молодёжи». 1986, № 7.
  6. 1 2 Alfred Klomp. Some experiments with hacking the ЭЛЕКТРОНИКА МК-61. — www.alfredklomp.com/technology/mk-61/
  7. Программируемые микрокалькуляторы: устройство и пользование / Под ред. Я. К. Трохименко. — М.: Радио и связь, 1990. — c. 123—124
  8. Школа начинающего программиста. Занятие двадцать второе. — «Наука и жизнь», 1989, № 1, с. 124—129.
  9. «Техника — молодёжи», 1986, № 5, с. 52.
  10. «Наука и жизнь», 1989, № 4, с. 112.
  11. Новости еггогологии. «Техника — молодёжи», 1987, № 6, с.54. — www.emulator3000.org/Books/TM/1987_06.djvu
  12. Л. М. Финк. Папа, мама, я и микрокалькулятор. — М.: Радио и связь, 1988. — с. 71
  13. Сергей Фролов. История советских калькуляторов. Часть II. — iNFUSED BYTES OnLine, www.enlight.ru/ib/also/calcs/calcs2.htm
  14. «Наука и жизнь», 1984, № 2, с. 66.
  15. В. П. Дьяконов. Справочник по расчётам на микрокалькуляторах. 3-е изд., доп. и перераб. — М.: Наука, Гл. ред. физ.-мат. лит., 1989. — с. 41.
  16. 1 2 «Наука и жизнь», 1988, № 11, с. 84-85
  17. Вам привет от БРП. — «Наука и жизнь», 1990, № 10, с. 115. — www.emulator3000.org/Books/SAL/1990_10.djvu
  18. И второй том… комом. — «Наука и жизнь», 1991, № 6, с. 130—131. — www.emulator3000.org/Books/SAL/1991_06.djvu

Ссылки

  • Сергей Фролов. [www.leningrad.su/b334/b334.htm Электроника Б3-34: микрокалькулятор-загадка] (рус.). Sergei Frolov's home page. Проверено 05 июля 2012. [www.webcitation.org/617MndhuS Архивировано из первоисточника 22 августа 2011].
  • [lordbss.pp.ru/pmk.html Игры для ПМК] (рус.). Lord_BSS project. Проверено 05 июля 2012. [www.webcitation.org/617Mp6BfM Архивировано из первоисточника 22 августа 2011].
  • Сергей Фролов. [www.enlight.ru/ib/also/calcs/calcs2.htm История советских калькуляторов. Часть II] (рус.). iNFUSED BYTES e-magazine (26/09/98). Проверено 05 июля 2012. [www.webcitation.org/69f3JcJBd Архивировано из первоисточника 4 августа 2012].
  • Евгений Троицкий. [www.emulator3000.org/rus-c3.htm Эмулятор калькулятора Б3-34 с поддержкой всех недокументированных особенностей] (рус.). Калькуляторы 3000 (29 августа 2012). Проверено 29 августа 2012. [www.webcitation.org/6BOqqypko Архивировано из первоисточника 14 октября 2012].
  • Станислав Боруцкий. [play.google.com/store/apps/details?id=com.cax.pmk&hl=ru Эмулятор калькуляторов МК-61 и МК-54 с поддержкой всех недокументированных особенностей] (рус.). (Приложение для Android). Проверено 2 октября 2013.


Отрывок, характеризующий Еггогология

– Отчего? – сказала Жюли. – Неужели вы думаете, что есть опасность для Москвы?
– Отчего же вы едете?
– Я? Вот странно. Я еду, потому… ну потому, что все едут, и потом я не Иоанна д'Арк и не амазонка.
– Ну, да, да, дайте мне еще тряпочек.
– Ежели он сумеет повести дела, он может заплатить все долги, – продолжал ополченец про Ростова.
– Добрый старик, но очень pauvre sire [плох]. И зачем они живут тут так долго? Они давно хотели ехать в деревню. Натали, кажется, здорова теперь? – хитро улыбаясь, спросила Жюли у Пьера.
– Они ждут меньшого сына, – сказал Пьер. – Он поступил в казаки Оболенского и поехал в Белую Церковь. Там формируется полк. А теперь они перевели его в мой полк и ждут каждый день. Граф давно хотел ехать, но графиня ни за что не согласна выехать из Москвы, пока не приедет сын.
– Я их третьего дня видела у Архаровых. Натали опять похорошела и повеселела. Она пела один романс. Как все легко проходит у некоторых людей!
– Что проходит? – недовольно спросил Пьер. Жюли улыбнулась.
– Вы знаете, граф, что такие рыцари, как вы, бывают только в романах madame Suza.
– Какой рыцарь? Отчего? – краснея, спросил Пьер.
– Ну, полноте, милый граф, c'est la fable de tout Moscou. Je vous admire, ma parole d'honneur. [это вся Москва знает. Право, я вам удивляюсь.]
– Штраф! Штраф! – сказал ополченец.
– Ну, хорошо. Нельзя говорить, как скучно!
– Qu'est ce qui est la fable de tout Moscou? [Что знает вся Москва?] – вставая, сказал сердито Пьер.
– Полноте, граф. Вы знаете!
– Ничего не знаю, – сказал Пьер.
– Я знаю, что вы дружны были с Натали, и потому… Нет, я всегда дружнее с Верой. Cette chere Vera! [Эта милая Вера!]
– Non, madame, [Нет, сударыня.] – продолжал Пьер недовольным тоном. – Я вовсе не взял на себя роль рыцаря Ростовой, и я уже почти месяц не был у них. Но я не понимаю жестокость…
– Qui s'excuse – s'accuse, [Кто извиняется, тот обвиняет себя.] – улыбаясь и махая корпией, говорила Жюли и, чтобы за ней осталось последнее слово, сейчас же переменила разговор. – Каково, я нынче узнала: бедная Мари Волконская приехала вчера в Москву. Вы слышали, она потеряла отца?
– Неужели! Где она? Я бы очень желал увидать ее, – сказал Пьер.
– Я вчера провела с ней вечер. Она нынче или завтра утром едет в подмосковную с племянником.
– Ну что она, как? – сказал Пьер.
– Ничего, грустна. Но знаете, кто ее спас? Это целый роман. Nicolas Ростов. Ее окружили, хотели убить, ранили ее людей. Он бросился и спас ее…
– Еще роман, – сказал ополченец. – Решительно это общее бегство сделано, чтобы все старые невесты шли замуж. Catiche – одна, княжна Болконская – другая.
– Вы знаете, что я в самом деле думаю, что она un petit peu amoureuse du jeune homme. [немножечко влюблена в молодого человека.]
– Штраф! Штраф! Штраф!
– Но как же это по русски сказать?..


Когда Пьер вернулся домой, ему подали две принесенные в этот день афиши Растопчина.
В первой говорилось о том, что слух, будто графом Растопчиным запрещен выезд из Москвы, – несправедлив и что, напротив, граф Растопчин рад, что из Москвы уезжают барыни и купеческие жены. «Меньше страху, меньше новостей, – говорилось в афише, – но я жизнью отвечаю, что злодей в Москве не будет». Эти слова в первый раз ясно ыоказали Пьеру, что французы будут в Москве. Во второй афише говорилось, что главная квартира наша в Вязьме, что граф Витгснштейн победил французов, но что так как многие жители желают вооружиться, то для них есть приготовленное в арсенале оружие: сабли, пистолеты, ружья, которые жители могут получать по дешевой цене. Тон афиш был уже не такой шутливый, как в прежних чигиринских разговорах. Пьер задумался над этими афишами. Очевидно, та страшная грозовая туча, которую он призывал всеми силами своей души и которая вместе с тем возбуждала в нем невольный ужас, – очевидно, туча эта приближалась.
«Поступить в военную службу и ехать в армию или дожидаться? – в сотый раз задавал себе Пьер этот вопрос. Он взял колоду карт, лежавших у него на столе, и стал делать пасьянс.
– Ежели выйдет этот пасьянс, – говорил он сам себе, смешав колоду, держа ее в руке и глядя вверх, – ежели выйдет, то значит… что значит?.. – Он не успел решить, что значит, как за дверью кабинета послышался голос старшей княжны, спрашивающей, можно ли войти.
– Тогда будет значить, что я должен ехать в армию, – договорил себе Пьер. – Войдите, войдите, – прибавил он, обращаясь к княжие.
(Одна старшая княжна, с длинной талией и окаменелым лидом, продолжала жить в доме Пьера; две меньшие вышли замуж.)
– Простите, mon cousin, что я пришла к вам, – сказала она укоризненно взволнованным голосом. – Ведь надо наконец на что нибудь решиться! Что ж это будет такое? Все выехали из Москвы, и народ бунтует. Что ж мы остаемся?
– Напротив, все, кажется, благополучно, ma cousine, – сказал Пьер с тою привычкой шутливости, которую Пьер, всегда конфузно переносивший свою роль благодетеля перед княжною, усвоил себе в отношении к ней.
– Да, это благополучно… хорошо благополучие! Мне нынче Варвара Ивановна порассказала, как войска наши отличаются. Уж точно можно чести приписать. Да и народ совсем взбунтовался, слушать перестают; девка моя и та грубить стала. Этак скоро и нас бить станут. По улицам ходить нельзя. А главное, нынче завтра французы будут, что ж нам ждать! Я об одном прошу, mon cousin, – сказала княжна, – прикажите свезти меня в Петербург: какая я ни есть, а я под бонапартовской властью жить не могу.
– Да полноте, ma cousine, откуда вы почерпаете ваши сведения? Напротив…
– Я вашему Наполеону не покорюсь. Другие как хотят… Ежели вы не хотите этого сделать…
– Да я сделаю, я сейчас прикажу.
Княжне, видимо, досадно было, что не на кого было сердиться. Она, что то шепча, присела на стул.
– Но вам это неправильно доносят, – сказал Пьер. – В городе все тихо, и опасности никакой нет. Вот я сейчас читал… – Пьер показал княжне афишки. – Граф пишет, что он жизнью отвечает, что неприятель не будет в Москве.
– Ах, этот ваш граф, – с злобой заговорила княжна, – это лицемер, злодей, который сам настроил народ бунтовать. Разве не он писал в этих дурацких афишах, что какой бы там ни был, тащи его за хохол на съезжую (и как глупо)! Кто возьмет, говорит, тому и честь и слава. Вот и долюбезничался. Варвара Ивановна говорила, что чуть не убил народ ее за то, что она по французски заговорила…
– Да ведь это так… Вы всё к сердцу очень принимаете, – сказал Пьер и стал раскладывать пасьянс.
Несмотря на то, что пасьянс сошелся, Пьер не поехал в армию, а остался в опустевшей Москве, все в той же тревоге, нерешимости, в страхе и вместе в радости ожидая чего то ужасного.
На другой день княжна к вечеру уехала, и к Пьеру приехал его главноуправляющий с известием, что требуемых им денег для обмундирования полка нельзя достать, ежели не продать одно имение. Главноуправляющий вообще представлял Пьеру, что все эти затеи полка должны были разорить его. Пьер с трудом скрывал улыбку, слушая слова управляющего.
– Ну, продайте, – говорил он. – Что ж делать, я не могу отказаться теперь!
Чем хуже было положение всяких дел, и в особенности его дел, тем Пьеру было приятнее, тем очевиднее было, что катастрофа, которой он ждал, приближается. Уже никого почти из знакомых Пьера не было в городе. Жюли уехала, княжна Марья уехала. Из близких знакомых одни Ростовы оставались; но к ним Пьер не ездил.
В этот день Пьер, для того чтобы развлечься, поехал в село Воронцово смотреть большой воздушный шар, который строился Леппихом для погибели врага, и пробный шар, который должен был быть пущен завтра. Шар этот был еще не готов; но, как узнал Пьер, он строился по желанию государя. Государь писал графу Растопчину об этом шаре следующее:
«Aussitot que Leppich sera pret, composez lui un equipage pour sa nacelle d'hommes surs et intelligents et depechez un courrier au general Koutousoff pour l'en prevenir. Je l'ai instruit de la chose.
Recommandez, je vous prie, a Leppich d'etre bien attentif sur l'endroit ou il descendra la premiere fois, pour ne pas se tromper et ne pas tomber dans les mains de l'ennemi. Il est indispensable qu'il combine ses mouvements avec le general en chef».
[Только что Леппих будет готов, составьте экипаж для его лодки из верных и умных людей и пошлите курьера к генералу Кутузову, чтобы предупредить его.
Я сообщил ему об этом. Внушите, пожалуйста, Леппиху, чтобы он обратил хорошенько внимание на то место, где он спустится в первый раз, чтобы не ошибиться и не попасть в руки врага. Необходимо, чтоб он соображал свои движения с движениями главнокомандующего.]
Возвращаясь домой из Воронцова и проезжая по Болотной площади, Пьер увидал толпу у Лобного места, остановился и слез с дрожек. Это была экзекуция французского повара, обвиненного в шпионстве. Экзекуция только что кончилась, и палач отвязывал от кобылы жалостно стонавшего толстого человека с рыжими бакенбардами, в синих чулках и зеленом камзоле. Другой преступник, худенький и бледный, стоял тут же. Оба, судя по лицам, были французы. С испуганно болезненным видом, подобным тому, который имел худой француз, Пьер протолкался сквозь толпу.
– Что это? Кто? За что? – спрашивал он. Но вниманье толпы – чиновников, мещан, купцов, мужиков, женщин в салопах и шубках – так было жадно сосредоточено на то, что происходило на Лобном месте, что никто не отвечал ему. Толстый человек поднялся, нахмурившись, пожал плечами и, очевидно, желая выразить твердость, стал, не глядя вокруг себя, надевать камзол; но вдруг губы его задрожали, и он заплакал, сам сердясь на себя, как плачут взрослые сангвинические люди. Толпа громко заговорила, как показалось Пьеру, – для того, чтобы заглушить в самой себе чувство жалости.
– Повар чей то княжеский…
– Что, мусью, видно, русский соус кисел французу пришелся… оскомину набил, – сказал сморщенный приказный, стоявший подле Пьера, в то время как француз заплакал. Приказный оглянулся вокруг себя, видимо, ожидая оценки своей шутки. Некоторые засмеялись, некоторые испуганно продолжали смотреть на палача, который раздевал другого.
Пьер засопел носом, сморщился и, быстро повернувшись, пошел назад к дрожкам, не переставая что то бормотать про себя в то время, как он шел и садился. В продолжение дороги он несколько раз вздрагивал и вскрикивал так громко, что кучер спрашивал его:
– Что прикажете?
– Куда ж ты едешь? – крикнул Пьер на кучера, выезжавшего на Лубянку.
– К главнокомандующему приказали, – отвечал кучер.
– Дурак! скотина! – закричал Пьер, что редко с ним случалось, ругая своего кучера. – Домой я велел; и скорее ступай, болван. Еще нынче надо выехать, – про себя проговорил Пьер.
Пьер при виде наказанного француза и толпы, окружавшей Лобное место, так окончательно решил, что не может долее оставаться в Москве и едет нынче же в армию, что ему казалось, что он или сказал об этом кучеру, или что кучер сам должен был знать это.
Приехав домой, Пьер отдал приказание своему все знающему, все умеющему, известному всей Москве кучеру Евстафьевичу о том, что он в ночь едет в Можайск к войску и чтобы туда были высланы его верховые лошади. Все это не могло быть сделано в тот же день, и потому, по представлению Евстафьевича, Пьер должен был отложить свой отъезд до другого дня, с тем чтобы дать время подставам выехать на дорогу.
24 го числа прояснело после дурной погоды, и в этот день после обеда Пьер выехал из Москвы. Ночью, переменя лошадей в Перхушкове, Пьер узнал, что в этот вечер было большое сражение. Рассказывали, что здесь, в Перхушкове, земля дрожала от выстрелов. На вопросы Пьера о том, кто победил, никто не мог дать ему ответа. (Это было сражение 24 го числа при Шевардине.) На рассвете Пьер подъезжал к Можайску.
Все дома Можайска были заняты постоем войск, и на постоялом дворе, на котором Пьера встретили его берейтор и кучер, в горницах не было места: все было полно офицерами.
В Можайске и за Можайском везде стояли и шли войска. Казаки, пешие, конные солдаты, фуры, ящики, пушки виднелись со всех сторон. Пьер торопился скорее ехать вперед, и чем дальше он отъезжал от Москвы и чем глубже погружался в это море войск, тем больше им овладевала тревога беспокойства и не испытанное еще им новое радостное чувство. Это было чувство, подобное тому, которое он испытывал и в Слободском дворце во время приезда государя, – чувство необходимости предпринять что то и пожертвовать чем то. Он испытывал теперь приятное чувство сознания того, что все то, что составляет счастье людей, удобства жизни, богатство, даже самая жизнь, есть вздор, который приятно откинуть в сравнении с чем то… С чем, Пьер не мог себе дать отчета, да и ее старался уяснить себе, для кого и для чего он находит особенную прелесть пожертвовать всем. Его не занимало то, для чего он хочет жертвовать, но самое жертвование составляло для него новое радостное чувство.


24 го было сражение при Шевардинском редуте, 25 го не было пущено ни одного выстрела ни с той, ни с другой стороны, 26 го произошло Бородинское сражение.
Для чего и как были даны и приняты сражения при Шевардине и при Бородине? Для чего было дано Бородинское сражение? Ни для французов, ни для русских оно не имело ни малейшего смысла. Результатом ближайшим было и должно было быть – для русских то, что мы приблизились к погибели Москвы (чего мы боялись больше всего в мире), а для французов то, что они приблизились к погибели всей армии (чего они тоже боялись больше всего в мире). Результат этот был тогда же совершении очевиден, а между тем Наполеон дал, а Кутузов принял это сражение.
Ежели бы полководцы руководились разумными причинами, казалось, как ясно должно было быть для Наполеона, что, зайдя за две тысячи верст и принимая сражение с вероятной случайностью потери четверти армии, он шел на верную погибель; и столь же ясно бы должно было казаться Кутузову, что, принимая сражение и тоже рискуя потерять четверть армии, он наверное теряет Москву. Для Кутузова это было математически ясно, как ясно то, что ежели в шашках у меня меньше одной шашкой и я буду меняться, я наверное проиграю и потому не должен меняться.
Когда у противника шестнадцать шашек, а у меня четырнадцать, то я только на одну восьмую слабее его; а когда я поменяюсь тринадцатью шашками, то он будет втрое сильнее меня.
До Бородинского сражения наши силы приблизительно относились к французским как пять к шести, а после сражения как один к двум, то есть до сражения сто тысяч; ста двадцати, а после сражения пятьдесят к ста. А вместе с тем умный и опытный Кутузов принял сражение. Наполеон же, гениальный полководец, как его называют, дал сражение, теряя четверть армии и еще более растягивая свою линию. Ежели скажут, что, заняв Москву, он думал, как занятием Вены, кончить кампанию, то против этого есть много доказательств. Сами историки Наполеона рассказывают, что еще от Смоленска он хотел остановиться, знал опасность своего растянутого положения знал, что занятие Москвы не будет концом кампании, потому что от Смоленска он видел, в каком положении оставлялись ему русские города, и не получал ни одного ответа на свои неоднократные заявления о желании вести переговоры.
Давая и принимая Бородинское сражение, Кутузов и Наполеон поступили непроизвольно и бессмысленно. А историки под совершившиеся факты уже потом подвели хитросплетенные доказательства предвидения и гениальности полководцев, которые из всех непроизвольных орудий мировых событий были самыми рабскими и непроизвольными деятелями.
Древние оставили нам образцы героических поэм, в которых герои составляют весь интерес истории, и мы все еще не можем привыкнуть к тому, что для нашего человеческого времени история такого рода не имеет смысла.
На другой вопрос: как даны были Бородинское и предшествующее ему Шевардинское сражения – существует точно так же весьма определенное и всем известное, совершенно ложное представление. Все историки описывают дело следующим образом:
Русская армия будто бы в отступлении своем от Смоленска отыскивала себе наилучшую позицию для генерального сражения, и таковая позиция была найдена будто бы у Бородина.
Русские будто бы укрепили вперед эту позицию, влево от дороги (из Москвы в Смоленск), под прямым почти углом к ней, от Бородина к Утице, на том самом месте, где произошло сражение.
Впереди этой позиции будто бы был выставлен для наблюдения за неприятелем укрепленный передовой пост на Шевардинском кургане. 24 го будто бы Наполеон атаковал передовой пост и взял его; 26 го же атаковал всю русскую армию, стоявшую на позиции на Бородинском поле.
Так говорится в историях, и все это совершенно несправедливо, в чем легко убедится всякий, кто захочет вникнуть в сущность дела.
Русские не отыскивали лучшей позиции; а, напротив, в отступлении своем прошли много позиций, которые были лучше Бородинской. Они не остановились ни на одной из этих позиций: и потому, что Кутузов не хотел принять позицию, избранную не им, и потому, что требованье народного сражения еще недостаточно сильно высказалось, и потому, что не подошел еще Милорадович с ополчением, и еще по другим причинам, которые неисчислимы. Факт тот – что прежние позиции были сильнее и что Бородинская позиция (та, на которой дано сражение) не только не сильна, но вовсе не есть почему нибудь позиция более, чем всякое другое место в Российской империи, на которое, гадая, указать бы булавкой на карте.
Русские не только не укрепляли позицию Бородинского поля влево под прямым углом от дороги (то есть места, на котором произошло сражение), но и никогда до 25 го августа 1812 года не думали о том, чтобы сражение могло произойти на этом месте. Этому служит доказательством, во первых, то, что не только 25 го не было на этом месте укреплений, но что, начатые 25 го числа, они не были кончены и 26 го; во вторых, доказательством служит положение Шевардинского редута: Шевардинский редут, впереди той позиции, на которой принято сражение, не имеет никакого смысла. Для чего был сильнее всех других пунктов укреплен этот редут? И для чего, защищая его 24 го числа до поздней ночи, были истощены все усилия и потеряно шесть тысяч человек? Для наблюдения за неприятелем достаточно было казачьего разъезда. В третьих, доказательством того, что позиция, на которой произошло сражение, не была предвидена и что Шевардинский редут не был передовым пунктом этой позиции, служит то, что Барклай де Толли и Багратион до 25 го числа находились в убеждении, что Шевардинский редут есть левый фланг позиции и что сам Кутузов в донесении своем, писанном сгоряча после сражения, называет Шевардинский редут левым флангом позиции. Уже гораздо после, когда писались на просторе донесения о Бородинском сражении, было (вероятно, для оправдания ошибок главнокомандующего, имеющего быть непогрешимым) выдумано то несправедливое и странное показание, будто Шевардинский редут служил передовым постом (тогда как это был только укрепленный пункт левого фланга) и будто Бородинское сражение было принято нами на укрепленной и наперед избранной позиции, тогда как оно произошло на совершенно неожиданном и почти не укрепленном месте.
Дело же, очевидно, было так: позиция была избрана по реке Колоче, пересекающей большую дорогу не под прямым, а под острым углом, так что левый фланг был в Шевардине, правый около селения Нового и центр в Бородине, при слиянии рек Колочи и Во йны. Позиция эта, под прикрытием реки Колочи, для армии, имеющей целью остановить неприятеля, движущегося по Смоленской дороге к Москве, очевидна для всякого, кто посмотрит на Бородинское поле, забыв о том, как произошло сражение.
Наполеон, выехав 24 го к Валуеву, не увидал (как говорится в историях) позицию русских от Утицы к Бородину (он не мог увидать эту позицию, потому что ее не было) и не увидал передового поста русской армии, а наткнулся в преследовании русского арьергарда на левый фланг позиции русских, на Шевардинский редут, и неожиданно для русских перевел войска через Колочу. И русские, не успев вступить в генеральное сражение, отступили своим левым крылом из позиции, которую они намеревались занять, и заняли новую позицию, которая была не предвидена и не укреплена. Перейдя на левую сторону Колочи, влево от дороги, Наполеон передвинул все будущее сражение справа налево (со стороны русских) и перенес его в поле между Утицей, Семеновским и Бородиным (в это поле, не имеющее в себе ничего более выгодного для позиции, чем всякое другое поле в России), и на этом поле произошло все сражение 26 го числа. В грубой форме план предполагаемого сражения и происшедшего сражения будет следующий:

Ежели бы Наполеон не выехал вечером 24 го числа на Колочу и не велел бы тотчас же вечером атаковать редут, а начал бы атаку на другой день утром, то никто бы не усомнился в том, что Шевардинский редут был левый фланг нашей позиции; и сражение произошло бы так, как мы его ожидали. В таком случае мы, вероятно, еще упорнее бы защищали Шевардинский редут, наш левый фланг; атаковали бы Наполеона в центре или справа, и 24 го произошло бы генеральное сражение на той позиции, которая была укреплена и предвидена. Но так как атака на наш левый фланг произошла вечером, вслед за отступлением нашего арьергарда, то есть непосредственно после сражения при Гридневой, и так как русские военачальники не хотели или не успели начать тогда же 24 го вечером генерального сражения, то первое и главное действие Бородинского сражения было проиграно еще 24 го числа и, очевидно, вело к проигрышу и того, которое было дано 26 го числа.
После потери Шевардинского редута к утру 25 го числа мы оказались без позиции на левом фланге и были поставлены в необходимость отогнуть наше левое крыло и поспешно укреплять его где ни попало.
Но мало того, что 26 го августа русские войска стояли только под защитой слабых, неконченных укреплений, – невыгода этого положения увеличилась еще тем, что русские военачальники, не признав вполне совершившегося факта (потери позиции на левом фланге и перенесения всего будущего поля сражения справа налево), оставались в своей растянутой позиции от села Нового до Утицы и вследствие того должны были передвигать свои войска во время сражения справа налево. Таким образом, во все время сражения русские имели против всей французской армии, направленной на наше левое крыло, вдвое слабейшие силы. (Действия Понятовского против Утицы и Уварова на правом фланге французов составляли отдельные от хода сражения действия.)
Итак, Бородинское сражение произошло совсем не так, как (стараясь скрыть ошибки наших военачальников и вследствие того умаляя славу русского войска и народа) описывают его. Бородинское сражение не произошло на избранной и укрепленной позиции с несколько только слабейшими со стороны русских силами, а Бородинское сражение, вследствие потери Шевардинского редута, принято было русскими на открытой, почти не укрепленной местности с вдвое слабейшими силами против французов, то есть в таких условиях, в которых не только немыслимо было драться десять часов и сделать сражение нерешительным, но немыслимо было удержать в продолжение трех часов армию от совершенного разгрома и бегства.


25 го утром Пьер выезжал из Можайска. На спуске с огромной крутой и кривой горы, ведущей из города, мимо стоящего на горе направо собора, в котором шла служба и благовестили, Пьер вылез из экипажа и пошел пешком. За ним спускался на горе какой то конный полк с песельниками впереди. Навстречу ему поднимался поезд телег с раненными во вчерашнем деле. Возчики мужики, крича на лошадей и хлеща их кнутами, перебегали с одной стороны на другую. Телеги, на которых лежали и сидели по три и по четыре солдата раненых, прыгали по набросанным в виде мостовой камням на крутом подъеме. Раненые, обвязанные тряпками, бледные, с поджатыми губами и нахмуренными бровями, держась за грядки, прыгали и толкались в телегах. Все почти с наивным детским любопытством смотрели на белую шляпу и зеленый фрак Пьера.
Кучер Пьера сердито кричал на обоз раненых, чтобы они держали к одной. Кавалерийский полк с песнями, спускаясь с горы, надвинулся на дрожки Пьера и стеснил дорогу. Пьер остановился, прижавшись к краю скопанной в горе дороги. Из за откоса горы солнце не доставало в углубление дороги, тут было холодно, сыро; над головой Пьера было яркое августовское утро, и весело разносился трезвон. Одна подвода с ранеными остановилась у края дороги подле самого Пьера. Возчик в лаптях, запыхавшись, подбежал к своей телеге, подсунул камень под задние нешиненые колеса и стал оправлять шлею на своей ставшей лошаденке.
Один раненый старый солдат с подвязанной рукой, шедший за телегой, взялся за нее здоровой рукой и оглянулся на Пьера.
– Что ж, землячок, тут положат нас, что ль? Али до Москвы? – сказал он.
Пьер так задумался, что не расслышал вопроса. Он смотрел то на кавалерийский, повстречавшийся теперь с поездом раненых полк, то на ту телегу, у которой он стоял и на которой сидели двое раненых и лежал один, и ему казалось, что тут, в них, заключается разрешение занимавшего его вопроса. Один из сидевших на телеге солдат был, вероятно, ранен в щеку. Вся голова его была обвязана тряпками, и одна щека раздулась с детскую голову. Рот и нос у него были на сторону. Этот солдат глядел на собор и крестился. Другой, молодой мальчик, рекрут, белокурый и белый, как бы совершенно без крови в тонком лице, с остановившейся доброй улыбкой смотрел на Пьера; третий лежал ничком, и лица его не было видно. Кавалеристы песельники проходили над самой телегой.
– Ах запропала… да ежова голова…
– Да на чужой стороне живучи… – выделывали они плясовую солдатскую песню. Как бы вторя им, но в другом роде веселья, перебивались в вышине металлические звуки трезвона. И, еще в другом роде веселья, обливали вершину противоположного откоса жаркие лучи солнца. Но под откосом, у телеги с ранеными, подле запыхавшейся лошаденки, у которой стоял Пьер, было сыро, пасмурно и грустно.
Солдат с распухшей щекой сердито глядел на песельников кавалеристов.
– Ох, щегольки! – проговорил он укоризненно.
– Нынче не то что солдат, а и мужичков видал! Мужичков и тех гонят, – сказал с грустной улыбкой солдат, стоявший за телегой и обращаясь к Пьеру. – Нынче не разбирают… Всем народом навалиться хотят, одью слово – Москва. Один конец сделать хотят. – Несмотря на неясность слов солдата, Пьер понял все то, что он хотел сказать, и одобрительно кивнул головой.
Дорога расчистилась, и Пьер сошел под гору и поехал дальше.
Пьер ехал, оглядываясь по обе стороны дороги, отыскивая знакомые лица и везде встречая только незнакомые военные лица разных родов войск, одинаково с удивлением смотревшие на его белую шляпу и зеленый фрак.
Проехав версты четыре, он встретил первого знакомого и радостно обратился к нему. Знакомый этот был один из начальствующих докторов в армии. Он в бричке ехал навстречу Пьеру, сидя рядом с молодым доктором, и, узнав Пьера, остановил своего казака, сидевшего на козлах вместо кучера.
– Граф! Ваше сиятельство, вы как тут? – спросил доктор.
– Да вот хотелось посмотреть…
– Да, да, будет что посмотреть…
Пьер слез и, остановившись, разговорился с доктором, объясняя ему свое намерение участвовать в сражении.
Доктор посоветовал Безухову прямо обратиться к светлейшему.
– Что же вам бог знает где находиться во время сражения, в безызвестности, – сказал он, переглянувшись с своим молодым товарищем, – а светлейший все таки знает вас и примет милостиво. Так, батюшка, и сделайте, – сказал доктор.
Доктор казался усталым и спешащим.
– Так вы думаете… А я еще хотел спросить вас, где же самая позиция? – сказал Пьер.
– Позиция? – сказал доктор. – Уж это не по моей части. Проедете Татаринову, там что то много копают. Там на курган войдете: оттуда видно, – сказал доктор.