Page 1 of 1

База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 14:56
by acidrain
Предлагаю поделиться информацией по программному управлению железом (переключение банок памяти, порты джой, мышь, IDE, AY, NeoGS, covox, экраны (все) и прочего) спектрума и каждого клона в отдельности. Кто что знает, постить сюда! А я, в свою очередь, систематизирую это дело в доку.
Странно что за 20 лет никто такого не делал.

Вопрос жизни и смерти ;)))

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 15:50
by Budder
управление памятью на разных ZX клонах:

PAGING PORTS of ZX / CLONES:
Code: Select all
Pentagon 128 kB ond ZX Spectrum 128 / +2
port 7FFD: (adressation 0xxxxxxx xxxxxx0x )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused

Pentagon 512 kB
port 7FFD: (adressation 0xxxxxxx xxxxxx0x )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = bank 3 ;256 kB memory
D7 = bank 4 ;512 kB memory

Pentagon 1024 kB
port 7FFD: (adressation 01xxxxxx xxxxxx0x )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = bank 5 ;1024 kB memory (if D2 of port EFF7=0)
D6 = bank 3 ;256 kB memory
D7 = bank 4 ;512 kB memory
port EFF7: (adressation 1110xxxx xxxx0xxx )
D2 = 1 - set 128 kB mode
0 - enable 1MB memory
(if D2 of port EFF7=1 then D5 of port 7FFD is used for disable paging)
D3 = 1 - disable rom and connect ram page 0 in adress space 0-3FFF

ZX Spectrum 128+2A / +3
port 7FFD: (adressation 01xxxxxx xxxxxx0x )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port 1FFD: (adressation 0001xxxx xxxxxx0x )
D0 = 1 - disable rom and allram mode
D1 and D2 set layout of ram pages if allram is set (see +3 manual)

Scorpion 256 kB
port 7FFD: (adressation - 01xxxxxx xx1xxx01 )
(adressation in REALSPECTRUM emul is also different )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port 1FFD: (adressation - 00xxxxxx xx1xxx01 )
D0 = 1 - disable rom and connect ram page 0 in adress space 0-3FFF
(UNREAL SPECCY emulator set after OUT 1FFD,1 ram page 0 to low 16kB, but REALSPECTRUM emulator set ram page 8 to low 16kB  )
D4 = bank 3 ;256 kB memory
D6 = unused
D7 = unused

Scorpion 1024 kB
port 7FFD: (adressation - 01xxxxxx xx1xxx01 )
(adressation in REALSPECTRUM emul is also different )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port 1FFD: (adressation - 00xxxxxx xx1xxx01 )
D0 = 1 - disable rom and connect ram page 0 in adress space 0-3FFF
D4 = bank 3 ;256 kB memory
D6 = bank 4 ;512 kB memory
D7 = bank 5 ;1024 kB memory

KAY 256 kB - ( compatible with SCORPION 256kB )
port 7FFD: (adressation - 01xxxxxx xxxxxx01 )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port 1FFD: (adressation - 00xxxxxx xxxxxx01 )
D0 = 1 - disable rom and connect ram page 0 in adress space 0-3FFF
D4 = bank 3 ;256 kB memory

KAY 1024 kB
port 7FFD: (adressation - 01xxxxxx xxxxxx01 )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = bank 5 ;1024 kB memory
port 1FFD: (adressation - 00xxxxxx xxxxxx01 )
D0 = 1 - disable rom and connect ram page 0 in adress space 0-3FFF
D4 = bank 3 ;256 kB memory
D7 = bank 4 ;512 kB memory

ZX PROFI 1024 kB
port 7FFD: (adressation - 0xxxxxxx xxxxxx0x )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port DFFD: (adressation - xx0xxxxx xxxxxx0x )
D0 = bank 3 ;256 kB memory
D1 = bank 4 ;512 kB memory
D2 = bank 5 ;1024 kB memory

ATM 1 512 kB
port 7FFD: (adressation  )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port FDFD:
D0 = bank 3 ;256 kB memory
D1 = bank 4 ;512 kB memory
D2 = unused

ATM 1 1024 kB
port 7FFD: (adressation  )
D0 = bank 0 ;128 kB memory
D1 = bank 1 ;128 kB memory
D2 = bank 2 ;128 kB memory
D3 = videoram
D4 = rom
D5 = disable paging
D6 = unused
D7 = unused
port FDFD:
D0 = bank 3 ;256 kB memory
D1 = bank 4 ;512 kB memory
D2 = bank 5 ;1024 kB memory


P.S. эту инфу собрал в кучу Velesoft
P.P.S. ессно по ATM2 надо читать отдельную доку, т.к. там целый манажер памяти... (http://atmturbo.nedopc.com/inf/books/ne ... m_hard.zip)

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 15:55
by Budder
Ещё вот путеводитель по портам ZX от БлякКята (см. аттач)
правдо хз наскока там достоверная инфа, я не проверял...

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 15:56
by deathsoft
Budder wrote:правдо хз наскока там достоверная инфа, я не проверял...

Там полно глюков и отсебятины (я даже тему заводил про глюки).

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 15:57
by deathsoft
Результаты кстати лучше запостить Алоне кодеру в http://speccy.info

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 16:08
by lvd
Budder wrote:port 1FFD: (adressation 0001xxxx xxxxxx0x )D0 = 1 - disable rom and allram modeD1 and D2 set layout of ram pages if allram is set (see +3 manual)

И простите, нахуй такой мануал тогда нужен? (пинок в сторону велосипедософта)

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 16:11
by Budder
порты IDE
Code: Select all
                                    SMUC        NEMO     DivIDE 
Регистр команд/состояния            #FFBE       #F0       #00BF
Регистр накопителя/головки          #FEBE       #D0       #00BB
Регистр цилиндра (старшая часть)    #FDBE       #B0       #00B7
Регистр цилиндра (младшая часть)    #FCBE       #90       #00B3
Регистр номера сектора              #FBBE       #70       #00AF
Регистр счетчика секторов           #FABE       #50       #00AB
Регистр ошибки/доп. возможностей    #F9BE       #30       #00A7
Регистр данных (младшая часть)      #F8BE       #10       #00A3
Регистр данных (старшая часть)      #D8BE       #11       #00A3


остальные контроллеры лень вбивать %)

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 17:13
by breeze
deathsoft wrote:Результаты кстати лучше запостить Алоне кодеру в http://speccy.info


оно как бы там и есть уже давно ;) http://speccy.info/%D0%9F%D0%BE%D1%80%D1%82%D1%8B

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 18:25
by deathsoft
breeze wrote:оно как бы там и есть уже давно

Там далеко не все и назначение битов не описано. А описание просто списка портов - нафиг не нужно. (Ну и опять же мешанина из наших портов - и буржуйских поделок, которые для наших клонов не актуальны).

Re: База знаний по спектруму и клонам

PostPosted: 19 Oct 2010, 22:27
by acidrain
Спасибо за помощь!!!