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)

Ответ на: комментарий от znenyegvkby

Да? Т.е. мне можно всем говорить что меня нашли в капусте?

Чужой смотрел? Так само, только в аисте.

FiXer ★★☆☆☆
()
Ответ на: комментарий от Xenius

Если найду «распечатку» на тетрадном листочке, написанную простым карандашом - обязательно дам ссылку на скачку :)

Serg_HIS
() автор топика

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

А что за язык-то был? Специализированный для решения квадратных уравнений, или на нём что-нибудь более содержательное можно было делать?

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Я точно не помню про все нюансы.

Был условный переход (помоему безусловный я исключил потому как не влазил и не нужно).

Арифметические операции «+,-,*,/»

Вызов данных из указанного регистра и засовываение данных в указанный регистр.

По сути универсальный язык программирования.

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

Я точно не помню про все нюансы.
Если найду «распечатку» на тетрадном листочке

пруф или пустое болтание языком.

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

Пруф думаю дольше искать, чем если я расскажу на пальцах принцип.

Что именно вызывает недоверие или непонимание?

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

вопрос конкретно задай, что тебе кажется таким уж фантастическим?

Serg_HIS
() автор топика

Лучше бы кто-нибудь качественно описал недокументированный функционал (ту же псевдографику шестнадцатеричного представления). А то я, было дело, начал делать библиотеку математики МК-61 (логика и так есть в языке программирования), но «дисплейная» часть так и осталась нереализованной - http://saahriktu.org/downloads/libhalfmk61-0.1.tar.xz.

saahriktu ★★★★★
()

На сколько я помню, МК-61 - это слегка урезанный вариант МК-52. МК-52 был у меня, и я тоже писал программки для него. И для меня загадка, каким образом для него можно сделать интерпретатор какого-то другого языка.

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

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

Не для тебя одного.

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

ту же псевдографику шестнадцатеричного представления

Это было скорее побочные эффекты, чем не документированные функции.

А тот интерпретатор я писал для себя как эмулятор «настоящего» компьютера из книжек и журналов про компутеры с RAM и с интерпретаторами языков.

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

Не для тебя одного.

Вам не понятно где хранится интерпретируемая программа или сам интерпретатор?

Или что не понятно?

Вопросы где?

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

Мне непонятно, как происходит преобразование программы из исходной формы (твоего ассемблерного синтаксиса) в объектный; еще мне интересно, как выглядит синтаксис твоего ассемблера и как набирается исходная программа на клавиватуре МК-61.

tailgunner ★★★★★
()

У меня во время учёбы в школе был МК-61, но не было инструкции. Сосед объяснил как пользоваться обратной польской записью. С программированием познакомился по примерам из учебника геометрии для 7-9 классов (Атанасян, Бутузов, Кадомцев). К сожалению, знаменитая книжка И. Данилова «Секреты программируемого микрокалькулятора» мне тогда не попалась.

Evenik ★★
()
Ответ на: комментарий от ya-betmen

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

Под Android есть

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

как происходит преобразование программы из исходной формы (твоего ассемблерного синтаксиса) в объектный

Напомню - это интерпретатор. Никакого преобразования фактически не происходит как и принято в интерпретаторах.

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

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

RAM - Radial Access Memory

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

каждые 2 знакоместа - это одна ячейка для команды

в каждом регистре по 4 команды для команды условного перехода 4 ячейки (2 на команду и условие + 2 на адрес перехода)

для хранения данных приходилось использовать весь регистр целиком.

чем больше программа - тем меньше регистров для данных.

Если не понятно как шло само распознавание команд из знакомест - расскажу

да и были конечно регистры для обслуживания работы интерпретатора (например счётчик адреса текущей команды)

итого если вам нужно 2 значения хранить для программы и свободны ещё 13-1(счётчик) 12 регистров, то получается, что в лучшем случае 12*4 = 48 команд.

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

Serg_HIS
() автор топика

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

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

Я считаю, что мне очень повезло, что мне купили эту мега машину!

А бейсик - это ты не сюда :)

Бейсик это гараздо позже.

И да у нас была «Рапира» (спищеный Васик)

Serg_HIS
() автор топика

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

http://www.wass.net/manuals/Elektronika MK-61.pdf

Очередной выходной день для очередной НЕХ. Вы в следующий раз несите что-нибудь поновее на ЛОР :)

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

Бейсик это гараздо позже.

У кого как. Мне одалживали поюзать МК-61 в ~2000-м году. У меня тогда уже был «Сюбор», но много сидеть за ним не разрешали, да и у МК-61 был свой собственный мир. Я тогда хотел себе свой собственный МК-61 или другой аналог, но в нашей глубинке такого уже не было. Потом у меня организовался Citizen SRP-145. Это, конечно, гораздо менее мощная машина (нет никакой логики, включая ветвления и циклов, а также всего где-то 40 шагов программы максимум), но всё лучше чем ничего. А уже в более поздние времена я поменял «Сюбор» на МК-61. Правда, без блока питания, а батарейки он жрёт довольно сильно. Ожидал что получится организовать блок питания, но не получилось. Так он почти и не включался.

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

Блин вы даже меня заинтриговали

Главное не разочаруйся...

Для сабжа нужно немерянное терпение и ещё большее воображение.

Просто тогда небыло выбора. Либо на нём либо на бумажке.

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

У кого как. Мне одалживали поюзать МК-61 в ~2000-м году

Жесть какая...

Я в 93 году на стройке заработал себе на Поиск 1 уже.

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

Главное не разочаруйся...

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

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

Почувствую синтетический дух советского времени...

И не забудь главное! Секса НЕТ! ;)

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

В глубинках всё дорого. Цены на калькуляторы/компьютеры начали снижаться только где-то к 2002-му году. Вот тогда и появилась возможность организовать за довольно крупные по тем временам деньги Pentium II 233 МГц/128 Мб RAM/... .

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

Ну, я всё равно не скучал многие годы, многое (пусть и не совсем серьёзно) извлекая и из обычных простейших 8-ми разрядных калькуляторов с 4-мя арифметическими действиями и извлечением корня. Чего у меня только на них не было, начиная с 1997-го года... Платформеры, 3D экшены, файловые менеджеры, многозадачность,...

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от tailgunner

тролль в треде

притом чуток туповатый.

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

Для одарённых:

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

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

к примеру:

1 - арифметическая команда.

тогда:

11 - сложение

12 - вычитание

13 - умножение

14 - деление

15 - возведение в степень например

2 - условный переход

тогда:

21 - = 22 - <> 23 - > 24 - < 25 - <= 26 - >=

вторые 2 знакоместа - адрес перехода.

3 - операция с регистрами

тогда:

31 - взять из указанного регистра 32 - положить в указанный регистра

и т.д.

так понятнее?

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