Приветствую Вас Гость | RSS


Главная страница » Путеводитель по ZX-портам (от BC) - Страница 2 - ZX-Форум » Регистрация » ВходСреда
2024-04-24
13:54:01
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
ZX-Форум » Hardware » Hardware » Путеводитель по ZX-портам (от BC) (Правим ошибки)
Путеводитель по ZX-портам (от BC)
нолькаДата: Среда, 2008-11-05, 09:31:10 | Сообщение # 16
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
Quote (Black_Cat)
5 D4#7FFD Device modify mode(7) _0 _x rdTRBIO>ROM(ZX) - типо трдос записан в пзу _1 _0 rdTRBIO>RAM(CP/M) - типо трдос записан в озу _1 _1 CP/M Enhanced memory mode - а вот это я не знаю что они имели ввиду..
нет. бит CPM запрещает вход в трдос по #3dxx, а также вместе с битом ROM14 определяет тип адресации - см. соответствующие таблички. Т.е. если CPM=0, то имеем стандартный спектрум, сигнал DOS переключает порты ВГ93 и ВВ55 (т.к. они одинаковые). При CPM=1, а ROM14=0 пзу трдос включить нельзя, но порты трдос доступны из озу (см таблицу), при этом адрес порта FF становится BF (это не ошибка), а вот порты ВВ55 в этом режиме не доступны (в таблице ошибка), ну и в режиме CPM=1 ROM14=1 доступны все порты периферии по 8битным адресам, см. таблицу.

p.s. там еще напписано, что при проецировании сегмента 6 в адреса 8000-bfff надо установить бит PLEKR в CMR0. Для проецирования в память конечно его устанавливать не надо, этот бит как и в спектрум режиме переключает лишь отображаемый экран. В cp/m режиме вместо 5 стал 4, а вместо 7 - 6 банк, который и впечатывается.


я проснулся среди ночи и понял, что всё...
всё идет по плану
 
нолькаДата: Среда, 2008-11-05, 09:39:37 | Сообщение # 17
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
вспомнил еще 1 тонкий момент в прогаммировании палитры:
цвет бордера - это индекс в таблице цвета, а на старший адрес порта #xx7E подается значение (всего 256цветов, байт цвета кодируется: G2G1G0R2R1R0B2B1). Но программирование каждого идет в два вывода в порт, т.е. сначала устанавливаем адрес=цвет бордера, а потом уже следующим выводом значение (попутно выставляется адрес следующего цвета).


я проснулся среди ночи и понял, что всё...
всё идет по плану
 
Black_CatДата: Четверг, 2008-11-06, 17:44:54 | Сообщение # 18
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (нолька)
Но программирование каждого идет в два вывода в порт, т.е. сначала устанавливаем адрес=цвет бордера, а потом уже следующим выводом значение (попутно выставляется адрес следующего цвета).

не, не так! Запись проходит за один приём, т.к. порт бордюра дешифрируется токо по А0, т.е. он откликается на все чётные порты, а значит и на запись в #хх7E. Вобщем, как реализована запись в регистр палитры мне понравилось smile . Как понимаю, для каждой строки можно иметь свою палитру, подгружая её во время бордюра. Прикольно smile , хоть и расточительно, гораздо экономней иметь бОльшую ёмкость ОЗУ палитр и просто щёлкать его адресами перед началом строки экрана, а палитры грузить при старте программы.
Вот, поправил значение битов #dffd:
D5 D4#7FFD Device modify mode(7)
_0 _x (IOTRD&TRBIO)Shdw-on,IO-on(ZX)
_1 _0 IOTRDnonShdw-on,IO&TRBIO-off(CP/M)
_1 _1 IO-on,IOTRD&TRBIO-off(CP/M)
прокатит? коряво конечно..


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
 
нолькаДата: Четверг, 2008-11-06, 19:27:28 | Сообщение # 19
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
Quote (Black_Cat)
не, не так! Запись проходит за один приём, т.к. порт бордюра дешифрируется токо по А0, т.е. он откликается на все чётные порты, а значит и на запись в #хх7E.
я же русским языком написал. то что для записи используется 7Е и так понятно. нюанс именно в том, что на ру2 адрес должен прийти раньше чем данные, а данные приходят именно по импульсу записи в 7Е, адрес при этом равен еще предыдущему значению. Смотри мой исходник, там сначала устанавливается адрес 1го цвета, а потом в цикле 16раз прописываются данные - всего 17 записей в порт, а не 16 как должно быть по твоему методу.
Quote (Black_Cat)
Как понимаю, для каждой строки можно иметь свою палитру, подгружая её во время бордюра.
можно, но брайт для записи палитры на бордере использовать можно только сразу после инта, т.е. в произвольном месте экрана только 8 цветов.
Quote (Black_Cat)
рикольно , хоть и расточительно, гораздо экономней иметь бОльшую ёмкость ОЗУ палитр
на тот период наверно проще было на ру2 (кстати греются они прилично)


я проснулся среди ночи и понял, что всё...
всё идет по плану
 
Black_CatДата: Пятница, 2008-11-07, 03:08:15 | Сообщение # 20
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (нолька)
нюанс именно в том, что на ру2 адрес должен прийти раньше чем данные, а данные приходят именно по импульсу записи в 7Е

ах да, упустил что сначала нужен цикл записи в стробируемый регистр #FE, из-за которого всё сдвигается. Им надо было ИР22 на #FE поставить, тоды обошлись бы 16ю циклами smile и заодно лишние адреса были-бы ..правда возможны и артефакты на бордюре типа дрожания строк бордюрных знакомест друг относительно друга и изменения размера крайних знакомест бордюра.

Quote (нолька)
можно, но брайт для записи палитры на бордере использовать можно только сразу после инта, т.е. в произвольном месте экрана только 8 цветов.

а в двух словах, какая логика там выставления сигнала блокировки инта?


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
 
ZX-Форум » Hardware » Hardware » Путеводитель по ZX-портам (от BC) (Правим ошибки)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

the DLCorp © 2006