[net.lang.c] C and BCD

mzal@pegasus.UUCP (11/15/84)

If C was intended as a systems programming language, then it only seems
fair that it should be able to access all functions of the system,
including BCD on those machines which support it.  How a variable
declared as BCD should be handled on non-BCD machines is an issue
which could be left to the implementer.  Alternatively, we could
just say that all BCD variables are of type int on non-BCD machines.

I know of no standards saying that just because something is
declared char or int or double that it needs to be stored in some
special way.  IndeedGi in all versions of C which run on a DEC-20
(that I have seen), chars, ints, longs, and doubles are all 36
bit quantaties.

-- Mike^Z   [allegra!, ihnp4!] pegasus!mzal   Zaleski@Rutgers

henry@utzoo.UUCP (Henry Spencer) (11/16/84)

> If C was intended as a systems programming language, then it only seems
> fair that it should be able to access all functions of the system,
> including BCD on those machines which support it....

C does provide a mechanism for accessing all facilities of a system:  it's
called "call a function written in assembler".  If you have ever looked at
the instruction set of a "real" machine, you'll see why this is the only
realistic way to tackle it.  There are far too many bizarre and utterly
machine-dependent oddities in *any* real system to expect C to incorporate
them all.  No systems programming language has *ever* attempted to do this,
except by mechanisms that at least *looked* like function calls.
-- 
				Henry Spencer @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!henry