ข้อกำหนดเหล่านี้ไม่เหมาะสำหรับข้อบกพร่องในเกมอาร์เคดที่ตั้งโปรแกรมในภาษาแอสเซมบลีและทำงานโดยไม่ได้รับประโยชน์จากฮาร์ดแวร์หรือระบบปฏิบัติการป้องกันหน่วยความจำ
"พฤติกรรมที่ไม่ได้กำหนด" เป็นคำศัพท์ในภาษา C และภาษาที่เกี่ยวข้องประกาศเกียรติคุณโดยคณะกรรมการมาตรฐาน C ในปี 1989 รหัสมีพฤติกรรมที่ไม่ได้กำหนดเมื่อข้อกำหนดภาษาไม่ได้กำหนดสิ่งที่จะทำ ไม่มีสิ่งนั้นในภาษาแอสเซมบลี Z80: เอฟเฟกต์ของ opcode ทุกตัวที่มีอินพุตที่เป็นไปได้ทั้งหมดได้รับการกำหนดไว้อย่างดี ความหมายทั่วไปของภาษาอังกฤษของ "พฤติกรรมที่ไม่ได้กำหนด" สามารถอ่านได้เพื่อนำไปใช้ - หน้าจอการฆ่าเป็นพฤติกรรมที่ไม่ได้กำหนดโดยคนที่เขียนเกม - แต่ฉันจะไม่ใช้มันในบริบทนี้เพราะมันมีแนวโน้มที่จะผิด ความประทับใจ
"การแบ่งส่วนความผิดพลาด" เป็นคำศัพท์ที่ทันสมัยใน POSIX ซึ่งได้มาในที่สุดจากศัพท์แสงการเขียนโปรแกรมระบบ PDP ความผิดพลาดของการแบ่งกลุ่มเกิดขึ้นเมื่อโปรแกรมพยายามเข้าถึงที่อยู่หน่วยความจำที่ไม่ได้ "แมป" กับสิ่งใด: ฮาร์ดแวร์และระบบปฏิบัติการตรวจพบสิ่งนี้และปิดโปรแกรมที่ทำงานผิดพลาดด้วยวิธีที่กำหนดอย่างระมัดระวังซึ่งทำให้โปรแกรมมีโอกาสกู้คืน . บางอย่างเช่นสิ่งนี้อาจเกิดขึ้นจากข้อผิดพลาดในโปรแกรมเกม Pac-Man เนื่องจากแผงวงจร Pac-Man บรรจุเพียงน้อยกว่าครึ่งหนึ่งของพื้นที่แอดเดรส 64kB 64kB ของ Z80 ที่มี ROM, RAM และอุปกรณ์ต่อพ่วง แต่ฉันยังไม่ได้ ไม่สามารถค้นหาว่าฮาร์ดแวร์จริงจะทำอย่างไรหากซอฟต์แวร์พยายามเข้าถึงหน่วยความจำที่ไม่ได้แมป แม้ว่าสิ่งที่มันจะทำมันจะไม่เหมาะสมที่จะอธิบายว่าเป็น "การแบ่งส่วนความผิด" เพราะ "ระบบปฏิบัติการ" สำหรับ Pac-Man (เท่าที่มันมีหนึ่ง) ไม่ได้ดำเนินการตาม Unix และอีกครั้งมัน จะให้ความประทับใจที่ผิด
ข้อผิดพลาดระดับ 256 ในขณะเดียวกันไม่สามารถเข้าถึงหน่วยความจำที่ไม่ได้แมปดังนั้นจึงเป็นข้อสงสัย
มันมีความถูกต้องที่จะบอกว่าเกมนี้มีบั๊กที่ปรากฎเมื่อใกล้ถึงเลเวล 256 นอกจากนี้ยังถูกต้องที่จะบอกว่าสาเหตุของข้อผิดพลาดนั้นคือจำนวนเต็มล้นและผลที่ตามมาคือหน่วยความจำเสียหาย (หรือเทียบเท่า ของหน่วยความจำและความปลอดภัยประเภท ) เหล่านี้เป็นข้อกำหนด CS สำหรับวัตถุประสงค์ทั่วไปที่กำหนดโดยไม่มีการอ้างอิงถึงภาษาหรือสภาพแวดล้อมระบบปฏิบัติการใด ๆ
นอกจากนี้ยังมีความถูกต้องที่จะสังเกตว่าผลกระทบของข้อบกพร่องนั้นคล้ายกับผลกระทบภายในสภาพแวดล้อมที่ทันสมัยของข้อบกพร่องการทุจริตหน่วยความจำที่ไม่ก่อให้เกิดข้อผิดพลาดการแบ่งส่วน ถ้าคุณอ่านใด ๆ ของโครงการศูนย์ใช้ประโยชน์จาก writeups คุณจะเห็นความคล้ายคลึงกันที่โดดเด่นเพื่อดอนฮอดจ์การวิเคราะห์ของ Pac-Man ฆ่าหน้าจอ
โปรดทราบว่าอีมูเลเตอร์ที่ไม่สร้างหน้าจอฆ่าซ้ำโดยสุจริตเมื่อป้อน Pac-Man ROM ไม่ได้จำลองฮาร์ดแวร์ของเกมอย่างถูกต้อง