PDA

Просмотр полной версии : Адресация 16K



ARTi
13.02.2008, 00:40
Здравствуйте! Возможно, я не туда пишу ;), так что направьте на путь истинный, если что.
Вопрос у меня простой: к какой памяти или ПЗУ производится доступ в ZX Spectrum 16K при попытке доступа к адресам 32768-65535 ? Повторяет ли эта часть содержимое нижних 32k или каждый следующий банк 16k повторяет содержимое 16384-32767? Или как-то еще, например, при записи ничего не происходит, а при чтении считывается состояние шины?
В связи с этим еще вопрос по теме: в Multiface 1 всего 2k RAM, как они отображаются в памяти - как 4 раза по 2k (занимается полностью вторая половина нижних 16k) или как 2k RAM и 6k оставшегося ПЗУ? Или как-то еще?

Спасибо.

Evgeny Muchkin
13.02.2008, 13:42
ARTi, посмотри как это в спектакуляторе реализовано, там есть режим 16K. Не думаю, что кто-то задавался подобными вопросами, всетки совсем раритетная вещь этот Speccy 16K :)

Black_Cat
13.02.2008, 13:47
к какой памяти или ПЗУ производится доступ в ZX Spectrum 16K при попытке доступа к адресам 32768-65535 ? Повторяет ли эта часть содержимое нижних 32k или каждый следующий банк 16k повторяет содержимое 16384-32767?ничего не должно повторяться, это полноценный Спектрум, токо с урезанной памятью, выше 32к читаются FF и никуда ничего не пишется

в Multiface 1 всего 2k RAM, как они отображаются в памятигде ссылка?

ARTi
15.02.2008, 01:48
ничего не должно повторяться
Так не должно или не повторяется? Читается именно FF или состояние шины?
По поводу Multiface - ссылку на что? Если про 2k, то об этом написано, например, здесь (http://www.worldofspectrum.org/faq/reference/peripherals.htm), в разделе Multiface 1 / 128 / +3:

The Multiface requires no system memory; it has 8K EPROM and 8K RAM available on-board (Multiface 1 has 2K RAM only), and needs no software to operate.

Black_Cat
15.02.2008, 02:22
Так не должно или не повторяется?
а) в исправном не должно повторяться
б) если повторяется смотри пункт в)
в) ищи неисправность
Читается именно FF или состояние шины?а) FF по твоему это не состояние шины?
б) если при чтении памяти выше 32к, читается не FF - смотри пункт в)
в) ищи неисправность

в Multiface 1 всего 2k RAM, как они отображаются в памятикак-то еще..
ROM или RAM по очереди подменяют собой старшие 8к SOS ROM. Если RAM 2к то соответственно в промежутке 10-16к ничего нет.

ARTi
15.02.2008, 03:35
в исправном не должно
Опять 25! Ну ладно, пока проехали. А про НЕисправные вообще речь и не заходила.


FF по твоему это не состояние шины?
Для оригинальных ZX Spectrum это всего лишь одно из состояний шины. В оригинальном ZX Spectrum 48K из несуществующего порта (с "официальным" адресом #FF) считывается состояние шины, и это далеко не всегда значение #FF (взять хотя бы некоторые игрушки, которые используют эту особенность).


Если RAM 2к то соответственно в промежутке 10-16к ничего нет.
И снова здравствуйте! Что значит "ничего нет"? "Ничего нет" нового, т.е. неполная дешифрация, отчего повтор (см. первый пост)? "Ничего нет" - некому обработать запрос, поэтому ничего не пишется и читается состояние шины? "Ничего нет" - ничего не пишется и читается #FF (стоит заглушка)?

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

Спасибо :)

