Arvi the Hacker (Арви Хэкер) ([info]arvi) wrote,
@ 2009-07-13 13:28:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Позвольте представить, МК-161.

Сегодня пришла очередная посылка из Новосибирска. В ней — долгожданный микрокалькулятор «Электроника МК-161». Размер оказался даже меньше, чем я ожидал, распечатывая и разглядывая официальные фотки. Чуть короче советского МК-61, но немного подлиннее и потолще благодаря щедро укрупнённому графическому экрану, наклонённому в сторону владельца. В-общем, в точности моя мужская ладонь — словно снимали мерку.

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

В «медведевском» МК-161 рассмотрена и учтена критика МК-152 сетевым сообществом. Он компактный, двойное питание (аккумуляторы/сеть), удобные клавиши с возможностью использования накладных клавиатур, встроенный 12-битный АЦП и поддержка прерываний (программных и аппаратных). И да, он таки на столе вертится, словно наган в вестернах. :-)

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

Попробуем на новом МК-161 классическую программу, которую наши предки ещё в 1980-е годы разработали для Б3-34:

00.ВП 01.П0 02.1 03.ИП0 04.x 05.FL0 06.03 07.С/П 08.КБП0

Эта программа вычисляет факториал числа n, равный n! = 1·2·3·…·(n-1)·n. Всё работает и в 2009 году! За неуловимое мгновение получим 17! ≈ 3,5568743·1014

Теперь задействуем возможности обновлённой «Электроники» — быстродействие, программную память. Вот моя недавняя программа вычисления факториала больших чисел «в лоб» (без использования аппроксимационной формулы Стирлинга):

  0 1 2 3 4 5 6 7 8 9
000 П 1 Cx П 3 1 ИП 1 1 0 ÷ K [x] П 2
010 F Bx - 1 0 × F x≠0 29 П 0 F O
020 ИП 1 × F L1 24 F L0 20 ПП 72 59h F O
030 ИП 2 F x≠0 83 ИП 3 + П 3 Cx 5 ИП 2 ×
040 П 1 F O ИП 2 B↑ + 1 - × F Bx 5
050 × 4 - × F Bx 2 + × F Bx 4
060 + × F Bx 2 + × ПП 72 F L2 42
070 БП 04 B↑ F lg K [x] П 0 F 10x ÷ ИП 0
080 + В/О F O ИП 3 + ИП 3 4
090 9 ÷ K [x] P x≠0 01 33 П 1 F Bx -
100 4 9 × П 3 F Bx Cx 1 6 F xy
110 ВП 5 9 /-/ F O ИП 1 F xy
120 F O × ИП 1 5 9 × + P ПП
130 00 72 59h F O ИП 3 1 6 F xy F O
140 × P ПП 00 72 С/П P БП 00 00    

Набираем программу с пульта. Впрочем, желающие могут загрузить её из Сети, с сайта [info]arbinada. Кабель для соединения с «персоналкой» прилагается. Запускаем, и уже с ощутимой задержкой получаем 1917! ≈ 1,9252558·105462

Экранная «сеточка» видна лишь при включённой подсветке. Она прозрачна и довольно приятна, напоминая зимние оконные узоры, знакомые всем жителям России. Кнопки нажимаются удобно, причём рабочее «отжатое» положение выключателей позабавило — МК-161 явно мужского рода! Наконец-то пригодилась ранее купленная самобытная Новосибирская «флэшка». Перенос использующихся программ на новый калькулятор прошёл на удивление просто, ведь прошивка умеет скопировать-вставить все файлы из каталога. Сейчас буду проверять всё остальное: быстродействие, сетевые возможности с МК-152 и т.д.

На этот раз я был не первым обладателем ЭКВМ. Первые владельцы МК-161 уже успели в начале июля поделиться своими впечатлениями от новинки:

Несмотря на почтовые перипетии, в паспорте доставленной ЭКВМ красуется гордый №1. Прошивка в машинке новая (версия 1.02 от 24.06.09) — с учётом моего скромного багрепорта. Спасибо Новосибирску и лично Михаилу Борисовичу! На занятиях в наступающем учебном году надо будет уделить больше внимания «Электронике МК-161», благо в моей образовательной Программе упоминание МК-152 уже есть. Доверие надо оправдывать.

Желающие лицезреть в Москве МК-161 воочию (и пощёлкать новенькими кнопочками) приветствуются на Клубном дне в эту субботу, 17:00-20:00. Заодно можете сравнить с более старой настольной «Электроникой МК-152» и почувствовать разницу, которую дала наша общая поддержка проекта.




(Read 39 comments) - (Post a new comment)


[info]arvi
2009-07-20 01:51 pm UTC (link)
Михаил Борисович!

Если из режима калькулятора переключиться в ДОС, а потом опять войти в Калькулятор, то содержимое байтовых регистров (скажем, R5000) будет потеряно. Исключение составляют байтовые регистры, значение которых вводилось с клавиатуры (то есть записанные в энергонезависимую память).

Так работает по крайней мере МК-161 и, на мой взгляд, это ошибка. Если байтовые регистры невозможно сохранить, то пусть они при входе в ДОС (или меню) предварительно копируются в энергонезависимую память (с соответствующей пометкой в РЭ). Сейчас же результаты работы программы пропадают при относительно невинных действиях, без явной команды обнулить регистры.

Также MK.EXE по-странному ведёт себя с именами файлов, в которых встречается несколько точек. При выводе в строку заголовка она обрезает имя файла до первой точки, а не до последней. Такое же укороченное имя может получить файл при записи на диск, скажем, откомпилированной программы.

(Reply to this) (Parent)(Thread)


[info]stepanishchev
2009-07-21 12:02 pm UTC (link)
> Так работает по крайней мере МК-161 и, на мой взгляд, это ошибка.

Так работают обе ЭКВМ и это не ошибка. Потеряно, а точнее восстановлено, будет значение не только байтовых регистров, но и десятичных 0-999. Но сохранить результаты работы программы на диске можно, они будут перезаписаны только при выходе из режима ДОС, а не при входе в него.

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

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

Поэтому, для корректного сохранения данных в программе следует использовать функцию R9047. Кроме того, можно загрузить специальную утилиту в одну из верхних страниц: http://mk.semico.ru/mkpr_53.htm - и запускать её по мере необходимости. Требуемое время можно оценить и по продолжительности работы этой утилиты.

Программа mk.exe по-странному себя ведёт во многих местах, увы. Спасибо за замечание, посмотрим в очередной версии. Но дальнейшее развитие кросс-средств предполагается на базе пакета открытых программ.

(Reply to this) (Parent)(Thread)


[info]arvi
2009-07-27 02:41 am UTC (link)
> Так работают обе ЭКВМ и это не ошибка.

Любопытно, отражена ли эта особенность режима ДОС в РЭ 4.3.1/4.3.5. Потеря всех регистров это нечто, что владельцу хотелось бы предвидеть заранее.

В моём случае значения вводились в регистры с клавиатуры, но (т.к. их было много) с помощью вспомогательной программы КП6 С/П БП 00. Потерять их было неприятной неожиданностью.

(Reply to this) (Parent)


[info]stepanishchev
2009-07-24 05:12 am UTC (link)
> ...по-странному ведёт себя с именами файлов, в которых встречается несколько точек.

Спасибо. Исправлено в версии 1.16, вместе с другими ошибками.

(Reply to this) (Parent)


(Read 39 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…