[comp.lang.forth] FPC forth?????????

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

 Date: 12-23-89 (14:33)              Number: 1686 (Echo)
   To: DENNIS RUFFER                 Refer#: 1685
 From: STEVE PALINCSAR                 Read: NO
 Subj: FPC FORTH?????????            Status: PUBLIC MESSAGE

 Dennis, I ran both F83 and HS/Forth for at least two years on a Zenith 
 Z150 which had a V20 as a replacement for the 8088, and it worked just 
 fine.  No discernable difference at all (either faster or slower).
-----
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/11/90)

Category 1,  Topic 21
Message 118       Tue Jan 09, 1990
R.BERKEY [Robert]            at 22:00 PST
 
 To: Christopher S. Weimann
 Re: F-PC's   HWRITE   only working once

Take a look at adding DEF-RWMODE after the READ-WRITE , or moving the READ-
WRITE to within the colon definition as in the definition of ?READFILE .

I don't know why F-PC defaults to "read-only".  I've added   READ-WRITE DEF-
RWMODE   to BLOCK.SEQ and consequently I normally run with the read/write
default mode set to "read-write".  Seems to work ok.

Robert Berkey

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

 Date: 01-14-90 (16:27)              Number: 1711
   To: ALL                           Refer#: NONE
 From: BILL MCCARTHY                   Read: (N/A)
 Subj: F-PC 3.50 FIX                 Status: PUBLIC MESSAGE

 One problem I've noticed with the FPC editor under 3.50 is the loss
 of screen contents when returning from the editor.  This can be
 fixed by a change to TOPEDIT.SEQ:

 In the word <RED> add "SAVECURSOR" between ": <RED>" and "SAVESCR"
 and add "RESTSCR RESTCURSOR" between "THEN" and "CR ;"
-----
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/12/90)

Category 1,  Topic 21
Message 125       Sun Feb 11, 1990
R.BERKEY [Robert]            at 03:47 PST
 
  There is an F-PC SED bug, requiring a reset, when the file is of length
zero.  Here is a fix.

SEDITOR.SEQ was:

 : read.oldfile ( --- )         \ get existing file
                off> newfl
                ed1hndl endfile or              \ it must have a length
                if      read.openfile           \ read it
                        outbuf c@ 0<>           \ did we get it all
                        if      .partial        \ if not then warn user a
                        then                    \ partial read was performed
                else    true
                        " File is of length ZERO." ?terror
                then    ;

SEDITOR.SEQ as modified:

 : read.oldfile ( --- )         \ get existing file
                off> newfl
                ed1hndl endfile d0=
                abort" File is of length ZERO." \ it must have a length
                read.openfile                   \ read it
                outbuf c@ 0<>                   \ did we get it all
                if      .partial                \ if not then warn user a
                then   ;                        \ partial read was performed

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

 Date: 02-14-90 (21:07)              Number: 1747 (Echo)
   To: ARCHIE WARNOCK                Refer#: 1745
 From: DAVID BOYD                      Read: NO
 Subj: F-PC HANGS?                   Status: PUBLIC MESSAGE

 I've found that if I copy the HYPER.NDX file from D:\FPC to whatever
 directory I am working in, everything works just fine.

 So, the question is, why can't FPC find D:\FPC\HYPER.NDX from a
 subdirectory on A:, B:, C:, D:, E:, or F:, given that FPATH contains the
 location of it?


 ---
  ~ EZ 1.24 ~ Oh, so that's what happened, huh?
-----
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/16/90)

 Date: 02-14-90 (21:07)              Number: 1748 (Echo)
   To: ALL                           Refer#: NONE
 From: DAVID BOYD                      Read: (N/A)
 Subj: TZK350.zip                    Status: PUBLIC MESSAGE

 I went through the method to incorporate the changes from TZK350.zip to
 FPC 3.50.  However, even though VIEW EMPTY works fine, if I try
 something like VIEW EMIT, I get
     Defined from Keyboard.

 It seems as if every DEFERed def is said to have been defined from the
 keyboard.

 So, I went back to plain old FPC 3.50.

 Any ideas?

 To get the system up at first, I used

 VARIABLE FILE#
 VARIABLE LIST#

 FSAVE F-PC

 then I ran FMETA.bat, and then EXTEND.bat.

 No unresolved references, compiled beautifully.  Just can't find any
 DEFERed source code.

 ---
  ~ EZ 1.24 ~ 
-----
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/16/90)

 Date: 02-15-90 (00:39)              Number: 1749 (Echo)
   To: ALL                           Refer#: NONE
 From: DAVID BOYD                      Read: (N/A)
 Subj: >H and H> in StreamIO.zip     Status: PUBLIC MESSAGE

 What do H> and >H do?  They don't seem to be in my FPC 3.50 anywhere?
 They are in the DOSFILE.TXT file of STREAMIO.ZIP, and it looks as if
 they are used to preserve something, perhaps all of the registers?