Black_Cat
15.02.2008, 04:04
В оригинальном ZX Spectrum 48K из несуществующего порта (с "официальным" адресом #FF) считывается состояние шиныне путай божий дар с яишницей.. ты не понимаешь суть процесса

Что значит "ничего нет"?опять же.. ты не понимаешь суть адресации, поэтому твои выводы не имеют ничего общего с действительностью. Если ничего нет - значит читаются FF.
"Ничего нет" нового, т.е. неполная дешифрация, отчего повтор (см. первый пост)? "Ничего нет" - некому обработать запрос, поэтому ничего не пишется и читается состояние шины? "Ничего нет" - ничего не пишется и читается #FF (стоит заглушка)?все утверждения мягко говоря некорректны. Рекомендую почитать Дж.Коффрон "Технические средства микропроцессорных систем. Практический курс" - хорошая книга для начинающих, или поверить мне на слово.

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

ram_scan
15.02.2008, 08:47
Человека просто интересует, полностью ли реализована дешифрация адресов в старших 32к для 16-кб ревизии спектрума (конкретно куда и как там была заведена A15), и внешними девайсами выполняющими подмену SOS. Потому-что иначе будет "заворот" адресного пространства. А неполную дешифрацию делать гораздо удобнее, потому-что по крайней мере для пзу-хи это как минимум на один многовходовой элемент "И" и двухвходовой "ИЛИ-НЕ" расходов меньше. А если дешифрация адреса сделана полностью, то в каком состоянии находится ШД при выставлении несуществующего адреса. В Z-состоянии или притянутая намертво к +5.

Например для старых ревизий TR-DOS (4 версии) которые имели 4-кб пзу-ху заворот адресного пространства имел место быть из-за неполной дешифрации, и эта ПЗУ-ха читалась с адресов 0h, 1000h, 2000h и 3000h.

Black_Cat
15.02.2008, 11:24
конкретно куда и как там была заведена A15в Спектруме A15 переключает мультиплексоры адресов ОЗУ: либо мультиплексоры адресного диапазона 16-32к, либо мультиплексоры 32-64к.
и внешними девайсами выполняющими подмену SOS.подмена SOS ROM производится через /ROMCS (вывод А25 на ZX bus). При банковании старших 8к ROM обычно дешифрация полная (т.е. А15-А13), т.к. нижняя часть SOS ROM при этом используется.
Например для старых ревизий TR-DOS (4 версии) которые имели 4-кб пзу-ху заворот адресного пространства имел место быть из-за неполной дешифрации, и эта ПЗУ-ха читалась с адресов 0h, 1000h, 2000h и 3000h.насколько кривая дешифрация в конкретном устройстве Multiface 1 без схемы не скажу, но сомневаюсь что производитель стал бы экономить два входа адреса при стандартной комплектации его 2к ОЗУ.
в каком состоянии находится ШД при выставлении несуществующего адреса. В Z-состоянии или притянутая намертво к +5.в оригинальном Спектруме шина данных не может находиться в Z-состоянии, т.к. притянута к +5.

ram_scan
15.02.2008, 12:37
в Спектруме A15 переключает мультиплексоры адресов ОЗУ: либо мультиплексоры адресного диапазона 16-32к, либо мультиплексоры 32-64к.

Так отсюда и вопрос, а вообще в 16к ревизии смонтирован оный мультиплексор ? В 48к то совершенно очевидно куда A15 заведено, и зачем..


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

Учитывая традицию платформы "экономить на всем на чем только можно" ожидать в теории можно всего чего угодно.


Спектруме шина данных не может находиться в Z-состоянии, т.к. притянута к +5.

Шина то не может, а вот выходы D подключеные к этой шине - таки как свезет, зависит от реализации девайса. Поэтому при невалидном адресе может с шины может читаться читаться как ее состояние, так и то что туда девайс после такой манипуляцмм выставил. Ладно если он в третье состояние ушел, тут все понятно, а то гляди будет там торчать что последний раз защелкнулось.

Black_Cat
15.02.2008, 12:54
Так отсюда и вопрос, а вообще в 16к ревизии смонтирован оный мультиплексор ?В 16к моделях скорее всего мультиплексоры ОЗУ диапазона 32-64К не ставились, но это ни на что не влияет.

таки как свезет, зависит от реализации девайса.некорректные схемы не рассматриваются

ARTi
15.02.2008, 17:46
Black_Cat
От Вас в этой теме я не услышал еще ни одной конкретики, а только лишь нечто расплывчатое:

<...>не должно повторяться<...>
<...>в исправном не должно<...>
<...>FF по твоему это не состояние шины?<...>
<...>в промежутке 10-16к ничего нет<...>
<...>При банковании старших 8к ROM обычно дешифрация полная<...>
<...>сомневаюсь что производитель стал бы экономить<...>
<...>В 16к моделях скорее всего<...>
<...>некорректные схемы не рассматриваются<...>

Тот, кто "врубается" и "понимает суть", а также видел диаграммы различных циклов Z80 (и не только Z80, и не только в "практических курсах", и не раз в жизни, а например почти каждый день), вряд ли сочтет подобную информацию конкретной или достаточной. Если Вы не знаете или не хотите брать на себя ответственность за свои слова, то не пишите, я же не заставляю :). Возможно, мои уточнения вначале были восприняты Вами как какие-то личные претензии - нет, это именно уточнения и ничего больше (мне часто говорят, что я зануда).
Может, все не так плохо, как мне кажется, однако желание понять мои вопросы я увидел пока что у всех ответивших в тему кроме Вас. Я уже не говорю о том, что Ваша оценка моих знаний - пустой звук (или символ) и вообще к теме не относится.

