Ypsilon.Emulation.Processor.YCPU.STO C# (CSharp) Method

STO() private method

private STO ( ushort operand ) : void
operand ushort
return void
        private void STO(ushort operand)
        {
            RegGeneral source;
            ushort dest_address;
            try {
                BitPatternSTO(operand, out dest_address, out source);
                if (source == RegGeneral.None) {}
                else {
                    SegmentIndex dataSeg = (operand & 0x8000) != 0 ? SegmentIndex.ES : SegmentIndex.DS; // S = extra segment select.
                    bool eightBitMode = (operand & 0x0100) != 0; // E = 8-bit mode
                    if (eightBitMode)
                        WriteMemInt8(dest_address, (byte)R[(int)source], dataSeg);
                    else
                        WriteMemInt16(dest_address, R[(int)source], dataSeg);
                }
                // N [Negative] Not effected.
                // Z [Zero] Not effected.
                // C [Carry] Not effected.
                // V [Overflow] Not effected.
            }
            catch (SegFaultException e) {
                Interrupt_SegFault(e.SegmentType, operand, e.Address);
            }
        }