projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Shrink ao_cmd_put16, ao_cmd_hex and ao_cmd
[fw/altos]
/
src
/
ao_cmd.c
diff --git
a/src/ao_cmd.c
b/src/ao_cmd.c
index 3f020dc3a3b30a38a97402cb9894a7fa3f35f1ff..60f1071631d180cccf6f16741a0f022c5701fa3b 100644
(file)
--- 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)
{
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
}
void
@@
-133,18
+132,20
@@
void
ao_cmd_hex(void)
{
__xdata uint8_t r = ao_cmd_lex_error;
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 = 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')
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')
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;
else
break;
+ ao_cmd_lex_i = (ao_cmd_lex_i << 4) | n;
r = ao_cmd_success;
ao_cmd_lex();
}
r = ao_cmd_success;
ao_cmd_lex();
}
@@
-265,8
+266,8
@@
ao_cmd_register(__code struct ao_cmds *cmds)
void
ao_cmd(void)
{
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);
__code struct ao_cmds * __xdata cs;
void (*__xdata func)(void);