Пример #1
0
/*
    draw the operator control panel (fixed backdrop)
*/
void pdp1_state::pdp1_draw_panel_backdrop(bitmap_ind16 &bitmap)
{
	/* fill with black */
	const rectangle panel_bitmap_bounds(0, panel_window_width-1,    0, panel_window_height-1);
	m_panel_bitmap.fill(pen_panel_bg, panel_bitmap_bounds);

	/* column 1: registers, test word, test address */
	pdp1_draw_string(bitmap, "program counter", x_panel_col1_offset, y_panel_pc_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "memory address", x_panel_col1_offset, y_panel_ma_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "memory buffer", x_panel_col1_offset, y_panel_mb_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "accumulator", x_panel_col1_offset, y_panel_ac_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "in-out", x_panel_col1_offset, y_panel_io_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "extend address", x_panel_col1_offset, y_panel_ta_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "test word", x_panel_col1_offset, y_panel_tw_offset, color_panel_caption);

	/* column separator */
	bitmap.plot_box(x_panel_col2_offset-4, panel_window_offset_y+8, 1, 96, pen_panel_caption);

	/* column 2: 1-bit indicators */
	pdp1_draw_string(bitmap, "run", x_panel_col2_offset+8, y_panel_run_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "cycle", x_panel_col2_offset+8, y_panel_cyc_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "defer", x_panel_col2_offset+8, y_panel_defer_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "h. s. cycle", x_panel_col2_offset+8, y_panel_hs_cyc_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "brk. ctr. 1", x_panel_col2_offset+8, y_panel_brk_ctr_1_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "brk. ctr. 2", x_panel_col2_offset+8, y_panel_brk_ctr_2_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "overflow", x_panel_col2_offset+8, y_panel_ov_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "read in", x_panel_col2_offset+8, y_panel_rim_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "seq. break", x_panel_col2_offset+8, y_panel_sbm_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "extend", x_panel_col2_offset+8, y_panel_exd_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "i-o halt", x_panel_col2_offset+8, y_panel_ioh_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "i-o com'ds", x_panel_col2_offset+8, y_panel_ioc_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "i-o sync", x_panel_col2_offset+8, y_panel_ios_offset, color_panel_caption);

	/* column separator */
	bitmap.plot_box(x_panel_col3_offset-4, panel_window_offset_y+8, 1, 96, pen_panel_caption);

	/* column 3: power, single step, single inst, sense, flags, instr... */
	pdp1_draw_string(bitmap, "power", x_panel_col3_offset+16, y_panel_power_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "single step", x_panel_col3_offset+16, y_panel_sngl_step_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "single inst.", x_panel_col3_offset+16, y_panel_sngl_inst_offset, color_panel_caption);
	/* separator */
	bitmap.plot_box(x_panel_col3_offset+8, y_panel_sep1_offset+4, 96, 1, pen_panel_caption);
	pdp1_draw_string(bitmap, "sense switches", x_panel_col3_offset, y_panel_ss_offset, color_panel_caption);
	/* separator */
	bitmap.plot_box(x_panel_col3_offset+8, y_panel_sep2_offset+4, 96, 1, pen_panel_caption);
	pdp1_draw_string(bitmap, "program flags", x_panel_col3_offset, y_panel_pf_offset, color_panel_caption);
	pdp1_draw_string(bitmap, "instruction", x_panel_col3_offset, y_panel_ir_offset, color_panel_caption);
}
Пример #2
0
static void draw_led(bitmap_ind16 &bitmap, int x, int y,UINT8 value)
{
	bitmap.plot_box(x, y, 6, 10, 0x00000000);

	/*a*/
	bitmap.pix16(y+0, x+1) = ((value & 0x01) ? LED_ON : LED_OFF);
	bitmap.pix16(y+0, x+2) = ((value & 0x01) ? LED_ON : LED_OFF);
	bitmap.pix16(y+0, x+3) = ((value & 0x01) ? LED_ON : LED_OFF);
	/*b*/
	bitmap.pix16(y+1, x+4) = ((value & 0x02) ? LED_ON : LED_OFF);
	bitmap.pix16(y+2, x+4) = ((value & 0x02) ? LED_ON : LED_OFF);
	bitmap.pix16(y+3, x+4) = ((value & 0x02) ? LED_ON : LED_OFF);
	/*c*/
	bitmap.pix16(y+5, x+4) = ((value & 0x04) ? LED_ON : LED_OFF);
	bitmap.pix16(y+6, x+4) = ((value & 0x04) ? LED_ON : LED_OFF);
	bitmap.pix16(y+7, x+4) = ((value & 0x04) ? LED_ON : LED_OFF);
	/*d*/
	bitmap.pix16(y+8, x+1) = ((value & 0x08) ? LED_ON : LED_OFF);
	bitmap.pix16(y+8, x+2) = ((value & 0x08) ? LED_ON : LED_OFF);
	bitmap.pix16(y+8, x+3) = ((value & 0x08) ? LED_ON : LED_OFF);
	/*e*/
	bitmap.pix16(y+5, x+0) = ((value & 0x10) ? LED_ON : LED_OFF);
	bitmap.pix16(y+6, x+0) = ((value & 0x10) ? LED_ON : LED_OFF);
	bitmap.pix16(y+7, x+0) = ((value & 0x10) ? LED_ON : LED_OFF);
	/*f*/
	bitmap.pix16(y+1, x+0) = ((value & 0x20) ? LED_ON : LED_OFF);
	bitmap.pix16(y+2, x+0) = ((value & 0x20) ? LED_ON : LED_OFF);
	bitmap.pix16(y+3, x+0) = ((value & 0x20) ? LED_ON : LED_OFF);
	/*g*/
	bitmap.pix16(y+4, x+1) = ((value & 0x40) ? LED_ON : LED_OFF);
	bitmap.pix16(y+4, x+2) = ((value & 0x40) ? LED_ON : LED_OFF);
	bitmap.pix16(y+4, x+3) = ((value & 0x40) ? LED_ON : LED_OFF);
	/*"point" (just for debugging)*/
	bitmap.pix16(y+9, x+4) = ((value & 0x80) ? LED_ON : LED_OFF);
}
Пример #3
0
uint32_t pc1350_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	const int contrast = m_dsw0->read() & 7;
	int color[4] =
	{
		colortable[contrast][0],
		colortable[contrast][1],
		8,
		7
	};

	bitmap.fill(11, cliprect);

	for (int k = 0, y = DOWN; k < 4; y += 16, k++)
		for (int x = RIGHT, i = pc1350_addr[k]; i < 0xa00; i += 0x200)
			for (int j = 0; j <= 0x1d; j++, x+=2)
				for (int bit = 0; bit < 8; bit++)
					bitmap.plot_box(x, y + bit * 2, 2, 2, color[BIT(m_reg[j+i], bit)]);

	/* 783c: 0 SHIFT 1 DEF 4 RUN 5 PRO 6 JAPAN 7 SML */
	/* I don't know how they really look like on the LCD */
	pocketc_draw_special(bitmap, RIGHT-30, DOWN+45, s_shift, BIT(m_reg[0x83c], 0) ? color[2] : color[3]);
	pocketc_draw_special(bitmap, RIGHT-30, DOWN+55, s_def,   BIT(m_reg[0x83c], 1) ? color[2] : color[3]);
	pocketc_draw_special(bitmap, RIGHT-30, DOWN+5,  s_run,   BIT(m_reg[0x83c], 4) ? color[2] : color[3]);
	pocketc_draw_special(bitmap, RIGHT-30, DOWN+15, s_pro,   BIT(m_reg[0x83c], 5) ? color[2] : color[3]);
	pocketc_draw_special(bitmap, RIGHT-30, DOWN+25, s_japan, BIT(m_reg[0x83c], 6) ? color[2] : color[3]);
	pocketc_draw_special(bitmap, RIGHT-30, DOWN+35, s_sml,   BIT(m_reg[0x83c], 7) ? color[2] : color[3]);

	return 0;
}