America Online
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
Tuesday, August 7, 1990  10:00 p.m. eastern time
Topic:  Pascal and C Programming
Forum Leader:  Dave Sugar (AFL Dyfet)

AFL Dyfet  Tonight is Pascal and C :)
AFL Dyfet  On time and on target :)
PeterK75   Is this the Pascal/C chat?
AFA Gary J Yes!
PeterK75   Will you be doing anything with //e & c?
AFL Dyfet  Well, we could, though there aren't very many products for 8 bit
          machines
AFL Dyfet  unfortunately.
PeterK75   I know. I've been looking.  I was hoping to find something here.
AFA Gary J There are (were?) a couple of C products for 8 bit machines...
          (trying to find
AFA Gary J my info)
AFL Dyfet  There was Hyper C...
AFA Gary J Ah, found it.
AFA Gary J (I always refer to this particular issue of "Open-Apple" on
          this.... August
AFA Gary J 1988)
GS Geek    manx, aztec...
AFA Gary J Yes.
PeterK75   I've heard of Aztec C for Mac...
AFA Gary J There's Aztec C (3 versions) from Manx Software Systems
AFA Gary J Manx Software address is:
AFA Gary J 1 Industrial Way
AFA Gary J EatonTown, NJ  07724
AFA Gary J (201) 542-2121
PeterK75   I'll keep it in mind.  Thanks!!! :)
AFA Gary J I don't know if they're still around or not.
PeterK75   They've still got the Mac version...only one way to find out!
KevinMax   Do you have to have ORCA/M to use ORCA/C? (or is ORCA/C
          standalone?)
AFA Gary J ORCA/C is stand alone.
AFA Gary J It comes with the ORCA shell and desktop environment.
KevinMax   Well then what is ORAC/M?
AFA Gary J ORCA/M is an assembler.
AFA Gary J (For Assembly Language :)
AFA Gary J It also comes with the shell.
KevinMax   ahhh...Thanks
AFA Gary J (but doesn't come with the desktop programming environment)
GS Geek    its also macro spelled backwards, like yzzo is ozzy backwards.
PeterK75   Ahhh...thanks.
AFA Gary J ...or keeg is geek spelled backward
KevinMax   or sdrawkcab is backwards spelled backwards! :)
AFA Gary J (took you a while to type that one out, didn't it :)
PeterK75   We could go on forever...
AFA Gary J ...but we only have an hour.
KevinMax   hehe :)
Matt DTS   What's hcsneM spelled backwards?
AFA Gary J Mensch!!
Matt DTS   .thgiR
PeterK75   Well, C is C spelled backwards. :)
AFA Gary J Wow.  We should write a computer program to handle these
          difficult tasks.
AFA Gary J (Let's write it in C)
AFL Dyfet  And my sgII elppa :)
KevinMax   lacsaPPascal
GS Geek    that was in my final a few days ago, not again...
AFL Dyfet  There is a filter in unix just for that Gary....
KevinMax   I hate Pascal!!
AFL Dyfet  And a C func. in ANSI C :)...Somebody thought ahead on that :)
PeterK75   Oh, joy.
GS Geek    is it Reverse -u <>?
GS Geek    no, its not.
GS Geek    thanks.
AFL Dyfet  I think it's just 'rev'...they tend to be terse in unix :)
AFA Gary J How many people here own ORCA/C?  (and how many have received
          their 1.1 update?)
KevinMax   Want to soon!!!
PeterK75   Nope. No GS.
AFL Scott  <---Via Email.
Matt DTS   I have (both)
KevinMax   get orca/c that is.
AFA Gary J I got my 1.1 update with my Design Master shipment.
AFL Dyfet  Haven't received update yet :(
Matt DTS   I got mine in Kansas.
AFL Dyfet  Have 1.1 b11 still...
HeadCase   Got mine at the Dev Conf
AFA Gary J (Kansas - THE place to get your ORCA/C update, among other things
          :)
