Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы

в 18:12, , рубрики: MSX, Pascal, Zilog Z80, Демосцена, История ИТ, Настольные компьютеры, ностальгия, Софт, старое железо, старые компьютеры, эмуляторы

Введение

Давным давно, в далекой Галактике, когда жесткие диски были не более 100 Мб (а кое где их и не было вовсе), шина адреса всего 16 бит, о графических 3D-ускорителях никто, или почти никто даже не помышлял, а Интернет приходил в редкие дома, по мокрым бельевым веревкам через пищащие коробки…

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

Теплый и, в каком-то смысле, ламповый монитор прошлого...
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 1

Что нужно для разработки? Во все времена необходимый минимум состоял из:

  1. Редактора для работы с исходным кодом
  2. Транслятора исходного кода в машинные инструкции
  3. Отладчика

и ничего нового тут, в общем-то и нет. Ещё мы обязаны определится с операционной системой, где будем работать. Я буду излагать всё нижеследующее применительно к MSX-DOS версии 2.20, так как сам в свое время прошел через неё (ещё была CP/M, но я с ней не работал, но эту тему я тоже затрону в других публикациях, ибо рассказать есть о чем)

Соберем необходимый набор софта для MSX-компьютера и посмотрим, как выглядела разработка под эти машины.

1. OpenMSX — обработка надфилем

Для начала надо рассказать о настройках эмулятора. В прошлый раз мы использовали графический фронтэнд Catapult, однако он имеет ряд ограничений по параметрам запуска эмулятора (например, можно подключить «ром» для единственного аппаратного расширения, хотя их может быть до четырех, в зависимости от выбранной модели компьютера). CLI-интерфейс позволит нам полностью раскрыть мощь эмулятора ничего не потеряв в удобстве использования.

Итак, запустим эмулятор из командной строки

$ openmsx -machine Yamaha_YIS-805-128R2 &

Ключик -machine задает аппаратную конфигурацию запускаемого MSX. Конфигурация определяется *.xml-конфигами, в линуксе размещаемыми по пути /usr/share/openmsx/machines/. При наличие «ромов» и представления об аппаратной архетиктуре этих компьютеров такой конфиг можно сварганить и самостоятельно, но пока что мне хватало добытых на просторах сети (все ссылки имеются в прошлой статье).

Я выбираю Yamaha YIS-805/128 локализованную японцами для СССР (о чем красноречиво говорит буковка R в имени конфига). Это учительская машина, за которой я в общей сложности провел большую часть времени. Локализация нам не повредит, в чём мы убедимся чуть позже.

Итак, перед нами предстанет интерпретатор бейсика, но пока он нам не нужен. А нужно нам вот это

Встроенный командный интерпретатор OpenMSX
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 2

Окошко внизу экрана всплывает/убирается по нажатию F10 и позволяет «рулить» эмулятором, используя встроенную командную оболочку. Можно присать даже cкрипты, коих прилично идет в комплекте с программой по пути /usr/share/openmsx/scripts/.

Например, мы хотим подключить мышь (мышь была на учительском компе, фото поместил под спойлер)

Мышь для Yamaha КУВТ2

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 3

Для этого выполняем команду

> plug joyporta mouse

и у нас появится мышь, которая может использоваться теперь в поддерживающих её программах.

Для работы с дискетами используем команды:

поместить дискету в виртуальный привод

> diska <имя файла с образом дискеты A>
> diskb <имя файла с образом дискеты B>

извлечь дискету из привода

> diska eject
> diskb eject

Если нам нужна чистая дискета, то мы можем её создать

> diskmanipulator create <имя образа> <емкость в килобайтах>

отформатировать

>virtual_drive <имя образа> 
>diskmanipulator format virtual_drive

и скопировать на неё,

> diskmanipulator import virtual_drive <имя файла | каталога, содержимое которого надо поместить на диск>

а так же и с неё, необходимые нам файлы

> diskmanipulator export virtual_drive <имя  каталога, в который надо поместить содержимое диска>

Есть возможность создавать каталоги на дискете

> diskmanipulator mkdir virtual_drive <имя каталога>

и перемещаться по ним

> diskmanipulator chdir virtual_drive <имя каталога>

Кроме того, в качестве дискеты можно указать и каталог на хост-машине

> diska <имя каталога>

Однако, если кто-то думает что так можно обойти ограничение в 720 Кб (так подумал я, хотя следовало бы догадаться что эмулятор рассматривает этот каталог как дисковое устройство со вполне определенной геометрией), то Вас ждет разочарование — как только объем записанных данных превысит указанный предел, эмулятор скажет вам, что диск полон — всё по-честному.

