PDA

Просмотр полной версии : Скорпион ZS с большим ПЗУ



SMT
16.01.2005, 19:37
есть у кого-нибудь схема включения проф-ПЗУ?
а то непонятно, как страницы переключаются

Neu Animal
17.01.2005, 01:41
Я так понимаю от этого напрямую зависит будет твой эмуль работать с винтом scorpa или нет?!
Если так то давай вместе искать ! Очень надо!

CityAceE
17.01.2005, 04:43
Схема включения тебе ни о чем не скажет, так как она основана на Альтере... Помнится, авторы эмулятора Z80stealth долго бились над раскрытием секрета переключения страниц внутри ПрофПЗУ. Сами не имея реального Скорпиона, они присылали мне короткие программки, которые я запускал на своем Скорпионе, а полученные логи работы этих программ отсылал обратно им. Обращались они и к разработчикам эмулятора RealSpeccy, который первым начал эмуляторвать ПрофПЗУ Скорпиона, однако авторы этого эмулятора не пожелали раскрывать секрета. Я уже не помню как, но секрет переключения страниц ПрофПЗУ всё же был раскрыт и, на сколько я помню, авторы Z80stealth даже поделились этим секретом с общественностью. Правда я уже успел забыть каким именно образом организовано это переключение :(

Если ты действительно тот самый SMT, который автор UnrealSpeccy и у тебя есть желание сделать эмуляцию ПрофПЗУ, то я могу постараться узнать всё, что необходимо для создания подобной эмуляции.

jtn
17.01.2005, 18:21
вот два мнения на проблему (одно из них мое):
= Реально на реальном! (2:5030/827.2) =========================== REAL.SPECCY =
Msg : 1012 of 1019
From : Vassili Klimov 2:5054/37.28 30 Jul 01 00:22:16
To : All 30 Jul 01 01:19:58
Subj : CRC и коммутация ПрофПЗУ в скорпе
================================================== =============================
у здравствуй, All !

Yahoo!!!!!!!! Убив несколько часов на изучение ПрофПЗУ довожу до вашего
сведения общий принцип управления. Итак, начнем с описания: ППЗУ 512кб состоит
из 2х половинок по 256кб никоим образом не связанных с друг другом и
переключающихся тумблером;). Соответственно в каждой из этих частей полностью
содержится система (по моим оценкам она занимает 70-80кб).
Далее, каждая часть побита на блоки по 64кб. Переключение внутри блоков банков
по 16кб стандартное: если в 1FFD бит D1=1, то включено ПЗУ монитора (при любом
значении бита D4 7FFD), иначе если D4=1 (7FFD), то басик48, если D4=0, то
басик128. Чтобы, включить пзу трдоса нужно при включенном басике48 сделать
JP #3DXX.
Теперь о переключении блоков. Сначала врубается область теневика (D1=1,
1FFD). Пусть номер блока (0-3) задан в А, тогда у МОА видим следущее:
ld hl,#0110:add a,l:ld l,a:jr nc,m1:inc h
m1 ld l,(hl):ld l,(hl):ret
в строке с m1 видим 2 ключевые команды ld l,(hl)! Первая просто читает значение
из таблицы (всего там их 4 штуки: #00,#04,#08,#0c), а вторая врубает блок.
Вроде все тривиально, однако непонятно зачем нужна таблица? Причем в каждом из
блоков таблицы разные: используются те же значения 0,4,8,c, но порядок их
расположения другой! Также отмечу, что ячейка #0101 используется для
идентификации текущего блока. Пример: запомнили число из #0101, включили
какой-нибудь блок, выполнили какие-либо операции, для восстановления
предыдущего блока использовали запомненное значение и т.п.


= Кул-кодеры на спектруме (500:812/1.507) =========================== CODE.ZX =
Msg : 195 of 195
From : Vlad Sotnikov 500:812/8.9 21 Mar 01 21:30:50
To : All 23 Mar 01 00:04:06
Subj : Переключение страниц ПрофПЗУ.
================================================== =============================
Привет, All!

Я подготовил сабж для автора эмулятора Z80Stealt.
Однако я подумал, что она будет небезинтересна и
реальщикам, поскольку до сих пор о данной проблеме
ходят лишь слухи и не существует мало-мальски
достоверной информации. Поэтому я надеюсь, что в
ходе обсуждения, проблема переключения страниц
ПрофПЗУ более-менее прояснится.


----------------- mail begin here --------------------

Извини, что отвечаю тебе так поздно - признаться, твоя
просьба заставила меня достаточно помучаться, чтобы выяснить,
как же все-таки переключаются страницы в ПрофПЗУ. Вначале я
начал копать эмулятор MOA SPM. И напоролся там на команду,
названную им SPM. Она имеет код #ED,#10 - и мне потребовалось
немного времени, чтобы понять, что этот способ не имеет ничего
общего с тем, как переключаются страницы на реальном спеке. А
на реальном Скорпионе все происходит так:

Известно, что для выполнения подпрограмм в дополнительных
страницах используется команда RST #30, которая вызывается при
включенном ПЗУ Монитора и 8-й странице. При этом она имеет
следующий формат:
RST #30
DW адрес подпрограммы
DB номер страницы (0...15)
...

После выполнения подпрограммы снова включается основная
страница монитора, и 8-я банка памяти. Hомера страниц имеют
следующие соответствия:

0 - 128 ПЗУ.
1 - 48 ПЗУ.
2 - Монитор (основная страница)
3 - TR-DOS.
...

С 4 по 15 - дополнительные страницы Монитора. Hо это все
внешний уровень. Чтобы узнать, что же происходит на самом деле,
я последовал за RST #30. Там управление передается в 8-ю
страницу, и помещается собственно подпрограмма переключения
страниц ПЗУ, причем очень запутанная. При желании можно ее
посмотреть, но вот тот конечный результат, который я получил из
анализа этого путанного кода MOA.

Вся память ПрофПЗУ делится на определенное количество
сегментов, в каждом из которых находится по 4 страницы. В
ПрофПЗУ 27010 таких сегментов 2, в 27020 - 4 и в Пзу 27040
вероятно тоже 4 сегмента, но основные страницы там
продублированы. Однако это ни что иное, как догадка.
Я копал ПЗУ 27020, и поэтому описываю имеющиеся в нем 4
сегмента. Как все происходит в других ПЗУ, я точно не знаю.
Внутри каждого сегмента страницы переключаются стандартным для
них способом - через порты #1FFD,#7FFD и обращением к адресу
#3D30 (sic у MOA!) для 3-й страницы сегмента. То есть,
допустим, 7-я страница ПЗУ, которой соответствует 3-я страница
1-го сегмента, включается помещением адреса подпрограммы на
стек и обращением к ней по адресу #3D30, где у нее стоит
команда RET. И, наконец, самое главное: каким образом
происходит переключение сегментов. Для этого необходимо считать
значение из определенного участка памяти при включенном ПЗУ
Монитора, т.е. при установленном 1-м бите порта #1FFD. Вот
адреса для этих сегментов:

0 - #0100
1 - #010C
2 - #0108
3 - #0104

Старшее значение - #01. Младшие значения адреса в памяти для
переключения сегментов находятся опять-таки в основной странице
Монитора по адресу #0110. Для получения младшего значения
адреса необходимо к числу #0110 прибавить номер сегмента. Этот
абзац я написал для того, чтоб ты мог посмотреть, какие адреса
соответствуют сегментам в других версиях ПрофПЗУ (27010 и
27040). Хочу заметить, что прошивка ПрофПЗУ 27040 (512К),
которая ходит по сети, скорее всего битая. Однако ты вроде бы
мне об этом уже писал.

Как это не пародоксально, но такое переключение страниц -
факт. Убедится в этом можно, написав такую подпрограммку:

DI
LD BC,#1FFD
LD A,#12
OUT (C),A

LD A,(#010C)

LD BC,#1FFD
XOR A
OUT (C),A
EI
RET

И компьютер уходит в ступор. Теперь что касается прошивки
ПЗУ: к сожалению, у меня ее нет. Hо для эмулятора я бы
порекомендовал использовать прошивку ПрофПЗУ 27010, поскольку
все эти дополнительные программы, сидящие в ROM памяти, страшно
допотопные и никому на фиг не нужны - никто из реальщиков
практически никогда их не запускает. В принципе прошивку можно
выдернуть программно с реального спека таким образом:


ORG #7000

DI
LD BC,#1FFD
LD A,#12
OUT (C),A

RST #30
DW COPY_PAGE
DB страница.

LD BC,#1FFD
XOR A
OUT (C),A
RET

COPY_PAGE LD HL,0
LD DE,#8000
LD BC,#4000
LDIR : RET

Подставляем номера страниц и снимаем их из ОЗУ. Hо здесь есть
маленькая проблема: каждая четвертая страница сегмента
(3,7,11,15). Дело в том, что для спека это страницы TR-DOS'а, и
в случае, если выполняемый код выходит за пределы ПЗУ, то
включается "ПЗУ 48" - 1-я страница сегмента. И если 3-ю страницу
взять очень легко (стандартный TR-DOS), то страницы 7,11 и 15
вызывают затруднение. Однако в случае эмулирования прошивки
27010 нам потребуется лишь 7-я страница.

Вот, собственно, и все. Если возникнут какие-либо вопросы,
пиши. Обязательно напиши, как - помогла тебе моя информация или
ты все это уже знал? И напиши, удалось ли тебе вытащить 7-ю
страницу. Если нет, то я что-нибудь придумаю.


Счастливо, Влад (Vega, ex Style Group).

--------------------- mail finished here ---------------------


С уважением, Vega.

--- Dos-Navigator_v1.50
* Origin: SPbZXNet'2001 (500:812/8.9)

SMT
17.01.2005, 18:34
тепер расскажу, что сам за сегодня накопал...

Z80S переключает банки по команде ld l,(hl) именно по адресу #E4B4. берет страницу из регистра L. то есть как-то подозрительно и слишком искуственно

ещё собираюсь дизассемблировать real spectrum, там нет такого маразма, как этот вшитый адрес (да и вообще он славится точностью эмуляции железа). если там подтвердится чтение из специальных адресов #1xx, буду значит так и делать

следующий вопрос - где взять большие прошивки, дайте ссылок. у меня есть только проф-ПЗУ на 128кб

jtn
17.01.2005, 19:06
2SMT: по другому и быть не может, поскольку профпзу вставляется в платку, на которой Альтера, а сама плата вставляется в панельку обычного ПЗУ. Т.е. сигналы выбора старших банок могут формироваться только из частично адресной шины (a0-a13), шины данных, выбора ПЗУ и сигналов переключения банок внутри 64к.

p.s. а нельзя ли сделать специальную модификацию (версию) Unreal'а для меня? (мне нужно изменений совсем чуть, но сам вряд ли скомпилю...)

SMT
17.01.2005, 22:29
посмотрим... чего изменить?

SMT
18.01.2005, 18:09
переключение окон выполняется при включенной системной странице
(независимо, включение через out[#1FFD],2 или jp #3Dxx+out[#7FFD],0)

дополнительно проверяется #7FFD bit 0 = 0
переключение срабатывает при чтении по адресам #0104,#0108,#010C

в таблице:
адрес чтения/старое значение окна => новое значение окна | считанный байт

0 1 2 3 0 1 2 3
#0100 - - - - 00 0C ?? ??
#0104 3 3 3 2 0C 00 ?? ??
#0108 2 2 0 1 08 08 ?? ??
#010C 1 0 1 0 04 04 ?? ??

прочерк означает, что переключения не происходит вообще,
вопросы - нет данных (у меня нет ПЗУ больше 128k)

странное поведение RS: если в ПЗУ 1 банк таблица выглядит так

0 1 2 3
#0100 - - - -
#0104 - - - -
#0108 - - 0 1
#010C 1 0 1 0

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

это можно объяснить только тем, что у RAMSOFT не бывает ПЗУ 256k, только 128 или сразу 512 (как это соотносится с действительностью, были ли прошивки на 256кб?)

вопрос - что такое CMOS и NVRAM в SMUC (неохота всё из RS выдирать, совсем не факт, что там правильно)

и всё-таки, если есть схема SMUC, дайте ссылку. хотя бы буду знать, какие сигналы используются и что выходит на IDE (подключены ли INTRQ и CS1)

SMT
18.01.2005, 18:12
у кого есть настоящий SMUC? проверьте, действительно ли после
out (7FFD),1 окна ПРОФ-ПЗУ не переключаются

и кто такой GMX? это только скорпионовский зверь?

Neu Animal
18.01.2005, 19:39
Да GMX это действительно только Скорпионовская примочка.
По иронии судьбы у меня есть прошивка большой ПрфПЗУ .
ирония в том что она у меня на скорповом винте а скорп приказал жить долго :confused:

jtn
18.01.2005, 21:21
jp #3Dxx+out[#7FFD],0)
объясните как это работает? имхо нонсенс


дополнительно проверяется #7FFD bit 0 = 0
не может этого быть


вопрос - что такое CMOS и NVRAM в SMUC (неохота всё из RS выдирать, совсем не факт, что там правильно)
ну Cmos понятно, тот же Dallas/Ви1, только доступ и порты другие (надо у П.Кисляка спрашивать как RC с ним работает). NVRAM - ячейка энергонезависимой памяти (в ней хранятся признаки виртуальности драйвов)


и всё-таки, если есть схема SMUC, дайте ссылку. хотя бы буду знать, какие сигналы используются и что выходит на IDE (подключены ли INTRQ и CS1)
схему видел давно (у Siril/4D), она вроде как в комплекте поставлялась, но толку от нее нуль, т.к. там Альтера, а прошивка засекречена

SMT
18.01.2005, 21:29
можно подключить винт к пЦ и под эмулятором считать винт

SMT
18.01.2005, 22:08
объясните как это работает? имхо нонсенс
очень просто. страница ПЗУ выбирается сигналами DOS и битом 4 #7FFD.
DOS включается при переходе на #3Dxx и при включенном бите 4 #7FFD.
но потом, уже внутри DOS можно сделать out(#7FFD),0. триггер DOS не сбросится, включится системная страница. этот трюк работает также на пентагоне и, я думаю, на многих других моделях, где есть системная страница


дополнительно проверяется #7FFD bit 0 = 0
не может этого быть

тем не менее, вскрытие RS показало (тьфу, дизассемблирование то есть ;), что при #7FFD bit 0 = 1 переключение не происходит

схема нужна. не думаю, что на альтеру заходят вообще все адресные биты. и детали соединения с IDE тоже нужны

Neu Animal
20.01.2005, 00:29
Во есть нашёл ! Прошивка ПрофПЗУ 512 kb

Neu Animal
20.01.2005, 00:31
О схема есть у меня ! Завтра заберу у человека отсканирую и зашлю! :)

SMT
22.01.2005, 09:27
если SMUC ставится в панельку ПЗУ, то откуда оно берёт сигналы IORQ, M1 и WR, необходимые для организации портов?

CityAceE
22.01.2005, 09:42
если SMUC ставится в панельку ПЗУ, то откуда оно берёт сигналы IORQ, M1 и WR, необходимые для организации портов?
Нет, SMUC подключается к системной шине, а вот ПрофПЗУ через панельку с Альтерой действительно ставится вместо стандартного ПЗУ.

SMT
23.01.2005, 21:10
О схема есть у меня ! Завтра заберу у человека отсканирую и зашлю! :)
если в панельку ПЗУ ничего кроме альтеры с пзу не вставляется, то её не надо. интересно. то есть, получается, smuc состоит из двух частей, что-ли? может, фотография есть, чтобы чипы было видно?

поддержку пзу я сделал, но толку от этого никакого, потому что кроме пзу там ещё много железа (поиск винта только затягивает загрузку секунд на 5, и это в MAX SPEED)

Neu Animal
23.01.2005, 22:14
если в панельку ПЗУ ничего кроме альтеры с пзу не вставляется, то её не надо. интересно. то есть, получается, smuc состоит из двух частей, что-ли? может, фотография есть, чтобы чипы было видно?

поддержку пзу я сделал, но толку от этого никакого, потому что кроме пзу там ещё много железа (поиск винта только затягивает загрузку секунд на 5, и это в MAX SPEED)
Вот лови что есть :)

Neu Animal
23.01.2005, 22:16
На самом то деле их (ALTERA) 2штуки стоит одна на пзу другая на Smuc контроллере

Neu Animal
24.01.2005, 01:15
О схема есть у меня ! Завтра заберу у человека отсканирую и зашлю! :)
Извиняй за задержку но человек распологает а.....
Короче жду со дня на день должны заслать! :(

Spectre
30.01.2005, 21:07
2SMT:
Я когда делал поддержку CMOS часов, которые находятся на SMUC'е, искал по SMUC'у любую доку. Нашел описания ПрофПЗУ, NVRAM, GMX, SMUC. Все сложил в один архив, посмотри.

Neu Animal
31.01.2005, 21:35
А вот и схема :)

SMT
25.02.2005, 21:33
А вот и схема :)
ха! лежит тут уже месяц, а я не вижу....

зашёл-то в эту тему, чтобы сказать:

http://scorpion.ru/spectrum/hard/kontroller_SMUC.htm
большая микросхема - скорее всего, 8259 и она не является обязательной компонентой. пустая панелька - скорее всего под часы. между ней и ISA-разъёмом виднеется 1533ТМ9. NVRAM я не опознал. остаётся ещё 7 неизвестных корпусов мелкой логики и, возможно, элементы на обратной стороне платы (ряд отверстий
под isa-разъёмом и под панелькой cmos rtc подсказывают мне, что они есть). похоже, никаких плм, пзу и прочих труднорасшифровываемых компонент.

Neu Animal
25.02.2005, 21:39
ха! лежит тут уже месяц, а я не вижу....

зашёл-то в эту тему, чтобы сказать:

Ну вот блин а я старался :)

jtn
26.02.2005, 00:54
если не ошибаюсь NVRAM с последовательным доступом (на схеме легко найти), а в параллельный переводит altera

SMT
26.02.2005, 02:09
Ну вот блин а я старался :)
да, smuc ide значит появиться не в следующей, а в послеследующей версии :)

Neu Animal
26.02.2005, 02:11
да, smuc ide значит появиться не в следующей, а в послеследующей версии :)


И прошу всех запомнить эти слова!
;)

