Rev 805 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download
єэштхЁёры№эр ярышЄЁр (atmuni16.act фю чрьхэ√ эр Єхыхёэ√х, skin16.act яюёых, soft16.act ё ь уъшьш ЎтхЄрьш тьхёЄю ўшёЄ√ї+3,2,2 тьхёЄю M):R,G,Bюёэютэ√х ЎтхЄр, ўЄюс√ ьюцэю с√ыю ёъюэтхЁЄшЄ№ тё╕ (ьюцэю юёЄртшЄ№ Єюы№ъю 0RGBW + 3 Єхыхёэ√ї ЎтхЄр? hue c,m,y сєфєЄ Єюы№ъю ё яюью∙№■ чрётхЄюъ):0,0,00,0,3 B (1,1,2 ь уўх)3,0,0 R (2,1,1 ь уўх)3,0,3 M (2,1,2 ь уўх) (3,2,1 фы 34n1) - чрьхэшЄ№ эр Єхыхёэ√щ 3,2,1? (фы ь уъшї 3,2,2)0,3,0 G (1,2,1 ь уўх)0,3,3 C (1,2,2 ь уўх) - чрьхэшЄ№ эр Єхыхёэ√щ 3,2,2?3,3,0 Y (2,2,1 ь уўх) - чрьхэшЄ№ эр Єхыхёэ√щ 2,1,1?3,3,3ёхЁ√х:2,2,21,1,1 (new)ъюЁЁхъЎш Єхэхщ:0,0,1 (new)0,1,0 (new)1,0,0 (new)ъюЁЁхъЎш чрётхЄюъ:3,3,2 (new)3,2,3 (new)2,3,3 (new)ъръ ъюэтхЁЄшЁютрЄ№ т эх╕?эєцэр ЄрсышЎр RGB->colorindex ш ЄрсышЎр colorindex->RGB (яю эхщ сєфхЄ фхырЄ№ё floyd-steinberg)р ъръ фхырЄ№ diamond? эрфю ъръ-Єю эрїюфшЄ№ RGB->4xcolorindex, р яюЄюь ьхцфє ¤Єшьш 4 ЎтхЄрьш ЄхъёЄєЁшЄ№р ъръ фхырЄ№ hires? эрфю ъръ-Єю эрїюфшЄ№ 4 ыєў°шї ЎтхЄр фы ърцфющ чюэ√ ш ўхЁхфютрЄ№ шї ўхЁхч ёЄЁюўъє? сєфєЄ яЁюсыхь√ ё чюэрьш, уфх хёЄ№ ў╕Ёэ√щ ш Ёъшх ЎтхЄр, эрфю сєфхЄ шьхЄ№ 2 ў╕Ёэ√їъръющ ЇюЁьрЄ їЁрэхэш ърЁЄшэъш т DOM? 24bit цшЁэю! 16bit? шыш 8bit схч фшЇхЁшэур ё єэштхЁёры№эющ ярышЄЁющърър єэштхЁёры№эр ярышЄЁр 256?р) RRRGGGBB?с) YYYYYUUVV?т) ЁрчсшЄ№ яю эрё√∙хээюёЄ ь (эр ATM тшфэю 3), эр ATM тшфэю 18/12/6 юЄЄхэъют (ёфхырхь 36, эю ъръ юъЁєуы Є№ ш фю 18, ш фю 12?), 7 ЁъюёЄхщ (тъы■ўр 0,W)saturation2 (эр ATM 18 hue): 36 hue * 5 volume (Ёхры№эю тшфэю 5)saturation1 (эр ATM 6 hue): 12 hue * 5 volume (Ёхры№эю тшфэю 1)saturation0 (эр ATM 1 hue): 1 hue * 5 volume (Ёхры№эю тшфэю 2)0W=247 ЎтхЄютяЁюсыхьр ё юъЁєуыхэшхь hue яЁш юЄюсЁрцхэшш т ATM схч фшЇхЁшэурўЄюс√ шьхЄ№ Єюўъш Єюўэ√ї ЎтхЄют ш яЁш ¤Єюь єьхЄ№ юъЁєуы Є№ юфэш ш Єх цх hue фю 18 ш фю 12, эрфю шьхЄ№ эхў╕Єэ√х уЁєяя√, эю юэш эх ьюуєЄ шьхЄ№ ёююЄэю°хэшх 2:3! Ёхры№эхх 3:4.5:їЁрэшь 54 hueъръ юъЁєуы Є№ фю 18 hue:0!,1),(2,3!,4),(5,6!,7),(8,9!,10),...ъръ юъЁєуы Є№ фю 12 hue:0!,1,2),(3,4(,)5,6),(7,8,9!,10,11),...ўЄюс√ юъЁєуы Є№ юфэш ш Єх цх hue фю 12 ш фю 6, эрфю ёююЄэю°хэшх 1:2, Ёхры№эхх 3:6їЁрэшь 36 hueъръ юъЁєуы Є№ фю 12 hue:0!,1),(2,3!,4),(5,6!,7),(8,9!,10),...ъръ юъЁєуы Є№ фю 6 hue:0!,1,2),(3,4,5,6!,7,8),(9,10,11,...їЁрэшь 18 hueъръ юъЁєуы Є№ фю 12 hue:0!),(1,2),(3!),(4,5),(6!),(7,8),(9!),(10,...у) ЁрчсшЄ№ яю эрё√∙хээюёЄ ь ш ЁъюёЄ ь (сюы№°шх ш ьры√х ЁъюёЄш шьх■Є ьхэ№°х hue), volume 0 ш 6 юЄфхы№эюэрё√∙хээюёЄхщ юёюсю ьэюую эх эрфю? фюсртшЄ№ Єюы№ъю х∙╕ юфэє ьрыюэрё√∙хээє■? эю ъръ х╕ юЄюсЁрцрЄ№ схч фшЇхЁшэур? ъръ эєыхтє■ (яхЁхїюф т ёхЁ√щ юс√ўэю эх ёЄЁр°хэ) шыш ъръ ёюёхфэ■■? шыш ыєў°х 2 ьрыюэрё√∙хээ√ї/*saturation4, volume5 (эр ATM 6 hue): 36 huesaturation4, volume4 (эр ATM 12 hue): 54 huesaturation4, volume3 (эр ATM 18 hue): 54 huesaturation4, volume2 (эр ATM 12 hue): 54 huesaturation4, volume1 (эр ATM 6 hue): 36 hue^^^^^^^^^ ¤Єю єцх 234!saturation3, volume5 (эр ATM 6 hue): 6 huesaturation3, volume4 (эр ATM 6 hue): 6 huesaturation3, volume3 (эр ATM 6 hue): 6 huesaturation3, volume2 (эр ATM 6 hue): 6 huesaturation3, volume1 (эр ATM 6 hue): 6 huesaturation2, volume5 (эр ATM ? hue): 6 huesaturation2, volume4 (эр ATM ? hue): 6 huesaturation2, volume3 (эр ATM ? hue): 6 huesaturation2, volume2 (эр ATM ? hue): 6 huesaturation2, volume1 (эр ATM ? hue): 6 huesaturation1, volume5 (эр ATM ? hue): 6 huesaturation1, volume4!(эр ATM ? hue): 6 huesaturation1, volume3 (эр ATM ? hue): 6 huesaturation1, volume2!(эр ATM ? hue): 6 huesaturation1, volume1 (эр ATM ? hue): 6 hue^^^^^^^^^^ ¤Єю х∙╕ 108!saturation0, volume5 (эр ATM 1 hue): 1 huesaturation0, volume4!(эр ATM 1 hue): 1 huesaturation0, volume3 (эр ATM 1 hue): 1 huesaturation0, volume2!(эр ATM 1 hue): 1 huesaturation0, volume1 (эр ATM 1 hue): 1 hue*//*saturation2, volume5 (эр ATM 6 hue): 6 hue?saturation2, volume4 (эр ATM 12 hue): 18 huesaturation2, volume3 (эр ATM 18 hue): 54 huesaturation2, volume2 (эр ATM 12 hue): 18 huesaturation2, volume1 (эр ATM 6 hue): 18 hue^^^^^^^^^^^^ ¤Єю єцх 114saturation2-, volume5 (эр ATM 6 hue): 6 huesaturation2-, volume4 (эр ATM 12 hue): 18 huesaturation2-, volume3 (эр ATM 18 hue): 18 huesaturation2-, volume2 (эр ATM 12 hue): 18 huesaturation2-, volume1 (эр ATM 6 hue): 6 hue^^^^^^^^^^ ¤Єю х∙╕ 66saturation1, volume5 (эр ATM 1 hue): 6 hue?saturation1, volume4 (эр ATM 1 hue): 6 huesaturation1, volume3 (эр ATM 1 hue): 6 huesaturation1, volume2 (эр ATM 6 hue): 18 huesaturation1, volume1 (эр ATM 1 hue): 6 hue^^^^^^^^^^ ¤Єю х∙╕ 42 (шЄюую єцх 222)saturation0+, volume5 (эр ATM 1 hue): 1 hue?saturation0+, volume4!(эр ATM 1 hue): 6 huesaturation0+, volume3 (эр ATM 1 hue): 6 huesaturation0+, volume2!(эр ATM 1 hue): 6 huesaturation0+, volume1 (эр ATM 1 hue): 6 huesaturation0, volume4+(эр ATM 1 hue): 1 huesaturation0, volume4!(эр ATM 1 hue): 1 huesaturation0, volume4-(эр ATM 1 hue): 1 huesaturation0, volume2+(эр ATM 1 hue): 1 huesaturation0, volume2!(эр ATM 1 hue): 1 huesaturation0, volume2-(эр ATM 1 hue): 1 hue0W=255 ЎтхЄют, эю ЎтхЄют сюы№°х тёхую эрфю эх яЁш ьръёшьры№эющ эрё√∙хээюёЄш, р яЁш яЁюьхцєЄюўэющ*/ЎтхЄют сюы№°х тёхую эрфю эх яЁш ьръёшьры№эющ эрё√∙хээюёЄш, р яЁш яЁюьхцєЄюўэющ (эю юЄюсЁрцрхь х╕ ъръ ьръёшьры№эє■, Є.ъ. т saturation1 Єюы№ъю 6 hue)чюэр saturation1 фюыцэр с√Є№ °шЁюър , ўЄюс√ т эх╕ яюярфрыю яюсюы№°х яшъёхыхщ (Є.х. ъръ с√ яЁшёєЄёЄтєхЄ saturation 1-, р Єю ш 1+ Єющ цх °шЁшэ√?)saturation2, volume5 (эр ATM 6 hue): 6 huesaturation2, volume4 (эр ATM 12 hue): 12 huesaturation2, volume3 (эр ATM 18 hue): 18 huesaturation2, volume2 (эр ATM 12 hue): 12 huesaturation2, volume1 (эр ATM 6 hue): 6 hue^^^^^^^^^^^^ ¤Єю єцх 54saturation2-, volume5 (эр ATM 6 hue): 6 huesaturation2-, volume4 (эр ATM 12 hue): 12 huesaturation2-, volume3 (эр ATM 18 hue): 54 hue (*3)saturation2-, volume2 (эр ATM 12 hue): 18 huesaturation2-, volume1 (эр ATM 6 hue): 6 hue^^^^^^^^^^ ¤Єю х∙╕ 96saturation1, volume5 (эр ATM 1 hue): 6 huesaturation1, volume4 (эр ATM 1 hue): 6 huesaturation1, volume3 (эр ATM 1 hue): 18 huesaturation1, volume2 (эр ATM 6 hue): 30 hue? (*5)saturation1, volume1 (эр ATM 1 hue): 6 hue^^^^^^^^^^ ¤Єю х∙╕ 66saturation0+, volume4+(эр ATM 1 hue): 1 huesaturation0+, volume4!(эр ATM 1 hue): 6 huesaturation0+, volume4-(эр ATM 1 hue): 6 huesaturation0+, volume2+(эр ATM 1 hue): 6 huesaturation0+, volume2!(эр ATM 1 hue): 6 huesaturation0+, volume2-(эр ATM 1 hue): 6 huesaturation0, volume4+(эр ATM 1 hue): 1 huesaturation0, volume4!(эр ATM 1 hue): 1 huesaturation0, volume4-(эр ATM 1 hue): 1 huesaturation0, volume2+(эр ATM 1 hue): 1 huesaturation0, volume2!(эр ATM 1 hue): 1 huesaturation0, volume2-(эр ATM 1 hue): 1 hue0 (volume0)W (volume6)=255 ЎтхЄют╠юцэю єЄюўэ Є№ Єюы№ъю тюъЁєу Ёхры№эю шёяюы№чєхь√ї 16 ЎтхЄют, р юёЄры№э√х ЎтхЄр - яЁюёЄю RRGGBBэю єЄюўэхэшх - ¤Єю 26 фюяюыэшЄхы№э√ї ЎтхЄют (ъєс 3x3x3)! (ъЁюьх Єхї, ъюЄюЁ√х эр яютхЁїэюёЄш, р эр яютхЁїэюёЄш 56 шч 64 ЎтхЄют, 14 шч 16)фы ёЄрэфрЁЄэющ ярышЄЁ√:т єуыє 8 ЎтхЄют - шї єЄюўэ ■Є яю 4 ЎтхЄр (шЄюую 32)эр ЁхсЁх 6 ЎтхЄют - шї єЄюўэ ■Є яю 12 ЎтхЄют (шЄюую 96)эр яютхЁїэюёЄш уЁрэш 0 ЎтхЄюттэєЄЁш 2 ЎтхЄр - шї єЄюўэ ■Є яю 26 ЎтхЄют (шЄюую 52)64+32+96+52 = 244фы ёЄрэфрЁЄэющ ярышЄЁ√ ёю ёь уў╕ээ√ьш ўшёЄ√ьш ЎтхЄрьш (+3,2,2 тьхёЄю M):т єуыє 2 ЎтхЄр - шї єЄюўэ ■Є яю 4 ЎтхЄр (шЄюую 8)эр ЁхсЁх 6 ЎтхЄют - шї єЄюўэ ■Є яю 12 ЎтхЄют (шЄюую 96)эр яютхЁїэюёЄш уЁрэш 1 ЎтхЄ - хую єЄюўэ ■Є 17 ЎтхЄют (шЄюую 17)тэєЄЁш 7 ЎтхЄют - шї єЄюўэ ■Є яю 26 ЎтхЄют (шЄюую 182)8+96+18+182 = 303 эхтючьюцэю! эрфю яхЁхэхёЄш 5 тэєЄЁхээшї ЎтхЄют эр уЁрэшsoftb16.act:0,0,0 01,1,2 b2,1,1 r3,2,2 R Єхыхёэ√щ1,2,0 g ЄЁрт эющ2,2,3 B? (2,3,1 G softc16.act) (3,2,1 O softd16.act фы Ёєср°хъ эр ърЁЄшэх)2,2,1 y3,3,3 WёхЁ√х:2,2,2 S1,1,1 sъюЁЁхъЎш Єхэхщ:0,0,1 b00,1,0 g01,0,0 r0ъюЁЁхъЎш чрётхЄюъ:3,3,2 YW3,2,3 MW (3,3,1 Y softe16.act фы ырья√ є фцхфр )2,3,3 CWт єуыє 2 ЎтхЄр (0,W) - шї єЄюўэ ■Є яю 4 ЎтхЄр (шЄюую 8)эр ЁхсЁх 6 ЎтхЄют (b0,r0,g0,YW,CW,Y) - шї єЄюўэ ■Є яю 12 ЎтхЄют (шЄюую 96)эр яютхЁїэюёЄш уЁрэш 3 ЎтхЄр (R,g,O) - шї єЄюўэ ■Є яю 17 ЎтхЄют (шЄюую 51)тэєЄЁш 5 ЎтхЄют (s,S,b,r,y) - шї єЄюўэ ■Є яю 26 ЎтхЄют (шЄюую 130)8+96+51+130 = 285 эхтючьюцэю! ьюцэю єсЁрЄ№ єЄюўэхэшх фы g? (Є.ъ. юэ юЄюЁтрэ) сєфхЄ 259ьюцэю тьхёЄю ¤Єюую єсЁрЄ№ єЄюўэхэш ё яютхЁїэюёЄш ЇшуєЁ√, Є.ъ. шї эхтючьюцэю эшъръ юЄЁшёютрЄ№шыш юёЄртшЄ№ Єюы№ъю Єюўъш тэєЄЁш ЇшуєЁ√ (or 64 ёЄрэфрЁЄэ√ї ЎтхЄр), яюыєўрхЄё 263ъръшх 7 єЄюўэ ■∙шї ЎтхЄют єсЁрЄ№? юъЁхёЄэюёЄ№ Y (3) ш юъЁхёЄэюёЄ№ яёхтфюЄюўъш r0+gx=g(0..9), y=b(9..0)R=9:1001001001 ;W000000001100000001111001001111 ;YW000000111100000011001001001101 ;Y (юъЁхёЄэюёЄ№ єсЁрэр)000000000000000000001001001001R=8:0000000001000000001100000001110000001111000001111100000111100000011110000000000000000000000000000000R=7:0000000001000000011100000011110000011110000001111000001111000000111100000000000000000000000000000000R=6:1001001001 ;CW000000011000000011101001011101000001110000001110001001111001000000000000000000001001001001R=5:0000000000000000110000000111000000111110000011110000011111000001111000001111100000000000000000000000R=4:0000000000000000000000000100000000110000000111100000011110000011111100001111100001111110000000000000R=3:1001001001000000000000000000001001001001000100000000111000001011101001011111000001101100001101011001 ;юъЁхёЄэюёЄ№ r0+g єсЁрэрR=2:0000000000000000000000000000000000000000001000000000110000000111000000011110000011111000001110110000 ;юъЁхёЄэюёЄ№ r0+g єсЁрэрR=1:0000000000000000000000000000000000000000000000000001000000000110000000111100000011110000001111100000R=0:1001001001000000000000000000001001001001000000000000000000001001001001110000000011100000001111001001эхфюёЄрЄюўэю Єхыхёэ√ї ЎтхЄют═єцэр ЄрсышЎр R5G5B5 -> index256 (чрщь╕Є 32K), ьюцэю R5G5B4? (16K)фы diamond т√уюфэю єЄюўэ Є№ эх т 3 Ёрчр, р т 4Єхыхёэ√щ ЎтхЄюяхЁхїюфэр яюЁЄЁхЄх эхчэръюьъш: 001 101 111 211 212 312 322 422 423 533 (534∙хър) 633 644 744 754(яыюїю) 854 864(яыюїю) 865 875(яыюїю) 975 976 986(яыюїю)эх їтрЄрхЄ (7.5 4.5 4) (8 5.5 4.5) (8.5 6.5 5) (9 7.5 6.5??? Photoshop эх эрїюфшЄ)эр фцхфрх: ... 432 532 542(яыюїю) 643 743 753 853 (863(яыюїю)) 960(єцрёэю, эрфю 963, эю эр ърЁЄшэъх Ёхры№эю ё ЁъюёЄ№■ єьхэ№°рхЄё чэрўхэшх B - шыш Єръ ёютярыш я Єэр °єьр)эх їтрЄрхЄ (5.5 3.5 2.5) (8.5 5.5 3)фшЇхЁшэу шч шэфхъёэ√ї ЎтхЄют т ¤ъЁрээ√х (сєЇхЁ ърЁЄшэъш EGA):уфх їЁрэшЄ№ ю°шсъє фы ёыхфє■∙хщ ёЄЁюъш? сєЇхЁ эр °шЁшэє ёЄЁюъш ърЁЄшэъш?фшЇхЁшэу Єюы№ъю яю уюЁшчюэЄрыш?init. r,g,b = 00.r,g,b += pal256[pixline[x]]1.эрщЄш ЎтхЄ c16 ёрь√щ сышчъшщ ъ r,g,b2.scrline[x]=c163.r,g,b -= rgb[c16] //чэръют√щ Ёхчєы№ЄрЄ4.x++;hl=pixline;??=scrline;?=pixline low;???=pixline step;bc=rgb (юэ цх рфЁхё ЄрсышЎ√ c16[rgb]) = %11RRRRRGGGGGBBBB, уфх RRRRR,GGGGG = 3..12 т эюЁьх (ьръё. ю°шсър = +-3??? ъ Єюьє цх, 10 чэрўхэшщ эхфюёЄрЄюўэю фы Єхыхёэ√ї) (яю єьє ю°шсър эх фюыцэр яЁхт√°рЄ№ +-6 яю ърцфющ юёш, фшрярчюэ чэрўхэшщ эрфю -6..+15, ЄрсышЎр 21x21x21 схч Єхыхёэ√ї=9261, ё Єхыхёэ√ьш ьюцэю єЄюўэшЄ№ Єюы№ъю юфэє юё№ шыш фтх ё чрїюфюь т эшцэ■■ ярь Є№) (Ёхры№эю ьюцхЄ с√Є№ т√ыхЄ чр єуы√ схч ярышЄЁют√ї ЎтхЄют? Єюуфр ю°шсър сюы№°х?);de=pal256;юъэр: 1=scrline, 2=pixline, 3=c16[rgb];шыш ыєў°х яЁюьхцєЄюўэ√щ сєЇхЁ фы ьрё°ЄрсшЁютрэш ёЄЁюъш ш їЁрэхэш ю°шсюъ? юъэр: 1=scrline, 2,3=c16[rgb]/*рсёюы■Єэ√щ ьшэшьєь:ld e,(hl)inc hl ;TODO їюфшЄ№ ё ьрё°Єрсюьld d,pal256/256ld a,(de)add a,cld c,a ;inc dld a,(de)adc a,bld b,a ;bc=rgbinc dld a,(bc) ;c16ld (..),a ;scrline[x]=c16 ;TODO ёЁрчє ъырёЄ№ 2 яшъёхыld e,a ;mrgb[c16]ld a,(de)add a,cld c,a ;inc dld a,(de)adc a,bld b,a ;bc=drgb ;чэръют√щ!*/ьрё°ЄрсшЁютрэшх ш т√ўшёыхэшх rgb (ёухэхЁшЁютрээ√щ ъюф, ЁшёєхЄ ёяЁртр эрыхтю):add/adc hl,bc ;bc<0, CY=1ld e,(hl) ;de=pal256+0/+256ld a,(de)ld (..l/h),ainc/dec dld a,(de)ld (..h/l),a:64t/pix (ърцф√щ тЄюЁющ яЁюїюф ьюцэю 62t ўхЁхч push af)фшЇхЁшэу:/*pop deadd hl,de ;hl=rgbset 7,h ;TODO ъръ шчсхцрЄ№ яхЁхяюыэхэш яю R?ld a,(hl) ;c16ld (..),a ;scrline[x]=c16 ;TODO ёЁрчє ъырёЄ№ 2 яшъёхы;ld (),a ;c16 ў╕Єэюх;ld de,();add hl,de ;13+20+11=34ld d,mrgbc16/256ld e,a ;de=mrgb[c16]ld a,(de)add a,lld l,ainc dld a,(de)adc a,hld h,a ;bc=drgb ;чэръют√щ! ;7+4+7+4+4+4+7+4+4=45*/pop deadd hl,de ;hl=rgbld a,(hl) ;c16 (left)ld (),a ;c16 ў╕Єэюхld de,() ;de=mrgb[c16]add hl,depop deadd hl,de ;hl=rgbld e,a ;c16 (left)ld a,(hl) ;c16 (right)ld (),a ;c16 ў╕Єэюхld d,a ;d=right,e=left ;de = %001rrrr0 001LLLL0ld a,(de) ;%rlrrrlllld de,() ;de=mrgb[c16]add hl,deld (bc),a ;scrline[x]=%rlrrrlll ;ёЁрчє ъырф╕ь 2 яшъёхыinc bc:172t/2pix = 86t/pixт√тюф ърЁЄшэъш эр ¤ъЁрэ (EGA):эрфю сЁрЄ№ срщЄ√ ўхЁхч 4 (шыш ўхЁхч 2 ЁрёяшїштрЄ№ т 2 сыюър ярь Єш)т√тюфшь яю яЁюшчтюы№эюьє рфЁхёє ш ьюцхь эх эр тё■ °шЁшэє ърЁЄшэъш!/*╨рёяшїштрхь ўхЁхч юфшэ срщЄ т 2 сыюър ярь Єш (di!):pop afld (hl),ainc hlpop afld (de),ainc de;яЁюсыхьр ё яЁхЁ√трэшхь! тЄюЁющ Ёрч эх яЁюўшЄрхь!!! ўшЄрЄ№ шч ёЄхър ьюцэю Єюы№ъю ўхЁхч de*//*╨рёяшїштрхь ўхЁхч юфшэ срщЄ т 2 сыюър ярь Єш (ei):pop deld (hl),einc hlpop deld a,eld (bc),ainc bc:50t/2byte = 25t/byte = 12.5t/pix*/╨рёяшїштрхь т 4 сыюър ярь Єш (di! Є.ъ. яюёых exx єцх эхръЄєры№эюх de):pop deld (hl),einc hlld a,dexxld (bc),ainc bcpop deld (hl),einc hlld a,dexxld (bc),ainc bc:88t/4byte = 22t/byte = 11t/pixьюцэю шьхЄ№ 32 ъюяшш яЁюЎхфєЁ√ (ё Ёрчэ√ьш эрўры№э√ьш x), Єюуфр сюы№°шэёЄтю inc rp ьюцэю чрьхэшЄ№ эр inc rт√тюф ърЁЄшэъш т ьєы№ЄшъюыюЁ, ёэрўрыр фтр ёыю яшъёхыхщ (р яюЄюь Єръ цх - рЄЁшсєЄ√):pop deld (hl),eset 5,hld (hl),dinc hlpop deld (hl),dres 5,hld (hl),einc hl:38t/2byte = 19t/byte;3b/b, Є.х. тё ёЄЁюър яшъёхыхщ (юэр цх ёЄЁюър рЄЁшсєЄют) = 3*80 = 240 bт ъюэЎх т эєцэюь ьхёЄх яюёЄртшЄ№ jp (ix) ёЁрчє яюёых ld (hl) - ¤Єю эєцэю Єюы№ъю юфшэ Ёрч эр тё■ ърЁЄшэъє+тїюф ё Ёрчэ√ї ьхёЄ - фы Ёрчэюую эрўры№эюую яюыюцхэш ърЁЄшэъш эр ¤ъЁрэх/*яю тхЁЄшърыш (хёыш ърЁЄшэър Ёрчыюцхэр яю тхЁЄшърыш):pop deld (hl),eadd hl,bcld (hl),dadd hl,bc:46t/2byte = 23t/byte = 11.5t/pix*/╩ръ фхырЄ№ фшЇхЁшэу т їрщЁхч?═єцэю эрщЄш 2 эрсюЁр яю 2 ЎтхЄр (фы ў╕Єэ√ї ш эхў╕Єэ√ї ёЄЁюъ) ш ъюэтхЁЄшЄ№ т ¤Єш ярышЄЁ√ ё ЁрёяЁюёЄЁрэхэшхь ю°шсъш тяЁртю ш тэшч!сюы№°шэёЄтю чэръюьхёЄ шьх■Є ў╕Ёэ√щ шыш схы√щ Їюэ? (фюёЄрЄюўэю эрщЄш юфшэ ў╕Ёэ√щ яшъёхы№ фы paper=0 шыш юфшэ схы√щ яшъёхы№ фы ink=1) (р ъръ эрщЄш тЄюЁющ ЎтхЄ? фюыцэю юЄышўрЄ№ё фы ў╕Єэ√ї ш эхў╕Єэ√ї ёЄЁюъ)шч юёЄры№э√ї сюы№°шэёЄтю ЎтхЄюяхЁхїюф√? ъръ эрщЄш фы эшї 2 ЎтхЄр? фюыцэю юЄышўрЄ№ё фы ў╕Єэ√ї ш эхў╕Єэ√ї ёЄЁюъ?яю шфхх эрфю эрщЄш 2 ёрь√ї фры№эшї фЁєу юЄ фЁєур ЎтхЄр?хёыш яЁюёЄю шёърЄ№ minR,maxR ш Є.я. яю ърцфющ ёюёЄрты ■∙хщ, Єю эхяюэ Єэю, ъръє■ фшруюэры№ сЁрЄ№эрфю яю¤Єюьє яю ърцфющ юёш шёърЄ№ ьшэшьєь, ьръёшьєь ш ёююЄтхЄёЄтє■∙шх шь ЎтхЄряюЄюь тч Є№ юё№ ё ёрь√ь сюы№°шь ЁрёёЄю эшхь ш ЎтхЄр шч эх╕фы ¤Єюую эрфю Єюы№ъю єьхЄ№ с√ёЄЁю ёўшЄрЄ№ R,G,B юЄ яшъёхыю°шсър яЁш ¤Єюь ьюцхЄ с√Є№ юўхэ№ сюы№°р ! ьюцхЄ ыш эръряыштрЄ№ё яЁш яЁюфтшцхэшш (Єюуфр эєцэю єёхўхэшх)? ю°шсър фюыцэр Ёрчь√трЄ№ё яю тёхьє эшцхёыхфє■∙хьє чэръюьхёЄє шыш эх тыш Є№ эр эхую (Єюуфр эрфю фЁєує■ ыюушъє фы яюшёър ярышЄЁ√ эхў╕Єэ√ї ёЄЁюъ)?╩ръ ъюэтхЁЄшЄ№ rgb т 2 чрфрээ√ї ЎтхЄр? ярышЄЁ ьюцхЄ с√Є№ юўхэ№ ьэюую, ёЄЁрэшўхъ эх їтрЄшЄ яюф ЄрсышЎ√ bit[curpal,rgb]!!!Єюуфр эрфю шёърЄ№ ЁрёёЄю эшх юЄ rgb фю чрфрээюую ЎтхЄр, эрфю 16 ёЄЁрэшўхъ яюф ЄрсышЎ√ dist[color16,rgb]!!!яхЁхъы■ўхэшх ёЄЁрэшўхъ - ¤Єю фюыую, ьюцэю яюяЁюсютрЄ№ sum(distr,distg,distb), уфх distX = abs[r[rgb]-colorr], эю ЄЁш ЄрсышЎ√ юЄ rgb - цшЁэю, яЁшф╕Єё тЁєўэє■ т√фхы Є№ сшЄ√ шч rgb!¤Єю чэрўшЄ, ўЄю фшрярчюэ ЎтхЄютющ ёюёЄрты ■∙хщ фюыцхэ с√Є№ 0..15 (эхюсїюфшью Ёєўэюх єёхўхэшх) шыш 0..31шыш юЄърчрЄ№ё юЄ Їыющфр-ёЄхщэсхЁур, яЁшфєьрЄ№ с√ёЄЁ√щ рыуюЁшЄь фы diamond? bit = f(curpal,rgb,xyphase)фы чэръюьхёЄ ё ў╕Ёэ√ь шыш схы√ь Їюэюь ьюцэю яхЁхф ъюэтхЁёшхщ эюЁьшЁютрЄ№ ЎтхЄр т єЁютэш 0(ў╕Ёэ√щ шыш ЎтхЄ)..1(схы√щ шыш ЎтхЄ)фы чэръюьхёЄ ё фтєь ЎтхЄрьш ьюцэю яхЁхф ъюэтхЁёшхщ эюЁьшЁютрЄ№ ЎтхЄр т єЁютэш 0(ЎтхЄ1)..1(ЎтхЄ2)Єюуфр фшЇхЁшэу ЄЁштшрыхэ, їюЄ№ Їыющф, їюЄ№ diamondъръ эюЁьшЁютрЄ№? 2 ЎтхЄр эхы№ч эюЁьшЁютрЄ№ яю ЁъюёЄшр яЁюхъЎш эр ышэш■ - цшЁэют√сЁрЄ№ юфэє ЎтхЄютє■ ёюёЄрты ■∙є■ (уфх ёрьр сюы№°р ЁрчэшЎр) ш яю эхщ эюЁьшЁютрЄ№? (Єє цх, яю ъюЄюЁющ шёърыш 2 ёрь√ї фры╕ъшї ЎтхЄр)яєёЄ№ ¤Єю юърчрырё№ R:R = R(pixel) ;юъЁєуыхэю Єръ цх, ъръ Rmin,Rmax!inklevel = (R-Rmin)/maxdistbit = (inklevel > chunklevel[x%4][y%4])фхыхэшх .5/.5 (юЄЁшЎрЄхы№э√х яЁштюфшь ъ 0? шыш эх сєфхЄ тэх 0..1, Є.ъ. схЁ╕ь Rmin ш Rmax)═рфю яхЁхф ъюэтхЁёшхщ ёЄЁюъш (шыш ёЄЁюъш чэръюьхёЄр) ъюяшЁютрЄ№ х╕ (т эєцэюь ьрё°Єрсх) т эшцэ■■ ярь Є№ т тшфх R(+0),G(+8),B(+16), шэрўх яЁюсыхь√ ё юъэрьш ярь Єш ш ыш°эшьш ъюэтхЁёш ьш?▌Єю ьюцэю ёфхырЄ№ т 3 яЁюїюфр (ё Ёрчэ√ьш ЄрсышЎрьш R(rgb)) шыш ыєў°х фхырЄ№ ЄрсышЎ√ R(index256)macro DITHERMC ch0,ch1,ch2,ch3;яюшёъ 2 ЎтхЄют (чряюьшэрхь яюыюцхэш ЁхъюЁфэ√ї ЎтхЄют, ўЄюс√ яюЄюь шї яЁюўшЄрЄ№):ld hl,chrbuf_=(chrbuf+8)&0xffld de,_*257ld c,(hl) ;Rminld b,c ;Rmax_=_+1dup 7inc lld a,(hl) ;R(pixel)cp c ;Rminjr nc,$+2+1+2ld c,a ;Rminld e,_ ;Rmincolor = яюыюцхэшх Єхъє∙хую ЎтхЄрcp b ;Rmaxjr c,$+2+1+2ld b,a ;Rmaxld d,_ ;Rmaxcolor = яюыюцхэшх Єхъє∙хую ЎтхЄр_=_+1eduppush de ;ld (Rminmaxcolor),deld a,bsub cpush afinc l ;ld hl,chrbuf+8_=(chrbuf+8)&0xffld de,_*257ld c,(hl) ;Gminld b,c ;Gmax_=_+1dup 7inc lld a,(hl) ;G(pixel)cp c ;Gminjr nc,$+2+1+2ld c,a ;Gminld e,_ ;Gmincolor = яюыюцхэшх Єхъє∙хую ЎтхЄрcp b ;Gmaxjr c,$+2+1+2ld b,a ;Gmaxld d,_ ;Gmaxcolor = яюыюцхэшх Єхъє∙хую ЎтхЄр_=_+1eduppush de ;ld (Gminmaxcolor),deld a,bsub cpush afinc l ;ld hl,chrbuf+16_=(chrbuf+8)&0xffld de,_*257ld c,(hl) ;Bminld b,c ;Bmax_=_+1dup 7inc lld a,(hl) ;B(pixel)cp c ;Bminjr nc,$+2+1+2ld c,a ;Bminld e,_ ;Bmincolor = яюыюцхэшх Єхъє∙хую ЎтхЄрcp b ;Bmaxjr c,$+2+1+2ld b,a ;Bmaxld d,_ ;Bmaxcolor = яюыюцхэшх Єхъє∙хую ЎтхЄр_=_+1edup;ld (Bminmaxcolor),deld a,bsub c;т√сшЁрхь ыєў°є■ юё№ ш х╕ minmaxcolor:ld c,a ;maxdistpop af ;Gmax-Gminpop hl ;Gminmaxcolorcp c ;>=maxdist?jr c,$+2+1+1ld c,a ;maxdistex de,hlpop af ;Rmax-Rminpop hl ;Rminmaxcolorcp c ;>=maxdist?jr c,$+2+1ex de,hl;d=maxcolor;e=mincolor;схЁ╕ь ЁхъюЁфэ√х ЎтхЄр (т тшфх color16):;ўЄюс√ яюыєўшЄ№ color16, эрфю ёэрўрыр color64(=BBGGRR), яюЄюь яю ЄрсышЎх шч эхуюld h,chrbuf/256ld l,d ;maxcolor;юъЁєуы Є№ ттхЁї! +32 (эрщфхэю яюфсюЁюь)ld a,(hl) ;Gadd a,32jr nc,$+3sbc a,ald c,ares 3,lld a,(hl) ;Radd a,32jr nc,$+3sbc a,ald b,aset 4,lld a,(hl) ;Badd a,32jr nc,$+3sbc a,arlcarlcarl crlarl c ;grlarl brlarl b ;rrla ;BBGGRRand 0x3fld l,a;ld h,t64to16ink/256ld d,(hl) ;d=maxcolor16=inkld l,e ;mincolor;ld h,chrbuf/256;юъЁєуы Є№ тэшч! -32 (эрщфхэю яюфсюЁюь)ld a,(hl) ;Gsub 64jr nc,$+3xor ald c,ares 3,lld a,(hl) ;Rsub 64jr nc,$+3xor ald b,aset 4,lld a,(hl) ;Bsub 64jr nc,$+3xor arlcarlcarl crlarl c ;grlarl brlarl b ;rrla ;BBGGRRor 0xc0ld l,a;ld h,t64to16paper/256ld a,(hl) ;a=mincolor16=paperor d;a=attrexxld (hl),a ;чряшёрЄ№ attrinc hlexx;яю Ёхры№э√ь рЄЁшсєЄрь чрэютю яхЁхёўшЄрЄ№ maxaxis, min, maxdist! (яЁютхЁхэю, ўЄю схч ¤Єюую яюыєўрхЄё я ЄэшёЄюёЄ№):ld l,ald h,tmaxaxis/256ld d,(hl) ;maxdistdivinc hld b,(hl) ;mininc hld l,(hl) ;maxaxis*3ld h,chrbuf/256;b=R/G/Bmin;hl эр эрўрых сєЇхЁр R/G/B;d=maxdistdiv;т фшЇхЁшэух їюфшь Єюы№ъю яю юфэющ ёюёЄрты ■∙хщ, юёЄры№э√х эх ўшЄрхь:ld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch0 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch1 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch2 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch3 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch0 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch1 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch2 ;chunklevel[x%4][y%4]rl c ;bitsld a,(hl) ;R(pixel)inc lsub b ;Rminrra ;эр ёыєўрщ юЄЁшЎрЄхы№э√їld e,a ;d=maxdistdivld a,(de) ;inklevelcp ch3 ;chunklevel[x%4][y%4]ld a,crla ;bitsexxld (de),a ;чряшёрЄ№ bitsinc deexxendm;Єръшї 4 °Є (фы Ёрчэ√ї Їрч y);0 схёёь√ёыхээю (тёхуфр NC), яю¤Єюьє тёх чэрўхэш єтхышўхэ√ эр 1:dithermcy0DITHERMC 0x1, 0xd, 0x3, 0xfretdithermcy1DITHERMC 0x9, 0x5, 0xb, 0x7retdithermcy2DITHERMC 0x4, 0x10, 0x2, 0xeretdithermcy3DITHERMC 0xc, 0x8, 0xa, 0x6rettmaxdistdiv:h=maxdist/4=0..63l=R-Rmin=0..255out: 0..16 = (R-Rmin)/maxdistъюьрэф√ cp сєфхЄ т фшрярчюэх 1..16, тёх ьюуєЄ т√фрЄ№ C/NCъєфр чряшё√трЄ№ attr ш c?тёх юъэр ётюсюфэ√! (ьюцэю юфэю юъэю = tmaxdistdiv)ьюцэю ъырёЄ№ яюфЁ ф: attreven, bitseven, attrodd, bitsoddЄюуфр т√тюф эр ¤ъЁрэ сєфхЄ ъръ т 16Ўр ьюцэю ЁрчфхышЄ№ эр сыюъ рЄЁшсєЄют ш сыюъ сшЄютЄюуфр т√тюф эр ¤ъЁрэ Єръющ:pop deld (hl),eset 5,hld (hl),dinc hlpop deld (hl),dres 5,hld (hl),einc hl:38t/2byte = 19t/byte = 9.5t/pixalign 256t64to16inkdup 64;%00003210 => %.3...210_3=$&8_210=$&7nop ;db (_3*0x08) + (_210*0x01) ;эрфю ухэхЁшЁютрЄ№ шч чрфрээющ ярышЄЁ√edupchrbufds 8 ;Rds 8 ;Gds 8 ;Bds 256-64-24-64t64to16paperdup 64;%00003210 => %3.210..._3=$&8_210=$&7nop ;db (_3*0x10) + (_210*0x08) ;эрфю ухэхЁшЁютрЄ№ шч чрфрээющ ярышЄЁ√edup╩рЁЄшэър т√уы фшЄ ыєў°х, хёыш ў╕Єэ√х ёЄЁюўъш юъЁєуы ■Є ьръё. ЎтхЄр ттхЁї эр +32, р эхў╕Єэ√х юъЁєуы ■Є ьшэ. ЎтхЄр тэшч эр -32─шыхььр:хёыш т√сшЁрЄ№ ьшэ ш ьръё ё чрярёюь, Єю яЁюёЄ√х эрфяшёш яюыєўр■Єё эр Їюэх °єьрр хёыш т√сшЁрЄ№ схч чрярёр, Єю яыюїю эр ЎтхЄюяхЁхїюфрїт jpeg RTAB,GTAB,BTAB эх шёяюы№чє■Єё ?TODO т jpeg ёЄЁюъш >1024, фы ¤Єюую ЁхэфхЁшЄ№ сыюъш ёЄЁюъ т юфшэ яюЄюъ фышэющ эхёъюы№ъю ёЄЁрэшЎ ё ўхЁхфютрэшхь ЎтхЄют√ї ёюёЄрты ■∙шї (Y,U,V -> яюёых яхЁхёў╕Єр ёЄрэютшЄё R,G,B)ьюцэю яЁюёЄю эх ЁхэфхЁшЄ№ ърцфє■ тЄюЁє■ ёЄЁюъє, эю Єюуфр эхы№ч сєфхЄ єтхышўшЄ№girl.jpg 23.02.2019 71680t = 71.82 s (JPEG v0.50 ў/с = 39 s, RGB = 83.79 s)TODO т gif яюяЁюсютрЄ№:add a,acall z,readbyteadc hl,hl ;result