«Окошки» на «Спектруме»

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

Недавно я нашёл подтверждение этой, в общем-то, очевидной мысли.

Несколько месяцев назад волею судеб я попал в небольшую чешскоязычную группу «8 bit Windows». Она закрытая, поэтому ссылку не привожу.

По-чешки я не читаю, но тут переводчик поначалу и не понадобился. Меня заинтересовали картинки.

Автор группы Мобисек Марек на смеси Бейсика с ассемблером делает что-то типа «Виндоуса» под  «Спектрум» и мастерит собственную периферию. Из сделанного в железе больше всего гордится контроллером на четыре дисковода.

Вся техника — из девяностых. Современные накопители и прочие удобства не считаются; всё обязано крутиться на настоящем старом железе. В описании группы Марек отдельно приписал, что обходится без нейросетей.

Открытый компьютер «Дидактик М»: зелёная печатная плата с электронными компонентами и процессором Зет-80.
«Дидактик М», принесённый Мареку на ремонт. Фото Мобисека Марека

Для эксприментов у него есть два компьютера: «Дидактик М» и «Дидактик Компакт». Оба — чехословацкие клоны компьютера «Спектрум». Изредка в группе появляются «Зет-Икс-81», «Дидактик Гама» и другая близкая техника, но чаще всего он пишет про свою спектрумовскую «Винду».

Конечно это не перенос настоящей системы «Виндоус», и программы для неё на «Дидактике» не запускаются. Марек написал свою графическую среду, позаимствовав знакомый всем вид интерфейса: рабочий стол, меню «Пуск», проводник, панель управления, калькулятор, часы, диспетчер задач и переключение между программами. Есть даже синий экран смерти — иначе, видимо, сходство было бы недостаточно убедительным.

Судя по фоткам в группе, внешний вид системы менялся. Она успела побыть «Виндоус 2.0», затем 3.1 и 2000; были ещё ветки «Профессионал» и «Икс-Пи». Свежая версия называется «Виндоус Экспириенс», а внутреннее имя её ядра — «Диамант».

На экране компьютера «Дидактик Компакт» открыто меню «Пуск» системы «МобиСофт Виндоус Икс-Пи».
Меню «Пуск» системы «МобиСофт Виндоус Икс-Пи». Фото Мобисека Марека

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

Рабочий стол системы «МобиСофт Виндоус Икс-Пи» для компьютера на Зет-80: значки, кнопка «Пуск», окна и часы.
Рабочий стол системы «МобиСофт Виндоус Икс-Пи». Фото Мобисека Марека

В спецификации написано, что для запуска хватит процессора «Z-80» на 3,5 МГц и 48 КБ памяти. Килобайт, не мегабайт! Памяти у «Спектрума» было совсем мало, но позже появились клоны, где были более солидные объёмы.В перспективе он обещает поддержку конфигураций до 512 КБ, такие расширенные клоны выпускались и у нас в России.

Размер ядра — около 20 КБ. Примерно 40% кода написано на расширенном Бейсике, остальные 60% — на ассемблере. Предусмотрено и что-то вроде многозадачности: две обычные программы плюс одна маленькая встроенная.

Сейчас двадцать килобайт занимает небольшая иконка, а тут в них помещается ядро графической среды. Например, один хранитель экрана — 549 байт. Зимняя заставка со снегом — 600. Псевдотрёхмерное пространство — 720. Рабочий стол с максимально возможным количеством значков занял 4050 байт при лимите 4096.

В процессоре нет ни защищённого режима, ни аппаратного разделения памяти между ядром и программами. Всё это пришлось изображать программно: придумать раскладку кода и несколько уровней защиты. Криво написанная программа вполне способна задеть соседнюю — или саму систему.

Ниже устройство памяти, нарисованное от руки. Внизу — ядро, часы, системная логика и диспетчер задач. Выше лежат области двух приложений; остальное место пока свободно. Специальная стартовая процедура определяет, что именно ей подсунули: обычную программу на Бейсике, приложение для «М-ДОС», третью или более новую ветку «Виндоус». После этого выбирается подходящий способ запуска.

Два наброска устройства памяти компьютера на Зет-80: ядро, часы, системная логика, диспетчер задач, приложения и свободное место.
Два наброска устройства памяти и защиты. Рисунок Мобисека Марека

Из-за отсутствия аппаратной защиты, пишет Марек, от программиста требуются порядок, логика и дисциплина. Забыла программа что-нибудь освободить? Вызвала несуществующую процедуру? Тогда система должна её остановить. Если получится — покажет сообщение или тот самый синий экран, а потом вернётся к жизни. Но попадание в жизненно важные места системы закончится обычной перезагрузкой.

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

Недавние изменения в меню «Пуск» дали плюс 10% к скорости. Столько же выиграл общий отклик. Диспетчер задач, по оценке Марека, разогнался сразу на 70%. Ещё одна затея — ускоренная отрисовка окон. Цель: уложиться примерно в одну десятую секунды. На глаз это уже будет почти мгновенно.

