Найти в Дзене

Ретро компьютер "ЮТ-88" (часть 5)

Предыдущая часть. Продолжаю собирать и налаживать ретро компьютер "ЮТ-88". Пришло время загрузить первую программу и запустить ее на компьютере. У данной версии компьютера есть два способа загрузки программ: с помощью магнитофона и через подключение по COM порту. Для аутентичности нужно было бы, конечно, реализовать именно вариант загрузки с магнитофона, но я выбрал другой путь, буду подключать "ЮТ-88" к своему домашнему компьютеру по COM порту и обмениваться данными через этот интерфейс. Разработчики схемы подключения "ЮТ-88" по COM порту взяли за основу ранее ими разработанный вариант сопряжения компьютера "Орион-128". Серверная программа, запускаемая на стороне IBM совместимого компьютера, называется "ORI-сервер". Она одна и та же для "Орион-128" и "ЮТ-88". Прошивка самого "ЮТ-88" разрабатывалась специально для него. Всю информацию по подключению можно посмотреть на форуме. Все прошивки я взял из последнего сообщения. Спасибо разработчикам за такую хорошую работу! В компьютере "ЮТ-8

Предыдущая часть.

Продолжаю собирать и налаживать ретро компьютер "ЮТ-88". Пришло время загрузить первую программу и запустить ее на компьютере.

У данной версии компьютера есть два способа загрузки программ: с помощью магнитофона и через подключение по COM порту. Для аутентичности нужно было бы, конечно, реализовать именно вариант загрузки с магнитофона, но я выбрал другой путь, буду подключать "ЮТ-88" к своему домашнему компьютеру по COM порту и обмениваться данными через этот интерфейс.

Разработчики схемы подключения "ЮТ-88" по COM порту взяли за основу ранее ими разработанный вариант сопряжения компьютера "Орион-128". Серверная программа, запускаемая на стороне IBM совместимого компьютера, называется "ORI-сервер". Она одна и та же для "Орион-128" и "ЮТ-88". Прошивка самого "ЮТ-88" разрабатывалась специально для него. Всю информацию по подключению можно посмотреть на форуме. Все прошивки я взял из последнего сообщения. Спасибо разработчикам за такую хорошую работу!

В компьютере "ЮТ-88" версии "Все в одном" сразу реализованы два COM порта на базе микросхемы КР580ВВ51А. Также сразу реализован квазидиск объемом 32 килобайта, размер не большой, но несколько программ влезет. Сам квазидиск состоит из ПЗУ и микросхемы UT62256. ПЗУ содержит программу управления квазидиском и COM портом. В схему добавлена батарейка, чтобы данные, загруженные в квазидиск не стирались. Подключать "ЮТ-88" к компьютеру необходимо по COM1, как использовать второй COM порт я пока не знаю. На следующей схеме представлены все компоненты для работы квазидиска и COM портов в "ЮТ-88":

Схема управления квазидиском и COM портами компьютера "ЮТ-88".
Схема управления квазидиском и COM портами компьютера "ЮТ-88".

Две перемычки J2 и J3 позволяют переключить работу квазидиска от ПЗУ или от UT62256, в один момент времени может работать только что-то одно.

Для подключения "Ют-88" к моему домашнему компьютеру выбрал первый попавшийся переходник USB-RS232 с хорошими отзывами. Также подобрал плату с клеммами для удобного подключения. Сразу скажу, что не рекомендую покупать такой переходник, скорее всего работать не будет. Да и плата с клеммами мне, в последствии, не понадобилась. У переходника, ради интереса, срезал пластик, чтобы посмотреть что внутри. В нем безымянная залитая микросхема, плата не отмытая от флюса (на фотографии она уже отмыта), качество очень низкое. Несколько фотографий:

Драйвера в Windows 11 ставятся автоматически, определяется плата как "USB-SERIAL CH340":

"USB-SERIAL CH340" в списке устройств компьютера.
"USB-SERIAL CH340" в списке устройств компьютера.