Таким образом мы вооружены до зубов. КУВТ2 поддерживал диски ёмкостью 360 и 720 килобайт, что очень не густо по нынешним-то временам, но что поделать — в то время такое положение дел никого не огорчало. Главное — у нас есть носители для транспорта нужного нам ПО внутрь эмулятора.

«До кучи» ещё несколько полезных команд эмулятора

аппаратный сброс

> reset

выключение/включение питания машины

> set power off
> set power on

сделать скриншот можно так

> screenshot <имя файла>

без указания имени файла эмулятор положит скрин в ~/.openMSX/screenshots/

2. Загрузка ОС, настройка терминала и редактирование текстов

MSX-DOS можно взять тут. Распаковываем архив, и запускаем эмулятор

$ openmsx -exta msxdos2 -machine Yamaha_YIS-805-128R2 -diska MSXDOS2T.DSK

Ключ -exta подключает аппаратное расширение msxdos2 которое позволит нам использовать эту ОС на «ямахе». Всего допускается до 4х расширений (зависит от эмулируемого компьютера) добавляемые ключами -exta...-extd. Ключ -diska означает старт эмулятора со вставленной в дисковод A дискетой.

После загрузки мы увидим экран в «некошерном» режиме 40x25. Нам будет неудобно там работать, поэтому необходимо переключится в нормальный режим 80x25

A> mode 80

Режим 80x25. Ну что, так уже жить в этой консоли можно
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 4

Содержимое autoexec.bat

ramdisk 4064/d
copy %1command2.com h:
reboot.bat %1

сообщает нам, что создается RAM-диск H: емкостью 4064 Кб, куда помещается командный процессор command2.com и выполняется переинициализация переменных окружения скриптом reboot.bat

set temp=h:
set shell=h:command2.com
path %1kids;%1tools;%1utility

Это для того, чтобы мы не потеряли возможность использовать командную оболочку, если нам вдруг потребуется временно извлечь дискету с системой. А такая необходимость преиодически возникает — места на дискетах мало, дисководов всего два (это в лучшем случае), так что тасовать дискеты приходилось довольно часто. Меня, до университета не видевшего компа с HDD, это не смущало, но всё же изрядно напрягало.

В составе дискеты имеются и простейшие текстовые редакторы KID и AKID от компании ASCII — основного поставщика системного ПО для MSX-ов.

A> akid

Нас попросят задать имя файлу

Ввод имени файла

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 5

и можно набирать текст

Редактирование текста

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 6

выход из редактора, сохранение и прочее — по хоткеям. Основные операции можно выполнить через меню, вызываемое по F1.

Главное меню

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 7

Простецкий такой, блокното-/nano-подобный редактор текстов. За остальной информацией о нем идем по ссылке. Редактор KID оказался глюковатой версией AKID, поэтому отдельного интереса у меня не вызвал.

Ну а если мы будем писать мегапрограмму на ассемблере состоящую из нескольких файлов исходников? Нам бы сюда хотя бы vi… М-де, ну у нас будет не vi, а что-то попроще, но достаточно солидное, называемое TOR (не путать с tor-браузером). TOR — это транслит от русской аббривиатуры ТОР — Текстовый Оконный Редактор. Качнуть его можно тут. Распакуем архив в отдельный каталог, подрубим его к дисководу B: и посмотрим что у нас имеется

в консоли эмулятора

> diskb /home/$USER/msx/tor

в MSX-DOS

A>B:tor

Русская версия русского же редактора ТОР от Леонида Бараза — заставка
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 8

Дааа, локализация это очень приятно. Только работает она на локализованой версии «ямахи», то есть на КУВТ. На TURBO-R вас встретят иерогливы или другие кракозябры (сперва я подумал что редактор на японском, а потом догадался, что дело в таблице ASCII). На этот случай предусмотрена английская версия, запускаемая командой

A>B:tortore

Вражий вариант интерфейса - TORE

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 9

Внутри редактор выглядит товарно

Окно редактирования TOR
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 10
и позволяет работать с несколькими (до десяти) файлами в разных буферах (почти как vim/emacs). Управление может показаться «двинутым», но для того времени наверное всё было ок и дело привычки (надо же, уже успел позабыть...). Например, чтобы вставить строку между двух строк надо шлепать Ctrl + Enter а не просто Enter. Ну и так далее. Благо, справка и меню на русском и достаточно подробно

Ещё несколько скринов

Меню, вызываемое нажатием ESC
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 11

