nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Sep 2022 13:33



Reply to topic  [ 13 posts ] 
Американский программируемый калькулятор HP-12C 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Оказывается тут в магазинах до сих пор продаётся один из старейших американских микрокалькуляторов 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 (про программирование во второй части документа)

_________________
:eugeek: https://twitter.com/Shaos1973


25 Nov 2013 22:41
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Калькулятор финансовый (разрешён на финансовых экзаменах), но основная его фишка в том, что он ПРОГРАММИРУЕМЫЙ в самом советском смысле слова - по типу наших МК и БЗ, т.е. программа это последовательность нажатий кнопок плюс несколько команд условного и безусловного ветвления - всего возможно 100 шагов...

Чем-то напоминает запись макроса в Ворде...

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

Image

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


PS. Кстати, приценился на Ебее - от 29 до 60 фунтов идёт. Около 8 фунтов - пересылка Королевской Почтой.
Но боюсь, Почта России - все заслуги КП похерит...
:(

_________________
iLavr


26 Nov 2013 10:05
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Lavr wrote:
Чем-то напоминает запись макроса в Ворде...

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

Кстати про чуть более раннюю версию этого микрокалькулятора HP-11C (а также про более продвинутую HP-15) было написано в советской книжке Справочник по расчетам на микрокалькуляторах, автор Дьяконов В.П. :o
Quote:
Новое издание справочника является наиболее полным практическим руководством по научным, общетехническим и инженерным расчетам на электронных микрокалькуляторах. Содержит описание современных отечественных и зарубежных микрокалькуляторов, языков и основ их программирования. В справочник включено свыше 650 прикладных программ, причем более 500 из них дано для массовых отечественных микрокалькуляторов серии «Электроника» (Б3-34, МК-52, МК-54, МК-56 и МК-61). Программы обеспечивают реализацию важнейших численных методов, вычисление широко распространенных специальных функций и решение многих практических задач. Расширено описание алгоритмов и приемов проведения вычислений (в том числе и без ввода программ). Даны рекомендации по переводу программ. Первое издание вышло в 1985 г.

Она у меня в России осталась, но скоро мне её перешлют ;)

_________________
:eugeek: https://twitter.com/Shaos1973


04 Feb 2014 17:27
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post 
Книжку Дьяконова кстати родители таки прислали - и после внимательно просмотра, я понял, что 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 ничего подобного нету...

_________________
:eugeek: https://twitter.com/Shaos1973


21 Dec 2014 21:19
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post 
Интересные особенности программирования 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 ;)

_________________
:eugeek: https://twitter.com/Shaos1973


21 Dec 2014 22:41
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post 
А вот кстати люди накопали, как HP-12C внутри представляет свои команды:

https://www.brouhaha.com/~eric/hpcalc/hp12c/12c_hex_table.html

Действительно всё в один байт влазит :)

_________________
:eugeek: https://twitter.com/Shaos1973


22 Dec 2014 01:53
Profile WWW
Doomed

Joined: 27 Jan 2010 04:45
Posts: 434
Location: 83.149.9.42
Reply with quote
Post 
:rotate: HP за сотню - ОК, наш МК за ту ж сотню (даже 88 по текущему курсу) - кашмар-кашмар!


22 Dec 2014 05:17
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post 
HP таки меньше сотни :roll:

_________________
:eugeek: https://twitter.com/Shaos1973


22 Dec 2014 07:40
Profile WWW
Doomed

Joined: 27 Jan 2010 04:45
Posts: 434
Location: 83.149.9.42
Reply with quote
Post 
Почти сотня это $99.99 ? ;-)


22 Dec 2014 08:12
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post 
antsnark wrote:
Почти сотня это $99.99 ? ;-)


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

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

Quote:
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/hp15c/tennant83.html

_________________
:eugeek: https://twitter.com/Shaos1973


22 Dec 2014 10:33
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post Re:
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

Attachment:
hp12c-1.jpg
hp12c-1.jpg [ 54.48 KiB | Viewed 831 times ]


Attachment:
hp12c-2.jpg
hp12c-2.jpg [ 83.17 KiB | Viewed 831 times ]


Attachment:
hp12c-3.jpg
hp12c-3.jpg [ 122.89 KiB | Viewed 831 times ]


P.S. Между тем hp12c до сих пор продаётся в обычных магазинах около-офисных вещей (ссылка упомянутая чуть выше в 2014 году до сих пор рабочая) - правда ценник теперь $49.99:
https://www.staples.com/HP-12c-Programmable-Financial-Calculator/product_150011

_________________
:eugeek: https://twitter.com/Shaos1973


13 Aug 2022 22:37
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Post Re:
Shaos wrote:
В 2003 году вышел "HP-12C Platinum" вроде как с ARM-ом внутри, где разрешается вводить выражения по человечески, а не по польски - со скобками, а также допускается 399 шагов программы вместо 99 и при вводе программы адреса показываются как трёхразрядные десятичные числа, а не двухразрядные как в оригинальном HP-12C и они оба до сих пор продаются (мой не платинум). Также у платинума есть более дешёвый клон Victor V12 ;)

Для разнообразия взял и "платинум" до кучи:

Attachment:
HP12C.jpg
HP12C.jpg [ 160.48 KiB | Viewed 700 times ]

Он оснащён более быстрым процессором и у него появился режим алгоритмического ввода ALG (и также можно вернутся обратно в RPN), появилась возможность ввода скобок, новые функции n! и x^2.
Как память расширяется я пока не понял т.к. по G MEM оно всё также показывает доступными 8 шагов программы и 20 регистров как и у оригинального HP-12C (там надо специальную команду делать, которая превращает ненужные регистры в шаги программы - один регистр даёт 7 шагов).

_________________
:eugeek: https://twitter.com/Shaos1973


18 Aug 2022 11:55
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20330
Location: Silicon Valley
Reply with quote
Вот тут есть интересные факты о "платинуме": http://www.hpcc.org/datafile/V22N3/platinum.pdf

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

_________________
:eugeek: https://twitter.com/Shaos1973


19 Aug 2022 11:57
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 13 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.