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

    Предисловие


    Знакомство с компьютером каждый из нас начинал по своему и в разное время. Кто-то помнит ДВК, «Искры» и «Агаты», а кто-то сразу сел за 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…
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 25

      0
      ХАБРАКАТ!!1 чуть раньше поставьте, пожалуйста.
      +2
      Не упомянуто самое вкусное на этой платформе — Vampire Killer (игра из серии Castlevania) и Metal Gear.
        0
        По играм и их запуску можно написать будет отдельно. Особенно не знаком именно с играми — не игрок я был, больше нравилось кодить
          0
          А я вот помню игру где на кораблике от острова к острову плаваешь и что-то там делаешь, но так как поиграть нам давали крайне редко, а точнее всего два раза за два года, и было это в далёком 94, то из памяти подтёрлось. Как впрочем и паскаль ;(
            0
            Ойкумена или что-то типа того?
              0
              Точно! Она!
        0
        Помню мы в 8-9 классах проходили информатику в ШУППе как раз на MSX2. А ребята постарше в соседнем классе вояли на… МАКАХ!!! Я тогда конечно ещё не был «умеренным яблодрочером» )) да и в принципе не знал что это — Макинтош, но интерфейс заинтересовал. Я осознавал убогость MSX'ов и представлял, как всего через несколько месяцев — после летних каникул я тоже буду изучать Макинтош!!! ))) Но весь цимес в том, что приехав в сентябре в ШУПП, нас направили в всё тот же зал, что и раньше, где вместо Yamaha MSX2 стояли Pentium… И мы приступили к изучению Windows, Word и Excel…
          0
          А вот я когда впервые наткнулся на макинтош (примерно 1989 или 1990 года со шведской(!) макосью), долго искал, где же в нем вводить код:). HyperCard был, что-то вроде ворда было, а элементарного бейсика или командной строки не было!:(
          +1
          Да, у нас в школе тоже стоял КУВТ Yamaha. Когда все было переиграно, вся музыка переписана, были найдены команды INP и OUT и началось изучение возможностей, ранее недоступных из MSX Basic…
          Ну а lzh это самый популярный архиватор того времени, потом был arj.
            0
            спасибо за пост,
            у меня тоже такой первый компьютер был, в Петрозаводске, за исключением нескольких редких походов на ЕС ЭВМ.
            Распечатки программ остались, я писал программу «замечательные кривые» и еще игру про стреляющие вертолетики с управляемыми ракетами. Было бы время, можно было бы сесть за ностальгию. Но нет…

            Там еще один из наших открыл, что можно путем прямой записи в память через бэйсик вызывать всякие недокументированные эффекты. Теперь он в США работает антихакером :)

              0
              Зачем, ну вот зачем была написана эта статья?! Теперь же придется потратить кучу времени на старый добрый MSX и игрушки :-)
              У нас в УПК обучение информатике начиналось с ДВК и перфокарт, а потом закупили подряд ДВА класса MSX — это конечно было потрясение: цветная графика, Pascal и новый диалект Basic, и… куча обалденных игрушек!
              Наша преподавательница стимулировала нас: выполнил задание — можешь играть, так я себе иногда удивлялся с какой скоростью писал те простенькие программки.
                +1
                Ах ты ж ептыж. Второе место по области по программированию именно на ямахе эмэсикс 2 :) И первый ассемблер тоже на ней. Первое 3Д тоже на ней. Помню крутил кубик алгоритмом на бейсике, а линии рисовал на ассемблере, потому что так быстрее. Отличная система спрайтов помню была на бейсике еще, страничная видеопамять и прочие крутые штуки. Прям прослезился.
                  +1
                  У нас тоже был такой компьютерный класс. Елки, что только не писали мы тогда на них. Меня никогда не интересовали игры, а вот откопать что-то интересное в возможностях того же встроенного бейсика… Например, там можно было заменить заставку при запуске и поставить пароль на вход. Или разослать сообщение по всем машинам (либо написать что-то на конкретную). Заставить экран трястись:) На дискетах была свалка из программ, которые писали ученики — как задания, так и всякая фигня для развлекухи. Среди них запомнились два имени «ЧУШЬ.BAS» и «МУТЬ.BAS»:) Программы были от выполняющих что-то разумное до той самой тряски экраном с надписью «Выключи меня, я погнал» (слово «глюк» мы тогда еще не знали). У учительской машины был непонятный глюк — отключение ее не означало, что включится она с чистой памятью и загрузит MSX-DOS или бейсик. Притом это было только с некоторыми программами, в частности, с графическим редактором — при включении запускался этот самый графический редактор, который немедленно зависал, иногда с частичной порчей экрана. Уж не знаю, как это. Там что, память автономная с автономной регенерацией и батарейкой или большой емкостью по питанию?
                  А в соседней школе был УКНЦ и они нам люто завидовали. На дискетах с тех УКНЦ я встретил предтечу порнолокеров — программа под именем bsagyx.sav рисовала на экране неприличные картинки, а потом писала «Пока ты тут пялился, я стер оглавление с SY:. Гони <такому-то> двадцать тысяч, от него же узнаешь пароль. Не выключай компьютер, все хранится в памяти». Угроза была не пустая, и, кстати, саму программу я нашел на дискете с затертым оглавлением.
                    0
                    Да, тряску экрана при неправильном вводе пароля делали, помню :)
                    Классный эффект.
                      0
                      Имеется в виду какой-то эффект моргания? Просто первая мысль — механическая тряска, но откуда бы :)
                        0
                        Почти механическая — там вся картинка сдвигается вправо-влево-вверх-вниз программно.
                        Не помню уже какими функциями делается, но выглядит эффектно.
                      0
                      Насколько я помню (а у же могу ошибаться), графический редактор там был встроенный в ПЗУ. На учительской машине.
                        +2
                        Да, был. В интерпретаторе бейсика вводим
                        call painter
                        


                        Вот такой


                        Только как из него выйти обратно в бейсик, не нашел даже включив мышь
                          0
                          Обратно выйти нельзя было. Я рисунки на дискету сохранял.
                            0
                            Детство вспомнилось! Днями сидел в компьютерном классе за этим редактором. Было интересно сохранять из него рисунки на дискете, а потом открывать в бейсике. Только палитра цветов, при этом, сильно изменялась.

                            А вместо команды call painter можно было использовать _paint или даже _pai. У нас это тоже работало. Только перед этим нужно было отключить компьютер от локальной сети. В тоге последовательность была такая:

                            _nete
                            _pai

                            Когда у моего одноклассника появился Pentium 200 с Win95, и я увидел у него Paint, то первая мысль была: «Это что за ничтожество?!»

                            То, что у нас в школе был такой компьютерный класс и хороший учитель информатики, помогло мне чувствовать себя уверенно на информатике в университете и предопределило моё будущее. Чего не могу сказать о своих одногруппниках. Информатика у нас не была профилирующей дисциплиной и многие от неё ныли. И, насколько я знаю, я единственный из нашего потока, кто работает программистом. Прошу прощения за нескромность.

                            Пользуясь случаем, выражаю глубочайшую благодарность нашему учителю информатики, Скадину В. В.!
                        0
                        Добавил в статью постскриптум. С паскалем таки разобрался
                          +2
                          Разработал в детстве (в 12 лет) на ней графический редактор
                          0. Рисование, копирование прямоугольных областей, заливка
                          1. С собственным форматом файлов (т.к. ничего не знал о bmp) в котором было собственное сжатие (ничего не знал о ЛемпелеЗиве)
                          2. С хранителем экрана на ассемблерной вставке (видел в NC) Т.к. на учительском компе уже не хватало оперативки на заставку, то детектил количество оперативной памяти для запуска.

                          Как много вещей в алгоритмистике я переоткрыл, работая над этим редактором. Именно Ямаха определила мою будущую профессию.
                            +1
                            Как много вещей в алгоритмистике я переоткрыл, работая над этим редактором.

                            Это характерно для многих «гиков» тех лет. Интернет не было почти не у кого — только у детей ОЧЕНЬ обеспеченных родителей. Да и его информационная емкость в те годы, наверное была намного меньше чем теперь. Единственный источник инфы — книга купленная/взятая у кого-нибудь. Да и книга многое не перекрывала из того, что хотелось узнать.

                            Себя вспоминаю — вывел сам формулы пересчета эклиптических координат планеты Солнечной системы в экваториальные (астрономией увлекался, ага) ибо в единственном толковом учебнике астрономии, найденном в библиотеке нашего райцентра были только уравнения Кеплера и начала сферической тригонометрии. А потом, много позже, нашел их в учебнике, взятом в сети. Это тоже касалось программирования — формулы были нужны для вычисления положения планет на фоне звезд…

                            Так и любой другой вопрос в то время упирался в дефицит информации. Иногда задаешь себе вопрос — чего бы я наворотил тогда, имея то, что есть у меня сейчас. Эх…
                              +1
                              Иногда задаешь себе вопрос — чего бы я наворотил тогда, имея то, что есть у меня сейчас.

                              Скорее всего ничего, т.к. уже всё есть и повторяться не интересно.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое