Emulator kalkulatora FX-870P
Program emuluje mikroprocesor HD61700 oraz używa obrazu odczytanej zawartości pamięci ROM kalkulatora.
Wymaga komputera PC z systemem Windows.
Wersja programu 13, ostatnie uaktualnienie 2024/09/30
fx870_es.zip - teksty źródłowe programu w Delphi 5
fx870_em.zip - skompilowana wersja programu
Sposób użycia: rozpakować pliki do pustego katalogu a następnie uruchomić program fx870.exe
fx870_fa.zip - alternatywna grafika, której autorem jest Mahmoud Yassine
Sposób użycia: Zastąpić plik face.bmp w katalogu w którym został zainstalowany program.
- 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 64kB
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 fx870.ini za pomocą dowolnego edytora tekstowego.
Opis zawartości tego pliku:
OscFreq = 921
- Ta wartość definiuje częstotliwość zegara emulowanego procesora.
Option2 = 0
- Ta wartość określa stan portu P4: 1 dla wersji japońskiej, 0 dla jakiejś nie produkowanej wersji eksportowej (w rzeczywistości zarówno FX-870P jak i VX-4 mają ustawienie japońskie).
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.
FMEM jest narzędziem służącym do edycji obrazu pamięci RAM.
Może wyświetlać stan użycia ram0.bin oraz zapisywać/usuwać pliki tekstowe w obszarach F0-F9.
Ponadto za pomocą załączonego narzędzia Pbf2FM.b
możliwe jest ładowanie programów maszynowych do FBF/VX-MENU.