Ну вот - а в мануалах на фирменные спеки только порт #7ffd упоминается (хотя вру, есть и #1ffd).Сообщение от Spectre
С чего бы вдруг? ША=#1ffd, ШД=#1f, ну и?Своим примером ты заодно занесешь #1F в #7FFD.
Ну вот - а в мануалах на фирменные спеки только порт #7ffd упоминается (хотя вру, есть и #1ffd).Сообщение от Spectre
С чего бы вдруг? ША=#1ffd, ШД=#1f, ну и?Своим примером ты заодно занесешь #1F в #7FFD.
Точно не помню, но вроде ауты нормально работали. И ещё есть прикол - в теневой монитор, пока выполняется код из рома, не попадёшь (afair).Сообщение от Vladimir Kladov
out (#fd),#1f будет работать как вывод в 1ffd, в unreal не анализируется опкод. если хотите точности дешифрации портов, используйте RealSpectrum. но тогда имеется следующий недостаток: процедуры дешифрации портов свои для каждой модели. то есть если бы был порт #EFF7, то он бы работал только в пентагоне, smuc ide работает только в скорпионе. мне больше нравится конструктор, чтобы можно было подключать устройства в любом составе. можно включить nemo ide в скорпион, или, наоборот, smuc ide в пентагон. но тогда есть погрешности в дешифрации портов, так как используеся один код дешифрации для всех моделей
По поводу 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. Отклонения от этого должны исправляться, в реальных спектрумах при помощи паяльника, в эмуляторах авторами.
Со всем с тобой согласен! Поддерживаю! Должен быть какй-то стандарт!Сообщение от Spectre
И стандарт этот называется #7ffd. Никак не #fd, а именно #7ffd. Всё остальное - из серии 'билгей и лампочка'.Сообщение от ASMAN
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
SMT, а как вообще получается, что в унреале ld a,#17 : out (#fd),a выводит в #7ffd ? У тебя именно по 2 битам дешифруется или как? А если по 2 битам, то почему тогда ld a,#1f : out (#fd),a в #1ffd выведет?...Сообщение от SMT
PS: Я в общем-то попросил именно чтобы #7ffd только по #7ffd дешифровался... Но если это сложно галкой в унреале сделать, то так и быть, пусть его...
разве в какой-либо конфигурации спектрума анализируется опкод при дешифрации портов? где про это прочитать можно? Я про 1FFD полагал, что он анализируется по полному адресу, а если это не 1FFD, то уже анализируется BFFD/FFFD, и параллельно 7FFD (т.е. бывают демки, которые написаны исходя из того, что байт может быть записан одновременно в AY и порт 128-го). Но про 1FFD я считал, что он при дешифрации имеет приоритет.
в нескольких журналах (не помню, в каких) видел схемы доработок, которые запоминают один или несколько бит опкода с ШД при M1=0,RD=0,MREQ=0, чтобы отличить D3/DB от опкодов типа ED+41. расширенные порты (1FFD, DFFD) активизируются только во втором случае. в эмуляторах такая опция есть afaik только у Z80S. в итоге любой вывод в #FD работает как в #7FFD (даже #1F) и достигается очень хорошая совместимость с пентагоном
не может быть, они жестко разделены сигналом A15. зато есть демки, использующие порт #FC (#FE+#FD для переключения экрана и бордера)Сообщение от Vladimir Kladov
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)