func New() (*iris16.Core, error) { if c, err := iris16.New(); err != nil { return c, err } else { if err := c.RegisterIoDevice(NewLedArray(baseAddress)); err != nil { return nil, err } else { return c, nil } } }
func NewDecoderUnit(control <-chan Word) (*DecoderUnit, error) { var dc DecoderUnit if core, err := iris16.New(); err != nil { return nil, err } else { dc.core = core // need to install the microcode somehow } dc.err = make(chan error) dc.out = make(chan *DecodedInstruction) dc.in = make(chan Word) dc.Error = dc.err dc.Input = dc.in dc.Result = dc.out dc.Control = control return &dc }