OldComp.cz

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


Právě je 19.04.2024, 19:59

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 
Autor Zpráva
 Předmět příspěvku: ZX UNO a BSDOS nebo MDOS3
PříspěvekNapsal: 17.07.2020, 15:33 
Offline
Kecálek
Uživatelský avatar

Registrován: 30.05.2020, 01:05
Příspěvky: 190
Bydliště: Olomouc
Has thanked: 559 times
Been thanked: 102 times
Zajímalo by mě, zda by se podařilo rozjet BSDOS nebo MDOS3 na ZX UNO. ZX UNO používá All Ram mode i při emulaci esxDOS (předpokládám), protože varují že se tam dá do paměti zapisovat což může vést k restartování systému.
Zde info ze článku http://uto.speccy.org/zxunofaq_en.html#about :

There are three ways you can access additional memory when using ZX-Uno:

DivMMC memory
Timex MMU horizontal paging
Raw access to ZX-Uno memory vía MASTERMAPPER register

The ZX-Uno implements a DivMMC with 128K RAM, so it's possible to use that extra RAM for your developments if you know how to do it. This is a link to Velesoft's documentation https://velesoft.speccy.cz/zx/divide/divide-memory.htm about DivIDE memory, compatible with DivMMC memory mapping.

The Timex machines emulated by the ZX-Uno feature a horizontal memory management unit.
The memory map of these computers is:

Kód:
         EX-ROM      HOME       DOCK
0xffff +----------+----------+----------+
       |  Bank 7' | 32K RAM  |  Bank 7  |
       |          |          |          |
0xe000 +----------+          +----------+
       |  Bank 6' |          |  Bank 6  |
       |          |          |          |   
0xc000 +----------+          +----------+
       |  Bank 5' |          |  Bank 5  |
       |          |          |          |
0xa000 +----------+          +----------+
       |  Bank 4' |          |  Bank 4  |
       |          |          |          |
0x8000 +----------+----------+----------+
       |  Bank 3' | Screen 1 |  Bank 3  |
       |          |          |          |
0x6000 +----------+----------+----------+
       |  Bank 2' | Screen 0 |  Bank 2  |
       |          |          |          |
0x4000 +----------+----------+----------+
       |  Bank 1' | 16K ROM  |  Bank 1  |
       |          |          |          |
0x2000 +----------+          +----------+
       |  Bank 0' |          |  Bank 0  |
       |          |          |          |
0x0000 +----------+----------+----------+


Memory is paged in 8K banks from either the DOCK or the EX-ROM, but these banks are mutually exclusive - you cannot page in a bank from both simultaneously. Bit 7 of port 0xff determines which bank to use (0=DOCK, 1=EX-ROM). Port 0xf4 determines which banks are to be paged in with each bit referring to the relevant bank (0-7 or 0'-7'). When memory is being paged, interrupts should be disabled and the stack should be in an area which is not going to change.

The HOME bank is the normal Spectrum memory area. The top 32K is uncontended but the 16K screen area below that is contended. Banks are overlaid on this bank, but paging over the screen area does not change the RAM used by the ULA. This does mean it is possible to set up a screen and page it out.

Reading this port returns the last byte sent to it.

Using standard 128K RAM + DivMMC 128K RAM + Timex MMU 128K RAM allows a programmer to use up to 384 RAM. In case you need more, you'll need RAW access to ZX-Uno's RAM:

Accessing ZX-Uno's memory in RAW mode is also possible using the MASTERMAPPER register (0x01). When writing to that register, the 16K bank selected (0 to 31 in the original ZX-Uno implementation with 512K) will be mapped at 0xC000-0xFFFF. That way you can access the whole memory. Sadly, this raw access is only possible using a rooted ROM at this very moment, as the LOCK bit in MASTERCONF record (0x00) disables both SPI Flash access and raw memory access. It's done like that cause having RAW memory acces is a bit dangerous:

Some of the RAM banks are used for storing ROMS (System ROMs and esxDOS ROMS). Mapping those banks at $C000 and modifying them modifies those ROMs, and won't reset them until a hard reset is made. Although that can be done on purpose, in general is a risky thing to do.
Also RAM is used by ESXDOS dot commands, they can be corrupted if you are not careful

Actually, if once started your software does not require system ROM nor esxDOS, you can use those slots, but in that case it would be good that what you write at system ROM bank, starts by a routine at 0x0000 that just tell the user to perform a hard reset.

_________________
ZX Spectrum+ 48 kB s D40 nebo divIDE 57c, MB03+, popřípadě Fuse a teď nově LNX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX UNO a BSDOS nebo MDOS3
PříspěvekNapsal: 17.07.2020, 20:47 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3663
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 797 times
BSDOS k svojej praci potrebuje minimalne dve 16kB RAM banky s moznostou zakazat zapis namapovane dole namiesto romky. Taktiez potrebuje aby sa dal do tychto baniek zakazat zapis (aby sa spravali ako romky).

Z toho popisu ZX UNO mi nie je celkom jasne, akym sposobom sa vlastne prepinaju 8kB banky namiesto romky. Idealne by bolo, ak by sa cez jediny 8-bitovy port dali vybrat obe 8kB banky a volitelne zakazat do nich zapis. Vtedy by sa BSDOS dal na tento pametovy model adaptovat velmi jednoducho (zmena adries a dat v OUToch v ROM biose). Ak by bolo treba na nastavenie konfiguracie ramky v dolnych 16kB viac portov, este stale by to bolo riesitelne rozsirenim ROM biosu.

A ked sa toto vsetko podari, este bude treba upravit bios ktory zabezpecuje pristup k diskom. Tam predpokladam zeby stacilo jednoduche prisposobenie niektoreho z HDD biosov (napr. EasyHD) ktore sa pouzivaju na MB02/3 uz dlhe roky.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX UNO a BSDOS nebo MDOS3
PříspěvekNapsal: 18.07.2020, 00:25 
Offline
Kecálek
Uživatelský avatar

Registrován: 30.05.2020, 01:05
Příspěvky: 190
Bydliště: Olomouc
Has thanked: 559 times
Been thanked: 102 times
Píší tam, že se to přepíná stejně jak to popisuje Velesoft zde: https://velesoft.speccy.cz/zx/divide/divide-memory.htm. (Ale jestli to funguje jako DivIDE s upraveným R''galem to nevím.)
ZX UNO mám nyní někde na cestě v poště. Až ho budu mít doma, tak jej budu testovat a jsem v kontaktu přímo s jedním z jeho tvůrců Antonio Villena (kupuji od něj), tak se jej na to jak se to přesně přepíná zeptám.

_________________
ZX Spectrum+ 48 kB s D40 nebo divIDE 57c, MB03+, popřípadě Fuse a teď nově LNX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX UNO a BSDOS nebo MDOS3
PříspěvekNapsal: 18.07.2020, 09:36 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3663
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 797 times
Hroudik píše:
Píší tam, že se to přepíná stejně jak to popisuje Velesoft zde: https://velesoft.speccy.cz/zx/divide/divide-memory.htm. (Ale jestli to funguje jako DivIDE s upraveným R''galem to nevím.)
O to prave ide. Pokial to ma prepinanie ako DivIDE, ale nepodporuje R"GAL, tak BSDOS na tom zial nepojde :(


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ů: 4 ] 

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 7 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