Closed ao-kenji closed 2 weeks ago
補足: FUZIXで使用しているZ80のライブラリでは strlen() がCPIRで実装されているのですが、nonoで動かしたときに strlen("/init") の返り値が -1 になってしまうことから気づきました。 https://github.com/EtchedPixels/Fuzix-Compiler-Kit/blob/main/supportz80/_strlen.s
お手数おかけしております。以下のパッチで直ると思いますので試してもらえますか。 http://www.pastel-flower.jp/~isaki/NetBSD/patch/nono-20241112-cpir.diff
パッチをあてた nono で、CPIR による実装の strlen() が正しく動くことを確認しました。ありがとうございます!
ありがとうございます。次リリースに入れます。
HD64180のCPIR/CPDR命令で、A == (HL) の時にリピートを終了する処理が不足しているのではないでしょうか。 hd64180/hd64180ops.cpp のREPEAT_UNTILマクロを見ると BC == 0 になった時のみリピートを終了するように読めました。