Subscribe via RSS

Windows 7 doesn’t boot after installing on Hyper-V

Thanks to my fresh windows 10 install, I had to re-install Hyper-V. No real issues... made a new machine and booted a Win7 ISO. All well... installed quick... reboot just gave me a black screen with a flashing cursor.

Googling came up with this link... Lots of rubbish replies... but there was another one of those gems. Those one-liners that save the world.

Boot your installation media and go to command prompt via recovery, it said. Just type the following, it said:

bootsect.exe /nt60 all /force

And, well, shit... it worked perfectly.


Windows 7 64-Bit to Windows 10 Upgrade Error

New year, new OS install. Windows 10 was lagging badly and took around 20 minutes to boot... sure... it was probably PLEX just trying to checksum 4TB of media, but I was sick of it. So, fresh install of Win7 on that 1TB SSD I installed into my previous Vaio. All went well with Windows 7, apart from crappy installation media... but upgrading to Windows 10 took a lot of effort.

Actually, Windows 7 had enough trouble with its own updates. I think that, nowadays, due to the sheer amount of updates that'll try and download and install (at once) on a fresh Windows 7 installation, it's nearly impossible to have them actually all install and succeed.

Therefore the windows updates process took around 10 reboots, with the progress counter getting to 70% and unwinding with an error... but each time more updates would succeed, so it just seemed that they needed intermittent reboots which aren't automated.

Anyway, once I finally had a Windows 7 desktop with an who-knows-how-successful SP1 install, I did the lovely accessibility Windows 10 update. I am hard of seeing, you see?

I came straight away into this error...


The program can't start because api-ms-win-core-libraryloader-l1-1-1.dll is missing from your computer. Try reinstalling the program to fix this problem. Re-installing what program? I'm running an installer! :)

After a large amount of googling... I stumbled across a one-liner in this post. Someone briefly mentions swapping wimgapi.dll from your c:\windows\system32\ folder into the c:\windows10upgrade folder... it then just worked!


Well.. I hope it will... at least it's installing...


Windows 7 Setup asks for a CD/DVD Drive Device Driver

I have gotten a little sad recently. My Windows 10 machine now takes 10 good minutes to get to a usable desktop. Sure, Plex is trying to wrangle 4TB of media and ... well ... there's 3 other years of crap on the main partition ... but it's now beyond a joke.

To get anywhere near back to normal, I'll need to re-install the licensed version of Windows 7 and follow the standard sneaky upgrade path.

I therefore grabbed the installation disk and booted from it. Not too far in and I was already at a road-block. Excuse the image quality... my ultra-wide screen doesn't like the installers basic 4:3 resolution!


A required CD/DVD drive device driver is missing? Ok.. sure... maybe you don't like the RAID setup in this Dell Precision T3500. I proceeded to kill 20 minutes rebooting to a usable desktop and trying to guess what drivers to download and install... I grabbed a myriad and burned them all to a CD. Rebooting, I swapped this in and tried to load the INFs.


Wait... Windows Setup can see the hard drives it's supposedly missing? Wait... it can also see the DVD drive?... wait... what's going on here? What's it actually complaining about? Ohhhhhhhhh... it hates the installation media? Why didn't you just say that the first time?

I then re-burnt the DVD at a slower speed (as per instructions) and got a little further...


Finally... I found a real DVD (DL RW Disc)... burnt it... all worked. Moral of the story? Use proper DVDs. Maybe DVD+R as the DVD-Rs that I burnt above were totally unreliable!


MINI VGA2HDMI Converter Issues

I bought this converter on eBay to get my Dreamcast plugged into my new TV which does not have VGA input. All worked really well during the first fortnight of usage.


4+ weeks into usage saw really bad performance from the device: screen distortion, black screens, incorrect resolutions and really crappy sound.

DSC00027 DSC00028 DSC00030

Wiggling plugs had minimal effect, so it was time to pop it open. There isn't much to these things as it's all SMD and on a single board. I couldn't see any (overly) bad soldering or problem spots, so I guessed it would be heat causing the issues.


I improvised a makeshift heatsink and the device started operating perfectly once more.


It actually occurred to me that, since I was powering the device off the TV's USB port, the device had been powered up each time the TV was on; not just when the Dreamcast was on. I assume these things just aren't built rugged enough to be used 100% of the time?

Anyway... I can only recommend to all that you pop open your devices and put heatsinks inside them for stable usage!


Javascript numbers with leading zeroes

Here is yet another public service announcement. I've recently been coding times for this post to track train timetables. Whilst doing so, I had the times in my array fully padded out to make everything easier to read.

i.e. for the southbound passenger timetable, I had the following:

