Metropoli BBS
VIEWER: progp003.pas MODE: TEXT (ASCII)
{/************************************************************************/}
{/* Get cursor position by reading CRTC registers E and F		*/}
{/************************************************************************/}

procedure read_cursor_address;
const
MONO = 5;
VMONO = 7;
var
hi,lo,port: integer;
begin
	if get_display_type = MONO then port := $3B4
	else if get_display_type = VMONO then port := $3B4
	else port := $3D4;
	write_register(port, $0E);	{/* Select register index	*/}
	hi := read_register(port+1);	{/* Get register value		*/}
	write_register(port, $0F);	{/* Select register		*/}
	lo := read_register(port+1);	{/* Get register value		*/}
	writeln('Cursor is at ', hi * 256 + lo, ' (decimal)');
end;
[ RETURN TO DIRECTORY ]