We help IT Professionals succeed at work.

Writing to a different video page

pneves
pneves asked
on
Medium Priority
365 Views
Last Modified: 2008-03-10
How do I write to page 1, for instance, in text mode using video mode 3 and directly accessing the video memory?
In this mode video memory starts on 0xB800 I guess. But, if I write from this address I'll be writing to page 0 (as set by INT 10, AH=0x05). Documentation says there are four [0-3] available pages in this mode. I switched to page 1 using INT 10 - AH=0x05, but now how do I write to it? Shall I add an offset of 80X25 = 2000?
Comment
Watch Question

Commented:
INT 10 - function 05h actives the page you want to see in the screen not the page you want to write to, so of course you must add an offset (base adress is always B800h), but this is not 2000 but 4000 because each cell is represented by two bytes (ASCII code and ATTRIBUTE).

This is the formula in 80x25 mode:

offset = P * PageSize + Y * 160 + 2 * X + B

where P is the page (0-3).
      B = 0 if you want to write the ASCII code.
        = 1 if you want to write the attribute.
      PageSize = 80 x 25 * 2 = 4000.

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.