var southbound_pax = [

All of my testing had been done after 10am, so everything worked fine. This morning I get in and check the timings and it's all really wrong. I whipped up a quick test as I'd seen strange values in the arrays.

> var number_array = [0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007, 0008, 0009, 0010, 0011, 0012];

> number_array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 9, 10]

Wait, what?... we're good until 0009. Then it goes nuts? A heavy bit of googling produced this warning on w3schools:

Never write a number with a leading zero (like 07).
Some JavaScript versions interpret numbers as octal if they are written with a leading zero.

Ohh.... riiiight... some... Did anyone else know of this feature?
Effectively, if it's octal, then 0009 should throw an error, right? Not just silently work and then flip back to '8' at 0010. Grrr...


Burning M27C256B EPROMs with a Willem

This is another public service announcement. I've just wasted around 3 weeks trying to burn an EPROM which shouldn't've taken more than 1 minute. I purchased a Willem Parallel Port 5.0 PCB burner from eBay (cheap, I know) and although I could happily read chips, I couldn't write them.

The settings were correctly configured for the M27C256B chips. You need 6.2v to write and 12.75v external. This means you can't use the USB to power. This PCB 5.0 is dual power, so it should've selected the correct source.

Every time I tried to burn I got the following error: Error at 0x000000 chip = 0xFF buffer = 0x58. Note that all three of those values would change, a lot. 0x24 and 0x46 were frequently seen yelling at me.

eprom burner

Turns out that the 'latest and greatest' version of the software doesn't select the correct power source. Downgrading to 0.97ja (as per the screenshot above works fine.)

So if you're getting the errors as I was above, then use the 'alternate' version that should be on the driver CD that you were provided with.


Virtual Box vs. Hyper-V (Visual Studio Android Emulator)

I've had Virtual Box running for ages. I use it for experimenting... I also use it to host VPN'd OS'. The whole concept of having applications and OS' fixed into a container is fantastic.

I also dabble with Smart-phone development; usually using a Macintosh or Android Studio on Windows. I recently became aware that Visual Studio Community 2015 comes with the opportunity to code Android/iOS apps via Xamarin.

I've attempted Xamarin before, but never built anything productive. This was years ago and have since forgotten about it. Seeing this option in VS meant that MS were somehow backing it and I therefore took the plunge.

Installing it was fine and building a sample 'WebView' application harmless. It even ran successfully in the emulator!

VirtualBox Conflict

Later in the day, I attempted to boot up my trusty VM to acquire a few things. I was greeted with the error that VT-x was not available. I attempted to re-configure the machine, but the Acceleration tab was disabled as Virtual Box could not actually find any acceleration to use.

It turns out that installing the Android Emulator for VS also installed Hyper-V Virtualisation. On any windows machine, only one Virtualisation manager can be installed and VirtualBox is not compatible with Hyper-V! There's a blog post here of someone asking the same questions.

I have found one blog post by Scott Hanselman that tells you how to 'multi-boot' into Windows where Hyper-V is disabled, but then you cannot run your Android Emulator. This post was actually from January in 2014! I'm surprised I've only just hit this issue.

It turns out that VirtualBox simply cannot work with Hyper-V. I'm not sure if the Android Emulator can work without it.

I attempted a switch to VMWare only to find that it is also not compatible with Hyper-V! At least it presents you with an appropriate message.

The Answer

The solution to all of this is to use the Hyper-V Manager which is installed as part of Hyper-V and create virtual machines from there. I haven't done this yet, but am not expecting too many issues.


Creating a bootable DOS HDD without a boot device

I've come across this problem twice now. Both times it has been with older 'subnotebooks' which have no internal removable media and don't have the ability to boot from external drives. You also may just not have the ability to create a bootable floppy disk.


The problem also occurs when you have a harddisk, a USB to IDE converter and you want to make a bootable DOS partition on it. This can be done with USB keys, but HDDs, when attached to the USB bus, appear differently and most tools wont want to work with larger drives.

Using a virtual solution

Most emulators allow 'direct disk' access to physical drives attached to your PC. This can be a godsend, or can be seriously dangerous! I've tried a few now, and I'm a total fan of VMWare. Both DOSBOX and Virtual Box failed me.

DOSBOX got very close... I created a partition using diskpart in Windows 10 and then mounted the new drive as c in DOSBOX. I then mounted a DOS 6.22 disk image and tried to run the fdisk/sys/format commands, which all reported Incorrect DOS version. Booting DOSBOX with the floppy image resulted in not being able to access the HDD at all.

Virtual Box, with a lot of trickery, allowed direct physical access to the HDD. Unfortunately, the format and fdisk commands failed miserably with out of space (or other random) errors.

Preparing your disk with VMWare

Find a suitable version of VMWare Workstation and create a new virtual machine. It doesn't need to be high spec; give it 64mb RAM and no storage. Attach a floppy image (grab one from AllBootDisks). Next, go to Disk Management in Windows and work out your drive number. You can see below that I want drive number 3.


