cmd: reg{get,set}: more small refactor

Refactor some value checking.
Simplified hexvalue to addr.
Updated some comments.
Remove extra debug prints and EOL after the command.
This commit is contained in:
René van Dorst
2025-09-07 16:52:51 +02:00
parent 4cad857ad5
commit 54ab915557
2 changed files with 21 additions and 22 deletions
+18 -19
View File
@@ -304,8 +304,7 @@ void parse_regget(void)
{
uint16_t reg = 0;
if (cmd_words_b[2] < 0) {
write_char('v');
if (cmd_words_b[1] < 0) {
goto err;
}
@@ -315,10 +314,10 @@ void parse_regget(void)
goto err;
}
if (hex_size == 1) {
reg = hexvalue[0];
} else {
reg = (((uint16_t)hexvalue[0]) << 8) | hexvalue[1];
if (hex_size == 2) {
reg <<= 8;
reg |= hexvalue[1];
}
print_string("REGGET: ");
@@ -327,7 +326,6 @@ void parse_regget(void)
reg_read_m(reg);
print_sfr_data();
write_char('\n');
return;
err:
@@ -340,41 +338,42 @@ void parse_regset(void)
{
uint16_t reg = 0;
uint8_t hex_size = atoi_hex(cmd_words_b[1]);
if (cmd_words_b[2] < 0) {
goto err;
}
uint8_t hex_size = atoi_hex(cmd_words_b[1]);
if (hex_size == 0 || hex_size > 2) {
goto err;
}
if (hex_size == 1) {
reg = hexvalue[0];
} else {
reg = (((uint16_t)hexvalue[0]) << 8) | hexvalue[1];
if (hex_size == 2) {
reg <<= 8;
reg |= hexvalue[1];
}
hex_size = atoi_hex(cmd_words_b[2]);
if (hex_size == 0 || hex_size > 4 || cmd_words_b[3] < 0) {
if (hex_size == 0 || hex_size > 4) {
goto err;
}
print_string("REGSET: ");
print_short(reg);
print_string(": VAL: ");
// zero sfp data
// zero sfr memory data
sfr_set_zero();
// copy data over sfr memory
uint8_t offset = 4 - hex_size;
// copy data over
while(hex_size) {
hex_size -= 1;
sfr_data[offset + hex_size] = hexvalue[hex_size];
}
print_string("REGSET: ");
print_short(reg);
reg_write_m(reg);
print_string(": VAL: ");
print_sfr_data();
write_char('\n');
return;
err:
+1 -1
View File
@@ -26,4 +26,4 @@ Other memory:
---------------- -------- -------- -------- --------
PAGED EXT. RAM 0 256
EXTERNAL RAM 0x0001 0x1ae8 6888 16777216
ROM/EPROM/FLASH 0x0000 0x1c735 47029 16777216
ROM/EPROM/FLASH 0x0000 0x1c71b 47003 16777216