Сообщения

Последние сообщения

Casio PD‑700 — Часть 13: чрезвычайно редкая производная модель PD‑400B

На этот раз я просматривал объявления на eBay и увидел очень интересный калькулятор - Casio PD‑400B. Особенно моё внимание привлекло его сходство с хорошо знакомым к тому моменту PD‑700B. Насколько мне известно, это первый такой экземпляр, всплывший в интернете. На некоторых сайтах коллекционеров упоминается существование этой модели, но нигде нет даже фото. По фотографиям в объявлении уже можно

Casio PD‑700 — Часть 12: ранняя версия, без суффикса "A" или "B"

В какой-то момент я обратил внимание, что калькулятор из того самого поста с разбором отличается разводкой платы и некоторыми деталями. В частности, отсутствует gate array MB675449, а вместо него установлен один единственный инвертер TC4S69F. Такое могло бы помочь глубже понять роль MB675449 и взаимосвязь компонентов, соединённых через него. К сожалению, фотографии недостаточно чёткие, чтобы проследить дорожки,

Casio PD‑700 — Часть 11: мои программы на BASIC

Кажется, к этому моменту о Casio PD‑700B удалось узнать уже немало, и теперь можно поэкспериментировать с программированием на BASIC. В предыдущих частях я выкладывал программы, которые использовал в ходе исследования. Пришло время показать ещё несколько написанных ранее программ, демонстрирующих его возможности и позволяющих ненадолго отвлечься от изучения внутреннего устройства.

Casio PD‑700 — Часть 10: частичное извлечение ROM из процессора

В отличие от остальных моделей со схожим процессором, PD‑700B имеет одну серьёзную особенность: он использует другие драйвера дисплея, информация о контрасте которым передаётся по шине данных. В RAM по адресу &H0D29 хранится 2-х байтовый адрес данных в ROM для используемого уровня контраста. Но во внешней ROM таких данных не обнаружилось, а следовательно, этот адрес указывает на внутреннюю ROM самого процессора.

Casio PD‑700 — Часть 9: соответствие CS, ROM‑карта, общение с драйверами дисплея

Так как никакого упоминания о существовании ROM-карты для Casio PD‑700B так и не нашлось, я решил собрать свою карту с RAM и поэкспериментировать. Коннектор не самый распространённый, но часто используемый в Casio - 45 пинов с шагом 1 мм, такой же, как в картах OM c языками программирования для PB‑2000C/AI‑1000, в картах ES для органайзеров серии SF/DK и некоторых других.

Casio PD‑700 — Часть 8: содержимое внешней ROM и секреты синтаксиса

На данный момент не существует известного способа считать программу, содержащуюся в процессоре HD62034 или HD62002 - по крайней мере мне таковой пока что найти не удалось. Зато есть возможность считать содержимое внешней микросхемы ROM. Как было видно при анализе содержимого RAM, тут используются 3-х байтовые адреса и содержимое самого RAM адресуется в диапазоне &H000000-&H00FFFF.

Casio PD‑700 — Часть 7: возможности BASIC

Ранее я уже перебирал поддерживаемые команды и находил любопытное, но как только прояснился принцип токенизации, я сразу понял, что это удобная лазейка для обнаружения всех доступных команд и операторов BASIC. Поскольку в FX‑880P, PB‑1000 и других первый байт команд - это &H04, &H05, &H06 и &H07, я написал 4 программы в токенизированном виде, в каждой из которых перечислены все 256 возможных вариантов второго байта.

Casio PD‑700 — Часть 6: хранение программ, данных и переменных

После того, как стало ясно, по каким адресам располагаются пользовательские данные, имеет смысл разобраться, в каком именно виде они хранятся. Для начала я постарался понять, как хранится в RAM программа, с помощью которой я считывал этот самый RAM. Для этого я взял часть данных, начинающихся с адреса &H000FA0, и приступил к анализу их содержимого.

Casio PD-700 — Часть 5: структура и разметка RAM

Имея полный дамп содержимого RAM, а также дамп, нужный для полноценной передачи задуманным производителем методом, стоит разобраться, как устроена память. Во-первых, это просто интересно и иногда пригождается для написания программ с использованием команд PEEK и POKE, во-вторых, это необходимо понимать для возможности собирать образ с программами BASIC, а в-третьих, всегда есть вероятность обнаружить

Casio PD‑700 — Часть 4: заводской метод загрузки программ

Казалось, что всё уже ясно: процессор, язык программирования, распиновка коннектора. Но одно оставалось загадкой, а именно - как заливались программы на заводе, когда калькулятор уже собран и нет доступа к пинам клавиатуры. Ведь сейчас я пишу, подпаявшись к процессору, и даже если заливаю через 30-пиновый порт, всё ещё ввожу LOAD "COM0:".

Casio PD‑700 — Часть 3: аппаратное обеспечение, схема, компоненты

Я уже осматривал плату PD‑700B для понимания цепи питания дисплея и способа подключения клавиатуры, параллельно зарисовывая схему по мере понимания. На этот раз я решил полностью разобраться с его схемой и установленным в нём железом, и дополнить недостающую информацию.

Casio PD‑700 — Часть 2: подключение клавиатуры и знакомство с системой

После того, как стало ясно, как привести Casio PD‑700B в рабочее состояние для работы в режиме простого калькулятора, я стал разглядывать его изнутри, чтобы найти зацепки о том, как он программируется. Быстро стало ясно, что распиновка процессора совпадает с HD62002, использующимся в FX‑880P и подобных, а также в FX‑603P.

Casio PD-700 — Часть 1: предыстория и первое включение

Прошло уже почти три года с того момента, как я, просматривая объявления на японской барахолке mercari, увидел калькулятор Casio PD‑700B. В объявлении говорилось, что он не работает: иногда не включается, а иногда отображает только чёрный экран. Цена была приемлемой, и мне стало интересно, что он из себя представляет. После долгих поисков стало ясно, что до сегодняшнего дня он покрыт тайной: