예제 #1
0
파일: test0.c 프로젝트: rf7/comp421lab1
int
main(int argc, char **argv)
{
    InitTerminalDriver();
    InitTerminal(1);
    InitTerminal(2);

    if (argc > 1) HardwareOutputSpeed(1, atoi(argv[1]));
    if (argc > 2) HardwareInputSpeed(1, atoi(argv[2]));
    if (argc > 1) HardwareOutputSpeed(2, atoi(argv[1]));
    if (argc > 2) HardwareInputSpeed(2, atoi(argv[2]));

    while (1)
    	;

    exit(0);
}
예제 #2
0
STATE* Init(int argc, char* argv[])
{
    STATE* state;

    state = (STATE*)malloc(sizeof(STATE));
    if (!state)
        return NULL;

    memset(state, 0, sizeof(STATE));
    srand(time(0));

    state->Bx = 10;
    state->By = 20;
    state->queue = g_queue_new();
    state->fieldwin = NULL;
    state->queue_size = 5;
    state->init_speed = INIT_SPEED;
    state->delta = DELTA_SPEED;

    state->init_level = 1;
    state->line_clear_timeout = 0;

    state->do_clear = CLEAR_FLASH;
    state->do_rotate_timeout_reset = 0;
    state->do_dissolve = 1;
    state->do_pause_blocks = 0;

    // setup the default keymap
    state->keymap[TETRIS_KEY_QUIT]              = KeyParse("q");
    state->keymap[TETRIS_KEY_DROP]              = KeyParse("d");
    state->keymap[TETRIS_KEY_LOWER]             = KeyParse("s");
    state->keymap[TETRIS_KEY_ROTATE_CW]         = KeyParse("k");
    state->keymap[TETRIS_KEY_ROTATE_CCW]        = KeyParse("e");
    state->keymap[TETRIS_KEY_MOVE_LEFT]         = KeyParse("j");
    state->keymap[TETRIS_KEY_MOVE_RIGHT]        = KeyParse("l");
    state->keymap[TETRIS_KEY_PAUSE]             = KeyParse("p");
    state->keymap[TETRIS_KEY_RESET]             = KeyParse("r");

    if (! ParseOptions(state, argc, argv)) {
        Cleanup(state);
        return NULL;
    }

    // allocate the field data
    state->field = (char*)malloc(state->Bx * state->By);
    // game instance specific initiailzation
    Reset(state);
    // initialize the curses session
    InitTerminal(state);
    // orient the windows
    DimensionWindows(state);

    // TODO: we need to catch SIGWINCH,
    //       to be able to resize accordingly.
    // signal(SIGWINCH, SignalHandler);

    return state;
}
예제 #3
0
int main(int argc, char **argv)
{
    InitTerminalDriver();
    InitTerminal(1);

    if (argc > 1) HardwareOutputSpeed(1, atoi(argv[1]));
    if (argc > 2) HardwareInputSpeed(1, atoi(argv[2]));

    ThreadCreate(writer, NULL);

    ThreadWaitAll();

    exit(0);
}
예제 #4
0
파일: tn3270.c 프로젝트: a5216652166/rcp100
    int
tn3270_ttype(void)
{
    /*
     * Try to send a 3270 type terminal name.  Decide which one based
     * on the format of our screen, and (in the future) color
     * capaiblities.
     */
    InitTerminal();		/* Sets MaxNumberColumns, MaxNumberLines */
    if ((MaxNumberLines >= 24) && (MaxNumberColumns >= 80)) {
	Sent3270TerminalType = 1;
	if ((MaxNumberLines >= 27) && (MaxNumberColumns >= 132)) {
	    MaxNumberLines = 27;
	    MaxNumberColumns = 132;
	    sb_terminal[SBTERMMODEL] = '5';
	} else if (MaxNumberLines >= 43) {
	    MaxNumberLines = 43;
	    MaxNumberColumns = 80;
	    sb_terminal[SBTERMMODEL] = '4';
	} else if (MaxNumberLines >= 32) {
	    MaxNumberLines = 32;
	    MaxNumberColumns = 80;
	    sb_terminal[SBTERMMODEL] = '3';
	} else {
	    MaxNumberLines = 24;
	    MaxNumberColumns = 80;
	    sb_terminal[SBTERMMODEL] = '2';
	}
	NumberLines = 24;		/* before we start out... */
	NumberColumns = 80;
	ScreenSize = NumberLines*NumberColumns;
	if ((MaxNumberLines*MaxNumberColumns) > MAXSCREENSIZE) {
	    ExitString("Programming error:  MAXSCREENSIZE too small.\n",
								1);
	    /*NOTREACHED*/
	}
	printsub('>', sb_terminal+2, sizeof sb_terminal-2);
	ring_supply_data(&netoring, sb_terminal, sizeof sb_terminal);
	return 1;
    } else {
	return 0;
    }
}
예제 #5
0
파일: tn3270.c 프로젝트: a5216652166/rcp100
    void
SetIn3270(void)
{
    if (Sent3270TerminalType && my_want_state_is_will(TELOPT_BINARY)
		&& my_want_state_is_do(TELOPT_BINARY) && !donebinarytoggle) {
	if (!In3270) {
	    In3270 = 1;
	    Init3270();		/* Initialize 3270 functions */
	    /* initialize terminal key mapping */
	    InitTerminal();	/* Start terminal going */
	    setconnmode(0);
	}
    } else {
	if (In3270) {
	    StopScreen(1);
	    In3270 = 0;
	    Stop3270();		/* Tell 3270 we aren't here anymore */
	    setconnmode(0);
	}
    }
}
예제 #6
0
int
main(int argc, char **argv)
{
	int len1, len2;
        char buf1[2];
        char buf2[10];
InitTerminalDriver();
InitTerminal(0);   

     len1 = ReadTerminal(0, buf1, 2);
   // status = WriteTerminal(1, string1, length1);
    len2 = ReadTerminal(0, buf2, 10);
   //     
   // if (argc > 1) HardwareOutputSpeed(1, atoi(argv[1]));
   // if (argc > 2) HardwareInputSpeed(1, atoi(argv[2]));

   // ThreadCreate(writer1, NULL);
 //  ThreadCreate(writer2, NULL);
 printf("len1 %d, %c %c,  len2 %d, %c %c %c\n", len1, buf1[0],buf1[1],len2, buf2[0],buf2[1],buf2[9]);

    ThreadWaitAll();

    exit(0);
}