Мои воспоминания в своё время очень верно сориентировали нас по части магнитофонов. Детали же по архитектуре «олдовых» лично для меня ПК были накопаны по крохам в электронных оригинальных материалах.., набранных в процессе увлечения эмуляцией бытовых компов 80-х.
..Возвращаясь к рассказу о комплексе ПО, за годы пятилетки к моменту выхода М-4 в серию, программистами НИИВТ были созданы:
* Операционная система ОС-1 (OS-1), являющаяся неким гибридом CP/M, MSX-DOS и TR-DOS, и имеющая две ветки развития версий — загружаемая из своего отдельного ПЗУ и с магнитного барабана.
* Стандартное ПЗУ М-4 с тем самым местным «бейсиком» имени Ады Лавлейс.
И многое другое ПО, которое будет перечислено далее и о моментах разработки которого, с описанием возможностей первых образцов программ новых типов, я расскажу.
Сейчас, когда идёт 1962 год и на моём ПК (на котором я набираю эти строки воспоминаний для своих мемуаров, которые, скорее всего, увидит очень мало людей), запущена уже первая коммерческая многозадачная ОС с графическим интерфейсом, его ЦП работает на 25 мГц, содержит свыше 200000 транзисторов и выполнен по проектным нормам 1500 нм (1,5 мкм), и мне сначала хочется рассказать, как в самом начале разработки комплекса ПО первого «протокомпа» радикально решалась «ложная дилемма РУС/LAT»..
Глава 7 — Ложная дилемма РУС/LAT. Часть II
(..из неизданных мемуаров Рожкова Н.Е., хранящихся в его семейном архиве..)
Вкладывая в самый фундамент железячно-софтверной экосистемы, формировавшейся в проекте М-4 «Стандарт 256», в котором кириллица была на равных правах с латиницей, мы пятеро (Брук, Лебедев, я, Ш-Б и Ляпунов), определявшие курс развития ИТ, пожалуй, пока аж всего мира, оказались перед неожиданной проблемой из разряда почти что идеологических :-)
Которой, по сути, не было в моём прошлом.
СССР, как я отрывочно помнил, после того, как от машкодов двинулись к языкам программирования высокого уровня, пытался продвигать что-то своё, на русском, но.. в условиях Железного занавеса — «не взлетело» даже у себя, при попытках использовать массу софта с Запада.
Здесь же, была иная обстановка. И с бонусами послезнания и с кое-каким.. ну, не с сердечным согласием, а достаточно мирными отношениями, базирующимися на обоюдном желании ИВС и ФДР не разжигать высасывающую из обеих сторон ресурсы и жизни иную инкарнацию холодной войны.
Особенно в условиях послезнания, которое могло, в случае конфликта, наоборот подвигнуть стороны на резкие движения в попытке вложиться в теоретически всесокрушающий «первый мега-удар».
Но я, в отличие от четверых других «соучастников», не испытывал иллюзий по поводу того, что взамен стандарта латиницы и наглосаксонской лексики в языках программирования удастся «продвинуть наше, советское» :-)
Даже совещание было (в конце 1944-го) в наркомате в Москве у Маленкова «на ковре». Где меня попросили объясниться. Отчего я, в целом всячески ратующий и активно работающий на Союз в области ИТ, не испытываю «тут» положенного энтузиазма.
Для того, чтобы понять, почему этот вопрос встал ребром именно при начале разработки комплекса софта для М-4, а не для предыдущих трёх моделей, необходимо некоторое пояснение:
Фактически, тот двуязычный ассемблер-автокод, который был создан для М-1/2/3, был на тот момент искусственным конструктом, который работал «на бумажке» и «на будущее». Ибо программисты, освоившие вычислители первого поколения, создавали крайне компактные (обусловленные крайне ограниченным размером ОЗУ) программы, машинный код которые «вылизывался» (точнее, продумывался и проверялся) заранее много раз. Ибо никаких (вообще никаких) средств отладки и прочего и близко не было :-) за исключением доступного для единиц моего эмулятора первых вычислителей.
Именно на М-4, первом представителе второго поколения вычислителей, который, обладал солидным для этих времён ОЗУ в 48 кб, мы получали возможность работы программистов не просто на машине с АЛУ с неким эквивалентом процессора Z80 (с которого мы слизывали систему команд, как и ранее — её «урезанный набор» с i8080/КР580), но и с большим комфортом при написании программ в, опять же, некоем аналоге ассемблера Zeus. В котором для, например команды, помещающей 3 в регистр A процессора (точнее, пока АЛУ) нужно было набрать в будущем редакторе ассемблера относительно удобоваримую для восприятия и читабельную строчку
LD A,3
..вместо вбивания «штекерным вводом» (или вводом через через телетайп или через перфокарту) соответствующего
3E 03
машинного кода!
Наш же будущий ассемблер бы «спокойно», отловив все возможные синтаксические ошибки прогера, после их исправления, провёл бы трансляцию текста с приятными людскому глазу мнемониками ассемблера в машкод!
Всё было просто, верно и красиво. И убыстряло процесс программирования «в машкодах» (точнее, уже действительно на ассемблере-автокоде)
И параметры железа (объём ОЗУ) вполне позволяли..
Но!
Мы должны были решить сразу дилемму:
Пытаемся ли мы с нуля «прогнуть» будущий мир прогеров учить русский..
..и вместо привычного МНЕ LD (то бишь LOAD) писать ЗГ (ЗАГРУЗИТЬ)?
Ну и далее, определиться с этим вопросом так со всем ПО для разработчиков и юзеров!
т.е
LD A,3
или
ЗГ A,3 (тут ещё вставал вопрос об LAT/РУС для наименований тех же регистров АЛУ.. как и для переменных типов данных и прочего в текстах программах..)
Логика, которую отстаивал я, заключалась в следующем:
Советское, конечно, СЕЙЧАС, реально самое передовое, но западный мир мы можем и не прогнуть. Они очень быстро напишут своё. Ломать доминирование латиницы множества стран, даже в отдельной отрасли — ИТ, и при использовании всех бонусов послезнания и в попытке навязывания своих стандартов, всё равно будет трудновыполнимым желанием..
Лучше, раз уж мы «вшили» (в отличие от истории моего прошлого) в «Стандарт 256» и LAT, и РУС, то дадим возможность и в ассемблере и в базовом языке программирования высокого уровня имени Ады Лавлейс (т.е. «бейсике») юзать и русские команды и на латынице.
Как и в командной строке ОС и во множестве аналогичных тем!
Т.о., на софте М-4 предлагалось продолжить логику, заданную в «бумажном варианте» ассемблера-автокода для М-1/2/3. Как в нормальной, уже не в «бумажном варианте», программе автокода-ассемблера с равноценными по правам мнемониками на русском и латинице(английский), транслируемыми в соответствующий каждой двуязычной паре мнемоник машинный код.
Вот эту логику (с пояснением — мы даём свободу выбора всем — пользователям и программистам СССР, пользователям и программистам «наглосаксонских капиталистов») я и излагал на совещании в наркомате на исходе 1944-го, уже не только применительно к автокоду, но и к первому «комфортному языку программирования», доступному обычным рядовым пользователям, а не только тем уникальным человеческим экземплярам, кто сами машинные коды М-1/2/3 (с расширением «до стандарта Z80» в М-4) в своей памяти держит:
Маленков, «понавтыкавшийся» в реалиях зари цифровой эры и усвоивший по необходимости (партия поставила на важнейший участок!) многие специфические понятия как и текущие ограничения, поинтересовался на примере как раз обсуждавшегося как «образец» «первого местного» языка программирования высокого уровня — «бейсика»:
— А места в ПЗУ хватит для двух.. «наборов»?
— Да! Наш диалект первого «ЯПВУ» будет содержать 80 операторов — команд и функций и нескольких дополнительных ключевых слов длиной от 2 до десятка байт. Просто удвоится это число. И несколько усложнятся процедуры редактирования и выполнения при интерпретации. Чуть-чуть больше потребуется места в ПЗУ для вывода интерпретатором кодов ошибок и текстов сообщений. Сами же процедуры и функции, соответствующие операторам языка, останутся одни и те же для обеих наборов операторов. Такая же приемлемая ситуация будет с двумя наборами команд ОС, с мнемониками ассемблера и прочим..