I have to admit that, until sometime in 1999, I thought one needed a Windows or Unix or Linux system to connect with the Internet.
I knew that most of the early Internet software was first written for Unix. What I didn't realize at the time was that much of this software got "ported" to or rewritten for DOS. I now understand that Winsock was developed only after this had been going on for a few years. Of course, once Winsock(s) started working well, much of that porting from Unix was redirected from DOS to Windows.
Most DOS Internet software uses a Packet Driver. This may consist of an Ethernet adapter card's device driver. Or, it may be software emulating an Ethernet device driver while performing the PPP protocol through a serial port or modem. PPP is now universally used for dial-up Internet access. Connecting with the Internet from a DOS system is definitely a practical option that has been available for twenty years.
The DOS Packet Driver interface is much lower level than the Windows
Winsock interface. So, each DOS Internet application needs to make its own
arrangements for a "stack" of TCP/IP protocol software. Many of the
commercial suites of DOS networking applications made this arrangement by
installing their proprietary protocol stack into DOS as a device driver or
TSR. Other DOS internet applications simply incorporate a protocol stack
within their own code. Many of these applications incorporate the WATTCP
software stack developed and published in source form by Erick Engelke.
Erick's software was working pretty well by 1993.
Investigate Erick's latest offerings.
Many of my DOS Internet Software offerings run on lowest common denominator 8088 based (and all later) IBM compatible PCs. Five of them are applications that use a built-in WATTCP stack. The sixth is an update of Russell Nelson's PLIP Packet Driver for parallel ports. The seventh is a small TSR needed to avoid a problem that occurs when INTERLNK is used in a PC which also uses PLIP. My eighth package contains two DOS ports of the Linux standalone BogoMIPS tool. The ninth is a DJGPP make of CWS2FWS. And, my tenth offering provides a tool for obtaining YouTube and video.google videoplayback URLs for/with a browser, such as DosLynx, that doesn't support scripts.
The base software requirements for these are DOS v3.x or later. A DOS Packet Driver or Packet Driver emulator, for the ones that use WATTCP. And, perhaps, some batch file "glue". That makes it easy to mix one's use of these applications with use of other applications that also incorporate a built-in protocol stack.
BogoMIPS, CWS2FWS, PMSMTP32, PMPULL, and the DosLynx Protected Mode variations or versions have some additional hardware and software requirements. The DosLynx 16-bit Protected Mode variation or version requires a '286 based (or, later) PC. The rest of these all require a '386 based (or, later) PC. All of these also require a DOS Protected Mode Interface (DPMI) service.
"DosLynx is a World-Wide Web browser for users of MS-DOS platforms. DosLynx includes it's TCP/IP stack and is able to access the Internet either directly via an Ethernet or TokenRing, or indirectly via a dial-in SLIP or PPP connection."
"DosLynx is a product of the Distributed Computing Group within Academic Computing Services of The University of Kansas. DosLynx was originally implemented by Garrett Blythe."
"DosLynx is copyrighted by the University of Kansas and is free for non-commercial use. Commercial use will be licensed at a later date."
"DosLynx is no longer in development at the University of Kansas.
of fdisk.com is currently providing some development and
support. Please see
for more information about his work."
From the University of Kansas About DosLynx Web site.
(The quoted Web page was last seen, from KU, early in 2005.)
Here is a mirror of the page, from January 2000.
I started working with Wayne's last release of DosLynx (DosLynx v0.16a) eleven years ago. DosLynx now offers an almost new Clip View menu entry or command. And, the DosLynx 32-bit Protected Mode variation or version (DosLynxS) now supports https/SSL enabled Web browsing and secure (i.e.: TLS/SSL) connections for its e-mail sending client. My latest DosLynx release has fixes for about half a dozen more bugs.
If your system can be equipped with a DOS Protected Mode Interface (or, DPMI) service, you will be able to run at least one of the DosLynx Protected Mode versions. Together with the DosLynx Real Mode version. The DosLynx Protected Mode versions have eight or nine times as much memory, as the Real Mode version, to work with. (Over 2 MB versus about 250 KB.) This extra memory virtually eliminates the inability to completely present some very large documents, still present in the Real Mode version. My document: DPMIREVU.HTM reports on DPMI services that have been tested with the DosLynx Protected Mode versions.
This is not your same old DosLynx.
My latest release is designated:
Visit my DosLynx Quick Start Home Page for more about DosLynx v0.43b.
See a Turbo Vision enthusiast's account of the origins of DosLynx.
Download the last release of DosLynx (DosLynx v0.8a, August 1994) available from the University of Kansas.
Download the last release of DosLynx (DosLynx v0.16a, September 1996) available from Wayne Buttles.
Download my first release
of DosLynx (DosLynx v0.20b, June 2002), in a package with some extra
batch file glue and utilities, available from
John Lewis VE3LGS.
If DosLynx is new to you, you may find that John's package simplifies installing it. Once you have DosLynx installed and working, it will be easy to update your installation's files with those from the latest release.
Download my previous release of the DosLynx Real Mode Package (DosLynx v0.41b, December 2010).
Download my previous release of the DosLynx Protected Mode Add-On Package (DosLynx v0.41b, December 2010).
Download the latest release of the DosLynx Real Mode Package (DosLynx v0.43b, June 2012) available from Fred Macall.
latest release of the DosLynx Protected Mode Add-On Package
(DosLynx v0.43b, June 2012) available from Fred Macall.
(This package includes both DOSLYNXP.EXE (the DosLynx 16-bit Protected Mode executable) and DOSLYNXS.EXE (the DosLynx 32-bit Protected Mode executable).)
DosLynx versions 0.2xb Documentation Package.
Download the DosLynx versions 0.3xb Documentation Package.
These packages contain a complete set of DosLynx Quick Start Home Page (or, info.htm) and history.txt documents, from all eight of the DosLynx v0.2xb releases. And, all nine of the DosLynx v0.3xb releases. They replace this site's former dlx2x and dlx3x sub-directories. They're for those who want to know all there is to know about the DosLynx v0.2xb and v0.3xb releases.
Including their .ZIP files, installing these documentation packages will require at least 0.8 MB of disk space for the version 0.2xb Package and 1.1 MB of disk space for the version 0.3xb Package. (As most of these Packages' files are relatively small, they may require a lot more space on your disk. For example, with a disk cluster size of 16 KB, the v0.2xb Package's installation will require approximately 1.6 MB of disk space. While, the v0.3xb Package's installation will require approximately 1.9 MB of disk space.)
Use PKUNZIP's -d option to install the packages into an empty directory or directories. We recommend that you install both packages into a single empty directory. That will allow INFO2X3X.HTM to provide you with seamless access to all of the documents. If you do that, install the version 0.2xb Package first. So that the version 0.3xb Package's installation will be able to update four of the older common or cumulative documents.
Then, start browsing with one of the INFO2X.HTM, INFO3X.HTM, or INFO2X3X.HTM documents that get installed in your empty directory. They provide a table of contents for, and links to, the rest of the documents.
PMSMTP is a "Mail Transfer Agent" for Pegasus Mail that I started from a copy of the TDOSLY15.CPP module of DosLynx. I developed PMSMTP when I decided to switch to an ISP that required SMTP AUTH LOGIN authentication for relaying my mail.
PMPOP, the "official" Internet Mail Transfer Agent for releases of Pegasus Mail for DOS, comes in two versions. The version for Packet Driver based installations, PDPMPOP, doesn't seem to support the SMTP AUTH LOGIN extension. By providing this missing support, PMSMTP complements PMPOP's capabilities and widens the group of SMTP servers usable with Pegasus Mail.
PMSMTP32, which is brand new with version 0.15b, is an enhanced variation or version of PMSMTP, which supports the secure (TLS/SSL) connections that some SMTP servers now require. I developed PMSMTP32 after my ISP "transitioned" to a "Google App", based on Gmail, which requires the secure connections it supports. As PMPOP doesn't seem to support these servers, either, PMSMTP32 further widens the group of SMTP servers usable with Pegasus Mail. For oldtimers, the bad news may be that PMSMTP32 requires a '386 based (or, later) PC.
PMSMTP version 0.15b upgrades PMSMTP version 0.14b, after a successful run of almost two and a half years. Featured in this update are the WATTCP improvements that have been developed for DosLynx in that time.
Read more about PMSMTP and PMSMTP32 v0.15b, SMTP AUTH LOGIN, and secure (TLS/SSL) connections in my updated PMSMTP.TXT document.
Download my previous PMSMTP package (version 0.14b, January 2007).
Download my latest
PMSMTP legacy package (version 0.15b, June 2009).
This package includes PMSMTP and its supporting files and is recommended for those with 8086/8088 or '286 based PCs.
Download my latest
full PMSMTP and PMSMTP32 package (version 0.15b, June 2009.)
This package includes everything needed for running either PMSMTP or PMSMTP32 and is recommend for everyone with '386 based (or, later) PCs.
These version 0.15b packages provide a complete replacement and upgrade for all of my older PMSMTP packages. However, if you are already using PMSMTP v0.14b, you may want to take care to avoid replacing your established PMSMTP.CFG file with the updated, but untailored, new one.
PMPULL is a "Mail Transfer Agent" for receiving or pulling mail, into a Pegasus Mail installation, from a POP3 server. My ISP's "transition" of their e-mail service to a "Google App", based on Gmail, has necessitated my development of this MTA. It supports the secure (TLS/SSL) connections that Gmail and other POP3 servers now require or offer for their clients. PMPOP doesn't seem to support these secure connections. So, PMPULL (again) complements PMPOP's capabilities and makes Pegasus Mail useful with a group of POP3 servers that can't be accessed through PMPOP.
PMPULLR is a "Real Mode" version of PMPULL, with lesser system requirements. Moreover, it lacks the OpenSSL support, for secure connections, that distinguishes PMPULL. Some, who (still) don't need to have a secure connection, may find it a happy alternative to PMPOP.
PMPULL and PMPULLR are companions or counterparts for PMSMTP32 and PMSMTP, respectively. The set of PMSMTP and PMPULLR completely replace PMPOP. While, the set of PMSMTP32 and PMPULL go a step further and add the support for secure connections that PMPOP lacks.
Read more about PMPULL and PMPULLR v0.10b and secure (TLS/SSL) connections for POP3 service in my PMPULL.TXT document.
Download my full
PMPULL package (version 0.10b, August 2009.)
This package includes everything needed for running both PMPULL and PMPULLR.
"SSHDOS is an open source SSH client for DOS [published by Nagy Daniel]. It is based on the WATTCP library, PuTTY SSH client, the UNIX SSH package and the CVT100 package. This release supports VT100 terminal emulation, 3DES and BlowFish ciphers. It's enough to read your mails with Pine . . ."
"SSH is a telnet like remote access protocol, but provides encrypted
channels, so others cannot tamper with your session. To run SSHDOS, you
need a plain DOS environment, a Packet Driver
[or, Packet Driver emulator], server side SSH support, and an alive
From the Web site of Nagy Daniel. Copyright (c) 2000 Nagy Daniel
The present-day "Official SSHDOS homepage".
I became aware of SSHDOS in December 2000 just after Nagy had released SSHDOS v0.6. It needed one small change to work with the SSH server I wanted to be able to contact at that time. It had to be able to overlook my server's negative response to the SSH_CMSG_MAX_PACKET_SIZE "preparatory" message that SSHDOS sends.
Nagy showed me a way to accomplish this change within a day or two of my e-mail to him about it. Shortly after that, I decided to make my own SSHDOS, incorporating that change. I also changed compiler options in the makefile to make an .EXE that will run on an 8086/8088 or above (rather than a '286 or above). I called my make: SSHDOS v0.67m . My success with this little project really hooked me on working on DOS Internet software!
Download my make of SSHDOS (SSHDOS v0.67m, January 2001), with supporting files, for lowest common denominator PCs.
As Nagy has since released SSHDOS versions 0.7, 0.8, and 0.9x, my version 0.67m is somewhat out-of-date. However, I now have had an opportunity to make one small fix in it. During startup, its initialization involves negotiating an SSH version with the SSH server. SSHDOS goes into this negotiation with SSH version 1.5 . But, intends to drop that to as low as version 1.0, if necessary to match an SSH server's lower version. In 2009, testing with a version 2.0 SSH server caught SSHDOS inappropriately dropping its version to 1.0 , when it should have left it at 1.5 . I've corrected that, in check_emulation( ) in NEGOTIAT.C, and made a new SSHDOS.EXE that I call: SSHDOS v0.67x . I am offering that, in a file by itself, for updating the SSHDOS v0.67m package offered above.
Download my updated make of SSHDOS.EXE (SSHDOS v0.67x, June 2009), by itself.
Download the latest make of SSHDOS (SSHDOS v0.95b, November 2003), from Nagy Daniel's SourceForge site.
Download the SSHDOS v0.95 sources from Nagy Daniel's SourceForge site.
None of the machines on my home LAN are set-up to use Wake On Lan or AMD's Magic Packet Technology (PDF). But, when Martin Webb mentioned it to me, I was intrigued. The hook set when I discovered that Ken Yap wrote a Perl script for sending the AMD Magic Packet early in 2000. I also found some small Linux and Windows programs for doing that. (The Windows reference mentions DOS. But, it offers a program using Winsock. I think he must have a Windows DOS window in mind.)
However, I wasn't able to find a DOS Packet Driver based program for sending
the AMD Magic Packet. So, I thought I'd see what I could do about that.
After a false start, the result is my DosWOL program or command.
Read all about DosWOL.
Download my DosWOL package (version 0.11, December 2004).
PLIP is a Packet Driver for parallel (printer) ports published, with assembler source, by Russell Nelson in 1992. A pair of interconnected parallel ports, driven with PLIP, can provide the same kinds of connectivity that a pair of interconnected Ethernet cards, driven with their matching Packet Driver(s), can provide. Interconnected parallel ports provide transfer throughputs in between those of traditional serial ports and those of Ethernet cards. PLIP works with lowest common denominator parallel ports and a lowest common denominator "4-bit" Parallel Data Transfer Cable. This kind of cable also is well known as the LapLink (yellow) Parallel Cable.
I recently updated PLIP to improve its reliability in configurations with PCs of widely varying vintage and speed. Among other things, I added an "Antique Hardware Hack" command line option to enable the use of parallel ports with inverted level IRQ sensing. I've also added a document: PLIP112.TXT, to the package. It reports on my update and my successes with PLIP v11.2 on DOS-DOS, DOS-Linux, and DOS-Windows 9x parallel port TCP/IP connections.
Download Russell Nelson's latest release of PLIP (version 11.1, June 1995).
Michael Leonhard's DOSPLIP package (February 1999).
As explained in PLIP112.TXT, Mike's DOSPLIP package is an essential resource for anyone who wants to use PLIP on a Windows 9x system. It probably will enable the use of other "Real Mode" DOS Packet Drivers with Windows 9x, as well. The link above mirrors Mike's 1999 package. So, you'll probably want to refresh the PLIP files it contains with those from my PLIP v11.2 update, below.
Download Fred Macall's update of PLIP (version 11.2, July 2003).
When I had to put my oldest PC, Zeke, on INTERLNK/INTERSVR life support, I ran into a problem with PLIP's long interrupt service times. They were causing Disk not ready Critical Errors to be developed in Zeke's INTERLNK Device Driver. The whole story on this is given in my document: ILNKFIX.TXT .
To make that long story short, I've developed a successful small TSR, ILNKFIX.COM, to bypass the problem. It hooks into INTERLNK's Device Driver and keeps the IRQs for PLIP masked during INTERLNK operations. That averts the Disk not ready Critical Errors that I had been getting from INTERLNK!
Download my ILNKFIX.ZIP package (September 2004).
On a happier note, I gave Zeke a Future Domain TMC-850ibm SCSI card and 2 GB SCSI disk, in June 2005. The TMC-850 card includes a BIOS ROM that provides INT 013h services for the attached SCSI disk. That disk has about twice the speed of the parallel port based life support arrangement. It has given Zeke a whole new life. In 2009, Zeke turned 21!
About the time that I was beginning to be aware of DOS Internet software, I also started looking for a tool for comparing or rating PC processor performance. I wound up settling on a Linux BogoMIPS measurement. I Boot a diskette based Linux rescue system to obtain each reading. I have two of these rescue systems: A Slackware Linux v3.4 based system with a v2.0.30 kernel. And, a Red Hat Linux v6.2 based system with a v2.2.14-5.0 kernel. These two rescue systems give closely matching or tracking BogoMIPS measurements over a wide variety of PCs.
What is there not to like about this arrangement? First of all, it necessarily is limited to '386 processor (or, later) based systems. And, my rescue systems may be tricky to Boot on PCs with less than 16 MB of RAM. Also, I've encountered other Linux systems that tend to give more liberal BogoMIPS readings. Well, there may be no good solution for this last issue.
After a discussion of these things one day, Glenn McCorkle found source for a standalone version of the Linux BogoMIPS measurement. He made some 16-bit "Real Mode" DOS versions using the Borland C/C++ v3.1 compiler. While showing me the way, Glenn's makes had a couple of issues of their own. The best one's BogoMIPS measurements didn't track the measurements from my rescue systems very well, on some PCs. This may be seen to be due to it being a 16-bit, rather than a 32-bit, program. And, even though it was a 16-bit program, Glenn's best tool wouldn't run on an 8088 based PC.
To solve that first issue, I've made a DJGPP (32-bit Protected Mode) version, BOGOMIPS.EXE, of the standalone tool for DOS. This one does produce readings that track my rescue systems pretty well. And, I've made another 16-bit "Real Mode" DOS version I call BOGOMI16.EXE. This one yields measurements that pretty much match those from Glenn's best make. But, importantly, this one runs on 8088 based (and, presumably, all later) PCs. So, it provides for extrapolating a BogoMIPS-like measurement to pre-'386 based PCs.
I've updated the open source Standalone BogoMIPS package to make these DOS versions. In addition to updated source, makefiles, and my two makes for DOS, my updated package includes a new README.1ST document, which provides more details on some of the things discussed above. README.1ST also includes a table reporting several BogoMIPS measurements for a variety of my old PCs.
Download my DOS BogoMIPS package (version 1.4, July 2010).
CWS2FWS is a "utility [which] converts compressed Macromedia Flash (.SWF) files to uncompressed ones," by Alex Beregszaszi.
Upon inspecting an .SWF file with DEBUG or another tool, you'll find that it may begin with a "magic" character sequence of either CWS or FWS. Files beginning with FWS are "full" or "original" .SWF files. While, those beginning with CWS are compressed versions. So, CWS2FWS may be seen to operate on a CWS version .SWF file, to bring back its FWS version .SWF file "source".
Most .SWF files found on the Internet are compressed versions, which seem inaccessible to a DOS user. Because, Linux or Windows based tools seem necessary for playing or viewing them. While full .SWF files (still) contain some binary data, like .EXE files, they also may contain readable URL(s) and other text that can't be seen in the compressed versions. And, sometimes, MPLAYER can play them! So, a DOS version of CWS2FWS may provide a DOS user's first step toward accessing the Internet's .SWF files.
In that spirit, I am providing a quick and dirty DJGPP make of CWS2FWS.EXE, for DOS. This make of CWS2FWS is intended to run on any 80386 based (or, later) IBM compatible PC, with at least 4 MB of RAM. It is a 32-bit Protected Mode program, which requires 32-bit DOS Protected Mode Interface (DPMI) service. Some DPMI services I've used with DosLynxS, which is made using similar techniques, are described in the document: DPMIREVU.HTM.
Read more about my make of CWS2FWS, for DOS.
Download my DJGPP make of CWS2FWS.EXE (version 0.81c, April 2009).
I find modern scripts enabled Web browsers to be examples of technology run amuck! Their cookie, CSS, and script engines provide a variety of facilities that inevitably contain loopholes intended to allow selected Web servers to spy on their users and pwn their PCs. Then, body paint like coverings are added to those browsers in an effort to disguise the intended loopholes, which remain. Users of these browsers are left to plead with advertisers and others to refrain from spying on them! That makes very little sense to me.
Scripting also is used, in the name of "Digital Rights Management", for
unobfuscating URLs and providing other kinds of access to otherwise limited
data or "media" that may be presented as being offered freely.
Google's YouTube offering provides an example of these things.
I have learned that YouTube Web pages with URLs like:
http://www.youtube.com/watch?v=VideoIDCode contain one, two, six, or
eight obfuscated copies of each of three to twenty three "videoplayback"
URLs. Together with scripted unobfuscation for the user's choice of a
video type and size.
In order to access YouTube's video offerings without exposing my PC to being pwned by Google, I have written a program, YTCrack, especially for doing that unobfuscation. It enables me to obtain and play YouTube videos with only DOS based, or scripts-support-free, tools such as DosLynx and MPLAYER.
YTCrack versions 0.11b, 0.12b, and 0.14b brought added support for
video.google Web pages with URLs like:
They also brought support for \uhhhh sequences and itag= 38, 4x, 8x, and 10x video properties that have turned up in YouTube's Web pages over the past year and a half. Together with an improved result document and some bug fixes.
YTCrack v0.15b brought added support for the itag= 36, 83, and 101 video properties we've found in YouTube Web pages since around May or June 2012. However, on or about 13 September 2012, YouTube made some major changes in their videoplayback URLs. Further obfuscating them. At that time, YouTube quit accepting videoplayback URLs extracted from their Web pages by YTCrack v0.15b and all previous YTCrack versions.
With the help of Glenn McCorkle, YouTube's September 2012 obfuscation(s) have been discovered and imparted to YTCrack v0.16b . It, again, became able to extract acceptable videoplayback URLs from YouTube's /watch?v=VideoIDCode Web pages. YTCrack v0.16b also brought added support for the itag=17 video properties that showed up in YouTube Web pages during the summer of 2012.
On or about 18 December 2012, YouTube started making some more big changes in their videoplayback URLs. These changes appear to be only obfuscatory. And, are being phased in on an apparently random basis. So, videoplayback URLs developed by YTCrack v0.16b sometimes work. And, sometimes don't.
We were able to unravel those new obfuscatory videoplayback URL contortions. And, test our theories about them, with the aid of several informal or Work In Progress YTCrack versions. Finally, YTCrack v0.21b incorporated all the new arrangements and extensions necessary for dealing with the December 2012 obfuscations. It, again, was able to extract acceptable videoplayback URLs from all of YouTube's /watch?v=VideoIDCode Web pages. YTCrack v0.21b also brought new support for the itag=85 video properties first seen in a few YouTube Web pages near the end of 2012.
On 1 April 2013, YouTube gave us nine new video types. These contrast with all of YouTube's previous video types, which contain both an audio and a video stream. The new types contain only a single audio or video stream! For most of the YouTube audience, these are a joke. Right? Some more complications for parsing videoplayback URLs and reconstituting their signatures came along with the nine new video types. While the new video types might not be expected to persist, the accompanying videoplayback URL structural changes probably will.
In what is becoming our routine, we have responded to these changes with several informal or Work in Progress YTCrack versions. YTCrack version 0.24b contains the results of this work. Including support for the nine new video types. The descriptions of the new video types exposed in YTCrack's output file or document contain AO and VO "flags" to indicate which "videos" are Audio Only or Video Only types.
Read all about YTCrack.
Download my previous YTCrack package (version 0.21b, January 2013).
Download my latest YTCrack package (version 0.24b, April 2013).
On or about 20 August 2005, my ISP's nccw.net e-mail service quit working. I was told that the available fix for this was to switch my account to Ikano's OhioHills.Com Internet service. I've made the switch, and my site's new URL is http://users.ohiohills.com/fmacall/
I've updated the site's top level pages accordingly. However, I am not updating any of my previously released .ZIP file packages solely to apply this change. I'll incorporate this URL change in my existing packages when I have other reason(s) to update them.
So, bear in mind that any reference(s) you find here to http://members.nccw.net/fmacall/ or http://users.nccw.net/fmacall/ should now be read as: http://users.ohiohills.com/fmacall/
I plan to extend this site, over the next few months, with some of the "important" links, some of my favorite links, and my resume. Some feedback would be nice. Please, let me know what you like or don't like about the site.
See you on the 'net.
Fred C. Macall K8GIV
25 April 2013