-----
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-15-90 (12:04)              Number: 1750 (Echo)
   To: ROY RICE                      Refer#: 1746
 From: DAVID BOYD                      Read: NO
 Subj: LONG CALLS                    Status: PUBLIC MESSAGE

 RR>How do you know when to use the 'long' words such as cmovel?


 When you want to address memory that is not in FPC's normal memory
 space, such as writing to the Video Screen at 0xB800, you must use the
 'long' words, such as CMOVEL.

 Anything that is inside of FPC, such as strings and data, can be
 manipulated with 'short' words, such as CMOVE.
 ---
  ~ EZ 1.24 ~ 
-----
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 (08:14)              Number: 1752 (Echo)
   To: ALL                           Refer#: NONE
 From: DAVID BOYD                      Read: (N/A)
 Subj: FPC 3.50 and FSTRINGS         Status: PUBLIC MESSAGE


   I am trying to use FSTRINGS.src in FPC 3.50.

   I used a copy of f83s to clean out all the MasterForth screens
   and load screens.

   I changed the definition of _'INPC to ignore the BLK and BLOCK words

   : _'INPC ( i -- a )
   \ Returns address for offset index in the input stream.
     TIB  + ;

   It floads ok, then I fload fstest, the accompanying test file, and whe
   it gets to "Testing [$LIT]", Software reset, Reboot to Continue, ..., 

   The problem is with [$LIT].  I haven't studied any of this with enough
   depth to see just what is going on inside of FPC.  Somewhere in the
   following definition is the cause for a Software RESET.  I think it is
   being caused by the COMPILE BRANCH statement, but that is just my SWAG

     : [$LIT] ( -- string )                        \ "bracket-s-lit"
   \ Compiled string literal
     COMPILE BRANCH HERE 0 ,  \ forward branch around string
     HERE ,$ HERE ROT ! [COMPILE] LITERAL ; IMMEDIATE

      This makes it crash ---------------------------------------+
                                                                 |
   +---------------------------------------------------------+   |
   | \ Test [$LIT] ( -- string )              GTH 09/11/87   |   |
   |                                                         |   |
   | TESTING '[$LIT]'                                        |   |
   |                                                         |   |
   | : COMP$ [$LIT] 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ;  <------------+
   | COMP$ @  \ should give ( -- 26 )                        |
   | 26 CHECK '[$LIT]' REGARDING LENGTH                      |
   |                                                         |
   | S1 _CF+ COMP$ _CF+ 26 SAME?  \ should give ( -- TRUE )  |
   | TRUE CHECK '[$LIT]' REGARDING CONTENTS                  |
   |                                                         |
   | HAS '[$LIT]' ALTERED STACK?                             |
   +---------------------------------------------------------+

   What must the definition of [$LIT] be to jump around a string that is
   being compiled?

 ---
  ~ EZ 1.24 ~ I am very FORTHward in my opinions...
