http://GameProgrammer.Com

Programming

GP Mailing List
     Thread Index
     Date Index

ATXGPSIG List
     Thread Index
     Date Index

Google
>

Home

Wise2Food



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mode 13h



To set a palette register...

output index byte to 0x3C8
output red byte to 0x3C9
output green byte to 0x3C9
output blue byte to 0x3C9

To get a palette register...

output index byte to 0x3C7
read red byte from 0x3C9
read green byte from 0x3C9
read blue byte from 0x3C9

Just got em the wrong way around :0)

Seeya,
- Don

-----Original Message-----
From: Tommi Pirinen <tommi.pirinen@dlc.fi>
To: gameprogrammer@gameprogrammer.com <gameprogrammer@gameprogrammer.com>
Date: 08 September 1999 17:02
Subject: Re: Mode 13h


>for some reason most of the modern compiles compile this code but it
doesn't
>work.
>and actually  faster method than y*320 is (y<<6)+(y<<8) but that isn't
>necessary for modern computers they are too fast anyways.
>And for some compilers it has to be unsigned char far. and color must be
>unsigned char (0 - 255).
>about the outportb you use. isn't 0x3C9 Palette address.  so writing
>anything to that address will change the value for that palette index
(which
>is set via 0x3c7 I think)
>correct me if I'm wrong as I'm typing this in a bit hurry and don't have
>time to check the information.
>--Tommi Pirinen
>----- Original Message -----
>From: Nick Hill <nikhilwiz@yahoo.com>
>To: <gameprogrammer@gameprogrammer.com>
>Sent: Wednesday, September 08, 1999 5:27 AM
>Subject: Re: Mode 13h
>
>
>> make a pointer to 0xA000
>> unsigned char *VidMem=0xA000. This makes a pointer to tha vid. mem.
>> Mode 13h is a linear buffer where 1 byte represents one pixel. u can
>> plot a pixel by writing the color of tha pixel to tha particular mem.
>> loc. Since the data in the vid. mem. start from (0,0) and proceeds
>> along tha row, the first 320 bytes represents tha first row., u get tha
>> idea. so tha formula to calc. tha byte at (x,y) on screen will be :
>>
>> pos=y * 320 + x;
>> VidMem[pos]=color;
>>
>> where color is tha color of tha pixel u wanna plot. Keep it under 255,
>> as Mode 13h s'portz only that much. thazz why tha data type on VidMem
>> also is defined as unsigned char... so that u wont end up writing
>> NEthin' oth' than 0-255. Hope this helped.
>>
>> Nikhil.
>>
>> --- Peter Peterssen <getoutnow@Hotmail.com> wrote:
>> > Hello..
>> >
>> > Mode 13H. Wow. Then, perhaps you can tell me how the
>> > heck I draw a dot on
>> > the screen like X and Y ?
>> >
>> > I do call 0xA0000 and the use the..
>> > outportb(0x3c9, red);
>> > outportb(0x3c9, green);
>> > outportb(0x3c9, blue);
>> >
>> > .. for the background layout and then ..
>> >
>> > b= 0;
>> > pokeb(0xa0000, B,30)
>> >
>> > .. for the actual dot.
>> >
>> > This doensnt work unless i add 1 to red OR green OR
>> > blue. ( I dont see the
>> > dot on the screen).
>> >
>> > So, as you see Im totaly lost and really dont get
>> > the whole thing. Do you
>> > have an example how to structure something?
>> >
>> > ______________________________________________________
>> > Get Your Private, Free Email at
>> > http://www.hotmail.com
>> > =================================================================
>> > To SUBSCRIBE or UNSUBSCRIBE please visit
>> > http://gameprogrammer.com/mailinglist.html
>> >
>>
>> __________________________________________________
>> Do You Yahoo!?
>> Bid and sell for free at http://auctions.yahoo.com
>> =================================================================
>> To SUBSCRIBE or UNSUBSCRIBE please visit
>> http://gameprogrammer.com/mailinglist.html
>
>=================================================================
>To SUBSCRIBE or UNSUBSCRIBE please visit
>http://gameprogrammer.com/mailinglist.html
>
>


=================================================================
To SUBSCRIBE or UNSUBSCRIBE please visit
http://gameprogrammer.com/mailinglist.html