Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!willett!ForthNet From: ForthNet@willett.UUCP (ForthNet articles from GEnie) Newsgroups: comp.lang.forth Subject: Object Oriented Forth Message-ID: <305.UUL1.3#5129@willett.UUCP> Date: 21 Jan 90 03:21:45 GMT Organization: Latest Link in ForthNet Chain (Pittsburgh, PA) Lines: 53 Category 3, Topic 41 Message 12 Sat Jan 20, 1990 D.RUFFER [Dennis] at 22:02 EST Gene, I've been doing a little bit of playing with you POLYOBJ file. It has a couple of problems with working on 8086 PolyForth. I've tried to make the changes, but now the system isn't working anymore. It might be easier if you make a few changes and re-post it, since you know what makes it tick and how to check it. I'm just getting to lost in it to trust my changes anymore. First, it is not recommended to change the function of existing words. You change to the nucleus is ok, but I would call it another name instead of using an existing name. I changed your definition of -FIND to -FINDS and left the original -FIND alone. Next, in quite a few places, you used 4 or 4+ where you should have used 1 CELL and CELL+. I made the changes, but I'm not sure I hit them all. Most of your stuff was ok, but blocks 1 and 2 were the worst cases. It is particulary difficult to know what to do with user variables, but the best bet is to use 1 CELLS instead of a literal number. On the user variables, a relatively standard way to start them off is with the following statement: STATE STATUS - CELL+ ( last user offset from block 198) Then, at the end of the block you can use the following to let you know how many have been used: CR .( Last USER =) . You appear to have added the definition CELLS+ that is not standard. I've just returned that to CELLS + as it should have been. The definition L@ uses a thing called -LINKS to remove some of the bits of the link field. That is only needed on the 386 version. I believe that L@ can be defined as AKA @ L@ for the 8086. The definition SEAL is just too large and I get an "out of range" error on the /LOOP. I tried to refactor it, but I think that is where I messed up. Try your hand at seeing if you can keep the DO and the /LOOP a little closer together. I think I can see what you are doing there, but you can do a better job a factoring it than I can and you know how to test it. That's as far as I got, but now the dictionary links are messed up after I load block 7. I believe the END> is the one that is doing it, which uses my butchered SEAL, but finding the problem is more than I want to deal with right now. Thanks. DaR ----- This message came from GEnie via willett through a semi-automated process. Report problems to: 'uunet!willett!dwp' or 'willett!dwp@gateway.sei.cmu.edu'