Aucun de ces termes n'est approprié pour un bogue dans un jeu d'arcade programmé en langage assembleur et fonctionnant sans le matériel de protection de la mémoire ou le système d'exploitation.
Le "comportement indéfini" est un terme technique en C et dans les langages apparentés, inventé par le comité des normes C en 1989. Le code a un comportement indéfini lorsque la spécification de langage ne définit pas ce qu'il va faire. Le langage d'assemblage Z80 n'existe pas: l'effet de chaque opcode avec toutes les entrées possibles est bien défini. La signification anglaise classique de "comportement indéfini" peut être lue pour s'appliquer - l'écran de suppression est un comportement qui n'a pas été défini par les auteurs du jeu - mais je ne l'utiliserais pas dans ce contexte car il est trop probable qu'il donne le mauvais impression.
"Erreur de segmentation" est un terme technique de POSIX, dérivé du jargon de la programmation de système PDP. Les erreurs de segmentation se produisent lorsqu'un programme tente d'accéder à une adresse de mémoire qui n'est pas "mappée" sur quoi que ce soit: le matériel et le système d'exploitation le détectent et arrêtent le programme défectueux, d'une manière soigneusement définie qui permet au programme de récupérer . Quelque chose commecela aurait pu être le résultat d'un bogue dans le programme de jeu Pac-Man, car la carte de circuit imprimé Pac-Man n'occupe qu'un peu moins de la moitié de l'espace d'adressage de 64 ko de la Z80 avec ROM, RAM et périphériques, mais je n'ai ' t été capable de savoir ce que le matériel réel ferait si le logiciel tentait d’accéder à une mémoire non mappée. Quoi qu’il en soit, il serait inapproprié de le qualifier de "défaut de segmentation", car le "système d’exploitation" de Pac-Man (dans la mesure où il en possède même un) n’est pas une implémentation de Unix et, là encore, donnerait la mauvaise impression.
Le bogue de niveau 256, quant à lui, n’accède pas à la mémoire non mappée, il est donc inutile.
Il est exact de dire que le jeu a un bogue qui se manifeste en passant au niveau 256. Il est également exact de dire que la cause première du bogue est un débordement d’entier et que ses conséquences sont une corruption de la mémoire (ou, de manière équivalente, des violations). de mémoire et type de sécurité ). Ce sont tous des termes CS à usage général définis sans référence à un langage ou à un environnement de système d'exploitation particulier.
Il est également exact d'observer que les effets du bogue ressemblent aux effets, dans un environnement moderne, de bogues de corruption de mémoire qui ne provoquent pas d' erreurs de segmentation. Si vous lisez l'un des écrits sur l'exploit de Project Zero , vous verrez une similarité remarquable avec l' analyse de Don Hodges sur l'écran de suppression de Pac-Man .
Notez qu'un émulateur qui ne reproduit pas fidèlement l'écran de neutralisation lorsqu'il est alimenté par les ROM Pac-Man n'émule pas correctement le matériel de jeu.