AFL Dyfet  (Among other nifties :)
AFA Gary J :)
AFA Gary J Speaking of nifties,  where's Dave "DA's are my life" Lyons?
AFL Dyfet  I think he's being kept in a dark cave again :)
A2Evanglst Mr Tangent isn't here :(
AFA Gary J (Hopefully turning out impovements to Big Brother :)
HeadCase   He's working on NL5.0!!:)
AFL Dyfet  Now, tonight's topic is Pascal and C, and I was wondering who here
          would wish
AFL Dyfet  to comment on their experiance with the Orca/C 1.1 update...
AFL Dyfet  I see Nifty List Lyons has arrived :)
AFA Gary J Ahh... there's Dave now.
Dave Lyons (I'm late!)
AFA Gary J (we know!)
KevinMax   His ears must have been burning
AFA Gary J :)
Dave Lyons I've been putting "sessions" into Nifty List so you can be in it
          more than once at a time.
Dave Lyons (This is only an exhibition, not a competition, so PLEASE, no
          wagering....)

AFA Gary J C seems to be where it's at, in programming with high level
          languages.  I
AFA Gary J haven't used C on any machine other than the IIGS.  Is the IIGS C
          up to par
AFA Gary J with what's available in the rest of the computer world?
KevinMax   Good Question!!
AFL Dyfet  Apple has taken a different approach.  They are very big on Pascal
          and object
AFL Dyfet  oriented programming.  As to Orca/C's ratings, with release 1.1, I
          would say it
AFL Dyfet  is as capable as any standard compiler I have seen.  It compares
          well with the
AFL Dyfet  features of MicroSloth C 5.1 and Quick/C, especially with the
          addition of the
AFL Dyfet  mini assembler and missing library routines for unix I/O.  And I
          suspect may
AFL Dyfet  prove to have fewer bugs :)...
AFA Gary J (You mean machines other than the IIGS have software with
          bugs??)
AFA Gary J :)
AFL Dyfet  Yes, Gary :)
AFL Dyfet  Look at MS-DOS itself :)
AFA Gary J :)
KevinMax   yeah one big bug!!
AFA Gary J Yep.  (I'm plagued with it's stupid bugs every day!)
AFA Gary J So, the IIGS has pretty much state-of-the-art in the C compiler
          it has
AFA Gary J available, then.
AFL Dyfet  Well, suitible for solid work...state of the art gets esoteric,
          and many
AFL Dyfet  compilers are now comming C++...
AFA Gary J (THE C compiler it has available.... does anyone consider APW C
          anymore?)
KevinMax   how true to ansi is orca/c?
AFL Dyfet  GA Scott
AFL Scott  The only real incompatibilities in Orca/C 1.1 stem from the GS.
          The big one that I've found is
AFL Scott  \p option.
AFL Scott  However, there are still things that are up to the  author of
          compilers for ANSI C to interpret.  Mike
AFL Scott  has done a good job.
AFL Dyfet  This is also a result of APW C compatibility, if I recall...
AFL Dyfet  I agree with Scott there...
KevinMax   ok thanks!
AFL Scott  Side comment?
AFL Scott  I happen to agree totally with statements made in the Byte Works
          IC area with regard to the illusion
AFL Scott  of C portability.  There are more C programs out there in the
          world that aren't portable.  Authors
AFL Scott  have to be really careful when portability is desired.  A big
          snafu on APW and Orca is the
AFL Scott  handling of stdin, out, and error.  One must remember at all times
          that the toolbox is used
AFL Scott  to handle redirection so you must make sure that your standard
          input is compatible with the way
AFL Scott  the GS handles it.  It is WAY different from unix.
AFL Dyfet  C only, at best, addresses portability at the level of basic text
          mode/printing
AFL Dyfet  applications, and then often fails there :)...While ANSI standard
          libraries
AFL Dyfet  have made it possible to trust basic file access when porting,
          this still
AFL Dyfet  leaves a LOT of untouched ground.  GUI's have created a whole new
          dimension to
