Евгений Степанищев (RSS Feed) on Nostr: Хаки в «Электронике МК-61» Очень интересно ...
Хаки в «Электронике МК-61»
Очень интересно разбирать хаки, которые разные люди изобретали, чтобы уместить свои программы в 105 байт памяти калькулятора «Электроники МК-61». Их там действительно просто нереальное количество, они разной сложности, но один из них показателен в своей простоте.
В коде программы «Рембо-III (
https://lordbss.narod.ru/pmk53.html)» есть несколько похожи мест (я буду приводить код на языке «МК-Про (
https://github.com/bolknote/MKPro)» для наглядности):
fn lost() {
halt("ЕГГОГ")
}
fn front_stop() {
…
if cells[7] < 0 {
lost()
}
…
}
Если некое проверяемое значение меньше нуля (в двух остальных местах — меньше или равно нулю), то пишем на экране «ЕГГОГ» — слово «error», это одно из немногих слов, которое калькулятор способен отобразить, так как у него есть специальная логика для отображения некоторых букв.
Оптимизатор умеет заменять halt("ЕГГОГ") одним опкодом, потому что это «встроенное» в калькулятор слово, но тут он пишет относительно много кода — проверка условия и вызов, тогда как проверку и вывод «еррора» можно объединить в один опкод — F √ или F lg в зависимости от условия.
Если число строго меньше нуля, квадратный корень из него даст ту же ошибку, как и логарифм от числа, которое меньше или равно нулю.
В «Рембо-III» это сокращает программу на четыре байта. Это существенно, когда у доступно так мало памяти.
https://bolknote.ru/all/haki-v-elektronike-mk-61/Published at
2026-06-01 04:04:34 UTCEvent JSON
{
"id": "95bb048796e94b09e48d25c653a9c37d67519deda4b61c0f64cecbb6c61c5ae4",
"pubkey": "a48c98a6cb7004b5612ea9664ad45a29e068f80eebc36b9449c9ecfa339390b0",
"created_at": 1780286674,
"kind": 1,
"tags": [
[
"d",
"atomstr:7769"
],
[
"proxy",
"https://bolknote.ru/rss/#https%3A%2F%2Fbolknote.ru%2Fall%2Fhaki-v-elektronike-mk-61%2F",
"rss"
]
],
"content": "Хаки в «Электронике МК-61»\n\nОчень интересно разбирать хаки, которые разные люди изобретали, чтобы уместить свои программы в 105 байт памяти калькулятора «Электроники МК-61». Их там действительно просто нереальное количество, они разной сложности, но один из них показателен в своей простоте.\n\nВ коде программы «Рембо-III (https://lordbss.narod.ru/pmk53.html)» есть несколько похожи мест (я буду приводить код на языке «МК-Про (https://github.com/bolknote/MKPro)» для наглядности):\n\nfn lost() {\n halt(\"ЕГГОГ\")\n}\n\nfn front_stop() {\n …\n if cells[7] \u003c 0 {\n lost()\n }\n …\n}\n\nЕсли некое проверяемое значение меньше нуля (в двух остальных местах — меньше или равно нулю), то пишем на экране «ЕГГОГ» — слово «error», это одно из немногих слов, которое калькулятор способен отобразить, так как у него есть специальная логика для отображения некоторых букв.\n\nОптимизатор умеет заменять halt(\"ЕГГОГ\") одним опкодом, потому что это «встроенное» в калькулятор слово, но тут он пишет относительно много кода — проверка условия и вызов, тогда как проверку и вывод «еррора» можно объединить в один опкод — F √ или F lg в зависимости от условия.\n\nЕсли число строго меньше нуля, квадратный корень из него даст ту же ошибку, как и логарифм от числа, которое меньше или равно нулю.\n\nВ «Рембо-III» это сокращает программу на четыре байта. Это существенно, когда у доступно так мало памяти.\n\nhttps://bolknote.ru/all/haki-v-elektronike-mk-61/",
"sig": "80637d0092e8da79f01f60d06f311345aefb67f2b0bf2712492e9af6109f4f3638b03c3a65485fbbd257e906fbbe5852f5e8fe9199678b5b8288e790c487a2d3"
}