Собственно к чему я сам продолжаю этот оффтоп? Мои вопросы остаются в силе, если кто что знает, просьба ответить или дать мне ссылку, куда смотреть. Если есть различные реализации, то какие они.

Да и кстати. В Spectrum 16k ULA вроде не было смысла различать области памяти; при доступе к адресам 32768-65535 осуществлялась ли задержка процессора?
Вряд ли эта информация очень важна в конечном итоге. Но вдруг стало интересно.

Спасибо.

Black_Cat
15.02.2008, 19:36
:) ARTi ты наверно не зануда, но и не железячник, потому как вопросы задаёшь непрофессионально, а выводы из ответов делаешь просто фантастические, непонятно откуда возникающие, т.к. корреляция с ответами прослеживается очень слабо. Более того, ты на один ответ генеришь сразу несколько непонятно откуда полученных неверных утверждений, таким образом приумножая ерунду в геометрической прогрессии. Самый лучший способ разобраться в этом - это не отвечать на геометрически нарастающее количество странных умозаключений, а дать тебе возможность посмотреть книжку и грамотно выразить свои мысли, к тому-же думаю, что после ознакомления с ней у тебя просто не возникнет большая часть вопросов.

Если Вы не знаете или не хотите брать на себя ответственность за свои словаЯ кратко ответил на все твои вопросы кроме дешифрации 2к RAM. Ответы не уклончивы, в них есть ответ что должно быть при рабочем компьютере, иначе - может быть всё что угодно.

В Spectrum 16k ULA вроде не было смысла различать области памятиВ Spectrum 16k была только тормозная часть памяти, память выше 32к тормозной не была.

AlexCrush
15.02.2008, 21:10
Выскажу предположение, что в спеке 16к и 48к "юлы" были одинаковые. В 16м спеке просто она обращается к несуществующей линейке памяти, следовательно читаться должно или состояние шины или FF, думаю состояние шины.

ARTi
15.02.2008, 21:12
Black_Cat
Я Вам уже дал понять, что я думаю о Ваших оценках. Опускаться до того же в отношении Вас я не буду (хотя руки чешутся :), но точно знаю, что гнилое это дело, жизнь надоумит без моего вмешательства).
Однако же надо отдать Вам должное, в последнем посте, случайно или под влиянием извне, но Вы выразились достаточно конкретно, отчего выражаю Вам благодарность :).

В Spectrum 16k была только тормозная часть памяти, память выше 32к тормозной не была.

