SimpleIRC & ROIDS for the MIPS!

 

Well I’ve been looking for an IRC client for the MIPS and I’ve come up with nothing… And looking for source to much of anything win32 is LONG past something that will compile with Visual C++ 2.0 …

However I did find this simple library built by Andrew Cater: http://www.rohitab.com/discuss/index.php?showtopic=33056

So with very little understanding of how IRC actually works I was able to build a SUPER simple client.  Please note that it’s so simple the / commands that you’ve come to love are not implemented…!  You get one shot for your name/nick/server & channel.. But hey the exe is like 70kb for the MIPS/x64 and 35 for the i386.

sirc and roids MIPS in action

sirc and roids MIPS in action

You can find it’s source & binaries right here.

Also Antoni Sawicki has given me a BUNCH of leads on old public source, and binaries, namely ROIDS the first real graphical game we seem to have now for the MIPS.  The source was a part of a PDTools thing that Dec had put together, however a lot of it will build for both i386 & MIPS. I’ve extracted the source for roids here.

I don’t want to over promise but I’ll see if I can get quake to build some time in the next week.. I don’t know if I can get any graphics out of it, but it’d be fun for a server at least…  Windows NT 4.0 sp1 should have DirectX 2.0 …  The pinball game is quite playable (although the colors are all screwed up, due to a pallet glitch in the emulator) so we shall see.

More fun with Nethack & MIPS NT!

Well a friend of mine pointed out some great archives of OLD Windows NT software..  Checking the list I noticed that there was a port of Nethack to Windows NT, namely Nethack 3.1.2  So using the nethack wiki I got the source code, and converted it to a zip file ( tar & gzip on SFU!)

The build was a little weird as it’s expecting the first compiler tools that shipped with the Win32 SDK “Final release” for Windows NT 3.1  While it may have been ‘easier’ to just install the old SDK, you can just copy cl.exe to mcl.exe & make a dummy ntdll.lib ….

Anyways with a little poking around I got it to build & run!  It’s cool!  Although to be honest I SUCK at nethack.

You can download it here.  It’s lovingly hard coded to use c:\games\nethack … I’m sorry about that, as I’ve given up on having C/D/E drives like a ‘secure’ MIPS machine, and just have a giant (haha!) 2GB system partition.

nethack MIPS

nethack MIPS

It’s also worth noting that it’s easier to try to build stuff on a ‘native’ machine running MSVC 2.0/2.1 then copy the stuff over the the MIPS simulator as it is SLOW.  But then that is to be expected.. It’s too bad the Qemu MIPS simulator cannot idle… as it runs one of my cores @ 100%.

MIPS blast from the past..

WindowsNT 4.0 MIPS

WindowsNT 4.0 MIPS

Personally, I’ve never used any MIPS workstations with Windows NT, I’ve been lucky to have used the PowerPC build for IIS (it was cool in that intel hacks wouldn’t work.. It’s too bad it didn’t live long from Microsoft’s end) and of course SQL server on the Dec Alpha.  I also used a Dec Alpha as a workstation (the Multia!) at the time I recall it was cool as it could decode MP3’s in real-time!  Sadly, my Multia died the day Microsoft killed the port.

Anyways while I was searching around hoping the Qemu forum had come alive (it is!) I came across this post:

Hello,
I wanted to let you know that I succeeded to run MS Windows NT/MIPS in the Qemu emulator.
As far as I know, Qemu is the first emulator to be able to run Windows NT non i386/x64.
Some screenshots:
http://hpoussineau.free.fr/qemu/arc20081202-nt350-4.png
http://hpoussineau.free.fr/qemu/arc20090315_nt4.png
Code needs to be cleaned up and will be contributed upstream.
Herve

What is this?  Well click the links!  It is what it sounds like, Herve got Windows NT running on the MIPS emulation for Qemu!!

I’ve tested a 3.51 workstation CD to no avail – It hangs checking the hard disk.  I also have a 3.1 CD with the win32 SDK & it doesn’t work either.  However, 4.0 works fine!  I should also add, this gave me a chance to install Microsoft Visual C++ 2.0 for the MIPS, and to try SQL 4.21 for the MIPS out.

One of the first thing you’ll find out, is that the Dec Alpha was popular non intel machine to run because of FX!32.  This program from Dec, allowed for dynamic translation of 32bit binaries on the Alpha.  So that you could run Office 97 for the i386 on the Alpha.  And on the 2nd run it was effectively a native copy as it had been translated at that point. Nothing like this existed for the MIPS.  Thus, native applications are RARE if any.  Another thing contributing to the lack of MIPS stuff, is that right after sp1 for Windows NT 4.0 came out, a week later all support for the MIPS ended.  Shockingly, there is a bare port of Internet explorer 3, but nothing else from any of those resulting projects:  Which is really sad. I *think* there may still be some copies floating out there for the PowerPC, but it was killed around the time of the service pack 3 release.

Anyways if you want to run this, I did find thru a little digging around the win32 exe is available on Herve’s site.

Download both of these files:

qemu-system-mips64el

setup.zip

And go ahead and unzip them.  In the setup.zip you will have found a file called NTPROM.RAW, rename it mipsel_bios.bin  .

Now we are ready to go!

Create a 2GB disk like this:

qemu-img create -f qcow2 nt4.disk 2G

Then run the emulator

qemu-system-mips64el.exe -hda nt4.disk  -M magnum -L .  -net nic -net user-cdrom winnt40wks_sp1_en.iso

Your system will initialize and just run thru the quick setup – Keep the display at 800×600 as the mouse will actually work at that resolution!  Also set the date to the correct date and ensure the MAC address for your Ethernet is not all zeros.  You can make up any address you want.

Then to install NT you have to run 2 programs:

cd:\mips\arcinst

This will install a system partition, and setup the ARC bootloader.  A 5MB partition is all you need, it’ll format it, and just exit arcinst.

cd:\mips\setupldr

This will kick off the install.  It will look & act like every other copy of Windows NT 4.0 that you have installed.  Keep in mind that you will create a 2nd partition, and install in there.  I’d recommend you skip the exhaustive disk scan as that seems to always screw up for me.  The install is pretty straight forward, I’d recommend you select an easy password, and you will probably want to setup an automatic logon.

From there you are on your own.  I’ve seen Exchange 4.0 available for the MIPS, and some old versions of SQL Server, SNA Server out there. I’ve never seen Microsoft Word for NT & Microsoft Excel for NT.  They were 32bit versions released prior to Office 95, and I *THINK* they had i386/MIPS/PowerPC/Alpha versions.. But I’m really not that sure.  I think internet explorer 2.0 is the ONLY web browser for the MIPS and no, Windows CE MIPS stuff will NOT run on the MIPS NT.  So don’t be all that disappointed as this isn’t too useful, but it may be interesting to see what all those MIPS directories were all about!

Internet Explorer 6 full download

*This post is now just historical the downloads in question are long gone.

Internet Explorer 6

Well I was going thru some boxes, and I pulled out this copy of Windows NT 4.0 workstation that I got in Japan…  I figured I’d install it to see if there was any cool themes/backgrounds unique to Japan..  There was some stuff for Windows 95 & 98 but not as much for NT.

Anyways Microsoft won’t let you download the full version of IE6.. Which is going to be an issue “one day” but for now you can trick the site to giving you everything…

First download ie6setup.exe:

Click here for the English download

Click here for the Japanese download.

Then you have to run it as:

“C:\Downloads\ie6setup.exe” /c:”ie6wzd.exe /d /s:””#E”

Then you can select your editions, and save it to a folder.. You should save this as it will disappear one day….

Also You will want the mp3 codec that were targeted for Windows 95, but will work on Windows NT 4.0

l3codecp.exe  The MP3 codec for Windows

MSN messenger 5.0 fix for NT 4.0

This post is just pure historical at this point.  MSN has been shuttered, and it lives in through Escargo.

Well as long as you have either installed Terminal Server 4.0 in the ‘right order’ or with Server / Workstation you can probably ‘just install’ this fix..

First you will need the MSN 5.0 client.  It will install but on connecting it’ll declare there is a newer version which it’ll download but will not work…  And you’ll be stuck in a loop.

Thankfully, Jonathan Kay has a fix!

This looks like a bug and wouldn’t be the first time these older clients have been messed up.
I’ve made some enquires to find out one way or another.
I’ve modified the MSN Messenger 5.0 executable to lie to the service about it’s version so
you can login again. Obviously this probably isn’t a great solution, but it’s a workaround
for now. Simply
unzip the exe into the \Program Files\MSN Messenger folder and it will work:
http://messenger.jonathankay.com/redir/msngr5verlie.asp

Jonathan Kay
Microsoft MVP –
Windows Live Messenger
MSN Messenger/Windows Messenger
MessengerGeek Blog:
http://www.messengergeek.com
Messenger Resources: http://messenger.jonathankay.com
(c) 2009 Jonathan Kay – If redistributing, you must include this signature or citation

 

MSN on terminal server

Well this is great news for NT 4.0 &Windows 2000 users!

Making do with NT 4.0 Terminal Server

I’ve been using NT 4.0 terminal server as of late, as my copy gives me 10 users and well.. it’s cool!  One thing is the new XP and beyond terminal services clients will NOT work, but you can use the one that shipped with NT 4.0 just fine.

Anyways I’ve worked out this install order to get the most out of the thing.

  1. Install NT 4.0 TSE
  2. Install 4.0 Option pack with SMTP
  3. Install Service Pack 6 for Terminal Server
  4. Installer Windows installer 2.0
  5. Install Internet Explorer 5.5 (for MSJAVA) *skip webfolders.
  6. Install MSN Messenger 5.0 (really should be Escargot by now)
  7. Install Microsoft Office 97
  8. Install Microsoft Bookshelf 98
  9. Install Office 97 sp1
  10. Install Office 97 sp2
  11. Install Internet Explorer 6.0

Optional bits:

This is the best way to “balance” the software as most things will NOT play nicely if it’s installed in the “wrong” order.. It’s.. annoying which means format & try AGAIN.. This is the drawback to Terminal Server 4.0 it was such a public ALPHA.

As it stands right now MSN messenger will not work, something about its reported version.. I’m working on a fix for that  Also I’ll have to see about a good point to load in Visual C++ 2.1

Fun with Microsoft SQL Server 4.21

First off I have this copy of SQL server 4.21 that I wanted to run on my new super fast Vista x64 box. Now it’s 32bit but completely unsupported…. And off the CD the setup doesn’t work..

But not to fear!

First from a Windows NT 4.0 CD I copy in the setupdll.dll file into the source path for SQL Server 4.21. Now the setup.exe will actually run.

So the first hint is to set the compatibility for the setup.exe to “run in 256 colors”. Now it’ll render stuff correctly, however it’ll barf because it wants to overwrite the file “dbnmpntw.dll” which won’t work. So simply editing the setup.inf file and commenting out the dbnmpntw.dll line.

Now the real pain is that it’ll run the setup, but it’ll crash when starting the sql server as a service… I still don’t know what’s crashing it.

Next grab service pack (#4) for Sql 4.21

You’ll need some kind of MS-DOS environment to extract the service pack… Either DOSBox or VirtualPC with MS-DOS will quickly do the job. I like DOSBox for this kind of thing as it can directly mount the native filesystem..

Anyways copy the DLL’s to c:\sql\dll & the exe to c:\sql\binn

Then add c:\sql\dll;c:\sql\binn to the system PATH environment….

From here you can run the sqlservr.exe in an administrator prompt, and it’ll run…

C:\SQL\sp>SQLSERVR.EXE
09/07/02 19:18:18.87 kernel SQL Server for Windows NT 4.21a.05 (Intel X86) Jun 28 1995 08:20:31
Copyright (c) 1988-1995 Microsoft Corporation; Copyright Sybase, Inc 1987-1995

09/07/02 19:18:18.88 kernel Copyright (C) 1988-1993 Microsoft Corporation.
09/07/02 19:18:18.88 kernel Copyright Sybase, Inc. 1987, 1993
09/07/02 19:18:18.88 kernel All rights reserved.
09/07/02 19:18:18.88 kernel Use, duplication, or disclosure by the United States Government is subject
09/07/02 19:18:18.88 kernel to restrictions set forth in FAR subparagraphs 52.227-19(a)-(d) for civilian
09/07/02 19:18:18.88 kernel agency contracts and DFARS 252.227-7013(c)(1)(ii)for Department of Defense
09/07/02 19:18:18.88 kernel contracts. Sybase reserves all unpublished rightsunder the copyright laws of
09/07/02 19:18:18.88 kernel the United States.
09/07/02 19:18:18.88 kernel Sybase, Inc. 6475 Christie Avenue, Emeryville, CA94608, USA.
09/07/02 19:18:18.88 kernel Logging SQL Server messages in file ‘C:\SQL\LOG\ERRORLOG’
09/07/02 19:18:18.90 kernel Maximum number of pages in batch io is limited to8
09/07/02 19:18:18.90 kernel initconfig: number of user connections limited to5
09/07/02 19:18:18.90 server SQL Server is starting at priority class ‘normal’with dataserver serialization
turned on.
09/07/02 19:18:18.90 kernel initializing virtual device 0, C:\SQL\DATA\MASTER.DAT
09/07/02 19:18:18.92 kernel Opening Master Database …
09/07/02 19:18:18.92 server Loading SQL Server’s default sort order and character set
09/07/02 19:18:18.92 server Recovering Database ‘master’
09/07/02 19:18:18.92 server Recovery dbid 1 ckpt (701,14)
09/07/02 19:18:18.94 server server is unnamed
09/07/02 19:18:18.99 server Recovering database ‘model’
09/07/02 19:18:18.99 server Recovery dbid 3 ckpt (132,26)
09/07/02 19:18:19.00 server Clearing temp db
09/07/02 19:18:19.28 kernel Using ‘SQLEVENT.DLL’ version ‘4.21.00’.
09/07/02 19:18:19.28 kernel Using ‘OPENDSNT.DLL’ version ‘4.21.09.02’.
09/07/02 19:18:19.29 kernel Using ‘NTWDBLIB.DLL’ version ‘4.21.00’.
09/07/02 19:18:19.29 ods Using ‘SSNMPNTW.DLL’ version ‘4.21.0.0’ to listenon ”.
09/07/02 19:18:21.28 server Recovery complete.
09/07/02 19:18:21.28 server SQL Server’s default sort order is:
09/07/02 19:18:21.29 server ‘bin_cp850’ (ID = 40)
09/07/02 19:18:21.29 server on top of default character set:
09/07/02 19:18:21.29 server ‘cp850’ (ID = 2)

Contrl+C will kill it… You can fire up the SQL Administrator (C:\Sql\Binn\Sqladmin.exe) but it’ll freak because the master database isn’t fully built. It’s very close to usable but so far the only way to get around the incomplete master is to copy one from an existing DB… Good thing you have that NT 4.0 CD & VirtualPC right? Just remember that SQL 4.21 will only install PRIOR to sp6. SO the install order is NT 4.0, SQL 4.21, SP6, VMadditions, SQL service pack, then copy the c:\sql directory to overrite the prior one. You may also want to export the registry keys from the Virtual NT 4.0 machine [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQLServer].

Ok now for the downside… For whatever reason it will *NOT* listen on TCP/IP. So it’ll only do named pipes… If you are only doing local stuff it’ll be just fine. The services don’t work, but the uptick is that it’s SMALL… A zip of the installed SQL is under 5 megabytes!

So in the end, it’s not terribly usefull, but I found it interesting that with a little hacking SQL Server 4.21a will run on Vista x64 sp2.

Microsoft SQL Server 4.21 on Vista x64

And here is a screenshot… I’ll have to do some quick benchmarks of 4.21 vs the 2008 Express stuff.

Why I love Windows NT 4.0!

Years ago I managed to score a bunch of copies of NT 4.0 server for $20 each (5 cals too!) and I have to say that the #1 thing I love about NT 4.0 is that it can run on small machines. In virtual machine space, this means small disks, little ram, and they don’t need that much in the way of CPU power.

And if you keep your eyes out, you can even score the best one of all, NT 4.0 Terminal server. Keep in mind that later versions of the terminal server client (the ones in XP sp2 & higher/vista/windows 7/2003 server/2008 server) will NOT connect to a NT 4.0 terminal server, but you can just grab the mstsc.exe/mstsc.dll from the NT 4.0 Terminal Server CD, or from a pre sp2 XP CD.

Anyways among the things you can setup and run on NT 4.0 right now I’m going to mention something mundane, but fun & and that’s a PPTP server. Since I’ve accidentally screwed up my Proxmox install, I installed Windows 2003 R2 x64, and the downside is that bridged OpenVPN in a VM doesn’t work. Virtual Server seems to be saving me from myself here… So I thought I’d try something a little more ‘normal’ in that space.

When it comes time to build the PPTP server, you just simply have to add the PPTP networking service into the NT 4.0 networking build. It’s easier to do this at install time so all the files will be in sync. If you try to do this to an existing NT 4.0 machine that has any service packs installed, YOU MUST RE-INSTALL THE SERVICE PACK BEFORE YOU REBOOT… Otherwise it’ll BSOD because the network drivers changed radically from sp1 to sp4+

I have an OpenBSD 4.5 firewall in a VM that has OpenVPN connections to various work sites, and connects those tunnels to ipip tunnels on my Cisco router. I then want to PPTP from my wifi into my ‘work’ network and have it automatically work. While digging around there is a minor thing to keep in mind when forwarding PPTP packets from an OpenBSD firewall to a Windows NT 4.0 PPTP server… Make sure you forward the GRE packets as well!

This is what I added to my /etc/pf.conf

rdr on $ext_if proto tcp from any to any port 1723 -> 192.168.7.10
rdr on $ext_if proto gre from any to any -> 192.168.7.10

As you can guess, 192.168.7.10 is the address of my PPTP server.

Remember to check the log if you have any issues connecting, I wasted 20 min playing with the authentication protocols before I checked the security log to realize that my user on NT 4.0 didn’t have rights to RAS into the server…

Windows NT 4.0 also makes a great host for any version of SQL Server 7.0 & prior, and it runs Exchange server 5.5 exceedingly well. I like to install my old copy of Office 97 on the terminal server, and setup my own NT 4.0 domain with NT 4.0’s IIS, SQL, Exchange & fileserver. And the overhead on any ‘modern’ computer is negligible. 32mb of ram and a 1 gig disk are more then enough for a basic NT 4.0 server.

One other note, is that I found that Terminal Server would not install on 2003 r2 x64 / Virtual Server 2005 sp1. However I could install it on Virtual PC 2007 sp1 and then just copy the vhd over to the server and it worked fine. That is another plus of the VirtualPC / Virtual Server strategy is that they share each others disk formats without any issues.. Unlike some other products that won’t take an IDE image and let you connect it to a SCSI controller… Grrr.

Anyways I hope this will help someone setup a PPTP server, or at least the missing bits to front one with OpenBSD.