HP-41CX с устройством чтения магнитных карт и термопринтером | |
Тип | Программируемый Scientific |
---|---|
Представлен | 1979 |
Снят с производства | 1990 |
Калькулятор | |
Режим ввода | RPN |
Тип дисплея | ЖК-дисплей четырнадцатисегментный дисплей |
Программирование | |
Язык (и) программирования | RPN нажатие клавиши (полностью объединено, Тьюринг завершен ) |
Регистр памяти | 63.. 319 |
Этапы программы | 441.. 2233 |
Интерфейсы | |
Порты | четыре в зависимости от производителя |
Подключается к | микро- кассету через: гибкий диск через:
ПК через один из:
|
Другое | |
Блок питания | четыре батареи размера N или аккумулятор HP 82120A |
Серия HP-41C программируемые, расширяемые, с постоянной памятью портативные RPN калькуляторы производства Hewlett-Packard с 1979 по 199 гг. 0. Исходная модель, HP-41C, была первой в своем роде, предлагавшей буквенно-цифровой дисплей. Позже появились модели HP-41CV и HP-41CX, предлагающие больше памяти и функциональность.
The буквенно-цифровой ЖК-экран HP-41C произвел революцию в способах использования карманного калькулятора, обеспечивая удобство для пользователя (для своего времени) и расширяемость (функции без клавиатуры можно было писать в алфавитном порядке). Используя буквенно-цифровой дисплей, калькулятор мог сообщить пользователю, что происходит: он мог отображать содержательные сообщения об ошибках («ZERO DIVIDE») вместо просто мигающего нуля; он также может специально запрашивать у пользователя аргументы («ENTER RADIUS») вместо простого отображения вопросительного знака.
Раньше калькуляторы требовали клавиши или комбинации клавиш для каждой доступной функции. HP-67 имел три клавиши переключения (префиксные золотые «f», синие «g» и черные «h»); у конкурирующих калькуляторов Texas Instruments было два (2nd и INV) и около 50 клавиш (у TI-59 было 45). Hewlett-Packard были ограничены своим однобайтовым форматом инструкций. Более гибкий формат хранения программ в TI-59 позволил объединить больше ключей в одну инструкцию. Самая длинная инструкция требовала одиннадцати нажатий клавиш с повторным использованием клавиш Shift четыре раза. В TI-59 также использовалась клавиша Op, за которой следовали две цифры для доступа к еще 40 различным функциям, но пользователь должен был запомнить их коды. Понятно, что требовался более удобный и гибкий способ выполнения инструкций калькулятора. HP-41C имел относительно небольшую клавиатуру и только одну клавишу Shift, но имел сотни функций. Каждая функция, которая не была назначена клавише, могла быть вызвана с помощью клавиши XEQ (произносится как E XEQ TE - «выполнить») и описана полностью, например XEQ ФАКТ для функции факториал.
У калькулятора был специальный пользовательский режим, в котором пользователь мог назначить любую функцию любой клавише, если назначения по умолчанию, предоставленные HP, не подходят для конкретного приложения. Для этого режима HP-41C поставлялся с пустыми шаблонами клавиатуры; то есть пластиковые крышки с отверстиями для клавиш, чтобы пользователь мог комментировать индивидуальные клавиши. Hewlett-Packard даже продала версию калькулятора, на которой почти не было клавиш с напечатанными названиями функций, предназначенная для пользователей, которые будут использовать HP-41C только для пользовательских вычислений (таким образом, не нуждаясь в стандартной раскладке клавиш вообще); эта версия калькулятора была в просторечии известна в команде HP-калькуляторов Corvallis как «Blanknut» (потому что кодовое название разработки процессора HP-41C было известно как «кокосовый орех»).
Также буквенно-цифровой дисплей значительно упростили редактирование программ, так как функции были прописаны полностью. Калькуляторы только с числами отображали этапы программирования в виде списка чисел, каждое число обычно сопоставлялось с клавишей на клавиатуре, часто через координаты строки и столбца. Кодирование функций в соответствующие числовые коды и наоборот оставалось на усмотрение пользователя, который должен был искать комбинации кода функции в справочном руководстве. Занятый программист быстро выучил большинство кодов, но необходимость выучить коды пугала новичков. В дополнение к этому пользователю приходилось мысленно сохранять коды функций отдельно от числовых констант в листинге программы.
HP-41C отображал каждый символ в блоке, состоящем из 14 сегментов, которые можно было включить или выключить; так называемый четырнадцатисегментный дисплей (похожий на гораздо более распространенный семисегментный дисплей , который может использоваться только для отображения цифр). В HP-41C использовался жидкокристаллический дисплей вместо широко распространенных светодиодных дисплеев той эпохи, чтобы снизить энергопотребление.
Хотя это позволяло отображать прописные буквы, цифры и несколько знаков пунктуации (набор символов FOCAL ), некоторые рисунки необходимо было произвольно изменять (например, чтобы отличить S от 5) а строчные буквы были нечитаемыми (HP обеспечивала отображение только строчных букв от a до e). Конкурент HP Sharp, представляя PC-1211, использовал точечную матрицу из точек 5 × 7 и отображал символы в принципе такими, какими мы их видим сегодня. компьютерные экраны (и, фактически, многие ЖК-экраны в различных встроенных системах ); Позднее это было использовано HP в портативном компьютере HP-71B.
Многие пользователи использовали все четыре порта для расширения памяти, не оставляя места для других модулей. Компания HP разработала модуль памяти Quad с четырехкратным объемом памяти, обеспечивая максимально доступную память и оставив три пустых порта. HP-41CV (V означает римская цифра вместо 5) включает этот модуль памяти на материнской плате, что обеспечивает в пять раз больше памяти, чем HP-41C, и четыре доступных слота..
Внутренняя архитектура запрещает добавление дополнительной памяти, поэтому HP разработала модуль расширенной памяти, который можно рассматривать как дополнительное хранилище. Вы не могли получить доступ к данным напрямую, но вы могли передавать их в основную память и из нее. Для калькулятора (и пользователя) данные, расположенные в расширенной памяти, выглядели так, как файлы на современном жестком диске для ПК (пользователя).
Последняя модель HP-41, HP-41CX, включала расширенную память, встроенный модуль времени и расширенные функции. Он был представлен в 1983 году и прекращен в 1990 году.
HP-41C программируется нажатием клавиши, что означает, что он может запоминать и впоследствии выполнять последовательности нажатий клавиш для решения конкретных проблемы, интересующие пользователя. Эти программы нажатия клавиш, в дополнение к выполнению любых операций, обычно доступных на клавиатуре, также могут использовать условные и безусловные инструкции перехода и цикла, позволяя программам выполнять повторяющиеся операции и принимать решения.
HP-41C также поддерживает косвенную адресацию (computed goto ), с помощью которой можно реализовать универсальную машину Тьюринга и, следовательно, модель программирования HP- 41C можно считать полным по Тьюрингу. Комбинация косвенной адресации и gotos легко привела к спагетти-коду.
Шаги программы нумеруются, начиная с 1, но эта нумерация не имеет внутреннего значения и изменяется по мере добавления или удаления новых инструкций в середине программы. Специальная инструкция LBL используется для создания метки, на которую затем ссылается пользователь для вызова программы или сама программа как цель инструкции GTO (безусловный переход) или XEQ (выполнение).
Вот пример программы, которая вычисляет факториал целого числа от 1 до 69 (70! Требуется экспонента больше 99, максимум калькулятора), это целое число передается в качестве параметра через регистр X. Программа занимает 2 регистра, что составляет ≈14 байт.
Операционный код шага Комментарий 01 LBL'Fac ALPHA-метка делает программу доступной для вызова с помощью 'XEQ Fac' 02 STO 00 Сохранить X = параметр в регистре 0 03 1 Введите 1 в X, «подъем» или «нажатие», стек ; Y = параметр (больше не используется) X = 1 04 LBL 00 Метка для goto 05 RCL 00 Вызов регистра 0 в X, поднятие стека; Z = параметр (больше не используется) Y = 1 или промежуточный или конечный факториал X = параметр или декремент N-I 06 * Умножение X и Y, «отбрасывание» или «выталкивание» стека; Y = параметр (больше не используется) X = промежуточный или конечный факториал 07 DSE 00 D приращение регистра 0 и S пропустить следующую команду, если значение регистра равно E qual на 0 08 GTO 00 Перейти к метке 0 09 КОНЕЦ Конец программы - результат отображается в X
Хотя язык программирования, используемый в серии 41, является версией языков программирования нажатия клавиш, используемых во всех предшествующие программируемые калькуляторы HP, ряд технологий, а также связанные с программированием функции удобства использования и расширения, доступные в моделях серии 41 (в частности, накладки клавиатуры, полностью переназначаемая клавиатура, возможности ввода-вывода для хранения и совместного использования программ, а также буквенно-цифровая поддержка), Пользователи предложили новое имя для языка, в результате чего компания FOCAL выиграла конкурс на «Сорок один язык калькуляторов». Поскольку название FOCAL уже использовалось в Digital Equipment Corporation, это название никогда официально не использовалось HP.
Большое сообщество пользователей было создано вокруг HP-41C. Энтузиасты со всего мира нашли новые способы программирования, создали собственное программное обеспечение (например, игру с взломом кода и версию Hunt the Wumpus ) и модули расширения, а также ускорили время (см. разгон ). Большая часть этих мероприятий координировалась клубом PPC и его президентом Ричардом Дж. Нельсоном. Клуб PPC опубликовал PPC Journal и выпустил PPC ROM, набор высоко оптимизированных низкоуровневых программ для HP-41C.
Одним из открытий сообщества было то, что, поскольку некоторые инструкции FOCAL хранились в памяти в виде более чем одного байта, можно использовать ошибку в редакторе программ, чтобы назначать странные функции клавишам. Самая важная функция была известна как перемычка байта, способ частично выполнять инструкции программирования и редактировать их способами, которые иначе были бы запрещены. Использование результирующих инструкций было названо синтетическим программированием.
. С помощью синтетических инструкций пользователь мог получить доступ к памяти и специальным флагам состояния, зарезервированным для операционной системы, и делать очень странные вещи, включая полную блокировку машины. Можно было создавать звуки или отображать символы, а также создавать анимации, официально не поддерживаемые операционной системой. Системные флаги также использовались как низкоуровневые ярлыки для методов логического программирования. Hewlett-Packard официально не поддерживала синтетическое программирование, но и не сделала ничего для его предотвращения и даже предоставила внутреннюю документацию группам пользователей.
В выпуске за декабрь 1980 года журнал BYTE описал HP-41C как «самую универсальную машину из когда-либо существовавших». Автор похвалил документацию HP как «одну из лучших в отрасли» и сообщил, что калькулятор «намного проще программировать и отлаживать», чем TI-59. Заявив: «Я нашел HP-41C гораздо более приятным для программирования и использования, чем его предшественники» из-за его буквенно-цифрового дисплея, автор пришел к выводу, что это «может быть, не совсем» карманный компьютер. В следующем выпуске другой автор написал, что «HP-41C... относится к числу программируемых калькуляторов, которые находятся ближе всего к компьютерной границе. Он подходит достаточно близко, чтобы компьютерный жаргон был полезен при его описании», и похвалил простота и надежность кардридера и совместимость с программным обеспечением HP-67 и HP-97. В обзоре подверглись критике неточности в расчетах из-за отсутствия знаков разряда ; «Есть что-то абсурдное в том, что самый фантастический калькулятор в мире не может давать результаты с точностью до семи или восьми знаков после запятой». Hewlett-Packard ответила, что предполагаемая неточность присуща арифметике на любом компьютере с конечной точностью.
HP-41C, совершившая девять первых миссий Space Shuttle экспонируется в Национальном музее авиации и космонавтики в Вашингтоне, округ Колумбия. HP-41C с некоторыми специальными аппаратными конфигурациями (добавление липучки, предварительный модуль времени и более громкий звуковой сигнал, а также удаление деталей, дегазация которых может вызвать загрязнение) были выполнены в ранних миссиях шаттла с целью выполнения обыденных, но необходимых вычислений, таких как расчет изменения центра тяжести из-за расхода топлива. HP-41C также был запрограммирован для обработки расчетов, обычно выполняемых главным бортовым компьютером, таких как определение времени зажигания для повторного входа в систему в случае отказа главного компьютера.
Функции калькулятора могут быть расширены путем добавления модулей в верхней части машины. Было доступно четыре слота для добавления дополнительной памяти, предварительно запрограммированные пакеты решений, содержащие программы, охватывающие инженерию, геодезию, физику, математику, финансы, игры и т. Д. Таким образом, HP-41 фактически мог быть адаптирован к личным потребностям пользователя.. Аппаратные расширения включали термопринтер, устройство чтения магнитных карт (совместимое с HP-67 через программное обеспечение конвертера) и «палочку» (считыватель) штрих-кода.
Модули расширения также могут добавлять новые инструкции к машине. Стандартный набор математических функций 41-й серии был несколько ограничен по сравнению с функциональностью некоторых современных калькуляторов HP (в частности, HP-34C и HP-15C ). Среди прочего, стандартный набор функций не предлагал возможности интеграции или поиска корней и не поддерживал матрицы и комплексные числа; эти дополнительные функции могут быть добавлены модулем расширения.
Другой модуль, известный как Интерфейсная петля, позволял подключать больше периферийных устройств: принтеры большего размера, микрокассеты магнитофоны, 3½-дюймовые гибкие диски приводы, RS-232 интерфейсы связи, интерфейсы видеодисплея и т. д. Интерфейсную петлю можно также использовать с HP-71B, HP-75 и HP-110 компьютеры.
Слоты расширения модулей расширения (или расширения) HP-41CXHP-41 позволяли пользователю программируемого калькулятора HP-41 расширять функциональные возможности устройства. В задней части калькулятора HP-41 можно было разместить до четырех модулей расширения.
HP-41 был не единственным калькулятором своего поколения, который допускал модули расширения. TI-58 и TI-59 также имели сменные модули ПЗУ. Однако модули HP-41 были гораздо более универсальными.
Добавлены модули памяти RAM основная память калькулятора, позволяющая выполнять больше шагов программирования и / или регистров данных.
Исходный HP-41C имел основную память из 63 регистров по 7 байтов каждый. Каждый регистр может содержать либо число, либо строку из 6 символов, либо до семи шагов программы на языке FOCAL (в шагах программы используется переменное количество байтов).
В каждый модуль памяти добавлено 64 регистра, и калькулятор мог вместить до четырех из них, в общей сложности 319 регистров. Хотя в то время это считалось огромным (немногим более 2 килобайт ), все слоты расширения использовались. Группы пользователей нашли способ объединить две микросхемы памяти в один модуль, освободив таким образом два слота расширения. HP разработала модуль, вмещающий все четыре в одном слоте, так называемый модуль памяти Quad. Более поздний HP-41CV имел встроенный четырехъядерный модуль.
Модули pac приложений на основе ROM добавили до 4 килобайт постоянной памяти (некоторые до 8 килобайт, но это были просто два независимых модуля 4K в одной коробке). Большинство модулей содержат десятки программ, написанных на языке программирования HP-41C, FOCAL.
Программы в модулях ПЗУ могут быть вызваны из пользовательской программы с использованием повсеместной функции XEQ. В программном коде XEQ появился как «XROM», когда он использовался для вызова программы ROM.
Устройство чтения карт было устройством, способным считывать и записывать небольшие прямоугольные пластиковые карты с двумя магнитными полосами. Картридер может копировать содержимое памяти на магнитные карты, а затем считывать данные обратно в память.
Поскольку у HP-41C была энергонезависимая память (пользовательские программы и данные не стирались при отключении питания), не было абсолютной необходимости в постоянном запоминающем устройстве, поэтому карта читатель был необязательным.
Каждая карта содержала две полосы по 112 байтов каждая, которые могли содержать 16 регистров данных или до 112 программных шагов. Эта ограниченная емкость приводила к тому, что типичные программы требовали сохранения пяти или более магнитных карт. Для полной резервной копии 319 регистров памяти машины и внутренних данных требовалось 11 магнитных карт (каждую карту приходилось вставлять дважды).
Устройство чтения карт могло читать магнитные карты от более ранней модели HP-67. Программы HP-67 были переведены в инструкции HP-41C, поскольку HP-67 и HP-41 используют одну и ту же модель программирования и операционный стек. Некоторые инструкции, однако, были специфичны для HP-67, и устройство чтения карт предоставило дополнительные инструкции для эмуляции 67.
Магнитные карты могли быть защищены от записи, а программы сохранялись как частные: после загрузки исходный код ибо программа не может быть отображена. Это сделало магнитные карты очевидным выбором для распространения программ.
Однако электродвигатель оказал большую нагрузку на батареи калькулятора, а цена пустых карточек стала еще более тяжелой для кошелька пользователя.
Модуль времени добавил часы реального времени. Часы позволяли использовать в программах реальное время. Пользователь мог устанавливать будильники, которые запускали вызовы пользовательских программ. Сигналы тревоги могли включать калькулятор, поэтому можно было создавать программы, которые выполнялись в какой-то момент в течение дня, а затем выключать калькулятор до следующего сигнала тревоги. Поскольку HP-41 часто использовался в качестве устройства для сбора данных в лабораториях, это позволяло калькулятору считывать данные с контролируемых устройств в определенное время каждый день, без необходимости оставаться полностью включенным между измерениями (таким образом, экономя емкость аккумулятора).
В HP-41CX был встроенный модуль времени.
В принтере использовались рулоны термобумаги для печати строк длиной до 24 символов. Термобумага обеспечивала голубоватую распечатку, но была несколько нестабильной, так как распечатка могла исчезнуть или вся бумага стала синей из-за чрезмерного нагрева.
Принтер имел некоторые графические возможности, позволяющие пользователю создавать формы символов или даже включать или выключать отдельные пиксели. Однако буферная память не могла хранить достаточно информации для печати всей строки в графическом режиме и не могла изменять межстрочный интервал, поэтому было невозможно печатать непрерывную графику в горизонтальном режиме. Тем не менее, в принтере было несколько утилит для печати, которые могли изобразить функцию вертикально на узкой полосе бумаги для принтера.
Вместо использования вышеупомянутого принтера этот модуль может использоваться для сопряжения термопринтера с инфракрасным интерфейсом, а именно, и. Это позволяет печатать на ходу без использования кабелей, но самому принтеру также нужны батареи.
Оптическая палочка представляла собой считыватель штрих-кодов в форме толстой ручки и был разработан для считывания строк штрих-кодов проприетарного стандарта HP в память калькулятора. Штрих-коды, напечатанные, например, Книги по решениям HP могут содержать программы, числовые или буквенные константы и даже нажатия клавиш (позволяющие работать с калькулятором без использования клавиатуры), что полезно для диагностики калькуляторов, где предполагается, что клавиатура неисправна.
В модуль расширенных функций добавлены многие функции, которые пользователи давно хотели получить, например возможность программно назначать функции клавишам, перераспределение памяти и т. д.
Но наиболее важной новой функцией было управление расширенной памятью: в то время как HP-41C теоретически мог получить доступ к 1024 регистрам, ранний дизайн ограничивал основную память только 319 регистрами. В модуль «Расширенные функции» добавлены инструкции по управлению банком дополнительной памяти в доступном адресном пространстве машины. Поскольку эта память не была напрямую адресована пользовательским программам, она рассматривалась как набор именованных файлов, содержащих программы или данные. Программы и регистры данных можно было копировать туда и обратно из расширенной памяти в основную память, где к ним можно было обращаться как обычно.
Расширенная память может также содержать файлы ASCII, а также была добавлена элементарная память.
Модуль расширенных функций содержал 124 регистра расширенной памяти. Еще можно добавить... Модули расширенной памяти. HP-41CX в стандартной комплектации содержал модуль расширенных функций.
Модули расширенной памяти добавили дополнительный объем памяти к HP-41C. Они требовали наличия модуля с расширенными функциями или версии калькулятора HP-41CX.
В каждый модуль добавлено 238 регистров расширенной памяти. Можно было вставить до двух модулей расширенной памяти, всего 124 + 2 * 238 = 600 регистров. В дополнение к 319 регистрам основной памяти, это покрыло практически все 1024 адресуемых регистров машины, всего 919 регистров или 6433 байта.
См. Основную статью о HP-IL.
Продолжающаяся популярность HP- 41CX среди пользователей подсказал SwissMicros создать миниатюрный калькулятор размером примерно с кредитную карту ID-1 (88 мм × 59 мм × 7 мм) в 2015 году. Он называется DM41. оригинальная прошивка HP-41CX с расширенной памятью и часами реального времени в эмуляторе на процессоре ARM Cortex-M0 на базе NXP. В отличие от оригинала, он выполнен в ландшафтном форм-факторе (как известно из серии Voyager компании Hewlett-Packard) с переставленными клавишами, имеет точечно-матричный дисплей, переключаемые тактовые частоты и, на основе Silicon Labs преобразователь CP2102, он поставляется с последовательным интерфейсом USB (Mini-B ) для обмена данными с ПК и т. Д. В целях резервного копирования, для возможной связи с приложениями (например, эмуляторами на базе ПК) или для обновления прошивки. В декабре 2015 года SwissMicros представила DM41L, версию калькулятора примерно того же размера, что и калькуляторы серии HP Voyager. Он по-прежнему оснащен разъемом USB Mini-B.
Буквенно-цифровой дисплей интерфейсного модуля HP-41CX
HP-IL
Термопринтер HP82162A (с подключением HP-IL)
Кассетный накопитель HP82161A с носителем данных (с HP -IL соединение)
Шлейф интерфейса с термопринтером HP82162A (спереди слева), кассетным приводом HP82161A (сзади слева) и HP-41CX
HP 82163B - видеоинтерфейс на 32 колонки для HP-IL
слотов расширения ИК-интерфейса HP-41CX
HP82242A (к термопринтеру)
HP 82104A - устройство чтения / записи карт для HP-41C
X Модуль памяти HP82181A (расширение памяти)
Модуль статистики
Модуль памяти HP 82106A для HP-41C
Аккумулятор HP 82120A для HP-41CX с поврежденными никель-кадмиевыми элементами (оригинал)
Аккумулятор HP 82120A для HP-41CX (оригинальные никель-кадмиевые элементы были заменены на NiMH-элементы)