Copyleft HUMONGOUS CP/M Archives
При поддержке журналаRadio Magazine
RU | EN

CRISS CP/M

Модули расширения и переходники

Шлейфы к разъёму MPS MD8

В версии МАКС все интерфейсы в связи с дефицитом места на задней панели выведены но один коммуникационный разъём, обозначенный как MPS.

CRISS CP/M MPS socket

Для подключения к разъёму MPS используется разъём типа Mini Din 8pin Male на кабель. Для подключения внешних устройств потребуется разветвитель, для него рекомендуется использовать 4-жильный провод от USB-устройств, длина кабеля разветвителя между разъёмами должна быть примерно 20 см.

Интерфейсы, выведенные на разъём MPS:

Mini Din 8pin Male Plug

  • PS/2 клавиатура
  • порт RS-232 для подключения принтера или других периферийных устройств
  • I2C шина для блока GPIO
  • I2C шина для интерфейса LPT

В простейшем случае для МАКС версии необходимо сделать внешний коннектор для подключения клавиатуры. Монтажная схема и рекомендованные цвета проводников показаны на рисунке. Вид со стороны монтажа.

CRISS CP/M MD8 to keyboard connector

В случае необходимости подключения принтера или другого внешнего устройства с интерфейсом RS-232, разветвитель включает в себя коннектор DB9 male:

CRISS CP/M MD8 to keyboard/printer connector

Распинловка полного варианта переходника показана на рисунке.

CRISS CP/M Переходник MD8

GPIO-модуль

Стандартный модуль GPIO позволяет использовать 24 цифровые линии ввода/вывода. Конструктивно модуль реализован в форм-факторе разъема DB25, одновременно он является и интерфейсом LPT-порта, поддержка которого встроена в BIOS.

CRISS CP/M модуль GPIO

Для подключения различных внешних устройств в компьютере физически используются линии SCL/SDA контроллера периферийных устройств, а для управления ими -- порты 215--218. Команды вывода реализованы так же в виде ESC-последовательностей. Аппаратно модуль построен на базе расширителей PCF8574A. Не забывайте, что выходной каскад микросхем PCF8574(A) имеет так называемый "слабый" (weak) pull-up резистор сопротивлением 100 кОм и, фактически, может рассматриваться как выход с открытым стоком.

Подробно блок GPIO со схемой и несколькими вариантами печатных плат опубликован в журнале Радио №1 за 2022 год.

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

Подключение манипулятора мышь

Начиная с версии 0.21 микропрограммы КВУ появилась поддержка PS/2 манипулятора мышь в стандартном виде: перемещение и три клавиши, колё- сико не поддерживается. Мышь подключается к линиям интерфейса I 2 C по следующей схеме: SDA -- DATA, SCL -- CLOCK. Для управления используются те же порты, что и для устройств GPIO.

Мышть

Примерный порядок работы с мышью из пользовательской программы следующий:

  • Инициализировать мышь, записав команду 0xE0 в порт 215, сделать задержку 5 мс, проверить значение в порту 215. Если значение равно 1, это значит, что мышь не подключена. Если инициализация прошла успешно, будет возвращено значение 0 и активированное состояние мыши будет инициализироваться индикацией светодиода NumLock на клавиатуре.
  • Для опроса необходимо записать команду 0xE1 в порт 215, выдержать паузу 10 мс и проверить код ошибки в порту 215. Если произошла ошибка чтения, опрос необходимо повторить.
  • Опрос состояния возвращает следующие значения: порт 216 -- состояние клавиш: биты 0--2 соответствуют левой, правой и средней кнопке соответственно, в битах 4--6 сохраняются прошлые значения, что позволяет фиксировать нажатия на клавиши, бит 3 -- бит арбитража; порты 217 и 218 возвращают накопительное перемещение мыши по осям X и Y в формате восьмибитных знаковых целых чисел, эти значения не сбрасываются при опросе, напротив, программа должна анализировать перемещение и корректировать значения записью в соответствующий порт для корректной работы счётчиков перемещений. По опыту приемлемым является накопительное значение +/-60 для фиксации перемещения.
  • После окончания работы программы необходимо деактивировать устройство и освободить интерфейсную линию, записав 0xE4 в порт 215, индикатор NumLock при этом погаснет. Аппаратно инициализировать мышь можно, записав команду 0xE2 в порт 215.

В версиях микропрограммы для ЦПУ версии с 4.62 предусмотрена работа мыши и без необходимости программирования. Нажатие комбинации клавиш Ctrl-Alt-NumLock активирует режим "автомышь", при котором перемещения передаются как нажатие клавиш стрелок, а нажатия кнопок -- настроенными кодами, по умолчанию левая кнопка возвращает код 32 (пробел), правая -- ESC, но эти настройки могут быть изменены. Активный режим "автомышь" индициируется индикатором NumLock.

© Copyright Radio / Радио / OGSS / НГСС / I. Reshetnikov / Решетников И.С. 2020-2022