Creating a Benchmark: part 5 – a road-block in testing

Some months ago I set about working on creating a bench mark program to compare the Borland Graphics Interface (BGI for short) with a hand coded in assembly VGA library. I had completed work on the library and even tested it on my Pentium 200Mhz MMX. So I decided to do the final tests to get the results when I ran into a road-block that still has me stumped.

I had three different setups to test the code on. Dosbox (at a fixed cycle count), my Pentium 200Mhz MMX machine running MS-DOS 6.22 and this machine (the last in the post), a 386sx running at 20Mhz. The BGI code runs fine on all three machines, but the hand coded library fails on the 386sx locking up during the first test – blitting sprites.

This was quite confusing as the test appears to at least partially work as a number of sprites are drawn to the screen quite quickly, but sometime during the test it always freezes. I thought about what could cause this and decided to try disabling interrupts during the drawing process. I did this as the main instruction used for copying bytes to video RAM does have an interrupt bug on older processors (286). This unfortunately had no effect. See this previous post to see code I used for copying memory.

Whilst disabling interrupts didn’t fix the problem, it did confirm which instruction was causing the problem. The rep movsw instruction was the only one I put between disabling and enabling interrupts (using cli and sti). When the machine froze with this change it no longer responded to keyboard interrupts that it did before. This indicates a crash during either an interrupt itself (unlikely) or this repeating instruction.

Given this strange problem I decided to test the machine by running memory tests and another graphical benchmark to see if there could be a hardware issue. It seems that the memory is ok, and it ran a 3d VGA benchmark with no trouble over night. I’ve also played some games such as Hocus Pocus that have parallax scrolling and would put a bit of load on the relevant parts with no problems.

So the question arises, am I putting too much data/strain into the Trident graphics chip for it to cope? I’m unsure if i can answer this. The process of copying the memory has several overheads. The processor has to read the word, write the word, increment the memory indexes and then decide whether to stop copying for each iteration of the instruction. This would at best be one word copied per 2 bus clock cycles, but is likely to be quite a bit slower, from memory I think like 6 clocks per memory copy for a 386.

I think it unlikely that I’m over taxing the graphic chip, but this problem does highlight one of the major problems people had when creating their own graphics libraries. Small shareware developers couldn’t have tested enough hardware to ensure that what they wrote would work on a large array of systems. The BGI however, having more resources behind it, has a quite good compatibility record.


Motherboard: GA-586ATE

Today we return to the series on motherboards with a Socket 7 Intel chipset board made by Gigabyte. The Socket 7 standard was popular in the mid to late 90’s, usually running Pentium and K5-K6 class chips. It would be considered unusual today as the standard supported CPUs from many different manufacturers, and was probably the last to really do so.


This board was donated to me quite some time ago, and luckily it works. Unfortunately the CMOS battery is dead and cannot be easily replaced on this particular board. At first glance this appears to be a high quality Intel chipset board with very few jumpers to configure.

GA-586ATE cache chipsThis board has some older style cache chips seen here, much like those found on old 486 boards. They are basic high speed static RAM chips, with the brains of the caching mechanism being embedded within the chipset. Being made in 1994 this would use the synchronous caching scheme as pipeline burst caching had not been released yet.

Unfortunately I couldn’t find any documentation at all so the detailed specs for this board are unknown. Although it is obvious that it only takes 72pin EDO or fast page RAM. CPU support seems to be up to 166Mhz from the jumper settings chart printed on the board.

CMOS and Clock chipHere is the annoying CMOS and real-time clock chip that has a built in battery along with the flash ROM chip. These chips are a pain in the butt because you can’t easily change the battery. I may be able to get a replacement, or I might have to hack this chip to disconnect the internal battery and attach my own external battery. Luckily this particular chip (and the ROM) are socketed so I shouldn’t have to do any soldering on the delicate main-board.

In service this probably would have been quite a good board and would have been capable of carrying some of the more cutting edge processors for the time. There are few jumpers required for set up, basically one set for the processor multiplier and another for the bus speed. The board silkscreen has enough details for setting the jumpers and the front panel, so the manual isn’t strictly necessary to getting this board up and running.

This slideshow requires JavaScript.

These final two images are of the processor that is installed and the two main chips of the chipset. The processor is a pretty bog standard 100Mhz Pentium that performs surprisingly quite well. I had a quick look at benchmarks from the time and found it does nearly as well as some 120Mhz parts. This is likely due to limited memory bandwidth and perhaps the way the old cache on these boards worked. There is a socket near the main chipset that I haven’t seen before.

With no information available online there isn’t much more to be said about this particular board. It does still work, and if I can replace or hack that RTC chip it could be returned to service. The board feels and looks well made so I’d have to guess it was a higher end board, definitely capable of carrying a faster processor, and certainly quite reliable. It has managed to continue functioning even though it is a little over 20 years old. I guess technology of its era is more robust than much of what has come later.


Space Intruders for DOS

Today I played a clone of Space Invaders simply called Space Intruders. It was made by Softlair Computer F/X back in 1993. We got this particular game from a shareware magazine cover disc back in the day, it would have to be the only Space Invaders clone or otherwise that I really played at the time.

The game supports VGA graphics as you’d expect from a game of this vintage, and I think they are good, but not spectacular. The sprites are colourful and have some basic animation, but being a simple clone of space invaders there isn’t much more to be impressed by. Sound support comes in the form of PC speaker and Sound Blaster support, both of which sound quite good, albeit a bit loud. The PC speaker sound in particular is impressive as it sounds like it is producing digitised sound, but in higher quality than I’ve usually heard.

Game-play wise it’s pretty much just bog standard Space Invaders, although there is one minor change that makes a surprisingly large difference. With Intruder you can have quite a large number of shots in flight at a time, and the aliens also tend to drop many more bombs. This means you can put up almost a wall of fire and destroy almost an entire column of aliens at a time. Combined with a little dodging and you can quickly kill off an entire wave. This isn’t however the best strategy to use for getting a high score, for that you need to shoot the saucers that traverse the top of the screen for 1000-5000 points a hit.

As a clone of Space Invaders it’s not super faithful because of how much that one difference changes, but as a basic arcade shooter it’s pretty fun.

This slideshow requires JavaScript.


DGTech PVR Tear down

Having done some cleaning up recently I have finally started to make my workspace usable again. So today I decided to take a look at some hardware I’ve been meaning to tear apart for salvage. My old DGTech DG-HDPVR5009 set top box that doesn’t tune into signals properly anymore.


I got this unit about 7 years ago and it had served me well for quite some time. It had a 500Gb hard disk in it so I could store quite a large collection of recordings and two tuners so I could record and watch TV at the same time. Unfortunately it started having trouble receiving recently. Lets look inside.

PVR insides

There’s not much to the insides of a modern device like this. From the look of the available space they could have made this much smaller. A Seagate hard disk dominates the space obscuring the view of the mainboard and to the left is the power supply.


Upon removing the hard disk I found this IDE (also known as PATA or ATA) to SATA converter. This one allows a SATA device to be used with a more traditional IDE interface card. Most converters I saw in the day were the other way around, and in a device like this I would have expected a direct SATA connection instead.

Converter chip  Here is the converter chip that does the work on the adapter. It is a JM20330 JMicron part. I couldn’t determine much from the data sheet except that it supports CD/DVD drives as well as the usual hard drives. It appears that this chip was made on the 29th week of 2008.

The PVR main boardThe main board on the right here is fairly minimalistic. What looks like two RAM chips are over to the left of the main SoC which has a heatsink attached. It must do most of the work as there are few support chips any where else on the board. you can see a couple of the buffer chips at the bottom right which are used to provide the IDE interface.

Not much to look at here, and not much to salvage apart from the expected hard drive so far.

VFD display

Until I took the front panel apart and found this VFD just begging to be hacked. This board has all the front buttons, the display and the IR receiver all in this one handy package. The two plugs just below the display are the interface, the 3 pin one connects to the power supply and the other to the main board. I suspect this will be a simple serial interface of some kind that we could perhaps hack for our own purposes.

Display Controller?On the flip side of the board there is what appears to be a micro-controller. It is however a VFD driver and controller chip. With its data sheet and a bit of work I might very well be able to get the display to work. Although what exactly I’ll do with such a display I haven’t worked out yet.

In the end I’ve at least salvaged a useful hard drive, SATA adapter, some wiring and perhaps a usable VFD. The other components are less useful as I don’t have the skills to hack SMT or the chips on the mainboard. I may be able to use the chassis to mount the front panel and any project inside, but it does take up a bit too much space. I’ll have to sit and think about what the ultimate fate of this device will be.


World of Warships

I didn’t get to posting this weekend because I’ve become pretty much addicted to World of Warships which is now in open beta. I hadn’t played the other games because I’m not as interested in tanks or warplanes, but when I ran into some videos on youtube from the Mighty Jingles, I just had to give it a go. I thought I’d give some of my first impressions.

You start out with some basic ships, the US Cruiser Erie and Japanese Cruiser Hashidate. There isn’t much difference between the two really, but the Hashidate mounts its guns in twin turrets making any damage to them worse for your firepower. Both ships are basically just gun boats, which is a good thing because extra features you run into later can complicate matters.

Initially you can only play in co-operative play against AI opponents, again a good idea. The AI is a bit gentler than human players and gives even a new player the chance to get some good shots in. It isn’t stupid however and will provide a challenge or even win if you aren’t careful. I recommend doing co-operative play whenever you’re trying new stuff out like a new ship class. Most games are random battles you play against other players.

There are four basic ship classes, each useful in their own right. Destroyers are the smallest ships, but because they are hard to spot and pack powerful torpedoes even the largest ships need to fear them. Cruisers are the jack of all trades, they often can hold their own in a gunnery duel and have some armour protection. Some have torpedoes and good anti-aircraft defenses and can serve many roles. Faster cruisers can avoid torpedoes (but not always) and even dodge battleship fire if they’re lucky. But battles ships will win a one on one fight usually.

