Прототип швейцарского калькулятора DM42L

У швейцарских клонов скоро пополнение в полку:
//www.SwissMicros.com

Цитата из рассылки:

This is the first prototype of the DM42L based on Free42, see http://thomasokken.com/free42/.
It uses the Intel® Decimal Floating-Point Math Library and uses IEEE 754-2008 quadruple precision decimal floating-point, which consumes 16 bytes per number, and gives 34 decimal digits of precision, with exponents ranging from -6143 to +6144. See https://software.intel.com/en-us/articles/intel-decimal-floating-point-m...

This is the most precise standalone hand-held calculator on earth, second to none! And it uses the powerful and proven RPN logic.

It runs on a single CR2032 battery. The total current consumption of the ARM Cortex-M4 CPU running at 26MHz and its LCD is less than 3mA, but most of the time it's idle consuming only about 130uA.

This calculator will be available at https://www.SwissMicros.com in summer 2016. Hold your breath and stay tuned.

The positions of the keys might change before it's released for sale ...

https://youtu.be/314JMYJEh6k

Undefined

Комментарии

34 десятичных знака означает возможность очень точного цифрового моделирования Солнечной системы «на ладони» — и полётов в ней, на протяжении значительного времени. Конечно, этот потенциал ещё нужно реализовать. Но условия для этого появились.

На DM42L можно будет открывать новые планеты, сравнивая расчётные и наблюдаемые траектории небесных тел. :-)

Да, этот кальк претендует на звание Идеального калька - маленький, питание от одной CR таблетки, сумасшедшая точность

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

На андроиде это давно уже для меня калькулятор №1.

Может и мне, наконец, смартфон завести, чтобы там калькулятор жил? :) Как оказалось в ходе предыдущего неудачного опыта, без необходимости пользования приложениями смартфон превращается в неудобный телефон, требующий ежедневной подзарядки.

Я установил Free42 на Андроид. Каким образом попасть в "настройки", если они существуют? Я хочу такой же горизонтальный skin

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Это скин Tyge_H с http://thomasokken.com/free42/download/Free42AndroidSkins.zip
Устанавливается в настройках More->Skin:Other

А как попасть в настройки приложения?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

По кнопке меню, как почти во всех приложениях для андроида. Обычно это software-кнопка (на экране) , или soft кнопка (под экраном) вроде этой:

В новых Ведроидах (вроде, с 5.0) убрали кнопку Меню, по-умолчанию туда попадаешь при долгом нажатии на кнопку "Последние приложения". Но многие производители идут дальше и кастомизируют это, как у меня в Асус Зенфон 2, пришлось гуглить, чтобы понять, как убрать "screenshot" c долгого нажатия

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Ajaja wrote: Это скин Tyge_H с http://thomasokken.com/free42/download/Free42AndroidSkins.zip
Устанавливается в настройках More->Skin:Other

Установил. Замечательный скин

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Так, по теме - такая высокая точность уже давно реализована в калькуляторе WP-34S
https://sourceforge.net/projects/wp34s/

http://www.thimet.de/CalcCollection/Calculators/WP-34S/Contents.htm
Forensic Result 9.00000000003 (9 + 2.9361e-11)

Если в DM42L действительно реализуют "железный" Free42, то точность будет такая:

DEG
9 SIN
COS
TAN
ATAN
ACOS
ASIN
9 -
PRX
-6.2466E-29 ***

"Судебный результат" на сайте thimet.de приведен для стандартного (одинарного) режима точности WP-34S (для единообразия с другими экспонатами коллекции)
В режиме DoubleOn у него будет аналогичный результат: 9-(6,2465E-29)
Проверить можно в эмуляторах:
https://sourceforge.net/projects/wp34s/files/emulator/
или приложении для iOS:
https://itunes.apple.com/app/wp-34s/id620255094?mt=8

-6.2466E-29 ***

на экране "железного" DM42

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Что мне еще понравилось в нем, так это то , что можно просто брать программы от МК-61/52 и покоммандно вводить в Free42 почти без изменений.
Вот, например, Лунолет-1:

00 { 183-Byte Prgm }
01>LBL "LUN1"  27 RCL "B"     53>LBL 50      79 STO "A"    
02 RCL "D"     28 -           54 ÷           80 RCL "C"    
03 X>=0?       29 ÷           55 STO 08      81 RCL 02     
04 GTO 09      30 RCL ST X    56 RCL 05      82 RCL 00     
05 RCL ST X    31 RCL 08      57 RCL "D"     83 ×          
06 RCL 08      32 ×           58 +           84 -          
07 ÷           33 GTO 90      59 ÷           85 STO "C"    
08 X<>Y        34>LBL 33      60 RCL 06      86 RCL "D"    
09 XEQ 90      35 RCL "D"     61 ×           87 RCL 01     
10>LBL 09      36 X=0?        62 STO 03      88 -          
11 RCL "A"     37 GTO 86      63>LBL 59      89 STO "D"    
12 X=0?        38 RCL 03      64 RCL 04      90 GTO "LUN1" 
13 GTO 43      39 X^2         65 -           91>LBL 86     
14 X>=0?       40 SQRT        66 RCL 02      92 RCL 06     
15 GTO 33      41 RCL 07      67 ×           93>LBL 87     
16 2           42 -           68 RCL "B"     94 RCL 09     
17 ×           43 X>=0?       69 +           95 STOP       
18 RCL ST X    44 GTO 87      70 STO "B"     96 CLX        
19 RCL 04      45>LBL 43      71 LASTX       97>LBL 90     
20 RCL 03      46 RCL "B"     72 +           98 STO 01     
21 -           47 RCL "A"     73 2           99 X<>Y       
22 ×           48 STOP        74 ÷           100 STO 02    
23 RCL "B"     49 STO 01      75 RCL 02      101 X>=0?     
24 X^2         50 STO 02      76 ×           102 GTO 50    
25 +           51 X=0?        77 RCL "A"     103 RCL 03    
26 SQRT        52 GTO 43      78 +           104 GTO 59    
                                             105 .END.     

