Вход

Просмотр полной версии : Медленные страницы памяти



Vladimir Kladov
13.04.2005, 21:35
в режиме ZX Spectrum 128 должны быть 4-7
это в 128/+2A/+3 так, а в 128 оригинальном были именно нечетные. Есть сомнения насчет +2 (который без A), по одним источникам как в 128 нечетные, по другим - как в +2А/+3 - 4-7. Либо кто-то из них ошибся, либо в жизни были разные варианты +2.

©1983 Sinclair Research Ltd MJB
- а почему оно не появляется в спектакуляторе? Или где смотреть? Я с удовольствием исправлю, если буду знать, что не так работает.

Conan
13.04.2005, 22:56
это в 128/+2A/+3 так, а в 128 оригинальном были именно нечетные. Есть сомнения насчет +2 (который без A), по одним источникам как в 128 нечетные, по другим - как в +2А/+3 - 4-7. Либо кто-то из них ошибся, либо в жизни были разные варианты +2.

©1983 Sinclair Research Ltd MJB
- а почему оно не появляется в спектакуляторе? Или где смотреть? Я с удовольствием исправлю, если буду знать, что не так работает.
Схемы ZX Spectrum 128 и ZX Spectrum +2 почти идентичные, так же как и схема ZX Spectrum +2А/B идентична (если не считать контроллер дисковода) с ZX Spectrum +3. А откуда, если не секрет информация о медленных страницах 1,3,5,7?



Какую версию IF ROM «Спектакулятор» по умолчанию использует, сказать сложно. Я заменял руками на вторую, но ничего не менялось (хотя в реальном железе – меняется). Так же я не представляю, как эмулируется обработка RST#8, подмена ПЗУ и обработка возврата (адрес 700h) в обычное ПЗУ. Скорее всего, проблема в логике перехода или возврата.

jtn
14.04.2005, 21:25
А откуда, если не секрет информация о медленных страницах 1,3,5,7?

подсмотри демку First Association preview

Conan
15.04.2005, 03:45
подсмотри демку First Association preview
Посмотрел демку от First Association (по второму разу) ибо уже обсуждал это тут: http://zx.pk.ru/showthread.php?t=531 (http://zx.pk.ru/showthread.php?t=531)

Источник достаточно сомнительный, ибо Чехи (неизвестно что у них был за 128-й) и год 1997 (поздновато для обнаружения столь явной ошибки). НО, не будем торопиться делать выводы. Написал письмо владельцу фирменного 128, а пока он будет что-то тестировать и отвечать, поискал информацию на WOS: http://www.worldofspectrum.org/forums/viewtopic.php?topic=7951&forum=11 (http://www.worldofspectrum.org/forums/viewtopic.php?topic=7951&forum=11)

и на comp.sys.sinclair FAQ: http://www.albertopalladini.it/spectrum/reference/128kreference.htm#Plus2 (http://www.albertopalladini.it/spectrum/reference/128kreference.htm#Plus2)

и просто comp.sys.sinclair:

http://www.google.ru/groups?selm=968449393.10827.0.nnrp-07.c2de7091%40news.demon.co.uk&output=gplain (http://www.google.ru/groups?selm=968449393.10827.0.nnrp-07.c2de7091%40news.demon.co.uk&output=gplain)



Проникся сомнением, но затем прочитал вот это:

http://www.spectaculator.com/ (http://www.spectaculator.com/)Changed the contended memory model for the 128k/+2 since 3.0 Beta 1. Pages 1,3,5,7 are now contended rather than 4,5,6,7 as previously stated in the CSS FAQ. This fixes (or rather breaks) the Losing Victoria demo so that it behaves just like on a real Spectrum. However, the speech on Treasure Island Dizzy now plays properly. Info via Woody from Steve Snake. Thanks :)Уважаемый Владимир Кладов, вы случайно не эту информацию использовали?



Одно лечим, другое калечим. Мнения разделились.

А теперь заглянем в фирменный Service Manual к ZX Spectrum 128

ftp://ftp.worldofspectrum.org/pub/sinclair/technical-docs/ZXSpectrum128K_TechnicalManual.pdf (ftp://ftp.worldofspectrum.org/pub/sinclair/technical-docs/ZXSpectrum128K_TechnicalManual.pdf)

П.4.2.:
Pages 0-3 are uncontended and are accessed solely by the Z80. Pages 4-7 are contended in that the Z80 and ULA IC1 both require access to pages 5 and 7 in order to generate the memory mapped displays.
Источник вызывает больше доверия, чем предыдущие но, разумеется, в нем тоже может быть ошибка или опечатка. Поэтому заглянем в корень проблемы, то есть, изучаем схему родного ZX Spectrum 128. Порт #7FFDh на ней, это обычный триггер LS174 (555ТМ9), и шина данных на него заходит и выходит на ПЛМ PAL10HB. Смотрим в П.4.5 и 4.6. сигналы на входах и выходах ПЛМ: ULA14 и ULA15. Все совпадает - Pages 4-7 are contended, как и написано в П.4.2.



Вывод: Либо фирменный ZX Spectrum 128 не соответствует схеме (что маловероятно, потому что я перепроверил и схему ZX Spectrum +2), либо ошибка в PAL10HB (что так же маловероятно, потому что ошибка в одном бите там невозможна). Либо ошибаются те, кто говорят, что медленные это 1,3,5,7 страницы и при этом не указывают, почему они так решили.

Пока что я склоняюсь к тому, что ошибаются последние, хотя бы потому, что не встречал нигде описаний ошибок у фирменных 128-ых, в журналах 1986-1988 годов. А как известно любая несовместимость вызывала массу «воплей» и жалобных статей, ибо на руках в то время было много «родных машин».

Кстати есть и достаточно простое объяснение, почему некоторым демам требуются быстрые страницы 4 и 6: их могли делать на эмуляторах или машинах, где нет «медленной» памяти, типа наших Pentagon 128.

jerri
15.04.2005, 11:31
Проникся сомнением, но затем прочитал вот это:

http://www.spectaculator.com/ (http://www.spectaculator.com/)Changed the contended memory model for the 128k/+2 since 3.0 Beta 1. Pages 1,3,5,7 are now contended rather than 4,5,6,7 as previously stated in the CSS FAQ. This fixes (or rather breaks) the Losing Victoria demo so that it behaves just like on a real Spectrum. However, the speech on Treasure Island Dizzy now plays properly. Info via Woody from Steve Snake. Thanks :)Уважаемый Владимир Кладов, вы случайно не эту информацию использовали?



Одно лечим, другое калечим. Мнения разделились.

А теперь заглянем в фирменный Service Manual к ZX Spectrum 128

ftp://ftp.worldofspectrum.org/pub/sinclair/technical-docs/ZXSpectrum128K_TechnicalManual.pdf (ftp://ftp.worldofspectrum.org/pub/sinclair/technical-docs/ZXSpectrum128K_TechnicalManual.pdf)

П.4.2.:
Pages 0-3 are uncontended and are accessed solely by the Z80. Pages 4-7 are contended in that the Z80 and ULA IC1 both require access to pages 5 and 7 in order to generate the memory mapped displays.
Источник вызывает больше доверия, чем предыдущие но, разумеется, в нем тоже может быть ошибка или опечатка. Поэтому заглянем в корень проблемы, то есть, изучаем схему родного ZX Spectrum 128. Порт #7FFDh на ней, это обычный триггер LS174 (555ТМ9), и шина данных на него заходит и выходит на ПЛМ PAL10HB. Смотрим в П.4.5 и 4.6. сигналы на входах и выходах ПЛМ: ULA14 и ULA15. Все совпадает - Pages 4-7 are contended, как и написано в П.4.2.



Вывод: Либо фирменный ZX Spectrum 128 не соответствует схеме (что маловероятно, потому что я перепроверил и схему ZX Spectrum +2), либо ошибка в PAL10HB (что так же маловероятно, потому что ошибка в одном бите там невозможна). Либо ошибаются те, кто говорят, что медленные это 1,3,5,7 страницы и при этом не указывают, почему они так решили.

Пока что я склоняюсь к тому, что ошибаются последние, хотя бы потому, что не встречал нигде описаний ошибок у фирменных 128-ых, в журналах 1986-1988 годов. А как известно любая несовместимость вызывала массу «воплей» и жалобных статей, ибо на руках в то время было много «родных машин».

Кстати есть и достаточно простое объяснение, почему некоторым демам требуются быстрые страницы 4 и 6: их могли делать на эмуляторах или машинах, где нет «медленной» памяти, типа наших Pentagon 128.

на 48 тормозная была #4000-#7fff

на 128 48 память идет как 5,2,0

может так аналогии поискать

в Rick Dangerous 2 в версии от S.S.Captain в загрузчике несколькими покями менялась страница с музыкой с 1ой на 6ую (?вроде так)

а в том же CHASE H.Q. все 128 фичи сбрасывались в 48 память и работали уже из нее

Conan
15.04.2005, 12:25
на 48 тормозная была #4000-#7fff

на 128 48 память идет как 5,2,0


Все верно, но не противоречит ни утверждению что медленные страницы 4-7 ни 1,3,5,7 ибо 5-я и там и там попадает в медленные а 0-я и 2-я в быстрые.

Да и с «железной» точки зрения все просто: это разные линейки микросхем 4164. Вопрос именно в том, не спутаны ли физически на плате (даже на двух разных) биты 0 и 2 порта #7FFDh. Надеюсь, что прояснят это владельцы реальных ZX Spectrum 128 или «серых» +2.

Conan
17.04.2005, 00:07
Благодаря трудам Камиля Каримова, удалось протестировать фирменную машину ZX Spectrum +2 и найти достоверный ответ:

---------------------

page | takts per INT

---------------------

0 | 70848

1 | 57808

2 | 70848

3 | 57808

4 | 70848

5 | 57808

6 | 70848

7 | 57792

Окончательный вывод: в машинах ZX Spectrum 128/+2 медленные страницы: 1,3,5,7. Судя по всему, это ошибка при разводке платы (либо в прошивке PAL), допущенная еще испанцами. Интересно и то, что ее не заметил Amstrad.

jtn
17.04.2005, 00:30
Окончательный вывод: в машинах ZX Spectrum 128/+2 медленные страницы: 1,3,5,7. Судя по всему, это ошибка при разводке платы (либо в прошивке PAL), допущенная еще испанцами. Интересно и то, что ее не заметил Amstrad.
а может так и было задумано, ведь 5,2,0 страницы такие же получились.

Conan
17.04.2005, 00:36
а может так и было задумано, ведь 5,2,0 страницы такие же получились.Вряд ли, ибо в фирменной документации указаны 4-7, да и страницы 5,2,0 одинаковые (с точки зрения тормозов) и в том и в другом случае. Кроме того в Service Manual к фирменному 128-му "разжевано" (входы-выходы PAL) именно про медленную работу страниц 4-7.

Conan
18.04.2005, 13:12
Получил еще одно подтверждение от владельца фирменного ZX Spectrum 128. Медленные страницы: 1,3,5,7. Вопрос полностью прояснился.