Нужна ли ещё какая-либо информация/примеры по программированию HP 50g на встроенных языках программирования?

Total votes: 0
Taxonomy upgrade extras: 

Комментарии

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

Я сейчас несколько отошел от темы в связи с переездом. На хобби практически нет времени.

Мое мнение таково, что интереснее всего заметки по UserRPL с примерами живых программ - это для обычных пользователей. Во вторую очередь интересен ассемблер Сатурна - для продвинутых. Место SysRPL мне не вполне понятно, так как обычный пользователь им не заинтересуется, а для критичных по скорости программ и хакерской сцены сатурн выглядит привлекательнее при практически одинаковом с SysRPL низком уровне программирования.

По UserRPL примеры добавить легко. Была задумка двигаться в направлении, задаваемом руководством пользователя, перевод которого я однажды начинал выкладывать здесь, но уже без жёсткой привязки к нему (не "дословный" перевод).

С Сатурном дела обстоят сложнее. ПОЧТИ всё, что было в книге Gilbert Fernandes Introduction to Saturn Assembly Language, разобрал. С графикой пока не разобрался. То, что работает на HP 48, на HP 50g не желает работать (где-то встречался с мнением о "недоделанности" HP 50g в сравнении с предыдущими моделями линейки, теперь понимаю, что дело вероятно в эмуляции Сатурна). Программка из книги Peter Geelhoed HP49 Assambly Language Examples для отображения картинки в градациях серого (стр. 23) на HP 50g не работает (не удаётся устранить мерцание экрана), т.к. не срабатывает синхронизация вывода с обновлениями экрана: у HP 48 64 строки экрана, а у HP 50g их 80, однако регистр LINECOUNT на 80 строк не расчитан, т.к. два старших бита (DA19 и M32) второго ниббла этого регистра всё также заняты (этот регистр просто не может хранить значения больше 63). Работа с памятью (портами) изложена недостаточно подробно/прозрачно, т.е. я вряд ли смогу разобраться с материалом на таком уровне, чтобы суметь объяснить его любому другому пользователю. Для продолжения работы по Сатурну требуются дополнительные источники информации, ориентированные, главным образом, на HP 49g+ и HP 50g (экстраполяция материалов по HP 48 на HP 50g неимоверно выматывает, да и не всё работает на HP 50g). Если ограничиться тем, что я уже привёл/перевёл, то этих материалов для скоростного создания/обработки некоторых объектов вполне достаточно (остаётся лишь немного доразбираться с графикой [нужна дополнительная информация]). Для чего-либо более продвинутого потребуется изучить дополнительные источники информации. Есть конечно и самодостаточный вариант получения информации - декомпиляция встроенных в ROM команд/объектов, но этот вариант только для упёртых маньяков-программистов (как только у меня опять крыша поедет, можно будет этим заняться :)

После ознакомления с Сатурном стал иначе смотреть на SysRPL, который очень гибок и в котором много удобных команд (всё таки на ассемлере время разработки конечного продукта здорово возрастает). Считаю, что вместо чистого ассемблера оптимальным вариантом некоторой абстрактной программы на HP 50g будет композит из SysRPL и Saturn ASM. Оптимальный вариант подачи материала (содержание, последовательность, объём, глубина и т.п.) неплохо бы продумать сообща. На изложение/описание таких материалов требуется значительно больше времени, чем раньше. В одиночку такое за приемлемые сроки (в прежнем темпе) не потяну. Очень надеялся на то, что хотя бы несколько пользователей проголосуют за пункт "Автор! Больше ничего не пиши". HP 50g, конечно, конфетка, но если помощников у меня в обозримом будущем не появится, то займусь другими сладостями :-) или буду выкладывать материалы, но с меньшим темпом. По Сатурну, например, предполагал выкладывать материалы не менее месяца, а вышло заметно быстрее.

P.S. Очень хотелось бы опираться на результаты этого опроса при планировании того, что писать дальше ...

А вот было бы интересно взять небольшую задачку с расчетами, промежуточным хранением данных и вводом, графическим выводом и реализовать ее на UserRPL, SysRPL и сатурне. Сравнить по критериям:
- запись программ (листинги) - что нагляднее
- простота/возможность программирования на самом устройстве
- примерная скорость написания
- быстродействие программ
- что проще распространять в готовом виде (развертывание)
- наверняка что-то забыл упомянуть

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

Можно попробовать, но без уточнения следующих пунктов сложно представить какую-либо конкретную реализацию этого интересного задания:

1) Какие именно расчёты Вы имеете в виду? Сатурн - весьма низкий уровень, расчёты на котором ограничиваются лишь четырьмя арифметическими операциями (стабильных/поддерживаемых точек входа для функций SIN, COS и т.д. не обнаружил [раньше что-то было]); Расчёты будут ограничены этим набором действий, если конечно оставаться в рамках "небольшой задачи"; Для реализации элементарных функций (SIN, COS и т.д.) потребуется привлечение численных методов/алгоритмов, что на UserRPL будет выглядеть притянутым за уши (там уже есть необходимые элементарные функции);

2) О каком месте для хранения промежуточных данных идёт речь? При работе программ на UserRPL или SysRPL промежуточные данные обычно хранятся в стеке или в переменных. В программах на Сатурне основным хранилищем (с самым быстрым доступом) данных являются регистры процессора (можно и в памяти хранить некоторые данные, но это ведёт к замедлению работы программы);

3) Какой способ ввода данных? В UserRPL или SysRPL можно использовать формы ввода, а на Сатурне создание формы ввода является весьма нетривиальной задачей; Остаётся один общий вариант ввода данных через стек;

4) Что понимать под графическим выводом? Если имеется в виду вывод изображения, то как это сделать на Сатурне пока не знаю (раньше уже писал об этом); Если же имеется в виду вывод текста на экран или в стек, то с этим проще.

Может быть, Вы имели в виду какую-то конкретную "небольшую задачку"?

Сатурн - весьма низкий уровень, расчёты на котором ограничиваются лишь четырьмя арифметическими операциями (стабильных/поддерживаемых точек входа для функций SIN, COS и т.д. не обнаружил ...

Поспешил с выводом. Действительно, в книжках и в библиотеке extable (extable2) элементарные функции отсутствуют, но в ROM они есть. Мне удалось вытащить адреса точек входа этих функций в Saturn ASM (работают в режиме BCD) с помощью Nosy:

SQRF  #317EEh
EXPF  #31089h
LNF   #3107Bh
LOGF  #31082h
SINF  #310B3h
COSF  #310BAh
TANF  #310C1h
ASINF #310CFh
ACOSF #310D6h
ATANF #310C8h

При работе с тригонометрическими функциями угловой режим ГРАДУСЫ/РАДИАНЫ/ГРАДЫ устанавливается так:

ГРАДУСЫ (DEG): ST=0 9
               ST=0 4

РАДИАНЫ (RAD): ST=1 9
               ST=0 4

ГРАДЫ (GRAD):  ST=0 9
               ST=1 4

Так как эти точки входа безымянные, то для вызова соответствующей инструкции
используется синтаксис:

GOSBVL адрес

P.S. В качестве такого простого примера могу предложить программку вычисления факториала, которая забирает действительное число из стека и затем возвращает результат вычисления в стек (на трёх языках HP 50g).

Да, хорошо что вы добавили комментарий. Я было перепугался, что разработчику на сатурне недоступны библиотечные функции и он остается один на один с голым "камнем" :)

Есть такая штука как, компилятор с паскаля на сатурн, заточенный под HP-48/49/50. У меня даже где-то были его исходники. Скорость программ впечатляет, особенно графики, сейчас не могу найти, было видео аркадной игрушки на этом компиляторе.

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

Да, хорошо что вы добавили комментарий. Я было перепугался, что разработчику на сатурне недоступны библиотечные функции и он остается один на один с голым "камнем" :)

:) Хорошо, что основных функций оказалось довольно много. Увы, по одному источнику (Introduction to Saturn ...) разобраться никак не получалось, пришлось перелопачивать дополнительные источники. Когда только начинал читать эту книжку, показалось, что её вполне достаточно.

