V8/usr/src/cmd/adb/mchio.c

Compare this file to the similar file:
Show the results in this format:

/*
 * read or print machine-dependent data structures
 * this version for a vax running on a vax
 */

#include "defs.h"

/*
 * read an ASCII expression
 */

char lastc;

WORD
ascval()
{
	long l;
	register char *p;
	register int i;

	l = 0;
	p = (char *)&l;
	i = sizeof(l);
	while (quotchar()) {
		if (--i >= 0)
			*p++ = lastc;
	}
	return ((WORD)l);
}

/*
 * read a floating point number in VAX format
 * the result must fit in a WORD
 */

WORD
fpin(buf)
char *buf;
{
	union {
		WORD w;
		float f;
	} x;
	double atof();

	x.f = atof(buf);
	return (x.w);
}

/*
 * print a floating point number in VAX format
 */

#define	FPWID	32

fpout(flag, va)
char flag;
char *va;
{
	double d;
	char buf[FPWID+1];
	char *fmt;
	char *gcvt();

	if (*(int *)va == 0x00008000) {
		prints("illegal float   ");
		if (flag != 'f')
			prints("                ");	/* ugh */
		return;
	}
	if (flag == 'f')
		printf("%-16s", gcvt((double)*(float *)va, 15, buf));
	else
		printf("%-32s", gcvt(*(double *)va, 31, buf));
}