SMT
26.02.2005, 07:59
И прошу всех запомнитьу тебя какие-то волшебные настройки в профиле! титульная страница, раздел "железо" не подсвечен знаком "Есть новые сообщения", однако "последнее сообщение" - твоё. кликаю железо - эта тема не выделяется жирным :(

Neu Animal
26.02.2005, 20:40
у тебя какие-то волшебные настройки в профиле! титульная страница, раздел "железо" не подсвечен знаком "Есть новые сообщения", однако "последнее сообщение" - твоё. кликаю железо - эта тема не выделяется жирным :(


Без комментариев :D

deathsoft
23.05.2005, 03:45
У меня есть дамп ПЗУ 27020 снятый программатором с моего Скорпиона (Scorpion ZS256 (который был самый первый вариант) турбированый), это ПЗУ не работает в эмуляторе Unreal Spectrum 0.28b, видимо из за того, что в диспетчере страниц поставлявшемся с этим ПЗУ используется другой алгоритм переключения страниц. Это было одно из первых ПРОФ-ПЗУ, когда платы SMUC еще не было, в свободной части ПЗУ располагался RAM-Disk с программами. ПЗУ было куплено в фирме Скорпион 29.07.95. Диспетчер ПЗУ выполнен на простейшей ПЛМ типа PAL22V10 (к сожалению маркировка стерта).

Если этот дамп представляет интерес, пишите, я его пришлю.
Сообщение адресуется в первую очередь автору эмулятора Unreal Spectrum.

SMT
23.05.2005, 07:25
интересно для истории. если опубликуешь здесь, может, общими силами раскроем алгоритм переключения страниц

deathsoft
24.05.2005, 01:03
Для распаковки нужен rar 2.90 и выше

deathsoft
24.05.2005, 01:10
В принципе алгоритм работы диспетчера можно определить чисто аппаратным методом:
Подать на линии адреса коды от 0000 до FFFF (16бит), и сигнал чтения, а на выходе диспетчера (колодка в которую втыкается ПРОФ-ПЗУ) фиксировать аномалии в адресах (когда при чтении с определенного входного адреса выходной адрес ему не соответствует). В результате получим небольшую таблицу, т.к. таких аномалий будет немного. Такое устройство можно сделать например на обычном LPT порте компа и простейшей альтере или нескольких регистрах типа 1533ИР35 или аналогичных. Альтера предпочтительней с точки зрения разработки (написал прогу на AHDL и все готово), но у нее минус (планарный корпус, паять не удобно).

deathsoft
24.05.2005, 01:17
Кстати никто не пытался дизасмить/отлаживать код монитора от скорпа? Я так бегло его посмотрел под UnrealSpectrum в дебагере, мне показалось, что он там весь зашифрован и динамически расшифровывается/распаковывается в 8й банк ОЗУ. Интересно бы было расшифровать этот монитор и продизасмить его в Ida.

Кстати, у меня почемуто в UnrealSpectrum 0.28b стал виснуть 128TR-DOS в эмуляции скорпа., в предыдущих версиях все было ok.

Еще в .ini файле Unreal нашел недокументированое значение для расширеной памяти PROFSCORP (через Gui выбрать было можно, а в коменте не было) пришлось искать в exe'шнике

SAM style
24.05.2005, 01:50
Кстати никто не пытался дизасмить/отлаживать код монитора от скорпа? Я так бегло его посмотрел под UnrealSpectrum в дебагере, мне показалось, что он там весь зашифрован и динамически расшифровывается/распаковывается в 8й банк ОЗУ.

Я пытался (но далеко это не зашло). вся лубуда, которая выскакивает на скорпионовском magic пользует 8-й банк для хранения данных и обращениям к TRDOS (там кстати где-то хранится 256 байт идентефикатора, если их попортить, magic даст глюк), но само по большей части работает из ПЗУ (кажись, out #1ffd,#02 включает сервис-ПЗУ).


Кстати, у меня почемуто в UnrealSpectrum 0.28b стал виснуть 128TR-DOS в эмуляции скорпа., в предыдущих версиях все было ok

TRDOS в скорпах чуток не такой как в 128-м спеке (потому как тот же magic делает call102 в dos, а какой magic в скорпах мы знаем). Когда-то я там нашел и in a,(#ff):ret и in a,(c):ret, но потом оказалось что в других TRDOS-ах такого нет и все что я писал успешно висло

SMT
24.05.2005, 18:22
логика переключения страниц осталась прежней. причина в том, что проверяются какие-то аппаратные характеристики компьютера с использованием неизвестной команды #ED70 и прерываний. чтобы запустить ПЗУ, поставьте брейк на #0272 и запишите в DE #FC9D. какую именно характеристику проверяют, я не понял. если патчить, то необходимо отключить и проверку чексуммы ПЗУ.

кроме того, адрес порта состояния HDD - #F7BE вместо #FFBE, хотя на схеме smuc A11=1 - условие выборки контроллера. может, существовали другие схемы smuc?

D1 порта 1FFD раньше открывал порты tr-dos. на той невнятной схеме, что у меня есть в текстовом режиме (там потеряна часть сигналов), похоже, не открываются порты DOS, и я переделал эмуляцию. если есть другая схема скорпиона, или соображения по поводу блокировки портов DOS, выкладывайте

jtn
24.05.2005, 19:45
логика переключения страниц осталась прежней. причина в том, что проверяются какие-то аппаратные характеристики компьютера с использованием неизвестной команды #ED70 и прерываний.
есть подозрение, что это связано с четнием порта #FF (не существующего)

lvd
24.05.2005, 22:01
логика переключения страниц осталась прежней. причина в том, что проверяются какие-то аппаратные характеристики компьютера с использованием неизвестной команды #ED70 и прерываний.


Вполне себе известная команда. В книжке "мпк Z80", неоднократно мною тут рекламируемой, эта команда называется INF (работает как любая IN reg,(C), но влияет только на флаги).

А по поводу неизвестных команд в унреале - их есть. Вместо add a,reg пишутся неизвестые науке add reg, то же и с sbc a,reg. Мож надо исправить? =)

SMT
24.05.2005, 22:21
не удастся запустить ПЗУ без патча - ну и пусть. а что насчёт схемы скорпиона, отличной от той, что на VT?


А по поводу неизвестных команд в унреале - их есть ... Мож надо исправить? мне унифицированный вариант больше нравится

Ronin
24.05.2005, 23:15
В книжке "мпк Z80", неоднократно мною тут рекламируемой, эта команда называется INF (работает как любая IN reg,(C), но влияет только на флаги).

вы будете смеяться, но эта команда есть и в фирменной доке от Zilog :)

deathsoft
25.05.2005, 02:14
У меня есть схема скорпа на бумаге (схема НПО Графика "М", которая у С. Зонова в ларьке продавалась), есть схема SMUC скачаная с какогото сайта в pdf формате (отсканированная книжка по SMUC) если нужно могу запостить. Схема скорпа которая ходила в инете глючная, я это определил практически сразу по сигналам выборки ПЗУ и DOS (там совершенно неверная логика), и сравнив их с печатной схемой (на которой этих ошибок нету)

deathsoft
25.05.2005, 02:18
TRDOS в скорпах чуток не такой как в 128-м спеке (потому как тот же magic делает call102 в dos, а какой magic в скорпах мы знаем). Когда-то я там нашел и in a,(#ff):ret и in a,(c):ret, но потом оказалось что в других TRDOS-ах такого нет и все что я писал успешно висло[/QUOTE]

Это я все знаю, но у меня в предыдущем Unreal скорповый TRDOS128 (пункт меню такой) прекрасно работал, и стал глючить только в версии эмулятора 0.28b

deathsoft
25.05.2005, 02:21
логика переключения страниц осталась прежней. причина в том, что проверяются какие-то аппаратные характеристики компьютера с использованием неизвестной команды #ED70 и прерываний. чтобы запустить ПЗУ, поставьте брейк на #0272 и запишите в DE #FC9D. какую именно характеристику проверяют, я не понял. если патчить, то необходимо отключить и проверку чексуммы ПЗУ.


Это про мой образ ПЗУ речь идет? Если да, то в этом скорпе не было SMUC, это был самый первый скорп, в котором впоследствии делали доработку Turbo и установку ПРОФ-ПЗУ, все делалось в ларьке у С. Зонова

deathsoft
25.05.2005, 02:33
Это про мой образ ПЗУ речь идет? Если да, то в этом скорпе не было SMUC, это был самый первый скорп, в котором впоследствии делали доработку Turbo и установку ПРОФ-ПЗУ, все делалось в ларьке у С. Зонова

Проверил запуск ПЗУ по вышеизложеной методике, все прошло, это ПЗУ видимо было расчитано еще на какой то прототип SMUC, поскольку я вспомнил, что в документации на это ПРОФ-ПЗУ упоминалось про плату с поддержкой CMOS и в дальнейшем про поддержку HDD, но платы тогда в продаже не было версия этого ПРОФ-ПЗУ 3.2a (посмотрел в мониторе).

Кстати, почему не виден RAM-DISK?

deathsoft
25.05.2005, 02:55
Вот инфа про ундоки z80 и команду #ED70
http://www.z80.info/z80info.htm

deathsoft
25.05.2005, 03:29
Нашел еще один образ ПЗУ, который не работает под Unreal:
Scorpion ZS-256 TURBO+ SMUC V.4.02 // http://www.zxspectrum.it/_SC.htm
похоже, что это неПРОФ-ПЗУ с поддержкой SMUC (объем ПЗУ 128Кб), т.ч. по идее оно должно работать через тот же диспетчер что и ПРОФ-ПЗУ, но в нем видимо отсутствует программа "анализатор"

SMT
25.05.2005, 07:30
вы будете смеяться, но эта команда есть и в фирменной доке от Zilogпро команду понятно, а кто-нибудь смотрел цикл выше 0272 в этом пзу. он короткий, но как считается DE, есть соображения?


есть схема скорпа на бумаге (схема НПО Графика "М", которая у С. Зонова в ларьке продавалась), есть схема SMUC скачаная с какогото сайта в pdf формате (отсканированная книжка по SMUC) если нужно могу запоститьсхем разных смуков достаточно. а сканированная схема скорпа, я думаю, будет неразборчивой


Схема скорпа которая ходила в инете глючная, я это определил практически сразу по сигналам выборки ПЗУ и DOS (там совершенно неверная логика), и сравнив их с печатной схемой (на которой этих ошибок нету)
посмотри, куда идёт RDROM0, на моей схеме он потерян, висит в воздухе


Это я все знаю, но у меня в предыдущем Unreal скорповый TRDOS128 (пункт меню такой) прекрасно работал, и стал глючить только в версии эмулятора 0.28b
я могу только предположить, что это из-за того, что D1 порта 1FFD больше не открывает порты DOS. так я сделал потому, что на той глючной схеме, которую я видел, этот бит только включает ПЗУ, на дешифрацию портов никакого влияния не оказывает


Нашел еще один образ ПЗУ, который не работает под Unreal:
Scorpion ZS-256 TURBO+ SMUC V.4.02 похоже, что это неПРОФ-ПЗУ
"проф" - это значит, на альтере? тогда при размере больше 64кб других вариатов для скорпа я не знаю. скачаю, посмотрю

deathsoft
25.05.2005, 14:19
схем разных смуков достаточно. а сканированная схема скорпа, я думаю, будет неразборчивой

Это опять же как сканировать, я могу и в 2400dpi отсканировать, и все будет идеально разборчиво



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

"проф" это значит, что в ПЗУ есть профессиональное расширение монитора (форт подобный язык программирования), а все ПЗУ >64КБ подключаются через внешний диспетчер на альтере (но там может не быть этой форт системы).

deathsoft
25.05.2005, 18:57
посмотри, куда идёт RDROM0, на моей схеме он потерян, висит в воздухе

У меня на схеме он идет с выхода D57.2 (11) на вход OE D29 (22) и на вход Vpp D30 (1). D29 и D30 это 2 микрухи 27128, но в скорпах они никогда не ставились, вместо них ставилась одна 27256.
Эта честь схемы нарисована верно и на схеме скачаной с инета (от некого trident 22.10.2003). Но в другой части trident'овской схемы есть ошибки (т.к. эта схема не сканированая, а нарисованая в bmp из какогото редактора схем)

deathsoft
25.05.2005, 19:27
Схему скорпа от трайдента я подправил в соотвсетствии со своей бумажной схемой (возможно не все исправил), эта схема в rar архиве занимает всего 50Кб, т.ч. если интересно могу запостить

SMT
25.05.2005, 20:44
конкретно по версии 4.02 с zxspectrum.it скажу, что переключение банков ПЗУ там происходит по #ED10. я слышал, существовал эмулятор проф-скорпа by MOA, который именно так переключал ПЗУ, чтобы никто через эмулятор не раскрыл секрет альтеры. то есть эта прошивка не для железного спектрума


занимает всего 50Кб, т.ч. если интересно могу запоститьда, нужно

deathsoft
25.05.2005, 23:00
конкретно по версии 4.02 с zxspectrum.it скажу, что переключение банков ПЗУ там происходит по #ED10. я слышал, существовал эмулятор проф-скорпа by MOA, который именно так переключал ПЗУ, чтобы никто через эмулятор не раскрыл секрет альтеры. то есть эта прошивка не для железного спектрума

Тогда вопрос с этой прошивкой снимается с рассмотрения, т.к. она для эмулятора MOA (я его когда то смотрел, и у МОА действительно было написано, что прошивка отличается от оригинальной)

deathsoft
25.05.2005, 23:03
Схема скорпа от трайдента (исправленая мною).

А вот, нашел еще одну схему, но уже от SC 256 Turbo+ образца 1996года
http://mr-linker.narod.ru/sheme_zx.html

SMT
26.05.2005, 07:12
оказывается, у меня совсем другая схема, вот:
(c)Arc/RLDG (2:5052/22.13) Y-Ola'2000 ╔═════════════════════════════════════════════════ ══╗
SCORPION ZS256 ┌────────────────────────────────────────14.0 ║ 10mk 10k ║
│ ┌───────────────────────/ТИ║ +┌────┬───███───┬──o+5v ║
│ │ ┌──────────────────────ТИ║ ─┴─ │ │ ║
ZQ1 14.0Mhz │ +5v D2.1 │ │ +5v D2.2 ║ ─┬─ ├───┤>├───┤ ┌──┤ ║
│ o ┌─┬──┐ │ │ o ┌─┬──┐ /RAS║ ─┴─ │ 11│ D20 │29 ║
┌───────┤█├───────┤ ├───1oR│ Q├5────┤ ├──13oR│ Q├9──────────║ │ ┌────┴─┬───┬─┴────┐ ║
│ D1.2 D1.3 │ │ ├─┤ │ │ │ │ ├─┤ │ ║/RES──────┴──26o/RES │CPU│ A0 ├30─────────────A0║
│ ┌─┐ ┌─┐ ├───────2/C│ │ │ └─────12/C│ │ ║ ├──────┤Z80│ A1 ├31─────────────A1║
├──3┤1o4─┬─5┤1o6──┤ ┌─────3┤D│ │ │ ┌─────11┤D│ │ ║/NMI─────────17o/NMI │ │ A2 ├32─────────────A2║
│ └─┘ │ └─┘ │ │ │ ├─┤ │ │ │ │ ├─┤ │ RAS║/BUSRQ───────25o/BUSRQ│ │ A3 ├33─────────────A3║
│ │ │ │ └───4/S│ Qo6──┤ │ └──10oS│ Qo8──███─┬───║ ├──────┤ │ A4 ├34─────────────A4║
└───███──┴──███───┘ │ └─┴──┘ │ │ └─┴──┘ 33 │ ║/RAS──────────6┤ CLC │ │ A5 ├35─────────────A5║
560 560 │ │ │ ─┴─ ║/INT─────────16o INT │ │ A6 ├36─────────────A6║
┌─────────────────┴───────────────┘ │ 470 ─┬─ ║/WAIT────────24o WAIT │ │ A7 ├37─────────────A7║
│ D3 ┌─────────────────┘ ─┴─ ║/MREQ────────19o MREQ │ │ A8 ├38─────────────A8║
│ ┌──┬─┬──┐ │ ┌─────────────────/BORDER║/IORQ────────20o IORQ │ │ A9 ├39─────────────A9║
└─────5/+1│C│Q0├3─┴─H0║ D13.2 │ D31.1 ┌─────────────H2║/RD──────────21o RD │ │ A10 ├40────────────A10║
+5v ├──┤T│Q1├2───H1║ ┌─┐ │ ┌─┐ │ D14.3 ║/WR──────────22o WR │ │ A11 ├1─────────────A11║
o┬───15┤D0│2│Q2├6───H2║/ВС───4┤&├6──┴─13┤&│ │ ┌─┐ ║ ├──────┤ │ A12 ├2─────────────A12║
├────1┤D1│ │Q3├7───H3║/ВК───5┤ │ ┌────1┤ │ └───9┤1├8───/SCR║D0───────────14┤ D0 │ │ A13 ├3─────────────A13║
├───10┤D2│ ├──┤ ║ └─┘ │ ┌──2┤ o12─┬─10┤ │ ║D1───────────15┤ D1 │ │ A14 ├4─────────────A14║
├────9┤D3│ │ │ ║H1─────────┘ │ └─┘ │ └─┘ ║D2───────────12┤ D2 │ │ A15 ├5─────────────A15║
│ ├──┤ │ │ ║H0───────────┤ D12.2 │ D13.3 ║D3────────────8┤ D3 │ ├──────┤ ║
│ ┌─11┤L │ │ │ ║ D1.1 │ ┌─┐ │ ┌─┐ ║D4────────────7┤ D4 │ │ M1 o27────────────/M1║
├───14┤R │ │ │ ║ ┌─┐ └──5┤&│ └─10┤&├8───/CAS║D5────────────9┤ D5 │ │ RFSH o28──────────/RFSH║
│ │ ├──┤ │ │ ║H1────1┤1o2──┬──4┤ ├6──┬──9┤ │ ║D6───────────10┤ D6 │ │ HALT o18──────────/HALT║
└────4/-1│ │ЄFo12─┐ ║ └─┘ │ └─┘ │ └─┘ ║D7───────────13┤ D7 │ │ BUSAKo25─────────/BUSAK║
─┴─ └──┴─┴──┘ │ ║/H1──────────┘ └────────/WRBUF║ └──────┴───┴──────┘ ║
│ ║H7───────────────────────┐ D31.2 ║ ║
┌──────────────────┘ ║H6─────────────┐ D1.3 │ ┌─┐ ║/H1───────────────────────────┐ ║
│ D4 ║ D8.1 │ ┌─┐ └──4┤&│ ║RAS─────────────────────────┐ │ D9.2 ║
│ ┌──┬─┬──┐ ║ +5v ┌─┬──┐ └─11┤1o12────5┤ o6──/CC║D/M───────────────┐ D66.2 │ │ ┌─┬──┐ ║
└─────5/+1│C│Q0├3───H4║ o┬──1oR│ Q├5──┐ └─┘ ┌──3┤ │ ║/MREQ───────────┐ │ ┌─┐ │ └──13oR│ Q├9 ║
+5v ├──┤T│Q1├2───H5║ │ ├─┤ │ │ ┌──────┘ └─┘ ║ D12.4 │ └──9┤1│ │ ├─┤ │ ║
o┬───15┤D0│2│Q2├6───H6║ ┌────2/C│ │ │ │ ║ ┌─┐ └───10┤ │ └────12/C│ │ ║
├────1┤D1│ │Q3├7───H7║ │ └──3┤D│ │ │ │ ┌─────────────H2║/RD─────12┤&o11─────11┤ o9───────11┤D│ │ ║
│ ┌─10┤D2│ ├──┤ ║ │ ├─┤ │ │ │ │ D1.4 ║/RFSH───13┤ │ └─┘ ├─┤ │ ║
│ ├──9┤D3│ │ │ ┌────┘ ┌──4oR│ Qo6────┘ │ ┌─┐ ║ └─┘ 10oS│ Qo8──────/WE║
│ │ ├──┤ │ │ │ ║ │ └─┴──┘ │ └───9┤1o8────/H2║ └─┴──┘ ║
┌──────11┤L │ │ │ │┌─────┴────────────┘ └─┘ ║/WR─────────────────────────┐ D10.4 ║
│ │ ├─14┤R │ │ │ ││ ║ D12.3 D8.2 ║ D55 │ ┌─┐ ║
│ │ │ ├──┤ │ │ ││ ║ ┌─┐ +5v ┌─┬──┐ ║ ┌──┬─┬──┐ ┌──────12┤1o13──────/PRIN║
│ └────4/-1│ │ЄFo12─┤│ ║V6───10┤&│ o┬─13oR│ Q├9──────/BK║A0───────1┤X0│D│ 1o14─────┘ ├────11┤ │ ║
│ ─┴─ └──┴─┴──┘ ││ ║V7────9┤ o8───┐ │ ├─┤ │ ║A1───────2┤X1│C│ 2o13 │ └─┘ ║
│─┐* ││ ║ └─┘ ├─────12/C│ │ ║A5───────3┤X2│ │ 3o12─────┐ │ D10.1 ║
│ ┴ ┌───────────────┘│ ║L─────────────┘ ┌───11┤D│ │ ║ ├──┤ │ 4o11 │ │ ┌─┐ ║
│ ┬ │ D14.2 │ ║ ┌─────────────┤ │ ├─┤ │ ║/CSIOD───4oE0│ │ 5o10───┐ │ └─────3┤1o1───────/WRFE║

SMT
26.05.2005, 07:13
облом, слишком длинные сообщения не помещаются :(

deathsoft
26.05.2005, 11:27
облом, слишком длинные сообщения не помещаются
Такие файлы надо аттачем кидать, и лучше в раре.

SMT
26.05.2005, 18:12
схему посмотрел, но вопросы не пропали. не буду говорить, через как спроектирован скорпион, тут приходится соглашаться с Nemo.

значит, вопросы: откуда берутся сигналы ~DSDOC и ~CSCCE (нашёл только ~CSDOS и ~CSDCCE)

Costa
26.05.2005, 18:23
не буду говорить, через как спроектирован скорпион, тут приходится соглашаться с Nemo.
Это интересно через как спроектирован скорп?
А Nemo как раз драл всё у Зонова.с чем с ним соглашаться?

Costa
26.05.2005, 18:41
оказывается, у меня совсем другая схема, вот:
Скорее всего это простой скорп без приставки "Turbo+"

откуда берутся сигналы ~DSDOC и ~CSCCE (нашёл только ~CSDOS и ~CSDCCE)


На моей бумажной схеме таких сигналов вообще нету!?

deathsoft
26.05.2005, 19:12
схему посмотрел, но вопросы не пропали. не буду говорить, через как спроектирован скорпион, тут приходится соглашаться с Nemo.

значит, вопросы: откуда берутся сигналы ~DSDOC и ~CSCCE (нашёл только ~CSDOS и ~CSDCCE)

Ну во первых не ~DSDOC, а ~DSDOS, а во вторых, там опечатка и должно быть ~DCDOS см. прилагающююся схему (на ней обозначен -DOS) (взята из книжки по SMUC) коментарии в доке по смук с сайта фирмы скорпион.

deathsoft
26.05.2005, 19:19
Бла еще доработка скорпа для того, чтобы порты ВГ93 (TRDOS) были доступны при любом включенном ПЗУ, а не только при TRDOS.

Это вроде описано в инструкции по GMX (на сайте фирмы скорпион). Схема прилагается.

Ronin
26.05.2005, 19:55
А Nemo как раз драл всё у Зонова
ДММЦ, шину, и даже IDE наверно тоже содрал...

deathsoft
26.05.2005, 20:14
значит, вопросы: откуда берутся сигналы ~DSDOC и ~CSCCE (нашёл только ~CSDOS и ~CSDCCE)

На счет ~CSCCE, как всегда ошибка у трайдента, на бумажной схеме там ~CSDCCE

Вот еще раз исправленая схема трайдента, я там еще несколько ошибок исправил, в том числе с сигналами выборки DOS и нумерацией микросхем.
(возможно остались еще ошибки)

lvd
26.05.2005, 21:17
Это интересно через как спроектирован скорп?


Ну а через как там ваитящийся проц?

SMT
26.05.2005, 21:27
На моей бумажной схеме таких сигналов вообще нету!?
~DSDOS заходит на ножку 5 D54, выбирает порты DOS, он мне интересен.
~CSCCE заходит на ножку 5 D66.1


Это интересно через как спроектирован скорп?огромное количество RC-цепочек (почти вся времянка на них), которые со временем высыхают. выборка второго пзу (в котором дос/система) при установке двух 27128 подачей RDROM0 на ... Vpp - где ещё такое увидишь!
как построена защелка порта DOS, замучался разбираться: триггер WAIT завязан на работу с озу (чтение в M1), триггер NMI - обязательно срабатывает по WAIT, триггер DOS - на WAIT и на MNI. это получается, что тормознутость озу влияет на tr-dos и просто так от неё не избавится. горазда понятнее, прозрачнее и проще всё сделано в пентагоне или атм2. зачем было так закручивать?

Costa
26.05.2005, 21:29
Ну а через как там ваитящийся проц?
Он там ваитящийся как и в других машинах.чего тут через как?

lvd
26.05.2005, 21:35
Он там ваитящийся как и в других машинах.чего тут через как?

В пентагоне? В кае? В профи? В атмке?

Costa
26.05.2005, 21:40
огромное количество RC-цепочек (почти вся времянка на них), которые со временем высыхают.
Брось,в скорпе не одной RC цепи нет вообще.керамика сохнет!!!???

выборка второго пзу (в котором дос/система) при установке двух 27128 подачей RDROM0 на ... Vpp - где ещё такое увидишь!
Здесь вообще ни чего не понял.зачем две 27128.зачем питание на RDROM0 ?
по какой схеме то ориентируемся можно взглянуть?

как построена защелка порта DOS, замучался разбираться: триггер WAIT завязан на работу с озу (чтение в M1), триггер NMI - обязательно срабатывает по WAIT, триггер DOS - на WAIT и на MNI. это получается, что тормознутость озу влияет на tr-dos и просто так от неё не избавится. горазда понятнее, прозрачнее и проще всё сделано в пентагоне или атм2. зачем было так закручивать?
WAIT через NMI ?интересно,дайте схему посмотреть.

Costa
26.05.2005, 21:42
В пентагоне?
Бог с тобой :-)

Costa
26.05.2005, 22:45
огромное количество RC-цепочек (почти вся времянка на них), которые со временем высыхают. выборка второго пзу (в котором дос/система) при установке двух 27128 подачей RDROM0 на ... Vpp - где ещё такое увидишь!
как построена защелка порта DOS, замучался разбираться: триггер WAIT завязан на работу с озу (чтение в M1), триггер NMI - обязательно срабатывает по WAIT, триггер DOS - на WAIT и на MNI. это получается, что тормознутость озу влияет на tr-dos и просто так от неё не избавится. горазда понятнее, прозрачнее и проще всё сделано в пентагоне или атм2. зачем было так закручивать?
Посмотрел схему.
Подтверждаю.сделано через как.:-)
такого изврата в Turbo+ нет вообще.тут всё цивильно.
да и RC в цифровых цепях это...

SMT
27.05.2005, 00:04
Costa: может, керамика не сохнет, но резисторы меняют параметры при изменении температуры (imho)

SMT
27.05.2005, 00:04
такого изврата в Turbo+ нет вообщеа это кто?

Costa
27.05.2005, 00:31
а это кто?
Это последний из скорпионов "Scorpion ZS-256 TURBO+" 1996года
ссылка на схему давалась тут:http://www.zx.pk.ru/showpost.php?p=14748&postcount=54

посмотри,здесь всё цивильно.

deathsoft
27.05.2005, 01:21
На счет Vpp. Сигнал Vpp у микросхем ПЗУ обязательно должен быть подключен к +5V (см. доку производителя), этим пользовались радиолюбители (в частности и С. Зонов), поэтому когда нужен сигнал выбора положительной полярности используют Vpp а когда отрицательной, то CS, таким образом экономятся вентили.

На счет микросхем ПЗУ, я ошибся когда написал, что в скорпе 2шт 27128 или 1шт 27256, там ставились 2шт 27256 либо 1шт 27512.

По поводу WAIT у процессора, с отечественной памятью типа РУ5 РУ7 (вр. доступа 700-1000нс) не возможно работать в другом режиме.

Наличие RC цепочек для согласования "времянки" сделано для экономии деталей (микросхем), проще поставить 1 RC цепочку, чем несколько триггеров. Нужно понимать, что компьютер делался в начале 90х годов, и должен был быть доступным по цене.

Понятно, что щас такой компьютер можно сделать на 1 микросхеме Altera ценой за $10 (например комп спринтер), но тогда все делалось на отечественных микросхемах, и экономили на всем, лишь бы работало.

SMT
27.05.2005, 07:08
проще поставить 1 RC цепочку, чем несколько триггеровчтобы быстрее заработало, проще. а дойдёт до турбирования или применения микросхем с другими частотами, придётся перенастраивать. конечно, проще задержать сигнал на пол-такта через RC, чем думать о замешивании с сигналами более высоких частот


По поводу WAIT у процессора, с отечественной памятью типа РУ5 РУ7 (вр. доступа 700-1000нс) не возможно работать в другом режимеа как же пентагон на РУ5? - сам видел, работает


выбора положительной полярности используют Vpp а когда отрицательной, то CS, таким образом экономятся вентилиединица TTL ниже, чем 5 вольт, и будет наверное проседать под такой нагрузкой. но, наверное, установка двух 27256 - редкость.

а посмотреть, как они на мультиплексоре собрали аж три порта: #FE,кемпстон,#FF. биты D6,D7 - это drq,intrq порта #FF, D0-D5 - сигналы джойстика. столько несовместимостей, а количество корпусов далеко не рекордно малое. короче, халтура

deathsoft
27.05.2005, 11:06
единица TTL ниже, чем 5 вольт, и будет наверное проседать под такой нагрузкой. но, наверное, установка двух 27256 - редкость.

Так там же не напрямую подключается, а через резистор. Если уж так говорить, то там вся схема основана на радиолюбительских приемах. Например логика на диодах вместо нормальных логических элементах, разделительные резисторы (монтажное или) на сигналах идущих на системный разъем, подача на входы C триггеров асинхронных сигналов, RC цепи в предустановке/сбросе триггеров и прочее.

У меня например скорп (был изначально не Turbo и без всяких смуков и прочего)(плата SC14 зеленая) был сделан по схеме как у трайдента нарисовано (потом его сдали в турбировку, и его турбировали), комп работал без всяких проблем.

deathsoft
27.05.2005, 11:10
Кстати, почему в эмуляторе Unreal не работает турбо режим на скорпе, и неподдерживается виртуальный диск в профПЗУ?

SMT
27.05.2005, 18:51
почему в эмуляторе Unreal не работает турбо режим на скорпепотому что он не нужен. программ, с пофиксенными под турбо мультиколорами просто нет, а для простого ускорения можно сделать настройку ULA


и неподдерживается виртуальный диск в профПЗУгде есть на него описание?

deathsoft
27.05.2005, 23:27
где есть на него описание?
Я думал, что он должен поддерживаться автоматически (shadow service монитором) при установке образа ПЗУ с ROM-диском.

Кстати то что впоследствии стало называться SMUC изначально называлось плата "HDD & CMOS" (я давал профПЗУ от своего скорпа расчитаную именно на работу с таким железом (прочел в книжке МОА, которая прилагалась к этому ПЗУ))

deathsoft
28.05.2005, 01:01
Я нашел почему при эмуляции скорпа не работает пункт 128TR-DOS.
Проблема в следующем:
02BF in a,(#1F)
02C1 and h
02C2 jr z,02BF
.....
регистр h=E0, в банке ROM0 включен SERVM, в регстре STAT Beta 128 содержится 1, а из порта читается 0. Это значит, что сделана неверная дешифрация портов TR-DOS, DOS активен (через монитор) а порт запрещен.
Тест проводился с профПЗУ 4.01 (которое 512к)

deathsoft
28.05.2005, 01:07
Еще по предыдущему коментарию. Непонятно по чему в регистре STAT содержится 1, когда должно содержаться #80 (готовность накопителя)

deathsoft
28.05.2005, 01:40
Глюк лечится следующим образом:
в файле memory.cpp нужно при включении ПЗУ монитора разрешать порды ДОС.
Правда глюк вылечился не до конца, если в дисковод вставлена дискета, то с нее начинает грузится boot и потом загрузка виснет и выполняется куча команд NOP. Если дискеты нету, то выдается соответствующее сообщение и после вставки дискеты и нажатия retry все работает
if (comp.p1FFD & 2) {bank0 = base_sys_rom; comp.flags |= CF_DOSPORTS;}

SMT
28.05.2005, 02:37
if (comp.p1FFD & 2) {bank0 = base_sys_rom; comp.flags |= CF_DOSPORTS;}достаточно было сравнить версии 0.28 и 0.27 - разница именно в CF_DOSPORTS. но почему должны включаться порты дос по D1 порта #1FFD? на схеме такого нет!


если в дисковод вставлена дискета, то с нее начинает грузится boot и потом загрузка виснет и выполняется куча команд NOPэто boot такой. мой boot грузится и работает



где есть на него описание?Я думал, что он должен поддерживаться автоматически (shadow service монитором) при установке образа ПЗУ с ROM-дискомищу описание хотя бы для пользователей (куда нажать, чтобы загрузить с него программу). потом, есть ли ROM-диск, скажем, в RealSpectrum?

deathsoft
28.05.2005, 03:00
ищу описание хотя бы для пользователей (куда нажать, чтобы загрузить с него программу). потом, есть ли ROM-диск, скажем, в RealSpectrum?
ROM-Disk работает, он находится в меню монитора "Save & Load" (я просто про это забыл, думал что он в главном меню, а щас книжку по монитору прочел и проверил).

deathsoft
28.05.2005, 03:14
это boot такой. мой boot грузится и работает
Собственно я проверяю на том буте который с эмулятором идет. Причем когда комп грузится первый раз все работает, а когда жмешь F12 (reset) то после этого происходят глюки, правда не со всеми scl файлами (возможно бут криво себя к ним дописывает)

SMT
28.05.2005, 03:49
Собственно я проверяю на том буте который с эмулятором идет. Причем когда комп грузится первый раз все работает, а когда жмешь F12 (reset) то после этого происходят глюки, правда не со всеми scl файламиа какие именно scl? скорее всего, портится 8-я банка: если после полного reset бут опять загрузится нормально, значит, так и есть

deathsoft
28.05.2005, 04:17
но почему должны включаться порты дос по D1 порта #1FFD? на схеме такого нет!
да, на схеме такого нет, но по схеме триггер DOS включается при выбраном ПЗУ ZX48 и переходе в диапазон адресов #3D00-#3DFF и блокированой записи в 0ю страницу ОЗУ, после этого данный триггер может быть сброшен только по reset, а какое ПЗУ установлено после выбора DOS роли не играет, т.к. если порты доса один раз открыты, то программно их не закрыть. (см. схему от Turbo+, там более понятные обозначания).

SMT
28.05.2005, 07:49
после этого данный триггер может быть сброшен только по resetну-ну. а как же закрывается пзу tr-dos и снова встаёт basic48? в триггер записывается сигнал NMI по RAMM1 - стробу чтения опкода из озу. а как раз перед тем, как пройти на #02BF процессор выполняет переключение страницы профПЗУ из 8-го банка. тут действует какой-то другой эффект

deathsoft
28.05.2005, 14:59
в триггер записывается сигнал NMI по RAMM1
Да, есть такая вещь, не заметил, что в защелку DOS пишется инверсный NMI.

deathsoft
29.05.2005, 00:16
В документации по SMUC написано следующее:
DOS- — сигнал, показывающий, какая из половин внутреннего ПЗУ выбрана в данный момент. Если DOS- = лог. 0, то выбрано ПЗУ Monitor или TR-DOS, если DOS- = лог. 1, то выбрано ПЗУ Basic 128 или Basic 48.

Из чего следует, что при выбраном мониторе сигнал DOS- должен быть равен 0 (т.е. порты дос разблокированы).

Вообще советую почитать доку по SMUC с сайта фирмы скорпион (smuc.doc), там есть приложение 4 "Как доработать ваш компьютер, чтобы он превратился в Scorpion 256. (Подробный разбор схемотехнических решений Scorpion ZS 256)". В этой главе описаны все сигналы, а самое главное, на что они влияют и как генерируются. Описание соответствует схеме Turbo+.

Похоже, что на схеме нарисовано не все, либо она специально была искажена, чтобы не было пиратских копий компьютера.

deathsoft
29.05.2005, 00:25
если после полного reset бут опять загрузится нормально, значит, так и есть
После полного reset (по стрелке влево и F12) все рвботает нормально.

deathsoft
29.05.2005, 01:08
тут действует какой-то другой эффект
Возможно в эмуляторе порты дос отключаются при переключении ПЗУ, а на реальном компьютере, как следует из схемы, только при выполнении кода из ОЗУ. Т.е. например если на компьютере сначала выполняется программа из ПЗУ с главным меню, которая вызывает ДОС, а затем начинает выполняться код монитора, то порты ДОС не закрываются (если только выполняющийся код не покидает ПЗУ). Переключение на ДОС в таком случае могут быть реализовано стандартно занесением адреса перехода в стек и выполнением перехода на ret в ПЗУ TR-DOS, после чего может выполняться любая программа из ПЗУ с открытыми портами ДОС.
Возможно проблема в этом.

lvd
31.05.2005, 11:49
а как же пентагон на РУ5? - сам видел, работает


Дык и на скорпе РУшки на 3.5 мгц фигачат. А ваит там потому, что господин зонов решил сэкономить 1-2 корпуса и в результате если 'процессорный' слот обращения к РУшкам попадает на конец цикла M1, то проц приходится подтормаживать (цикл чтения M1 длится на такт меньше, чем обычный цикл чтения). Причём это решаемо - иногда можно просто оторвать ваит от проца (если РУшки быстрые - выдают данные 'мгновенно' после КАСа), или можно сдвинуть фронт 2ого такта M1, чтобы проц залатчил опкод как раз тогда, когда он железно прочитался (вариант fk0), или если был ваит - прокрутить рефреш на турбо (7мгц) - вернув затраченный на ваит такт.

lvd
31.05.2005, 11:54
На счет ~CSCCE, как всегда ошибка у трайдента, на бумажной схеме там ~CSDCCE

Вот еще раз исправленая схема трайдента, я там еще несколько ошибок исправил, в том числе с сигналами выборки DOS и нумерацией микросхем.
(возможно остались еще ошибки)

Явная ошибка - по схеме выходит, что выбор банок 8-15 ОЗУ - разряд д5, а должен быть д4.

Conan
31.05.2005, 16:28
А ваит там потому, что господин зонов решил сэкономить 1-2 корпуса и в результате если 'процессорный' слот обращения к РУшкам попадает на конец цикла M1, то проц приходится подтормаживать (цикл чтения M1 длится на такт меньше, чем обычный цикл чтения). Причём это решаемо - иногда можно просто оторвать ваит от проца (если РУшки быстрые - выдают данные 'мгновенно' после КАСа), или можно сдвинуть фронт 2ого такта M1, чтобы проц залатчил опкод как раз тогда, когда он железно прочитался (вариант fk0), или если был ваит - прокрутить рефреш на турбо (7мгц) - вернув затраченный на ваит такт.
А в чем эта экономия, если в некоторых случаях можно отключить WAIT и все работает? Кроме того, в предыдущих моделях («Ленинград-1» и «Композит»), точно такая же схема. Да и не изобретение это Сергея Зонова вовсе. Первым WAIT использовали в «Балтик», и тоже отнюдь не для экономии. А вот слова про укороченный M1, это правильно. Если разрисовать времянки то станет понятно, почему непросто реализовать «прозрачный» (без-WAIT-овый) режим работы: выборка должна происходить за 280нс, а реально еще меньше. Причем ограничено это не РУ-шками, а именно процессором. И для того, что бы такой режим надежно работал, надо иметь очень хорошую времязадающую схему (RAS, CAS, CLK). Разработка, которой весьма непростое дело, с учетом реального производства.

P.S. Первыми изменение скважности (сдвиг фронтов) CLK использовали в «Профи» для турбирования более 7Мгц.

SMT
31.05.2005, 20:44
Возможно в эмуляторе порты дос отключаются при переключении ПЗУ, а на реальном компьютере, как следует из схемы, только при выполнении кода из ОЗУ. Т.е. например если на компьютере сначала выполняется программа из ПЗУ с главным меню, которая вызывает ДОС, а затем начинает выполняться код монитора, то порты ДОС не закрываются (если только выполняющийся код не покидает ПЗУ). Переключение на ДОС в таком случае могут быть реализовано стандартно занесением адреса перехода в стек и выполнением перехода на ret в ПЗУ TR-DOS, после чего может выполняться любая программа из ПЗУ с открытыми портами ДОСв эмуляторе выключаются триггер дос (и вместе с ним - порты) при выполнении кода из ОЗУ. там такая штука, что порт читается в сервисном ПЗУ, а перед входом в эту страницу выполняется переключение из 8-го банка, т.е. между TR-DOS и сервисом выполняется код из ОЗУ. будет время, потрассирую RealSpectrum. дизассемблирование показывает, что он всё делает в соответствии со схемой, но каким-то образом работает

deathsoft
01.06.2005, 00:04
там такая штука, что порт читается в сервисном ПЗУ, а перед входом в эту страницу выполняется переключение из 8-го банка, т.е. между TR-DOS и сервисом выполняется код из ОЗУ.
В скорпе 8я страница ОЗУ может подключаться либо в адреса #C000-#CFFF, либо вместо ПЗУ в адреса #0000-#3FFF (при этом выполняется эмуляция ПЗУ). Я не нашел по схеме Turbo+ откуда берется сигнал RAM- (возможно плохо искал). Если 8я страница включается вместо ПЗУ, то порты TR-DOS видимо не закрываются.

Costa
01.06.2005, 00:33
Я не нашел по схеме Turbo+ откуда берется сигнал RAM- (возможно плохо искал).
сигнал RAM- берётся с 6 ноги элемента DD69B (LA3).

deathsoft
01.06.2005, 01:24
Обнаружил ошибки на схеме Turbo+
Выводы 27 и 1 ПЗУ 27512 помечены как (PR и VPR), а должны быть A14 и A15 соответственно.

SMT
01.06.2005, 06:54
deathsoft: afaik, вниз можно поставить только нулевую страницу, никак не 8.

deathsoft
01.06.2005, 12:12
afaik, вниз можно поставить только нулевую страницу, никак не 8.
Как раз либо 0ю либо 8ю, см. документацию на SMUC (главу про доработку, где распределение памяти описано), либо инструкцию на теневой монитор (там в конце есть картинка с распред памяти). 0я чтраница отличается от 8й только битом в 1FFD когда бит сброшен, то установлена 0я страница, когда установлен, то 8я (это старший разряд в диспетчере скорповых страниц). Кроме того эти страницы можно в ключать в диапазон C000-CFFF (но это их обычный режим).

SMT
01.06.2005, 17:30
deathsoft: а если расширение до мегабайта, то все страницы, кратные 8?

deathsoft
01.06.2005, 17:42
а если расширение до мегабайта, то все страницы, кратные 8?
Не знаю, видимо, это расширение вообще нестандартное. Скорпион выпускался только с 256Кб памяти. И до 4Мб с использованием GMX (там вставлялись 2 SIMM модуля). 1Мб был только на компьютере KAY 1024 (который очень похож на скорп по схемотехнике). С. Зонов НИКОГДА не выпускал скорпов с 1Мб.

deathsoft
01.06.2005, 17:44
Расширеная до 1Мб память скорпа обсуждалась гдето в соседней ветке. И там было написано, что таких стандартов несколько, один как в эмуляторе Unreal, другой как в пентагон 1024 третий как в KAY 1024

deathsoft
06.06.2005, 16:44
Так что? каким образом разрешилась проблема с 128 TR-DOS на скорпе в Unreal'е, в версии 0.29 все работает (сорцы не смотрел), правда остался глюк при повторном заходе в TR-DOS с вылетом на страницу с nop (видимо порча 8й страницы ОЗУ).

Я заканчиваю отрисовку схемы Scorpion ZS 256 Turbo+ (востановление со сканированой схемы) в OrCad, результат конвертну в .pdf и выложу сюда (будет нормальная схема в векторном формате, а не сканированое убожество).

SMT
06.06.2005, 17:53
временно включил порты ДОС по второму биту 1FFD, RealSpectrum пока не трассировал

lvd
06.06.2005, 18:17
Как раз либо 0ю либо 8ю, см. документацию на SMUC (главу про доработку, где распределение памяти описано), либо инструкцию на теневой монитор (там в конце есть картинка с распред памяти). 0я чтраница отличается от 8й только битом в 1FFD когда бит сброшен, то установлена 0я страница, когда установлен, то 8я (это старший разряд в диспетчере скорповых страниц). Кроме того эти страницы можно в ключать в диапазон C000-CFFF (но это их обычный режим).

Говорю как очевидец - по нулевому биту в 1ффд включается нулевая и только нулевая! Иначе как у меня работает тест всего мега памяти в скорпе, когда выполняется из нулевой страницы в 0-3ффф и гоняет в цффф-фффф страницы от 1 до энной?

deathsoft
06.06.2005, 18:55
Говорю как очевидец - по нулевому биту в 1ффд включается нулевая и только нулевая! Иначе как у меня работает тест всего мега памяти в скорпе, когда выполняется из нулевой страницы в 0-3ффф и гоняет в цффф-фффф страницы от 1 до энной?
Видимо я чегото не так понимаю? Откуда Вы все взяли мег памяти на скорпе? В природе таких компов никогда не было (я могу ошибаться, но я в ларьке у С. Зонова таких никогда не видел, и на сайте фирмы скорпион тоже). Я же приводил ссылку на фирменое руководство по СМУК (скорпионовское, в котором черным по белому сказано, что либо 0я либо 8я страницы, в старых доках на скорповские платы было написано, что только 0я, хотя в доке на сервис монитор аж от 95года было нарисовано, что и 8я (ыидимо эта возможность использовалась только монитором))

deathsoft
06.06.2005, 19:00
Если смотреть схему от Turbo+, то между 0й и 8й страницей нет никаких отличий, когда диспетчер памяти работает со страницами 0-7 вместо ROM подключается 0я, когда с 8-15 вместо ROM подключается 8я.

spensor
08.09.2005, 15:21
Поступила информация, что существовало ПрофПЗУ на 1МБ. Кто-нибудь может подтвердить такое?

Orionsoft
09.09.2005, 21:48
к сожалению - только обьём микросхемы составлял 1 mb
а прошивка лишь 256 кб

Ewgeny7
10.09.2005, 11:58
Выкладываю фото и срисованную с платы схемку установленного у меня ПрофПЗУ. Фото делалось с мобильника, поэтому - извиняйте... :)

Ewgeny7
10.09.2005, 12:01
Что-то не отправляется... :(
Пробую еще раз...

Orionsoft
10.09.2005, 14:57
Выкладываю фото и срисованную с платы схемку установленного у меня ПрофПЗУ. Фото делалось с мобильника, поэтому - извиняйте... :)

слайды профпзу (http://zx.pk.ru/showpost.php?p=24844&postcount=64)

Orionsoft
10.09.2005, 15:51
2 spensor : профпзу обьёмом 512 кб устанавливалось на плате GMX
и его самой лучшей возможностью была модификация пользователем

про GMX (http://zx.org.ru/db/Graphic_Memory_eXpander)

spensor
12.09.2005, 08:49
Выкладываю фото и срисованную с платы схемку установленного у меня ПрофПЗУ. Фото делалось с мобильника, поэтому - извиняйте...


слайды профпзу

Огромное 10x за материалы!!! Теперь есть возможность заняться "ПП на дискретах".
Жалко только, что на просьбу откликнулось только два человека из более десяти человек имеющих сей девайс:( Лень-матушка правит балом:( О какой перспективе можно мечтать, если кое-кому, с надписью "ПрофПЗУ" в профиле, влом полчаса уделить такому несложному занятию.

Ewgeny7
15.09.2005, 14:13
Выкладываю несколько откорректированную версию схемы :)
Хотел бы удалить старый вариант, да не знаю, как это сделать... :(

SMT
15.09.2005, 18:12
а мне, мне можно порисовать!!!

Ewgeny7
16.09.2005, 22:46
2 SMT

Ну просто маладец!!! Кстати, незаконное копирование, распространение, внесение изменений в исходный код... Сколько там лет строгого режима полагается? :)

SMT
17.09.2005, 02:06
1. где лицензия к оригинальному рисунку?
2. сможешь доказать авторство и права? :)

Ewgeny7
17.09.2005, 02:47
Усы и хвост - вот мои документы!!!