ЮТ-88 на плис (Altera DE1)

 

Описание проекта

Для работы компьютера изначально мной была создана плата расширения.  Схему и разводку платы можно скачать здесь. Эта плата содержит шесть 7-ми сегментных индикаторов и клавиатуру 4х4. Клавиатура была приобретена на ebay за $9. Подключается плата расширения через разъем GPIO_1 платы DE1 (рис. 1).

Рис. 1

Кроме этого плата содержит аудио вход и выход, “пищалку” и TV-выход. Сделано это было для моих экспериментов и не требуется для работы компьютера.

Более того, сейчас для запуска компьютера не требуется даже эта плата, т.к. 7-ми сегментные индикаторы дублируются на экране VGA монитора (отключается выключателем SW(0) на плате DE1), а подключенная PS/2 клавиатура может работать в режиме кейпада. Режим работы клавиатуры выбирается выключателем SW(1) на плате DE1.

Два правых 7-ми сегментных индикатора на плате DE1 используются для отображения скан-кода нажатой клавиши на клавиатуре.

Дисплей подключается к VGA выходу и отображает информацию в режиме 800х600 60Гц. Разрешение компьютера 384х224. Таким образом выполняется дублирование каждой точки по горизонтали и вертикали, т.е. одна точка компьютера занимает 4 точки  дисплея. Но даже удвоения недостаточно чтобы покрыть весь дисплей (получается 768х448), поэтому остались неиспользуемые поля. Верхнее поле я использовал для вывода 7-ми сегментных индикаторов.

В качестве магнитофонного входа/выхода используются разъемы LINE IN и LINE OUT на плате DE1. В качестве магнитофона может выступать CD или MP3 плейер, компьютер или  любое другое устройство способное проигрывать wav или mp3 файлы на выход наушников. Громкость сигнала с этих устройств подбирается экспериментально. Некоторые программы для загрузки в wav формате вы можете найти в разделе “СКАЧАТЬ”.

Кроме того, используется JTAG интерфейс для записи и чтения SRAM памяти. Т.к. микросхема SRAM памяти используется как ОЗУ (младшие 8 бит шины данных), так и квазидиск (старшие 8 бит шины данных), то этот интерфейс позволяет записать и восстановить состояние компьютера при помощи утилиты DE1 CONTROL PANEL, входящий в комплект платы DE1. В разделе “СКАЧАТЬ” также приводится пример образа сделанного при помощи этой утилиты, который позволяет быстро загрузить в компьютер ОС CP/M вместе с комплектом программ на квазидиске.

ЗАПУСК В МИНИМАЛЬНОЙ КОНФИГУРАЦИИ

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

0000 - 0FFF – ПЗУ с программой “Монитор-0” и библиотекой математических подпрограмм. Это ПЗУ может быть отключено и заменено областью ОЗУ выключателем SW[2] (положение “0”).

2000 - 23FF – ПЗУ с разными программами для миниконфигурации. Эти программы не могут быть запущены из ПЗУ, а должны быть скопированы в ОЗУ начиная с адреса С000 и запущены оттуда. Это ПЗУ также может быть отключено и заменено областью ОЗУ выключателем SW[4] (положение “0”). Перечень программ этого ПЗУ и инструкции по их запуску см. в разделе “МОНИТОР-0”.

С000 - С3FF – ОЗУ минимальной конфигурации. На самом деле в минимальной конфигурации данной реализации доступна вся область памяти с 1000 по FFFF (если ПЗУ “Монитора-F” отлючено выключателем SW[3]).  Таким образом, если отключить еще и ПЗУ программ (выключатель SW[4] в положении “0”), то доступный объем ОЗУ составит 60Кб.

Кроме того, содержимое ячеек 9000, 9001 и 9002 выводится на 7-ми сегментные индикаторы платы расширения.


Выключатель SW[0] отвечает за включение индикации 6-ти семисегментных индикаторов на VGA дисплее, подключенном к плате DE1.

Выключатель SW[1] переключает клавиатуру в режим кейпада. Это означает, что если этот выключатель находится в положении “1”, то клавиатура PS/2, подключенная к плате DE1, работает как кейпад минимальной конфигурации. Иначе задействована клавиатура платы расширения.

В режиме работы с платой расширения, клавише “ШН” соответствует кнопка KEY[3] на плате DE1, а клавише “СБРОС” - кнопка KEY[0].

В режиме работы с клавиатурой PS/2, на клавиатуре задействованы все цифровые клавиши и клавиши A, B, C, D, E и F. В качестве клавиши “ШН” используется клавиша TAB, а клавиши “СБРОС” - ESC.


Таким образом, суммируя вышесказанное, для работы компьютера в минимальной конфигурации выключатели SW должны находиться в следующих положениях:

SW[0] - “0” для отображения 7-ми сегментных индикаторов только на плате расширения, “1” - дублирование их на VGA дисплее.

SW[1] - “0” для ввода информации с помощью кейпада на плате расширения, “1” - использование клавиатуры PS/2 для ввода в режиме кейпада.

SW[2] - “1”

