Spis treści

Spis treści

Obsługa skryptu

Ekran został podzielony na trzy części:

W dalszym opisie pozwolę sobie pominąć rzeczy oczywiste (np. do czego służy przycisk wyczyść konsolę), by nie obrażać inteligencji szanownego czytelnika.

Konsola tekstowa

Konsola tekstowa

Konsola tekstowa jest używana przez kompilator i emulator do wypisywania komunikatów; komunikaty zostały podzielone na trzy klasy:

Błędy
Uniemożliwiają dalsze funkcjonowanie kompilatora (błędy składniowe, powtórzenie etykiet) lub emulatora (dzielenie przez zero, ujemna wartość w adresowaniu pośrednim).
Ostrzeżenia
Informacje o istotnych rzeczach, np. brak instrukcji halt, definicja etykiety do której nie ma odwołania w programie.
Informacje

Komunikaty można przekierować zarówno do okienka tekstowego, jak również do wyskakującego okienka. Dla każdej z wyżej wymienionych klas istnieje możliwość wyboru sposobu prezentacji, służą do tego przełączniki na konsole oraz do okienka.

Edytor i kompilator

Edytor i kompilator

Kompilator odczytuje tekst źródłowy programu z okienka tekstowego. Przycisk kompilacja inicjuje kompilację. Jeśli przeszła ona bezbłędnie, to włączany jest tryb emulacji: możliwość edycji/kompilacji zostaje zablokowana, włączany jest interfejs emulatora.

Emulator

Emulator

Interfejs emulatora został podzielony na cztery części: Maszyna, Rejestry, Taśma wejściowa, Taśma wyjściowa.

Maszyna

Naciśnięcie przycisku wykonaj instrukcję powoduje wykonanie bieżącej instrukcji. W okienku znajdującym się poniżej wyświetlane są trzy kolejne linie kodu, bieżąca instrukcja jest oznaczona przez =>. Wszystkie linie są poprzedzone fizycznym numerem linii (maksymalnie 3-cyfrowym), niezależnie od tego czy w kodzie występuje numer linii, czy nie. Może to wyglądać np. tak:

    5: add   0  # r0 *= 2
=>  6: add   5
    7: read  1

Naciśnięcie przycisku reset powoduje wyzerowanie rejestrów i przejście na początek programu. Zawartość taśm nie jest zmieniana.

Naciśnięcie przycisku stop powoduje zakończenie trybu emulacji i przejście w tryb edycji.

Rejestry

W polu tekstowym wyświetlane są wartości obserwowanych rejestrów.

Naciśnięcie przycisku obserwuj rejestry... (ang. watch) powoduje wyświetlenie okienka, w którym można wpisać listę wyrażeń (wyrażenia oddziela się spacją/spacjami); zawsze na początku wyświetlany jest akumulator. Wszystkie błędnie zapisane wyrażenia są ignorowane.

wyrażenie wyświetlany tekst
pole wyświetl numery rejestrów:
wyłączone włączone
  r0=xxx r0=xxx
numer rejestru
numer r0=xxx rnumer=yyy r0=xxx rnumer=yyy
nazwany rejestr
nazwa=numer r0=xxx nazwa=yyy r0=xxx nazwa(numer)=yyy
tablica (zakres rejestrów)
lo:hi r0=xxx a[lo:hi]=[yyy,zzz,...,vvv] r0=xxx a[lo:hi]=[yyy,zzz,...,vvv]
nazwana tablica
tablica=lo:hi r0=xxx tablica=[yyy,zzz,...,vvv] r0=xxx tablica[lo:hi]=[yyy,zzz,...,vvv]

Oto dość rozbudowany przykład. Niech rejestry mają następujące wartości:

r0=777, r1=111, r2=222, r3=333, r4=-5, r5=-6, r6=-7, r7=12, r8=13

Wyrażenie wpisane do okienka ma następującą postać

2 3 n=0 zmienna=7 8 tab=4:6 0:4 tab2=5
a zostanie wyświetlone tak (pole wyświetl numery rejestrów wyłączone)
r2=222 r3=333 n=777 zmienna=12 r8=13 tab=[-5,-6,-7] a[0:4]=[777,111,222,333,-5] tab2=-6

Taśma wejściowa

Naciśnięcie przycisku dopisz do taśmy... powoduje wyświetlenie okienka, w którym można wpisać kolejne liczby (oddzielone spacjami lub przecinkami) - zostaną one dopisane do taśmy. Innym sposobem dodania nowych wartości do taśmy jest naciśnięcie przycisku wylosuj - do taśmy dopisywana jest liczba wylosowana z przedziału określonego w polach obok (domyślnie jest to przedział od 0 do 100).

W okienku poniżej wyświetlana jest zawartość taśmy wejściowej - pierwsza liczba od lewej jest tą, która zostanie odczytana przy następnym wywołaniu instrukcji read. Próba odczytu z pustej taśmy nie kończy się błędem - do taśmy dopisywana jest przypadkowa wartość.

Nie ma możliwości przewijania widoku taśmy, jeśli więc trzeba zobaczyć jej zawartość, można nacisnąć przycisk na konsolę. Spowoduje to wypisanie wszystkich elementów taśmy na konsolę.

Taśma wyjściowa

Ostatnia liczba z prawej jest ostatnio zapisaną przez rozkaz write.

Podobnie jak dla taśmy wejściowej, tak i tu nie ma możliwości przewijania widoku. Uwagi j.w.