Архитектура операционной системы для ZX Spectrum-совместимых компьютеров

NedoOS – многозадачная операционная система для «русского ZX Spectrum» со средами программирования на ассемблере, Basic, Pascal, C, NedoLang. Работает на TR-DOS, FAT16 и FAT32 с длинными именами, поддерживает tar, gz, zip, rar2 и практически все реально используемые форматы спектрумовских файлов, сетевые утилиты включают Web-браузер и Web-сервер, Telnet-клиент и Telnet-сервер, IRC-клиент и др. Под ОС пишутся игры, в том числе сетевые. Сейчас в репозитории 6 участников. Исходный код всей системы (58 программ) составляет 230 тысяч строк на ассемблере и 70 тысяч строк на Си.

Введение


Архитектура компьютера


ZX Spectrum – 8-битный компьютер на базе процессора Z80. От прочих подобных компьютеров отличается тем, что вместо специализированного видеоконтроллера у него – просто комбинация счётчиков и мультиплексоров (в оригинале собранная в БМК, но легко переводимая на «рассыпуху» – микросхемы мелкой логики). За счёт этого компьютер сначала победил в ценовой гонке и стал машиной по умолчанию для «bedroom programming», а потом легко убежал от оригинального производителя и завоевал важнейшее место в компьютеризации многих стран мира. В том числе – стран, бывших в составе СССР, где Spectrum-совместимые машины выпускались околомиллионными тиражами (во всяком случае, больше, чем БК, ДВК и УКНЦ, вместе взятые).

Потрясающий воображение список известных клонов – тут. «Открытость» архитектуры (с точки зрения паяльника – а без паяльника наши клоны даже к телевизору было подключить проблематично) превратила ZX Spectrum в весьма навороченную платформу, с нетипичными для других 8-битных платформ (которые уже мертвы или заспиртованы) мегабайтами, мегагерцами, винчестерами и сетевыми картами.

ZX Spectrum до сих пор работает как платформа для инди-игр (см. идущие сейчас конкурсы «Yandex Retro game battle» и «Твоя игра 6», дедлайн которого продлён до 1 декабря), но разработка уже редко происходит в первоначальном формате, т.е. на самом Спектруме. Это объясняется среди прочего тем, что нативные среды разработки, написанные под TR-DOS в 90-х и 2000-х, отстали от жизни, а на смену им не пришло ничего нового.

Необходимость операционной системы


Операционные системы для Спектрума пишутся с давних пор. Операционная система, которая сидит в ПЗУ, позволяет писать на языке Бейсик и возиться с магнитной лентой. Дисковые операционные системы TR-DOS, GDOS, +3DOS и т.п. добавляли в Бейсик команды работы с дискетой, однако серьёзными утилитами обросла только TR-DOS, причём не за счёт довольно неуклюжего бейсик-интерфейса, а за счёт документированных (и не очень) точек входа в ПЗУ TR-DOS.

Если не считать нескольких версий CP/M (которая изначально писалась не для Спектрума и не использует по достоинству его возможности), первой серьёзной спектрумовской ОС была однозадачная iS-DOS (раз, два, три, архив), разработанная в Санкт-Петербурге в самом начале 90-х. Она «из коробки» предоставляла командер и файловую систему с подкаталогами (ни с чем не совместимую), редактор текстов произвольного размера, много дисков утилит и возможность расширения своими резидентами. К сожалению – расширения только в пределах окна ОЗУ размером 48K. Первые версии iS-DOS довольствовались 41K под всю систему, резиденты и программу пользователя, остальное пространство ОЗУ занимал экран размером 6912 байт.


iS-DOS в естественной среде обитания

Последние версии, до сих пор выходящие под названием TASiS (раз, два) и заточенные под клон ATM-Turbo 2+, позволяют развернуться на все 64K адресного пространства, убрать экран из памяти и переключать странички ОЗУ, но ядро системы в адресном пространстве всё равно остаётся. (То же касается и CP/M – во всех известных версиях система занимает верхние адреса и неистребима.)

Предпринимались и другие попытки написания ОС. К сожалению, ни одна из таких ОС не получила заметного распространения, а многие и вовсе не были закончены.

Уже упомянутый iS-DOS получил распространение в Санкт-Петербурге и Москве. Примерный функциональный аналог iS-DOS на TR-DOS диске – X-DOS – остался в пределах Кирова.


X-DOS и её командная строка

Многооконная система ДОМЕН ОС/Pink Floyd, также из Санкт-Петербурга, – не дожила до юзабельного состояния. В частности, жёсткие диски она не поддерживала, и в ней не было никаких средств разработки.


ДОМЕН ОС и её документация в HTML

Харьковская система DNA OS, в основном заточенная на копирование файлов, принесла определённую пользу хозяевам «винтов», но «софт под винт» в ней так и не появился.


DNA OS и её файловый менеджер

Не дожили до жизнеспособных релизов московская NK-DOS, братская NeOS, гродненская DOORS\AQUA и саранская ZX-OS/ZXRTK. Из многозадачных ОС ближе всего к пользователю подошли многооконные MythOS (Днепропетровск) и ChaOS (Таганрог), но и они закончили свою жизнь в исходниках — тоже без поддержки жёстких дисков и без средств разработки.


MythOS и её консоль


ChaOS и её хаос

Почему же было так много неудач?

Аппаратные требования для многозадачной операционной системы


Проблема всех ранних ОС для Спектрума была в том, что разработчики пытались обеспечить своему творению максимальную совместимость. Например, на iS-DOS – с машинами начиная с ZX Spectrum 48K (с дисководом или HDD), а на большинстве последующих систем – с ZX Spectrum 128K. Это накладывало неизгладимый отпечаток на распределение памяти.

Дело в том, что на 48K-машинах полное адресное пространство Z80 размером 65536 байт разделялось на 2 части: 48K ОЗУ (из которых 6912 байт отъедал экран, что оставляло 41 килобайт под всё остальное) и 16K ПЗУ Бейсика, от которого реальной пользы для ОС нет. В 128K дела обстояли лучше, но ненамного. Экран из адресного пространства Z80 там можно убрать (выбрав второй видеобуфер), но переключать страницы ОЗУ можно только в верхней четвертинке (с адреса 0xc000) адресного пространства. Остальные 32K ОЗУ не переключаются. А нижние 16K так и продолжают содержать ненужное для операционной системы ПЗУ. Конечно, фирменный 128K позволяет внешним устройствам (таким как LEC Memory Extension, DISCiPLE/+D, MB-02) подменять нижние 16K, а его потомки, начиная с +3, обычно имеют тот или иной встроенный порт для этого (чаще всего там доступна только одна страница ОЗУ), но половина адресуемой памяти всё равно не может меняться с переключением задач.

Представьте, что вы пишете текстовый или графический редактор под операционную систему для ZX Spectrum 128K. Очевидно, верхние 16K – слишком маленький объём для текста или иллюстрации (речь не о стандартных «экранах» в 6912 байт), и надо либо постоянно подгружать файл с диска (что медленно и неудобно), либо раскидать документ по страницам. Где же в этом случае будет располагаться код самого редактора, его переменные и стек? Не в верхних 16K ОЗУ, потому что там документ. Не в нижних 16K, потому что там, скорее всего, ПЗУ. Выходит, всем задачам придётся делить между собой один общий блок в 32K ОЗУ. Релоцируемые резиденты, разбитые, допустим, по 256 байт, вызывают процедуры из верхнего ОЗУ, отдельные резиденты – буферы для работы с данными, стек тоже ограничен 256 байтами… Это очень неудобно для разработчиков. Результат: под такие системы писали только сами авторы, да и у них хватало запала только на год-два, чего недостаточно даже для создания среды разработки.

Таким образом, для удобной многозадачной системы на Спектруме жизненно необходимо иметь переключаемые страницы ОЗУ в каждой из четвертинок (выбор именно четвертинок по 16К традиционен для Speccy) адресного пространства Z80. Спектрумовских схем, которые умеют это делать, немного: это малоизвестная «ZX-MMU» от fk0 (2000) и более-менее распространённая ATM-Turbo 2(+) (1992, 1993):


Из документации. Установленный бит 6 включает управление через порт #7ffd (ПЗУ TR-DOS автоматически подменяет ПЗУ 48 Бейсика при исполнении кода в #3dxx), в противном случае бит 7 просто включает заданную страницу ПЗУ. «ROM2» — бит 4 порта #7ffd, он работает всегда.

Многие авторы операционных систем полагали, что такое требование к подсистеме памяти – уметь переключать всё – сильно ограничит число пользователей, и не принимали его. В результате пользователей у них получалось примерно 0 – из-за отсутствия софта.

Разработка


Предыстория; что такое NedoPC


В 2002-2003 годах на просторах трёх континентов родилось движение NedoPC, которое кратко можно описать как… эмм… разработку компьютеров из подручных средств. И начали NedoPC с того, что другие на тот момент закончили – производить Спектрумы и устройства для них. А в качестве Спектрума взяли тот самый Turbo 2+ (1993) – потомок ATM-Turbo 2 (1992), который потомок ATM-Turbo (1991), который потомок Pentagon 128 (1990), известного в узких кругах как АТМ 128 (историю борьбы фирм в лихие 90-е можно прочитать в описании к Honey Commander’у). В своё время Turbo 2+ (к которому уже автоматически приклеилось обозначение ATM, как в прошлых версиях) замахивался чуть ли не на замену IBM PC ранних комплектаций – с HDD (потом и CD-ROM), аналогом EGA, XT-клавиатурой (потом и AT), COM-портом, ЦАП, АЦП (также игравшими роль модема) и играми «Принц Персии» и «Gobliiins», передранными абсолютно точно с PC-версии (не упоминаю весь софт, его много). Но часть остроумной схемы была упрятана в ПЛМ, из-за чего скопировать её мог мало кто. На просторах Украины раздавались слухи о замене ПЛМ на ПЗУ и о копировании отдельно контроллера HDD, но в общем и целом компьютер в 90-е встречался куда реже «Пентагона». К счастью, потом разработчики Turbo 2+ – фирма МикроАРТ – передали всю документацию в свободное пользование.

Практически сразу в орбиту NedoPC втянулось несколько разработчиков софта, и пошла речь об операционных системах. Иначе ответ на вопрос «куда нам плыть» не получался. Первым плодом тяжких раздумий в 2005 году была уже упомянутая система TASiS, ради которой были приобретены исходники iS-DOS.

