/*===========================================================================*/ void _main(void) { #define bsize (100*20+4) // Size of a bitmap for a 160x100 screen. int i; LCD_BUFFER lcd; static const SCR_RECT theScreen = {{0,0,159,99}}; unsigned char sscreen[bsize]; unsigned char sscreen2[bsize]; LCD_save(lcd); BitmapGet(&theScreen,sscreen); memset(sscreen2,0,bsize); ((BITMAP*)sscreen2)->NumRows=((BITMAP*)sscreen)->NumRows; ((BITMAP*)sscreen2)->NumCols=((BITMAP*)sscreen)->NumCols; GKeyFlush(); for (i = 0; (i <= 360) && (!kbhit()); i++) { RotateSpriteX8_R(((BITMAP*)sscreen)->Data,((BITMAP*)sscreen2)->Data,160,100,80,50,i); ClrScr(); FastCopyScreen160to240_R(100,((BITMAP*)sscreen2)->Data,LCD_MEM); } LCD_restore(lcd); GKeyFlush(); ST_helpMsg(EXTGRAPH_VERSION_PWDSTR); #undef bsize }
int main() { COUNT numFlags; INDEX input; COUNT inputNum; BITMAP_WORD * flags; printf("Enter a number of flags\n"); scanf("%ld", &numFlags); printf("Need %ld bytes\n", BitmapSize( numFlags ) * sizeof( BITMAP_WORD ) ); flags = malloc( BitmapSize( numFlags ) * sizeof( BITMAP_WORD ) ); do { BitmapPrint( flags, numFlags ); printf("1 Set, 2 Clear, 3 Find First Flag, 4 Get Flag, 5 Quit\n"); scanf("%ld", & input ); switch( input ) { case 1: printf("what index?"); scanf("%ld",&inputNum); BitmapOn( flags, inputNum ); break; case 2: printf("what index?"); scanf("%ld",&inputNum); BitmapOff( flags, inputNum ); break; case 3: printf("looking for flag\n"); printf("first flag was %d\n", (int) BitmapGetFirstFlag( flags, numFlags )); break; case 4: printf("what index?"); scanf("%ld",&inputNum); if( BitmapGet( flags, inputNum ) ) { printf("SET\n"); } else { printf("CLEAR\n"); } break; case 5: printf("have a good day\n"); break; default: continue; } }while( input != 5 ); return 0; }