ch is unsigned, so testing for negative values doesn't make sense (as noticed by the OpenVMS compiler)