new untested port manipulation routines