// ------------------------------------------------------------------------------------------------- // Gets the breakpoints // // \param cb The cb. // \param tag (Optional) The tag. // ------------------------------------------------------------------------------------------------- public void GetBreakpoints(SerialCallback cb, int tag = 0) { sendbuffer.Clear(); AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_GetBreakpoint); SendCommand(UARTCommand.Cmd_GetBreakpoint, sendbuffer.ToArray(), cb, 53, tag, 0, 0); }
// ------------------------------------------------------------------------------------------------- // Gets the registers // // \param cb The cb. // \param tag (Optional) The tag. // ------------------------------------------------------------------------------------------------- public void GetRegisters(SerialCallback cb, int tag = 0) { sendbuffer.Clear(); AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_SendRegs); SendCommand(UARTCommand.Cmd_SendRegs, sendbuffer.ToArray(), cb, 93, tag, 0, 0); }
int _count; // Counter for serial comm /// <summary> /// Constructor /// </summary> public SerialComm(string portName, SerialCallback callBack) { const uint bitRate = 115200; _portDef = PortDefinition.CreateInstanceForSerial(portName, portName, bitRate); _callBack = callBack; }
public void RemoveBreakpoint(SerialCallback cb, int addr, int bank) { sendbuffer.Clear(); AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_RemoveBreakpoint); Add8Value(ref sendbuffer, bank); Add16Value(ref sendbuffer, addr); SendCommand(UARTCommand.Cmd_RemoveBreakpoint, sendbuffer.ToArray(), cb, 0, 0, 0, 0); }
// ------------------------------------------------------------------------------------------------- // Sends a watch // // \param cb The cb. // \param addr The address. // \param bank The bank. // \param tag (Optional) The tag. // ------------------------------------------------------------------------------------------------- public void SendWatch(SerialCallback cb, int addr, int bank, int tag = 0) { sendbuffer.Clear(); AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_SendWatch); Add8Value(ref sendbuffer, bank); Add16Value(ref sendbuffer, addr); SendCommand(UARTCommand.Cmd_SendWatch, sendbuffer.ToArray(), cb, 5, tag, addr, 0); }
public void SendRequest(byte[] bytes, SerialCallback callback) { _bytesToRead = 0; _serialPort.DiscardInBuffer(); _callback = callback; _requestOwner = bytes[0]; byte function = bytes[1]; int quantity = 0; byte[] quantityBytes = null; switch (function) { case 1: case 2: quantity = Quantity(bytes); if (quantity % 8 == 0) { _bytesToRead = 5 + quantity / 8; } else { _bytesToRead = 6 + quantity / 8; } break; case 3: case 4: quantity = Quantity(bytes); _bytesToRead = 5 + 2 * quantity; break; case 5: case 6: case 15: case 16: _bytesToRead = 8; break; } var crc = BitConverter.GetBytes(CalculateCRC(bytes, (ushort)(bytes.Length - 2), 0)); bytes[bytes.Length - 2] = crc[0]; bytes[bytes.Length - 1] = crc[1]; _serialPort.Write(bytes, 0, bytes.Length); }
public SerialCommand(UARTCommand uart, byte[] c, SerialCallback cb, int wantBytes, int _tag = 0, int _a0 = 0, int _a1 = 0) { sendcommand = c; callback = cb; tag = _tag; uartCommand = uart; returnbytes = wantBytes; a0 = _a0; a1 = _a1; }
// ------------------------------------------------------------------------------------------------- // Gets a memory // // \param cb The cb. // \param addr The address. // \param bytes The bytes. // \param tag (Optional) The tag. // ------------------------------------------------------------------------------------------------- public void GetMemory(SerialCallback cb, int addr, int bytes, int bank, int tag = 0) { sendbuffer.Clear(); AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_SendMem); Add8Value(ref sendbuffer, bank); Add16Value(ref sendbuffer, addr); Add16Value(ref sendbuffer, bytes); SendCommand(UARTCommand.Cmd_SendMem, sendbuffer.ToArray(), cb, bytes + 5, tag, addr, bytes); }
// ------------------------------------------------------------------------------------------------- // Pause execution // // \param cb The cb. // \param pause True to pause. // ------------------------------------------------------------------------------------------------- public void PauseExecution(SerialCallback cb, bool pause) { sendbuffer.Clear(); if (pause) { Program.StepBusy = true; AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_Pause); SendCommand(UARTCommand.Cmd_Pause, sendbuffer.ToArray(), cb, 0, 0, 0, 0); } else { AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_Continue); SendCommand(UARTCommand.Cmd_Continue, sendbuffer.ToArray(), cb, 0, 0, 0, 0); } }
// ------------------------------------------------------------------------------------------------- // Sends a command // // \param uart The uart. // \param sendBytes The send in bytes. // \param cb The cb. // \param wantbytes The wantbytes. // \param tag (Optional) The tag. // ------------------------------------------------------------------------------------------------- public void SendCommand(UARTCommand uart, byte[] sendBytes, SerialCallback cb, int wantbytes, int tag, int a0, int a1) { if (pause) { return; } if (commands.Count > 50) { return; } if (!mySerialPort.IsOpen) { return; } SerialCommand t = new SerialCommand(uart, sendBytes, cb, wantbytes, tag, a0, a1); commands.Enqueue(t); }
public void SendRegisters(SerialCallback cb) { sendbuffer.Clear(); AddCommand(ref sendbuffer, (int)UARTCommand.Cmd_SetRegs); Add8Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.f_e)); Add8Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.a_e)); Add8Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.r)); Add8Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.i)); Add8Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.f)); Add8Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.a)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.iy)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.ix)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.bc_e)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.de_e)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.hl_e)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.bc)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.de)); Add16Value(ref sendbuffer, MainForm.myNewRegisters.GetRegisterValueint(Registers.Z80Register.hl)); SendCommand(UARTCommand.Cmd_SetRegs, sendbuffer.ToArray(), cb, 0, 0, 0, 0); }