--- nono/hd64180/gentable.php 2026/04/29 17:05:30 1.1.1.2 +++ nono/hd64180/gentable.php 2026/04/29 17:05:34 1.1.1.3 @@ -95,7 +95,8 @@ function read_instructions($filename) // 展開前の $insttable から $funchash[] を作成する。 // $funchash は関数名をキーにしたハッシュで // $funchash = array( -// "add_hl_ww" => array("00ww1001|ADD HL,ww", "DD:00ww1001|ADD IX,ww"), +// "add_hl_ww" => array("00ww1001|01R:\tADD HL,ww", +// "DD:00ww1001|01R:\tADD IX,ww"), // : // ); のように、関数名とそれに紐づくニーモニックを集めたもの。 function make_funchash($insttable) @@ -105,34 +106,16 @@ function make_funchash($insttable) // $bits は1ワード目なら : から始まっているので取り除く $bit2 = preg_replace("/^:/", "", $bits); $name = $inst["name"]; - $text = $inst["text"]; - switch ($inst["cpus"]) { - case "01R": - break; - case "-1-": // HD64*180 専用命令 - $text .= "\t(HD64*180 only)"; - break; - case "--R": // R800 専用命令 - $text .= "\t(R800 only)"; - break; - case "0-R": // Z80/R800 命令 (HD64*180 未実装命令) - $text .= "\t(Z80/R800)"; - break; - default: - printf("unknown cpu field: {$inst["cpus"]}\n"); - exit(1); - } - if (!isset($funchash[$name])) { $funchash[$name] = array(); } - $funchash[$name][] = "{$bit2}|{$text}"; + $funchash[$name][] = "{$bit2}|{$inst["cpus"]}:\t{$inst["text"]}"; } if (0) { print "make_funchash:\n"; foreach ($funchash as $name => $lines) { - printf("%-10s", $name); + printf("%-11s", $name); foreach ($lines as $str) { print " \"{$str}\""; }