The two larger classes of vessels whilst powerful require protection in one way or another. The battleships have large guns, but they take a long time to reload, so a cruiser can pummel one if they can avoid their fire. Torpedoes are a terrible hazzard and everyone who can will shoot many in your direction. Some of the faster battleships can dodge torpedoes, but will often take a hit or two. Luckily they have thick armour, so they can take a lot of damage before they finally sink, and the big guns can and will punish anyone foolish enough to be in their sights.

Carriers are an entirely different beast. They can attack anyone of the map, but if the enemy has good anti-aircraft guns they can run out of aircraft and hence combat effectiveness. They are also vulnerable to pretty much any other ships gunfire or torpedoes, so they need to hide away and have some kind of escort.

The ships are organised into tiers with older less powerful ships at the bottom ranging to the most powerful at the top. I’m still on lower tier ships at the moment, so the battles are closer tougher dog fights because the range of the guns isn’t as long.

Using a lower tiered ship doesn’t disadvantage you as much as you might think. Ships like the St Louis have enough firepower to threaten cruisers and destroyers further along the tier system. Although most of the time the match maker manages to fit you with similar players, it’s not a disaster if you’re only a little lower on the scale.

In terms of historical accuracy, there are some areas which have been tweaked to ensure things are nicely balanced. But there is certainly a lot of realism despite this. The way shells interact with the armour of a ship has been modeled, including the effect of the angle of impact. Shells can deflect off armour causing little to no damage. High Explosive shells don’t penetrate as much, but cause damage such as fires. Personally I think they generate too many fires, but that’s just my opinion.

So far I’m really enjoying playing World of Warships, it’s easy to get into and learn, but deep enough that strategy and skill count. It is also hard to sink even smaller vessels, so newer players won’t be killed before they have a chance to fight. I look forward to the new ships from other nations as they come out, particularly the UK and German fleets. I’d like to try out HMS Rodney, HMS Hood, Scharnhorst or Admiral Graf Spee.

The game is free to play with transactions for some premium ships, and things you can do, but it certainly isn’t a pay-to-win game. I saw the price on some of the premium ships and thought they were a bit expensive at $39 AU for the Battleship HMS Warspite for example, but other items such as extra ship slots are much cheaper. I am happy to invest in this game because it is so good, but the price tag for a single ship is a bit much. Maybe if the Australian price comes down I’ll reconsider.



Photos from Home

I’m about to leave my parents place to head back home and back to work. I always quite enjoy the trip here to Narrabri and find it a much needed break from the stresses of every day life. Today I thought I’d share some of that with you in the form of photos I’ve taken over the years along with a description of what makes this place special to me.

Continue reading ‘Photos from Home’


Wooden Ships and Iron Men

Wooden Ships and Iron MenI’ve come back to my parents place as I do this time of year for a quick holiday before work picks up again after the semester break. This time instead of covering some technology I thought I might do something different. Today we’re looking at a board game we played as kids called Wooden Ships and Iron Men.

It was originally made by Battleline publications but later re-published by Avalon Hill. We had a few other Avalon Hill games, one for the D-Day landings and another of the Africa Campaign fighting Rommel. These games were great fun to play, and taught us about strategy and planning. We used to play these with Dad mostly, but occasionally me and my brothers would play each other.

The board

The board

I forget when exactly I was given Wooden Ships and Iron Men, but I suspect it was a Christmas or birthday present. Unlike the other games we had played this is a naval combat game for ships from the 18th – 19th century.

The ships log book

The ships log book

Because we were kids at the time we chose to play the basic rule-set the most. We were also way too ambitious, having set up stupidly large fleets instead of more manageable encounters. This meant that we rarely completed a game because of how long it took the three of us to command and manage the ships. We still enjoyed playing, and had fun with some of the interesting ships like fire ships.

Combat Tables

Combat Tables

The game uses log sheets for each ship to record its hit points for various parts of the ship such as hull, crew, guns, and rigging. The log is also where commands are written during the planning phase of play. You record the ships movements and whether the guns are fired or reloaded. Once everyone has planned, all the ships are moved (whilst checking for collisions) and then dice are rolled to resolve any of the combat or events that may occur.

Ship Counters

Ship Counters

I think ideally you need to either keep the number of ships down or play in teams to make larger fleets more feasible to get the most out of this game. It is quite fun, and will give you a glimpse into what naval warfare in the time of Nelson and Napleon was like.



Blogs I Follow

Enter your email address to follow this blog and receive notifications of new posts by email.

Mister G Kids

A daily comic about real stuff little kids say in school. By Matt Gajdoš

Random Battles: my life long level grind

completing every RPG, ever.

Gough's Tech Zone

Reversing the mindless enslavement of humans by technology.

Retrocosm - Vintage & Retro Computing, Tech & Media Blog

Random mutterings on retro computing, old technology, some new, plus any other stuff that interests me


retro computing and gaming plus a little more

Retrocomputing with 90's SPARC

21st-Century computing, the hard way


MS-DOS game reviews, retro ramblings and more...


Get every new post delivered to your Inbox.