[comp.lang.forth] Linking, Modules, and Overlays

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

 Date: 01-08-90 (16:29)              Number: 1634 (Echo)
   To: GARY-S                        Refer#: 1607
 From: STEVE PALINCSAR                 Read: NO
 Subj: Tinkering with tools          Status: PUBLIC MESSAGE

 Certainly a long-term examination of messages on the xCFB's would lead 
 one to the conclusion that most forth programmers who also leave msgs on
 BBSs seem to be far more interested in hacking the internals of their 
 forth systems than ever doing anything useful with them.  Planing the 
 board away to perfection is a perfect metaphor.

 Incidentally, I had the identical experience with the board... but not 
 by choice.  They wouldn't let me move on from step 1: plane board 
 perfectly square.  So after half a semester, I didn't have a maple leaf 
 nut tray, I had a mahogany toothpick...
-----
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) (01/10/90)

 Date: 01-08-90 (16:41)              Number: 1635 (Echo)
   To: GARY-S                        Refer#: 1625
 From: STEVE PALINCSAR                 Read: NO
 Subj: ADVANTAGES OF C FOR FORTH     Status: PUBLIC MESSAGE

 That should be obvious.  If you could painlessly use C libraries for 
 forth functions rather than endlessly reinventing the wheel, or perhaps 
 reinventing the Tower of Babel, you could get the same productivity 
 boost that is probably one of the major factors in C's success.

 HS/Forth does have a facility for using C libraries, but to date I don't
 know enough about C to really understand how to make use of it, so I 
 can't say how "convenient" or "painless" it actually is.  However 
 running the demos proves that it does in fact work.
-----
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) (01/10/90)

Category 3,  Topic 11
Message 42        Tue Jan 09, 1990
GARY-S                       at 07:55 EST
 
 
   To: STEVE PALINCSAR 
 Subj: ADVANTAGES OF C FOR FORTH

 sp>That should be obvious.  If you could painlessly use C libraries for 
 sp>forth functions rather than endlessly reinventing the wheel, or perhaps 
    sp>.......   

 sp>HS/Forth does have a facility for using C libraries, but to date I don't
 sp>know enough about C to really understand how to make use of it, so I 

  Brings to mind an interesting code maze - say, we bring up HS Forth's C
  facility and port Mitch Bradley's cforth83 or Mikael Patel's TILE, then
  using cmforth we write c handlers...
    ad infiniti, ad nauseam - - - -
      ^ so much for my (lack of) grasp of Latin. :-(
-----
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/07/90)

 Date: 02-02-90 (19:46)              Number: 2855 (Echo)
   To: ALL                           Refer#: NONE
 From: ZAFAR ESSAK                     Read: (N/A)
 Subj: LANGUAGE FEATURES             Status: PUBLIC MESSAGE

 In a review article in PC WEEK, July 3, 1989, comparing Turbo Pascal & 
 QuickPascal the following table of features was compiled by Ben Myers. 

 Some of the following items would be redundant or useless in a Forth 
 Development Environment, but what about the rest? 

 KEY FEATURES of Programming Languages. (Part 1 of 3) 

 EDITOR and ENVIRONMENT 

     Configurable colours 
     Customize Keyboard 
     Uses Mouse 
     Maximum number of file-editing windows 
     Maximum File-size that can be edited 
     Resize Editing Windows 
     Move Editing Windows 
     Duplicate Editing Windows 
     Cascade/Tile Windows 
     View Output Screen 
     Control Animation Speed 
     Control Screen Swapping 
     Change Compiler Directory 
     Change Help Directory 
     Change Source Directory 
     Change Include Directory 
     Change Object Directory 
     Change Unit Directory 
     Change EXE Directory 
     Use Short/Full Menus 

 FILE HANDLING 

     Pick List of Recent Files 
     Create New File 
     Open File 
     Merge File at Cursor 
     Save File 
     Save File with New Name 
     Print File in Current Window 
     Print Selected Text 
     Make File Read-Only 
     Change Directory 
     OS Shell 

 EDITING 

     Cut Text Between Files 
     Copy Text Between Files 
     Paste Text into File 
     Color-coded Syntax (Pascal) 
     Cut and Copy from Help examples 
     Overstrike Editing 
     Insert Editing 

 TEXT SEARCHING 

     Search Menu or Commands 
     Find Text 
     Find Highlighted Text 
     Repeat Last Find 
     Change Text 
     Match on Whole Word 
     Match Upper/Lower Case 
     Match on Regular Expression 
     Put Tags in Text 
     Go to Previous Tag in Text 
     Go to Next Tag in Text 
     Clear All Tags 

 More to come... 
 ---
  * Via Qwikmail 2.01

 NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886   
-----
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/07/90)

 Date: 02-02-90 (19:46)              Number: 2856 (Echo)
   To: ALL                           Refer#: NONE
 From: ZAFAR ESSAK                     Read: (N/A)
 Subj: LANGUAGE FEATURES             Status: PUBLIC MESSAGE

 KEY FEATURES of Programming Languages. (Part 2 of 3) 

 COMPILATION 

     Compile Program to File 
     Compile Program to Memory 
     Compile and Link All Changed Modules 

 COMPILED PROGRAM INFORMATION 

     Code Size 
     Data Size 
     Compiled Stack Size 
     Minimum Heap Size 
     Maximum Heap Size 
     Source-File Size 
     Source Lines 
     Dynamic Stack Usage 
     Dynamic Heap Usage 

 PROGRAM EXECUTION 

     Set Command-Line Parameters 
     Restart Program Execution 
     Run Compiled Program 
     Execute to Cursor 
     Trace Into 
     Step Over 
     Animate 

 DEBUGGING 

     Find Procedure 
     Trace Calls 
     Set Breakpoint 
     Edit Breakpoint 
     View Next Breakpoint 
     Remove All Breakpoints 
     Watch Value 
     Modify Value 
     Edit Watch 
     Remove All Watches 
     Uses External Source Debugger 

 COMPILATION OPTIONS 

     Word-Align Data 
     Compile Debug Info 
     Compile Far Calls 
     Compile I/O Checking 
     Compile for 80x87 Coprocessor 
     Check Subscript Ranges 
     Exact Match of String Vars 
     Generate 80286 Code 
     Generate 80386 Code 
     Use Method-Call Checking 
     Compile with Stack Checking 
     Set Conditional Defines in Editor 
     Compile with Overlays 
     Save Compilation Options 

 SUPPORTED UNITS 

     System 
     DOS 
     CRT 
     Printer 
     Overlay 
     Graph 
     MSGraph 
     Graph3 
     Turbo3 

 AVAILABLE MEMORY MODELS 

     Small 
     Medium 
     Other 

 More to come... 
 ---
  * Via Qwikmail 2.01

 NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886   
-----
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/07/90)

 Date: 02-02-90 (19:46)              Number: 2857 (Echo)
   To: ALL                           Refer#: NONE
 From: ZAFAR ESSAK                     Read: (N/A)
 Subj: LANGUAGE FEATURES             Status: PUBLIC MESSAGE

 KEY FEATURES of Programming Languages. (Part 3 of 3) 

 GRAPHICS CONTROLLERS SUPPORTED 

     CGA 
     MCGA 
     EGA Colour 
     EGA Mono 
     Hercules 
     AT&T/Olivetti 
     VGA 
     IBM 8514 
     PC3270 
     Other 

 AVAILABLE GRAPHICS FONTS 

     Bit-Mapped (Number of Sizes) 
     Stroke 

 EXAMPLES AND SAMPLE PROGRAMS 

     On-Line Examples 
     Other Sample Programs 

 OTHER PROGRAMS SUPPLIED 

     Batch Compiler 
     Mouse Driver 
     Hercules Controller Reset 
     Unit Maintenance 
     Installation Program 
     Freestanding MAKE 
     GREP 
     Change File-Creation Dates 
     Object-File Converter 
     Third-Party Libraries 
     Computer-Based Training Module 

 PRINTED MATERIALS 

     Language Tutorial 
     Function/Procedure Reference 
     Object-Oriented Programming Guide/Examples 
     Assembly Language Interface Guide 
     Compiled Data Structures Reference/Guide 
     Debugger Reference/Guide 
     Assembler Tutorial 
     Assembler Reference 

 The End. 
 ---
  * Via Qwikmail 2.01

 NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886   
