summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-07-06 12:38:11 -0700
committerKeith Packard <keithp@keithp.com>2011-07-06 12:38:11 -0700
commit41c230cac359b4459ca93196d08704b7d35447c7 (patch)
tree4e1d4f7b9e53921e9737082217aa5a5f492e0742
parent481577a29380afe6750ef7c4e928daff837cbc49 (diff)
altos: Shrink ao_cmd_put16, ao_cmd_hex and ao_cmd
No functional changes, just reduces code size. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/ao_cmd.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/ao_cmd.c b/src/ao_cmd.c
index 3f020dc3..60f10716 100644
--- a/src/ao_cmd.c
+++ b/src/ao_cmd.c
@@ -110,9 +110,8 @@ putnibble(uint8_t v)
void
ao_cmd_put16(uint16_t v)
{
- int8_t i;
- for (i = 3; i >= 0; i--)
- putnibble((v >> (i << 2)) & 0xf);
+ ao_cmd_put8(v >> 8);
+ ao_cmd_put8(v);
}
void
@@ -133,18 +132,20 @@ void
ao_cmd_hex(void)
{
__xdata uint8_t r = ao_cmd_lex_error;
+ uint8_t n;
ao_cmd_lex_i = 0;
ao_cmd_white();
for(;;) {
if ('0' <= ao_cmd_lex_c && ao_cmd_lex_c <= '9')
- ao_cmd_lex_i = (ao_cmd_lex_i << 4) | (ao_cmd_lex_c - '0');
+ n = (ao_cmd_lex_c - '0');
else if ('a' <= ao_cmd_lex_c && ao_cmd_lex_c <= 'f')
- ao_cmd_lex_i = (ao_cmd_lex_i << 4) | (ao_cmd_lex_c - 'a' + 10);
+ n = (ao_cmd_lex_c - 'a' + 10);
else if ('A' <= ao_cmd_lex_c && ao_cmd_lex_c <= 'F')
- ao_cmd_lex_i = (ao_cmd_lex_i << 4) | (ao_cmd_lex_c - 'A' + 10);
+ n = (ao_cmd_lex_c - 'A' + 10);
else
break;
+ ao_cmd_lex_i = (ao_cmd_lex_i << 4) | n;
r = ao_cmd_success;
ao_cmd_lex();
}
@@ -265,8 +266,8 @@ ao_cmd_register(__code struct ao_cmds *cmds)
void
ao_cmd(void)
{
- __xdata char c;
- __xdata uint8_t cmd, cmds;
+ char c;
+ uint8_t cmd, cmds;
__code struct ao_cmds * __xdata cs;
void (*__xdata func)(void);