Александр, а скажите можно будет сиё чудо у Вас потом заказать (купить) ??? Очень хочется получить Ваш супер Пентагон.
Вид для печати
Александр, а скажите можно будет сиё чудо у Вас потом заказать (купить) ??? Очень хочется получить Ваш супер Пентагон.
Ldaborc, у тебя и так эволюшн с тремя звуковухами и т.п. Тебе не положено. Радуйся эмуляторному эволюшну. Если хочешь супер-пентагон, то эволюшн нужно сначала сдать партии.
Я не против, только пока не знаю, какие способы денежных переводов из России в Украину доступны сегодня и работает ли почта между Украиной и Россией. Это всё можно будет выяснить, и после этого буду создавать опрос желающих.
И если по голым платам всё понятно - заранее известна стоимость комплектов плат, то по комплектам микросхем пока что не ясно, смогу ли достать нужное количество всех микросхем и в какую сумму они выйдут.
С карты Тинькоффа переводили на карту ПриватБанка без проблем. Отправлял обычной почтой, авиа, 2-3 недели посылка шла адресату.
- - - Добавлено - - -
TR-DOS например. :)
Саша, я не знаю, как у тебя ничего не было слышно в колонках при работе дисковода, возможно был заведен сигнал /DOS в дешифратор, но то, что есть пересечение по порту 1F на запись с бетадиском, это факт. Ещё возможно по FF( но не уверен, он кажись только на чтение). Сигнал от контроллера дисковода должен быть в дешифраторе SounDrive, иначе будет треск в колонках. Можно попробовать завести сигнал DOS на /CSы аудиоЦАПов. Если трдос не активен, то цапы подключены к схеме, как только трдос активен (DOS перейдёт в лог.1, если я правильно понял обозначения сигналов на схеме), то цапы отключатся от схемы и ничего выводить не будут. Это в теории, но нужно проверить на практике конечно. По другим портам не смотрел ещё, возможно тоже будут пересечения, ведь в дешифраторе нет А7 и А5.
Да, про контроллер дисковода как-то вылетело из головы. У меня на компьютере лежат несколько схем SoundDrive, которые я составлял, одна из них без сигнала ~DOS на дешифраторе, и именно эта схема мне попалась. Другая схема в составе платы расширения, там уже как положено с ~DOS, с битами A2 и A7. Но бит A5 не проверяется, большой необходимости в нём нет.
Плохо то, что для того, чтобы всё это исправить, придётся поставить ещё два корпуса микросхем.
Northwood, а можно схему(обоих плат) в каком нибудь pdf?
чтобы можно было искать по ней набирая текст в поиск
на всякий вот типо одноразовый файлообменник
https://dropmefiles.com/
Когда будет окончательный вариант схемы и платы, я выложу всё это в нескольких форматах: в png, попытаюсь в pdf и непосредственно в pcad.
Сейчас для конвертации в графический формат, я сначала конвертирую в формат oxps, а из него онлайн конвертером в png с избытком разрешения (600 dpi), затем в Фотошопе добавляю белый фон, обрезаю по краям лишнюю пустоту и уменьшаю разрешение так, чтобы при просмотре схемы с онлайн хостинга получался адекватный масштаб и достаточно чёткие мелкие элементы.
Формат oxps я выбрал вместо pdf потому, что при печати в pdf я могу выбрать максимальный размер холста А3, но этого мало для принципиальной схемы материнской платы. А в oxps можно выбрать А2, в результате в нём схема получается более чёткая. Но нужно будет опять попробовать pdf.
Держи, пока что только материнская плата. Для верхней платы выложу, когда будет готова схема. Сейчас думаю над тем, как не ставить корпус микросхемы, содержащего 4 логических элемента, ради использования одного единственного элемента, но при этом завести A2 на дешифрацию порта #FB для SoundDrive. Но возможно, я использую уже готовый сигнал с материнской платы, на которой этот порт уже дешифирован.
https://dropmefiles.com/3SpAl
Нашёл решение, ни одного нового корпуса микросхем в схему добавить не пришлось.
В схеме SoundDrive перенёс сигнал ~WR с дешифратора (DD22) на микросхемы ЦАП (DA7 и DA8). На дешифраторе образовался свободный вход, на который я и подал сигнал DOS (прямой сигнал, не иверсный, неактивный уровень = 0).
Проанализировал порты SoundDrive #0F, #1F, #4F, #5F и Covox #FB на конфликты с другими портами, для их разрешения заменил A2 на A7, этого оказалось достаточно для того, чтобы устранить все конфликты.
Список портов, с которыми проверил конфликты:
General Sound: #B3, #BB
Hayes Modem, RS-232: #EF
XTR Modem: #B7
System: #FD
Border, Beeper, Tape: #FE
RTC, VideoModes: #F7
BIOS: #37
Nemo IDE: #10, #11, #30, #50, #70, #90, #B0, #D0, #F0, #C8
SMUC: #BA
DivIDE: #A3, #A7, #AB, #AF, #B3, #B7, #BB, #BF, #E3
Разумеется, есть конфликт с портом принтера ZX-Lprint-III, т.к. у него точно такой же адрес порта #FB, здесь дещифратор портов не поможет. Так же SoundDrive будет откликаться при записи в другой порт принтера #7B.
В ходе проверки обнаружил конфликт порта кэмпстон джойстика с портом NemoIDE #11.
Дело в том, что сейчас у меня на реальном Пентагоне этот конфликт отсутствует по одной простой причине - NemoIDE у меня вставлен в слот NemoBus, и арбитр шины по факту отклика NemoBus на свои адреса портов, блокирует порт джойстика, поэтому дешифрации порта джойстика по A5 и A7 достаточно. Но в Пентагоне-4096 NemoIDE разведён на плате, соответственно для уменьшения задержек ~IORQ, я убрал блокировку ~IORQG при отклике NemoIDE на свои адреса портов, и это потребовало сделать более жёсткую дешифрацию порта джойстика, иначе было бы чтение из порта джойстика при попытке прочитать секторы HDD. Введения проверки A3 на =1 оказалось достаточно. Для этого пришлось чуть упростить схему формирователя ~Reset, чтобы забрать один инвертор, без которого не получилось бы решить эту задачу.
https://i.ibb.co/N1ftcDZ/Main-Board-v7-sch-ps.png
https://i.ibb.co/XFhQ8Tz/Top-Board-v4-sch-ps.png
Проверь еще
$BF3B на запись
$FF3B на чтение запись
порты ula+
куда они будут писать\читать на этом пентагоне
подстраиваться под оно смысла нет
но вот знать как оно себя будет вести не помешает
тк некоторые софтвари могут захотеть делать автодетект
Единственный конфликт, который остался и меня смущает, это совпадение адреса портов Covox-а и принтера #FB. Процесс печати на матричном принтере всегда будет сопровождаться звуковыми эффектами из аудио-колонок, делая шум печати более разнообразным. И сделать можно только одно - отключать Covox (не весь SoundDrive, а только Covox). Но вешать его отключение на BIOS уже проблематично, т.к. потребует по одному дополнительному корпусу микросхемы на каждой плате, а на материнке новую микросхему уже некуда пихать. Пока что просто поставлю джампер на верхней плате.
И новые, но они на AGD, и с ULA+ там часто проблемы. А при этом все-таки на AGD нет-нет да попадаются неплохие игры. Сейчас я на Эве такие игры (AGD-шки не расчитанные на ULA+) запускаю в TS Conf, иначе игры выглядят странно. Где-то даже дока про это есть, в которой написано, что такие AGD-игры патчить надо.
- - - Добавлено - - -
Вот дока
https://www.dropbox.com/s/asej5ss7vp... v1.0.pdf?dl=0
Кеш включается только чтением из порта #FB, а выключается чтением из порта #7B, при этом дёргается сигнал принтера STROBE, но больше никаких данных в принтер не отправляется. При чтении из порта #FB одновременно читается состояние принтера - BUSY и QUSY.
Конкретные данные в принтер отправляются только при записи в порт #FB, но при работе с кеш-памятью ничего писать в порт #FB не нужно.
Ещё момент, это ПЗУ принтера и сама кеш-память:
В схеме есть джампер XS11, которым можно заблокировать или разблокировать доступ к кеш-памяти. Если доступ разблокировать, тогда при чтении из порта #FB или при нажатии на кнопку "Magic" вместо ПЗУ подставится кеш-память. Если же доступ к кеш-памяти джампером XS11 заблокировать, тогда при чтении из порта #FB подставится ПЗУ принтера.
Раскладка страниц ПЗУ:
DD116 - 27C512:
0 - BIOS главная страница;
1 - BIOS дополнительная страница;
2 - не используется;
3 - Принтер (если прошивка принтера имеет маленький размер, то её нужно продублировать столько раз, чтобы заполнить полностью страницу 16 КБ).
DD104 - W27C010:
0 - Gluk Reset Service;
1 - TR-DOS;
2 - Меню-128;
3 - Basic-48;
4 - Редактор Basic-128 для режима Spectrum+3;
5 - Обработчик ошибок Basic-128 для режима Spectrum+3;
6 - Basic-48 для режима Spectrum+3;
7 - +3DOS для режима Specutrm+3.
- - - Добавлено - - -
Ошибся на счёт сигнала принтера STROBE:
При чтении из портов #FB и #7B, сигнал STROBE не меняется, только включается и выключается кеш или ПЗУ принтера и читается его статус.
Сигнал STROBE активируется при записи в порт #FB, одновременно в принтер отправляется байт данных. При записи в порт #7B сигнал STROBE деактивируется.
Работа с кешем принтеру никак не мешает, даже если питание принтера будет включено, можно пользоваться кеш-памятью и на принтер никакие сигналы поступать не будут (про STROBE я вначале ошибся, потом дописал, что этот сигнал не дёргается при работе с кеш-памятью).
Если нужно печатать, то джампер XS11 нужно разомкнуть, чтобы заблокировать кеш-память. Либо можно предварительно в кеш-память загрузить прошивку принтера и тогда блокировать кеш-память не обязательно, с одной оговоркой - кеш-память доступна на запись, и не убьёт ли загруженную прошивку драйвер принтера или любая другая программа во время печати, неизвестно. Т.е. здесь нет чёткого разделения между работой принтера и с кеш-памятью, и никаких дополнительных мер не требуется.
Остаётся только Covox, который будет жужжать при отправке страницы на печать. Мне пока не совсем ясно, насколько это будет мешать, как минимум один голос есть за то, чтобы оставить всё как есть. Блокировка Covox-а потребует 1 дополнительный корпус микросхемы на верхней плате, но после добавления SoundDrive, мне пришлось увеличить размер платы на 1 ряд микросхем, и SoundDrive его заполнил только частично, т.е. места предостаточно.
Гораздо сложнее с тем, чтобы вывести это переключение на порт BIOS. Логически есть ещё 2 свободных бита порта #FD37 (управление теневым ОЗУ), но КР1533ТМ9 имеет только 6 триггеров, это значит, нужно добавить ещё один корпус, а это уже проблема на нижней плате. Я бы вместо ТМ9 поставил ИР23, но он не имеет сброса, который нужен обязательно, иначе в случае, если после включения питания первые 5 бит порта #FD37 не будут в 0, то BIOS не будет доступен и компьютер не сможет запуститься.
- - - Добавлено - - -
Но можно пойти на компромисс:
Я предусмотрел опцию - защита (закрытие) портов BIOS для управления из вне, мне до сих пор не до конца ясно, нужна ли эта опция или нет, если её убрать, то освободится бит порта #FF37 и тогда не придётся добавлять корпус.
Защита портов BIOS:
В меню BIOS-Setup будет опция - включить защиту портов BIOS. Тогда при выходе из BIOS будет включаться защёлка (бит D6 порта #FF37). В этом случае порты #FC37 (конфигурация памяти), #FD37 (управление теневым ОЗУ) и #FF37 (управление ПЗУ, блокировки) станут недоступны для переключения до следующего сброса, из программ переключить порты BIOS станет невозможно.
Если в меню BIOS-Setup отключить защиту портов BIOS, тогда его порты можно будет переключать из любого места.
В этой защите есть обратная сторона медали:
1) Загрузка прошивок в теневое ОЗУ станет недоступна из вне;
2) В ПЗУ BIOS я расположил стандартные точки входа для работы с жёстким диском (RST#18, RST #20, RST #28), позволяющие легко читать и записывать данные с / на HDD, это даёт возможность написания ПО, работающее с жёстким диском, без необходимости писать процедуры работы с HDD, т.к. они уже готовы. Т.е. заполняем регистры процессора нужными значениями и вызываем подпрограмму BIOS, и вуаля - загрузился в память блок секторов или произошла запись в них. И если включена блокировка портов BIOS, эта функция тоже становится недоступной.
Я подумываю, что эту защиту портов BIOS нужно убрать, т.к. польза от неё сомнительная.
Есть аналог ТМ9 на 8 триггеров - 1533ИР35.
- - - Добавлено - - -
думаю стоит заменить тм9 (DD18, DD31) и две ТМ8 (DD155, DD156) на 1533ИР35. две ТМ8 ессно заменить на одну ИР35. минус корпус! возможно еще где-то можно/нужно заменить, при этом упростив/убрав корпус. тот же порт 7FFD или 1FFD.
Теперь по размеру и креплению верхней платы:
Исходный её размер был 170х127 мм.
После размещения на ней SoundDrive, размер платы увеличился до 170х152 мм. Этого хватает с головой.
Но если размер верхней платы ещё немного увеличить до 170х171 мм, то мы уже достигаем расположения стандартных отверстий крепления. Это значит, что две задние стоечки не нужно прикручивать к материнской плате, вместо этого они будут вкручены в стандартные отверстия корпуса ПК.
На вот тот верхний левый угол верхней платы нет смысла ставить стойку, потому что её придётся крепить к точно так же висящему верхнему левому углу материнской платы, потому что под ней точно так же нет крепления в корпусе ATX. Да и стойка эта займёт место на линии разъёмов и тогда они не поместятся все. В том углу будет стоять разъём PS/2, для подключение мышки не нужно прилагать большого усилия.
Я хочу сегодня заказать микроконтроллер ATMega48PA-PU, чтобы собрать на макетной плате контроллер PS/2 клавиатуры. Если всё получится без WAIT-а, то добавлю его в схему.
смысл есть
часть нагрузки через стойку будет передаваться на нижнюю плату
жесткость висячего угла повысится
это будет равносильно плате двойной толщины
+ будет дополнительная жестокость от микросхем на обоих платах :)
- - - Добавлено - - -
Northwood, я правильно понимаю
ряд разъемов будет между двух плат?
не могу нагуглить размеры ps2 разъемов
на глаз мм 30...35
может получится подпирать им плату
ход платы в одну сторону он ограничит
какой планируется ставить rca разъем? (наверно будет выше чем ps2)
Верхняя плата будет у края окна в корпусе для разъёмов, они будут стоять на верхней плате с нижней стороны, т.е. буду смотреть в сторону нижней платы.
Размеры одинарного разъёма Mini-Din 6pin (PS/2) 14x13x14 мм, двойного - 14x20x28 мм. Двойной я измерил штангенциркулем, у меня лежит дохлая ПЦшная материнка с таким.
До материнской платы двойной разъём не достанет, т.к. расстояние между ними будет 41 мм, в запасе остаётся 13 мм. Но теперь боюсь, чтобы двойной PS/2 разъём не упёрся в разъём для межплатных соединений, уже несколько человек изъявили желание оснастить компьютер контроллером для PS/2 клавиатуры и я поддерживаю эту идею. В новой версии разъём для межплатных соединений уже не на 44 контакта, а на 50, т.е. длинней, поэтому он в любом случае будет проходить под разъёмом PS/2.
Вложение 71942Вложение 71943
Вложение 71946
Его размер 14x22x41 мм, не учитывая выступающую наружу часть. По высоте он займёт всё расстояние между верхней и материнской платами.
Версия принципиальной схемы с контроллером PS/2 клавиатуры. За основу взял контроллер от Caro, но адаптировал под Пентагон-4096. Схема ещё не окончательная:
1) Нужно разобраться с реализацией функции паузы в этом контроллере. Как я предполагаю, она формируется с помощью WAIT-а, но до конца не уверен, поэтому WAIT пока не подключал.
2) Нужно разобраться с типом выходов и уровнями сигналов на них в ATMega48, чтобы понять, где обязательно, а где не обязательно ставить развязывающие диоды по цепям Reset, Turbo и Magic. По выходам Turbo и Magic ставить буферные элементы не нужно, т.к. они уже есть на материнской плате.
Заводить сигнал /M1 на контроллер клавиатуры для кнопки Magic тоже не нужно, поскольку всё это уже есть на материнской плате.
В качестве сигнала выборки порта клавиатуры я завёл сигнал ~PJKEB. Он активный при обращении и к клавиатуре и к кемпстон-джойстику, но это не должно пугать - после ATMega48 стоит КП11, которая разделяет между собой обращение к клавиатуре и джойстику, поэтому конфликтов и каких либо других проблем не будет.
Жду, когда приедет ATMega48, чтобы всё это проверить.
https://i.ibb.co/n6Kwxyx/Main-Board-v7-1-sch-ps.png
https://i.ibb.co/zH1jZ6y/Top-Board-v4-1-sch-ps.png
В пятницу приехал микроконтроллер ATMega48 PA-PU, соберу на макетной плате контроллер клавиатуры PS/2.
А пока я уже полностью переразвёл материнскую плату с учётом всех изменений. Расчистил место, где на верхней плате будет располагаться сборка из 3-х разъёмов RCA (между DD99 и DD116).
https://i.ibb.co/N6dS97q/Main-Board-...ponents-ps.png https://i.ibb.co/FDrQw5p/Main-Board-v7-pcb-gnd-ps.png https://i.ibb.co/4mDvL0v/Main-Board-v7-pcb-power-ps.png https://i.ibb.co/p4W4CMm/Main-Board-...-bottom-ps.png https://i.ibb.co/Z2fhRbH/Main-Board-v7-pcb-top-ps.png
Перезалил рисунки материнской платы - сделал косметические доработки:
1) Диод шоттки VD2 под панелькой статического ОЗУ DD99 сместил на 2.54 мм правее, чтобы крайний левый вывод диода был напротив 2-й ножки ОЗУ, а не 1-й, иначе была бы сложность с его монтажом.
2) На слоях платы GND и Power убрал термобарьер для разъёма питания ATX-20pin для цепей GND и +5V, потому что на эти контакты приходится самый большой ток и термобарьер здесь был самым узким местом. Для всего остального на этих двух слоях термобарьер оставил.
Хочу расписать финальный вариант назначения всех бит портов BIOS:
Порт #FC37 (конфигурация памяти):
bit 0, 1 - первый выбор порта расширения памяти:
00 - выкл. (128 КБ);
01 - #7FFD;
10 - #DFFD;
11 - #1FFD.
bit 2, 3 - дополнительный выбор порта расширения памяти:
00 - выкл. (128 КБ);
01 - #7FFD;
10 - #DFFD;
11 - #1FFD.
bit 4 - назначение бита 5 порта #7FFD:
0 - бит используется для расширения памяти до 1 МБ (если выбран порт #7FFD);
1 - бит используется для блокировки всей верхней памяти до 48 КБ.
bit 5, 6 - резерв для будущего применения.
bit 7 - включение режима "Spectrum +3":
0 - стандартный режим;
1 - режим "+3".
Порт #FD37 (управление теневым ОЗУ):
bit 0 - режим подмены ПЗУ страницы 0 "Gluk Service":
0 - выкл. (доступна КЕШ память через порты #FB/7B);
1 - подмена ПЗУ "Gluk Service".
bit 1 - режим подмены ПЗУ страницы 1 "TR-DOS":
0 - выкл;
1 - подмена ПЗУ "TR-DOS".
bit 2 - режим подмены ПЗУ страницы 2 "Menu-128":
0 - выкл. (доступны 32 КБ КЕШ памяти через порты #FB/7B при условии, если bit 0 тоже = 0);
1 - подмена ПЗУ "Menu-128" (объём КЕШ памяти ограничивается одной страницей 16 КБ);
bit 3 - режим подмены ПЗУ страницы 3 "Basic-48":
0 - выкл;
1 - подмена ПЗУ "Basic-48".
bit 4 - режим загрузки теневого ОЗУ с адреса #C000, страницы выбираются через порт #7FFD;
bit 5 - отлючение доступа к КЕШ памяти через порты #FB/#7B (для совместимости с принтером):
0 - КЕШ память доступна, при условии, что подмена 0 страницы ПЗУ выключена;
1 - КЕШ - память не доступна.
bit 6 - отключение Covox-а через порт #FB:
0 - Covox доступен;
1 - Covox не доступен.
bit 7 - выбор режима, для которого будет работать подмена страниц ПЗУ:
0 - для стандартного режима;
1 - для режима "Spectrum +3".
Порт #FE37 (расширения видеорежимов):
bit 0, 1, 2, 3 - цвет и яркость текста для монохромного режима 512x192 пикселей:
0 - B-компонента;
1 - R-компонента;
2 - G-компонента;
3 - яркость.
bit 4 - включение цвета для режима 512x192 пикселей:
0 - монохромный режим;
1 - цветной режим.
bit 5 - режим FlashColor:
0 - выкл. - при активном бите Flash знакоместо / байт мигает;
1 - вкл. - бит Flash расширяет палитру для текста, делая фон чёрным.
bit 6 - режим Giga Screen (черезстрочное переключение экранов):
0 - выкл;
1 - автоматическое включение и выключение при переключении экранов через порт #7FFD. Включается в момент переключения экранов и отключается с приходом кадрового синхроимпульса.
bit 7 - позиция сигнала INT:
0 - стандарт Пентагон;
1 - фирменный стандарт.
Порт #FF37 (управление ПЗУ и блокировками):
bit 0 - переключение ПЗУ:
0 - BIOS;
1 - Spectrum.
bit 1 - сброс триггера Gluk Service для немедленного доступа к 0-й странице ПЗУ:
0 - нормальный режим;
1 - триггер Gluk Service сброшен как после нажатия кнопки Reset.
bit 2 - номер страницы ПЗУ BIOS:
0 - основная страница;
1 - дополнительная страница;
bit 3 - блокировка записи в CMOS:
0 - запись разрешена;
1 - CMOS часы доступны только для чтения.
bit 4 - блокировка IORQ для шины ZX-Bus+3:
0 - шина доступна всегда;
1 - шина доступна только если включен режим "Spectrum +3".
bit 5 - блокировка IORQ для шины NemoBus:
0 - шина доступна всегда;
1 - шина доступна только если включен стандартный режим.
bit 6 - блокировка портов BIOS #FC37, #FD37 и #FF37:
0 - порты BIOS доступны;
1 - порты BIOS заблокированы (кроме #FE37).
bit 7 - включение режима прошивки основного ПЗУ W27C010.