-----
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/18/90)

 Date: 02-16-90 (09:27)              Number: 2915 (Echo)
   To: DAVID ALBERT                  Refer#: NONE
 From: JACK WOEHR                      Read: NO
 Subj: FORTH MODULARITY              Status: PUBLIC MESSAGE

 >   I do however have several questions:  First, I have seen that several
 >implementations of Forth use a small "inner interpreter loop" using
 >DS:SI for example as the instructioni pointer.  I chose just to use CAL
 >and RET as the entry and exit to my words.  Therfore, CS:IP is my
 >instruction pointer and word pointer.  Here's the question:  Why do
 >people use the separate inner interpreter loop?  It seems that the call
 >and return are much more flexible and that I can more easily manipulate
 >return addresses since they are just on the stack.  I use BP for my
 >parameter stack pointer.

        What you observe is quite valid ... on the  80x8x family, three
 types of threading are common: indirect, direct and subroutine 
 threading. With proper compiler optimization tricks, the latter (your
 choice) should execute fastest but use more memory than the other two
 schemes. All these threading schemes have variations, too ...

 >   Question number 2:  Since I have come from a Modula-2 background,
 >reusable, compiled libraries are very important (to me anyway) in the
 >course of developing good applications.  Due to the interpretive nature
 >of TILs, I seem to be having some trouble implementing libraries.  I
 >would like to allow several libraries (vocabularies) which can be
 >manipulated independently and linked into my final application.  I have
 >read some of the solutions on late binding, but none I've seen have bee
 >satisfactory.  Does anyone have any ideas, hints, etc.  Do you know how
 >anyone else does it?  Any advice would be appreciated.

        JForth on the Amiga features linkable modules ... you should
 perhaps examine their handling of this trickly matter.

                =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) (02/19/90)

Category 3,  Topic 11
Message 47        Sat Feb 17, 1990
R.BERKEY [Robert]            at 19:00 PST
 
   To: David Albert
   Re: Libraries (vocabularies)

 > Due to the interpretive nature of TILs, I seem to be having some
 > trouble implementing libraries.  I would like to allow several
 > libraries (vocabularies) which can be manipulated independently and
 > linked into my final application.  I have read some of the solutions
 > on late binding, but none I've seen have been satisfactory.  Does
 > anyone have any ideas, hints, etc.  Do you know how
 > anyone else does it?  Any advice would be appreciated.

As with TIL's, I'm not familiar with what the books have to say on late
binding.

You might take a look at token threading.  For more details, Terry Holmes has
reported in a 1983 or 1984 issue of the Journal of Forth Applications and
Research (JFAR) on variations, although his code examples are for the 68000. 
John Bumgarner, mentioned recently on ForthNet, could also provide some
information.

LIB-FORTH from Mountain View Press (MVP) in Mt. View, CA, has something along
the lines of modular vocabularies/libraries, allowing vocabularies such as the
assembler in alternate segments.  I'm recalling that the access to a word in
the vocabulary is done with 4 bytes, and the vocabulary/segment duplicates
essential code words.

The 1983(?) FORML proceedings has a paper by Glen Haydon on virtual
vocabularies.

Modular Forth, a commercial system from Microprocessor Engineering (MPE) in
Southampton, England, has some fairly advanced solutions.  They have a US
contact in Rochester, NY, and an interesting product brochure.

Robert

-----
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/19/90)

 Date: 02-17-90 (23:30)              Number: 2921 (Echo)
   To: JACK WOEHR                    Refer#: 2915
 From: DAVID ALBERT                    Read: NO
 Subj: FORTH MODULARITY              Status: PUBLIC MESSAGE

 Hi JAX, thanks for your reply. It did seem to me that the CALL..RET
 system would be fastest,  and take 1 more byte per word.  However, it
 (my application) has plenty of memory, but has to do some real time
 processing of speech signals, so speed is of the essence.  Thanks for
 confirming my suspicion.
   As to JFORTH, I assume this is a commercial Forth and since I have
 neither an Amiga, nor a knowledge of 68K assembler, I'm afraid I can't
 follow up on that one...thank you for suggesting it though.  Perhaps if
 you get a chance, you could describe a bit of how they implement
 modularity, I am sure it would be very interesting.
    See ya round.
-----
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) (08/06/90)

Category 3,  Topic 11
Message 50        Sun Aug 05, 1990
GARY-S                       at 13:58 EDT
 
             
  PORTED FROM Wetware =>
              -------

 #13.5 (5) by Luther Huffman (luther), on Mon Jul 30 08:01:42 1990:
  I would like to here about experiences anyone has had developing large 
  projects with Forth using any type of CASE tools.  I'm using CASE in its
  broadest sense to include the automatic structure tools described in the
  1985 FORML Proceedings, JSP/JSD, Coad-Yourdon's OOD, whatever.
  --
  Yacc Luther (Lex Luther has already been taken)
  Luther Huffman                                
  ..uunet!dayvb!udcps3!huffman

 Luther -
   We have discussed how this conference is echoed on Usenet so that
 others reading this will know I will repeat. wetware forth.conf is in fact
 echoed on Usenet comp.lang.forth.
   With that in mind I must confess I will forward your inquirey about
 CASE tools to ForthNet and clf to see what sort of responses that
 we get back, because I don't have an immediate personal response.
   gars
