Just how ‘original’ is the Ultimate Doom on steam?

I don’t own any stock in iD(bethesda), or let alone steam.  This is just a small research thing so I’m not shilling.  Also Ultimate DOOM, is on sale, although not for long.  I thought it would be interesting to compare the version on steam with the original version of Doom. Now backtracking, Ultimate DOOM, was a boxed in version of DOOM, that included all the patches, and added in an extra level to the classic DOOM 1, “thy flesh consumed“.

Ultimate DOOM

Ultimate DOOM

And this is the version of DOOM that is for sale on steam.  Now the nice thing about Ultimate DOOM, is that it was released as a patch to registered users of DOOM so that they too could upgrade to Ultimate DOOM, and enjoy the new levels.  So that also means that the enthusiasts thankfully made a patch to regress Ultimate DOOM to version 1.1 First we start with Ultimate DOOM, which can be found in your  steam directory.  Mine is “C:\Program Files (x86)\Steam\SteamApps\common\Ultimate Doom\base”, but yours will be similar. So the first step would be to copy this directory to somewhere else, as we are going to run some patches against it to alter the level as we go.  I’m going to use DOSBox to do all of this.  Also in my setup of DOSBox, I mount my c:\dos directory as c:\ to make life easier for me.  So on my windows side, I copy Ultimate Doom\base into c:\dos\temp\udoom.  That way when I fire up DOSBox, I see it under c:\temp\udoom. The only files I’m going to use from steam are:

03/12/2014 12:27 AM 715,493 DOOM.EXE
03/12/2014 12:27 AM 12,408,292 DOOM.WAD

Noticeably absent is SETUP.EXE.  I have no idea why it is missing, so I figured I’d provide a collection of the various setup programs.  This is the best way to change sound card settings, and alter keyboard bindings.  Why it was omitted, well I have no idea. You can download my combined archive of doom setup programs here.  Place the utlimate doom setup into the directory. Then download & extract downgrd.zip, into your dosbox doom directory (c:\dos\temp\udoom), then fireup dosbox and run patch.bat .  The downgrade uses a shareware version of MDIFF, so it will delay for 5 seconds every time it’s used (which is a few times) so this will take a little while.

Downgrade to v1.1

Downgrade to v1.1

Now looking around the directory we have:

06/30/2014 09:57 AM 803 DEFAULT.CFG
06/30/2014 09:57 AM 579,187 DOOM.EXE
06/30/2014 09:59 AM 10,396,254 DOOM.WAD
06/30/2014 09:57 AM 2,158 DOWNGRAD.TXT
06/30/2014 09:57 AM 7,527 LICENSE.DOC
06/30/2014 09:57 AM 20,850 README.EXE
06/30/2014 09:57 AM 68,923 SETUP.EXE
06/30/2014 09:57 AM 627,155 U1_94.EXE
06/30/2014 09:57 AM 218 USE1_94.BAT
06/30/2014 09:57 AM 190 USE1_95.BAT

Now how does this compare to the registered version of DOOM 1.1?  Well I have a copy, and after installing it, we can compare.

10/29/2013 01:26 PM 579,187 DOOM.EXE
10/29/2013 01:26 PM 10,396,254 DOOM.WAD
10/29/2013 01:26 PM 439 FILE_ID.DIZ
10/29/2013 01:26 PM 7,527 LICENSE.DOC
10/29/2013 01:26 PM 20,850 README.EXE
10/29/2013 01:26 PM 68,923 SETUP.EXE
10/29/2013 01:26 PM 627,155 U1_94.EXE
10/29/2013 01:26 PM 218 USE1_94.BAT
10/29/2013 01:26 PM 190 USE1_95.BAT

As you can see the first difference is that the original version has “FILE_ID.DIZ”, and the downgrade has a “DOWNGRAD.TXT”. Comparing the common files..

c:\dos\temp\udoom>fc /b doom.exe doom11\doom.exe Comparing files DOOM.EXE and DOOM11\DOOM.EXE FC: no differences encountered

c:\dos\temp\udoom>fc /b doom.wad doom11\doom.wad Comparing files DOOM.WAD and DOOM11\DOOM.WAD FC: no differences encountered

c:\dos\temp\udoom>fc /b license.doc doom11\license.doc Comparing files LICENSE.DOC and DOOM11\LICENSE.DOC FC: no differences encountered

c:\dos\temp\udoom>fc /b readme.exe doom11\readme.exe Comparing files README.EXE and DOOM11\README.EXE FC: no differences encountered

c:\dos\temp\udoom>fc /b SETUP.EXE doom11/SETUP.EXE Comparing files SETUP.EXE and DOOM11/SETUP.EXE FC: no differences encountered

c:\dos\temp\udoom>fc /b u1_94.exe doom11\u1_94.exe Comparing files U1_94.EXE and DOOM11\U1_94.EXE FC: no differences encountered

c:\dos\temp\udoom>fc /b use1_94.bat doom11\USE1_94.BAT Comparing files USE1_94.BAT and DOOM11\USE1_94.BAT FC: no differences encountered

c:\dos\temp\udoom>fc /b use1_95.bat doom11\USE1_95.BAT Comparing files USE1_95.BAT and DOOM11\USE1_95.BAT FC: no differences encountered

And everything looks ok.  Now FILE_ID.DIZ was a nice way back in the day of BBS’s to have a description of the file inside of the ZIP that would automatically set the description.  And the FILE_ID.DIZ from the registered version is:

████▓▒░ THIS IS PIRATED SOFTWARE! ░▒▓████ ███████████████████████████████████████████
THIS FILE IS NOT SHAREWARE — it is ILLEGAL and forbidden to upload this copyrighted software on bulletin boards. If you see this message on a BBS, please request that the Sysop remove this software IMMEDIATELY. or contact id Software @ 214-613-0132 IT IS ILLEGAL TO GET THIS FILE FROM A BBS!
███████████████████████████████████████████

Which I guess is not all that surprising.  So other than omitting this one file (which does not alter game play in the least bit) we have now taken Ultimate DOOM from steam, and reverted it to DOOM v1.1.  Now to be honest this is my favorite version, it feels faster than later versions,and for me at least it was more stable.  However as I’ve mentioned before the network play would destroy old hub based 10Mbit networks. And running DOOM, we can check the version

DOOM v1.1

DOOM v1.1

And you can see that we have downgraded Ultimate DOOM to registered DOOM v1.1 in it’s original state from December 10th, 1993. Now moving to version 1.2, you need the file dm1_2rpt.zip, which contains:

06/30/2014 09:15 AM 78,129 PATCH.EXE
06/30/2014 09:15 AM 3,053 PATCH.RTD
06/30/2014 09:15 AM 409,687 PATCH.RTP
06/30/2014 09:15 AM 272 README.PAT

Now we run patch.exe which will move our 1.1 to 1.2.

Patching DOOM to v1.2

Patching DOOM to v1.2

Once the patch is installed, we can delete the patch files, and we should have:

06/30/2014 09:57 AM 803 DEFAULT.CFG
06/30/2014 09:57 AM 2,158 DOWNGRAD.TXT
06/30/2014 09:57 AM 7,527 LICENSE.DOC
06/30/2014 10:04 AM 580,391 DOOM.EXE
06/30/2014 10:04 AM 10,399,316 DOOM.WAD
06/30/2014 10:04 AM 32,134 IPXSETUP.EXE
06/30/2014 10:04 AM 393 MODEM.CFG
06/30/2014 10:04 AM 34,386 README.EXE
06/30/2014 10:04 AM 36,567 SERSETUP.EXE
06/30/2014 10:04 AM 91,931 SETUP.EXE

And when we run DOOM we now see that it is upgraded to version 1.2!

DOOM version 1.2

DOOM version 1.2

The next version of DOOM that was widely available was v1.666.  And the patch is named dm1666rp.zip, which contains:

06/30/2014 09:24 AM 78,129 PATCH.EXE
06/30/2014 09:24 AM 2,864 PATCH.RTD
06/30/2014 09:24 AM 729,949 PATCH.RTP
06/30/2014 09:24 AM 649 PATCHIT.BAT

And this time we run ‘patchit.bat’.

Patched to 1.666

Patched to 1.666

And now we can remove the patch files.  Now when we run DOOM, we see..

DOOM v1.666

DOOM v1.666

