2 March 2015

Ностальгия по КУВТ: запускаем эмулятор MSX под Linux

Computer hardwareHistory of ITSoftwareDemosceneDesktop PC's

Предисловие


Знакомство с компьютером каждый из нас начинал по своему и в разное время. Кто-то помнит ДВК, «Искры» и «Агаты», а кто-то сразу сел за IBM PC под Win 9x. Довольно часто попадаются ностальгические статьи, читать которые всегда интересно, ибо написанное сравниваешь с личным опытом и вспоминаешь, как было у тебя.

А вот у меня было так:

Yamaha КУВТ2 — ученическое место


Такие «рабочие станции» — Yamaha YIS503III, в середине-конце 90х были в нашем школьном компьютерном классе. Их было 9 штук + учительский компьютер и матричный принтер. Всё это дело соединялось локальной сетью с топологией «шина» Монитор у ученических машин был в 256 оттенках зеленого

Монохромный ученический дисплей




Учительский компьютер был «покруче» — YIS805/128. Монитор у него был цветным и имелись два 3,5" «флопаря» под дискеты емкостью 720 Кб. HDD у этого компьютера не было, зато были два слота под картриджи.

Внешний вид учительского десктопа не уступал тогдашнему IBM PC (конец 80х)


Сердцем обеих машин был 8-разрядный Zilog Z80A, о чем кстати я до последнего времени не знал, считая что спектрумовский процессор прошел мимо меня.

Экран загрузки учительской машины


Что касается ПО, то традиционно для 8-биток того времени, в ПЗУ был зашит интерпретатор Basic, специально портированный майкрософтом для машин стандарта MSX. Были и ОС — CP/M, с которой мне не довелось столкнуться и MSX-DOS. На дискетах имелся так же компилятор Pascal.

В десятом классе у нас началась информатика. Дорвавшись до этих компьютеров, я последние два школьных года постоянно, что называется «ошивался» в их окресностях. Хочется сказать спасибо нашему учителю информатики, Тынянскому В. В., который всячески поощерял нашу тягу к изучению вычислительной техники и каждую неделю проводил во внеурочное время, на общественных началах, факультативные занятия. Там я освоил бейсик и DOS, а потом, единственный из нашего выпуска начал программировать на паскале. Паскаль требовал загрузки DOS с дискеты, и с дискеты же запускалась и примитивная IDE, так что со временем я окуппировал учительскую машину — так было проще, ведь нубские завешивания системы были тогда не редкостью.

Интернет тогда не было практически ни у кого. ПК в классическом смысле был только у одного нашего одноклассника (с Windows 95!!! Да, это было круто!!!), о машинах с тактовой частотой в 1000 МГц говорили тогда как о призрачной легенде… ДА, в общем были старые, добрые времена.

На фото хорошо видна клавиатура этих компьютеров. Обратили внимание на английскую раскладку? В универе, сидя за Robotron'ом с привычной нам раскладкой я долго не мог переучиться…

К чему это я всё? Да к тому, что на ностальгические мотивы меня сбила случайная находка — эмулятор этого чуда под названием OpenMSX. Сердце защимило и два вечера я провел за установкой/настройкой/освоением. Что я предлагаю? Предлагаю установить всё это вместе и посмотреть, как оно было, в те далекие и безвозвратно ушедшие времена КУВТ

1. Устанавливаем и запускаем OpenMSX


Преимуществом именно этого эмулятора можно назвать его кроссплатформенность. На официальном сайте есть дистрибутивы для всех популярных ОС. Я, как убежденный линуксоид, буду рассказывать об установке применительно к Linux, а точнее Arch Linux, в пользовательском репозитории AUR которого, есть PKGBUILD'ы соответствующих пакетов.

Про сборку ПО PKGBUILD'ами подробно писать не буду — арчевод сам знает, для убунтовода или поклонника федоры это всё равно не актуально. Скажу лишь, что нужет сам openmsx, и порекомендую фронтэнд к нему под кричащим названием «катапульта» — openmsx-catapult. Хоть консоль и Ъру, но для удобства погружения в ностальгию самое то воспользоваться окошками и кнопочкам.

Итак, мы собрали и установили необходимые нам пакеты, что дальше? Дальше нам надо правильно указать эмулятору конфигурацию эмулируемой аппаратной платформы — меня интересовала Yamaha YIS805/128. Из коробки её модели нет в эмуляторе, поэтому идем по ссылке, где расположен настоящий клад для MSX-фагов. Качаем systemroms.zip. Распаковываем архив:

$ unzip systemroms.zip

И копируем содержимое в каталог ресурсов эмулятора:

# cp -rv systemroms/* /usr/share/openmsx/systemroms/

Запускаем «катапульту»:

$ catapult

Она спросит нас о местонахождении бинарников эмулятора и каталогов с ресурсами:



Убедившись, что все верно, жмем ОК. Программа проверит указанные пути и составит список доступных конфигураций виртуального железа:



И покажет нам окно запуска эмулятора. В выпадающем списке «MSX type» я выбрал вожделенный YIS805/128:



Жмем Start, и…

Старые добрые времена возвращаются из небытия...


Появляется экран загрузки MSX, и сразу за ним — приглашение интерпретатора MSX Basic v 2.1



И, да, можно тряхнуть стариной и написать Hello World:



Текст можно вбивать прямо в эмуляторе, а можно копипастить через соответствующую вкладку «катапульты»:



И после клика на «Type» текст появится в окне эмулятора, нажатием F5 его можно запустить на исполнение:



Скриншоты делаем на вкладке Video Controls, нажатием кнопки Grab:



По умолчанию они сохраняются по пути ~/$USER/.openMSX/screenshots/. По идее путь можно поменять, но у меня это от чего-то не работает, скрины сохраняются только по дефолтным настройкам.

Итак, у нас есть работающая «ямаха», посмотрим теперь, что она умела

2. Загружаем CP/M


Образа диска c этой ОС (моей ровесницей!!!) не оказалось на ftp-сревере, указанном по ссылке выше, зато нашелся по ссылке, полученной из обсуждения на sourceforge. После распаковки в архиве обнаружились образы дисков: SYSTEM.DSK — загрузочная дискета CP/M и PROG.DSK — видимо какой-то дополнительный софт. «Вставляем» оба диска в виртуальные «флопари» — загрузочный в дисковод A. Чтобы загрузка состоялось, методом тыка эмулятору было указано подключить расширение Panasonic FS-CA1:



И жмем старт. Появляются сообщения загрузчика:

Процесс загрузки CP/M


А вслед за ними и приглашение командной строки CP/M. CP/M похожа на DOS, я с ней не знаком, но команда dir работает.

Содержимое дистрибутива


Что делать далее не знаю — не настолько олдфажный я олдфаг, чтобы помнить CP/M

3. Загружаем MSX-DOS 2.2


С DOS дела попроще — архив с дискетами лежит всё там же. Качаем его, распаковываем и выбираем образ MSXDOS2T.DSK. В настройках эмулятора ставим использовать раcширение msxdos2



После загрузки видим привычную DOS-консоль

MSX-DOS понимал досовский dir и *nix-вый ls — в школе я об этом не знал


В каталоге A:\tools этого старинного доса нашлись некоторые утилиты, привычные для unix: ls, grep, tail и некоторые другие:



В общем, с операционными системами всё ок. А что же с прикладным софтом?

4. Запуск прикладного софта: средства разработки


Нашелся и компилятор Turbo Pascal 3.0, очень похожий на тот, что я изучал тогда. Только вот находился он в некоем странном архиве с расширением *.lzh, которое после недолгого гугления идентифицировалось как LHA-архив, для которого в AUR есть соответствующий пакет. Ставим его распаковываем архив:

$ lha e turbo.lzh

На выходе имея:

-rw-r--r-- 1 maisvendoo users   768 апр 29  2023 cmdlin.pas
-rw-r--r-- 1 maisvendoo users  5504 апр 29  2023 lister.pas
-rw-r--r-- 1 maisvendoo users 11776 апр 29  2023 mcdemo.mcs
-rw-r--r-- 1 maisvendoo users  4608 апр 29  2023 mc.hlp
-rw-r--r-- 1 maisvendoo users   896 апр 29  2023 mc-mod00.inc
-rw-r--r-- 1 maisvendoo users  1664 апр 29  2023 mc-mod01.inc
-rw-r--r-- 1 maisvendoo users  3200 апр 29  2023 mc-mod02.inc
-rw-r--r-- 1 maisvendoo users  4480 апр 29  2023 mc-mod03.inc
-rw-r--r-- 1 maisvendoo users  8832 апр 29  2023 mc-mod04.inc
-rw-r--r-- 1 maisvendoo users 11136 апр 29  2023 mc-mod05.inc
-rw-r--r-- 1 maisvendoo users  6272 апр 29  2023 mc.pas
-rw-r--r-- 1 maisvendoo users 11776 апр 29  2023 nswp.com
-rw-r--r-- 1 maisvendoo users  6784 апр 29  2023 read.me
-rw-r--r-- 1 maisvendoo users 25472 апр 29  2023 tinst.com
-rw-r--r-- 1 maisvendoo users  4480 апр 29  2023 tinst.dta
-rw-r--r-- 1 maisvendoo users  3968 апр 29  2023 tinst.msg
-rw-r--r-- 1 maisvendoo users 30848 апр 29  2023 turbo.com
-rw-r--r-- 1 maisvendoo users 68188 мар  2 21:28 turbo.lzh
-rw-r--r-- 1 maisvendoo users  1536 апр 29  2023 turbo.msg
-rw-r--r-- 1 maisvendoo users  1152 апр 29  2023 turbo.ovr