-----
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.pgh.pa.us (ForthNet articles from GEnie) (09/12/90)

 Date: 09-09-90 (21:56)              Number: 3744 (Echo)
   To: ALL                           Refer#: NONE
 From: ZAFAR ESSAK                     Read: (N/A)
 Subj: PRINTCNF.ZIP                  Status: PUBLIC MESSAGE

 I have uploaded a file called PRINTCNF.ZIP which contains the Forth 
 source for a printer configuration approach that uses an ascii text 
 file containing print command instructions and codes.  These are read 
 and entered into a MATRIX which is accessed by Forth printing words. 
 The source was written and tested on F-PC and includes the alternate 
 source if Stream I/O is used instead of Zimmer's file I/O. 

 This file has been uploaded to the BC Forth Board.  Comments are 
 welcome. 

[ As soon as this file makes it to GEnie, I'll post another message
  stating that it is available for email access from willett.  -dwp]

 Zafar. 
 ---
  * Via Qwikmail 2.01

 NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886   
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: uunet!willett!dwp or dwp@willett.pgh.pa.us

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (02/27/91)

 Date: 02-23-91 (00:36)              Number: 1301 of 1301
   To: ALL                           Refer#: NONE
 From: STANLEY SUTTON                  Read: (N/A)
 Subj: DEFINING WORDS, F83           Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 I'm primarily a C coder, just starting to learn forth.  I'm hoping
 that I'm understanding defining words correctly.  I'm attempting to
 build a Desqview Interface to F83.  Some of the direct call to the
 Desqview API use the same registers.   Are the following two screens
 a proper use of defining words?

 \  Direct call interface, no return values          91-02-23 sms

 Hex

 Code AINT  ( code -- )
    AX pop   15 int  next  end-code

 : dq1   create , does> @ aint ;
   101B  dq1 beginc
   101C  dq1 endc
   1000  dq1 pause
 decimal
 \  Direct call interface, no return values
 Hex

 Code BAINT   ( n code -- )
    ax pop   bx pop  15 int   next  end-code

 : dq2  create , does> @ BAINT ;
   110B dq2 apilevel             1112 dq2 cstyle
   110A dq2 dbgpoke              1014 dq2 freebit
   1111 dq2 justify              102B dq2 posttask
   1110 dq2 pushkey              1015 dq2 setbit
 decimal

 NET/Mail : RCFB Golden, CO (303) 278-0364 VESTA & Denver FIG for Forth!
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (02/27/91)

Category 3,  Topic 11
Message 54        Mon Feb 25, 1991
D.RUFFER [Dennis]            at 22:31 EST
 
Re: STANLEY SUTTON

 > Are the following two screens a proper use of defining words?

...code removed...

Not bad Stan.  The only concern I would have is what happens to the other
registers.  Forth typically keeps some things in registers like return stack
and interpreter pointers.  You may need to push and pop them in your code
routines.  I don't remember which ones F83 uses however, but look at the low
level words (like docolon) to figure it out.

   {B-{)>   DaR
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

cwpjr@cbnewse.att.com (clyde.w.jr.phillips) (02/27/91)

In article <2420.UUL1.3#5129@willett.pgh.pa.us>, ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) writes:
> 
>  I'm primarily a C coder, just starting to learn forth.  I'm hoping

Once again welcome. How did you learn to take FORTH seriously? This is not
a trick question. I'm curious because primarily C coders can easily
beleive there is no need for anything but C, ie a bit dogmatic.
I have C folks who are interested in FORTH, so any comments would be welcome.

As for your question, you are in the right place and we are cuurently
discussing the "call interface" issue. I'll let the working practitioners
of this art respond...

>  that I'm understanding defining words correctly.  I'm attempting to
>  build a Desqview Interface to F83.  Some of the direct call to the
>  Desqview API use the same registers.   Are the following two screens
...to this also-------------------------------------------------^^^^^^
>  a proper use of defining words?
> 
>  \  Direct call interface, no return values          91-02-23 sms
Clyde

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (03/04/91)

 Date: 02-27-91 (13:37)              Number: 1349 of 1349
   To: DENNIS RUFFER                 Refer#: 1316
 From: ELLIOTT CHAPIN                  Read: NO
 Subj: LINKING, MODULES, AND OVE     Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 Subj: LINKING, MODULES, AND OVE

 DR>Re: STANLEY SUTTON

  > Are the following two screens a proper use of defining words?

 DR>...code removed...

 DR>Not bad Stan.  The only concern I would have is what happens to the other
 DR>registers.  Forth typically keeps some things in registers like return 
 DR>stack and interpreter pointers. You may need to push and pop them in your
 DR>code routines.  I don't remember which ones F83 uses however, but look at
 DR>the low level words (like docolon) to figure it out.

 F83 data stack ptr = SP
     return           BP
     instruction      SI
     word             BX  - this one only important for recursion

 Dennis,

 I've gotten a little further on my token-threaded Forth since we
 spoke last week:  in fact, a "new class of CFAs" for relatives of
 CREATES/DOES> or IF/THEN, etc.is not needed (as far as I can tell).
 The token table can hold adjusted values of the instruction pointer,
 as well as current CFAs.  This takes care of preserving parent/child
 links easily as long as token-table order is kept the same as
 dictionary order.  There is an obvious catch:  dictionary searches
 by token-table alone won't work in general; all that means
 is that LFAs of some kind would still be needed.

 Regards,

 Elliott

 PS - It's not clear how dependable the CRS Usenet/e-mail
 connection is, so please let me know by mail or phone as well as
 e-mail if/when I get the chance to be one of the GEnie volunteers.

 Elliott Chapin
 ---
  ~ DeLuxe}ab #4315 ~

 PCRelay:CRS -> RelayNet (tm)
 4.10a14        Canada Remote Systems * Toronto, Ontario
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (03/04/91)

Category 3,  Topic 11
Message 56        Fri Mar 01, 1991
D.RUFFER [Dennis]            at 22:47 EST
 
Re: ELLIOTT CHAPIN

Thanks for looking up the F83 registers for Stan Elliott.  I just never seem
to have my ref's handy when I need them :(

 > ... as long as token-table order is kept the same as dictionary
 > order....

gonna make pruning the dictionary difficult if you ever want/need to do that
also.

 > ... dictionary searches by token-table alone won't work in
 > general...

obvious answer...seperate heads <smile>

 > GEnie volunteers

Expect a call this weekend...sorry for the delay.

