Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Pentagon 1024SL 1.4 - сборка и наладка. (http://zx-pk.ru/showthread.php?t=12844)

AlexFantasy 30th November 2011 15:48

Ты бомби так так что-бы у этотого Пента не пострадала совместимость!

---------- Post added at 12:48 ---------- Previous post was at 12:43 ----------

Кстати Northwood, было-бы такое щастье если-бы после воплощения в жизнь всех этих доработок, ты развел и пустил в производство "новую" печатную плату под ATX(опять-же на рассыпухе)на борту которой уже были-бы навороты типа 4 метра RAM,GS,SounDrive,IDE,PS2Keyb/Mouse... И обозвать её не "Pentagon", а "Samogon" .... "GMX-2" или просто "Turbina"?????
Я-бы наверное самый первый записался!!! :v2_rolley

ZEK 30th November 2011 16:28

Quote:

Originally Posted by Northwood (Post 441300)
2) В схеме не делается никаких доработок, но модифицируются обе прошивки - GLUK и BASIC-128 - в BASIC-128 добавляется опрос клавиши CAPS SHIFT, но нажатию которой будет включен 3-й бит #1FFD и переход в GLUK.

Никакие пути выдумывать не надо, такой путь есть, и есть такая прошивка (Модификация HeGluk для кай, которая должна в пне 1.4 работать из за совместимости с этим самым каем).

В глюк выходит программно из модифицированной прошивки BASIC 128, глюк работает не из ПЗУ а из ОЗУ он туда при старте распаковывается.

Даже больше эта прошивка знает о том как ограничивать 48к и 128к памяти в пне 1.4. Не стоит все ломать

Northwood 30th November 2011 17:16

Quote:

Originally Posted by AlexFantasy (Post 441309)
Ты бомби так так что-бы у этотого Пента не пострадала совместимость!

Если поставить триггер, который будет по РЕСЕТу включать 0-ю страницу ПЗУ с GLUK-ом и по стандарту выключать при выборки инструкции из области ОЗУ, то после этого БЕЗ прошивки GLUK компьютер работать не будет, выдавая матрац как без ПЗУ (если 0-я страница будет полностью пустая). Т.е. наличие прошивки GLUK или какой-нибудь другой с аналогичным управлением 0-й страницей ПЗУ будет обязательно.

В крайнем случае в 0-ю странице должно быть несколько байт кода, которые бы выключали 0-ю страницу ПЗУ и обеспечивали нормальный старт в Меню-128, например:

DI
LD HL,jump
LD DE,#4000
LD BC,#0003
LDIR
JP #4000

jump:
JP #0000

Если нужно чтобы компьютер мог стартовать вообще без какого-либо кода в 0-й странице ПЗУ, но при этом запускал GLUK по нажатию какой-либо клавиши, то без модификации обоих прошивок не обойтись, при этом аппаратная доработка будет не нужна, и управление 0-й страницей ПЗУ будет только через порт #1FFD.

Quote:

Originally Posted by AlexFantasy (Post 441309)
[/COLOR]Кстати Northwood, было-бы такое щастье если-бы после воплощения в жизнь всех этих доработок, ты развел и пустил в производство "новую" печатную плату под ATX(опять-же на рассыпухе)на борту которой уже были-бы навороты типа 4 метра RAM,GS,SounDrive,IDE,PS2Keyb/Mouse... И обозвать её не "Pentagon", а "Samogon" или "GMX-2"?????
Я-бы наверное самый первый записался!!! :v2_rolley

Я вообще планирую после этой доработки и после подключения NemoIDE сделать BIOS, самый настоящий, наподобии как в ПЦ - с использованием микросхемы CMOS и отдельным ПЗУ на 16 Кбайт. А так же переделать дешифрацию портов ОЗУ и добавить новые порты расширения ОЗУ - #DFFD и #FDFD (до 1Мб) и #7FFD (до 512Кб), сделать эмуляцию ПЗУ с помощью отдельного статического ОЗУ на 64Кбайта, с возможностью подмены любой из 4-х страниц ПЗУ или хоть всех сразу, и через BIOS можно будет выбирать желаемую конфигурацию.

Предполагаемые функции BIOS:

При старте:

Обязательная проверка исправности портов ОЗУ в пределах 128Кб с выводом на экран инфы, что именно не исправно. При тестировании будет записано по 1 байту в каждую из 8 страниц, при этом для сохранности данных в ОЗУ, эти 8 байт данных будут временно скопированы в CMOS.