Выход из редактора
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 12

3. MSX BASIC

Интерпретатор Бейсика в 8-битных компьютерах играл особую роль — он тебе и ОС, и шелл, и редактор кода, и IDE и отладчик — программа останавливалась на крушащей её строке и выдавало ругательства на английском языке, грязные и и не очень. По умолчанию после загрузки вы попадали именно в бейсик. Из доса в него попасть тоже просто

A>basic

MSX BASIC — первый ЯП многих советских и российских школьников
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 13

Чтобы выставить 80х25 режим набираем команду

width 80

Можно сменить и расскраску фона и букв на экране

color 15,1,1

набить программу, запустить её (F5), сохранить на диск командой

save "A:answer.bas"

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 14

Потом можно загрузить её обратно

load "A:answer.bas"

Получить листинг (F4) и снова выполнить (F5)
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 15

Вернуться обратно в DOS можно командой

call system

Язык подкупал и подкупает своей исключительной простотой и очевидностью конструкций. Кроме того, в его состав входили библиотеки функций упрощающие работу с графикой — спрайты 8х8 и 16х16 пикселей, работа со страница видеопамяти, если нужно было делать быструю анимацию больших кусков изображения. В общим много программ было написано на нем (вот только где они теперь???).

Ну хорошо, а если мы хотим транслировать наш Basic-код в исполняемый файл, можно? Можно. Для этого нам потребуется SOLiD VBasic — тулчейн для компиляции *.BAS файлов в исполняемый код формата *.COM. Содержимое архива подключаем к эмулятору

> diskb solidvbasic/

На диске — набор утилит для компиляции
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 16

Попробуем собрать какой-нибудь «хелловорд». Возвращаемся в интерпретатор и пишем код

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 17

Сохраняем файл на диск, ОБЯЗАТЕЛЬНО указав ключик «А» в конце, чтобы исходник сохранился в виде ASCII-текста, и возвращаемся в DOs

save "b:hello.bas",A
call system

Транслируем код на бейсике в ассемблерный

B>vbc hello.bas

Выполняем компиляцию

B>as hello.asm

и компоновку

B>ld hello=bk,hello.rel,ilib/s,basend

Всё проходит ок, угу. Данная команда, как видно компонует объектный код нашей программы с RTL-библиотеками MSX-BASIC.
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 18
На выходе имеем исполняемый файл НЕLLO.COM, который запускается из шелл
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 19

Интересен ассемблерный выхлоп

Ассемблерный исходник, генерированный транслятором VBC

; Solid Soft V-BASIC compiler V2.5
; Demo version -- buy normal version from SOLID
	.Z80
;
CALLF	MACRO	ADR
	IF2
	IFNDEF	ADR
	EXTRN	ADR
	ENDIF
	ENDIF
	CALL	ADR
	ENDM
	CSEG
_000A:
	call	?FINIT##
	push	hl
	ld	hl,?const+00000h
	call	?LDSTR##
	call	?INCLF##
	pop	de
	call	?CPUTS##
_0014:
	call	?EXIT?##
	ret

?CONST:
	db	048h,065h,06Ch,06Ch,06Fh,02Ch,020h,032h,030h,031h,035h,074h,068h,020h,070h,065h,06Fh
	db	070h,06Ch,065h,021h,000h,00h
	END

который с трудом нельзя назвать оптимальным, тем не менее если вы писали на бейсике и хотели распространять ваши труды в виде исполняемых файлов — таковая возможность у вас была.

4. Turbo Pascal 3.0 для MSX-DOS и CP/M

Паскаль стал мои вторым языком программирования. И изучал я его на «ямахах». К сожалению я не помню ту версию паскаля, что была у нас в школе. Но это был странный паскаль — хотите режьте меня, материте, закидывайте пищевыми отходами и прочей гадостью, но та версия была РЕГИСТРОЗАВИСИМОЙ!!! Да знаю я что паскаль регистронезависимый язык, как-никак довольно долго на нем работал, но вот это и удивило в университете — оказалось что классика жанра отличается в этом смысле от того, что попалось мне. Буду крайне признателен, если кто-то из моих читателей подтвердит моё воспоминание и подскажет мне, что это за вариант паскаля.

Для опытов был собран по кусочкам дистрибутив Turbo Pascal 3.0 от ныне покойной Borland.

Это Pascal. Turbo Pascal. А вы ожидали цветастое меню, синий фон и подсветку синтаксиса? Не-а, это MSX, это Спарта!!!
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 20

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

Главное меню
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 21