На ближайшее(?) время последовательность такая:

  • Saturn ASM: Вычисления в режиме BCD
  • Примеры работы с Graphical Toolbox
  • Вычисление факториала
  • Тест С. Фролова на Saturn ASM
  • Игрушка "Ханойская башня" на Saturn ASM (пока только с тремя дисками)
  • Программка с бильярдным шариком (хотя предполагаю, что скорее это будет программа)
  • Программка "Звёздное небо" на Saturn ASM
  • ... ?

Программка "Звёздное небо" относится к указанной Вами категории (отрисовка графики). На UserRPL и SysRPL она уже написана, остался ассемблер Сатурна. Доступ к псевдослучайным значениям из ассемблера пока не нашёл. Вероятно, придётся самостоятельно программировать генератор псевдослучайных чисел. Пока не определился, какой именно алгоритм использовать. Может быть, Вы что-нибудь посоветуете ?

Есть такая штука как, компилятор с паскаля на сатурн, заточенный под HP-48/49/50. У меня даже где-то были его исходники. Скорость программ впечатляет, особенно графики, сейчас не могу найти, было видео аркадной игрушки на этом компиляторе.

Возможно, это видео:
http://www.dailymotion.com/video/xgwnh7_mur-de-brique-hp-pascal-hp50g_vi...

Да, это то самое видео, спасибо, что нашли.

По поводу псевдослучайных последовательностей, написал для затравки в блог. Кстати, тестирование этих методов в программке "Зведное небо" очень наглядно показало бы, насколько последовательности "случайны".

По поводу псевдослучайных последовательностей, написал для затравки в блог. Кстати, тестирование этих методов в программке "Зведное небо" очень наглядно показало бы, насколько последовательности "случайны".

Спасибо!

Буду пробовать.

Serguei_Tarassov wrote: ...Есть такая штука как, компилятор с паскаля на сатурн, заточенный под HP-48/49/50 ... Скорость программ впечатляет, особенно графики, ...

Посмотрите с какой скоростью работают программки-заставки (ASM+SysRPL):

P.S. Работают и на эмуляторе HP 50g.

Serguei_Tarassov wrote: Конечно, можно и факториал вычислить, но мне кажется, надо что-то с отрисовкой графики. Вот, например. Вводим начальное положение шара на биллиардном столе (без луз, т.е. прямоугольник с бортами), вектор (угол и начальную скорость), дальше программа рисует движение шара с учетом его отталкивания от стенок.

Написал программку "Бильярдный шарик" на C в HPGCC2. На большой скорости шарик размазывается, на "максимальной" скорости (для программки) его не видно.

Результаты опроса весьма "обнадёживают". Похоже, что информация по калькуляторам HP 50g (почти) никому не нужна.

1, 2, 3, 4, 5 ?

5.

Похоже, нишевые штуки окончательно закрылись в нише?

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

Vitasam wrote: Похоже, нишевые штуки окончательно закрылись в нише?

Многие просто не знают о существовании HP 50g, TI-89 или МК-161. Нужно размещать ссылки на pmk.arbinada.com (www.leninburg.com/calc, vk.com/mk161) на сайтах, которые часто посещают школьники и студенты в поисках образовательных (не развлекательных) материалов, инструментов, технологий и др.

Ссылки на www.leninburg.com/calc имеются, да и часть тамошних обитателей также появляются здесь. Сообщество МК-161 вконтакте закрыто для пользователей других моделей.

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

P.S. Глянул на форум КЛК, мама дорогая, спустя 7 лет xset все еще пытается убедить горе-системотехников, что метки, да и вообще простенький ЯВУ - это хорошо для программиста.

Serguei_Tarassov wrote: Ссылки на www.leninburg.com/calc имеются, да и часть тамошних обитателей также появляются здесь. Сообщество МК-161 вконтакте закрыто для пользователей других моделей.

Вероятно, я туманно выразился. Имел в виду размещать ссылки на ЭТОТ сайт на других сайтах (не в соц.сетях и т.п.).

Quote: Но нехватка в авторах, конечно, ощущается. Так что если среди ваших знакомых есть желающие писать по образовательной теме на русском языке - приглашайте. Гонораров нет, но и рекламы тоже.

