Pull to refresh

Микрокомпьютер GMC-4

Reading time3 min
Views5.6K
По наводке Сергея Вакуленко, я купил GMC-4. Все-таки в подобных устройствах есть какой-то неповторимый шарм. Заказал в забавном японском магазине гаджетов Japan Trend Shop.



GMC-4 — это четырех битный микро-компьютер. Характеристики компьютера:
  • размер слова 4 бита
  • восемь регистров, один регистр-флаг
  • 15 однословных и 16 двухсловных машинных инструкций
  • память программ 80 слов
  • память данных 16 слов
  • ПЗУ c набором из 7 игр: орган, угадай мелодию, дави моль, теннис, таймер, музыкальный плеер, генератор морзе
  • семь светодиодов — порт вывода шины адреса
  • семисегментный индикатор — порт вывода шины данных
  • 20-кнопочная клавиатура — порт ввода
  • динамик для вывода звука
  • кнопка сброса
  • питание от 3-х батареек AA


Вся архитектура описывается одним небольшим документом — Programming the Gakken GMC-4 Microcomputer.

Сегодня приехала моя посылка. GMC-4 является приложением к одному из выпусков журнала «Otona no Kagaku» издательства Gakken, 24-й номер за 2009 год. Коробка с конструктором приклеена к журналу. Все на японском.



Забавно, на обратной стороне коробки изображены машинные инструкции GMC-4. Все умещается в одну таблицу.



Плата, пищалка, подставка, фрагменты клавиатуры и винты.



Инструкция на японском — это жестко.



Ставим батарейки и закрепляем пищалку.



Плата.





Наклеиваем клавиатуру.





Включаем… It's alive! Alive!!!



Итак: клавиатура, семисегментник, под ним процессор, затем пипка «hard reset». Сверху семь светодиодов, управляемых индивидуально. Они, например, используются для отображения текущего адреса. Мне это все напомнило ЮТ-88. В его первой модификации был только семисегментный индикатор и похожая клавиатура.



Попробуем чего-нибудь написать. Например, простая программа, которая ждет нажатия на клавиатуре и затем отображает код нажатой кнопки на семисегментном индикаторе.

00: 0     KA 0       ; Считываем код кнопки (0-F) в A. Если нажата, то Flag=0, иначе Flag=1.
01: F00   JUMP 00    ; Если Flag=1 (не нажата), то переходим на 00.   
04: 1     AO         ; Выводим A на семисегментник и устанавливаем Flag=1
05: F00   JUMP 00    ; Если Flag=1 (тут всегда 1), то переходим на 00.

Для ввода жмем:

RESET 0 INCR F INCR 0 INCR 0 INCR 1 INCR F INCR 0 INCR 0 INCR RESET

Для запуска: RESET 1 RUN



Интересно, эта железка позволяет пошагово трассировать программу. Если запустить программу через RESET 6 RUN, то она будет останавливаться после каждой инструкции, и текущий адрес будет на верхних светодиодах в двоичном коде. Для выполнения следующей инструкции надо нажать INCR и т.д. Можно прервать программу, нажав RESET, и, например, посмотреть содержимое регистров. Они являются ячейками памяти. Какая никакая отладка.

Теперь программа по сложнее: бегущий огонек по верхним семи светодиодам с отображением текущего номера на семисегментнике.

00: 80    TIA 0     ; A=0
02: 1     AO        ; Выводим A на семисегментник.
03: 3     CY        ; Сохраняем A в Y.
04: E1    CAL SETR  ; Зажигаем светодиод, номер которого в Y.
06: 84    TIA 4     ; A=4
08: EC    CAL TMR   ; Задержка (A+1)*0.1 секунд (0.5 сек).
0A: E2    CAL RSTR  ; Гасим светодиод, номер которого в Y.
0C: 3     CY        ; Восстанавливаем A из Y.
0D: 91    AIA 1     ; A = A + 1
0F: C7    CIA 7     ; Если A=7, то Flag=0. Иначе Flag=1.
11: F02   JUMP 02   ; Переход на 02, если Flag=1. Также устанавливаем Flag=1.
13: F00   JUMP 00   ; Безусловный переход на 00 (Flag=1 после предыдущей команды).

Коды: 8 0 1 3 E 1 8 4 E C E 2 3 9 1 C 7 F 0 2 F 0 0



Что есть из средств разработки


Увы, почти все ресурсы на японском, но Google Translate творит чудеса.

Симулятор



Автоматический загрузчик



Языки программирования




Вместо заключения


Классная игрушка. Я начал программировать на Радио-86РК в машинных кодах, набивая их в Мониторе. Тут почти такие же ощущения. Выпуск журнала, приложением которого является GMC-4, судя по картинкам (я по-японски не читаю, увы), содержит иллюстрированную историю микропроцессоров, начиная с Intel 4004. Далее идут десятки различных примеров программ и проектов, в которых используется GMC-4. Красота!
Tags:
Hubs:
+28
Comments27

Articles

Change theme settings