private void JSR(ushort operand)
{
ushort value;
uint farValue;
bool isFar;
try {
BitPatternJMI(operand, out value, out farValue, out isFar);
if (isFar && !PS_S) {
Interrupt_UnPrivFault(operand);
}
else if (isFar) {
StackPush(operand, (ushort)(farValue >> 16));
StackPush(operand, (ushort)farValue);
}
StackPush(operand, PC);
PC = value;
}
catch (SegFaultException e) {
Interrupt_SegFault(e.SegmentType, operand, e.Address);
}
}