1*5479Slinton /* Copyright (c) 1982 Regents of the University of California */ 2*5479Slinton 3*5479Slinton static char sccsid[] = "@(#)printdata.c 1.1 01/18/82"; 4*5479Slinton 5*5479Slinton /* 6*5479Slinton * print contents of data addresses in octal 7*5479Slinton * 8*5479Slinton * There are two entries: one is given a range of addresses, 9*5479Slinton * the other is given a count and a starting address. 10*5479Slinton */ 11*5479Slinton 12*5479Slinton #include "defs.h" 13*5479Slinton #include "machine.h" 14*5479Slinton #include "process.h" 15*5479Slinton #include "object.h" 16*5479Slinton 17*5479Slinton #define WORDSPERLINE 4 18*5479Slinton 19*5479Slinton /* 20*5479Slinton * print words from lowaddr to highaddr 21*5479Slinton */ 22*5479Slinton 23*5479Slinton printdata(lowaddr, highaddr) 24*5479Slinton ADDRESS lowaddr; 25*5479Slinton ADDRESS highaddr; 26*5479Slinton { 27*5479Slinton register int count; 28*5479Slinton register ADDRESS addr; 29*5479Slinton int val; 30*5479Slinton 31*5479Slinton if (lowaddr > highaddr) { 32*5479Slinton error("first address larger than second"); 33*5479Slinton } 34*5479Slinton count = 0; 35*5479Slinton for (addr = lowaddr; addr <= highaddr; addr += sizeof(int)) { 36*5479Slinton if (count == 0) { 37*5479Slinton printf("%8x: ", addr); 38*5479Slinton } 39*5479Slinton dread(&val, addr, sizeof(val)); 40*5479Slinton printf(" %8x", val); 41*5479Slinton if (++count >= WORDSPERLINE) { 42*5479Slinton putchar('\n'); 43*5479Slinton count = 0; 44*5479Slinton } 45*5479Slinton } 46*5479Slinton if (count != 0) { 47*5479Slinton putchar('\n'); 48*5479Slinton } 49*5479Slinton } 50*5479Slinton 51*5479Slinton /* 52*5479Slinton * print count words starting at address 53*5479Slinton */ 54*5479Slinton 55*5479Slinton printndata(count, addr) 56*5479Slinton int count; 57*5479Slinton ADDRESS addr; 58*5479Slinton { 59*5479Slinton printdata(addr, addr + (count - 1)*sizeof(int)); 60*5479Slinton } 61