Struct rz80::Daisychain [] [src]

pub struct Daisychain {
    pub num_ctrl: usize,
    pub ctrl: [Controller; 16],
}

interrupt controller daisychain

Fields

num_ctrl: usize ctrl: [Controller; 16]

Methods

impl Daisychain
[src]

fn new(num_controllers: usize) -> Daisychain

initialize a new daisychain

fn reset(&mut self)

reset interrupt controllers in daisychain

fn irq(&mut self, bus: &Bus, ctrl_id: usize, vec: u8)

request an interrupt from an interrupt controller, called by bus

fn irq_ack(&mut self) -> RegT

CPU acknowledges interrupt request, return the interrupt vector

fn irq_reti(&mut self)

CPU executes a RETI, this enabled interrupts on downstream controllers