Example #1
0
        public CarRepository(string filePath, SegmentEnum segment)
        {
            Segment = segment;
            CarList = new List <Car>();

            List <string> lines = File.ReadAllLines(filePath).ToList();
            var           json  = string.Join("", lines);

            AddCars(json);
        }
Example #2
0
File: CPU.cs Project: richgieg/rx64
 private void SetWordInEffectiveSegment(SegmentEnum PreferredSegment, ulong Address, ushort Value)
 {
     SetWord(GetEffectiveSegment(PreferredSegment), Address, Value);
 }
Example #3
0
File: CPU.cs Project: richgieg/rx64
        private void SetWord(SegmentEnum Segment, ulong Address, ushort Value)
        {
            if ((opMode == OpModeEnum.RealAddressMode))
            {
                if ((Segment == SegmentEnum.SS) && (Address > 0xfffe))
                    RaiseException(ExceptionEnum.StackFault, ExceptionDetailEnum.Null);
            }

            mch.SetWord(GetRealAddress(Segment, Address), Value);
        }
Example #4
0
File: CPU.cs Project: richgieg/rx64
 private void SetQword(SegmentEnum Segment, ulong Address, ulong Value)
 {
     mch.SetQword(GetRealAddress(Segment, Address), Value);
 }
Example #5
0
File: CPU.cs Project: richgieg/rx64
 private void SetByteInEffectiveSegment(SegmentEnum PreferredSegment, ulong Address, byte Value)
 {
     SetByte(GetEffectiveSegment(PreferredSegment), Address, Value);
 }
Example #6
0
File: CPU.cs Project: richgieg/rx64
 private void SetByte(SegmentEnum Segment, ulong Address, byte Value)
 {
     mch.SetByte(GetRealAddress(Segment, Address), Value);
 }
Example #7
0
File: CPU.cs Project: richgieg/rx64
 private ushort GetWordInEffectiveSegment(SegmentEnum PreferredSegment, ulong Address)
 {
     return GetWord(GetEffectiveSegment(PreferredSegment), Address);
 }
Example #8
0
File: CPU.cs Project: richgieg/rx64
        private ushort GetWord(SegmentEnum Segment, ulong Address)
        {
            if ((opMode == OpModeEnum.RealAddressMode))
            {
                if ((Segment == SegmentEnum.SS) && (Address > 0xfffe))
                    RaiseException(ExceptionEnum.StackFault, ExceptionDetailEnum.Null);
            }

            return mch.GetWord(GetRealAddress(Segment, Address));
        }
Example #9
0
File: CPU.cs Project: richgieg/rx64
        // gets the linear address which will be sent to the memory controller
        private ulong GetRealAddress(SegmentEnum Segment, ulong Address)
        {
            ushort segValue = 0;

            switch (Segment)
            {
                case SegmentEnum.CS:
                    segValue = cs;
                    break;

                case SegmentEnum.DS:
                    segValue = ds;
                    break;

                case SegmentEnum.ES:
                    segValue = es;
                    break;

                case SegmentEnum.FS:
                    segValue = fs;
                    break;

                case SegmentEnum.GS:
                    segValue = gs;
                    break;

                case SegmentEnum.SS:
                    segValue = ss;
                    break;
            }

            switch (opMode)
            {
                case OpModeEnum.RealAddressMode:
                    return ((ulong)(segValue << 4) + Address) & (uint)(maskA20 ? 0xfffff : 0x1fffff);

                case OpModeEnum.ProtectedMode:
                    return (uint)Address;

                case OpModeEnum.IA32e_CompatibilityMode:
                    return (uint)Address;

                default:                    // OpMode.IA32e_64bitMode:
                    return Address;
            }
        }
Example #10
0
File: CPU.cs Project: richgieg/rx64
 private ulong GetQword(SegmentEnum Segment, ulong Address)
 {
     return mch.GetQword(GetRealAddress(Segment, Address));
 }
Example #11
0
File: CPU.cs Project: richgieg/rx64
 // returns PreferredSegment, unless a segment override prefix has been encountered... in which case it returns the overriding segment
 private SegmentEnum GetEffectiveSegment(SegmentEnum PreferredSegment)
 {
     if (!segmentOverride.Active)
     {
         return PreferredSegment;
     }
     else
     {
         return segmentOverride.Value;
     }
 }
Example #12
0
File: CPU.cs Project: richgieg/rx64
 private byte GetByteInEffectiveSegment(SegmentEnum PreferredSegment, ulong Address)
 {
     return GetByte(GetEffectiveSegment(PreferredSegment), Address);
 }
Example #13
0
File: CPU.cs Project: richgieg/rx64
 private byte GetByte(SegmentEnum Segment, ulong Address)
 {
     return mch.GetByte(GetRealAddress(Segment, Address));
 }