Спектрум киров
По плану мы разрабатывали какие-то устройства. На 1982–83 годы была поставлена задача сделать роботизированную линию, которая сама будет из кассет брать детали, расставлять их и запаивать. При том уровне развития техники сделать это было нереально, но все делали вид, что работают, изучают потенциал.
Радиолюбитель
Радионаблюдатели не могли в эфир выходить — они только слушали. Следующий этап — заиметь свою радиостанцию, построить, кроме радиоприемника, радиопередатчик, зарегистрироваться в клубе ДОСААФ. После этого ты мог сам выходить в эфир, связываться с любой страной. Чем она дальше, тем ценнее. Потому что тогда техника была совсем не такая, как сейчас. Сам факт установления связи с каким-то корреспондентом был необычным событием.
И текстовый редактор ED.COM:
У CP/M и Спектрума общее только то, что они работают на процессоре Z-80. Если сравнить их карты памяти, мы не увидим практически ничего общего, да и периферия, ожидаемая на CP/M- и на Спектрум-машине, существенно отличается. Тем не менее, создатели «Кворума» смогли сделать машину, которая может одновременно работать и с CP/M, и как довольно обычный Спектрум. Что же пришлось изменить?
Поэтому для вывода текста в CP/M Кворума есть четыре режима — 42 символа в строке (шрифт 6×8), 51 символ в строке (шрифт 5×8), 64 символа в строке (шрифт 4×8) и 83 символа в строке (шрифт 3×8). По умолчанию после загрузки используется 42 символа в строке:
Каталог игр с описанием.
Исходные тексты CP/M различных версий и ее системных утилит (на ассемблере) несложно найти в Интернете.
Библиотека и соловей
Проводились соревнования. Нужно было за короткое время, скажем, за сутки, установить как можно больше связей. «Привет!» — «Привет!» — «Подтверждаешь?» — «Подтверждаю!» Все, контакт установлен с такой-то страной: Чехословакией, Германией, Америкой…
NC.COM была, как несложно догадаться по названию, вариацией на тему двухпанельного файл-менеджера. Среди ее полезных функций — работа с пользовательскими областями как с подкаталогами, копирование файлов («голая» CP/M этого не умела, хотя в ней была для этого какая-то простенькая внешняя утилита), просмотр текстовых файлов в кодировках КОИ-8, КОИ-7, «ГОСТ-основная» и досовская CP866 (кстати, основной кодировкой для CP/M Кворума выбрали КОИ-8 — видимо, потому, что она при обрезании 7-го бита, чем могут грешить старые неадаптированные программы, превращается более или менее в транслит), и копирование файлов на дискеты DOS и обратно — последнего, кроме NC.COM, по-моему, больше никто не умел.
В целом, CP/M очень напоминала раннюю версию DOS, да, в общем-то, и немудрено — DOS разрабатывалась как клон CP/M. Для CP/M-80 существовало немало прикладного софта — офисные программы, средства разработки, утилиты. Но с появлением и бурным развитием PC все это быстро стало неактуальным — как и версия CP/M-86, не сумевшая составить сколько-нибудь значительную конкуренцию DOS.
Выглядит довольно прилично, на мой взгляд. Шрифт 4×8 хранится в памяти одновременно с 6×8, и, например, в показанном вьюере текстовых файлов на него можно переключиться одной кнопкой F5:
Брат этого приятеля писал музыку для синтезатора и тоже как-то компьютер использовал. Кто-то увлекался программированием, кто-то писал прикладные программы. Была в свое время фирма «Искрасофт», занимавшаяся сначала программным обеспечением, а потом перешедшая на торговлю линолеумом. Помню, она делала какие-то деловые программы именно на компьютере а-ля «Спектрум».
Раз уж речь зашла о командах, то их было немного: DIR, SAVE, ERA (удаление файлов), REN (переименование файлов), USER, может еще одну-две забыл. (SAVE выполняла довольно специфическую функцию — сохранение содержимого TPA на диск — если, например, вы запустили отладчик, загрузили в нем программу, похимичили над ней, вышли и хотите сохранить еще оставшуюся в памяти версию.) Популярным расширением для CP/M был альтернативный командный интерпретатор ZCPR3, куда более навороченный. Впрочем, сам я не пробовал.
Студент
Сначала в 1974–75 годах я был радионаблюдателем. Моей задачей было слушать эфир и записывать, что, допустим, радиолюбитель с таким-то позывным из Англии связался в такое-то время с радиолюбителем таким-то из Австралии, и отправить им по почте карточку. В ней написано, что «вами установлена связь в такое-то время с тем-то и тем-то». Если он подтверждает по своим записям, присылает свою красивую карточку в ответ. Процесс коллекционирования карточек тоже был очень интересен.
ED.COM, несмотря на название, был более подобен юниксовому vi, чем ed (а строго говоря, если верить инструкции, был версией некоего WordMaster). Он, так же как vi, имел два основных режима — ввода текста и командный. Конечно, набор команд был гораздо скромнее, чем у vi, но возможность создавать макросы из команд и записывать их в файлах .MED уже была. Вот одна из страниц справки, например:
Файловая система CP/M-80 существенно проще, чем FAT, хотя со своими задачами справляется вполне удовлетворительно. Файлы хранятся с именами 8.3; даты создания/изменения не хранятся (наличие RTC-часов в машинах с CP/M не гарантировалось); размер файла хранится с точностью до 128 байт с округлением в большую сторону (объем занимаемого им на диске пространства — до 4 Кбайт). Также отсутствуют директории, вообще — на работу с жесткими дисками CP/M не была рассчитана, а с дискетками можно и так жить. Был, впрочем, некий суррогат под названием «области пользователя». Эти области нумеровались от 0 до 15, и в каждой из них могли храниться отдельные файлы. Переключались они командой USER n.
Кстати о видеопамяти — на Спектруме существует всего один видеорежим, 256×192 с 16 цветов. (Точнее, 256×192 — это разрешение монохромной картинки, на которую затем накладываются атрибуты цвета в разрешении всего 32×24 — таким образом, в каждом участке 8×8 пикселов может быть не более 2 разных цветов. Но это детали.) Текст выводится шрифтом 8×8 пикселов, что дает 24 строки по 32 символа — что удобно накладывается на структуру видеопамяти, но откровенно мало для большинства практических целей. Большинство неадаптированных программ CP/M вообще ожидают, что в строке не менее 80 символов!
Еще одна обложка кассеты с играми. Вторым номером идет Sim City — самый первый вариант градостоительного симулятора.
Общая карта памяти CP/M-машины выглядела так:
Совместимость с играми для Спектрума
Игры в формате .SPC можно запускать из командной строки, как и обычные команды .COM, но обычно для этого используется оболочка наподобие RUN.COM:
Стол был сделан по моим размерам, из алюминиевых профильных уголков. Он до сих пор у меня стоит. На полочках — все, что должно быть у настоящего радиолюбителя: осциллограф, электроника. Здесь я и собрал свой первый «Спектрум».
Классе в восьмом я решил, что и в будущем хочу заниматься радиотехникой. Кем стану конкретно, не задумывался. Когда заканчивал выпускной десятый класс, единственный вопрос, который оставался, — какой институт выбрать. Я посчитал, что в Москве человеку из глубинки поступить сложно, а в Ленинград, наверное, можно ехать — сил должно хватить. На каникулах я побывал в Ленинграде, сходил на день открытых дверей в электротехнический институт связи имени Бонч-Бруевича. Выбрал его по картинке в справочнике. Здание ЛЭТИ мне показалось каким-то неказистым, не понравилось. У Бонча оно было более солидным, это и предопределило мой выбор.
Gamma-DOS, как и BETA.COM, использует трюк с нижними 16 Кбайт ОЗУ, но вместо TR-DOS в них загружается кастрированная по самое не хочу CP/M. Шрифт в ней стандартный спектрумовский, треть экрана вообще не используется (для экономии памяти — надо же сохранять остальные две трети где-то на время выхода в Gamma-DOS), областей пользователя нет, область TPA урезана до нескольких килобайт — хотя простые утилиты CP/M все же запускаются нормально.
Сергей Зонов на защите диплома.
Дискеты — и пятидюймовые, и трехдюймовые — дисковод понимал исключительно в формате Double Sided/Double Density, 800 Кбайт. Под DOS’ом это были бы дискеты на 720 Кбайт, но CP/M использовала свое форматирование: 2 стороны, 80 дорожек, 5 секторов, объем сектора 1024 байт. На загрузочных дискетах 20 Кб занимала ОС; из файловой системы это не было видно, она просто занимала две первых дорожки. Чтобы работать с трехдюймовыми дискетами из магазина, нужно было заклеить на них отверстие (напротив того, что с ползунком для защиты от записи) непрозрачной клейкой лентой.
«Скорпион» мне было интересно развивать, поскольку он полностью был моим детищем. Чтобы подключить к нему винчестер, пришлось придумывать специальную плату, за ней — какие-то новые. Потом, уже гораздо позже, захотелось сделать компьютер в виде одной микросхемы. Я стал разрабатывать, вложил кучу денег. Когда микросхему сделали, оказалось, что что-то работает не так, нужна следующая итерация. После нескольких итераций я понял, что этот процесс бесконечный — мы просто не потянем — и отказался от этой идеи.
Еще у меня был приятель, живший этажом ниже. Мы с ним решили сделать переговорное устройство — как у шпионов. Провели провода, спаяли, сделали генераторы, чтобы перестукиваться с помощью азбуки Морзе. У нас были телеграфные ключи, мы знали все знаки. Все это стало толчком к дальнейшему обучению.
«Спектрум»
Схемы «Спектрума» появились на толкучке, по ним и собирал. Заняло это примерно неделю. Сначала включил — ничего не работает. Стал смотреть, что не так. Где-то были ошибки в схеме, где-то — мои. Где-то неисправная деталь попалась. Чтобы это все понять, нужно было посмотреть сигналы осциллографом. Потом проанализировать схему. Получилось, что я изучил прибор до последнего винтика.
Стоит отметить, что на моей памяти Gamma-DOS работала не очень стабильно и частенько при попытке сохранить игру выдавала «BDOS ERR ON A: BAD SECTOR» на вроде бы совершенно нормальных дискетах. Так что я чаще пользовался не Gamma-DOS, а SCREEN — оболочкой с псевдографическим интерфейсом (и ограниченными средствами редактирования изображений — отсюда и название), работающей значительно быстрее и стабильнее Gamma-DOS, и более удобной в использовании. У SCREEN даже был свой API — для нее существовал отдельный формат исполняемых файлов, .EXE — но его описания я нигде не находил, равно как и описания того, как SCREEN устроена. Подозреваю, где-то там в недрах все равно была Gamma-DOS.
Сделать компьютер было сложно. Клавиатуру собирали из клавиш, под корпус тоже что-то приспосабливали. Денег, которые могли что-то изменить в моей жизни, я на этом не заработал.
Топологией я занимался несколько месяцев. Рисовал дорожки на громадном листе миллиметровки, переставлял, оптимизировал. Сейчас это все компьютер делает, а тогда приходилось вручную. В итоге получился какой-то вариант. Теперь, чтобы эту плату производить, нужен был фотошаблон, который можно отдать на производство. Его сделали в лаборатории на работе по моему эскизу. Следующая задача — найти, кто будет производить. Денег в необходимом объеме не было, заплатить я не мог, поэтому стал искать обмен. Отдаю кому-то на толкучке этот шаблон с условием, что, когда вы платы сделаете, 20 штук отдаете мне. Многие обманули, но кто-то выполнил свои обязательства. У меня появилось какое-то количество плат — до сотни, не больше. И я за один день мог собрать несколько приборов.
Фактически это первый компьютер, который стал хоть как-то популярен в СССР. По моей схеме как минимум десятки тысяч машин собрали. Может, больше 100 тысяч. Кооперативы многие производством занимались. Кто-то после меня что-то подправлял, выдавал за свое, производил, зарабатывал деньги, укрупнял свой бизнес и потом переключался на что-то другое. География распространения — самая обширная. Когда у нас появилась своя фирма, мы продавали компьютеры даже в глубинку — отправляли по почте.
Внутри, помимо отсеков для дисководов, была плата контроллера с традиционной для клонов Спектрума микросхемой КР1818ВГ93, и блок питания. Уязвимым местом блока дисковода был интерфейс с компьютером — от блока тянулся короткий широкий шлейф, на конце которого болталась тяжелая металлическая коробочка где-то 8x8x1 см с платой интерфейса внутри, которую нужно было насадить на краевой разъем сзади компьютера; Кворум, как и большинство Спектрумов, был объединен в одном корпусе с клавиатурой. Надежность такого соединения была невысокой.
Игры и не только
Первые варианты аналога компьютера в СССР появились в 1986-1987 годах. К тому моменту я неплохо знал микросхемотехнику. Когда информация попала ко мне, я смог ее переварить и сделать вариант, который стал очень популярным.
Трюк с NMI возможен благодаря предусмотренной в спектрумовском ПЗУ Кворума проверке — оно переключается на нулевую страницу ОЗУ в случае, если в нем по адресу 0x0066 находится инструкция процессора JMP — т. е. по сути ПЗУ проверяет, если ли в ОЗУ подпрограмма обработчика для NMI.
Что такое «Спектрум»? В первую очередь, игрушки. На производствах стояли большие вычислительные машины, на которые с перфокарт или магнитных пленок вводилась программа, и можно было играть в «Звездные войны». Что-то типа «Морского боя». Говоришь компьютеру: «Е4», и он твою фигурку перемещает. А тут появились первые динамические игры. Есть какой-то герой, он бежит, прыгает, перескакивает. То есть человечек, пусть и не такой красивый, как сейчас, все время в динамике. И это было очень интересно.
Повторить эту конструкцию было очень сложно, потому что огромный объем работ. Только паять приходилось неделю. Организовать производство нереально — продукт получился бы очень дорогим. Хотя в конструкторских бюро примерно так и делали на этапе разработки. И появилась задача сделать все это в виде печатной платы, чтобы только микросхемки вставил, запаял, включил — и все работает. Устройство, которое я первым собрал, было очень сложным по количеству микросхем — около 70. Я стал его преобразовывать, модифицировать. В итоге сделал схему из 42 микросхем, и теперь нужно было придумать топологию дорожек, которые бы их соединяли. Т. е. с одной стороны — микросхемы и часть дорожек, с другой — другая часть. Такую плату можно было бы производить серийно.
Большой вклад в развитие внесло то, что стала появляться литература. Очень популярной была книжка «Как написать игру». В Москве одна фирма занималась выпуском печатного журнала. Он был посвящен «Спектруму», и туда стекалась информация со всех направлений. Кто что сделал, кто что планирует, обмен опытом. Печатались они в типографии, но это был полусамиздат.
К сожалению, у меня давно не осталось ни блока дисковода, ни самого Кворума, так что вот пишу по памяти и делаю скриншоты из эмулятора 🙂
Софт для CP/M
Всего магазинов «Юный техник» в Ленинграде было четыре. Самый первый, флагманский, находился в доме 55 по Краснопутиловской улице.
После запуска Gamma-DOS (что можно сделать как из CP/M, командой GAMMA.COM, так и загрузившись с дискеты, где в системные дорожки вместо CP/M записана Gamma-DOS) в спектрумовский Бейсик можно выйти командой SOS. После этого можно загружать с магнитофона любую игру. После загрузки по нажатию клавиши NMI (Non-Masked Interrupt — немаскируемое прерывание — в Z-80 принудительно выполняет переход по адресу 0x0066 и не может быть игнорировано) управление будет передано в Gamma-DOS, после чего игру можно сохранить командой SAVE, а затем вернуться в нее командой RET. Игры сохраняются в формате .SPC — по сути, это такой же дамп памяти, как и в TR-DOS с «волшебной кнопкой», только сжатый.
Игру Yie Ar Kung-Fu изначально разработали для игровых автоматов, но позже портировали на ряд приставок и домашних компьютеров, включая ZX Spectrum.
Когда компьютер был собран и заработал, я понял недостатки его схемы. Плюс она была сложная и дорогая в производстве. И я решил придумать свой вариант. Сделал, спаял тоненькими проводочками — это несколько тысяч соединений. Помню, папа ко мне приезжал: «Как ты в этих волосах разбираешься?» А там действительно с одной стороны микросхемы в дырки вставлены, а с другой — слой тончайших проводов. Когда нужно что-то изменить, ты пинцетиком их разгребаешь. Это как хирург на операции: чтобы добраться до нужного места, ты должен разрезать, раздвинуть ткани. Вот так раньше было.
Первый «Спектрум» я делал потому, что мне было интересно. Хотел создать устройство, оптимальное по всем параметрам. В принципе, у меня получилось. Потом на этой базе я начал делать другой компьютер — «Скорпион». В 1991-м создал фирму, мы выпускали 100–200 штук в неделю. Были монтажники, настройщики, отладчики. Продавали компьютер мы во многие города. У нас даже была карта, на которой мы флажками отмечали, куда его отправили. У Владивостока, например, флажков было очень много.
Ну и немного о дисковой части. Блок дисковода «Кворум», размером несколько меньше нынешнего Micro-ATX-системника, был сделан из солидной толщины стали, покрашен в серый цвет, и имел два пятидюймовых отсека. К нему прилагалась системная дискета с базовым набором утилит и несколькими играми — собственно, образ более новой версии этой дискеты и есть единственный, который я нашел для эмулятора. После покупки — году этак в 1998 — он у меня работать отказался, что стоило десятилетнему мне немалых расстройств; в конце концов нам починили его по гарантии. Блок мне попался в вертикальном исполнении с черным пятидюймовым дисководом «Электроника МС-6313» или что-то в этом роде. Дисковод был очень низкого качества, дискеты запарывал влегкую. На фирме «Кворум» мне его поменяли на более адекватный пятидюймовый же Panasonic, потом поставили второй Mitsumi, а потом поменяли второй на трехдюймовый Samsung. Впрочем, все равно дискеты все они жрали только в путь, и CP/M в один прекрасный день начинала выдавать страшные сообщения «BDOS ERR ON A: BAD SECTOR».
«Скорпион»
Дома на кухне у меня стоял рабочий стол. Его сделал приятель, работавший на Козицкого. Человек без высшего образования, но работяга — план перевыполнял на 500 %. К нему подходят: «Ты что делаешь? Нам же завтра расценки понизят». «А у меня семья, — отвечает, — и алименты. Мне надо зарабатывать 500 рублей». Это при средней зарплате 120–130.
Самым большим минусом как Gamma-DOS, так и SCREEN было то, что они поддерживали только программы для Спектрума-48. Игрушки для Спектрума-128, а это, естественно, зачастую были самые клевые игрушки, можно было запустить только из TR-DOS Кворума-128. Увы и ах.
Программы загружались с магнитофонной кассеты. Подключаешь магнитофон к компьютеру, минут пять что-то пиликает, потом раз — игра запустилась! Когда это произошло впервые, я прыгал до потолка.
Купить у «Юного техника» можно было много чего, но возникал вопрос: исправны ли детали, которые вы покупаете? Скажем, нужен вам комплект микросхем памяти 565РУ5. Как в полевых условиях проверить, работают ли они? И я решил стать посредником между продавцами и покупателями. Создал прибор, в который вставляешь микросхему и через секунду он показывает, исправна ли она. Это была непростая штука — порядка 70 соединенных микросхем. На ней я зарабатывал, причем очень много. Комплект микросхем стоил 50 рублей, проверка — 3 рубля. Когда приходил домой, карманы оттопыривались от денег.
У «Скорпиона» была изюминка, которая называлась «Теневой монитор». Можно было программу в любой момент остановить и в ней покопаться. Играешь в игрушку, нажимаешь на кнопочку — и смотри, изучай, меняй. Инструмент для творческого подхода. Были и другие наработки. Тогда это был единственный компьютер для творчества, который мог себе позволить обычный человек.
Возможно, именно из-за такого форматирования доступ к диску в CP/M был крайне медленным. Это (наряду с недостаточным разрешением экрана для работы в полноценных текстовых режимах) и было, на мой взгляд, основным недостатком системы. Конечно, дискеты — штука сама по себе небыстрая, но уж пару десятков килобайт в секунду спокойно должна вытягивать; в CP/M на Кворуме реальная скорость чтения не превышала 2-5 Кбайт/с. Это не проблема оборудования — так же медленно все работает даже в эмуляторе, да и TR-DOS заметно пошустрее будет. Особенно печально было копировать что-либо между дискетами при наличии всего одного дисковода.
Источники:
https://watch.spectrum.net/&rut=343e183b1d9c14d0dc195fdb94d21fa25655df0b73360f2b35a82d840e95bbf8
https://plaso.pro/place/972527&rut=07f30230a8923981f51f8acfd530699d921b2a9e8edb1d18aa640887127b28fa
https://kirov.cataloxy.ru/firms/www.spectrumM.ru.htm&rut=b81ce1b4d09838420746c8868b98463a5e54b0f78faac2e72bbbb3bfa120178d
https://habr.com/ru/companies/dataart/articles/447508/&rut=dda96926232572db11689b2531e963facef1a539a09793a74be28f7d3574df40
https://habr.com/ru/articles/122762/&rut=aea167c1ce9b17f3b0b9d7493f7cb2fca7d9094408fb1c452df3690e55af740c
https://www.yell.ru/kirov/com/spektrum-m-ooo_10146614/&rut=b942297401769fb49bc4d6c8a066da638d80af87ca4e8145c909b87202d60585
https://delovoy-kirov.ru/id84895&rut=e7615599dc701f4dad547cd11dc74a6f9ba0af75d0b147ff6b5bfb205bb924c6
https://www.spectrum.net/&rut=6098197601f3c301d0fbb85f93761254ea7a997e317562398269736573f201f4