[net.lang.c] Falsies

cottrell@NBS-VMS.ARPA (COTTRELL, JAMES) (09/07/85)

/*
@ In article <139200010@uiucdcsb> robison@uiucdcsb.Uiuc.ARPA writes:
@ >
@ >> ... But no machine I know of has a `branch if true' instruxion...

No, *I* wrote that. *He* responded.

@ The 808x/Z80 families of microprocessors set the 'zero' flag in 'compare'
@ instructions, and have 'jump if zero', 'jump if non-zero', as well as the
@ corresponding conditional subroutine calls and and conditional returns.

Don't you think I know that? Doesn't everybody? You missed the point 
entirely! What I am saying is that at the assembly language level there
is no notion of pure true or false as a primitive condition. You may
decide whether a *particular* condition *is* true or false by using the
appropriate conditional branches, e.g. `branch if zero', `jump if 
carry', etc. ``But no machine I know of has a `branch if true' 
instruxion''. Now we are back to where we started from, robison will
send me a line about Burroughs having a `branch if true', you will
tell me about z80's & we have a recursive news item!

Now about the Burrough's. What exactly is their idea of truth? I hear
rumors that some of their machines are programmed in ALGOL. Is this
some kind of higher level concept? What's, uh, the deal?

@ They may be too small for you to consider them 'machines', but an awful
@ lot of work gets done on them.
@ 
@ Richard Klappal

That's right, a lot that's awful. Trying to program those things is
like an operating system thrashing. It does work tho!

	jim		cottrell@nbs
*/
------

weltyrp@rpics.UUCP (Richard Welty) (09/09/85)

> Now about the Burrough's. What exactly is their idea of truth? I hear
> rumors that some of their machines are programmed in ALGOL. Is this
> some kind of higher level concept? What's, uh, the deal?
> 
>... 
> 	jim		cottrell@nbs
>
The way Burroughs implements truth is quite immaterial, as there is no
assembler.  The Burroughs stack machines are programmed in a language that
directly supports Burroughs Extended Algol, and all systems programs on such
machines are written in the Burroughs dialect.  Boolean is a real datatype
supported by the hardware.  In fact, every high level concept from Algol is
supported in the hardware.  Strong typing is even supported in the hardware.
The machines attach type bits to each unit of memory.  The machines are
quite interesting, really, although they were commercially not massively
successful.
-- 
				Rich Welty

	(I am both a part-time grad student at RPI and a full-time
	 employee of a local CAE firm, and opinions expressed herein
	 have nothing to do with anything at all)

	CSNet:   weltyrp@rpi
	ArpaNet: weltyrp.rpi@csnet-relay
	UUCP:  seismo!rpics!weltyrp

pc@unisoft.UUCP (Paul Campbell) (09/09/85)

<oog>
	The Burroughs Large Systems Architecture (B5900/6X00/7X00 etc) is
programmed in Algol and its dialects .... no assembler is available from
Burroughs for them (of course we wrote one ....) this is mainly because their
architecture has no true memory protection (ie protecting one process from
another), they depend on the compilers only making 'safe' code. Of course if
you want to do system work you write an 'unsafe' compiler and protect it.

	The architecture supports 3 branch instructions

		BRANCH		unconditionally
		BRANCHTRUE	remove the word on the top of stack and
				branch if the lower bit is set
		BRANCHFALSE	remove the word on the top of stack and
				branch if the lower bit is clear


		Paul Campbell
		..!ucbvax!unisoft!paul

ken@turtlevax.UUCP (Ken Turkowski) (09/10/85)

In article <1341@brl-tgr.ARPA> cottrell@NBS-VMS.ARPA (COTTRELL, JAMES) writes:
>@ In article <139200010@uiucdcsb> robison@uiucdcsb.Uiuc.ARPA writes:
>@ >> ... But no machine I know of has a `branch if true' instruxion...
>
>No, *I* wrote that. *He* responded.
>
>@ The 808x/Z80 families of microprocessors set the 'zero' flag in 'compare'
>@ instructions, and have 'jump if zero', 'jump if non-zero', as well as the
>@ corresponding conditional subroutine calls and and conditional returns.
>
>Don't you think I know that? Doesn't everybody? You missed the point 
>entirely! What I am saying is that at the assembly language level there
>is no notion of pure true or false as a primitive condition.

Wrong you are.  Look at the 68000 instruction set.  In it you'll find a
couple of instructions called DBT and DBF, which are "decrement and
branch on true" and "decrement and branch on false".  While not a pure
one condition branch (because of the decrement and test counter), the
assembly language does have a concept of absolute truth.
-- 
Ken Turkowski @ CADLINC, Menlo Park, CA
UUCP: {amd,decwrl,hplabs,seismo,spar}!turtlevax!ken
ARPA: turtlevax!ken@DECWRL.ARPA

cottrell@nbs-vms.ARPA (COTTRELL, JAMES) (09/13/85)

/*
> Wrong you are.  Look at the 68000 instruction set.  In it you'll find a
> couple of instructions called DBT and DBF, which are "decrement and
> branch on true" and "decrement and branch on false".  While not a pure
> one condition branch (because of the decrement and test counter), the
> assembly language does have a concept of absolute truth.
> -- 
> Ken Turkowski @ CADLINC, Menlo Park, CA

DBT, & DBF do not *test* anything for truth, they *assume* it. They are
not *conditional* branches (as I mentioned in my origional statement).
DBT *always* branches while DBF *never* branches.

	jim		cottrell@nbs
*/
------