write-dispatcher.c
write-dispatcher.cstatic inline void write(xyw_word addr, xyw_byte val)
{
if (addr >= DEVICE_AREA_START)
{
xyw_byte dev_num = get_device(addr);
if (dev_num >= XYW_TOTAL_DEVICES || !xyw_devices[dev_num].write)
{
*error = XYW_ERROR_DEVICE_UNAVAILABLE;
return;
}
xyw_byte dev_addr = get_device_address(addr);
xyw_devices[dev_num].write(get_device_data(addr), dev_addr, val, error);
return;
}
xyw_memory[addr] = val;
}