Tuesday, November 20, 2007

IBM PC Assembly Language Tutorial 7

IBM PC Assembly Language Tutorial 7

Learning about BIOS and the hardware

You can't do everything with DOS calls. You may need to learn

something about the BIOS and about the hardware itself. In this, the

Technical Reference is a very good thing to look at.

The first thing you look at in the Technical Reference, unless you are

really determined to master the whole ball of wax, is the BIOS

listings presented in Appendix A. Glory be: here is the whole 8K of

ROM which deals with low level hardware support layed out with

comments and everything.

In fact, if you are just interested in learning what BIOS can do for you,

you just need to read the header comments at the beginning of each

section of the listing.

BIOS services are invoked by means of the INT instruction; the BIOS

occupies interrupts 10H through 1FH and also interrupt 5H; actually,

of these seventeen interrupts, five are used for user exit points or

data pointers, leaving twelve actual services.

In most cases, a service deals with a particular hardware interface;

for example, BIOS interrupt 10H deals with the screen. As with DOS

function calls, many BIOS services can be passed a function code in

the AH register and possible other arguments.

I am not going to summarize the most useful BIOS features here; you

will see some examples in the next sample program we will look at.

The other thing you might want to get into with the Tech reference is

the description of some hardware options, particularly the asynch

adapter, which are not well supported in the BIOS. The writeup on

the asynch adapter is pretty complete.

Actually, the Tech reference itself is pretty complete and very nice as

far as it goes. One thing which is missing from the Tech reference is

information on the programmable peripheral chips on the system

board. These include

the 8259 interrupt controller

the 8253 timer

the 8237 DMA controller and

the 8255 peripheral interface

To make your library absolutely complete, you should order the

INTEL data sheets for these beasts.

I should say, though, that the only I ever found I needed to know

about was the interrupt controller. If you happen to have the 8086

Family User's Manual, the big book put out by INTEL, which is one of

the things people sometimes buy to learn about 8086 architecture,

there is an appendix there which gives an adequate description of

the 8259.

No comments: