byte read_emulator_id(UInt16 adr)
{
switch (adr)
{
case 0x7c: // $dffc: revision
return (byte)(FRODO_REVISION << 4);
case 0x7d: // $dffd: version
return FRODO_VERSION;
case 0x7e: // $dffe returns 'F' (Frodo ID)
return (byte)'F';
case 0x7f: // $dfff alternates between $55 and $aa
dfff_byte = (byte)~dfff_byte;
return dfff_byte;
default:
return adr - 0x20 >= frodo_id.Length ? (byte)0x00 : (byte)frodo_id[adr - 0x20];
}
}