การอินเตอร์รัพท์โหมด 0


        การอินเทอร์ในโหมดนี้ กำหนดได้ด้วยคำสั่ง IM0 ซึ่ง Z80 ได้ออกแบบให้มีการทำงานในลักษณะเดียวกับซีพียู 8080 ของบริษัทอินเทล เพื่อรองรับผู้ที่เคยใช้ซีพียู 8080 ให้สามารถใช้ Z80 แทนได้ทันที การอินเทอร์รัพต์ในโหมดนี้อุปกรณ์ภายนอกจะต้องส่งข้อมูลเข้ามาทางบัสข้อมูลด้วยเพื่อให้ Z80 มารับข้อมูลดังกล่าวไปกำหนดตำแหน่งของโปรแกรมย่อยที่จะให้บริการอินเทอร์รัพต์ โดยข้อมูลที่ส่งมาและตำแหน่งของแอดเดรสที่ Z80 จะกระโดดไปทำงานจะเป็นดังนี้


        ซึ่งจะเห็นว่าเหมือนกับตารางการกระโดดโดยใช้คำสั่ง RST การใช้วิธีนี้จะทำให้เรากำหนดโปรแกรมในการบริการอินเทอร์รัพต์ได้ถึง 8 ตำแหน่ง ทำให้สามารถตอบสนองโดยกำหนดรูปแบบการให้บริการที่แตกต่างกันได้ถึง 8 ลักษณะ
สำหรับขั้นตอนในการดำเนินงานการอินเทอร์รัพต์ในโหมด 0 จะเป็นดังนี้
        1.) Z80 จะรีเซ็ตให้ค่าใน IFF1 และ IFF2 มีค่าเป็น 0 เพื่อกำหนดว่าจะไม่ตอบรับการอินเทอร์รัพต์ใดๆที่จะตามเข้ามาต่อจากนี้
        2.) ขา M1 และ IORQจะมีค่าเป็น 0 เพื่อส่งสัญญาณไปบอกให้อุปกรณ์ภายนอก ส่งข้อมูลรหัสคำสั่งดังกล่าว ซึ่งมีขนาด 1 ไบต์ มาที่บัสข้อมูล
        3.) Z80 จะเก็บค่าข้อมูลคำสั่งดังกล่าว แล้วเก็บค่า PC ไว้ใน สแตก จากนั้นกระโดดไปทำงานที่แอดเดรสต่างๆ ตามรหัสคำสั่งที่รับเข้ามา ตามตาราง เช่นถ้าอุปกรณ์ภายนอกส่งข้อมูลมาเป็น E7 Z80 ก็จะกระโดดไปทำงานที่ตำแหน่ง 0020H เพื่อทำโปรแกรมย่อยที่ให้บริการอินเทอร์รัพต์
        4.) เมื่อพบคำสั่ง RETI ในโปรแกรมย่อย ซึ่งจะเป็นการเสร็จสิ้นการให้บริการ ก็จะนำค่าเดิมของ PC ที่เก็บไว้ในสแตกกลับคืนมาตามเดิม เพื่อให้ประมวลผลในคำสั่งต่อไปตามเดิม โดยก่อนออกจากโปรแกรมให้บริการ ควรมีคำสั่ง EI เพื่อเซ็ตให้ IFF1 มีค่าเป็น1 เพื่อตอบสนองต่อการขัดจังหวะในครั้งต่อไป