Не сомневаюсь, что и на DM42L она пойдет.

Кстати, помню когда тестировал, обнаружил что при посадке на этапе обратного расчета (с отрицательными t, чтоб определить скорость посадки) алгоритм Лунолета-1 на мк-61/52 дает очень большую погрешность, там в расчете участвуют большие числа с которыми Free42 легко справляется без потери точности.

Что делает команда RCL ST X ?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Vitasam wrote: Что делает команда RCL ST X ?

Это аналог ↑ из МК-61/52. Enter в HP-42s немного по-другому работает.
Там вся программа это почти покомандный Лунолет-1:

00.ИПД 01.Fx<0 02.09 03.↑ 04.ИП8 05.÷
06.XY 07.ПП 08.90 09.ИПА 10.Fx≠0 11.43
12.Fx<0 13.33 14.2 15.× 16.↑ 17.ИП4 18.ИП3
19.- 20.× 21.ИПВ 22.Fx2 23.+ 24.F√ 25.ИПВ
26.- 27.÷ 28.↑ 29.ИП8 30.× 31.БП 32.90
33.ИПД 34.Fx≠0 35.86 36.ИП3 37.Fx2 38.F√
39.ИП7 40.- 41.Fx<0 42.87 43.ИПВ 44.ИПА
45.С/П 46.П1 47.П2 48.Fx≠0 49.43 50.÷ 51.П8
52.ИП5 53.ИПД 54.+ 55.÷ 56.ИП6 57.× 58.П3
59.ИП4 60.- 61.ИП2 62.× 63.ИПВ 64.+ 65.ПВ
66.FВх 67.+ 68.2 69.÷ 70.ИП2 71.× 72.ИПА
73.+ 74.ПА 75.ИПС 76.ИП2 77.ИП0 78.× 79.-
80.ПС 81.ИПД 82.ИП1 83.- 84.ПД 85.В/О
86.ИП6 87.ИП9 88.С/П 89.Сх 90.П1 91.XY 92.П2
93.Fx<0 94.50 95.ИП3 96.БП 97.59 

    XEQ "LUN1"
y: 0.0000
x: 0.0000

    65 <курсор вниз> 3 R/S
y: 0.4945
x: 999.999.999   <сигнал Г>

     R/S
Divide by 0
x: 0.0000

     F PRGM
53 LBL 50
54 ÷

Что делаю не так?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Все Ок, Перепёлкин отлетал расчётно на DM42

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Ниже в этой теме есть еще код портированого лунолета-2
raw-файл залил сюда:
http://s000.tinyupload.com/index.php?file_id=25150435445093641770
исходные параметры (для теста):
http://s000.tinyupload.com/index.php?file_id=72251502696162255757

До остальных лунолетов у меня руки так и не дошли.

Рекомендую так же обратить внимание на редактор HP42S Code Editor:
http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv021.cgi?read=250166
http://s000.tinyupload.com/index.php?file_id=05234971843808578106
в некоторых случаях может быть удобней набирать или редактировать программы на компьютере

- принципиально не хочу, хватило необходимости в наличии компа рядом с МК161 :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Каллисто исправляет этот недостаток. Новый входной язык специально предназначен для программирования «на борту» МК-161, без компьютера.

Конечно, это не Форт, но жить можно.

Кстати, не удалось попробовать прошить "камень" во второй МК161?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Пока не экспериментировал. Проблем с этим не ожидаю — с МК-152 перепрошивка проходила «на ура». Сейчас в приоритетах дооформить Каллисто rc2 и релизнуть, как версию 1.0

Для начала экспериментов надо разработать какой-нибудь простейший тест на ассемблере 8051. Просто подтвердить, что система «дышит». Может, вывести "Hello, world!" через RS-232, если уж индикатор МЭЛТ всё ещё представляет из себя вселенскую тайну.

Дошёл HP/LE?

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

HP/LE дошел до адресата, спасибо! Теперь жду оказии, чтобы доехал ко мне

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Пожалуйста. Рад, что калькулятор добрался. Вам спасибо за вторую ЭКВМ «для опытов» — её действительно не хватало.

Любая помощь в программировании UART приветствуется. Теоретически Каллисто-2 можно развивать сперва только, как терминал — пока не подоспеют результаты ревёрсинга МЭЛТ/клавиатуры.

Да не за что!

Навскидку нагуглилось: пример UART для 8051/52:
http://www.8052.com/tutser.phtml

и даташит на w77, начиная со страницы 57:
http://pdf.datasheet.live/0ef022c6/winbond.com/W77LE516P-25.pdf

Можно для начала, как в том примере из первой ссылки, посылать одну букву в UART

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

01>LBL "LUN1" 27 RCL "B" 53>LBL 50

не догоняю, что такое 53>LBL 50?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Vitasam wrote:

01>LBL "LUN1" 27 RCL "B" 53>LBL 50

