• Please review our updated Terms and Rules here

I'm running an IRC server on an 8088...

Mike Chambers

Veteran Member
Joined
Sep 2, 2006
Messages
2,621
This is a thing that I've wanted to do for a long time! I ported Alex Barton's ngIRCd software, which is a lightweight, RFC-compliant (plus some extras) IRC server, over to 16-bit DOS using Open Watcom and mbbrutman's mTCP stack. It runs on any 8088+ PC with enough RAM. It was of course written for Unix-y sockets, and mTCP isn't Unix-y, so there was a little effort required to make it all happy, but I think it turned out well. I also reduced some ngIRCd buffer sizes to help it fit into a 640 KB system better.

Being a full IRC server program, all of the goodies are there, including server-to-server link support. We have network services. You could theoretically start a worldwide IRC network powered by 5150s! That sounds fun...

I haven't released it yet, it's still getting tested, but if anybody wants to help kick the tires, we're online at irc.xtulator.com port 6667, and we're hanging out in channel #640KB

Come and experience the crushing power of the 8088! And hopefully it doesn't explode. :)

It's running on an ITT turbo XT clone, 8088 @ 10 MHz. It actually ran pretty well at 4.77, but if we're going to get a bunch of users, it wouldn't hurt to have the turbos engaged.
 
The EXE itself is about 250 KB, it's just a somewhat large program by DOS standards. Plus it requires send/receive buffers and several other data structures for each connection. I have it compiled to handle up to 50 connections right now, which I'm thinking is not far from the limit. We could get more out of it by making buffers even smaller which would give a slight performance hit. Thankfully, IRC is not a heavy protocol.

EDIT: The 250 KB executable is with Open Watcom set to optimize for size already.
 
Last edited:
I'm going to go ahead and release the source code and a compiled version. I want to clean it up a bit, my port job is pretty messy, but I haven't no idea how long it will take me to do that. So, if anyone wants to play with it in the mean time, here it is! I've been running it for 4 days straight and it's been very stable so far, usually around 15 clients are connected at once and everything has been good with the channel being fairly active.

If anyone plans to seriously run a full time IRC server with it, I recommend you run it off a floppy so you can easily stick it in another machine to edit the conf file or MOTD then put it back and rehash from an oper login without having to shut it down.

Source: https://github.com/mikechambers84/ngIRCd-DOS

Binary package: https://github.com/mikechambers84/ng...es/tag/5a35bb6

I know this isn't practical, but at least it's fun.
 
Last edited:
I know this isn't practical, but at least it's fun.

Who cares if it's practical, because it is AWESOME! I shall have to come check it out, just as soon as I find a decent IRC client that will run on my 8088. :)

Next challenge: get the code to compile using a compiler that's also running on the 8088 in 640KB!
 
Come on by if you have time! Mike Brutman's IRCjr is a pretty good little client for 8088s.

It could be compiled in Borland on an XT with a little work, but that's no fun for a project with more than a small handful of source files! These days I like to do the actual dev work on a modern PC with Watcom and an emulator, it's so much faster and the compiler is wayyyy better than the old Borland stuff. I bet this project would take 20+ minutes to do a full rebuild on an XT, while it takes about 2 seconds on an i7. :p
 
This is absolutely bat-shit-crazy-cool.
How does this compare to your old RockIRCd? I'm adding an IRC server to the (already quite busy) http://floppy.museum machine, and got a prototype with ngIRCd going last night. I had to limit it to ~8 connections as DESQView doesn't have more than ~350KB left for this session (that 286 is already running HTTPSERV and FTPSRV, so this comes on top).
 
Back
Top