PDA

Просмотр полной версии : Простой вопрос про SMUC.



Mikka_A
29.01.2008, 22:33
Добрый вечер коллеги.

Вопрос прост - какой максимальный объем винта видит СМУК?

spensor
30.01.2008, 14:45
Вопрос прост - какой максимальный объем винта видит СМУК
Вопрос в корне ошибочен, SMUC это "железка" и он может работать с девайсом любого логического размера соответствующего стандартам ATA/ATAPI. А это могут быть и CHS-устройства с потолком в 512MB, и LBA28-устройства с объемом до 128GB, и ATAPI-накопители до 2TB, и наконец LBA48-устройства до 144PB. Если интересно как это делается, то можно кратко почитать например тут: http://wiki.osdev.ru/index.php/HDD . Стандарты находятся тут: http://www.t13.org . Единственное ограничение, что работа с устройствами происходит только в PIO-режиме, ни про какие UDMA речи быть не может. Сказанное выше справедливо для большинства ATA-интерфейсов на спектруме (Nemo, ATM, Profi, etc).
А вот, если речь идет о програмной поддержке, для SMUC по умолчанию это ПрофПЗУ (ПП), то вопрос конечно интересный. В принципе там могла бы быть заложена и поддержка LBA48, технически это вполне реализуемо, но поскольку стандарт ATA-6, в котором описан режим LBA48, появился примерно в 2001 году, то ясно, что ПП, написанное MOA, максимум способно работать с HDD до 128GB (LBA28). Хотя возможно и меньше, все зависит от наличия/отсутствия ошибок в коде прошивки.
Чтобы определенно ответить на вопрос топика нужно или посмотреть на код ПП, или испытать на реальных винчестерах.

savelij
30.01.2008, 18:06
А вот, если речь идет о програмной поддержке, для SMUC по умолчанию это ПрофПЗУ (ПП), то вопрос конечно интересный. В принципе там могла бы быть заложена и поддержка LBA48, технически это вполне реализуемо, но поскольку стандарт ATA-6, в котором описан режим LBA48, появился примерно в 2001 году, то ясно, что ПП, написанное MOA, максимум способно работать с HDD до 128GB (LBA28). Хотя возможно и меньше, все зависит от наличия/отсутствия ошибок в коде прошивки.
Чтобы определенно ответить на вопрос топика нужно или посмотреть на код ПП, или испытать на реальных винчестерах.

Насколько помню для ПрофПЗУ было заложено ограничение 1800 Мб.

Ewgeny7
30.01.2008, 18:09
Насколько помню для ПрофПЗУ было заложено ограничение 1800 Мб.
Да, читал такое. Винт можно ставить любой, но выше 1800 не попользуешь.

savelij
30.01.2008, 18:13
Да, читал такое. Винт можно ставить любой, но выше 1800 не попользуешь.

Вроде еще где-то читал, что такой размер из-за трех байтной адресации. Только не помню где. Возможно в описании на сам SMUC. И походу для GMX ничего не изменилось.

Mikka_A
31.01.2008, 09:22
Да, читал такое. Винт можно ставить любой, но выше 1800 не попользуешь.


у мну он ( СМУК, читаем по версии Спенса - софт )

видит как старый ПЦук - 8 гигов.

пробовал разные вариации финтов ( разбивки партиций, формат и пр... )

8 гигов и баста.

Хотя иметь 8 гигов софта...
да еще в формате дискеток.....

это примерно 12 с половиной тысяч дискет....

думаю я до старости записать даже только не успею....:v2_tong2:

Спсибо всем...

ЗЫ. Ну НЕМО соответственно,я так понимаю, быит видеть сколько есть на самом деле....

Evgeny Muchkin
31.01.2008, 09:58
Миш, блин :) Тебе ж сказали, что от софта зависит :) ППЗУ видит столько то, а другой софт может увидеть гораздо больше. А немо... да ничего он не видит, без софта :)

Mikka_A
31.01.2008, 10:13
Миш, блин :) Тебе ж сказали, что от софта зависит :) ППЗУ видит столько то, а другой софт может увидеть гораздо больше. А немо... да ничего он не видит, без софта :)



Жека толку что софт увидит смуком больше?

он ( софт сможет ) доставать области, которые не видит стандартные средства скорпа?

вопрос то в чем...

"Имеет ли смыл покупать винчестер 100 гигабайт ?"

ответ - "НЕТ."

а вот в варианте с немо - Да!

ЗЫ. А я вот, млин, купил винт 80 гигов 2.5 дюйма.:v2_frown:

