Telecommunications Tech Blog December 2014
How to run DOS programs from Windows 7 &
8, and Other Handy Windows Tips
There's a lot of older telecom and other software out there that is very
specialized, not upgradeable, not replaceable, and won't run on modern Windows
operating systems like Vista, XP, W7 or W8. But it works just fine and spending
a lot of money to replace it seems crazy.
There are many Windows
95/98 and even 3.1 computers out there running these special apps today.
When Vista and XP came out many of
the DOS programs that ran fine under W95/98 wouldn't run at all on those
The good news is that Windows 7 and
Windows 8 32 bit (not 64 bit) has changed that! I don't know about W10
that's supposed to come out some time next year.
Note that if you use a 32 bit
operating system, you have to make sure you are using the 32 bit versions of any
Windows programs you're using (not the 64 bit versions).
It turns out that Vista and XP didn't
handle the DOS programs and their memory needs very well. There were problems
converting 16 bit (DOS stuff) to the 32 bit memory addressing scheme in Vista
and XP (and the 64 bit versions of all Windows systems). If you're interested in
the nitty gritties this is a good explanation of how "thunking" (the ability to
share data between 16 and 32 bit stuff) was broken in Vista and XP:
Only the 32 bit versions of W7 &
W8 work correctly with DOS programs!
The DOS stuff we use in our office
never worked in Vista or XP. All of the installs of W7 I had were 64 bit, so the
DOS stuff never worked on W7 for me either.
Then I decided to try the W7 32 bit
just to see what happened, and the programs worked about 80% fine. That meant
that I could now use the DOS program on a machine with a modern browser, which
happened to be one of the requirements for us to migrate that machine from
W98SE. I couldn't find a modern browser that runs in W98SE.
Luckily for us I wrote the DOS
programs we use and could change them easily. For some DOS programs the original
authors aren't around anymore, so it might take some extra tweaking to make it
work on W7 if it's possible at all. There's a pretty good chance there won't be
a problem if you take a look at some of my tips, below.
One of the benefits of using a DOS
program is that it's very quick and easy to use without a mouse.
DOS programs seem to run a lot slower
on W7 32 bit than they did on a W98 box. The DOS programs we use are blindingly
fast on W98 machines. Not on W7, but perfectly usable.
If all you have is a 64 bit system to
play with there's a program called DOSBOX that will let you run DOS
programs on both 32 bit and 64 bit systems (really designed for playing old DOS
games), going back to Vista and XP (as well as W7 & W8). You can check it out
The DIR Command is Different!
We do a lot of reading directories
for new files. We do that by doing a DIR command and reading the output into
memory and massaging the results. It turns out that in Vista and above they
added a line to the top section of the DIR output, which was easy to fix by
throwing away 5 lines instead of 4 before we started looking for file names.
They also changed the format of each
line with a file name in the DIR, but that didn't matter for us.
Boot Problems with Network Drives
W7 often has a problem connecting to
network drives from any workstation. In the case of our machines they're
involved with automating processes. I really needed the machine to boot up and
connect to the network drives automatically, without my manually clicking on the
disconnected drives to reconnect.
I run a batch file with the net
use command to reconnect the drives, but it doesn't reconnect the
drives unless you wait about 20 seconds after the W7 machine starts
loading stuff in the Startup Group. This is in a batchfile called
net use L: \\Serverd\Ddrive
net use M: \\Serverd\Edrive
net use P: \\Backup1\C
net use Q: \\Backup2\D
The fix is to delay reconn.bat so it
waits 20 seconds...
Delaying Running Programs
I couldn't just drop the reconn.bat
batch file into the startup group because the drives wouldn't reconnect unless I
waited 20 seconds to run the batch file. To fix that I bought a program called
Startup Delayer (the free version would also work, but won't save the
configurations for testing):
In addition to delaying the batch
file to reconnect the network drives, I also had to delay any programs that use
those drives from starting before reconn.bat. Startup Delayer let
me set all the programs that need to see the networked drive to run after the
drives were reconnected. That really saved a lot of time and hassle!
Wow. I almost had a Windows 7 32 bit
machine that worked as good as W98SE!
Printing from DOS Programs
It turns out that you probably need a
little help getting print statements in DOS programs to work on a network or USB
printer. It might work without help, but it was a problem for us. A quick fix
was a program called Printfil:
This lets you specify a local or
network printer. Seems to work fine, and there are lots of options to play with.
We run some reports by doing a screen
print of the DOS screen. We used a DOS TSR (Terminate and Stay Resident) on the
old W98 machines to print the screen to a page on the printer, and then send a
form feed to eject the page from the laser printer. That's worked well for us
for a long time, but the TSR won't run in the DOS box in W7 32 bit. Greenshot
solved that problems for us:
This program lets you tell it to grab
the Print Screen when you push that button (you can tell it to use any button),
and send it to a printer with a form feed. I save toner on the laser printer by
telling the program to only print in black and white, and in our case inverting
the colors so the blue background on the DOS screen doesn't show up in black on
the printer. It's easy to setup, free, and really handy!
CAPS & Number Lock
We need the caps lock and num lock to
be set differently in different DOS screens. With the old DOS and W98 machines I
simply peeked and poked memory to determine the status and set the caps and num
lock. Those peeks and pokes definitely don't work on W7!
This is the easiest way I found to
set the caps and num lock from the DOS program on the W7 machine. I simply call
a batch file from the DOS program which runs "capslock on" or "capslock off" in
the batch file. Same with numlock.
Running this program is a lot slower
than the pokes, but it works for us.
Arranging the ICONS on the Desktop so They'll Stay!
We leave the DOS program open all the
time on the W7 desktop in the upper left corner. It turns out that W7 puts other
icons at the upper left corner so they're always covered up by our DOS program.
W7 likes to rearrange icons after you move them, from time to time.
The fix I found for that is a Windows
program called DesktopOK:
It lets you save your icon
arrangement and restore it when the system boots. It lets us put the icons
anywhere we need them, and they return to the correct position after the system
Digging Around in a Windows Machine to See What's There...
In the old days with DOS I used a
program called XTREE to give me the lowdown on any PC I sat down at. Before you
start changing stuff it's a really good idea to know exactly what's on the
machine. XTREE (and then XTREE Gold) did a great job of giving me a graphical
tree view of everything on a disk, and let me install or fix stuff without
screwing up the machine further.
Today I use a clone of XTREE called
ZTREE that runs on all versions of Windows. The author of ZTREE
used all the same commands as XTREE so you don't have to use a mouse to do
It gives a much clearer picture of
what's on a hard drive, local or remote, than My Computer or Windows Explorer.
If you've never used XTREE it will take a little while for your fingers to learn
what they have to do to get you where you want, but once your fingers learn it
it's incredibly fast.
Having WiFi Problems, and You Have W7 or W8?
In W7 and W8 they added some
capabilities to the netsh (network shell) command that really helps
diagnose why WiFi connections aren't working well. To access netsh, click
the START button in W7 and type cmd into the little text box at the bottom, and
hit enter. I don't use W8 so I don't know where you find the place to get to cmd
in W8 since there's no START button.
When the command box opens, at the
netsh wlan show
You can get a little more information with:
netsh wlan show
It will give you a list of all the WiFi networks that can be seen. The important
thing is to see what Channel your WiFi is on, and what all the other WiFi
routers are on. In the example above you can see that all the networks are on
Channel 11. In this case it doesn't matter much because the signal is so bad on
the second two networks listed (there are two more when I scroll down), but
having two or more WiFi routers set to the same channel is a recipe for crummy
WiFi for everybody.
If you have a router that does both
2.4 and 5 gig, you'll see two SSIDs for your location. Make sure neither one is
on the same channel as a nearby router, unless maybe if the signal strength from
the other routers is really low.
The fix is to go into your router and
change the channel, or both channels if you have a 5G router with 2 SSIDs.
There is a wonderful app called
Wifi Analyzer by farproc in the Android Google Play and Kindle app
stores that works great, and gives you the same information as the netsh wlan
commands in W7/8.
When you open the free app after
downloading it, touch View and choose AP list from the drop down.
It gives you all the WiFi routers it can see, signal strength and the Channel
I haven't found an app that will do
that on ios for iPhones/iPads, but there may be one.
Finding Utility Programs on the Internet is DANGEROUS!
The links I provided for the various
utilities on this page are safe as far as I can tell.
BUT, if the utility is free you'll
probably find it on many other sites on the Internet. The problem with almost
all of those sites that let you download free software is that they "wrap" the
software in their own installer, which is
there to put all kinds of other questionable software on your PC along with the
free software you want.
CNET is probably the safest place to
download free programs because they give you the option to use a Direct Download
Link (if you know to do that), or use their Installer which will probably screw
up your computer. See the Two ways to download software from CNET circled in
Even SourceForge, the place that says
it's "Trusted for Open Source," wraps their downloads in an installer:
They do tell you a second time that
you're going to be using an installer when I tried to download Filezilla. If I
install any of the junk in the installer by accident, Filezilla shares in some
of the money they get from SourceForge. Other software on SourceForge may or may
not have an installer?
So maybe it doesn't contain malware?
I did check and they tell you in BIG letters that you can opt out of two goofy
programs they want to put on your PC (I opted out). I think when I tried the
direct link it was still wrapped in their installer, but I'm not positive. I
didn't want to spend much time trying to get bad stuff onto my computer!
In general I think I'd trust CNET only with the direct
download link. I guess they need to charge money to pay for the servers, and the
makers of the junk software they install generally pay them per install.
SourceForge lets savvy users opt out
of installing the junk in their installer. Any time you are downloading
something take the time to read the bullshit on the screen! Don't
just click ACCEPT. Being really careful can save you A LOT of headaches.
Almost ALL of the other sites with
collections of "free software" that you can download may really screw up your
computer with junk when you use their installer, or they may even install
malware that would be very difficult to get rid of (if you can at all).
If a site says you should use their
Installer to make downloads faster (or for any other reason), DON'T DOWNLOAD IT!
Look for the original author's site which probably has a direct download link.
If they also have a link to get it from one of the free software sites, go
for the direct link!