SW[3] - “0”, если планируется использовать область оперативной памяти F400-FFFF.

SW[4] - “1” для включения ПЗУ с программами. После копирования программы в ОЗУ это ПЗУ можно отключить и использовать его адресное пространство как ОЗУ. Если записанные в это ПЗУ программы не нужны совсем, то  этот выключатель можно оставить в положении “0”.

SW[6] - “1” включено прерывание от 1Гц таймера

SW[8] - “0”. Положение “1” переводит процессор в режим HOLD. Используется для работы с DE1 CONTROL PANEL.

SW[5], SW[7], SW[9] – положение этих выключателей не имеет значения в минимальной конфигурации.

ЗАПУСК В ПОЛНОЙ КОНФИГУРАЦИИ

Для включения  компьютера в полной конфигурации необходимо подключить ПЗУ “Монитора-F”  (выключатель SW[3] в положении “1”). Далее следует запустить Монитор-F командой 7 F800.

Чтобы в режиме полной конфигурации использовать всю доступную область ОЗУ, после запуска Монитора-F можно отключить уже ненужные ПЗУ с Монитором-0 и программами для минимальной конфигурации (выключатели SW[2] и SW[4] в положение “0”). В таком случае пространство памяти будет распределено следующим образом:


0000 – DFFF – область ОЗУ

E000 – E7FF – область видеопамяти

E800 – EFFF – дубль области памяти. Ввиду особенностей конфигурации компьютера ЮТ-88 эта область памяти дублирует основную область видеопамяти

Что в области F000-F3FF?

F400 – F7FF – служебная область ОЗУ, используемая Монитором-F для своих нужд.

F800 – FFFF – ПЗУ с Монитором-F.


При отключенных ПЗУ Монитора-0 доступный объем ОЗУ полной конфигурации составляет 56Кб.


Далее необходимо перевести клавиатуру PS/2 в режим работы с полной конфигурацией, переключив выключатель SW[1] в положение “1”. Можно также отключить отображение 7-ми сегментных индикаторов минимальной конфигурации на дисплее, переведя выключатель SW[0] в положение “0”.


Кроме того, я добавил в схему дополнительное ОЗУ с уже записанной там игрой “Тетрис”. При включении оно подставляется в область 3000 - 3FFF и заменяет собой стандартное ОЗУ. Включение этой ОЗУ производится переводом выключателя SW[5] в положение “1”. В целом это ОЗУ ведет себя идентично стандартному, поэтому оно никак не сказывается на работе компьютера даже если оставлено включенным. Для запуска игры надо перевести выключатель SW[5] в положение “1” и ввести команду G3000. При этом следует иметь ввиду, что т.к. это ОЗУ, а не ПЗУ, то игра может быть повреждена если была произведена запись в эту область памяти, когда она была включена. Тогда для ее восстановления потребуется загрузка игры с “магнитофона” или выключение и включение платы DE1.


Таким образом, для запуска компьютера в полной конфигурации выключатели должны находиться в следующих положениях:

SW[0] - “0” для отображения 7-ми сегментных индикаторов только на плате расширения, “1” - дублирование их на VGA дисплее.

SW[1] - “0” - использование клавиатуры PS/2 для ввода информации

SW[2] – перевести в “0” после запуска, чтобы освободить область памяти 0000-0FFF под ОЗУ. Убедитесь, что SW[6] переведен в “0” перед этим.

SW[3] - “1”

SW[4] -  “0”, чтобы освободить область памяти 2000-23FF под ОЗУ

SW[5] –  “1” если хотите использовать область ОЗУ 3000-3FFF с уже записанной игрой “Тетрис”, иначе “0”.

SW[6] – отвечает за прерывание таймера 1 Гц. Должен быть установлен в “0” перед отключением ПЗУ Монитора-0.

SW[7] – “0”. Этот выключатель отвечает за знакогенератор вывода ни дисплей компьютера. При значении “0” используется стандарнтный знакогенератор ЮТ-88 с только заглавными русскими и латинскими буквами. При работе с ОС CP/M некоторые программы используют символы из знакогенераторов иностранных компьютеров, которые содержат строчные латинские буквы на месте русских. В этом случае, для корректного отображения на дисплее, следует переключить знакогенератор на альтернативный (с латинскими строчными буквами вместо русских) путем установки этого выключателя в положение “1”. Делать это можно без перезагрузки компьютера.

SW[8] - “0”. Положение “1” переводит процессор в режим HOLD. Используется для работы с DE1 CONTROL PANEL.

SW[9] – положение этого выключателей не имеет значения.

КЛАВИАТУРА

В режиме кейпада для минимальной конфигурации (SW[1] установлен в положение “0”) задействованы только цифровые клавиши от ‘1’ до ‘0’, а также буквенные ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ и ‘F’. В качестве клавиши ‘ШН’ выступает клавиша ‘Tab’ или кнопка KEY[3] на плате DE1. Сброс можно произвести клавишей ‘Esc’ или кнопкой KEY[0] платы DE1.


В режиме полной клавиатуры (SW[1] установлен в положение “1”) задействованы следующие клавиши:

 
X