AFL Dyfet  the problem of porting.  Programming on the IIgs is NOTHING like
          programming
AFL Dyfet  under Windows which is NOTHING like programming under Motif/Open
          Look, etc.
AFA Gary J How big of a problem is porting C to/from the Mac?
AFA Gary J (from the IIGS, of course)
AFL Dyfet  The Mac is at least conceptially similar; tools for window
          management/drawing,
AFL Dyfet  event based programming, etc...
AFL Dyfet  GA Scott
AFL Scott  That depends on what you're porting and the implementation of C on
          the mac you're using.  For
AFL Scott  instance, MPW C uses 32 bit integers (good, IMHO), and THINK C
          uses 16 bit integers.  Think C would
AFL Scott  probably be more portable to the GS for that fact alone.  However,
          THINK C uses a non standard way
AFL Scott  of handling headers.  The guys from Apple can better address this,
          though, I think.  I've only
AFL Scott  tried two programs from the Mac and have had a fair amount of
          difficulty.
AFL Dyfet  GA Dave...
Dave Lyons I'm not up on Mac Cs, but I can offer this:  if you're trying to
          write something portable, be sure
Dave Lyons to use #defines for your types...like Word for int, so you can
          re-#define it as short if you need to,
Dave Lyons etc.  The GS interface file type.h does this, and I think it gets
          used everywhere.  I don't think it's
Dave Lyons actually an issue with the available C compilers for the GS, but I
          could be wrong.  ga
AFA Gary J Anyone know anthing about LightSpeed C for the Mac?  How portable
          would it
AFA Gary J be with ORCA/C?
Matt DTS   LightSpeed C = Think C
AFA Gary J Oh, didn't realise that :)
Matt DTS   (in the same way AppleLink Personal Edition = America Online)
AFA Gary J I C.  Thanks.
AFL Dyfet  GA Scott
AFL Scott  I'd like to see Mike really run with the desktop interface for
          ORCA/C.  My comment about THINK C's ...
AFL Scott  Non-standard header inclusion method (for lack of a better phrase)
          is very easy to use, it would be
AFL Scott  great if Mike could get the very serious bugs out of ORCA/DeskTop
          and move in the direction of a
AFL Scott  Think C like interface... it's very, very nice, IMHO.
AFL Dyfet  Okay, any more comments on C porting??
AFA Gary J I suppose the best approach (if you wanted to write for both the
          Mac and IIGS)
AFA Gary J would be to use MPW C?
AFL Dyfet  GA Dave...
Dave Lyons MPW C is ANSI these days, I think, but MPW IIgs C isn't (it's like
          APW C, only the same).
Dave Lyons C.K. Haun is our local resident parallel-development
Dave Lyons expert, and we have some material out on the developer CD for
          helping
Dave Lyons with parallel Mac/GS development, with I assume more to come.
          ga
AFL Dyfet  GA Scott
AFL Scott  Just a quickie to say that I really liked this issue of Develop!
          So much for the GS in there, and
AFL Scott  Jim Merritt addressing the issue of parallel-development was
          great!  done.
Matt DTS   Uh...Jim Merritt talked about parallel development in "Apple
          Direct".  CD-ROM was the subject of
Matt DTS   develop #3.
AFL Scott  Sorry... I'm tired, Matt... I made a mistake.
Matt DTS   No excse, Scott.  Go directly to jail.  Do not pass bank zero, do
          not collect Nifty List 3.1.
AFA Gary J Matt :)
Dave Lyons (Do not collect 512. :-)
AFA Gary J I'm out of C questions for tonight :)  (My mind needs to return
          to assembly :)
AFL Dyfet  Assembly...thats another night Gary :)
AFA Gary J Well, C was written in assembly, wasn't it???? :)
KenSp      how formal are these chats? There is something I need to know,but
KenSp      its pretty basic stuff.
AFL Dyfet  That's okay Ken...Feel free to ask your question...
KenSp      well, I'm working on a junior high math package, and we ran across
          an
