I'm not looking for anything out of Qmodem specifically. I'm searching for a TSR that handles dial-up networking in the background while I use TCP/IP utilities like PING, TRACERT and FTP; and/or a web browser like Arachne.
Brandon Taylor ________________________________ From: Frantisek Rysanek <frantisek.rysa...@post.cz> Sent: Wednesday, April 24, 2024 4:52 PM To: Brandon Taylor via Freedos-user <freedos-user@lists.sourceforge.net> Cc: Brandon Taylor <donnie126_2...@hotmail.com> Subject: Re: [Freedos-user] Dial-up emulation? Hello there Brandon, to me the key question is - what do you expect of Qmodem? What would you like to achieve in / by using that program? I've never used it, but I figure it would be a "terminal emulator" with some added candy. An analog (predecessor, really) of Putty or Hyperterminal in Windows. A terminal was originally a hardware device, having a screen and a keyboard. I believe the rows of text on the screen were an evolution / innovation after line printers. The text no longer rolled on paper, now it rolled on a screen. The terminal needed to connect to something, typically a relatively large computer (like an early UNIX or mainframe machine), and the computer presented a command-line interface to the user using that terminal. A single server could cater for several terminals simultaneously, already back then. Later, when PC's and other computers became common-place, the so-called "terminal emulator" programs allowed you to use your PC (which is a pretty versatile computer) as a dumb terminal = to display what arrived by an RS232 serial line, and to send your keystrokes to the opposite party. You can actually connect two terminals (or emulators) together over a cross-over RS232 line (also called a Null Modem) and chat with each other... A modem is a device that originally allowed two parties to connect over a phonecall, via the POTS/PSTN (telephone network). You first needed to talk to your modem a little, to have it dial out the call. If the call got picked up by an opposite modem, the two modems would establish a "virtual serial line" spanning potentially hundreds of kilometers. You could then chat or transfer files with a friend (terminal emulators supported file transfer protocols such as X-modem and Z-modem), or there were machines called "bulettin board systems", nowadays I'd call them early servers, that you could dial into to download or upload files, maybe do a bit of messaging... I don't really have much of a clue what these could do, because this was before I got my hands on a PC with a modem :-) Obviously you could dial in remotely into a UNIX machine and work in its command line "shell" = work with files, read and send e-mail, use NNTP newsgroups and whatnot. All of the above was possible using a PC with a modem and a terminal emulator - I assume your Qmodem belongs to this category. I wouldn't call this usage style "the internet", except maybe in a very broad sense :-) RS232-style async serial lines, and their modem-based long-distance extensions, were also useful for other styles of traffic. As a side note, I'd mention UUCP, as a distributed worldwide e-mail system, predating TCP/IP-based SMTP (in practical popularity, if not by actual age). There were in fact several e-mail standards before SMTP, and UUCP was one of them. UUCP was an "open standard" - unlike other e-mail protocols/systems that were proprietary. RS232-style direct lines and modem connections can also be used to transport TCP/IP - in case this is what you mean by "internet". To "encapsulate" IP packets over an async serial line, you need an intermediate layer, called a "layer 2 protocol" (IP is layer 3). See also the layered ISO/OSI networking model (of which the Internet is not a verbatim implementation). So for serial links, there were two popular L2 protocols: SLIP and PPP. During that era, PPP pretty much took over - being generally more advanced / flexible / extensible... more suitable to the age of mammoth modem pools and dial-up internet access. To start PPP, you generally need two things: 1) a piece of software that talks to the modem, to make it dial a number, and wait for the modem to establish connection (the modem reports CONNECT <baud_rate> and maybe some further info). You can do this by hand in a terminal emulator, or by a script, or by a dedicated unattended piece of software called a "dialer". 2) an implementation of PPP. After you dial the modem connection, you need a way to hand over the established modem session to a PPP "driver" (protocol talker). On top of PPP, you can then run a TCP/IP stack, which in turn gets used by "internet" applications such as e-mail clients, web browsers, FTP clients and whatnot (you can also run a server with a PPP connection to the internet). For instance, Windows since 95 have an ex-works "connection software" called "Microsoft Dial-Up Networking" (if memory serves) or RAS in the NT-based Windows - which combines an unattended dialer + PPP stack, and can transport TCP/IP (or other protocols) over that. You can also run PPP over a direct RS232 connection (null modem) or over a pair of leased-line modems. Async serial modems in leased line mode create a permanent connection, and do not respond to Hayes AT commands. In these cases, you do not need a dialer (item 1 above). As for Internet in DOS: Both MS-DOS and FreeDOS can connect to the internet. But, the first question is, what sort of "experience" you expect :-) Yes you could probably find some SMTP e-mail client. Yes there is an FTP client, a Telnet client... Yes there are even HTTP browsers - but, these were very basic! Think basic HTTP (hypertext). No JavaScript, hardly any graphics, text mode preferred. Web standards at the level of mid/late nineties. To get "internet" (TCP/IP support) in DOS, yes you need drivers. It is in fact a driver "stack", because the drivers are layered. Lower layer drivers are hardware-specific, upper-layer drivers implement HW-agnostic networking protocols. In DOS, drivers have the form of "resident" programs - aka TSR = Terminate and Stay Resident. DOS is a rudimentary mono-task OS. At face value, it cannot do multiple things at once. TSR's are one way to achieve such operation. A TSR looks like just any other program - except, upon its return to the command prompt, it hasn't really unloaded itself from the memory. A piece of its executable code has remained in RAM, with official approval of the OS, and has probably hooked a hardware IRQ (e.g. from a network card) or a so-called "software interrupt vector" = really a service callgate. Thus, it can be invoked in the background, do a bit of work, and return control to your interactive foreground application. There were actually several TCP/IP stacks (libraries) for DOS, from different vendors. A key concept, around which those TCP/IP stacks revolve, is a "network driver interface" (API). There is the Microsoft family of NDIS2 drivers. Novell had its own family of ODI drivers. Then there is the "Crynwr Packet Driver" interface - very popular in MS-DOS TCP/IP software made by anyone except Microsoft :-) In general, if you have a particular application program that you'd like to use for internet access in DOS, this program probably contains a particular TCP/IP stack (either linked in, or as an external protocol driver) and therefore dictates the interface that you need to make available in your DOS setup = what set of drivers you need to load. For the most popular brands and models of Network Interface Cards (Ethernet), the vendors still make DOS drivers available. For some cards, you can get a hardware-specific "crynwr packet driver". Alternatively, you will also find HW-specific NDIS or ODI drivers. Note that if you need a "packet driver", but all you can find is an NDIS or ODI driver, do not despair - there are generic ndispkt and odipkt "shims" to provide a Crynwr interface on top of an NDIS or ODI hw-specific driver. I recall that there were also at least two implementations of a PPP packet driver for DOS. One of them was a nice but proprietary package called Klos-PPP. I don't recall the name of the other free PPP stack. Those two stacks both could dial out via a Hayes modem, I seem to recall a chat-script, and once the modem connected, start PPP and serve the Crynwr interface on top. Do you need modem and PPP for internet access from DOS? Definitely not! If you're speaking emulators, just check what legacy NIC the emulator emulates. You will likely find one of Intel gigabit, Intel 100Mb, Realtek RTL8139, NE2000 or some such. So you enable the NIC in your emulator, and then you just need to find the old DOS driver for that NIC. You also need some know how, about how the driver stack fits together. I'd say that the PPP stack with a dialer would take more conventional RAM (it's a TSR, see) compared to an Ethernet NIC driver. No need to mess with PPP, unless of course you enjoy the nostalgic value. If you're interested to find out e.g. what web browsers could run on top of a Crynwr packet driver, I recall that there were DOS builds of Lynx and Links, and a graphical browser caller Arachne. I also recommend you to check Michael Brutman's mTCP utility pack, as well as his homepage - it has many explanations and links to further reading, on the broad topic of DOS networking and the (Crynwr) packet driver interface. http://www.brutman.com/ The website and software keep receiving updates! If this is overwhelming, well there you have it :-) On my part, questions to the point are always welcome. You have my sympathy for being curious. Frank > > Indeed, I'm using an old-school program called Qmodem. My question > now is – would I be able to use the Internet using the emulated > modem? > > Brandon Taylor > > > From:Jim Hall via Freedos-user <freedos-user@lists.sourceforge.net> > Sent:Tuesday, April 23, 2024 10:12 PM > To:Discussion and general questions about FreeDOS. > <freedos-user@lists.sourceforge.net> > Cc:Jim Hall <jh...@freedos.org> > Subject:Re: [Freedos-user] Dial-up emulation? > > > > On Tue, Apr 23, 2024, 9:38 PM Brandon Taylor via Freedos-user > <freedos-user@lists.sourceforge.net> wrote: > Since FreeDOS doesn't support physical network hardware (even if it's > emulated in a program like PCem or 86Box), I figure there's no way > FreeDOS is gonna be able to connect to the Internet, right? Well... > > The developers of the 86Box project have recently implemented > emulation of a Hayes-compatible dial-up modem. So my question is... > will FreeDOS support the emulated modem? > > > Well, it's not that "FreeDOS" would support the Hayes modern, but > that terminal/dialer software would then be able to. FreeDOS is not > like Linux, which uses a Hardware Abstraction Layer (HAL) to support > the hardware directly. FreeDOS, like any DOS, does normal DOS things > and leaves certain hardware access (like playing sounds through a > sound card, or accessing a network to browse the web or check email, > or dialing out through a modem) to other software. > > So if you had a terminal/dialer program like Procomm or Telix, then > yes, I expect you'd be able to dial out through this emulated Hayes > modem from FreeDOS.
_______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user