OldComp.cz

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


Právě je 26.04.2024, 18:53

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 29 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 15.04.2014, 10:52 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2734
Has thanked: 147 times
Been thanked: 423 times
Nomobi neni to presne jak pises. Rozhodne by nepomohlo kdyz by byl procesor TTL misto CMOS. Na procesoru absolutne nezalezi. Pri cteni neexistujici periferie se otevre IO 9C 74ls245 a tento doda zpet na vnitrni sbernici posledni bajt co byl vysilan na sbernici T9 smerem ven, coz je vetsinou posledni oktet predchazejici instrukce. A toho se da i zneuzit a Milsa bude muset udelat svuj emulator i blbuvzdorny.

Milsa pro preruseni od citace 8253 se uvazovalo pouze o IM1 ale nic ti nebrani to pouzivat i v IM0 a IM2 ale pozor program ktery to by to delal bude s prominutim pekna prasarna a skoro k nicemu ale funkcni.

Napr. v IM2 se to da udelalat tak ze vyhradis jednu stranku a jeden bajt za tim. A toto cele naplnis cislem 011H a na drese ???11H udelas vstupni bod rutinky preruseni. Pak kdyz prijde preruseni tak se nacte nahodne najaka hodnota ze sbernice a doplni se to o registr I, cele se to podiva na tabulku preruseni a tam zjisti vstupni bod preruseni LL11. Taktovy program je ale korektni.

V IM0 to muzes zase udelat tak ze treba 1000x za sebou LD a,rst 8 a spravne nacasujes 8253 tak aby ve vhodnou dobu byl program vnitr tech 1000 instrukci. Pak az bude vyvolane preruseni tak bude pro procesor ta instrukce rst8 na sbernici a spravne se vyvola preruseni. Take by slo odzkouset vice bajtovou instrukci napr. C3 - jp 0c3c3h. Otazka je jak dlouho naboj zustane na sbernici.

Milsa ale nutno rici ze kazdy autor externi karty muze dat na sbernici odpory a v tu chvili se Sharp zacne chovat uplne jinak a to tak ze napr. bude cist log.1 pri cteni neexistujici periferie. Nutno rici ze zadna bezna periferie to nedela.

Take se nenech zmast tim ze se rika ze interupt dela odskok na jinou adresu. Klidne muzes udelat i 3e 3e (ld a,3e) a na konci rutinky testovat zda se zmenilo A a kdyz ano tak vis ze bylo preruseni behem prace programu. Preruseni neni nic jineho nez precteni jedne instrukce misto pameti z periferie a na to se zapomina ale takto je to uz od I8080.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 15.04.2014, 13:28 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 297
Has thanked: 13 times
Been thanked: 228 times
suksoft píše:
Nomobi neni to presne jak pises. Rozhodne by nepomohlo kdyz by byl procesor TTL misto CMOS. Na procesoru absolutne nezalezi. Pri cteni neexistujici periferie se otevre IO 9C 74ls245 a tento doda zpet na vnitrni sbernici posledni bajt co byl vysilan na sbernici T9 smerem ven, coz je vetsinou posledni oktet predchazejici instrukce. A toho se da i zneuzit a Milsa bude muset udelat svuj emulator i blbuvzdorny.

Máš recht, na ten oddělovač jsem zapomněl, opravdu to vezme data z externí sběrnice, pokud přerušení nevyvolalo interni PIO. Tak bacha při pokusech na moji novou unikartu, má 100k odpor z D2 na zem (význam tam má ale jen při flashování firmwaru, pak se může odpojit).

A ano, dají se tím dělat různé zhůvěřilosti, jak píšeš, ale já osobně bych nepřesnosti v emulaci podobných konstrukcí prominul, stejně to nikdo v programech nepoužívá. Sám jsem opravoval v emulátoru STMZ800 emulaci jiné podobné pikantnosti a to čtení z adres E009h až E00Fh v módu MZ700 a namapované ROM od E010h-FFFFh. Jediný program, který na opravu zareagoval byl Sharp_Test, přestal psát MZ800 monitor Err. Každopadně to nemění nic na tom, že ten program to čte pricipiálně špatně, protože jeho výsledek závisí na "čtení z luftu".


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 20.04.2014, 20:16 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Čiastočnú emuláciu mám hotovú, ale potrebujem emulovať "pamäťovú bunku" E008 v móde 700. Tu je, podľa MZ-800 ROM Poznámky od Veverku a Odehnala na strane 27, signál GATE0, ktorý zapína a vypína čítač. Ak tomu správne rozumiem, je to v podstate zapnutie vypnutie zvuku, pokiaľ je nastavená frekvencia.

Problém pre mňa ale vzniká pri emulácii, pretože na adrese v ROM 02D5 sa testuje táto adresa a čaká sa na jednotku. Problém je, že neviem za akých okolností mám tú jednotku nastaviť. Predpokladám, že sa nejedná o tú istú jednotu, ktorú by som tam mohol vyslať pomocou OUT. Ide o to, že, ak by som tam vyslal 0, tak by táto rutina generovala nekonečnú slučku, akú mi generuje aj teraz emulátor. Jedná sa o úvodné pípnutie počítača.

Prehľadávam dokumenty na scave, ale nič k tomu neviem nájsť. Mohol by mi to niekto znalý osvetliť?

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 20.04.2014, 22:28 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Dosť sa inšpirujem aj Zdeňkovým emulátorom, keďže Sharpa po ruke nemám (ono by ho aj šlo zohnať, len ho nemám kam umiestniť (málo miesta)).

K tomu IM2, je to v CP/M a nijako to zrejme nie je ošetrené. Lenže, ak sa nemýlim, prerušenie 8253 sa dá zakázať cez 8255, ak som si to dobre naštudoval, takže možno je to tam len vypnuté a obslužná rutina občas kontroluje aj stav CTC2. V podstate to prerušenie nie je nutné ošetrovať, v ROM je to len preto, aby programátor na to nemusel myslieť. Veľmi s tým experimentovať nemôžem, lebo v Zdeňkovom emulátore sa po načítaní MZS nenaštartujú čítače a stojí tam čas, takže akýkoľvek experiment s CP/M je nutné previesť s maximálnou rýchlosťou emulácie a čakaním na dočítanie CTC2.

Mimochodom, čítajú čítače po zapnutí počítača aj bez inicializácie alebo sa naštartujú až po zápise do riadiaceho slova? Samozrejme CTC0 je iný prípad.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 20.04.2014, 22:53 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2734
Has thanked: 147 times
Been thanked: 423 times
Milsa na tvuj problem je odpoved na http://www.sharpmz.org/mz-700/download/sm700.pdf strana 31. Pozor cteni a zapis pametoveho mista 0E008h je uplne neco jineho. Zapis dela to ze D0 otevira a zavira moznost citani citace0 na 8253 - v literature na kterou se odkazujes je ocividny nesmysl - nemuzou dve hodnoty delat stejnou vec. Spravne je log0 - blokuje citani a log1 povoluje citani. Dobre je to popsane http://www.sharpmz.org/mz-700/8253ovview.htm. Ctenim na D0 se cte vystup TEMPO z oscilatoru 556. Takze musis v tvem emulatoru udelat oscilator ktery bude mit frekvenci podobnou jako originalni oscilator - neni to s nicim synchronizovane.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 20.04.2014, 23:03 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2734
Has thanked: 147 times
Been thanked: 423 times
Milsa v CP/M se preruseni od 8253 nevyuziva a je to zablokovane. Je nastaveno IM2 a preruseni se dela kazdych 20ms. V prerusovaci rutine se testuje klavesnice a blika kurzor. Pri tom se inkrementuje citac hodin ale ten neni v 8253 ale sw v Biosu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 12:28 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Aha, opäť moja nepozornosť. Prešiel som asi všetko, ale toto pdf ma nenapadlo. Ospravedlňujem sa, že sa zbytočne vypytujem, ale vážim si trpezlivosť odpovedateľov. Ďalej mi nie je jasné, že prečo Veverka a Odehnal píšu o 1/32 frekvencie kryštálu, keď je to v skutočnosti 1/16, ale to je zrejme len tlačová chyba.

K tomu CP/M: Ak uložíš snapshot v CP/M (ideálne v Nipsoft Commanderi), tak po otvorení MZS stoja hodiny, takže naviazané na čítač to bude, ale zrejme nie priamo.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 12:29 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Tam nie je napísané, že to robí tú istú vec, to bola len moja domnienka, o ktorej som predpokladal, že je nesprávna.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 12:50 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2734
Has thanked: 147 times
Been thanked: 423 times
Je to chyba. Vstup na citac se odvozeny od signalu LOAD a ten ma frekvenci krystalu /16.

Co se tyce CP/M tak kazda to muze delal jinak. Ja jsem popisoval Lamac CP/M co pouziva asi vetsina uzivatelu. Podobne to dela i moje MZ-DOS. Kazdopadne je vhodne CP/M startovat a ne snapshotovat - otazka je jak dobre zvlada emulator nastavit virtualni prostedi.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 18:59 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Čo myslíš virtuálnym prostredím? Nemyslím, že by mal byť problém obnoviť stav počítača tak ako bol počas ukladania. Ja sa o dokonalé uloženie budem tiež snažiť a pre kompatibilitu budem podporovať aj načítanie a ukladanie do MZS formátu od Zdeňka Adlera.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 19:25 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Takže nakoniec som sa dopátral toto:
- výstup na 0. bit E008 - povolenie, zastavenie čítania CTC0
- vstup z 0. bitu E008 - tempo 35 Hz

Moja otázka k tomu tempu je, že ako sa presne dopátrať k frekvencii 35 Hz? Predpokladám, že je to nejaký deliteľ z nejakej frekvencie (kryštál, procesor, CTC0, CTC1). Chcem to spraviť rovno čo najpresnejšie, aby som nemusel potom prerábať.

Doplnené: Ešte som zabudol, ako dlho ostane tá 1 nastavená, kým sa prepne na 0? Je to symetrický pulz? Pokiaľ tomu správne rozumiem, malo by to byť symetrické. Aspoň tak usudzujem z komentovaného výpisu monitora, keďže sa čaká na 1 a potom na 0.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 20:12 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2734
Has thanked: 147 times
Been thanked: 423 times
V emulatoru musis emulovat ten 556 a to tak ze frekvence bude cca dle http://www.ohmslawcalculator.com/555_astable.php pri zadani 1uF, 1,8K a 10K. Signal neni symetricky. A jak jsem psal, neni to nijak synchronizovane ze zbytkem pocitace. Jinak v pocitaci je jeste jeden oscilator a to ten co zajistuje blikani kurzoru - ten se navic da nulovat ale tento ne.

Jinak co by chtelo zkusit na realnem pocitaci je vynulovat D0 bit na E0008H a tim zastavit citac a pak prepnout do rezimu MZ800 a otestovat zda se to automaticky prepnulo na log1. Coz bych ocekaval.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 20:40 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1406
Has thanked: 130 times
Been thanked: 71 times
Po zadaní týchto hodnôt tam mám 66 Hz. Na reálnom počítači to otestovať neviem (nemám ho po ruke), ale teoreticky by to mohlo ísť otestovať na Zdeňkovom emulátore. Lenže tak sa dozviem len to, ako to emuluje on.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Informácie o 8253
PříspěvekNapsal: 21.04.2014, 20:44 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2734
Has thanked: 147 times
Been thanked: 423 times
Ppravuji se, mam tam preklep misto 10K je 18K. Ale ty zadej 1.8K do vypoctu. Pak ti ma vyjit neco okolo 38175Hz ale to nemusi byt uplne presne - to soucastky take maji nejakou toleranci.

Radek


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ů: 29 ]  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 20 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