Американский программируемый калькулятор HP-12C

Компьютеры прошлого, не попавшие в другие разделы

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Американский программируемый калькулятор HP-12C

Post by Shaos »

Оказывается тут в магазинах до сих пор продаётся один из старейших американских микрокалькуляторов HP-12C, который впервые появился аж в 1981 году! :o

Я его себе купил, заплатив почти сотню баксов:

Image

Калькулятор финансовый (разрешён на финансовых экзаменах), но основная его фишка в том, что он ПРОГРАММИРУЕМЫЙ в самом советском смысле слова - по типу наших МК и БЗ, т.е. программа это последовательность нажатий кнопок плюс несколько команд условного и безусловного ветвления - всего возможно 100 шагов...

P.S. Вот про него на сайте производителя:
http://www8.hp.com/us/en/hp-information ... itle_r0004
http://shopping.hp.com/en_US/home-offic ... Calculator
http://h10032.www1.hp.com/ctg/Manual/c00363319.pdf (про программирование во второй части документа)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Американский программируемый калькулятор HP-12C

Post by Lavr »

Shaos wrote:Калькулятор финансовый (разрешён на финансовых экзаменах), но основная его фишка в том, что он ПРОГРАММИРУЕМЫЙ в самом советском смысле слова - по типу наших МК и БЗ, т.е. программа это последовательность нажатий кнопок плюс несколько команд условного и безусловного ветвления - всего возможно 100 шагов...
Чем-то напоминает запись макроса в Ворде...

Из всех твоих приобретений мне почему-то нравится вот это:

Image

Машинка весьма интересная: http://ru.wikipedia.org/wiki/Cambridge_Z88


PS. Кстати, приценился на Ебее - от 29 до 60 фунтов идёт. Около 8 фунтов - пересылка Королевской Почтой.
Но боюсь, Почта России - все заслуги КП похерит...
:(
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Американский программируемый калькулятор HP-12C

Post by Shaos »

Lavr wrote:Чем-то напоминает запись макроса в Ворде...
Ну по идее советские программируемые микрокалькуляторы работали абсолютно точно также :)

Кстати про чуть более раннюю версию этого микрокалькулятора HP-11C (а также про более продвинутую HP-15) было написано в советской книжке Справочник по расчетам на микрокалькуляторах, автор Дьяконов В.П. :o
Новое издание справочника является наиболее полным практическим руководством по научным, общетехническим и инженерным расчетам на электронных микрокалькуляторах. Содержит описание современных отечественных и зарубежных микрокалькуляторов, языков и основ их программирования. В справочник включено свыше 650 прикладных программ, причем более 500 из них дано для массовых отечественных микрокалькуляторов серии «Электроника» (Б3-34, МК-52, МК-54, МК-56 и МК-61). Программы обеспечивают реализацию важнейших численных методов, вычисление широко распространенных специальных функций и решение многих практических задач. Расширено описание алгоритмов и приемов проведения вычислений (в том числе и без ввода программ). Даны рекомендации по переводу программ. Первое издание вышло в 1985 г.
Она у меня в России осталась, но скоро мне её перешлют ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Книжку Дьяконова кстати родители таки прислали - и после внимательно просмотра, я понял, что HP-11С был чуток попродвинутее в смысле программируемости, т.к. в HP-12C добавили кучу финансовых расчётов, убрали тригонометрию и другую полезную инженерную математику, а также сократили до минимума программистские возможности (выкинули подпрограммы, сделали меньше условий ветвления и т.д.). Но тем не менее - это не отменяет того факта, что микрокалькулятор этот до сих пор продаётся и он программируемый! :roll:

P.S. Вот сравните:

Image Image

Слева (у HP-11C) есть GSB (вызов подпрограммы), RTN (возврат из подпрограммы) и GTO (goto), а справа (у HP-12C) только GTO и условий ветвления только два осталось из восьми: x<=y и x=0

