示例#1
0
void screenworker()
{
	/* save DMA address - in case some DMA using programm is resuing its set DMA address */
	DWORD dmaadr=getdma();
	WORD* pxPal     = (WORD *)            0xffff8240;
	BYTE* pxScreen  = (BYTE *) *((DWORD*) 0x44e);
	/* send screen memory */
	writeScreen(TRAN_CMD_SENDSCREENCAST,(*((BYTE*)0xffff8260))&3, (BYTE *) pxScreen,32000);
	/* send 16 ST palette entries */
	memcpy(pBuffer,pxPal,16*2);
	writeScreen(TRAN_CMD_SCREENCASTPALETTE,(*((BYTE*)0xffff8260))&3, (BYTE *) pBuffer,16*2);
	/* set old DMA address */
	setdma(dmaadr);
}  
示例#2
0
void int_80(size_t call, size_t fd, char *buffer, size_t count) {
	switch (call) {
	case WRITE:
		if (fd == STDOUT) {
			writeScreen(buffer, count);
		}/*else{
			write(fd, buffer, count);
		}*/
		break;
	case ERASE:
		if (fd == STDOUT) {
			eraseScreen(buffer, count);
		}
		break;
	case READ:
		if (fd == STDIN) {
			readKeyboard(buffer, count);
		}
		break;
	default:
		break;
	}

	return;
}
示例#3
0
文件: main.c 项目: chennasatya/SPI
int main()
{
	//PRR0 = 1 << PRSPI;
	
	
	char buffer[10] = "11:00";
	 
	DDRB = (1 << PINB4) | (1 << PINB5) | (1 << PINB7);
	
	SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR0) | (1 << SPIE);
	
	SPDR = buffer[0];
	
	SPSR = (1 << SPIF);
	
	begin(1);
	setPixel(1);
	writeScreen();
	//while(! SPSR & (1 << SPIF));
	
	
	
	
	
}
示例#4
0
void Core::openInExtViewer()
{
    if (_conf->getEnableExtView())
    {
        QString format = _conf->getSaveFormat();
        if (format.isEmpty())
            format = "png";

        QString tempFileName = getTempFilename(format);
        writeScreen(tempFileName, format, true);

        QString exec;
        exec = "xdg-open";
        QStringList args;
        args << tempFileName;

        QProcess *execProcess = new QProcess(this);

        void (QProcess:: *signal)(int, QProcess::ExitStatus) = &QProcess::finished;
        connect(execProcess, signal, this, &Core::closeExtViewer);
        execProcess->start(exec, args);
    }
}
示例#5
0
// Output message to screen/logs/socket.
void
Output(const char *format, ...)
{
    // Check for error indicator (eg, format starting with "<0>")
    int code = 7;
    if (format[0] == '<'
        && format[1] >= '0' && format[1] <= '9'
        && format[2] == '>') {
        code = format[1] - '0';
        format += 3;
    }

    // Format output string.
    char rawbuf[MAXOUTBUF];
    va_list args;
    va_start(args, format);
    int rawlen = vsnprintf(rawbuf, sizeof(rawbuf) - PADOUTBUF, format, args);
    va_end(args);

    // Convert newline characters
    char buf[MAXOUTBUF];
    int len = convertNL(buf, sizeof(buf), rawbuf, rawlen);

    writeLog(buf, len);
	
	printf(buf); 
	//printf("\n");
    outputfn *ofn = getOutputFn();
    if (!ofn && code < 6) {
        Complain(rawbuf, rawlen, code-1);
        return;
    }
    if (code <= 6)
        writeScreen(buf, len);
    if (ofn && code <= 7)
        ofn->sendMessage(buf, len);
}
示例#6
0
int main(int argc, char** argv)
{
    sf::RenderWindow App(sf::VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32), "Breakout Clone");
    GAME_STATE state = START;
  
    sf::View GameView(sf::FloatRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT));
  
    // Set the view
    App.setView(GameView);

    // Create level
    game::Level level;
    
    sf::Clock clock;
    clock.restart();

    sf::Clock gameOverClock;
  
    while(App.isOpen())
    {
	sf::Time time = clock.getElapsedTime();
	clock.restart();
	
	sf::Event evt;
	while(App.pollEvent(evt))
	{
	    if(evt.type == sf::Event::Closed)
		App.close();
	    
	    if(evt.type == sf::Event::KeyPressed)
	    {
		if(evt.key.code == sf::Keyboard::Escape) App.close();
		if(evt.key.code == sf::Keyboard::Return) 
		{
		    if(state == START)
		    {
			state = RUNNING; 
			level.SetupScene(&App);
		    }
		}
	    }
	    
	    if(evt.type == sf::Event::Resized)
	    {
		std::cout << "width:" << evt.size.width << " height:" << evt.size.height << std::endl;
		resizeWindow(&App);
		sf::FloatRect viewRect = App.getView().getViewport();
		std::cout << "vp.left:" << viewRect.left << " vp.top:" << viewRect.top << " vp.width:" << viewRect.width << " vp.height:" << viewRect.height << std::endl;
	    }

	    level.HandleEvents(&evt);
	}
	
	if(state == START)
	{
	    writeScreen(&App, "Press \"return\" to start");
	    continue;
	}

	if(state == LOSE || state == WIN)
	{
	    if(state == LOSE)
		writeScreen(&App, "Game Over");
	    else
		writeScreen(&App, "You Won");

	    if(gameOverClock.getElapsedTime().asSeconds() > 10)
	    {
		state = START;
	    } 

	    continue;
	}

	if(level.HasPlayerLost())
	{
	    state = LOSE;
	    gameOverClock.restart();
	}

	if(level.HasPlayerWon())
	{
	    state = WIN;
	    gameOverClock.restart();
	}

	level.UpdatePosition(&App, &time);
	
	App.clear();
	level.Draw(&App);
	App.display();
    }
    
    return 0;
}
示例#7
0
void Core::autoSave()
{
    QString format = _conf->getSaveFormat();
    QString fileName = getSaveFilePath(format);
    writeScreen(fileName, format);
}
示例#8
0
void HT1632::fillScreen() {
  for (uint8_t i=0; i<(WIDTH*HEIGHT/8); i++) {
    ledmatrix[i] = 0xFF;
  }
  writeScreen();
}