aboutsummaryrefslogtreecommitdiff
path: root/get_address.c
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2022-08-29 16:11:13 -0400
committerB. Watson <urchlay@slackware.uk>2022-08-29 16:11:13 -0400
commite2ba8458a5cfdfacfaf103e7ba97d610afa6c970 (patch)
treecd665e602e6e2b636578a7d3d7894380605dafcc /get_address.c
downloadbw-atari8-tools-e2ba8458a5cfdfacfaf103e7ba97d610afa6c970.tar.gz
initial commit
Diffstat (limited to 'get_address.c')
-rw-r--r--get_address.c22
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;
+}
+
+