/*====================================================================* * * void binout (void const * memory, size_t extent, char c, char e, FILE * fp) * * memory.h * * print memory as a series of binary bytes separated by character * c; normally, character c will be BIN_EXTENDER as defined * in number.h; * * for example, binout (memory, 6, '-', stdout) would print * * 00000000-11010000-01010010-00000000-00000000-00000001 * * * Motley Tools by Charles Maier <cmaier@cmassoc.net>; * Copyright (c) 2001-2006 by Charles Maier Associates; * Licensed under the Internet Software Consortium License; * *--------------------------------------------------------------------*/ #ifndef BINOUT_SOURCE #define BINOUT_SOURCE #include <stdio.h> #include <ctype.h> #include "../tools/memory.h" #include "../tools/number.h" void binout (void const * memory, size_t extent, char c, char e, FILE * fp) { byte * offset = (byte *)(memory); while (extent--) { unsigned bits = 8; while (bits--) { putc (DIGITS_BIN [(* offset >> bits) & 1], fp); } if ((extent) && (c)) { putc (c, fp); } offset++; } if (e) { putc (e, fp); } return; } #endif