Обнаружил весьма интересный, на мой взгляд, обзор истории развития ПМК от HP - пионеров этого направления. Авторский текст привожу без правок, без закругления полемических углов. В конце заметки публикую последовавшую по итогам нашу небольшую дискуссию.
В очередной раз на очередном форуме прочитал: "Не все так плохо было у нас. Если и отставали от TI, HP и Casio, то года на два-три (и то, имхо это не с разработкой связано, а с выпуском, привязаным к пятилеткам)." Несколько лет мне было лень, но сейчас молчать уже не могу. Расскажу про программируемые HP - мне это ближе.
1974.
Итак, в 1974 году выходит HP-65 - первый в мире программируемый калькулятор.
Конечно же, обратная польская запись. Сто (100) шагов программы, девять регистров. Правда, практически любое нажатие клавиши, даже каждого из трех шифтов, занимает отдельный шаг - шаги у него шестибитные, в один шаг много не всунешь. Причем таблицу кодов учить не нужно - коды совпадают с положением на клавиатуре. Внутри, конечно, они преобразуются в шестибитные шаги (а склеивающиеся коды типа чтения-записи в регистр - по два в один шаг), но пользователю это не видно и не особо интересно.
Зато совершенно нет номеров шагов - можно ставить метки и потом делать переходы на них. Даже так: пять буквенных меток определяют подпрограммы, которые можно вызывать вручную нажатием одной клавиши или вызывать из других подпрограмм (правда, вложенные вызовы не поддерживаются). А десять цифровых меток - только для переходов.
Благодаря наличию меток можно удалять команды из середины программы, не набивая весь остаток заново (а замены нет вообще, только вставка). Правда, эта функциональность очень странная и смешная: для удаления надо сначала нажать один из шифтов, он немедленно вставляется в код, и, если программа упирается в конец памяти, последняя команда теряется. Зато, так как по шагам можно ходить только вперед, а назад нельзя, иногда легче удалить несколько команд и потом вставить заново, чем идти с самого начала или от ближайшей буквенной метки :)
Проверка условий тоже сделана довольно забавно - если условие не выполняется, то управление перескакивает на два шага вперед. А если выполняется, то идет на эти самые два шага, где может быть, например, переход или короткое действие.
А, да, чуть не забыл. МАГНИТНЫЕ КАРТЫ! Именно с них вроде как грузили программы расчета коррекции курса при стыковке "Союза-19" и "Аполлона" (у нас подобное безумие запланировали только как резерв в 1988 году на "Союзе ТМ-7" и МК-52, да и то, кажется, не пригодилось). Для простых людей, естественно, они тоже были полезны - сначала на них сохраняли свои программы, потом ими менялись, а потом покупали готовые пакеты, которые выглядели как немаленьких размеров книжка с маленькой коробочкой.
Стоила вся эта радость $795, хотя по сравнению с другими программируемыми устройствами того времени это было очень по-божески.
Калькулятор стал настолько популярным, что уже через несколько месяцев после выпуска энтузиасты начали выпускать и распостранять по почте ежемесячный самиздатовский журнал. Первый номер, правда, занимал всего две страницы, но со временем объем дошел до полусотни-сотни страниц.
1975.
Через год после HP-65 был объявлен HP-55. Хотя выглядел он довольно похоже, внутри его зачем-то изрядно поменяли. Всего 49 шагов программы, зато зачем-то 20 регистров. Правда, преобразование единиц и статистические функции, но разве в них счастье?
Никаких меток больше нет. Все как мы привыкли, с номерами шагов и без вставок-удалений. Наконец-то сделали листание программы назад. Шаги наконец-то восьмибитные, поэтому команда перехода влезает в один шаг. Условий вместо четырех осталось только два, но теперь они совмещены с переходами и тоже влезают в один шаг. Зато чтение-запись в регистры занимает два шага вместо одного. Никаких магнитных карт нет, зато зачем-то есть таймер.
Но все же это $395 - в два раза дешевле. В самиздатовском журнале обсуждают HP-55 и пишут для него программы, хотя HP-65 намного популярнее. Отдельные личности мечтают о SUPER 65 с сохраняющейся памятью, тысячей шагов, сотней регистров, двумя шифтами с подвыподвертом (я серьезно), защитой от копирования, вводом-выводом звука и термопринтером.
А пока они мечтают, выходит HP-25, поменьше и попроще.
Шагов все так же 49, регистров осталось 8, зато любая функция с любыми шифтами и переход влезают в одну команду. Условия вернули как в HP-65 - с перескоком на шаг вперед. И условий теперь целых восемь - сравнение двух чисел и числа с нулем. Да, кстати, десятичная точка перестала занимать отдельный разряд.
Но так как он стоит $195 - спасибо новой платформе - и переносится одной рукой, спрос огромный.
А в самиздате тем временем забывают про HP-55, бодро программируют для двух остальных, фотографируют потроха HP-65 и собирают из рассыпухи принтер. И, понимая, что ждать SUPER 65 с энергонезависимой памятью пока бессмысленно, начинают мечтать о чем-нибудь типа HP-75, изменения в котором будут чисто косметическими - всего один лист A4 через один интервал. От безысходности даже появляется раздел по кстати вышедшему TI SR-52 аж с целыми 224 шагами и 20 регистрами.
1976.
Безысходность в самиздате нарастает. В майском номере любители HP-65 расправляются с любителями SR-52 и выгоняют их в их собственный самиздат. Ну какой толк, говорят, от удвоенной памяти, если решение квадратного уравнения занимает 110 шагов вместо 45? А разложение на множители - 162 вместо 90? И вообще у них корпус неудобный и кнопки мелкие.
И тут появляется лесник во всем белом. Во-вторых, в HP-25 добавляют, да-да, не шифты с подвыподвертом, а энергонезависимую память, называют эту штуку HP-25C и начинают продавать всего за $200. А во-первых...
224 шага! (естественно, одношаговые команды) 26 регистров! (правда, десять из них доступны с трудом) HP-67!
О командах в несколько шагов, загубивших те же 224 шага в SR-52, уже никто не вспоминает. При редактировании программы можно двигаться налево, направо и в другие стороны. Меток, повешенных на клавиши, уже не 5, а 10. Конечно же, никаких номеров шагов. Процедуры можно вызывать до трех уровней вложенности. А еще можно читать и писать на карты не только программы, но и куски программ или данные из регистров. И даже делать все это программно.
А еще косвенная адресация.
И еще настольный вариант с принтером HP-97.
Самиздат в восторге, фотографирует потроха, пишет "жизнь" (первая версия - 50 минут на поколение на доске 10x10), блэкджек и стартрек. А другие занимаются "еггогологией", она даже смешнее, чем у нас: они засовывают в HP-67 карты от HP-65 или вообще выключают питание на середине записи или включают на уже полупрочитанной карте. После того как искомый байт пойман, его можно записать на отдельную карту и делиться с друзьями :)
Да, кстати, стоил HP-67 $450, а HP-97 - $750.
1977.
Выходит замена для HP-25 - HP-29C с 98 шагами программы и 30 регистрами (14 опять доступны с трудом). Из HP-67 переползли метки (правда, только цифровые) с переходами, три уровня подпрограмм и косвенная адресация, а из HP-25C энергонезависимая память (кроме этих злосчастных 14 регистров).
Стоит $195, и опять есть HP-19C с принтером за $345.
И вот тут-то и появляется наш Б3-21, первоначально по 350 рублей. На первый взгляд он находится где-то между HP-55 и HP-25. Но:
- краткого исследования картинок достаточно, чтобы осознать пропасть в наборе функций, нет даже арктангенса;
- регистров только два (вместо традиционных четырех) стековых, семь нормальных и шесть кривых;
- шагов программы вроде бы больше, но из-за маленького стека приходится постоянно пользоваться регистрами, что раздувает программу.
Например, неполная гамма-функция занимает больше шагов, чем даже на HP-55, у которого двухшаговая работа с регистрами. А на HP-25 не только одношаговое чтение-запись регистров, но есть еще и одношаговая арифметика в них, что позволяет делать в его 49 шагах гораздо более интересные вещи.
И, куда ни ткнись, всюду отвратительные неудобства, даже адрес перехода приходится вводить по табличке. О глюках я лучше промолчу. Если кому-нибудь еще интересно, могу рассказать, что творилось в цивилизованном мире в 1978-1979 годах, пока у нас готовили Б3-34...
Оригинал заметки в ЖЖ автора tolstopuz
arbinada:
Хороший обзор.
Насчет 2-3 года - не слышал, а 5-6 лет - реальная цифра, собсно, вы к ней тоже приходите.
В условиях бурного развития рынка, кстати, задержка лет на 5 экономит массу усилий: не нужно воспроизводить то, что умерло за эти годы.
Сейчас, правда, говорить о задержке вообще не приходится в связи с отсутствием отрасли, как таковой.
tolstopuz:
в 1979 у них был hp-41c (с алфавитным жк дисплеем), а у нас б3-34 (хуже, чем hp-29c).
в 1982 у них hp-75c (бейсик), а у нас мк-54 (то есть вообще ничего нового).
а дальше у них в 1986 случилась маленькая революция - переход на rpl и выпуск легендарных 28 и 48. у нас же после выпуска мк-52 (потрясающий уродец, опять же на уровне моделей hp 1977 года) и мк-85 (аналог hp-75c) произошло не отставание, а тупик.
то есть общий итог получается такой - до 1986 года сделали три аналога далеко не лучших моделей 1978-79 года и одну с бейсиком. ничего даже близко похожего на модели 70-х(!) годов hp-41 и даже hp-67 сделано не было. про rpl я даже не говорю - это для нас просто ракетная техника.
arbinada:
RPL...
А оно нужно для калькуляторов? Там уже вполне компутерные задачки вырисовываются.
Действительно похоже на реактивный ранец за плечами, только что с ним делать в городе-то? :)) Лучше на велике или на авто.
По мне так и бейсик нафиг сдался (хотя опять же разница между hp-75с и мк-85 - 4 года). Бейсик - он для Excel хорош.
Алфавтный индикатор на hp-41c, если не ошибаюсь, только для вывода. С символьной информацией калькулятор не работал. То есть, да, удобнее читать сообщение "Ошибка" вместо ЕГГ0Г, но это не качественная разница.
Магнитные карты - да, качественная. Она была изначально, и, как мне кажется, не воспроизводилась по причине контроля за копированием информации в СССР (вспомните учет копий документов на предприятиях, а тут массовое копирование программ)
tolstopuz:
любая методика программирования имеет некий запас расширяемости, за которым с ней становится работать очень неудобно. если вы заметили, абсолютную адресацию у hp имели только 49-шаговые калькуляторы. при большем размере программы правка, меняющая число шагов, становится мучительной, я сам отлично помню это на мк-54. система меток (буквенные для подпрограмм и цифровые для переходов) хорошо работает для нескольких сотен шагов, но с тысячами не хватает и ее. точно так же начинают мешать другие детские ограничения типа уровня вложенности подпрограмм.
еще более серьезная проблема возникает с библиотеками подпрограмм. во-первых, они наверняка либо находятся на одних и тех же шагах программы, либо используют одни и те же метки. а что еще хуже - одни и те же регистры. то есть подключить к своей программе две разные чужие подпрограммы невозможно - надо переписывать одну из них.
rpl как раз и был ответом на эти вопросы. никаких шагов, никаких однобуквенных меток, никаких нумерованных регистров - только именованные переменные и ограниченный только объемом памяти стек. а переменные (и стековые регистры) могут хранить не только числа, но и строки, массивы и программы.
идея оказалась настолько удачной, что бейсик действительно нафиг сдался.
(кстати, главный недостаток мк-152 именно в том, что количество шагов просто зашкаливает для модели программирования, оставшейся от мк-52. представьте себе, как будет выглядеть использование чужой подпрограммы из 1000 шагов, если один из регистров занят другой подпрограммой из 500 шагов, да и номера шагов перекрываются.)
hp-41c имел на клавишах полный английский алфавит, один специальный регистр на 24 символа и возможность хранить по 6 символов в числовых регистрах. но главное не это, а объем памяти - 200 шагов и 63 регистра (которые можно отдать и под шаги программы, что увеличит их до 441), а если докупить модуль расширения, то уже 319 регистров и 1000 шагов (2231, если отдать все регистры под программу). это принципиально новая вычислительная мощность для калькулятора. вон, например, покер:
http://www.hpmuseum.org/software/41/41poker.htm
arbinada:
Со всем этим трудно не согласиться.
Просто я стою на позиции, что "калькулятору - калькуляторово", поэтому заниматься интеграцией подпрограмм да еще от разных авторов - это какое-то неправильное занятие для рядового пользователя, пусть даже и продвинутого. Авторам прикладных пакетов - да, но они спокойно разберутся в коллизиях при сборке (этакая ручная линковка, которую, несомненно, можно заменить более интеллектуальной автоматической процедурой на полноценном компьютере).
А рядовой просто возьмет машинку в руки, введет/загрузит готовую программу и сделает с ее помощью свое дело.
Судя по фронтальном виду hp-41c с символьной информацией он все-таки не работал (в смысле функций обработки, из программы "Покер", где 5 регистров используются для отрисовки 5 вариантов скрытых карт, это тоже видно), а ввод там был гораздо более убогим, чем, нынешние манипуляции SMS на мобилах. То есть, все-таки, эта фишка использовалась для удобства вывод информации пользователю.
tolstopuz:
ну да. загрузит готовую программу для решения системы дифуров, а потом загрузит готовую подпрограмму для специальной функции, используемой в его дифуре. и на rpl у него не будет никаких проблем.
без возможности оперировать со сложными данными как с единым целым работа с матрицами превращается в мучительное перетасовывание регистров. а на hp-48 рядовой пользователь просто возьмет машинку в руки, загрузит готовую программу и получит библиотеку линейной алгебры, где операции над матрицами делаются так же просто, как над числами, и массив собственных значений считается одной функцией, причем одной и той же для любого размера матрицы, лишь бы хватило памяти и терпения.
разве не для этого существуют калькуляторы?
символьные операции в hp-41c, конечно, убогие, но почему убог ввод при наличии полного алфавита, никак не пойму.