Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 35

Тема: Тем, кто разрабатывает новые платы ZX.

  1. #1
    Master
    Регистрация
    27.01.2005
    Сообщений
    527
    Благодарностей: 272
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Тем, кто разрабатывает новые платы 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 (все равно их сейчас не найдешь).

    Вот такие мысли. Пусть все кто пожелает - критикуют их и высказывают свои идеи. Так хоть обсудим что сделать чтобы не изобретать кучу велосипедов.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для CHRV
    Регистрация
    18.01.2005
    Адрес
    Москва
    Сообщений
    3,690
    Благодарностей: 258
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS
    Несколько соображений и идей по разработке плат.
    Во-первых - нужна кооперация. А то каждый варится в собственном соку и, в итоге, получаются одни и те же по функциям, несовместимые разработки.
    А как ты представляешь кооперацию людей живущих друг от друга на расстоянии хотя бы 300км....

    Во-вторых - несколько конкретных идей.
    Цитата Сообщение от SfS
    1. Существенное ограничение процессора Z80 - это доступ лишь к 64к памяти. Я немного помозговал и придумал вот что: Если на шину адреса повесить сумматор, который на входе получает 16 бит с щины данных и, скажем 24 бита с некоего 24хбитного регистра базового адреса, а на выходе сумматора - 24хбитная сумма, то можно полностью виртуализовать адресное пространство. То есть все программы могут получить столько памяти сколько им надо, причем не надо будет соблюдать кратность странице. То есть неважно будет с какого адреса программа должна запускаться и в какой она загружена. В идеале можно добавить еще и регистр конечного адреса и контролировать куда обращается программа. В случае, если произошел выход за пределы диапазона адресов - генерится прерывание.
    Для совместимости оставить порт расширения 128к, но порт будет выбирать не страницу памяти напрямую, а регистр базового адреса этой страницы.
    Вообще я думаю, что для каждого окна адресного пространства процессора в 16К нужен свой регистр базового адреса. Таким образом получаем необходимость иметь 8 регистров базового адреса (8 страниц по 16 к). Плюс к этому хочется иметь возможность аппаратно запретить запись в любое из 4х окон (для эмуляции ПЗУ).
    Насколько я понимаю организовать сумматор 16 + 24 и схему управления на ПЛИС несложно.
    А у меня идея проще - использовать Z80180, там встроенный манаджер памяти на 1Мбайт. Но какието проги не пойдут... Зато получим команды умножения и деления и еще много полезных.
    Хотя твоя идея тоже интересная но очень программерам непривычно будет, тем более на окна всеравно придется разбивать - хотя бы для того чтобы рестарты попадали в одно и тоже место (что ты собственно и описал).


    Цитата Сообщение от SfS
    2. Обязятельно поддержать расширенные режимы экрана. Идей много у народа всяких было - но опять таки - несогласованность с другими все портит. Вообще ( на сегодняшний день) надо учитывать, что vga-мониторы гораздо более доступны, чем EGA. Так что вполне можно ввести расширения для них, а не только на телевизор. Скажем экраны 512х384, 64x48 символов в строке. 8битный цвет и т.п.
    Для меня привычнее 80x25 и 320х200(320х256) 640х200(640х256)....


    Цитата Сообщение от SfS
    3. Турбо-режим наверное надо ограничить двумя скоростями 4МГЦ(для совместимости) - Максимум(для работы).
    ЧТо это за 4мгц, мне известно 3.5 и 7мгц с WAITами....

    Цитата Сообщение от SfS
    4. Звук. Поставить небольшой и дешевый контроллер типа ATMEGA+ ОЗУ к нему. Причем предусмотреть режим эмуляции AY (все равно их сейчас не найдешь).
    У меня можно купить всего за 160 руб YM2149. Прямо сейчас... В Китае на складах их полно, оттуда их и заказываю . А ГС всетаки должен отдельной карточкой идти.

    Цитата Сообщение от SfS
    Вот такие мысли. Пусть все кто пожелает - критикуют их и высказывают свои идеи. Так хоть обсудим что сделать чтобы не изобретать кучу велосипедов.
    Это хорошо, дерзайте умные мысли всегда найдут отражения!

    Так как на данный момент НедоПС групп(NedoPC team) по сути единственные производители компьютеров ZX (а конкретно АТМ-турбо), то хотелось бы услышать что нужно и необходим ли Вам реал? Так как разработки планируются. В частности возможно к концу лета будет обезбаженный и уменьшенный АТМ-Турбо лайт.

    Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!

    NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
    [Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
    Все здесь: http://www.nedopc.com.
    Новости/поддержка/Faq: http://forum.nedopc.com.
    Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977

  4. #3
    Member Аватар для tilikum
    Регистрация
    06.02.2005
    Адрес
    Таганрог
    Сообщений
    34
    Благодарностей: 1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS
    Если на шину адреса повесить сумматор, который на входе получает 16 бит с щины данных и, скажем 24 бита с некоего 24хбитного регистра базового адреса.... В идеале можно добавить еще и регистр конечного адреса и контролировать куда обращается программа.....
    Для совместимости оставить порт расширения 128к, но порт будет выбирать не страницу памяти напрямую, а регистр базового адреса этой страницы.
    Вообще я думаю, что для каждого окна адресного пространства процессора в 16К нужен свой регистр базового адреса. Таким образом получаем необходимость иметь 8 регистров базового адреса (8 страниц по 16 к).... 2. Обязятельно поддержать расширенные режимы экрана.... Скажем экраны 512х384, 64x48 символов в строке. 8битный цвет и т.п.
    4. Звук. Поставить небольшой и дешевый контроллер типа ATMEGA+ ОЗУ к нему. Причем предусмотреть режим эмуляции AY (все равно их сейчас не найдешь).
    8 регистров базового адреса по 24 бита + сумматор 24 бита + 24-битная схема сравнения с 24-битн. рег. конечного адреса ++++ (я аж писать устал, а представьте ЭТО спроектировать!???).
    Насчет п.2 - может тогда сразу новый комп спроектировать? Сразу можно 1600x1200 сделать.
    Насчет п.4 - надо модернизировать DMA USC, плюс я лично сделаю так, чтобы устройство на шине могло адресовать весь мегабайт. Ребята, засовывая DMA USC в KAY, так его порезали, что капитан NEMO до сих пор наверно каждый день во сне переворачивается.

  5. #4
    Activist
    Регистрация
    19.01.2005
    Адрес
    Planet Earth
    Сообщений
    407
    Благодарностей: 17
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А я думаю что новый спектрум должен быть по типу как Амига с акселератором на PPC. Но вместо PPC лучше акселератор сделать на ARM9. Желательно чтобы можно было этот акселератор подключать и к существующим моделам спектрумов. Акселератор должен иметь проргаммируимый видео и аудиовыход. А вот базовое железо (все акромя акселератора) хотелось бы иметь аппаратно совместимым с Пентагоном 512К, но собранном не на порнографической рассыпухе, а на CPLD + Z80 + AY + SRAM 512K + пара конденсаторов для стабилизации помех. Вот это было бы мегасуперрулезфореваэндеваэтнева

  6. #5
    Master
    Регистрация
    27.01.2005
    Сообщений
    527
    Благодарностей: 272
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CHRV
    А как ты представляешь кооперацию людей живущих друг от друга на расстоянии хотя бы 300км....
    А ка мы тут общаемся ? Инет, почта...

    Цитата Сообщение от CHRV
    А у меня идея проще - использовать Z80180,
    Совместимость терять не охота.

    Цитата Сообщение от CHRV
    Хотя твоя идея тоже интересная но очень программерам непривычно будет, тем более на окна всеравно придется разбивать - хотя бы для того чтобы рестарты попадали в одно и тоже место (что ты собственно и описал).
    Странички - только для совместимости. А рестарты будут попадать в 0е окно адресного пространства процессора. Либо можно сделать так, чтобы при появлении на шине рестарта в 0е окно впечатывалось какая-нибудь заранее заданная страница памяти. Как я и описал.

    Цитата Сообщение от CHRV
    Для меня привычнее 80x25 и 320х200(320х256) 640х200(640х256)....
    Ничего против не имею. Для меня собственно - тоже так привычнее.

    Цитата Сообщение от CHRV
    ЧТо это за 4мгц, мне известно 3.5 и 7мгц с WAITами....
    Было у меня чудо в котором действительно на 4Мгц процессор работал. )) А вообще - просто по привычке написал. 3.5 - писать дольше)))

    Цитата Сообщение от CHRV
    У меня можно купить всего за 160 руб YM2149. Прямо сейчас... В Китае на складах их полно, оттуда их и заказываю . А ГС всетаки должен отдельной карточкой идти.
    У меня есть AY. Просто зачем делать много плат для звука (и с AY и GS и еще бог знает что ) - когда можно одну со всеми функциями.

    Цитата Сообщение от CHRV
    Так как на данный момент НедоПС групп(NedoPC team) по сути единственные производители компьютеров ZX (а конкретно АТМ-турбо), то хотелось бы услышать что нужно и необходим ли Вам реал? Так как разработки планируются. В частности возможно к концу лета будет обезбаженный и уменьшенный АТМ-Турбо лайт.
    Мне лично хотелось бы память и рестарты в таком виде как я сказал. Это позволит нормальную операционку туда запихнуть. Суть в том, что я сейчас по работе занимаюсь написанием специализированной ОС для ARM7th. Нормальную - то есть с единым интерфейсом драйверов, поддержкой файловых систем и тд и тп. Стараюсь придерживаться идеологии UNIX. Пока реализован менеджер памяти и единый интерфейс драйверов устройств. (Сами драйвера конечно придется переработать под устройства Спектрума, но это не очень сложно). Поддержка единой виртуальной файловой системы - будет следующим этапом.
    Не вижу препятствий портировать свое творение на Z80. Все пишу на С, конечно. Но кросс-С для Z80 у меня тоже есть.

  7. #6
    Master
    Регистрация
    27.01.2005
    Сообщений
    527
    Благодарностей: 272
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Конкретно - кто занимается тут тем же АТМ вопрос. Насколько трудно добавить в схему доработку для виртуализации памяти ? Хотелось бы послушать мнение специалиста ( я со спековским железом уже несколько лет не возился - сейчас думаю - или свой полудохлый раритет восстановить или новый какой приобрести-собрать).

  8. #7
    Guru Аватар для CHRV
    Регистрация
    18.01.2005
    Адрес
    Москва
    Сообщений
    3,690
    Благодарностей: 258
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS
    Конкретно - кто занимается тут тем же АТМ вопрос. Насколько трудно добавить в схему доработку для виртуализации памяти ? Хотелось бы послушать мнение специалиста ( я со спековским железом уже несколько лет не возился - сейчас думаю - или свой полудохлый раритет восстановить или новый какой приобрести-собрать).
    Такой задачи не ставилось и не вижу пока смысла ее ставить.
    В АТМ очень неплохой манаджер памяти позволяющий вставлять любую страницу RAM и ROM в любое окно процессора. Этого я считаю вполне достаточно для решения любых задач спека.
    Поддерживается до 1мбайт RAM и до 1Мбайт ROM.

    Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!

    NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
    [Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
    Все здесь: http://www.nedopc.com.
    Новости/поддержка/Faq: http://forum.nedopc.com.
    Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977

  9. #8
    Member Аватар для tilikum
    Регистрация
    06.02.2005
    Адрес
    Таганрог
    Сообщений
    34
    Благодарностей: 1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS
    ..... Скажем экраны 512х384, 64x48 символов в строке. 8битный цвет и т.п.

    3. Турбо-режим наверное надо ограничить двумя скоростями 4МГЦ(для совместимости) - Максимум(для работы).
    512x384x8бит - это 192 Кб, крошечный экран для Spectrum`a.
    И какой же Вы предложите МАКСИМУМ?

  10. #9
    Master
    Регистрация
    27.01.2005
    Сообщений
    527
    Благодарностей: 272
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CHRV
    Такой задачи не ставилось и не вижу пока смысла ее ставить.
    В АТМ очень неплохой манаджер памяти позволяющий вставлять любую страницу RAM и ROM в любое окно процессора. Этого я считаю вполне достаточно для решения любых задач спека.
    Поддерживается до 1мбайт RAM и до 1Мбайт ROM.
    Экономия памяти. Скажем программа у тебя занимает 5к. Какой смысл выделять ей 16к ? Или 49к - какой смысл выделять ей 64к ? А с предложенной мной доработкой - неважно с каких адресов откомпилена эта программа - заносим в регистр базового адреса необходимое значение - и дело в шляпе. если в памяти несколько программ, размер которых некратен 16к - то экономия будет весьма значительной.
    Плюс - перехват рестартов позволит сделать нормальную операционку. (Раз я ее делаю по работе - то почему бы ее для родного спека не приспособить ? И мне приятно - и другим полезно). Меня интересует насколько сложно выполнить такую доработку компа ?
    По моим представлениям (в простейшем варианте) - это три озу по 8байт (для каждой из 8 страниц 128 спека - совместимость рулит) , сумматор типа 24разр +16разр = 24разр. И схема управления этой кухней. Но это на вскидку - реально все могет быть сложнее. Сумматор и управление можно воткнуть в ПЛИС. (Они благо сейчас недорогие).

  11. #10
    Master
    Регистрация
    27.01.2005
    Сообщений
    527
    Благодарностей: 272
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tilikum
    512x384x8бит - это 192 Кб, крошечный экран для Spectrum`a.
    И какой же Вы предложите МАКСИМУМ?
    Память сейчас недорога, так что 192 к пугаться не стоит. Проблема - скорость. НО! Есть давнее решение, примененное еще в коонтроллерах EGA - когда память можно представлять по-разному (либо байт на точку либо - бит на точку). При этом скорость вывода текста будет не меньше, чем в родном спектруме. Вывод спрайтовой графики же - действительно замедлится. Но какой смысл делать новый комп дез турбо-режима ?
    К тому же можно посмотреть в сторону спринтера - там на одном экране прекрасно уживались несколько графрежимов - почему бы не сделать наподобие ?

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •