[HECnet] Announcing TCP/IP for RSX-11M-PLUS

Johnny Billquist bqt at softjar.se
Tue Mar 17 10:38:32 CDT 2015

It's been close to two months since the last announcement. I have been 
busy with improving thing since then, and I guess it's time to announce 
a new version, for people who might be interested.

Improvements since last announcements:
. FTP client and server have had extensive bugfixing, performance 
improvements and feature enhancements.
. NETSTAT has been rewritten to be more useful and friendly.
. Bugfix in INETD. It never checked the result from the ACCEPT.
. TCP have had several bugfixes and improvements:
   . At tcp close, retransmit didn't happen if only FIN was left 
   . If both sides sent FIN at the same time, the socket could get out 
of sync.
   . Improved performance at FIN time by allowing ACK to be delayed.
   . Accept legal packets after the FIN.
   . Cleanup of how offspring task sockets are handled.
   . Added the ability to transmit TCP URGENT data.
   . Redesigned the TCP receive window handling for improved performance.
   . TCP PUSH could transmit more data with push flag that it should.
   . Added handling of ICMP error packets to TCP.
. Installation procedure have been updated with the ability to not 
install some command files. The helps with updates of existing installation.
. Documentation have been updated (although it still miss a lot of pieces.)

I encourage everyone who have installed BQTP/IP on an RSX system to 
update to the latest version, as some of these fixes can make a big 

As usual, the distribution is available from:

The documentation is also available through ftp on Madame, or also at 