не догоняю, что такое 53>LBL 50?

метка для перехода на нее по GTO

А как тут реализуется пошаговое выполнение? Ввод команды вида "кг ПП сек"?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Прототип DM42:
https://youtu.be/0LK7JotR728

Интересно, сколько стоить будет? На сайте там ни слова про эти модели

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Кое-какая инфа по последнему DM42:

    • Based on ARM STM32.
    • The display has 240 x 400 pixels (ultra-low power LCD with a memory).
    • CPU speed is 24MHz when running on battery (due to limited battery current) and increases to 80MHz when the USB cable is connected.
    • N-Queens test: entirely unscientific timings but it takes about 3s to run on battery power and 1s on USB (для напоминания: оригинальный HP42s: 11-12 минут, МК161: 15 секунд)

    Я очень хочу этот кальк!

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

DM42P выглядит привлекательней DM42L благодаря графическому экрану. Решение снизить частоту и потребление при работе от батарей тоже хорошее. В прикладном плане DM42 лучше МК-161 из-за большой разрядной сетки, которая поможет численному моделированию.

Главные параметры калькулятора, всё же, доверие вычислениям и знакомство с системой команд. Система команд МК-161 интуитивно понятна большому числу людей. А кредит доверия к разработчикам, бездарно растраченный из-за политических кульбитов их представителя, ещё может быть восстановлен публикацией исходного кода прошивки или разработкой любительской прошивки с открытым исходным кодом.

DM42 это продолжение такой же зарубежной традиции, какую для нас начали Б3-34 и МК-61.

Еще, насколько я понял, калькулятор выглядит как USB mass-storage, когда подключен к компу, что позволяет легко копировать файлы программ и данных.
Обновление прошивки тоже через USB.
Фичи, которые сообщество хотело сто лет, в том числе от ЭКВМ.

Вероятность открытия прошивки МК161 и разработки любительской прошивки стремится к нулю, потому что количество владельцев микроскопически мало, а новых не предвидится, так как никто в здравом уме уже не будет платить такие деньги за устаревшее железо.

Я периодически думаю продать свой МК161, к слову.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Документация по Free42: http://thomasokken.com/free42/42s.pdf

К сожалению, она на английском языке, поэтому читается значительно медленней.

Важное преимущество «Электроники МК-161» — документация изначально пишется на нашем родном русском языке, а модель основывается на уже знакомых нам «Электрониках».

В принципе, можно подключить Интеловскую научную библиотеку с 16-байтовыми десятичными числами и к эмулятору МК-161.

Я бы рекомендовал официальное руководство:
www.hp41.net/forum/fileshp41net/manuel-hp42s-us.pdf
www.hp41.net/forum/fileshp41net/hp42s-programming-examples.pdf

Если подключить эту библиотеку к эмулятору МК-161, то он уже не будет эмулятором :)
Кстати, эмулятора МК161 для Андроид не существует?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Vitasam wrote: Если подключить эту библиотеку к эмулятору МК-161, то он уже не будет эмулятором :)
Кстати, эмулятора МК161 для Андроид не существует?

В эмуляторе МК161 нет особого смысла. Огромный банк программ из книг, журналов и просто написанных пользователями предназначен для МК61/52. Во многих программах используются недокументированные возможности и прочая ЕГГОГология, несовместимая с МК161.

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