KenSp      interesting bug in Apple mathematics.
Matt DTS   Meaning AppleSoft, correct?
KenSp      It seems that the number 5.892 is interpreted as 5.892001
Matt DTS   That sounds like an Applesoft bug to me.
KenSp      I want to write a small program to find other 4 digit numbers
          between
KenSp      -9999 and 9999 that will act similarly strange so I can trap
          them.
AFA Gary J In what language, Ken?
KenSp      In Pascal or Basic
KenSp      I started, but it isn't working
Matt DTS   You don't necessarily have to trap for them - you can
          programmatically stomp them on the fly.
Dave Lyons Ken, lots of Real numbers cannot be represented
Dave Lyons precisely in a finite number of bits in binary.  You -will- get
          the sort of problems you've
Dave Lyons found, and you pretty much have to do some rounding-off to avoid
          problems.  Instead of
Dave Lyons checking for equality, for example, check for ABS(X-Y) < 0.000001
          or something.
Dave Lyons (Err...too many 0s in my example.)
A2GS       Would subtracting 1 and then readding 1 to one of those strange
          REAL numbers
A2GS       help?
KenSp      anyone care to try to explain why that happens?
A2GS       Because Apple's are wierd.
KenSp      yes, but there is also a logical explanation, isn't there?
AFA Gary J It does seem strange, since hand held calculators use the same
          types of
AFA Gary J functions, and they get accurate results.
A2GS       It's based on the way Applesoft represents REAL numbers.
AFL Dyfet  I have seen strange FP rounding errors on many machines...
Dave Lyons Not just Apples or Applesoft.  Any representation of real numbers
          is weird.
Dave Lyons Calculators don't always get accurate results, either.
Dave Lyons I believe Applesoft does -not- always do as good a job as possible
          of representing certain numbers
Dave Lyons in the number of bits available, *but* you still would have
          problems anyway.  For example,
Dave Lyons (1/3*3)-1 would not be exactly zero, I think.
Dave Lyons (HP calculators use BCD...they actually represent each digit
          separately, instead of using a more
Dave Lyons compact binary format.  That means they can represent numbers
          exactly as you type them in, but
Dave Lyons you still have round-off problems once you do operations on
          them.)
A2GS       You can see something strange happen, if you start incrementing a
          variable
A2GS       which started at 0, I think when it reaches 6 it will now have the
          new value of
A2GS       6.000001 (or whatever)
Dave Lyons A2GS, I don't think that happens for any reasonably small
          numbers...can try it, though.
Dave Lyons I'm up to 2000 still, with out strangeness.
KenSp      when, at the basic prompt, you type x=5.892 then you press return
          and
KenSp      type Print x and you get 5.89200001
KenSp      that doesn't make much sense
A2GS       I once did this thing years ago and for some reason (if I remember
          correctly)
A2GS       this strange representaion bug consistantly showed up.
Dave Lyons For that matter, type PRINT 5.892 and you'll get 5.89200001.
A2GS       I wrote the program on an Apple II (original), have one of those
          handy?
Dave Lyons The Applesoft floating point routines have not changed, as far as
          I know.  I just tried this
Dave Lyons stuff on my GS, and it works as described (including PRINT 5.892
          --> 5.89200001).
AFL Dyfet  A lost bit in there, no doubt :)
A2GS       Well, I don't know, should I ever come across the bug again, I
          will formely
A2GS       submit my bug discovery to Sculley on a silver platter.
AFA Gary J Probably should be submitted to Steve Wozniak :)
A2GS       (not that I expect anything to be done with it once he gets it)
AFA Gary J (It's been around that long)
AFL Dyfet  Microsoft did Applesoft...
AFL Dyfet  Steve did Integer, which works fine :)
AFA Gary J That's true
Dave Lyons I'm not even sure it's a bug...you just can't represent most
          decimal numbers exactly, and
Dave Lyons Applesoft doesn't do the sort of rounding off that calculators
          usually do to hide the
Dave Lyons slight inaccuracies.