Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site utah-cs.UUCP Path: utzoo!watmath!clyde!burl!hou3c!hocda!houxm!ihnp4!zehntel!hplabs!utah-cs!carr From: carr@utah-cs.UUCP (Harold Carr) Newsgroups: net.lang.forth Subject: re: DYNAMIC CONSTANTS Message-ID: <3036@utah-cs.UUCP> Date: Wed, 19-Sep-84 11:49:54 EDT Article-I.D.: utah-cs.3036 Posted: Wed Sep 19 11:49:54 1984 Date-Received: Tue, 25-Sep-84 19:49:05 EDT Organization: Univ of Utah CS Dept Lines: 39 Thank you. Before I received your answer I had looked up the code defining ARRAY in forth.blk and used it as a model for this definition of LEN: : LEN ( n --- ) HERE 1 AND ALLOT ( even up the address) CREATE ( get segment name from input stream) HERE ( beginning of storage for segment) SWAP DUP ALLOT ( allocate N byte of storage) 0 FILL ; ( initialize storage to zero) Being new to forth, while I was rummaging through the documention for useful words to define defining words, it was not clear to me at all that: -------------------------------------------------- CREATE A defining word used in the form: CREATEto create a dictionary entry for , without allocating any parameter field memory. When name is subsequently executed, the address of the first byte of 's parameter field is left on the stack. -------------------------------------------------- got from the input stream. Even the page on notation says nothing, so I really appreciate how you pointed out your convention for notating this. Also, thanks for pointing out the use of DOES> in this context. Even though my header said DYNAMIC CONSTANTS you cleary saw through this to see what I was really trying to do was to make a defining word for byte arrays. Thank you very much for your help, Harold Carr -------