-----
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/25/90)

 Date: 02-24-90 (01:45)              Number: 1754 (Echo)
   To: MARK SMILEY                   Refer#: 1725
 From: MIKE SPERL                      Read: NO
 Subj: BRECALL                       Status: PUBLIC MESSAGE

 1Mark,
 >  An excellent first step.  I am eager to see the results.

     Sorry to bbe away so long.  Have my 386 running now, and have
 DOS 4.01 installed and have been reading all the directions, so
 had to put aside the Project for a while, but I'm finally back in 
 businness.

 >I noticeed in your note to Pete that you are getting a 386 machine.
 >Sounds nice.  If you don't mind my curiosity, what 
 >kind/confiiguration did you decide on? 

     I got a 20MHz AMI motherboard with 4MB dram (takes up to 16) 
 and a 64K sram cache as well as a 387.  The AMI bios is something  
 else: built-in diaggnostics with windows, menus; analyzes the hard 
 disk for bad sectors (and reported the same addrresses as the 
 factory in the case of three hard disks I tried with it), does  the 
 lo level format and automatically tries various iinterleaves to find 
 the best (2:1 for my two disks), tests the floppy drives, vga 
 boardd, communications board, etc., etc. ...  The board accepts any 
 8 or 16 bit peripheral so I can use all my old XT-clone boards with 
 it, even the ramdisk, which I tried out to see if it would really 
 work, aand it ran flawlessly (but it's now in my wife's xt-clone; 
 who needs it with 4MB ram?). The i/o from the peripherals is cached 
 so the cpu sees only 0 wait state 32 bit sram when the cache is 
 enabled.  I have to slow it  down to 8MHz  for VKAL!  They make the
 same board to run at 25 and 33 MHz, but this is the best buy at

 1300.  If you decide to upgrade (you should!)), I'll tell you where 
 I got that pprice.

     The good news: I backed up everything seeveral times before
 trashing my old computer.  The badd news: I have so many backups I'm
 confused about what goes with what, and it'll take a while to sort 
 everything out so i'm back where I was two weeks ago.  I finnallly 
 got around to upgrading to f-pc ver. 3.5, and got most of my tools
 installled in  it.  New-expect even workss with Tom's editor now 
 without forcing you to do a warm boot to get bacck to forth.  And I
 love his new browse/view system, but miss the editor's help screens
 that accompanied previous veersions (I don'tt use it enough to be
 fully conversant with aall the keystrokes).

 >> there's a place forr your header information without disturbing

 >> the gif fformat.
 >  Great!  Is  there a limit on the sppaace, or is it variable?

     Set it up any way you like.  The size is arbitrary, because a

 special mark '!' and count identifies it  and a gif viewer that 
 doesn't understand it will just sskip over itt.   If you want to work 
 on it, I'm uploading the front-end code in DGIF1.ZIP for you to 
 examine, and you'll see where your header goes.  The setup you sent
 me will be just fiine, or,, if you wish, you can modify it.

     Hope I didn't cause you any trouble suggesting a change in 

 DEFER.  I've looked into it and the change needs to be made, but it 
 will take some doing.  DEFER is defined no less than thrree times 
 during metacompilation, and words are deferred before DEFER is 
 defined!  So we'll have to see which defer is doing what and change 
 them all, including one in the metacompiller itself.  Maybe someone 
 more familiar with the metacompiler could be interested to help? 

     Meanwhile, I thought consideration might be given to a more 
 effficient jump table mechanism to direct a program to the correct 
 code, eliminating the use of defer if possible.  What do you think?  
 Seems to me DEFER is a bit overused in f-pc.  Between the timee one  
 pressess enter and the time 'ok' appears, there are at least a dozen 
 deferred words!  I single-steppedd the code to see. And there are 
 45 deferred words (found by fgrepp) just in the kernel!  And about
 300 in the whole systtem! For 2000, that's every sixth wworrd!

     - Mike -

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

 Date: 02-24-90 (01:50)              Number: 1756 (Echo)
   To: GENE CZARCINSKI               Refer#: 1564
 From: MIKE SPERL                      Read: NO
 Subj: PASM FOR F-PC                 Status: PUBLIC MESSAGE

 Gene,

     Thanks  for the great jobb you're doing on a 386 assembler for
 F-PC.  We need a public  domain F-PC386 eventually, and the work 
 you're doing is a big first step.   I hope you'll implement all the 
 prottected mode instructions so we can release forth from the 640K DOS 
 memory prison.  "Protected" is a misnomer; there is an ennormous 
 amount of memory available, along with features like virtual memory 
 with hardware support for paging and the built--in debug reegisters 
 that support 4 breakpoints in either code or data so forth code can 
 almost debug itself (with a little help from us). There's even 
 hardware support for multitasking (that's where the protection comes 
 in; a bug in one program won't cause forth to go off iinto the 
 boonies). 

     Regarding the design of a 386 forth, what are your thoughts on 
 stack width?  The following code you included in the pasm386c.zip 
 package illustrates beautifully the situation when 386 instructions 
 are used  with forth's 16 bit stack. 

 >\ 386 Double Precision Multiply
 >CODDE (D**)       ( 'd2 'd1 -- 'dprod )
 >                pop     eax
 >                pop     ebx
 >                mmul     ebx
 >                push    eax
 >                next
 >                END-CODE
 >
 >: D*    ( d1 d2 --- dprod )
 >        swap 2swap swap         \ setup
 >        (D*)                    \ do it
 >        swap ;

 However, iit's not neccessary to use an ineffiicient nested word
 and all thhe uugly stack thrashing, aas the following illustrates.

 \ signed 32 bit integer multiply with error checking
 code d*    ( d1 d2 -- dprod )
     pop eax         \ hi word in ax  because of 16 bit stack
     ppop ebx
     rol eax,  # 16   \ ccorrect for fortth's 16 bit sstack (3 clks)
     rol ebx, # 16   \ 3 clocks
     imul eax, ebxx   \\ "imul ebx" => 64 bit prod. in edx:eax
      jc 1 $          \ cf set if 32 bit prood. overflows eax
     rol eax, # 16   \ correct for forth's 16 bit stack
     push eax
     next
 1 $: push # ttrue    \ -1. indicates overflow
     push # true      \ ok to mix 8086 and 386 instructions!
     next
     c;

 Error checking can be added at little cost, as well.  

     I wonder iif it wouuldn't be best to keep the 16 bit stack for 
 efficiency, since forth does lots of things witth bytes and words 
 and a 32 bit stack woould lead to a great deal of wasted space.  The 
 32 bit stack is only helpful for math oriented programs, and, in 
 protected mode, forth couuld have a separate 32 bit stack for math 
 operations if these were placed in their own code segment.  Stacks 
 should be in a separate segments, anyway.  F-PC hasn't caught up 
 with other languages in it's use of the sttack. 

     Anotheer question: I tried to metacompile the version 3.5 kernel 
 with pasm386 (in 80088/886 mode) and it bombed in kernel1 in LABEL 
 DOCONSTANT on the line NEXT  ENDCODE with a "line 166 - stack 
 underflow" message. The pasmm.seq that comees with F-PC works.  Am I 
 doing something wrong?  This is the offending code:: 
                     LABEL DOCONSTTANT
                         MOV BX, AX
                          PUSH 3 [BX]
                         NEXT    END--CODE

     - Mike -

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

 Date: 02-24-90 (01:52)              Number: 1757 (Echo)
   To: BILL MCCARTHY                 Refer#: 1734
 From: MIKE SPERL                      Read: NO
 Subj: IMPLEMENTATION OF 'X'         Status: PUBLIC MESSAGE

 Bill,

 >...if  youu are running with CAPS ON, 'a' will give 
 >different results when interpreting (65) and compiling (97). 

     I run with CAPS ON so I tried 
         : t1 'a' . ;    t1
         : t2 ascii a . ; t2
 as well as
         'a' .
         ascii a .
 and with 'A' also, and got correct results in all cases.  What
 do you mean?

     - Mike -
-----
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/27/90)

Category 1,  Topic 21
Message 141       Sun Feb 25, 1990
R.BERKEY [Robert]            at 19:29 PST
 
 
  Topic:   F-PC 3.5 PASM bug report

  postfix
  code test1   sseg es mov   end-code

is assembling    es, sseg mov

-----
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'

leff2@unix.cis.pitt.edu (Louis Leff) (02/27/90)

I just noticed a very interesting posting about a 386 PASM for
F-PC, apparantly called PASM386c.zip

Where can I, and others get a copy--sounds good!

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

Category 1,  Topic 21
Message 142       Mon Feb 26, 1990
M.HAWLEY                     at 21:06 EST
 
Just a hunch, but try a vertical format. ie try: code test1 sseg es mov end-
code Sometimes for reasons I don't pretend to understand, the format seems to
make a difference. 
-----
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'

dwp@willett.UUCP (Doug Philips) (02/28/90)

In <22564@unix.cis.pitt.edu>, leff2@unix.cis.pitt.edu (Louis  Leff) writes:

> I just noticed a very interesting posting about a 386 PASM for
> F-PC, apparantly called PASM386c.zip
> 
> Where can I, and others get a copy--sounds good!

I just looked on GEnie and this file doesn't seem to be there yet.
If/When it shows up on GEnie, I'll download it and send if off to be
put into the SIMTEL20 archives (and I'll drop the net a note at the same
time.)

		-Doug

---
Preferred: willett!dwp@gateway.sei.cmu.edu OR ...!sei!willett!dwp
Daily: ...!{uunet,nfsun}!willett!dwp   [in a pinch: dwp@vega.fac.cs.cmu.edu]

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

 Date: 03-01-90 (22:06)              Number: 1765 (Echo)
   To: ALL                           Refer#: 1736
 From: MIKE CHRISTOPHER                Read: (N/A)
 Subj: FPC BUGS!                     Status: PUBLIC MESSAGE

 Hello, I am back with the bug report on fpc 3.5 I will upload my letter
 i wrote to tom. FPC is remarkably bug free! These are little nasties
 i bumped into with fixes i could do. I also loaded speedkey, a free
 keyboard speed up.
 It is called speedkey.com and the letter is called tom.txt
 I am busy but i'll try to get some goodies together for you.
 What i did was make a system on top of fpc that implements a 
 page description language for a REAL fast laser printer designed for
 the prinitng industry. It worked extremely well and the bosses and
 customers love forth. You don't have to use forth to use it but it's
 right there if you need it and since the the people who write the
 descriptions are programmers (cobol types!) they snap the forth right 
 up the people who later "run" the jobs only see a fpc menu
 It uses a 9 track tape for the variable input (names, etc) but can 
 generate barcodes without any input tapes. I run on a 33 mhz compaq
 it's pretty darn fast! I am trying to support tom with an upgrade
 each time we ship a system and want to contribute where i can. I joined
 fig (shouldve years ago!) recently and intend to go to the meetings here
 in dayton.  forthfully yours, mike christopher
-----
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) (03/07/90)

 Date: 03-05-90 (22:59)              Number: 505 (Echo)
   To: ALL                           Refer#: NONE
 From: PETER HILTZ                     Read: (N/A)
 Subj: MEMORY SEGMENTS               Status: PUBLIC MESSAGE

 Does anyone know why I am getting only 35338 for Code Segment memory
 and only 34064 for List Segment memory on F-PC 3.5?  I'm running
 MS-DOS 4.0 on a 386 IBM Compatible (Northgate) w/ 4 Meg of RAM.  Is this
 normal or am I missing something on installation?
-----
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) (03/07/90)

 Date: 03-06-90 (03:13)              Number: 1776 (Echo)
   To: MIKE SPERL                    Refer#: NONE
 From: MARK SMILEY                     Read: NO
 Subj: BUG IN NEW_EXPECT             Status: PUBLIC MESSAGE

 Mike,
    Here's one "bug" in new_expect with F-PC v. 3.50.
    Try loading DOSEDIT.SEQ  (which contains new_expect), then try the
    following sequence from F-PC 3.50:
         OPEN <filename>
         ED
    When I do this, Forth puts the <filename> after ED, then says:
         <filename> ?
    and refused to edit the file.
                              Mark
-----
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) (03/12/90)

 Date: 03-10-90 (13:55)              Number: 1780 (Echo)
   To: ALL                           Refer#: NONE
 From: JIM BILDERBACK                  Read: (N/A)
 Subj: TECHNICAL HELP REQUEST        Status: PUBLIC MESSAGE

 Hi folks .. hoping for FPC technical assistance
 .
 1) regarding dis8086, I don't have a handle on the structure of
   forth and fpc yet but i'd like the disassembler to to show the
   variable / constant Name not location or value. Isn't it possible,
   given the location/value to somehow search the head space for a
   reference and thus tie in the name ?? if so can you give me some
   hints as to how to go about this ? speed is not an issue, i don't
   care if the entire head space has to be searched.
 2) also on dis8086, can't a pause be built in if either the end of a
   definition is found (next, 1push, etc) or the another definition
   starts ?? I must confess that the dis8086 code looks like the finest
   of forth black magic to me, but i presume someone familiar with such
   things could offer a simple (?) solution.
 3) It would be nice if the PASM and dis8086 supported V20 codes. I'm
  puttering with some video stuff which would benefit immensely.
  Certainly there are many more V20s around than 8087s , etc. and i
  presume testing for, and then vectoring to, an optional v20 word
  wouldn't take up much space, but would enhance graphics etc.
  considerably with the bit manipulation abilities, etc.
 4) does anyone know how the stack is handled with the FPC compiler?
  is it like earlier .com versions of turnkey where you have to keep
  64K for your application so you don't wipe out the stack area(s)?
  has anybody written a TSR module for the compiler? I'm trying but it is
  beyond my abilities, so far ..
 .
 So much for the novices .. all problems, no help.
 ANY HELP IS APPRECIATED .. jb

-----
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) (05/05/90)

 Date: 05-03-90 (21:01)              Number: 1797 (Echo)
   To: ALL                           Refer#: NONE
 From: CRAIG DEADY                     Read: (N/A)
 Subj: F-PC Cross Compiler           Status: PUBLIC MESSAGE

 Does anyone know of a cross compiler for the Zilog Z-80 microprocessor 
 that runs under F-PC? It can be just an assembler or better yet cross 
 compile F-PC code to the Z-80.

 Thanks, Craig
-----
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) (05/06/90)

 Date: 05-04-90 (23:17)              Number: 1798 (Echo)
   To: CRAIG DEADY                   Refer#: 1797
 From: JERRY SHIFRIN                   Read: NO
 Subj: F-PC Cross Compiler           Status: PUBLIC MESSAGE

 CD>Does anyone know of a cross compiler for the Zilog Z-80 microprocesso
 CD>that runs under F-PC? It can be just an assembler or better yet cross
 CD>compile F-PC code to the Z-80.

 You may want to take a look at F68HC11A.ZIP.  It's a
 cross-assembler for the 68HC11 you may find useful as an example.
 It's written in Forth-83 and should be mostly portable to F-PC.
 ---
  ~ EZ 1.26 ~ 

[You can get this directly from ECFB (see the OLIS FORTHNET file for
more info on ECFB and ForthNet in general).  I can try to get it from
GEnie (there has been a recent flood of new files so I don't know if it
is there or not) and then try to send it on to SIMTEL20 for those with
Anonymous FTP access.  Send inquires along these lines to one the addresses
below.  -Doug]
-----
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) (05/26/90)

 Date: 05-21-90 (23:43)              Number: 3275 (Echo)
   To: GARY SMITH                    Refer#: NONE
 From: DAVID FOX                       Read: NO
 Subj: F-PC GENERAL INFORMATION      Status: PUBLIC MESSAGE

 I agree, the F-PC (especially version 3.5) is a beautiful Forth
 development system, and doesn't suffer from all the hindrances of
 earlier Forths for the IBM (ex. screens vs. filepaths, a major problem
 of the earlier Forth systems.)

 -> MegaMail(tm) #0:But God Told me to use a goto.
    1.12

 PCRelay:SNAKEPIT -> RelayNet (TM)
 4.10a14             The Snake Pit - (408)287-2353 - San Jose, CA
 NET/Mail : DC Information Exchange, MetroLink Int'l Hub.  (202)433-6639
