aboutsummaryrefslogtreecommitdiffstats
path: root/hex.c
diff options
context:
space:
mode:
Diffstat (limited to 'hex.c')
-rw-r--r--hex.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/hex.c b/hex.c
new file mode 100644
index 0000000..7355bf5
--- /dev/null
+++ b/hex.c
@@ -0,0 +1,72 @@
+/* hex.c */
+/*****************************************************************************/
+/* AS-Portierung */
+/* */
+/* Dezimal-->Hexadezimal-Wandlung, Grossbuchstaben */
+/* */
+/* Historie: 2. 6.1996 */
+/* */
+/*****************************************************************************/
+
+#include "stdinc.h"
+#include <ctype.h>
+
+#include "hex.h"
+
+#define BUFFERCNT 8
+
+ char *HexNibble(Byte inp)
+BEGIN
+ static char Buffers[BUFFERCNT][3],*ret;
+ static int z=0;
+
+ sprintf(Buffers[z],"%01x",inp&0xf);
+ for (ret=Buffers[z]; *ret!='\0'; ret++) *ret=toupper(*ret);
+ ret=Buffers[z];
+ z=(z+1)%BUFFERCNT;
+ return ret;
+END
+
+ char *HexByte(Byte inp)
+BEGIN
+ static char Buffers[BUFFERCNT][4],*ret;
+ static int z=0;
+
+ sprintf(Buffers[z],"%02x",inp&0xff);
+ for (ret=Buffers[z]; *ret!='\0'; ret++) *ret=toupper(*ret);
+ ret=Buffers[z];
+ z=(z+1)%BUFFERCNT;
+ return ret;
+END
+
+ char *HexWord(Word inp)
+BEGIN
+ static char Buffers[BUFFERCNT][6],*ret;
+ static int z=0;
+
+ sprintf(Buffers[z],"%04x",inp&0xffff);
+ for (ret=Buffers[z]; *ret!='\0'; ret++) *ret=toupper(*ret);
+ ret=Buffers[z];
+ z=(z+1)%BUFFERCNT;
+ return ret;
+END
+
+ char *HexLong(LongWord inp)
+BEGIN
+ static char Buffers[BUFFERCNT][10],*ret;
+ static int z=0;
+
+#ifdef __STDC__
+ sprintf(Buffers[z],"%08x",inp&0xffffffffu);
+#else
+ sprintf(Buffers[z],"%08x",inp&0xffffffff);
+#endif
+ for (ret=Buffers[z]; *ret!='\0'; ret++) *ret=toupper(*ret);
+ ret=Buffers[z];
+ z=(z+1)%BUFFERCNT;
+ return ret;
+END
+
+ void hex_init(void)
+BEGIN
+END