diff options
author | B. Watson <urchlay@slackware.uk> | 2022-08-29 16:11:13 -0400 |
---|---|---|
committer | B. Watson <urchlay@slackware.uk> | 2022-08-29 16:11:13 -0400 |
commit | e2ba8458a5cfdfacfaf103e7ba97d610afa6c970 (patch) | |
tree | cd665e602e6e2b636578a7d3d7894380605dafcc /get_address.c | |
download | bw-atari8-tools-e2ba8458a5cfdfacfaf103e7ba97d610afa6c970.tar.gz |
initial commit
Diffstat (limited to 'get_address.c')
-rw-r--r-- | get_address.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/get_address.c b/get_address.c new file mode 100644 index 0000000..cc503ad --- /dev/null +++ b/get_address.c @@ -0,0 +1,22 @@ +#include <stdio.h> + +int get_address(char *self, char *arg) { + unsigned int got; + + if(sscanf(arg, "0x%x", &got) != 1) + if(sscanf(arg, "$%x", &got) != 1) + if(sscanf(arg, "%d", &got) != 1) { + fprintf(stderr, "Invalid address '%s'\n", arg); + return -1; + } + + if(got >= 0x10000) { + if(self) fprintf(stderr, "%s: ", self); + fprintf(stderr, "Address '%s' not in range $0000-$FFFF\n", arg); + return -1; + } + + return (int)got; +} + + |