On 2015-01-22 17:47, Johnny Billquist wrote:
> I just thought I'd make yet an announcement.
> (Maybe I should find a better forum for this?)
> The last week I've been busy with FTP improvements and performance, and
> I've managed to improve this a lot.
> Enough that it is worth sending information out that people should
> upgrade if they have installed this.
> The FTP client and server have improved performance and some additional
> features. Along with this I also changed the protocol format for RSX
> special mode transfers. This is not backwards compatible, and due to an
> initial design miss, the old ftp client/server will not reliably detect
> this incompatibility, resulting in broken files if RSX mode is used
> between the old and new version. This will not be a problem going
> forward. If you run FTP from RSX to fetch the new package, use BLOCK
> mode instead of RSX mode, and fetch the disk image and not the tape
> image, and you'll be fine. Once upgraded, RSX mode is definitely the
> recommended mode for the future. For all kind of files.
> TCP itself increased the receive buffer size, which also improves
> performance for everything that would be interested in higher throughput.
> I've also gone over the distribution and installation scripts and fixed
> a few minor details.
> As usual, the distribution is available from:
> ftp://madame.update.uu.se/bqtcp.dsk
> ftp://madame.update.uu.se/bqtcp.tap
> ftp://ftp.update.uu.se/pub/pdp11/rsx/tcpip/tcpip.dsk
> The documentation is also available through ftp on Madame, or also at
> http://madame.update.uu.se/tcpipdoc
>      Johnny
> All in all,
> On 2015-01-16 04:47, Johnny Billquist wrote:
>> There have been lots of positive comments, and obviously some people
>> have even tested using the software.
>> Of course, a bug was also found. A really weird corner case with
>> severely loading the network stack and having a socket in listen state
>> programatically could trigger a corruption of kernel memory.
>> So I've cut a new release with the bug fixed.
>> While I'm at it I also realize that I forgot to mention that included in
>> the distribution is also a simple IRC client as well as a simple IRC
>> robot.
>> I've also taken a little time to slightly improve the documentation, and
>> the documentation is now also available directly by ftp from
>> Madame.Update.UU.SE, so you do not need to get the whole distribution
>> and unpack it to just read something.
>> So - same as before. Disk image and tape image are available at
>> Madame.Update.UU.SE. Use anonymous ftp.
>> Disk image is also available at
>> ftp://ftp.update.uu.se/pub/pdp11/rsx/tcpip.
>> The disk image is a virtual RL02 disk. Can be used with any emulator, or
>> also directly inside RSX if you have virtual devices available.
>> Happy hacking.
>>      Johnny
>> On 2015-01-14 00:40, Johnny Billquist wrote:
>>> Well, it's been a long time project, but I'm happy to finally announce a
>>> more public initial release of TCP/IP for RSX-11M-PLUS.
>>> This is the result of over 20 years of development. Needless to say,
>>> I've been doing a lot of things over the years, and this code have been
>>> through four reimplementations over the years.
>>> What I now release is something that I believe is a nice and useful
>>> piece of software. I am aware of the fact that most people do not use
>>> these machines any longer, but if someone actually wants to talk to me
>>> about support for this or other RSX software, let me know.
>>> Also, feel free to spread this information to anyone who might be
>>> interested, anywhere.
>>> So - what is in this release?
>>> It is a complete implementation of ARP, IP, UDP, and TCP for
>>> RSX-11M-PLUS. It has been tested on RSX-11M-PLUS V4.6, but should work
>>> on any V4 release. There might be some small tweaks or fixes required,
>>> but nothing major.
>>> It do require a system with split I/D-space, or else at least the TCP
>>> part will not fit.
>>> For Unibus machines, it should be possible to run without any additional
>>> software except what is in a base RSX distribution.
>>> For Q-bus machines, DECnet is required for ethernet networking.
>>> The TCP/IP stack can co-exist with DECnet.
>>> Some utilities also utilize RMS for file access.
>>> A bunch of tools, utilities and libraries are also included. These
>>> include:
>>> . IFCONFIG network configuration tool.
>>> . NETSTAT network information tool.
>>> . PING
>>> . DNS client
>>> . FTP daemon
>>> . FTP client
>>> . HTTP server
>>> . TELNET client (rudimentary)
>>> . TFTP client
>>> . TFTP server
>>> . INET server that can do SINK, ECHO, DAYTIME, QUOTE, and IDENT
>>> . NTP client
>>> . LPR client that sits in the queue manager (rudimentary)
>>> . FORTRAN-77 library
>>> . BASIC+2 library
>>> . PDP-11 C library
>>> The implementation fulfills most of the requirements put forth in RFC
>>> 1122. There are a few limitations because of restrictions in the PDP-11,
>>> but none of them should really cause any problems.
>>> Documentation is still on the thin side, but example configs are also
>>> provided, along with installation scripts.
>>> A bunch of test programs and example programs are also included, as well
>>> as the sources of all tools and libraries.
>>> The TCP/IP stack itself only comes in binary form.
>>> All tools are also included precompiled in the distribution, so an
>>> installation only have to build the stack itself for your system, and
>>> then you should be ready to go.
>>> The API only have a slight resemblance to the Unix sockets API. However,
>>> if someone sits down to write code to use TCP/IP under RSX, I'm sure
>>> they will discover that it is extremely easy to use the libraries, or
>>> the basic functions.
>>> The TCP/IP implementation is mostly written as device drivers. This also
>>> have some other interesting implications, such as it is possible to
>>> access TCP as a normal file. You can, for instance do something similar
>>> to the Unix netcat command by issuing the MCR command:
>>>  > PIP TI:=TC:"foo.com";4711
>>> which would open a connection to foo.com, on port 4711, and any data
>>> sent from that machine will be shown on the terminal.
>>> The resources used by TCP/IP are modest. A memory area (size selectable
>>> at generation/startup) is used internally. The amount of memory in the
>>> private pool limits the amount of data that can be buffered. Normal pool
>>> is used in a small quantity for each TCP port that is open.
>>> People are welcome to play around with this, and make improvements.
>>> Contributions of code is most welcome.
>>> There are still lots of things to do. The programs marked as rudimentary
>>> should be rewritten.
>>> The most obvious thing still missing is a telnet daemon, which probably
>>> is my next step.
>>> However, the reason for now announcing the release is that it can
>>> finally be distributed natively from an RSX host.
>>> The main locations to download the TCP/IP for RSX are:
>>> Madame.Update.UU.SE (anonymous ftp).
>>> This is one of my development systems for this software. It runs under
>>> E11, and if things are down, I blame E11. :-)
>>> When connected, you are already in the right directory. There is both an
>>> RL02 disk image there, which can be downloaded by anyone. If you happen
>>> to have an RSX system which you are conneting from, you can also try
>>> getting the BQTCP.TAP tape image. Such an image will not transport
>>> cleanly to a non-RSX system, however. Sorry.
>>> ftp.Update.UU.SE (anonymous ftp) - /pub/pdp11/rsx/tcpip
>>> The disk image is normally duplicated to ftp.update.uu.se as well, so
>>> the same file can be found there.
>>> I hope some people will find this useful/amusing. :-)
>>>      Johnny Billquist

More information about the cctalk mailing list