--- nono/host/comdriver_stdio.cpp 2026/04/29 17:05:47 1.1.1.3 +++ nono/host/comdriver_stdio.cpp 2026/04/29 17:06:02 1.1.1.4 @@ -8,8 +8,12 @@ // シリアルポートの標準入出力ドライバ // +// 標準入力はここで担当するが、 +// 標準出力はログ出力と共用するため Logger が担当となっている。 + #include "comdriver_stdio.h" #include "hostcom.h" +#include "logger.h" // コンストラクタ COMDriverStdio::COMDriverStdio(HostDevice *hostdev_) @@ -49,7 +53,7 @@ COMDriverStdio::InitDriver(bool startup) tc = oldtc; // 入力時の変換は無し - tc.c_iflag = 0; + tc.c_iflag |= ICRNL; tc.c_lflag &= ~ECHO; // エコーオフ tc.c_lflag &= ~ICANON; // 非カノニカルモード @@ -79,19 +83,11 @@ COMDriverStdio::InitDriver(bool startup) void COMDriverStdio::Write(uint32 data) { - uint8 buf[1]; - int r; + char str[2]; - buf[0] = data; - r = write(STDOUT_FILENO, buf, sizeof(buf)); - if (r < 0) { - putmsg(0, "write: %s", strerror(errno)); - return; - } - if (r < sizeof(buf)) { - putmsg(0, "write: short"); - return; - } + str[0] = (uint8)data; + str[1] = '\0'; + logger->WriteStdout(str); } // 外部からの1バイト読み込み