0% found this document useful (0 votes)
25 views30 pages

Recovered

The document discusses DOS and BIOS interrupts which are used to perform functions like displaying data and reading keyboard input, describing how interrupts identify the interrupt type in register AH and provide extra required information; it also covers video programming methods like MS-DOS level access using INT 21h, BIOS level access using INT 10h, and direct video access to video RAM.

Uploaded by

mahmoudsaeb10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views30 pages

Recovered

The document discusses DOS and BIOS interrupts which are used to perform functions like displaying data and reading keyboard input, describing how interrupts identify the interrupt type in register AH and provide extra required information; it also covers video programming methods like MS-DOS level access using INT 21h, BIOS level access using INT 10h, and direct video access to video RAM.

Uploaded by

mahmoudsaeb10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 30

DOS and BIOS Interrupts

 DOS and BIOS interrupts are used to


perform some very useful functions, such
as displaying data to the monitor, reading
data from keyboard, etc.
 They are used by identifying the interrupt
option type, which is the value stored in
register AH and providing, whatever extra
information that the specific option
requires.

1
Video Programming
When an application program needs to write characters on the screen
in text mode, it can choose between three types of video output:
 MS-DOS-level access:
Any computer running or emulating MS-DOS can use INT 21h to write
text to video display.
 BIOS-level access:
Characters are output using INT 10h function, known as BIOS
services. This executes more quickly than int 21h, and permits the
control of text color.
 Direct video access:
Characters are moved directly to video RAM (screen buffer), so the
execution is instantaneous.

2
Screen features
• 25 rows (0-24) and 80 columns (0-
(0,79)
79)
(0,0)

(24,0) (24,79)
Screen Buffer
 The screen buffer begins at B800:0000
and it has some rows and columns.
 Number of columns is usually 80.
 Number of rows can be 25 or 40 in most
cases.
 Each line on screen takes 160 bytes (80 x
2 byte for CHARACTER + ATTRIBUTE).

4
Display Modes
Monitors can display both text and graphics and have
different techniques and memory requirements for each.
Consequently, video adapters have two display modes:
text and graphics.
 In text mode, the screen is divided into columns and rows, typically 80
columns by 25 rows, and a character is displayed at each screen position
(character cell).
 In graphics mode, the screen is again divided into columns and rows, and
each screen position is called a pixel (short for picture element). A picture
can be displayed by specifying the color of each pixel on the screen.
Text Modes
 Mode Description Adapters
3 80 x 25 16-color text VGA (most frequently used mode for text
display) Graphics Modes
 Mode(hex) Description Adapters
12 640 x 480 4 color VGA 13 320 x 200 256 color VGA

Video Display Addresses


B800:0000h Standard display address for text mode
5
BIOS Interrupt 10H
 Option 0H – Sets video
mode.
 Registers used:
 AH = 0H
 AL = Video Mode.
 3H - CGA Color text of 80X25
 7H - Monochrome text of 80X25
 Ex:
 MOV AH,0
 MOV AL,7
 INT 10H

6
BIOS Interrupt 10H
 Option 2H – Sets the cursor to a specific
location.
 Registers used:
 AH = 2H
 BH = 0H selects Page 0.
 DH = Row position.
 DL = Column position.

7
BIOS Interrupt 10H
 Ex:
 MOV AH,2
 MOV BH,0
 MOV DH,12
 MOV DL,39
 INT 10H

8
BIOS Interrupt 10H
 Option 6H – Scroll window up. This
interrupt is also used to clear the screen
when you set AL = 0.
 Registers used:
 AH = 6H
 AL = number of lines to scroll.
 BH = display attribute.
 CH = y coordinate of top left.
 CL = x coordinate of top left.
 DH = y coordinate of lower right.
 DL = x coordinate of lower right.

9
BIOS Interrupt 10H
 Clear Screen Example:
 MOV AH,6
 MOV AL,0
 MOV BH,7
 MOV CH,0
 MOV CL,0
 MOV DH,24
 MOV DL,79
 INT 10H

 The code above may be shortened by


using AX, BX and DX registers to move
word size data instead of byte size data.
10
BIOS Interrupt 10H
 Option 7H – Scroll window down. This
interrupt is also used to clear the screen
when you set AL = 0.
 Registers used:
 AH = 7H
 AL = number of lines to scroll.
 BH = display attribute.
 CH = y coordinate of top left.
 CL = x coordinate of top left.
 DH = y coordinate of lower right.
 DL = x coordinate of lower right.

