Меня тут один читатель натолкнул на идею рассказать вот о чём.
Что можно было бы дёшево улучшить в «МК-61», если бы в своё время стояла такая задача? Понятно, что неплохо было бы исправить ошибки, например зацикливание генератора случайных чисел при взятии целой части. Да и сам генератор неплохо было бы сделать по-настоящему случайным, чтобы он не начинал при включении свою работу всегда с одного и того же числа. Но это тоже, наверное, можно считать багом.
Под улучшением я тут подразумеваю что-то, что хотя бы чуть-чуть упростило бы работу программиста с этим устройством. Под дешевизной я понимаю скорее не стоимость, а максимальную обратную совместимость. Понятно, что какие-то программы всё равно бы сломались: на каждую особенность обязательно найдётся несколько программ, её эксплуатирующих.
Ретроконсоль «МК-61s», которую я помогаю программировать, точно эмулирует железо. Эта эмуляция основана на работе Феликса Лазарева, который, вооружившись снимками разводки плат и ПЗУ, снятого под микроскопом, за год сделал точный эмулятор, полностью программно повторяющий аппаратную часть «Электроники МК-61».
Позже в одном из эмуляторов появился и ответ на вопрос, заданный в начале этой заметки.
Позже Сергей Фролов провёл эксперимент и, как результат, в некоторые эмуляторы были добавлены семь дополнительных ячеек памяти и дополнительный регистр f. Казалось бы, не бог весть что, но не в том случае, когда доступно всего 105 ячеек.
Я разобрал очень много оптимизаций для своего другого проекта — языка высокого уровня для «МК-61» — и знаю, как люди изощрялись, чтобы сэкономить всего лишь один байт, которого не хватает, чтобы впихнуть программу в существующие ограничения.
Так что семь байт и ещё один регистр — это очень большое подспорье.
В «МК-61s» я сделал три режима: без этого расширения, с включённым расширением и автоматический режим. Последний включает расширение адресов и дополнительный регистр, если обнаруживает, что загружаемая программа не помещается в стандартные 105 байт или использует команды с кодами 0x4F и 0x6F. Это неиспользуемые в обычной программе коды, которые в этом режиме заняты под работу с дополнительным регистром.
Дополнено 22 августа: оказывается, эксперимент провёл не Сергей Фролов. Статью я напишу позже. Мне сегодня сделали операцию, отхожу, ещё и горло заболело из-за безответственного коллеги.
Комментарии 8
К счастью, не читатель решает чем мне заниматься в жизни. «Делать нечего» — этокакое-то барско-снисходительное отношения к автору, непонятно по какому праву высказанное.
Чтобы понять, что это не так, достаточно пройти по ссылке, упомянутой в статье.