I am a programmer (with a mathematical bent). So, here are a couple of Unix utilities that I wanted in a Windows 95 environment:
(The 16-bit programs should work quite well in Dos and Win31, and all should work in NT.)

Firstly, a 16 bit version of the strings utility. It is a very simple implementation that doesn't take parameters and just one optional argument. It's just a filter.

strings.com 6529 bytes


strings [<min>] <input >output

where <min> is the minimum length of strings of printable characters that are displayed (default is 4). Be careful in the days of Unicode strings, where useful or interesting strings are punctuated by alternating nuls! This version does not cater for this 'problem'.

Secondly an implementation of nice that is capable of starting program as well as changing the priority of running program. There is a freeware implementation of nice by Nicholas J Leon <leonni@hamlet.uncg.edu> of Binary 9 Software Systems [included in an archive containing ps and kill as well, with a read me file titled LITTLES dated 2/1/94] which handles the latter case as well as my program. However, it is a Win32 console application so is only useful if you are using the Win32 command line. (Actually, this program performs the same as the Unix command renice.) Mine is a Win32 application because that allows it to be used in short-cuts and a situations you do not want a DOS screen to display, however quickly. (So, my nice performs as Unix's nice and renice.)

nice.exe 25600 bytes


To modify the priority of a running process, with process ID of <pid>:

nice -[inhr] -p <pid>

To start a new command, <command>, with a specified priority and thread priority:

nice -[inhr]([b0t]|[+-][12]) <command>

The process classes are:

i Idle

n Normal

h High

r Real time

The thread priorities are

b Idle

-2 Lowest

-1 Lower

0 Normal

+1 Higher

+2 Highest

t Time-critical

Please read the Win32 documentation for further information, but be warned that the standard Windows 95 system does not use process priorities much at all. This means that even using High priority class can cause sluggish behaviour in the rest of the system, including, in some cases, the mouse and keyboard input! I haven't used NT enough to know, but I guess there is a similar problem there. I also haven't found out for sure if a Idle-classed Time-critical thread causes a similar problem.

Finally, my 16-bit compile of GNU less (version 2.32) which comes with its help file less.hlp and a key mapping creator lesskey. As it is a GNU-copyleft program, I am bound to offer the license and source code on demand - see my e-mail address below. (The latest version of less is 3.32, so keep looking if you want something more up to date.)

I mainly include this program because I find it has a perplexing bug on my home computer. At work it performs superbly, but at home it seems to cause a bad interrupt or something because it always causes the DOS window it runs in to jump to full-screen when it is first run on that console. It may or may not cause it to happen on later attempts. It seems to happen before main() begins, and I have recompiled it a couple of times and the problem stays the same.

less.exe 94298 bytes

less.hlp 5792 bytes

lesskey.exe 11157 bytes

Less is a fully implemented Unix program and thus, of course, has lots of options! Please see the less.hlp file (which is actually a plain text file) for a complete description.

(I'd zip these files, but I want to see the hits :-) )

Please e-mail me <markhurd@ozemail.com.au> if you have any ideas, queries, enquiries, suggestions, requests, comments, or information.