Serguei_Tarassov][quote=Vitasam wrote:
Поэтому эмулятор МК61 на уровне прошивки, вроде того, что есть в нашем распоряжении, закрывает всю тему расчетов на базе прошлых наработок. Портировать его на андроид вполне реально за несколько недель ненапряжной работы по вечерам. Наверняка уже кто-то сделал что-то подобное, надо только убедиться, что эмуляция полная.

Давно уже портировали
https://play.google.com/store/apps/details?id=com.cax.pmk

Ajaja wrote: Давно уже портировали
https://play.google.com/store/apps/details?id=com.cax.pmk

Очень хорошо. Остается наполнять сайт нужными для людей программами, которые они могли бы использовать на эмуляторе. Ссылок на книги-журналы у нас много, а вот конкретных программ, чтобы "скопировал и запустил" - мало. А ведь это и есть та самая 100% отечественная технология, за которую ратуют многие наши коллеги. Только её нужно продвигать, популяризовывать. Если программа решает какую-то задачу пользователя, то он будет ей пользоваться, даже если она написана 30 лет назад.

Отдельная тема - выпуск в "железе" некого "МК61 Gold". Я надеюсь, что и до этого дойдёт.

Действительно, портировано. Сейчас поставлю.

А насчет выпуска в железе МК61-Gold - да, надежда есть, но медленно все.

Надо швейцарцу намекнуть, что миллионов сто народу купило бы эмулятор МК61 в железе :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Serguei_Tarassov wrote: А ведь это и есть та самая 100% отечественная технология, за которую ратуют многие наши коллеги. Только её нужно продвигать, популяризовывать. Если программа решает какую-то задачу пользователя, то он будет ей пользоваться, даже если она написана 30 лет назад.

«Электроника МК-161» — тоже отечественная разработка.

Уважать мёртвых предков хорошо, уважать ныне живущих соотечественников (со всеми их, кхм, особенностями) гораздо сложнее. Выпущенный швейцарцами МК61-Gold будет куда менее отечественным, чем новосибирский МК-161, собранный в Китае (где всё собирается, включая «американские» айфоны).

Эмулятор МК-161 на Андроиде - вещь относительно бесполезная по той же причине, по которой полезен эмулятор того же HP42s - на 161й неудобно кодить "на борту" из-за отсутствия меток.
На компе совсем другое дело - там эмулятор МК161 это отличная связка для компилятора; иметь же еще и компилятор на Андроиде - это оверкилл.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Vitasam wrote: Эмулятор МК-161 на Андроиде - вещь относительно бесполезная по той же причине, по которой полезен эмулятор того же HP42s - на 161й неудобно кодить "на борту" из-за отсутствия меток.

Уже можно. Релиз Каллисто назначен на лето — там метки и не потребуются, ведь пойдёт структурное программирование «на борту» МК-161 с фортовской возможностью подстраивать язык под задачу.

На Андройде и iOS виртуальной ЭКВМ должно быть достаточно для большинства прикладных задач. Кроме тех, что требуют подключения оборудования, как правильно заметил Сергей. Ну или где прогрессирующая паранойя требует отсутствия многочисленных зарубежных компонент.

Vitasam wrote: На компе совсем другое дело - там эмулятор МК161 это отличная связка для компилятора; иметь же еще и компилятор на Андроиде - это оверкилл.

И вовсе не оверкилл, а эпик вин.

Я бы не отказался от компилятора РЯМК на айфоне. Тем более, что лицензия Apple позволяет выпускать кабель RS-232 под конкретное приложение или же воспользоваться универсальным беспроводным переходником с Bluetooth на RS-232. Можно будет на ходу компилировать нужные приложения и сразу загружать их в родную «железку», без настольного компьютера.

AtH wrote: Уважать мёртвых предков хорошо, уважать ныне живущих соотечественников (со всеми их, кхм, особенностями) гораздо сложнее. Выпущенный швейцарцами МК61-Gold будет куда менее отечественным, чем новосибирский МК-161, собранный в Китае (где всё собирается, включая «американские» айфоны).

И предки не мертвы, а живы во многочисленных эмуляторах и репликах, да и дело совсем в другом.

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

МК161 - это устройство для управления периферией, многочисленным непрофессиональным пользователям оно не нужно ни в "железе", ни в виде эмулятора. В виде эмулятора оно не имеет функций управления периферией и потому не имеет особого смысла и для профессионалов.

Serguei_Tarassov wrote: И предки не мертвы, а живы во многочисленных эмуляторах и репликах, да и дело совсем в другом.

Из этих эмуляторов и реплик более-менее достойным тиражом выпускается только МК-161 и остальные ЭКВМ.

Писать программы для уникальных устройств, которыми может воспользоваться лишь автор, это отдельный жанр.

Serguei_Tarassov wrote:
Весь обширный банк прикладных программ написан для МК61/52. Никто и ничто не мешает продолжать писать короткие полезные программы для эмулятора, которые любой может запустить на своем смартфоне.

Банк программ есть, сейчас идёт этап интеграции. Создавать из этого большого количества надёжных кирпичиков достойные здания.

Пока именно МК-161 это обеспечивает — интеграцию до сотни приложений ПМК, каждое с небольшой функцией, в более мощные, чем простая сумма составных частей.

Serguei_Tarassov wrote: МК161 - это устройство для управления периферией, многочисленным непрофессиональным пользователям оно не нужно ни в "железе", ни в виде эмулятора. В виде эмулятора оно не имеет функций управления периферией и потому не имеет особого смысла и для профессионалов.

Таково всего лишь одно из позиционирований устройства.

МК-161 это устройство, программирование на котором доступно каждому — буквально на ходу. Да, оно может управлять теплицами и лабораторными экспериментами. А может решать школьные или университетские задачки, подсчитывать чек в супермаркете, спелость арбуза.

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

Просто чтоб было видно, насколько похожи языки МК-61/52/54 и HP-42S выкладываю Лунолет-2 в парралельной нотации:

         01>LBL "LUN2"   
00.ИПА   02 RCL "A"   31.С/П   34 STOP      64.ПП    67 XEQ 91        
01.Fx<0  03 X>=0?     32.П1    35 STO 01    65.91                     
02.14    04 GTO 14             36>LBL 33    66.ИПА   68 RCL "A"       
03.2     05 2         33.Fo    37 Rv        67.+     69 +             
04.×     06 ×         34.П2    38 STO 02    68.ПА    70 STO "A"       
05.ПП    07 XEQ 82    35.÷     39 ÷         69.ИПД   71 RCL "D"       
06.82                 36.П8    40 STO 08    70.ИП8   72 RCL 08        
07.Fx2   08 X^2       37.ИП5   41 RCL 05    71.ИП2   73 RCL 02        
08.+     09 +         38.ИПД   42 RCL "D"   72.×     74 ×             
09.F√    10 SQRT      39.+     43 +         73.-     75 -             
10.ИПВ   11 RCL "B"   40.÷     44 ÷         74.ПД    76 STO "D"       
11.-     12 -         41.ИП6   45 RCL 06    75.Fx<0  77 X>=0?         
12.БП    13 GTO 78    42.×     46 ×         76.00    78 GTO "LUN2"    
13.78                 43.П3    47 STO 03    77.ИП8   79 RCL 08        
         14>LBL 14             48>LBL 44             80>LBL 78        
14.Fx=0  15 X!=0?     44.ИПС   49 RCL "C"   78.÷     81 ÷             
15.31    16 GTO 31    45.ИП3   50 RCL 03    79.П2    82 STO 02        
16.0     17 0         46.ИП1   51 RCL 01    80.БП    83 GTO 44        
17.ИП3   18 RCL 03    47.Fsin  52 SIN       81.44    84>LBL 82        
18.ИП7   19 RCL 07    48.×     53 ×         82.ИП4   85 RCL 04        
19.-     20 -         49.ИП2   54 RCL 02    83.ИП3   86 RCL 03        
20.Fx<0  21 X>=0?     50.×     55 ×         84.ИП1   87 RCL 01        
21.26    22 GTO 26    51.ИП0   56 RCL 00    85.Fcos  88 COS           
22.ИПД   23 RCL "D"   52.+     57 +         86.×     89 ×             
23.Fx≠0  24 X=0?      53.П0    58 STO 00    87.-     90 -             
24.30    25 GTO 30    54.ПП    59 XEQ 91    88.×     91 ×             
25.ИП6   26 RCL 06    55.91                 89.ИПВ   92 RCL "B"       
         27>LBL 26    56.-     60 -         90.В/О   93 RTN           
26.ИП9   28 RCL 09    57.ПС    61 STO "C"            94>LBL 91        
27.С/П   29 STOP      58.ИП2   62 RCL 02    91.FВх   95 LASTX         
28.БП    30 GTO 33    59./-/   63 +/-       92.+     96 +             
29.33                 60.ПП    64 XEQ 82    93.2     97 2             
         31>LBL 30    61.82                 94.÷     98 ÷             
30.ИПА   32 RCL "A"   62.+     65 +         95.ИП2   99 RCL 02        
         33>LBL 31    63.ПВ    66 STO "B"   96.×     100 ×            
                                            97.В/О   101 RTN       
                                                     102 END      

Я продолжаю использовать язык МК-61 для своих целей. Он очень удобен для кодирования небольших вычислительных задач. В 2005-м я написал эмулятор МК-61 с расширенной памятью до 12000 шагов программы и 1200 регистров. Для написания таких больших программ пришлось написать среду разработки. Эмулятор оказался крайне удобен при визуальном проектировании программ в свободно распространяемой среде HiASM, где вся математика загружалась как прошивка в микроконтроллер. Я холодно отношусь к МК-161. Так как разработчики не перевели систему команд калькулятора с 8 бит на 16 бит. Другими словами, перевод каждого шага программы МК-61 с 1 байта на 2 байта позволяет обеспечить полную совместимость со старым кодом плюс одношаговые переходы на любой адрес. Некоторые программы Дьяконова в эмуляторе работают без каких-либо переделок с фантастическими размерами матриц, например до 350.

Что касается DM42L. Я установил его эмулятор (Free42) на смартфон под Андроидом несколько дней назад. Впечатлен! Конечно, 42-й после моего HP-50g кажется динозавром, но ощущение, что это вершина линейки к которой принадлежал и МК-61. Калькулятор очень понравился, несмотря на издевательства с многоступенчатыми меню команд и спрятанным алфавитом. На моём 8-ми ядерном смартфоне с 1664 МГц процессором эмулятор 42-го показал феноменальную скорость работы. Кстати, для ускорения программ лучше не классическими циклами пользоваться а использовать условия и "в лоб" изменять содержимое регистров счетчиков цикла вызывая их в стек, изменяя и снова записывая.

Железка, что будет за 100 долларов выпущена летом с именем DM42L будет иметь процессор 26 МГц (!). В смартфоне этот же софт на 1664 МГц у меня. Т.е. в 64 раза медленнее будет. Конечно, быстрее оригинала HP42s с 1 МГц процессором, но это очень медленно! Если бы хотя бы тактовая Прайма в 400 МГц, но 26 МГц, когда в кармане смартфон аналогичного габарита. Не понятно и сколько будет памяти. Я сечас в эмуляторе на смартфоне могу и 9999 регистров памяти выделить по 16 байт каждый, сомневаюсь, что это будет возможно на DM42L.

В итоге я потратил 4000 рублей на различные эмуляторы для андроида (HP: Prime, 15, 12 и др, HP50\49+). В принципе, на смартфоне и планшете теперь весь набор мощных калькуляторов. Самые быстрые эмуляторы это Free42 и HP Prime. Программировать удобнее на Prime (но не на самом калькуляторе, а отдельно в редакторе), а Free42 имеет великолепную точность и с этой точностью быстрее Prime. Эмулятор МК-61 который сделан на основе оригинального микрокода хорош тряхнуть стариной, но медленный даже в турбо-режиме.

KAR, спасибо за обзор.

16-битная память программ это красивое решение и действительно жаль, что в возникшей неожиданно для сообщества «Электронике МК-161» применили не его. Но разработчики ЭКВМ живы, калькуляторы выпускаются и ваша идея может оказаться востребованной.

Более того, присоединяйтесь к нашим исследованиям прошивки МК-161. В «Электронику МК-161» можно записать свою версию расширения МК-61 — включающую ваши наработки. Клавиатура для этого удобна, а экран позволит программировать калькулятор в мнемонике. Такие прошивки пишутся на хорошо документированном ассемблере 8051/52, на котором уже написано много полезных библиотек.

Заводская прошивка «Электроники МК-161», хотя и закрыта, широко доступна и задаёт достойный уровень сцены.

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

Это же происходит из-за большого количества регистров и доступа к ним по косвенной адресации, так? «Электроника МК-161» должна уже сейчас позволять выполнять такой трюк. Вся 1000 десятичных регистров доступна по косвенной адресации.

Да, происходит за счет расширения регистров. Я сейчас посмотрел, что под рукой есть из той наработки и для примера сбросил сам эмулятор от 8 марта 2005 года и исходник ядра эмуляции. Справка в архиве. Ядро разрабатывал еще 1995 году и ставил задачу повышения скорости. В 2004-2005 добавлены были фрагменты на ассемблере для некоторых функций и оформлено как модуль для HiASM. На картинках ядро эмуляции выглядит в HiASM как небольшая микросхема.
Для оценки скорости я написал небольшую программку вычисления факториала через сумму десятичных логарифмов. В 1986 году такая программка на МК-61 вычисляла 7999! (максимально возможное значение целых числе для ПК Искра тех времен) около 4-5 часов. Предлагаемый эмулятор МК-61 выполнил вычисление 100 000 000! (сто миллионов факториал!) за 10,13 сек на процессоре i5-3210M 2.50 ГГц в турборежиме на 3 ГГц.

Код МК-61 довольно прост и позволяет достичь очень больших скоростей эмуляции.
Для сравнения, мои измерения скорости работы различных эмуляторов на этой задаче в количестве операций Lg и + за 1 сек:
1. MK-61.exe версии 1.92 i5-3210M 2.50 ГГц в турборежиме на 3 ГГц - 9 871 668.
2. MK-61.exe версии 1.92 Celeron 900 МГц (EEE-PC900) - 732 000.
3. Free42 (Android 1664 МГц MT6592) - 31 250.
4. HP Prime (эмулятор от HP для Android 1664 МГц MT6592) - 24 079.
5. HP-15c (эмулятор от HP для Android 1664 МГц MT6592) - 7 353.
6. HP-49+ max (Android 1664 МГц MT6592) - 893.
7. HP-50g и эмулятор HP-49+ 1x (Android 1664 МГц MT6592) - 106.
8. МК-61 эмулятор в Турбо (Android 1664 МГц MT6592) - 7,7.
9. МК-61 эмулятор (Android 1664 МГц MT6592) - 0,53.

Архив размером 2.12 Мб доступен в облаке: https://cloud.mail.ru/public/N4sA/23W5FQcDv
Эмулятор сделан полностью в HiASM, который не предназначен для реализации сложных алгоритмов обработки, поэтому в оболочке нет контроля ошибок работы препроцессора метаязыка МК-61. Однако он позволяет довольно вольно писать синтаксис исходной программы используя метки транслировать в популярную запись команд. Генерировать коды калькулятора, выполнять их и следить за стоянием всех регистров. Более того, если вместо программы ввести коды, то они преобразуются в привычный синтаксис при нажатие кнопки сохранить программу в МК-61. Для больших проектов с числом строк кода более 1000-2000 лучше использовать Pro версию, которая не имеет встроенного реактора, ограничивающего длину строк и общий размер теста программы в 64 Кб.

Спасибо за код. Пробежался глазами. Жаль, что вы использовали сопроцессор. Для написания свободной прошивки МК-161 нам понадобится библиотека bcd-плавучки под 8051, любой похожий код мне интересен. Разработаю с нуля, не вопрос. Но интересно ознакомиться с уже испробованными подходами.

Я могу доказать, что расширение системы команд МК-161 эффективней вашего для небольших 8-битных контроллеров, вроде 8051. В то время, как ваш 16-битный поход хорошо себя показывает на эмуляторах — в условиях практически неограниченного ОЗУ и быстродействия. Не знаю, насколько вам интересны мои аргументы, да и вообще эта тема.

Разумеется, я прекрасно понимаю, почему разработчики МК-152/161 выбрали 8-ми битный код. Для реализации на микроконтроллере это было оптимально. Я полностью с вами согласен. Тем более, что они делали устройство для своих задач управления оборудованием. Хотя, для 16-ти битного кода не так уж и много надо ОЗУ по современным меркам.

Сопроцессор в моем эмуляторе использовался только для ускорения на старом поколении машин, как и некоторые процедуры на ассемблере. Их можно легко заменить.

Я жду релиза DM42L. Ожидаемое быстродействие при 26 МГц уже не радует, т.к. сильно будет уступать HP Prime, который в 100-200 раз быстрее HP50g. При такой частоте процессора я ожидаю быстродействия в 25-50 раз медленнее HP Prime и в 4 раза быстрее физического HP-50. Интересно, сколько выделят памяти калькулятору DM42L. Надеюсь, что не менее 32 Кб. Да и желательно, чтоб программы можно было набирать на компьютере и загружать в него. В HP50g я только простейшие программы набирал в 2006-2007 годы. Потом только в редакторе на компьютере и загружал прямо в калькулятор для исполнения.
Интересный был карманный DM42L, как реализация мечты начала-средины 80-х о HP41...
С точки зрения расчетов на DM42L и применения уникальной 32 разрядной точности на практике не вижу для чего. Проводил я исследования алгоритмов для кодирования сверхбольших чисел. Вот там, я рад был любой точности. Для этого использовал профессиональный пакет для Вольврамовской Математики. Там хоть миллион знаков проводи вычисления. (Кстати, результат занимает 650 страниц А4).
Буду ждать лета. Если память не пожалеют и будет возможность с компьютера загружать программы, то возьму DM42L к себе на стол, чтоб настроение поднимал на работе.

Спасибо за честность. Я боялся задеть ваши чувства, ведь понимаю, насколько глубокую любовь вызывают такие проекты. :-)

Ожидаемое быстродействие при 26 МГц уже не радует, т.к. сильно будет уступать HP Prime, который в 100-200 раз быстрее HP50g.

В этом особенности разработки малотиражных калькуляторов. Небольшие компании, выпускающие МК-152 и DM42L, не в состоянии вкладывать в калькуляторы такие деньги и выпускать их такими крупными партиями, как богатые фирмы HP и TI.

Сейчас используются не самые мощные комплектующие и не самые большие тактовые частоты. При другом подходе можно выполнять вычисления во много тысяч раз быстрее, но для большинства вычислений имеющегося достаточно. «Электроника МК-161» выжимает максимум из 64Кб W77LE516P. Где же нужна мощность, предполагается использовать компьютер или эмуляторы на устройствах, выпускаемых массовыми тиражами.

Сопроцессор в моем эмуляторе использовался только для ускорения на старом поколении машин, как и некоторые процедуры на ассемблере. Их можно легко заменить.

Но ведь там нет кода арифметики, тригонометрии и т.д.? Либо ассемблерная вставка с сопроцессором (как это делали вы), либо обращение к стандартным библиотекам (как я делал на своём ВК-6).

Для прошивки же потребуется «плавучка» в коде 8052, в котором никакого FPU пока не придумано.

С точки зрения расчетов на DM42L и применения уникальной 32 разрядной точности на практике не вижу для чего.

