Ninguno de estos términos es apropiado para un error en un juego de arcade que se programó en lenguaje ensamblador y se ejecuta sin el beneficio del hardware o sistema operativo de protección de memoria.
"Comportamiento indefinido" es un término de arte en C y en lenguajes relacionados, acuñado por el comité de estándares de C en 1989. El código tiene un comportamiento indefinido cuando la especificación de lenguaje no define qué lo hará No existe tal cosa en el lenguaje ensamblador Z80: el efecto de cada código de operación con cada entrada posible está bien definido. El significado en inglés convencional de "comportamiento indefinido" se puede leer para aplicar - la pantalla de eliminación es un comportamiento no definido por las personas que escribieron el juego - pero no lo usaría en este contexto porque es muy probable que dé el error impresión.
"Fallo de segmentación" es un término de arte en POSIX, derivado en última instancia de la jerga de programación del sistema PDP. Las fallas de segmentación ocurren cuando un programa intenta acceder a una dirección de memoria que no está "asignada" a nada: el hardware y el sistema operativo detectan esto y apagan el programa que funciona mal, de una manera cuidadosamente definida que le permite al programa la oportunidad de recuperarse . Algo como podría haber ocurrido como resultado de un error en el programa de juego Pac-Man, porque la placa de circuito Pac-Man solo llena un poco menos de la mitad del espacio de direcciones de 64kB con ROM de la Z80. RAM y periféricos, pero no he podido averiguar qué haría el hardware real si el software intentara acceder a la memoria no asignada. No obstante, haga lo que haga, sería inapropiado describirlo como un "fallo de segmentación", porque el "sistema operativo" para Pac-Man (en la medida en que incluso tiene uno) es no una implementación de Unix y, de nuevo, daría una impresión incorrecta.
El error de nivel 256, mientras tanto, no accede a la memoria no asignada, por lo que es discutible.
Es preciso decir que el juego tiene un error que se manifiesta al avanzar al nivel 256. También es correcto decir que la causa raíz del error es un desbordamiento de enteros , y que sus consecuencias son corrupción de memoria (o, de manera equivalente, violaciones de memoria y tipo de seguridad ). Todos estos son términos de CS de propósito general definidos sin referencia a ningún idioma o entorno de sistema operativo en particular.
También es preciso observar que los efectos del error son similares a los efectos, dentro de un entorno moderno, de errores de corrupción de memoria que no provocan segmentación faltas Si lees cualquiera de los Project Zero explota las escrituras, verás una notable similitud con El análisis de la pantalla de muerte de Pac-Man de Don Hodges .
Tenga en cuenta que un emulador que no reproduce fielmente la pantalla de eliminación cuando se alimenta con las ROM de Pac-Man no está emulando correctamente el hardware del juego.