[comp.lang.forth] Build the world's largest Forth Word!

files@willett.UUCP (Mailed File Repository) (12/20/89)

Topic 36        Wed Jun 07, 1989
J.NELSON5                    at 22:24 EDT
Sub: Build the world's largest Forth Word!  

Well, I finally tried LMI's superb new virtual memory system for the 80386. 
It's real, and to try it out I wrote the following bit of code.  Hey, Make it
bigger!  You may end up with the biggest ever!
2 new messages.
 ************

GEnie@willett.UUCP (ForthNet articles from GEnie) (12/21/89)

Topic 36        Wed Jun 07, 1989
J.NELSON5                    at 22:24 EDT
Sub: Build the world's largest Forth Word!  

Well, I finally tried LMI's superb new virtual memory system for the 80386. 
It's real, and to try it out I wrote the following bit of code.  Hey, Make it
bigger!  You may end up with the biggest ever!
-----
This message came from GEnie via willett through a semi-automated program.
Report problems to: 'uunet!willett!dwp' or 'willett!dwp@gateway.sei.cmu.edu'

ForthNet@willett.UUCP (ForthNet articles from GEnie) (01/13/90)

 Date: 01-13-90 (02:30)              Number: 2774 (Echo)
   To: ALL                           Refer#: NONE
 From: GENE LEFAVE                     Read: (N/A)
 Subj: POLYFORTH OBJECTS             Status: PUBLIC MESSAGE

 I have recently converted Dick Pountain's object oriented forth word
 set to polyFORTH 386.  I would be happy to upload this if it is of 
 interest to any polyFORTH users here.  The code will not work on 
 other FORTHs because of the different dictionary structure.

 Gene
 ---
  ~ EZ-Reader 1.13 ~ 

[ Doug here.  If anyone on comp.lang.forth is interested in this, post
  a message so that Gary Smith can forward it over to ForthNet.  If they
  upload this package to GEnie and anyone on comp.lang.forth is interested
  in having it available, I'll download it and send it off to Simtel20.
  Post replies so that they'll make it back to the rest of the ForthNet.]
-----
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'

ForthNet@willett.UUCP (ForthNet articles from GEnie) (02/03/90)

 Date: 02-02-90 (02:23)              Number: 2843 (Echo)
   To: JERRY SHIFRIN                 Refer#: 2825
 From: GENE LEFAVE                     Read: NO
 Subj: BRIDGEFORTH                   Status: PUBLIC MESSAGE

 I've downloaded Forth Inc's  BridgeForth.  It seems to work but I don't
 have any C libraries to really try it.   You create a separate .EXE file
 with the external functions you want to call.  This is loaded
 separately by your FORTH program.   A defining word is used to setup
 the call given the number of args and the number of the routine in
 the .EXE module.  The technique they used is quite
 clever and only a couple blocks long.  
 .
 FORTH Incs BBS is not public, unfortunately.  It is primarily for
 product support.  
 ---
  ~ EZ-Reader 1.13 ~ 
-----
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'

ForthNet@willett.UUCP (ForthNet articles from GEnie) (02/03/90)

 Date: 02-01-90 (09:52)              Number: 2844 (Echo)
   To: DENNIS RUFFER                 Refer#: NONE
 From: JACK WOEHR                      Read: NO
 Subj: FINC BBS                      Status: PUBLIC MESSAGE


        Dennis ---

        Let me just mention in your (& Sister 'Liz's) hearing this
 tidbit:

        Since I started mentioning Vesta and Vesta products in
 appropriate contexts via networked telecom, we have generated about
 100 inquiries (about a 10-month period) and several sales.

        When they consider linking the FInc BBS into ForthNet, they
 should ask themselves, "Will a direct electronic line to the most
 interested, active Forth programmers in the world hurt us?" :-)

                =jax=

 NET/Mail : RCFB Golden, CO (303) 278-0364 VESTA & Denver FIG for Forth!
-----
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'

ForthNet@willett.UUCP (ForthNet articles from GEnie) (06/10/90)

 Date: 06-08-90 (17:57)              Number: 1654 (Echo)
   To: DENNIS RUFFER                 Refer#: NONE
 From: GENE LEFAVE                     Read: NO
 Subj: POLYFORTH FOR 68020           Status: PUBLIC MESSAGE

 We're doing a system for a larger then usual costomer and I
 need to port our pf68K to a 68020.  As far as I can tell everything
 is pretty much the same except for a few new instructions.  
 Can you think of anything I should know before I start.  I've
 already done the necessary [Garbage in transmission here -dwp]
 interrupt routines for
 the 68010.  So these should work on the '020. 

 I'm using the SBE board and the differences between the old and
 new boards are not great; a different clock, some addresses, and
 a different serial chip.

 This is the first time I'll be bringing up a system from scratch
 and I'm worried about any hidden "gotcha's". 
 ---
  ~ EZ-Reader 1.13 ~ 
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu

ForthNet@willett.UUCP (ForthNet articles from GEnie) (06/11/90)

Category 3,  Topic 36
Message 33        Sat Jun 09, 1990
D.RUFFER [Dennis]            at 16:00 EDT
 
Re: GENE LEFAVE

 > need to port our pf68K to a 68020...
 > Can you think of anything I should know before I start.

I don't think there is much of anything that will get in your way Gene. 
polyFORTH has usually already been written to the lowest common denominator
between the two and upgrading should be no problem.  Where I have run into
problems is going the other way.  On a 68020 you can access odd addressed
bytes, but on the 68000 you can not.  If you are already on the 68000,
everything has already been ALIGNed.  If you are short on memory, you can take
that stuff out, but usually it is more trouble than it is worth.

 > This is the first time I'll be bringing up a system from scratch
 > and I'm worried about any hidden "gotcha's".

I am right in the middle of bring up my first 68K system from scratch also. 
Mine doesn't work at the moment, so I couldn't tell you how to get around the
gotcha's even if I knew what they were. As with any system, it's the power up
where all the problems occur. I will keep you informed if I find anything that
might help you, but mostly it is configuration stuff that is unique to each
system that gets you in trouble.

As for advice, what I will do next week is try to get something out to the
terminal.  From there, you get the interpreter working.  Then you can get out
of the COMPILER LOAD CPU LOAD TESTING LOAD TRY cycle and test things
interactively.

DaR
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu

ForthNet@willett.UUCP (ForthNet articles from GEnie) (07/06/90)

 Date: 07-04-90 (03:42)              Number: 3452 (Echo)
   To: DENNIS RUFFER                 Refer#: 3397
 From: GENE LEFAVE                     Read: NO
 Subj: BUILD THE WORLD'S LARGEST     Status: PUBLIC MESSAGE

 Dennis:

 DR>Another one that you might be interested in is the math opcodes that you
 DR>can use on the 68020.  They greatly speed up the math primatives.  We've

 My problem here is modifying the assembler is just slightly beyond me.  I've 
 looked at the 68K assembler for years and I still can't figure out how to 
 add an opcode.

 DR>trying to access.  We also display where the interpreter pointer was. 
 DR>Sometimes, this information is invaluable when you have a bug.


 Any chance of getting this source from the Forth Inc board. Our maintenance
 is long gone as far as the 68000 system is concerned.   But I'm still on 
 maintenance for our 386 system.

 I've converted the DOS editor to the 68K.  Do you need it?

 ---
  ~ EZ-Reader 1.13 ~ 
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu

ForthNet@willett.UUCP (ForthNet articles from GEnie) (07/06/90)

Category 3,  Topic 36
Message 37        Thu Jul 05, 1990
D.RUFFER [Dennis]            at 21:39 EDT
 
Re: GENE LEFAVE

 > I still can't figure out how to add an opcode.

Just a bunch of macros Gene.  :-)  BTW, I can't do much more than use it
myself. <grin>

 > Any chance of getting this source

I'll try to remember to capture it and upload it here.

 > I've converted the DOS editor to the 68K.  Do you need it?

Is that the full screen +EDIT ?  I just converted it to work on a terminal
myself.  I'd be curious what keys you decided to map everything to.  I ended
up putting everything on Control keys but needed two table, one just for all
the X related functions.  How did you get all the keys in?

DaR
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu

ForthNet@willett.UUCP (ForthNet articles from GEnie) (07/11/90)

Category 3,  Topic 36
Message 38        Mon Jul 09, 1990
D.RUFFER [Dennis]            at 19:34 EDT
 
Re: GENE LEFAVE

You asked for the 68020 interrupt code.  It was only 1 block so here it is. 
I'll leave it as an excersise to figure out what it does. :-)

 ( 68020 Exception vector processing)
 : EXCEPTION ( a n)   CELLS ! ;

 VARIABLE WHERE  8 ALLOT      VARIABLE SPURIOUS
 : REST ( a a)  ." at " .  ." I=" .  SPACE 1 ABORT" trapped" ;
 HERE  ] CR  WHERE 5 + C@ 12 = IF  ." Addr"  ELSE  ." Bus"  THEN
   ."  error accessing " .  REST [
 ASSEMBLER BEGIN   R )+ MTSR   I S -) MOV   R )+ RL MMOV D0 D1 \\
    6 R) D2 MOV   RL WHERE AB MMOV D0 D2 \\   D0 S -) MOV
    D2 S -) MOV   SWAP # I MOV   NEXT
    DUP 2 EXCEPTION   3 EXCEPTION
 HERE   ] CR  ." Exception # "  4 / .  REST [
 ASSEMBLER BEGIN   R )+ MTSR   I S -) MOV   R )+ S -) MOV
    R )+ S -) H. MOV   S -) H. CLR   SWAP # I MOV   NEXT
    4 EXCEPTION  16 20 76 MOVE
 BEGIN   1 #Q SPURIOUS AB ADD   RTE   24 EXCEPTION

Have fun!   DaR
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu

ForthNet@willett.UUCP (ForthNet articles from GEnie) (07/11/90)

 Date: 07-10-90 (03:44)              Number: 3481 (Echo)
   To: DENNIS RUFFER                 Refer#: 3462
 From: GENE LEFAVE                     Read: NO
 Subj: BUILD THE WORLD'S LARGEST     Status: PUBLIC MESSAGE

 To:  Dennis Ruffer

 DR>
 DR>Is that the full screen +EDIT ? I just converted it to work on a terminal
 DR>myself.  I'd be curious what keys you decided to map everything to.  I

 I cheated. 8-)  I'm using PC's as terminals with my own terminal emulation
  program (written in polyFORTH of course).  I encode all the keys, so +EDIT
  uses the same keys no matter what system I'm on. Only exception is that the
  latest +EDIT uses some alt keys which are local commands on my terminal
  emulator so I switched those to Ctrl keys.

 I also added a funtion (Ctrl G) that lets you assign any decimal key code to 
 the "`" character.  This lets me put graphics into the help screens.

 Gene
 ---
  ~ EZ-Reader 1.13 ~ 
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu

ForthNet@willett.UUCP (ForthNet articles from GEnie) (07/27/90)

 Date: 07-24-90 (08:22)              Number: 3561 (Echo)
   To: DENNIS RUFFER                 Refer#: 3551
 From: JACK WOEHR                      Read: NO
 Subj: PURE PF                       Status: PUBLIC MESSAGE

 >
 >What's so "pure" about polyFORTH?
 >
 >Indirect threading.  Parameter fields contain definition tokens which p
 >code field addresses which point to code.  Certainly not the most effic
 >but the most universal technique across various hardware platforms.
 >

        True ... indirect threading is actually the *least* efficient
 (with the exception of some C-coded   switch   statement primitive
 engines which I have seen, i.e., Pratt's early CFORTH) inner 
 interpreter.

        BUT YEZZZZ, it is the *most* portable, there is no question
 about it. After years of escaping from indirect threaded in favor
 of faster-executing direct-threaded, JSR-threaded and silicon-threaded
 schemes, my next Forth for Vesta ... is indirect threaded! This
 allows me, in this particular case, to author a really dynamite Forth
 on this particular cpu.

                =jax=

 NET/Mail : RCFB Golden, CO (303) 278-0364 VESTA & Denver FIG for Forth!
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu