Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!mtune!codas!usfvax2!chips From: chips@usfvax2.UUCP (Chip Salzenberg) Newsgroups: comp.arch,comp.lang.forth,comp.lang.misc Subject: Re: The winner! Message-ID: <798@usfvax2.UUCP> Date: Thu, 23-Jul-87 22:50:02 EDT Article-I.D.: usfvax2.798 Posted: Thu Jul 23 22:50:02 1987 Date-Received: Sat, 25-Jul-87 11:54:29 EDT References: <398@sugar.UUCP> <7098@alice.UUCP> Organization: AT Engineering, Tampa, FL Lines: 33 Keywords: ; anybody recognise this piece of code? Summary: Also works on 6809 but not 68000 Xref: mnetor comp.arch:1677 comp.lang.forth:126 comp.lang.misc:571 (This is in comp.arch now instead of comp.lang.c) In article <7098@alice.UUCP>, ark@alice.UUCP writes: > In article <398@sugar.UUCP>, peter@sugar.UUCP writes: > > I challenge anyone to come up with a faster interpreter anywhere (how can > > you beat one instruction?). This is actually what the threaded interpreter > > for the threaded version of DEC fortran-IV used, with R4==IP. > > How about zero instructions? > > At the end of each subroutine, instead of a return instruction, you just say > > jmp *(IP)+ > > That is, jump to the location addressed by the contents of the > word addressed by the contents of IP, and bump IP by one word. Yes, this is equivalent to the 6809's "JMP [,Y++]" instruction. I was severely disappointed by the 68000 architecture's lack of memory indirection. The 6809 remains the most elegant architecture for Forth [except for the Novix :-)], what with two stacks, indirect addressing, etc. (Donning asbestos suit for postnews line counter) -- Chip Salzenberg UUCP: "uunet!ateng!chip" or "chips@usfvax2.UUCP" A.T. Engineering, Tampa Fidonet: 137/42 CIS: 73717,366 "Use the Source, Luke!" My opinions do not necessarily agree with anything.