• Please review our updated Terms and Rules here

wrote a telnet to com forwarder

Mike Chambers

Veteran Member
Joined
Sep 2, 2006
Messages
2,621
if anybody is interested, last night i threw together a little windows app that lets you connect to telnet servers and it forwards through a serial com port via null modem. i just wanted to write it for the true "retro feel" when i connect to BBSes...

i have the null modem connected to my 8088 and i'm running the old term program Procomm Plus on it.

here's a screenshot to give you an idea of what it looks like... nothing special (i spent just like an hour and a half on it), but it is pretty cool to get on a telnet BBS with a real oldschool term proggie :)

teln2com.png


here's a download link: http://rubbermallet.org/teln2com.zip

if you don't have MSVBVM60.DLL you'll have to download it: http://rubbermallet.org/msvbvm60.dll

it needs to be either in the dir with the other teln2com files or in WINDOWS\SYSTEM32

you need to have the terminal app already up on the client machine, and then click the "Restart terminal" button. you will be prompted via the terminal for the telnet server's host address and port.

let me know how it works for you if you try it! :)

NOTE: if you start geting garbage and dropped data, it means your client terminal is too dang slow... on a 4.77 MHz 8088, i start getting garbage if i begin to go over about 19200 baud. all you have to do is drop the baud until you stop getting garbage. i just keep it at 9600, and i have no problems.
 
Last edited:
That's seriously cute (and seriously useful!)

so it turns a pc into a handy virtual modem? meaning you can use your non ibm compatible as if it was connected to a real modem, nice!
 
That's seriously cute (and seriously useful!)

so it turns a pc into a handy virtual modem? meaning you can use your non ibm compatible as if it was connected to a real modem, nice!

thanks :)

yeah... thats basically what it is... it doesnt support "ATDT" commands and such (but thats not a bad idea, i should do that so it IS like a real modem)

what it does when you click the restart terminal button, is send to your remotely connected machine a little "log in" screen, where you just type in the hostname or IP of the telnet server and the port(you can leave port blank for 23)

then the program i wrote will take that, and connect to the specified server, forwarding all data between it and the null modem connection.
 
Your experience with the dropped characters isn't suprising. A 4.77Mhz PC would have supported up to 9600 in the BIOS routines, and higher if programmed using assembler. The problem with the faster speeds is that you can write to a disk or the screen and service the 8250 UART fast enough.

On a PCjr the problem is even more pronounced because there is no DMA and the keyboard is serviced by the NMI interrupt.

I've done a utility like this before, but I used C on Linux. My user interface was also a little different - you specified the telnet connection info on the command line.

If you wanted to make an old BBS program available via telnet this would be the way to do it. On the Windows or Linux side make it a listening socket, and have it forward the data to the COM port. Emulate the modem just a little bit in the software, and the BBS software will 'detect' rings and hangups. This only allows one user at a time, but it's better than nothing.

Another variation is to do this in DOS. Having a device driver that could intercept characters going to the serial port and send them over a native TCP/IP socket would be awesome for getting old modem connected games back online. I can't figure out a good way to do it though. If you use BIOS routines to handle the COM port it could be done by taking over the BIOS interrupt, but no COM program ever did something that naive. :)

BTW, the term you are looking for is 'bits per second' (bps), not baud. A baud is a signalling unit, and multiple bits can ride in a baud depending upon the encoding used. bps is the same as baud up to 2400 bps, but after that you have to use multiple bits per baud.
 
Your experience with the dropped characters isn't suprising. A 4.77Mhz PC would have supported up to 9600 in the BIOS routines, and higher if programmed using assembler. The problem with the faster speeds is that you can write to a disk or the screen and service the 8250 UART fast enough.

On a PCjr the problem is even more pronounced because there is no DMA and the keyboard is serviced by the NMI interrupt.

I've done a utility like this before, but I used C on Linux. My user interface was also a little different - you specified the telnet connection info on the command line.

If you wanted to make an old BBS program available via telnet this would be the way to do it. On the Windows or Linux side make it a listening socket, and have it forward the data to the COM port. Emulate the modem just a little bit in the software, and the BBS software will 'detect' rings and hangups. This only allows one user at a time, but it's better than nothing.

Another variation is to do this in DOS. Having a device driver that could intercept characters going to the serial port and send them over a native TCP/IP socket would be awesome for getting old modem connected games back online. I can't figure out a good way to do it though. If you use BIOS routines to handle the COM port it could be done by taking over the BIOS interrupt, but no COM program ever did something that naive. :)

BTW, the term you are looking for is 'bits per second' (bps), not baud. A baud is a signalling unit, and multiple bits can ride in a baud depending upon the encoding used. bps is the same as baud up to 2400 bps, but after that you have to use multiple bits per baud.

didn't know baud was different from bps... you learn something new every day :)

nige the hippy mentioning virtual modem has sparked my interest to make this thing appear hayes compatible to the remote terminal! i could allow it to respond to the ATZ, etc.. commands. i could make it so that you could "dial" to a TCP socket like:

ATDT 192.168.0.100:23

or whatever the IP/port is...
 
btw, mbbrutman... i wanted to try running synchronet on my 8088 and have the software emulate a modem, but when i try to start the node(call start.bat 1 for synchronet) it starts loading, but then gives me an error saying it cant open or create "TIME.DAB" and just drops back to the DOS prompt :(

i suppose i can try running another BBS program, but i like synchronet alot... wish i could make that work.
 
Last edited:
nige the hippy mentioning virtual modem has sparked my interest to make this thing appear hayes compatible to the remote terminal! i could allow it to respond to the ATZ, etc.. commands. i could make it so that you could "dial" to a TCP socket like:

ATDT 192.168.0.100:23

or whatever the IP/port is...

fools seldom differ, I was just about to suggest exactly that!

further thought though, if it recognised a space as a dot too, you could use unmodified dial scripts e.g. "ATDT 192 168 000 100" it would look like a 4..12 digit telephone number.
 
fools seldom differ, I was just about to suggest exactly that!

further thought though, if it recognised a space as a dot too, you could use unmodified dial scripts e.g. "ATDT 192 168 000 100" it would look like a 4..12 digit telephone number.

yeah, that's a great idea actually... then another space and the port number. i think i'll add the hayes compatibility here a little later this evening :)

(i'm currently cleaning up about the house, periodically getting bored and checking things on the internet:) )
 
Never tried other BBS programs - I had written my own that that's what we ran. (PCCreation in NYC, around 1986 and 1987.)

However, I remember PCBoard and Fido fondly. I wonder if somebody has an archive of PCBoard versions and documentation.
 
Yep, that bbsdoc site has tons and tons of useful stuff on it. I was trying to track down Ultimaterm 4.0 for the CoCo and google would find numerous hits in the bbsdoc site. I never did find anywhere to download Ultimaterm (freeware).
 
Yep, that's a good link .. Need to find the older versions of PC Board though. I remember versions less than 10. :)
 
Back
Top