LINUX.ORG.RU
ФорумTalks

Интерпретатор языка для МК-61

 , , , ,


0

2

Была чудная страна, СССР. В ней небыло секса, интернета и ещё кучи всего...

Например компьютер Поиск 1 («аналог»(спищеный) IBM PC-XT) на «аналоге»(спищеном) процессора i8088 - стоил 1000 рублей. Такое «добро» не могла себе позволить практически никакая адекватная семья, к тому же появился он уже на закате СССР.

https://ru.wikipedia.org/wiki/Поиск_(компьютер)

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

Знаменитый программируемый калькулятор МК-61.

https://ru.wikipedia.org/wiki/Электроника_МК-61

Цена - 85 рублей!

Не каждая семья могла позволить себе купить даже эту поделку в домашнее использование.

И мне приходилось познавать мир компьютерных технологий именно на этом устройстве.

От безкомпьютерья - пришлось себя радовать мегаинтересными самопридуманными заданиями.

Книжки и журналы с изображениями и даже схемами для самосбора компьютеров я видел и читал. Уже изучал заочно ассемблер...

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

И решил себя позабавить написанием своего интерпретатора своего же языка программирования.

Опыт на удивление прошёл успешно и я, в свои лет 13, был в восторге от своего успеха.

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

Программа была по нахождению корней квадратного уравнения.

У кого-то были вопросы, задавайте! Ну или просто повеселимся :) border-radius, unt1tled, Manhunt



Последнее исправление: Serg_HIS (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Ты как к ячейкам памяти доступ получал по индексу?

Да это было вполне не просто.

я точно не помню.

Но вспоминаю и додумываю, что я отдельный регистр выделял для парсинга кода.

и да вроде у меня как раз 104 занял интерпретатор, а не 105 потому, что команды в калькуляторе тоже были с разным количеством занимаемых ячеек.

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

я так думаю если бы сейчас делал то идексировал бы двумя цифрами

например от 0-9 номер регистра и от 0 до 3х номер команды в регистре. Наверняка я так и делал тогда.

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

Serg_HIS
() автор топика
Ответ на: комментарий от tailgunner

ты написал типа решить задачу

а+б=с?

не вижу

Serg_HIS
() автор топика
Ответ на: комментарий от i-rinat

Не верится, что всё это влезет в лимит в 104 команды

разнообразие команд было очень скудным.

Serg_HIS
() автор топика
Ответ на: комментарий от Serg_HIS

Ты понял принцип работы?

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

Black_Shadow ★★★★★
()
Ответ на: комментарий от CaptainFarrell

Смысл темы в том, что кто хочет — ищет возможности, а кто нет — ищет оправдания.

Serg_HIS
() автор топика
Ответ на: комментарий от Serg_HIS

Фокус в том что я использовал для хранения своей программы и её даных регистры калькулятора.

Вопросов больше не имею ©

15 регистров для хранения программы вперемешку с данными без ппзу - если (a + b) * c поместится, то уже хорошо.

Fail.

border-radius
()
Ответ на: комментарий от arturpub

полное отсутствие литературы по чему-либо

Нельзя сказать что литература отсутствовала.

Были журналы: Радио, Наука и жизнь, приложение к Юному технику.

В них было тонны хлеба для подобных мне извращенцев.

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

Меня в детстве жутко поразили пару игр для калькулятора.

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

Serg_HIS
() автор топика
Ответ на: комментарий от border-radius

если (a + b) * c поместится, то уже хорошо

У меня получилось вместить решение квадратного уравнения.

Fail.

Что у тебя опять случилось? Поломался?

Serg_HIS
() автор топика
Ответ на: комментарий от border-radius

для тех кому особо хочется в никнуть в то что я тогда сделал.

можем сейчас вместе разработать свой язык и написать интерпретатор.

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

Serg_HIS
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.