Black_Cat
15.02.2008, 21:28
ARTi, я не придираюсь и не собирался тебя обижать, мне это никчему. Т.к. ты понял превратно мои замечания, то постараюсь откомментировать твои реплики на мои ответы:

В оригинальном ZX Spectrum 48K из несуществующего порта (с "официальным" адресом #FF) считывается состояние шинымы говорим о памяти, а не о портах. В рабочем Спектруме из памяти не может читаться ничего кроме данных или FF, сравнение с портом #FF неуместно, очевидно недопонимание откуда он берётся.

"Ничего нет" нового, т.е. неполная дешифрация, отчего повтор (см. первый пост)?"Ничего нет" - значит пустота, почему пустота у тебя ассоциируется с неполной дешифрацией непонятно. При неполной дешифрации как раз всё будет заполнено копиями.
"Ничего нет" - некому обработать запрос, поэтому ничего не пишется и читается состояние шины?При обращении к памяти никто никакие запросы не обрабатывает, происходит просто дешифрация.
"Ничего нет" - ничего не пишется и читается #FF (стоит заглушка)?У программистов в программе может быть заглушка, у сантехников в трубе может быть заглушка, в вычислительной технике термина "заглушка" не существует.

Добавлено через 7 минут

Выскажу предположение, что в спеке 16к и 48к "юлы" были одинаковые.более того - не было Спека 16к как чего-то самостоятельного. Был абсолютно тот-же 48, но без верхней памяти.
читаться должно или состояние шины или FF, думаю состояние шины.:) ..просто поражаюсь.. нет никакого "или", есть только "состояние шины", которое принимает те или иные значения!

ARTi
15.02.2008, 23:18
Black_Cat, Конечно же я допускаю, что сознательное желание кого-либо "обидеть" у Вас отсутствует, однако же манера проведения разговора у Вас такова, что может быть либо по-Вашему, либо никак, причем если Вы сами чего-то недопонимаете или не знаете, значит этого просто нет или, что было в данном разговоре, это просто все вокруг идиоты, кроме Вас.
Разговаривать с людьми, которые подсознательно стараются как-то приподняться за счет собеседника (а потом объяснять, что, дескать, их просто поняли неправильно), мне неинтересно, вернее, даже неприятно. И хотя даже в этом случае свой урок я получаю, тем не менее я отношусь к таким людям просто как к инструментам (в чьих-то руках), не личностям.
Ввязываться тут и доказывать что-то - дело неблагодарное, и я жалею, что вообще начал требовать у Вас конкретику.
Кстати, в последнем Вашем посте ничего нет (кстати Вы сами часто употребляете это выражение ;) ):

<...>Т.к. ты понял превратно мои замечания<...>
<...>сравнение с портом #FF неуместно, очевидно недопонимание откуда он берётся<...>
<...>"Ничего нет" - значит пустота, почему пустота у тебя ассоциируется<...>
<...>в вычислительной технике термина "заглушка" не существует<...>
<...>просто поражаюсь.. нет никакого "или", есть только<...>

Есть только, как обычно :biggrin:, указания на то, что все вокруг жирафы. И опять никакой конкретики. Чтобы вконец нам тут не перейти на личности, рекомендую закончить вилянье задницей и вообще весь этот флейм ;). Вам-то может быть и интересно, а я вместо получения информации лишь трачу время и немного нервы - обидно прочитать очередной Ваш жирный пост и не найти в нем ничего.
И чтобы больше народу имело интерес ответить в теме, приходится каждый раз ее обновлять, что, мол, вопросы не решены, они открыты.

P.S. Вообще-то я думал, что у кто-то наверняка не раз изучил схемы 16k и поэтому уже знает ответы, и поделится ;). Если нет, придется мне самостоятельно прорабатывать эту тему.
Вопросы остались открыты. Информация нужна.

ram_scan
16.02.2008, 00:10
ARTi, я бы как девелопер железа вжисть не стал морочиться на полную дешифрацию "того чего у меня нет".

