Instrukcja HLT
Instrukcja HLT oznacza dla procesora "zatrzymaj wykonywanie kolejnych instrukcji aż do nadejścia następnego niezamaskowanego przerwania". HLT to miejsce, w którym każdy przyzwoity system operacyjny spędza czas, jeśli nie ma żadnych rzeczy do zrobienia.
Na system przerwań MERY-400 składają się trzy rejestry:
- rejestru zgłoszeń RZ
- rejestru masek RM
- rejestru przyjęć RP
Zawartość rejestru RP odpowiada zawartości rejestru RZ po nałożeniu masek z rejestru RM. Instrukcja HLT reaguje tylko na przerwania przyjęte, pojawiające się w rejestrze RP. W warunkach normalnej pracy HLT może być użyte do oczekiwania aż użytkownik wciśnie klawisz na terminalu, dysk zgłosi koniec transmisji danych, czy timer systemowy "tyknie", budząc planistę systemu operacyjnego. Jeśli natomiast procesor zawiesił swoje działanie po napotkaniu instrukcji HLT, a wszystkie przerwania są zamaskowane, to komputer stanął "na dobre". Takie zachowanie wykorzystywane może być do zatrzymania pracy systemu z powodu awarii (sprzętu lub oprogramowania).
W tym ostatnim przypadku istnieje też prosty sposób na przekazanie użytkownikowi informacji o przyczynie zatrzymiania systemu. Mimo, że formalnie instrukcja HLT jest bezargumentowa, to assemblery ASSK, ASSM i EMAS pozwalają na wywołanie jej z argumentem. Jest to możliwe, ponieważ 7 bitów tego rozkazu (pola D, B i C) nie jest w ogóle branych pod uwagę podczas jego dekodowania. I to właśnie na nich można zapisać dodatkową informację.
Użytkownik komputera, widząc, że system się zatrzymał (zapalony wskaźnik WAIT na pulpicie technicznym), może sprawdzić zawartość rejestru rozkazu i porównać zapisaną tam na nieużywanych polach rozkazu HLT wartość ze "spisem stopów" dostarczanym przez producenta oprogramowania. Przykładem takiego spisu może być Spis stopów systemowych CROOK-5.