diff --git a/src/sys/graphics/Makefile b/src/sys/graphics/Makefile index 0e47204..9131691 100755 --- a/src/sys/graphics/Makefile +++ b/src/sys/graphics/Makefile @@ -24,7 +24,7 @@ # Compile the source files .cpp.o: - $(G++) -Wall -O -I./ -c -o $@ $< + $(G++) -Wall -fomit-frame-pointer -O -I./ -g -c -o $@ $< .cc.s: $(G++) -Wall -fomit-frame-pointer -O -I../../lib/libc/include -S -o $@ $< diff --git a/src/sys/graphics/main.cpp b/src/sys/graphics/main.cpp index 3c71f47..ff9d76d 100755 --- a/src/sys/graphics/main.cpp +++ b/src/sys/graphics/main.cpp @@ -19,7 +19,12 @@ buf->create(400,400,(TPixelFmt *)&def_pixfmt_8bpp); buf2->create(400,400,(TPixelFmt *)&def_pixfmt_8bpp); buf->flip(buf2); - buf->setRGBPalette(15,255,255,255); + buf->setRGBPalette(0,253,255,255); + buf->setRGBPalette(1,255,251,255); + buf->setRGBPalette(2,251,255,255); + buf->setRGBPalette(3,255,255,255); + buf->setRGBPalette(4,255,253,255); + buf->setRGBPalette(5,255,255,251); foo=buf->RGB(255,255,255); printf("%d\n",(int)foo); if (buf) delete buf; diff --git a/src/sys/graphics/objgfx30.cpp b/src/sys/graphics/objgfx30.cpp index 5ce0e3e..5329d94 100755 --- a/src/sys/graphics/objgfx30.cpp +++ b/src/sys/graphics/objgfx30.cpp @@ -118,47 +118,47 @@ UInt32 TGfx0::RGB(UInt8 red, UInt8 green, UInt8 blue) { UInt32 lastclr; - lastclr=0; + lastclr=1000; switch (BPP) { case 8: - asm( + asm __volatile__( "movl $256,%%ecx \n" - "movl $256*3+1,%%ebx \n" + "movl $769,%%ebx \n" "xor %%eax,%%eax \n" "lop: \n" " pushl %%eax \n" - " movl (%%esi),%%eax \n" + " mov (%%esi),%%al \n" " incl %%esi \n" " sub %1,%%al \n" " jns abs1 \n" - " negl %%eax \n" + " neg %%al \n" "abs1: \n" " movl %%eax,%%edi \n" " mov (%%esi),%%al \n" " incl %%esi \n" " sub %2,%%al \n" " jns abs2 \n" - " neg %%eax \n" + " neg %%al \n" "abs2: \n" - " add %%eax,%%edi \n" - " mov (%%esi),%%eax \n" + " addl %%eax,%%edi \n" + " mov (%%esi),%%al \n" " incl %%esi \n" " sub %3,%%al \n" " jns abs3 \n" - " neg %%eax \n" + " neg %%al \n" "abs3: \n" " addl %%eax,%%edi \n" " popl %%eax \n" " cmpl %%ebx,%%edi \n" " jae no_good_match \n" " movl %%edi,%%ebx \n" - " movl %%eax,%4 \n" + " movl %%eax,%4 \n" "no_good_match: \n" " incl %%eax \n" " decl %%ecx \n" " jnz lop \n" : - : "S" (pal), "g" (red), "g" (green), "g" (blue), "r" (lastclr) + : "S" (pal), "m" (red), "m" (green), "m" (blue), "m" (lastclr) ); break; } // switch