-----
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) (05/26/90)

 Date: 05-23-90 (22:10)              Number: 1803 (Echo)
   To: ALL                           Refer#: NONE
 From: CRAIG DEADY                     Read: (N/A)
 Subj: F-PC Problem?                 Status: PUBLIC MESSAGE

 I have found the cause of most of the problems. Values left on the stack
 were un-resolved addresses from a jump. The system  hanging was from two
 sources; one was that I had a type in a move statement ( was MOVE 
 instead of MOV), and the second was the word /NOLISTING, which caused 
 the system to return to dos. The third problem of having the wrong line 
 displayed when there is an error, is still present. I tried both the 
 PASM.SEQ and PASM386.SEQ files, the 386 version works better and has a 
 better decompiler. I would like the decompiler to stop at the end of the
 code word though.

 Thanks, 
 Craig
-----
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/20/90)

 Date: 07-16-90 (17:08)              Number: 3527 (Echo)
   To: ALL                           Refer#: NONE
 From: JACOB MAIER                     Read: (N/A)
 Subj: FPC FILE READS                Status: PUBLIC MESSAGE

  Help Help ?
  I am working with f-pc but I can't get it to read or write a file.
 Clearly I have forgotten something. Can anyone help me?
 I have created a handle.
 I have stored a name in it.
 I achieve a sucessful open.
 I can move the pointer.
 I just can't get it to read or write useing hread or hwrite.
 any suggestion as to why would be gratefully recieved.

 Gratefully yours Jake

 PCRelay:CRS -> PCRelay: CanRemote -> RelayNet (tm)
 4.10a14        Canada Remote Systems * Toronto, Ontario

 NET/Mail : DC Information Exchange, MetroLink Int'l Hub.  (202)433-6639
-----
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/23/90)

Category 1,  Topic 21
Message 82        Thu Jul 19, 1990
R.BERKEY [Robert]            at 20:50 PDT
 
 
   To: Jacob Maier
   Re: Msg of 900716
 Subj: FPC FILE READS

Here's F-PC file-reading code that worked for me.

 handle ABC                               \ make file handle

 : try-a-file-read   ( -- )
    " temp.seq" ">$ ABC $>handle         \ move file name to handle
    read-write                           \ set read-write mode
    ABC hopen abort" Can't open file!"   \ abort if can't open
    pad 80 ABC hread  ( n)               \ read (upto) 80 bytes to PAD
    pad swap type ;                      \ and display them

-----
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) (08/24/90)

 Date: 08-21-90 (21:14)              Number: 3683 (Echo)
   To: NICK JANOW                    Refer#: NONE
 From: ZAFAR ESSAK                     Read: NO
 Subj: INTERPRETED "                 Status: PUBLIC MESSAGE

 In F-PC " text" is compiled at here and returns the address and length 
 of the string.  Even in the interpretative mode the string is still 
 compiled at here, therefore: 

         HERE " some text" COUNT TYPE 

 will display the string, but the dictionary pointer has been advanced 
 and the string is now a permanent part of the dictionary space. 
 ---
  * 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) (08/27/90)

Category 1,  Topic 21
Message 85        Sun Aug 26, 1990
R.BERKEY [Robert]            at 14:54 PDT
 
  Zafar Essak writes, 90-08-14:

 > Furthermore, I noticed by your example that " 078.1" implies that in
 > your system the Forth word " can be used in the interpretative mode,
 > not just when compiling.  Is this true?

Oh, sure.  Here is the source.  Seems to work on F-PC with one change: 
COMPILING? is  STATE @


 : <">          \   ;v string at HERE   ;p state smart string primitive
                \ compiling:      & # --
                \ interpreting:   & # -- & #
                \ runtime:            -- & #
                COMPILING?
                IF      COMPILE (")   HERE X,   TUCK HERE PLACE 1+ ALLOT
                ELSE    PAD PLACE   PAD COUNT
                THEN    ;

 : "            ( string"   \ -- )
                ( runtime:   -- & # )
                '"' PARSE   <"> ;       IMMEDIATE

-----
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) (09/14/90)

 Date: 09-11-90 (19:43)              Number: 1816 (Echo)
   To: ALL                           Refer#: NONE
 From: MIKE NEMETH                     Read: (N/A)
 Subj: FPC353 TCOM                   Status: PUBLIC MESSAGE

 If you decided not to download fpc353 because it's mostly bug
 " fixes" , do consider downloading the tcom forth compiler
 which is in FPC353-5, I beleive. In my option it has been
 improved quite a bit. The "short" branch problem has been handled
 and there is suport for such things as Herc graphics and floating
 point.
