LETTERS

Forth Source for Floating Point

Dear DDJ,

First, I like DDJ. I think it's the best magazine around (together with Byte). I fully agree with Mr. Price ("Letters," August 1988); I think standardization is useful only in case the language has been designed by a committee. I doubt if it's smart to standardize a language some 15 years after its introduction!

Although I program mostly in Basic or C (yes, that is possible on a little CBM 64, praise the Lord!), I'm playing around a little with Forth. But I've got a problem, and I think your readers could help me.

I'm looking for Forth source (FIG-FORTH) for floating point mathematics and for a decompiler for Forth words (or just hints on how to do it so I can program them myself.) Also, could someone tell me how it's possible that certain C functions, such as PRINTFO, can deal with a variable number of parameters?

Mark van Atten Krabbestraat

11 3052 NR Rotterdam

The Netherlands

Will Simulator Support SubLOGIC Scenery Disks?

Dear DDJ,

We have been swamped with phone calls from owners of Microsoft Flight Simulator, Version 3, concerned that the product will not support SubLOGIC Scenery Disks.

The following information is crucial for loading and operating Scenery Disks with Flight Simulator and applies to Europe Scenery Disk as well as Scenery Disks 1 - 7, Japan and San Francisco.

Although Flight Simulator's manual does not include any reference to Scenery Disk support outside a mention on page 75, a readme.doc file on the disk itself does explain the procedure for converting a Scenery Disk to a scenery file and loading the file to a hard disk.

You can load a Scenery Disk in either of two ways: as a copy-protected disk from drive A or as a scenery file loaded into the same hard disk subdirectory as Flight Simulator. To load the scenery disk from drive A, you first need to load Flight Simulator from the hard drive or a floppy drive (preferably on drive B, but you can operate both from drive A in a pinch).

When you're positioned for take-off, press <Shift-E> to bring up the scenery library menu. Choose option 1 (floppy disk in drive A) or the number associated with the scenery file you wish to use. Then invoke the NAV/COM menu and choose selection A to set your position withi the scenery area.

This should have Flight Simulator soaring through the scenery in no time. Of course, if further assistance is required, the SubLOGIC customer support department can be reached toll free outside Illinois at 800-637-4983 or 217-359-8482 within the state.

Thanks for helping to get the word out.

Deb Israel

SubLOGIC Corp.

Champaign, Ill.

Sold on Stony Brook

Dear DDJ,

I certainly enjoyed Kent Porter's Modula-2 compiler review in the September 1988 issue ("Examining Room"). My company uses the Stony Brook Modula-2 compiler to develop accounting applications that run under Microsoft Windows.

We are always on the lookout for a new and better compiler, so we read your review with a great deal of eagerness. However, none of the compilers except Stony Brook comes close to meeting our needs. This was such a surprise to me that I thought your readers might want to know why.

    1. Stony Brook is the only Modula-2 compiler that can be used to develop well-behaved Microsoft Windows applications.

    2. Stony Brook was the first compiler (anywhere?) to be able to compile all types of OS/2 code.

    3. The memory models offered by Stony Brook are far superior to the choices offered by the other compilers.

    4. The interlanguage support offered by Stony Brook is superior to that of other models. Others don't do an adequate job because of limited memory models, calling conventions, and naming conventions.

    5. Stony Brook's fast compile times become more important when compiling large commercial grade programs with lots of modules.

It's true that the other tools are somewhat crude, but the editor is certainly customizable--you get the source code!

Stony Brook will be coming out with (if they haven't already) an integrated environment that will include a debugger. It should compete very well with TopSpeed's environment and debugger. Thanks for giving this fledgling language space in your magazine.

Seth K. Pratt

Accounting By Design

Berkeley, Calif.

Marvin's Turn

The following is Marvin Hymowech's response to the letter of James R. Van Zandt of Nashua, New Hampshire ("Letters," December 1988) regarding Marvin's August 1988 article "Find That Function."

Thanks for the corrections. Here are some other fixes communicated to me by Lee Meador of Richardson, Texas:

    1. Using the macros isspace(), isalnum(), etc., requires that you first check that isascii() is true. Therefore:

(a) In get_fn_name() in bldfuncs.c, replace:

while( isspace(*name_prt))
    /* skip trailing white space*/
       name_ptr--;
with:
while( isascii(*name_ptr) &&
     isspace(*name_ptr))
        name_ptr-;
Also, replace:
while (isalnum(*name_ptr) II name
    _ptr=='') && name_ptr>=line)
       name_ptr-;
with:
while( isascii(*name_ptr)) &&
    (isalnum(*name_ptr) II name_ptr
          =='') &&
name_ptr>=line)   name_ptr-;
(b) Similarly, in get_names_one_file() in bldfuncs.c, replace:
/*skip white space */ while ((c = filter_data(fp_source)!=
   EOF && isspace(c));
with:
/* skip white space*/ while ((c = filter_data(fp_source) !=
   EOF && isascii(c)
      && isspace(c));

    2. Once you are in a quoted string, you have to call fgetc( ) for the quoted characters, rather than calling filter_cmt( ), to allow for possible comment delimiters within quoted strings. Therefore, in filter_quotes( ) in bldfuncs.c, replace:

  switch ( c2 = filter_cmt(fp_source))
with:
 switch ( c2 = fgetc(fp_source))
Similarly, replace:
  case '\\':/* beginning of an escape
     sequence */
        filter_cmt(fp_source); /* so eat next
char */
with:
  case'\\':/* beginning of an escape
                               sequence */
fgetc(fp_source); /* so eat next
char */

    3. If your C compiler does not allow nested comments, then in filter_cmt() in bldfuncs.c, replace:

  cmt_level++;/* descend one comment level */

with:

  cmt_level = 1;/* disregard nested   comments */

The Squeaky Wheel...

Dear DDJ,

I am writing to you regarding the lack of industry-standard software upgrade policies. Here is an example that frustrated me recently: I purchased Micrografx Draw, and, within a week, the company released a replacement product called Micrografx Draw Plus. The upgrade cost will be $149.95. This is an outrageous price; other companies, such as Microsoft, offer upgrade software at a more reasonable cost.

I talked to Micrografx representatives about their policies and suggested that they offer a lower upgrade plan for those who have recently purchased their product. For their part, they insisted that this is a new product and not just an upgrade and that their policy will not change. I questioned them on how long Micrografx Draw will be sold, and they said that it is replaced by Draw Plus. I do not believe software producers should be able to change the name of a product just to escape their obligation to customers to make upgrades available at a reasonable cost.

I see several other companies with equally poor upgrade policies. Let's get the software producers to realize that this is an important issue that needs to be changed.

Chris A. Friend

Friend Dialogues Inc.

Shelby, North Carolina

Micrografx representative Kenneth Mecca responds: We appreciate Dr. Dobb's Journal and Mr. Friend for pointing out this problem; we had just begun to notice an increase in negative customer feedback concerning this upgrade.

Based on these events, we reviewed our upgrade policy for Micrografx Draw Plus and made a change to reflect Mr. Friend's suggestions, as well as those from our other customers. Effective immediately, our new upgrade policy for Micrografx Draw Plus calls for free upgrades to recent purchasers of a previous version (30 days or for any customer that purchases an obsolete version from a dealer) and a $99 upgrade price for current users (longer than 30 days).

In addition, customers that have already purchased the $149.95 upgrade can get a cash refund for the difference in price or a free Micrografx ClipArt library (worth $79) of their choice.

It has always been our intent to make upgrading as painless as possible, and we certainly support any effort that will promote standardization of upgrade practices.

Errata

"Real-Time Modeling with MS-DOS" by David Bowling, (February issue): In Figure 1, page 27, the first two time lines are reversed. The value given for "zeta", page 32, column 3, is incorrect. The value of the proof is 0.1 --it should be 0.01. The equations for "x" on page 34 are reversed. The equation in column 2 should be interchanged with the equation in column 3.


Copyright © 1989, Dr. Dobb's Journal