Все пункты меню висят на хоткеях — шлепаем ту букву, что в верхнем регистре. Навигация достаточно простая. Жмем E. вводим имя исходника и попадаем в редактор кода

Редактор кода имеет особенность — функцию клавиши BS выполняет DEL, а для BS есть хоткей.
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 22

Для выхода из режима редактирования жмем Ctrl+T, компилируем, нажав на «C»
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 23

По умолчанию компиляция производилась прямо в память, что серьезно ускоряло процесс. При желании получить *.COM надо было выбрать в меню «Options» режим компиляции на диск
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 24
и собрать бинарник, который собирался уже горазно медленнее
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 25
но потом нормально запускался из-под DOS
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 26

5. Assembler Великий и Ужасный

Все «отъявленные» спектрумисты, наигравшись бейсиком на ZX Spectrum рано или позно приходили к тому, что все возможности из этой железяки можно выжать только с помощью ассемблера. Не был исключением и MSX, однако в свое время я не успел приобщится к коддингу на «асме» (впервые я познакомился с 386-м ассемблером в 2004 году) и поковырялся в этом вопросе исключительно ради написания данной статьи.

Что касается компилятора, то он есть, например, в дистрибутиве Turbo Pascal и зовется GEN80.COM. Достаточно открыть любой текстовый редактор и начать набивать код

B>akid

напишем такой вот простецкий код

;--------------------------------------------------
;	Sipmles asm program for MSX
;--------------------------------------------------
	
        ld	C, 09h
	ld	DE, MESSAGE
	call	05h
	ret

MESSAGE
	
	defm	"I'm Z80 CPU. I'll be back!!!"
	defb	24h
	defb	0

Собираем его командой

B> gen80 hasm=hasm.asm

и получаем результат
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 27

Для работы на ассемблере надо было иметь представление о системных вызовах MSX-DOS, соглашении о вызовах системных функций. И это минимум. Ещё могут понадобится функции BIOS, и представление о прямом доступе к аппаратуре целевой машины. Всю эту информацию можно почерпнуть на замечательном ресурсе MSX Assembly Page где собрана куча ссылок на полезную информации.

Вот только где бы я взял всё это в 1998 году…

В приведенном примере производится вызов системной функции 09h — вывод строки на экран. Номер функции передается через регистр C, адрес строки — через DE, сам вызов — командой call 05h. Строка должна завершаться символом '$' (код 24h) иначе на экран выведется всё содержимое ОЗУ, и хорошо если по пути попадется 24h :).

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

6. MSX-C — темная сторона Силы

Честно говоря, я был несколько удивлен — C на 8-битной машине. Оказалось, что можно было прекрасно программировать и на нем, например используя MSX-C. Качаем полный пакет Complete package of MSX-C. Распаковываем. Да, там много всего

[maisvendoo@arch-host MSX-C-package]$ ls -l
итого 948
drwx------ 6 maisvendoo users   4096 мар  7 19:59 bootDisk
-rw-rw-r-- 1 maisvendoo users 172574 июн 11  2013 bootDisk.zip
drwx------ 2 maisvendoo users   4096 май 14  2012 msxC-1.10
-rw-rw-r-- 1 maisvendoo users 176785 июн 11  2013 msxC-1.10.zip
drwx------ 6 maisvendoo users   4096 мар 15  2012 msxC-1.20
-rw-rw-r-- 1 maisvendoo users 136565 июн 11  2013 msxC-1.20.zip
drwx------ 2 maisvendoo users   4096 май 22  2012 msxC-Lib
-rw-rw-r-- 1 maisvendoo users  95508 июн 11  2013 msxC-Lib.zip
-rwxr-xr-x 1 maisvendoo users 230623 май 23  2002 msxCMan.htm
-rw-rw-r-- 1 maisvendoo users  33410 июн 11  2013 msxCMan.htm.zip
drwx------ 2 maisvendoo users   4096 мар 15  2012 msxC-Utils
-rw-rw-r-- 1 maisvendoo users  83571 июн 11  2013 msxC-Utils.zip

Нас будет интересовать каталог bootDisk/ — загрузочный диск среды разработки.

