int main(void) { FILE* file = fopen("d:/vm/code.bin", "rb"); fread(code, sizeof(code), 1, file); fclose(file); vmInit(); vmStart(1); // vmInit(); for (;;) { int status; status = vmGetStatus(); if (status != VMSTATUS_RUNNING) { printf("status = %d\n", status); return 1; } _sleep(VM_STEP); vmStep(VM_STEP); } return 0; }
int main(void) { setupLed(); setupUart(); vmInit(); install((Object*) &uart, (Method) uartReceiveInterrupt, IRQ_USART0_RX); install((Object*) &uart, (Method) uartSentInterrupt, IRQ_USART0_TX); TINYTIMBER(NULL, NULL, 1); }
void PreMain() { systemDatInit(); systemInit(); testabilityDatInit(); stdlibparseutilsDatInit(); stdlibstrutilsDatInit(); stdlibtimesDatInit(); stdlibposixDatInit(); stdlibosDatInit(); listsDatInit(); stdlibhashesDatInit(); stdlibstrtabsDatInit(); stdlibstreamsDatInit(); stdlibosprocDatInit(); stdlibmathDatInit(); stdlibsetsDatInit(); optionsDatInit(); stdlibtablesDatInit(); platformDatInit(); crcDatInit(); ropesDatInit(); stdlibunsignedDatInit(); stdlibsocketsDatInit(); msgsDatInit(); nversionDatInit(); identsDatInit(); condsymsDatInit(); extccompDatInit(); wordrecgDatInit(); babelcmdDatInit(); commandsDatInit(); llstreamDatInit(); nimlexbaseDatInit(); lexerDatInit(); nimconfDatInit(); stdlibintsetsDatInit(); idgenDatInit(); astDatInit(); rodutilsDatInit(); astalgoDatInit(); parserDatInit(); pbracesDatInit(); rendererDatInit(); filtersDatInit(); filter_tmplDatInit(); syntaxesDatInit(); treesDatInit(); typesDatInit(); stdlibmemfilesDatInit(); rodreadDatInit(); magicsysDatInit(); bitsetsDatInit(); nimsetsDatInit(); passesDatInit(); treetabDatInit(); vmdefDatInit(); semdataDatInit(); lookupsDatInit(); importerDatInit(); rodwriteDatInit(); saturateDatInit(); semfoldDatInit(); procfindDatInit(); pragmasDatInit(); semtypinstDatInit(); parampatternsDatInit(); stdliblexbaseDatInit(); stdlibunicodeDatInit(); stdlibjsonDatInit(); docutilsrstastDatInit(); docutilsrstDatInit(); docutilshighliteDatInit(); docutilsrstgenDatInit(); guardsDatInit(); sempass2DatInit(); stdlibmacrosDatInit(); stdlibxmltreeDatInit(); stdlibcookiesDatInit(); stdlibcgiDatInit(); typesrendererDatInit(); docgenDatInit(); stdlibalgorithmDatInit(); stdlibsequtilsDatInit(); prettyDatInit(); sigmatchDatInit(); cgmethDatInit(); loweringsDatInit(); lambdaliftingDatInit(); transfDatInit(); vmgenDatInit(); vmdepsDatInit(); evaltemplDatInit(); vmDatInit(); aliasesDatInit(); patternsDatInit(); semmacrosanityDatInit(); semDatInit(); ccgutilsDatInit(); cgendataDatInit(); ccgmergeDatInit(); cgenDatInit(); jsgenDatInit(); passauxDatInit(); dependsDatInit(); docgen2DatInit(); stdlibparseoptDatInit(); serviceDatInit(); modulesDatInit(); mainDatInit(); nimrodDatInit(); initStackBottom(); testabilityInit(); stdlibparseutilsInit(); stdlibstrutilsInit(); stdlibtimesInit(); stdlibposixInit(); stdlibosInit(); listsInit(); stdlibhashesInit(); stdlibstrtabsInit(); stdlibstreamsInit(); stdlibosprocInit(); stdlibmathInit(); stdlibsetsInit(); optionsInit(); stdlibtablesInit(); platformInit(); crcInit(); ropesInit(); stdlibunsignedInit(); stdlibsocketsInit(); msgsInit(); nversionInit(); identsInit(); condsymsInit(); extccompInit(); wordrecgInit(); babelcmdInit(); commandsInit(); llstreamInit(); nimlexbaseInit(); lexerInit(); nimconfInit(); stdlibintsetsInit(); idgenInit(); astInit(); rodutilsInit(); astalgoInit(); parserInit(); pbracesInit(); rendererInit(); filtersInit(); filter_tmplInit(); syntaxesInit(); treesInit(); typesInit(); stdlibmemfilesInit(); rodreadInit(); magicsysInit(); bitsetsInit(); nimsetsInit(); passesInit(); treetabInit(); vmdefInit(); semdataInit(); lookupsInit(); importerInit(); rodwriteInit(); saturateInit(); semfoldInit(); procfindInit(); pragmasInit(); semtypinstInit(); parampatternsInit(); stdliblexbaseInit(); stdlibunicodeInit(); stdlibjsonInit(); docutilsrstastInit(); docutilsrstInit(); docutilshighliteInit(); docutilsrstgenInit(); guardsInit(); sempass2Init(); stdlibmacrosInit(); stdlibxmltreeInit(); stdlibcookiesInit(); stdlibcgiInit(); typesrendererInit(); docgenInit(); stdlibalgorithmInit(); stdlibsequtilsInit(); prettyInit(); sigmatchInit(); cgmethInit(); loweringsInit(); lambdaliftingInit(); transfInit(); vmgenInit(); vmdepsInit(); evaltemplInit(); vmInit(); aliasesInit(); patternsInit(); semmacrosanityInit(); semInit(); ccgutilsInit(); cgendataInit(); ccgmergeInit(); cgenInit(); jsgenInit(); passauxInit(); dependsInit(); docgen2Init(); stdlibparseoptInit(); serviceInit(); modulesInit(); mainInit(); }
int main(int argc, char** argv) { // save argv, argc for initialization of GLUT char** orig_argv = argv; int orig_argc = argc; bool configured = false; bool graphics = true; char* port = "5000"; --argc; progname = *argv++; while (argc > 0 && (argv[0][0] == '-')) { switch (argv[0][1]) { case 'c': if (configured) help(); configFile = argv[1]; argc--; argv++; configured = true; break; case 'p': port = argv[1]; argc--; argv++; break; case 'i': stopwhenidle = atoi(argv[1]); argc--; argv++; break; case 'd': debug = true; break; case 't': graphics = false; testfile = argv[1]; argc--; argv++; break; case 'n': graphics = false; break; case 'D': vmUseThreads = false; break; case 'r': if (configured) help(); configCount = 0; configured = true; break; case 'R': if (configured) help(); configCount = atoi(argv[1]); argc--; argv++; configured = true; break; default: help(); } argc--; argv++; } if (debug) fprintf(stdout, "initial configuration\n"); // start timer initTimeKeeping(); // vm initialization vmInit(port); fprintf(stderr, "Listening on %s\n", port); if (vmUseThreads) msg2vm(NULL, CMD_MODE_ND, 0); // create blocklist and initialize mutex initBlockList(); // see if we are running a test if (testfile) configured = configtest(testfile); if (!configured) { help(); } else { if (configFile != NULL) readConfig(configFile); else randomConfig(configCount); } if (graphics) { // initialize viewer viewer_init(orig_argc, orig_argv); // GL loop indefinitely event_loop(); } else { fprintf(stderr, "Running without graphics\n"); int idle = 0; while (1) { Block *block; sleep(1); int changes = 0; ForEachBlock(block) { if (block->msgTargetsDelta > 0) changes++; } if (changes == 0) { idle++; if ((stopwhenidle > 0) && (idle > stopwhenidle)) { printf("All Done\n"); msg2vm(NULL, STOP, 0); } continue; } idle = 0; fprintf(stderr, "\n---- %d\n", changes); // something changed ForEachBlock(block) { if (block->msgTargetsDelta > 0) { block->msgTargets += block->msgTargetsDelta; block->msgTargetsDelta = 0; showBlock(stderr, block); } if (checkTest(0)) { msg2vm(NULL, STOP, 0); } } fprintf(stderr, "\n"); } } // we are all done return 0; }