OldComp.cz

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


Právě je 28.03.2024, 13:53

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 26 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Ventilátor '85
PříspěvekNapsal: 29.05.2021, 22:33 
Offline
Kecka

Registrován: 08.04.2021, 02:11
Příspěvky: 67
Bydliště: ThePlice
Has thanked: 0 time
Been thanked: 16 times
Mohl by mi někdo poskytnout výhrady proti obsazení I/O portů 0x2C..0x2D, 0x30..0x3F a 0xB0..0xBF v PMD1/2/3?
A neví ještě někdo, jak zachází i8080 s nepoužitými/nesmyslnými opcody (08,18... &40,49,52... &20,30)? Použil je někdy někdo k něčemu, nebo mohu CPU naučit pár nových instrukcí?

V přílohách jsou zdroje a důvod proč bych to rád konzultoval...
[url]http://aceltd.no-ip.org/io85.txt[/url]
[url]http://aceltd.no-ip.org/i8080ins.txt[/url]
[url]http://aceltd.no-ip.org/turbo'85.jpg[/url]


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 29.05.2021, 22:55 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Pokut jde o ty instrukce tak například zde, jinak i v neobsazeních kódech se provede instrukce aneb neúplný instrukční dekodér.

Nové instrukce tyto historické CPU nenaučíš aneb je to natvrdo zadrátováno v ROM.

Ještě k tomu PMD

V PMD je takzvaná lineární adresace aneb neúplné dekódování adresy. Konkrétně jsou použité adresné vodiče A2, A3, a A7 pro adresování konkrétních IO/IF desky, takže pokut chceš něco neadresovat mimo PMD tak na daných adresných vodičích musí bít log 1. Někde zde by měla být dohádatelná tabulka s volnými poty ale narychlo jsem ji nenašel.

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

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 00:05 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
"Někde zde" je asi https://pmd85.borik.net/wiki/Obsadenie_vstupno_v%C3%BDstupn%C3%BDch_adries_PMD_85
To ale hádám aceltd zná, když si udělal podobnou tabulku vlastní a o periferiích od RM Teamu má povědomí.
Spíš bych řekl, že mu tabulka od RM Teamu přijde nepřesná a chce s ní polemizovat - koneckonců podle RMT tabulky je 2C-2F a 3C-3F volné. A hned v té první "zakázané" oblasti x0-x3 je v jeho tabulce http://aceltd.no-ip.org/io85.txt spousta nepoužitých portů (C0, D0, E0, F0, ...).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 08:50 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
U PMD-85 lze volně používat adresy portů XCh..XFh, kde X může být (0, 2, 3, 6, 8, 9, A, B, C, D, E, F). Ostatní adresy opravdu kolidují mezi sebou a při pokusu o čtení takto kolidujících portů to může produkovat nesmyslné hodnoty (logický součin hodnot aktivovaných portů). Takže BCh..BFh ano, ale B0h..BFh už koliduje ve spodní části rozsahu. Jak říkal Petr, A2=0 aktivuje ROMPACK, A3=0 aktivuje PPI klávesnice a A7=0 aktivuje podřízený selektor 3205 pro výběr UARTu 8251, CTC 8253 a 2x 8255 (GPIO a IMS). Viz příloha - jiné pojetí tabulky adres portů.

K těm "volným" instrukčním kódům: osobně si myslím, že funkční projevy těchto nedokumentovaných kódů jsou natolik nejisté, že je nikdo nepoužívá tak jako u 6502 nebo 8085 pro znepřehlednění nebo urychlení kódu. S jistotu to ale říci nemohu. Klidně bych je využil pro nové instrukce. Co garantovat mohu, tak cca 10 her pro PMD-85 je zcela jistě nepoužívá :)


Přílohy:
io_adresy_pmd85.xls [50.5 KiB]
262 krát


Naposledy upravil Libor L.A. dne 30.05.2021, 08:52, celkově upraveno 1
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 08:51 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
dex píše:

Jo to je ona

Ty adresy 0C-0F, 2C-2F, 3C-3F a „6C-6F“ jsou volné jen v PMD nebo na konektoru pro ROM modul, na aplikačním konektoru jsou nedostupné, aneb ti tři diody na IF modulu to zaříznou. Kdy adresy 6C-6F jsou použité pro moderní vnitřní doplňky (mám pocit že 6E používá MEGAROM modul).

Tu tabulku mají dobře jen není úplně blbu vzdorně popsaná tj. chce to mí povědomí o tom jak je PMD zapojené aneb to neúplné adresování je pěkně zákeřné. Aneb v té tabulce kde je udáno uživatelská oblast tak to jsou volné adresy dostupné na aplikačním konektoru a nepožívají je dobové periférie.

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

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 08:56 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Nojo, to co napsal teď Petr, je třeba opravdu zohlednit. Pokud nastane případ A2=0 nebo A3=0 nebo A7=0, tak se z takto adresované periferie nedá číst, pokud je připojena na aplikační konektor. Pro připojení přes aplikační konektor zbývají volně připojitelné periferie XCh..XFh, kde X = (8, 9, A, B, C, D, E, F).

Teď se ale nebavíme o standardním využití některých těchto adres novými periferiemi typu myš. Pokud to dobře chápu a děláš nějaký kompatibilní stroj, koukni k RM-Teamu na povídání o periferiích.

DOPLNĚNÍ: Ty problémové adresy (0X), 2X, 3X a 6X by měly být použitelné na konektoru ROMPACKu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 09:03 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Pokud bys dělal vylepšený CPU do FPGA nebo něco podobného, možná poslouží toto (viz příloha). Snad tam nejsou chyby. Ten originál tabulky je dostupný i na internetu ve scanovaném katalogu rodiny MCS80 od Intelu.


Přílohy:
Stavy.xls [89 KiB]
273 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 09:28 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Ještě k těm instrukcím.

Pokut jde o 8080 tak tam se snad od všech výrobců chovají stejně i pokut jde o neobsazené instrukční kódy.

S 8085 je to trochu složitější, aneb ty oficiálně neobsazené kódy jsou reálné instrukce, ale obchodní politika INTELu z nich uvolnila jen RIM a SIM. Ty ostatní nedokumentované instrukce taky nemají obdobu v instrukčním kódu 8086. Ale jak to vypadá tak od všech výrobců se chovají stejně i pokut jde o nedokumentované instrukce.

Největší sranda je se Z80 aneb ta má u některých instrukcí nedefinované nastavení bitu stavového registr pak údajně je v originál Z80 chyba kterou někteří výrobci opravily. Takže pokut se zabrousí mimo oficiální instrukce tak se muže chovat pokaždé jinak aneb podle těchto nedokumentovaných instrukcí a chování stavového registru jde poznat výrobce (skupinu výrobců) dané Z80. Pokut se nepletu tak pro ZXS existuje hra která jede jen na originál Z80 a od MOSTEKu aneb hra využívá nedefinovaný bit stavového registr.

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

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 09:51 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Libor L.A. píše:
Klidně bych je využil pro nové instrukce.
A vznikne Z80 Second Edition :P

Když už do FPGA, mohlo by být zajímavé mít přepínání různých verzí se všemi odlišnostmi. Klidně i za běhu, pokud něco nepojede...

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 11:07 
Offline
Kecka

Registrován: 08.04.2021, 02:11
Příspěvky: 67
Bydliště: ThePlice
Has thanked: 0 time
Been thanked: 16 times
Po prostudování jsem dospěl k následujícímu závěru: Použít IO bloky 80..83,90..93,..,F0..F3 (kolize mne netrápí, instrukce neopustí pouzdro CPU) nebo modifikovat instrukce 20h a 30h protože 8085 ani Z80 v PMD nikdo určitě nemá. Víc se mi líbí ta druhá varianta, protože je efektivnější: INS CMD B0 B1 Bn namísto MVI, OUT, MVI, OUT. Případně použít všechny INS 08,10,18,20,28,30,38...ED,FD a zbavit se CMD. V reálu potom bude vypadat přepnutí banky např.: ED 01 50 (logických 1000..1FFF ve fyzických 50000..50FFF), mapování ROM: FD 80 FD 91 FD 02 FD 13 FD 24 (Monitor 8000..9FFF/fyzicky 0000..1FFF a BasicG 0000..2400/fyzicky 2000..4400), čtení RTC: D9 01 (A:=minuty), zápis RTC: D9 81 (minuty:=A), změna konfigurace CB 00 (konfigurační bity 00000000), nebo zápis pixelu do XVRAM: DD 01 FF 01 1F FF (pixel x=511 y=287 color=R3G3B3A3)...

Ještě jedna otázka: Interní cache v CPU bankovat/mapovat nebo fixnout někde ve fyzickém prostoru (např: BC00..BFFF). Při bankování bude prodleva během kopírováním způsobeným čekáním na DRAM, fixnutí zase nesmí kolidovat se stávajícím SW. Přednačítání nemá význam, vždy to bude zdržovat pomalejší SRAM a pomalá DRAM.

Jo a ještě jedna: Zatím to není implementováno, ale jakou variantu byste raději pro overlay videoram (aka GRAFIK v IQ151). Rozměry jsou 512x288px (16:9) a teď jestli 'RRGGBBAA (64color+4alpha), 'RRRRGGGG.BBBBAAAA (4096color+16alpha) nebo 'RRRRRRRR.GGGGGGGG.BBBBBBBB.----AAAA (16.7color+16alpha). Za mne 64c vzhledem k objemu dat potřebných k transférům a bez iluzí, pořád je to jen PéeMDéčko. Chipsetem generovaný obraz 288x256xACE zůstane uprostřed (3:4) a překryje /jej/ overlay.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 11:16 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
64 barev je až kam.
Vícebarevnější režimy by musely být doplněné HW scrollem a HW sprity, jinak se to dá použít jen na statické obrázky a práci (barevné grafy, úprava fotek :D ).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 11:23 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Raději bych šel do menšího počtu barvových registrů a každý z nich větší barevnou hloubku. Plný RGB formát bez HW akcelerace neutáhne 8080/8085/Z80 ani na 5MHz. Na téhle rychlosti se dá programově scrollovat tak do 512*384 v monochromu a už je na ploše vidět postupný posun.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 11:29 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Teď mi ještě došla jedna věc. Instrukce zdánlivě zbytečné (MOV A,A až MOV H,H) nezaměňuj za nové. Dost často se používají jako časově rovnocenné zpožďovače k jiným instrukcím a využívá se právě jejich nulového dopadu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 11:41 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Osobně bych nehrabal nikam, kde by i teoreticky mohlo dojít ke kolizím. Takže pokut to rozšíření bude uvnitř PMD tak bych použil nepoužité IO adresy na IF modulu, je jich tam k dispozici ještě 12. Do instrukčního souboru CPU, bych nehraba aneb nikdy nevíš, co tam pojede a pak taky se to zhroutí vždy stejně.

Mám pocit, že z toho PMD děláš něco, co to není. Bít to na SAPI-1 tak to má v rodném listě stavebnicoví systém a můžeš si tam postavit, co chceš ale ta roztříštěnost jednotlivých standardních sestav. Co se snažím dostat na SAPI-1 hry z PMD tak celé je to koncipované tak aby se co nejméně zasahovalo do původních sestav (ZPS-2 až ZPS-4) a pokut možno se využilo to, co dané sestavy umožňují a i tak si to vyžádá dvě nové desky ale SAPI-1 zůstane SAPI-1.

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

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Ventilátor '85
PříspěvekNapsal: 30.05.2021, 11:49 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Na takovém bádání se člověk řadu věcí naučí, a pak přijde na to, že je vlastně nepotřebuje :) Ale zkušenosti zůstanou.


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ů: 26 ]  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 13 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