«МК-61s»: новые команды

Меня тут один читатель натолкнул на идею рассказать вот о чём.

Что можно было бы дёшево улучшить в «МК-61», если бы в своё время стояла такая задача? Понятно, что неплохо было бы исправить ошибки, например зацикливание генератора случайных чисел при взятии целой части. Да и сам генератор неплохо было бы сделать по-настоящему случайным, чтобы он не начинал при включении свою работу всегда с одного и того же числа. Но это тоже, наверное, можно считать багом.

Под улучшением я тут подразумеваю что-то, что хотя бы чуть-чуть упростило бы работу программиста с этим устройством. Под дешевизной я понимаю скорее не стоимость, а максимальную обратную совместимость. Понятно, что какие-то программы всё равно бы сломались: на каждую особенность обязательно найдётся несколько программ, её эксплуатирующих.

Ретроконсоль «МК-61s», которую я помогаю программировать, точно эмулирует железо. Эта эмуляция основана на работе Феликса Лазарева, который, вооружившись снимками разводки плат и ПЗУ, снятого под микроскопом, за год сделал точный эмулятор, полностью программно повторяющий аппаратную часть «Электроники МК-61».

Позже в одном из эмуляторов появился и ответ на вопрос, заданный в начале этой заметки.

Позже Сергей Фролов провёл эксперимент и, как результат, в некоторые эмуляторы были добавлены семь дополнительных ячеек памяти и дополнительный регистр f. Казалось бы, не бог весть что, но не в том случае, когда доступно всего 105 ячеек.

Я разобрал очень много оптимизаций для своего другого проекта — языка высокого уровня для «МК-61» — и знаю, как люди изощрялись, чтобы сэкономить всего лишь один байт, которого не хватает, чтобы впихнуть программу в существующие ограничения.

Так что семь байт и ещё один регистр — это очень большое подспорье.

В «МК-61s» я сделал три режима: без этого расширения, с включённым расширением и автоматический режим. Последний включает расширение адресов и дополнительный регистр, если обнаруживает, что загружаемая программа не помещается в стандартные 105 байт или использует команды с кодами 0x4F и 0x6F. Это неиспользуемые в обычной программе коды, которые в этом режиме заняты под работу с дополнительным регистром.

Дополнено 22 августа: оказывается, эксперимент провёл не Сергей Фролов. Статью я напишу позже. Мне сегодня сделали операцию, отхожу, ещё и горло заболело из-за безответственного коллеги.

Читайте также

Комментарии 8

Алексей Сугоняев № 3
Эксперимент с расширением простанства МК-61 еще одним регистром памяти «в железе» делали до Сергея Фролова, ЕМНИП на страницах сайта Арбинады об этом писали одновременно с ссылкой на то что к МК-61 подключали магнитофон и даже :) считыватель перфокарт. Очень интересные были эксперименты над железом. Это благодаря тому что закольцовку на плате можно было разомкнуть и врезаться в нее. Фролов кстати со своим аппаратным сканером и загрузчиком программ именно так и сделал.
Макс № 5
Читатель принял бы эти реверансы не за делать нечего-изголяемся, если бы ты реально сделал апгрейд существующего калькулятора мк61, например врезался б в дорожки индикатора и зная что на экране какое-то захардкоженное число из сета захардкоженых, эмулировал ввод с клавы заранее запрограммированный пресет данных. Как вариант. Т.е формально это был бы diy улучшение как будто ты вернулся в прошлое и сделал круче. Сейчас все твои улучшения это просто формальность — можна улучшить лярдом способов без напряга — добавил памяти, добавил команд, добавил графику, добавил принтер, добавил вайфай
Евгений Степанищев автор № 7

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

Сейчас все твои улучшения это просто формальность — можна улучшить лярдом способов без напряга — добавил памяти…

Чтобы понять, что это не так, достаточно пройти по ссылке, упомянутой в статье.