extended ioport lib