コード例 #1
0
ファイル: cmd_tetris.c プロジェクト: qioixiy/xboot
/*
 * refresh game area
 */
static void refresh(void)
{
	struct console * con = get_console_stdout();
	s32_t w, h;
	s32_t x, y, xp, yp;

	if(!con)
		return;

	for(y=0; y < GAME_AREA_HEIGHT; y++)
	{
		if(map.dirty[y] == FALSE)
			continue;

		for(x=0; x < GAME_AREA_WIDTH; x++)
		{
			console_getwh(con, &w, &h);
			xp = (w - GAME_AREA_WIDTH) / 2;
			yp = (h - GAME_AREA_HEIGHT) / 2;
			console_gotoxy(con, xp + x, yp + y);
			if(map.screen[x][y] != TCOLOR_BLACK)
				console_setcolor(con, TCOLOR_BLACK, map.screen[x][y]);
			else
				console_setcolor(con, TCOLOR_WHITE, TCOLOR_BLACK);
			console_putcode(con, UNICODE_SPACE);
		}
		map.dirty[y] = FALSE;
    }
}
コード例 #2
0
ファイル: version.c プロジェクト: rharter/xboot-clone
/*
 * print xboot's character logo.
 */
void xboot_char_logo(struct console * console, u32_t x0, u32_t y0)
{
	u32_t i, len;
	s32_t w, h;
	char buf[64];

	if(!console)
		return;

	if(!console_getwh(console, &w, &h))
		return;

	if(x0 + 1 > w || y0 + 1 > h)
		return;

	for(i = 0; i < 6; i++)
	{
		len = strlen(&xboot[i][0]);
		if( len <= w - x0 )
			sprintf(buf, "%s", &xboot[i][0]);
		else
		{
			strncpy(buf, &xboot[i][0], w - x0);
			buf[w - x0] = 0;
		}
		console_gotoxy(console, x0, y0 + i);
		console_print(console, (const char *)buf);
	}
}
コード例 #3
0
ファイル: console.c プロジェクト: rharter/xboot-clone
bool_t console_hline(struct console * console, u32_t code, u32_t x0, u32_t y0, u32_t x)
{
	s32_t w, h;
	s32_t i;

	if(console && console->putcode)
	{
		if(!console_getwh(console, &w, &h))
			return FALSE;

		if(x0 >= w || y0 >= h)
			return FALSE;

		if(x0 + x >= w)
			x = w - x0;

		if(!console_gotoxy(console, x0, y0))
			return FALSE;

		for(i = 0; i < x; i++)
			console->putcode(console, code);

		return TRUE;
	}

	return FALSE;
}
コード例 #4
0
ファイル: console.c プロジェクト: whitecatboard/LuaOS
void console_clearstatusline() {
    int rows = 0;
    int cols = 0;
    
    console_size(&rows, &cols);
    
    console_gotoxy(0, rows);
    printf("\033[K\033[0m");
}
コード例 #5
0
ファイル: console.c プロジェクト: whitecatboard/LuaOS
void console_statusline(const char *text1, const char *text2) {
    int rows = 0;
    int cols = 0;
    
    console_size(&rows, &cols);
    
    console_gotoxy(0, rows);
    printf("\033[1m\033[7m%s%s\033[K\033[0m", text1, text2);
}
コード例 #6
0
ファイル: console.c プロジェクト: rharter/xboot-clone
bool_t console_rect(struct console * console, u32_t hline, u32_t vline, u32_t lt, u32_t rt, u32_t lb, u32_t rb, u32_t x, u32_t y, u32_t w, u32_t h)
{
	s32_t width, height;

	if(console && console->putcode)
	{
		if(!console_getwh(console, &width, &height))
			return FALSE;

		if(x < 0 || y < 0 || w < 2 || h < 2)
			return FALSE;

		if(x >= width || y >= height)
			return FALSE;

		if(x + w - 1 >= width)
			return FALSE;

		if(y + h - 1 >= height)
			return FALSE;

		console_gotoxy(console, x, y);
		console_putcode(console, lt);

		console_gotoxy(console, x + w - 1, y);
		console_putcode(console, rt);

		console_gotoxy(console, x, y + h - 1);
		console_putcode(console, lb);

		console_gotoxy(console, x + w - 1, y + h - 1);
		console_putcode(console, rb);

		console_hline(console, hline, x + 1, y, w - 1 - 1);
		console_hline(console, hline, x + 1, y + h - 1, w - 1 - 1);
		console_vline(console, vline, x, y + 1, h - 1 - 1);
		console_vline(console, vline, x + w - 1, y + 1, h - 1 - 1);

		return TRUE;
	}

	return FALSE;
}
コード例 #7
0
ファイル: main.c プロジェクト: antoniovillena/zxuno
void choose_mode(int sd_ok)
{
	int i = 0;
	console_gotoxy(9,10);
	if (sd_ok) {
		//console_puts("load from SD card");
		pick_and_load_rom();
	} else {
		console_puts("retry SD/MMC card");
	}
	//console_gotoxy(9,12);
	//console_puts("boot SRAM");

	for (;;) {
		int key;
		console_gotoxy(6,10);
		if (i==0) { console_puts(">"); } else { console_puts("  "); }
		console_gotoxy(6,12);
		if (i==1) { console_puts(">"); } else { console_puts("  "); }
		key = wait_key();
		switch (key) {
		case JOY_UP:
			i = 0;
			break;
	//	case JOY_DOWN:
	//		i = 1;
	//		break;
		case JOY_FIREA:
		case JOY_FIREB:
			if (i==0) {
				if (sd_ok) {
					pick_and_load_rom();
				}
			} else {
				start_rom();
			}
			return;
		}
	}
}
コード例 #8
0
ファイル: main.c プロジェクト: antoniovillena/zxuno
void load_rom(file_descr_t *entry)
{
	file_t file;
	int i;
	DWORD size;

	console_clear();
	console_puts("Loading ");
	for (i=0; i<8; i++) {
		console_putc(entry->name[i]);
	}
	console_putc('.');
	for (i=8; i<11; i++) {
		console_putc(entry->name[i]);
	}
	console_puts("\n\n");

	fat_open_file(&file, entry->cluster);
	size = 0;
	while (1) {
		UBYTE* data;
		if ((size&0x3fff)==0) {
			// switch page 1
			*((UBYTE*)0xffff) = (size>>14)&0xff;
		}
		// write to page 2
		data = 0x8000+(size&0x3fff);
		data = fat_load_file_sector(&file,data);
		if (data==0) {
			console_puts("Error while reading file\n");
		} else if (data==FAT_EOF) {
			console_gotoxy(0,2);
			return;
		} else {
			// process data
			size += 0x200;
			if ((size)%16384 == 0)
			   console_puts(".");
			//console_gotoxy(0,3);
			//console_print_dword(size);
			//console_puts(" bytes loaded");
		}
	}
コード例 #9
0
ファイル: main.c プロジェクト: antoniovillena/zxuno
void main()
{
	int i;
	char *ptr;

	vdp_set_address(0x8004); // mode 4, disable hbl irq
	vdp_set_address(0x8160); // screen on, enable vbl irq
	vdp_set_address(0x820e); // name table @ $3800
	vdp_set_address(0x85ff); // sprite table @ $3f00
	vdp_set_address(0x8700); // backdrop is color 0
	vdp_set_address(0x8800); // scrollx is 0
	vdp_set_address(0x8900); // scrolly is 0

	vdp_set_address(0xc000);
	ptr = pal;
	for (i=0; i<32; i++) {
		vdp_write(*ptr++);
	}

	// turn off sprites
	vdp_set_address(0x3f00);
	vdp_write(0xd0);

	//Sound off - if resetted from a prior game
	set_sound_volume(0,0);
	set_sound_volume(1,0);
	set_sound_volume(2,0);
	set_sound_volume(3,0);

	while (1) {
		console_init();
		console_clear();

		console_gotoxy(3,0);
		console_puts("MASTER SYSTEM ROM LOADER\n");
		console_gotoxy(3,1);
		console_puts("------------------------\n");
		//console_gotoxy(3,3);

		i = 0;
		if (!sd_init()) {
			console_puts("Error initializing SD/MMC card\n");
		} else {
	#ifdef DEBUG2
			console_puts("SD card initialized\n");
	#endif
			if (!fat_init()) {
				//console_puts("could not initialize FAT system\n"); //qq
	
			} else {
	#ifdef DEBUG2
				console_puts("FAT system initialized\n");
	#endif
				i = 1;
			}
		}


		choose_mode(i);
	}
}