

     |||||| |||||| ||  || |||||| ||||||
     ||     ||     ||| ||   ||   ||
     || ||| ||||   ||||||   ||   ||||               Your
     ||  || ||     || |||   ||   ||
     |||||| |||||| ||  || |||||| ||||||             GEnieLamp Computing

     ||    |||||| ||    || ||||||                   RoundTable
     ||    ||  || |||  ||| ||  ||
     ||    |||||| |||||||| ||||||                   RESOURCE!
     ||    ||  || || || || ||
     ||||| ||  || ||    || ||


                     ~ WELCOME TO GENIELAMP A2Pro! ~
                       """""""""""""""""""""""""""
                ~ Information Overload ~ ADB Questions ~
            ~ Aztec C For ProDOS? ~ ORCA/Debugger in GNO/ME ~
                 ~ A Quicker Cosine ~ Shell Utilities ~
                   ~ New Toolbox Reference Manuals? ~
                  ~ HOT NEWS, HOT FILES, HOT MESSAGES ~

 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
  GEnieLamp A2Pro      ~ A T/TalkNET Publication ~       Vol.4, Issue 26
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 Publisher................................................John F. Peters
  Editor...................................................Tim Buchheim
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
           ~ GEnieLamp IBM ~ GEnieLamp ST ~ GEnieLamp PowerPC ~
         ~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~
          ~ GEnieLamp Windows ~ GEnieLamp A2 ~ LiveWire (ASCII) ~ 
             ~ Member Of The Digital Publishing Association ~
  GE Mail: GENIELAMP                       Internet: genielamp@genie.com
 ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

          >>> WHAT'S HAPPENING IN THE APPLE A2Pro ROUNDTABLE? <<<
          """""""""""""""""""""""""""""""""""""""""""""""""""""""
                              ~ May 1, 1995 ~

 FROM MY DESKTOP ......... [FRM]        HEY MISTER POSTMAN ...... [HEY]
  Notes From The Editor.                 Is That A Letter For Me?

 A2PRO ROUNDTABLE STAFF .. [DIR]        DEVELOPERS CORNER ....... [DEV]
  Directory of A2Pro Staff.              News From Online Developers.

 LIBRARY BIT BONANZA ..... [LIB]        RTC WATCH ............... [RTC]
  HOT Files You Can Download.            Real Time Information.
  
                       LOG OFF ................. [PUB]
                        GEnieLamp information.

[IDX]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

READING GEnieLamp   GEnieLamp  has  incorporated  a  unique   indexing
"""""""""""""""""   system to help make  reading the  magazine easier.
To  utilize this system, load GEnieLamp into any ASCII  word processor
or text  editor.  In the index  you will find the  following  example:

                   HUMOR ONLINE ............ [HUM]
                    [*]GEnie Fun & Games.

   To read this  article, set your  find or search command to [HUM].  If
you want to scan all of the articles, search for [EOA].  [EOF] will take
you to  the last page,  whereas [IDX]  will bring you back to the index.

MESSAGE INFO   To make it easy for you to respond to messages re-printed
""""""""""""   here in GEnieLamp, you will find all the information you
need immediately following the message.  For example:

                    (SMITH, CAT6, TOP1, MSG:58/M530)
        _____________|   _____|__  _|___    |____ |_____________
       |Name of sender   CATegory  TOPic    Msg.   Page number|

    In this  example, to  respond to  Smith's  message, log  on to  page
530 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1.

    A message number that is surrounded by brackets indicates  that this
message  is a "target" message and is  referring  to  a "chain"  of  two
or more  messages that are following the same topic.  For example: {58}.

ABOUT GEnie   GEnie's monthly fee is $8.95 which gives you up to four hours
"""""""""""   of non-prime time access to most GEnie services, such as
 software downloads, bulletin boards, GE Mail, an Internet gateway,
 multi-player games and chat lines.  GEnie's non-prime time connect rate is
 $3.00 an hour.  To sign up for GEnie, just follow these simple steps.

1.  Set your communications software to half duplex (local echo) 8 bits, no
 parity and 1 stop bit, at 300, 1200 or 2400 baud.

2.  Call (with modem) 1-800-638-8369.  Upon connection type HHH.

3.  Wait for the U#= prompt.  Type:  JOINGENIE and hit RETURN.  When you
 get the prompt asking for the signup/offer code, type: DSD524  and hit
 RETURN.

4.  Have a major credit card ready, as the system will prompt you for your
 information.  If you need more information, call GEnie's Customer Service
 department at 1-800-638-9636.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


[EOA]
[FRM]//////////////////////////////
                 FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""
by Tim Buchheim
 [A2PRO.GELAMP]


     o TOP OF THE PAGE



                          >>> TOP OF THE PAGE <<<
                          """""""""""""""""""""""

INFORMATION OVERLOAD   For the past few months, I've been suffering
""""""""""""""""""""   information overload.  The bad part is that it has
made me slow to complete important things like homework, chores, and most importantly, GEnieLamp.  :(   On the other hand, I have hopefully been
absorbing some of this information thrown at me, and maybe I'll be able to
use it.  For example, GEnie's new Internet access will allow us GEnie users (including myself) to keep up with newsgroups, such as the programming-
oriented "comp.sys.apple2.programmers", or download the newest programs
from FTP sites like "grind.isca.uiowa.edu"!

Wait!  Internet access?  From GEnie?

That's right!  As of April 11, GEnie users now have expanded Internet
access.  For several years, GEnie has provided Internet email at no extra
cost, but now we have access to Telnet, FTP, Gopher, Lynx, as well as a
few lesser-known utilities, such as Finger.  The only two things missing
are Usenet newsgroups (which for now can be read in lynx, but GEnie is
currently working on an interface for offline readers as well as an online
interface) and SLIP/PPP access (for graphical web browsers, such as
Netscape and Mosaic).  Of course, SLIP/PPP access is not useful for Apple
II users until someone out there writes the software to use it --  so start coding!! :)

Back on GEnie, in the A2Pro Bulletin Board, there has been quite a bit of
activity recently.  Much of it has been in Category 8, Topic 5, entitled
"Using the GS Device Drivers", where a discussion is taking place
concerning the possibility of writing a driver to mount virtual disks from
disk images stored on hard disk.

