Opcje projektu / Opcje domyślne
(Project Options / Default Options)
Okna te pozwalają dostosować parametry symulacji do indywidualnych potrzeb. Oba okna wyglądają tak samo: pierwsze definiuje parametry użyte w obecnej symulacji, podczas gdy drugie określa parametry, które będą użyte jako domyślne wartości w następnym projekcie/symulacji
Parametry, które zmieniłeś w domyślnych ustawieniach będą parametrami, których symulator użyje na starcie, gdy nowy plik HEX będzie wczytany.
Ostrzeżenie przepełnienia stosu (Stack Overflow Warning): pole to może pozostać czyste lub może być wprowadzona wartość heksadecymalna. Jeśli wprowadzisz w to pole określoną wielkość, wówczas po jej przekroczeniu przez stos wykonywanie programu będzie wstrzymane i wyświetlona zostanie wiadomość ostrzegawcza.
Ogólnie 80 (Hex) jest dobrą wartością, aby ustawić sygnalizację, że rozmiar stosu przekroczył 128 bajtów wewnętrznej pamięci dostępnej na procesorze 8051. Jeśli używasz 8052, możesz ustawić tę wartość na FF. Możesz też chcieć zmienić inne wartości – zwłaszcza, by chronić pewne obszary wewnętrznej pamięci RAM itp. Jeśli zostawisz to pole puste, nie będziesz otrzymywać komunikatów ostrzegawczych.
Ochrona rejestru przerwań (Interrupt Register Protection): jeśli ochrona rejestru przerwań jest uaktywniona, symulator automatycznie zweryfikuje, czy wartości rejestru, przed i po przerwaniu są sobie równe. Jeśli nie będą równe, symulator wyświetli komunikat ostrzegawczy. Jeśli ta opcja nie jest aktywna, wyżej opisana weryfikacja nie będzie miała miejsca, i błąd może zajść bez ochrony rejestru i komunikatów ostrzegawczych.
Sprawdzenie adresu zwrotnego podprogramu/przerwania (Subroutine/Interrupt Return Address Checking):
Opcja ta, jeśli jest aktywna, ostrzega użytkownika, gdy wykonywana instrukcja nie jest zbieżna z funkcją "CALL" np. jeśli instrukcja 0100 jest "LCALL 0300", i instrukcja “0300” jest typu “RET”, bieg programu powinien powrócić do adresu 0103. Jednakże, kiedy „RET” jest wykonywana, kontrola programu jest przenoszona do innego miejsca niż oczekiwane 0103, co może się wydawać błędem. Ściślej może to znaczyć, że podprogram nie czyści stosu przed zakończeniem działania. Dla przykładu, przeanalizujmy następujący problem:
0100 LCALL 0300
0300 PUSH ACC
0301 RET
Powinno to być uznane za błąd. Przywołujesz w podprogramie adres 0300, umieszczając go na stosie, i później powracasz, prawdopodobnie do nieoczekiwanego miejsca. Jeśli opcja „Subroutine/Interrupt Return Address Checking" jest włączona, błędy będą “wyłapane” tak szybko jak tylko „RET” będzie wykonane.
Przerwanie po X kolejnych NOP (Break After X Consecutive NOPs): Jeśli wartość jest wprowadzona w to pole, symulator będzie automatycznie zatrzymywał się i informował po wykonaniu „X” kolejnych operacji NOP. Np. jeśli to pole zawiera wartość 15, symulator automatycznie zatrzyma się po wykonaniu 15 operacji NOP.
Jeśli w pole wpisana jest wartość „0” lub pozostaje ono puste, symulator będzie kontynuował wykonywanie NOP, do momentu wstrzymania przez użytkownika.
Obsługa niezdefiniowanych instrukcji (Undefined Instruction Handling): Symulator 8051 przydziela każdej możliwej operacji kod. Jeśli opcja wykonywania jest aktywna, symulator będzie wykonywać niezdefiniowaną instrukcję tak jak zwykłą i nie będzie ostrzegać o błędach. Jeśli opcja „Wykonuj i Ostrzegaj” jest aktywna, symulator będzie wykonywać niezdefiniowane instrukcje, przerywać bieg programu i informować, że napotkał taką instrukcję. Gdy opcja „Benchmark/SFR Dump” jest włączona, symulator nie wykona nieznanej instrukcji tzn. będzie ona całkowicie zignorowana, nie będzie zliczana w liczniku cykli). Wyjściowa informacja zawiera adres gdzie wystąpiła nieznana instrukcja, oraz ilość wszystkich instrukcji wykonanych do tego momentu, liczbę cykli i wartości Akumulatora, Rejestru B, PSW, SP, rejestrów R0-R7 – wszystkie te rejestry będą wyświetlone. Jest to najprostszy sposób do przeprowadzania porównań i testów.
TYP CPU (CPU Type): Opcja ta pozwala wybrać typ procesora, którego używasz. Dwa główne typy procesorów to 8051 oraz 8052. Jedyna różnica pomiędzy nimi jest taka, że 8051 nie obsługuje Timer 2 i ma tylko 128 bajtów wewnętrznej pamięci RAM. Dodatkowo są dostępne dwa typy procesorów:
"8051 Variant" i "8052 Variant". Odmiany te są jak 8051 i 8052 z tą różnicą, że wszystkie adresy SFR (80h-FFh) są rozważane jako istotne, podobnie jak bity adresów 80h-FFh. Obie te odmiany są użyteczne do prób symulacji programów napisanych specjalnie na 8051/8052 variant. Zwykłe procesory 8051/8052 wskażą wiele błędów, kiedy będą pracować na niestandardowych dla siebie rejestrach SFR, bitach itd.
Uwaga: Jest to własność zarejestrowanej wersji programu; użytkownicy niepełnej wersji mogą symulować jedynie 8052.
Prędkość zegara 8052 (8052 Clock Speed): Opcja ta pozwala na wybranie „Szybkości zegara” z jaką chcesz przeprowadzać symulację. Jako domyślne masz do wyboru 11.059 lub 12.000 Mhz. Możesz również wprowadzić swoją własną prędkość zaznaczając opcję “inna prędkość”, pamiętając o wprowadzeniu wartości w Mhz.