I/O is memory mapped. Reading or writing to a address reserved to I/O operations results in accessing the device attached to that address. See interpreter built-in IO for further information.