public byte ExtReadByte(UInt16 adr)
{
// Save old memory configuration
bool bi = basic_in, ki = kernal_in, ci = char_in, ii = io_in;
// Set new configuration
basic_in = (ExtConfig & 3) != 0;
kernal_in = (ExtConfig & 2) != 0;
char_in = ((ExtConfig & 3) != 0) && (~(ExtConfig & 4) != 0);
io_in = (ExtConfig & 3) != 0 && (ExtConfig & 4) != 0;
// Read byte
byte abyte = read_byte(adr);
// Restore old configuration
basic_in = bi; kernal_in = ki; char_in = ci; io_in = ii;
return abyte;
}