Once you've got this, you can configure a new storage device in your new virtual machine.

set-phys-1 set-phys-2 set-phys-3

set-phys-4 set-phys-5

If you chose Entire Disk then you'll be able to do the whole lot, regardless of the drive state, with VMWare. Otherwise, choosing Individual Partition will mean that you'll need to partition the drive somewhere else first.

98se-boot-disk fdisk sys

Once you're booted, you should be at a DOS prompt with all the tools you'll need. Run fdisk first and create your partitions. Make sure you set one to active!

Reboot the machine at this point, just to make sure all settings stick. Once back in, run fdisk /mbr for good measure. This will properly re-create the MS-DOS Master Boot Record that'll allow your BIOS to find your active boot partition.

Now that you've got a valid partition, run a format c:/s to format C as FAT and transfer system files to make it entirely bootable. Give the partition a label when it asks.

Copy Windows Setup Files

Grab a copy of your favourite windows from WinWorld. This particular laptop was 'built for Millenium'... hah... so I retrieved that ISO. I loved the screenshots!


The best thing to do at this point (and the whole reason why we're here) is to copy over an entire Windows setup folder to the disk. This means that setup will be really quick and, down the track, you'll always have setup files handy. Remember how many times WFW311 used to ask for the network disk? Even if you were just changing IP configuration?

Note that the copying of the Windows Setup folder can be done outside of an emulator. The proviso here is that your host can read the format of the newly partitioned drive. Once copied, cleanly unmount the disk and get it back into the target machine.

If you get to a DOS Prompt, then you should only have to change to the windows setup folder and then run setup.exe.


Japanese Medical Massage Chair

I could not resist going back for this item. Not only was it an antique, it was also a random Japanese item from the early 60s which had somehow made its way to Melbourne.


Hah, it's crazy. Could it be the first edition of those chairs you put coins in at the airport.


DSC06447 DSC06448 DSC06422

I have more information on that sticker above here. This was the only link with a similar chair. I wonder if I'll ever find the exact details? The shop owner told me that it was sold as-is. The cord was missing a real plug and it had never been electrically tested. I didn't mind at all... I mean... how difficult could the internals really be?


DSC06453 DSC06454 DSC06455

DSC06456 DSC06457 DSC06458

Getting it going...

The mechanics seemed in very good working order. I applied a little more grease just to ease the friction further. The internals showed very simple wiring: the mains was fed into a double-pole double-throw switch which allowed speed control. There was a capacitor which seems to be an induction-motor capacitor to facility motor start. I must admit that it won't spin up on the low speed without a rolling start. I'll look in to replacing this.

I was initially going to find a replacement engine and overhaul the guts to 240v, but then realised that there were pretty cheap transformers that could cope with the wattage. One of these arrived from Sydney in no time at all!

DSC06444 DSC06432 DSC06433

You can see that the cable it was supplied with was junk. This was removed pretty quickly and replaced with a USA power cord found at Jaycar. Their site says they are out of stock everywhere, but the Melbourne City store had 100s. I used a terminal block to hook it up internally and the cable worked perfectly.

DSC06438 DSC06440 DSC06442

And, just to see it in action:

The rest is history... the chair just worked. 60 years later? Not too bad at all.. the massage it gives is great too!


Remove batteries from unused electronics!

Recently, on one of my weekend visit-a-new-area-of-melbourne trips, I ventured into a thrift shop and stumbled across a wireless keyboard/mouse combination from Logitec. Usually I wouldn't look twice at the combo, but this time I did as I saw that it had PS/2 connectors at the other end!

My 386 was on its way, so this keyboard would be a perfect complement. I don't often go for wireless input devices as I'm not a fan of battery replacement, but I do remember that a wireless mouse from a previous company worked for around 6 months before showing the haywire symptoms of a dying battery.

Getting it home, I found that the keyboard was void of batteries. I was happy with this, as I didn't want to see anything corroded in there. Unfortunately, this wasn't the same for the mouse. The previous owner had left two cheap AAA batteries in there and one had failed.


I pulled it apart straight away to assess the damage. Most of it was on the actual plate that runs into the battery chamber... but the corrosion had edged its way to the PCB also. Fortunately, on a redundant track. I quickly cleaned this off with alcohol wipes and a bit of scrubbing.


The next trick was to fashion two new plates. I'd recently been dismantling a satellite decoder and this had a lot of RF shielding. One of these metal shields came in handy.

DSC06407 DSC06408 DSC06414

A bit of soldering and some thick legs off a few power diodes and I had two new plates in and new batteries connected!

DSC06415 DSC06416 DSC06418

This is one of the smoothest mice I've ever used, in Windows for Workgroups anyway!