Thanks dimitry !! but these are just specific interrupt numbers.
i want to know differences if any between BIOS and DOS interrupts like their calling, working, Interrupt Vector Table etc.
please reply.
Thanks.
Main Topics
Browse All TopicsWhat is difference between DOS Interrupts and BIOS Interrupts?
Please explain 3-4 differences.
thanks.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Your question is too generic. Do you have specific question ?
Interrupt number like 21H defines specific place in Interrupt Vector Table: 0x21 x 4 = 0x84
BIOS "interrupts" provide basic Input / Output services.
DOS "interrupts" provide OS services.
For example DOS services have file access but BIOS services provide just raw disk access.
thanks dimitry !!
yes, it is generic as i want some general differences in both like the one you have given above :
>>BIOS "interrupts" provide basic Input / Output services.
DOS "interrupts" provide OS services.
any more such differences ? and
do both type of interrupts have the Interrupt service routine address listed in interrupt vector table.
please explain
thanks.
Well in general it is described pretty well here:
http://en.wikipedia.org/wi
http://www.nvg.ntnu.no/bbc
This is not a completely fair question since the rules of the road (definitons and functions) change regularly. Interrupts originally were hardware oriented, a very immediate need to attend to timely information electronically. Think of a clock that depends on being on time by getting its input in the form of a pulse. If the clock is so busy that it misses some of those pulses then it will gradually lose time. So for the hardware interrupts, they mandate the getting of attention while the information is still available. This could be the gathering of the latest character that came in through a modem before the next character in the stream arrives. Like the clock example, if computer is too busy, the receipt of the information from the modem will end up missing a few characters. Now picture this as coming up from below, the CPU actually changing the address of the next instruction all on its own.
The opposite effect is top-down, where a program decides it needs to interfere with regular processing and hurry on to process something quickly. This can be something like sending anther character to the modem (or monitor etc).
The nature of both is to ensure that no other process will interfere with the exact sequence of code until permitted, which should be promptly after performing a 'save state' operation, which in Assembly Language is essentially preserving the content of the registers that the program intends to use, and any other data item needed. Once that is done then it will permit other processes to interrupt the rest of the routine. One key ingredient here is the use of stacks.
dimitry > Let's use word "services" instead of interrupts.
:-))
Good idea, they are not much more than subroutines, some of which call other subroutines (a waste). Just not to be confused with the Services concept used by XP
> BIOS "interrupts" provide basic Input / Output services.
By definition (I/O is input/output)
bbk_doll > DOS "interrupts" provide OS services.
OK
> What is difference between DOS Interrupts and BIOS Interrupts?
It is actually not all that simple, if we ignore Windows an address older DOS, which was actually further fractionalized, with maybe four such categories, which varied by version level.
There are programs on the BIOS chip. There are also two files used by the OS that have code. One can be called something like IO.SYS or BIOS.SYS etc, and the other as DOS.SYS or MSDOS.SYS etc. Those may be of what you refer to in the question. But their content changed over time (version). In theory these three should have been layered, from bottom up in the order just presented, but MS had ever had problem following rules and organizing in layers. One file eventually became text based (not binary code).
Another issue was whether DOS was resident or not. Also revised from version to version, when DOS would start up another program, to make more memory available it would remove much of its own code from RAM. In theory this ought to be the highest level parts of DOS, such as interpretting whether or not the user is requesting the processing of a 'DIR' command. That would not be needed any longer since the input from keyboard is transferred to the new program. I am not sure that this applies to the question as asked, but it is key part of same process, such as code layering.
> Please explain 3-4 differences.
Sounds like attempt for a question in a classroom setting. In review, I can only now think of one, like dimitry put it:
> DOS services have file access but BIOS services provide just raw disk
The layering idea of high to low level.
> differences if any between BIOS and DOS interrupts like their calling, working, Interrupt Vector Table etc.
Well, another difference could possibly be the direction of the call, whether from low to high or from high to low. For low-level access, the vector table has to immediately get to a routine to preserve data. With the ones for high to low calling, the DOS ones require user to preserve their own registers and data before calling the interrupt. That helps to minimize the duration of the time that interrupts are prohibited.
Maybe a third difference could be that BIOS is always self contained code, while DOS may be code that call other code that calls other code, including capability of one SW interrupt to invoke another. That is not done for low level IO, which does not take time4 to repetetively save the state of the machine.
How about a 4th difference being that all of the BIOS must be constantly resident, but some of DOS can be transient (either memory resident or not, depending on circumstance).
On the issue or order of precedence, the BIOS chip being lowest level, it does not know what a filesystem is. Another difference is the calling order, where each calls, loads, invokes the next one in sequence of low to high level. Once it completes boot code, it goes to the IO system which can get configuration information from user's Config file to complete the driver update process, then it turns system over to DOS which can get user information from AUTOEXEC. This can be a 5th difference. See link and an extract below:
http://www.bitzenbytes.com
IO.SYS contains resident device drivers, the basic MS-DOS BIOS extensions initialization module, and the MS-DOS system initialization module, SYSINIT. Both initialization modules are discarded after use. The device drivers remain resident.
...
SYSINIT opens CONFIG.SYS if it exists. CONFIG.SYS is read into high memory and converts all characters to uppercase. The file contents are read to determine the system parameters that will be used. If a parameter setting is not specified in CONFIG.SYS, the default value is set. The data structures built to specification are stored in memory after the MSDOS kernel. SYSINIT processes the CONFIG.SYS parameters sequentially. "Installable" device drivers are loaded and initialized one at a time. SYSINIT then closes all open files and opens the character deviced, CON, PRN (LPT1), and AUX (COM1). SYSINIT loads the command shell using the MSDOS EXEC function.
The typical basic shell under DOS is COMMAND.COM or CLI (command line interface) and it consists of a resident portion, an initialization portion and a transient portion. The initialization module is called once by COMMAND.COM and it moves the transient portion of the command shell to high memory. Next it processes AUTOEXEC.BAT and returns control to the resident portion of COMMAND.COM. Under 16 bit Windows 3.XX, COMMAND.COM continues as the basic shell with Windows running as an operating environment under DOS.
<etc>
Business Accounts
Answer for Membership
by: dimitryPosted on 2007-01-06 at 15:05:12ID: 18259728
Let's use word "services" instead of interrupts.
BIOS services are "installed" by BIOS before DOS (it hooks next interrupts):
INT 10H Video services
INT 11H Equipment list
INT 12H Conv. memory size
INT 13H Disk I/O
INT 14H Serial port I/O
INT 15H AT services; APM
INT 16H Keyboard I/O
INT 17H Printer I/O
INT 18H ROM-BASIC
INT 19H Bootstrap
INT 1aH Time I/O; MRCI hook
DOS "services" are installed by DOS (DOS hooks specific interrupts):
INT 20H Terminate a program
INT 21H DOS Services
INT 22H Terminate address
INT 23H Control-Break address
INT 24H Critical Error Handler address
INT 25H/26H Absolute Disk Read/Write
INT 27H Terminate but Stay Resident
INT 28H DOS Idle (safe to pop up)
INT 29H DOS Internal Fast Screen Write
INT 2eH Perform DOS Command
INT 2fH Multiplex (DoubleSpace, spooler, TSR control, other APIs)
INT 31H DPMI DOS Protected Mode Interface Services