Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!cis.ohio-state.edu!ucbvax!BRFAPESP.BITNET!UNBCIC From: UNBCIC@BRFAPESP.BITNET Newsgroups: comp.lang.forth Subject: Align Message-ID: <9106272057.AA08598@ucbvax.Berkeley.EDU> Date: 27 Jun 91 18:19:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: UNBCIC%BRFAPESP.BITNET@SCFVM.GSFC.NASA.GOV Organization: The Internet Lines: 39 => In article <9106190432.AA02430@ucbvax.Berkeley.EDU>, => UNBCIC%BRFAPESP.BITNET@SCFVM.GSFC.NASA.GOV writes: => => '=>Further, `ALLOT' and `,' should align on => `=> CELL boundaries, and `C,' should ensure that the next invocation of => `=> `HERE', `ALLOT', `,' etc. will utilize a CELL boundary appropriate => `=> to the processor [mine]. => ` => `C, should ensure that the next invocation of HERE, ALLOT...will utilize a CE LL => `boundary?!?!?!?!??!?!?!? It's better live with a slow @ and ! than with this ! => `We have only two options: 1) Throw an overhead upon HERE, ALLOT...; 2) Make C, => `ALLOT a CELL, thus actings a comma. I was talking about options when you make C, ensure .... => There is a third option. Put the onus on the _programmer_ to put => ALIGN after the appropriate ALLOT / C, when allocating a data => structure in the dictionary if it is possible that a partial cell has => been allotted. Then use CELL+ and CHAR+ and ALIGNED when ``stepping => through'' the data structure. That is the approach taken by ANS => Forth. That's the way I like it. If someone wants a 83-Standard @ in a ANS-Forth just type: : @ DUP C@ SWAP 1+ C@ ( shift or multiply ) + ; : ! 2DUP C! SWAP ( shift or divide ) SWAP 1+ C! ; About C! a TRUE flag: I think that ANS Forth have adopted as TRUE all bits 1, so C! should work. (8-DCS) Daniel C. Sobral Errare Humanum Est... UNBCIC@BRFAPESP.BITNET ...Perseverare Autem Diabolicum UNBCIC@FPSP.FAPESP.ANSP.BR -------------------------------------------------------------------------- No one, but me, is responsible for the above message.