--- nono/util/sramedit/params.cpp 2026/04/29 17:04:55 1.1.1.1 +++ nono/util/sramedit/params.cpp 2026/04/29 17:05:27 1.1.1.3 @@ -9,106 +9,106 @@ // アクセスヘルパー -uint32 read8(uint32 offset); -uint32 read16(uint32 offset); -uint32 read32(uint32 offset); -void write8(uint32 offset, uint32 val); -void write16(uint32 offset, uint32 val); -void write32(uint32 offset, uint32 val); -uint32 read8(const sraminfo_t&); -uint32 read16(const sraminfo_t&); -uint32 read32(const sraminfo_t&); -void write8(const sraminfo_t&, uint32 val); -void write16(const sraminfo_t&, uint32 val); -void write32(const sraminfo_t&, uint32 val); -int update8(const sraminfo_t&, uint32 val); -int update16(const sraminfo_t&, uint32 val); -int update32(const sraminfo_t&, uint32 val); +uint32 read1(uint32 offset); +uint32 read2(uint32 offset); +uint32 read4(uint32 offset); +void write1(uint32 offset, uint32 val); +void write2(uint32 offset, uint32 val); +void write4(uint32 offset, uint32 val); +uint32 read1(const sraminfo_t&); +uint32 read2(const sraminfo_t&); +uint32 read4(const sraminfo_t&); +void write1(const sraminfo_t&, uint32 val); +void write2(const sraminfo_t&, uint32 val); +void write4(const sraminfo_t&, uint32 val); +int update1(const sraminfo_t&, uint32 val); +int update2(const sraminfo_t&, uint32 val); +int update4(const sraminfo_t&, uint32 val); uint32 -read8(uint32 offset) +read1(uint32 offset) { return sram[offset]; } uint32 -read16(uint32 offset) +read2(uint32 offset) { - uint32 h = read8(offset) << 8; - uint32 l = read8(offset + 1); + uint32 h = read1(offset) << 8; + uint32 l = read1(offset + 1); return (h | l); } uint32 -read32(uint32 offset) +read4(uint32 offset) { - uint32 h = read16(offset) << 16; - uint32 l = read16(offset + 2); + uint32 h = read2(offset) << 16; + uint32 l = read2(offset + 2); return (h | l); } void -write8(uint32 offset, uint32 val) +write1(uint32 offset, uint32 val) { sram[offset] = (uint8)val; } void -write16(uint32 offset, uint32 val) +write2(uint32 offset, uint32 val) { - write8(offset, val >> 8); - write8(offset + 1, val & 0xff); + write1(offset, val >> 8); + write1(offset + 1, val & 0xff); } void -write32(uint32 offset, uint32 val) +write4(uint32 offset, uint32 val) { - write16(offset, val >> 16); - write16(offset + 2, val & 0xffff); + write2(offset, val >> 16); + write2(offset + 2, val & 0xffff); } -uint32 read8(const sraminfo_t& si) { return read8(si.offset); } -uint32 read16(const sraminfo_t& si) { return read16(si.offset); } -uint32 read32(const sraminfo_t& si) { return read32(si.offset); } -void write8(const sraminfo_t& si, uint32 val) { - return write8(si.offset, val); +uint32 read1(const sraminfo_t& si) { return read1(si.offset); } +uint32 read2(const sraminfo_t& si) { return read2(si.offset); } +uint32 read4(const sraminfo_t& si) { return read4(si.offset); } +void write1(const sraminfo_t& si, uint32 val) { + return write1(si.offset, val); } -void write16(const sraminfo_t& si, uint32 val) { - return write16(si.offset, val); +void write2(const sraminfo_t& si, uint32 val) { + return write2(si.offset, val); } -void write32(const sraminfo_t& si, uint32 val) { - return write32(si.offset, val); +void write4(const sraminfo_t& si, uint32 val) { + return write4(si.offset, val); } int -update8(const sraminfo_t& si, uint32 val) +update1(const sraminfo_t& si, uint32 val) { - if (read8(si) == val) { + if (read1(si) == val) { return 0; } - write8(si, val); + write1(si, val); return 1; } int -update16(const sraminfo_t& si, uint32 val) +update2(const sraminfo_t& si, uint32 val) { - if (read16(si) == val) { + if (read2(si) == val) { return 0; } - write16(si, val); + write2(si, val); return 1; } int -update32(const sraminfo_t& si, uint32 val) +update4(const sraminfo_t& si, uint32 val) { - if (read32(si) == val) { + if (read4(si) == val) { return 0; } - write32(si, val); + write4(si, val); return 1; } @@ -121,7 +121,7 @@ update32(const sraminfo_t& si, uint32 va static std::string r_ramsize(const sraminfo_t& si) { - uint32 v = read32(si); + uint32 v = read4(si); std::string res = string_format("$%08x", v); if (v % (1024 * 1024) == 0) { res += string_format(" (%dMB)", v / 1024 / 1024); @@ -145,7 +145,7 @@ w_ramsize(const sraminfo_t& si, const st } newval *= 1024 * 1024; - return update32(si, newval); + return update4(si, newval); } static const std::string @@ -159,7 +159,7 @@ h_ramsize(const sraminfo_t& si) static std::string r_romaddr(const sraminfo_t& si) { - uint32 v = read32(si); + uint32 v = read4(si); std::string res = string_format("$%08x", v); if (0xfc0000 <= v && v < 0xfc0020) { res += string_format(" (SCSI%d)", (v - 0xfc0000) / 4); @@ -192,7 +192,7 @@ w_romaddr(const sraminfo_t& si, const st } } - return update32(si, newval); + return update4(si, newval); } static const std::string @@ -206,7 +206,7 @@ h_romaddr(const sraminfo_t& si) static std::string r_ramaddr(const sraminfo_t& si) { - uint32 v = read32(si); + uint32 v = read4(si); return string_format("$%08x", v); } @@ -215,7 +215,7 @@ r_ramaddr(const sraminfo_t& si) static std::string r_bootdev(const sraminfo_t& si) { - uint32 v = read16(si); + uint32 v = read2(si); std::string res = string_format("$%04x ", v); if (v == 0x0000) { @@ -252,13 +252,21 @@ w_bootdev(const sraminfo_t& si, const st warnx("%s='%s': bad SASI ID", si.name, input.c_str()); return -1; } + if (id < 0 || id > 16) { + warnx("%s='%s': out of range", si.name, input.c_str()); + return -1; + } newval = 0x8000 + (id << 8); } else if (starts_with_ignorecase(input, "fd")) { errno = 0; - start = input.c_str() + 4; + start = input.c_str() + 2; int id = strtoul(start, &end, 10); if (end == start || *end != '\0' || errno == ERANGE) { - warnx("%s='%s': bad SASI ID", si.name, input.c_str()); + warnx("%s='%s': bad unit number", si.name, input.c_str()); + return -1; + } + if (id < 0 || id > 4) { + warnx("%s='%s': out of range", si.name, input.c_str()); return -1; } newval = 0x9070 + (id << 8); @@ -271,7 +279,7 @@ w_bootdev(const sraminfo_t& si, const st return -1; } - return update16(si, newval); + return update2(si, newval); } static const std::string @@ -285,7 +293,7 @@ h_bootdev(const sraminfo_t& si) static std::string r_rs232c(const sraminfo_t& si) { - uint32 v = read16(si); + uint32 v = read2(si); std::string res = string_format("$%04x (", v); std::array stopbit { @@ -335,7 +343,7 @@ r_rs232c(const sraminfo_t& si) static std::string r_led(const sraminfo_t& si) { - uint8 v = read8(si); + uint8 v = read1(si); std::string res = string_format("$%02x", v); std::array names { @@ -369,21 +377,21 @@ r_led(const sraminfo_t& si) static std::string r_crtmod(const sraminfo_t& si) { - uint8 v = read8(si); + uint8 v = read1(si); return string_format("$%02x", v); } static std::string r_contrast(const sraminfo_t& si) { - uint8 v = read8(si); + uint8 v = read1(si); return string_format("$%02x", v); } static std::string r_sram_use(const sraminfo_t& si) { - uint8 v = read8(si); + uint8 v = read1(si); std::string res; if (v == 0) { @@ -403,7 +411,7 @@ r_sram_use(const sraminfo_t& si) static std::string r_key_repeat(const sraminfo_t& si) { - uint8 v = read8(si); + uint8 v = read1(si); std::string res = string_format("$%02x ", v); if (v < 16) { @@ -439,7 +447,7 @@ w_key_repeat(const sraminfo_t& si, const return -1; } - return update8(si, newval); + return update1(si, newval); } static const std::string @@ -453,14 +461,14 @@ h_key_repeat(const sraminfo_t& si) static std::string r_boottime(const sraminfo_t& si) { - uint32 v = read32(si); + uint32 v = read4(si); return string_format("%u (%u:%u)", v, (v / 60), (v % 60)); } static std::string r_bootcount(const sraminfo_t& si) { - uint32 v = read32(si); + uint32 v = read4(si); return string_format("%d", v); } @@ -468,7 +476,7 @@ r_bootcount(const sraminfo_t& si) static std::string r_debugger(const sraminfo_t& si) { - uint8 v = read8(si); + uint8 v = read1(si); std::string res; if (v == 0x00) { @@ -495,7 +503,7 @@ w_debugger(const sraminfo_t& si, const s return -1; } - return update8(si, newval); + return update1(si, newval); } static const std::string