OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 24.04.2024, 23:25

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 
Autor Zpráva
 Předmět příspěvku: divMMC s allram
PříspěvekNapsal: 11.02.2023, 14:27 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3064
Has thanked: 2208 times
Been thanked: 911 times
https://github.com/mprato/DivMMC

New cpld jed file added with allram mode
added jed file with allram mode and mapram reset via out 223,11xxxxxx

_________________
// na co myslím, když sedím u oldkompů: Durov


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 11.02.2023, 15:31 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Je to tak. Mario Pratto napsal novy obsah pro cpld na Divmmc interface. Zatim to ale sam moc neotestoval jak mi psal. Takze to bude chtit radu testu.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 13.02.2023, 06:49 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Prozatim se ani nesnazte nove JED soubory nahrat do cpld, je tam nejaka chybka nejspis. S autorem jsem v kontaktu. Aktualne se to testuje na Divmmc 512kB a 128kB. Prubezne zde budu davat vedet nove informace. Nove by to melo umet i mapram bez stranky 3, takze system muze cely bezet v mapram modu a nebude nijak omezena trdos podpora. Bude mozne nahrat si vlastni romku 32 nebo 64kB do ramky divmmc a nahradit tak zx romku vlastni rom, ktera pak bude normalne fungovat s esxdosem a navic bude volitelne prepisovatelna jako allram, pripadne se zakazanym prepisem. A jeste je tam moznost vypnout mapram rezim, kdyz bude treba.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 29.04.2023, 21:10 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
nasel jsem si trochu casu, takze yverejnim nove informace:

- existuji uz stabilni nove cpld firmware , ktere podporuji emulaci zx 48rom/128rom/+3 rom, allram 16kB paging a dalsi ptakovinky.
- vcera jsem se pohrabal ve zdrojaku romky esxdosu a poupravil jsem ji tak, aby nebyla zavisla na zx rom a zaroven aby z SD karty natahla jak samotny system esxdos tak i vlastni zx128 rom. Vlastne mi to ted beha na zx spectru, ktere nema romku a bez problemu to spusti libovolny system 8kB a libovolnou zx128 romku.

Konecne uz nebude treba porad flashovat eeprom s kazdou zmenou v systemu a nebo kvuli vymene zx rom otevirat zx. Proste na vse postaci jen nahrat nove soubory na SD kartu. Esxdos podporuje autoboot basicu po startu, coz umozni nahrat treba nejake vlastni menu s volbou romek. Pricemz pocet rom neni nicim omezen. Klidne lze nahrat i 48romky nebo +3 romky ci neco co funguje v allram rezimu.

https://youtube.com/shorts/_wAiwKXLe9g?feature=share

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 31.12.2023, 20:48 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
originál DIVMMC interface navrhnul Mario Prato v roce 2013 a je původně stavěné pro 512kB sram (údajně s možností osazení i 128kB sram paměti). Jetě před několika lety se u DIVMMC využívalo jen 40kB. Nyní po 10 letech existuje několik verzí nebo klonů a to s různě velkou pamětí. Existujee také LFN filebrowser(NMI) od Boba Fosilla využívající téměř celou kapacitu paměti 128kB u DIVMMC. Ovšem nový CPLD firmware dovoluje do DIVMMC paměti ukládat 32kB nebo 64kB rom image a přepínat se mezi nimi. Také umožňuje přesunout kód systému do jedné z horní stránek sram.

Zde je známé využití stránek ram u DIVMMC se 128kB pamětí:
0,1,2,3,4 : Internal esxdos usage
5,6,7,8,9,10 : LFN browser RAM backup pages (NMI and .dot command versions)
11 : Internal esxdos usage (for new CPLD firmware 2023)
12 : plugin RAM backup for LFN browser code overwritten by the plugin at 32768
13 : 8k scratch for plugin usage
14 : 8k scratch for plugin usage
15 : free/unused
Noný CPLD firmware 2023 může použít také stránky 12-15 pro alternativní 128ROM, ale nelze to využít na DIVMMC 128kB současně s LFN filebrowserem od Boba Fossila (jde použít pouze LFN nebo pouze alternativní 128ROM)

Zde je známé využití stránek ram u DIVMMC s 512kB pamětí:
0,1,2,3,4 : Internal esxdos usage
5,6,7,8,9,10 : LFN browser RAM backup pages (NMI and .dot command versions)
11 : free/unused
12 : plugin RAM backup for LFN browser code overwritten by the plugin at 32768
13 : 8k scratch for plugin usage
14 : 8k scratch for plugin usage
15-58 : free/unused
59 : Internal esxdos usage (for new CPLD firmware 2023)
60-63 : ZX128 rom emulation (for new CPLD firmware 2023)

DIVMMC bylo bohužel prodáváno i s pamětí 128kB ale u této verze dochází k problémům při zrcadlení stránek ram. Horní dva stránkovací bity pro 512kB jsou zde nezapojené a paměť 128kB se 4x zrcadlí (opakuje). Tedy stránky 0-15(128kB) jsou viditelné i na stránkách 16-31,32-47 a 48-63.
A teď ke konkrétní chybce. Ram 3 je rezervovaná pro režim MAPRAM, který dovoluje emulovat EEPROM se systémem a to včetně ochrany zápisu. Jenže u 128kB sram se stránka 3 zrcadlí i na stránkách 19,35 a 51 ale zde už bez ochrany zápisu, protože CPLD vždy počítalo jen s 512kB sram kde se nic nezrcadlí a tedy stránky 19,35 a 51 jsou běžnou další ram.

Kdy se chyba může projevit ?
Pokud systém poběží na DIVMMC 128kB v režimu mapram a nějaký kód přepíše obsah stránek 19,35 nebo 51, systém tak přepíše sám sebe. Už při detekci velikosti paměti DIVMMC se musí dávat pozor na zrcadlení...

Nový CPLD firmware umí přepnout na režim MAPRAM 2 kdy je místo stránky 3 používána stránka 59(také s možností zapnutí writeprotect). Stránka 60-63 může obsahovat 32kB image ZX128 rom. A nebo lze DIVMMC mapování vypnout na připojit jednu z osmi 64kB romek (+3). Ano sram 512kB sram může obsahovat až 8 různých +3 romek:
0-7 : 64kB rom slot 0
8-15 : 64kB rom slot 1
16-23 : 64kB rom slot 2
24-31 : 64kB rom slot 3
32-39 : 64kB rom slot 4
40-47 : 64kB rom slot 5
48-55 : 64kB rom slot 6
56-63 : 64kB rom slot 7

Vlastně pokud by vyšla nová verze ESXDOSu s MMU, pak by nebyl problém rezervovat podle potřeby stránky 59(eeprom emul) a 60-63(128rom emul).

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 31.12.2023, 21:04 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Přesnou funkčnost nového portu popíšu později. Musím najít dokumentaci.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 31.12.2023, 22:14 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
DIVMMC CPLD FIRMWARE 2023

obsahuje nový port #0F3B (dec 3899) pouze pro zápis:
D0-D3 : nepoužité
D4 : umístění MAPRAM stránky (0=original mapram page 3 / 1=new mapram page 59)
D5 : MAPDISABLE (0=original DIVMMC memory mapping / 1=ignore memory mapping on DIVMMC)
D6 : WRLOCK (1=zakáže zápis do DIVMMC ram)
D7 : ALLRAM (1=nahradí originál zx rom novou zx rom pomocí allram režimu)

příklady:
OUT 3899,128+64 : Bit D7 místo zx rom připojí allram režim s 32kB image 128 romky stránkovatelné portem 7FFD. Bit D6 aktivuje writeprotect u allram režimu, takže se allram chová jako nepřepisovatelná rom. Image 128romky leží v divmmc ram stránkách 60-63.

OUT 3899,128 : Bit D7 místo zx rom připojí allram režim s 32kB image 128 romky stránkovatelné portem 7FFD. Bit D6 v nule dovoluje přepisovatelný allram režim, takže se allram chová jako přepisovatelná rom. Image 128romky leží v divmmc ram stránkách 60-63. Tady pozor, protože původní ZX rom přepisuje sama sebe, takze v tomto režimu je lepší provozovat jen upravené zx romky.

OUT 3899,128+64+32 : 128=allram rom emulace / 64=writeprotect / 32=zákaz mapování. D7=1 + D5=1 kombinace přepíná allram do +3 rom režimu kdy 64kB rom image leží v jednom z osmi 64kB slotů v DIVMMC ram 512kB. Bity D3-D5 na portu 227 volí číslo slotu 64kB v divramce a fungují stránkovací porty 1FFD(bit D2) a 7FFD(bit D4) pro stránkování +3 rom. V tomto režimu se nemapuje divmmc paměť a +3 rom může sahat jen na SD porty. Ideální pro provoz +3e rom. Zároveň v +3 módu platí pravidlo, že pokud nastavíte na portu 227 bit D0 do log.1, pak se po ZX resetu zresetuje i port 3899 (jen bit D4 na portu 3899 se s resetem nemění).

OUT 3899,32 : vypne mapování DIVMMC paměti, takže fungují jen SD porty.

Dále je tu jedna vychytávka - nastavením D7+D6 na log.1 na portu 227 dojde k vynulování bytu mapram(D6 se vynuluje) a vlastně se vykoná jen OUT 227,128.

Port 3899 je pouze pro zápis, takže by bylo dobré si jeho stav někam vždy zapsat, pokud s ním bude software častěji pracovat.
Allram režim vždy funguje jako zx128 nebo +3 rom a to v možností povolení zápisu do rom. Režim 128rom je zde jen jeden a funguje s DIVMMC pamětí současně. Po přepnutí do +3 režimu můžete ve spodních 16kB stránkovat plných 512kB ram pomocí portů 227(D3-D5),8189(D2),32765(D4). Cokoli se v +3 módu posere a ikdyž se poškodí program, když budete mít bit D0=1 na portu 227, tak zx reset opustí allram a vrátí se zpět do zx + divmmc režimu.

A jestě je tu jedna drobnost : OUT 8189,1(+3 rom port) vždy odpojí DIVMMC paměť aby na ZX128+2A/+2B/+3 nedocházelo ke kolizi. Protože tento out na těchto strojích zapíná jejich vlastní allram režim.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 01.01.2024, 02:12 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
SCjoe píše:
https://github.com/mprato/DivMMC

New cpld jed file added with allram mode
added jed file with allram mode and mapram reset via out 223,11xxxxxx


Tady mas chybu. Ma to byt OUT 227,11xxxxxx

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: divMMC s allram
PříspěvekNapsal: 01.01.2024, 03:05 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3064
Has thanked: 2208 times
Been thanked: 911 times
VELESOFT píše:
Tady mas chybu. Ma to byt OUT 227,11xxxxxx

jen opsano z gitu...

_________________
// na co myslím, když sedím u oldkompů: Durov


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 18 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz