Wileyfox Windows phone back in production!

And people think Amiga & OS/2 fans are a little crazy!

Wileyfox was the last vendor selling Windows phones and it seems that they there was so much demand that the phone is back into production.

The WileyFox Windows phone

Specs include:

• 5″ HD Curved Screen, IPS Technology, Gorilla Glass 3
• 4G LTE
• Windows 10 Operating System
• Fingerprint Reader
• 8 Megapixel Rear Camera + Dual LED Flash + Auto Focus
• 2 Megapixel Rear Camera
• Qualcomm Snapdragon Quad Core Processor
• 16GB ROM (Storage)
• 2GB RAM
• 32GB Expandable Memory Card Slot
• 3D G Sensor
• Proximity Sensor
• Ambient Light Sensor

Also the price has dropped from £ 199 to £ 79!

Currently it seems that orders are only for the United Kingdom.

Loading the MS SQL 6.5 drivers on Windows 10

AKA accessing SQL Server 4.21 via Access 2016

It actually works!

I’ve been pretty dismayed for the longest while that newer versions of Windows bundle newer versions of ODBC that refuse to talk to any version of SQL Server prior to 2000 (at the moment).  Of course if I were ‘professional‘ Id be upgraded to the latest version, maybe even running on Linux.  But I’m not, and you didn’t come here for how to upgrade/update but rather how can you use tools from the 90’s in the 10’s.

If you try to use the current SQL Server driver, you’ll get this message.  Don’t be fooled, SQL Server 7.0 isn’t supported either (probably because of the SUN vs Microsoft Java debacle), it will only work with SQL Server 2000 or later versions.

SQL Server version 6.5 and all previous versions are no longer supported

It’s been this way since Windows 7, and I’ve just given up and gotten used to having to have a VM to access older databases.  That is, until today.

While I was dumping data and moving stuff for my blog (something I need to write about another BCP adventure), I wanted to do a simple Access database to make sure it’s looking sane.  And I figured I’d jump down to Windows 95, and load up Office 95.  Well sure enough there was no proper SQL Server ODBC driver.  Popping in the SQL Server 6.5 CD, naturally there is no ODBC drivers for Windows 95, but rather a 16bit driver for Windows 3.1, and 32bit drivers for Windows NT.  I installed the NT version, and was still unable to connect until I installed the SQL client which then let me run WINDBVER.EXE so I could configure the appropriate transport DLL (TCP/IP) and then I could connect.

Access 95 using the SQL 6.5 NT ODBC Driver + Client

And this got me thinking, is it possible to just take those DLL’s and move them onto Windows 10?  Well naturally that won’t work as the driver sqlsrv32.dll is a system protected file, and you can’t overwrite it without a lot of pain.  However this got me to thinking that it should be possible to just tell the system it’s a new driver with a different name.

Looking through the registry I notice that HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC is where the 32bit ODBC stuff is stored, so this is where I’ll make my ‘OLD SQL’ driver.  I simply used the existing one and renamed the driver/setup DLL’s to sql65-sqlsrv32.dll so that way the 2 DLL’s can co-exist without freaking out.

OLD SQL Driver

With that done, the key Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers will need a new SZ string saying the ‘OLD SQL’ driver is installed.

Add the new driver to the available list.

I also copied the following files from the SQL 6.5 client into a subdirectory of SysWOW64 so I could configure the transport:

DBMSADSN.DLL
DBMSDECN.DLL
DBMSRPC3.DLL
DBMSRPCN.DLL
DBMSSOC3.DLL
DBMSSOCN.DLL
DBMSSPX3.DLL
DBMSSPXN.DLL
DBMSVIN3.DLL
DBMSVINN.DLL
SQLGUI32.DLL
SQLSVC32.DLL
ntwdblib.dll
WINDBVER.EXE

Now if you are going to use named pipes it’ll just work out of the box.  Running WINDBVER you’ll see that it’s set that way by default.

Named pipes, and notice it’s version 8.0.1.85 from 2016!

to change it to TCP/IP I coped the files DBMSSOC3.DLL & DBMSSOCN.DLL into the SysWOW64 directory and re-ran WINDBVER, and then selected TCP/IP.

TCP/IP via DBMSSOCN.DLL

Now we can go ahead and add a SQL DSN. Remember to use the 32-bit ODBC Data Source tool

Note this is the 32-bit version!

 If everything is setup correctly you should see the ‘OLD SQL’ Database driver.  Scrolling to the right you’ll see that it’s version 2.65.02.01 dated 7/7/1997

Use the ‘OLD SQL’ driver

Now we just need to configured the driver.  Be sure to hit the Options button and type in the database name, otherwise it’ll just go to the default database.  Since I’m just using the ‘sa’ user that would be the master database, but I want Access to instead use the ‘pubs’ database.

Configure the old driver

Sadly these old drivers don’t have any test functionality.  So there is no real way to know if it is working at this point, however I would imagine it should as we have added a regsitery key for the driver, added it to the available driver list, selected (if needed) a transport DLL, and populated the needed fields.  The next thing to do is to try to use it.

The ODBC option is in the ‘Other’ sources now.

Start Access, and select a blank database.  Go to the External Data tab, and then choose the New Data Source, and the From Other Sources option.  This will bring up the ODBC database wizard.

Link to the data source

I’m going with linked, as I want the data to be used from the SQL Server all of the time.  You will be then prompted to choose the Data Source

The dbtest ODBC connection should be under the Machine listings

You can select the DSN we setup earlier, and then it’ll prompt you to login.

Login to the SQL Server

Again I’m using SA because… why not.  And now for the moment of truth, if everything is correct you’ll be presented with the list of tables!  This means that it’s working!

The pubs database from SQL 4.21

You can choose to save the password, and if needed select unique fields, or just leave it as it is.  Now you should be able to access your SQL 4.21 database!

The Authors table from the pubs database

And there we have it.

If anyone is brave/crazy enough I extracted the driver here: 
sql65odbc-files.7z  SQL Server 6.5 should not only be able to access 4.21, and 6.0 but I think it ought to be able to access SQL Server 7.0, although I haven’t tested it out yet.

OpenNT 4.5 revisited

OpenNT 4.5 installed

It’s been a few years since Tenox had mentioned OpenNT 4.5, and in that time the project pages, repositories and well just about everything has vanished.  It seems that the hardest thing to do with OpenNT had become finding it.

Then I found this over on vetusware, and with my curiosity piqued, I thought I’d check it out.

As mentioned the first thing to do is combine the parts, and create the single 7zip file, and then extract that.

copy /B "OpenNT45(Source).z00" + "OpenNT45(Source).z01" + "OpenNT45(Source).z02" "OpenNT45(Source).7z"

Extracting that will give a simple ISO file, weighing in at 1.7GB!

While not obvious at first, there is a readme in the ISO that provides instructions on how to compile it.  Basically it boils down to a few main points:

  • xcopy the CD onto a ‘W’ drive, or subst any other drive to ‘W’ as apparently the build process requires it to be on W.  Did I mention that the CD needs to be copied onto the W drive?
  • Run the ‘setup.cmd’ file to configure the environment and get the build process ready
  • run zTESTBUILD and do a clean build.  It will run and eventually fail.
  • run zTESTBUILD again, but do not do the clean build, and it should finish
  • run \cdimg\genall to create the ISO image

So with those points basically figured out after the fact, let’s go!

The first thing to do is either create a VM to compile this in, or just xcopy and go.  The big requirement though is that it must be a 32bit version of Windows, as part of the build process requires the ability to use NTVDM.  For simplicity sake, I chose Windows 2000 server, so I could allocate 2GB of RAM, and 4 CPU cores.  During the build it doesn’t use that much memory, cores are more so important during various phases of the build that can seemingly use any and all cores, while various other parts only run on a single core.

OpenNT disk space after a build.

I chose to use a separate ‘C’ drive, and ‘W’ drive for the 2000 VM.  With no idea how much space to give it, I setup a 32GB W drive, which after the build takes up just under 4GB of space.  

With the VM installed, and the W drive formatted, and the contents of the CD copied over, it’s time to start the build.

Phase 1

So basically you just answer ‘Y’ to zTESTBUILD.cmd and it’ll do it’s thing.  For me this took about 42 minutes for this to run until it failed, as expected.

Failure building MVDM

Looking at the \binaries\nt directory there was now 1,274 files currently built.  Naturally with the failure this is not a complete build.

Starting phase 2

After this failure you then re-run zTESTBUILD.cmd but this time answer ‘No’ to the clean build.

This step took about 15 minutes to complete.


The \binaries\nt directory now has 1293 files.

Checking the binaries\nt directory there is now 1,293 files and looking at the entire directory there is 2,624 files taking up about 120MB of space.

With the OS compiled, all that remains is to create an install CD and boot it up.  running \cdimg\genall.cmd will create the ISO image.

Creating the ISO with CDIMAGE 2.47

This will compress almost all the files, and took another 15 minutes to create the CD.  After this is all done it’s just a matter of setting up a VM to run the NT45Wks.iso file.

Bluescreen bootup of OpenNT 4.5

The first thing you notice is the extra banners on OpenNT 4.5, when compared to a retail copy of NT 4.0.

OpenNT Project

And of course the different branding during setup.  One of the nice things about OpenNT is that it can format filesystems directly as NTFS, instead of the old way of first creating a FAT partition, and converting it to NTFS.  This ought to bypass all the limitations of disk/partition sizes for the older NT.

WOW Crash

Running OpenNT 4.5 on VMWare seemed to run the Win32 stuff okay, although Win16/WOW stuff immediately crashed, and MS-DOS was incredibly slow with screen redraw issues. I know that NT 4.0 builds prior to SP 6 have issues with many newer emulation/hypervisors even when CPU levels are set to regular Pentium.

MS-DOS DPMI stuff like DooM are incredibly slow, and seemingly lock up when launching.

Oddly enough the OS/2 subsystem works just fine.

So there it is, the nearly vanished ‘OpenNT 4.5’.

VMware Player and Device/Credential Guard are not compatible!

What is this?!

Well it turns out that by turning on all the SDK stuff for Windows 10, including the mobile dev, which includes the Windows phone emulator it naturally uses Hyper-V.

Hyper-V Hypervisor enabled

And naturally the two hypervisor’s wont play nice with each-other.  You could just disable it, and go back and forth re-enabling it when needed, or make a new boot selection without it!

I found this post here: Switch Easily Between VirtualBox And Hyper-V WithA BCD Edit Boot Entry In Windows 8.1

C:\>bcdedit /copy {current} /d "No Hyper-V" 
The entry was successfully copied to {ff-23-113-824e-5c5144ea}. 

C:\>bcdedit /set {ff-23-113-824e-5c5144ea} hypervisorlaunchtype off 
The operation completed successfully.

note: The ID generated from the first command is what you use in the second one. Don’t just run it verbatim.

When you restart, you’ll then just see a menu with two options…

  • Windows 10
  • No Hyper-V

Sounds easy enough, doesn’t it?

BCD Boot menu

And just like that on power up, I can switch between Hyper-v and no Hyper-V.

win86emu: the greatest thing for Windows RT that Microsoft should have made.

While I’m writing this, I’m listening to Neuromancer via WinAmp & the ancient Speex plugin I had updated about 8 years ago.

x86 node running on Windows RT

I took my Surface, and downgraded it to the North American 8.0 version without updates, added my MS ID, and from there ran the jailbreak and win86emu (sometimes called x86node) and from there I was able to run some simple Win32 exe’s.

Even though I had done a simple cut down QuakeWorld port with the GDI only display, using win86emu it’ll run the 80386 build as well.  while I haven’t thrown much at it, I’m just amazed that so far things are working.

When you think that between the jail-break to unlock the ability to run programs combined with a CPU translator, and Win32 to Win32 thunk / translation program, why on earth did this thing ship without it?  It’s amazing that between trying to launch a platform with no inertial for applications after Android &  Apple were selling millions of hardware units, and billions of software units, and cutting the past applications.  It’s just crazy.

And then Microsoft did their normal thing when something goes wrong, which is basically end it, and destroy all evidence it existed.  There is no Windows 10 upgrade for the Surface, even though Windows 10 IOT has been hacked to run from a USB stick on the Surface, but it’s insanely slow.

I figured since this is kind of hard to find I’ll just mirror it on Source Forge… along with the source.

Compiling Microsoft Word 1.1a for Windows

A while back, Microsoft had famously released the source code to Word for Windows 1.1a (and OS/2 as well!), to some fanfare.

People were excited, but then kind of dismayed as they couldn’t really do much with it.  Oddly enough the source code release really didn’t have any notes on how to build it, although everything needed is included.  I went looking for information on how to build Word to see why it keeps doing weird things on WineVDM, and I came across this thread on betaarchive: 

https://www.betaarchive.com/forum/viewtopic.php?t=31096

Special props to yksoft1 for getting it to build in the first place, and Ringding for noticing that the OS/2 supplied compiler binaries can be re-bound to run under MS-DOS using a MS-DOS Extender.

So I went ahead and fired up Qemu and within an hour I had done it!

Word 1.1a compiled and on Windows 2.11

Well this is great fun, and all, but there isn’t a heck of a lof of people with Windows 2.x around anymore.  And of course Word 1.1a really wanted to have 2.11 or higher.  It has some hooks for what would be Windows 3.0 although I think it was much more.  Although it certainly doesn’t want to run (unmodified) under debug release 1.14.

So now that the world has gone beyond Win16 OS’s what can you do?

Well the tip of  WineVDM will run it!

Word 1.1a on Windows 10 using WineVDM

So now there is some new life for this old word processor.

Another fun thing in Word 1.1a is that it has an early implementation of MDI letting you view and work with several documents at once.  Naturally you would need a massive monitor, which we all have today.  Although people tend to just launch more than one copy of Word to accomplish this.

Early MDI

So now on my 64bit machine I can not only play with the source to Word, but I can run it at unimaginable resolutions on my modern machine!

So while out today I found a Windows RT Surface for $25

I had to pay another $15 for the charger.  I should have run away, but I’m a sucker.

Yes, there are basically NO apps, but thanks to this little guide

QuakeWorld on Windows RT

I was able to port over some trivial stuff, the usual things like hello world, Infocom Interpreter, a f2c build of Dungeon, then I went with something I’d been messing around an old GDI driver for WinQuake that builds with the NT 3.5 SDK (finally got it!).  So with a few minor tweeks here it is cross compiled from my x86_64 to the surface.

Last time I talked about the Surface was nearly 6 years ago…  The platform’s fate was pretty much sealed on day one.  With no open Win32 API it shunned traditional devs, and with some completely new and insane model it was such a hurdle for new devs, why put so much effort into such an old tired company like Microsoft?

I figured for the price of a good lunch it’d be a fun toy.

Too bad the speakers don’t work though.

I know the window on Windows 8.1 apps is closing soon.  I should put something together for the dead platform.  Maybe for phone too.  But for tonight, it was kinda fun doing a copy/paste attack to then run unsigned EXE’s on the device.

I might upload the tool chain later, but at the moment getting Visual Studio 2012 Ultimate is a breeze.

Reading older SQL Server 6.5 books online

So as part of my fun day job stuff involves moving data around and from time to time, there is that proverbial server in the corner (in this case it’s even physical!) and in this case I needed to move stuff into an old version of SQL Server as I needed to remember how to use the older BCP syntax.  Obviously I guess I could have just installed 6.5 into a VM, did the SQL transfer, then the whole upgrade to 7/2000 and up to something modern, but per requirements I needed to check data in the middle, so the quickest way is to just BCP it out into something human readable, and BCP it into something new.

SQL Server Books Online on Windows 10

So it turns out the books are easily copied off the install CD, and just run the viewer application directly.  And even better the ‘massive and optional’ install of all the online documentation turns out to be absolutely trivial by modern standards.

08/27/2018  12:33 PM           457,780 SQLBOOKS.AUX
08/27/2018  12:33 PM         1,163,078 SQLBOOKS.CAC
08/27/2018  01:33 PM                28 SQLBOOKS.flt
08/27/2018  01:33 PM                79 SQLBOOKS.hst
08/27/2018  12:33 PM               766 SQLBOOKS.ICO
08/27/2018  12:33 PM           238,252 SQLBOOKS.IDX
08/27/2018  12:33 PM           118,805 SQLBOOKS.KWD
08/27/2018  12:33 PM        10,193,094 SQLBOOKS.MVB
               8 File(s)     12,171,882 bytes

As you can see it’s really not that much in the world of terabyte disks.  Anyways just copy out all the SQLBOOKS* files and then from the binn directory grab the INFOVIEW program.  To view the books just run “INFOVIEW SQLBOOKS.MVB” and you’ll be set!

Some of the other older tools like Visual C++ 4.x also use this InfoViewer format, and you can copy all the other associated files, in the off chance you want to keep this ancient stuff handy.

WineVDM 0.5.0 released!

This version has MANY issues fixed, and is capable of running more and more Win16 software on Win64 based OS’s.

Printing on paper!

One of the more exciting things is that as long as I do a print setup first, I can actually print on a new printer from MS Word 2.0c!

You can download it from the releases page here:

https://github.com/otya128/winevdm/releases/tag/v0.5.0

MSDN from October 1994

I picked this 20 disc set recently and ugh the cringe is just… insane.  And yes, that is Bill Nye

 

STUDS from Microsoft .
(Video in MPEG-1/Audio MPEG-2 care of JSMpeg).

I had this ages ago, although I couldn't remember if the NT 3.5 SDK/DDK had shown up at this point, but it's only the Japanese version in this set.  Since I'm having such a PITA in tracking down a 3.5 set, and I'm not sitting on this, I may as well archive it.

Yes, I had to rip 20 of these!

So you too can find the early Video for Windows, and all kinds of other things from the mid '90's on archive.org.

Or Wallpapers like this 'puppy' from the Japanese version of Windows 3.1

https://archive.org/details/MSDNOctober1994