Beginner Question Question submitted by (15 June 2000) |
Return to The Archives |
I have been programming in C++ for a couple years for school, and i have been wanting to break into some basic game design. I have text adventures down, no graphics!! I have looked on the web and have learned I need to set the video mode to13h for a basic 256 display. The problem is I can't seem to find how to do this in Borland C++, can anyone help me? | ||
I'm not familiar with Borland's interface to assembly, but it should look
something like this: __asm { mov ax,0x13; int 0x10 }; To return to text mode, use the following: __asm { mov ax,0x3; int 0x10 }; // Note the change from 0x13 to 0x3 Once in this mode, you'll want to address memory starting at 0xA0000. The first byte is the upper-left pixel, the next byte is the pixel to the right of the upper left pixel, etc. As you reach the end of a scanline of pixels (320 bytes in this case) the bytes keep going, but the pixels wrap around to the start of the next scanline. To set a specific pixel, do this: char far *pixelAddress = (char far *) 0xA0000 + (pixel_y * 320 + pixel_x); ...pixel_x is the x-coordinate (from left to right) of the pixel, and pixel_y is the y-coordinate (from top to bottom) pixelAddress points to the address of the pixel you want to reference. The default palette (which maps the 8-byte values you store at these addresses to a specific color) uses the value 0xf for white. I only mention this, because the screen defaults to black, and if you fill it with zeros, you won't see anything. Response provided by Paul Nettle |
||
This article was originally an entry in flipCode's Ask Midnight, a Question and Answer column with Paul Nettle that's no longer active. |