![]() |
Тем, кто разрабатывает новые платы ZX.
Несколько соображений и идей по разработке плат.
Во-первых - нужна кооперация. А то каждый варится в собственном соку и, в итоге, получаются одни и те же по функциям, несовместимые разработки. Во-вторых - несколько конкретных идей. 1. Существенное ограничение процессора Z80 - это доступ лишь к 64к памяти. Я немного помозговал и придумал вот что: Если на шину адреса повесить сумматор, который на входе получает 16 бит с щины данных и, скажем 24 бита с некоего 24хбитного регистра базового адреса, а на выходе сумматора - 24хбитная сумма, то можно полностью виртуализовать адресное пространство. То есть все программы могут получить столько памяти сколько им надо, причем не надо будет соблюдать кратность странице. То есть неважно будет с какого адреса программа должна запускаться и в какой она загружена. В идеале можно добавить еще и регистр конечного адреса и контролировать куда обращается программа. В случае, если произошел выход за пределы диапазона адресов - генерится прерывание. Для совместимости оставить порт расширения 128к, но порт будет выбирать не страницу памяти напрямую, а регистр базового адреса этой страницы. Вообще я думаю, что для каждого окна адресного пространства процессора в 16К нужен свой регистр базового адреса. Таким образом получаем необходимость иметь 8 регистров базового адреса (8 страниц по 16 к). Плюс к этому хочется иметь возможность аппаратно запретить запись в любое из 4х окон (для эмуляции ПЗУ). Насколько я понимаю организовать сумматор 16 + 24 и схему управления на ПЛИС несложно. Разумеется, изначально (после рестарта) сумматор отключен и доступна только память 48к. После включения, биос программирует все порты расширения и переходит к выполнению программ пользователя. Для того чтобы программы пользователя не конфликтовали с портами расширения - порты должны быть доступны только из первых 16к ОЗУ, которые раз и навсегда отдаются для биоса и ОС. Для нормального функционирования ОС можно организовать перехват rst0. оно как правило не используется. При появлении на шине выборки команды rst0 происходит отключение сумматора и переход в режим "система". После обработки запроса пользовательской программы - выход обратно. Преимущества: - каждой программе можно выделить до 64к в безвозмездное пользование. - Экономия памяти. (если программа занимает 2к - то 2 к ей и выделиться. Никакого страничного выделения по 16 К). - Легко реализуется многозадачность. ( Если на NMI вешаем таймер ) - Совместимость с режимом Spectrum. - удобство в отладке - программа не может ничего порущить за пределами выделенного ей диапазона адресов. Мысли пока немного сумбурные - но надеюсь идея понятна. 2. Обязятельно поддержать расширенные режимы экрана. Идей много у народа всяких было - но опять таки - несогласованность с другими все портит. Вообще ( на сегодняшний день) надо учитывать, что vga-мониторы гораздо более доступны, чем EGA. Так что вполне можно ввести расширения для них, а не только на телевизор. Скажем экраны 512х384, 64x48 символов в строке. 8битный цвет и т.п. 3. Турбо-режим наверное надо ограничить двумя скоростями 4МГЦ(для совместимости) - Максимум(для работы). 4. Звук. Поставить небольшой и дешевый контроллер типа ATMEGA+ ОЗУ к нему. Причем предусмотреть режим эмуляции AY (все равно их сейчас не найдешь). Вот такие мысли. Пусть все кто пожелает - критикуют их и высказывают свои идеи. Так хоть обсудим что сделать чтобы не изобретать кучу велосипедов. |
Quote:
Во-вторых - несколько конкретных идей. Quote:
Хотя твоя идея тоже интересная но очень программерам непривычно будет, тем более на окна всеравно придется разбивать - хотя бы для того чтобы рестарты попадали в одно и тоже место (что ты собственно и описал). Quote:
Quote:
Quote:
Quote:
Так как на данный момент НедоПС групп(NedoPC team) по сути единственные производители компьютеров ZX (а конкретно АТМ-турбо), то хотелось бы услышать что нужно и необходим ли Вам реал? Так как разработки планируются. В частности возможно к концу лета будет обезбаженный и уменьшенный АТМ-Турбо лайт. |
Quote:
Насчет п.2 - может тогда сразу новый комп спроектировать? Сразу можно 1600x1200 сделать. Насчет п.4 - надо модернизировать DMA USC, плюс я лично сделаю так, чтобы устройство на шине могло адресовать весь мегабайт. Ребята, засовывая DMA USC в KAY, так его порезали, что капитан NEMO до сих пор наверно каждый день во сне переворачивается. |
А я думаю что новый спектрум должен быть по типу как Амига с акселератором на PPC. Но вместо PPC лучше акселератор сделать на ARM9. Желательно чтобы можно было этот акселератор подключать и к существующим моделам спектрумов. Акселератор должен иметь проргаммируимый видео и аудиовыход. А вот базовое железо (все акромя акселератора) хотелось бы иметь аппаратно совместимым с Пентагоном 512К, но собранном не на порнографической рассыпухе, а на CPLD + Z80 + AY + SRAM 512K + пара конденсаторов для стабилизации помех. Вот это было бы мегасуперрулезфореваэндеваэтнева
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Не вижу препятствий портировать свое творение на Z80. Все пишу на С, конечно. Но кросс-С для Z80 у меня тоже есть. |
Конкретно - кто занимается тут тем же АТМ вопрос. Насколько трудно добавить в схему доработку для виртуализации памяти ? Хотелось бы послушать мнение специалиста ( я со спековским железом уже несколько лет не возился - сейчас думаю - или свой полудохлый раритет восстановить или новый какой приобрести-собрать).
|
Quote:
В АТМ очень неплохой манаджер памяти позволяющий вставлять любую страницу RAM и ROM в любое окно процессора. Этого я считаю вполне достаточно для решения любых задач спека. ;) Поддерживается до 1мбайт RAM и до 1Мбайт ROM. |
Quote:
И какой же Вы предложите МАКСИМУМ? |
Quote:
Плюс - перехват рестартов позволит сделать нормальную операционку. (Раз я ее делаю по работе - то почему бы ее для родного спека не приспособить ? И мне приятно - и другим полезно). Меня интересует насколько сложно выполнить такую доработку компа ? По моим представлениям (в простейшем варианте) - это три озу по 8байт (для каждой из 8 страниц 128 спека - совместимость рулит) , сумматор типа 24разр +16разр = 24разр. И схема управления этой кухней. Но это на вскидку - реально все могет быть сложнее. Сумматор и управление можно воткнуть в ПЛИС. (Они благо сейчас недорогие). |
Quote:
К тому же можно посмотреть в сторону спринтера - там на одном экране прекрасно уживались несколько графрежимов - почему бы не сделать наподобие ? |
| All times are GMT +4. The time now is 20:32. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.