Исполнение мечты,
или Калькулятор с Бейсиком
В детстве, в далёкие восьмидесятые, я изучил все программируемые калькуляторы, выпускающиеся в Советском Союзе, и пару — тройку импортных программируемых. Вначале я разобрался с Б3-34 по книжкам, потом без инструкции, методом «научного тыка», разобрался с программированием Б3-21, шестеричная система счисления которого при вводе программы меня глубоко поразила и выбила все шаблоны. Потом был МК-61, за ним — МК-64, с его платой АЦП и допусковым контролем в кольцевом стеке. Немного поработал на МК-90, но после ДВК все его приколы типа «иНЖАЛИД цОММАНД» были неинтересны, и показалось, что скорость вычислений и точность — низкая для компьютера такого класса. В общем, он меня абсолютно не впечатлил. Дальше были CASIO FX4500P, HP-15. Примерно в 90-м году мне всеми правдами и неправдами удалось получить практически неограниченный доступ к ДВК, потом к IBM PC. Но золотой мечтой оставался калькулятор с Бейсиком. Приобрести его для меня в то далёкое время было решительно невозможно, поэтому МК-85 или CASIO FX-100, описанные в книжках Дьяконова В.П., так и остались мечтой.
В один прекрасный день, совершенно случайно, мной был обнаружен на eBay CASIO PB-700 – Бейсик-компьютер с 16 КБ ОЗУ, да ещё и за очень вменяемую по сравнению с остальными предложениями цену. Немного подумав, этот девайс с гордым названием PERSONAL COMPUTER был приобретён (Рис. 1).
Рис. 1. Общий вид калькулятора
Прибор оказался по размерам чуть меньше, чем МК-90, хотя в карман он всё-таки влазит. РВ-700 имеет полную QWERTY и числовую клавиатуры, но ввод некоторых знаков с клавиатуры (например, «%») невозможен. Объём оперативной памяти может быть 4, 8, 12 или 16 килобайт. Если не установлены модули расширения памяти CASIO OR-4 (Рис. 2), то в калькуляторе будет 4 штатных килобайта ОЗУ, а каждый дополнительный модуль даёт ещё 4 КБ.
Рис. 2. Слоты расширения памяти
Как и в большинстве Бейсик-калькуляторов CASIO, в памяти может храниться 10 программ, но число переменных не ограничено буквами «А» … «Z». Можно использовать двухсимвольные переменные с первой буквой и цифрой. Кроме того, есть поддержка символьных переменных и массивов. Мантисса числа имеет длину 10 цифр, но массивы с целью экономии памяти могут иметь мантиссу длинной 5 цифр. Диапазон представления чисел стандартный – от плюс-минус 9,999999999*10-99 до плюс-минус 9,999999999*1099. Как и в большинстве других калькуляторов, вычисление тригонометрических функций производится в градусах, радианах или градах, и выбирается это командой ANGLE x.
Индикатор жидкокристаллический, графический. На нём могут одновременно отображаться как графическая, так и текстовая информация. Формат текстового экрана — 20х4 символа, каждый из которых формируется матрицей 8х8 точек. Знакогенератор — 256 символов, из которых добрая половина — псевдографика и японские иероглифы. Ничего удивительного, в общем. Графический экран имеет формат 160х32 точки. Контрастность индикатора регулируется переменным резистором слева (Рис. 3).
Рис. 3. Слева регулятор контрастности
Кнопки выполнены из пластмассы. Несмотря на свой возраст, кнопки нажимаются легко, имеют небольшой тактильный эффект и чётко реагируют на нажатие без намёка на дребезг. В отличие от большинства других Бейсик-калькуляторов, РВ-700 имеет две клавиши ввода – ENTER и <—' . Они выполняют совершенно разные функции и не взаимозаменяемы между собой. Кнопка ENTER используется для прямого вычисления выражений. При таком использовании калькулятора набирать оператор PRINT не нужно и доступны все вычислительные функции. Значение выражения немедленно вычисляется, и результат выводится на индикатор. К сожалению, тут не обошлось без ложки дёгтя – набранное выражение повторно нельзя вернуть на индикатор, заменить в нём что-то и пересчитать. Недодумали тут японцы. Кнопка <—' предназначена для ввода Бейсик-команд и строк программы. Неверное использование этих кнопок ввода приведёт или к неминуемой ошибке, или к затиранию строки программы.
Калькулятор питается от четырёх батареек типа АА. Для сохранения содержимого ОЗУ во время замены батареек есть батарейка резервного питания типа CR1216.
На задней стенке калькулятора выведен разъём расширения (Рис. 4), к которому можно подключать модули расширения. Лучший выбор — CASIO FA-10. Подключив к нему калькулятор, получите плоттер, принтер и магнитофон. Возможно подключение и других модулей расширения от CASIO.
Рис. 4. Разъём расширения
К сожалению, эти модули расширения крайне редки и дороги. Но, как говорится, то, что сделал один человек, другой всегда сломать сможет. Небезызвестный польский любитель калькуляторов Piotr Piatek (http://www.pisi.com.pl/piotr433/) сумел разобраться с интерфейсом шины CASIO PB-700, расписал на страницах своего сайта эту информацию и сумел создать на микроконтроллере эмуляторы ввода-вывода на магнитофон и принтер. Прочитать о принципах работы шины, посмотреть на внутреннее устройство калькулятора и ознакомиться с эмулятором можно на вышеуказанном сайте.
Бейсик-интерпретатор достаточно стандартен. Строки нумеруются. Переход производится по номеру строки. Есть операторы DATA, READ, RESTORE, что, в общем, редкость для карманных микрокомпьютеров. Оператор PRINT поддерживает форматированный вывод. С другой стороны, присутствует какое-то лёгкое ощущение недоделанности. Например, в операторе IF – THEN – ELSE отсутствуют логические операции, что, мягко говоря, удивляет и усложняет написание программы.
Вызов подпрограммы и переход может производиться как внутри самой программы на номер строки, так и во внешнюю программу.
Поддерживается вывод текста на принтер и графики на плоттер, если они есть. Также возможно чтение и запись данных на магнитофон из программы на Бейсике.
Скорость исполнения программы калькулятора находится примерно на уровне его одноклассников. Например, время исполнения теста «8 ферзей» (http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=700) составляет 10:49, что примерно равно скорости исполнения этой же программы на калькуляторе МК-85, но в полтора раза медленнее, чем МК-90. В то же время, РВ-700 быстрее, чем МК-61, примерно в 28 раз. Машинка экономичная. Есть автоматическое отключение при длительном простое.
В заключение хочется отметить, что я ни разу не пожалел о покупке этого микрокомпьютера, он постоянно находится на моём рабочем столе, и его просто приятно использовать по его прямому назначению. |