OldComp.cz

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


Právě je 27.04.2024, 11:20

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 27 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
PříspěvekNapsal: 07.10.2023, 18:11 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3677
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Zakládám toto vlákno a byl bych rád, kdybyste sem dávali své poznatky.

8-mi bity mají standardně 16-ti bitový adresní prostor, tj. 64 kByte a to není pro rozežrané aplikace mnoho. Na rozdíl od RAMdisku se nemusí při mapování nic přetahovat, což se projeví na rychlosti.
Druhá výhoda je, že na mapované oblasti se dají programové moduly spustit.

Rád bych našel vhodný kompromis, mezi složitostí hw realizace, složitostí sw obsluhy a velikostí mapované paměti.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 07.10.2023, 22:47 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 932
Has thanked: 43 times
Been thanked: 414 times
Kdysi jsem uvažoval u i8080 o využití informace ze stavového slova, že se pracuje se zásobníkem. Takový signál (pro čtení i zápis) by pak mohl sloužit defacto jako adresová linka A16 pro rozšíření RAM ze 64kB na 128kB. Do této alternativní 64kB stránky by se tak mohlo přistupovat pouze instrukcemi pro práci se zásobníkem, ale to zase až tak nevadí, když si uvědomím, jaké objemy dat bych zde v praxi mohl mít a asi i měl. A byl by zde i vlastní zásobník. Obvodově exrémně jednoduché, Ale to je fakticky RAMDISK.

U svého dříve vzpomínaného Ultralightu 80C85 jsem dospěl k závěru, že když už stránkování, tak po 32kB, a tyto bloky využít pro videoram či podobné účely. Už jen využití této alternativní stránky pro procedury BIOSu/videoBIOSu vedlo k takové nepřehlednosti, že jsem skoro váhal, zda to za to stojí. Tak jsem v jedné stránce 32kB měl tu videoram a ve druhé 32kB stránce jsem držel obraz souborového systému pro SD kartu (jakkoliv to je zbytečné plýtvání). Zbylých 64kB byla běžná pracovní RAM.

Mapování všech "výměnných" stránek od adresy 0000h má pak tu malou výhodu, že se adresace tohoto okna dá realizačně spojit s možností mapovat zde i BOOT ROM po RESETu.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 06:49 
Offline
Kecálek

Registrován: 07.05.2014, 12:10
Příspěvky: 197
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 39 times
Kdyz jsem kdysi resil mapovani pameti pro aplikace, ktere mely vic kodu i dat, tak mi jako nutnost vychazely aspon 4 bloky pameti:
- stranka, ve ktere aktualne bezi kod
- stranka se zasobnikem a sdilenymi daty
- stranka s daty, ktera se maji zpracovat
- stranka s kodem, ktery se bude volat
Jde to i s mene strankami, ale pak to prinasi slozitejsi kod; takto je to vyrazne lepsi prace.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 08:03 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 903
Has thanked: 51 times
Been thanked: 230 times
danhard píše:
8-mi bity mají standardně 16-ti bitový adresní prostor, tj. 64 kByte a to není pro rozežrané aplikace mnoho. Na rozdíl od RAMdisku se nemusí při mapování nic přetahovat, což se projeví na rychlosti.
Druhá výhoda je, že na mapované oblasti se dají programové moduly spustit.
Rád bych našel vhodný kompromis, mezi složitostí hw realizace, složitostí sw obsluhy a velikostí mapované paměti.

