• Please review our updated Terms and Rules here

Telnet BBS Test

mbbrutman

Associate Cat Herder
Staff member
Joined
May 3, 2003
Messages
6,407
It's running again! Please drop in and help me test it ...

For those of you who are new, it is a new Telnet BBS that I am writing running on an IBM PCjr. I have written all of the TCP/IP code and the BBS code from scratch. The only thing I didn't write was the packet driver for the Ethernet adapter and the version of DOS it is running. :)

The IP address is 96.42.239.42 . That goes to my cable modem - the router port forwards telnet traffic directly to the PCjr. Pretty much any telnet client will do including the one built into Windows. (This URL should fire it up for you: telnet://96.42.239.42/ )

Since the last round of testing I have added the following:

  • A forum area with threads
  • A private message area
  • Bulletins (read only files that are longer in length)
  • Basic user profile editing functions
  • Better telnet protocol support with performance improvements

It is a pretty big set of changes. I am hoping there are no bugs, but having a few people on at the same time will help flush them out and give me an idea on if the machine is capable of servicing multiple users doing real BBS functions. (My previous tests were pretty limited.) The machine is setup to handle 6 online users at the same time.

I am also looking for feedback on the user interface .. if it is not usable, then there isn't much point. I am limited with what I can do given the hardware, but let me know what you think would be neat and I'll add it to the todo list. (ANSI graphics isn't there, but I know how to get it done.)

I will leave the machine running for about a week. If it falls over before then I will fix the bug and restart it as quickly as I can. If it makes it a week with no serious problems I'll be pretty happy.


Thanks,
Mike
 
I logged in once with 2Kpro, worked great. When I'm more awake I'll try logging in with the 800XL term emu. Yes, that was me that buzzed the sysop.
 
What fun!

I tried everyting and only two things caused a problem for me. I was using MiniTelnet or MiniTerm (the authour call it both) by Mark Morley. Since he claims that the code is ugly, perhaps the problems were on this end. One of the BBS bulletins (#3) would not continue and quitting the connection left me with an +++ATH, fooling me into thinking that I was on a dialup modem again. lol

I'm going to log in again because it could be my fault that my machine appeared to hang - I forgot that the proggie needed ALT-X to quit (it's been a while).

OK, I just tried again and the machine does not hang because ALT-X plunks me back on the command line. However, there still remains the problem of why my client can't deal with one of the bulletins but is fine on the rest.

There's a bit of latency here, but just enough to make it feel "right". :)

Edit:
I just tried it with a Linux client and bulletin number 3 does not seem to have any problem there. It is, however, a very long piece of text, so that is probably why my little DOS proggies choked. But then again, after a half dozen pages - so did I. :p
 
Last edited:
Works fine with Telnet in Vista Business 64 bit. Quite a bit of latency from this side of the world, but you're a long way away!

Every keystroke has to be sent to the PCjr, processed, and usually echoed. So if the ping time is 50ms, it is probably around 100ms round trip. (I'm going to assume that the PCjr isn't having serious problems just figuring out what to echo.) One tenth of a second can seem pretty laggy, but that's just the nature of being this far. (On the local network there is no noticeable delay.)

I thought about adding a true Telnet Line mode so that the echoing would be done by your local telnet client. That would improve the lag, but would not be compatible with things like adding ANSI editing support.

Since I started the BBS last night it has sent 17000+ packets and received 16000+ packets. The PCjr noticed enough of a problem that it decided to retransmit 308 packets. That seems a little high - almost a 1.79% rate. I might need to be more tolerant with the timeouts on these long distance connections.

(The retransmits might be legitimate .. it's just higher than usual which is suspicious.)


Mike
 
Works fine for me.

Building a message one line at a time, ah the memories.

Tez

The joy of the line editor ... it works pretty well if you can be concise. It's not a good interface to get artistic with though. ;-0
 
it works great from where i am.

how does a DOS bbs interface to a tcp/ip network? maybe you can use a simple terminal emulator like COMMO. it has a host mode macro, but i only tested it with a real modem.

http://geocities.com/dcrife/
 
The DOS BBS was written from scratch to use TCP/IP, and the TCP/IP was written from scratch to be efficient on a machine this small. There are some design tradeoffs that had to be made, but it seems to work well.

There are no 'helper machines', emulators, 'shims' or anything else providing assistance to the PCjr to do this. The PCjr is directly connected to my home network, which goes to a LinkSys router and then to the cable modem. When the code starts it gets a DHCP address from the router and starts listening for incoming TCP/IP connections. To get connections from the outside world I have to have the router forward port 23 (Telnet) to the PCjr, but that is a NAT (Network Address Translation) issue.

There are lots of BBSes out there, and most have more features. But none are Telnet enabled and can run on a PCjr as well as this one does. This machine still has over 240KB of free RAM available even while the BBS is running. :) (And that is with DOS 5 and a small RAM disk in memory that I forgot to disable.)
 
It's running again! Please drop in and help me test it ...
Nice work, Mike! All seems very snappy, although I was the only one logged in at the time. What's it all written in?

I am also looking for feedback on the user interface .. if it is not usable, then there isn't much point. I am limited with what I can do given the hardware, but let me know what you think would be neat and I'll add it to the todo list.
All seems very intuitive to me but, then again, I'm used to terse interfaces ;-) I've always been a fan of menus which take the minimum number of characters required to uniquely identify an option - maybe something for your main menu? Anything to reduce the number of characters sent (and echos returned) is nice at these kinds of speeds.
 
I was going to rewrite the main menu commands to all be one letter long, but 'M' and 'S' turned out to be really popular letters. I'll save that for another day. :)

Everything is written in Borland Turbo C++ 3.0 for DOS. I can't say how much I love this compiler, and I still can't believe that it is 1992 technology. This project is probably around 20 objects that have to be linked together - it has gotten quite bit. I have not found a code generation or linker bug yet. It is missing some variations of functions that are standard in the C runtime now, but that's the price you pay for working with a 15+ year old compiler.


Mike
 
I thought about the main menu too, but it's actually fine. It just seemed out of place with the other menues. Still, it's probably better to leave it as is than to try to get too clever. :)

cosam: All seems very intuitive to me but, then again, I'm used to terse interfaces ;-)
I think terse is always, easier and more intuitive. :p The GUI thing is a comfort kind of thing but is NOT intuitive, nor easier.
 
Hi everybody,

If you haven't checked in yet it is still going - telnet://96.42.239.42/

Right now we are at 44 registered users, 43 messages, 71667 TCP/IP packets set and 60799 packets received. I've had people from New Zealand, Europe and South America connect. Only one semi-serious bug has been exposed so far - (I'm retransmitting TCP/IP packets too quickly.)