[maisvendoo@arch-host MSX-C-package]$ ls -l bootDisk
итого 56
-rwxr-xr-x 1 maisvendoo users   536 дек 31  1994 AUTOEXEC.BAK
-rwxr-xr-x 1 maisvendoo users   664 мар  7 19:59 AUTOEXEC.BAT
drwx------ 2 maisvendoo users  4096 мар 15  2012 BIN
-rwxr-xr-x 1 maisvendoo users 15744 янв  1  1980 COMMAND2.COM
drwx------ 2 maisvendoo users  4096 мар 15  2012 INCLUDE
drwx------ 2 maisvendoo users  4096 мар 15  2012 MAIN
-rwxr-xr-x 1 maisvendoo users  4992 янв  1  1980 MSXDOS2.SYS
-rwxr-xr-x 1 maisvendoo users  6144 дек 23  1993 RRAMDISK.COM
drwx------ 2 maisvendoo users  4096 мар  7 19:55 UTILS

Создадим загрузочный диск средствами эмулятора

> diskmanipulator create msxc.dsk 720
> virtual_drive msxc.dsk
>diskmanipulator format virtual_drive

Мы создали новый диск и отформатировали его, добавив загрузочный сектор для запуска MSX-DOS. Теперь подшаманим немножко его содержимое. Во-первых добавим в каталог UTILS/ редактор AKID.COM, ибо идущий в комплекте E.COM ужасен. Далее отредактируем autoexec.bat дабы сразу включался режим 80x25 и редактор AKID.COM копировался на RAM-диск

MODE 80
PATH 
SET PROMPT=ON
SET ECHO=OFF
SET UPPER=ON
SET REDIR=ON
SET TIME 24
SET DATE dd-mm-yy
SET HELP=A:HELP

utilsRRAMDISK 720
SET TEMP=H:
COPY COMMAND2.COM H:
SET SHELL=H:COMMAND2.COM

mkdir h:utils
mkdir h:include
mkdir h:src

path=h:;h:utils;
set include=h:include

REM Copy system to ramdisk only if ramdisk was not recovered
SET COPY2RAM=NO
if not exist h:utilse.com set COPY2RAM=YES
if %COPY2RAM%==YES copy utilse.com + utilsakid.com + utilsmeek.com + bin h:utils
if %COPY2RAM%==YES copy main h:
if %COPY2RAM%==YES copy include h:include
if %COPY2RAM%==YES b:
if %COPY2RAM%==NO h:
set COPY2RAM=

после чего копируем все данные каталога bootDisk/ на виртуальный флоп

> diskmanipulator import virtual_drive MSX-C-packege/bootDisk/

И ещё — нам не хватит оперативки. RAM-диск для MSX-C просит 720 Кб. А у нас всего 128 Кб. Так что нам придется подключить как минимум ещё 1Мб памяти. В реальности нам пришлось бы прикупить к «ямахе» модуль расширения памяти — таковые видимо были, раз в эмуляторе нам предлагается использовать «ромы»-расширители памяти. Подключаем расширение ram1mb при запуске эмулятора

$ openmsx -exta msxdos2 -extb ram1mb -machine Yamaha_YIS-805-128R2 -diska msxc.dsk

и, видимо всё ок, раз рамдиск создался в требуемом объеме и началось копирование файлов. Дожидаемся окончания процесса.
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 28

По его окончании переходим на диск H: и видим что на нем сформировались каталоги среды разработки на C. Кроме, того при загрузке были прописаны все необходимые переменные среды и мы можем приступить к пробе системы
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 29

Запускаем редактор

H:> akid

И набиваем там код файла hello.c
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 30
выходим из редактора с сохранением (F1 -> E). Для сборки предусмотрен скрипт C.BAT. Скармливая ему исходник НЕ указываем раширение файла, иначе случится «бяка»

H:> c hello

и наблюдаем за процессом сборки. Процесс дилтельный — выполняется разбор исходника, при котором выявляются синтаксические ошибки (утилита CF.COM), проверка параметров функций (FPC.COM), генерация ассемблерного кода (CG.COM), компиляция майкрософтовским макро-ассемблером (M80.COM) и наконец компоновка с RTL-библиотеками (L80.COM). После того как всё успешно закончится (я долго разбирался со всем этим, прежде чем собрал хелловорлд) можно попробовать запустить программу
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 31
и… она запустилась!

Так что, таки да, на «ямахе» был C. И на нем можно было писать программы

7. Отладка

Пошаговых отладчиков внутри IDE я не обнаружил, возможно плохо искал. В те времена когда я использовал единственный метод отладки — просмотр исходных текстов. А мог использовать, например MON80.COM, который идет в комплекте с Turbo Pascal 3.0.

MON80 — отладчик для MSX
Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы - 32

Навскидку работа с ним простой не оказалось, поэтому оставлю тему отладки на продолжение цикла. Надеюсь, Вам понравилась эта статья

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

Автор: maisvendoo

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js