Если исходить из предположения что на 16 и 48к ULA стояла одинаковая, то за адресами 0x8000 (несуществующими) должно читаться состояние шины данных.

На сторонних девайсах с вероятностью близкой к 100% дешифрация неполная, поэтому там в рамках архитертурных ограничений и адресного пространства должен читаться дубликат. Потому-что лично я девелопя тот-же самый мультифейс был бы не настолько в голову убитый, чтобы заради "архитекрутной красоты" лепить в схему как минимум два лишних корпуса и удорожать устройство.

Предметно ответить на данные вопросы могут только люди имеющие 1) натурально 16й вариант спекки и 2) располагающие схемой мультифейса. Схема оная кстати лежит где-то в дебрях wos, но искать ее и заглядывать туда честно говоря я поленился.

Если говорить о мультифейсе то у него по большому счету единственная и безальтернативная точка входа, поэтому что там как в адресном пространстве оверлапится - личные половые трудности оного мультифейса. Программно его можно выловить только по 1) несоответствию экранной области памяти 2) содержимому регистра R и 3) тонким анализом IFF1 и IFF2 там где это возможно. Так что делай заворот адресного пространства и не конопать моск :-)

Black_Cat
16.02.2008, 00:31
:) ладно, не обижайся, никто за счёт тебя не собирался никуда приподниматься, просто когда на один ответ получаешь сразу целый рой некорректных реплик, то перспектива каждый раз отвечать на такое их количество вызывает единственную адекватную реакцию отправить автора к первоисточникам :) . Просто на будующее - ограничивайся одной репликой на один ответ, пусть даже и некорректной, на одну ответят все, на рой - никто отвечать не будет.
Что касательно ответов, то считаю их вполне достаточными, других у меня нет.

Добавлено через 16 минут

лепить в схему как минимум два лишних корпусаинтересно откуда взялось "два лишних корпуса", в то время как разница между 8к и 2к ОЗУ в двух адресных линиях, которые предусмотреть не будет стоить ни копейки..

ARTi
16.02.2008, 22:00
Black_Cat
Не обижаюсь, иначе бы не дожил до сегодняшнего дня :biggrin:


ram_scan

Если исходить из предположения что на 16 и 48к ULA стояла одинаковая, то за адресами 0x8000 (несуществующими) должно читаться состояние шины данных.
Что наиболее вероятно и наименее просто в реализации (эмуляции)...

Так что делай заворот адресного пространства и не конопать моск :-)
И это тоже непросто. Неужели придется городить банки по 2k? :-D

Black_Cat
17.02.2008, 00:23
Что касательно отсутствующей схемы дешифрации 2к RAM, то полагаю не стоит рассчитывать на то, что её делали малограмотные любители с жаждой сэкономить копейки. Учитывая, что все (кроме кривого BDI) дисковые системы на западе строились по одинаковому принципу, можно рассмотреть например дешифрацию в дисковой системе OpusDiscovery. Там тоже используется 2к RAM и дешифрация там полная, т.е. RAM занимает пространство 8-10к. Это нормальное грамотное инженерное решение и если дешифратор Multiface-1 разрабатывал инженер, а не девелопер, то результат будет аналогичным.

ram_scan
17.02.2008, 00:33
Дешифрация там полная по одной причине - там надо дешифровать корректно и ROM и RAM. Там где ее можно не делать, она никогда не сделана. Потому-что это 1) усложнение техпроцеса 2) схемы 3) лишний узел который может отказать и 4) это дороже по комплектухе. В IBM вон тоже не дебилы работают, тем не менее на IBM PC мы имеем неполную дешифрацию портов в/в на шине ISA. А в intel наверное тоже в отделе разработки сидят отбитые шизофреники, которые начиная с 286 камня забыли про полную дешифрацию и дали в реальном режиме адресовать более 1 мб памяти. А начиная с 386 камня там сделали неполную дешифрацию по флажку PM в CR0 и тем самым дали возможность адресовать в real mode все 4gb памяти. А в zilog набрали недоучек, и процессор получился с неполной дешифрацией команд, благодаря которым мы имеем целую кучу недокументированых фичей. Вобщем только Opus гуру разрабатывал, а остальные так, девелоперы.

