void main(void) { unsigned char byte; initSPI(); while (1) { // Wert über Switch eingeben (704) byte = inportb(SWITCH_LOW); sendCharToSPI(byte); // Ausgabe an LED outportb(LED_LOW, byte); waitForKeyPress(); } }
void SingleKeyInput::runExercise() { int x = 100, y = 0; int fontSize = 200; std::string key; Color color = DARKGREEN; seeout.setColor(DARKRED); seeout.setFontSize(15); seeout << "Hover mouse over the exercise drawing area and press keys, or q to quit.\n"; seeout.setFontSize(10); seeout.setColor(DARKBLUE); seeout << "(Try hitting some CTRL-key combinations to see some special characters"; seeout << " in addition to the regular alphanumeric characters. :-)\n"; while ( key != "q" && key != "Q" ) { key = waitForKeyPress(); fwcClearItems(); fwcText(key, x, y, color, fontSize); } fwcClearItems(); fwcText("DONE!", 60, 150, color, 60); }
void App::run() { int size = 0, tabSize = 0; uint8 *data, *tabData; // this font is for the intro tabData = File::loadFile("mfnt-0.tab", tabSize); data = File::loadFile("mfnt-0.dat", size); printf("Loading %d sprites from mfnt-0.dat\n", tabSize / 6); intro_font_sprites_.loadSprites(tabData, tabSize, data, true); delete[] tabData; delete[] data; intro_font_.setSpriteManager(&intro_font_sprites_, 1); // play intro FliPlayer fliPlayer; data = File::loadFile("intro.dat", size); fliPlayer.loadFliData(data); music().playTrack(MusicManager::TRACK_INTRO); fliPlayer.play(true); music().stopPlayback(); delete[] data; // load palette data = File::loadFile("hpal01.dat", size); system_->setPalette6b3(data); delete[] data; // load palette setPalette("mselect.pal"); // load "req" // TODO: what's this for? data = File::loadFile("hreq.dat", size); delete[] data; // load mspr-0 sprites // TODO: cursor is sprite 63 tabData = File::loadFile("mspr-0.tab", tabSize); data = File::loadFile("mspr-0.dat", size); printf("Loading %d sprites from mspr-0.dat\n", tabSize / 6); menu_sprites_.loadSprites(tabData, tabSize, data, true); delete[] tabData; delete[] data; fonts_.loadFont(&menu_sprites_, 3, true, 1076, 'A'); fonts_.loadFont(&menu_sprites_, 2, true, 802, 'A'); fonts_.loadFont(&menu_sprites_, 1, true, 528, 'A'); fonts_.loadFont(&menu_sprites_, 0, true, 254, 'A'); fonts_.loadFont(&menu_sprites_, 3, false, 939, 'A'); fonts_.loadFont(&menu_sprites_, 2, false, 665, 'A'); fonts_.loadFont(&menu_sprites_, 1, false, 391, 'A'); fonts_.loadFont(&menu_sprites_, 0, false, 117, 'A'); fonts_.loadWidgets(&menu_sprites_); game_font_.load(); #if 0 system_->updateScreen(); int nx = 0, ny = 0, my = 0; for (int i = 0; i < tabSize / 6; i++) { Sprite *s = menu_sprites_.sprite(i); if (nx + s->width() >= GAME_SCREEN_WIDTH) { nx = 0; ny += my; my = 0; } if (ny + s->height() > GAME_SCREEN_HEIGHT) break; s->draw(nx, ny, 0); system_->updateScreen(); nx += s->width(); if (s->height() > my) my = s->height(); } while (1) waitForKeyPress(); exit(1); #endif // load "col01" // TODO: what's this for? data = File::loadFile("col01.dat", size); g_Screen.scale2x(0, 0, 16, 16, data); delete[] data; // load palette setPalette("mselect.pal"); // play title data = File::loadFile("mtitle.dat", size); fliPlayer.loadFliData(data); fliPlayer.play(); delete[] data; waitForKeyPress(); // play the groovy menu startup anim g_App.gameSounds().sound(Sound::MENU_UP)->play(); data = File::loadFile("mscrenup.dat", size); fliPlayer.loadFliData(data); fliPlayer.play(); delete[] data; menus_.createAllMenus(); int lasttick = SDL_GetTicks(); while (running_) { system_->handleEvents(); system_->updateScreen(); int curtick = SDL_GetTicks(); menus_.handleTick(curtick - lasttick); lasttick = curtick; system_->delay(1); } #ifdef GP2X #ifndef WIN32 // return to the menu chdir("/usr/gp2x"); execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL); #endif #endif }
int _tmain(int argc, _TCHAR* argv[]) { uint32_t ret_status; sgx_status_t status; UNUSED(argc); UNUSED(argv); if(load_enclaves() != SGX_SUCCESS) { printf("\nLoad Enclave Failure"); } printf("\nAvaliable Enclaves"); printf("\nEnclave1 - EnclaveID %llx",e1_enclave_id); printf("\nEnclave2 - EnclaveID %llx",e2_enclave_id); printf("\nEnclave3 - EnclaveID %llx",e3_enclave_id); do { //Test Create session between Enclave1(Source) and Enclave2(Destination) status = Enclave1_test_create_session(e1_enclave_id, &ret_status, e1_enclave_id, e2_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_create_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nSecure Channel Establishment between Source (E1) and Destination (E2) Enclaves successful !!!"); } else { printf("\nSession establishment and key exchange failure between Source (E1) and Destination (E2): Error code is %x", ret_status); break; } } //Test Enclave to Enclave call between Enclave1(Source) and Enclave2(Destination) status = Enclave1_test_enclave_to_enclave_call(e1_enclave_id, &ret_status, e1_enclave_id, e2_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_enclave_to_enclave_call Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nEnclave to Enclave Call between Source (E1) and Destination (E2) Enclaves successful !!!"); } else { printf("\n\nEnclave to Enclave Call failure between Source (E1) and Destination (E2): Error code is %x", ret_status); break; } } //Test message exchange between Enclave1(Source) and Enclave2(Destination) status = Enclave1_test_message_exchange(e1_enclave_id, &ret_status, e1_enclave_id, e2_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_message_exchange Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nMessage Exchange between Source (E1) and Destination (E2) Enclaves successful !!!"); } else { printf("\n\nMessage Exchange failure between Source (E1) and Destination (E2): Error code is %x", ret_status); break; } } //Test Create session between Enclave1(Source) and Enclave3(Destination) status = Enclave1_test_create_session(e1_enclave_id, &ret_status, e1_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_create_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nSecure Channel Establishment between Source (E1) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nSession establishment and key exchange failure between Source (E1) and Destination (E3): Error code is %x", ret_status); break; } } //Test Enclave to Enclave call between Enclave1(Source) and Enclave3(Destination) status = Enclave1_test_enclave_to_enclave_call(e1_enclave_id, &ret_status, e1_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_enclave_to_enclave_call Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nEnclave to Enclave Call between Source (E1) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nEnclave to Enclave Call failure between Source (E1) and Destination (E3): Error code is %x", ret_status); break; } } //Test message exchange between Enclave1(Source) and Enclave3(Destination) status = Enclave1_test_message_exchange(e1_enclave_id, &ret_status, e1_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_message_exchange Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nMessage Exchange between Source (E1) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nMessage Exchange failure between Source (E1) and Destination (E3): Error code is %x", ret_status); break; } } //Test Create session between Enclave2(Source) and Enclave3(Destination) status = Enclave2_test_create_session(e2_enclave_id, &ret_status, e2_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave2_test_create_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nSecure Channel Establishment between Source (E2) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nSession establishment and key exchange failure between Source (E2) and Destination (E3): Error code is %x", ret_status); break; } } //Test Enclave to Enclave call between Enclave2(Source) and Enclave3(Destination) status = Enclave2_test_enclave_to_enclave_call(e2_enclave_id, &ret_status, e2_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave2_test_enclave_to_enclave_call Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nEnclave to Enclave Call between Source (E2) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nEnclave to Enclave Call failure between Source (E2) and Destination (E3): Error code is %x", ret_status); break; } } //Test message exchange between Enclave2(Source) and Enclave3(Destination) status = Enclave2_test_message_exchange(e2_enclave_id, &ret_status, e2_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave2_test_message_exchange Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nMessage Exchange between Source (E2) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nMessage Exchange failure between Source (E2) and Destination (E3): Error code is %x", ret_status); break; } } //Test Create session between Enclave3(Source) and Enclave1(Destination) status = Enclave3_test_create_session(e3_enclave_id, &ret_status, e3_enclave_id, e1_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave3_test_create_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nSecure Channel Establishment between Source (E3) and Destination (E1) Enclaves successful !!!"); } else { printf("\n\nSession establishment and key exchange failure between Source (E3) and Destination (E1): Error code is %x", ret_status); break; } } //Test Enclave to Enclave call between Enclave3(Source) and Enclave1(Destination) status = Enclave3_test_enclave_to_enclave_call(e3_enclave_id, &ret_status, e3_enclave_id, e1_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave3_test_enclave_to_enclave_call Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nEnclave to Enclave Call between Source (E3) and Destination (E1) Enclaves successful !!!"); } else { printf("\n\nEnclave to Enclave Call failure between Source (E3) and Destination (E1): Error code is %x", ret_status); break; } } //Test message exchange between Enclave3(Source) and Enclave1(Destination) status = Enclave3_test_message_exchange(e3_enclave_id, &ret_status, e3_enclave_id, e1_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave3_test_message_exchange Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nMessage Exchange between Source (E3) and Destination (E1) Enclaves successful !!!"); } else { printf("\n\nMessage Exchange failure between Source (E3) and Destination (E1): Error code is %x", ret_status); break; } } //Test Closing Session between Enclave1(Source) and Enclave2(Destination) status = Enclave1_test_close_session(e1_enclave_id, &ret_status, e1_enclave_id, e2_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_close_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nClose Session between Source (E1) and Destination (E2) Enclaves successful !!!"); } else { printf("\n\nClose session failure between Source (E1) and Destination (E2): Error code is %x", ret_status); break; } } //Test Closing Session between Enclave1(Source) and Enclave3(Destination) status = Enclave1_test_close_session(e1_enclave_id, &ret_status, e1_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave1_test_close_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nClose Session between Source (E1) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nClose session failure between Source (E1) and Destination (E3): Error code is %x", ret_status); break; } } //Test Closing Session between Enclave2(Source) and Enclave3(Destination) status = Enclave2_test_close_session(e2_enclave_id, &ret_status, e2_enclave_id, e3_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave2_test_close_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nClose Session between Source (E2) and Destination (E3) Enclaves successful !!!"); } else { printf("\n\nClose session failure between Source (E2) and Destination (E3): Error code is %x", ret_status); break; } } //Test Closing Session between Enclave3(Source) and Enclave1(Destination) status = Enclave3_test_close_session(e3_enclave_id, &ret_status, e3_enclave_id, e1_enclave_id); if (status!=SGX_SUCCESS) { printf("Enclave3_test_close_session Ecall failed: Error code is %x", status); break; } else { if(ret_status==0) { printf("\n\nClose Session between Source (E3) and Destination (E1) Enclaves successful !!!"); } else { printf("\n\nClose session failure between Source (E3) and Destination (E1): Error code is %x", ret_status); break; } } #pragma warning (push) #pragma warning (disable : 4127) }while(0); #pragma warning (pop) sgx_destroy_enclave(e1_enclave_id); sgx_destroy_enclave(e2_enclave_id); sgx_destroy_enclave(e3_enclave_id); waitForKeyPress(); return 0; }