02
Dec
20

Neut Tower for DOS

Today’s game was made by SpindleyQ starting in 2018 releasing a shareware episode in early 2020. It is an EGA puzzle game that would have fit right into the shareware gaming scene in the late 80’s and early 90’s. The author took on an unique challenge, doing all the development on a 286 machine without using any tools created after 1992.

They used Borldand Turbo C which was a very popular language at the time, and used that to make almost all the tools they used for producing the game. In a way this makes it feel much more like a game from the era, everything you see could have been genuinely made at the time.

The graphics are in EGA, and uses the Borland Graphical Interface (BGI) as an engine for drawing to the screen. Whilst not super fast, the BGI is good enough to make this game run smoothly and animate well. The graphics style is well put together, colourful and animated smoothly.

There is some basic sound support for the Adlib card and the PC speaker, I used the Adlib support and I thought the sound is perfectly reasonable. There isn’t any music and there are some simple sound effects for most events in the game.

The controls are fairly simple, basic movement controls, a key to activate switches, a key to activate your companion, and a key to switch which character you are controlling.

The games starts with Jaye sitting at her desk when an earthquake hits. The building becomes quite damaged and she gets trapped in her office. She then activates Neut, an AI program that she has been working on. Jaye is able to move through the real world and interact with switches and turn on terminals whilst Neut can only travel through the network cabling in the walls and use powered on terminals as teleporters to access and hack security devices. Your goal is simply to escape the damaged building.

Along the way there are snippets of story mixed in with the puzzles, and both are generally done exceptionally well. There are companions to find and help, and terminals to interact. Although there is some mild coarse language, it’s not over the top, and isn’t really all that bad. Keep an eye out for clues, one puzzle I did had clues in the boss screen, not somewhere you’d usually look!

Neut Tower is a compelling and interesting puzzle game. The available shareware episode is a bit short at only 6 levels, but they are very well designed and fun to play. On the authors website it says this is still in development, so there may be more content yet to come and the possibility of some registered episodes. You can download it and support the author on their website.

20
Nov
20

New Microphone setup

It’s no secret that my old microphone was less than ideal. Basically it wasn’t sensitive enough, wasn’t easily adjustable, and sounded different every time I set myself up for recording.

It’s a cheap lapel mic, which explains much of the quality issues I experienced, it was however better than nothing and allowed me to get started making content. Fortunately I had salvaged an old condenser microphone from some equipment that was being retired.

It’s an AKG GN 30 ESP with a CK31 capsule, which isn’t a particularly modern piece of audio gear, but from what I’ve read online is actually fairly decent, and something that they still make. From what I’ve read online it seems these are commonly installed in Churches, various types of halls, and often teleconferencing systems. My particular example was new in 2006, and was part of an Accessgrid facility, I salvaged it when the audio system there was upgraded.

Of course being a condenser mic you can’t just connect it to any old thing and expect it to work. It requires an XLR cable and phantom power in order to operate. So to connect it to my PC I had to get an audio interface that would support it.

Step in the Swamp Industries SM11, a basic 3 channel Mixer with a builtin USB sound interface. It wasn’t too expensive either at just under $100 AUD. Add in an XLR cable and it was pretty much a case of plug and record, which was refreshingly easy.

The mixer has a few nifty features that I’ll be using, such as the ability to plug in head phones to monitor the audio being recorded, and being able to play audio through the USB sound card, so you can hear approximately what it will sound like over the PC sound output.

My audio set up is still quite new and I’m still working out all the kinks, I’ve found having a better mic can make doing good recordings more difficult as it picks up sounds that my old mic wouldn’t hear. Such as the sound of my old Sparcstation running in the background, or my air conditioner. But this is less of an audio problem and more an environmental one.

I’ve finished my first video using the new audio setup, have a listen bellow and let me know what you think.

19
Oct
20

9th Anniversary and General Update

Another year has gone by, and whoa what a year it has been! We basically had a double whammy of natural disasters here in Australia. First we had what would have to be one of the worst fire seasons I can remember, with what felt like most of everything burning. Then the Covid19 pandemic came and sent us all into lockdown, which is likely to have consequences for us all economically for the next year or so at least.

I feel exceptionally lucky that I haven’t really been affected all that badly by the events of this year (touch wood). Lockdown was an interesting experience, in some ways good and bad in others. It was nice to be home and be more relaxed, and get more time with the kids. However it made it difficult to socialise and communicate with colleagues and made home feel like work. Where I live things are mostly back to normal, the only real difference being some people wearing masks.

I started making youtube content this year, which has been quite fun. I’ve had mixed results, some of my videos are lucky if they get one view, which is kind of disappointing, while a few of them have had a small number of views.

I’ve been thinking about it and there’s a few possible problems that may be the cause. Firstly, it’s entirely possible that I’m not doing anything terribly wrong, just that it takes some time before people discover what I’m making. I had that experience to a degree in the first few years of writing here.

I’m not sure it’s a simple as that though, as there are quite probably some issues in what and how I’m making my videos that might be putting people off. I have the capture setup mostly sorted, although I think my audio quality could use improvement mainly by getting a better mic.

I think that most of the area I need to improve is mostly in my own “performance”. I’ve managed to make some videos in a more relaxed off script style, and other that are more scripted. I feel like I sound stilted and stiff in much of the audio, particularly the more scripted ones. The only real way I’m going to do better here is by practicing.

The last thing I thought may be a problem is basically the subject matter I’m picking. I think that GWBasic is quite a niche subject. Although my most popular video happens to be the one about Donkey.bas. I’ll continue making these as I feel like it’s something I like to talk about, and there isn’t really much of what I’d like to watch on youtube on this subject.

Old MS-DOS games as a subject are a bit more mainstream, I suspect that I just haven’t generated enough content in this space yet. Also there’s enough good content out there that it’s hard to get noticed.

I know that the main audience of my Minecraft videos is basically just my daughter. Which is kind of a shame because I really enjoyed making them and they took quite a while to make. I feel this is probably mostly because of the sheer number of people making content for Minecraft. I’ll probably still make these, but I might make a separate channel for them.

I haven’t had as much time for writing here, partly due to my youtube activity, but also because I’ve been busy, and feeling tired when not busy. I’m working on making some more time for myself, so I can hopefully spend some more time on my projects.

Speaking of things that have seen less activity it has been a few years since I last made a post about the old Sparcstation, the main reason being it’s taking a long time to rebuild all the packages I intend on trying/using. I’ve been using qemu to emulate a real system and have run into problems with emulation, I may fire up the old system to see if it’s quicker building on it or at least double up how much I’m building at a time.

I’m still sporadically working on Bob’s Fury, but I’m still stuck on the bug that causes it to crash on the microbyte 386 when the PC speaker is enabled. There is of course plenty of other work to do, such as creating the levels and eventually rewriting of the graphics library.

Finally, I’d like to thank anyone who’s been reading or watching my content. Whilst I do this as my hobby and for myself, it’s nice to know that others appreciate my efforts.

14
Oct
20

Solder Runner for DOS

Today’s game, Solder Runner, was made by Sumware Software back in 1996. This is notable as it’s after the release of Windows 95 and was in a time of decline for games development for DOS. It’s kind of like Paganitzu, Chaganitzu, God of Thunder or Bloxinies, except the puzzles span multiple screens. It comes with a level editor and three episodes, although the third episode appears to be incomplete.

I originally tried playing this in Dosbox, but it seemed to cause issues with the game such as only being able to play the third episode despite selecting the first one to play. So I fired up an old PC, to run the installer you need to be running windows9x (or better), but once installed the files can be copied to a pure MS-DOS machine. In this case I copied the game to the old IBM thinkpad laptop and captured images and video using my epiphan capture device.

The game appears to use high resolution VGA graphics (640x400x16), which for the most part aren’t bad. I noticed that a few digital photos of circuit boards were used in places, which is interesting, but the images appear to be a bit noisy where they are used. Other artwork such as the tiles and sprites are reasonably well drawn, although it isn’t clear what the functionality of some items are just by looking at them. However you’ll learn what they are fairly quickly.

There is supposed to be some digitised sound, but I couldn’t get it to work for me. The standard PC sound isn’t too intrusive or annoying, so it’s acceptable in this case. The controls take a little getting used to as you need to press a direction key twice to move a space  when changing direction. It’s annoying at first but you get used to it.

The game is divided up into three episodes, each episode is one large level consisting of many screens. Puzzles vary in size from simple ones that fit in one screen to much larger puzzles that require back tracking or retrieving keys or solder beads. The very first large puzzle on the first episode has you circle around the same screens multiple times before you can collect everything you need and move on.

The static hazards are much like those in similar games. Some shoot at you and others block your path or offer a small puzzle element. Keys may be required for progression at times and you’ll almost certainly have to back track at times. This can make things a little tedious as screens do not reset, so you can end up traveling several screens with basically nothing to interact with when you return to fetch something you need.

The enemies are quite different to what you’d find in similar games, they represent different types of computer virus in the system. They move quite erratically, in a semi-random fashion that makes them difficult to shoot and predict. I think this has made it harder to implement good puzzles involving them, if they had a more predictable logical behaviour that differed depending on the enemy type then you could base some puzzles around them. Much like those you’d find in similar games. As it stands they are more of a nuisance that you have to avoid or shoot.

Apart from issues with dosbox there are some game mechanics that may cause you problems. Diodes in the level only allow you to travel through them in one direction, you’re automatically pushed in that direction if you move onto one and they are often laid out in chains. Your controls are not disabled whilst this is happening, and you can attempt to move or shoot whilst the diodes push you to your destination. This can result in you glitching into a part of the level you’re not prepared for, so best to keep your hands of the keys whilst moving through a diode chain.

Solder Runner was reasonably fun to play, but it has some flaws. It does do multi-screen puzzles reasonably well, just other games such as God of Thunder in particular do it better. It feels incomplete and unpolished in many ways, which is confirmed by the third episode, which has barely any content and is clearly incomplete. Bellow is a video with some commentary and game play.

27
Aug
20

Motherboard: Gigabyte GA-BX2000

It has been quite a while since my last post, I can only apologise, time just skipped by so fast! Last month I did have a chance to go and visit my parents, it was quite lucky timing in a way, as there was less risk and concern surrounding the COVID situation at the time. I usually try to take some photos of old computer hardware whilst I’m there, and this visit was no exception. Today we’re taking a quick look at a slot 1 motherboard, the GA-BX2000 motherboard made by Gigabyte in 1999. Here’s a photo of the board.

The board supports Pentium III CPUs up to 550 Mhz, with my board having a 500Mhz P3 Katmai installed running with a 100Mhz FSB. Being an earlier P3 it may be a good candidate for some simple overclocking, which can be achieved by adjusting the dip switches on the board. Unfortunately the board doesn’t allow adjusting the CPU core voltage at all, limiting your overclocking options to using the stock voltage.

It has an Intel 440 BX chipset, which seems to have been fairly reasonable for the time. It supports a range of bus speeds from 66Mhz up to 133Mhz, which gives significant opportunity to overclock the bus depending on the CPU installed. I read that this may not improve speed very much with the Slot 1 CPUs due to how the L2 cache is structured, bumping up the CPU multiplier was found to have a bigger effect on performance, with a maximum of 6.5x there may not be much headroom for an increase. The board features an AGP 3.3v slot which I suspect is only 1x but could be 2x.

The onboard devices include the usual USB, Floppy, ATA and serial and parallel interfaces, but no integrated sound.The lack of onboard sound wasn’t a huge deal as decent sound cards were still quite easy to come by. Although by this point onboard sound was becoming much more common, it hadn’t yet become good enough to entirely replace the need for dedicated cards.

An interesting feature this board has is the Dual BIOS. Basically the board physically has two separate ROM chips each containing a copy of the system ROM. If the primary ROM is found to be not working properly it automatically switches to the secondary one. It is also supposed to provide end users with some protections from hardware failure, not that the flash ROM chips really failed all that often. One problem it could effectively combat is a failed firmware update, whether it be one that was interrupted, or simply an incorrect image. This would hopefully prevent your board from being bricked. Never having had a reason to need it, I don’t really know how effective a solution it was. This board features a jumper to disable the dual BIOS feature.

In many ways this wouldn’t have been a good buy when it was first made. Whilst it supports the early P3 CPUs, it does so only up to the 650Mhz mark which was quickly surpassed and later chips moved to a different socket. On the other hand it does have some limited capacity to overclock, so it would have been useful for boosting performance of Pentium II chips and the earliest Katmai Pentium III. There’s nothing obvious that would cause reliability issues in the long term, so as long as you were happy with the supported CPUs it would have been fine for general use.

For an enthusiast today it’s probably most useful for a Pentium II build, as there are better boards for building an Pentium 3 based system and the overclocking options are more meaningful for the slower chip. The silk screen on the board has all the switch configuration details handy for setting the bus speed and multiplier, the rest is a mostly jumper-less design, although I did see a jumper for a Voodoo card versus non-Voodoo cards, which is quite odd to say the least. The silk screen doesn’t label everything clearly, so looking up the manual may be required when installing or performing maintenance.

17
Jun
20

IBM ThinkPad 380ED

Today’s machine was made by IBM, one of the most influential companies in mainframes and early personal computers. This laptop was released in 1997, after the companies influence had waned, it’s a Thinkpad 380ED. The Thinkpad name would become synonymous with high quality and performance portable computing. Here’s a picture of my particular machine.

IBM Thinkpad laptop

It’s in fairly good condition, although I’m missing the power adapter, it was donated to me some time ago by a client when I worked in IT support. It has a Pentium MMX running at 166Mhz which wasn’t the fastest available at the time, but was in general quite a good chip. It was quite capable of playing late MS-DOS games such as Quake and Duke Nukem 3D, and could play earlier windows titles. However this machine wasn’t really suited to most games.

The main reason it’s not great for gaming is the screen. The resolution of 800×600 was good for the time, but the screen on my particular one has a pretty slow response time (it must be the FRSTN model) making it pretty much useless for anything that animates or scrolls. Static images look perfectly fine, but movement of any kinds quickly turns into a blur. There isn’t much in the way of scaling either, so most games won’t fill the entire screen depending on their chosen resolution. Strategy games like Civilization work fairly well, so I guess there’s that. Other wise an external screen makes action games playable, although that kind of defeats the portability of the machine.

The screen is driven by a graphic chip I’d never heard of before, a Neomagic MagicGraph 128V, with slightly more than 1Mb VRAM. I tried a few DOS games and it seems to be quite compatible back to CGA graphics. Although it seems the processor may be too fast for many of the older titles as some games do not start up, crashing with divide error messages. On the other end of the scale SVGA modes are supported and working where I was able to try it.

The internal speaker is driven by a Cirrus Logic audio controller (CS4236), again another device I’ve not had hands on experience with. It seems to be a sound blaster compatible as both digital and OPL sound work well without having to load a driver in native MS-DOS. Audio quality is good, OPL music sounds correct without any pops or noticeable errors and digital audio works similarly well. I also tried games with PC speaker noise, and they also worked quite well.

The other interfaces include the usual serial, parallel and PS/2 mouse connector. You can connect an external VGA screen, which is good if you have one handy. There are two PCMCIA slots for additional interfaces (such as a modem, lan, or wlan card). There is a slim 3.5″ floppy drive and a CD-ROM drive which are both handy, although I’ve not been able to read any CDs. I have a PCMCIA CD drive I may be able use in its place.

The technical specifications of the hardware are only half the picture when it comes to laptops and other portable devices. The durability of the chassis and hinges is a particularly important part of their design. Back in the day I saw numerous laptops with broken hinges and chassis simply because of poor design, often because the outer casing was made of plastic. This particular laptop came before the plastic fantastic chassis of many later machines, and it has a metallic chassis which has a very good build quality. IBM Thinkpads quickly got a reputation for being sturdy and reliable machines because of this, although this didn’t last after IBM sold off its laptop division.

I still have some work to do on this machine before I can really use it much, I need to figure out if I can get the CD drive working, get a new power adapter, and finish erasing the drive and installing a new OS. It’s already been handy in being able to test Bob’s Fury on it (for debugging purposes) and it will play DOS games quite well if I use an external screen. I’m thinking of replacing the internal drive with something like an SD card converter, as the hard drive is so small. The small form factor of a laptop makes it convenient to store and setup when I need it.

01
May
20

Daymare for DOS

I found today’s game whilst playing random shareware I found on my F19 CD. Daymare is a dungeon crawler made by Jim Todd, originally it was made for the Atari ST, but was later ported to DOS in 1992. It was released as shareware with a sequel eventually being made.

The graphics are in VGA and are reasonable for the most part. It’s not as pretty as a more professionally made game such as Eye of the Beholder, but the dungeon is rendered quite well and the other artwork works well enough. There wasn’t any sound to speak of.

At first when I started playing the game I didn’t have much idea about how to play. It’s controlled entirely by the mouse so it wasn’t too difficult to figure stuff out, even though much of what you need to know isn’t in the instructions. There is a cluster of controls arranged in a grid of 8 buttons, and a section for storing and equipping items. Basic movement and attacking were easy to figure out.

Using items was a bit trickier, but I did figure out how to do it. For food items you pick them up with your mouse and click the item on the mouth. Most food items disappear, but the vials of water leave an empty vial after consumption. You can fill these empty vials at a well such as the one found in the starting area. Other items, such as the scrolls and the bag of holding need to be in the right hand slot of your inventory, clicking the diamond (with out starting a spell) uses the item.