Tu by som nic nove nevymyslal, lebo je to pekne vymyslene na Z88 (a samozrejme aj inych 8 bitoch).
4 segmenty adresneho priesotru po 16kB, kazdemu segmentu je priradeny jeden 8 bitovy register stranky (spolu 4 registre)
256 stranok pamate po 16kB
do ktorehokolvej segmentu sa moze mapovat hociktora stranka, pricom ta ista stranka moze byt aj vo viacerych segmentoch.
spolu to dava 256 * 16kB = 4MB
Krasne sa to realizuje s 2x IC 74670, kde sa da do registrov zapisovat ako na port (/IORQ+/WR+addr) a vycitat pri pristupe do pamate (/MREQ)
Prakticky je teda A0..A13 CPU pripojena na A0..A13 RAM, Rx0..Rx7 na A14..A21 RAM.
m1


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 10:05 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3829
Has thanked: 280 times
Been thanked: 457 times
A co s tím vlastně hodláš dělat? Kolik dat budeš zpracovávat a jak rychle to musí být? Imho tu dost záleží na odpovědích z předchozích otázek protože zpracovat různé objemy dat má různé (ne)výhody z hlediska implementace, však to předřečníci popsali dostatečně..

Jako Z88 to velmi podobně má i PP-01, to vlastní portem řízenou nadstavbovou 20bitovou infrastrukturu 256 x 4 kB = 1024 kB. Jednoduché na implementaci a pro ukládání/čtení malých dat na sběrnici dobré. Jen je kapacita bloku už poněkud omezující - 4 kB kousky už jsou na rozsáhlý program či hodně dat dost malé. Ale chápu že na začátku 80. let se RAM vážila po kilobajtech tak to byl kompromis mezi ekonomicky a technicky možným. Můj osobní odhad proč to tam vůbec je, je čistě jen kvůli tomu, že to patrně měl být chytrý EC terminál a naroubovali tam intelí Multibus v RVHP mutaci a ten má 20bit adresaci.

Imho výrazně lepších co se dobových možností a rozsahu programu týká je 16 kB kouskování, taky se to tehdy asi nejvíc používalo. Ale dnes je imho ideální sekat to po 32 kB když chceš maximum objemu na data a přitom snadný přímý přístup CPU do ní. RAM je dnes levná a dostupná. Sice asi klesá efektivita průměrné obsazenosti paměti ale dnes to není žádný problém. Do 12 kB se dostane 7barevný screen PMD 85 což není málo ale do 32 kB se vleze už černobílé 640x400 nebo 320x200 v 16 barvách, případně 16barevné PMD když bude standardně barvit po 6 pixelech. Na hry či stabilní text super a do 32 kB se už vleze i dost rozsáhlý program, když pracovní data si nacpe do jiných bloků.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 11:45 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3677
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
16kB mapovaného okna nemusí každému vyhovovat, třeba hoši od Sharp MZ800 mají v MEMext mapování 16 segmentů po 4kB na adresový prostor 1MB, s 2xMH7489 (případně 74F219).

Z80180 má mapování 2 segmenty 4k, umístěné v 64k CPU na adresový prostor 1MB.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 11:47 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 377
Has thanked: 28 times
Been thanked: 120 times
Zo skúseností s počítačom SamCoupé viem, že adresný priestor rozdelený na 2 sekcie po 32KB je zlá voľba. A to má SamCoupé ramku rozdelenú na 16KB stránky, ktoré sa ale mapujú hneď dve po sebe nasledujúce a vyplnia tak sekciu 32KB. To je o niečo lepšie ako mať možnosť prepínať len celé 32KB stránky. Podľa mňa je optimálne mať minimálne 3 sekcie. Napríklad na jednoduché kopírovanie dát je treba:
- sekcia s programom, zásobníkom a ovládačom prerušenia
- sekcia so zdrojovými dátami
- sekcia pre cieľové dáta

Ja by som to asi vyriešil takto:

Port_A: namapuje 16K stránku pamete do sekcie A

Port_B: namapuje 16K stránku pamete do sekcie B

Port_C: namapuje 16K stránku pamete do sekcie C

Port_D: namapuje 16K stránku pamete do sekcie D

Port_AB: namapuje 16K stránku pamete do sekcie A (a nastaví aj Port_A)
a nasledujúcu stránku do sekcie B (a nastaví aj Port_B)

Port_CD: namapuje 16K stránku pamete do sekcie C (a nastaví aj Port_C)
a nasledujúcu stránku do sekcie D (a nastaví aj Port_D)

Takto budú k dispozícii 4 nezávislé sekcie, alebo rýchla zmena dvoch sekcii jedným outom.
Ešte zostáva voľba ROM/RAM, prípadne zákaz zápisu do RAM, čo môže obsahovať Port_A a Port_AB, alebo na to bude samostatný Port_ROM.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 12:52 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3677
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Chci udělat podložku pod procesor, kde bude 1MB RAM, 512kB EEPROM, XC9572XL64 a rád bych, aby se mi do něj vešlo mapování a SIO pro SD kartu.
Zkoušel jsem to i s XC9536XL44, ale tam to bylo bez SD a na počet vývodů se mi tam vešla adresace dvou minimálně 8kB sekcí.

Důležitý je pro mě počet mapovaných sekcí, jelikož nahradit malým CPLD paměť 16x8 bitů (2xMH7489) skutečně nejde :)
2x 74LS670 by šlo.

Asi si jako rozcvičku udělám rozšíření paměti Z80 aby se chovala jako Z80180 se zabudovanou 1MB RAM :D
Kromě vyklíčování I/O přístupu na adresy 3xh by nemělo být z venku nic vidět :D

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 08.10.2023, 23:34 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1202
Has thanked: 367 times
Been thanked: 304 times
Mozna bych doporucil se podivat na projekt https://smallcomputercentral.com/ (a mnohe podobne) a zdrojaky projektu RomWBW https://github.com/wwarthen/RomWBW, kde pouzivaji predevsim stranky o velikosti 32kB. Tady se dostupnost velke kapacity RAM a ROM vyuzivana predevsim jako urcity file system a velikost operacni pameti se pro jednotlive programy neresi.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
PříspěvekNapsal: 09.10.2023, 07:56 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 21.01.2021, 11:05
Příspěvky: 1639
Bydliště: Pardubice
Has thanked: 29 times
Been thanked: 248 times
RomWbW je super používám ji v Zeta2 SBC, ale tam je jiná situace protože RAM neukrajuje Video a zobrazování je na I/O portu. Pro počítače co zobrazují z prostoru RAMky je 32k stránka hodně. 16 nebo 8k je tak akorát.

_________________
Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.
Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...


Nahoru
 Profil  
 
PříspěvekNapsal: 09.10.2023, 08:17 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 903
Has thanked: 51 times
Been thanked: 230 times
danhard píše:
Důležitý je pro mě počet mapovaných sekcí

SRAM+74541 a moze byt pocet segmentov takmer az na velkost 1 bajtu. Idealne minimum je 256 bajtov.
Pri dnesnych cenach SRAM je to lacnejsie ako n x 74670.


Nahoru
 Profil  
 
PříspěvekNapsal: 09.10.2023, 10:30 
Offline
Kecálek

Registrován: 16.09.2022, 16:24
Příspěvky: 204
Has thanked: 8 times
Been thanked: 36 times
Udelam malou tematickou odbocku, pristrojove desky Octavia I, Fabia I (+hromada VW aut generacne Passat B5 apod.) maji v sobe SoC Micronas s 6502 jadrem, resp. 65816 ci jak se to jmenuje. Mapovani tam je pres nejake registry, 64k je rozdeleno po 16kB. Tam je (nepletu-li se) dolni stranka fixni a zbytek se da premapovat. V dolni strance je kus kodu, ktery umoznuje preskoky mezi bankami a praci s nimi.

Takze ackoliv to nevite, vetsina lidi vlastnici tyhle auta se vozi "s osmibitem na palube" :). Dokonce se pres diagnostiku da do tehle pristrojovek nahrat vlastni kod do RAM a spustit (pres prepis stacku).


Nahoru
 Profil  
 
