use IO memory not IO ports