Начал новую тему про печатки. Высказываемся.
Начал новую тему про печатки. Высказываемся.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Где-то так будет выглядеть
Отправлено с моего JY-S2 через Tapatalk
Скрытый текст
Специалист "УЦА" +SD-Vinxru +PS/2-Vinxru
PLM-X 128 + AY -эмуль на 8меге
Profi V3.2 - 768+Color-CP/M+ProfiExtender Solegstar
Profi V3.2 -1024 Sim30+Color-CP/M+ProfiExtender Solegstar
Pentagon 1024SL 1.42 - работает не совсем стабильно
ZXM-Phoenix V06
ZX-Evolition Rev C2 White FSP-MItX
Sprinter 2000 v.Zorel
Karabas128 + ZX-Taper by TrolSoft +DivSD +ScanDoubler
ZX-UNO v4.1 2М с 4 переключаемыми флешками
Поиск-1 - ждет ремонта
Корвет ПК8010 up to 8020
MisT 1.31
Galaksija + SMD
[свернуть]
Можно пионерский вопрос?
Посмотрел схему платки Z80, там используется стробирование различных выборок портов сигналом /M1 процессора. В чем глубокий смысл дублировать /IORQ сигналом M1, который ЕМНИП активен только при чтении очередного опкода (т.е. в момент никакого отношения к селекту портов не имеющему) и в цикле подтверждения прерывания (тоже никакого отношения к адресному селектору)? В Орионе-128 с Z80 Card, например, /M1 нигде не используется, и все прекрасно работает.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Мусор читается если в момент чтения все устройства в Z (нет чипселекта) и шина не подтянута резисторами.
Я так понял, /M1 надо добавлять в логику обработки /IORQ для того, чтобы не происходило непланового чтения из портов доступных на чтение, т.к. /IORQ выдается не только для чтения из портов, но и для чтения векторов прерывания (IM2), которые должны читаться реальными, или должен читаться FF, иначе возможен "улет" по несуществующему вектору обработчика прерывания (если вместо FF считается состояние порта).
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
А так же связка IORQ и M1 - это сигнал подтверждения прерывания INTA.
В Специалисте же нет прерываний. Это функция (прерывания) наверное добавляется только в маппере FUZIX? Да и то, была бы нужна только с внешним аппаратным контроллером прерываний или контролем приоритетов (как в Орионе-ПРО)? Программные же режимы Z80 (IM1, IM2) прекрасно работают без контроллера прерываний (в том же Орионе128 где прерывания есть, но INTA или его аналоги при этом не используется).
Я почему спрашиваю: пытаюсь понять может что-то я недогоняю, т.к. сейчас начал на макетке делать аналогичный проект (минимальный Z80 по портам сходный с тутошним маппером FUZIX), и там я ничего такого с М1 не планирую делать (вот и думаю - не упустил ли чего).
Последний раз редактировалось Error404; 02.03.2017 в 17:42.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
С помощью /M1 делается запрет выборки устройств сигналом /IORQ. Я полагаю, что это надо если в схеме ЭВМ есть БИС комплекта Z80 (UB855, UB857, UB856) и используются прерывания. Если мне не изменяет память (ЕМНИП), по сигналам /IORQ и /M1 равным 0 БИС комплекта Z80 что-то выдают на шину данных. Причём делают это по цепочке CHAIN с учётом приоритетов. Т.е без сомнения это связано с прерываниями и в машине без INT проблем точно не будет.
Но почему-то во многих ГДР-овских компьютерах, где ещё нет прерываний, сделано точно также. Хотелось бы получить консультацию на эту тему у знатоков. Кто знает зачем /M1 заводят на дешифратор В/У, ведь ни /RD, ни /WR не активны и потому порты не могут повредить, даже если у периферийной БИС адрес случайно совпадёт с адресом на шине. В справочние 'Manfred Kramer, "Datenbuch Mikrorechner Sсhaltkreise", Militaer Verlag der DDR, 1989' указано, что на шину адресов выдаётся содержимое счётчика команд (Befehlszahler).
Последний раз редактировалось barsik; 02.03.2017 в 19:29.
СЯБР остаётся СПЕЦИАЛИСТОМ на 100% с процом i8080A ( модуль FUZIX с ним не будет работать ). С i8085 и Z80 с модулем FUZIX уже можно использовать прерывания . Для прерывания по кадровым импульсам в схемах процов всё необходимое уже есть.
На сколько ваша макета аппаратно совместима с местным модулем FUZIX ? И как обстоят дела с софтом для него ? Может какой тест написали ?
- - - Добавлено - - -
Совершенно верно . По той же причине некоторые игры на спеках не работали.
Совместима процентов на 90. Часть унаследованную от специфики Спеца - особую планировку первой страницы памяти: экраны и прочее - я не буду реализовывать. Также не буду реализовывать и Орионовские экраны. Т.к. это будет миникомп ориентированный на RS-232 (и прочие интерфейсы типа SD, Ethernet работающие только через порты IO), т.е. все страницы памяти будут равноценны - все 64к доступны процу с отключаемым битом D5 порта FB "перекрытием" (склеенной областью) F000..FFFF (эта область будет всегда RAM страницы 0 в "склеенном" режиме и RAM/ROM в режиме полных страниц - см. ниже). Бит D6 порта FB разрешает прерывания.
Страницы 64к будут выбираться только портом F9, старший бит которого определяет ОЗУ в этой странице или ПЗУ (0=ОЗУ, 1=ПЗУ - фактически чипселект ОЗУ/ПЗУ, пока планирую 512кб+512кб) остальные биты - адрес (запараллеленный у ПЗУ и ОЗУ). При сбросе и включении F9=80h (работает ПЗУ, в окне F000...FFFF ОЗУ страницы 0, идет инициализация - распаковка "ПЗУ" ROM-BIOS F800 на адрес F800 и т.п.), затем в нужный момент в порт F9 записываем 0, и далее работаем в ОЗУ как обычный Орион (или Специалист). Остаток ПЗУ (страницы 81h и далее) используем как ROM-ДИСК (или диск CP/M - такое поддержано в АльтаирДОС). Такая схема ОЧЕНЬ упрощает выборку (дешифратор) и позволяет обойтись минимумом корпусов (что для пайки на макетке важно). Пока не решил стоит ли сделать чтение значения порта F9 (это облегчило бы работу с прерываниями).
Т.е. если писать код так, чтобы он после инициализации работал только в страницах 01h и выше, то такой код без модификации будет одинаково работать как на этом микрокомпе, так и на Орионе-128, Орионе-ПРО, Сябре с маппером FUZIX. Это даст мне возможность малой кровью перенести туда Альтаир-ДОС (клон CP/M) и UZIX (клон Unix v7). Обе они ориентированы на алфавитно-цифровой экран (в варианте Ориона128/ПРО алфавитно-цифровой экран конечно имитируется на графическом, но через драйвер, т.е. с точки зрения ОС все равно остается ASCII). Как оно получится по срокам - думаю не слишком быстро, в макетку пока только панельки впаял, схема тоже не дорисована, но оптимистично рассчитываю что-нить запустить уже в этом году.
- - - Добавлено - - -
Также, как перспективный вариант (но врядли именно в моем исполнении, возможно таки удастся b2m уговорить допилить его реализацию до нормальной архитектуры диспетчера 60кб+4кб, дающего максимум ОЗУ процессу и быструю коммутацию процессов целыми страницами... в прошлый раз не уговорили) собственно FUZIX в честь которого и назван маппер Сябра.
Последний раз редактировалось Error404; 02.03.2017 в 21:42.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)