PříspěvekNapsal: 09.10.2023, 10:56 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3677
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Mapování bude rozšiřovat adresu maximálně o 8 bitů (256x).
Pokud se chci dostat na 1MB mapovaného prostoru, tak potřebuju segmenty minimálně 4kB.
Se segmenty 256 Byte bys akorát složitě přemapoval základních 64 kByte :)

Taky mi jde o to tam nemít tu paměť vůbec, aby bylo vše v malém CPLD a tam můžu dát k dispozici na registry asi tak 4 byte.

32kB bloky pužil Jirka Lamač u CP/M do ZX48, ale bylo to to nejjednoduší řešení pro konkrétní aplikaci.

Přemapování celých 64kB používá VZLET256, ale to je krkolomná slepá cesta.

Takže zbývá pužitelné segmenty 4kB 8kB 16kB 32kB, kdyby se udělaly jen 2 segmenty, tak je můžu pevně umístit a na mapování mi stačí 2 byte.
Můžu to udělat i programovatelné, přidám další 2 byte, ve kterých bude velikost a umístění segmentu.

Z80180 používá 4kB segmenty, 2Byte mapovací registry a 1Byte umístění (4+4 bity).
4kB segmenty se dobře umísťují do základního programu, ale nedá se s nimi naemulovat již použitá řešení s větší velikostí segmentu.
Přidal bych konfigurační Byte, kde by byla velikost segmentů a CPLD by udělalo rekonfiguraci.
Všechno nad 1MByte rozšířeného adresového prostoru.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 05.11.2023, 14:57 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2735
Has thanked: 147 times
Been thanked: 423 times
Drive jsem na podobnem problemu take uvazoval. Urcite je potreba na zacatku dat omezovaci podminky. Jinak stejne se nenajde reseni.

Z meho pohledu je potreba:

velikost reseni:
a) male levne obvody - mala pamet
b) vetsi reseni, inteligentnejsi pouzivani

co to bude ovladat:
a) specialni system - nejaky druh OS (hybridni cp/m s basicem)
b) system na bazi Unixu? (slozitejsi reseni)

Koukal jsem se na to z pohledu Sharp MZ800 ale reseni by bylo prenositelne. Podle mne jsou potreba minimalne dve sekce. Idealne ctyri sekce.

Dejme tomu ze by se mel udelat system co bude mit v pameti 4 programy o velikosti 48KB a ty bude pri kazdem 20ms preruseni prepinat. Takze nejaky uMZix. Pro to by mozna nekdo neco napsal.

strankovani mi vychazi:
00 sekce A 0-16
01 sekce B 16-32
10 sekce C 32-48
11 sekce D 48-64

Klicova je sekce B. Ta je idelani pro ovladani celeho systemu. Urcite bych byl pro pamet pouze 512KB. CPLD co nejmensi, treba zkusit XC9536XL-7VQ44C a kdyz to nepujde tak to zvetsit na XC9572XL a pripadne jeste vetsi. Nebo to udelat z puvodnich ne XL obvodu treba XC9572-15PCG84C.

Soucastky mi vychazi na CPLD, menic na 3,3V, nejaky 74ls245 na oddeleni sbernice, pamet 5V 512KB. Pameti ma co vim Danhard pro vsechny co ctou toto forum tak 3x. Urcite bych byl pro upravit s tim i obsah originalni eprom at projekt se da levne rozsirit o rs232 a tim padem o prijem dat z externiho uloziste. To sice neni soucasti teto uvahy ale jen aby uvaha nezustala jen u pameti. Bez dat je pamet k nicemu.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.11.2023, 17:49 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 790
Bydliště: Šlapanice
Has thanked: 132 times
Been thanked: 99 times
Jedno z možných řešení stránkové paměti pro SAPI-1 aneb PDS-1Z, je tam řešeno i DMA aneb má vlastní stránkovací registr.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


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ů: 27 ]  Přejít na stránku 1, 2  Další

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