AppleLink
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
August 29, 1989  10:00 p.m. eastern time
Topic:  ByteWorks Products - Special Guest Mike Westerfield
Forum Leader:  Dave Sugar  (AFL Dyfet)

AFL Dyfet  Well, it's about that time (10:00EST), so I guess we better get
          started :)
AFL Dyfet  Good evening and welcome to the Apple II development.  As you can
          see by that
AFL Dyfet  worm up there, tonight's topic was originally scheduled open, and
          appearently
AFL Dyfet  it never got changed :(...In any case, tonight's topic is
          BYTEWORKS and related
AFL Dyfet  tools, and our special guest tonight is Mike Westerfield.    We
          will be using
AFL Dyfet  PROTOCOL tonight, which means, if you wish to ask a question, you
          should enter
AFL Dyfet  a '?' on a line by itself, like Parik just did, and if you wish to
          comment on
AFL Dyfet  the current discussion, you must enter a '!' on a line by itself.
          You will
AFL Dyfet  be called upon in turn to speak.  But first, before we get
          started, I would
AFL Dyfet  like to give our guest a chance to introduce himself :).  Mike,
          you have the
AFL Dyfet  floor now :).
MikeW50    Gee... (blush).  For the two of you who don't know :) I'm Mike
          Westerfield,
MikeW50    President of the Byte Works, Inc.  We write development systems
          for
MikeW50    Apple II computers, most recently for the Apple IIGS, where we now
          offer
MikeW50    assembly language, Pascal, and C, all working from either a text
          or
MikeW50    desktop environment, and all sharing the same development
          environment.
MikeW50    ga
AFL Dyfet  I see your modest too, Mike :)...
AFL Dyfet  GA Phil, if you have a comment, and aren't sneaking in a question
          :)
AE PhilM   Hi Mike, that all!
AE PhilM   ga
MikeW50    Hola.
MikeW50    ga
AFL Dyfet  :)  Okay, I believe our first question is from AFA Parik.  You
          have the floor
AFL Dyfet  now.
AFA Parik  couple Q's.  What ever happened to Orca/Basic?  Have you seen John
          Brooks
AFA Parik  TurboLink and/or Randy's Rose editor?  if so, have you talked with
          them about
AFA Parik  maybe including them?  they are really hot!  Also - can you give a
          status
AFA Parik  report on Orca/M v2.0?  ga
MikeW50    First, ORCA/BASIC is still an active project, but an incredibly
          hectic and
MikeW50    busy schedule keeps pushing it back.  That's why we have been
          silent about
MikeW50    release dates.  I don't want to continue to get people's hopes up,
          only to
MikeW50    dash them when a slip comes up.  Frankly, although it is still an
          active
MikeW50    project, I'm sorry we ever anounced that we were working on it.  I
          don't like
MikeW50    doing that sort of think to you.
MikeW50    I have seen both the editor and linker you asked about.  Neither
          is likely
MikeW50    to make it into our commercial product, simply because we could
          not
MikeW50    1. pay for it
MikeW50    2.  support it
MikeW50    I also like to see a _choice_ of editors.  If there is one truism
          about
MikeW50    editors, it's that no one editor satisfies everyone.  There are
          many
MikeW50    people who are very happy with the one we ship, or who want to see
          it
MikeW50    extended rather than replaced.  I want Randy to publish his as a
          _alternative_,
MikeW50    not a replacement.  That gives you a choice.
MikeW50    While the linker you mentioned is fast, it is also very
          non-standard in the way
MikeW50    it works and the features it supports.  Look for a new linker from
          us that is
MikeW50    about as fast, but supports all features and works in a more
          normal way.
MikeW50    ORCA/M 2.0 is under development.  It will be the basis for 2.0
          versions of
MikeW50    C amd Pascal, as well.  I can't give you firm release dates, yet.
          The major
MikeW50    features are full support of system 5.0, including resources, and
          lifting of
MikeW50    many limitations, such as longer expanded command lines (64K) to
          allow
MikeW50    for more link names, 64K shell variables, and 8K path names.  I
          will be
MikeW50    happy to answer ?s about it.
MikeW50    ga
AFA Parik  multiple commands on a single line?  ;)  thanks!  <done>
MikeW50    You have mutiple commands on a line now...   ga
AFL Dyfet  Okay,  I'm sure some questions will be asked about that before the
          end of
AFL Dyfet  tonight :)...I believe the next question is from WindRider...GA.
Windrider5 I have been reading recently about object-oriented programming and
          C++ do you
Windrider5 think Apple of Byteworks will ever support OOP/C++ for the IIgs
Windrider5 ga
MikeW50    I can't speak for Apple.  As for us, we are seriously considering
          C++ as
MikeW50    an extension to a future version of ORCA/C.  On the other hand, I
          am not
MikeW50    willing to publicly commit to anything even vaguely resimbling a
          release
MikeW50    date.     ga
AFL Dyfet  Okay, I believe Coach has the floor next.  GA Coach...
Coach101   First, do you have a feel for the general time frame of the
          release
Coach101   that fully supports 5.0 and is that the "free" upgrade I have read
          about?
Coach101   ga
MikeW50    I assume you are speaking of C.  The free update will include a
          new compiler,
MikeW50    new libraries, and new interface (.h) files.  We are currently
          working on the
MikeW50    bug fixes, and waiting on the .h files, which are supplied by
          Apple.
MikeW50    Unfortunately, the fact that we decided to include 5.0 with C 1.1
          has slowed
MikeW50    it down considerably -- we have to wait for Apple supplied
          files.
MikeW50    As for the "full" support of 5.0, the current system works with it
          fine, with
MikeW50    the exception of the ORCA COPY command, which does not copy
          resource forks.
MikeW50    The 5.0 free C upgrade will ship considerably before we have
          finished the
MikeW50    new shell, which will take advantage of the new features offered
          by 5.0.
MikeW50    That will be later this year.  The free upgrade to C may ship as
          soon as
MikeW50    next week.  If we don't have files from Apple vefore AppleFest
          (late Sept),
MikeW50    we will just modify the files ourselves, and ship anyway.  That
          would,
MikeW50    unfortunately, mean that we would have to do another update when
          we get
MikeW50    Apple's .h files.  I hope we don't have to do that.
          ikeW50    ga
Coach101   "C" was what I was referring to.    Thanks for the infor.....
          Done...
AFL Dyfet  I have a question...why does Apple have to supply the headers?
MikeW50    We use Apple's tool interface headers to maintain as much
          compatibility as
MikeW50    possible between ORCA/C and APW C.  It is also supposed to make
          our interfaces
MikeW50    more accurate, since they are generated mechanically from original
          data, and
MikeW50    make them match the Apple-supplied toolbox documentation.
          ikeW50    ga
AFL Dyfet  That seems like a wise choice then :)...I believe Phil has the
          floor next..GA
AFL Dyfet  Phil.
AE PhilM   In 2.0 can will we see a recursive delete command, and text output
          thru the
AE PhilM   console driver (for speed).  Will switch and compress work with
          directories
AE PhilM   that have extended files.  Finally, please don't change the way
          the editor
AE PhilM   handles key substitutio (ie. SYSECMD)  I really like the editor I
          am using now
AE PhilM   done
MikeW50    The ORCA/M 2.0 shell will support recursive deletes.  Keep in mind
          that while
MikeW50    I cannot talk about APW, there will be some differences between
          the ORCA/M and
MikeW50    APW shell.  (ORCA will have more.)  (Hint, hint...)
AE PhilM   :)
MikeW50    The new shell supports output using the console driver.  For
          speed?  Well, no.
MikeW50    The text tools are _still_ faster that the console driver, but the
          OS team
MikeW50    keeps promising that that will change someday.  Old programs that
          use the text
MikeW50    toolkit will still work -- the very flexable text tools will be
          routed by the
MikeW50    shell to the less flexible console driver, which would not be able
          to handle th
MikeW50    reverse situation.
MikeW50    Compress and switch shoudl support extended files now.  The
          problem is that
MikeW50    there is a "feature" (DTS insists it is a feature, not a bug)
          that
AFA Parik  Will there be a rez compiler on 2.0?  Is it going to be as large
          as APWs?  :)
MikeW50    prevents a program from using write-block to the boot disk.
          COMPRESS and
AFA Parik  (whoops, sorry)
MikeW50    SWITCH work fine if you use them on any disk except the boot
          disk.
MikeW50    We will eventually stop supporting the key remapping feature of
          the current
MikeW50    editpr, but it will not happen until it is replaced by a much more
          flexable
MikeW50    mechanism for doing the same thing (and more).  That may be in
          2.0, but
MikeW50    frankly, it will probably have to wait until a little later.
MikeW50    ga
Dave Lyons With the Console Driver, there is the potential for being much
          faster than the
AE PhilM   Thats not a feature.....preventing a write block call??   Thanks
          Mike!
Dave Lyons text tools--this depends largely on the calls being
          multiple-character writes
Dave Lyons rather than single-character ones, so the advantage won't become
          too apparent
MikeW50    Without getting into a debate, console drivers are not used as
          block-output
Dave Lyons until EXE utilities and/or the shell itself start going directly
          to the
MikeW50    devices.  They are sed as single-character devices by shells.
          Since the shell
Dave Lyons console driver.
MikeW50    is the only program that uses it (right now), it must be fast the
          way the shell
MikeW50    uses it, not the way the tester tests it.    ga
Dave Lyons GS/OS wasn't designed to allow direct block access to a disk with
          open files
Dave Lyons on it--since Sys.Resources is generally open, that means you can't
          do block
Dave Lyons access to your boot disk, at least not without a lot of trouble.
Dave Lyons EXE utilities typically use things like WriteLine today, right?
          If you
Dave Lyons replace these with multiple-character writes (using Write or
          DWrite--don't
Dave Lyons remember which way is faster), you get a lot of speed out of the
          console
Dave Lyons driver.
Dave Lyons (ga)
MikeW50    Dave, the shell is written to handle output of a character stream.
           While
MikeW50    proms _could_ be completely rewritten to collect characters into a
          single line,
MikeW50    then send them in bursts, it is not reasonable to expect the
          programmer to do
MikeW50    that just to suppprt the new console driver.  The console driver
          should be
MikeW50    rewritten to support the existing programs, which all worked fine
          before.
Dave Lyons Old programs continue to work; but there is the opportunity for
          large
MikeW50    As for write block, keep in mind that the "feature" breaks
          existing programs.
MikeW50    It can also be avoided by changing GS/OS.  Breaking existing
          programs,
Dave Lyons speed increases by using the console driver in "spurts"--I think
          it's
Dave Lyons reasonable in some cases to take advantage of the speed.
MikeW50    especially without providing an alternative, is something Apple
          can choose
MikeW50    to do, but I hope you change your mind.
MikeW50    ga
Dave Lyons On WriteBlock--also note that block-level access to volumes
MikeW50    Sorry -- I missed your comments because I was still typing.
Dave Lyons is never recommended, and that you can always boot from another
          disk to
Dave Lyons do block-level stuff to a particular disk.
MikeW50    Right - or reboot P8 to do the job, as the DTS letter recommended.
           Put THAT
AE PhilM   Dave, that is not reasonable...that is not the way people work.
          Generally
MikeW50    in your script file!!!
AFA Parik  (hd...:-)
AE PhilM   they are booting from a harddisk and dont really want to boot up
          from another
AE PhilM   disk just to use switch an compress.
AFL Dyfet  Or do a quick hack on a file :)
Dave Lyons It is reasonable to ask that GS/OS be enhanced in the future
AE PhilM   It's really very inconvenient.
AE PhilM   done
Coach101   ProSel-16 will do the SWITCH, SORT, etc.  on the boot disk!!
Dave Lyons to allow block-level access even with open files--with caching
          going on at
Dave Lyons the device and FST level, this is a tricky issue.
AE PhilM   Then I will ask that it does.  If the time penalty is not too
          great to do so
AE PhilM   now without a re-design...then it should be done ASAP.
MikeW50    PrSEL-16 will not do it's stuff using 5.0.  ORCA works fine with
          4.0.   ga
Dave Lyons (done)
AE PhilM   done
AFL Dyfet  Any other takers?
Coach101   Yes
AFL Dyfet  GA Coach...
Coach101   I think that there must be a way to do it currently (DRead/DWrite
          maybe)
Coach101   but the whole concept is very scary..   The OS is doing caching
          (FST.DEV)
MikeW50    I asked DTS about DRead, DWrite.  It will work, but leaves you in
          danger of
MikeW50    corrupting the disk.  ga
Coach101   and ANY write activity to the disk is just FLAT DANGEROUS and
          beyond
Coach101   the scope of understnding by the JTU (Jay Turkey User).
Coach101   With respect to the CONSOLE driver issue, I agree with both of
          you.  The SHEL
Coach101   has a need for character I/O but the programs , I think, tend to
          things
Coach101   in line form.  In line form the speed increase will be there and
Coach101   MORE importantly, a program can be used outside of the SHELL (i.e.
          a sort
Coach101   program launched by a database program) and use the new prefixes
Coach101   to accomplish I/O redirection.    Done....
AFL Dyfet  Also, by using the new prefix based redirection, one no longer has
          to worry
MikeW50    I agree.  And I think that the console driver will eventually be
AFA Parik  like I asked before, how will rez be handled? a text and desktop
          compiler? Will
MikeW50    faster than the text tools are now.  They just aren't yet.
MikeW50    ga
AFL Dyfet  about stdin/stdout being implimented incompletely.  You could do
          fseek/etc on
AFL Dyfet  stdio again :)...
Coach101   Perhaps....
AFA Parik  it be a programmers thing, or something like Genesys/DesignMaster?
           Also, how
Coach101   The resolution is to have a way to have GS/OS flush all cache for
          a
AFA Parik  do you do multiple commands on one line?  (ie, prefix /xxx/xxx
          cat)
Coach101   particular device...   Then the test for Block I/O could be is
          there any
Coach101   items for the volume in the cache...  If so, no block I/O..  If
          not, Block I/o
AE PhilM   Coach, the cache is implemented at the block I/O level....it is a
          write thru
AE PhilM   cache so there is no reason to flush it.
AFL Dyfet  PLEASE, ONE AT A TIME.!!  GA Dave, YOU now have the floor :)
Dave Lyons But the FSTs are allowed to have copies of bitmap/etc blocks that
          are *more*
Coach101   But you MUST invalidate it!]
Dave Lyons up to date than what has been written to disk.  By the time a
          WriteBlock
Dave Lyons request comes through, the application may have computed the
          *wrong* data
Dave Lyons to write to disk, and flushing the FST info to disk right before
          that data
Dave Lyons is written may just fry things by re-over-writing it.  (Consider
          using a
Dave Lyons block editor on a bitmap block while files are open, for example.)
           Maybe
Dave Lyons the answer is to do the FST flushing at ReadBlock time, and allow
          WriteBlock
Dave Lyons only if there was a ReadBlock with no intervening File-oriented
          calls...or
Dave Lyons *something* like that. It's definitely complicated.  GA
MikeW50    Dave, it's simple.  The OS, as advertised, is only changing the
          blocks without
AFL Dyfet  GA Coach...
MikeW50    writing them during certain well-defined calls that could disable
          write-block.
MikeW50    In any case, the OS does not prevent write-block froma happening
          on a general
Dave Lyons Mmmm...that isn't clear at all to me from the documentation.  When
          files
MikeW50    disk, so if it is angerous, it is possible to do harm _now_.
Dave Lyons are open, FSTs "know" what's eventually going to be on disk.
MikeW50    In any case, this is a topic for another night.  Can we move on?
MikeW50    ga
Dave Lyons (I'm *not* talking about Sessions here, by the way.)
Dave Lyons (OK, done)
MikeW50    (I was.)
Coach101   Maybe a folder for this discussion....
Coach101   ga
AFL Dyfet  Perhaps this should be moved to a folder :)...Okay, I believe
          Parik had the
AFL Dyfet  next question.  GA Parik...
AFA Parik  sorry about jumping the gun before. :)  one more time... how will
          2.0 handle
AFA Parik  rez?  e-z to use?  Or would genesys / designmaster be better?
MikeW50    We will be licensing the resource compiler/decompiler from Apple
          and shipping
MikeW50    those with 2.0.  We will also be offering alternative, visual
          methods.  I
MikeW50    will be ready to talk more about those at AppleFest, where we hope
          to be
MikeW50    ready with some exciting anouncements.
AFA Parik  Ok, lastly..you said we could have multiple commands on a command
          line.  HOW?
MikeW50    You also asked about multiple commands on one line back there in
          the
AFA Parik  I can't do a PREFIX /xxx CAT.  done
MikeW50    forrey about write-block.  Those are handled with a semi-colon in
          the
MikeW50    current shell.  For example,
MikeW50    cat;cat
MikeW50    will do two catalogs.
MikeW50    ga
AFA Parik  whoah, just tried it.  You're right!  Thannnnks!!!!!  <ga> (very
          happy)  :)
MikeW50    :)  same thoughts...
AFL Dyfet  Okay, I believe the next question is from Dave Lyons...GA
          Dave...
Dave Lyons Just a quick set-the-record-straight:  Mike mentioned earlier a
          letter where
Dave Lyons Apple II DTS suggested rebooting into P8 to do block-level
          editing.  I don't
Dave Lyons have a copy of that in front of me (and I didn't write it), but I
          assume that
Dave Lyons this was *one* of several alternatives given--another of which is
          to boot
Dave Lyons from a different disk.  If we gave an incomplete answer, I
          apologize.  (done)
MikeW50    Actually, Dave, that wasn't quite what the letter said.  I was
          told flat out
MikeW50    that GS/OS was not designed to handle block writes because it was
          designed
MikeW50    to handle a variety of FSTs.  I was also told flat out that disk
          utilities that
MikeW50    needed to do block writes should use P8.  Maybe I misinterpreted
          the tone, but
MikeW50    it seemed clear that I would get no help on making our existing,
          functional pro
MikeW50    program work inder the new OS.  If I still have the letter, I will
          be happy
MikeW50    to post it.  ga
Dave Lyons It's hard to remember all the details of your previous
          correspondence--but
Dave Lyons GS/OS *is* designed to allow block-level I/O:  just not to volumes
          that
Dave Lyons contain open files.  I believe it was suggested that P8 would be a
          good
Dave Lyons alternative for *ProDOS-specific* block-level stuff.  If there are
          issues
Dave Lyons that are not completely resolved, please bring them up again
          through
Dave Lyons official channels before posting them here.
MikeW50    Dave, I would love to talk with you about it.  I wanted to add
          _more_ disk
MikeW50    utilities in our new OS.  I tried working through official
          chanels, though,
MikeW50    and was firmly rebuffed.  If you would like to reopen them, let's
          do so.
MikeW50    ga
Dave Lyons Please do--the correspondence died down, so I assumed
Dave Lyons that the issues were all resolved!  ga
MikeW50    No, I simply gave up.    ga
AFA Parik  real quick: something I'd like in 2.0 is the ability to change the
          cat output,
AFA Parik  maybe even make cat a seperate utility w/ source?  ga
MikeW50    The plan for the ORCA cat command is as follows:
MikeW50    1.  By default, it will look like it does now.
MikeW50    2.  You will have a single flag to print a list of file names,
          with no
MikeW50    other info.  There will probably be a way to put the list in a
          shell variable
MikeW50    for use in scripts.
Coach101   Wow!
MikeW50    3.  Every piece of information available from s GetFileInfo call
          will be
MikeW50    available with flags.  Since it will not (gernarally) fit on a
          line, it
MikeW50    will be presented in a table format.  You can choose the specific
          info you
MikeW50    want with flags.
MikeW50    ga
AFA Parik  can we change the type / subtype fields w/o using a block
          editor?
AFL Dyfet  Well, I believe we have plenty of room for more questions, folks
          :)...
MikeW50    (Did you want something else?  ;)  )
Dave Lyons Mike, can the catalog be sorted different ways?
MikeW50    Yes -- the filetype command can now change both the file type and
          aux type of
MikeW50    a file.
MikeW50    ga
MikeW50    Sorting... I hadn't planned that, but I will do so if I can figure
          out a
AFL Dyfet  GA Dave...
Dave Lyons -! :)
MikeW50    quick way to do it.  (thinking...)  Sure.  Standard and
          alphabetical OK?  ga
Dave Lyons How 'bout sorting by mod date and filetype, and with multiple
          keys?
Dave Lyons And Create date, too!  I hate it when I download a file w/ an old
          mod date
Dave Lyons and can't find it in the dir listing.
Dave Lyons And Size--basically, you ought to be able to sort by anything that
          can be
Dave Lyons listed.  (ga)
AFL Dyfet  GA Doctor...
MikeW50    Uh... well, the sort isn't hard, but I'm a little woried about the
          syntax
Doctor Why And while your at it allow for ascendng and descending.
MikeW50    to make all of that understandable.  I will give it a try, though.
           Perhaps
MikeW50    that should be an interactive utility, though.  Any thoughts on
          that?  ga
Dave Lyons I have a fairly workable solution to most of that
Dave Lyons in Davex 8...the "-a" option takes a string, which is a sequential
          list of
Dave Lyons keys to sort on, with Uppercase reversing the order.  So  cat -aFm
          means to
Dave Lyons sort backwards by filetype, breaking ties by mod-date.  ga
MikeW50    Seems a bit complicated, but heck, that's what help files are for.
           I'll
MikeW50    give it a shot.   ga
Dave Lyons (a="arrange", by the way)
MikeW50    (And thanks for the suggestion.)   (ga)
AFL Dyfet  And that's also what pipes and a good sort filter are for :)
MikeW50    :)   yup.
AFL Dyfet  And aliases to make it clean :)
MikeW50    Still, with alias, you can make your prefered format the
          default...
MikeW50    ;) great minds think alike
Coach101   Dont break your arms guys :)
AFL Dyfet  Well, do we have any other questions for tonight?
AE PhilM   I would REALLY like to beta test the 2.0 linker.....how about it?
          With TWGS,
AE PhilM   System 5.0 life is great....but could be better (faster)  (hint
          hint)
AE PhilM   (never satisfied)
AE PhilM   done
AFL Dyfet  GA Parik, you have the floor...
MikeW50    Phil, when we are ready for beta testers, I will post a message in
          the Byte
MikeW50    Works inductry connection area.  I would be happy to have you help
          test, but
MikeW50    please remind me then.  If I try to take names before we are
          ready, I will
MikeW50    almost certainly loose some of them.  ga
AFA Parik  is there any way to have everything compile to memory?  no .root
          files, just
AFA Parik  a final exe file.  No fair Phil, you wrote a lot of orca products.
           :-)
AFA Parik  ga
MikeW50    Sure -- use the +m flag.  For example,
MikeW50    run +m myfile.asm
MikeW50    will compile to memory.
AFA Parik  It still keeps a .root file though.
MikeW50    alias run run +m
MikeW50    will make it the default for your system.    ga
MikeW50    No, with run +m, you don't get a .root file with any of te ORCA
          languages.
MikeW50    APW and APW C don't support compile to memory, so they ignore the
          +m flag.
MikeW50    ga
AFA Parik  ok, musta been a old .root file hanging around.  thanks (again
          :)
Coach101   Hi Jim
Coach101   Mike, does #pragma cda work
MikeW50    Yes.  Keep in mind, though, that CDAs are limited to 256 bytes of
          stack space.
MikeW50    You have to be real careful how you write them.    ga
AFL Dyfet  GA Dave...
Dave Lyons CDAs are free to *allocate* stack space, which they can typically
          do if GS/OS
Dave Lyons is around (not under P8, though).  There are a couple tricky
          things--how many
Dave Lyons ppl would like to see some sample code illustrating this?  (I have
          some code
Dave Lyons working, but it could use some cleaning-up.) ga
Doctor Why (I'd like to see it)
AFA Parik  me
MikeW50    Dave, I linked DTS about this one, too.  I believe you answered my
          link.
Dave Lyons Yes, that was me.  I've worked with the issue some more since
          then, but my
MikeW50    I was having trouble getting this to work, and you suggested I try
          a way out.
Dave Lyons answer at the time was correct.  My code may currently be doing
          some more
MikeW50    Unfortunately, there was no garantee that the way would be
          supported in the
Dave Lyons work than it *needs* to--I'm preserving and restoring the whole
          page-1 stack,
Dave Lyons which may be redundant.
MikeW50    future.  Does your sample code represent a portable way to do
          CDAs?  If not,
Coach101   me
MikeW50    I can;t put it into a commercial compiler.
MikeW50    ga
Dave Lyons I believe my current approach will always work; it may be being
          *more* careful
Dave Lyons than it needs to be; feel free to re-link me on it & that'll force
          me to get
Dave Lyons all my facts straight & be able to show a presentable, supported
          method to
Dave Lyons the world.  (ga)
MikeW50    But does it represent a way that is officially supported by Apple?
           I don't
MikeW50    want to get burned by having every CDA written with ORCA/C fail in
          some
MikeW50    future OS.  People would rightly blame me for that.    ga
AFL Dyfet  GA Jim...
Dave Lyons (Let's let Jim M talk:  )
JimMensch  Well, We have always supported CDA's and NDA's making memory
          manager calls
JimMensch  this includes asking for extra memory for stack and direct page
          space
JimMensch  The only drawback is that at CDA time (this does not apply to NDA
          time) no memory compaction
JimMensch  can take place (or at least be relied on since some times CDA's
          are called from interupt and sometimes
JimMensch  not). So, if you want you could put a CDA header that always
          *tries* to allocate some direct page
JimMensch  and stack then calls back the C or pascal routines whith the stack
          swapped in.
MikeW50    I understand, Jim.  The problem isn't GETTING the memory; I was
          able to do
Dave Lyons Mike, please re-open this issue w/ DTS, and I'll show the problem
          we were
JimMensch  We will always support this method. I promise.
MikeW50    that.  The problem is that the page 1 stack, which contains the
          original return
Dave Lyons having to Mensch.  (The problem is having the page-1 stack get
          TROMPED on
Dave Lyons while you're using non-page-1 stack, and this is probably
          resolvable in a
MikeW50    address and presumably other info, is corrupted if I set S>$200.
          ga
Dave Lyons better way than what I have so far.)
JimMensch  Mike, simply copy off that return address if you want... (thats
          what I do...)
Dave Lyons The "clean" solution probably involves the $01/0100 and $01/0101
          stack ptr
MikeW50    Dave, Jim:  I will link you tomorrow.  Thanks for the invite.
          :)
Dave Lyons preservation locations, but I'm not sure.
JimMensch  groovy
JimMensch  ga
AFA Parik  are invisible files hidden?  Is there a I flag in access?
MikeW50    Yes - invisible files are hidden in the 2.0 shell.  There is a
          flag to
MikeW50    see them, though.  (I think it is -a, for a reason I can't go into
          now.)  ga
MikeW50    Oh - and the I bit is shown in the flags, i.e.  DNBWRI.   ga
AFA Parik  ok.  bye
AFL Dyfet  Okay, do we have any more questions for tonight?
AFL Dyfet  Well, I would like to thank Mike Westerfield for comming by
          tonight then, and I
AFL Dyfet  guess we are ready to wrap up tonight's conference :)....I hope
          everyone had
AFL Dyfet  fun...
AFA Gary J Yup!  :)
AFA Gary J (Thanks for coming, Mike)
Coach101   Thanks for the information and lively discussion(s) Mike.
ShrinkIt   Can I ask a question quick before y'all scatter? (addressed to Jim
          M)
MikeW50    Thanks for having me.  Next time, Dave and I will play catch with
          rotten
MikeW50    eggs instead of tomatoes.  Right , Dave?   ;)
AFA Gary J :)
JimMensch  sure
Dave Lyons :)  Right.
Coach101   :)
ShrinkIt   Is there any way to position something on the 640 mode screen so
          that it will
ShrinkIt   be scrolled quicker than usual?
ShrinkIt   I'm using a list control that has a custom draw routine and it's
          incredibly
ShrinkIt   slow at scrolling... I remember (vaguely) that you could byte or
          word align
JimMensch  sure make sure the rectangle you are scrolling starts on a
          multiple of 4 pixels and always scroll
MikeW50    (As always, if you think of more ?s for me, you can find me in the
          Byte Works
JimMensch  a multiple of 4 pixels...
ShrinkIt   the edges of the box and the scroll routine would go faster?
MikeW50    industry connection area.)
MikeW50    See 'ya 'round.
JimMensch  get that?
ShrinkIt   Jim, is that noticably faster?  (yeah, got it)
Dave Lyons If the scrolling is vertical, it doesn't matter if it's a multiple
          of 4 or
Dave Lyons not, right?
A2GS       Could use the fast move routine via shadowing and the stack.
ShrinkIt   That's the scrolling I'm talking about... up 'n down...
ShrinkIt   This is in QD II, albert... :-) (a2gs)
JimMensch  if ya does it right then horizontal scrolling will be faster
Dave Lyons Mensch: does aligning by words (8 pixels in 640 mode) ever
          increase
A2GS       Using the tools?  I thought you were using custom routines.
JimMensch  If its vertical scrolling your doing then it will not be much
          faster
Dave Lyons performance over aligning by bytes?  (currently)
ShrinkIt   (Ie, I have a box with stuff in it... a list)  --- is there ANY
          EASY way to
ShrinkIt   get it to go quicker?
JimMensch  But at that time you can also set bit 15 of the master SCB when
          you start quickdraw and then
JimMensch  you should scroll about 20% faster
JimMensch  Dave, nope.
ShrinkIt   Let me amend that to any  QUICK way, programming wise.  I don't
          care if it's
Dave Lyons (thanks)
ShrinkIt   hard.. I can handle it..
JimMensch  sure, set bit 15 of the master SCB on QD startup...
SteveSand  ShrinkIt.. I had the same problem... I solved it by (re)drawing
          only what was
A2GS       Oh, a tough guy :)
SteveSand  on the screen.
ShrinkIt   Jim, I'm already using bit 15 and the fastport bit.  It's still
          way slow.
JimMensch  using the list manager???
Dave Lyons What are you drawing, Andy?
Dave Lyons (Text, etc/)
ShrinkIt   yes, using the list manager or tweaking QD2 somehow...
JimMensch  if using the list manager its always gonna be slow
ShrinkIt   text, dave... just a line of text which shows the current entry in
          an archive,
JimMensch  the list manager is not known for its lightning speed
ShrinkIt   how large it is (in bytes), it's % of original size, and it's
          filetype.
Dave Lyons Mensch, I believe he's talking about Standard File, which uses the
          List
Dave Lyons Manager.
ShrinkIt   The list manager is driven by QDII, no, Jim?
JimMensch  Also, if you are drawing text, then also make sure that your
          member height is at least 1 pixel larger
JimMensch  than it needs to be
ShrinkIt   No, dave, I open a list on the screen with the contents of an
          archive .. like
JimMensch  The list manager uses quickdraw.
ShrinkIt   what stuffit does...
ShrinkIt   SOOOooooo... is there any way to get the List manager to go faster
          by
JimMensch  But, when it sets up its clipping area to redraw the new text that
          scrolls in, it will sometimes be to
JimMensch  too small to use fastfont for printing.
ShrinkIt   (quickly) patching quickdraw to scorll UP and DOWN faster?
ShrinkIt   (listening... scribbling...)
JimMensch  Shrinkit, the scrollrect is not whats slowing you down, its the
          member redraw...
Dave Lyons Andy, do you know whether most of the time is taken by scrolling,
          by
Dave Lyons drawing your new line, or something else?
JimMensch  and the member redraw routine calls drawstring, which is probably
          clipped tight to the height of the
ShrinkIt   Dave -- pretty even split.  A ton of time is spent by scrolling,
          it's horribly
Dave Lyons You might try keeping cached bitmap images of the lines around.
ShrinkIt   slow, although the text draw isn't fast, either...
JimMensch  line. which will cause fastfont to always think that it needs to
          draw the slow way.
Dave Lyons Is the scrolling done with a ScrollRect call, or what?  I don't
          understand
Dave Lyons why it should be slow.
JimMensch  yes, but the scrolling time would be fine if the redraw wasn't
          happening....
ShrinkIt   I don't know how the list manager does its scrolling... but I
          could cache the
JimMensch  scrolling is done with a scrollrect, its not slow, its the
          redrawing of the members...
ShrinkIt   bitmaps on the stuff... but the scrolling would still suck.
JimMensch  the other way to do it is a custom drawing routine that reblits
          the member text instead of calling
JimMensch  drawstring
Dave Lyons (I wish I'd said that. :-)
JimMensch  Shrinkit, scrollrect works fine everywhere else...
ShrinkIt   I didn't say it didn't work fine (name's andy) -- it just works
          slowly, that's
ShrinkIt   all... :-)
SteveSand  I think Coach101 gave me the idea of using GetContentOrigin to get
          the
JimMensch  :) Not for me... it works pretty fast, bout how wide is your
          list?
ShrinkIt   about 320 pixels in 640 mode....
SteveSand  position of the scroll bar and then just redrawing what would show
          on the scree
JimMensch  hmmm and how tall is the list
AE PhilM   Andy, you could also write a custom scroll rect....have the rect
          byte aligned
SteveSand  n... It speeded mine up by LOTS!
AE PhilM   on both sides then it is a simple block move...you could optimize
          that also
Dave Lyons (Steve, I believe Andy's already redrawing only the line that
          needs to be
AE PhilM   using lda sta combos..
Dave Lyons redrawn.)
ShrinkIt   (folks, I'm using the list manager...)
AE PhilM   You would only have to patch scroll rect for the time the list is
          up.
A2GS       Going back to my original suggestion of shadowing and the
          stack....:-)
JimMensch  how tall is the list???
Coach101   How slow is slow Andy?
ShrinkIt   12 members... 122 pixels..
A2GS       But I guess Andy is certain he's using the List Manager.
ShrinkIt   there's about a 1/2 to 3/4 second pause between stuff scrolled
          into the view
JimMensch  Well tell ya what andy, let me give a list that size a try and see
          how it comes out, I will let ya
JimMensch  know next week.
JimMensch  'bout 100 members an ok test?
ShrinkIt   (make sure you print stuff all the way across and do something
          significant
ShrinkIt   printing wise to make it somewhat near what I'm doing...)
ShrinkIt   :-)
Dave Lyons Andy, do you know how many times your list-draw routine is getting
          called
JimMensch  ok.
Dave Lyons for each scroll?  Should be 1, but if it's more that might explain
          some of
Dave Lyons the delay.
ShrinkIt   (list draw is getting called once every time the thing does
          something... ummm
ShrinkIt   why would it be getting called twice?)
Dave Lyons I was just trying to eliminate the possibility that the List
          Manager is
JimMensch  well, I am off to try this out.. see ya all next week
Dave Lyons making superflous calls to ask you to draw things that are getting
          clipped
A2GS       Bye Jim
ShrinkIt   Jim -- 100 members is fine... just do something significant time
          wise in the
ShrinkIt   itemDraw routine...
Dave Lyons completely out of view.  I assume it's not, but I wondered if
          you'd checked
Dave Lyons (like by making your list-draw routine SysBeep once).
ShrinkIt   No, dave, hadn't checked... just thought I'd assume that It was
          getting called
ShrinkIt   once... I'll check that...
Dave Lyons ok
AE PhilM   Shrinkit....we have a logic analyzer with performance analysis
          software...we
Coach101   Andy, If I have to do something significant in the line draw, why
          not
AE PhilM   could look at it with that and see exactly where the time is being
          spent.
Coach101   look at what I am doing to draw instead of looking at list
          manager?
ShrinkIt   phil -- I don't think it's THAT important.  I'd only use a logic
          analyzer on
ShrinkIt   live or die type code... maybe the packing algorithms... :-)
AE PhilM   Well it's pretty easy to use and setup...if you like just send a
          disk to John
AE PhilM   Stephens or myself and we'll be happy to look at it.
A2GS       Phil, if you've got an extra analyzer w/software I'll be happy to
          take it off
A2GS       your hands :)
ShrinkIt   (Phil, it looks pretty good using a TWGS, though.. :-)
AE PhilM   :)
AE PhilM   Really, I'd be interested in finding out myself where the time
          split is..
AE PhilM   between scroll-rect or the itemdraw routin.
Coach101   Thanks for an entertaining and provocative evening folks.....
AE PhilM   (or elsewhere)  ya never know....1/2 second seem like a long time
          to me
ShrinkIt   I'd be willing to think that it's about 3/4 itemdraw and 1/4
          scroll...
Coach101   See you all next week....