DaR
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (04/26/91)

 Date: 04-19-91 (17:51)              Number: 1963 of 1988 (Echo)
   To: GARY SMITH                    Refer#: 1910
 From: RAY DUNCAN                      Read: NO
 Subj: LINKING, MODULES, AND OVE     Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

   >LMI has something along those lines too, at least with their
   >"compiled to object code product" that is based on Tom Almy's work

 Two things are being mixed together here.  LMI has developed a
 translator that converts Forth source code to Intel/Microsoft 80x86 OMF,
 which can in turn be passed through the Linker (along with OBJ files
 from other languages such as C or MASM or ((God Forbid)) Fortran) to
 build an executable Forth kernel.  This is how our UR/FORTH products are
 built for DOS, OS/2, and 386 DOS Extender environments, and this object
 module compiler was written by LMI.

 Tom Almy's product is a native code compiler.  It translates high level
 Forth code directly to executable machine code (no threaded code
 involved anywhere, and no Linker needed).  We ship a version of this
 with our UR/FORTH systems, paying Tom a royalty, in addition to the
 object module compiler already described.

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (04/28/91)

 Date: 04-23-91 (18:52)              Number: 1990 of 2013 (Echo)
   To: GARY SMITH                    Refer#: 1923
 From: RAY DUNCAN                      Read: NO
 Subj: FPC FORTH?????????            Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

    Tom Bushell writes:
    >is there any way to access extended memory from FPC

 There are ways to access extended memory with either the ROM BIOS or the
 XMS interface.  If you have the 2nd edition of my book, this is
 illustrated in the memory management chapter.

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (05/04/91)

 Date: 04-27-91 (15:22)              Number: 2025 of 2065 (Echo)
   To: RAY DUNCAN                    Refer#: NONE
 From: BILL TRIFFET                    Read: 04-27-91 (21:27)
 Subj: PROGRAMMING LPT1              Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 Well, I've got my system running back to normal- finaly! My current
 project involves reading data from the printer port. I was told that
 I would have to use assembler language to do this properly ( sic). Not
 being to swift at this, I was wondering if you knew of some examples
 that I could study.
    My program only involves reading the status of the the Busy line -
 either 0 or 1. I wired a device to send a +5v pulse ( yes, I put an add
 on parrellel card in case somthing goes amok) which I will store in a
 buffer to use as data for the x/y coordinates of a graphed curve.
 Am I in to deep? For a novice, I mean.
                                     Later.

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>

 Date: 04-27-91 (21:23)              Number: 2026 of 2065 (Echo)
   To: BILL TRIFFET                  Refer#: NONE
 From: RAY DUNCAN                      Read: 04-29-91 (21:19)
 Subj: PROGRAMMING LPT1              Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 What language are you writing this in?  If Forth you can use the PC@
 command from high level code.  If Turbo C just use the inline assembler
 to read the port, e.g.
   _asm mov dx,xxx
   _asm in al,dx
 I don't know enough about Turbo Pascal to know how to do this, but I
 think they have inline assembler now too.

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (05/04/91)

 Date: 04-29-91 (21:19)              Number: 2028 of 2065 (Echo)
   To: RAY DUNCAN                    Refer#: NONE
 From: BILL TRIFFET                    Read: 04-29-91 (23:06)
 Subj: PROGRAMMING LPT1              Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 I'm writing the program in Forth. It's amazing,I just happened to read
 about PC@ in the manual and see the example in Forth.scr a few minutes
 ago. Once again, it pays to read the manual.
    The guys at Hacker Electronics in Chatsworth, set me up with a cool
 schematic for a simple circuit that I built. It consists of an LED and
 a photo-transister. A rototating disc, with a window in it breaks the
 beam, each revolution. This causes the phototransister to pull a neg.
 voltage. They assured me it will work even at 40,000 RPM ( whew! ).
 We will see.
                                              Thanks!

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (05/08/91)

 Date: 05-02-91 (21:49)              Number: 2090 of 2105 (Echo)
   To: RAY DUNCAN                    Refer#: NONE
 From: BILL TRIFFET                    Read: 05-03-91 (10:49)
 Subj: PC@ AND LPT2                  Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 Hey dude. It took me 2 hours to realize that PC!, initializes the port
 to a desired value. The way it reads, at least for the novice, is that
 it sends a byte only. I found out the value stays at that port address.
 True? Anyways, my gizmo works fine ( though the LED does not shine
 bright enough with the power recieved from the +5v #1 pin, I shall use
 an external pwer supply.
    The whole purpose of this excercise has been to try and time a
 flywheel with a light beam. To further complicate things, I wish to
 measure the acceleration of the rpms (torque).
    I'm considering using the Multitasker ( TICKER etc...) to accomplish
 the timing problem. Is their some examples other than whats on
 FORTH.SCR?
                                   Signed
                                   Confused Again
 Thanks Dude!

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (05/08/91)

 Date: 05-03-91 (10:47)              Number: 2091 of 2105 (Echo)
   To: BILL TRIFFET                  Refer#: 4171
 From: RAY DUNCAN                      Read: 05-04-91 (19:44)
 Subj: PC@ AND LPT2                  Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 PC! writes the value to a port.  Whether the value *stays* at the port
 or not depends on how the port is wired -- if the port has "latches" or
 "buffers" on the system I/O bus, the value you write will "stick" there.
 However many ports don't work that way, so you can't count on anything
 without knowing the exact hardware characteristics of the device you're
 talking to.  You should think of a port address as being like a memory
 address, only it's an address in a very small address space that is
 completely separate from the normal CPU address space.  The CPU sends a
 value to an address and it has no control over what happens at the other
 end.

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (05/08/91)

 Date: 05-03-91 (10:49)              Number: 2092 of 2105 (Echo)
   To: BILL TRIFFET                  Refer#: 4171
 From: RAY DUNCAN                      Read: 05-04-91 (19:47)
 Subj: PC@ AND LPT2                  Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

   >are there some examples other than whats on FORTH.SCR

 There's probably stuff in the support conferences, but the examples in
 FORTH.SCR are designed to show you how to do the most common problems.
 If you want to time things, look at the words !TIMER @TIMER .TIMER etc.
 which occur somewhat earlier in FORTH.SCR.

 NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530
 <<<>>>
-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us _or_ uunet!willett!dwp