Когда мы реализовывали на МК-161 точное моделирование космических полётов, на основе численных методов решения дифуров — а не приближённых, как в «Лунолётах» — там число разрядов мантиссы было очень важно.

Особенно если использовать один и тот же движок как для межпланетных полётов (где расстояния гигантские), так и для посадки (где важен каждый сантиметр). Ошибка тоже бежит из младших разрядов к старшим. Чем больше секунд в полёте, тем больше знаков становятся неверными. Их запас же не мешает.

AtH wrote:
Когда мы реализовывали на МК-161 точное моделирование космических полётов, на основе численных методов решения дифуров — а не приближённых, как в «Лунолётах» — там число разрядов мантиссы было очень важно.

Особенно если использовать один и тот же движок как для межпланетных полётов (где расстояния гигантские), так и для посадки (где важен каждый сантиметр).

Численное решение диф. ур. это приближенное решение, где точность будет зависеть от используемого метода и шага вычислений. Повышение точности возможно как использованием более эффективных методов численного дифференцирования, например Рунге-Кутта n-го порядка, так и уменьшением шага. При уменьшении шага проблемой может быть не столько точность вычисления микрокалькулятора, как его недостаточное быстродействие. Лучше в движке было использовать различные интервалы моделирования. При посадке более точно вычислять, а при межпланетном перелете достаточно брать большие интервалы времени. В любом случае ускорение свободного падения имеет не более 3-х верных знаков... По поводу погрешности при вводе определений я дам комментарий в другой теме посвященной программе вычисления релятивистского времени межзвездного полета.