Добавлено через 5 минут


интересно откуда взялось "два лишних корпуса", в то время как разница между 8к и 2к ОЗУ в двух адресных линиях, которые предусмотреть не будет стоить ни копейки..

С того что надо результат дешифрации по этим двум линииям (а это не обязательно 00 или 11) логически сложить с CS. В самом простом частном случае можно обойтись одним дополнительным корпусом используя два логических элемента "3-и-не". Только я что-то не врубаюсь с чего речть идет о двух линиях, если разговор о полной дешифрации ? 16 линий мой дорогой друк, 16. Если радеть за полную дешифрацию-то.

Добавлено через 10 минут


Что наиболее вероятно и наименее просто в реализации (эмуляции)...
И это тоже непросто. Неужели придется городить банки по 2k? :-D

Да все на самом деле тривиально. На адрес масочку наложил и всего делов. Заворот сам получится. Одна логическая операция, обьем памяти же кратен степени двойки.

Что касается 16к и состояния ШД, то читаться там будет всегда гарантировано 0ffh. То есть такого волшебства как захват даных видеопамяти при чтении из несуществующего порта наблюдаться не будет.

Black_Cat
17.02.2008, 00:47
Некорректное сравнение. Есть ошибки, а есть неграмотно выполненная работа. В Спеке вон тож под #FE пол адресного пространства портов отдали - дык имели полное на то право. А если-бы какой девелопер проделал то-же самое с остальными адресами, то ему сразу же указали-бы куда ему следует засунуть его руки.

Добавлено через 6 минут

16 линий мой дорогой друкты наверно всёж не инженер, а девелопер :) токо без обид..

ram_scan
17.02.2008, 00:57
Я все-таки однако инженер. О чем даже и диплом имею. Поэтому может понадобиться воткнуть девайс в ту часть адресного пространства, где одной адресной линией не обойдешься.

А то стандарт какой-то двойной получается. С одной стороны ты за полную дешифрацию, а с другой стороны "ROM у нас всегда с 0 адреса". Кто сказал ?

Девелопер имеет полное право так сделать и ни одна живая душа его в этом не упрекнет если такое решение не интерферирует с софтом и оборудованием. И только нездоровый психически человек начнет там городить абсолютно ненужный огород.

Black_Cat
17.02.2008, 01:10
С одной стороны ты за полную дешифрацию, а с другой стороны "ROM у нас всегда с 0 адреса". Кто сказал ?с дуру оно конечно можно и член сломать, но по любому для дешифрации 2к ОЗУ в адресном диапазоне 64к - надо 5 адресов, а для 8к ОЗУ - 3 адреса. 5-3=2 - разница в две адресные линии.

ARTi
17.02.2008, 16:00
Да все на самом деле тривиально. На адрес масочку наложил и всего делов. Заворот сам получится. Одна логическая операция, обьем памяти же кратен степени двойки.
Ну конечно! Тут маску накладываем, а там пару сравнений делаем, нужно ли накладывать маску или нет, а задним числом еще проверяем, ROM у нас или RAM, а если ROM, то какой :biggrin:, и т.д. и т.п.
Многовато тривиальностей получается, да и операций, хоть и простейших, но в целом набегает... Что недопустимо (для меня).
Я когда делал переход с 16k банков на 8k, волновался, что все затормозится по самое не балуйся. Однако как будто бы ничего не произошло, даже ошибок вроде не появилось. А городить банки по 2k только лишь из-за одного Multiface 1 и его RAM 2k не хотелось бы... но это как будто самое приемлемое решение. Возникала правда мысль отойти от статического банкирования и придумать нечто динамическое с не большими затрами времени/памяти, но мне пока ее не уловить :biggrin:
Даже если проблемы адресации 64k с учетом выбора банков ROM/RAM отобразить на архитектуру x86 и если предположить, что нам дали зеленый свет на работу с механизмом страничной адресации, то и там минимальная граница, где быстро можно отследить доступ - 4k.

