В очередной раз на очередном форуме прочитал: "Не все так плохо было у нас. Если и отставали от TI, HP и Casio, то года на два-три (и то, имхо это не с разработкой связано, а с выпуском, привязаным к пятилеткам)." Несколько лет мне было лень, но сейчас молчать уже не могу. Расскажу про программируемые HP - мне это ближе.
1974.
Итак, в 1974 году выходит HP-65 - первый в мире программируемый калькулятор.
Конечно же, обратная польская запись. Сто (100) шагов программы, девять регистров. Правда, практически любое нажатие клавиши, даже каждого из трех шифтов, занимает отдельный шаг - шаги у него шестибитные, в один шаг много не всунешь. Причем таблицу кодов учить не нужно - коды совпадают с положением на клавиатуре. Внутри, конечно, они преобразуются в шестибитные шаги (а склеивающиеся коды типа чтения-записи в регистр - по два в один шаг), но пользователю это не видно и не особо интересно.
Зато совершенно нет номеров шагов - можно ставить метки и потом делать переходы на них. Даже так: пять буквенных меток определяют подпрограммы, которые можно вызывать вручную нажатием одной клавиши или вызывать из других подпрограмм (правда, вложенные вызовы не поддерживаются). А десять цифровых меток - только для переходов.
Благодаря наличию меток можно удалять команды из середины программы, не набивая весь остаток заново (а замены нет вообще, только вставка). Правда, эта функциональность очень странная и смешная: для удаления надо сначала нажать один из шифтов, он немедленно вставляется в код, и, если программа упирается в конец памяти, последняя команда теряется. Зато, так как по шагам можно ходить только вперед, а назад нельзя, иногда легче удалить несколько команд и потом вставить заново, чем идти с самого начала или от ближайшей буквенной метки :)
Проверка условий тоже сделана довольно забавно - если условие не выполняется, то управление перескакивает на два шага вперед. А если выполняется, то идет на эти самые два шага, где может быть, например, переход или короткое действие.
Есть два битовых флага, которые можно ставить, сбрасывать и проверять двухшаговыми командами. Есть цикл с автодекрементом по одному из регистров.
Есть даже команды арифметики прямо в регистрах (STO * 2), но они трехшаговые, и ими пользуются редко.
Зато есть целая и дробная часть, модуль, факториал, перевод минут и секунд в доли градуса, декартовых координат в полярные, десятичных чисел в восьмеричные и всего этого обратно. И даже сложение и вычитание градусов-минут-секунд без перевода в доли градуса.
А, да, чуть не забыл. МАГНИТНЫЕ КАРТЫ! Именно с них вроде как грузили программы расчета коррекции курса при стыковке "Союза-19" и "Аполлона" (у нас подобное безумие запланировали только как резерв в 1988 году на "Союзе ТМ-7" и МК-52, да и то, кажется, не пригодилось). Для простых людей, естественно, они тоже были полезны - сначала на них сохраняли свои программы, потом ими менялись, а потом покупали готовые пакеты, которые выглядели как немаленьких размеров книжка с маленькой коробочкой.
Стоила вся эта радость $795, хотя по сравнению с другими программируемыми устройствами того времени это было очень по-божески.
Калькулятор стал настолько популярным, что уже через несколько месяцев после выпуска энтузиасты начали выпускать и распостранять по почте ежемесячный самиздатовский журнал. Первый номер, правда, занимал всего две страницы, но со временем объем дошел до полусотни-сотни страниц.
1975.
Через год после HP-65 был объявлен HP-55. Хотя выглядел он довольно похоже, внутри его зачем-то изрядно поменяли. Всего 49 шагов программы, зато зачем-то 20 регистров. Правда, преобразование единиц и статистические функции, но разве в них счастье?
Никаких меток больше нет. Все как мы привыкли, с номерами шагов и без вставок-удалений. Наконец-то сделали листание программы назад. Шаги десятичные (00-99), это чуть лучше, чем шестибитные, поэтому команда перехода влезает в один шаг. Зато все остальные операции склеиваться перестали - сколько нажатий, столько и шагов. Условий вместо четырех осталось только два. Никаких магнитных карт нет, зато зачем-то есть таймер.
Но все же это $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.
September 22 2007, 11:46:25 UTC 4 years ago
... А мой кибер бросит писать стихи и начнёт слушать музыку ...
September 22 2007, 11:51:37 UTC 4 years ago
September 22 2007, 12:05:37 UTC 4 years ago
... Своп на рамдрайве ...
November 24 2007, 21:13:29 UTC 4 years ago
http://arbinada.com/pmk/node/20
November 24 2007, 21:45:41 UTC 4 years ago
4 years ago
4 years ago
4 years ago
November 25 2007, 10:06:55 UTC 4 years ago
... Бесплатный сюр бывает только в мюшеловке ...
November 15 2007, 09:11:37 UTC 4 years ago
November 15 2007, 10:52:46 UTC 4 years ago
November 24 2007, 21:20:36 UTC 4 years ago
Насчет 2-3 года - не слышал, а 5-6 лет - реальная цифра, собсно, вы к ней тоже приходите.
В условиях бурного развития рынка, кстати, задержка лет на 5 экономит массу усилий: не нужно воспроизводить то, что умерло за эти годы.
Сейчас, правда, говорить о задержке вообще не приходится в связи с отсутствием отрасли, как таковой.
November 24 2007, 22:15:54 UTC 4 years ago
в 1982 у них hp-75c (бейсик), а у нас мк-54 (то есть вообще ничего нового).
а дальше у них в 1986 случилась маленькая революция - переход на rpl и выпуск легендарных 28 и 48. у нас же после выпуска мк-52 (потрясающий уродец, опять же на уровне моделей hp 1977 года) и мк-85 (аналог hp-75c) произошло не отставание, а тупик.
то есть общий итог получается такой - до 1986 года сделали три аналога далеко не лучших моделей 1978-79 года и одну с бейсиком. ничего даже близко похожего на модели 70-х(!) годов hp-41 и даже hp-67 сделано не было. про rpl я даже не говорю - это для нас просто ракетная техника.
November 24 2007, 22:37:34 UTC 4 years ago
А оно нужно для калькуляторов? Там уже вполне компутерные задачки вырисовываются.
Действительно похоже на реактивный ранец за плечами, только что с ним делать в городе-то? :)) Лучше на велике или на авто.
По мне так и бейсик нафиг сдался (хотя опять же разница между hp-75с и мк-85 - 4 года). Бейсик - он для Excel хорош.
Алфавтный индикатор на hp-41c, если не ошибаюсь, только для вывода. С символьной информацией калькулятор не работал. То есть, да, удобнее читать сообщение "Ошибка" вместо ЕГГ0Г, но это не качественная разница.
Магнитные карты - да, качественная. Она была изначально, и, как мне кажется, не воспроизводилась по причине контроля за копированием информации в СССР (вспомните учет копий документов на предприятиях, а тут массовое копирование программ)
November 24 2007, 23:28:05 UTC 4 years ago
еще более серьезная проблема возникает с библиотеками подпрограмм. во-первых, они наверняка либо находятся на одних и тех же шагах программы, либо используют одни и те же метки. а что еще хуже - одни и те же регистры. то есть подключить к своей программе две разные чужие подпрограммы невозможно - надо переписывать одну из них.
rpl как раз и был ответом на эти вопросы. никаких шагов, никаких однобуквенных меток, никаких нумерованных регистров - только именованные переменные и ограниченный только объемом памяти стек. а переменные (и стековые регистры) могут хранить не только числа, но и строки, массивы и программы.
идея оказалась настолько удачной, что бейсик действительно нафиг сдался.
(кстати, главный недостаток мк-152 именно в том, что количество шагов просто зашкаливает для модели программирования, оставшейся от мк-52. представьте себе, как будет выглядеть использование чужой подпрограммы из 1000 шагов, если один из регистров занят другой подпрограммой из 500 шагов, да и номера шагов перекрываются.)
hp-41c имел на клавишах полный английский алфавит, один специальный регистр на 24 символа и возможность хранить по 6 символов в числовых регистрах. но главное не это, а объем памяти - 200 шагов и 63 регистра (которые можно отдать и под шаги программы, что увеличит их до 441), а если докупить модуль расширения, то уже 319 регистров и 1000 шагов (2231, если отдать все регистры под программу). это принципиально новая вычислительная мощность для калькулятора. вон, например, покер:
http://www.hpmuseum.org/software/41/41p
November 24 2007, 23:50:02 UTC 4 years ago
Просто я стою на позиции, что "калькулятору - калькуляторово", поэтому заниматься интеграцией подпрограмм да еще от разных авторов - это какое-то неправильное занятие для рядового пользователя, пусть даже и продвинутого. Авторам прикладных пакетов - да, но они спокойно разберутся в коллизиях при сборке (этакая ручная линковка, которую, несомненно, можно заменить более интеллектуальной автоматической процедурой на полноценном компьютере).
А рядовой просто возьмет машинку в руки, введет/загрузит готовую программу и сделает с ее помощью свое дело.
Судя по фронтальном виду hp-41c с символьной информацией он все-таки не работал (в смысле функций обработки, из программы "Покер", где 5 регистров используются для отрисовки 5 вариантов скрытых карт, это тоже видно), а ввод там был гораздо более убогим, чем, нынешние манипуляции SMS на мобилах. То есть, все-таки, эта фишка использовалась для удобства вывод информации пользователю.
4 years ago
April 11 2009, 12:24:11 UTC 3 years ago
> просто зашкаливает для модели программирования, оставшейся от
> мк-52.
Именно поэтому там предусмотрен другой режим программирования, удобный для написания больших программ. На персоналке, с метками.
> представьте себе, как будет выглядеть использование чужой
> подпрограммы из 1000 шагов, если один из регистров занят другой
> подпрограммой из 500 шагов, да и номера шагов перекрываются
А зачем представлять, словно шаман у костра? Вполне себе разрабатываю на МК-152 программы подобной длины.
Это просто, как copy&paste. Метки решают проблему с нумерацией шагов, а макрокоманды — с распределением регистров.
November 24 2007, 22:45:44 UTC 4 years ago
November 24 2007, 22:50:26 UTC 4 years ago
November 24 2007, 23:09:33 UTC 4 years ago
Может, у кого-то найдется время.
Вообще, по зарубежным ПМК мало русскоязычной литературы, разве что Дьяконов выпускал книжки в советское время, у меня где-то завалялись.
November 25 2007, 00:00:54 UTC 4 years ago
http://arbinada.com/pmk/node/25
Побольше бы таких интересных обзоров... Но у меня совершенно некоммерческие проекты сайтов.
Всегда буду рад видеть вас числе авторов и участников!
Здесь немного по оргвопросам
http://arbinada.com/pmk/node/9
November 25 2007, 00:23:22 UTC 4 years ago
November 26 2007, 23:08:06 UTC 4 years ago
P.P.S. Benchmark: 8 ферзей - итоги
Результат впечатляющий: 1300-кратное превосходство над старыми советскими моделями ПМК и в разы быстрее многих современных зарубежных ПМК.November 26 2007, 23:59:09 UTC 4 years ago
Re: P.P.S. Benchmark: 8 ферзей - итоги
насколько я понял, 8 секунд - это поиск одного варианта. все варианты ищет 58-шаговая программа за 13 секунд, что тоже неплохо.вы выбрали для сравнения строчки с разгоном, еще честнее получается без разгона:
- 90.3 HP-50G UserRPL
- 17.0 FX-9860GS Formula / Structured / Matrix
хотя, с другой стороны:
- 0.243 HP-50G Lua / HPLua 0.4 / Bytecode
(про ассемблеры и кросс-компиляторы я вообще не говорю, потому что это нечестно, но hplua закачивается в калькулятор один раз, а пользовательская программа вводится прямо на калькуляторе).
но дело совсем не в этом. практика 70-х годов показала, что таким методом программирования человек может написать и отладить программу максимум из нескольких сотен строк, да и то не с номерами шагов, а с метками. зачем же тогда десятки тысяч шагов без меток? кто и для чего сможет плодотворно их использовать?
кстати, в программах для casio и hp можно легким движением руки сменить размер доски с 8 на любой другой. сколько усилий это займет на мк-152? а теперь представьте себе, что в программе используется не один вектор, а несколько матриц.
November 27 2007, 09:48:10 UTC 4 years ago
Re: P.P.S. Benchmark: 8 ферзей - итоги
Ну, это мы вернулись к теме "калькулятору-калькуляторово" :)Для чего нужны 10К шагов я не могу сказать. Возможно, у производителя есть драйвера к оборудованию размером в тысячи шагов (в такого рода софте, кстати, названные вами проблемы практически не заметны)
Метки - это не выход, потому что остаются коллизии по используемым регистрам и стеку.
В итоге приходим к ЯВУ (даже неважно, какой) на ПМК, что дискредитирует саму идею ПМК, как устройства для относительно простых расчетов непрофессионалами в ИТ.
November 27 2007, 10:31:50 UTC 4 years ago
Re: P.P.S. Benchmark: 8 ферзей - итоги
Помните?"Во входных языках ПМК с небольшой емкостью памяти шаги программы адресуются числами 00, 01, 02, ..., по которым и выполняется переход к нужному оператору. Они указываются только в операторах условных и безусловных переходов, а метки указываются в программах дважды - как в операторах переходов, так и перед "отмеченными" операторами. Переход по адресам позволяет сократить длину программы, несколько затрудняя ее чтение."
"Производительнось ЭВМ, зависящая от ее технических характеристик, определяет лишь потенциальную возможность решения сложных задач с малыми затратами времени, тогда как реальная производительность ЭВМ связана с качеством программ решения прикладных задач."
"Следует отметить относительную простоту составления программ на алгебраических входных языках, форма записи которых достаточно близка к стандартизованной форме записи алгоритма решения задачи. В связи с этим профессиональные программисты обычно составляют алгоритм решения задачи непосредственно в виде программы на алгоритмическом входном языке и часто отождествляют алгоритм и программу. Простота представления программой алгоритмов решения задач особенно характерна для языка программирования Бейсик (по крайней мере при программировании относительно простых задач), чем и объясняется преимущественное использование этого входного языка для микроЭВМ, предназначенных для широкого круга пользователей, не имеющих специальной подготовки по вычислительным технике и математике. Значительно сложнее представление алгоритмов решения прикладных задач на компактных входных языках. Это связано как с различной формой записи алгоритмов решения задач и программ на компактных входных языках, так и с относительным разнообразием способов отображения операторов алгоритма фрагментами программ на таких входных языках, вызывающих дополнительные затраты времени на выбор оптимального способа отображения операторов алгоритма."
"Значительные потери времени возникают при решении прикладной задачи с помощью нескольких последовательно используемых программ - пакета программ. Если такой пакет состоит из готовых программ, которые хранятся в ВЗУ и не могут быть изменены пользователем, то обычно приходится составлять дополнительную программу для согласования имен переменных и способа ввода исходных данных в готовые программы на алгоритмических языках или для согласования размещения в памяти данных промежуточных результатов. Если пакет состоит из готовых программ, взятых из справочных пособий или библиотеки пользователя (когда они не связаны заранее в пакет), то их также приходится предварительно корректировать, чтобы согласовать результаты выполнения предыдущей программы с исходными данными для следующей программы. Все это связано со значительными дополнительными потерями премени, и следует использовать все возможности решения задачи и средства входного языка, обеспечивающие уменьшение длины программы решения сложной задачи для размещения ее в оперативной памяти."
November 27 2007, 10:33:05 UTC 4 years ago
Re: P.P.S. Benchmark: 8 ферзей - итоги
"Повышение производительности ПМК и расширение емкости ОЗУ привело к повышению предельной сложности решаемых задач и соответствующему увеличению длины прикладных программ. Это ограничивает целесообразность применения печатных библиотечных программ в связи со значительными затратами времени на их ввод с клавиатуры.""Значительно большие возможности повышения производительности руда пользователей связаны с созданием высокопроизводительных ПМК с алгоритмическими входными языками, большим адресным пространством ЦП и развитым комплектом внешних устройств, представляющих миниатюризированные аналоги внешних устройств профессиональных ПЭВМ."
"Основной путь повышения производительности ПМК именно как носимого, а не настольного микрокомпьютера в основном связан с повышением уровня операторов входного языка, обеспечивающих решение достаточно сложных типовых математических задач, и развитием "дружественных" пользователям операционных систем, освободающих от вспомогательных операций. Среди последних с наибольшими затратами времени связаны предварительная запись на бумаге расчетных выражений и их преобразования с последующим составлением программы решения прикладной задачи на входном языке."
"Таким обраом, в ПМК HP-18C и особенно HP-28C реализованы новые для ПМК тенденции обеспечения максимальных удобств пользователю, принципиально отличающийся от традиционного подхода к решению этой задачи, характерного для универсальных ЭВМ других классов, включая и персональные, а также для высокопроизводительных ручных компьютеров, подобных HP-71B. Несомненно, эти тенденции окажут заметное влияние и на особенности ПМК следующих поколений."
"Перспективы развития ПМК в обозримом будущем связаны с основными тенденциями, проявившимися в разработке таких современных ПМК, как HP-71B и HP-28C. Это, с одной стороны, повышение производительности средствами, аналогичными применяемым в универсальных ЭВМ других классов, а с другой - предоставление пользователю максимальных удобств применения ПМК как автономного, удобного и достаточно мощного вычислительного средства."
Почему же вы забыли своего Прометея, погасили огонь и вернулись в пещеру, чтобы копать ее дальше вглубь?
November 27 2007, 10:41:57 UTC 4 years ago
Re: P.P.S. Benchmark: 8 ферзей - итоги
Это не из книжки Дьконова, часом?Сколько стоило машиное время в то время и сколько сейчас?
Какова была доступность компьютеров для персонального пользования?
Калькулятору-калькуляторово.
Если символьный язык ПМК начинает мешать, значит нужно решать задачу на ПК.
Это уже почти закон. Экономический :)
Потому что время написания/отладки программы на бейсике на ПМК и ПК будут всегда в пользу ПК.
А если нет, значит программа была мала, ей вообще не нужен бейсик, она быстро кодируется на символьном языке ПМК.
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago