Postavil jsem si Simulátor procesorů 89c051 dle zapojení zveřejněném na hw.cz. Po jeho oživení jsem zjistil drobné problémy s SW. Pokud byl program provozovan v režimu DOS bylo vše v pořádku a byl jsem zcela spokojen s jeho funkcemi. Problémy nastaly při použití původního SW pod Windows.
První problém který souvisí s chováním Windows9x spočíval ve špatné inicializaci,
nedocházelo k prvnímu resetu při přenosu programu, v režimu „jen DOS" se chyba neprojevovala.
Při krokování v prostředí C pro DOS pod systémem Windows9x se při prvním krokování
projevila stejná chyba, při dalším krokování vše proběhlo zcela v pořádku.
Postupným trasováním programu jsem zjistil že pokud program jako první přistoupí
na bázovou adresu sériového portu začne vše fungovat tak jak má. Windows9x p
ravděpodobně dokud není proveden jako první přístup na bázovou adresu sériového portu,
neuvolní ostatní adresy pro použití dosovskému programu.
Problém jsem vyřešil vložením následujícího řádku do zdrojového kódu,
outb(baze,0);
je umístěn jako první před ostatními příkazy pro obsluhu portu.
Druhý problém na který jsem narazil spočíval, že pokud byl hexa kód vygenerován překladačem nelineárně, adresy jednotlivých řádku v hexa souboru nedrželi vzestupnou tendenci, byli přeházeny, docházelo při přenosu k chybám a program v simulátoru neběžel jak má. Na tento problém jsem narazil v okamžiku kdy jsem zkoušel C pro 51, SDCC, což mne velmi potrápilo neboť jsem se domníval že mám chybu někde v programu. To jsem vyřešil dopsáním dvou řádků do bat souboru pro překlad. Nejprve se provedl převod na bin soubor a potom zpět na hexa, zdá se to drbáním levou rukou za pravým uchem, ale vyřešilo se to rychle a bezproblémově.
A jak se říká do třetice všeho dobrého i zlého. Přinesl jsem si simulátor k jinému počítači,procesor DURON 700MHz. Se choval program zcela zmatečně. Přenos dat probíhal zcela v pořádku, ale po ukončení programu pro zavedení programu, :-) , do simulátoru. Docházelo chvilkově k nekontrolovatelnému blikání LEDek na simulátoru, dokonce k nastavení TX trvale do 0 a k nastavení resteu. Takže simulátor byl zcela nepoužitelný. Toto chování se na domácím počítači, procesor C 300MHz a stejný operační systém, neprojevilo. Ani při krokování programu a jeho úpravách se mi nepodařilo problém odstranit. V režimu "jen DOS" se problém neprojevoval.
Vzhledem k tomu že jsem chtěl simulátor používat pod Win. Rozhodl jsem se z čistého zoufalství vyzkoušet přepsat sw pod Win. Využil jsem „Borland C++Builder 5 Standard" který jsem si nadělil pod stromeček. Pro komunikaci jsem použil komponentu „ComPort Library ".
Program obsahuje pouze pár tlačítek sloužících k jeho ovládání a realizující jeho funkce.
Program mi již slouží k plné spokojenosti a doufám že program bude fungovat i jiným.
Pokud do simulátoru osadíme procesor AT89S8252 získáme možnost zatěžovat výstupní brány
stejným proudem jako v případě originální 2051.
Program je freeware co do užívání tak i šíření, za dodržení platných zákonů a slušného chování.
Je poskytován tak jak je, bez jakýchkoliv záruk a používání je na vlastní nebezpečí.