Максимальная скорость передачи данных, на которую с этим переходником не ругается программа ORI-сервер - это 9600. При попытке установить скорость больше возникает такая ошибка:

Ошибка подключения ORI-сервера к COM порту.
Ошибка подключения ORI-сервера к COM порту.

В тот момент у меня еще не было знаний в использовании COM портов и я несколько вечеров потратил на разные тесты, но сопряжения компьютеров так и не получилось сделать. "ORI-сервер" на скорости 9600 писал, что подключение произошло, но "ЮТ-88" к серверу не подключался. Пытался установить меньшие скорости и другие настройки COM порта, т.к. на большие скорости выдавалась ошибка, безрезультатно.

На следующей фотографии программа работы с квазидиском. Левая половина отображает сам квазидиск, правая должна отображать содержимое сервера. Внизу в квадратных скобках должно быть количество файлов на диске, но для сервера там высвечивается "[-]", что говорит об ошибке:

Программа управления квазидиском на "ЮТ-88".
Программа управления квазидиском на "ЮТ-88".

Небольшое отступление от темы. На экране "ЮТ-88" вверху не видно одну строку (хорошо видно на фотографии выше). Мои скудные познания привели меня к этой части схемы:

Часть схемы, отвечающая за видео изображение "ЮТ-88".
Часть схемы, отвечающая за видео изображение "ЮТ-88".

Думаю поиграться с номиналом конденсаторов, предполагаю, что изменение номинала C9 улучшит ситуацию. Электролитов у меня сейчас нет, заказал, когда придут буду экспериментировать, а пока оставлю так.

Продолжаю. В итоге я выяснил, что сама микросхема КР580ВВ51А исправна, схема вся рабочая. Порты #D0 и #D1 работают. Пришел к выводу, что проблема в переходнике USB-COM. Опять поизучал в интернете теорию и разные переходники и нашел полноценный USB-COM переходник на чипе Prolific PL2303GS, он значительно дороже, но зато он полноценно эмулирует сигнал COM порта, может работать на больших скоростях, а именно этого не хватало в предыдущем переходнике. Но для работы он опять не подходит, у него для единицы формируются положительные импульсы, а для нуля отрицательные. Выяснил, что для правильной работы с КР580ВВ51А требуется конвертировать сигнал RS232 в TTL, в котором единица это ~5 вольт, а ноль - близкое к нулю значение. Для конвертации в TTL прикупил еще конвертер "RS232 в TTL / Адаптер MAX3232". Конвертеру требуется отдельное питание, мой вариант может питаться от 3.3 или 5 вольт. Ура, заработало сопряжение на скорости 38400. На фотографии сам переходник и конвертер:

USB-COM переходник на чине Prolific PL2303GS и конвертер "RS232 в TTL / Адаптер MAX3232".
USB-COM переходник на чине Prolific PL2303GS и конвертер "RS232 в TTL / Адаптер MAX3232".

Вот так определился этот переходник:

USB-COM переходник на чине Prolific PL2303GS в списке устройств компьютера.
USB-COM переходник на чине Prolific PL2303GS в списке устройств компьютера.

Мне показалось, что такое подключение через переходник, да еще и конвертер, не оптимален. Решил еще поискать варианты и нашел конвертер "USB в TTL (RS232) на базе CH340G, адаптер USB/UART + CTS, RTS" (такое название у продавца):

Конвертер "USB в TTL (RS232) на базе CH340G, адаптер USB/UART + CTS, RTS".
Конвертер "USB в TTL (RS232) на базе CH340G, адаптер USB/UART + CTS, RTS".

Определяется он также, как и первый переходник:

Конвертер USB в TTL (RS232) на базе CH340G, адаптер USB/UART + CTS, RTS в списке устройств.
Конвертер USB в TTL (RS232) на базе CH340G, адаптер USB/UART + CTS, RTS в списке устройств.

Используют этот адаптер для прошивок и программирования разных устройств, но для сопряжения моих компьютеров он тоже прекрасно подходит. В общем рекомендую. Еще хочу прикупить вот такой переходник, как на фото ниже, вывести его на заднюю часть будущего корпуса и можно будет обычным проводом USB-microUSB соединять компьютеры, есть аналогичный USB-Type-C, тоже, думаю, будет работать:

Переходник USB-microUSB.
Переходник USB-microUSB.

Теперь я хочу рассказать как я настраивал сопряжение.

Первым делом я скачал архив из сообщения на форуме. В этом архиве находятся:

  • "MONITOR-F_PRUSAK_SROM.bin" - основная прошивка компьютера, устанавливаемая в ПЗУ D201. У меня ПЗУ уже ранее была прошита, но я ее прошил заново этим файлом;
  • "MONITOR-F_UT88_SROM.bin" - прошивка ПЗУ оригинального "ЮТ-88". Эта прошивка мне не нужна;
  • "ROMD_8KB.bin" - прошивка управления квазидиском. Я установил эту прошивку в ПЗУ D23. На всякий случай тоже прошил заново, т.к. предыдущая прошивка была из другого источника;
  • "HELP$.ori", "ORI-CHAN.ori", "UPDATE$.ori" - программы, которые будут использоваться для настройки работы квазидиска. Эти программы переписал в отдельный каталог.

Далее я подключил "Ют-88" к домашнему компьютеру и настроил параметры порта в списке устройств домашнего компьютера. Там потребовалось только установить скорость 38400. Вот так выглядит мой "ЮТ-88", подключенный с помощью переходника к домашнему компьютеру:

Ретро компьютер "ЮТ-88", подключенный к моему домашнему компьютеру.
Ретро компьютер "ЮТ-88", подключенный к моему домашнему компьютеру.

В первом сообщении форума необходимо скачать серверную программу "oriserv.exe". Это не дистрибутив, а исполняемый файл, его нужно перенести в отдельную папку в удобное место. Запустить "ORI-сервер" и выполнить настройку подключения, аналогично настройке COM порта в списке устройств компьютера:

Первый запуск "ORI-сервера".
Первый запуск "ORI-сервера".

Запуск сервера произойдет только после его перезапуска, может быть я не прав, но у меня не всегда "ЮТ-88" видел сервер после изменения настроек. Теперь нужно указать папку, в которой содержаться файлы "HELP$.ori", "ORI-CHAN.ori", "UPDATE$.ori", сервер будет отображать файлы указанной папки. Если в папке были добавлены новые файлы, то в "ORI-сервере" необходимо выполнить обновление:

Штатно работающий "ORI-сервера".
Штатно работающий "ORI-сервера".

Для "ЮТ-88" функционал этого сервера работает не в полном объеме, он был разработан для "Орион-128". В нем будет требоваться только обновлять папку с файлами, остальное работать не будет. При попытке выполнить какой-либо файл (двойной щелчок мыши на нем) будет ошибка чтения с кодом 21, как я понял, такое поведение и должно быть.

Еще хочу отметить, что сервер отображает только файлы в формате "Орион-128", потребуется файлы с программами для "ЮТ-88" немного отредактировать. Об этом я расскажу дальше. Вместе с файлами могут быть и папки, которые организуют удобную иерархию, программа управления квазидиском на самом "ЮТ-88" также умеет перемещаться в иерархии этих папок.

Запускаю "ЮТ-88", отображается стартовое меню:

Стартовое меню компьютера "ЮТ-88".
Стартовое меню компьютера "ЮТ-88".

Хочу немного подробнее рассказать о разных способах работы компьютера с квазидиском. Работа с квазидиском доступна только в "Монитор-F" - это пункты меню "2", "3" и "5". Необходимо учесть, что в режиме "2 - Монитор-F и Монитор-0" программа "Монитор-0" будет сразу загружена в память начиная с адреса "0000". Если попытаться запустить из квазидиска какую-либо программу, которая должна размещаться там же, то, скорее всего, она работать не будет (вообще надо это проверить), т.к. будет конфликт с "Монитор-0", для таких программ надо выбрать режим "3" или "5". Может быть и другая ситуация, когда на квазидиске содержится программа, которую надо запускать именно из "Монитора-0", вот тогда нужно выбрать режим "2", загрузить программу из квазидиска, затем запустить "Монитор-0", нажав кнопку "Уст" на мини клавиатуре, и уже из "Монитора-0" запустить эту программу.

Компьютер имеет два режима "Монитор-F, EI" и "Монитор-F, DI". В первом варианте процессору будут разрешены прерывания, т.е. он будет получать сигналы от часового генератора, во втором режиме прерывания будут запрещены. Это надо учитывать, программы могут требовать наличие прерываний или наоборот.

Перед первым запуском любого из "Монитора-F" требуется снять джампер J3 и установить его на J2, т.е. активизировать ПЗУ квазидиска, иначе оболочка квазидиска не запуститься. Запускаю "Монитор-F". Если установлены указанные прошивки, то сразу будет запущена оболочка квазидиска. Если оболочка не требуется, то нужно нажать "X", чтобы выйти из оболочки, станет доступна командная строка "Монитор-F". При перезапуске "Монитор-F" теперь не будет запускать оболочку квазидиска, чтобы ее запустить надо выполнить команду "X", которая опять активизирует автозапуск квазидиска. Оболочка квазидиска при первом ее использовании выглядит так:

Первый запуск оболочки квазидиска компьютера "ЮТ-88".
Первый запуск оболочки квазидиска компьютера "ЮТ-88".

Оболочка квазидиска состоит из двух панелей. Левая панель показывает содержание ПЗУ или микросхемы UT62256, в зависимости от установленного положения джампера. Правая панель отображает содержимое папки "ORI-сервера". Клавишами курсора можно перемещаться между панелями и файлами. Клавиша "N" обновляет обе панели. Программа "HELP$" рассказывает об управлении оболочкой:

Описание команд оболочки квазидиска ретро компьютера "ЮТ-88".
Описание команд оболочки квазидиска ретро компьютера "ЮТ-88".

Переставляю джампер в положение J3, выключать компьютер не нужно. Командой "N" обновляю панели. Левая панель будет пустая и индикатор количества файлов будет в виде "[-]". Такая ситуация возникает, если UT62256 не была инициализирована, либо села батарейка и нужно ее поменять, либо микросхема вынималась из панельки:

Не инициализирована микросхема UT62256 компьютера "ЮТ-88".
Не инициализирована микросхема UT62256 компьютера "ЮТ-88".

Для инициализации UT62256 требуется перейти в левую панель и нажать клавишу "F", будет выполнена запись оболочки квазидиска, индикатор количества будет в виде "[0]":

Инициализированная микросхема UT62256 квазидиска компьютера "ЮТ-88".
Инициализированная микросхема UT62256 квазидиска компьютера "ЮТ-88".

Авторы рекомендуют дополнительно обновить оболочку до последней версии, для этого в правой панели надо выполнить программу "UPDATE$":

Обновление оболочки квазидиска компьютера "ЮТ-88".
Обновление оболочки квазидиска компьютера "ЮТ-88".

Вот теперь все готово для полноценной работы компьютера "ЮТ-88", запуск оболочки квазидиска будет выполняться из UT62256. Рекомендую сразу записать туда "HELP$", чтобы он был всегда доступен:

Подготовленная оболочка квазидиска компьютера "ЮТ-88".
Подготовленная оболочка квазидиска компьютера "ЮТ-88".

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

