Example #1
0
 int get_cursor(){
 	//select the internal register 14 and 15 of display
 	//to read the high byte and low byte of the cursor 
 	//offset.
 	int offset;
 	write_port_byte(DISPLAY_CTRL_PORT, CURSOR_HIGH_BYTE);
 	offset = read_port_byte(DISPLAY_DATA_PORT) << 8;
 	write_port_byte(DISPLAY_CTRL_PORT, CURSOR_LOW_BYTE);
 	offset += read_port_byte(DISPLAY_DATA_PORT); 	

 	return offset * 2;
 }
static void PREFIX186(_insb)(i8086_state *cpustate)    /* Opcode 0x6c */
{
#ifdef I80286
	if (PM && (CPL>IOPL)) throw TRAP(GENERAL_PROTECTION_FAULT, 0);
#endif
	ICOUNT -= timing.ins8;
	PutMemB(ES,cpustate->regs.w[DI],read_port_byte(cpustate->regs.w[DX]));
	cpustate->regs.w[DI] += cpustate->DirVal;
}
Example #3
0
static void PREFIX186(_insb)(void)    /* Opcode 0x6c */
{
	ICOUNT -= cycles.ins8;
	PutMemB(ES,I.regs.w[DI],read_port_byte(I.regs.w[DX]));
	I.regs.w[DI] += I.DirVal;
}
Example #4
0
static void PREFIX186(_insb)(i8086_state *cpustate)    /* Opcode 0x6c */
{
	ICOUNT -= timing.ins8;
	PutMemB(ES,cpustate->regs.w[DI],read_port_byte(cpustate->regs.w[DX]));
	cpustate->regs.w[DI] += cpustate->DirVal;
}