Spells are cast by clicking the symbols around the diamond in the correct sequence for the spell, then clicking the diamond. The spells are revealed by hints left throughout the level, such as a readable item that tells you the softens spell. Signs and other text around the levels will provide other hints.

The game starts you out in a little courtyard with a few items around on the ground. You’ll find some water vials, some treasure, healing scrolls and a weapon. The treasure seemed pointless at first, but I found out that you gain experience (and levels) by putting it in the well. The water vials are quite useful as they restore some health in addition to thirst. Since they can be reused they are one of the easiest ways of restoring health. You’ll still need to find food to fill your hunger.

The first enemies I encountered were some worms and attack dogs that were tougher than they looked. It really helps to use the softens spell, as it increases your resistance to physical damage. You’re quite vulnerable at level 1, so I died a few times before I leveled up, but after that I only died if I had bad luck or went somewhere I wasn’t ready for yet.

I’ve played for a few hours so far and feel like I’ve only really scratched the surface. So far I’ve explored most of the first level and managed to find the bag of holding in a hidden section. There is a locked door I haven’t found any keys for yet and a section that kills me quickly, so I’m guessing there are some parts I’ll have to come back to when I’ve leveled up and found some keys.

I quite enjoyed playing Daymare once I got over the initial hurdles. There are a few quality of life issues, such as only having one save slot, not having an auto map and being forced to quit the game every time you die. However I still think it’s worth a download and play. I found the sequel on the authors website, however this version wasn’t available there, if you want to give it a try you can find it on dosgames.com.

This slideshow requires JavaScript.

03
Apr
20

Sparcie goes to youtube!

I’ve been thinking about creating youtube content for years, recently I finally got around to trying my hand at content creation. The technical aspects I’ve had sorted out for quite a while as I’ve been involved in supporting the technical aspects of remote teaching for quite a long time. It’s mostly the content itself which is the biggest challenge for me.

So I set myself up to record at home on my PC, I’ve installed some tools such as OBS, Audacity, Shotcut, and Handbrake, then sorted out the hardware as best I could. At the moment my microphone is probably the part that lets me down the most, being a relatively cheap one, but with everyone currently needing such technology it’s hard to get good equipment. I have an old web camera that is also sub optimal, but I don’t really plan on using it at this stage.

So what kind of content do I have planned? I’ve been planning on making some videos about gwbasic for some time, as the content I have seen hasn’t really been the sort that I’d like to watch. My first video is basically telling the story and demonstrating one of my gwbasic games that I made when I was a kid. In the future I’ll also cover stuff made by other people and in other languages such as QBasic and Pascal. However my focus is less on the programming and more on the programs themselves. Although if someone really wants a tutorial I may make a few.

I am thinking of doing gaming related content as well, perhaps some windows 9x games. I play a lot of Minecraft so that may get a showing as well.

Here’s my first video, warts and all. Let me know what you think.

21
Mar
20

Building a Replacement Server 2.0

I built my current server about five years ago as a replacement for my Sparcstation 20 so it could be retired from the role and used in a more desktop role. Recently the machine I built suffered what I thought was a hardware failure and hasn’t been up in some time. This has brought forward plans I’ve had for quite a while to replace it with something more power efficient. I’ve been struggling for quite a while to find something that is relatively cheap, but also more power efficient than the 60-100W my old Celeron 2.4 Ghz uses.

One option I had been investigating for a while is the plethora of small form factor PCs that are generally available. I looked at various offerings from Intel, Gigabyte and others that are available and found that whilst they were indeed quite power efficient, they also tended to cost quite a bit for a bare bones system that would require buying additional components. For this reason I decided it would be better to go for another option.

I had looked among my collection of old hardware for an alternative, and couldn’t find anything that was suitable, so I was going to have to buy something new. With small form factor PCs ruled out due to cost I had to do some research. I ended up finding some videos from Phil’s Computer Lab where he used old thin client machines for various purposes such as retro gaming or in some cases being able to play fairly modern games. Checking out the specifications of the thin clients they appeared to be reasonably powerful, efficient, cheap, and you get a complete system that require minimal additional components. Sounds like a winner!

I ended up buying an HP T620 thinclient with the 1.5Ghz Quad core AMD GX-415GA chip. It came with 4 Gb of DDR3 memory and 16Gb flash in the form of an M.2 drive. Whilst not terribly impressive specs for a modern machine, it’s fairly good for 2013 technology and is certainly better than the old Celeron I currently have. The most exciting aspect of the thin client is its power efficiency. I had a fairly good idea that it would be significantly better than the old machine because the power brick is 65W, so the likely maximum energy draw has to be less than what the old machine draws at idle. Being a low power device it is passively cooled and is completely silent in operation.

