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

Programs, sources, embedded, demomaking, whatsoever related to subj :)

Postby acidrain » 19 Oct 2010, 14:56

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

Вопрос жизни и смерти ;)))
acidrain
 
Posts: 89
Joined: 19 Oct 2010, 14:40
Group: Registered users

Postby Budder » 19 Oct 2010, 15:50

управление памятью на разных 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)
http://forum.tslabs.info
MGN Group
User avatar
Budder
 
Posts: 462
Joined: 20 Jul 2007, 14:05
Group: Registered users

Postby Budder » 19 Oct 2010, 15:55

Ещё вот путеводитель по портам ZX от БлякКята (см. аттач)
правдо хз наскока там достоверная инфа, я не проверял...
Attachments
BCIG4ZXSpectrum.rar
(5.23 KB) Downloaded 1101 times
http://forum.tslabs.info
MGN Group
User avatar
Budder
 
Posts: 462
Joined: 20 Jul 2007, 14:05
Group: Registered users

Postby deathsoft » 19 Oct 2010, 15:56

Budder wrote:правдо хз наскока там достоверная инфа, я не проверял...

Там полно глюков и отсебятины (я даже тему заводил про глюки).
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 19 Oct 2010, 15:57

Результаты кстати лучше запостить Алоне кодеру в http://speccy.info
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 19 Oct 2010, 16:08

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)

И простите, нахуй такой мануал тогда нужен? (пинок в сторону велосипедософта)
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby Budder » 19 Oct 2010, 16:11

порты 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


остальные контроллеры лень вбивать %)
http://forum.tslabs.info
MGN Group
User avatar
Budder
 
Posts: 462
Joined: 20 Jul 2007, 14:05
Group: Registered users

Postby breeze » 19 Oct 2010, 17:13

deathsoft wrote:Результаты кстати лучше запостить Алоне кодеру в http://speccy.info


оно как бы там и есть уже давно ;) http://speccy.info/%D0%9F%D0%BE%D1%80%D1%82%D1%8B
breeze
 
Posts: 538
Joined: 07 Feb 2009, 16:19
Group: Registered users

Postby deathsoft » 19 Oct 2010, 18:25

breeze wrote:оно как бы там и есть уже давно

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

Postby acidrain » 19 Oct 2010, 22:27

Спасибо за помощь!!!
acidrain
 
Posts: 89
Joined: 19 Oct 2010, 14:40
Group: Registered users


Return to Coding

Who is online

Users browsing this forum: No registered users and 6 guests

cron