This directory contains random small utilities for DOS by John Wilson. Most of them are simple .COM files and can be built like this (using TASM): tasm -t file.asm tlink -t -x file addcr Filter to add CRs before LFs, for fixing text files inadvertantly transferred in binary mode from UNIX systems. ADDCR newfile. base64 Filter to convert Base64 files to binary (must trim out all non-Base64 stuff first with an editor). breakup Program to break up a large file into smaller equally-sized pieces (so it will fit on a stack of floppies etc.). combine Program to combine even/odd ROM image files to one file. cvt9312 Convert DEC "23-xxxA9-00" boot PROM images (as used in an 82S130 bipolar PROM in the M9312 diag/boot board, or similar) to or from straight PDP-11 words. Files are standard input and output. Type of transformation is decided by the size of the source file -- if it's 512 bytes, it's an 82S130 image and gets converted to a 64-word memory image. If it's 128 bytes, it's 64 words of PDP-11 code and it gets converted to a 512-byte 82S130 image. If none of that made any sense to you, don't worry about it. This was a utility I needed for a PDP-11 project I was working on, probably no one else in the world cares about writing new PDP-11 boot PROM code now. ectloop Server for the Ethernet Communications Test loopback protocol (90-00) used by DEC (specifically the NITEST.SAV program included with the RT-11 operating system for the PDP-11). fdisk FDISK replacement. Its noteworthy functions are that it can save and restore backup copies of the master boot record (including the partition table), and it can sort the partition table by cylinder, so that your Linux partition numbers will correspond to your DOS partition numbers -- the newer FDISKs supplied with DOS screw up the order, DOS doesn't care, Linux does. This FDISK can also create and delete partitions of any type, not just DOS ones, and it has its own 100% original (i.e. not pirated from MS-DOS or anywhere else, unlike some FDISKs I could mention) master boot record code (so it can perform the same function as the undocumented "FDISK /MBR" in DOS). This master boot record includes primitive support for multiple bootable partitions; if no partition is marked as bootable, it prompts for the partition number to boot (this is not supported by all OSes, some of them locate themselves in the partition table by re-reading it and locating the bootable one, which screws up if there isn't one -- apparently they don't know that the MBR passes the booted OS a pointer to its own partition table entry in DS:SI). hex2dsk Program to read an RSX "DMP TI:=ddu:/BL:0/WD" hex dump (captured with a terminal program) and convert it back to a binary file (e.g. disk image for Ersatz-11). It's careful about syntax so it will catch really huge transfer errors, but you should still use this as your last choice for when a reliable transfer method is not available. Unfortunately this program is written in C, I figured people might care about running it on machines other than PCs. lines Program to quickly count the number of lines in text file(s). Handles wildcards and prints a grand total for all files counted. Supports Windows 9x long filenames. nomcast Packet driver shim which disables the calls having to do with multicast address lists. I originally wrote this to try to reproduce a bug (which I couldn't see because my NE2000's driver handled multicast lists just fine). p84 Tiny command line utility to program Microchip PIC16F84 microcontrollers over a serial port using the "COM84" programmer circuit. Type "P84/?" to get the command line syntax. Can erase/blank check/read/write/verify chips using either merged or split Intel hex files. No forms to fill out, everything is on the command line so you can call it from a makefile or whatever (these days lots of point & drool weenies seem to like filling out forms all day long, not me). page Program to handle printing a text file (or formatting it for later printing) on page-at-a-time printers (i.e. inkjets and lasers). Can print selected pages of a file, or can print fronts and backs separately (for two-sided output in two passes), and can print the pages in reverse order. Handles left margin, optionally maintaining separate margins for fronts and backs of sheets (for pages that will be bound or put in a binder). I finally got a duplex printer but this is very handy if you want two-sided output on a regular printer. I *still* haven't gotten around to building a double-decker printer stand for my two NEC Spinwriters! pagelen Program to count the number of lines between form feeds in a file. The number of lines for each page is displayed along with the last non-null line on that page, which may be useful if that's the page number. I wrote this to help clean up the scanned-in OS/8 manuals I have on-line, although of course I haven't done that yet. rad50 Program to convert between octal and Radix-50 (character code used on PDP-11s to pack three characters into 16 bits, used for filenames and in object files for symbol names). Well OK so *I* had a use for it! remcr Filter to remove CRs before LFs, for fixing binary files inadvertantly transferred in text mode from UNIX systems. Note that unlike some stupid programs (C-Kermit!), this program does not remove CRs unless followed by LFs, so if you want to transfer a text file that contains overprinting to a UNIX machine, you can run it through REMCR and then transfer it as a binary file. REMCR newfile rk05wl Program to insert/extract DEC RK05 disk images to/from Zip disk images used with the Wilson Labs RK05-to-SCSI bridge box. This is another thing I only needed once, but you never know. showflop Program to display floppy disk drive types from CMOS RAM. Sheesh, some people are probably too young to remember when there was more than one type of floppy drive, and you had more than one of them (or these days, more than zero of them). showide Program to query IDE drives and display their parameters. Putting this on a bootable floppy can save you a lot of grief if your BIOS doesn't know how to query IDE drives (well OK all modern BIOSes do, and AUTO is the default anyway, but back when I wrote this you usually had to key in the C/H/S values by hand when you got a new disk drive). snip Program to snip the specified number of bytes off of the beginning and/or end of a file. This is useful on any kind of file but is intended for use with disk image files that were transferred using labeled magtapes, so that the labels need to be trimmed off. The copying/truncation is done in-place so no additional space is needed on your disk (good for trimming enormous files). Just follow the prompts, and make a backup if you're not really sure about what you're doing. st SCSI tape utility. Can be used to capture tape images for Ersatz-11, among other things. Use "st -f scsi6: iget foo.tap" to read the entire tape at SCSI ID 6 into the file "foo.tap", suitable for use with E11's MOUNT command. It can also go the other way, use "iput" instead of "iget" to write foo.tap onto the tape. Fixed block sizes with recordless files are also supported, like what you get with the UNIX "dd" program. I'm ashamed to say this is written in C (Watcom 11.0). It was originally intended as sample code to be supplied to a contractor (otherwise it would have been in assembly language like everything else I do), but it evolved into a utility in its own right. Files are: aspi.c DOS ASPI interface code st.c the utility itself st.h definitions st.lnk linker script Build it with wcc aspi, wcc st, wlink @st (first change the "libpath" lines in st.lnk to point at where the Watcom libraries are on your system, unless you configured your Watcom better than I did). tab Filter to convert tab characters to spaces; default tab stops are every 8 columns, or they may be specified on the command line, as in "tab 10 16 35" to set tabs for IBM 370 assembly language files, etc. This can be handy if you've been using an editor that knows about non-standard tab stops, but need to send the file somewhere that can't handle this (or can't handle tabs at all). whereis Program to search a disk for files matching a wildcard. Not to be confused with similar programs of the same name written by others, I'm not pretending I wrote those. zm Program to set all free DOS memory to 00s (or to the 8-bit hex value specified on the command line). Named for a DEC KS10 console command that does the same thing (it stands for "zero memory"). May be handy for finding bugs caused by forgetting to initialize variables, this way you can get repeatable results.