Emulator kalkulatora VX-3
Program emuluje mikroprocesor HD61700 oraz używa obrazu odczytanej zawartości pamięci ROM kalkulatora.
Wymaga komputera PC z systemem Windows.
Wersja programu 03, ostatnie uaktualnienie 2023/12/15
vx3_emus.zip - teksty źródłowe programu w Delphi 5
vx3_emul.zip - skompilowana wersja programu
Sposób użycia: rozpakować pliki do pustego katalogu a następnie uruchomić program vx3.exe
- Następujące pliki zawierają obrazy pamięci i są załadowywane przy starcie programu:
rom0.bin - wewnętrzna pamięć procesora ROM 6kB
rom1.bin - zewnętrzna pamięć ROM 128kB
charset.bin - wewnętrzna pamięć ROM sterownika LCD o rozmiarze 1.5kB
ram0.bin - pamięć RAM 40kB
register.bin - wewnętrzne rejestry procesora
- Po zakończeniu programu są zapisywane na dysk zaktualizowane wersje plików
ram0.bin
i register.bin
.
Brakujące pliki są odtwarzane, ale muszą wtedy zostać zainicjowane przyciskiem ALL RESET.
- Emulator może być obsługiwany myszą lub z klawiatury.
Specjalne funkcje klawiszy:
Page Up: czerwone S
Page Down: CAPS
Esc: BRK
Insert: INS
Backspace: BS
Delete: DEL
Enter: EXE
F3: wstrzymuje wykonywanie programu i wywołuje okno debugera
F4: wywołuje okno narzędzia komunikacyjnego
F9: Reset
Funkcjonują również klawisze sterujące kursorem.
Panel deasemblera
- Przy wywołaniu okna debugera początkowy adres deasemblacji jest zgodny z zawartością rejestru Program Counter.
Można go zmienić klikając na adres w pierwszym wierszu i wpisując nową wartość, która musi być potwierdzona klawiszem Enter.
- Po kliknięciu na zdeasemblowaną instrukcję można wpisać nową.
Podobnie jak w przypadku adresu, konieczne jest wciśnięcie klawisza Enter żeby zmiany zostały przyjęte.
Po zakończeniu programu zapamiętywane są tylko modyfikacje zawartości pamięci RAM, natomiast wszelkie zmiany dokonane w obszarze ROM są utracone.
Uwagi:
- nie można używać etykiet ani wyrażeń arytmetycznych
- akceptowane są liczby szesnastkowe (poprzedzone prefiksem &H) oraz dziesiętne
- argumentem skoków względnych może być tylko adres absolutny, nie przesunięcie
Panel edytora binarnego
- Edytor binarny pozwala na przeglądanie/edycję zawartości pamięci RAM.
- Można zmienić adres początkowy oraz zawartość pamięci klikając na nie i wpisując nową wartość.
Zmiany muszą być potwierdzone klawiszem Enter.
Panel rejestrów
- Kliknięcie na zawartość rejestru umożliwia wpisanie nowej wartości.
Zmiany muszą być potwierdzone klawiszem Enter.
- Pierwszy wiersz pokazuje stan czterech najbardziej znaczących bitów rejestru Flag.
Ich stan można również modyfikować.
Panel rejestrów głównych (main register file)
- Kliknięcie na zawartość rejestru umożliwia wpisanie nowej wartości.
Zmiany muszą być potwierdzone klawiszem Enter.
Sterowanie programem
- Zamknięcie okna debugera wznawia wykonywanie programu bez żadnego śledzenia.
- Wciśnięcie klawisza [Run] w grupie Single step powoduje wykonanie jednego rozkazu maszynowego.
W tym trybie ignorowane są zgłoszenia przerwań.
- W celu wykonania określonej ilości rozkazów maszynowych należy wpisać żądaną wartość (dziesiętnie) do pola Number of steps a następnie wcisnąć przyporządkowany klawisz [Run].
- Panel Breakpoint umożliwia zdefiniowanie pułapki, tzn. wartości licznika programu, której osiągnięcie powoduje wstrzymanie wykonywania programu i ponowne wywołanie okna debugera.
Niektóre parametry emulatora można dostosować do indywidualnych potrzeb modyfikując plik vx3.ini za pomocą dowolnego edytora tekstowego.
Opis zawartości tego pliku:
OscFreq = 910
- Ta wartość definiuje częstotliwość zegara emulowanego procesora.
W celu usunięcia emulatora wystarczy skasować podkatalog w którym został zainstalowany.
Program nie dokonuje w systemie żadnych zmian poza swoim podkatalogiem.
- W programie użyty został darmowy komponent ThreadedTimer, którego autorem jest Carlos Barbosa.
- Brak obsługi dźwięku.
- Nie jest obsługiwana funkcja przewijania komendy $8 sterownika LCD.
- Mogą być błędy w wyniku niedokładności rekonstrukcji zawartości wewnętrznej pamięci ROM.