Several people asked me why I left this out of last month's issue.  Well,
there are two answers, both of which have to do with the fact that these
messages, when loaded into WordWorks Pro, are over 150 kilobytes in size.
First of all, it would take days just to edit all these messages to put
them into the clean, logical, uncluttered [*] format used in GEnieLamp.
Second, GEnieLamp A2Pro averages about 60 kilobytes in length.  If I
had included this particular discussion, it would be about 200 kilobytes.
I'm sure many of you out there wouldn't want to take the time to download
such a huge file (especially if you're using a 2400 baud modem!)  So
instead of repeating ALL of it here, I'll just direct you towards
Category 8, Topic 5 of A2Pro's BB.  It's worth reading, and hopefully at
least one of the people working on this project will come up with a
usable program.  One or two of them already have disk image mounters
working..  let's hope that one of them is finished and released to the
public so we can all have such a cool program :)

Enjoy this issue, and I hope to see you around..  on GEnie, or out there
on the 'net!


                                                Tim Buchheim
                                               GEnieLamp A2Pro


    [*]   Well, at least I hope you find it clean, logical, and
          uncluttered. :)   If you don't, please tell me... I'd
          like GEnieLamp A2Pro to be as easy to read as possible.




                              [*][*][*]

    Do you have something  to say about  GEnieLamp A2Pro?  Please
    post  any questions or  comments you  may have in Category 1,
    Topic 15 in A2Pro's BB (m530;1).  Or, feel free to talk to me
    (A2PRO.GELAMP) anytime you see  me in a Real Time Conference.

    Readers out there on the Internet:   feel free to email me at
    a2pro.gelamp@genie.com     When writing, please tell me where
    you got your copy of  GEnieLamp,  if it wasn't on GEnie.  I'm
    always interested to see how many places GEnieLamp ends up :)


                              [*][*][*]




[EOA]
[DIR]//////////////////////////////
          A2PRO ROUNDTABLE STAFF /
/////////////////////////////////

                          ______________________________________________

                           APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE
       _____  ______      ______________________________________________
      /_____|/______\
     /__/|__|  ___|__|         Head Sysop: Hangtime         (HANGTIME)  
    /__/_|__| /_____/         Your Sysops: Greg Da Costa    (A2PRO.GREG)
   /________|/__/       __ __ __           Todd P. Whitesel (A2PRO.TODDPW)
  /__/   |__|__/______ /_//_// /           Nathaniel Sloan  (A2PRO.HELP)
 /__/    |__|________//  / \/_/            Tim Buchheim     (A2PRO.GELAMP)


                                 [*][*][*]



[EOA]
[HEY]//////////////////////////////
              HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Tim Buchheim
 [A2PRO.GELAMP]


     o   BULLETIN BOARD HOT SPOTS

           o   WHAT'S NEW
           
                 o   PROGRAMMER'S TIPS

                       o   MESSAGE SPOTLIGHT                             




                      >>> BULLETIN BOARD HOT SPOTS <<<
                      """"""""""""""""""""""""""""""""

 [*]  CAT1,   TOP16, MSG{59}..........A2Pro Contests!
 [*]  CAT4,   TOP12, MSG{31}..........C and/or C++ for the Apple //e
 [*]  CAT8,   TOP5,  MSG{119}.........Using the GS Device Drivers
 [*]  CAT11,  TOP8,  MSG{64}..........Programming Algorithms and Structures
 [*]  CAT15,  TOP9,  MSG{49}..........ADB Tool Set




                            >>> WHAT'S NEW <<<
                            """"""""""""""""""

A NEW CONTEST!   Dear Apple IIgs User,
""""""""""""""
    Recently, while working on the new Apple IIgs front end for GEnie, our
Front End Project Manager had a disturbing thought.  "Wait a second!  We
don't yet have a name for my masterpiece of Apple IIgs programming, this
GEnie front end!"  Immediately, he stopped eating his Doritos and drinking
his Genny to think of a clever name for his project.
    Naturally, this disturbed us to no end; after all, if our PM isn't
eating Doritos nor drinking Genny, chances are that he's not programming
either.  And, with our projected release date barely a month away, we knew
we had to do something.
    Then, A2Pro Assistant SysOp Tim Buchheim (A2PRO.GELAMP) had an idea.
"I know!" he virtually shouted.  "Let's have a contest!  We can let GEnie
members suggest names for the program, and then everyone will get a vote.
That way, -everyone- gets a chance to name the front end, and our PM can go
back to what he does best; that is, finish the software!"
    Tim's suggestion has been soundly applauded... and it is in this spirit
that A2Pro presents...

               The "Name the Apple IIgs Front End" Contest!

    That's right!  From now until May 15th, A2Pro will be accepting
applications for the front end's name.  Submit your ideas in EMail to
A2PRO.HELP.  On May 15th, a complete list will be posted in alphabetical
order.  Voting will ensue, and will last until May 31st.  The winners will
be announced along with the front end on June 1st (or thereabouts).

    The winner shall be the name which wins.

    OK, well, seriously.  Whoever gets the most votes (one vote per person
or account only, please!) wins eternal fame, as their front end name
suggestion will be used on the product.  In addition, they will receive a
US$9.00 GEnie usage credit.  Also, two runners-up will be awarded credits
of US$6.00 each.  These three users will be listed in the front end's "Read
Me" file as well.

    So, get those entries sent to A2PRO.HELP as soon as possible!  Also,
watch the A2 and A2Pro bulletin boards on May 15th to learn what choices
are available!

                    (A2PRO.HELP, CAT1, TOP16, MSG:59/M530)




                         >>> PROGRAMMER'S TIPS <<<
                         """""""""""""""""""""""""


A QUICKER COSINE   A person with whom I've had some e-mail discussions has
""""""""""""""""   come up with a fast integer cosine function in Pascal.
If you have an inclination for numbers, this is quite a boon! I'll let him
describe what he's doing, why he's doing it, and put the code with some of
the output at the end. You can reach this amazing II person, Ross A.
Falconer, at ROSSNE@aol.com.

Michael



    --------------

I came up with the idea for the fast integer cosine function after getting
excited about doing a 3D CAD program for the GS.....
I was originally going to approximate the transcendentals with
fast forier series, but after I tried it I only got a 300% speed increase,
being forced to use real numbers. I started up Modulae from FTA and stared
at the screen for about an hour. I was wishing I knew what they knew about
fast table using routines, but then I decided I could do the Forier series
with integers, and about 40 hours later I had the function! It was very
hard to keep the accuracy over the entire range of the function because of
being forced to use integer division (the div operator). However, the 25
fold speed increase was promising, so I kept at it. Now that I understand
what is involved, I think all of the transcendentals could be approximated
using integer forier series. Also, another 4 or 5 digits of accuracy should
only carry about a 50% speed penalty-not too bad.

It's accurate to less than 1/50 degree in the first quadrant (actually
between 0 & pi/4) and is better than 25 times as fast as a vanilla
Cos(real) function. I think this is the best trade-off between the accuracy
of real numbers and the speed of integers. I use longints for my coordinate
system so it is relatively easy to implement this formula. Fixed math would
make it very simple and requires less memory?. I am interested in how this
compares to the speed of a lookup table. I am sure this will be easier to
implement than a lookup table accurate to 1/50 of a degree? Comparing
integer addition on a 7 Mhz TWGS in ORCA Pascal 2.1 to integer addition in
Visual Basic on a DX4/75, the IIGS is about 150% faster. Comparing integer
cosines on the IIGS to real cosines on the 486DX4/75, the 486 is about 100
times as fast.

I am interested in how fast this method is compared to using tables, all
other things being equal. How many times the current 1000 cosines per
second on TWGS @ 7 Mhz do you think is possible in assembly, etc? If you
could use a suite of integer transcendentals and the technique throws you,
I could be persuaded to finish them. Feel free to post my source on genie,
I hope to put to use the experience of others myself before long.   :)



{ORCA/Pascal 2.1       }
{Copyright 1987,1988,1991,1993,1994, Byte Works, Inc.   }

{Integer cosine formula by Ross A. Falconer      April 12, 1995  }
{Advanced Design Services      }
{800-859-7568        }

{This formula increases the speed of cosine calculation by 25 times. }
{Calculates 1000 cosines per second instead of 40 on a 7 mhz TWGS! }
{Accurate within 1/50 of 1 degree between 0 < c < pi/4.   }
{Time it yourself!       }

program SpeedCos(output);

const
 pi = 3.1415927;

var
  counter : integer;
 rad : real;
 degrees : real;
 d : real;
 c : longint;
 e : longint;
 k : longint;
 delta : real;
 degree : real;
 maxdeg : real;


begin
writeln('Start.');

maxdeg := 0.0;

for counter := 1 to 79 do begin
 rad := counter / 100;
 degrees := rad * 180 / 3.1415927;
 d := cos(rad);
 c := counter * 10;
 k := (c * c) div 20;
 e := 100000 -  k + k div 200 * k div 3000;
 delta := (e/100000 - d);
 degree := delta * 180 / pi;
 if abs(degree) > maxdeg then
         maxdeg := abs(degree);

 writeln('     radians: ',rad:7:5);
 writeln('     degrees: ',degrees:5:3);
 writeln('   cos(real): ',d:7:5);
 writeln('cos(integer): ',e:7);
 writeln('       delta: ',delta:6:5);
 writeln('      degree: ',degree:6:5);
 writeln;
end;
writeln;
writeln('maximum error in degrees: ', maxdeg:6:5);
writeln('Done!');
writeln;
writeln;
end.



Taken directly from the shell:


Start.
     radians: 0.01000
     degrees: 0.573
   cos(real): 0.99995
cos(integer):   99995
       delta: 0.00000
      degree: 0.00000

     radians: 0.02000
     degrees: 1.146
   cos(real): 0.99980
cos(integer):   99980
       delta: -0.00000
      degree: -0.00000

     radians: 0.03000
     degrees: 1.719
   cos(real): 0.99955
cos(integer):   99955
       delta: -0.00000
      degree: -0.00000

 .
 .
 .

     radians: 0.77000
     degrees: 44.118
   cos(real): 0.71791
cos(integer):   71817
       delta: 0.00026
      degree: 0.01486

     radians: 0.78000
     degrees: 44.691
   cos(real): 0.71091
cos(integer):   71121
       delta: 0.00030
      degree: 0.01699

     radians: 0.79000
     degrees: 45.264
   cos(real): 0.70385
cos(integer):   70417
       delta: 0.00032
      degree: 0.01860


maximum error in degrees: 0.01860
Done!

                    (ANIMASIA, CAT11, TOP8, MSG:64/M530)



>>>>>   One thing you can do to speed it up without going to assembly is to 
"""""   replace the standard ORCA library functions for things like
division with faster versions of the same algorithm (these are usually
larger, you don't get things for free...), either by linking them in
explicitly so the libraries are not searched for the function, or by
patching the system libraries (I don't really recommend this latter option,
I prefer my libs to be unspoiled).

Todd Whitesel

                    (A2PRO.TODDPW, CAT11, TOP8, MSG:65/M530)



>>>>>   I'm impressed that he came up with this COS function on his own,
"""""   but hitting the books would have saved him a lot of time and given
better results.  A Forrier series expansion does not give the smallest
error over a fixed range of the function for a fixed number of terms.
Instead, polynomials with cooefficeints that differ very slightly from
Forrier series coefficients are used.  Also, it's generally best to use a
ratio of polynomials for very accurate results.  (You can get the accuracy
without using a ratio, but you get the same accuracy with fewer
calculations using the ratio.)

For details, see:

  Computer Approximations
  Hart, et. al.
  Robert E. Krieger Publishing Co.
  1978

This one gives precomputed tables.  You pick an accuracy, and then look up
the appropriate coeffiecients and formulas.

  Software Manual for the Elementary Functions
  Cody & Waite
  Prentice-Hall
  1980

This one is more readable, but doesn't give you the tables.

Mike Westerfield

                    (BYTEWORKS, CAT11, TOP8, MSG:66/M530)



<<<<<   I'm impressed that he came up with this COS function on his own, but
"""""   hitting the books would have saved him a lot of time and given
better results.

Probably. What I think he's trying to do is go for speed with moderate
accuracy. (Fixed-point math with 16 bits limits you to only 4 decimal
places of accuracy.) Still, I'm going to forward your reply. I may even
check out your sources myself :)

Michael

                    (ANIMASIA, CAT11, TOP8, MSG:67/M530)



>>>>>   > What I think he's trying to do is go for speed with moderate
"""""   > accuracy.

Right.  And those tables I mentioned recognize that possibility.  For the
COS function alone, the tables list 38 different polinomials and algorithm
alternatives, ranging from 1st order polynomials to 10th order, and from an
accuracy of 2.39 digits to 23.06 digits.  They even discuss the relative
merrits of the various algorithms for standard binary floating point
implementations (like SANE or the 68882), fixed point machines (like the
case we're discussing) and decimal machines (think Cobol or a BCD math
machine).  About the only problem I've had with them is I once needed more
accuracy than the tables deliver.  :)

FWIW, these books are the ones I used to develop the floating point package
in the 8 bit ORCA/M.  They are at least twice as fast as SANE, and with the
exception of a few cases more or less in league with the Pentium chip's
problems, they are as accurate as SANE.  (Many of the subroutines are far
more than twice as fast as SANE, too.  That's the smallest difference I've
seen.)  I'd highly recommend the pair of books to anyone who's interested
in the implementation of floating-point or fixed point functions.

One more interesting aside:  Very few languages deal with the issue of
functions other than the standard trig and log functions and their
relatives.  A few might deal with hyperbolic trig functions, but that's
about it.  These books go further, showing how to create fast, accurate
functions for the likes of Bessel functions and eliptic integrals.  Now who
could live without those?

Mike Westerfield

                    (BYTEWORKS, CAT11, TOP8, MSG:68/M530)



>>>>>   Hey, Mike... cool sounding books.  I printed out your note and will
"""""   dialup the St. Louis library after I get done with GEnie stuff
tonight.

JABouchard  "Poindexter"
Delivered by: CoPilot v2.55
 
                    (J.BOUCHARD3, CAT11, TOP8, MSG:69/M530)




                         >>> MESSAGE SPOTLIGHT <<<
                         """""""""""""""""""""""""


AZTEC C FOR ProDOS?   I recently acquired Manx's Aztec C v1.05C. Talk about
"""""""""""""""""""   getting back to basics! It seems to be a fine K&R
implementation for the 8-bit // (I love being able to mix p-code and native
code), but it's, yes, DOS 3.3.... Can anyone confirm if the ProDOS version
ever made it out? And if anyone would have copies that they could upgrade
me?

Michael

                    (ANIMASIA, CAT4, TOP12, MSG:31/M530)



>>>>>   Yes, there was a ProDOS version - I've used it.  Unfortunately, it
"""""   doesn't seem to work reliably on a IIgs, although the compiled
programs it generates _seem_ to work OK.  I wasn't able to completely track
down the incompatibility, but something would crash while making ProDOS
calls.

I can't help you with the upgrade, though -- it was just a loaner.

Mike

                    (M.HACKETT, CAT4, TOP12, MSG:32/M530)

 

>>>>>  There was a Manx Aztec C for ProDOS. It was advertised in an old
"""""  Nibble magazine from Oct 88. I couldn't figure out why it wasn't
already in my software library, until noticing the $299 price tag. That is
the dos 3.3 and ProDOS version. The DOS 3.3 version listed for $199. Never
actually seen either, but it looks like an ad for a real product. No
version numbers were listed. Your quest has a destination.

- James - [IMAGE]

                    (J.GRAY38, CAT4, TOP12, MSG:33/M530)



>>>>>   No one is going to be able to upgrade you--legally anyway--except
"""""   the copyright owner.  See if you can contact them.  The last time
someone tried, which was admitedly a while ago, they were still able to get
tech support, and the compiler was still for sale.  If you do try, let us
know what you find out.

Mike Westerfield

                    (BYTEWORKS, CAT4, TOP12, MSG:34/M530)


 
<<<<<   >>>M.HACKETT [Michael]
"""""
> Yes, there was a ProDOS version - I've used it.  Unfortunately, it
> doesn't seem to work reliably on a IIgs, although the compiled programs
> it generates _seem_ to work OK.  I wasn't able to completely track down
> the incompatibility, but something would crash while making ProDOS calls.

Not work reliably on a GS? :(  Can you elaborate? For my purposes, it would
have to. I couldn't see using ved for anything other than cruel and unusual
punishment.


>>>J.GRAY38 [ James ]

> I couldn't figure out why it wasn't already in my
> software library, until noticing the $299 price tag.

Yeah, go figure :)


>>>BYTEWORKS

> No one is going to be able to upgeade you--legally anyway--except the
> copyright owner.

Reality check! Thanks, Mike.

> See if you can contact them.  The last time someone tried,
> which was admitedly a while ago, they were still able to get tech
> support, and the compiler was still for sale.  If you do try, let us know
> what you find out.

Sure will. This ought to be interesting :)

Michael

                    (ANIMASIA, CAT4, TOP12, MSG:35/M530)



>>>>>   >Not work reliably on a GS? :(  Can you elaborate? For my purposes,
"""""   >it would have to.  I couldn't see using ved for anything other
        >than cruel and unusual punishment.

OK, it crashes!  That's about all I can say.  I believe it was either the
compiler or assembler (the compiler generates assembly source) that was the
main culprit, but I can't remember for sure.  As I said, I tried once to
track down the compiler crashing problem, and found that it was dying
inside of ProDOS on a Write call, I believe.  I gave up at that point
figuring it was less work to just fire up the old IIe.

Mike

                    (M.HACKETT, CAT4, TOP12, MSG:36/M530)



>>>>>   Sounds suspiciously like the problem I was having that caused me to
"""""   never release GenericTerm 3.4...  it was dying inside ProDOS during
a Read call...  never did find out why...  I gave up on that program a few
years ago because of it.

 Dave

                    (JUST.DAVE, CAT4, TOP12, MSG:37/M530)




ADB QUESTIONS   three questions:  (I know people can answer these, they're
"""""""""""""   not too difficult:)

  1)  How can I determine whether the keyboard at a certain address is
      an extended keyboard or not?  (I'll be calling this after moving
      keyboards to different addresses.. I'm experimenting with some weird
      stuff :)

  2)  How do I set the caps/num/scroll lock lights on an extended keyboard?

  3)  Do the partially documented commands in TBR1 actually do anything,
      or are they still "For future use"? :)  (Note: there is nothing
      in TBR3, system 6 refs, or tech notes about this..  none of these
      are anything I'd want to use (I'm just dealing with keyboards in the
      program I'm writing, and other than the two questions above dealing
      with extended keyboards, I know how to do everything I want to do:)
      But I would like to know if these do anything.. just out of
      curiosity :)

                    (A2PRO.GELAMP, CAT15, TOP9, MSG:49/M530)



                               [*][*][*]


    While on GEnie,  do  you spend most of your time  downloading files?
If so, you may be missing out some excellent information in the Bulletin
Board  area.   The messages  listed above  only scratch  the surface  of
what's available and waiting for you in the bulletin board area.

    If you are serious about your Apple II, the GEnieLamp staff strongly
urge  you to  give the  bulletin  board area a try.  There are literally
thousands of messages posted from people like you from all over the world.


                               [*][*][*]



[EOA]
[DEV]//////////////////////////////
              DEVELOPER'S CORNER /
/////////////////////////////////
News From The A2Pro Online Developers
"""""""""""""""""""""""""""""""""""""
By Tim Buchheim
 [A2PRO.GELAMP]



     o   ONLINE SUPPORT IN A2PRO

           o   USING ORCA/DEBUGGER IN GNO/ME

                 o   MAKING HEADS OR TAILS OF SHELL UTILITIES

                       o   NEW EDITION OF THE TOOLBOX REFERENCE MANUALS?



                      >>> ONLINE SUPPORT IN A2PRO <<<
                      """""""""""""""""""""""""""""""

     CAT  TOP  COMPANY
     ===  ===  =======
     29   INDEPENDENT DEVELOPERS ONLINE
           2   DYA/DigiSoft Innovations Online
           8   Simplexity Software Online
          14   Quality Computers Q-LABS Online
          20   DreamWorld Software Online
          26   METAL/FV Software Online
          32   Kitchen Sink Software Online
          38   EdIt-16 (Bill Tudor)

     30        PROCYON, INC.
     31        SOFTDISK PUBLISHING
     33        GS+ MAGAZINE
     34        JEM SOFTWARE
     35        PRODEV, INC.
     36        THE BYTE WORKS

     Each month this column feature highlights and news from various
developers who provide support via A2Pro.





                >>> USING ORCA/DEBUGGER IN GNO/ME <<<
                """""""""""""""""""""""""""""""""""""


DEBUGGER BLUES   Does the ORCA Debugger work with GNO/ME?  Whenever I set
""""""""""""""   breaks and then compile in order to use the Debugger, GNO
locks up or crashes into the monitor when I launch the compiled exe.  I am
using Prizm to set the hard breaks in ORCA-C 2.0.3 source, if that matters.
The program does work with the Debugger when run from the ORCA text shell.

If ORCA Debugger doesn't work with GNO, is there a source level debugger
that does? (I'm having enough trouble with C using a debugger and 
would hate to have to go without one! :)

Eric Heim

                    (E.HEIM3, CAT30, TOP2, MSG:163/M530)



>>>>>  Eric,
"""""
> Does the ORCA Debugger work with GNO/ME?

No.

> If ORCA Debugger doesn't work with GNO, is there a source level debugger
> that does?

Yes -- Splat!  (shameless plug :-) )  GS+ sells it now.

Mike

                    (M.HACKETT, CAT30, TOP2, MSG:164/M530)


 
>>>>>   >> Does the ORCA Debugger work with GNO/ME?
"""""
> No.

What's the problem?  When are you:

  a. Going to fix GNO/ME, or
  b. Bother to let me know that there is a bug in ORCA/Debugger?

Mike Westerfield

                    (BYTEWORKS, CAT30, TOP2, MSG:165/M530)
 


>>>>>   Eric,
"""""
It is possible to use ORCA/Debugger under GNO.  The trick is to install
ORCA/Debugger _after_ entering GNO by using IR.  However, ORCA/Debugger's I/O
competes with GNO's so its hard to use.  Splat! works much better with GNO. 
(But Splat! doesn't like the exit() or fork() functions.  Isn't it about time
for an update, Mike? :)

                    (S.REEVES2, CAT30, TOP2, MSG:166/M530)



>>>>>   > ORCA/Debugger's I/O competes with GNO's so its hard to use...
"""""   >Isn't it about time for an update, Mike?

Yes.  ORCA/Debugger does need some changes, but I/O is _not_ one of them. If
I change the I/O, it would severely limit the kinds of programs it could
debug.  Currently, ORCA/Debugger can debug _anything_ but an interrupt
handler.

Maybe it's time for an update to GNO, so you can turn off the non-standard
tricks it has to use to make multi-tasking work.  Those tricks can get in the
way of some perfectly legal, and otherwise impossible to write, programs like
ORCA/Debugger.

Mike Westerfield

                    (BYTEWORKS, CAT30, TOP2, MSG:167/M530)



>>>>>   This may just be one of those things where neither program can
"""""   perform well and accomodate the other--that's certainly the case
from the ORCA/Debugger side. Incidentally, does GS/Bug have the same
problem?  I expect it would. If not, it would be interesting to know why.
Maybe I missed a trick.

Mike Westerfield

                    (BYTEWORKS, CAT30, TOP2, MSG:168/M530)


<<<<<   Thanx, Guys.  Will try the IR trick first, if it proves too
"""""   difficult, will try Splat!

Eric Heim 

                    (E.HEIM3, CAT30, TOP2, MSG:169/M530)



>>>>>   > (But Splat! doesn't like the exit() or fork() functions.  Isn't it
"""""   > about time for an update, Mike? :)

I think that was actually directed at me, Mike.  (I guess we all need
nicknames or something -- there are too many Mikes here!)

Yes, Splat! too could use some fixing up (though I wasn't aware of any
problems with exit(); fork() yes), and I have plans to do so, but I need to
get some other things done first, to try and make a bit of money.  The
market for Splat! is pretty small, and an update would basically be a
labour of love. :-)  But keep bugging 

And Mike W., obviously it is possible to write a debugger that works with
GNO (well almost) and all other environments equally well -- I've done it. 
It wasn't _easy_, which is why it took over 2 years to write.  Yes, some
consideration of GNO's special features had to be made, but I considered
GNO such an important and valuable product that I felt it worth supporting. 
If you don't, that's fine, but be prepared to hear complaints from those of
us who love GNO.

Mike (the other one)

                    (M.HACKETT, CAT30, TOP2, MSG:170/M530)



>>>>>   > (I guess we all need nicknames or something -- there are too many
"""""   > Mikes here!)

Orca/Mike, Splat/Mike...

A3D/Michael :)

                    (ANIMASIA, CAT30, TOP2, MSG:171/M530)



>>>>>   Mike, I looked at doing shell calls from ORCA/Debugger, and ended
"""""   up rejecting it because of potential problems it might cause in
oddball programs if the shell wasn't there--or more likely, if the shell
 _was_ there and both the debugger and program wanted to use it.  :)  It's
differences like this that have always convinced me that debuggers are one
of the few developmen tools that you can't have enough of.  Each has its
peculiar uses and foibles. I regularly use 3 on the GS, plus some custom
debug code I frequently insert into programs.  I should probably use Splat!,
too.  :)

And I know what you mean about the small debugger market.  Boy do I know.

Mike Westerfield

                    (BYTEWORKS, CAT30, TOP2, MSG:172/M530)



>>>>>   > And I know what you mean about the small debugger market.  Boy do
"""""   > I know.

FWIW, I've bought both and haven't regretted either purchase.

Michael

                    (ANIMASIA, CAT30, TOP2, MSG:173/M530)