Среди друзей и знакомых нет ни одного страдающего "калькуляторной болезнью". У меня она пока протекает без обострений, т.к. не думаю, что какая-либо фирма выпустит что-либо уровня HP 50g. То, что выкладываю на Арбинаде, неплохо соответствует рабочим интересам. Задумки пока реализованы на несколько процентов, есть куда двигаться дальше. Предполагал, что ОПРОС добавит что-либо ещё (к сожалению, пока не добавил). Планировал по результатам текущего ОПРОСА сделать ещё один уточняющий, но пока уточнять нечего. По закачкам моих файлов вывод пока тоже сделать сложно.

Quote: P.S. Глянул на форум КЛК, мама дорогая, спустя 7 лет xset все еще пытается убедить горе-системотехников, что метки, да и вообще простенький ЯВУ - это хорошо для программиста.

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

P.S. Не хватает прежних комментариев в древовидном представлении.

У МК-161 есть своя ниша, о которой почему-то мало кричат на всех углах - большой набор "железных" возможностей из коробки - RS232, SPI, несколько бит параллельного порта и 4-канальный АЦП. Такого нет ни у одного другого устройства.
Однако для работы в качестве калькулятора с программированием на борту МК-161 мало подходит, а вот если его использовать по назначению - многофункциональный контроллер, разрабатывая программу кросс-средствами, то, в принципе, неплох.
Я МК-161 в качестве логгера гейгер-счетчика использую.

С этой точки зрения было бы интересно про использование HP50g в качестве "полевых" станций измерения.

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

Vitasam wrote: У МК-161 есть своя ниша, о которой почему-то мало кричат на всех углах - большой набор "железных" возможностей из коробки - RS232, SPI, несколько бит параллельного порта и 4-канальный АЦП. ...
...
Я МК-161 в качестве логгера гейгер-счетчика использую.

С этой точки зрения было бы интересно про использование HP50g в качестве "полевых" станций измерения.

Подобные темы уже поднимались:

Устройство на базе HP-50g

Накопитель данных на HP48GX/HP49G. Интерфейс RS-232

Potencial de HP 50G para robótica. (vs Arduino)

Для предыдущих моделей калькуляторов HP отдельно можно было приобрести HP StreamSmart 410 с самыми разнообразными датчиками ("• Environmental Science - Turbidity, Nitrate Test, Heat Absorption and Radiation."). К сожалению, с HP 50g он программно несовместим.

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

P.S.

Vitasam wrote: xset, конечно, перегнул палку там в порывах, переходя на личности, но, по сути, он прав. Меток нам не видать :)

На МК-161 вроде бы форт наклёвывается. Будет ли в нём реализована поддержка "железных возможностей" ЭКВМ? Нужны ли тогда метки?

Да, действительно, были статьи. Накопитель данных на HP48 интересная работа.

А почему HP StreamSmart 410 не совместим с HP50g? На чем сейчас студенты делают лабораторные работы, и делают ли они?

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

А с Фортом я вообще мало дружу. Не приходилось как-то. Сложно сказать, будет ли поддержка железных возможностей, но тема там поднята интересная.

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

Vitasam wrote: ...
А почему HP StreamSmart 410 не совместим с HP50g? На чем сейчас студенты делают лабораторные работы, и делают ли они?

В инструкции к оборудованию о поддержке HP 50g ничего не сказано. См. также HP 50g and StreamSmart 410 Data Logger
Поправка: в меню приложений HP 50g StreamSmart оказывается есть (нет в эмуляторе, а в железном присутствует). Вот только который StreamSmart поддерживается HP 50g 400 или 410 ?

Vitasam wrote: ...
...
А с Фортом я вообще мало дружу. Не приходилось как-то. Сложно сказать, будет ли поддержка железных возможностей, но тема там поднята интересная.

Если форт всё-таки сделают, куплю ЭКВМ и буду разбираться. :)

Для Форта нужна алфавитная клавиатура. Так что не в этой жизни.

Serguei_Tarassov wrote: Для Форта нужна алфавитная клавиатура. Так что не в этой жизни.

А внешнюю алфавитную клавиатуру разве нельзя как-нибудь подключить?

