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

User Tag List

Страница 5 из 81 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 804

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

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

    По умолчанию

    Цитата Сообщение от Djoni Посмотреть сообщение
    Неплохо было бы добавить режим маппер памяти фирменной машинки +3.

    На данный момент под +3 большой архив программ портированных , есть удобная утилита для работы с образами дискет +3DOS и hdd.
    Ну само собой напрашивается добавить фирменный системный разъём , периферии буржуи много интересной выпускаю можно будет подключать
    Уже почти готово, осталось составить схему коммутации страниц ПЗУ. Само ПЗУ придётся ставить ёмкостью 128 Кб, например W29C010, но чтобы время выборки было не более 70 нс из-за Турбо-14 МГц.

    Страница 0 - Gluk Reset Service;
    Страница 1 - TR-DOS;
    Страница 2 - Menu-128;
    Страница 3 - Basic-48;

    Страница 4 - Редактор Basic-128 3+;
    Страница 5 - Обработчик ошибок Basic-128 3+;
    Страница 6 - Basic-48;
    Страница 7 - +3DOS.

    Теневое ОЗУ ёмкостью 64 Кб будет эмулировать только первые 4 страницы ПЗУ, т.е. только для обычного режима.

    Включить режим "Spectrum 3+" можно будет в BIOS-е, для этого будет использоваться BIOS-порт конфигурации памяти #FC37:

    Порт #FC37:

    биты 0,1 - выбор порта-1 расширения памяти > 128 Кб, влияет на разряды ОЗУ "MEM-1M", "MEM-2M" и "MEM-4M";
    биты 2,3 - выбор порта-2 расширения памяти > 128 Кб, влияет на разряды ОЗУ "MEM-256K" и "MEM-512K":
    00 - выключено,
    01 - порт #7FFD,
    02 - порт #DFFD,
    03 - порт #1FFD;

    бит 4 - режим #7FFD-D5: 0 = D5 управляет расширением памяти, 1 = D5 блокирует порты расширения памяти;
    бит 5 - включение режима "Spectrum 3+":
    0 = обычный режим, порт "#1FFD 3+" не используется, работает ПЗУ страницы с 0 по 3,
    1 = "Spectrum 3+", биты D0,D1,D2 порта "#1FFD 3+" конфигурируют память, работает ПЗУ страницы с 4 по 7.

    Порт #1FFD 3+:
    D0 = 0 - "Spectrum 3+ Normal", бит D1 не используется, D2 = A15 ПЗУ;
    D0 = 1 - "Spectrum 3+ Special", биты D1 и D2 конфигурируют память:

    Режим "3+ Special":

    D1, D2 = 00:
    Адреса #0000 - #3FFF - банк 0
    Адреса #4000 - #7FFF - банк 1
    Адреса #8000 - #BFFF - банк 2
    Адреса #C000 - #FFFF - банк 3

    D1, D2 = 01:
    Адреса #0000 - #3FFF - банк 4
    Адреса #4000 - #7FFF - банк 5
    Адреса #8000 - #BFFF - банк 6
    Адреса #C000 - #FFFF - банк 7

    D1, D2 = 10:
    Адреса #0000 - #3FFF - банк 4
    Адреса #4000 - #7FFF - банк 5
    Адреса #8000 - #BFFF - банк 6
    Адреса #C000 - #FFFF - банк 3

    D1, D2 = 11:
    Адреса #0000 - #3FFF - банк 4
    Адреса #4000 - #7FFF - банк 7
    Адреса #8000 - #BFFF - банк 6
    Адреса #C000 - #FFFF - банк 3
    Последний раз редактировалось Northwood; 02.12.2017 в 20:44.
    С уважением, Александр

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

    По умолчанию

    Готова схема менеджера памяти компьютера "Pentagon-4096". Схема во вложении, она конечно получилась не маленькая, но в неё вошли не только порты расширения, а всё необходимое для управления ОЗУ и ПЗУ, а так же подключение музыкального сопроцессора (сигналы BDIR и BC1), и само ПЗУ W29C010 ёмкостью 128 Кбайт.

    Я всё-таки решил сделать возможность, чтобы теневым ОЗУ можно было эмулировать не только основное ПЗУ "ZX-Spectrum", но и ПЗУ "Spectrum 3+". Но нельзя будет эмулировать только либо то, либо другое, т.к. ёмкость теневое ОЗУ останется 64 Кбайт.

    Некоторые входные сигналы на схеме:

    ~BLK_RAM - блокировка ОЗУ теневым ОЗУ. Используется для того чтобы проецировать теневое ОЗУ в адресное пространство #C000-#FFFF специально для загрузки прошивки ПЗУ.

    ~BIOS_RESGLK - сброс триггера "Gluk Reset Service" - при активации этого сигнала происходит программный сброс триггера и его удержание в сброшенном состоянии, для возможности последующего перехода из ОЗУ в ПЗУ "Gluk Reset Service".
    Работает это следующим образом:

    Для того чтобы из BIOS можно было перейти в ПЗУ "Gluk Reset Service", нельзя просто так из ПЗУ BIOS взять и переключить соответствующий порт, т.к. сразу после переключения порта мы окажемся где-то посередине ПЗУ Gluk-а с заранее неизвестной командой по текущему адресу. И даже если подобрать позицию в адресе ПЗУ, чтобы после переключения оказаться в нужном месте с нужной командой и произошёл старт Gluk-а, окажется так, что после обновления прошивки Gluk-а все адреса будут уже не совпадать и новая прошивка не заработает.

    Поэтому, из ПЗУ BIOS можно перейти в ПЗУ Gluk-а только через ОЗУ. Но если мы переходим в ОЗУ, то происходит отключение триггером ПЗУ Gluk-а, и мы видим уже ПЗУ Basic. Поэтому я ввёл специальный бит D1 порта #FF37, который производит принудительный сброс триггера Gluk, что даёт возможность увидеть ПЗУ Gluk даже находясь в ОЗУ. Далее, необходимо выключить этот бит порта - триггер Gluk-а будет продолжать удерживаться в сброшенном состоянии до перехода в область ПЗУ. И перейти на -0-й адрес, и мы попадём в ПЗУ Gluk. После этого перехода триггер Gluk-а перестанет удерживаться в сброшенном состоянии, но переключится он только при переходе из ПЗУ в ОЗУ. Т.е. произойдёт нормальный старт Gluk Reset Service, из которого можно будет без проблем перейти в любое другое ПЗУ.

    ~ZXB_ROM - входной сигнал с шины ZX-Bus, который принудительно включает ПЗУ. Не знаю, для чего это используется, но придумано не мной, поэтому оставил для совместимости.

    ~CS_MROM - входной сигнал от порта BIOS #FF37, который отключает основное ПЗУ для включения ПЗУ BIOS.

    Вообще, BIOS управляет конфигурацией компьютера 4-я портами:

    #FC37 - управление памятью и режимом "Spectrum 3+":

    биты 0,1 - выбор порта-1 расширения памяти > 128 Кб, влияет на разряды ОЗУ "MEM-1M", "MEM-2M" и "MEM-4M";
    биты 2,3 - выбор порта-2 расширения памяти > 128 Кб, влияет на разряды ОЗУ "MEM-256K" и "MEM-512K":
    00 - выключено,
    01 - порт #7FFD,
    02 - порт #DFFD,
    03 - порт #1FFD;

    бит 4 - режим #7FFD-D5: 0 = D5 управляет расширением памяти, 1 = D5 блокирует порты расширения памяти;
    бит 7 - включение режима "Spectrum 3+":
    0 = обычный режим, порт "#1FFD 3+" не используется, работает ПЗУ страницы с 0 по 3,
    1 = "Spectrum 3+", биты D0,D1,D2 порта "#1FFD 3+" конфигурируют память, работает ПЗУ страницы с 4 по 7.

    #FD37 - управление теневым ОЗУ:
    бит 0 - включение эмуляции ПЗУ Gluk / Редактор Basic-128 3+, стандартное теневое ОЗУ по IN #FB/#7B станет недоступно;
    бит 1 - включение эмуляции ПЗУ TR-DOS / Обработчик ошибок Basic-128 3+;
    бит 2 - включение эмуляции ПЗУ Basic-128 / Basic 48 3+, расширение до 32Кб теневого ОЗУ по IN #FB/#7B станет недоступно;
    бит 3 - включение эмуляции ПЗУ Basic-48 / +3 DOS;
    бит 4 - проецирование теневого ОЗУ в адресное пространство #C000-#FFFF для загрузки прошивок ПЗУ, выбор страницы теневого ОЗУ через порт #7FFD;
    бит 7 - 0 = эмуляция стандартного ПЗУ, 1 = эмуляция ПЗУ "Spectrum 3+".

    #FE37 - управление расширенным видеорежимом:
    бит 0 - компонента "B" для цвета текста в монохромном режиме 512х192;
    бит 1 - компонента "R" для цвета текста в монохромном режиме 512х192;
    бит 2 - компонента "G" для цвета текста в монохромном режиме 512х192;
    бит 3 - яркость текста в монохромном режиме 512х192;
    бит 4 - 0 = 512х192 будет монохромным, 1 = 512х192 будет цветным или мультиколорным;
    бит 5 - включение режима FlashColor;
    бит 6 - включение автоматического режима "аппаратный GigaScreen";
    бит 7 - положение INT - 0="Pentagon", 1="Фирменный".

    #FF37 - переключение ПЗУ BIOS/Основное ПЗУ, сброс триггера "Gluk Reset Service", выбор страницы ПЗУ BIOS.
    бит 0 - 0 = включено ПЗУ BIOS, 1 = основное ПЗУ;
    бит 1 - 0 = сброс триггера Gluk Reset Service;
    бит 2 - выбор страницы ПЗУ BIOS;
    бит 3 - блокировка записи в CMOS;
    бит 4 - блокировка записи в порты BIOS;
    бит 7 - включение режима программирования ПЗУ W27C010.

    Полноценная читабельная схема в ZIP-архиве:
    Memory_Manager.zip

    Схема управление ПЗУ BIOS и теневым ОЗУ будет дальше.

    Исправил ошибку в схеме!
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Memory_Manager.jpg 
Просмотров:	196 
Размер:	49.9 Кб 
ID:	63198  
    Последний раз редактировалось Northwood; 11.01.2018 в 15:26.
    С уважением, Александр

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

    По умолчанию

    Цитата Сообщение от vlad Посмотреть сообщение
    Northwood, можно ещё добавить чтение портов расширения и менеджер NMI?
    Чтение порта #7FFD сделать нужно, забыл про него. Но читаться он должен только из под TRD-DOS.
    С уважением, Александр

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

    По умолчанию

    Дополнил описание порта BIOS #FF37:

    бит 3 - положение INT по вертикали - 0=Pentagon, 1=типа "Фирменный" (Pentagon+32 строки);
    бит 4 - блокировка записи в CMOS;
    бит 7 - блокировка записи в порты BIOS.

    Переключение положения INT по вертикали у меня давно реализовано, правда, сначала было выведено на DIP-переключатель, затем повесил на порт BIOS, но запрограммировать забыл. Когда займусь новой версией прошивки BIOS, то сделаю. Этой возможностью я пользовался для того чтобы в фирменных играх не мерцали спрайты, например, ракетка в Arkanoid-2, или чтобы кораблик в Zynaps летел плавно.

    Блокировка записи в CMOS у меня тоже давно реализована и опробована, осталось вывести на соответствующий бит порта #FF37 и запрограммировать в BIOS-Setup.

    Идея блокировки всех 4-х портов BIOS от изменений внешними программами ко мне пришла только что. Раз уж я опубликовал описание портов BIOS, то стоит позаботиться о том, чтобы ни у кого не возникло желание поклацать эти порты в какой-нибудь демке или интро к игре. Но пока ещё не решил, будет ли такая блокировка безусловной или вывести дополнительный пунктик в меню BIOS-Setup. Включаться блокировка портов BIOS будет при выходе из всех процедур BIOS, когда управление передаётся кому-либо для старта компьютера.

    P.s. блокировку одного из портов BIOS - #FE37 (расширенные видеорежимы), возможно, выведу на джампер, возможно этот порт будет полезно переключать внешними программами.
    Последний раз редактировалось Northwood; 04.12.2017 в 00:38.
    С уважением, Александр

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

    По умолчанию

    Немного переделал схему.

    Была ещё одна ошибка в режиме "Spectrum 3+" в формировании сигнала ~OE для ПЗУ - не было проверки адресного пространства #0000-#3FFF.
    В том же месте удалось провести оптимизацию схемы, благодаря чему на 1 корпус микросхемы стало меньше.
    Так же не хватало в режиме блокировки "48К" отключения портов расширения > 128K, теперь такая блокировка есть.

    - - - Добавлено - - -

    Цитата Сообщение от vlad Посмотреть сообщение
    Northwood, можно ещё добавить чтение портов расширения
    В данном варианте схемы не получится сделать чтение портов, максимум первые 6 бит #7FFD, т.е. в пределах 128К.
    Для того чтобы можно было реализовать полноценное чтение из портов расширения, нужно изменить концепцию схемы:

    Сейчас при выборе порта расширения, коммутируются стробы портов и шина данных, самих портов расширения 2 шт, на которые подаются уже скоммутированные сигналы.

    Нужно будет сделать 3 фиксированных порта #7FFD, #DFFD и #1FFD, и коммутировать их выходы. Это даст:
    а) на 1 микросхему 1533ТМ8, реализующую порт, больше;
    б) на 1 микросхему 1533КП12 меньше, т.к. на 1 сигнал с каждого порта коммутировать нужно будет меньше;
    в) для чтения трёх портов, нужно будет добавить 3 микросхемы 1533ИР22.

    Я в любом случае хочу попробовать составить схему по этой концепции и посмотреть, что реально получится по микросхемам.
    А насколько важна возможность чтения из портов расширения памяти ? И нужно ли читать все 3 порта, или достаточно только #7FFD ?
    С уважением, Александр

  6. #46
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "Порт" FF ещё не помешал бы Есть непофикшеные игрушки под него + новые ожидаются.
    Куплю корпус и материнку от Spectrum +2/+3

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

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

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    "Порт" FF ещё не помешал бы Есть непофикшеные игрушки под него + новые ожидаются.
    Порт атрибутов ? Про то что он будет обязательно, я сообщил в 1-м посте 9-м пунктом.
    У меня 2 варианта схемы порта, с дешифрацией порта и без неё. В работе между ними разницы никакой, фирменные игрушки, требующие данный порт и без которого они зависают, работают абсолютно одинаково. Я предпочитаю с дешифрацией порта, потому что не люблю, когда атрибуты засоряют шину данных, если она никем не занята.
    Последний раз редактировалось Northwood; 04.12.2017 в 11:11.
    С уважением, Александр

  9. #48
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    Порт атрибутов ? Про то что он будет обязательно, я сообщил в 1-м посте 9-м пунктом.
    У меня 2 варианта схемы порта, с дешифрацией порта и без неё. В работе разницы никакой, фирменные игрушки, требующие данный порт и без которого они зависают, работают абсолютно одинаково.
    Затести тогда на своем пентагоне TAP'ку из этой темы. Там техническая демка нового мультиколорного движка. Требует "порт FF". Проверил на unreal , в режиме пентагона, без галочки FF порта в настройках - сбрасывается после загрузки, с галочкой - работает (хоть и криво, т.к. заточена под фирменные спектрумы)
    Куплю корпус и материнку от Spectrum +2/+3

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

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Затести тогда на своем пентагоне TAP'ку из этой темы. Там техническая демка нового мультиколорного движка. Требует "порт FF". Проверил на unreal , в режиме пентагона, без галочки FF порта в настройках - сбрасывается после загрузки, с галочкой - работает (хоть и криво, т.к. заточена под фирменные спектрумы)
    Протестировал:

    На моём реальном Пентагоне из Menu-128 загрузил демку, после окончания загрузки появляется неподвижный игровой экран, на нём виден мультиколор, видно что идёт не полностью как надо.
    Решил посмотреть, как будет на эмуле Unreal - после загрузки идёт сброс в Basic-48. Включил в опциях порт #FF, демка повела себя точно так же, как и на реале - статическая картинка.
    В Unreale видно, какая часть клавиатуры опрашивается, потыкал в 1,2,3,4,5... - при нажатии на 5 игровое поле начало смещаться вправо, но через секунду-две всё зависло.
    Загрузил опять на реале, после окончания загрузки, когда появилась неподвижная картинка игрового поля, нажал клавишу 5 - тоже самое, картинка начала перемещаться и через секунду-две всё зависло, мультиколор остановился.
    Попробовал на реале переключить положение INT на 32 строки вниз, типа "фирменный", разницу на мультиколорной картинке не увидел, как и в поведении демки.
    С уважением, Александр

  11. #50
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    демка повела себя точно так же, как и на реале - статическая картинка.
    Ну значит всё норм. Наверно )
    А статичная картинка и должна быть, она должна двигаться только по нажатию кнопок курсора лево-право.

    Цитата Сообщение от Northwood Посмотреть сообщение
    У меня есть 2 проверенных варианта схемы порта #FF.
    а) более простая схема на 1 микросхеме и 8 резисторах, и она наиболее точно отражает фирменный порт #FF, т.е. без дешифрации порта, когда порт доступен по любому незадействованному номеру порта.

    б) на 3-х микросхемах и без резисторов, с точной дешифрацией порта, проверяются все 8 младших бит. Я себе собрал именно этот вариант, и не заметил разницы в поведении фирменной игры ARKANOID-1.
    А можно схемы обоих доработок?
    Или хотя бы второй.
    Я правильно понял, что схема на 3-ёх микросхемах более стабильная? Просто многие пишут, что порт FF в пентагоне нафиг не нужен, что если его присобачить к пентагону, то он начинает работать нестабильно...
    Куплю корпус и материнку от Spectrum +2/+3

Страница 5 из 81 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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