[comp.lang.forth] Forth Libraries

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

 Date: 07-10-90 (03:44)              Number: 3482 (Echo)
   To: ALL                           Refer#: NONE
 From: GENE LEFAVE                     Read: (N/A)
 Subj: EBCDIC CONVERSION             Status: PUBLIC MESSAGE

 Does anyone have an EBCDIC to ASCII , and/or IBM packed decimal to binary 
 conversion routine?   I'm trying to decode an IBM VSAM data tape and need
 these routines. 

 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.pgh.pa.us (ForthNet articles from GEnie) (10/21/90)

 Date: 10-13-90 (18:36)              Number: 12 of 12
   To: ALL                           Refer#: NONE
 From: CHRIS WATERS                    Read: (N/A)
 Subj: Conditional Interp.           Status: PUBLIC MESSAGE
 Conf: FORTH (58)                 Read Type: GENERAL

     I thought I'd post a couple of my favorite little words here.
 I've posted these in a few places in the past, but not for several
 years.  They provide conditional interpretation for Forth (i.e. the
 ability to skip portions of source code based on flags on the stack).
 I've seen other words that do the same thing, but my version is the
 simplest I've seen.

     : ?(    0=  IF [COMPILE] ( THEN ; IMMEDIATE
     : ()    [COMPILE] ( ; IMMEDIATE
     : )     ; IMMEDIATE

     These words are usually the first things I define in any new Forth
 system I get.  Using these, I can usually get the rest of my source
 up quickly and easily.  I can have the "same" source code working on a
 variety of different systems, with all the system dependancies
 factored into sections that are conditionally loaded, rather than
 having several different copies of the same code, each set up for a
 different system.

     The thing I like best about these words is the operation of the
 '()' word (the equivalent of 'ELSE').  Sometimes it is interpreted as
 a word, sometimes as merely a delimiter.  Consider:

     Flag  ?(   45 LOAD  ()  48 LOAD  )

     If 'Flag' returns true, screen 45 will be loaded, then '()' will
 be interpreted and the '48 LOAD' will be treated as a comment.  If
 'Flag' returns false, the ')' in '()' will be treated as the end of a
 comment, and only screen 48 will be loaded.

     I've been using these words (as I said) for many years, but I'd
 like to hear what others think, and if anyone has similar tools they
 use, and if so, what the advantages and disadvantages of other methods
 might be.  These definitions are completely in the public domain, and
 anyone who likes them should feel free to use them.

 Chris   R:-{O}

 MM 2.1a *Do not disturb!  Asleep at computer
 ---
  * SFUTI 3.01 / (Pssssst.....Mikey's really not 29 anymore....)

 PCRelay:THECAVE -> #559 RelayNet (tm)
 4.10               The Cave (408)259-8098 12/24/96/19.2 HST/DS
-----
This message came from GEnie via willett through a semi-automated process.
Report problems to: dwp@willett.pgh.pa.us or uunet!willett!dwp