So I got out my kill-a-watt style power meter to see how much energy I could expect this machine to consume, I was pleasantly surprised. With the default operating system (embedded windows 8) it used a whopping 2W after boot at idle. Being so low I was completely astonished! I wasn’t planning on using windows as the operating system, so knowing the idle power may be different I went about the software install. Like previous server installs I’m using NetBSD again, partly because it makes it easy for me to migrate, but also just because I like it.

I had some difficulties installing because of UEFI, but once I resolved that the install went smoothly. Hardware support turned our fairly well, with all the major devices except the wireless working. Given I’ll be using Ethernet that’s not much of an issue for me. After boot on a clean install the idle power consumption is around 7W, which is still quite impressive. I suspect the higher consumption is because of the open source radeon driver not having good power management, which I can’t do much about at the present time.

The only issue I had after installing the operating system was the distinct lack of storage, 16G is not really all that much and I know that I’ll need more. Luckily these thin clients can take upgraded storage, mine has a mSATA slot that some revisions of this unit don’t. So I went online and bought a 120G Kingston UV500 mSATA SSD. Had my unit not had that slot I could have upgraded the M.2 drive to something larger. There are also a number of USB ports that could be used for external storage.

I’ve now deployed the new machine and I’m quite happy with the results. I’m quite happy with the performance, which I’d say is in large part due to the SSD storage. I like that it’s passively cooled because that makes it completely silent. Lastly the extremely low power consumption makes it very cheap to run, and I managed to get mine (including the extra storage) for significantly less cost than you’d pay for most small form factor PCs.

27
Feb
20

Bob’s Fury Update: Bug Hunting

I’ve been doing some coding on Bob’s fury lately, basically making adjustments and making code faster in the hope that I could make it work well on a 286 class machine. I have been using dosbox to develop and test, but this doesn’t fully test the compatibility or stability of software as dosbox has its own quirks and does not behave exactly as real hardware does. This is where my old Microbyte 386sx computer steps in, here’s a photo from when I first bought it.

It has been very useful for performance testings as it has a turbo feature that is software controlled. You can not only toggle the CPU speed with a key stroke, but you can set the slower speed in the BIOS configuration. This has allowed me to test with the machine running at its stock 20Mhz as well as a slower speed, I’ve used 10Mhz for my testing as a rough equivalent of many 286 machines. The testing I was able to do has shown that my game should be playable on a 286 depending on the video mode. CGA and VGA both have acceptable speed for game play, whilst EGA is marginal.

The testing did however uncover a rather annoying and difficult to squish bug. If I have the sound turned on (PC speaker is all this machine supports) the system will freeze when a game event that plays the explosion sound happens. Hunting bugs such as this are difficult as there is little feedback about the potential causes. It sounds like the code supporting the PC speaker should be at fault, so that’s where I began the search for the bug.

For the PC speaker I found a support library many years ago that allowed you to use the music macro language used by the play statement in GWbasic and QBasic. It hooks interrupt 1Ch (the system timer interrupt) to update the state of the PC speaker. Whilst I haven’t had any previous issues I wondered if there was a fault that could cause the crash. At first I wondered if using floating point instructions could have been the cause. The library has a small section using floating point to determine the number of ticks a note should last. On a system such as the 386sx without a FPU such instructions cause an interrupt so that emulation in software can take over. This interrupt within an interrupt was what I thought may be the cause.

So I constructed a test program hooking the same interrupt and performing a series of floating point calculations as a test, this didn’t yield the result I’d hoped as the test program worked fine. So I then wondered if the 386 was getting another type of problem that would cause an unwanted interrupt. So I copied sections of code from the library into the test program to run in a normal procedure that would show run-time error messages and debug information I could use. No run-time errors appeared and the results of the required calculations appeared to be correct.

I have a few ideas left to test, but I’m left with quite a puzzle regarding the cause. This does illustrate the need for testing on actual hardware, it’s usually better to test on many machines. Unfortunately I don’t have a large supply of 286 and 386 class machines, although I have a few I may be able to repair. I need to test on another machine because there could be something specific in the design of the Microbyte machine that isn’t compatible and is causing the issue.




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's Vintage Computing, Tech & Scale RC Blog

Random mutterings on retro computing, old technology, some new, plus radio controlled scale modelling.

ancientelectronics

retro computing and gaming plus a little more

Retrocomputing with 90's SPARC

21st-Century computing, the hard way