Тема на форум zx-pk.ru
Перспективы развития ZX Spectrum
Добрый день.
Наверное, у многих на этом форуме возникали идеи, как улучшить и развить ZX Spectrum. Кто-то и выкладывал сюда свои идеи, кто-то даже частично воплощал их, или находится на пути творческого поиска.
Чтобы не изобретать вилосипедов почитал я несколько тем (http://zx-pk.ru/threads/27181-kartri...-spectrum.html, http://zx-pk.ru/threads/26792-novyj-...kleshinga.html, http://zx-pk.ru/threads/24777-o-razv...hastnosti.html, http://zx-pk.ru/threads/19544-a-ne-p...-spectrum.html, http://zx-pk.ru/threads/12556-altern...imeneniya.html, http://zx-pk.ru/threads/21511-bystryj-prots.html, http://zx-pk.ru/threads/5255-sovreme...trum-quot.html).
В целом, всё сводится к:
- Увеличению частоты процессора - многие программы настроены на определённую скорость выполнения команд, поэтому, в них будут глюки.
- Увеличение разрядности - от "Классно" до "Это уже будет не спектрум!".
- Увеличение памяти - от "Да кому оно надо?" до "Это уже будет не спектрум!".
- Увеличение цветов на экране, создание новых видеорежимов - "Это уже будет не спектрум!".
- Различные платы расширения, расширяющие тот или иной функционал - от "Да кто это купит?" до "Это уже будет не спектрум!".
Ну и каждое предложение щедро разбавлено вопросами "Да кто под всё это будет программировать?"
Наиболее радикальные предлагают взять готовую плату малину и запускать эмулятор. Тогда, зачем брать плату? Можно запустить на уже имеющемся PC или Android...
В общем, родились у меня кое-какие идеи и немного оформились.
Далее по тексту, "Спектрум", "Spectrum", "ZX Spectrum", "спек" будут равнозначными и обозначать компьютер "ZX Spectrum".
Итак, начну с рассуждения "Что такое Спектрум и когда он превращается в Неспектрум?"
Пришёл к выводу, что Спектрум это программно-аппаратный комплекс, позволяющий запустить без изменений ПО от фирменного ZX Spectrum и давать такие же результаты.
Очевидно, чтобы платформа не загнулась нужно её развивать. Один из вариантов развития у нас уже перед глазами - процессоры x86 и основанные на них IBM PC совместимые компьютеры. Этот путь вроде бы хорош, можно просто запускать старые программы на новом процессоре, а если нужны возможности нового процессора, то новые программы знают, как их включить. Вроде все довольны, но так будет всего пару поколений. Разве сейчас просто так запуститься любая программа от 8086 процессора на новом core i7, например? Очень сомневаюсь. Однако, процессоры по прежнему остаются разбухшими от груза обратной совместимости.
Поэтому, придумал ещё несколько вариантов, позволяющих избежать этого нагромождения.
1. Ставим новый процессор, 16 или 32 или 64 битный, какой нужно. Делаем новый комп и т.д. Старые программы можно запускать на эмуляторе. В принципе, для такого пути развития подходит уже существующий PC.
2. Ставим новый процессор, 16 или 32 или 64 битный, какой нужно. Делаем новый комп и т.д. Для запуска старых программ ставим "старый" z80 и управляем им с нового процессора. Память ему можно выделять, выставляя на старшие биты данные из специального порта хост процессора. Получим некое подобие сегмент-смещение, где сегмент задаётся новым процессором, а смещение формируется уже работающим z80. Для отображения на основном экране открывается окно, и когда рисование доходит до него видеокарта считывает данные из нужной области и отображает в нужном виде. Т.е., отображение по принципу аппаратного спрайта. Конечно, тут будет потеряна некая совместимость с оригиналом, например, пресловутый бордюр, и тайминги поплывут - мультиколоры идут лесом. Зато гигаскрины будут работать.
3. Ставим новый процессор, содержащий поддержку системы команд и адресации старого. При запуске он работает в новом режиме, новые программы просто работают, а когда надо запустить старую программу, то загрузчик переводит процессор в режим совместимости и работает "тот самый спектрум".
Очень прошу не фонтанировать на тему "Ещё один!". Всё таки, раздел называется "Концепции". Предлагая разные идеи можем наткнуться на действительно стоящую.