The names of these functions are inconsistent, this one has a `_mode` postfix.  Also, screensize should probably be that last parameter so that most of the argument list is the same.