-----
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) (10/05/90)

 Date: 09-25-90 (20:11)              Number: 3857 (Echo)
   To: ALL                           Refer#: NONE
 From: BILL GARAND                     Read: (N/A)
 Subj: F-PC 3.5                      Status: PUBLIC MESSAGE

 I have just recently started using F-PC v3.5 .  This is an excellent
 development system that could go a long way towards changing FORTH's
 image.  I noted in the documentation that Tom Zimmer has a target
 compiler that will only compile the words required by the application. 
 Has anyone used this yet?  I wonder how many passes must be made to
 include the dictionary tree for application words down to the FORTH
 kernel?

 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: dwp@willett.pgh.pa.us or uunet!willett!dwp

ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) (12/06/90)

 Date: 12-02-90 (18:28)              Number: 361 of 368
   To: M.SMILEY1                     Refer#: NONE
 From: IAN WATTERS                     Read: NO
 Subj: 32-BIT ADDRESSING IN F-PC     Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 M.=>   Here's my problem:  I want to do Laser-Printer-resolution graphics
 M.=>images.  The simplest way to do this involves an enormous array.  After
 M.=>So I want to use memory beyond 640K.

 Not sure if this'll get to a GENIE user, but...

 Yes, I've done something like this.  The best solution seems to be to write
 the program so it swaps out sections of the bitmap to disk -- then run it
 with a big ramdisk set up in extended memory.  It might not be as fast as
 direct addressing, but it'll be portable and easy.  OK, *easier* anyway!

   //\/\/
 ---
  ~ SLMR 1.05 #109 ~ Unpopulated RAM Boards Rule 0k

 PCRelay:OLEF -> #181 RelayNet (tm)
 4.10a15         The Node is OLEF, HUB is HUBOLEF1 in the UK
 <<<>>>
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: dwp@willett.pgh.pa.us or uunet!willett!dwp

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

Category 1,  Topic 21
Message 97        Tue Apr 23, 1991
R.BERKEY [Robert]            at 05:16 PDT
 
 
 Tom Bushell writes, 91-04-17:

   > Is there any way to access extended memory from FPC?  I'm SURE
   > I've seen some reference to doing this somewhere.

   There is an article on extended memory in Forth Dimensions, sometime during
the last couple of years.

   Here's a driver I wrote (as is, no guarantees, no warranties).  The
fascinating thing about accessing extended memory involves the inability of
the 80286 to switch from protected mode to real mode.  The IBM AT overcomes
that by having an external processor, the keyboard controller, raise the reset
line on the 80286.  Fortunately, the 80286 reset is well-defined, but the
whole process is still a bit shaky because interrupts can't be routinely
processed while in the protected mode.  Anyway, this driver worked without
problems for the application I used it in.