P.P.S. У HP-11C переход на подпрограмму шёл не по адресу, а по метке (команда LBL) и ещё была возможность установить/сбросить пару флагов (SF/CF) и затем делать условное ветвление по флагу командой F? (у HP-15C количество флагов увеличилось до 10), также была возможность делать косвенные переходы - в HP-12C ничего подобного нету...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Интересные особенности программирования HP-12C - программа сохраняется при выключении устройства, как собственно и регистры (которых 20), но часть памяти регистров может быть отведена под программу. Переход на адрес 00 означает остановку программы, поэтому туда никакую команду записать невозможно, а GTO 00 понимается как остановка программы. По-умолчанию, когда имеется 20 регистров, программе отведено только 8 ячеек - если воодить программу далее, то последние регистры будут превращаться в очередные 7 ячеек памяти программ - таким образом при максимально-возможных 99 ячейках программы, количество доступных регистров уменьшится до 7 (99-8=91/7=13 регистров скушаются). Также важно помнить, что часть регистров замапплены на разные финансовые и статистические функции...

Команда f P/R переключает между режимами Program (ввод программы) и Run (выполнения). SST и BST шагают между ячейками программы вперёд и назад. Одномоментно в режиме ввода программ на экране всегда показывается только одна ячейка (адрес слева от 00 до 99), в которой могут сидеть от 1 до 3 кнопконажатий (но всё равно код представляется одним байтом, судя по всему). Кнопконажатие кодируется двухразрядным десятичным числом, где цифра из десятков обозначает номер строки кнопки на лице калькулятора, а цифра из единиц - номер колонки кнопки на лице калькулятора - например 26 задаёт кнопку EEX (ввод степени десятки) - исключение сделано для кнопки ON (запрограммировать её невозможно - если её нажать в режиме ввода программ, то калькулятор просто выключится) и чисел - цифры от 0 до 1 так и показываются - 0,1,2,3,4,5,6,7,8,9 (с пробелом вместо цифры десятков). Команды задаваемые через кнопки f и g представляются двумя двухразрядными числами, например g e^x будет отображено в режиме ввода программы как 42 (код кнопки g) и 22 (код кнопки 1/x и e^x). Более сложные вещи, например STO + 1 (прибавить число на экране к регистру 1 и сохранить результат в регистре 1) будут отображены как три двухразрядных числа, занимающих одну программную ячейку (в данном случае 44,40 1), правда это работает только с регистрами от 0 до 4. Переход также будет выглядеть как 3 числа - 43,33 99 будет обозначать GTO 99).

P.S. В 2003 году вышел "HP-12C Platinum" вроде как с ARM-ом внутри, где разрешается вводить выражения по человечески, а не по польски - со скобками, а также допускается 399 шагов программы вместо 99 и при вводе программы адреса показываются как трёхразрядные десятичные числа, а не двухразрядные как в оригинальном HP-12C и они оба до сих пор продаются (мой не платинум). Также у платинума есть более дешёвый клон Victor V12 ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

А вот кстати люди накопали, как HP-12C внутри представляет свои команды:

https://www.brouhaha.com/~eric/hpcalc/h ... table.html

Действительно всё в один байт влазит :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
antsnark
Doomed
Posts: 434
Joined: 27 Jan 2010 03:45
Location: 83.149.9.42

Post by antsnark »

:rotate: HP за сотню - ОК, наш МК за ту ж сотню (даже 88 по текущему курсу) - кашмар-кашмар!
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HP таки меньше сотни :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
antsnark
Doomed
Posts: 434
Joined: 27 Jan 2010 03:45
Location: 83.149.9.42

Post by antsnark »

Почти сотня это $99.99 ? ;-)
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

antsnark wrote:Почти сотня это $99.99 ? ;-)
Не - $69.99 стоит официально HP-12C, но мне надо было срочно и я покупал в соседнем магазине офисных принадлежностей, где он свою накрутку ещё добавляет - $79.99 плюс около 8% налог с продаж - получается $86 с хвостиком...

P.S. О - википедия пишет, что HP в 2011 перерелизнули HP-15C (про него у Дьяконова тоже было) по цене $99.99 - $179.99 :o
HP-15C Limited Edition

The HP-15C Limited Edition is a reproduction of the 15C based on the modern ARM powered 12C hardware, released at the same time as the 30th Anniversary Edition HP-12C. This model is powered by 2 CR2032 batteries, and can easily be differentiated from original production run (1982–89) 15Cs by the "Limited Edition" script below the HP 15C logo, and the black text on brushed metal back label, as opposed to the white text on black of the original.
Но по тому, что их щас нигде нет (а на ебее они лежат по ценам за 300-400), я делаю вывод, что Edition был очень сильно Limited...

P.P.S. На самом деле HP-15C архитектурно был не столь гладок - там они ввели 2-х байтовые инструкции и всё испортили:

https://www.brouhaha.com/~eric/hpcalc/h ... ant83.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re:

Post by Shaos »

Shaos wrote:Интересные особенности программирования HP-12C - программа сохраняется при выключении устройства, как собственно и регистры (которых 20), но часть памяти регистров может быть отведена под программу. Переход на адрес 00 означает остановку программы, поэтому туда никакую команду записать невозможно, а GTO 00 понимается как остановка программы. По-умолчанию, когда имеется 20 регистров, программе отведено только 8 ячеек - если воодить программу далее, то последние регистры будут превращаться в очередные 7 ячеек памяти программ - таким образом при максимально-возможных 99 ячейках программы, количество доступных регистров уменьшится до 7 (99-8=91/7=13 регистров скушаются). Также важно помнить, что часть регистров замапплены на разные финансовые и статистические функции...

Команда f P/R переключает между режимами Program (ввод программы) и Run (выполнения). SST и BST шагают между ячейками программы вперёд и назад. Одномоментно в режиме ввода программ на экране всегда показывается только одна ячейка (адрес слева от 00 до 99), в которой могут сидеть от 1 до 3 кнопконажатий (но всё равно код представляется одним байтом, судя по всему). Кнопконажатие кодируется двухразрядным десятичным числом, где цифра из десятков обозначает номер строки кнопки на лице калькулятора, а цифра из единиц - номер колонки кнопки на лице калькулятора - например 26 задаёт кнопку EEX (ввод степени десятки) - исключение сделано для кнопки ON (запрограммировать её невозможно - если её нажать в режиме ввода программ, то калькулятор просто выключится) и чисел - цифры от 0 до 1 так и показываются - 0,1,2,3,4,5,6,7,8,9 (с пробелом вместо цифры десятков). Команды задаваемые через кнопки f и g представляются двумя двухразрядными числами, например g e^x будет отображено в режиме ввода программы как 42 (код кнопки g) и 22 (код кнопки 1/x и e^x). Более сложные вещи, например STO + 1 (прибавить число на экране к регистру 1 и сохранить результат в регистре 1) будут отображены как три двухразрядных числа, занимающих одну программную ячейку (в данном случае 44,40 1), правда это работает только с регистрами от 0 до 4. Переход также будет выглядеть как 3 числа - 43,33 99 будет обозначать GTO 99).
Будучи неделю назад на винтажном фестивале случилось мне купить в книжной ретро-лавке за 4 бакса руководство пользователя HP-12C, где даже есть раздел про программирование :o
hp12c-1.jpg
hp12c-2.jpg
hp12c-3.jpg
P.S. Между тем hp12c до сих пор продаётся в обычных магазинах около-офисных вещей (ссылка упомянутая чуть выше в 2014 году до сих пор рабочая) - правда ценник теперь $49.99:
https://www.staples.com/HP-12c-Programmable-Financial-Calculator/product_150011
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re:

Post by Shaos »

Shaos wrote:В 2003 году вышел "HP-12C Platinum" вроде как с ARM-ом внутри, где разрешается вводить выражения по человечески, а не по польски - со скобками, а также допускается 399 шагов программы вместо 99 и при вводе программы адреса показываются как трёхразрядные десятичные числа, а не двухразрядные как в оригинальном HP-12C и они оба до сих пор продаются (мой не платинум). Также у платинума есть более дешёвый клон Victor V12 ;)
Для разнообразия взял и "платинум" до кучи:
HP12C.jpg
Он оснащён более быстрым процессором и у него появился режим алгоритмического ввода ALG (и также можно вернутся обратно в RPN), появилась возможность ввода скобок, новые функции n! и x^2.
Как память расширяется я пока не понял т.к. по G MEM оно всё также показывает доступными 8 шагов программы и 20 регистров как и у оригинального HP-12C (там надо специальную команду делать, которая превращает ненужные регистры в шаги программы - один регистр даёт 7 шагов).
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Американский программируемый калькулятор HP-12C

Post by Shaos »

Вот тут есть интересные факты о "платинуме": http://www.hpcc.org/datafile/V22N3/platinum.pdf

Например там написано, что исходники оригинального HP12C были "утеряны" и при разработке платинума люди по сути переписывали всё с нуля - в итоге сильное отличие в точности (разница до 0.44%) и скорости (не смотря на более быстрый процессор один из алгоритмов стал сходится в 35 раз медленнее), ну и плюс в первых версиях была куча багов :o
Я тут за главного - если что шлите мыло на me собака shaos точка net