Scor­pio News

  

July–September 1987 – Volume 1. Issue 3.

Page 58 of 67

the newer processors all contain the 8086 instruction set as a sub-set of their own instructions, and the new instructions are primarily (but not solely) concerned with extended (over 1 Mbyte) addressing modes. The book falls down on the subject of the segment registers and how these are programmed (I still occasionally have trouble with these as the numbers which magically turn up is the registers tend to have no relation to numbers I told them, or expected them to contain). I’ve mostly got this sorted out with the aid of the examples in the Microsoft MASH (Assembler) Manuals and the Morten book, but they still catch me by surprise every now and then. When I’ve got this aspect fully sorted, then maybe I’ll revamp the ‘Dodo’s Guide to Z80 Assembler’, you know, the thing I wrote all those years back, turn it into the ‘Dodo’s Guide to 8086 Assembler’, and see if this mag. will republish it.

IBM Compatibility Problems

The problem with IBM compatibility all stems from the fact that IBM from the outset allowed direct memory addressing to the screen RAM and the use of direct BIOS calls. This, of course, completely blows the idea that all I/O should be done through the DOS and therefore be machine independent, as it firmly fixes the hardware to a certain form. I’m quite sure this was not Microsoft’s intention, and seems a step backwards.

Many of us are aware on the incompatibilities which come about by trying to transport CP/M software from machine Brand X, where the software rules have been broken and direct screen and BIOS addressing has been allowed, to machine Brand Y, where the I/O and BIOS are at different addresses. One of the sneakier tricks of a certain piece of early software, which was written for the IBM alone, was to make it look at the bog inning of the BIOS, where the message ‘IBM CORP. (C) 1981’ is held. If the software didn’t find the message, it wouldn’t go. One entrepreneurial type soon got round that one in his clone by including the message ‘NOT IBM CORP. (C) 1981’ in his BIOS starting four bytes to the left. After that, attempts to make software machine exclusive seem to have ceased. The new Microsoft operating system, OS2 has the same publicly declared intention that a11 I/O will take place through the DOS itself, and Microsoft say that they have made it next to impossible to use direct addressing effectively. We shall see; and also wait to see how long it takes Big Blue to get round that one.

Back to the Books

So given that the DOS, the BIOS and the hardware are all much more closely woven together than in a CP/M machine, what are the most useful references? MS-DOS, the BIOS and hardware architecture related software points are very adequately covered by Peter Norton in his book “The Programmer’s Guide to the IBM PC”. This book unashamedly covers IBM machines only, but points out that most of what is said applies to a good clone. The book covers all versions of DOS from version 2.0 (with passing reference to DOS 1) to version 3.2, the differences, the enhancements and the bugs. IBM appear to have made fewer B1OS’s than Microsoft have made versions of MS-DOS, and the book covers the different versions adequately. It also has thorough extensions related to the greater facilities available within the XT and AT BIOS’s. It also notes the differences and implications of different hardware / DOS / BIOS permutations, although these can get quite hairy. It can not and does not cover all possible permutations, but suggests a ‘try it and see’ approach to some of the weirder perms. The information on the BIOS and DOS is adequate to allow you to spot ‘compatibility’ problems without resorting to the source listings in the IBM Technical Manuals.

Another book, the title of which I forget, as I’ve loaned my copy to someone – something like ‘Advanced MS-DOS’ by the Microsoft Press, cowers the inner naughties of the various versions of DOS, including lumps of source code and bug lists (very useful). This book is confined to MS-DOS and as such is not IBM dependent.

Page 58 of 67