P.S. В общем, в результате своих (воз)излияний я похоже решил, что мне делать :)

ram_scan
17.02.2008, 17:04
с дуру оно конечно можно и член сломать, но по любому для дешифрации 2к ОЗУ в адресном диапазоне 64к - надо 5 адресов, а для 8к ОЗУ - 3 адреса. 5-3=2 - разница в две адресные линии.

Даже по этой самой идеологии (несмотря на то что в рассуждениях есть ошибка) получается неполная дешифрация.

Покажи мне как пятью битами дешифровать двухкилобайтный ROM включеный по адресу 0xf800, И я публично тут посыплю себе голову пеплом. Потому-что как я блин ни считаю, у меня меньше чем 7 бит на дешифрацию двухкилобайтного ROM ну никак не получается.

Если говорить о девайсе У которого ROM расположен с 0 адреса, то для дешифрации достаточно вообще одной адресной линии. Если этот ROM недоступен программно из стендартного окружения, то он хоть пусть на голове там стоит со своей неполной дешифрацией.

Добавлено через 11 минут

Ну конечно! Тут маску накладываем, а там пару сравнений делаем, нужно ли накладывать маску или нет, а задним числом еще проверяем, ROM у нас или RAM, а если ROM, то какой :biggrin:, и т.д. и т.п.
Многовато тривиальностей получается, да и операций, хоть и простейших, но в целом набегает... Что недопустимо (для меня).


А в чем сложности ? Если известно, что подключен такой-то эмулируемый девайс, то на дешифрацию данного девайса требуется ровно две операции, маскирование адреса и сравнение. По результату сравнения выдается адрес блока памяти в котором нужная область располагается, после чего происходит выборка данных. Придется делать это каждый раз при выборке из памяти, никуда от этого не денешься.

Black_Cat
17.02.2008, 17:38
как пятью битами дешифровать двухкилобайтный ROM включеный по адресу 0xf800, И я публично тут посыплю себе голову пепломпосыпание ни к чему CS=A15&A14&A13&A12&A11

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

ram_scan
18.02.2008, 08:30
посыпание ни к чему CS=A15&A14&A13&A12&A11

Первоначально много написал но выяснил что сам таки обсчитался. Действительно 5 бит достаточно. Пальцев не хватило посчитать правильно сразу.


при чём тут это? Альтернативная память там включается либо специальным портом, либо по специальной точке входа в ОЗУ, а дешифрация нужна уже при включенной альтернативной памяти, чтоб в ней самой небыло гемора.

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

В общем-то случае достаточно дешифратора на точку входа/порт активации, и сигнала /ROM если девайс свое теневое ПЗУ внедряет. И получаем в итоге неполную дешифрацию.

ARTi
25.02.2008, 16:18
А ROM у 16k и 48k было одно и то же? Т.е. например тест памяти в 16k так же пытался ворошить всю память как и в 48k?

Black_Cat
25.02.2008, 17:24
А ROM у 16k и 48k было одно и то же? одно и то же, это один и тот-же компьютер, только с недопаянными элементами

Ewgeny7
25.02.2008, 18:16
одно и то же,
А не было ли небольшой разницы в прошивках из-за разницы в вершинах стеков Васика и машинного? :)

Black_Cat
25.02.2008, 18:40
16 переделывались в 48 без замены ПЗУ

AlexCrush
25.02.2008, 18:47
А не было ли небольшой разницы в прошивках из-за разницы в вершинах стеков Васика и машинного? :)
RAMTOP определяется автоматически по последней исправной (на взгляд теста памяти) ячейке.

goodboy
25.02.2008, 19:49
А ROM у 16k и 48k было одно и то же?

да - судя по импортным эмуляторам.

ARTi
26.02.2008, 01:12
Ну и отлично (с)