Nenhum desses termos é apropriado para um bug em um jogo arcade programado em linguagem assembly e executado sem o benefício de hardware ou sistema operacional de proteção de memória.
"Comportamento indefinido" é um termo de arte em C e linguagens relacionadas, cunhado pelo comitê de padrões C em 1989. O código tem um comportamento indefinido quando a especificação de linguagem não define o que fará. Não existe tal coisa na linguagem assembly Z80: o efeito de todo código de operação com todas as entradas possíveis é bem definido. O significado convencional em inglês de "comportamento indefinido" pode ser lido para aplicar - a tela de morte é um comportamento não definido pelas pessoas que escreveram o jogo - mas eu não o usaria neste contexto porque é muito provável que dê errado impressão.
"Falha de segmentação" é um termo de arte no POSIX, derivado em última análise do jargão de programação do sistema PDP. As falhas de segmentação acontecem quando um programa tenta acessar um endereço de memória que não é "mapeado" para nada: o hardware e o sistema operacional detectam isso e encerram o programa com defeito, de uma maneira cuidadosamente definida que permite ao programa a chance de se recuperar . Algo comoisso pode ter acontecido como resultado de um bug no programa de jogos Pac-Man, porque a placa de circuito Pac-Man ocupa apenas um pouco menos da metade do espaço de endereço de 64kB do Z80 com ROM, RAM e periféricos, mas eu não Não foi possível descobrir o que o hardware real faria se o software tentasse acessar a memória não mapeada. Seja o que for, seria inapropriado descrever como uma "falha de segmentação", porque o "sistema operacional" do Pac-Man (na medida em que possui um) não é uma implementação do Unix e, novamente, ele daria a impressão errada.
O bug do nível 256, enquanto isso, não acessa a memória não mapeada, por isso é discutível.
É preciso dizer que o jogo possui um bug que se manifesta ao avançar para o nível 256. Também é preciso dizer que a causa raiz do bug é um estouro de número inteiro e que suas conseqüências são corrupção de memória (ou, equivalentemente, violações) de memória e tipo de segurança ). Todos esses termos de uso geral são definidos sem referência a um idioma ou ambiente de SO específico.
Também é preciso observar que os efeitos do bug são semelhantes aos efeitos, em um ambiente moderno, de erros de corrupção de memória que não provocam falhas de segmentação. Se você ler algum dos escritos de exploração do Project Zero , verá uma notável semelhança com a análise de Don Hodges da tela de morte do Pac-Man .
Observe que um emulador que não reproduz fielmente a tela de morte quando alimentado com as ROMs do Pac-Man não está emulando o hardware do jogo corretamente.