PDA

Просмотр полной версии : #7FFD в унреале?



lvd
26.03.2005, 13:12
Странная вещь - какую бы я модель памяти не ставил в 0.26, ауты в порт #FD всё равно работают! Ставил и профи, и атм 4.5, и скорп... Это что - для пущей совместимости с глюкодромами? ... =) :) ;) -)

GriV
26.03.2005, 13:51
Странная вещь - какую бы я модель памяти не ставил в 0.26, ауты в порт #FD всё равно работают! Ставил и профи, и атм 4.5, и скорп... Это что - для пущей совместимости с глюкодромами? ... =) :) ;) -)

Жалуйся 2SMT вдруг он услышит твои мольбы :)

SMT
26.03.2005, 15:40
разве плохо, что работает? :) :)

Spectre
26.03.2005, 17:26
Странная вещь - какую бы я модель памяти не ставил в 0.26, ауты в порт #FD всё равно работают! Ставил и профи, и атм 4.5, и скорп... Это что - для пущей совместимости с глюкодромами? ... =) :) ;) -)

У меня был доработанный скорп с жесткой дешифрацией #1FFD (к нему можно было обратиться только по полному адресу), а по #FD великолепно щелкался #7FFD. Также у Dien'а (железячника, автора этой доработки) был Профи с аналогичной жесткой дешифрацией #DFFD. Так что это не глюк, а вполне нормальная вещь. Но в хелпе к эмулятору я бы такое упомянул.

lvd
26.03.2005, 17:44
разве плохо, что работает? :) :)

Плохо, когда на вшивость надо проверять всякие поделки глюкодромные. А то тогда уж и галку 'unstable data bus' убирай нафиг =)

lvd
26.03.2005, 17:46
У меня был доработанный скорп с жесткой дешифрацией #1FFD (к нему можно было обратиться только по полному адресу), а по #FD великолепно щелкался #7FFD.

ld a,#1f:out (#fd),a - ну и?


Так что это не глюк, а вполне нормальная вещь. Но в хелпе к эмулятору я бы такое упомянул.
Ну если это нормальная вещь, то тогда эмулятор эмулирует только пентагон + ещё сколько-то виртуальных (=несуществующих) конфигураций.

Spectre
26.03.2005, 18:14
ld a,#1f:out (#fd),a - ну и?

Отработает нормально (#1f->#7ffd). Суть доработки: отлавливаем на шине появление команд с кодами #d3 и #db и на время их выполнения отключаем #1ffd.


Ну если это нормальная вещь, то тогда эмулятор эмулирует только пентагон + ещё сколько-то виртуальных (=несуществующих) конфигураций.

Причем здесь пентагон? OUT (#FD),A должно работать на всех клонах имеющих не менее 128Кб памяти. Если не работает, то это проблема конкретного клона и должна лечится всякими тумблерами и доработками.

lvd
26.03.2005, 18:25
Отработает нормально (#1f->#7ffd). Суть доработки: отлавливаем на шине появление команд с кодами #d3 и #db и на время их выполнения отключаем #1ffd.

Угу, только вот я в #1ffd хотел #1f записать.


Причем здесь пентагон? OUT (#FD),A должно работать
- Что сделает билгей, если у него перегорит лампочка?
- Ничего, он объявит темноту стандартом.

Vladimir Kladov
26.03.2005, 19:58
такая фраза в статье All spectrums I know (о русских клонах), про порты Scorpion256:

these two ports ( 7ffd and 1ffd ) cannot be accessed thru basic. basic operator OUT will hang or reset the machine. only one exception - bits d2 and d5 of 1ffd. rest of digits of these ports must be accessed using machine code.

Интересно, что это значит и почему это 7ffd не может быть accessed из пзу...

Spectre
26.03.2005, 22:10
Угу, только вот я в #1ffd хотел #1f записать.

Пиши как положено:

LD BC,#1FFD
LD A,#1F
OUT (C),A

В мануале на скорпион, если я правильно помню настоятельно рекомендовалось только так и обращаться к #1FFD.

Своим примером ты заодно занесешь #1F в #7FFD.

lvd
26.03.2005, 22:33
Пиши как положено:
LD BC,#1FFD
LD A,#1F
OUT (C),A
В мануале на скорпион, если я правильно помню настоятельно рекомендовалось только так и обращаться к #1FFD.

Ну вот - а в мануалах на фирменные спеки только порт #7ffd упоминается (хотя вру, есть и #1ffd).



Своим примером ты заодно занесешь #1F в #7FFD.
С чего бы вдруг? ША=#1ffd, ШД=#1f, ну и?

lvd
26.03.2005, 22:40
такая фраза в статье All spectrums I know (о русских клонах), про порты Scorpion256:

these two ports ( 7ffd and 1ffd ) cannot be accessed thru basic. basic operator OUT will hang or reset the machine. only one exception - bits d2 and d5 of 1ffd. rest of digits of these ports must be accessed using machine code.

Интересно, что это значит и почему это 7ffd не может быть accessed из пзу...

Точно не помню, но вроде ауты нормально работали. И ещё есть прикол - в теневой монитор, пока выполняется код из рома, не попадёшь (afair).

SMT
27.03.2005, 03:43
out (#fd),#1f будет работать как вывод в 1ffd, в unreal не анализируется опкод. если хотите точности дешифрации портов, используйте RealSpectrum. но тогда имеется следующий недостаток: процедуры дешифрации портов свои для каждой модели. то есть если бы был порт #EFF7, то он бы работал только в пентагоне, smuc ide работает только в скорпионе. мне больше нравится конструктор, чтобы можно было подключать устройства в любом составе. можно включить nemo ide в скорпион, или, наоборот, smuc ide в пентагон. но тогда есть погрешности в дешифрации портов, так как используеся один код дешифрации для всех моделей

Spectre
27.03.2005, 16:55
По поводу LD A,#1F:OUT (#FD),A - это очень неприятный момент.

У меня сначала был обычный Скорпион на котором демки и игры юзающие OUT (#FD),A не работали. Приходилось отключать #1FFD перед их запуском, что было неудобно. Потом мне сделали жесткую
дешифрацию #1FFD и жить стало лучше. Но те программы что использовали LD A,#1F:OUT (#FD),A, а это в первую очередь STS, все равно не работали. Пришлось сделать доработку о которой
я писал выше и тогда все стало хорошо.

Лично мое IMHO: в порт #1FFD (#FDFD, #DFFD) должны обращаться только по полному адресу: LD BC,#1FFD: OUT (C),A. Все остальные обращения должны попадать только в #7FFD. Отклонения от этого должны исправляться, в реальных спектрумах при помощи паяльника, в эмуляторах авторами.

ASMAN
27.03.2005, 22:52
По поводу LD A,#1F:OUT (#FD),A - это очень неприятный момент.

У меня сначала был обычный Скорпион на котором демки и игры юзающие OUT (#FD),A не работали. Приходилось отключать #1FFD перед их запуском, что было неудобно. Потом мне сделали жесткую
дешифрацию #1FFD и жить стало лучше. Но те программы что использовали LD A,#1F:OUT (#FD),A, а это в первую очередь STS, все равно не работали. Пришлось сделать доработку о которой
я писал выше и тогда все стало хорошо.

Лично мое IMHO: в порт #1FFD (#FDFD, #DFFD) должны обращаться только по полному адресу: LD BC,#1FFD: OUT (C),A. Все остальные обращения должны попадать только в #7FFD. Отклонения от этого должны исправляться, в реальных спектрумах при помощи паяльника, в эмуляторах авторами.
Со всем с тобой согласен! Поддерживаю! ;) Должен быть какй-то стандарт! :)

lvd
27.03.2005, 23:39
Со всем с тобой согласен! Поддерживаю! ;) Должен быть какй-то стандарт! :)

И стандарт этот называется #7ffd. Никак не #fd, а именно #7ffd. Всё остальное - из серии 'билгей и лампочка'.

lvd
27.03.2005, 23:41
out (#fd),#1f будет работать как вывод в 1ffd, в unreal не анализируется опкод. если хотите точности дешифрации портов, используйте RealSpectrum.

SMT, а как вообще получается, что в унреале ld a,#17 : out (#fd),a выводит в #7ffd ? У тебя именно по 2 битам дешифруется или как? А если по 2 битам, то почему тогда ld a,#1f : out (#fd),a в #1ffd выведет?...

PS: Я в общем-то попросил именно чтобы #7ffd только по #7ffd дешифровался... Но если это сложно галкой в унреале сделать, то так и быть, пусть его... ;)

Vladimir Kladov
28.03.2005, 15:55
разве в какой-либо конфигурации спектрума анализируется опкод при дешифрации портов? где про это прочитать можно? Я про 1FFD полагал, что он анализируется по полному адресу, а если это не 1FFD, то уже анализируется BFFD/FFFD, и параллельно 7FFD (т.е. бывают демки, которые написаны исходя из того, что байт может быть записан одновременно в AY и порт 128-го). Но про 1FFD я считал, что он при дешифрации имеет приоритет.

SMT
28.03.2005, 18:31
в нескольких журналах (не помню, в каких) видел схемы доработок, которые запоминают один или несколько бит опкода с ШД при M1=0,RD=0,MREQ=0, чтобы отличить D3/DB от опкодов типа ED+41. расширенные порты (1FFD, DFFD) активизируются только во втором случае. в эмуляторах такая опция есть afaik только у Z80S. в итоге любой вывод в #FD работает как в #7FFD (даже #1F) и достигается очень хорошая совместимость с пентагоном

jtn
28.03.2005, 20:08
уже анализируется BFFD/FFFD, и параллельно 7FFD (т.е. бывают демки, которые написаны исходя из того, что байт может быть записан одновременно в AY и порт 128-го).
не может быть, они жестко разделены сигналом A15. зато есть демки, использующие порт #FC (#FE+#FD для переключения экрана и бордера)

Vladimir Kladov
28.03.2005, 21:34
точно, и чего это я перепутался так :)