public AdressModeBase(addressMode mode, int numBytes, AddressModeOutputFunction outputF, AddressModeInputFunction inputF) { this.mode = mode; this.numBytes = numBytes; this.inputF = inputF; this.outputF = outputF; }
public ArgumentValue(addressMode mode) { this.mode = mode; this.data = new byte[0]; substitutionType = null; substitutionData = 0; kind = ClassDatabase.nothing; }
public ArgumentValue(addressMode mode, int value, IValueKind kind) : this(mode, value) { this.kind = kind; }
public ArgumentValue(addressMode mode, substitutionType type, int? subdata, IValueKind kind) { this.mode = mode; substitutionType = type; data = new byte[4]; if (subdata == null) { substitutionData = 0; } else { substitutionData = (int)subdata; } this.kind = kind; }
public ArgumentValue(addressMode mode, substitutionType type, IValueKind kind) { this.mode = mode; substitutionType = type; data = new byte[4]; substitutionData = 0; this.kind = kind; }
public ArgumentValue(addressMode mode, int value) { this.mode = mode; this.substitutionType = null; this.substitutionData = 0; bool shorten = false; ; if (mode == addressMode.constint) { data = Writer.toBytes(value, true, false); shorten = true; } else if ((mode==addressMode.frameint) || (mode==addressMode.ramint) || (mode == addressMode.addrint)) { data = Writer.toBytes(value, true, false); shorten = true; } else { this.data = Writer.toBytes(value); shorten = false; } if (shorten) { switch (data.Length) { case 4: break; case 2: this.mode = (addressMode)((int)mode - 1); break; case 1: this.mode = (addressMode)((int)mode - 2); break; default: throw new Errors.NumberOutOfRangeException("address mode should return a either 4,2, or 1"); } } kind = ClassDatabase.integer; }