The next version of DOOM was v1.8, and it can be patched up from v1.666 dm18rpt.zip.  Inside of this zip, is another zip, patch.zip that contains the patch files patch.exe & patch.rtp.

Upgrading to DOOM v1.8

Upgrading to DOOM v1.8

The directory is growing as well.

06/30/2014 10:09 AM 791 DEFAULT.CFG
06/30/2014 10:12 AM 6,397 DM.DOC
06/30/2014 10:12 AM 33,640 DM.EXE
06/30/2014 10:12 AM 120,201 DMFAQ66A.TXT
06/30/2014 10:12 AM 140,594 DMFAQ66B.TXT
06/30/2014 10:12 AM 76,898 DMFAQ66C.TXT
06/30/2014 10:12 AM 34,572 DMFAQ66D.TXT
06/30/2014 10:12 AM 709,865 DOOM.EXE
06/30/2014 10:12 AM 11,159,840 DOOM.WAD
06/30/2014 09:57 AM 2,158 DOWNGRAD.TXT
06/30/2014 10:12 AM 10,623 DWANGO.DOC
06/30/2014 10:12 AM 65,021 DWANGO.EXE
06/30/2014 10:12 AM 2,536 DWANGO.STR
06/30/2014 10:12 AM 4,690 HELPME.TXT
06/30/2014 10:12 AM 18,051 IPXSETUP.EXE
06/30/2014 10:12 AM 67 MODEM.CFG
06/30/2014 10:07 AM 67 MODEM.NUM
06/30/2014 10:12 AM 3,405 MODEM.STR
06/30/2014 10:12 AM 4,617 ORDER.FRM
06/30/2014 10:12 AM 21,631 README.TXT
06/30/2014 10:13 AM 20,257 SERSETUP.EXE
06/30/2014 10:13 AM 45,884 SETUP.EXE

And running DOOM, we can now verify that we are running version 1.8

DOOM v1.8

DOOM v1.8

The next version of DOOM was version 1.9.  The upgrade patch from v1.8 to v1.9 was called 18_19drp.exe.  This is a SFX unpacking exe, so you’ll need to run this under DOSBox to get the patch

Yoshi SFX

Yoshi SFX

And now we can run the patch, this one is silent so don’t panic at the lack of output.

Patching from v1.8 to v1.9

Patching from v1.8 to v1.9

And now when we run DOOM we can verify that we are running v1.9

DOOM v1.9

DOOM v1.9

And the directory now looks like this:

06/30/2014 10:26 AM 769 DEFAULT.CFG
06/30/2014 10:12 AM 6,397 DM.DOC
06/30/2014 10:12 AM 33,640 DM.EXE
06/30/2014 10:12 AM 120,201 DMFAQ66A.TXT
06/30/2014 10:12 AM 140,594 DMFAQ66B.TXT
06/30/2014 10:12 AM 76,898 DMFAQ66C.TXT
06/30/2014 10:12 AM 34,572 DMFAQ66D.TXT
06/30/2014 10:23 AM 709,905 DOOM.EXE
06/30/2014 10:24 AM 11,159,840 DOOM.WAD
06/30/2014 09:57 AM 2,158 DOWNGRAD.TXT
06/30/2014 10:12 AM 10,623 DWANGO.DOC
06/30/2014 10:12 AM 65,021 DWANGO.EXE
06/30/2014 10:12 AM 2,536 DWANGO.STR
06/30/2014 10:12 AM 4,690 HELPME.TXT
06/30/2014 10:12 AM 18,051 IPXSETUP.EXE
06/30/2014 10:12 AM 67 MODEM.CFG
06/30/2014 10:07 AM 67 MODEM.NUM
06/30/2014 10:12 AM 3,405 MODEM.STR
06/30/2014 10:12 AM 4,617 ORDER.FRM
06/30/2014 10:24 AM 21,631 README.TXT
06/30/2014 10:24 AM 20,257 SERSETUP.EXE
06/30/2014 10:13 AM 45,884 SETUP.EXE

Now comes the final patch, DOOM v1.9 to Ultimate DOOM, 19_udpat.exe.  And just like before it too as a SFX patch, which you have to run under DOSBox.

Upgrading v1.9 to Ultimate DOOM

Upgrading v1.9 to Ultimate DOOM

Deleting the patches, we are now left with:

06/30/2014 10:29 AM 769 DEFAULT.CFG
06/30/2014 10:12 AM 6,397 DM.DOC
06/30/2014 10:30 AM 20,937 DM.EXE
06/30/2014 10:12 AM 120,201 DMFAQ66A.TXT
06/30/2014 10:12 AM 140,594 DMFAQ66B.TXT
06/30/2014 10:12 AM 76,898 DMFAQ66C.TXT
06/30/2014 10:12 AM 34,572 DMFAQ66D.TXT
06/30/2014 10:30 AM 715,493 DOOM.EXE
06/30/2014 10:31 AM 12,408,292 DOOM.WAD
06/30/2014 09:57 AM 2,158 DOWNGRAD.TXT
06/30/2014 10:12 AM 10,623 DWANGO.DOC
06/30/2014 10:31 AM 73,638 DWANGO.EXE
06/30/2014 10:31 AM 255 DWANGO.SRV
06/30/2014 10:12 AM 2,536 DWANGO.STR
06/30/2014 10:31 AM 4,689 HELPME.TXT
06/30/2014 10:12 AM 18,051 IPXSETUP.EXE
06/30/2014 10:12 AM 67 MODEM.CFG
06/30/2014 10:07 AM 67 MODEM.NUM
06/30/2014 10:12 AM 3,405 MODEM.STR
06/30/2014 10:12 AM 4,617 ORDER.FRM
06/30/2014 10:31 AM 21,989 README.TXT
06/30/2014 10:24 AM 20,257 SERSETUP.EXE
06/30/2014 10:31 AM 46,665 SETUP.EXE

Which when compared with what was sold on steam:

03/12/2014 12:27 AM 243 AUTHORS.txt
03/12/2014 12:27 AM 18,332 COPYING.txt
03/12/2014 12:27 AM 12,408,292 d.WAD
06/30/2014 08:30 AM 819 DEFAULT.CFG
03/12/2014 12:27 AM 715,493 DOOM.EXE
03/12/2014 12:27 AM 12,408,292 DOOM.WAD
03/12/2014 12:27 AM 989,672 dosbox-0.71.tar.gz
03/12/2014 12:27 AM 7,214 dosbox.conf
03/12/2014 12:27 AM 3,200,000 dosbox.exe
03/12/2014 12:27 AM 3,018 INSTALL.txt
03/12/2014 12:27 AM 771 MOUSE.CFG
03/12/2014 12:27 AM 23,574 NEWS.txt
03/12/2014 12:27 AM 47,035 README.txt
03/12/2014 12:27 AM 331,776 SDL.dll
03/12/2014 12:27 AM 13,312 SDL_net.dll
03/12/2014 12:27 AM 874 THANKS.txt
03/12/2014 12:27 AM 1,139 ultimate.conf
03/12/2014 12:27 AM 1,157 ultimatem.conf
03/12/2014 12:27 AM 35,296 uninstall.exe

Which as you can see the only files that really made the cut were the wad and the doom executable.  I don’t know why they omitted the setup program, but that’s easy enough to fix.  And running our patched up executable:

Ultimate DOOM

Ultimate DOOM

And as we can see, the extra level ‘thy flesh consumed’ is now available!

Ultimate DOOM level select

Ultimate DOOM level select

And finally to verify the steam wad/exe:

C:\dos\temp\udoom>fc /b doom.exe “c:\Program Files (x86)\Steam\Stea mApps\common\Ultimate Doom\base\DOOM.EXE” Comparing files DOOM.EXE and C:\PROGRAM FILES (X86)\STEAM\STEAMAPPS\COMMON\ULTIM ATE DOOM\BASE\DOOM.EXE FC: no differences encountered

C:\dos\temp\udoom>fc /b doom.wad “c:\Program Files (x86)\Steam\Stea mApps\common\Ultimate Doom\base\DOOM.wad” Comparing files DOOM.WAD and C:\PROGRAM FILES (X86)\STEAM\STEAMAPPS\COMMON\ULTIM ATE DOOM\BASE\DOOM.WAD FC: no differences encountered

So there we go, a full round trip from Ultimate DOOM, v1.1, v1.2, v1.666, v1.8, v1.9 and back to Ultimate DOOM!

UPDATE!

While looking around I noticed that the steam version of DOOM also only uses the Adlib! for music.  But DOOM really does have much better MIDI music.

Adlib. really.

Adlib. really.

Well one of the great things we can do with a setup program, and the WAD/DOOM.EXE we copied out of steam is that we can run it with a newer version of DOSBox, say version 0.74 where the General MIDI actually works!  So go ahead, and run setup, and change the music card to “General MIDI”.

Change it to General MIDI

Change it to General MIDI

Next it’ll give a wide range of ports, I used 330.

Port 330!

Port 330!

Now when you save the config, and re-launch DOOM you can experience the music without the major pain of setting up the UltraSound.  And General MIDI is available in every version of DOOM as well.

Dealing with CopyQM file format

CopyQM

CopyQM

So I had a few disk images in the CopyQM formwat, and trying to get an emulator to output them back to a disk image is well.. really trying.  Then as luck would have it, I stumbled onto the program read_cqm.c and it does exactly what it says it’ll do which is read the CopyQM disk images, and then output them into a raw format.

SCSI CD-ROM support for OS/2 1.3

I was passed this in email, that using the BusLogic SCSI adapter, that OS/2 1.3 can use it’s CD-ROM interface for those of you who want to be able to directly mount ISO images!

The driver is here.

So apparently all you need to do is just add in the BusLogic controller, and copy the BOOTBID.BID to C:\ (don’t rename it).

unknown-LW22HX
And there we go!
unknown-POZPHX

 

Apparently, it can even boot from SCSI hard disks. So it’d be a great way to give that SQL 1.0 install access to a bunch of storage.

MS-DOS Player updates

Poorly translated from TAKEDA toshiya’s blog..


2014/4/15
I has integrated source of i386 and i286 edition edition. 
In addition, in the i286 version, I added support for int 10h/16h. equivalent to 0.149 MAME, I was replaced with a 0.152 equivalent MAME core i386 i286 core. However, the i386 core, I have omit the TLB around.

Which is very cool, although I wasn’t sure about the MAME source code being open to other projects…?  I tried to contact the i86/i386 author vlinde but he then pulled his contact page.  I wanted to use i386 for something of my own, but the whole “Redistributions may not be sold, nor may they be used in a commercial product or activity.” really puts the damper on it.

I was able to get some simple XMS test program to run, but nothing of any substance.  No DOS4G/W or anything like that.  But if you re-build it specifying MS-DOS version 5.0, some of the MS-DOS utils and even command.com work!

The weird issue I had was running out of conventional RAM, because this program gives you nearly 1MB of conventional RAM… I was surprised, as I wasn’t expecting that much!

8086tiny 1.25 has been out for a while

now, and I figured I should see if I can get it running on NT 4.0…

There was some minor issues with the way it handles for loops, but making them more C89 friendly was trivial.

8086tiny on NT 4.0

8086tiny on NT 4.0

You can download my project (source and binary) here.  The ‘killer’ feature is that it being built with Visual Studio 97 on NT 4, the needed Visual C++ LIBC DLL ought to be in place on anything modern these days.

You can always find the home page for 8086tiny, right here, at megalith.co.uk.  Code is maintained on github.

SDL 1.2.15 not working with Visual Studio 2003 (2002, 6, 97..)

Well yeah fun errors like this:

SDL “error LNK2001: unresolved external symbol __alloca_probe_16”

What gives? well the binary kit was built using 2005 (I guess) something higher.

Download and link against SDL-devel-1.2.13-VC6.zip and all will be happy.  I suppose you could build the source yourself, but who’s got time for that?

And remember to set your project to use the Multi Threaded DLL libc, otherwise you’ll get errors like this:

LNK2005: __isctype already defined in LIBCMT.lib(isctype.obj)
LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)

Ok?

 

MSMQ 1.0

Building on my ‘has anyone ever used’ this feature of the NT 4.0 option pack‘, I thought it’d be interesting to build a simple MSMQ deployment.  MSMQ is another technology I never saw deployed, as everyone was instead far more interested in MTS.  So I thought I’d take a stab at MSMQ.

The only deployment guide I can find is here.

And I have to say, that it looks and feels a *LOT* of what became Active Directory.

So let’s look at a few things through the guide.

Top features of MSMQ are:

  • Connectionless messaging. With store-and-forward message queuing, applications are not affected by network fluctuations and do not have to establish sessions. Because MSMQ uses a sessionless model at the application level, the sender and receiver do not need to support the same protocol. MSMQ supports Internet Protocol (IP) and Internet Packet eXchange (IPX).
  • Network traffic prioritization. Message prioritization allows urgent or important traffic to preempt less important traffic so you can guarantee adequate response time for critical applications at the expense of less important applications.
  • Guaranteed delivery. Messages can be logged to a disk-based queue to provide guaranteed delivery.

Which for 1997 technology sounds pretty great!  But obviously what is the cost?  To deploy MSMQ you *NEED* the following:

  • Install a PEC (Primary Enterprise Controller).
  • Install a PSC (Primary Site Controller) at each additional site
  • Define site links and costs
  • Install MSMQ dependent clients and independent clients

Optionally you can install for greater redundancy and speed..

  • Install a BSC (Backup Site Controller) at each site, if required
  • Install MSMQ routing servers, if required
  • Install the connectors and transports, if required

As you may guess MSMQ needs a server infrastructure of it’s own.  I thought for my limited experiment, I would use a simple two site network, comprising of a Windows NT 4.0 PDC, a Windows NT 4.0 BDC and two Windows NT 4.0 workstations.

As MSMQ stores it’s topology database in SQL Server 6.5 service pack 3, I found out the hard way that It will not install correctly with SQL Server 7.  Nor will it work with sp1, and it’ll bomb with 2.  It must be SP3.  I’ve also found it works best with the ‘restricted’ cut down version specifically for MSMQ.  Which is on CD2 of the Enterprise edition of Windows NT 4.0 (I stuck a copy here).  Basically it’s 6.5 slip-streamed to SP3, with no books (don’t’ try to install the books!).  However I found it works best on the PDC, and installing it on a BDC you should set the SQL services to login as local system for the installation, then set them for a domain account.  I also had to change the security model to “Windows NT Integrated”.  I’m not sure if that is 100% a requirement, but the installer demanded it.

xx

Setting SQL’s security to Integrated mode

With that out of the way, I ran setup from the option pack, selecting MSMQ.

Select MSMQ

Select MSMQ

And the install proceeds as normal installing the base components of IIS 4.0.

Select a MSMQ type

Select a MSMQ type

Then we get to decide what kind of Server this Server will become.  The first server I installed this on was the PDC, so I made it the PEC.  It installed without any further incident.

I installed the option pack on the BDC, which was located in a different network, and set it up as the PSC.  I then installed the workstation option pack on both of my workstations making them independent clients, and assigning them to their closest PEC/PSC.

MSMQ Enterprise

MSMQ Enterprise

As you can see the Enterprise view of MSMQ looks a LOT like the AD Sites and Computers view.  No doubt MSMQ was on the way to Cairo.. Although I’ve always thought Exchange would have been better served by SQL, having directory services being hosted on SQL would have made life a bit easier for doing backups and restores, making it less of a black box.  However the prospect of managing all those SQL servers.. I guess there is always trade offs.

MSMQ in action

MSMQ in action

This is a small ‘demo’ application where MSMQ can pass messages between a shared paintbrush application.  Very cool stuff.  And no doubt a missed opportunity to run something fun and subversive.  Although I was always the network admin so I never had to hide my traffic.

I’ve setup MSMQ in 2000 & 2003 networks, and it is not only far more simpler to deploy, but it relies on Active Directory to figure out it’s topology, and nominated MSMQ servers to forward traffic between sites.  I’m more surprised that AD doesn’t rely on MSMQ, but rather it seems it uses common technology.

In the ‘why do I even bother’ department, I just got placed on a RBL

for spam.

yay.

$20 USD ransom

$20 USD ransom

And this is what the internet has become, gone are the days of open connected system, but instead tolls to be paid to trolls as idiots believe their services are legit.

I always thought things would fall apart in censorship (which sure happens), lawyers, and idiotic patents, but I never thought of arbitrary tolls from no name, fly by night companies like this “lashback.com”.

What really amazes me, is that they actually want to demand a $20 ransom for me being able to send email, and I foolishly gave them (and verified) my email address, so without a doubt I’ll see my SPAM volume increase drastically.  So the joke is if you tried to move away from google, you are unable to do so as these NSA friendly companies will no doubt do their best to keep you stuck.

Obviously I got into the wrong business, as people are scared of the big bad internet, and there is money to be made by ‘allowing’ open protocols to function.

what is more fringe than a telnet bbs?

Synchronet over decnet

Synchronet over decnet

A bbs over decnet!

 

I found a simple c server and client program that was ported to decnet.  And it was easy enough to follow I thought I’d try something fun.  So I took Synchronet 3.00c and started to identify the winsock tcpip portions and then slowly alter them to either stubs or being more decnet friendly.

Surprisingly this wasn’t so hard.

The hard part is that decnet doesn’t have a telnet like protocol,  and I don’t have enough patience to try to reverse how ctermd works, so with a lot of searching I found a semi simple telnet client and mostly got it running on decnet.   Right now I have issues resolving address,  so it is hardcoded.

I have to admit it was pretty cool to see the first connection,  even though it aborted when it couldn’t figure out my ip address.   I made some more changes, and it worked!!

The next step was to fire up gns3 and build a simple 2 area decnet network and see if a NT box from area one could connect to a bbs in area two.  And with a few false starts I finally got a working multi area network (decnet isn’t like tcpip!!) This document on cisco’s site was invaluable.

Simple GNS DECnet network

Simple GNS DECnet network

As you can see this is pretty simple.  I wanted two serial connections so I could run DECnet on one serial connection, and TCP/IP on the other.  This way I could shut down the TCP/IP connection to ensure my conversation was 100% over DECnet.

R1:

decnet routing iv-prime 1.1
decnet node-type area
!
interface FastEthernet0/0
ip address 192.168.0.1 255.255.255.0
duplex auto
speed auto
decnet cost 20
!
interface Serial1/0
no ip address
decnet cost 20
serial restart-delay 0
!
interface Serial1/1
ip address 10.5.0.1 255.255.255.252
serial restart-delay 0
!
router rip
network 10.0.0.0
network 192.168.0.0

 And R2:

decnet routing iv-prime 2.1
decnet node-type area
!
interface FastEthernet0/0
ip address 192.168.2.1 255.255.255.0
duplex auto
speed auto
decnet cost 10
!
interface FastEthernet0/1
ip address dhcp
duplex auto
speed auto
!
interface Serial1/0
no ip address
decnet cost 10
serial restart-delay 0
!
interface Serial1/1
ip address 10.5.0.2 255.255.255.252
serial restart-delay 0
!
router rip
redistribute static
network 10.0.0.0
network 192.168.2.0

 As you can see the configuration is pretty simple.  I went with RIP because it’s a small network, and I only need a few routes.  EIRP, OSPF and friends are just pure overkill.  And recall VMNet8 is the NAT interface provided by VMWare Player.

Checking output from the routers, shows that DECnet is routing, and that I can ping both of my test NT boxes:

R1#show decnet route
Area Cost Hops Next Hop to Node Expires Prio
*1 0 0 (Local) -> 1.1
*2 20 1 Serial1/0 -> 2.1 44 64 A+
Node Cost Hops Next Hop to Node Expires Prio
*(Area) 0 0 (Local) -> 1.1
*1.1 0 0 (Local) -> 1.1
*1.3 20 1 FastEthernet0/0 -> 1.3 65
R1#ping decnet 1.3

Type escape sequence to abort.
Sending 5, 100-byte DECnet echos to atg 0 area.node 1.3, timeout is 5 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/12 ms
R1#ping decnet 2.5

Type escape sequence to abort.
Sending 5, 100-byte DECnet echos to atg 0 area.node 2.5, timeout is 5 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/34/60 ms
R1#

 Everything is looking good! I fired up my DECnet telnet and success!!

Success!

Success!

 

I just played with NeXTSTEP 0.8

NeXTSTEP 0.8

NeXTSTEP 0.8

And I have to say, it’s pretty impressive!  Previous flies on my system, having owned a cube, I can say that the 68030 on this is WAY faster.  And I’ve always read about 0.8, and kind of figured it was basically lost to the winds of time.  It’s really cool to see it boot up!  And the emulated disks are so much faster than the magnetic optical drives of the day.

It’s amazing to think that in 1988, the current world of iThings had just started.