PDA

View Full Version : برنامه ای در مورد پالت رنگ در زبان c



hani bageri
شنبه 03 دی 1384, 14:35 عصر
من برنامه ای میخواهم که پالت رنگ زبان c را از 16 رنگ بیشتر کند؟
پروژه مهمی است
کمکم کنید

aakh1361
شنبه 03 دی 1384, 23:56 عصر
شما باید به مد 13h سویچ بشید تا بتونید به پالت دسترسی داشته باشید

hani bageri
یک شنبه 04 دی 1384, 00:03 صبح
اگر میشود بیشتر توضیح بدهید

aakh1361
یک شنبه 04 دی 1384, 02:16 صبح
متاسفانه زیاد در مورد برنامه نویسی پالت چیزی نمی دونم

PalizeSoftware
یک شنبه 04 دی 1384, 02:36 صبح
پالت برنامه‌نویسی خاصی نداره. منتها چیزی که باید توجه داشت این هست که هر مدی (گرافیک یا متن) تعداد رنگ‌های خاص خودش رو داره و نمیشه تغییر داد. بقول دوستمون در مد 13h شما با 256 رنگ روبرو هستید.
و این نکته که پالت مربوط به یک مد رو میشه تغییر داد. یعنی بجای رنگ آبی و ... می‌تونی آرایش خاص خودتون رو داشته باشید. هر رنگ از سه مولفه قرمز، سبز و آبی ساخته میشه که بسته به مد رنگی تعداد بیت‌ها تغییر می کنه. جدول زیر رو ببینید(AL=10 و AL=15(:


AH=10: EGA/VGA BIOS


AL= 0: Set Palette Register
BL= Palette register 0..15
BH= Palette register value 0..63 :
rgbRGB
= 0 00 000000 black
= 1 01 000001 blue
= 2 02 000010 green
= 3 03 000011 cyan
= 4 04 000100 red
= 5 05 000101 magenta
=14 20 010100 brown
= 7 07 000111 white
=56 38 111000 dark gray
=57 39 111001 light blue
=58 3A 111010 light green
=59 3B 111011 light cyan
=60 3C 111100 light red
=61 3D 111101 light magenta
=62 3E 111110 yellow
=63 3F 111111 bright white


AL= 1: Set Border Register
BH= border color 0..63


AL= 2: Set Palette and Border Registers
ES:DX->17 byte table of values
0-15: values (0..63) for registers
16: value (0..63) for border


AL= 3: Select Blink or Background
BL= 0: no blink, 16 background colors
= 1: blink, 8 background colors


AL= 7: Read Palette Register
BL= palette register no. 0..15
BH=palette register value 0..63

AL= 8: Read Border Register
BH=border color 0..63

AL= 9: Read Palette and Border Registers
ES:DX->17 byte table of values

AL=10h: Set DAC register color
BX= register 0..255
DH= 6 bit red value
CH= 6 bit green value
CL= 6 bit blue value


AL=12: Set Multiple DAC colors
BX= first register 0..255
CX= no. of registers 1..256
ES:DX->table of RGB values (6 bit)
3 bytes for each register: r,g,b,


AL=13: Set DAC Page Mode
BL,BH=0,0: 4 pages, 64 registers
=0,1: 16 pages, 16 registers
=1,page (0..3/0..15)


AL=15: Read DAC Color
BX= register
DH= 6 bit red value
CH= 6 bit green value
CL= 6 bit blue value

AL=17: Read Multiple DAC colors
BX= initial register
CX= no. of registers
ES:DX->table for values
ES:DX table filled with values

AL=1A: Get DAC Page Configuration
BH= current page
BL= current mode
= 0: 4 pages, 64 registers
= 1: 16 pages, 16 registers

AL=1B: Convert DAC colors to greys
BX= initial register
CX= no. of registers