home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / bbl / doc / alpha.doc next >
Encoding:
Text File  |  1986-10-25  |  2.3 KB  |  54 lines

  1. I am about 90% complete writing BBL a public domain 32 bit
  2. Forth-83 compiler. (I still have to write FORGET, WORDS, a
  3. relocator, a post-fix assembler and finish the editor). If you
  4. an experienced Forth/Assembler hacker and are willing to test,
  5. debug, criticize and possibly even write code for BBL in its
  6. current form, please drop me a line.  It is written in Microsoft
  7. Assembler MASM version 4.0.
  8.  
  9. BBL will be officially released in October along with a suite of
  10. other public domain products: Abundance, a Forth Based database
  11. language; DOIT, an unattended file transfer system that uses the
  12. international X.25 net with X.3, X.28 async access (written in
  13. C); and HDTEST, a program to find and map out marginally bad
  14. tracks on hard disk whether or not they are in use (also written
  15. in C).  Source code will be available for all products.  There
  16. will be an article in the October Byte on BBL/Abundance.
  17.  
  18. BBL uses hashed (for fast compilation) dictionaries with
  19. separate disposable headers (so the nfas can be thrown away
  20. after compilation).
  21.  
  22. BBL uses 32 bit stack elements, but has 8, 16, 24, 32 and 64 bit
  23. operators as well.  Its NEXT inner interpreter is quick: LODS
  24. JMP AX,  (not JMP [AX]).   Colon definitions are compiled to 16
  25. bit tokens -- the offsets of Cfas in the CS: segment.  (all cfas
  26. live in the first 64K). The sum total of assembler code is
  27. normally limited to 64K, but high level colon definitions can
  28. span a megabyte.
  29.  
  30. For speed, words like @ and CMOVE expect absolute Seg:offset
  31. addresses.  The code was optimized for speed rather than
  32. compactness.  It makes great use of the 8086 string handling
  33. instructions.
  34.  
  35. It keeps the top element of the data stack (not a pointer -- the
  36. actual value) in CX:BX.  DI is nearly always kept 0.  DS:SI in
  37. the FORTH IP. SS:SP is the FORTH SP and SS:BP is the forth RP.
  38.  
  39. The down-side is there are 5 different kinds of HERE.  There is
  40. no >NAME and >BODY is somewhat slow.  Because the code uses
  41. absolute addresses, if overlays are loaded in a different
  42. location in RAM it needs some weird processing before it will
  43. work.  To have relocatable code, you need to compile twice for
  44. different base addresses and compare the two memory images to
  45. create the relocation bit map.
  46.  
  47. send a disk mailer to:
  48. Roedy Green
  49. Canadian Mind Products
  50. #11 - 3856 Sunset Street
  51. Burnaby BC CANADA
  52. V5G 1T3
  53. (604) 435-2957
  54.