/** State - initialize system */ void StateInitialize() { u16 x; u8 i; // Init VideoInitialize(); SetFreq(FREQ_60); SetScreen8(LINES_212); SetSpriteMode(SPRITE_OFF, 0, 0, 0); SetScreenColor(0, 0, COLOR8_BLACK); // Clear all VRAM ClearScreen8(COLOR8_BLACK); // Initialize (ASCII table) sprites for(x=0; x<sizeof(g_CharTable) / 8; x++) { RAMtoVRAM(Modulo2(x * 8, 256), 248 + (x / 32), 8, 1, (u16)&g_CharTable[x * 8]); } // Create default 8 bytes patern from a 8 bits byte for(x=0; x<256; x++) { for(i=0; i<8; i++) { if(x & (1 << (7 - (i & 0x07)))) game.bitToByte[x * 8 + i] = 0xFF; else game.bitToByte[x * 8 + i] = 0x00; } } // Create 3D projection table for(x=0; x<512; x++) { game.projZ[x] = (512 - x) >> 3; // (512 - x) << 6 / 512 } game.lineNum[0] = 0; game.lineNum[1] = 0; game.anaglyphFx = 2; game.playerNum = 2; game.gameSpeed = 0; game.page = 0; game.state = StateTitle; }
//=========================================================================== int APIENTRY WinMain (HINSTANCE passinstance, HINSTANCE previnstance, LPSTR lpCmdLine, int nCmdShow) { #ifdef CPUDEBUG char nomearq[MAX_PATH]; #endif char imagefilename[MAX_PATH]; // DO ONE-TIME INITIALIZATION instance = passinstance; // Initialize COM CoInitialize( NULL ); GdiSetBatchLimit(512); GetProgramDirectory(); RegisterExtensions(); FrameRegisterClass(); Inicializar1(); strcpy(imagefilename, progdir); strcat(imagefilename, NOMEARQTKDOS); if (lpCmdLine[0] != '\0') { CharLowerBuff(&lpCmdLine[strlen(lpCmdLine)-3],3); strcpy(imagefilename, lpCmdLine); } #ifdef CPUDEBUG strcpy(nomearq, progdir); strcat(nomearq, "debugCPU.txt"); DeleteFile(nomearq); arquivocpu = fopen(nomearq, "wb"); #endif do { // DO INITIALIZATION THAT MUST BE REPEATED FOR A RESTART restart = 0; mode = MODE_LOGO; LoadConfiguration(); DebugInitialize(); JoyInitialize(); MemInitialize(); VideoInitialize(); Timer_InitTimer(); FrameCreateWindow(); MemAtualizaSlotAux(); if (imagefilename[0] != '\0') { DiskInsert(0, imagefilename, FALSE, FALSE); imagefilename[0] = '\0'; } // ENTER THE MAIN MESSAGE LOOP EnterMessageLoop(); } while (restart); #ifdef CPUDEBUG //CloseHandle(arquivocpu); fclose(arquivocpu); #endif // Release COM CoUninitialize(); return 0; }
void DemoInitialize() { int Status; XAxiVdma_Config *vdmaConfig; int i; /* * Initialize an array of pointers to the 3 frame buffers */ for (i = 0; i < DISPLAY_NUM_FRAMES; i++) { pFrames[i] = frameBuf[i]; } /* * Initialize VDMA driver */ vdmaConfig = XAxiVdma_LookupConfig(VGA_VDMA_ID); if (!vdmaConfig) { xil_printf("No video DMA found for ID %d\r\n", VGA_VDMA_ID); return; } Status = XAxiVdma_CfgInitialize(&vdma, vdmaConfig, vdmaConfig->BaseAddress); if (Status != XST_SUCCESS) { xil_printf("VDMA Configuration Initialization failed %d\r\n", Status); return; } /* * Initialize the Display controller and start it */ Status = DisplayInitialize(&dispCtrl, &vdma, DISP_VTC_ID, DYNCLK_BASEADDR, pFrames, DEMO_STRIDE); if (Status != XST_SUCCESS) { xil_printf("Display Ctrl initialization failed during demo initialization%d\r\n", Status); return; } Status = DisplayStart(&dispCtrl); if (Status != XST_SUCCESS) { xil_printf("Couldn't start display during demo initialization%d\r\n", Status); return; } /* * Initialize the Interrupt controller and start it. */ Status = fnInitInterruptController(&intc); if(Status != XST_SUCCESS) { xil_printf("Error initializing interrupts"); return; } fnEnableInterrupts(&intc, &ivt[0], sizeof(ivt)/sizeof(ivt[0])); /* * Initialize the Video Capture device */ Status = VideoInitialize(&videoCapt, &intc, &vdma, VID_GPIO_ID, VID_VTC_ID, VID_VTC_IRPT_ID, pFrames, DEMO_STRIDE, DEMO_START_ON_DET); if (Status != XST_SUCCESS) { xil_printf("Video Ctrl initialization failed during demo initialization%d\r\n", Status); return; } /* * Set the Video Detect callback to trigger the menu to reset, displaying the new detected resolution */ VideoSetCallback(&videoCapt, DemoISR, &fRefresh); DemoPrintTest(dispCtrl.framePtr[dispCtrl.curFrame], dispCtrl.vMode.width, dispCtrl.vMode.height, dispCtrl.stride, DEMO_PATTERN_1); return; }