CityAceE
31.01.2008, 10:50
А я вот, млин, купил винт 80 гигов 2.5 дюйма.
:v2_eek: А что же ты там хронить собрался?

Evgeny Muchkin
31.01.2008, 10:53
он ( софт сможет ) доставать области, которые не видит стандартные средства скорпа?
Вот и я про это. Уверен, что может.

Mikka_A
31.01.2008, 10:54
:v2_eek: А что же ты там хронить собрался?

любиимые демки и игрушки....
а так же музыки и картинки.....

я блондинко! :cool:

CityAceE
31.01.2008, 10:57
Столько их не наберётся!!!! Даже если хранить по 5 копий всего.

Mikka_A
31.01.2008, 11:01
Столько их не наберётся!!!! Даже если хранить по 5 копий всего.


Стас я просто надеялся в тайне что реально монно будет винт поделить пополам.....

Одна половинка - СМУКовые образ, а вторая - тупо ФАТ32....

на ФАТ32 - на ней можно хранить моды....ZIP архивы чего либо....

Но , увы, не получилось.

Согласен. 2 гига будет моим счастьем.

Наковырял тут пару чштучек 2.5 дюйма....:v2_rolley

Ewgeny7
31.01.2008, 21:01
Не совсем понял что ты хочешь, но винт объемом более 1800Мб спокойно может содержать разделы и ФАТ32 (с установленным Виндовс 95 :) ) и МБР Скорпиона. Можешь перетаскивать винт из Скорпа в ПеЦе и обратно. :)

Mikka_A
31.01.2008, 21:41
Не совсем понял что ты хочешь, но винт объемом более 1800Мб спокойно может содержать разделы и ФАТ32 (с установленным Виндовс 95 :) ) и МБР Скорпиона. Можешь перетаскивать винт из Скорпа в ПеЦе и обратно. :)

я хочу чтобы видно было и фат и смук партиции.

на фате - архивы, моды ( для проигрывания Баддеровским WP,который умеет играть с ФАТ ), ну а на смук разделе все что мне надо....

вот что я хотел бы....

Black_Cat
23.03.2008, 09:19
1) Народ, подскажите какая последняя версия SMUC была? 1.3??
2) Как понимаю SMUC в основном завязан на ПРОФПЗУ, а сей девайс взломали и может сейчас производиться свободно?
3) ПРОФПЗУ будет работать с любой допустимой (0.0-6.6) версией и релизом, если их аппаратно выставить на плате? Или есть какие ограничения?

spensor
23.03.2008, 16:01
1) Народ, подскажите какая последняя версия SMUC была? 1.3??
Да. Кроме того, плата версии 1.2, прошивкой ПрофПЗУ, детектится как 1.3. Есть ли различия между 1.2 и 1.3 доподлинно неизвестно.

2) Как понимаю SMUC в основном завязан на ПРОФПЗУ, а сей девайс взломали и может сейчас производиться свободно?
Технически да, а вот в правовом отношении трудно сказать. К слову, ПрофПЗУ последней доступной версии является составной частью GMX. Но автономное ПрофПЗУ (с прошивкой версии v4.xx) и бортовое, в составе GMX (с прошивкой версии v5.xx) аппаратно не совместимы. Программно (на уровне механизма переключения страниц) тоже.

3) ПРОФПЗУ будет работать с любой допустимой (0.0-6.6) версией и релизом, если их аппаратно выставить на плате? Или есть какие ограничения?
AFAIK никаких ограничений, во всяком случае версия железа для прошивки не имеет никакого практического значения, не более чем идентификатор присутствия устройства и переменная для отображения на экране. В эмуляторе US про этот порт на начальном этапе ничего не было известно и система детектила SMUC как v5.5; при этом устройство (виртуальный аналог) работало без фокусов.

Black_Cat
23.03.2008, 16:22
во всяком случае версия железа для прошивки не имеет никакого практического значения
ну, на сколько знаю ПРОФПЗУ не любила числа 7 и отказывалась находить SMUC с такими версиями и релизами, или не так?
И ещё - как много есть софта юзающего SMUC напрямую без ПРОФПЗУ и есть ли вообще?

spensor
23.03.2008, 17:28
ну, на сколько знаю ПРОФПЗУ не любила числа 7 и отказывалась находить SMUC с такими версиями и релизами, или не так?
Так то оно так. Но тут дело не в версии, а в том, что если порт не будет реализован, то это равносильно считыванию из него числа 11111111b - что есть на шине порт, что его нет, результат чтения порта будет один и тот же. Поскольку в SMUC заюзаны только 3 бита (D7,D6,D3), а остальные биты считываются с пустой шины, которая по умолчанию должна держать #FF, то для версии и ревизии 7 имеем (1)(1)11(1)111b, а по этому результату как раз и невозможно понять, есть ли на шине порт или нет. Немного сумбурно, но надеюсь будет понятно.
Софта не требующего ПрофПЗУ? AFAIK весь существующий - CD-Walk, CD-Player, WDC... Сомневаюсь, что вообще существует софт, которому требуется ПрофПЗУ.
Как правило при работе с софтом предполагается что входной сигнал SMUCа - /DOS заведен на GND, тем самым порты SMUC открыты не только в сеансе TRDOS, через две точки входа в модифицированной прошивке TRDOS, но и для прямого программирования портов (так работа с портами осуществляется значительно быстрее). Есть софт который работает и через точки входа в TRDOS. Но вышеназванные точки входа это модификация только прошивки TRDOS, и характерна для всех прошивок устанавливаемых в Scorpion - будь то ПЗУ содержащим Теневой Монитор, или ПрофПЗУ. И вообще чтобы оно работало достаточно изменить, кажется, 6 байт в ПЗУ TRDOS. А такое изменние, AFAIK, есть в прошивке Глюка, а также во всех TRDOS начиная с 5.13f.

Black_Cat
23.03.2008, 19:09
Как правило при работе с софтом предполагается что входной сигнал SMUCа - /DOS заведен на GND, тем самым порты SMUC открыты не только в сеансе TRDOSа так никаких конфликтов не будет? ведь неспроста изначально точки входа сделали через TR-DOS?

Есть софт который работает и через точки входа в TRDOSа как он будет себя вести если SMUC будет выбран всё время? И как правильней подклюсать?

А такое изменние, AFAIK, есть в прошивке Глюка, а также во всех TRDOS начиная с 5.13f.
тогда зачем делать постоянную выборку? Кстати Глюк с RTC будет работать?

Ewgeny7
23.03.2008, 21:15
а так никаких конфликтов не будет?
Пока не замечал глюков


Кстати Глюк с RTC будет работать?
Работает, друг другу не мешают

Black_Cat
23.03.2008, 21:19
Работает, друг другу не мешают
Не, он поддерживает смуковские часы?

Ewgeny7
23.03.2008, 22:18
Ты под Глюком имеешь ввиду бут? СМУК ставится только на Скорпи, глюка-бут на нем не ставили. Соответственно, и поддержки RTC в глюке отсутствуют.

Black_Cat
23.03.2008, 22:41
СМУК ставится только на Скорпи, глюка-бут на нем не ставилиЯ так понял со слов spensor'а, что Глюк умеет поддерживать СМУК..

spensor
24.03.2008, 13:54
а так никаких конфликтов не будет? ведь неспроста изначально точки входа сделали через TR-DOS?
Изначально сделали. Но во-первых, скорее всего чтобы сделать какую-никакую защиту от криворуких программеров, винт то поценнее дискеты будет, жалко потерять всю информацию; во-вторых, чтобы ввесли хоть какую-то культуру программирования (вызов как бы через системные прерывания). Возможно что еще от порчи винта в случае конфликта адресов портов. Но после открытия портов напрямую софт работает и сбоев замечено не было.

а как он будет себя вести если SMUC будет выбран всё время? И как правильней подклюсать?
Будет работать и напрямую, и в случае обращения через TRDOS. А как правильно, это вопрос филосовский, так же как и в случае ответа на вопрос "как жить". Программировать можно и так и так. С точки зрения стандартизации, работы на перспективу правильнее через точки входа, с точки зрения скорости - обращаться к портам напрямую.

тогда зачем делать постоянную выборку?
Постоянную выборку для быстроты - если пересылать массив данных, то для пересылки каждого байта прийдется юзать относительно длинную процедуру с пересылкой байт через точку входа, или же одну двухбайтную команду OUTI/OUTD или INI/IND. Скорость пересылки массивов данных меняется в разы.

Кстати Глюк с RTC будет работать?
Глюк будет работать с часами подключенными по схеме Глюка, часы подключенные по схеме SMUC прошивка Глюка не видит, разве что с коррекцией прошивки.

Я так понял со слов spensor'а, что Глюк умеет поддерживать СМУК...
Глюк и в частности TRDOS начиная с версии 5.13f никаким образом не связанны со SMUC. Я сказал что в этих прошивках, как и в прошивке TRDOS-Scorpion есть две точки входа, примерно такого вида OUT(C),A:RET и IN A,(С):RET. Задуманны они были для псевдопрямого программирования портов ВГ93. Эти же точки используются для программирования SMUC. Если вы подключите SMUC к любому другому клону отличному от Scorpion и у вас не будет при этом ПрофПЗУ, то программы типа CD-Walk, WDC смогут работать на таком клоне. Если же при этом SMUC будет реализован так, что обращение к его портам будет происходить только через TRDOS, то работа на клоне также будет возможна, но с оговоркой, что прошивка TRDOS содержит точки входа. Правда при отсутствии ПрофПЗУ не будет возможности загружаться с винчестера, и вообще вся работа будет возможна только через софт загружаемый через дисковод.

Black_Cat
24.03.2008, 15:21
С точки зрения стандартизации, работы на перспективу правильнее через точки входаА какие критерии стандартизации? Совместимость с оригинальным SMUC? Как понимаю, теневой вход в SMUC сделан для устранения конфликтов ISA устройств с портами клавиатуры, ну и заодно для упрощения его подключения неквалифицированными юзерами к левым клонам с неизвестной дешифрацией. Т.е. фактически использование теневых портов - это результат криворукости разработчиков СМУКА, которые не смогли выбрать правильно порты чтоб небыло конфликтов. Полагаю, что если эту проблему устранить, то в теневых портах вообще не будет никакой необходимости. По нынешним временам, когда производится только один клон с шиной NemoBus (умеющей корректно разделять порты), а оригинальный SMUC давно не производится, то не проще-ли сразу решить все проблемы на этапе производства нового SMUC? Или тут есть какие проблемы о которых я не догадываюсь? Кстати и в регистре версии это можно отразить, например чётная версия - с постоянной выборкой, нечётная - через TR-DOS..

spensor
25.03.2008, 13:57
А какие критерии стандартизации? Совместимость с оригинальным SMUC?
Нет, совместимость в более широком смысле. Допустим если бы работа с TRDOS производилась бы только через 3D13, то проблем бы с совместимостью и работом софта из под винчестера/флэш-карт было бы гораздо меньше - работа ведеться через системные вызовы и до железной реализации накопителя программисту дела нет. Также и в этом случае - если надо можно изменить железо SMUC (перевести работу допустим с ATA протокола на USB), то по точкам вызова ставятся программные перехватчики, а дальше выполняется эмуляция старого железа на новом.

Т.е. фактически использование теневых портов - это результат криворукости разработчиков СМУКА, которые не смогли выбрать правильно порты чтоб небыло конфликтов.
На спектруме, не использую полную дешифрацию, любые порты будут неправильные, а разработчики которые не заведут на устройство все 16 адресных линий - криворукими. Один порт бордюра на спектруме имеет 32767 зеркал...
Выбор портов только из режима TRDOS это простой, хоть и ущербный, способ обойти эту проблему.

По нынешним временам, когда производится только один клон с шиной NemoBus (умеющей корректно разделять порты)
Угу, только ты сам противоречишь себе - если умеет корректно разделять порты, то не должно быть проблем с железом и портами. А если есть проблемы (случай с подключением GS к P1024SL), то значит компьютер не умеет корректно разделять порты. Да и не сможет. NemoBUS (ZXBUS) c использованием IORGE лишь частично решает проблему неполной дешифрации, не может быть решения в задаче, если не все исходные данные (полный физический адрес порта) известны.

Кстати и в регистре версии это можно отразить, например чётная версия - с постоянной выборкой, нечётная - через TR-DOS..
Изврат:(

Black_Cat
25.03.2008, 14:32
Также и в этом случае - если надо можно изменить железо SMUC (перевести работу допустим с ATA протокола на USB), то по точкам вызова ставятся программные перехватчики, а дальше выполняется эмуляция старого железа на новом.А в реале как? Все программы используют системные вызовы при работе со СМУКом?

На спектруме, не использую полную дешифрацию, любые порты будут неправильные, а разработчики которые не заведут на устройство все 16 адресных линий - криворукими.Я не вижу особых проблем найти нужный безконфликтный диапазон портов не прибегая к теневому режиму и чётным портам.
А если есть проблемы (случай с подключением GS к P1024SL)GS юзает только 2 порта и с разделением там проблем нет, там проблемы со схемотехникой - т.е. опять же дело в недостаточной проработанности разрабатываемого железа, но т.к. это всё любительские разработки, то ожидать другого не приходится. Ошибки будут выявляться и устраняться, но должно пройти некоторое время активной эксплуатации устройства чтоб их выявить.

Black_Cat
29.03.2008, 13:56
И ещё вопросы по СМУКу:

1) какие существуют программы (в т.ч. и те что в ПЗУ), которые знают и используют SMUC RTC, SMUC 8259?
2) SMUC RTC, SMUC 8259 по умолчанию инициализируются при старте, или они должны инициализироваться отдельным софтом, этот софт есть?

Вопросы и замечания к составителям доки "SMUC на дискретных компонентах v0.0b" (к сожалению не знаю кто это):

1) замечание: несоответствие обозначений с оригиналом - вместо CS0,CS1 должно быть соответственно CS1Fx,CS3Fx;
2) с RTC выходит /INT0.. и никуда не приходит;
3) по записи D3=1 #FFBA как понимаю должно блокироваться прохождение сигнала INT59, те.фактически обработанных сигналов IRQ0(RTC), IRQ1(IDE). Это на схеме никак не отражено, как понимаю в этой упрощённой схеме SMUC по записи D3=1 #FFBA должно блокироваться прохождение /INT0??
4) замечание по придуманной аббревиатуре "SMUC" - Spectrum Multi Unit Controller - аббревиатура явно притянута за уши и очень неудобна, т.к. постоянно требует уточнения о каком SMUC речь. Было-бы проще идентифицировать эту разновидность как ZXSMuC - ZX Spectrum Multi Controller.
5) не указано происхождение сигнала /RES на RTC, как понимаю он должен формироваться из сигнала с NemoBus.
6) не нашёл в описалове как формируется сигнал подтверждения прерывания INTA :v2_conf2: Кто знает как это делалось?

Ewgeny7
29.03.2008, 14:35
1) какие существуют программы (в т.ч. и те что в ПЗУ), которые знают и используют SMUC RTC, SMUC 8259?
2) SMUC RTC, SMUC 8259 по умолчанию инициализируются при старте, или они должны инициализироваться отдельным софтом, этот софт есть?

Насчет 8259 незнаю, пользовался ли им хоть кто-нибудь. Да и на плате смука стояла пустая панелька под него.
RTC инициализируется при старте теневиком. Чтение-запись также из теневика. Просмотр состояния (времени) реализован в Реал Коммандере, TRDN, возможно, гдето еще. При неиспользовании сигнала ДОС RTC прекрасно читается-пишется даже из Бейсика. В теневике время/дата/день_недели показывается в нижней строке экрана.

Сигнал /RES на RTC заводится с баса.
Сигнал /INT0 (на схеме оригинала /IRQ0 :) ) должен идти на контроллер прерываний, поскольку его нет и нафиг ненадо, сигнал повешен в воздухе.
Авторы назвали СМУК смуком, теперь переименовывать поздно.
D3 #FFBA в дискретной схеме не используется. Ибо не испоьзуются навороты с контроллером прерывания и прочими ISA...

Автор описания v0.0b, он же автор этой версии - spensor.

Black_Cat
29.03.2008, 15:27
Авторы назвали СМУК смуком, теперь переименовывать поздно:) не поздно, оригинальный SMUC пусть остаётся СМУКом, а дискретный нужно отличать, т.к. это не одно и то же, поэтому и предлагаю использовать ZXSMuC - ZX Spectrum Multi Controller.

А с формированием СМУКом /INT и /INTA удалось разобраться? Есть схема?

Mick
29.03.2008, 15:31
[B]И 2) ......SMUC 8259 по умолчанию инициализируются при старте, или они должны инициализироваться отдельным софтом, этот софт есть?



Контроллер прерываний инициализируется когда детектится. Мы со Spensor года два назад беседовали по этому поводу. Мной были выдраны из Проф Пзу некие кусочки кода. По Смаку же была тема.

Вот тебе кусманчик кода - дальше сам решай.

Black_Cat
29.03.2008, 16:13
Тема была, да про 8259 там нету..
Господа владеющие оригинальным СМУКом будьте добры, помогите выяснить логику формирования сигналов /INT и /INTA в СМУКе!
Прошу проделать пару опытов:
1) Предположительно /INT это просто инверсный INT59. Для проверки попробуйте при вынутом 8259 подать на 17 ногу 0/1 и посмотреть меняется ли /INT? Так же попробовать проделать это с разными значениями D3 #FFBA, предположительно D3 никак не будет влиять на /INT при вынутом 8259.
2) При изменении значений D3 #FFBA и вынутом 8259, посмотреть сигнал на 26 выводе /INTA, предположительно он будет меняться синхронно с D3.
3) Действительно ли на СМУК не заведён /IORQ, или это очепятка схемы?
Спасибо.