Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
The Amstrad PC1512 (and PC1640) preserved registers across BIOS calls. This fact was clearly documented in the Amstrad Technical Reference Manual.
What wasn't clearly documented was that, in doing this, it differed from every other IBM PC (and compatible) BIOS except Compaq's.
As a result, when I was first writing games, we shipped a game to the publisher which, as part of initialising the display when the game started, would make a BIOS call with registers that had been modified by the previous BIOS call, with the result that it switched the CGA card from graphics to text mode, thereby totally buggering things up
I could only debug it by walking up to the Tandy shop and asking the salesman to let me check it on one of their display models. Furthermore, I had to make sure that the fix occupied the same number of bytes as the original code, for easy patching of the disks that had already been duplicated
It didn't take long to sort it out - I just replaced the BIOS-calling code with code that hit the hardware directly, went back to Tandy to check it, and shipped the patch.
On the bright side, the offending code had been written by another chap before I started at the company - I'd taken the project over when I was hired
The 1512 had a really hideous implementation of CGA... my eyes have never been the same since.
Comment