OldComp.cz
https://oldcomp.cz/

ZX Spectrum 128k memory mapping
https://oldcomp.cz/viewtopic.php?f=41&t=5538
Stránka 12

Autor:  azorasoft [ 08.09.2017, 11:45 ]
Předmět příspěvku:  ZX Spectrum 128k memory mapping

1) Je mozne na Spectru 128k prepinat pametove banky z Basicu outovanim na port stejne jako u Didaktiku Gama?

2) Funguje prepinani stejne jako u Gamy, tzn. oblast pod RAMTOPem se pri prepnuti zkopiruje ze zdrojove banky do cilove a obsah nad RAMTOpem zustane nedotcena?

Autor:  Lanex [ 08.09.2017, 12:24 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

1) Ano
2) Ne (Basic48)

Autor:  z00m [ 08.09.2017, 12:38 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

Lanex píše:
1) Ano
2) Ne (Basic48)

1) je blbost, pretoze 128k ROM stale strankuje a tak hned odstrankuje to co si si nastrankoval. v 128k BASICu sa da strankovat len cez POKE do systemiek.

Autor:  azorasoft [ 08.09.2017, 12:48 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

Kdyz tedy 2) nefunguje jak jsem popsal, tak teda funguje jak?

Autor:  z00m [ 08.09.2017, 14:08 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

Nijak, musis si to strazit sam.

Autor:  Busy [ 08.09.2017, 14:24 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

azorasoft píše:
1) Je mozne na Spectru 128k prepinat pametove banky z Basicu outovanim na port stejne jako u Didaktiku Gama?
Ano. Ale pozor, 128/+3 basic si stranky prepina aj sam takze na to aby dany stav zostal nastrankovany aj po skonceni prikazu OUT, je namiesto OUT 32765,X potrebne urobit (aj) POKE 23388,X. Idealne je urobit obe - program bude potom fungovat v basicu 48 aj basicu 128.
azorasoft píše:
2) Funguje prepinani stejne jako u Gamy, tzn. oblast pod RAMTOPem se pri prepnuti zkopiruje ze zdrojove banky do cilove a obsah nad RAMTOpem zustane nedotcena?
Kopirovanie oblasti je cisto iba zalezitost Gamy, nikde inde taka vlastnost (nastastie) uz nie je. Cize ako uz napisal z00m, musis si to strazit a zabezpecit sam.
azorasoft píše:
Kdyz tedy 2) nefunguje jak jsem popsal, tak teda funguje jak?
Nijak. Proste sa iba prepne banka bez akychkolvek kopirovacich zasahov do pameti.

Autor:  z00m [ 08.09.2017, 14:37 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

Podla mna sa to z BASICu ani neda, nejak presuvat data zasobnika hore dole medzi bankami. Ak chces hore strankovat, najjednoduchsie je mat RAMTOP pod 49152.

Autor:  Lanex [ 08.09.2017, 14:44 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

z00m píše:
1) je blbost, pretoze 128k ROM stale strankuje a tak hned odstrankuje to co si si nastrankoval. v 128k BASICu sa da strankovat len cez POKE do systemiek.

Basic 48 ti nic přepínat zpátky nebude ;-) A bude fungovat obyč Out. Teda podmínkou je že se do Basicu 48 dostaneme přes USR 0 a ne přes menu.

Autor:  z00m [ 08.09.2017, 15:04 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

To si ale ani ty predtym nenapisal. Ja som len predpokladal, ze sa pyta na 128 BASIC. Naviac to ale nijako inak fungovat nebude, len v USR 0 (ako napriklad vacsina CZ/SK 128k crackov), co je v dnesnej lamerskej dobe dost na nic, kedze polka ludi ocakava ze staci na vsetko LOAD"" + Enter, pripadne 128 MENU a ENTER. Ak ma zamyslany program fungovat poriadne, musi sa to osetrit tak, ako pisal Busy - OUT 32765,x: POKE 23388,x a zaroven mat RAMTOP pod 49152 a davat aj tak poriadne bacha, co a kde sa strankuje.

Autor:  azorasoft [ 08.09.2017, 20:42 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

Tak to se divim. Protoze u Gamy 87, 88 se prave oblast pod ramtopem nekopirovala a bylo na to nahlizeno jako na bug a opraveno u Gamy 89. Pritom puvodni ZXS 128k pracovalo bez kopirovani, tedy podle inzenyru ze Skalice s bugem :-).

Podle mne je pristup Skalickych inzenyru korektnejsi, nebot tam nehrozi, ze by se system za urcitych okolnosti zhroutil. A pokud nastavime ramtop na 49152 nebo nize tak to bude fungovat stejne jako na ZXS 128k. Respektive na 32768, protoze banka u Gamy ma 32kB.

Autor:  Busy [ 08.09.2017, 22:37 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

azorasoft píše:
Tak to se divim. Protoze u Gamy 87, 88 se prave oblast pod ramtopem nekopirovala a bylo na to nahlizeno jako na bug a opraveno u Gamy 89. Pritom puvodni ZXS 128k pracovalo bez kopirovani, tedy podle inzenyru ze Skalice s bugem :-).
Podle mne je pristup Skalickych inzenyru korektnejsi, nebot tam nehrozi, ze by se system za urcitych okolnosti zhroutil. A pokud nastavime ramtop na 49152 nebo nize tak to bude fungovat stejne jako na ZXS 128k. Respektive na 32768, protoze banka u Gamy ma 32kB.
Nie, nie, nie.
V starsich Gamach sa kopirovala iba oblast nad RAMTOPom - toto bol ten bug, ktory bol neskor opraveny v novsich Gamach tym ze sa kopiruje oblast od 32768 az po RAMTOP.
ZXS128 vobec nic nekopiruje, a ani ziadne kopirovanie tu nebolo planovane, preto tu nemozno hovorit o nejakom bugu. Ak by si toto chcel oznacit ako bug, tak potom by sa ako bug dalo oznacit napriklad aj to, ze ZXS nema ziadne hardwerove sprajty. Alebo napriklad ze nedokazes mat normalne viac ako dve farby v jednom atribute.
Ale vratim sa k prepinaniu baniek. 128 / +3 basic si spravuje banky sam vo svojej rezii, pouzivatel sa vobec nemusi starat o to ci ma zasobnik zrovna v oblasti ktora sa prepina.

Autor:  azorasoft [ 08.09.2017, 23:15 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

Podle popisu zde https://neuro.me.uk/projects/wos/sincla ... erence.htm

to dale vypada, ze kdyz aktivuji banku 2 a udelam POKE 32768,Y tak se zaroven Y zapise i na 49152? Jaky to ma vyznam?

Autor:  VELESOFT [ 09.09.2017, 14:56 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

azorasoft píše:
Podle popisu zde https://neuro.me.uk/projects/wos/sincla ... erence.htm

to dale vypada, ze kdyz aktivuji banku 2 a udelam POKE 32768,Y tak se zaroven Y zapise i na 49152? Jaky to ma vyznam?


Od adresy 16384 je stranka 5, od 32768 je stranka 2 a od 49152 lze pripojit jakoukoli stranku 0-7. Pokud si nastavis od 49152 stranku 2 nebo 5, pak dojde k "zrcadleni", neboli blok pameti je zde stejny akorat na dvou mistech soucasne. Co zapises na 49152, zapise se soucasne na 32768(stranka 2) nebo na 16384(stranka 5). Proc to je tak nema smysl resit, proste to tak bylo postavene.

No a dale - v dnesni dobe uz je 128 basic trochu "out", protoze system v zarizeni typu DIVIDE a DIVMMC automaticky po zapnuti zajisti prepnuti do USR0 modu, takze pocitac startuje rovnou do 48 basicu ale s povolenou ram 128kB. A ja automaticky pocitam s tim, ze vetsina lidi ma prave pripojene DIVxxx, cili dnes uz se muzeme bavit o tom, ze vychozim stavem po startu ZX128 je vetsinou 48 basic (protoze prave vetsina lidi ma pripojene podobne zarizeni jako DIVxxx).

Autor:  azorasoft [ 09.09.2017, 15:57 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

A ta finta se dvema videopametmi na 128cce teda funguje jak? Kdyz vyrobim dva screeny, jeden ulozim do banky 5 a druhy do banky 7 a udelam out tak, ze se zobrazi 5 misto 7 (nebo opacne) bude to mit okamzity efekt, rychlejsi nez LDIRovat druhy obrazek nekde z RAM do videoRAM? V tom spociva ten efekt na 128cce?

Popravde ja spis resim jak prepinat banky na Nextu, predpokladam, ze to bude kompatibilni se 128kou akorat tech bank nebude 8 ale az 104 (pokud osadim patice a budu mit 2 MB).

Autor:  Busy [ 09.09.2017, 16:07 ]
Předmět příspěvku:  Re: ZX Spectrum 128k memory mapping

azorasoft píše:
kdyz aktivuji banku 2 a udelam POKE 32768,Y tak se zaroven Y zapise i na 49152? Jaky to ma vyznam?
Nema to ziadny vyznam. Proste, celych 128kB pameti je dostupnych (logicky) v osmych strankach v hornych 16kB, ale aby bola aj nejaka pamet pristupna na adresach #4000 az #C000 tak su proste dve z tychto stranok viditelne aj na tychto nizsich adresach. To je vsetko a nic viac za tym nehladaj :)
VELESOFT píše:
No a dale - v dnesni dobe uz je 128 basic trochu "out", protoze system v zarizeni typu DIVIDE a DIVMMC automaticky po zapnuti zajisti prepnuti do USR0 modu, takze pocitac startuje rovnou do 48 basicu ale s povolenou ram 128kB. A ja automaticky pocitam s tim, ze vetsina lidi ma prave pripojene DIVxxx, cili dnes uz se muzeme bavit o tom, ze vychozim stavem po startu ZX128 je vetsinou 48 basic (protoze prave vetsina lidi ma pripojene podobne zarizeni jako DIVxxx).
Ale stale je tu ta mensina (do ktorej patrim aj ja), ktora je proste zvyknuta ze po resete pocitac nabehne do 128 menu kde staci stlacit enter a program sa hned nahraje. Preto si myslim, ze spravny basicovy loader do 128 stranok by mal mat aj OUT 32765 a aj POKE 23388 aby korektne fungoval v oboch pripadoch.
azorasoft píše:
A ta finta se dvema videopametmi na 128cce teda funguje jak? Kdyz vyrobim dva screeny, jeden ulozim do banky 5 a druhy do banky 7 a udelam out tak, ze se zobrazi 5 misto 7 (nebo opacne) bude to mit okamzity efekt, rychlejsi nez LDIRovat druhy obrazek nekde z RAM do videoRAM? V tom spociva ten efekt na 128cce?
Ano, presne tak. Jednoducho, akonahle zmenis bit urcujuci videoramku, ULA okamzite zacne citat bajty na zobrazenie z inej banky.

Ak tento bit budes menit po kazdych styroch pixelovych riadkoch, ziskas tym de-fakto atributy vysoke 4 pixely - pretoze prve 4 pixelove riadky sa budu zobrazovat atributy z jednej videoramky, a dalsie styri pixelove riadky z druhej videoramky. Na tomto principe je zalozeny multicolor co pouzivam napriklad v intre Muco1k.

Stránka 12 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/