Боюсь, что нет. PS/2, может, еще можно было бы, через дополнительное железо.

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

Зачем такие сложности с клавиатурой, можно подключить внешний планшет, программировать на нём, а в устройство заливать скомпилированный модуль.

Но это все уже не имеет отношения к калькулятору, как к автономному устройству.

Согласен

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

Vlad_AB wrote:
...
Когда-то подумывал приобрести МК-161, но оказалось что для текущей работы он мне совершенно не подходит (слишком ограниченные возможности; в частности, нет манипуляции над строками, как типом данных). Когда доберусь до "оживления" макетов, тогда буду думать опять.
...

МК-161 покупать передумал (что-то по форту на МК-161 давно не было никаких вестей.). Купил Ардуино(-ы), развлекаюсь потихоньку. Использование Ардуино/XXXдуино для "оживления макетов" кажется более логичным/удобным: отладил на макетке проект, прошил Атмегу, спаял и пользуюсь ...

А что за макеты?

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

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

В комментарии имел в виду не конкретные устройства (макеты), а использование чего считаю лучше в качестве управляющего компонента некоторого законченного устройства: здоровый калькулятор (ардуино с макетной платой, HP 50g, МК-161 и т.д.) с «ворохом проводов» или что-то размером со спичечный коробок.

Ардуины, конечно, хороши "низким уровнем вхождения" и развитостью портов ввода-вывода. Управлять чем-то тоже с них прикольно.
Хотя мне лично сейчас больше нравятся лаунчпэды от TI на msp430 микроконтроллерах.
МК161 больше подходит в качестве логгера чего-нибудь через RS232 порт или посредством оцифровки своим АЦП.

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

На базе ATmega8 и старого струйного принтера. Можно активно медитировать.

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

Это (http://www.youtube.com/watch?v=6xCd55oSgO4) видео мне больше понравилось.

xset, конечно, перегнул палку там в порывах, переходя на личности, но, по сути, он прав. Меток нам не видать :)

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

Сообщество пользователей HP 50g - относительно дорогого устройства, это инженеры и научные работники в США, ЕС и Южной Америке. Там оно сложилось, потому что пользователи выросли из школьных калькуляторов соответствующих марок.

В РФ калькулятор в школе мало востребован, нет массовых учебных программ, в списке допустимых к ЕГЭ - относительно примитивные по функционалу модели. Соответственно, у выпускников не образуется культуры пользования устройствами. CASIO распространен чуть больше.

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

Мат.пакет на планшете или смартфоне в такой ситуации не сильно виноват. Эти унивесальные устройства не вытесняют ни компактные медиаплейеры, ни карманные игровые консоли, ни наручные часы, ни электрокниги. Вопрос именно в том, что нет соответствующего умения.

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

Да и насчет вытеснения - компактных медиаплееров уже несколько лет ни у кого не вижу. Все слушают со смартфонов. Цифровые мыльницы тоже вытесняются камерафонами. Что говорить о калькуляторах?

Хотя я придерживаюсь свого мнения - будь в продаже что-то удобное, маленькое, работающее месяцами от двух ААА батареек, с качественной черно-белой e-ink графикой, программируемое на том же Бейсике - был бы спрос :)
У меня с собой в сумке есть такой почти девайс, но он раритетный:

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

Сложившиеся обстоятельства таковы, что вынужден, к сожалению, прекратить "писательскую деятельность" на неопределённое время.

Жаль, тем не менее, надеемся на возобновление. Большое спасибо за ваши интересные авторские материалы.

Vlad_AB wrote: Сложившиеся обстоятельства таковы, что вынужден, к сожалению, прекратить "писательскую деятельность" на неопределённое время.

"Продолжаем разговор" (с)

Благодарю всех проголосовавших.

По SysRPL я когда-то остановился на работе с графикой (не успел ещё выложить). Также осталась за бортом информация по работе с CAS (по информации из руководства по SysRPL все CAS-команды максимально оптимизированы по производительности, а значит из-за символьной математики не имеет смысла связываться с SysRPL, т.к. всё с такой же скоростью будет работать в UserRPL-программах).

Прошу уточнить, что именно интересует по SysRPL ?