KAR wrote: Повышение точности возможно как использованием более эффективных методов численного дифференцирования, например Рунге-Кутта n-го порядка, так и уменьшением шага.

Мы использовали более современный и быстрый метод, чем Рунге-Кутта. ЕМНИП, метод Конрада. Там ещё было много этих хитрых коэффициентов.

KAR wrote: При уменьшении шага проблемой может быть не столько точность вычисления микрокалькулятора, как его недостаточное быстродействие.

Быстродействия МК-161 хватает.

KAR wrote: В любом случае ускорение свободного падения имеет не более 3-х верных знаков...

Кому нужно ускорение свободного падения? Есть гравитационная постоянная, известная с точностью 6-8 знаков.

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

KAR wrote: Буду ждать лета. Если память не пожалеют и будет возможность с компьютера загружать программы, то возьму DM42L к себе на стол, чтоб настроение поднимал на работе.

У swissMicro есть serial console для обмена информацией с PC, но, похоже, только для DM-15.

UPDATE: Написал автору про возможность связи DM42L с компом - он сказал, что в планах сделать такую возможность.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Vitasam wrote: У swissMicro есть serial console для обмена информацией с PC, но, похоже, только для DM-15.

UPDATE: Написал автору про возможность связи DM42L с компом - он сказал, что в планах сделать такую возможность.

Хорошая новость. Спасибо. На 42-м набирать программу без компьютера просто мученье.

Не за что! Я, может, и сам решусь на покупку, чтобы тоже радовало глаз :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Прайм якобы быстрее 50g, а бенчмарк до сих пор за 50g и Прайм далеко позади. Т.к. на Прайм никогда не откроют SDK, считайте он всегда будет плестись за "старичком" 50g :-)

Vitasam wrote: Если подключить эту библиотеку к эмулятору МК-161, то он уже не будет эмулятором :)

Ну встроили же эту библиотеку во Free42 — приложение, к которому тут выше рекомендовали родную фирменную документацию HP-42S. Можно также сделать с МК-161. Приложение будет совместимо, но точность в разы выше.

Vitasam wrote: Кстати, эмулятора МК161 для Андроид не существует?

Пока не существует.

Я написал vk6 на достаточно переносимом Си, но пока никого не нашёл, кто бы к нему присобачил хоть какую-то мордочку. Хотя готов в этом помогать со стороны «движка» (модели).

Если такое вдруг заработает, vk6 можно переключить на Интеловскую BCD-библиотеку. Заодно некоторые проблемы, вызванные двоичной арифметикой clib, решатся.

