OldComp.cz

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


Právě je 28.03.2024, 10:19

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 22 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
PříspěvekNapsal: 27.05.2016, 12:11 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
jiira: :-)))))

Takze IO porty Toho asi najpouizivanejsieho:
A76543210
xxxxxxx0 Read - citanie klavesnice, Write - Zapnutie NMI
xxxxxx01 Write - vypnutie NMI.
xxxxx011 ZX printer
0xxx1111 AY PSG data
1xxx1111 AY INDEX

Takze ti vyde ze moc placu tam nieje. (xxxx0111) je volne.

A to nepocitam ze AY byva este na inich adresach a mame dva druhy joystickou. kade tade.

Co sa tyka danhardovej hatlamatilky.

RAM adresy 0x8X - 0XFF sa nedaju pouzit na asm program len na data. Ak tam skoci CPU beru sa data ako zobrazovacie informacie. Takze pokial potlacis externou logikou romcs/ramcs signaly mozes si tam tresknut co chces. Podobne je to z adresnym rozsahom 0x20-0x3f tam staci potlacit ROM_CS.

Je potom este jeden trik. ROM je aktivna len pri citani takze pod rom mozes schovat Write registre. Niektore rozsirenia to pouzivaju na konfiguraciu.

dufam ze je to citatelnejsie ako Danhard

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


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

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
zz_indigo píše:
xxxxxx01 Write - vypnutie NMI.

V adrese signálu je dekódovaný jen signál A1 => xxxxxx0x a používaná adresa obsluhy $FD.
V klonu TK85 je to dekódované xxxxxx01, ale podle mě zbytečně.
zz_indigo píše:
xxxxx011 ZX printer

Dekódovaný je jen A2 => xxxxx0xx a adresa obsluhy $FB.
zz_indigo píše:
Akykolvek zapis do IO restartne zobrazovanie.

Jakýkoliv zápis IOWR vyvolá ukončení VSYNC pulzu, to vyvolá chybu zobrazení, ale jen v době generování VSYN.
Zobrazení používá na ukončení VSYNC instrukci OUT($FF),A
To rušení by chtělo vyzkoušet, jestli v tom čase vůbec SLOW režim pustí hlavní program k akci - skenuje klávesnici.
Ve SLOW režimu jede hlavní program jen v době vertikálního zpětného běhu.
zz_indigo píše:
A6 - natvrdo nadratovane na /INT (A6 = 0 => vyvolaj prerusenie)

Ano, A6 je natvrdo na /INT, ale na přerušení to má vliv jen když se uschpní při zobrazování.
Při běhu uživatelského programu nelze ani INT, ani NMI využít a na adresaci IO prostoru to pak nemá vliv.

Tolik asi k Vaší hatlamatilce, hlavně že to Jiiira chápe.

_________________
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: 27.05.2016, 16:28 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 377
Has thanked: 28 times
Been thanked: 120 times
danhard píše:
zz_indigo píše:
xxxxxx01 Write - vypnutie NMI.

V adrese signálu je dekódovaný jen signál A1 => xxxxxx0x a používaná adresa obsluhy $FD.
V klonu TK85 je to dekódované xxxxxx01, ale podle mě zbytečně.

Ak aj je v adrese dekódovaný len signál A1 => xxxxxx0x ,tak adresa xxxxxx00 je už obsadená pre zapnutie NMI => xxxxxxx0.
Takže defakto je dekodovaný aj signál A0. Alebo nie?


Nahoru
 Profil  
 
PříspěvekNapsal: 27.05.2016, 17:01 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Adresa A0=0 je už obsazená, obsluha přes adresu $FE a kombinace xxxxxx00 není žádoucí, protože způsobí nedefinovanou akci a taky jí obsluha zobrazení nikde nepoužívá. Je tedy zbytečné ji hw dekódovaním zakázat.
Prostě, když už je tam neúplné adresování, tak nemá cenu ho někde vylepšovat o stavy, které nenastanou.

_________________
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: 27.05.2016, 18:04 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 377
Has thanked: 28 times
Been thanked: 120 times
Ak sa A0=0 vyhodnotí ako adresa klávesnice pre čítanie
tak potom sa logicky A1=A0=0 musí tiež vyhodnotiť ako adresa klávesnice.
Musia tam byť nejaké priority (poradie testu od A0 po A7) a nevzniknú hazardné stavy.
Ale toto je len môj predpoklad - dúfam, že správny.


Nahoru
 Profil  
 
PříspěvekNapsal: 27.05.2016, 18:51 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Pro obsluhu zabrazení, klávesnice a vstupu EAR se používá:
IN A,(C) v B je výběr půlřádku klávesnice, C je adresa portu $FE, dekoduje se /A0,/RD,/IORQ
kromě čtení se nahodí Vsync, pokud není zapnutý NMI generátor.
OUT ($FF),A shodí Vsync, Vsync generuje taky pulz na výstup MIC, dekoduje se jen /WR a /IORQ
OUT ($FE),A zapne NMI generátor, dekoduje se /A0,/WR,/IORQ
OUT ($FD),A vypne NMI generátor, dekoduje se /A1,/WR,/IORQ

IN A,($FD) neudělá nic, čtení z portu s A1=0 není využito.
Žádné pořadí testu adresy a priority tam nejsou, je tam neúplné adresování.
Neúplné adresování je založeno na principu, že se každé periferii přiřadí jeden adresový drát a adresa zařízení je, když je v 0.
Brzy se ale vyčerpá IO adresový prostor, protože je k dispozici jen A0-A7 :)
Naštěstí jde při IO operacích na adresové dráty A8-A15 obsah B registru, který se dá použít na subadresy.

_________________
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: 04.07.2016, 19:58 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Antony/DTA píše:
Ak sa A0=0 vyhodnotí ako adresa klávesnice pre čítanie
tak potom sa logicky A1=A0=0 musí tiež vyhodnotiť ako adresa klávesnice.
Musia tam byť nejaké priority (poradie testu od A0 po A7) a nevzniknú hazardné stavy.
Ale toto je len môj predpoklad - dúfam, že správny.


na hazardne stavy sa nehra. to tam nik neriesi. Je to adresna anarchia

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


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

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