На экране старого телевизора открыто несколько программ системы «МобиСофт Виндоус Икс-Пи» и переключатель задач.
Несколько работающих программ и переключатель задач. Фото Мобисека Марека

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

Последняя заметка — сегодняшняя. В ней Марек выложил новую прошивку для компьютера «Дидактик Компакт»: исправил старую ошибку обработки немаскируемого прерывания, убрал неприятный звук после сброса и встроил «М-ДОС 2.2».

В группе всего восемьдесят участников, и почти все записи делает сам Марек. Так что скорее это не столько группа, сколько личный технический блокнот — почти как мой сайт. Только язык другой и проект один, зато огромный. В ленте не одни отчёты, заметки разные, но плюс-минус по одной теме. Сегодня Марек чинит очередной «Дидактик», завтра показывает редкую микросхему или схему. Иногда выкладывает экранную заставку, иногда ругает современную технику.

В одном из постов Марек жалуется: за границей к его работе интереса заметно больше, чем в Чехии. Дома, по его словам, реакции почти нет. Получается симметричная история. Его записи на чешском проходят мимо большей части мира; мои русские записи — мимо него. А я до недавнего времени вообще не знал, что он существует.

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

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

AnLe № 2
Красота.
Чегож они закрылись группой если им интересно чтобы другие проявляли интерес?
1
Евгений Степанищев автор № 10
Не знаю )) Может есть где-то ещё место, где он пытался публиковаться, да не пошло́.
m.ivanych № 3
По-моему, львиную долю этой невидимости обеспечивает не язык, а закрытость группы.

> В одном из постов Марек жалуется: за границей к его работе интереса заметно больше, чем в Чехии.

Ну а чего он ожидал, закрывая группу? 

Ну и это, видимо (из поста не очень ясно), группа в телеграме, а не в полноценном интернете (читай — не ищется в гугле).
Евгений Степанищев автор № 7
Она не ищется, потому что закрытая, тут уж всё равно где она. Но не факт, что он только в ней публикуется. Есть форумы и сайты спектрумистов, думаю он там писал и пишет. Многие так делают.
Алексей Сугоняев № 4
Чтобы объединиться, надо сначала размежеваться (с) :) Феномен ухода в ретро всегда интересен, особенное значение приобретает категорический отказ от всего нового и желание законсервировать именно те технологии которые в юности в детском возрасте были «импринтингованы» :) В данном случае удивляет применение BASIC и ассемблера совместно. Конечно я зацепил и спектрумовские времена, и они уже были не столь обжигающими как тот же К580ВМ80А :) Возможно поэтому получив спектрум я практически сразу охладел к его встроенному бейсику. Положа руку на сердце если бы я был его переразработчиком в союзе, в эти 16Кб загнал бы инструментальные средства для отладки и ассемблер/дизассемблер + Форт как язык поддержки начинающих программировать. Каким ветром Вас занесло к спектрумистам, да еще и Чехам?
Евгений Степанищев автор № 5
Ну так «Спектрум» мой второй компьютер, я отлично знал его программную часть и неплохо аппаратную.

«Бейсик» там вполне оправдан, ведь он встроен. Странно было бы не использовать то сокращение кода, которое он даёт.
Алексей Сугоняев № 6
Я понимаю о чем Вы говорите, поэтому и назвал в качестве языка более менее высокого уровня — Форт.
Алексей Сугоняев № 8
Так считали практически все разработчики на тот момент — Возняк в Apple II. ВВС Micro конкурент ZX Spectrum. Понятно что целая плеяда ПК в союзе тоже приняла такой подход Львов, Веста, Криста, Агат. Да даже первый PC Jur то же держал бейсик в ПЗУ. Однако :) и это очень не характерно — БК-0010 был с Фокалом, а не только с Бейсиком.
Евгений Степанищев автор № 12
там отдельный картридж был, если чего не путаю. У моего очень хорошего друга был БК 
Алексей Сугоняев № 13
Евгений Степанищев, Только слышал что планировался именно Фокал, потом заменили на Бэйсик. Но тут надо покопать историю :)
Евгений Степанищев автор № 14
Алексей Сугоняев, К сожалению, в таких слухах мало чему можно верить. Я как-то искал мифический язык программирования, где в качестве десятичной точки использовалась запятая. По всей видимости, его не существовало никогда.
Captain Estella № 15
Странный человек этот марек. Сделать закрытую группу и жаловаться что мало людей )))
Евгений Степанищев автор № 16
Ничего странного. Возможно он не на группу жалуется, а на другие площадки.
Captain Estella № 17
Так зачем группу закрывать и жаловаться на неизвестность? )))
Евгений Степанищев автор № 18
Потому что речь не о группе скорее всего.
Captain Estella № 19
Евгений Степанищев, Ну окей. Значит нам необходимы его контакты
Евгений Степанищев автор № 20
Captain Estella, Зачем? Какую проблему будем решать? Он говорит, что за границей интереса к его работе больше, чем в Чехии, а не про известность.

Как контакт поможет проекту больше интереса в Чехии получить?
Captain Estella № 21
Евгений Степанищев, Ну не знаю… Я так то чешка если что )