Все готово, пора записать на квазидиск первую программу и запустить ее. Для примера буду запускать игру "Клад". В интернете нашел файл с этой игрой в формате "rku". Формат очень простой: в начало добавлены четыре дополнительных байта, указывающие на начало и конец области памяти компьютера, в которой эта программа должна располагаться. Чтобы она была доступна в "ORI-сервере" необходимо модифицировать файл. Делать я это буду в бинарном редакторе "HxD", он бесплатный, его легко найти в интернете. Загружаю в него файл "klad.rku", удаляю в файле первые четыре байта:

Игра "Клад" в редакторе "HxD".
Игра "Клад" в редакторе "HxD".

Далее добавляю в начало 32 байта. Первые 16 байт у всех файлов "ORI-сервера" одинаковые:

4F 72 69 6F 6E 2D 31 32 38 20 66 69 6C 65 0D 0A

Следующие восемь байт должны содержать имя программы, дополненные пробелами (код 20H). Далее в двух байтах указывается начальный адрес в памяти, сначала младший байт адреса, потом старший, для игры "Клад" - это "00 00". Далее два байта, в которых указывается длина. Длина игры 13141 байт или в шестнадцатеричном представлении 3355H, в файле, по аналогии с начальным адресом, надо указать сначала младшие байт длины, потом старший - "55 33". Последние четыре байта для всех файлов одинаковые "00 00 CA 91", для чего они нужны мне не известно, заполнил по аналогии с другими программами, все работает:

Файл игры "Клад" в формате "ORI-сервер".
Файл игры "Клад" в формате "ORI-сервер".

Теперь нужно изменить расширение файла на "ori", переместить файл в папку "ORI-сервера" и нажать в интерфейсе сервера на "Обновить". Список файлов будет обновлен:

Игра "Клад" в списке файлов "ORI-сервера".
Игра "Клад" в списке файлов "ORI-сервера".

Панели в оболочке квазидиска тоже надо обновить клавишей "N", в правой панели появился файл с игрой "Клад", если на нем нажать "С", то он будет скопирован в память квазидиска:

Игра "Клад", записанная в память квазидиска компьютера "ЮТ-88".
Игра "Клад", записанная в память квазидиска компьютера "ЮТ-88".

Загружать и запускать программы можно как из памяти квазидиска, так и из сервера. Для этого нужно выбрать файл и нажать клавишу "Enter". В данном случае программа будет только загружена в память компьютера, запуска программы не произойдет, так задумано. Чтобы программа сразу запускалась, нужно еще внести некоторые изменения, о которых я расскажу ниже. Этот режим очень удобный, когда, например, нужно загрузить программу, выполняемую в "Монитор-0" или в оболочке "Бейсика". Для игры "Клад" это не удобно, но, для примера, решил показать и такой вариант. Для запуска игры выхожу из оболочки квазидиска клавишей "X", в командной строке выполняю команду "G0", т.к. программа теперь размещается начиная с нулевого адреса:

Запуск игры "Клад".
Запуск игры "Клад".

Вот он первый запуск программы на моем "ЮТ-88". Я очень доволен, у меня ушло на это много вечеров, даже уже руки опускались, но я поборол себя! Игра "Клад" (две фотографии):

И последнее, что хочу рассказать - это как сделать автоматический запуск. Для этого нужно в имя файла добавить символ доллара. Сделать это нужно не только в самом имени файла, но также и в заголовке файла. Для этого опять потребуется редактор "HxD" и в нем в конец имени файла нужно добавить "24H":

Добавление символа "$" в имя файла, чтобы файл запускался автоматически.
Добавление символа "$" в имя файла, чтобы файл запускался автоматически.

Обновил список файлов в "ORI-сервер":

Изменилось имя файла с игрой "Клад".
Изменилось имя файла с игрой "Клад".

Обновил панели оболочки квазидиска клавишей "N" и переписал игру в память квазидиска:

Оболочка квазидиска компьютера "ЮТ-88".
Оболочка квазидиска компьютера "ЮТ-88".

Теперь, если нажать на файле клавишу "Enter", то программа будет загружена в память компьютера и сразу запущена.

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

Продолжение следует...

Следующая часть.