Besides bug testing I'm also looking for feedback on the user interface. Some of you older BBS hounds will probably have good ideas on what I'm missing or what needs to be fixed.


Mike
 
Hi everybody,

If you haven't checked in yet it is still going - telnet://96.42.239.42/

Mike

It seems to work fine through Ubuntu Linux's telnet command. The only thing I miss is the color menus and the ANSI graphics. I don't know if the PCjr can do that, but it would be a nice touch. And like you said... files, but I guess in todays high-tech internet connected world, that's pretty much a moot endeavor....

I'm still impressed that you wrote the code from scratch!
 
It actually is capable of ANSI graphics - I just haven't enabled it yet.

There is a flag in the user record that says whether to use ANSI graphics or not. It will have three values - AUTO, Force Yes and Force No. I can detect the terminal type through telnet options and make a decision based on the terminal type.

Embedding the ANSI codes in menus and prompts is fairly easy too.

The downside is that it effectively means that you need to duplicate every menu and every prompt - one for ANSI and one for normal. You could just have ANSI only and strip the ANSI codes for non-compliant terminals, but that would be expensive for the CPU - it's just not worth doing.

Full screen editing using ANSI .. that's a different problem. That would be a pig. :)

Mike
 
Just gave it a try from a mobile device over a rather flaky GPRS connection. Started out great, but after reading a few messages, it doesn't seem to want to stay connected. Most probably added a few packets on the retransmission counter ;-) Hopefully didn't cause too much trouble at your end!
 
pretty cool. It worked fine for me. I have a Derelict PcJr that has no PSU or keyboard somewhere in my computer "Graveyard" building. I need to find it someday and check its condition.
 
Steve,

No problems at all... the weird devices make the testing interesting.

It's still running well except for the retransmitt glitch, which I already know the cause of. (Operator error). After 3.5 days of running it has received 88000+ TCP/IP packets and sent 104000+ TCP/IP packets. The retransmit rate is probably 2x what it would normally be, but that is great considering that the timeout is happening 10x faster than it should be.

The machine also keeps track of how many packets the Ethernet hardware tries to give the TCP/IP stack but can't because the TCP/IP stack has no available buffers. (Those packets get silently dropped, which is a bad thing.) So far the machine has dropped no packets - there is only room for 20 incoming packets, so the machine must be keeping up with the load we've been giving it.

So far a very successful test. But I need more users to pound it harder. Hey - if you are reading this and you have a minute give it a shot!

telnet://96.42.239.42/

Longer term, if there is interest I'll add more features (ANSI menus and prompts, easier configuration, etc.) and make it available to people. I don't ever expect it to replace a web forum, but it can be fun to use.

Mike
 
I might throw back in my SE Ethernet card and get a telnet client for Mac System 7 to connect to this machine and the Crays at Cray Cyber.
 
Back
Top