На гиктаймс статья про точность расчетов в НАСА.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Использовал в своих модулях для Orbiter-a библиотеку НАСА SPICE - там действительно обычный double везде.

У нас есть статья про точность маневров "Союз-Аполлон". До десятого знака хватает.

Это же 10 точных знаков конечного результата. Промежуточные переменные обычно имеют как минимум два лишних знака — точность результата должна зависеть от точности исходных данных, а не погрешности калькулятора.

К тому же НАСА летает в реальном космосе. Где сложно, например, заправить корабль топливом с точностью 8 десятичных знаков. Где корабль и небесные тела взаимодействуют друг с другом по законам физики напрямую, без вычислительного «движка». Недостаток точности НАСА компенсирует обратной связью — корректирующими манёврами, как в тексте по ссылке.

Путешествия в цифровой модели Вселенной это совершенно другая тема. Особенно если желательно, чтобы наша цифровая модель не отклонялась от той Солнечной системы, которую мы имеем счастье наблюдать.

Когда вычисления происходят по цепочке, погрешность вычислений накапливается, а коррекция (без сравнения модели с наблюдаемой Вселенной) невозможна. Миллион шагов может привести к потере шести десятичных знаков.

"Миллион шагов может привести к потере шести десятичных знаков."
При правильно выбранной методики расчета погрешность должна иметь знакопеременный характер, а не имеет постоянную составляющую на каждом шаге. Потенциально, через миллион шагов расширяется область погрешности, но попадание результата в граничные условия с максимальной погрешностью крайне маловероятное событие! Для того и делается много шагов чтоб точнее получить дискретную аппроксимацию реального процесса. А то с таким подходом вообще непонятно, зачем в FPU существует 32-х битный SINGLE с 23-х разрядной мантисой. Доля секунды и погрешность на все разряды. :)

Согласен, здесь нужно указывать используемый алгоритм — что подразумевается под «шагами».

Есть алгоритмы, где каждый шаг даёт, например, новую цифру результата. Там «доля секунды» — и вместо погрешности, все цифры результата точные.

В данном случае я подразумевал точное пошаговое моделирование Солнечной системы на основе закона всемирного тяготения — в том числе для проверки (и автоматической разработки) эмпирических формул, а также выявления расхождений с наблюдаемыми данными.

Такой численный эксперимент требует хорошей плавучки, а исследование расхождений с наблюдениями может послужить открытию новых небесных тел. Если в список объектов включить космический корабль и орбитальные станции, универсальную «цифровую Сс» можно использовать для научно-фантастических расчётов. Придётся, конечно, разработать игровую модель посещения орбитальных станций и корректировки орбит.

Кстати, ещё интересна задача по реальному моделированию «Посадки на Луну» — чтобы в памяти игрового ПМК хранить рельеф Луны с точностью 10 сантиметров. Ну или хотя бы 1 метр, для первой попытки.

Полная карта Луны не обязательно должна полностью храниться в ОЗУ. В оперативную память с внешнего диска может подгружаться лишь небольшой кусочек карты, площадь которого зависит от горизонтальной скорости корабля. При необходимости ландшафт достраивается игрой до нужной точности, но на основе реального глобуса Луны.

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

Рельеф - не главное. Гравитационное поле Луны такое же неоднородное как ее форма и рельеф, у нее даже центр тяжести смещен. На самом деле, проблематично сделать даже один оборот на низкой орбите вокруг Луны без коррекций орбиты или сильной потери/набора высоты, а несколько оборотов на LLO - гарантированное эффектное "прилунение".

Рельеф важен для посадки. Конечно, в первых версиях можно по-прежнему считать корабль точкой и отцифровать Луну с точностью 100 метров. Гравитационные карты Луны, Земли тоже должны быть.

"У нас есть статья про точность маневров "Союз-Аполлон". До десятого знака хватает."
Да хватает, и это заявленная разрядность калькулятора. Вопрос только с какой точностью вводились данные для стыковки. То что временная составляющая была не с точностью наносекунд это ясно из статьи, так как интерфейсом ввода-вывода у калькулятора был человек, который работал медленно и точность по времени могла составлять несколько минут. Поэтому ни о каких 10 знаках точности там речи и быть не могло. Я думаю, что точности в 5-6 знаков им было бы достаточно. Логарифмическая линейка давала 3 знака и проектировали инженеры десятилетиями с такой точностью. На интернете пишут: "Логарифмическая линейка "Pickett" полетела на Луну вместе с космонавтами, а линейка от "K&E" сделала возможным создание атомной бомбы. "

This calculator will be available at https://www.SwissMicros.com in summer 2016

Похоже, задерживается

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

«both hardware and software development takes longer than expected. Change 'this summer' to 'this year' and keep your fingers crossed.»

«Разработка и железа, и программы занимают дольше, чем ожидалось. Замените "это лето" на "этот год" и скрестите пальцы.»

Да, похоже на "а кому сейчас легко?"

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

And it uses the powerful and proven RPN logic. It runs on a single CR2032 battery. The total current consumption of the ARM Cortex-M4 CPU running at 26MHz and its LCD is less than 3mA
При ёмкости батарейки CR2032 210мА'ч это 70 часов непрерывной работы, почти трое суток :)

маловато :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Vitasam wrote: маловато :)

Нормально, имхо. Это в режиме счёта по программе. В режиме ожидания можно на один-два порядка потребление снизить.