Indeks English version English version

Casio PB-1000 - wewnętrzna pamięć ROM procesora

Część systemowego oprogramowania mikrokomputera Casio PB-1000 jest ukryta w wewnętrznej pamięci ROM mikroprocesora o rozmiarze 3072 słów. Jest ona dostępna wyłącznie jako pamięć programu, nie można odczytywać z niej danych (z wyjątkiem stałych zakodowanych w instrukcjach natychmiastowego trybu adresowania). Tablice stałych używane przez procedury z tej pamięci muszą być umieszczone w zewnętrznej przestrzeni adresowej (dotyczy to np. tablic CORDIC, stałych zmiennoprzecinkowych, kodów klawiatury, wzorów znaków alfanumerycznych...).

Z powodu tego ograniczenia nie można bezpośrednio odczytać zawartości pamięci. Udało się jednak tego dokonać za pomocą krokowego wykonywania kodu przez wywoływanie przerwania IRQ2 podczas każdej instrukcji.

W tym celu wyprowadziłem sygnały magistrali do złączki wstawionej w gniazdo uniwersalnego programatora TopMax sterowanego przez komputer PC. Ten zestaw pozwala mi na wykonywanie dowolnej pojedynczej instrukcji, odczytu i modyfikowania rejestrów i pamięci, rejestracji operacji na magistrali, odliczania taktów zegara. Na podstawie otrzymanych informacji można podjąć próbę identyfikacji instrukcji.

Archiwum pb1000r0.zip zawiera częściowo skomentowany listing pamięci ROM odtworzony za pomocą opisanej metody.

PB-1000 podłączony do programatora

Niejednoznaczność

Niektóre instrukcje nie mogą być jednoznacznie zidentyfikowane, ponieważ istnieją różne instrukcje dające ten sam efekt. Przykłady:

Kodowanie instrukcji

Czasem udaje się zidentyfikować nie tylko instrukcję, ale również rzeczywistą zawartość pamięci. Jest to możliwe przez próbę wykonania kodu drugiego słowa 2-słowowej instrukcji. Przykłady: