textfiles/apple/ADC/adv.890725

449 lines
19 KiB
Plaintext

AppleLink
APPLE II DEVELOPEMENT FORUM CONFERENCE LOG
July 25, 1989 10:00 p.m. eastern time
Topic: Pascal and C Programming
Forum Leader: Dave Sugar (AFL Dyfet)
AFL Dyfet Okay, LISTEN UP...we will be using PROTOCOL STARTING NOW
:)....Good evening and
AFL Dyfet welcome to the Apple II Development Forum. Tonight's topic is
Pascal and C,
Windrider5 what's does "expressing" mean?
Imcreator I WANT 5.0
JimLaz (CMS is suppossed to be working on a native SCSI driver for their
card.
AFL Dyfet and we ARE using PROTOCOL, which means we WILL get to everyone's
QUESTION in
AFL Dyfet turn. Our first question this evening is from Windrider. GA
Windrider.
Windrider5 What does "expressing" mean?
Dave Lyons a lot of information is consolidated into one segment at the
beginning of the
Dave Lyons load file so ExpressLoad can load the file faster. Applications,
DAs, setup
Dave Lyons files, tools, EXE files, & any other load files I missed can all
be expressed.
Windrider5 does this work for program written in higher languages?
Dave Lyons (Stuff that ships on 5.0 already comes expressed.) Oh, drivers
too. ga
Dave Lyons Yes, any S16 or EXE file can be expressed. Any "load file".
Dave Lyons (ga)
AFL Dyfet Some applications may not work after being expressed. In
particular, an
AFL Dyfet application that calls the loader directly to bring it's own
segments in will
AFL Dyfet not work correctly.
Dave Lyons !
Dave Lyons Right, an application that loads its dynamic segments *by number*
rather than
Dave Lyons name will not work after it's been expressed, when you try to run
it under
Dave Lyons *earlier* system software. It *will* work under 5.0, since
ExpressLoad knows
Dave Lyons how to translate pre-expressed segment numbers into new segment
numbers; but
Dave Lyons for maximum compatibility we recommend applications load segments
by *name*
Dave Lyons only, not number. Another reason an application could break after
being
Dave Lyons expressed is that it stores data (configuration choices, for
example) into
Dave Lyons hard-coded places in the file. That's a bad idea. (A Good Idea
is to request
Dave Lyons a Configuration filetype/auxtype assignment from Developer
Technical Support.
Dave Lyons Mail stop is now 75-3T!) ga
AFL Dyfet I was not aware myself that the loader was revised for expressload
support :)
AFL Dyfet Okay, I see that our next question is from BillP. GA Bill.
Dave Lyons It wasn't; ExpressLoad gets first whack at all Loader calls that
are made,
Dave Lyons assuming that it's around. ga
BillP I have recently been working with a company doing Apple II
development and they are using...
BillP Aztec C.... is it used often?
BillP In AII development that is.
BillP ga
AFL Dyfet Hmm...I used to putter around with Aztec C myself, but that was a
long time
BillP I assume that it is not the best environment but the only C
available for 8 bits? yes?
Windrider5 ?
AFL Floyd !
AFL Dyfet ago. There is also Hyper C, but it could not genorate stand alone
appl.
AFL Dyfet easily.
AFL Dyfet
AFL Dyfet
AFA Gary J Hmmm... It seems that Dave has a malfunction. GA with your
comment, Floyd.
AFL Floyd From people I've talked to who have used it for // use, one must
write your own std libraries since
AFL Floyd the supplied ones stink. Bill, you might want to send mail to
WalkerA (Walker Archer of Quality
AFL Dyfet Okay...I think I was frozen out...
AFL Floyd computers) he has much experience with it.
AFL Floyd ga
BillP ok kinda what I thought thanks
AFL Dyfet I can things commming in again! Okay...I believe our next
question is from
Morentis Greetings, and good evening.
AFL Dyfet WindRider again. GA Windrider...
Windrider5 I have some problems when I compact programs which I have written
in APWC
Windrider5 Should compacting higher level programs be any problem?
Dave Lyons !
AFL Dyfet GA Dave...
Dave Lyons Shouldn't be a problem--what is going wrong for you? Compacts
without error,
Dave Lyons but crashes, hangs, etc when you run the compacted application?
Or what?
Windrider5 my programs does not expect input into editlines in my dialogs
Windrider5 except that is
Dave Lyons You type keys and the program behaves as if you didn't type any
keys? But
Dave Lyons no other noticable effects?
Windrider5 Yes
Dave Lyons Is there a blinking insertion point in the edit line item?
AFL Dyfet <Scott: Received>
Windrider5 Yes
AFL Scott <Thanks!>
Dave Lyons Can't think of anything directly related to the compacting that
would cause
AFL Dyfet <Get flash I sent?>
Dave Lyons that, Windrider. Maybe something random is going on that just
happens to let
AFL Scott <Yep!>
AFL Scott ?
Dave Lyons your program work most or all of the time when it's not compacted.
If you can
Dave Lyons send me the object code by email, I'll take a look at it. ga
Windrider5 thanks ga
AFL Dyfet Hmm...Well, Dave is very good at tearing into object modules
:)...I believe
AFL Dyfet our next question is from Scott. You have the floor now, Scott.
AFL Scott I have a rather strange question concerning fread and fwrite using
stdin and
AFL Scott stdout as the stream qualifier... Are there known bugs in the
shell that cause
AFL Scott stdin and stdout to be messed up in such a way that causes a file
to be written
AFL Scott twice the size as required?
Dave Lyons !
AFL Dyfet GA Dave...
Dave Lyons Are you trying to write single bytes? Not sure if fwrite()
supports writing
Dave Lyons odd lengths. ga
AFL Scott No, trying to write 1 unit of 200 bytes, Dave.
Coach101 !
AFL Dyfet GA Coach...
Coach101 I looked at your code segments Scott, and the first thing I
would
Coach101 do is put in printfs just in front of the fread and fwrite to
verify
AFL Floyd !
Coach101 the the "count" variables are not getting messed up. You could
possibly
AFL Scott Done... still no go
Coach101 Drat.... Oh well..... Sorry, ga
AFL Dyfet GA Floyd...
AFL Scott No problem Coach, Thanks!:)
AFL Floyd I uploaded two IDENTICAL source files to Scott. THe only
difference was one used stdin/stdout and
Ransomdawn ?
AFL Floyd the other used regular file (fopen, fclose, etc). The
stdin/stdout one didn't work and the other
AFL Floyd one did. Most strange.
AFL Floyd The fread and fwrite calls were identical except for the different
stream.
AFL Floyd fread(buf, cols, 1, stdin) vs fread (buf, cols, 1, in_file)
AFL Floyd ga
AFL Dyfet Thought: Perhaps stdin/stdout is handled through text tools and
NOT via GS/OS!
AFL Scott That's what I think I need to find out... if there are any known
bugs in the
AFL Scott piping/redirection stuff in the APW or ORCA shells. Thanks!
AFL Dyfet A good place to start is to see if you can do any seek calls on
stdio, since
AFL Dyfet you cannot, of course, through text tools itself...:)
AFL Scott Thanks! GA
AFL Floyd (testing that right now. :)
AFL Scott Thanks Floyd! It must be nice to have two computers!:))
AFL Dyfet Basically, try writing 100 bytes to stdout, seek -50, and write
again. If it
AFL Dyfet works, you get 150, if not, you get 200 :)
AFL Dyfet Well, while floyd is tinkering, we can move onto the next
question, unless
AFL Dyfet somebody else wishes to make a comment here.
AFL Dyfet Okay, RansomDawn, you now have the floor, GA.
Ransomdawn As a relative programming newcomer, I am wondering what
differences...
Ransomdawn ..may exist in the graphics power of pascal versus C?
AFL Dyfet In both cases, it's entirely a matter of the support routines and
libraries
AFL Dyfet provided with the product, and not the language itself, which
dictates the
AFL Dyfet quality and level of graphics support.
AFL Dyfet There is no part of either Pascal or C, in of itself, that
specifies any
AFL Dyfet graphics capabilities. I hope that was clear...
AFL Scott !
AFL Dyfet GA Scott.
AFL Scott You'll find out that most graphics text books use Pascal as the
language of
AFL Scott choice.. Foley, Van Dam, and other titles... But there is no
difference as
AFL Scott Dave said... Pascal is chosen for text books because it's easier
to read.
Pest II ?
AFL Dyfet In the case of the IIgs, both languages have support added to take
advantage
AFL Scott The power is all depending on the implementation. GA
AFL Dyfet of quickdraw. It's entirely a matter of which language you find
easier to
Ransomdawn O.k. Thanks
AFL Dyfet write in. Okay, I believe our next question is from Pest. GA
Pest.
Pest II I heard recently that the 2 devices per slot limitation in Apple
II's was
Pest II tied to the hardware...is this true even for the GS??
Dave Lyons !
AFL Dyfet GA Dave...
Dave Lyons Two devices per slot is a limitation of ProDOS 8, not of the
hardware. GS/OS
Dave Lyons lets you have plenty of devices (and therefore volumes) per slot,
although
Dave Lyons there are still some hardware limitations (you can't *actually*
daisy-chain
Dave Lyons 127 drives off the SmartPort connector without melting something),
and
Dave Lyons individual drivers may limit the number of devices they manage.
You can
Dave Lyons have 32 partitions off of one slot with the SCSI.MANAGER in 5.0.
ga
Pest II but does a SCSI chain work, and does a CD ROM under GS/OS need the
funny
Pest II partitioning?
Pest II or can it be seen as one volume
Dave Lyons A CD ROM daisy-chained after my hard drive works just fine, with
no special
Dave Lyons fiddling. ProDOS partitions are still limited to 32 Megs, of
course, but if
Dave Lyons you have an ISO 9660 / High Sierra CD, the ISO 9660 / High Sierra
FST can read
Dave Lyons it with no problem.
AFL Dyfet Okay, are there any additional comments? Floyd, any news?
Pest II !BTW: AApple Direct owned up to their CD SCSI error...thanx, ga
Dave Lyons (ga)
AFL Floyd Checking now. I had a phone call.
AFL Dyfet Okay, feel free to fill up that question que while we're
waiting.
AFA Gary J <wait wait....>
AFA Parik ?
MrJayDee What's the topic du jour???
AFL Dyfet GA Parik, you have the floor now...
AFA Parik will deleting CDEVS and CDEVS.INIT have any awful effects upon
5.0?
AFL Dyfet Yes, you will be told to sit in a corner and repeat "I will buy an
IBM" 500
AFL Dyfet times if you do that :)
AFA Parik also - EXPRESS *can* be used in orca or apw v1.0.2, right? or 2.0
ONLY?
AFA Parik :P
Dave Lyons !
AFL Dyfet GA Dave...
AFA Parik (I still can't figure out why most of the programs i express don't
work :((
Dave Lyons Yes: you won't be able to use the CDevs. :-) But if you don't
want to use
Dave Lyons them, that's okay. ga
AFL Floyd (fseek doesn't work with STDOUT!)
AFL Dyfet Just as I suspected...the stdio library is gimmied up to work with
text tools.
AFL Scott !
Coach101 I wonder about its behaviour under Apw 2.0?
AFL Floyd I wrote out 200 bytes, seeked to 50 bytes from the beginning and
wrote out 200 again. Got 400 bytes
AFL Floyd written to the file.
AFL Dyfet GA Scott...
JSchober (sheesh!)
AFL Scott I wonder if this relates to the fact that all the descriptions in
the text
AFL Scott tools say "Characters", and I'm trying to use functions written to
handle
AFL Scott binary streams? This doesn't make sense tho, since text in a
computer is
AFL Scott binary.
AFL Dyfet But text tools really only knows about text...it may strip the hi
bits or do
AFL Dyfet other horrible things...:)
AFL Scott Oh boy! Looks like it's time to use other means... and forget
about pipes
AFL Scott and redirection.
AFL Scott Thanks Floyd, you've been very helpful! Now I owe you more than I
did before!
AFL Scott :)
AFL Scott Thanks! Done
AFL Floyd (I'll send ya a bill ;)
AFA Gary J :)
AFL Scott (LOL!:)
AFL Dyfet You may want to send a letter to Mike Westerfield on this matter
for further
AFL Dyfet comments, especially in regards to what orca/c may be doing...
AFL Scott ?
AFL Floyd My test was with Orca/C.
AFL Floyd It's the shell, not the language.
Coach101 !
AFL Dyfet GA Coach...
AFL Floyd (Oh, sorry, I didn't know protocol was still in effect)
Coach101 From an architectural point of view, does it really make sense
Pest II ?
Coach101 for seek to work on the STDOUT stream? Given the *standard* use
of
Coach101 pipes seeking on the output seems a somewhat non-standard?
Coach101 ga
Dave Lyons !
AFL Dyfet GA Dave...
Dave Lyons No, I don't think it makes much sense. STDOUT could be the
console or printer;
Dave Lyons on a system with concurrent processes it could be a pipe to
another process
Dave Lyons that could munch your output before you fseek() back to "retract"
it. Doesn't
Dave Lyons make sense except for a file. ga
AFL Floyd !
AFL Dyfet I'll let Floyd jump in..GA Floyd...
AFL Floyd That's not the point, the original test case didn't use fseek,
just standard fread and fwrite and
AFL Floyd it didn't work correctly with stdin/stdout, but worked fine with
regular file. ga
Coach101 OK, I got confused as to why we were testing with fseek... Why
were we
Coach101 testing with fseek?
AFL Dyfet Okay, we did drift from the original issue...part of why fseek was
used was
AFL Floyd To see if maybe the shell was using the text tools instead of
operating system.
AFL Dyfet to determine if stdio was handled by different routines than
'normal' file I/O.
AFL Floyd (Sorry, I'll sit on my hands. ;)
AFL Dyfet Or, as Floyd summed up. Since stdin/stdout is a handle, it SHOULD
support
AFL Dyfet fseek when stdin/stdout is pointing to a file, for consistancy
with the rest of
AFL Dyfet the standard file library, in my opinion.
AFL Floyd !
AFL Dyfet GA Floyd.
AFL Floyd fseek, fread, fwrite, etc. are supposed to work with all STREAMS,
whether they are stdin, or other.
AFL Floyd ga
Coach101 !
AFL Dyfet GA Coach...
Coach101 But, that would be impossible in a multi-tasking system where
you
Coach101 were piping to another process that, as Dave pointed out, could
eat
Coach101 your output (i.e., process it) before you *recalled* it. I think
that
Coach101 if you intend to support piping of your output you had better
not
Coach101 use fseek on stdout. ga
AFL Dyfet Any stream, and NOT just stdin/stdout, can be pointed to a pipe,
virtual
AFL Scott (Gary kill my question an put me in for a comment!:))
AFL Dyfet circut, or device, coach...however, when it's pointing to a file
it will seek,
AFA Gary J :)
AFL Dyfet and stdin/stdout are just streams, like any other file stream, or
should be,
AFL Dyfet in my opinion.
Dave Lyons (Off to the msg base...flash me if I'm needed!)
Coach101 !
AFL Dyfet The great debate continues :)...GA Coach.
AFL Scott Basically what we are dealing with in this case is not a proper
handling of
AFL Floyd !!!
AFL Scott stream data, period.
Coach101 Ok, but if we have a strict implementation that allows fseek at
all
Coach101 times irregardles of where the output *might* go, then we
preclude
Coach101 any overlapped processing by cooperating tasks in a
multi-tasking
AFL Scott Wait.. change that to improper handling of stream data... Sorry to
butt in.. :)
Coach101 environment. My basic point is that if your program wants to
support
Coach101 piping of an output stream it has to be prepared for certian
things
Coach101 not functioning the same as with a file. ga
AFL Dyfet fseek should return an error if the stream is not seakable...but
again, I feel
AFL Dyfet stdin/stdout are supposed to be 'standard' file streams in their
behavior.
Coach101 Agreed on the error that should be returned. And agreed that what
we
Coach101 have found here is a bug. My whole point was on an architectural
ground
AFL Scott This really is not a good situation. It is restricting _any_
program working
Coach101 and not on what had happened Scott. ..... Geez Scott you are a
trouble maker
AFL Scott on stream data to working with TEXT only. Not good, at all!
AFL Dyfet Yes, Scott, you are :)
AFL Floyd I just tested the same thing with THINK C on the Mac and it
properly seeks with stdout. BTW, the
AFL Floyd original test code that didn't work with the GS shell worked fine
on the Mac.
Pest II -?
AFL Dyfet Floyd, you will find that unix and MS-DOS will do so correctly
also :)
Coach101 Three computers Floyd!!!!
AFL Floyd No, MultiFinder. ;)
AFL Dyfet Sorry if we lost your question in this debate, Pest...
Pest II that's OK
AFL Dyfet There are a number of script interpreters written in unix, with
the idea that
AFL Scott I like being a trouble maker on occasion! It makes me feel good
that I'm not
AFL Scott the one who's crazy!:)
AFL Dyfet goto branching can be done by seeking on stdin when it's
redirected from a
AFL Dyfet file...these, I see, will also fail to work.
Pest II and they call me the Pest!?...:)
AFL Dyfet AFL Pest :)
Coach101 fseek on stdin is a totally different issue! I have not problems
there.
Pest II that has a nice ring to it...
AFA Gary J I don't think Scott want's to change his name to that :) It
goes without
AFA Gary J saying :)
AFA Gary J (heheh)
AFL Scott LOL!
Coach101 :)
AFL Dyfet But coach, you can't have it one way on one side of the pipe and
another on
AFL Dyfet the other :):)
Coach101 Not true. The problem with fseeking on the output side is that it
prohibits
AFL Floyd (I'm outta here. Later peoples!)
Coach101 multiporcessing. Fseeking on the input side does not carry such a
penalty.
JSchober (night Floyd!)
Coach101 On System-V Unix systems the piped to process will kick off
before
AFA Gary J Goodnight, Floyd
Coach101 completion of the piping process! e.g., ls -l | pg
Coach101 ga
AFL Dyfet Let's table this to the message board, coach, before we scare the
rest away :)
AFA Gary J I think we ARE the rest :)
Coach101 Fine....
Pest II I'm scared :)
AFL Dyfet By the way, Pest, what was your question?
Coach101 Your supposed to show respect and awe Pest :)
AFL Scott I can finally get some sleep!:)
Pest II nothing really...hardly as exciting as fseek and piping...or even
dogcows
AFL Scott ps -ef|grep -i sleep