{/************************************************************************/}
{/* 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;