Żaden z tych terminów nie jest odpowiedni dla błędu w grze zręcznościowej, która została zaprogramowana w języku asemblera i działa bez korzyści sprzętu chroniącego pamięć lub systemu operacyjnego.
„Niezdefiniowane zachowanie” to termin w języku C i językach pokrewnych, ukuty przez komitet normalizacyjny C w 1989 roku. Kod zachowuje się w sposób niezdefiniowany, gdy specyfikacja języka nie określa, co będzie robić. W języku asemblera Z80 nie ma czegoś takiego: efekt każdego kodu operacyjnego przy każdym możliwym wejściu jest dobrze zdefiniowany. Konwencjonalne angielskie znaczenie „niezdefiniowanego zachowania” można odczytać w celu zastosowania - ekran zabójstwa to zachowanie nie zdefiniowane przez ludzi, którzy napisali grę - ale nie użyłbym tego w tym kontekście, ponieważ jest zbyt prawdopodobne, aby podać zły wrażenie.
„Błąd segmentacji” jest terminem w POSIX, wywodzącym się ostatecznie z żargonu programistycznego systemu PDP. Błędy segmentacji występują, gdy program próbuje uzyskać dostęp do adresu pamięci, który nie jest „zmapowany” na nic: sprzęt i system operacyjny wykrywają to i zamykają nieprawidłowo działający program, w dokładnie określony sposób, który umożliwia programowi odzyskanie . Coś jakmogło się to zdarzyć w wyniku błędu w programie do gry Pac-Man, ponieważ płytka drukowana Pac-Man zapełnia pamięć ROM, RAM i urządzenia peryferyjne tylko nieco mniej niż połowę przestrzeni adresowej 64 kB Z80, ale nie mam byłem w stanie dowiedzieć się, co zrobiłby prawdziwy sprzęt, gdyby oprogramowanie próbowało uzyskać dostęp do niezapisanej pamięci. Cokolwiek by to jednak zrobiło, niewłaściwe byłoby opisanie go jako „błąd segmentacji”, ponieważ „system operacyjny” dla Pac-Mana (o ile go ma ) nie jest implementacją Uniksa i, znowu dałoby złe wrażenie.
Tymczasem błąd poziomu 256 nie ma dostępu do niezapisanej pamięci, więc jest dyskusyjny.
Trafne jest stwierdzenie, że w grze występuje błąd, który objawia się po przejściu na poziom 256. Trafne jest również stwierdzenie, że główną przyczyną błędu jest przepełnienie liczb całkowitych , a jego konsekwencjami jest uszkodzenie pamięci (lub, równoważnie, naruszenia) z pamięcią i bezpieczeństwa typu ). Są to wszystkie terminy CS ogólnego przeznaczenia zdefiniowane bez odniesienia do konkretnego języka lub środowiska systemu operacyjnego.
Dokładne jest również zaobserwowanie, że skutki błędu są podobne do skutków błędów w uszkodzeniu pamięci, które nie powodują błędów segmentacji we współczesnym środowisku . Jeśli przeczytasz którykolwiek z opisów exploitów Project Zero , zobaczysz niezwykłe podobieństwo do analizy Dona Hodgesa na ekranie zabicia Pac-Mana .
Zauważ, że emulator, który nie odtwarza wiernie ekranu zabicia po zasileniu ROM-ów Pac-Mana, nie emuluje poprawnie sprzętu gry.