>>>>>   > Yes, Splat! too could use some fixing up (though I wasn't aware
"""""   > of any problems with exit(); fork() yes),

I think I mentioned this in the Splat! topic a while back.  Basically,
executing an exit() in Splat! hangs GNO but a return from main() doesn't.

                    (S.REEVES2, CAT30, TOP2, MSG:173/M530)





             >>> MAKING HEADS OR TAILS OF SHELL UTILITIES <<<
             """"""""""""""""""""""""""""""""""""""""""""""""

FLIP A COIN   Head works fine but tail does not output the last ten lines.
"""""""""""   It only outputs a truncated and garbled copy of the last
line. Is there a newer version ?  I can get what I need without using tail
but if tail work properly *it* would be a much better solution for me.
Thanks.

 > File                     Blocks Type   Modified    Created  Length Auxtype
 >
 > head______________________   23  EXE  24-Feb-92  24-Feb-92   $2B96 $0100
 > tail______________________   34  EXE  18-Jan-93  16-Jan-93   $4020 $0000

Nez

                    (L.JIMINEZ, CAT30, TOP3, MSG:161/M530)



>>>>>   Nez,
"""""
I used tail from ORCA Shell and it gives the last 10 lines of a text file.
My version has the same date and size as the one you list.

  tail -V       (gives version number)
  Version: Tail v1.1 18-Jan-93

Running the same command from gno, it is garbled. I outputted the result to
a text file and everything looked fine. 'tail file >editme' There are the
lines with $0Ds. Tail is printing all of the lines, but all on the same
screen line, and then gno is putting it's command prompt on the same line.
Here is a work around.

 tail numbers >n ; cat n

The last 10 lines are outputted to file n and then the cat n command prints
the file to the screen. I had cat in my init file as a catalog command and
that was overriding the unix cat command.

 - James - [IMAGE]

                    (J.GRAY38, CAT30, TOP3, MSG:162/M530)


 
<<<<<   Hmmm,
"""""
> 'tail file >editme'....

not as nice as a working 'tail filename' would be but still a tremendous
improvement over my alternative. I'll take it and run. Thanks James.

Nez
                    (L.JIMINEZ, CAT30, TOP3, MSG:163/M530)



>>>>>   > Head works fine but tail does not output the last ten lines.
"""""
I have the same version of tail and it works fine for me.  What kind of
files are you using?

                    (S.REEVES2, CAT30, TOP3, MSG:164/M530)



           >>> NEW EDITION OF THE TOOLBOX REFERENCE MANUALS? <<<
           """""""""""""""""""""""""""""""""""""""""""""""""""""

POSSIBLE NEW PRODUCT   I've mentioned a few times that we are looking into
""""""""""""""""""""   reprinting the Apple IIgs Toolbox Reference series.
This is moving along at a glacial pace, but it is moving.  I'd like to ask
a couple of questions.

On the product side, the major consideration is creating a concise, 
accurate, easy-to-use replacement for the original TBR series, which
currently spans 5 books from 2 publishers.  The product we envision will
replace:

   Apple IIGS Toolbox Ref. Volumes 1-3
   Programmer's Ref. for System 6.0 and 6.0.1

The new product would look something like this:

 1. 8.5x7" pages
 2. Spiral bindings (like the recent ORCA and Quick Click books)
 3. 2-4 volumes (we're just not sure)
 4. All information from all sources will be integrated, with a single
    index.  One location will list all information about a tool call!  All
    tools & calls will be alphabetized!  You'll be able to _find_ things!
 5. Header and prototype information will be included for:
      ORCA/M macros
      ORCA/Pascal
      ORCA/C
      ORCA/Modula-2 These will basically be copies of the tool declarations
      from the respecive interface files, except for ORCA/M, which will be
      the macro model lines.
 6. A companion disk version may be available, either as a separate product
    or bundled.

The major thing I'd like to change is the format for the tool calls. In all
of the Mac toolbox documentation, Apple includes just the Pascal headers,
and uses records, not stack diagrams, for data images. What I propose to do
is something similar, except I'd also support languages other than Pascal.

So what does that mean?  I'd ditch stack diagrams.

The disadvantage is they look cool.  I'll also get a lot of complaints.

The advantages are:  I stand a chance of actually finishing the darn thing;
it's easy to supply the information in a computer-based form; and the books
will be shorter, so they will cost you less and take fewer volumes, making
it easier to find a particular tool call.

Don't underestimate that last point.  It means you will be using about half
the number of voumes to find a tool call!  Instead of thmbing through 6
volumes, you can use just 3 (or therabouts).

The thing I'd like your comments on is the plan as a whole, but especially
on ditching stack diagrams in favor of language-specific header files.

NOTE:  None of this is certain.  We still have a few hurdles to jump
copyright-wise, but so far those issues have gone well--albeit slowly.

Mike Westerfield

                    (BYTEWORKS, CAT36, TOP3, MSG:276/M530)



                               [*][*][*]




[LIB]//////////////////////////////
             LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Tim Buchheim
    [T.BUCHHEIM]



                    >>> SPECTRUM SCRIPTING A2U COURSE <<<
                    """""""""""""""""""""""""""""""""""""


File # 4711  SP.WK10.RTC.BXY  (GS)
Uploaded on 4/25/95 by A2U.PROF1
About 10K (d/l time approx. 1 minute @ 2400 baud)

RTC transcript for week 10 of Spectrum Scripting A2U - this one contains
the basic rough-out of the BBS system, and some design specifications that
the BBS team will be following.



File # 4707  SP.A2U.WK9.BXY  (GS)
Uploaded on 4/21/95 by A2U.PROF1
About 9K (d/l time approx. 1 minute @ 2400 baud)

Week 9's lesson for Spectrum A2U Scripting course.



File # 4706  SP.WK8.RTC.BXY  (GS)
Uploaded on 4/21/95 by A2U.PROF1
About 12K (d/l time approx. 1 minute @ 2400 baud)

Transcript of Spectrum A2U Scripting course RTC for week 8, with guests 
Dave Hecker of SevenHills and Bill Tudor if immesurable fame <g>.  They
discussed various aspects of using and programming Spectrum XCMDs.



File # 4676  SP.A2U.WK8.BXY  (GS)
Uploaded on 4/10/95 by K.LUCKE
About 7K (d/l time approx. 40 seconds @ 2400 baud)

Lesson #8 for Spectrum scripting A2U



File # 4675  SP.RTC.WK7.BXY  (GS)
Uploaded on 4/10/95 by K.LUCKE
About 6K (d/l time approx. 35 seconds @ 2400 baud)

Week 7's transcript for Spectrum Scripting A2U



                               [*][*][*]




[EOA]
[RTC]//////////////////////////
                   RTC WATCH /
/////////////////////////////
Bits and Pieces from A2Pro Real Time Conferences
""""""""""""""""""""""""""""""""""""""""""""""""
By Tim Buchheim
 [A2PRO.GELAMP]


                     >>> A2Pro WEEKLY RTC SCHEDULE <<<
                     """""""""""""""""""""""""""""""""
      _______    __________   _________
     /_______|  /_________/  /________/     SEVEN days a week!!
    /__/__/__/     /__/     /__/
   /________/ EAL /__/ IME /__/ ONFERENCES in A2Pro!!
  /__/  /__|     /__/     /__/_____
 /__/  /__/     /__/     |________/      WEEKLY SCHEDULE
 
  Stop in and say "Hi!" at one of these conferences.  We've been giving
away quite a few GEnie usage credits (free time) at these conferences,
and you may just win the next one! :)
 
 Day      Time        Event                                Host
 --- ---------------  -----------------------------------  -----------
 Sun  8:30pm-11:00pm  Weekly Programmers' RTC              Sloanie
 Mon  9:30pm-11:00pm  GS/OS and Toolbox Calls              Dave Miller
 Tue  9:30pm-11:00pm  8-bit Programming                    Russ Nielson
 Wed  9:30pm-11:00pm  HangTime's HyperBar & Grill          HangTime
 Thu  9:30pm-??:??    Informal - Q&A, chat, whatever       A2Pro Staff
 Fri  9:30pm-11:00pm  Getting Started with Programming     Tim Buchheim
 Sat  8:30pm-10:00pm  Assembly Language Programming        Brian Wells
 
           NOTE: All times are in Eastern Daylight Time.



                               [*][*][*]


    Join  us  any  night  of  the week  for  quick  and  friendly
    programming help!  The staff  of A2Pro is always available to
    answer your questions, or  to sit  and chat about whatever is
    on your mind!  In addition to  our regular conferences listed
    above, join Ken Lucke, the Spectrum 2.0 scripting expert, for
    the Apple II University (A2U)  Spectrum 2.0 scripting course!
    The class is currently  writing a  complete BBS system in the
    Spectrum  scripting language!   Sign up  for the class in the
    A2Pro Bulletin Board, or feel free to drop in on Sunday night
    and listen in.  See you there!!


                               [*][*][*]




[EOA]
[LOG]//////////////////////////////
                         LOG OFF /
/////////////////////////////////
GEnieLamp Information
"""""""""""""""""""""

   o   COMMENTS: Contacting GEnieLamp

        o   GEnieLamp STAFF: Who Are We?



GEnieLamp Information   GEnieLamp is published on the 1st of every month
"""""""""""""""""""""   on GEnie page 515.  You can also find GEnieLamp on
the main menus in the following computing RoundTables.


RoundTable      Keyword  GEnie Page     RoundTable      Keyword  GEnie Page
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
DigiPub         DIGIPUB      1395        Atari ST        ST          475
Macintosh       MAC          605         IBM PC          IBMPC       615
Apple II        A2           645         Apple II Dev.   A2PRO       530
Macintosh Dev.  MACPRO       480         Geoworks        GEOWORKS    1050
BBS             BBS          610         CE Software     CESOFTWARE  1005
Mini/Mainframe  MAINFRAME    1145        Programming     PROGRAMMING 1445
Data Comm.      DATACOMM     1450        IBM PC Prog     IBMPCPRO     617
PowerPC         PPC          1435        PowerPCProg     PPCPRO      1440

    GEnieLamp is also distributed on CrossNet and many public and
commercial BBS systems worldwide.

    o To reach GEnieLamp on Internet send mail to genielamp@genie.com

    o Current issues of all versions of GEnieLamp are File Requestable
      (FREQable) via FidoNet (Zones 1 through 6) from 1:239/260 and via
      OURNet (Zone 65) from 65:65/1.  SysOps should use the following
      "magic names" to request the current issue of the indicated
      GEnieLamp platform:

              Platform                    Magic Name To Use
              """"""""                    """""""""""""""""
              GEnieLamp IBM HyperRead ........ GLHYPIBM
              GEnieLamp IBM Multimedia ....... GLMMIBM
              GEnieLamp ST ................... GLST
              GEnieLamp A2Pro ................ GLA2PRO
              GEnieLamp Macintosh ............ GLMAC
              GEnieLamp TX2 .................. GLTX2
              GEnieLamp A2 ................... GLA2
              GEnieLamp PowerPC .............. GLPPC
 
    o Back issues of GEnieLamp are available in the DigiPub RoundTable
      Library #2 on page 1395 (M1395;3).

    o GEnieLamp pays for articles submitted and published with online
      GEnie credit time.  Upload submissions in ASCII format to library
      #31 in the DigiPub RoundTable on page 1395 (M1395;3) or Email it to
      GENIELAMP.  On Internet send it to: genielamp@genie.com

    o We welcome and respond to all E-Mail.  To leave comments,
      suggestions or just to say hi, you can contact us in the DigiPub
      RoundTable (M1395) or send GE Mail to John Peters at [GENIELAMP] on
      page 200.

    o If you would like to meet the GEnieLamp staff "live" we meet every
      Wednesday night in the Digi*Pub Real-Time Conference at 9:00 EDT
     (M1395;2).

    o The Digital Publishing RoundTable is for people who are interested
      in pursuing publication of their work electronically on GEnie or via
      disk-based media.  For those looking for online publications, the
      DigiPub Software Libraries offer online magazines, newsletters,
      short-stories, poetry and other various text oriented articles for
      downloading to your computer.  Also available are writers' tools and
      'Hyper-utilties' for text presentation on most computer systems.  In
      the DigiPub Bulletin Board you can converse with people in the
      digital publishing industry, meet editors from some of the top
      electronic publications and get hints and tips on how to go about
      publishing your own digital book.  The DigiPub RoundTable is the
      official online service for the Digital Publishing Association.  To
      get there type DIGIPUB or M1395 at any GEnie prompt.
  
 
                           >>> GEnieLamp STAFF <<<
                           """""""""""""""""""""""
 
   GEnieLamp  o John Peters         [GENIELAMP]    Publisher
   """""""""


    APPLE II  o Doug Cuff           [EDITOR.A2]    A2 EDITOR
    """"""""  o Gina E. Saikin      [A2.GENA]      A2 Staff Writer
              o Charlie Hartley     [C.HARTLEY3]   A2 Staff Writer
 

       A2Pro  o Tim Buchheim        [A2PRO.GELAMP] A2Pro EDITOR
       """""


    ATARI ST  o John Gniewkowski    [GENIELAMP.ST] ATARI ST EDITOR
    """"""""  o Bruce Smith         [B.SMITH123]   EDITOR/TX2
              o Mel Motogawa        [M.MOTOGAWA]   ST Staff Writer
              o Sheldon Winick      [S.WINICK]     ST Staff Writer
              o Terry Quinn         [TQUINN]       ST Staff Writer
              o Richard Brown       [R.BROWN30]    ST Staff Writer
              o Al Fasoldt          [A.FASOLDT]    ST Staff Writer
 

         IBM  o Bob Connors         [DR.BOB]       IBM EDITOR
         """  o Nancy Thomas        [GELAMP.MM]    MultiMedia Editor/Writer
              o David Leithauser    [D.LEITHASUER] HyperRead Editor
              o Brad Biondo         [B.BIONDO]     IBM Staff Writer
              o Billy Storey        [B.STOREY]     IBM Staff Writer
 
 
   MACINTOSH  o Richard Vega        [GELAMP.MAC]   MACINTOSH EDITOR
   """""""""  o Tom Trinko          [T.TRINKO]     Mac Staff Writer
              o Bret Fledderjohn    [FLEDDERJOHN]  Mac Staff Writer
              o Ricky J. Vega       [GELAMP.MAC]   Mac Staff Writer
 

    POWER PC  o Ben Soulon          [BEN.GELAMP]   POWER PC EDITOR
    """"""""


     WINDOWS  o Bruce Maples        [GELAMP.WIN]   WINDOWS EDITOR
     """""""
 

        ETC.  o Jim Lubin           [J.LUBIN]      Add Aladdin Scripts
        """"  o Scott Garrigus      [S.GARRIGUS]   Search-ME!
              o Mike White          [MWHITE]       (oo) / DigiPub SysOp
              o Susie Oviatt        [SUSIE]        ASCII Artist
              o Al Fasoldt          [A.FASOLDT]    Contributing Columnist
              o Phil Shapiro        [P.SHAPIRO1]   Contributing Columnist
              o Sandy Wolf          [S.WOLF4]      Contributing Columnist
 
                                [*][*][*]


 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
  Bulletin  board messages  are reprinted verbatim,  and are included in
  this publication with permission from GEnie and the source RoundTable.
  GEnie, GEnieLamp Online Magazines,  and T/TalkNet Online Publishing do
  not guarantee the accuracy or suitability  of any information included
  herein.   Opinions expressed are  those of the individual,  and do not
  represent opinions of GEnie,  GEnielamp Online Magazines, or T/TalkNet
  Online Publishing.

  Material published in this edition may be reprinted  under the follow-
  ing terms only.  Reprint permission granted,  unless otherwise  noted,
  to registered  computer user groups and  not for profit  publications.
  All  articles must  remain unedited and  include the issue  number and
  author at the top of each article  reprinted.  Opinions present herein
  are those  of the individual  authors  and do  not necessarily reflect
  those of the publisher or staff of GEnieLamp.  We reserve the right to
  edit all letters and copy.  Please include the following at the end or
  the beginning of all reprints:
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
  (c) Copyright 1995  T/TalkNET  Online Publishing  and  GEnie.  To join
  GEnie,  set your modem to 2400  baud (or less)  and half duplex (local
  echo).   Have the modem dial 1-800-638-8369.   When you  get a CONNECT
  message, type  HHH.   At the U#=   prompt, type: JOINGENIE and hit the
  [return] key. When you get the prompt asking for the signup code, type
  DSD524  and hit  RETURN.  The  system  will then  prompt  you for your
  sign-up information. Call (voice) 1-800-638-9636 for more information.
 ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[EOF]
