Путеводитель по ZX-портам (от BC) (Правим ошибки)

Postby Black_Cat » 04 Nov 2008, 01:46

deathsoft wrote:А где АТМ1 и АТМ2? или ты их принципиально не включил? (в старом путеводителе какойто из АТМов был).

Почему нету? Дешифрация портов АТМ-2 там присутствует, во всей своей безобразности smile . А АТМ-1 теоретически можно конечно добавить, если по нему есть такой-же мануал как и по АТМ-2, а то без объяснений там забодаешся разбираться. Была-бы ещё модель хитовая, под которую софт затачивают - можно было-бы и помучиться, а так - их осталось небось на пальцах одной руки все пересчитать можно, да и программерам интересней под новые модели писать. Я в первую очередь включаю наиболее хитовые машины, а малопопулярные - уже как нидь потом ..может быть smile .
А то, что не вывел АТМ в отдельную группу - дык речь там шла о клонах Спектрума, а не о клонах АТМ smile
deathsoft wrote:Буржуйские клоны интересны разве что с академической точки зрения, ибо у нас их никто не юзает и софт под них не пишет, да и тр-доса там нету.

smile софт -то пишут, но как правило без учёта специфики, хотя в ряде случаев для программера это ничего бы не стоило, хотя имхо надо стремиться писать чтоб работало и на оригинальных компах и на амстрадах. А Didaktik'и интересны тем, что в них изначально фирменные ULA ставились, а потом и наши БМК. Ещё интересны доки по Timex Computer 2048/2068, т.к. был родным братом Спектрума, хоть и не клоном, интересно различия в архитектуре железа посмотреть.
Last edited by Black_Cat on 04 Nov 2008, 02:26, edited 1 time in total.
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Black_Cat
Не умею ничего делать, потому учу
 
Posts: 659
Joined: 17 Apr 2007, 13:19
Group: Removed

Postby нолька » 04 Nov 2008, 10:37

по профи могу ответить на вопросы
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby deathsoft » 04 Nov 2008, 14:30

Black_Cat wrote:А АТМ-1 теоретически можно конечно добавить, если по нему есть такой-же мануал как и по АТМ-2, а то без объяснений там забодаешся разбираться.

Есть дока (в том числе и на сайте максагора), а самое главное - есть схема (только по схемам можно выяснить реальную дешифрацию, в том же скорпионе - в книжке написано одно, а на схеме - совсем по другому (в книжке написано по какойто древней схеме)).
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Black_Cat » 04 Nov 2008, 20:38

По Профи:
1) под таблицой "Значение разрячдов CMR0" написано что в режиме СР/М при 80DS&BLOCK=1 разрешён доступ к регистрам палитры #FE sad .
Либо бред, либо я не въехал о каких регистрах речь. По схеме - запись в регистровое ОЗУ получается по #7E, притом BLOCK вааще там не при делах wacko
2)
--------------------------------------------------------------------------------
#DFFD/57341 Profi EXPANDED MEMORY PORT
--------------------------------------------------------------------------------
D0 RAMpageAdr A17'(7,G)
D1 RAMpageAdr A18'(7,G)
D2 RAMpageAdr A19'(7,G)
D3 WINsel:0-(C000-FFFF),1-(4000-7FFF)(7)
D4 1-blkD5#7FFD&CPU0>RAM0(7)
D5 D4#7FFD Device modify mode(7)
_0 _x rdTRBIO>ROM(ZX) - типо трдос записан в пзу
_1 _0 rdTRBIO>RAM(CP/M) - типо трдос записан в озу
_1 _1 CP/M Enhanced memory mode - а вот это я не знаю что они имели ввиду.. wacko
D6 D3#7FFD ZXScrn/CP/MScrn(7)
_0 _0 RAM5>CPU1
_0 _1 RAM7>CPU1
_1 _0 RAM4>CPU2
_1 _1 RAM6>CPU2
D7 D5#7FFD Video mode(7)
_0 _x 256x192 ZX
_1 _0 512x240 CP/M
_1 _1 512x240 CP/M & wrShdwPal-on - см. вопрос (1)
--------------------------------------------------------------------------------
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Black_Cat
Не умею ничего делать, потому учу
 
Posts: 659
Joined: 17 Apr 2007, 13:19
Group: Removed

Postby нолька » 05 Nov 2008, 09:16

Black_Cat wrote:1) под таблицой "Значение разрячдов CMR0" написано что в режиме СР/М при 80DS&BLOCK=1 разрешён доступ к регистрам палитры #FE
да, про #FE конечно чушь, но замечу сразу, что ревизий плат было как минимум 3 - 5.00(1) 5.02 5.03. И между ними есть некоторые отличия и ошибки (на cp/m'ских дисках помню были файлы с доработками под разные версии плат). Вот нашел кусок кода програмирования палитры:
COLTAB
DEFB #00,#02,#10,#12,#80,#82,#90,#92,#00,#03,#18
DEFB #1B,#C0,#C3,#D8,#DB

INT EQU $
DISPLAY INT
RET
DEFB 0
CRC DEFW 0
NACH
LD SP,#5C00
IM 1
LD B,10
EI
HALT
DJNZ $-2
LD A,#80
LD BC,#DFFD
OUT (c),A
EXX
LD DE,#100E
LD HL,COLTAB
LD C,#7E
LD A,#0F
OUT (c),A
FILCOL LD A,(HL)
CPL
LD B,A
LD A,E
AND #0F
OUT (c),A
INC HL
DEC E
DEC D
JR NZ,FILCOL
EXX
XOR A
OUT (c),A
OUT (#FE),A
LD B,#7F
LD A,#10
OUT (c),A

NB: в cp/m режиме цвета бордера инверсные, а мой код вроде расчитан на нормальные (у себя на плате я убрал расширеный экран). Т.е. про сигнал BLOCK вроде как неправда, но есть пара моментов:
поскольку цвета программируются пока луч идет по бордеру, то яркостной составляющей управляет бит порта выхода на магнитофон, при чем он это может делать пока активен сигнал BL_INT (а это верхние 16 строк сразу после прихода прерывания). Но есть еще один кусок схемы - страница с мультиплексорами ОЗУ. Триггер DD14.2 выдает запрос схеме доступа к памяти на чтение видеоданных, на его вход S подается сигнал перевода строк, а также сигнал с DD4.11, на который заведены упомянутые выше сигналы. Чем занимается данный узел я к сожалению не помню (доработки вроде касались как раз этой части схемы тоже).
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby нолька » 05 Nov 2008, 09:31

Black_Cat wrote: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 банк, который и впечатывается.
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby нолька » 05 Nov 2008, 09:39

вспомнил еще 1 тонкий момент в прогаммировании палитры:
цвет бордера - это индекс в таблице цвета, а на старший адрес порта #xx7E подается значение (всего 256цветов, байт цвета кодируется: G2G1G0R2R1R0B2B1). Но программирование каждого идет в два вывода в порт, т.е. сначала устанавливаем адрес=цвет бордера, а потом уже следующим выводом значение (попутно выставляется адрес следующего цвета).
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby Black_Cat » 06 Nov 2008, 17:44

нолька wrote:Но программирование каждого идет в два вывода в порт, т.е. сначала устанавливаем адрес=цвет бордера, а потом уже следующим выводом значение (попутно выставляется адрес следующего цвета).

не, не так! Запись проходит за один приём, т.к. порт бордюра дешифрируется токо по А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 - форум посвящённый развитию Спека.
User avatar
Black_Cat
Не умею ничего делать, потому учу
 
Posts: 659
Joined: 17 Apr 2007, 13:19
Group: Removed

Postby нолька » 06 Nov 2008, 19:27

Black_Cat wrote:не, не так! Запись проходит за один приём, т.к. порт бордюра дешифрируется токо по А0, т.е. он откликается на все чётные порты, а значит и на запись в #хх7E.
я же русским языком написал. то что для записи используется 7Е и так понятно. нюанс именно в том, что на ру2 адрес должен прийти раньше чем данные, а данные приходят именно по импульсу записи в 7Е, адрес при этом равен еще предыдущему значению. Смотри мой исходник, там сначала устанавливается адрес 1го цвета, а потом в цикле 16раз прописываются данные - всего 17 записей в порт, а не 16 как должно быть по твоему методу.
Black_Cat wrote: Как понимаю, для каждой строки можно иметь свою палитру, подгружая её во время бордюра.
можно, но брайт для записи палитры на бордере использовать можно только сразу после инта, т.е. в произвольном месте экрана только 8 цветов.
Black_Cat wrote:рикольно , хоть и расточительно, гораздо экономней иметь бОльшую ёмкость ОЗУ палитр
на тот период наверно проще было на ру2 (кстати греются они прилично)
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby Black_Cat » 07 Nov 2008, 03:08

нолька wrote:нюанс именно в том, что на ру2 адрес должен прийти раньше чем данные, а данные приходят именно по импульсу записи в 7Е

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

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

а в двух словах, какая логика там выставления сигнала блокировки инта?
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Black_Cat
Не умею ничего делать, потому учу
 
Posts: 659
Joined: 17 Apr 2007, 13:19
Group: Removed

Previous

Return to Hardware

Who is online

Users browsing this forum: No registered users and 27 guests

cron