summaryrefslogtreecommitdiff
path: root/utils/data2texts/data2texts.c
diff options
context:
space:
mode:
authorDavid Boddie <david@boddie.org.uk>2023-03-19 02:03:31 +0100
committerDavid Boddie <david@boddie.org.uk>2023-11-16 12:52:08 +0100
commitc94646172c399b31bfc70676feefb90a08c52850 (patch)
tree969a08a9fedf81236d5c8cec1c10b526bf636372 /utils/data2texts/data2texts.c
parent7337d0325a69949a580e60f26852e144cab9ed6a (diff)
Added a variant of data2s that puts data in the text section.
Diffstat (limited to 'utils/data2texts/data2texts.c')
-rw-r--r--utils/data2texts/data2texts.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/utils/data2texts/data2texts.c b/utils/data2texts/data2texts.c
new file mode 100644
index 00000000..7a7f9cb3
--- /dev/null
+++ b/utils/data2texts/data2texts.c
@@ -0,0 +1,28 @@
+#include <lib9.h>
+#include <bio.h>
+
+void
+main(int argc, char *argv[])
+{
+ Biobuf bin, bout;
+ long len;
+ int n;
+ uchar block[4];
+
+ if(argc != 2){
+ fprint(2, "usage: data2texts name\n");
+ exits("usage");
+ }
+ setbinmode();
+ Binit(&bin, 0, OREAD);
+ Binit(&bout, 1, OWRITE);
+ Bprint(&bout, "TEXT %scode(SB), 0, $-4\n", argv[1]);
+ for(len=0; (n=Bread(&bin, block, sizeof(block))) > 0; len += n){
+
+ ulong w = *(ulong *)block;
+ Bprint(&bout, "WORD $0x%08ux\n", w);
+ }
+ Bprint(&bout, "TEXT %slen(SB), 0, $-4\n", argv[1]);
+ Bprint(&bout, "WORD $%ld\n", len);
+ exits(0);
+}