I can second Milan Merhar's suggestion to get a copy of the IBM AT Technical
Reference, I find it invaluable.



 \ EXTENDED.SEQ   Extended-memory driver

 only FORTH also DEFINITIONS

 HEX

 assembler   POSTVAR @   forth   \ save POSTVAR setting until end of file

 POSTFIX   \ use postfix assembler mode



 ( GDT table for extended memory )

 here 1+ 1 and allot   \ dealign
    \ puts GDT on an even address, for efficiency

 CREATE GDT ( Global Descriptor Table )
        10 allot    gdt 10 erase
        -2 ,     ( length of segment )
 HERE   3 allot  ( source address )
        93 C,    ( access rights byte )
        0 ,      ( reserved )
        -2 ,     ( length of segment )
 HERE   3 allot  ( target address )
        93 C,    ( access rights byte )
        12 allot
 constant EXTENDED-TARGET   ( 24 bits )
 extended-target 4 + 12 erase
 constant EXTENDED-SOURCE   ( 24 bits )


 ( Extended-memory move BIOS call )
 ( Note that this BIOS call works only with 80286 and 80386 )

 CODE <EX-CMOVE>   ( #w GDT-offset GDT-segment -- error# )
    bx pop ( gdt segment )   dx pop ( gdt offset )
    cx pop ( block size in words )
    si push   bp push   es push
    pushf
    bx, es mov   dx, si mov
    $87 # ah mov   $15 int
    popf
    es pop   bp pop   si pop
    al, al xor
    ah, al xchg
    ax push ( completion code )
    next   end-code

 code >ABS   ( a seg -- da )   \ ;p convert address & segment to absolute addr
    \ : >ABS   ( a seg -- da )
    \    $10 um* rot 0 d+ ;
    ax pop   $10 # cx mov   cx mul   bx pop   bx, ax add
    0 # dx adc
    $0f # dx and   ( 80186 wraparound )
    ax push   dx push   next   end-code


 ( Hi-level extended-memory block move )

 : ?EXTENDED-ERROR   ( n -- )
    ?dup if
       dup 1 = if   ." Ram Parity,"                    else
       dup 2 = if   ." Exception Interrupt Error,"     else
       dup 3 = if   ." Gate Address Line 20 Failed,"   else
       dup          ." Undocumented error: "   .

           then then then   abort"  Extended Memory Error"
   then ;


 ( Extended-memory block move )

 : >EX   ( from seg dto #b -- )
    2/ >r   \ odd byte counts are rounded down
    extended-target 2+ c!   extended-target !   \ dest adr into GDT
    >abs   extended-source 2+ c!   extended-source !   \ source adr into GDT
    r> gdt ?cs: <ex-cmove> ?extended-error ;

 : EX>   ( dfrom to seg #b -- )
    2/ >r   \ odd byte counts are rounded down
    >abs   extended-target 2+ c!  extended-target !   \ dest adr into GDT
    extended-source 2+ c!   extended-source !   \ source adr into GDT
    r> gdt ?cs: <ex-cmove> ?extended-error ;
 \ The extended driver must have a count in words, not bytes.


 ( Get Extended-Memory Size )

 CODE @EXMEMSIZE   ( -- u )
    $88 # ah mov
    si push   bp push
    $15 int
    bp pop   si pop
    ax push
    next   end-code


 cr   .( Extended memory available: $)   @exmemsize u.   .( Kbytes )



 \ restore original POSTVAR setting
 #if   POSTFIX    #else   PREFIX   #then



 \ End EXTENDED.SEQ ________________________________________________

-----
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-01-91 (16:55)              Number: 2082 of 2088
   To: ALL                           Refer#: NONE
 From: DAVID ROGERS                    Read: (N/A)
 Subj: F-PC PROBLEMS                 Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL (+)

 HELP!!!!

 I am new to Forth although I am proficient in other languages.  I have
 just gotten hold of f-pc and have been trying it out.  I seem to have
 run into a problem.  I am trying to run the following and it does not
 seem to work as expected.  Can anyone explain what I am doing wrong?  My
 setup is plain vanilla just as it was extracted from the .zip files.

 \ The following produces some garbage at run time - see test run below
 \

 create buf 80 allot
 variable bufcount

 : readline
     buf 20 EXPECT
     span @ bufcount !
 ;

 \ The following works as expected
 \
 \
 \
 \

 : readline2
     buf 20 (EXPECT)
     span @ bufcount !
 ;

 Here's what happens:

 load
 Loading.. ok
 readline This is a test!!!  ;   R>  <- What?
   ok
   ok
 readline2 This is a test!!!  ok

 Why does this happen?

 Regards,
 David A. Rogers

 ---
  ~ SLMR 1.05 ~ Whip me, beat me, make me code in COBOL!!

 NET/Mail : Omega BBS, Seattle, WA : (206)933-0869 HST : MetroLink
 PCRelay:DCINFO -> #16 MetroLink (tm) International Network
 4.10              DC Info Exchange MetroLink International Hub
 <<<>>>
-----
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/13/91)

Category 1,  Topic 21
Message 99        Sat May 11, 1991
R.BERKEY [Robert]            at 10:55 PDT
 
 
 To: David Rogers
 Re: F-PC problems

 > \ The following produces some garbage at run time - see test run below
 > \
 >
 > create buf 80 allot
 > variable bufcount
 >
 > : readline
 >     buf 20 EXPECT
 >     span @ bufcount !
 > ;
 >
 > \ The following works as expected
 > \
 > \
 > \
 > \
 >
 > : readline2
 >     buf 20 (EXPECT)
 >     span @ bufcount !
 > ;
 >
 >
 > Here's what happens:
 >
 > load
 > Loading.. ok
 > readline This is a test!!!  ;   R>  <- What?
 >   ok
 >   ok
 > readline2 This is a test!!!  ok
 >

Hi, David.

I have F-PC 3.50 and I wasn't able to duplicate the problem.  I created a file
with the definitions of  readline  and  readline2 .  Then on the command line,
I typed:

readline<cr>This is a test!!!  ;<cr>

and it looked fine.  BUF and BUFCOUNT were correct.

In F-PC, EXPECT is a deferred word that is deferred with XEXPECT for the
entering of keyboard command lines.  Typing SEE EXPECT will report the
presence of XEXPECT in EXPECT .

(EXPECT) is a conventional implementation of EXPECT , and if it solves the
problem, by all means, use it.

XEXPECT is a more complicated version of EXPECT , with colored background,
etc.  The problem may have to do with reentrancy of XEXPECT , which isn't
properly reentrant.

The interpreter's error message:

  R>  <- What?

is also puzzling.  I suspect that the error message is itself in error, a side
effect of the reentrancy problem.  XEXPECT has a temporary buffer, and it may
be that the interpreter is trying to interpret text entered as a part of
READLINE .

For a quick fix, you might try adding a QUIT at the end of the definition of
READLINE , as QUIT restarts the interpreter.

Robert

-----
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

U432267@TWNCU865.BITNET (05/17/91)

HI , FORTH PROGRAMMARS :
     I AM A STUDENT IN TAIWAN , I FOUND F-PC IS REALLY A POWERFUL UTIL.
 BUT THERE'S SOMETHING WRONG IN THE XEXPECT.SEQ , 'CAUSE IT MAKES F-PC
 CAN'T SHOW CHINESE WORDS ! BY THE WAY , THE SED EDITING ENVIRONMENT
 WILL CHECK THE ASCII CODE > 127 , THUS NO CHINESE SENTENCE CAN BE
 SHOWN ! I HOPE DR.C.H.TING WILL HELP SOLVING THIS PROBLEM . THANX.
                                              VIRTUALLY
                                                       TERRY SHU