User Tag List

Страница 67 из 69 ПерваяПервая ... 63646566676869 ПоследняяПоследняя
Показано с 661 по 670 из 804

Тема: Pentagon-1024/4096 от Northwood

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В плату войдёт новый полностью переделанный менеджер памяти 4 МБ. Вот его схема:



    Кардинальное отличие его в том, что в старом нужно было через BIOS переключать стандарты расширения памяти, можно было их комбинировать между собой, было доступно 16 комбинаций для 3-х портов: #1FFD, #7FFD и #DFFD. Мультиплексирование было сделано после регистров портов.

    В новой схеме переключение стандартов не нужно делать вообще, при этом доступны те же 3 порта расширения: #1FFD, #7FFD и #DFFD. Мультиплексирование сделано перед триггерами расширения ОЗУ.

    Доступные конфигурации:

    Pentagon-512: #7FFD, биты 6, 7 (5-й бит выполняет стандартную блокировку всех портов расширения памяти, превращая компьютер в 48-й);
    Pentagon-1024: #7FFD, биты 6, 7, 5;
    Profi-1024: #DFFD, биты 0, 1, 2;
    Kay-1024: #1FFD бит 4, #7FFD бит 7, #1FFD бит 7;
    Phoenix-2048: #1FFD бит 4, #7FFD бит 7, #1FFD биты 6, 7;
    Pentagon-4096: #1FFD бит 4, #7FFD бит 7, #1FFD биты 6, 7, 5.

    Т.к. из BIOS-а ушло управление конфигурацией памяти и осталась опция "включение блокировки #7FFD бит 5", то было целесообразно перенести все опции блокировок на порт BIOS #FC37.

    Новое назначение портов BIOS:

    #FC37 - Управление блокировками:
    бит 0 - включение запрета записи в микросхему CMOS;
    бит 1 - включение блокировки шины ZX-Bus+3, если включен стандартный режим;
    бит 2 - включение блокировки шины NemoBus, если включен режим +3;
    бит 3 - назначение бита 5 #7FFD: 0 = расширение памяти, 1 = блокировка всех портов (48-й режим);
    бит 4 - запрет переключения портов BIOS #FC37 и #FD37 (защита конфигурации BIOS от вмешательства);
    бит 5 - резерв;
    бит 6 - включение режима записи Флеш-ПЗУ;
    бит 7 - включение режима +3.

    #FD37 - Управление теневым ОЗУ (без изменений)

    #FE37 - Расширение видеорежимов (без изменений)

    #FF37 - Управление ПЗУ:
    бит 0 - 0 = ПЗУ BIOS, 1 = ПЗУ Спектрум;
    бит 1 - сброс триггера Gluk Reset Service;
    бит 2 - номер страницы ПЗУ BIOS;
    бит 3 - резерв;
    бит 4 - резерв;
    бит 5 - резерв;
    бит 6 - резерв;
    бит 7 - резерв.

    Так же из схемы удалил менеджер памяти +3, который используется только в ОС CP/M+3, которым всё-равно не получилось бы воспользоваться за неимением контроллера дисковода +3. Для DivIDE этот менеджер памяти не нужен.

    Полная принципиальная схема после внесённых изменений:

    С уважением, Александр

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

  3. #2

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    Pentagon-4096: #1FFD бит 4, #7FFD бит 7, #1FFD биты 6, 7, 5.
    спорный вариант - софт рассчитанный на 512 пентагон не пойдёт - имхо лучше сделать #7FFD бит 6,7, #1FFD биты 6, 7, 5 - так как профи и пентагон вместе пожалуй самые распространённые конфы

  4. #3

    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    спорный вариант - софт рассчитанный на 512 пентагон не пойдёт - имхо лучше сделать #7FFD бит 6,7, #1FFD биты 6, 7, 5 - так как профи и пентагон вместе пожалуй самые распространённые конфы
    Ты не верно понял. Самые первые 2 варианта в списке описывают 6 и 7 биты порта #7FFD.

    Страницы памяти в пределах 1 МБ можно выбирать по любому из трёх стандартов одновременно без никаких дополнительных переключений - Пентагон-512/1024, Профи-1024 и Кай-1024.
    Причём, всё это доступно как при установленном модуле памяти 4 МБ, так и 1 МБ.

    При установленном модуле памяти 4 МБ доступны два дополнительные бита 6 и 5 порта #1FFD, дополнительно становится доступным конфигурация Scorpion-1024, а так же Phoenix-2048, а так же все 4 МБ.

    Но здесь нельзя комбинировать Пентагон-512 + Профи-1024.

    Но может лучше вернуть как было - выбор конфигурации памяти через BIOS ? Там можно было делать любые комбинации, но в каждый момент времени доступна только одна из них.
    Последний раз редактировалось Northwood; 16.08.2020 в 22:22.
    С уважением, Александр

    Этот пользователь поблагодарил Northwood за это полезное сообщение:

    shurik-ua(18.08.2020)

  5. #4

    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,735
    Спасибо Благодарностей отдано 
    365
    Спасибо Благодарностей получено 
    378
    Поблагодарили
    241 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Northwood, предыдущий менеджер памяти ведь проверен на практике в твоём Пентагоне?

    Я за то, чтобы встраивать в новую плату только проверенные на практике доработки.
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  6. #5

    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от solegstar Посмотреть сообщение
    Northwood, предыдущий менеджер памяти ведь проверен на практике в твоём Пентагоне?

    Я за то, чтобы встраивать в новую плату только проверенные на практике доработки.
    Предыдущий менеджер памяти в более простом виде работал у меня в предыдущем компьютере - Pentagon-128, расширенном до 1 МБ, и то без возможности комбинирования нескольких портов. В нём можно было через BIOS Setup выбирать только 1 из 3-х доступных портов - #7FFD, #DFFD/#FDFD и #1FFD.
    Собирать ещё какие-то доработки в моём Пентагоне-1024 1.4, расширенном до 4МБ и с кучей бутербродов из микросхем и с паутиной МГТФ, уже практически нереально. Данный узел схемы не представляет какой-нибудь сложности, поэтому я знаю, что он заработает.

    Кстати, переделал дешифрацию портов #7FFD, #DFFD, #1FFD, #BFFD и #FFFD по замечаниям, высказанным по поводу работоспособности некоторых музыкальных треккеров, использующих программирование AY через OUT (#FD),A:

    Дешифрация портов #7FFD, #BFFD и #FFFD в старшем байте отныне сделана не по трём разрядам A13, A14 и A15, а только по двум - A14 и A15. При обращении к порту #7FFD через OUT (#FD),A, дешифрация #7FFD переводится на более мягкую - в старшем байте только по одному разряду A15.
    Дешифрация портов #DFFD и #1FFD в старшем байте отныне сделана не по трём разрядам A13, A14 и A15, а по четырём - A12, A13, A14 и A15. При обращении непосредственно к порту #DFFD, порты AY блокируются.

    Кроме этого, изменил назначение битов порта #1FFD:

    бит 0 - включение ОЗУ в окно CPU0 (#0000-#3FFF) остаётся неизменным;
    бит 1 - отныне безусловное включение 0-й страницы ПЗУ, как в Scorpion ZS-256. Раньше это было на 3-м бите, как было сделано КоЕ в Пентагоне-1024 1.4 по его личному хотению;
    бит 2 - тоже без изменений - в режиме "+3" переключает страницы ПЗУ, а в стандартном режиме не производит никаких действий;
    бит 3 - отныне инвертирует адресный разряд ПЗУ A15 - как в KAY-1024, но при условии, что не включена безусловно 0-я страница ПЗУ. Раньше безусловно включал 0-ю страницу ПЗУ;

    бит 4 - расширение ОЗУ до 256 КБ;
    бит 5 - расширение ОЗУ до 4 МБ;
    бит 6 - расширение ОЗУ до 2 МБ;

    бит 7 - расширение ОЗУ до 1 МБ.

    Последний раз редактировалось Northwood; 19.08.2020 в 14:17.
    С уважением, Александр

    Эти 3 пользователя(ей) поблагодарили Northwood за это полезное сообщение:

    Ldaborc(19.08.2020), Rusazar(18.08.2020), saymon(19.08.2020)

  7. #6

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    лучше оставить как сейчас - имхо

  8. #7

    Регистрация
    11.05.2015
    Адрес
    г. Шяуляй, Литва
    Сообщений
    12
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Какие новости проекта? Как там с производством плат?

  9. #8

    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hysk Посмотреть сообщение
    Какие новости проекта? Как там с производством плат?
    Пришлось сделать ряд значительных изменений в менеджер памяти, а так же пересмотреть поддержку карты DivIDE:

    По менеджеру памяти:

    В этом проекте будет поддержка псевдо-многозадачности, позволяющая загружать одновременно до 31 программ. Как это будет выглядеть:
    По-умолчанию будет доступен некий объём ОЗУ (1 МБ, 2 МБ или все 4 МБ, это нужно будет решить в ходе написания новой BIOS, т.к. определяться будет прошивкой BIOS).
    Допустим, пользователь хочет загрузить сразу несколько программ. Пользователь нажимает кнопку "Magic", попадает в меню управления задачами. Там он выбирает объём памяти для задачи, расположение задачи в памяти будет выбираться автоматически, сохраняет, выходит в стандартный режим Меню-128, TR-DOS, Basic-48 или Gluk, где может загрузить программу. Далее снова нажимает кнопку "Magic", там он может создать новую задачу, выбрав для неё объём памяти, или переключиться на ранее созданную задачу, выходит либо в Меню-128, TR-DOS, Basic-48, Gluk для загрузки новой программы, или в прерванную ранее программу. Т.е. всегда выполняется только одна текущая задача, пользователь сможет в любой момент через кнопку Magic переключаться между задачами или создавать новые, если ещё есть свободная память.

    Доступные объёмы памяти для задачи: 128 КБ, 256 КБ, 512 КБ, 1 МБ, 2 МБ или однозадачный режим - все 4 МБ. Соответственно, если всем задачам выделить по 128 КБ, то поместится 31 программа, а если по 1 МБ, то до 3-х задач объёмом 1 МБ + задачи с выделенным для них меньшего объёма ОЗУ (последние 128 КБ будут использоваться в многозадачном режиме для хранения карты занятой памяти, регистров процессора для каждой задачи, значения портов #7FFD, #DFFD, #1FFD и #EFF7 (в схеме не хватает чтения порта #EFF7, это необходимо, если программы используют расширенные видеорежимы), а так же для сохранения экрана 0-й задачи, который будет использоваться для диалога с пользователем). Экранная область в многозадачном режиме будет привязана к выбранной области ОЗУ.

    Аппаратно многозадачный режим реализован новым менеджером памяти, схему которого я привёл прошлый раз, и 5-битной маской старших разрядов номера страницы ОЗУ, посредством порта BIOS #FC37.

    Если определённый бит маски = 0, то соответствующий ему бит номера страницы ОЗУ доступен для свободного переключения программой, этот бит стандартно проецируется только на верхние адреса в пространстве #C000-#FFFF, и соответствующий бит проецирования экрана в видеоконтроллере = 0.
    Если определённый бит маски = 1, то соответствующий ему бит номера страницы ОЗУ блокируется в заранее заданном состоянии, определяя расположение задачи в ОЗУ, этот бит проецируется на всё адресное пространство #0000 - #FFFF, а так же он поступает на видеоконтроллер для нацеливания экранов на эту область ОЗУ.

    Дополнительно сделал одну доработку в самом менеджере памяти, позволяющую командами короткой адресации OUT (#FD), A управлять 256 КБ ОЗУ через порт #7FFD. Раньше через короткую адресацию было доступно только 128 КБ, т.е. теперь дополнительно доступен D6 #7FFD.

    Сложность была с тем, чтобы определиться, как дать пользователям возможность выбора, куда попадать по кнопке Magic - в управление задачами или стандартно в КЕШ. В данной ревизии я решил воспользоваться опцией отключения доступа к КЕШ-памяти по кнопке Magic, которую я сделал ранее. Если в BIOS-Setup включить доступ к КЕШ-памяти, то по кнопке Magic будем попадать в КЕШ, соответственно, управление многозадачностью будет недоступно. Если в BIOS-Setup доступ к КЕШ-памяти по кнопке Magic отключить, тогда по этой кнопке будем попадать в управление задачами, обработчик по адресу #0066 которого будет находиться в ПЗУ BIOS.

    Я рассматривал варианты сделать горячую клавишу во время нажатия Magic, но потом отказался от этой идеи потому, что в этом варианте появляется проблема, что клавишу опрашивать по Magic нужно, а значит это должен делать обработчик в ПЗУ BIOS, и если пользователь выберет КЕШ, то надо каким-то образом отключить ПЗУ BIOS и включить КЕШ, и сделать это возможно только использовав резидентную программу, которую необходимо скопировать в ОЗУ, а значит придётся немного подпортить либо область системных переменных, что недопустимо, либо экран, что хоть и не катастрофично, но тоже плохо. Поэтому этот вариант я и отбросил. Если пользователю не нужна многозадачность, он может включить в BIOS Setup доступ к КЕШ-памяти по Magic, и по этой кнопке будет сразу попадать в КЕШ не портя ни одного байта в ОЗУ.

    По поддержке карты DivIDE:

    Ради неё я делал отдельный слот ZX-Bus+3. Но мне дали спецификацию этой карты, из которой стало ясно, что она не только не заработала бы, а вообще препятствовала бы старту компьютера. Из документации на DivIDE, эта карта отслеживает переходы процессора на адреса #0000, #0008, #0038, #0066, #04C6, то DivIDE подключает своё ПЗУ вместо основного. Соответственно, DivIDE будет нормально работать в режиме "+3" с соответствующей прошивкой, но не даст компьютеру запуститься в стандартном режиме. Разумеется, блокировка одного IORQ на слот ZX-Bus+3 не помогла бы. Поэтому для решения задачи, в стандартном режиме нужно блокировать не только IORQ, а ещё M1.

    Для разрешения конфликта DivIDE с картами General Sound, ZXM General Sound и NeoGS, которые используют те же порты #B3 и #BB, нужно блокировать IORQ. Как оказалось, на карте ZXM-General Sound для этого есть дополнительный порт #33, который через D4 позволяет заблокировать карту. Карта NeoGS тоже содержит порт #33, но блокировка карты не предусмотрена. Классический General Sound этого порта не имеет вообще.

    В предыдущей ревизии платы была блокировка IORQ на шину NemoBus и ZX-Bus+3, но будет лучше, если на NemoBus не делать блокировки IORQ, которая даёт задержку этого сигнала около 6 нс и полностью изменить концепцию поддержки DivIDE. Я убрал слот ZX-Bus+3, заменив его на 4-й слот NemoBus, а вместо платки краевого слота +3 будет переходник, позволяющий подключать карту DivIDE в слот NemoBus. На этом переходнике будет реализован порт #33 для блокировки карты через D4, а так же формирование сигнала IORQCE, который будет блокировать порты компьютера, если будет идти обращение к DivIDE, когда работа этой карты разрешена через порт #33.
    Когда карта DivIDE будет запрещена, для неё будут блокироваться сигнал M1, чтобы карта не перехватывала переходы по списку адресов и не подключала своё ПЗУ, сигнал IORQ и блокироваться генерация сигнала IORQCE.
    Для того, чтобы карты General Sound и NeoGS не мешали работать карте DivIDE, последняя должна быть установлена через свой переходник в более приоритетный слот NemoBus. Если будет использоваться карта ZXM-General Sound, то с ней будет без разницы, какую карту в какой слот установить.

    Кроме этого, карты DivIDE, как оказалось, выпускались с разным конструктивом слота, как вдоль платы, так и перпендикулярно, поэтому в предыдущей ревизии материнской платы ещё не каждую карту DivIDE удалось бы воткнуть физически. Сделать универсальный переходник под разные конструктивы DivIDE будет проще, чем сделать эту универсальность на материнской плате.

    Последний раз редактировалось Northwood; 11.09.2020 в 16:38.
    С уважением, Александр

    Эти 4 пользователя(ей) поблагодарили Northwood за это полезное сообщение:

    Djoni(11.09.2020), Hysk(11.09.2020), Rusazar(12.09.2020), shurik-ua(11.09.2020)

  10. #9

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    Для того, чтобы карты General Sound и NeoGS не мешали работать карте DivIDE, последняя должна быть установлена через свой переходник в более приоритетный слот NemoBus. Если будет использоваться карта ZXM-General Sound, то с ней будет без разницы, какую карту в какой слот установить.
    а на сколько сложен этот DivIDE?
    может его проще тупо поместить на плату?
    вместо 15-го NemoBus
    а не городить переходники

    ну и 2-й вопрос
    зачем он вообще на пентагоне?
    Последний раз редактировалось NEO SPECTRUMAN; 11.09.2020 в 16:45.

  11. #10

    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а на сколько сложен этот DivIDE?
    может его проще тупо поместить на плату?
    вместо 15-го NemoBus
    а не городить переходники
    На плате и сейчас уже нет места для чего-то нового, куда-там DivIDE ещё разводить. На верхней плате тоже места может не хватить. Кроме этого, DivIDE далеко не всем будет нужен. На принципиальной схеме DivIDE, карта содержит 3 микросхемы ПЛМ, ПЗУ ёмкостью 8 КБ и статическое ОЗУ ёмкостью 32 КБ, и 3 микросхемы логики (два буфера и ещё что-то, не разбирался, что).
    С уважением, Александр

Страница 67 из 69 ПерваяПервая ... 63646566676869 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Pentagon 1024
    от Ilyad в разделе Pentagon
    Ответов: 3
    Последнее: 24.06.2015, 15:28
  2. Ответов: 186
    Последнее: 01.07.2012, 18:43
  3. Pentagon – 1024 SL 2.2
    от skar в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 19.08.2008, 12:56
  4. Pentagon – 1024 SL 1.4
    от skar в разделе Барахолка (архив)
    Ответов: 19
    Последнее: 28.08.2007, 13:00
  5. Pentagon 1024 SL
    от breeze в разделе Pentagon
    Ответов: 7
    Последнее: 15.03.2005, 10:43

Ваши права

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