Параллельно, в 2007 году, один из авторов этой статьи создал виртуального персонажа SMAN, который как раз и разрабатывал многозадачную операционную систему. И да, она тоже прошла через этап «резидентов в нижнем ОЗУ». Этот этап затянулся на годы, в 2016-2017 был даже написан компилятор Си-подобного языка NedoLang, влезающий в 48K (также компилирует под ARM Thumb). Гордиев узел был разрублен только с появлением графического редактора Scratch (2018).


Scratch и его меню

Выбор в 2018 году было совершить уже легко: совместимость с ATM-Turbo 2+ была доступна всем пользователям – если не на оригинальной железке и не на NedoPC’шных ZX Evo и Pentagon 2.666LE, то на ATM3 от Zorel’а или хотя бы в эмуляторе (Unreal Speccy, Xpeccy, ZXMAK2, Es.pectrum и др.).


Turbo 2+ (1993, но плата явно новее)


Pentagon 2.666LE (2009), весьма редкая машина


ZX Evolution (2009), можно купить в любой булочной


ATM3 (2017), достать можно только по знакомству или изготовить самому

С этого момента система получила название NedoOS и стала развиваться взрывообразно.

Надо отметить, что для сдерживания фантазий на первоначальном этапе этого взрыва система была построена в основном на командах, совместимых с CP/M и MSX-DOS. До сих пор список команд разбит на три раздела: совместимые с CP/M (сейчас их 13, их использование не рекомендуется из-за неудобной системы FCB), совместимые с MSX-DOS (их 11, там имя файла уже идёт текстом, а вместо структур FCB используются числа — хэндлы) и несовместимые (в основном нефайловые, их сейчас 48, но некоторые планируется выбросить).

Система разработки на текущий момент


Исходные тексты NedoOS всё ещё не адаптированы под имеющиеся в системе компиляторы (NedoLang и его ассемблер NedoAsm, Turbo Pascal и BDS C). Пока только 5 утилит компилируются внутренними инструментами. А основная часть пакета собирается на PC с помощью SjASMPlus (основной код) и Z80 IAR C (файловая система FatFs и некоторые утилиты).

Файлы размещаются на выделенном SVN-сервере и состоят из исходников, бинарного релиза и коллекции тулзов для сборки на PC.

Система собирается одной кнопкой (батник или Makefile – две системы сборки). Можно также одной кнопкой отдельно собрать один из таргетов (под HDD, SD-карту и т.п.) и сразу запустить эмулятор. Можно отдельно собрать каждую утилиту батником нижнего уровня. Две системы сборки получилось потому, что некоторые разработчики NedoOS сидят в Windows, а некоторые – в Linux.

Кроме компиляторов имеются также командный процессор cmd.com (может исполнять *.bat) и написанный с нуля интерпретатор NedoBasic с графическими возможностями.


NedoLang компилирует себя

Архитектура системы


Устройство ядра


Часть NedoOS, видимая программе пользователя, – это ряд вызовов в области памяти 0x0000..0x0038, так называемый керналь. Последний из этих вызовов – обработчик прерывания 50 Гц, а далее с 0x0080 следует командная строка с параметрами для программы. Пока ещё устройство керналя совместимо с CP/M (вызов через 0x0005), но мы потихоньку от этого отходим (CP/M-вызовы используются только в 4 программах из 58). Все системные вызовы организованы как макросы (программы используют модуль /src/_sdk/sys_h.asm с этими макросами и константами) и могут быть существенно изменены по мере развития ОС. Следствием этого является необходимость пересборки всей системы и прикладного софта при каких-либо изменениях в этих макросах – но, как мы видели, это делается одной кнопкой.

Внутренняя часть NedoOS спрятана в страницах ОЗУ и содержит:

  • обратные стороны вызовов керналя;
  • продолжение обработчика прерывания с планировщиком задач (шедулером);
  • системный обработчик прерывания, он без планировщика, зато вызывается всегда — читает клавиатуру, мышь и часы, по комбинации клавиш переключает «фокус» (см. ниже), выставляет палитру и видеорежим;
  • набор файловых и управляющих функций (BDOS), вызываемый через call 0x0005, как в CP/M и MSX-DOS;
  • драйверы блочных устройств (SD-карта на Z-Controller, SD-карта на NeoGS, IDE HDD, дискета, USB flash на плате ZXNetUSB);
  • драйвер клавиатуры (обычная 40-клавишная или PS/2-клавиатура ZX Evo);
  • драйвер мыши (Kempston mouse с колёсиком);
  • драйвер часов реального времени (по схеме Mr. Gluk), также система предоставляет время от начала работы в 50-герцовых квантах;
  • драйвер сетевой карты (Wiznet W5300 на ZXNetUSB);
  • файловую систему FatFs для FAT-16 и FAT-32;
  • файловую систему TRDOSFS для TR-DOS дискет и RAM-диска;
  • описатели смонтированных файловых систем;
  • описатели открытых файлов FatFs, открытых файлов TR-DOS и открытых очередей (пайпов);
  • описатели запущенных задач.

Все драйверы вкомпилированы в ядро, поэтому есть несколько разных «таргетов» сборки системы (ATM2, ATM2+HDD, ATM3, ZX Evo, Pentagon 2.666LE).

Обработчик прерываний, который располагается в пространстве пользователя, выглядит так:

        push af
        push bc
        push de
user_fdvalue6=$+1
        ld a,fd_system ;зависит от текущей страницы экрана
        out (0xfd),a ;уходим в контекст ядра (короткая адресация порта допустима на этом железе), там сохраняются прочие регистры и происходит переключение задач
;---------
;после выхода из контекста ядра:
;bc=memport0000
;d=pgmain
        out (c),d ;may switch this code page
curpg16k=$+1
        ld a,0
        ld b,memport4000/256
        out (c),a
curpg32klow=$+1
        ld a,0
        ld b,memport8000/256
        out (c),a
curpg32khigh=$+1
        ld a,0
        ld b,memportc000/256
        out (c),a
        pop de
        pop bc
        pop af
        ei
        ret

Переключение задач происходит по кругу (пропускаются замороженные задачи), приоритетов пока нет. Но задача idle выполняется только тогда, когда все остальные либо заморожены, либо в текущем кадре сами вызвали YIELD (системный макрос YIELD – отдать время системе до следующего прерывания, системный макрос YIELDKEEP – отдать время системе с возможностью возврата управления когда угодно).

Задача может сменить обработчик прерываний, можно с возвратом в него и произвольным кодом после него. Для этого есть определённые рекомендации и примеры.

Система терминалов


Задачи делятся на три типа:

  1. те, которым экран вообще не нужен,
  2. те, которым достаточно текстового терминала,
  3. графические – с собственным экраном требуемого разрешения и собственной палитрой.

В NedoOS, помимо понятия текущей задачи, имеется понятие «фокус» (доступ к клавиатуре, мыши и экрану). Фокус между задачами переключается вручную (по комбинации Symbol Shift+Enter) или автоматически (при включении графики, выключении графики или закрытии задачи).

Задачи типа (1) никогда не получают фокус. Более того, задачи типа (2) тоже не получают фокус, вместо них фокус имеет текстовый терминал, к которому они привязаны. А привязаны они через потоки stdin и stdout, по которым гуляют буквы, цифры, закорючки и коды терминала VT-100 с некоторыми дополнениями. Stdin и stdout реализованы через библиотеку stdio.asm как очереди (пайпы). В ядре очередь имеет буфер в 255 байт. Функции записи и чтения из очереди возвращают, сколько реально прочитано или записано (как и для файлов) и не закрыта ли очередь с другого конца. Эти потоки наследуются от отца к сыну. Но в конечном итоге отображается всё терминалом term.com, который можно скроллить и даже копипастить. Есть также сетевой Telnet-сервер netterm.com. Этот netterm.com можно и не запускать, а вот term.com запускается автоматически при старте системы.


Nedovigator в терминале, а терминал прокручивается колесом мыши

Для задач типа (3) речи о рисовании пикселей через систему, конечно, не идёт – для этого не хватает мегагерцев Z80 (у большинства пользователей их всего 14). Поэтому рисовать надо через память. А поскольку экранных областей на ATM всего две (как и на 128K), только одна задача может иметь собственные страницы экрана. Страницы экрана перехватываются при смене фокуса, а вместо них задаче-лузеру отдаётся фальшивый номер страницы – страница, которую можно просто портить. Когда задача получает фокус, ей приходит об этом отдельное сообщение как бы от клавиатуры, но не соответствующее ни одной реальной кнопке. Это позволяет задаче вовремя восстановить экран. Ещё задача может включить режим, когда система сама хранит за неё экран и восстанавливает его.

Командная строка


Функции командной строки реализует утилита cmd, которая автоматически запускается при запуске системы. Точнее, первая задача idle запускает term с параметрами cmd.com autoexec.bat. Это значит, что cmd выполнит указанный батник. Команды, прописанные там, выполняются по порядку. По умолчанию команды выполняются с ожиданием окончания, но если команда – это запуск программы, то перед ним можно поставить start – программа будет работать в фоновом режиме (только это не совместимо с концепцией наследования stdin и stdout – данные в очередях могут быть перемешаны).

После окончания операции, указанной в параметре (если параметр вообще был), cmd обычно завершается. Исключение оставлено только для autoexec.bat, чтобы после его окончания не остаться с разбитым корытом. Правда, в случае чего idle ожидает одновременного нажатия C+M+D и может перезапустить term с cmd.

Работа в командной строке напоминает MS-DOS. Можно перенаправить вывод запущенной операции в файл (например, dir > filename) или в другую программу (например, dir | more.com), можно перенаправить ввод (например, more.com < filename). Но передача по цепочке пока не поддержана.

Для более удобной работы с файлами используется командер Nedovigator (nv.com).


Котик, потому что Nedovigator вы уже видели

Размещение системы


Надо уточнить, что каждая файловая система у нас примонтирована к определённой букве, так что пути выглядят как m:/bin/filename.txt. Очереди имеют букву монтирования z:, но пока открываются без имени — связь между задачами идёт путём передачи номера (хэндла) очереди.

Чтобы избежать специализированных загрузчиков типа GRUB, NedoOS надеется на то, что в ПЗУ компьютера имеется возможность запуска хобетного файла (*.$C) с нужного устройства — например, в ZX Evo файловым браузером или по кнопке 5 в главном меню, а на Pentagon 2.666LE – через встроенный копировщик Fatall. В противном случае придётся грузить ОС с TR-DOS дискеты. Системные файлы располагаются в каталоге /bin системного диска, игры лежат в /nedogame. Дополнительные файлы игр обычно размещаются в подкаталоге, одноимённом игре: например, раскрашенная под NedoOS игра /nedogame/br.com (Чёрный Ворон) имеет также каталог /nedogame/br с графикой, музыкой и уровнями.


Цветной Ворон

Текущие возможности


Память: поддерживается до 4M ОЗУ (настраивается в системе сборки), память выдаётся задачам по запросу страницами по 16K, задачи могут и сами их возвращать в систему. Из-за отсутствия защиты памяти в железе всю память можно считать разделяемой. По умолчанию страницы выделяются с начала памяти, не считая нескольких системных страниц. Своп не поддерживается (он рассматривался на ранних этапах, но требует перенумерации страниц, что сильно снизит производительность обычных задач).

Многозадачность: вытесняющая (по прерыванию 50 Гц) и кооперативная; одновременно может быть запущено до 16 задач (одна из них – idle, её можно снять, но тогда YIELD не даёт гарантий); можно подставить свой плейер музыки в системный обработчик прерываний – будет выполняться в контексте ядра с тремя страницами пользователя (переключать их на лету пока нельзя). Задачи могут быть в замороженном состоянии (если они только что созданы, удаляются или ожидают потомка). Можно в cmd смотреть список задач, их активность и наличие графического режима, снимать с исполнения (при этом освобождаются их страницы, файловые записи FatFs и сетевые сокеты).

Файлы: можно одновременно открыть до 16 файлов FAT, 8 файлов TR-DOS и 8 очередей. Можно одновременно читать и писать несколько файлов (важно для компилятора) – даже на дискете! Можно считывать параметры файла, указатель на текущую позицию, менять эту позицию, создавать и переименовывать директории. Очереди предполагают две задачи-пользователя, их требуется открывать один раз (при создании), но закрывать дважды. Файловые операции выполняются в контексте ядра, в это время не работает планировщик задач, но работает системный обработчик музыки.

Работа с сетью: протоколы ICMP, TCP, UDP, одновременно до 8 сокетов. Имеются утилиты ping, time, telnet, netterm (Telnet-сервер), dmirc (IRC-клиент), dmftp (FTP-клиент) 3ws (Web-сервер для копирования и удалённого запуска файлов), NedoBrowser (текстовый браузер с возможностью отдельно смотреть картинки jpg, gif, png, bmp и svg — последние два формата с ограничениями; поддерживает протоколы http и gopher, https через прокси), wget (фоновая скачка файлов, запускается из браузера, умеет автоматически запускать просмотр графики и плейер музыки).


NedoBrowser что-то ищет в Интернете

Работа с архивами: .tar и .rar доступны на чтение и запись (ZXRar – урезанный аналог Rar 2.x под DOS — без ряда кодов, solid архивов, мультимедийного формата и шифрования, ZXUnRar поддерживает все коды и solid архивы, но тоже не поддерживает мультимедию и шифрование), .gz и .zip только на чтение. Пока всё только через утилиты командной строки.

Типы документов: файловые ассоциации прописаны для встроенного командера Nedovigator в файле nv.ext. Сейчас этот файл выглядит так:

bmp:scratch.com
bat:cmd.com
txt,new,ext,ini,nfo,diz:texted.com
gif,jpg,png,htm,svg:browser.com
tfc,pt2,pt3,mt3,m  :player.com (pt3 можно редактировать специальной версией Pro Tracker под NedoOS)
bas:basic.com
zip,gz :pkunzip.com
trd,scl,fdi,tap:dmm.com (программы TR-DOS и ленточные — они запускаются на ZX Evo путём монтирования образа, их можно переключать, сохранять и выключать по кнопке Magic; то есть можно, например, играть в игру и периодически переключаться и писать описание)
16c,scr,fnt,img,3  ,888,y  ,+  ,-  ,plc,mc ,mcx,grf,ch$,mg1,mg2,mg4,mg8,rm ,mlt:view.com
mod:modplay.com
tar:tar.com
sna,b  ,z80:nmisvc.com
rar:unrar.com

Имеется также с десяток игр, в том числе эмулятор «Супер Марио» (для работы требуется дамп картриджа), раскрашенный «Eric and the Floaters», частичный порт «Бесконечного лета» и сетевой Snake.

Планы


  • Расширение функционала батников (уже передаются параметры)
  • IDE и self-hosting
  • Слои в графическом редакторе
  • ...

Заключение


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

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