11
Practice/Lab
4. Modify your code so that it performs the following
tasks:
- Clear screen
- Set cursor to the middle of screen Display the characters
(5) in: CHAR_TBL DB ‘A’ ,’B’, ’C’, ’D’, ’E’
on the middle of the screen
5. Compile and run your code

12
13
14
15
BIOS Interrupt 10H
 Option 8H – Read a character and its
attribute at the cursor position.
 Registers used:
 AH = 8H and returned attribute value.
 AL = Returned ASCII value.
 BH = display page.

16
BIOS Interrupt 10H
 Option 9H – Write a character and its
attribute at the cursor position.
 Registers used:
 AH = 9H.
 AL = ASCII value.
 BH = display page.
 BL = attribute.
 CX = number of characters to write.

17
Attribute Definition
Blinking Background Intensity Foreground
D7 D6 D5 D4 D3 D2 D1 D0

 Monochrome display attributes


 Blinking
 D7 = 0 - Non-blinking
 D7 = 1 - Blinking
 Intensity
 D3=0 - Normal intensity
 D3=1 - Highlighted intensity
 Background and foreground
 D6 D5 D4 and D2 D1 D0
 White = 0 0 0
 Black = 1 1 1
18
Attribute Definition
B ackground Fore ground
B linking R G B Inte ns ity R G B
D7 D6 D5 D4 D3 D2 D1 D0

I R G B Color
 Color display attributes 0 0 0 0 B lack
 Blinking 0 0 0 1 B lue
0 0 1 0 Gre e n
 D7 = 0 - Non-blinking 0 0 1 1 Cyan
 D7 = 1 - Blinking 0 1 0 0 Re d
 Intensity 0 1 0 1 M age nta
0 1 1 0 B rown
 D3=0 - Normal intensity
0 1 1 1 White
 D3=1 - Highlighted 1 0 0 0 Gray
intensity 1 0 0 1 Light blue
 Background and 1 0 1 0 Light gre e n
foreground 1 0 1 1 Light cyan
1 1 0 0 Light re d
 D6 D5 D4 and D2 D1 D0 1 1 0 1 Light mage nta
 RGB values defined by 1 1 1 0 Ye llow
the table to the right. 1 1 1 1 High inte nsity white
19
20
DOS Interrupt 21H
 Option 1 – Inputs a single character from
keyboard and echoes it to the monitor.
 Registers used:
 AH =1
 AL = the character inputted from keyboard.

 Ex:
 MOV AH,1
 INT 21H

21
DOS Interrupt 21H
 Option 2 – Outputs a single character to
the monitor.
 Registers used:
 AH =2
 DL = the character to be displayed.

 Ex:
 MOV AH,2
 MOV DL,’A’
 INT 21H

22
INT 21h/ 01H and 02H
• Input a character
– Step 1: Set AH =01H
– Step 2: : Call INT 21H to display the character
– Step 3: The input character is saved in AL
• To display the entered character
– Step 1: Set AH=02H
– Step 2: Load the character from AL to DL
– Step 3 Call INT 21H to display the
character
23
Int 21h/1h 2h

24
Example
reading a characterPrompt •

25
26
DOS Interrupt 21H
 Option 9 – Outputs a string of data,
terminated by a $ to the monitor.
 Registers used:
 AH =9
 DX = the offset address of the data to be
displayed.
 Ex:
 MOV AH,09
 MOV DX,OFFSET MESS1
 INT 21H

27
DOS Interrupt 21H
 Option 0AH – Inputs a string of data from
the keyboard.
 Registers used:
 AH = 0AH
 DX = the offset address of the location where
string will be stored.
 DOS requires that a buffer be defined in
the data segment. It should be defined as
follows:
 1st byte contains the size of the buffer.
 2nd byte is used by DOS to store the
number of bytes stored. 28
DOS Interrupt 21H
 Ex:
 .DATA
 BUFFER1 DB 15,?,15 DUP (‘$’)
.
.
 MOV AH,0AH
 MOV DX,OFFSET BUFFER1
 INT 21H

 Assume “Go Tigers!” was entered on the


keyboard.
 BUFFER1 = 15,10,’Go Tigers!’,CR,$, $, $, $

29
DOS Interrupt 21H
 Option 4CH – Terminates a process, by
returning control to a parent process or to
DOS.
 Registers used:
 AH = 4CH
 AL = binary return code.

 Ex:
 MOV AH,4CH
 INT 21H

30

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy