diff --git a/tools/src/librlink/RlinkPortCuff.cpp b/tools/src/librlink/RlinkPortCuff.cpp index 7cb6f110..38d8a018 100644 --- a/tools/src/librlink/RlinkPortCuff.cpp +++ b/tools/src/librlink/RlinkPortCuff.cpp @@ -1,4 +1,4 @@ -// $Id: RlinkPortCuff.cpp 858 2017-03-05 17:41:37Z mueller $ +// $Id: RlinkPortCuff.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2012-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.1.5 Open(): set default scheme // 2017-03-04 858 1.1.4 use clock_gettime instead of gettimeofday // 2015-04-12 666 1.1.3 add noinit attribute // 2014-08-22 584 1.1.2 use nullptr @@ -26,7 +27,7 @@ /*! \file - \version $Id: RlinkPortCuff.cpp 858 2017-03-05 17:41:37Z mueller $ + \version $Id: RlinkPortCuff.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of RlinkPortCuff. */ @@ -98,7 +99,7 @@ bool RlinkPortCuff::Open(const std::string& url, RerrMsg& emsg) if (IsOpen()) Close(); - if (!fUrl.Set(url, "|trace|noinit|", emsg)) return false; + if (!fUrl.Set(url, "|trace|noinit|", "cuff", emsg)) return false; // initialize USB context irc = libusb_init(&fpUsbContext); diff --git a/tools/src/librlink/RlinkPortFifo.cpp b/tools/src/librlink/RlinkPortFifo.cpp index a25c2968..08fba482 100644 --- a/tools/src/librlink/RlinkPortFifo.cpp +++ b/tools/src/librlink/RlinkPortFifo.cpp @@ -1,6 +1,6 @@ -// $Id: RlinkPortFifo.cpp 666 2015-04-12 21:17:54Z mueller $ +// $Id: RlinkPortFifo.cpp 875 2017-04-15 21:58:50Z mueller $ // -// Copyright 2011-2015 by Walter F.J. Mueller +// Copyright 2011-2017 by Walter F.J. Mueller // // This program is free software; you may redistribute and/or modify it under // the terms of the GNU General Public License as published by the Free @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.2.1 Open(): set default scheme // 2015-04-12 666 1.2 add xon,noinit attributes // 2013-02-23 492 1.1 use RparseUrl // 2011-03-27 374 1.0 Initial version @@ -21,7 +22,7 @@ /*! \file - \version $Id: RlinkPortFifo.cpp 666 2015-04-12 21:17:54Z mueller $ + \version $Id: RlinkPortFifo.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of RlinkPortFifo. */ @@ -65,7 +66,7 @@ bool RlinkPortFifo::Open(const std::string& url, RerrMsg& emsg) { if (IsOpen()) Close(); - if (!fUrl.Set(url, "|keep|xon|noinit|", emsg)) return false; + if (!fUrl.Set(url, "|keep|xon|noinit|", "fifo", emsg)) return false; // Note: _rx fifo must be opened before the _tx fifo, otherwise the test // bench might close with EOF on read prematurely (is a race condition). diff --git a/tools/src/librlink/RlinkPortTerm.cpp b/tools/src/librlink/RlinkPortTerm.cpp index ce302a57..fd02f421 100644 --- a/tools/src/librlink/RlinkPortTerm.cpp +++ b/tools/src/librlink/RlinkPortTerm.cpp @@ -1,4 +1,4 @@ -// $Id: RlinkPortTerm.cpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: RlinkPortTerm.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2011-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.3.2 Open(): set default scheme // 2017-04-07 868 1.3.1 Dump(): add detail arg // 2015-04-12 666 1.3 drop xon/xoff excaping; add noinit attribute // 2015-02-01 641 1.2 support custom baud rates (5M,6M,10M,12M) @@ -28,7 +29,7 @@ /*! \file - \version $Id: RlinkPortTerm.cpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: RlinkPortTerm.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of RlinkPortTerm. */ @@ -83,7 +84,7 @@ bool RlinkPortTerm::Open(const std::string& url, RerrMsg& emsg) { Close(); - if (!fUrl.Set(url, "|baud=|break|cts|xon|noinit|", emsg)) return false; + if (!fUrl.Set(url, "|baud=|break|cts|xon|noinit|", "term", emsg)) return false; // if path doesn't start with a '/' prepend a '/dev/tty' if (fUrl.Path().substr(0,1) != "/") { diff --git a/tools/src/librw11/Rw11VirtDiskFile.cpp b/tools/src/librw11/Rw11VirtDiskFile.cpp index 028fd32c..433c65df 100644 --- a/tools/src/librw11/Rw11VirtDiskFile.cpp +++ b/tools/src/librw11/Rw11VirtDiskFile.cpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtDiskFile.cpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtDiskFile.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.1.2 Open(): add overload with scheme handling // 2017-04-07 868 1.1.1 Dump(): add detail arg // 2017-03-11 859 1.1 use fWProt // 2013-04-14 506 1.0 Initial version @@ -21,7 +22,7 @@ /*! \file - \version $Id: Rw11VirtDiskFile.cpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtDiskFile.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of Rw11VirtDiskFile. */ @@ -65,7 +66,16 @@ Rw11VirtDiskFile::~Rw11VirtDiskFile() bool Rw11VirtDiskFile::Open(const std::string& url, RerrMsg& emsg) { - if (!fUrl.Set(url, "|wpro|", emsg)) return false; + return Open(url, "file", emsg); +} + +//------------------------------------------+----------------------------------- +//! FIXME_docs + +bool Rw11VirtDiskFile::Open(const std::string& url, const std::string& scheme, + RerrMsg& emsg) +{ + if (!fUrl.Set(url, "|wpro|", scheme, emsg)) return false; fWProt = fUrl.FindOpt("wpro"); diff --git a/tools/src/librw11/Rw11VirtDiskFile.hpp b/tools/src/librw11/Rw11VirtDiskFile.hpp index 746ca872..50d4e0c6 100644 --- a/tools/src/librw11/Rw11VirtDiskFile.hpp +++ b/tools/src/librw11/Rw11VirtDiskFile.hpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtDiskFile.hpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtDiskFile.hpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.0.2 Open(): add overload with scheme handling // 2017-04-07 868 1.0.1 Dump(): add detail arg // 2013-04-14 506 1.0 Initial version // 2013-02-13 488 0.1 First draft @@ -21,7 +22,7 @@ /*! \file - \version $Id: Rw11VirtDiskFile.hpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtDiskFile.hpp 875 2017-04-15 21:58:50Z mueller $ \brief Declaration of class Rw11VirtDiskFile. */ @@ -38,7 +39,9 @@ namespace Retro { explicit Rw11VirtDiskFile(Rw11Unit* punit); ~Rw11VirtDiskFile(); - bool Open(const std::string& url, RerrMsg& emsg); + virtual bool Open(const std::string& url, RerrMsg& emsg); + bool Open(const std::string& url, const std::string& scheme, + RerrMsg& emsg); virtual bool Read(size_t lba, size_t nblk, uint8_t* data, RerrMsg& emsg); diff --git a/tools/src/librw11/Rw11VirtDiskOver.cpp b/tools/src/librw11/Rw11VirtDiskOver.cpp index 0e869a65..3bbe2631 100644 --- a/tools/src/librw11/Rw11VirtDiskOver.cpp +++ b/tools/src/librw11/Rw11VirtDiskOver.cpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtDiskOver.cpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtDiskOver.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2017- by Walter F.J. Mueller // @@ -13,13 +13,14 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.0.2 Open(): use overload with scheme handling // 2017-04-07 868 1.0.1 Dump(): add detail arg // 2017-03-10 859 1.0 Initial version // --------------------------------------------------------------------------- /*! \file - \version $Id: Rw11VirtDiskOver.cpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtDiskOver.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of Rw11VirtDiskOver. */ @@ -72,8 +73,7 @@ bool Rw11VirtDiskOver::WProt() const bool Rw11VirtDiskOver::Open(const std::string& url, RerrMsg& emsg) { // FIXME_code: do we need to handle wpro ? - // FIXME_code: at this point assume that parent ignore proto - return Rw11VirtDiskFile::Open(url, emsg); + return Rw11VirtDiskFile::Open(url, "over", emsg); } //------------------------------------------+----------------------------------- diff --git a/tools/src/librw11/Rw11VirtDiskOver.hpp b/tools/src/librw11/Rw11VirtDiskOver.hpp index 594341c4..42320173 100644 --- a/tools/src/librw11/Rw11VirtDiskOver.hpp +++ b/tools/src/librw11/Rw11VirtDiskOver.hpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtDiskOver.hpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtDiskOver.hpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2017- by Walter F.J. Mueller // @@ -20,7 +20,7 @@ /*! \file - \version $Id: Rw11VirtDiskOver.hpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtDiskOver.hpp 875 2017-04-15 21:58:50Z mueller $ \brief Declaration of class Rw11VirtDiskOver. */ @@ -48,7 +48,7 @@ namespace Retro { virtual bool WProt() const; - bool Open(const std::string& url, RerrMsg& emsg); + virtual bool Open(const std::string& url, RerrMsg& emsg); virtual bool Read(size_t lba, size_t nblk, uint8_t* data, RerrMsg& emsg); diff --git a/tools/src/librw11/Rw11VirtStream.hpp b/tools/src/librw11/Rw11VirtStream.hpp index 208a8ef2..ca9b1ab9 100644 --- a/tools/src/librw11/Rw11VirtStream.hpp +++ b/tools/src/librw11/Rw11VirtStream.hpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtStream.hpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtStream.hpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -20,7 +20,7 @@ /*! \file - \version $Id: Rw11VirtStream.hpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtStream.hpp 875 2017-04-15 21:58:50Z mueller $ \brief Declaration of class Rw11VirtStream. */ @@ -39,7 +39,7 @@ namespace Retro { explicit Rw11VirtStream(Rw11Unit* punit); ~Rw11VirtStream(); - bool Open(const std::string& url, RerrMsg& emsg); + virtual bool Open(const std::string& url, RerrMsg& emsg); int Read(uint8_t* data, size_t count, RerrMsg& emsg); bool Write(const uint8_t* data, size_t count, RerrMsg& emsg); bool Flush(RerrMsg& emsg); diff --git a/tools/src/librw11/Rw11VirtTapeTap.cpp b/tools/src/librw11/Rw11VirtTapeTap.cpp index 41dd343d..d015148b 100644 --- a/tools/src/librw11/Rw11VirtTapeTap.cpp +++ b/tools/src/librw11/Rw11VirtTapeTap.cpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTapeTap.cpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtTapeTap.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2015-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.0.2 Open(): set default scheme // 2017-04-07 868 1.0.1 Dump(): add detail arg // 2015-06-04 686 1.0 Initial version // 2015-05-17 683 0.1 First draft @@ -20,7 +21,7 @@ /*! \file - \version $Id: Rw11VirtTapeTap.cpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtTapeTap.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of Rw11VirtTapeTap. */ @@ -79,7 +80,7 @@ Rw11VirtTapeTap::~Rw11VirtTapeTap() bool Rw11VirtTapeTap::Open(const std::string& url, RerrMsg& emsg) { - if (!fUrl.Set(url, "|wpro|e11|cap=|", emsg)) return false; + if (!fUrl.Set(url, "|wpro|e11|cap=|", "tap", emsg)) return false; fWProt = fUrl.FindOpt("wpro"); fPadOdd = fUrl.FindOpt("e11"); diff --git a/tools/src/librw11/Rw11VirtTapeTap.hpp b/tools/src/librw11/Rw11VirtTapeTap.hpp index f64247d1..c33571e5 100644 --- a/tools/src/librw11/Rw11VirtTapeTap.hpp +++ b/tools/src/librw11/Rw11VirtTapeTap.hpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTapeTap.hpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtTapeTap.hpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2015-2017 by Walter F.J. Mueller // @@ -21,7 +21,7 @@ /*! \file - \version $Id: Rw11VirtTapeTap.hpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtTapeTap.hpp 875 2017-04-15 21:58:50Z mueller $ \brief Declaration of class Rw11VirtTapeTap. */ @@ -38,7 +38,7 @@ namespace Retro { explicit Rw11VirtTapeTap(Rw11Unit* punit); ~Rw11VirtTapeTap(); - bool Open(const std::string& url, RerrMsg& emsg); + virtual bool Open(const std::string& url, RerrMsg& emsg); virtual bool ReadRecord(size_t nbyt, uint8_t* data, size_t& ndone, int& opcode, RerrMsg& emsg); diff --git a/tools/src/librw11/Rw11VirtTermPty.cpp b/tools/src/librw11/Rw11VirtTermPty.cpp index 745de947..da79d3f1 100644 --- a/tools/src/librw11/Rw11VirtTermPty.cpp +++ b/tools/src/librw11/Rw11VirtTermPty.cpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTermPty.cpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtTermPty.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.0.2 Open(): set default scheme // 2017-04-07 868 1.0.1 Dump(): add detail arg // 2013-03-06 495 1.0 Initial version // 2013-02-24 492 0.1 First draft @@ -20,7 +21,7 @@ /*! \file - \version $Id: Rw11VirtTermPty.cpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtTermPty.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of Rw11VirtTermPty. */ #define _XOPEN_SOURCE 600 @@ -69,6 +70,8 @@ Rw11VirtTermPty::~Rw11VirtTermPty() bool Rw11VirtTermPty::Open(const std::string& url, RerrMsg& emsg) { + if (!fUrl.Set(url, "", "pty", emsg)) return false; + int fd = posix_openpt(O_RDWR); if (fd < 0) { emsg.InitErrno("Rw11VirtTermPty::Open", "posix_openpt() failed: ", errno); diff --git a/tools/src/librw11/Rw11VirtTermPty.hpp b/tools/src/librw11/Rw11VirtTermPty.hpp index 59503417..d25c8ba0 100644 --- a/tools/src/librw11/Rw11VirtTermPty.hpp +++ b/tools/src/librw11/Rw11VirtTermPty.hpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTermPty.hpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtTermPty.hpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -21,7 +21,7 @@ /*! \file - \version $Id: Rw11VirtTermPty.hpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtTermPty.hpp 875 2017-04-15 21:58:50Z mueller $ \brief Declaration of class Rw11VirtTermPty. */ @@ -40,7 +40,7 @@ namespace Retro { explicit Rw11VirtTermPty(Rw11Unit* punit); ~Rw11VirtTermPty(); - bool Open(const std::string& url, RerrMsg& emsg); + virtual bool Open(const std::string& url, RerrMsg& emsg); virtual bool Snd(const uint8_t* data, size_t count, RerrMsg& emsg); diff --git a/tools/src/librw11/Rw11VirtTermTcp.cpp b/tools/src/librw11/Rw11VirtTermTcp.cpp index 943566ee..9a8ecb3b 100644 --- a/tools/src/librw11/Rw11VirtTermTcp.cpp +++ b/tools/src/librw11/Rw11VirtTermTcp.cpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTermTcp.cpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtTermTcp.cpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -13,6 +13,7 @@ // // Revision History: // Date Rev Version Comment +// 2017-04-15 875 1.0.6 Open(): set default scheme // 2017-04-07 868 1.0.5 Dump(): add detail arg // 2014-08-22 584 1.0.4 use nullptr // 2013-05-17 512 1.0.3 use Rtools::String2Long @@ -24,7 +25,7 @@ /*! \file - \version $Id: Rw11VirtTermTcp.cpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtTermTcp.cpp 875 2017-04-15 21:58:50Z mueller $ \brief Implemenation of Rw11VirtTermTcp. */ @@ -118,7 +119,7 @@ Rw11VirtTermTcp::~Rw11VirtTermTcp() bool Rw11VirtTermTcp::Open(const std::string& url, RerrMsg& emsg) { - if (!fUrl.Set(url, "|port=|trace|", emsg)) return false; + if (!fUrl.Set(url, "|port=|trace|", "tcp", emsg)) return false; if (!(fUrl.FindOpt("port"))) { emsg.Init("Rw11VirtTermTcp::Open", "port= option not specified"); return false; diff --git a/tools/src/librw11/Rw11VirtTermTcp.hpp b/tools/src/librw11/Rw11VirtTermTcp.hpp index e04f674d..77cbe6cf 100644 --- a/tools/src/librw11/Rw11VirtTermTcp.hpp +++ b/tools/src/librw11/Rw11VirtTermTcp.hpp @@ -1,4 +1,4 @@ -// $Id: Rw11VirtTermTcp.hpp 868 2017-04-07 20:09:33Z mueller $ +// $Id: Rw11VirtTermTcp.hpp 875 2017-04-15 21:58:50Z mueller $ // // Copyright 2013-2017 by Walter F.J. Mueller // @@ -22,7 +22,7 @@ /*! \file - \version $Id: Rw11VirtTermTcp.hpp 868 2017-04-07 20:09:33Z mueller $ + \version $Id: Rw11VirtTermTcp.hpp 875 2017-04-15 21:58:50Z mueller $ \brief Declaration of class Rw11VirtTermTcp. */ @@ -41,7 +41,7 @@ namespace Retro { explicit Rw11VirtTermTcp(Rw11Unit* punit); ~Rw11VirtTermTcp(); - bool Open(const std::string& url, RerrMsg& emsg); + virtual bool Open(const std::string& url, RerrMsg& emsg); virtual bool Snd(const uint8_t* data, size_t count, RerrMsg& emsg);