В основном разработчики NedoOS обитают в IRC-канале #mhm на irc.forestnet.org (также доступно через http://chat.forestnet.org/). Существует вечерний Twitch-каналзеркалом на YouTube). С сайта NedoOS можно скачать стабильную версию и свежие исходники.

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

    +5
    Очень круто работа колоссальная!

    Испытываю какой-то трепет перед этим компьютером…
    Меня всегда интересовало может ли такой слабый ПК как ZXS выйти в интернет.
    Вопрос не по теме статьи, но хочется узнать, как в ZXS реализована работа с сетевой картой, какой сетевой контролер используется, как подключается как взаимодействует с процессором.
      +2
      Вроде wiznet w5100 в таких везде. Там socket-ы внутри карты. Я через него подключаю. SPI или TTY или параллельный вот спек www.sparkfun.com/datasheets/DevTools/Arduino/W5100_Datasheet_v1_1_6.pdf
      Можно w5500. Они копеечные. Посмотрите на али «W5500 Ethernet Network Modules For Arduino» ~2$
        +2
        w5100 это не спортивно, она на прядок мощнее Z80 и всей электроники в этом компьютере.
        Я в свою молодость думал в сторону переделанного и перепрошитого модема, подключённого магнитофонному входу.
          +1

          Можно подумать, что модем со всеми своими DSP не мощнее Z80 на 3.5 МГц...

            0

            Зато не будет "бутылочным горлышком" для и без того маломощной системы).

          +4

          Там Wiznet W5300, который работает, в отличие от W5100, сразу на параллельной 8-битной шине процессора Z80.

            0
            W5300 если покупать готовый модуль, будет сильно дороже. Мне весь Спектрум за эти деньги вышел. А если взять только чип, то обвязка выйдет непростая. А w5100 и w5500 в готовых модулях со всей обвязкой на Али сильно дешевле отдельного чипа на digikey
              +1

              Ну всей специфичной обвязки у W5300 — это RJ45 разъём с трансформатором внутри да кварц. В карточке ZXNetUSB стоит еще USB-контролер SL811 и адаптер шины на EPM3128, так что проблем с шиной конкретно W5300 нет.

                0
                Не очень понятно почему, все равно стоит FPGA, а w5300 это $8 плюс кварц, трансформатор и разъем. А модуль w5500 со всем барахлом $2.5.
                Видимо причины исторические
                  +2
                  1. Это не FPGA, а CPLD. Среди полезных характеристик — 5v tolerant IO (можно вешать прям на 5-вольтовую шину ZX), конфигурация в flash на кристалле, дешевизна (на Али).


                  2. W5500 имеет SPI-интерфейс, как его подключать к шине ZX? Всё равно была бы CPLD, как минимум для реализации контроллера SPI. Кроме того, работа через единственный байтовый стрим (будь это serial как в ESP8266 или SPI как в W5500) не способствует упрощению драйвера — в противоположность работе с множеством регистров и буферов W5300.


                  3. суммарная себестоимость собранной платы ZXNetUSB — около 1000 рублей, по крайней мере такую цифру озвучивали разработчики.


                    0
                    Я не об этом FPGA. Я о том что на основной плате, альтера, которое изображает периферию и контроллер дисплея для z80. Обслуживание SPI и эмуляция любого удобного для z80 параллельного интерфейса это пара десятков строк.
                    PS вопрос снимаю, сам понял. совместимость с разными платами.
                      +1

                      Не всё так просто. Плату ZX Evo с FPGA и сетевушку ZXNetUSB разделяет ~10 лет, кроме того, на слоты не выведено ничего, кроме ZX-Bus. Выводить что-то ещё значило бы рисковать совместимостью с уже существующими картами расширения ZX-Bus. Кроме того, ног FPGA на материнской плате и так сильно не хватает. Ну и наконец, 'эмуляция любого удобного параллельного интерфейса' либо так и сохранит единый байтовый стрим, либо окажется сильно сложнее 'пары десятков строк'.

                        0
                        Я так и не понял, это open source под какой либо лицензией или закрытый проект? Хотел попробовать садаптировать к своему эмулятору на stm32f407-411 (в моем профиле линк на гитхаб), но так и не понял как скачать исходники. Ну если закрытый, то вопрос снимается. Ага нашел, перелез на комп с телефона. Спасибо.
                          +1

                          По-видимому автор не очень заморачивался с лицензиями :) Но исходный код да, весь открыт.
                          Вот тут вроде можно архив скачать: http://nedoos.ru/svn/listing.php?repname=NedoOS


                          Интересно, есть ли ссылка для скачки напрямую клиентом svn ?

                            0

                            svn://zxevo.ru/nedoos

            0

            W5300 можно "юзать" двумя способами. Либо через порты, в этом случае регистры поделены на группы по 64 регистра(сделано для удобства, т.к. реги сокетов тоже группами по 64), одним портом выбираем группу, вторым портом собственно читаем пишем реги(старшие биты адреса выбирают регистр).
            Второй вариант так называемый меморимаппинг. Регистры проецируются в адресное пространство z80, т.е. подменяют пзу. В этом случае работа с регами едёт как с озу.
            В недоос используется первый вариант. Но он несколько"тормозной", поэтому в планах перейти на второй вариант.

              0
              Меня всегда интересовало может ли такой слабый ПК как ZXS выйти в интернет.
              у этих ребят вроде точно есть — www.kickstarter.com/projects/spectrumnext/zx-spectrum-next-issue-2/description
                0
                У них скорее «псевдоретро» с виртуальными девайсами на VHDL, которые ни к одной модели Спектрума подключить нельзя. Там даже в процессоре дополнительные команды. Таких проектов много, у каждого свой несовместимый софт, но только один такой проект вышел на кикстартер. Разработчиков такие проекты обычно переманивают со Спектрума, где их и так мало.
                  +1

                  У них и процессор на самом деле 'эмулятор', написанный на VHDL. Например, он не проходит тестов zexall на поведение неопределённых и недокументированных флагов.

                0
                Комп времен моей молодости, вот только к чему он сейчас? Энтузиастам ура, но какая выгода? Все дурачки обучаются на Питоньчике, а на 48К даже компилятор Си запускался в урезанной версии и с минимумом памяти. Это реклама проекта, который видел на стартапе, вроде за немыслимые $500? Умер Спектрум 25 лет назад,… попытки оживить труп.
                  +1
                  25 лет назад был 1995 год, только-только появились винчестеры, сети, демокомпо и нормальные среды разработки. Может быть, вы имеете в виду, что Спектрум умер как коммерческая машина? Но он всё-таки больше машина для инди-творчества, чем для заработка. К людям, которые требуют $500, NedoPC не имеет отношения. Когда мы производили ZX Evolution, цена была 3850 рублей. Это было много лет назад, сейчас производит другой человек, по другим ценам, но всё равно это не сотни долларов.
                    0
                    Я другу на дачу купил комп на Core 2 Duo, 4Gb, 500 Gb, ЖК монитор 19", клава и мышь, за все 6000 р., по тому курсу 2 года назад $100. Можно делать все, кроме современных игр, но он не игрун.
                    А в 90-е я сам его столько напаял и продал, неплохо зарабатывал.
                    Я не фанат инди и не понимаю умиления стариной, сейчас мне ZX неинтересен. Изучаю Tenzor Flow, это интересно, а древности нет. Просто мое мнение.
                +1
                Спасибо, очень интересно. Спектруму конечно сильно не повезло, что изначально в его архитектуру не была включена возможность полностью заполнить адресное пространство процессора ОЗУ, ну и конечно отсутствие простейшего memory mapper-а. Но читать о разработке ОС на Zilog Z80 очень увлекательно. Спасибо ещё раз
                  +1

                  Спектрум машина 80х, там с портами вообще катастрофа, адресовалось всего 8портов, по числу битов в нижнем регистре адреса порта. С памятью ещё повезло что не намудрили и осталось все 64к доступно. Все проблемы начались ещё у спектрум128, когда начали тащить туда совместимость с 48к

                    0
                    Спектрум машина 80х, там с портами вообще катастрофа, адресовалось всего 8портов, по числу битов в нижнем регистре адреса порта.
                    Извиняюсь конечно, но разве восьми бит не хватит на 256 портов ввода вывода? Или в спектруме, запамятовал за давностью лет, совсем неполное декодирование портов? И опять же в Zilog Z80 были команды in/out (bc),a с 16битным портом В/В?
                    С памятью ещё повезло что не намудрили и осталось все 64к доступно.
                    Именно с ней и не повезло, ПЗУшка в нижних 16кб не отключается, еслибы она отключалась, на спектрум со свистом (почти со свистом) залетел CP/M. Там бы была только одна проблема — 32 символа в строке, что для софта CP|/M было очень мало.
                    Все проблемы начались ещё у спектрум128, когда начали тащить туда совместимость с 48к
                    все проблемы Спектрума начались с того что Клайв Синклер хотел на нем по быстрому срубить денег, и соответственно не сильно заморачивался с архитектурой спектрума (и так сойдет для сельской местности)
                      +3
                      все проблемы Спектрума начались с того что Клайв Синклер хотел на нем по быстрому срубить денег, и соответственно не сильно заморачивался с архитектурой спектрума (и так сойдет для сельской местности)

                      Ну можно и так конечно сказать, но основная идея была сделать доступный массам комп по цене 200 фунтов (и получить на этом прибыль конечно). Отсюда и растут все ограничения: Как внешние (телек вместо монитора и магнитофон вместо дисковода), так и архитектурные (выброшено все что можно было выбросить).
                      В некотором роде он как раз заморочился с архитектурой и спектрум 48к это уже набор аппаратных хаков, с помощью которых он сэкономил на запчастях.
                      Именно с ней и не повезло, ПЗУшка в нижних 16кб не отключается, еслибы она отключалась, на спектрум со свистом (почти со свистом) залетел CP/M. Там бы была только одна проблема — 32 символа в строке, что для софта CP|/M было очень мало.
                      Дык та же проблема: не было видеоконтроллера с знакогенератором, вместо него на экран просто отображался кусок ОЗУ, которым нельзя было раскидываться, поэтому экран стал очень куцым. Да и качество телека тоже не фонтан, все равно это не монитор чтоб делать от края до края рамки, тк от изменения яркости уползают размеры на кинескопе и тд.
                      Наверно про нижнюю память он не подумал, но там в 48К вообще проблем хватало, начиная с ошибки в вызове немаскируемого прерывания. Да и первые спектрумы были вообще с 16К ОЗУ, память была дорогая, кто мог подумать что у нее еще и какие-то страницы будут потому что в 64к всё не помещается.
                      Извиняюсь конечно, но разве восьми бит не хватит на 256 портов ввода вывода? Или в спектруме, запамятовал за давностью лет, совсем неполное декодирование портов? И опять же в Zilog Z80 были команды in/out (bc),a с 16битным портом В/В?
                      Это опять же следствие экономии, не было дешифратора адреса порта в спектруме, просто каждая линия адреса была напрямую соединена с CS микросхемы соотв порта, соответственно получалось всего 8 портов, причем на некоторых портах уже что-то висело (магнитофон, джойстики) Бонусом можно было писать одновременно в несколько портов, но врядли это кому нибудь было нужно.
                      Порт В насколько помню вообще использовался для матрицы клавиатуры и дергался по прерыванию 50 раз в секунду (5 линий порта х 8 линий шины данных — матрица клавиатуры), врядли им возможно было пользоваться, не меняя ROM.

                      В общем благодаря экономии на всем получился дешевый комп, который пошел в массы. А когда он стал массовым, под него написали кучу софта и начали упираться в ограничения железа — все стали ломать голову над апгрейдом «как нам взлететь с этой фигней» и не поломать совместимость со старым софтом.
                      128К был работой над ошибками и стал уже частично несовместимым.
                      И в итоге стали появляться монстры вроде ATM Turbo, которые при перезагрузке аппаратно переконфигурировались либо в спектрумы либо в нормальные CP/M машины без всей этой экономии.
                        +1

                        Спектрум не только оказался дешёвым (ещё более дешёвыми были например ZX80 и ZX81) но и ещё практически случайно оказался хорошо подходящим для динамических игр. Этому поспособствовали довольно быстрый процессор вместе с довольно небольшой видеопамятью. Стало получаться чисто процессором, без аппаратных погремушек вроде скроллов и спрайтов (которых в Спектруме нет), достаточно быстро ворочать большим кол-вом графики в играх.

                          +1
                          ZX80 и ZX81 c 1К оперативки и отключающимся экраном на время выполнения программы это скорее программируемые калькуляторы с бейсиком чем компьютеры.
                          0
                          Ну можно и так конечно сказать, но основная идея была сделать доступный массам комп по цене 200 фунтов (и получить на этом прибыль конечно). Отсюда и растут все ограничения: Как внешние (телек вместо монитора и магнитофон вместо дисковода), так и архитектурные (выброшено все что можно было выбросить).
                          Нет, первая и единственная цель Клайва была заработать денег. А что это усилитель хифи, калькулятор или ПМК ZX80|81 было без разницы.
                          А архитектуру Синклер в спектрум потащил из ZX80/81, и всячески препятствовал её улучшению, т.к. это требовало дополнительных средств. И телевизор и магнитофон в начале 80-х вообще де факто были стандартом периферии домашнего компьютера, а вот отдельный монитор и дисковод скажем были роскошью не доступной многим.
                          Проблема качественного изображения в ZX Spectrum
                          Проблема качественного изображения в ZX Spectrum до конца решена не была. Пользователи жаловались на проблемы с цветом и качеством картинки. Многое зависело и от модели телевизора. В итоге это вылилось в появление RGB-выхода у модели ZX Spectrum 128. Стоит сказать, что видеовыход «без потери качества» был предусмотрен еще в самой первой модели ZX Spectrum, однако из-за экономии он был реализован нестандартно. Вместо сигнала RGB на выводы краевого разъема (Edge connector) были разведены цветоразностные и яркостный сигналы. Это делало невозможным подключение к RGB-входу телевизора посредством стандартного шнура-переходника.

                          Потеря качества изображения из-за кодирования в PAL затрудняла работу с графикой и цветным текстом. Однако у «медали» была и оборотная сторона — размытость картинки часто скрывала недостатки слабой графики.

                          В некотором роде он как раз заморочился с архитектурой и спектрум 48к это уже набор аппаратных хаков, с помощью которых он сэкономил на запчастях.
                          Фактически он экономил на спичках.
                          Я думаю что лучше об истории спектрума, как он рождался, как жил, и как сходил со сцены лучше прочитать здесь.
                          Цветной, с полноценной клавиатурой, дешевый
                          В отличие от предыдущих проектов, работа над ZX Spectrum не была завершена в духе единства и сотрудничества. Созданием аппаратной части занимался Ричард Альтвассер (Richard Altwasser). Разработка встроенного программного обеспечения ZX Spectrum, как и его предшественников, проводилась компанией Nine Tiles Information Handling Ltd по заказу Sinclair Research. Такая схема работы позволяла не раздувать штат сотрудников Sinclair Research и сокращать налоги. Компанией Nine Tiles руководил Джон Грант (John Grant). Согласно Стиву Викерсу (Steven Vickers), работавшему в Nine Tiles, еще в самом начале работ по ZX Spectrum возникли разногласия. Синклер хотел максимально использовать код, уже имеющийся в ZX81, при этом значительно расширить его функции без переработки. Стив Викерс считал, что код, написанный с учетом ограниченной памяти ZX81, требует переработки. Бюджет работ был крайне ограничен; по сути, разработкой Бейсика для ZX Spectrum занимался только Викерс. Скорость работ оказалась явно недостаточной, требовались дополнительные ресурсы. Синклер же не желал ничего слышать об увеличении расходов. Многие проблемы решались исключительно благодаря дружбе Викерса и Альтвассера, выполнявшего роль промежуточного звена между Nine Tiles и Sinclair Research. Печальная развязка наступила в начале 1982 года, когда Клайв Синклер решил не выплачивать премию по итогам разработки ZX Spectrum, а дождаться начала выпуска и выплачивать деньги с прибыли от продаж. Это совершенно не устраивало двух ключевых разработчиков программного и аппаратного обеспечения — Стива Викерса и Ричарда Альтвассера. В феврале 1982 года они порвали отношения с Синклером и ушли из Nine Tiles и Sinclair Research. Последствия ухода Викерса и Альтвассера оказались очень неприятными: сроки проекта начали съезжать, и стало очевидным, что к запланированному на апрель 1982 года официальному выпуску ZX Spectrum работы завершены не будут. Это в первую очередь касалось накопителя на ленте Microdrive и его программной поддержки. Первоначально считалось, что ее встроят в ПЗУ (ROM) ZX Spectrum, однако задержки в разработке аппаратного обеспечения сделали невозможным отладку этого кода. В апреле 1982 года ПЗУ так и не было закончено, но на ежегодной компьютерной выставке в Лондоне было объявлено о начале выпуска ZX Spectrum.

                          Да-да, Клайв Синклер объявлял о готовности продукта и начале выпуска, отлично понимая, что это только пустые слова. Затем наступил май, но завершение работ все не наступало. Пытаясь разрубить этот «гордиев узел», Синклер предложил выпустить первую партию ZX Spectrum с недоделанным кодом в ПЗУ, предусмотрев возможность его замены после завершения работ. К концу лета, когда было заказано и оплачено более 70 тысяч машин, а до финальной версии было далеко, Синклер отказался от идеи с заменой ПЗУ. Было решено ставить то, что есть, и прекратить доделки. Последствия этих «метаний» заметны на первых версиях ZX Spectrum, там ПЗУ установлено на панельке. Кроме того, в самых первых компьютерах вместо масочной ПЗУ (ROM) устанавливалась перепрограммируемая микросхема (EPROM). А 1300 байт столь ценного пространства так и остались незаполненными ничем. Остались навсегда… Сейчас это может показаться мелочью, но надо вспомнить, что выпускавшийся в то время ZX81 имел всего 1 килобайт ОЗУ и 8 килобайт ПЗУ, в которых вообще не было свободного места…


                          Это опять же следствие экономии, не было дешифратора адреса порта в спектруме, просто каждая линия адреса была напрямую соединена с CS микросхемы соотв порта, соответственно получалось всего 8 портов, причем на некоторых портах уже что-то висело (магнитофон, джойстики) Бонусом можно было писать одновременно в несколько портов, но врядли это кому нибудь было нужно.
                          Что являлось родимыми пятнами ZX80/81 и навряд являлось приятными бонусами.
                          В общем благодаря экономии на всем получился дешевый комп, который пошел в массы. А когда он стал массовым, под него написали кучу софта и начали упираться в ограничения железа — все стали ломать голову над апгрейдом «как нам взлететь с этой фигней» и не поломать совместимость со старым софтом.
                          Дешевый комп который можно было оплатить, но невозможно получить
                          Первые счастливцы получили в конце июня заказанные в апреле-мае компьютеры.
                          Первые счастливцы получили в конце июня заказанные в апреле-мае компьютеры. Ни о каких оговоренных двух неделях на доставку речи не было. Извинений или объяснений не было тоже. Просто на первых же буклетах с купонами для заказа ZX Spectrum было напечатано: «При любом способе заказа нам необходимо до 28 дней на доставку». Проблемы, связанные с окончанием разработки, тщательно скрывались на фоне рекламных статей о новом «чудо-компьютере». Желающих его приобрести, да еще по самой низкой на рынке цене, было предостаточно.

                          И тут выяснилось, что Синклер совсем не готов к такому наплыву покупателей. К июлю 1982 года количество необработанных заявок выросло до 30 000. Производственная мощность предприятия Timex в городе Денди (Шотландия), где выпускались компьютеры, составляла максимум 5000 штук в неделю. К тому же в июле предприятие было остановлено на три недели в связи с плановым отпуском сотрудников.

                          Следует напомнить, что продажа ZX Spectrum, как и его предшественников, осуществлялась по почте с предоплатой. Вскоре очередь выросла до 40 тысяч, а время ожидания — до трех месяцев. Покупатели заявили, что не собираются финансировать Синклера и готовы ждать не более двенадцати недель. Кроме того, количество возвратов из-за брака оказалось неожиданно большим.

                          В сентябре 1982 года, пытаясь успокоить взбешенных заказчиков и прессу, Синклер публикует в журнале Spectrum User официальное письмо с извинениями за задержки. Он предлагает тем, кто устал ждать, вернуть деньги назад, а тем, кто согласится дожидаться своей очереди, обещает ваучер на 10 фунтов стерлингов для получения скидки на ZX Printer или покупки бумаги для него (цена на ZX Printer была поднята с £49,95 до £59,95 в апреле 1982 года). Однако уже слишком поздно — в адрес компании начинают сыпаться жалобы с обвинениями в ложной рекламе и обмане. Речь идет о заявленных 28 днях на доставку ZX Spectrum после оплаты заказа. Репутации компании и лично Клайва Синклера нанесен серьезный ущерб. Впрочем, это его не первое и не последнее невыполненное обещание…

                          Плюс проблемы с качеством у основного производителя Спектрумов Timex
                          Качество исполнения TS 1000 крайне низкое, в некоторых партиях работоспособна только одна машина из трех.
                          Проблемы с качеством тоже были достаточно острыми. Так, в феврале 1983 г была выпушена партия (в 14 тысяч штук) ZX Spectrum с дефектом в блоке питания — плохой гальванической развязкой с электросетью. Это были уже не шутки, прикосновение к металлическим частям такого компьютера, например, разъему UHF при подключении телевизора, могло вызвать поражение электричеством. Попросту говоря, убить. Дефектные компьютеры были срочно отозваны из продажи, и, к счастью, все обошлось.
                          Мы покупаем ZX Spectrum. Постскриптум (составлено на основе писем реального покупателя)
                          Получив в октябре прошлого года долгожданный ZX Spectrum, мы решили окунуться в мир компьютерных игр. Однако были достаточно быстро разочарованы: Игр было сравнительно немного, сюжеты примитивные, графика… ну, скажем, не очень хорошая.

                          После Нового года мы открыли еще одну неприятную особенность: части игр требовалось для работы 48 килобайт. Мы же купили базовую версию ZX Spectrum с 16 килобайтами. Ну что же, за экономию нужно платить, и мы решаем расширить память дополнительными 32 килобайтами. Впрочем, теперь мы не будем делать ошибок прошлого года, мы сразу позвоним и закажем.

                          Каково же наше удивление, когда, позвонив, мы выясняем, что расширить память нельзя. То есть пока нельзя. Но можно будет расширить в ближайшее время. Когда? Точно не известно. Как же так, ведь эта возможность была указана, когда я заказывал компьютер в июне прошлого года. Нет, оказывается, «возможность» была только на бумаге, да и вообще, заказы на машины с 48 килобайтами стали приниматься только в сентябре. А что же делать? Можно немного подождать. Нет, ждать не хочу, знаю, что это такое. Ну, можно заказать еще один ZX Spectrum. Нет, мне не нужно два компьютера. А нельзя ли обменять с доплатой мой компьютер на другой с 48 килобайтами? Нет, это возможно только в первые две недели после доставки, как возврат денег…

                          Тупиковая ситуация. Но мы не паникуем. Один наш знакомый хотел купить ZX Spectrum. Причем именно такой, как у меня. Решено, продаем! А там посмотрим. 13 февраля 1983 года я продал свой ZX Spectrum с 16 килобайт ОЗУ за ту же цену, что и купил — 125 фунтов.

                          Через месяц, заняв еще 50 фунтов, я купил Commodore 64, который и стал моей любимой машиной на долгие годы. Звук, графика, память, клавиатура и надежность ZX Spectrum не могли сравниться с моим новым компьютером, я никогда не пожалел о сделанном выборе.

                          Проблемы с совместимостью
                          Хотели как лучше

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

                          Оказывается, с августа начат выпуск новой, уже третьей по счету версии ZX Spectrum. Эта версия более технологична, в ней решены проблемы с цветом при работе с немецкими и японскими телевизорами, компьютер меньше нагревается, но, увы, частично не совместим с имеющимися программами. Причина проблемы в том, что в новой версии ULA, изготовленной по CMOS технологии, бит магнитофонного порта вместо стабильного состояния (логической единицы) периодически переключается.

                          Программное обеспечение, написанное ранее, предполагает, что этот бит будет стабилен, и считывает его при опросе клавиатуры. С ZX Spectrum версии 3 все меняется. В некоторых программах скачет курсор или произвольно выбираются пункты меню, в других, наоборот, клавиатура как будто бездействует. Синклер заявляет, что во всем виноваты неумелые программисты, и что у программ, написанных в Sinclair Research, подобных проблем не возникает. Производители программ парируют тем, что об изменениях их никто заранее не уведомил.
                          В течение нескольких месяцев скандал постепенно затихает, программы исправляют, а главным уроком для Синклера становится очевидность жесткой привязки к первоначальной архитектуре. Возможности дальнейшего развития ZX Spectrum как платформы сильно ограничиваются. Это закономерное следствие закрытости архитектуры ZX Spectrum и отказа Sinclair Research от поддержки разработчиков.

                          Возможно, Синклер опасался клонирования его компьютеров; возможно, думал, что партнерство и альянсы ничего не приносят, а может, считал все компании, создающие программы, муравьями у ног великана… Это уже не имеет большого значения, но факт остался фактом: отсутствие четкой политики в отношении разработчиков, закрытость информации и желание монополизировать все, что возможно, привело к изоляции, отсутствию стандартов и нерациональному применению имеющегося в ПЗУ кода. Аппаратные средства, используемые разработчиками напрямую, как якорь сковывают ZX Spectrum в его развитии. Впервые эти проблемы возникли в 1983 году, однако Синклер не придал им большого значения. Его уже мало интересовал ZX Spectrum, в его голове зрели куда более амбициозные планы. Одной из таких идей был выпуск нового, более мощного компьютера и выход на корпоративный рынок.


                          128К был работой над ошибками и стал уже частично несовместимым.
                          Которую сделал не Синклер, точнее вопреки его планам сделали испанцы из Investronica. Которых он потом и «кинул».
                          Внебрачное «дитя» Синклера
                          За год, прошедший с начала выпуска ZX Spectrum+, дела у Синклера в туманном Альбионе шли все хуже и хуже. Но под теплым испанским солнцем процветал бизнес компании Investronica — дистрибьютора Sinclair Research. Начав с выпуска ZX Spectrum+ на сборочном заводе в Мадриде, инженеры Investronica решили разработать его улучшенный вариант.

                          Проект стартовал в середине марта 1985 года. По аналогии с компьютером TC 2068, выпускаемым в Португалии, было решено использовать музыкальный генератор AY8912 и расширенное управление ОЗУ. Значительная часть переделок касалась логики, встроенной в ULA, поэтому инженеры Investronica были вынуждены прибегнуть к помощи своих английских коллег. Утечки информации от специалистов из Sinclair Research (Metalab) породили в Англии слухи о разработке нового 128-килобайтного Spectrum. Каких-либо официальных комментариев или разъяснений со стороны Синклера не последовало: он был слишком занят спасением своего бизнеса, к тому же испанская «кровь» в безупречной английской родословной его компьютеров не была поводом для гордости.

                          Новый компьютер получил кодовое название Derby. В июне был закончен прототип, а в августе во второй итерации инженеры Investronica собрали первые работающие компьютеры. Финалом работ стало официальное объявление о начале выпуска на выставке Sonimag85, проходившей 23-29 сентября в Барселоне.

                          Что же удалось реализовать испанским разработчикам в модели ZX Spectrum 128? А удалось им действительно очень многое из того, чего так долго ждали от Синклера. Увеличенная до 128 килобайт память позволяла существенно расширить возможности компьютера, начиная от многоуровневых игр без дозагрузки и заканчивая созданием операционной системы. Видеовывод из двух разных областей ОЗУ давал дополнительные инструменты по созданию спецэффектов. Следующим важным преимуществом стал музыкальный генератор. С его использованием аудиооформление игр вышло на новый качественный уровень. Создавать звуковые эффекты стало легче, при этом значительно снизилась загрузка процессора Z80.

                          Не менее важными оказались и второстепенные на первый взгляд детали: дизайн корпуса не сильно изменился по сравнению с ZX Spectrum+, добавился только металлический радиатор с правой стороны. Эта не очень симпатичная деталь позволила решить одну из существенных проблем предшествующих моделей ZX Spectrum — перегрев. Заодно повысилась надежность работы. Мощность блока питания также возросла.

                          Значительной переработке подвергся видеовыход. ZX Spectrum 128 стало возможно подключать к телевизору или монитору через вход RGB. Такое соединение давало картинку очень высокого качества, необходимую для работы с текстом. Остался и стандартный UHF-выход для подключения через антенное гнездо, но и тут испанские инженеры реализовали давнишнюю мечту пользователей ZX Spectrum — звук теперь также передавался в телевизор, и, следовательно, его громкость стало возможно регулировать.

                          Качество телевизионного изображения также улучшилось за счет использования единого тактового генератора — исчез муар и уменьшились искажения цвета. Однако при этом слегка изменилась тактовая частота процессора, которая составила 3,5469МГц (до этого тактовая частота была 3,5МГц). Компьютер оборудовали встроенным портом RS232, через который стало возможно подключение принтера и других устройств. Раньше для этого требовался дополнительный ZX Interface 1. Чтобы обеспечить совместимость с уже созданными программами, была предусмотрена блокировка управления дополнительной памятью.

                          Помимо стандартного синклеровского бейсика, встроенное программное обеспечение включало текстовый редактор и калькулятор. Новый экранный редактор позволял осуществлять посимвольный ввод команд, что приблизило его к профессиональным стандартам. Были добавлены несколько новых операторов (например, PLAY для управления звуком). Для удобства редактирования в расширенном бейсике к ZX Spectrum 128 подключалась дополнительная клавиатура — keypad. Используя ее, стало возможно быстро перемещаться по тексту и выполнять некоторые часто повторяющиеся операции. Такое решение было суррогатной заменой «мыши», уже получившей большое распространение на других компьютерах. Цена ZX Spectrum 128 в Испании составляла около 50 000 песет (примерно £230). Keypad продавался отдельно и стоил 5000 песет (примерно £23).

                          Большинство публикаций в Великобритании либо освещали очень аккуратно, либо вообще обходили стороной вопрос о разработке ZX Spectrum 128. Англичане без удовольствия осознавали, что новую модель столь популярного и «чисто британского» компьютера создали разработчики из другой страны, да еще и не самой развитой в технологическом отношении.

                          Была и другая причина, касающаяся непосредственно Investronica. Являясь дистрибьютором Sinclair Research, испанская компания не получила никаких прав на результаты своих разработок. Технически это было достаточно просто: ULA для ZX Spectrum 128 по-прежнему производились на заводе Ferranti, а их производство контролировал сэр Клайв. При продаже прав выпуска и торговой марки ZX Spectrum компании Amstrad в апреле 1986-го Синклер положил в эту «корзину» и разработку Investronica. Тем самым он подписал своему испанскому дистрибьютору смертный приговор. У Amstrad уже существовала своя дистрибьюторская сеть в Европе, и конкуренты ей были не нужны. К лету 1986 года производство ZX Spectrum 128 на заводе Investronica было закрыто. Последующая модель, выпущенная Amstrad (ZX Spectrum + 2), почти полностью повторяла архитектуру и схемотехнику своего испанского предшественника.

                          И в итоге стали появляться монстры вроде ATM Turbo, которые при перезагрузке аппаратно переконфигурировались либо в спектрумы либо в нормальные CP/M машины без всей этой экономии.
                          Но это уже была совсем другая история, не связанная с Клайвом Синклером, а связанная с советскими инженерами сделавшими реверс-инжиниринг сначала 48кб «британца», а потом и 128кб «испанца». Ну а дальше, это древо росло самостоятельно на плодородной почве пост-советского пространства, порождая интересные экземпляры «спектрум-совместимых компьютеров».
                      0
                      Рисунок 3 про управление памятью это наверняка шок для несведущих (плюс там какие-то «теневые порты», а-а-а!..). Тем кто прошел этот уровень, контрольный выстрел: обработчик прерываний с модификацией кода (это ещё хорошо пока нет кешей).

                      А так статья годная, спасибо! Может быть вступление про историю клонов вообще стоило бы выделить в отдельную статью.
                        0
                        Я думаю, «спектрумы» появившиеся на просторах пост-советского пространства надо называть не «клонами», а «ремейками» поскольку они были изготовлены методом реверс-инжиниринга, а не повторяют оригинал тютелька в тютельку.
                          0

                          По такому определению и zx 128k от инвестроники окажется ремейком :)

                            0
                            Не, там прямая взаимосвязь с Синклером, дистрибьюторы на испанский рынок как ни как, доступ к ULA.
                            Когда спектрум не ''маньяна''
                            За год, прошедший с начала выпуска ZX Spectrum+, дела у Синклера в туманном Альбионе шли все хуже и хуже. Но под теплым испанским солнцем процветал бизнес компании Investronica — дистрибьютора Sinclair Research. Начав с выпуска ZX Spectrum+ на сборочном заводе в Мадриде, инженеры Investronica решили разработать его улучшенный вариант.

                            Проект стартовал в середине марта 1985 года. По аналогии с компьютером TC 2068, выпускаемым в Португалии, было решено использовать музыкальный генератор AY8912 и расширенное управление ОЗУ. Значительная часть переделок касалась логики, встроенной в ULA, поэтому инженеры Investronica были вынуждены прибегнуть к помощи своих английских коллег. Утечки информации от специалистов из Sinclair Research (Metalab) породили в Англии слухи о разработке нового 128-килобайтного Spectrum. Каких-либо официальных комментариев или разъяснений со стороны Синклера не последовало: он был слишком занят спасением своего бизнеса, к тому же испанская «кровь» в безупречной английской родословной его компьютеров не была поводом для гордости.

                            Новый компьютер получил кодовое название Derby. В июне был закончен прототип, а в августе во второй итерации инженеры Investronica собрали первые работающие компьютеры. Финалом работ стало официальное объявление о начале выпуска на выставке Sonimag85, проходившей 23-29 сентября в Барселоне.

                            Что же удалось реализовать испанским разработчикам в модели ZX Spectrum 128? А удалось им действительно очень многое из того, чего так долго ждали от Синклера. Увеличенная до 128 килобайт память позволяла существенно расширить возможности компьютера, начиная от многоуровневых игр без дозагрузки и заканчивая созданием операционной системы. Видеовывод из двух разных областей ОЗУ давал дополнительные инструменты по созданию спецэффектов. Следующим важным преимуществом стал музыкальный генератор. С его использованием аудиооформление игр вышло на новый качественный уровень. Создавать звуковые эффекты стало легче, при этом значительно снизилась загрузка процессора Z80.

                            Не менее важными оказались и второстепенные на первый взгляд детали: дизайн корпуса не сильно изменился по сравнению с ZX Spectrum+, добавился только металлический радиатор с правой стороны. Эта не очень симпатичная деталь позволила решить одну из существенных проблем предшествующих моделей ZX Spectrum — перегрев. Заодно повысилась надежность работы. Мощность блока питания также возросла.

                            Значительной переработке подвергся видеовыход. ZX Spectrum 128 стало возможно подключать к телевизору или монитору через вход RGB. Такое соединение давало картинку очень высокого качества, необходимую для работы с текстом. Остался и стандартный UHF-выход для подключения через антенное гнездо, но и тут испанские инженеры реализовали давнишнюю мечту пользователей ZX Spectrum — звук теперь также передавался в телевизор, и, следовательно, его громкость стало возможно регулировать.

                            Качество телевизионного изображения также улучшилось за счет использования единого тактового генератора — исчез муар и уменьшились искажения цвета. Однако при этом слегка изменилась тактовая частота процессора, которая составила 3,5469МГц (до этого тактовая частота была 3,5МГц). Компьютер оборудовали встроенным портом RS232, через который стало возможно подключение принтера и других устройств. Раньше для этого требовался дополнительный ZX Interface 1. Чтобы обеспечить совместимость с уже созданными программами, была предусмотрена блокировка управления дополнительной памятью.

                            Помимо стандартного синклеровского бейсика, встроенное программное обеспечение включало текстовый редактор и калькулятор. Новый экранный редактор позволял осуществлять посимвольный ввод команд, что приблизило его к профессиональным стандартам. Были добавлены несколько новых операторов (например, PLAY для управления звуком). Для удобства редактирования в расширенном бейсике к ZX Spectrum 128 подключалась дополнительная клавиатура — keypad. Используя ее, стало возможно быстро перемещаться по тексту и выполнять некоторые часто повторяющиеся операции. Такое решение было суррогатной заменой «мыши», уже получившей большое распространение на других компьютерах. Цена ZX Spectrum 128 в Испании составляла около 50 000 песет (примерно £230). Keypad продавался отдельно и стоил 5000 песет (примерно £23).

                            Большинство публикаций в Великобритании либо освещали очень аккуратно, либо вообще обходили стороной вопрос о разработке ZX Spectrum 128. Англичане без удовольствия осознавали, что новую модель столь популярного и «чисто британского» компьютера создали разработчики из другой страны, да еще и не самой развитой в технологическом отношении.

                            Была и другая причина, касающаяся непосредственно Investronica. Являясь дистрибьютором Sinclair Research, испанская компания не получила никаких прав на результаты своих разработок. Технически это было достаточно просто: ULA для ZX Spectrum 128 по-прежнему производились на заводе Ferranti, а их производство контролировал сэр Клайв. При продаже прав выпуска и торговой марки ZX Spectrum компании Amstrad в апреле 1986-го Синклер положил в эту «корзину» и разработку Investronica. Тем самым он подписал своему испанскому дистрибьютору смертный приговор. У Amstrad уже существовала своя дистрибьюторская сеть в Европе, и конкуренты ей были не нужны. К лету 1986 года производство ZX Spectrum 128 на заводе Investronica было закрыто. Последующая модель, выпущенная Amstrad (ZX Spectrum + 2), почти полностью повторяла архитектуру и схемотехнику своего испанского предшественника.

                            Так что 128к это именно тот спектрум который и ждали изначально от Синклера.
                              +1

                              Ну на сайте конона много псевдоубеждающих рассуждений.


                              А у меня есть простое, но абсолютно верное: в zx 128k 70908 тактов в фрейме, а в оригинальном zx 48k — 69888. Отсюда сразу несоответствие вашему условию 'повторяет тютелька в тютельку'.

                                +1
                                А если учесть, что 48к различных релизов были программно не совместимы между собой, то вопрос о том кто святей папы Римского Синклера приобретает неожиданный поворот. ;)
                      +1
                      Жаль что лицензия несвободная (точнее, не нашёл упоминания, что она свободная, в исходниках тоже тишина).
                        +1
                        За статью спасибо!

                        Вопрос, ZX по железу (количество микросхем) уже получается сложнее, чем habr.com/ru/company/selectel/blog/519374?
                          0
                          Насколько я помню в схеме «Специалиста» микросхем меньше (38) чем в схемах советских «римейков» спектрума.
                            0

                            http://www.spetsialist-mx.ru/schemes/Spetsialist.png — 45 микросхем, что больше, чем в "ленинграде"

                              +1
                              В "Ленинграде 48к" 41 цифровая+3 аналоговых м/с (всего 44)
                              И ''Ленин'' такой молодой, и ''спектрум'' юный впереди;)
                              DA1 140УД6
                              DA2 1НТ251
                              DA3 521СА3
                              D1 ЛН1
                              D2 ТМ2
                              D3 ИЕ7
                              D4 ИЕ7
                              D5 ИЕ7
                              D6 ИЕ7
                              D7 561ИЕ10
                              D8 ТМ2
                              D9 ТМ2
                              D10 ЛЕ1
                              D11 ЛП5
                              D12 ЛА3
                              D13 ЛИ1
                              D14 ЛЛ1
                              D15 КП11
                              D16 КП11
                              D17 КП11
                              D18 КП11
                              D19 КП11
                              D20 Z80
                              D21 565РУ5
                              D22 565РУ5
                              D23 565РУ5
                              D24 565РУ5
                              D25 565РУ5
                              D26 565РУ5
                              D27 565РУ5
                              D28 565РУ5
                              D29 573РФ4
                              D30 КП13
                              D31 КП13
                              D32 ИР22
                              D33 ИР9
                              D34 ЛН1
                              D35 ИР16
                              D36 КП11
                              D37 КП11
                              D38 КП11
                              D39 ТМ9
                              D40 ЛА4
                              D41 573РФ4

                              Позднее (уже не А.Волковым) в схеме была проведена замена ОЗУ на более ёмкие, и она сократилась до всего 38 корпусов.
                              image
                                0

                                А ну тогда вообще шоколадно. В ленинграде можно заменить РУ5 на 4464 например (2 штуки + 1 штука буфера вместо 8 штук РУ5) и опять что-то отыграть. 1НТ251 это вообще просто несколько транзисторов в корпусе ИМС — заменить на дискретные. Можно упростить магнитофонный вход и выкинуть например компаратор, взяв мсх с двумя операми в 1 корпусе (второй включить компаратором).


                                И это я к чему: так любой спектрум и специалист можно упростить до 1 корпуса какой-нить жирной MAX10. Хоть как-то сравнивать есть смысл исходные версии. Не забывая сказать, что спектрум при этом, по сравнению с специалистом, был ещё и цветным, и имел кадровые прерывания.


                                upd: в специалисте том оказалось кстати 46 микросхем, т.к. опер был скромно не упомянут в табличке слева.

                                  0
                                  Ну если, использовать «чипсет» ULA, то наверное кроме проца и памяти ничего больше не потребоваться чтоб собрать 48к. :)
                                  На фото платы специалиста, по носам 38 попугаев микросхем.
                          +1
                          Синклер, приди! Взываю!
                            +1
                            Наверное, почти каждый, кто всерьёз упарывался по программированию для Спектрума пробовал писать свою ОС с блэкджеком и шлюхами многозадачность, поддержкой жёсткого диска и графического интерфейса.
                            Мы тоже с друзьями в старших классах не стали исключением. Товарищ писал ядро многозадачности и графический интерфейс, а я дисковую подсистему, свою ни с чем несовместимую уникальную ФС (потом мне говорили, что я изобрёл примитивную NTFS), драйвер жёсткого диска.
                            Эх, где мои семнадцать лет :)
                              0
                              Выглядит конечно круто, но тут больше идет про АТМ совместимые компьютеры, чем Spectrum совместимые. В свое время конечно ATM Turbo для меня была мечта и машинка выглядела супер круто. А сейчас я понимаю что настоящая Spectrum OS должна иметь возможность как то запуститься на оригинальном 128 килобайтной машине, а то и 48. Возможно с дополнительной периферией, подключаемой через порт расширения, туда можно как раз и дополнительную память впихнуть, и контроллеры SSD, а то и видеокарту с поддержкой расширенных режимов, цветов, аппаратным скроллингом, а то и вообще поддержкой 3D. А для NedoOS ИМХО имеет смысл еще сделать чтобы она и на Amstrad CPC могла запуститься, было бы круто если бы была возможность за счет OS объединить 2 платформы.
                                0

                                Ну так вроде в статье и говорится, какие нерешаемые проблемы и серьёзные ограничения возникают, если писать ось под голый ZX 48k или 128k.


                                NedoOS ИМХО имеет смысл еще сделать чтобы она и на Amstrad CPC могла запуститься

                                Там тоже во все 4 промежутка адресов Z80 можно любые странички ОЗУ включать?
                                Ну и ещё, как я понял, графические приложения в NedoOS работают напрямую с видеопамятью, и как следствие, их придётся переделывать под Амстрад.

                                +2

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

                                  0
                                  Проект интересный и увлекательный. Особенно удивила многозадачность и многопоточность — без чего нормальная ОС невозможна. Пока разработка не переедет на GitHub, приглашать сторонних разработчиков и мечтать о развитии проекта по крайней мере странно. Всякий раз, когда теме перехода с SVN поднимается в коментах, следует ответ «идите нах, нам и так нормально».
                                    +3
                                    Скорее всего сейчас огребу кучу минусов, но все-же напишу.
                                    В свое время тоже тащился от Спектрума, развлекался с программированием на него, немного играл, комп оставил очень приятные и ностальгические воспоминания. Но вот как-то вся эта движуха с написанием операционок под него, сегодня почему-то первую аналогию вызывает с анекдотом о том что «пора уже закопать стюардессу». Как-то это уже очень странное развлечение, пытаться сделать из древнего восьмибитного компьютера что-то современное, это все равно что на детский трехколесный велосипед прикручивать пятилитровый V8, хотя второе даже забавнее :)
                                      +4
                                      Ну это такое хобби, кто-то на гитаре играет, кто-то теплые лампы слушает, кто-то демки в 64к втискивает, кто-то с 8-битным процессором возится.
                                      Тут главное удовольствие от процесса, а не быстрого получения результата.
                                      Нирвану можно на телефоне включить, а можно самому сыграть — примерно такая же разница.
                                      А нынешним временам недописи это уже 775 сокет и старше получаются: ставишь XP и тоже прикручиваешь костыли чтоб в интернет попасть и чтоб SSD подключить
                                        +2
                                        Да я то не против, вполне понимаю этих энтузиастов, бывает что хочется сделать что-то совершенно нерациональное и бесполезное, просто «потому что могу». Ну и незакрытые гештальты тоже играют роль, помню как местал в свое время о том что-бы купить для своего Спекки нормальный отдельный монитор вместо телевизора и припаять дисковод. Не сложилось — ушел в армию, а после нее уже стало не до игр с устаревшим уже на тот момент компьютером.
                                          0
                                          Тут еще элемент реконструкторства. Да, люди вокруг уже не греются у костра, не машут мечами и почти не скачут на лошадях. Но некоторым все это а) в кайф б) позволяет прочувствовать, как оно было во времена без электричества и ДВС.
                                            +1
                                            Тут ещё элемент достижения полного контроля над компьютером. И в очередной раз доказательство, что независимую ОС (не только ядро, а именно полноценную ОС со средами разработки) написать можно, причём без миллиардного финансирования.
                                              +1
                                              Скажем шире: осознанно или нет, но главная мечта каждого человека — делать то, что ему больше всего по душе. У меня нет компьютерных познаний уровня разработчика, поэтому я могу как максимум коллекционировать готовое и на нем «спектрумировать»/«IBM XT'ровать» и т.д. (скачивая нужное из сети). Всегда завидую людям, которые в силу глубины познаний и опыта умеют ставить и решать «задачи 80го уровня». Их положительное подкрепление от достигнутых успехов сильнее и приятнее моего, это даже нейробиология доказала.
                                              0
                                              Ну я не зря упомянул демосцену, здесь как раз примерно тот же азарт «впихнуть невпихуемое» в 8бит/64к.
                                              0
                                              Интересно, какой процент людей (из молодых) пришли в эти проекты не благодаря ностальгии, а из за любви к истории ИТ?
                                            +1
                                            Стюардесса была такая красотка, а мы были такие молодые.
                                            +1
                                            NedoOS — какое циничное название!
                                              0
                                              Зато звучное! :)
                                              0
                                              Когда вы допишите поддержку многопроцессорности? Мне уже надело ждать, когда в моем АТМ5++ все 4 Z80 будут задействованы!!!)))
                                              А вообще да, начать нужно с хорошо масштабируемой, открытой и универсальной архитектуры железа (дада, и N Z80 можно было доставить в систему). Иначе опять упретесь в убогость железа и все остановиться ввиду отсутствия невозможности прогресса. Хотя простота, имхо, должно быть на первом месте для низкого порога вхождения.
                                                0
                                                Здравствуйте! Вот не понимаю я идеи прокачки железа спектрума. Сам недавно восстановил Ленинград и кайфую от новых игр, таких как Тьма, согласен что и под версию 128 к много хорошего написано и спектрум жив. А вот зачем делать новое железо — ведь его софт не запустят обладатели старых спеков, а в актуальном мире они все равно безнадежно устарели. Может делать платы расширения еще имеет смысл, но не более того.
                                                  +1
                                                  128K (1985) — это промежуточная модель. В России она была популярна в 1994-1999 годах (причём только в связке с Beta 128 Disk Interface), а потом эти компьютеры массово переделывались на РУ7 и SIMM или заменялись на другие модели. В прессе можно проследить статистику реально используемых машин за разные годы:

                                                  Москва (ZX-Net), апрель 1996 — 79 шт. (61%) 128K, 39 шт. (30%) 256K и более www.zxpress.ru/article.php?id=2073
                                                  в основном Москва (ZX-Net), май 1997 — 49 шт. (74%) 128K, 17 шт. (26%) 256K и более www.zxpress.ru/article.php?id=1322
                                                  Санкт-Петербург (покупатели ZX-Format), июль 1997 — 31% 128K, 49% 256K и более www.zxpress.ru/article.php?id=9885
                                                  ZX.SPECTRUM, июль 1997 — 9 шт. (25%) 128K, 24 шт. (67%) 256K и более www.zxpress.ru/article.php?id=4745
                                                  Гомель, декабрь 1997 — 21 шт. (70%) 128K, 6 шт. (20%) 256K и более www.zxpress.ru/article.php?id=3258
                                                  Краснодар, июнь 1998 — 9 шт. (64%) 128K, 2 шт. (14%) 256K и более www.zxpress.ru/article.php?id=9119
                                                  ZXNet, январь 1999 — 42% 128K, 48% 256K и более www.zxpress.ru/article.php?id=7181
                                                  Омск, январь 1999 — 3 шт. (25%) 128K, 6 шт. (50%) 512K и более www.zxpress.ru/article.php?id=11366
                                                  СНГ, июль 2000 — 9 шт. (15%) 128K, 52 шт. (85%) 256K и более www.zxpress.ru/article.php?id=4417
                                                  Ростов-на-Дону, июль 2001 — 50% 128K, остальные 256K и более (сумма не сходится) www.zxpress.ru/article.php?id=7322
                                                  Ижевск, июль 2001 — 100% 512K и более www.zxpress.ru/article.php?id=9429

                                                  Другой показатель — демопати:

                                                  На Demobit'1996 две демы поддерживают DAC 8bit (Covox).
                                                  На Doxycon 1998 показывалась дема First Association с мультилоадером под MB02.
                                                  На CC'999 из 4 дем 2 были с General Sound (одна даже требовала 512K).
                                                  На СС'999 был конкурс музыки под General Sound (совмещённый с Covox/SounDrive).
                                                  На CC'999 демы должны были работать на Scorpion, показывали на GMX.
                                                  На CC 2000 дема от Brainwave поддерживает Covox.
                                                  На CC 2001 дему от Placebo крутили в турбо-режиме.
                                                  На «Твоей игре 1» (2002) одна из работ поддерживала турбо-режим для дополнительных эффектов.
                                                  На Paradox 2002 был конкурс Covox/SounDrive музыки.
                                                  На Assembly 2003 показывалась дема Alienate с музыкой под General Sound.
                                                  На Cafe 2003 показывали видео с CD-ROM на SMUC.
                                                  На CC 2004 при показе игр использовался турбо-режим.
                                                  На «Твоей игре 2» (2004-2005) одна из работ требовала 256К.
                                                  На DiHalt 2006 появился конкурс музыки под TurboSound (впоследствии объединён с AY).
                                                  На CC 2006 показывали видео с CD-ROM на ATM2. А ещё там участвовала игра под ATM2/Pentagon 1024.
                                                  На DiHalt 2007 появился конкурс музыки под TurboSound FM.
                                                  ASCiI'2008 Demoparty Invitation требовала Pentagon 1024SL v2.x + General Sound.
                                                  На DiHalt 2008 оба первых места — под Pentagon 1024.
                                                  На CC 2008 второе место — под ATM.
                                                  На CC 2009 первое место — под Pentagon 1024.
                                                  На Hackers Top 2010AE проводился конкурс «ZX графика (16c)» (цвет на точку).
                                                  Как минимум с 2010 года на Forever все работы показываются с DivIDE. Именно это позволило HOOY-PROGRAM выпустить серию 48K трекмо с подгрузкой.
                                                  На DiHalt 2011 второе место — под ATM2.
                                                  На ZX AAA'2013 первое место использовало TurboSound, а второе — ATM2 + General Sound.
                                                  На DiHalt'2013 было две работы под ATM2.
                                                  На CC'2013 и 3BM OpenAir'2013 были работы под General Sound.
                                                  На «Твоей игре 5» (2013-2014) было четыре работы под ATM2 и три работы под ATM3.
                                                  На DiHalt'2014 Lite было три работы под ATM2, две под General Sound, ещё одна использовала TurboSound.
                                                  На CC'2014 и DiHalt'2014 были работы под ATM2.
                                                  На IVP 2014 проводился конкурс ATM2/ZX Evo gfx compo (цвет на точку).
                                                  На Riverwash'2014 и JHCon 2014 были работы под Timex.
                                                  На Zapilyator Compo'2014 одна из работ требовала 1024K, другая — General Sound + TurboSound FM.
                                                  На DiHalt Lite'2015 второе место — под ATM2.
                                                  На DiHalt'2016 демонстрировалась игра Nomad под ATM2.
                                                  На Multimatograf'2017 первое место поддерживает Covox и General Sound.

                                                  Нет никакого смысла закапывать ZX Spectrum в 1985 год, кроме уничтожения его как самобытной платформы.
                                                    0
                                                    У меня нет конечно такой статистики. Да я и уверен что и нет суммарно выпущенного количества спектрумов разных моделей из-за того что это были клоны часто выпускаемые кустарно. Но я живу в глубоком убеждении что наибольшее их количество было выпущено в конце 80х — первой половине 90х и речь идет о миллионах экземпляров только на просторах бывшего СССР. Это значит что ПО написанное под них сейчас имеет потенциально миллионную аудиторию потребителей.
                                                      0
                                                      Я писал и поддерживал много системного ПО под 128K (ACEdit, ZXRar, ZXUnRar, Chip Tracker, MCX Viewer, Pro Tracker и др.). Отзывы пользователей прекратились примерно в 2006 году.
                                                      128K машины не выпускались миллионными тиражами. Тут может идти речь о недоразумении, основанном на воспоминаниях людей, которые ушли со Спектрума ещё в 90-е. Библиотека ПО для «расширенных Спектрумов» включает более 1000 наименований, в том числе, по последним подсчётам, 152 игры (речь не о джойстиках и принтерах, а о расширенной памяти, графике и звуке). Поскольку это зоопарк, уточню, что софт под ATM-Turbo составляет примерно половину, т.е. около 500 программ (часть из них также поддерживает Pentagon 512/1024 с дополнительными девайсами, также под эти Пентагоны есть и свой софт). Кстати, в 2000-е практически единственными моделями Speccy, которые выпускались не единичными тиражами, были ATM-Turbo 2+ и Pentagon 1024SL 2.x. Упомянутые в статье ZX Evo и Pentagon 2.666LE объединяют обе программные модели одновременно, поэтому там работает примерно 800 программ из 1000.
                                                        0
                                                        Про версию 128 к мне сложно спорить т.к. она ни у кого из знакомых не была, хотя в живую я ее в свое время видел, и видел не в Москве. А вот 48к это действительно платформа была сверхпопулярная, только у нас было 2 таких, были и у знакомых. Опять же это не про Москву или Питер. Другое дело — какую ОС или периферию можно к ним прикрутить? Однако игры пишут и пример тому Valley of Rain. Было очень приятно запустить игру 2019 года на стареньком Ленинграде, посмотреть ее шикарные заставки, прекрасную графику, удивиться тому — на что еще способен этот старичок, в общем поиграл с удовольствием.
                                                  0
                                                  Давайте к списку операционных систем на ZX Spectrum добавим и FUZIX который пилит Алан Кокс (форк UZIX)
                                                  Готовые образы лежат тут.
                                                    +1
                                                    Господа, вот спрашивают по примерно схожим темам — а зачем «спектрум»?
                                                    Скажу следующее — более менее взрослым людям, уже выбравшим «стезю» — конечно незачем.

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

                                                    В какой-то далёкой предалёкой галактике когда мне было 12 лет отец меня познакомил с инопланетным существом, самоидентифицирующимся и откликающимся на «инженер кипиа». Так вот за пол-года этот инопланетянин рассказал и показал что такое компьютер, и через пол-года мой собственный спектрум пиленный из кусков текстолита, с кучей проводов вместо дорожек, с совершенно идиотским блоком преобразователя и чудовищным тактовым генератором ацки глюча всё таки завёлся. И конечно же помимо этого были поняты исключительно важные вещи, при этом не такие уж и сложные, и это действительно так. Бейсик был отброшен за ненужностью, а уж про абсолютно шикарнеший ассемблер спектрума даже и говорить не нужно.

                                                    Спектрум — это такая штука, когда вы хотите действительно понять, и поймёте. Однако же каждому пониманию своё время. С этим ничего не поделаешь.

                                                    п.с.: Малинки и т.д. — это не то, т.к. слишком много всего «интегрировано», а значит сие невозможно пащщупать, поэкспериментировать, и оно слишком абстрактно. Не то.
                                                      0
                                                      Полностью согласен. Когда пришлось ремонтировать Ленинград (менять 6-7 микросхем) то пока занимался диагностикой и устранением поломки я смог понять как действительно работает видеокарта, память, ПЗУ. Причем понять не в смысле суметь респисать на бумаге для ответа на экзамене, а почувтсвовать что на что влияет, что будет если не будет одного из элементов или он будет работать некорректно, какую цепочку событий это вызовет, что на что завязано, это сложно объяснить. Ну примерно как механик понимает ДВС, а не цикл Карно. Единственным черным ящиком так и остался процессор.

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

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