#include #define X_SIZE 40 #define Y_SIZE 60 //THESE WORK #define SET_BIT(x,y) coordinate[(x) / 8][y] |= (0x80 >> ((x) % 8)) #define CLEAR_BIT(x,y) coordinate[(x) / 8][y] &= (0x0 >> ((x) % 8)) //DOESNT WORK #define TEST_BIT(x,y) coordinate[(x) / 8][y] |= (0x80 >> ((x) % 8)) //ANY SPOT WITHIN 8 TESTS POSITIVE char coordinate[X_SIZE / 8][Y_SIZE]; //the bitmap //*************************************************** int main(){ // skip a bunch of stuff // DRAW A DIAGONAL LINE for (spot = 0; spot < X_SIZE; ++spot) SET_BIT(spot, spot); // CLEAR THAT LINE for (spot = 0; spot < X_SIZE; ++spot) CLEAR_BIT(spot, spot); // DOESN'T WORK. IS THAT BIT SET? DOESN'T WORK. if (TEST_BIT(test_x,test_y) == 1) printf("Yup.\n"); return(0); } //*********************************************8 //PRINTS THE BITMAP void print_graph(void){ int x = 0; int y = 0; unsigned int bit; for (y = 0; y < Y_SIZE; y++){ for (x = 0; x < X_SIZE / 8; x++){ for (bit = 0x80; bit > 0; bit = bit >> 1){ if ((bit & coordinate[x][y]) == 0) printf(" . "); else printf(" X "); } } printf("\n"); } }