М-де, похоже на то, что нам нужно. Теперь вопрос — а как это запихнуть в эмулятор?

Есть два пути. Первый — создать образ дискеты, о чем повествует соответствующий раздел документации. Там много вкусных вещей, но мы пойдем другим, более простым и быстрым путем. Создадим каталог и распакуем архив в него

$ mkdir -p ~/msx/tp
$ cd ~/msx/tp
$ lha e ~/install/openmsx/turbo.lzh

Туда же поместим и содержимое архива turbo_lib3.zip — дополнительные модули.

Теперь укажем наш каталог в качестве диска B.



Посмотрим, что вышло. Вышло отличною:

Каталог хостовой системы как диск «ямахи»


Запускаем паскаль:

B> cd tp
B> turbo


И… меня ждало разочарование. Запущенная среда сурово глючила, плевалась кракозябрами и висла. Поиски привели к разным версиям Turbo Pascal для DOS и CP/M, но ни одну из них пока не удалось привести к общему знаменателю. Что ж, оставлю это на потом, может пытливый читатель имеет в этом вопросе больший опыт.

4. Запуск прикладного софта: игры


Ну куда же без них. На MSX выходило масса игр, как разрабатываемых для него, так и портируемых с других платформ. Играми я всегда интересовался мало, но одна игрушка меня всё же зацепила, тогда, 15 лет назад, да так, что я с интересом прошел её до конца.

Название до сего дня я не помнил, а сюжет: летаем на вертолете, освобождаем пленных из бараков, попутно убивая врагов. И в названии было что-то похожее на Coper… В архивах барахла для MSX я её нашел. Называется она «Coplifter». Игра запакована архивом LHA, помещаем её в нашу папку-диск и распаковываем. Внутри будет два бинарника и «скрипт» на бейсике choplift.bas, для запуска игры

A>B:
B>cd games
B>basic choplift.bas

Запускается интерпретатор Basic, а вслед за ним — игра:

Обнадеживающее начало...


… она самая и есть — Choplifter!!!


Эмулятор «кушает» и ROM-ы с играми, коих, по уже многократно данной ссылке завались. Много ромов гуглится — тот же вертолетик я сначала запустил с рома, а уж потом разобрался с архивом и с запуском из-под дос.

Вместо эпилога



Возможно статья получилась больше эмоциональной чем практической. Свидание с детством, оно такое. Нерешенных вопросов по работе с эмулятором масса — тот же паскаль теперь не дает мне покоя. Но это дело не одного дня при наличии свободного времени.

Где-то в начале 2000-х, уже после окончания мной школы, в компьютерный класс закупили IBM PC на «пнях» с Windows 98 SE на борту. «Ямахи» отдали в школу какой-то деревеньки близ нашего райцентра. С ними уехали и дискеты с моим творчеством — квест про полет на Марс, «Морской бой», простецкая СУБД, написанная на паскале… Дорого бы я дал сейчас за живые дискеты со своими САМЫМИ ПЕРВЫМИ программами.

P. S.:



Покопавшись в эмуляторе и погуглив таки нашел нормальный паскаль.
Только вот на YIS-805/128 дос хоть убейся при загрузке включает режим 40х25, в котором строчки редактора наезжают друг на друга.

MSX Turbo R грузит дос в режиме 80x25 и выглядит всё кошерно

То, что мы увидим после запуска


Редактор текста. Такая вот была IDE, а вы всё эклипс, да силион...


Компиляция в COM файл — данность для 8-разрядных машин, процессору доступно 64 Кб


Компиляция в память и исполнение


Но всё же хотелось бы работы в нормальном режиме на КУВТ, для сохранения ностальгического настроя. Наверное это не последняя статья об OpenMSX…
Tags:MSXстарые компьютерыэмуляторыностальгия
Hubs: Computer hardware History of IT Software Demoscene Desktop PC's
+24
16k 37
Comments 25