Обязательная краткая проверка доступности всех портов расширения ОЗУ - #7FFD (512Кб), #DFFD и #FDFD (1Мб), #1FFD+#7FFD (1Мб, то что реализовано сейчас), при тестировании будут проверяться только по 1-й странице из каждой 128-Кбайтной линейки ОЗУ, т.е. опять будет задействовано не более 8 байт ОЗУ, которые так же будут временно скопированы в CMOS для сохранности данных.

Все результаты тестирования будут храниться в регистрах процессора в сжатом виде.

Далее будет проверка наличия сохранённой конфигурации BIOS в CMOS путём простейшего подсчёта CRC. Если настроек нету (например вынимали батарейку), то, будет запуск быстрого полного теста ОЗУ с предложением зайти в BIOS-Setup,

При запуске быстрого полного теста ОЗУ, будет полное тестирование всех портов расширения ОЗУ (проверяться будут уже все страницы ОЗУ), проверка пересечения областей (#4000 = 5 страница, #8000 = 2 страница), и тестирование исправности самого ОЗУ с его полным обнулением.

После полного теста ОЗУ будет выведено предложение зайти в BIOS-Setup либо продолжить работу в базовой конфигурации (доступно будет только 128Кб ОЗУ).

Если же в CMOSе оказались настройки конфигурации и CRC данных в CMOS совпало, то будет опрошена клавиша "2" или "D" (на случай, если пользователю нужно принудительно зайти в BIOS-Setup, как с обнулением, так и без обнуления ОЗУ).

Если пользователь никаких клавиш не нажал и все настройки BIOS в целости и сохранности, то будет нормальный старт компьютера в соответствии с выбранной конфигурацией.

BIOS-Setup:

Будет содержать несколько пунктов меню:

Установка текущего времени.

Конфигурация ОЗУ:
1 - только 128Кб
2 - порт #7FFD - 512Кб
3 - порты #DFFD и #FDFD - 1024Кб
4 - порты #1FFD + #7FFD - 1024Кб (то что реализовано сейчас)

Конфигурация эмуляции ПЗУ:
1 - включить эмуляцию страницы ПЗУ "GLUK"
2 - включить эмуляцию страницы ПЗУ "TR-DOS
3 - включить эмуляцию страницы ПЗУ "BASIC-128"
4 - включить эмуляцию страницы ПЗУ "BASIC-48"
Однако в этом случае я планирую поддержку именно пентагоновскую версию GLUK, т.е. управление НЕ через порт #1FFD.

Конфигурация RESET: (куда выходить по нажатию RESET)
1 - Меню-128
2 - Бейсик-48
3 - TR-DOS
4 - GLUK
5 - загрузка коммандера с HDD.

Более тщательный ТЕСТ ОЗУ (с проверкой регенерации).

---------- Post added at 14:16 ---------- Previous post was at 14:12 ----------

Quote:

Originally Posted by ZEK (Post 441334)
Никакие пути выдумывать не надо, такой путь есть, и есть такая прошивка (Модификация HeGluk для кай, которая должна в пне 1.4 работать из за совместимости с этим самым каем).

В глюк выходит программно из модифицированной прошивки BASIC 128, глюк работает не из ПЗУ а из ОЗУ он туда при старте распаковывается.

Даже больше эта прошивка знает о том как ограничивать 48к и 128к памяти в пне 1.4. Не стоит все ломать

Т.е. будет достаточно только в BASIC-128 в самом начале добавить опрос клавиши CS, и в случае нажатия включать 3-й бит #1FFD и запускать GLUK.

Дмитрий 30th November 2011 18:15

Quote:

Originally Posted by Northwood (Post 441338)
Т.е. будет достаточно только в BASIC-128 в самом начале добавить опрос клавиши CS, и в случае нажатия включать 3-й бит #1FFD и запускать GLUK.

Лас выкладывал прошивку с подобной возможностью в ветке про настройку KAY-2010. Там при различных комбинациях CS/SS был быстрый переход в TR-DOS, Service. Я на своем Кае, который не доработан до глюка, именно так и запускал свой сервис-ром.

AlexFantasy 2nd December 2011 22:24

1 Attachment(s)
Решил попробовать собрать пару доработок(порт #FD и Пентагоновский INT) на отдельной платке!
По закону подлости немогу опустить плату чуть ниже из-за транзисторного флешера. В связи с этим вопрос по включению дополнительной ИЕ10:
Quote:

Originally Posted by ChipManyak (Post 353197)
Если разговор идёт про ИЕ10 на доп. монтажном поле, то включается она,
вернее уже включена, на 2 ногу подаётся сигнал KSI он обозначен между 6 и 7 ногой DD21. С вывода 11,12, какой по вкусу на частоту моргания, цепляем на вывод 9,10
DD34.3. R11,R12,C3,VT1 не ставить.

Понял только то что нужно выпаять R11,R12,C3,VT1 а дальше непонял...Мона по-подробнее? И какой ёмкости конденсатор около ИЕ10 ставить?

Northwood 3rd December 2011 01:18

Quote:

Originally Posted by AlexFantasy (Post 442067)
Решил попробовать собрать пару доработок(порт #FD и Пентагоновский INT) на отдельной платке!
По закону подлости немогу опустить плату чуть ниже из-за транзисторного флешера. В связи с этим вопрос по включению дополнительной ИЕ10:

Понял только то что нужно выпаять R11,R12,C3,VT1 а дальше непонял...Мона по-подробнее? И какой ёмкости конденсатор около ИЕ10 ставить?

Нужно припаять всего 2 проводка - вход и выход флешера, все остальные дорожки уже разведены ChipManyak-ом.

1-й проводок - сигнал "KSI" (с DD12.2 выв.6) надо подать на выв.2 ИЕ10 (вход флешера).
2-й проводок - выв.11 ИЕ10 надо соединить туда, где был коллектор транзистора VT2, т.е. на вход элемента DD34.3. А можно даже отрезать выход DD34.3, выход флешера в этом случае нужно подать на DD34.4 на выв.12, тогда на плате освободится ещё один лишний элемент И-НЕ.

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

AlexFantasy 3rd December 2011 02:24

Quote:

Originally Posted by Northwood (Post 442132)
Выход флешера в этом случае нужно подать на DD34.4 на выв.12, тогда на плате освободится ещё один лишний элемент И-НЕ.

Вот это меня и интересовало!:)

Quote:

Originally Posted by Northwood (Post 442132)
Конденсатор на макетном поле рядом с ИЕ10 можно вообще не ставить, это самый обычный блокировочный конденсатор на 0.1 мкф, его нужно туда поставить чисто из идеологических соображений

Писец это-ж надо так проглядеть :v2_dizzy_wall:[/QUOTE]

Northwood 8th December 2011 04:13

Хочу вернуться к теме доработки порта #FD.

В этом сообщении я опубликовал схему доработки порта #FD, взятую из журнала Инферно из 9 номера, и привёл модернизацию этой схемы.

Но недавно John North подкинул мне ссылку на другую схему доработки портов расширения памяти, тоже из журнала Инферно, но из 2-го номера.

http://www.zxpress.ru/article.php?id=10296

Данная идея из Инферно-2 просто потрясающая:

При выполнении программы, когда попадается команда 'OUT (#FD),A' или 'IN A,(#FD)', тут же включается блокировка, которая блокирует порт #1FFD и заодно включает мягкую дешифрацию порта #7FFD, превращая его в порт #FD. Как только попадается любая другая команда, блокировка отключается. Это ставит жирную точку в вопросе несовместимости программ, использующих укороченную адресацию к порту #FD с помощью команд 'OUT (#FD),A' и 'IN A,(#FD), и при этом избавляет от необходимости блокировать верхнюю память!

Во-вторых, с некоторой адаптацией эта доработка подходит абсолютно к любому компьютеру Спектрум, имеющим больше 128 Кб ОЗУ.

Я адаптировал эту схему под Пентагон-1024 1.4i, при этом использовал часть из старой схемы, а именно 2 логических элемента ЛЛ1 и ЛИ1, которые переключают жёсткость дешифрации порта '7FFD/FD'. Триггер ТМ2, который в старой схеме задерживал сигнал блокировки, в этот раз переквалифицируется на другую задачу - на включение режима блокировки на время выполнения команд OUT (nn), A и IN A, (nn). Так же добавляется новая микросхема - 1533ЛА2, два инвертора и 1 элемент ЛЛ1.

В принципе новую схему можно применить и совместно с доработкой порта #FD из Инферно-9, но я буду описывать подключение новой схемы совместно с моим вариантом старой доработки порта #FD.

http://s017.radikal.ru/i411/1112/fd/a1dd497f8d1bt.jpg

1. На плате Пентагона-1024 необходимо отрезать дорожку идущую на выв. 9 DD11.3 (ЛЕ1), т.е. отрезать от неё сигнал BLKR, завести этот сигнал на новую схему доработки, а на выв.9 DD11.3 подать сигнал BLKR_NEW с новой схемы.

Если у вас уже сделана доработка порта #FD по схеме из журнала Инферно-9, то 1-й пункт можно пропустить, а вместе с ним и исключить новый логический элемент ЛЛ1, через который проходит сигнал BLKR.

2. Если вы ещё не делали доработку порта #FD ни по какой из старых схем, то нужно ещё отрезать выв.2 DD25.1 (ЛЕ1) и подать туда сигнал 'FD/7FFD' со схемы доработки.

Всё остальное собираем по новой схеме.

Теперь не нужно заходить в Basic-128 и набирать команду OUT 8189,32 для того чтобы работали такие программы как Инсульт-мегадемо, и когда дело дойдёт до использования RAM-диска, эта доработка единственная, которая позволит с него запускать подобные программы.

Теперь из протестированных программ без отключения верхней памяти, с этой доработкой:

Инсульт-мегадемо - идёт на ура без блокировки порта #1FFD !

Test Horror:

Обратите внимание на совокупность порта верхней памяти #1FFD и доступности порта #FD:

http://s017.radikal.ru/i441/1112/49/4e0cbd8a1613t.jpg

Test 4.30

http://s42.radikal.ru/i096/1112/3d/e0a5dbe605f5t.jpg http://s017.radikal.ru/i438/1112/d4/a2199d0387b2t.jpg

RamDoctor 2.0 - уже не зависает и не сбрасывается в самом начале работы, но так и не обнаруживает доступность порта #FD и при тестировании 2-экрана на экран выдаёт цветной коврик, однако при нажатии на любую клавишу продолжает дальше нормально работать.

Мне пришлось немного поломать RamDoctor (извини, Тятин Сергей, но мне пришлось), и всё дело оказалось в двух ошибках программы:

1 - перед тестированием порта #FD, автор программы забыл в регистровую пару BC записать число #7FFD, при этом в BC содержится #0000, после чего идёт сам тест #FD:

LD A,#10
OUT (C),A
INC A
OUT (#FD),A
CP (HL).

В результате ошибки число #10 вместо порта #7FFD пытается отправится в порт #0000, но т.к. дешифрация порта #7FFD у нас жёсткая, то порт просто не срабатывает и тест проваливается. Я добавил перед началом тестирования порта #FD одну команду LD BC,#7FFD, и теперь тест #FD проходит - 'порт доступен'.

2. После окончания тестирования памяти, остаётся включенной самая последняя страница ОЗУ, при которой в порту #1FFD записано число #10. Автор программы забыл выключить назад порт #1FFD и при этом пытается скопировать основной экран в дополнительный, и естественно, вместо 7-й страницы всё это попадает в 15-ю, а 7-я страница продолжает содержать 'коврик', оставшийся после тестирования ОЗУ, который мы и видим на экране.
Для исправления ошибки, после окончания тестирования ОЗУ нужно снова вызвать подпрограмму переключения страниц ОЗУ для включения 0-й страницы.

После исправления этих двух ошибок в RamDoctor-е, получаем следующий результат:

http://i025.radikal.ru/1112/b0/730706fb4c74t.jpg

3. STS 3.3. Теперь эта версия монитора-отладчика запускается без блокировки порта #1FFD, однако почему-то зависает при дисковых операциях. Если всё-таки #1FFD заблокировать командой OUT 8189,32, то STS 3.3 работает полностью нормально.
С данной программой пока ещё не разбирался.

Но пока что ещё не реализованы 2 вещи:

Переключение жёсткая / мягкая дешифрация для чтения из порта #FD.
Переключение жёсткая / мягкая дешифрация для AY.

Пока под вопросом, нужно ли это делать ?

AlexFantasy 8th December 2011 22:32

Northwood, А сигнал D3 не учавствует? http://s017.radikal.ru/i411/1112/fd/a1dd497f8d1b.gif

Northwood 9th December 2011 01:25

Quote:

Originally Posted by AlexFantasy (Post 444295)
Northwood, А сигнал D3 не учавствует? http://s017.radikal.ru/i411/1112/fd/a1dd497f8d1b.gif

Сигнал D3 и не должен участвовать, т.к.
код команды OUT (nn),A - #D3 (1101 0011)
а код команды IN A,(#FD) - #DB (1101 1011)

как видишь, отличаются обе эти команды как раз 3-м битом, поэтому он и не заводится на схему, для того чтобы распознавать сразу обе команды.


All times are GMT +4. The time now is 18:34.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.