From 0b2d9832f450b45ba75103670ea4ef9e32828101 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 5 May 2014 19:53:17 -0500 Subject: [PATCH] modified: 16/DOS_GFX.EXE modified: 16/Project 16.bfproject modified: 16/dos_gfx.cpp modified: 16/dos_gfx.h --- 16/DOS_GFX.EXE | Bin 27988 -> 28154 bytes 16/Project 16.bfproject | 22 +++++------ 16/dos_gfx.cpp | 83 +++++++++------------------------------- 16/dos_gfx.h | 2 +- 4 files changed, 30 insertions(+), 77 deletions(-) diff --git a/16/DOS_GFX.EXE b/16/DOS_GFX.EXE index fb077d121af3cfc717657f0e43c2940f07bdf07c..6d51a853357fad5bb5e9c6c0c8847c113ec0c756 100644 GIT binary patch delta 8479 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 ay ) - { - d = ay - (ax >> 1); - while( x != x2 ) - { - putPixel_X( x, y, col ); - if( d >= 0 ) - { - y += sy; - d -= ax; - } - x += sx; - d += ay; - } - } - else - { - d = ax - (ay >> 1); - while( y != y2 ) - { - putPixel_X( x, y, col ); - if( d >= 0 ) - { - x += sx; - d -= ay; - } - y += sy; - d += ax; - } - } - return; -} - -void drawrect(int x1, int y1, int x2, int y2, char color) -{ - drawline(x1,y1,x2,y1,color); - drawline(x1,y2,x2,y2,color); - drawline(x1,y1,x1,y2,color); - drawline(x2,y1,x2,y2+1,color); - /*byte far *p; - - p=vga+y1*width+x1; // make p point to the start of the line - while((y2-y1)) // repeat for entire line height - { - _fmemset(vga, color, x2-x1); // set one line - p+=width; // move down one row - }*/ -} +void putColorBox_X(int x, int y, int w, int h, byte color) { + outp(0x3c4, 0x02); + + int curx, cury; + unsigned drawptr; + for (curx=x; curx<(x+w); curx++) { + outp(0x3c5, 0x01 << (curx & 3)); + drawptr = (unsigned)(widthBytes * y) + (curx / 4) + actStart; + for (cury=0; cury