

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

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


                     ~ WELCOME TO GENIELAMP A2Pro! ~
                       """""""""""""""""""""""""""
                    ~ Summer is here! ~ FTN updates ~
                 ~ Speaking serial ~ C++ = confusion++? ~
            ~ System service vectors ~ Product announcements ~
                  ~ HOT NEWS, HOT FILES, HOT MESSAGES ~

 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
  GEnieLamp A2Pro      ~ A T/TalkNET Publication ~       Vol.5, Issue 28
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 Publisher.................................................John F. Peters
  Editor....................................................Tim Buchheim
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
          ~ GEnieLamp IBM ~ GEnieLamp Atari ~ 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 A2Pro ROUNDTABLE? <<<
             """""""""""""""""""""""""""""""""""""""""""""""""
                             ~ July 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, 2400 or 9600 baud.

2.  Call (with modem) 1-800-638-8369.

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 <<<
                          """""""""""""""""""""""

SUMMER IS HERE!   Last month I was happy because it was almost summer.. and
"""""""""""""""   now it is!!  Maybe I'll finally have time to get some
real programming done..  although it will be tough to find time when I'm
taking so many trips this summer.  I spent last week at the north rim of
the Grand Canyon.  That is one place which I think everyone should visit;
it is amazing!

A word of advice:  Plan to take a loooonnnnnngggggg time walking back up if
you go down into the canyon itself.  The hike down to Roaring Springs (you
wouldn't believe how much water is down there in the middle of the desert!)
takes about 3 hours from the top of the North Kaibab trail.  But going back
up took nearly 6 hours..  but that's probably because Roaring Springs is
about 3500 feet below the rim.  (That's quite an elevation difference for
a 4.7 mile trail!)

Oh, don't worry, I got a little bit of programming done.  I wrote a few
small programs for my HP 48G. (Too bad the Apple IIgs doesn't run off three
AAA batteries! ;)

My next trip will be KansasFest '95!  Just today I got a tentative schedule
in snail mail..  looks fun!  I just hope I don't sleep through it all like
I did last year.  (If you see Cindy Adams, ask her about the great search
for Tim last year. :)  I seriously doubt I'll get any programming done
there, but at least I'll get to see what everyone else has written this
past year!

My last big trip will be to Lake Powell, where I'll spend a week on a
houseboat with family.  I'll take my GS/OS Ref and toolbox manuals..
maybe I'll get something done.  (but don't get your hopes up for Doom
or NetScape GS ;)

I hope to see you all at KansasFest this year.  I know that most of you
won't be able to be there..  but I hope that means some of you can write
all the software the GS is lacking ;)

I guess I've been rambling a bit too much, so I'll stop now.


                                                 -- Timothy Carl Buchheim
                                                    Editor, GEnieLamp A2Pro



                              [*][*][*]


    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 :)

    By the way,  the  current  issue  and  most  back issues  are
    available online in  many  places.  GEnie users  should check
    Library #2  in the  DigiPub libraries  (DIGIPUB, page 1395;3)
    Those of  you not on  GEnie  should  use  gopher  software to
    connect to gopher.genie.com for issues; all recent issues and
    some older ones are there.


                              [*][*][*]




[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 <<<
                      """"""""""""""""""""""""""""""""

 [*]  CAT4,  TOP19, MSG{43}..........C++
 [*]  CAT7,  TOP8,  MSG{106}.........General 8-bit programming
 [*]  CAT11, TOP20, MSG{26}..........Apple's File Type Notes
 [*]  CAT11, TOP27, MSG{1}...........File Type Assignments
 [*]  CAT12, TOP6,  MSG{99}..........Programming the IIGS Modem port        
 [*]  CAT13, TOP4,  MSG{93}..........Looking for...
 [*]  CAT13, TOP15, MSG{17}..........Getting PAID!
 [*]  CAT22, TOP32, MSG{67}..........Spectrum 2.0 Scripting



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


PRESS RELEASE   SYNDICOMM - The Apple II Programmers RoundTable on GEnie
"""""""""""""   (A2Pro) announced today that it is now the official
repository of the Apple II file type database, and is now accepting
applications for new file type/auxtype combinations.  This service will be
provided free to the entire Apple II community.  All Apple II users and
developers, including those without GEnie accounts may participate.

Apple Computer, Inc., (Cupertino, California), has given A2Pro the
authority to assign file type/auxtype combinations for newly developed
software that depends on new file structures.  This was done so that these
assignments can still be made after Apple completed the downsizing of their
Apple II division last year.

Anyone needing a file type/auxtype assignment can send a completed
application via email on the internet to a2pro@genie.com.  Any questions or
comments may also be sent to that address.  Applications are available for
downloading from the A2Pro software library on GEnie, and can also be
obtained by requesting one via email on the internet to a2pro@genie.com.

Alternatively, requests and correspondence can be sent via U.S.Mail to
A2Pro Technical Support, P.O.Box 4641, Redondo Beach, CA  90278-8841.
Inclusion of a self-addressed stamped envelope would be appreciated.

Updates to the file type database will be published quarterly.

 - * -

Apple is a registered trademark of Apple Computer, Inc., Cupertino,
California. A2Pro is a trademark of Syndicomm Online Management, Inc.,
Crestwood, Illinois. GEnie is a registered trademark of GE Information
Services, Rockville, Maryland.

                    (JUST.DAVE, CAT11, TOP27, MSG:1/M530)



<<<<<   The information and request form files will be uploaded to the
"""""   library shortly.  If you need one before we get them up, just shoot
an email to A2PRO and ask for one :)

In the meantime, if anyone has any comments or suggestions, go ahead and
post here!

Dave
                    (JUST.DAVE, CAT11, TOP27, MSG:2/M530)



>>>>>   For the latest request form and background information, download
"""""   file 4729 from A2Pro. (FT.REQ.TXT).  It is a simple text file,
which contains an e-mail and paper request form, and a short description of
the application process.

A2Pro Technical Support

                       (A2PRO, CAT11, TOP27, MSG:3/M530)




 
A2U ANNOUNCEMENT   Due to the lack of participation in the Spectrum
""""""""""""""""   Scripting course RTCs we will no longer be holding those
RTCs except for special circumstances.  Notice of any upcoming RTCs will
be placed in this BB by the Thursday preceding the RTC.

This is not to imply that the work on the BBS is not going well, nor that
it will not be completed.  It simply is an unprofitable expense of time to
host an RTC for one or two people, and more importantly, a waste of their
GEnie online time, for which they pay.

I want those who are still working on the BBS to communicate here in the
BB frequently, to keep each other up to date on what is going on.  You
should continue to post your latest scripts to Library 54, and PLEASE do
remember to delete your old versions when you do so, so we a) do not get
that library all cluttered, and b) people know they are d/l'ing the latest
versions of things.

I also would like each of those still working on the BBS to communicate
with me privately (EMail) to tell me where you are on the project.

We have lost several scripters, and if there are any non-participants in
the BBS building out there who feel they are average or better scripters
and would like to join the team, please email me!

Ken Lucke
                    (A2U.PROF1, CAT22, TOP32, MSG:67/M530)





                          >>> PROGRAMMERS' TIPS <<<
                          """""""""""""""""""""""""


C++ = CONFUSION++?
""""""""""""""""""
 // This small C++ program has a problem when a
 // non-numeric value is entered (try a letter
 // of the alphabet).  Cin is returning a zero
 // value because the conversion was not successful.
 // This program gets into an infinite loop
 // displaying the text, "Invalid choice".
 //
 // I'm guessing that the invalid character(s)
 // remain in the input buffer.  I would appreciate
 // if someone could confirm my theory and educate
 // me on how to remove invalid characters from
 // the input stream using C++ techniques.
 //
 // I realize that other techniques could be used
 // to gather input data and validate it but I'm
 // interested in how to solve this particular
 // problem.
 #include <iostream.h>

 #define MIN_SEL     1
 #define MAX_SEL     3

 int main (int argc, char * argv[])
   {
   int nSelection;

   guess:

     cout << "  1=One 2=Two 3=Three\n";
     cout << "  What's Your Choice? (1,2,3) > ";
     cin  >> nSelection;
     cout << "\n";

 // *** temporary code ***
     cout << nSelection << "\n";
 // *** temporary code ***

     if ((nSelection < MIN_SEL) || (nSelection > MAX_SEL))
       {
       cout << "  Invalid choice\n";
       goto guess;
       }

   return 0;
   }
                    (E.WAGNER10, CAT4, TOP19, MSG:43/M530)



 
>>>>>   > #define MIN_SEL     1
"""""   > #define MAX_SEL     3

Just a guess, but does cin return an ASCII value? Then your min and max
constants would be something else.

Michael
                    (ANIMASIA, CAT4, TOP19, MSG:44/M530)



 
>>>>>   Nope. cin returns whatever type you ask it for. At compile time,
"""""   the compiler figures out what type you are passing to the function
(in this case, operator<< and operator>>) and looks for a function of that
type, or one that can satisfy it through standard or user defined type
conversions, or a template to instantiate.

Anyway, I'm no C++ or iostreams guru, but I'd suggest just trying to read a
char after invalid input.  I/O is sort of blocking. As long as that char is
there, it knows it can't read an int. It never gets past the char.

Now, however, I do not know what istream& operator>>(istream&, int&)
returns or sets the int to when it can't read an int. It probably leaves
the int unchanged and sets, like, "badbit" in the stream's state.

This analogous, btw, to C stdio.

 while (1) {
  int i;
  scanf("%d", &i);
  if (i == 0) break;
 printf("%d", i);
 }

will hang/loop forever if you type any letters.

 int i;
 while (1 == scanf("%d", &i)) {
 printf("%d", i);
 }

Should work. More analagous to what you were trying to do though, and
including "unblocking" i/o: 

 while (1) {
  int i;
  if (1 == scanf("%d", &i)) {
  printf("%d", i);
 } else {
  getchar(); // read past a char to try to unblock.
 }
}

This is also analogous to Pascal i/o where read gets stuck on an end of
line until you call readln.

If the failed cin >> int does leave the int unchanged, then your test for
min/max won't work.

Here, this is real working, tested code (Dropping .h from include files was
added to the standard, and CodeWarrior "implements" it. Implicit return 0
from main, and #define and &&, or ||, not !, and others haven't been added
to CW yet.)

#include <iostream>
#define or ||
#define not !

int main()
{
    int i=0;
//     _Bool operator!() const
//  {return (((int)_State
//   & ((int)failbit|(int)badbit)) != 0); }

    while (i != 123) {
        if (cin >> i) { // implicit !! in if?
    gotint:
            if (i < 1 or i > 3) {
                cout << " bad choice " << endl;
            } else {
                cout <<  i << endl;
            }
        } else {
            char c;
            cout << "a number please" << endl;
            while (not (cin >> i)) { // while "blocked"
                cin.clear(); // it hung w/o this.
                cin >> c; // "eat a char"
            }
            goto gotint; // yuck
        }
    }
    cout << "done" << endl;
}

- Jay

                    (JAY.KRELL, CAT4, TOP19, MSG:45/M530)





>>>>>   > // This program gets into an infinite loop
"""""   > // displaying the text, "Invalid choice".
        > //
        > // I'm guessing that the invalid character(s)
        > // remain in the input buffer.

That is exactly what is happening. Here is a quote from _C++ Primer Plus_
regarding mixing numeric and string input:

   The problem is that when _cin_ reads [the numeric variable], it
   leaves the newline generated by the ENTER key in the input queue....
   The fix is to read and discard the newline before reading the address.
   This can be done several ways, including using _get()_ with no
   argument or with a _char_ argument...

The fix in your case would be:

  cin  >> nSelection;
  cin.get();                 // add this line (or cin.get(ch)) here
  ***                        // rest of program

David W.
                    (D.WALLIS2, CAT4, TOP19, MSG:46/M530)



<<<<<   Re: Jay Krell
"""""
I'd like to thank you for your suggestions on handling the problems in some
C++ source that I recently posted.

I was able to apply the suggestions and concepts you provided and completed
debugging and reworking some code to help out a young programmer that is
just getting started with C and C++.

My C++ knowledge isn't there just yet and I learned something new -- those
flags that keep track of errors with the input stream :)

Erick
                    (E.WAGNER10, CAT4, TOP19, MSG:47/M530)




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

SPEAKING SERIAL   Apparently what is "different" about the DeskWriter is
"""""""""""""""   that its (serial) port only runs at 57.6 kbps. I guess,
though I am ignorant of serial port protocol, you can't send data at 19.2
kbps if it is expecting it faster.  Anyway, send plain text at 57.6k and it
is just like the DeskJet. As far as where I read, this only recently came
to light, I believe via Mike Hackett.

 - Jay
                    (JAY.KRELL, CAT7, TOP8, MSG:105/M530)



>>>>>   Correct. _IF_ you could get the P8 application to output at 57600
"""""   baud then  a DeskWriter would behave just like a DeskJet does.
_BUT_ P8 outputs using Apple's serial firmware, which only goes up to 19200
(check out your Control Panel).

IIGS-specific printer drivers can output to a DeskWriter only because a
custom port driver was written that directly accesses the serial chip to
achieve 57600 baud (the limit imposed by the serial chip itself, not the
limit imposed by Apple's firmware code).

--Dave
                    (SEVENHILLS, CAT7, TOP8, MSG:107/M530)


 
<<<<<   > achieve 57600 baud (the limit imposed by the serial chip itself
"""""
I'm not sure about that. I think it can actually run much faster. And yeah,
the firmware is kind of limiting.

                    (JAY.KRELL, CAT7, TOP8, MSG:108/M530)



>>>>>   I think Jay is right..  to the best of my knowledge, the serial
"""""   chip could theoretically go faster than 57600..

                    (A2PRO.GELAMP, CAT7, TOP8, MSG:109/M530)


 

>>>>>   uhm... the 5830 SCC can do in excess of 230Kbps....
"""""
On the IIgs the limiting factors are how well the code is written, and the
CPU speed (actual bus speed, not accelerator speed, though this does have
obvious effects)

-Harold
                    (HAROLD.H, CAT7, TOP8, MSG:110/M530)




>>>>>   I find it amazing how myths get started.
"""""
Baud rate is generated by a clocking crystal decrementing a "downcounter"
until it reaches zero. The value is then reloaded and the process starts
again.

The two factors that effect what baud rate is being generated, are 1. the
fixed timing of the clock (effectively how fast it counts down, and 2. the
count value loaded into the downcounter at the beginning of each pass
(basicly how long it takes to count down to zero.

The serial chip in the IIgs can accept baud rate generation from either an
external source (which requires a hardware mod), or the internal generator.
Because the internal generator feeds off a fixed clock, this means that the
only way a programmer can change the baud rate generation (we're talking
async comms here), is by changing the count value. The lowest it can go
(dictated by the construction of the chip), is the 16 bit value $0000.
Calculate this out using the IIgs' clock timing, and you get 57600. Sorry,
but by using the internal generator, IIgs serial ports will NOT go any
faster than this.

Synchronous comms (eg. AppleTalk) is a whole different ball game.

Regards,
 Richard
                    (RICHARD.B, CAT7, TOP8, MSG:111/M530)





FTN UPDATES   We are in the process of revising several File Type Notes.
"""""""""""   Right now I would like to solicit comments about the
$C0/$0002 FTN. It needs to be updated to add a newly defined Information
Block, ands while we are at it, is there anything else that needs to be
updated in the Note? (Other than spelling and grammar corrections, which
have already been accomplished.)

A2Pro Technical Support

                      (A2PRO, CAT11, TOP20, MSG:26/M530)



>>>>>   What's the "newly defined Information Block"?
"""""
(Enquiring minds want to know).

Oh, and BTW, you could add the ANYMODE block (defined by Softdisk). If an
ANYMODE block is present, the picture is presumed to look good in either
320-mode OR 640-mode, in the default palettes (any palette information is
ignored).

This was defined originally for BackDrop, BTW.

-Greg Templeman
                   (BARNABAS, CAT11, TOP20, MSG:27/M530)



>>>>>   oh, so THAT's how BackDrop can tell..   I wondered.. :)
"""""
                 (A2PRO.GELAMP, CAT11, TOP20, MSG:28/M530)



>>>>>   Yep, Tim, you can just pop an ANYMODE block onto any APF file (has
"""""   no fields, just the standard length field and the string "ANYMODE")
and it'll show up in both modes with BackDrop.

I kinda think this is a more generally-useful thing than just for
background pictures/patterns...

-Greg Templeman
                   (BARNABAS, CAT11, TOP20, MSG:29/M530)




<<<<<   > What's the "newly defined Information Block"?
"""""
We could tell you, but then we would have to kill you. :) Seriously, the
new IB is for an as yet unpublished product. If all goes well, it will be
released soon, and the FTN will be updated and ready for it.


> Oh, and BTW, you could add the ANYMODE block (defined by Softdisk).

 ---cut here---

"ANYMODE Information Block


   Length       LongInt
   Kind         String "ANYMODE"

Defines the graphic as being viewable and looking reasonable from either
320 or 640 mode using the default palettes."

 ---cut here---

Is the foregoing a reasonable IB description for $C0/$0002?


 -=Joat=-
                    (A2.TIM, CAT11, TOP20, MSG:30/M530)



>>>>>   >Is the foregoing a reasonable IB description for $C0/$0002?
"""""
Without looking at the APF FT Note for how well that "blends in", I'd say
it's pretty good. You could add "Palette information elsewhere in the file
(if included) is usually ignored when this field is used."

-Greg Templeman
                    (BARNABAS, CAT11, TOP20, MSG:31/M530)



<<<<<   > Without looking at the APF FT Note for how well that "blends in",
"""""   > I'd say it's pretty good.

I did it from memory, but I think it blended in well. :) If not, it will
when I type it into my master. :)

> You could add "Palette information elsewhere in the file (if included)
> is usually ignored when this field is used."

Done. :)

I will hold the changes for publication of the product, and then the FTN
will get one update.

If anyone else has other changes for $C0/$0002, speak up in the next couple
weeks please.

Also, if anyone knows of any errors or updates for any other FTNs, please
speak up here. As we find errors we will look to updating them, but if we
get errors pointed out to us, it will help speed things up. :)


 -=Joat=-
                    (A2.TIM, CAT11, TOP20, MSG:32/M530)




>>>>>   Some information in the NuFX ftn is in error, I'll look it up and
"""""   post when I find it.  :-)

                    (WANKERL, CAT11, TOP20, MSG:34/M530)




>>>>>   Did a FTN for Paintworks animations ever see the light of day? This
"""""   is still in demand. Nate's specification can be found in cat 11,
top 5, msg 5.

 Michael
                    (ANIMASIA, CAT11, TOP20, MSG:37/M530)




>>>>>   OK, I remember 3 sticky points in the NuFX FTN:
"""""
There are six (6) additional undefined bytes at the end of the master
header that aren't mentioned in the FTN.  They are included in the CRC for
the master header.  The bytes appear to be all zeros on version 2 (the
latest version) archives.  Perhaps they have some significance on earlier
versions, I dunno...

That was the only real wrong thing about the FTN.  The other two points are
just vague in the FTN:

The FTN says " The 16-bit CRC of the remaining fields of this block [the
record header, is calculated from] bytes +006 through the end of the header
block and any threads following it."  Now at first glance, the "any threads
following it" part is very strange... do I actually have to do the CRC on
the thread itself?  No.  You just calculate it on the thread records (the
things that define where the threads are and how long they are).

The last vague thing is in the RLE definition.  The FTN says the RLE
sequence is three bytes:  the RLE escape code (normally $DB), followed by
the number of bytes in the run, followed by the byte to repeat.  Actually,
the RLE escape code is followed by the byte to repeat and then followed by
the number of bytes in the run. Also, the number of bytes in the run is one
less than what should be in the run (i.e. a run value of $06 means that
there should be seven (7) bytes repeated.)

Oh yeah, one other part that's not mentioned anywhere is how the codes for
LZW are stored.  I dunno if it's relevant for the note or not because no
LZW information is given... however... in all the LZW code I've seen, bits
are shifted out of the input stream into the code variable.  The input
stream is just a stream of bits, and each bit gets shifted to the left.
With NuFX, the input is read in BYTES and then shifts the bits out of each
byte to make a code, which is IMHO very strange.  Here are some examples:

Given an input stream of 110101101001010110, the classic method (The one
I've seen mostly which left shifts everything) would, with nine bit codes,
produce the following two codes:  $01AD and $0056.   ShrinkIt takes the
input stream, makes bytes out of it, so the input is $D6 $95 $80 (remaining
6 bits are assumed to be zero, notice :-) so the two codes ShrinkIt would
see would be $01D6 and $002B!  Very different.  (I guess it helps if you
write out bits on paper and shift them in by hand to see the difference.)

See what a fun time I had writing Balloon?  :-)

                    (WANKERL, CAT11, TOP20, MSG:39/M530)


>>>>>   I've been looking for some info on how LZW works. (I have some
"""""   corrupt GIF  earthquake maps that I'm trying to fix.) You lost me
on the left-shift part and I was going to ask for more detail when I thought
LZW might make an interesting topic for a short article in GS+?

Wait, I just figured out the left shift (9 bits) :)  

       .......1 10101101 .......0 01010110
         $01      $AD       $00      $56

Still, there's a lot more to LZW I imagine.

Cheers, Bob 
                  (R.ECKWEILER, CAT11, TOP20, MSG:40/M530)



>>>>>   Yeah, shifting the bits from the input stream threw me for a big
"""""   loop when I was trying to write Balloon.  :-)  Almost as bad as
figuring out why my CRCs for the master header block never matched.

There's a lot of compression informaton in the A2Pro library that can help
you figure out LZW and more.  

                    (WANKERL, CAT11, TOP20, MSG:41/M530)




SERIAL SPEED   Does anyone know offhand the maximum input rate that can be
""""""""""""   handled by the Apple IIGS serial port?  At this rate, does
anything besides networking have to be disabled?  In particular, can the
Apple IIGS handle a 2Mbps data rate for short bursts stored to RAM?  (FWIW,
the Macintosh _can_ handle this data rate.)

Mike Westerfield
                    (BYTEWORKS, CAT12, TOP6, MSG:99/M530)






SYSTEM SERVICE VECTORS   Here's a snippet of the equate file that I'm
""""""""""""""""""""""   working with (regarding the various System Service
vectors). Please feel free to repost this on other services. (If you happen
to spot any responses on other services, please repost them here, or email
them to me. I'll compile what I find out and repost here (or upload here,
whichever turns out to be appropriate))

Note that when I went thru these vectors I cobbled up pseudo meaningfull
names for all of them, starting at $01FC00 (Dev_Dispatcher) which I named
SrvVect_00... this pattern of naming is followed thru $01FCE0.

I'm purposely =NOT= saying why I'm trying to track down info on these
vectors, or what source I'm working with at this time. Suffice it to say
that "something is cooking"... with some luck and lots of hard work by
myself and others, it is entirely possible that a very nice and long
awaited enhancement to GS/OS may actually become a reality.

%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% System Service Vectors
%
% This includes all the system service vectors
% that are obvious in System 6.01. Both documented
% and undocumented ones are listed.
%
% Comments:
%
% NiftyList - from NiftyList data file
% DDR (not used) - Dev Drvr Ref, not used by this code
% unknown (not used) - hole filler, totally unknown
% Device Driver Ref - documented and used by this code
% Private - unknown, but used by this code
% Private (%) - Label from orig disassembly
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Dev_Dispatcher      =    $01FC00   ;NiftyList
Cache_Find_Blk      =    $01FC04   ;DDR (not used)
Cache_Add_Blk       =    $01FC08   ;DDR (not used)
SrvVect_03          =    $01FC0C   ;unknown (not used)
SrvVect_04          =    $01FC10   ;unknown (not used)
Cache_Del_Blk       =    $01FC14   ;DDR (not used)
SrvVect_06          =    $01FC18   ;unknown (not used)
Alloc_Seg           =    $01FC1C   ;Device Driver Ref
Release_Seg         =    $01FC20   ;Device Driver Ref
SrvVect_09          =    $01FC24   ;Private (Used!)
SrvVect_0A          =    $01FC28   ;Private (Used!)
SrvVect_0B          =    $01FC2C   ;Private (Used!)
SrvVect_0C          =    $01FC30   ;Private (Used!)
Swap_Out            =    $01FC34   ;Device Driver Ref
Deref               =    $01FC38   ;Device Driver Ref
Get_Buf_Ptr         =    $01FC3C   ;Private (%) (Used!)
SrvVect_10          =    $01FC40   ;Private (Used!)
SrvVect_11          =    $01FC44   ;Private (Used!)
SrvVect_12          =    $01FC48   ;Private (Used!)
SrvVect_13          =    $01FC4C   ;unknown (not used)
Set_Sys_Speed       =    $01FC50   ;DDR (not used)
Cache_Flsh_Def      =    $01FC54   ;Private (%) (Used!)
SrvVect_16          =    $01FC58   ;Private (Used!)
SrvVect_17          =    $01FC5C   ;unknown (not used)
SrvVect_18          =    $01FC60   ;Private (Used!)
SrvVect_19          =    $01FC64   ;Private (Used!)
Lock_Mem            =    $01FC68   ;Device Driver Ref
Unlock_Mem          =    $01FC6C   ;Device Driver Ref
Move_Info           =    $01FC70   ;Device Driver Ref
SrvVect_1D          =    $01FC74   ;unknown (not used)
SrvVect_1E          =    $01FC78   ;unknown (not used)
SrvVect_1F          =    $01FC7C   ;unknown (not used)
SrvVect_20          =    $01FC80   ;unknown (not used)
SrvVect_21          =    $01FC84   ;unknown (not used)
Signal              =    $01FC88   ;DDR (not used)
SrvVect_23          =    $01FC8C   ;unknown (not used)
Set_DiskSW          =    $01FC90   ;DDR (not used)
SrvVect_25          =    $01FC94   ;Private (Used!)
SrvVect_26          =    $01FC98   ;Private (Used!)
SrvVect_27          =    $01FC9C   ;unknown (not used)
SrvVect_28          =    $01FCA0   ;unknown (not used)
Sup_Drvr_Disp       =    $01FCA4   ;DDR (not used)
Install_Driver      =    $01FCA8   ;DDR (not used)
SrvVect_2B          =    $01FCAC   ;Private (Used!)
SrvVect_2C          =    $01FCB0   ;Private (Used!)
SrvVect_2D          =    $01FCB4   ;unknown (not used)
SrvVect_2E          =    $01FCB8   ;unknown (not used)
Dyn_Slot_Arbiter    =    $01FCBC   ;DDR (not used)
SrvVect_30          =    $01FCC0   ;unknown (not used)
SrvVect_31          =    $01FCC4   ;Private (Used!)
SrvVect_32          =    $01FCC8   ;unknown (not used)
SrvVect_33          =    $01FCCC   ;unknown (not used)
SrvVect_34          =    $01FCD0   ;unknown (not used)
SrvVect_35          =    $01FCD4   ;unknown (not used)
Unbind_Int_Vect     =    $01FCD8   ;DDR (not used)
SrvVect_37          =    $01FCDC   ;unknown (not used)
SrvVect_38          =    $01FCE0   ;unknown (not used)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

If anyone is able to put =real= names to any of the SrvVect_xx vectors,
please do so, and try to get that informaton back to me (email:
Harold.H@GEnie.GEIS.Com) If you can provide any calling format info for
these calls, so much the better.

Thanks!

-Harold
                      (HAROLD.H, CAT13, TOP4, MSG:93/M530)




GETTING PAID   Recently a US based customer wanted some samples of our
""""""""""""   product line.

The problem as a whole with small amounts ($20 - $40) in this case is that
money transfer of this small amounts is that banks charge you an arm and a
leg for doing transactions.
I.e. for an foreign cheque banks charge around $15 - $20 minimum and still
apply a percentage of value of the cheque.

While this is acceptable (well it is NOT!!!) for large transactions, it
makes small ones like the above almost impossible.

So we called our local Visa office. They told us, that even we don't have
an contract with them, transactions on a one by one basis would be
possible.  All we needed was the card# of the customer and a written
(faxed) order. We would have to do the paperwork and Visa would transfer
the money to our bank account (after charging 4.5% of total value).

So what does this have to do with the AII?

Well there are shareware autors and small busines in the AII community,
that sell for small prizes. This might be a way for them to get paid a lot
easier and be charged less by banks, no?

Alex 
                   (A.CORRIERI, CAT13, TOP15, MSG:17/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   AN IMPORTANT MESSAGE FROM PRODEV

              o   ULTRAMACROS PROGRAMMING

                   o  BYTEWORKS PRODUCT ANNOUNCEMENTS

                        o   EXPLAINING LOGIN




                      >>> 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.



                   >>> AN IMPORTANT MESSAGE FROM PRODEV <<<
                   """"""""""""""""""""""""""""""""""""""""

PRODUCT DISCONTINUED   OK you Apple II hardware hackers.  We are
""""""""""""""""""""   discontinuing production of the ProDev DDT, but we
still have a few bare PC boards if anyone wants to experiment with building
their own.  We will sell you a bare board along with the 2 PROMs, 1 PAL and
EPROM of the latest software. You will need to get the other parts from
other sources, (well we may have enough for a few kits).  THIS STUFF WILL
BE SOLD AS IS, WE WILL NOT BE ABLE TO PROVIDE TECHNICAL ASSISTANCE. The
price is $25 which include shipping within the U.S. If you want to order
please call our voice line at 1-800-248-3547 VISA/MC accepted.

Thank You for your past support. P.S. We will continue to provide support
for all existing customers. We  are just shifting our resources to other
more profitable platforms.

                      (PRODEV, CAT35, TOP4, MSG:3/M530)



                       >>> ULTRAMACROS PROGRAMMING <<<
                       """""""""""""""""""""""""""""""


AN ELUSIVE BUG   Hi guys,
""""""""""""""
I have a simple TAPL project I'm working on, and one of the macros I'm
writing is supposed to search for several printer options and delete them;
however, it just searches for the first and keeps hanging.  The code
follows:

//"D" deletes the options without equivalents: P1, P2, PE, PH, SM, SC, EK,
//MM, GB, GE, and LI

d:<awp:                                 //{Makes sure it's AWP}
I=1:                                    //{Set I to incrementer}
$0="P1P2PEPHSMSCEKMMGBGELIXX":          //{Sets up string of deletes}
Begin:                                       //{Starts up deletion loop}
oa-1:                                        //{Go to start}
     $1=mid $0,I,2:                     //{Sets printer option}
     If $1="XX" then endmacro:               //{If end, get out}
     Else:                                   //{If not at end. . . }
          Begin:                             //{Start looking for this
option}
               oa-f:print "o":               //{Find options for printer}
               print $1:rtn:            //{Find current delete option}
               $2=screen 1,24,6:             //{Check screen to see if
found}
               If $2="Find n" then print "N"://{If found stop and}
               oa-d:rtn:                     //{delete the option}
               Else:rtn:I=I+2:exit:          //{If not, then increment &
go}
          rpt:                               //{Go again}
rpt>!                                        //{Start looking again}

 It appears not to be exiting the loop and incrementing the I counter
properly, but I does show up as 3 when I test for it.  What am I doing
wrong?

Ryan
If you think that was bad just wait a few minutes. . .
(And delivered by Copilot and PT 3.1 :)

                     (R.SUENAGA1, CAT34, TOP2, MSG:79/M530)



>>>>>   You can use <begin> twice in a row like you did. <rpt> will just
"""""   return to the most recent <begin>, and the first one will never get
used. Since you have a fixed number of codes, use for-next to control your
first loop instead.

                    (BRANDT, CAT34, TOP2, MSG:80/M530)




A QUESTION   Hi all,
""""""""""
I'm doing some Ultramacros programming and need some help:

Specifically, I'm trying to find a way to find out if a file a macro adds
to the desktop has an identical name to a file already on the desktop, and
have the macro change the file name if that's the case.  I tried using
ONERR GOTO but it didn't work; apparently, getting the warning bout adding
a duplicate file name with "Do you REALLY want to do this?" is not an error
:)

Anyone have any ideas?

Ryan
If you think that was bad just wait a few minutes. . .
(And delivered by Copilot and PT 3.1 :)

                  (R.SUENAGA1, CAT34, TOP3, MSG:6/M530)


 
>>>>>   If you're working with the screen on, you can check for the message
"""""   after doing the "add" keystrokes.

                    (BRANDT, CAT34, TOP3, MSG:7/M530)



>>>>>   Immediately after adding the file, check for the warning message
"""""   onscreen:

     <$3 = screen 1,24,3 : if $3 = "Do " then print "Y" : sa-R : endif>

If there's no message, the subroutine will be ignored. If there is, it will 
answer "Yes" to permit a duplicate on the desktop. Then rename the file in 
the <sa-R> macro.

   |
 -(+)-
   |
   |
     ...Will
                    (W.NELKEN1, CATxx, TOPx, MSG:xx/M530)





                   >>> BYTEWORKS PRODUCT ANNOUNCEMENTS <<<
                   """""""""""""""""""""""""""""""""""""""

ORCA/MPW?      Product Announcement
"""""""""      --------------------

            GS-24 MPW IIGS ORCA/C  $175

Well, the name pretty much says it all! Here's ORCA/C running under MPW. 
It's pretty much a straight port of ORCA/C 2.0.3, but there are a _few_
extras... See file 4770 for details, or e-mail me with your mailing address
and ask for the tech sheet.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP11, MSG:501/M530)




<<<<<   We got permission from Apple to continue shipping the latest
"""""   version of MPW IIGS Pascal.

            APDA-18  MPW IIGS Pascal   $150

I don't have any immediate plans to convert ORCA/Pascal to MPW.  The reason
ORCA/C was ported is someone paid me a fair amount of money to do it.  I
don't expect to make much, if anything, off of the MPW IIGS ORCA/C release. 
If I were to port ORCA/Pascal, I'd have to have a clear view of how I would
make enough money from the project to at least cover myself. 
(Surprisingly, it may happen someday.  :)

> Does ORCA/C for MPW fill in the OMF segment number fields for object
> files like it should?

Back up.  First, there is no requirement in any documentation, nor was
there _ever_ any discussion that would make this happen.  One, ahem, to be
polite, person at Apple had a bug up his rear about the segment numbers,
and happened to be the person to port the MPW tools.  He knew when he did
it that it wasn't required, and in fact would not work with existing
software on the Apple IIGS, and furthermore that I could not _make_ it work
with the ORCA products without sacraficing features in my compilers and
assemblers. "...like it should..." is entirely and absolutely wrong.  It
shouldn't.  The problem is a DELIBERATE bug in Link IIGS, not a failing of
any of the ORCA languages.

Having said that to make sure it's clear what the history is, yes, MPW
IIGS ORCA/C does insert segment numbers.  As a rsult, it does not support
partial compiles, but then, MPW doesn't either, so under MPW this was not
a big sacrafice.

> The signedness of plain characters is always in question.

Yes, the ANSI standard leaves it up to the implementor whether a character
is a signed or unsigned thing.  However, an implementation that takes that
freedom and decides to make strings be both, depending on the content, is
not to be trusted.  C is unpredictable enough without the foolishness of
context-sensitive syntax for strings.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP11, MSG:508/M530)




Mike,

There's a bug in the latest MPW Pascal IIGS (I assume I have the latest,
even though the -l switch lists just plain old "1.1" and no beta level info)
where it will crash at the end of a compile under either of the following
conditions:

 1. An MPW partition greater than 16MB.

 2. Using VM and *ANY* MPW partition size.

 3. Using RAMDoubler in standard mode (no VM step down) and *ANY* MPW
    partition size.

For one project I need a very large partition, because of MPW cache
fragmentation. However, I'm forced to use a smaller size and quit and re-
launch after every couple of compiles.

The chances of getting MPW Pascal IIGS fixed (unless you've got the source
now!) are pretty slim (read: zero), hence my question regarding
ORCA/Pascal.


As an aside, should we be asking who in the Apple II world would be paying
you specifically to port ORCA/C to MPW? Or more specifically, what they're
working on!

Regards,
 Richard
                    (RICHARD.B, CAT36, TOP11, MSG:511/M530)




<<<<<   > As an aside, should we be asking who in the Apple II world would
"""""   > be paying you specifically to port ORCA/C to MPW?

No one.  The company wanted to use ORCA/C for Super Nintendo development.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP11, MSG:513/M530)



                        >>> EXPLAINING LOGIN <<<
                        """"""""""""""""""""""""

I know I've asked this before, and I know someone was kind enough to answer
me then, but I've been "out of it" for a while and I've quite forgotten.
 
What _exactly_ does one put in the Login file on in the ORCA shell so that
the keepname defaults to the <filename>.pas filename?
 
Thanks you so much for your consideration.

     ________
      |homas
                 (T.COMPTER, CAT36, TOP18, MSG:105/M530)


>>>>>   If you start with the source code file "filename.pas", then the
"""""   KeepName "$" variable will automatically create filename.root,
filename.a and filename (the exe program), when you do the
"cmpl filename.pas" command. This is the way it would look in the login
file:

    set    KeepName "$"
    export KeepName

The manual really didn't give an example of HOW to do this.

In order for this to take effect, after adding it to the login file, I had
to quit/relaunch ORCA, as just rerunning the login exec file didn't work. I
used the prompt variable along with this, as that provides a noticeable
view that something has happened. Just rerunning the login exec file didn't
change the prompt.

    set    Prompt "-"
    export Prompt

Using this:

    set    KeepName "%"
    export KeepName

will cause the current filename to be used. This is great for compiling,
but the cmpl command will fail as the linker tries to overwrite the source
file. filename.pas would become filename.pas.root and filename.pas.a. The
exe file would be filename.pas (the source file).

- James - [IMAGE]
                    (J.GRAY38, CAT36, TOP18, MSG:106/M530)


 
<<<<<   > Just rerunning the Login file doesn't change the prompt.
"""""
Actually it does.  What happened to you is even more complex.  Things like
exported variables that are changed in a script file are reset when the
script file finishes.  That helps you write script files that can call
other script files without affecting the main shell, or other script files
that use them.  In effect, what you get is variable scoping that starts
with the script file and extends to any script file it calls.

When the Login file is executed automatically by the shell, it's treated as
the top level in this variable scoping mechanism, so anything else you do
until you exit the shell has access to exported variables from the Login
file.  That special status doesn;t apply if you run the Login file from the
command line; it's treated like any other script file.

Of course, sometimes you want a script to change the local envrionment.
That's what the EXECUTE command is for.  Try

     Execute 6/Login

and I think it will do what you were expecting in the first place.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP18, MSG:107/M530)




                               [*][*][*]




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


    o   NEW FILES



                          >>> NEW FILES <<<
                          """""""""""""""""


File # 4780  AW51UP.BXY  (ALL)
Uploaded on 6/28/95 by BRANDT
About 319K (d/l time approx. 30 minutes @ 2400 baud)

This archive updates AppleWorks 5.0 to 5.1. The archive may be distributed
freely.



File # 4775  BINHEXINFO.BXY  (ALL)
Uploaded on 6/26/95 by E.WAGNER10
About 10K (d/l time approx. 1 minute @ 2400 baud)

Specifications for BinHex 4.0, a binary to ASCII encoding scheme for the
Macintosh.  This information may be useful for development of programs that
can decode this format to extract useful information.



File # 4770  MPW.ORCAC.TXT  (ALL)
Uploaded on 6/19/95 by BYTEWORKS
About 3K (d/l time approx. 20 seconds @ 2400 baud)

Here's the ASCII description of MPW IIGS ORCA/C, an ANSI C cross compiler
that runs under MPW on the Macintosh. For a printed copy and a catalog
listing all our products, contact Byte Works at GEnie's e-mail ByteWorks,
or via internet at MikeW50@AOL.COM.  We'll need your mailing address to
send you the printed material!



File # 4762  GNO.RSOUND.BXY  (GS)
Uploaded on 6/11/95 by D.MITTON
About 74K (d/l time approx. 7 minutes @ 2400 baud)

This is a simple(?) rSound playing utility for use under the GNO/ME
environment.  The ORCA/C source is included so re-compiling under another
shell shouldn't be a problem.  A sample sound file is also included.
Enjoy!!!  This library has been TOO quiet lately!!! :-)



                               [*][*][*]


     Well, unfortunately D.MITTON is  right, the library has been
     much too quiet.  If  you watch the  file numbers, you'll see
     that there are lots of files being uploaded.. but almost all
     of these are related to beta testing, and thus are in hidden
     libraries.

     While it is great that much of A2Pro's library activity has
     been involved  with new  software development,  it would be
     nice if  we had  more publicly available  files.  So please
     upload anything  you think other programmers  would like to
     have,  be it utilities,  source  code, or files  containing
     useful information like E.WAGNER10's text file about Binhex
     files.  Even if your source code isn't beautiful, we'd like
     to see it...  There are a lot of programmers  out there who
     are just  getting started  and need  sample source to guide
     them.


                               [*][*][*]




[EOA]
[RTC]//////////////////////////
                   RTC WATCH /
/////////////////////////////
Bits and Pieces from A2Pro Real Time Conferences
""""""""""""""""""""""""""""""""""""""""""""""""
By Russ Nielson
   [R.NIELSON1]


     o   A2Pro WEEKLY RTC SCHEDULE

          o   BITS & PIECES FROM THE A2Pro RTC



                     >>> 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.




                >>> BITS & PIECES FROM THE A2Pro RTC <<<
                """"""""""""""""""""""""""""""""""""""""

<Erick (E.WAGNER10)>  can one of the Double Hi-Res modes support the 4 text
                      lines at the bottom?

<Russell (R.NIELSON1)>  yes.  Double hi-res for page 1 can I know.  The
                        text is in 80-col mode and very hard to read on
                        some monitors, but it is there.

          I've written a few double hi-res programs, nothing great but I
          did it :)

<Erick>   let's see, double hi-res mode increases the X or horizontal
          pixels available to you.  what about the Y or vertical pixels?
          Is it still 192 (0 to 191)?

<Russell> One of my shape grab double-hires utility programs used the 4
          lines of text :)

          Double Hi-res is just doubling the horizontal resolution.
          Same vertical resolution.

<Erick>   I wonder how many rows of pixels those 4 text lines at the bottom
          consume?

<Russell> 32 pixels

<Erick>   8 rows per line x 4 lines = 32
          or 7 x 4 = 28

<Russell> 32 / 4 = 8 pixels per char

<Russell> um.. 192 / 24 = 8 pixels for character :)

<Erick>   so 192 - 32 would be 160 vertical positions

<Russell> Erick, planning on writting a double hi-res arcade game soon?

<Erick>   not a game, but would like to use the DHR screen for a graphical
          representation of the control panel of my musical keyboard as
          well as a 3-octave keyboard layout

<Russell> yeah? Cool!

<Erick>   I used TimeOut Paint to create the 3-octave keyboard on Sunday
          night, it turned out pretty good for a non-artist!

          I would like the keyboard layout to be on the same screen as the
          controls (knobs and switch)

<Russell> Erick: So you want to use the 4 text lines for the keyboard layout?

<Erick>   nope, I may want to display some messages down there

<Russell> Erick: You lost me for a sec. What's this keyboard layout?

<Erick>   a 3-octave keyboard to match the one on a musical keyboard

<Russell> oh.. this 3-octave keyboard would be on the Double-hi-res screen?

<Erick>   my keyboard has a parallel port which I can detect which key is
          being pressed or via a pgm, tell the keyboard circuitry to play a
          particular note (just like the user pressed the key)

<Russell> Erick: that sounds cool.

          So do you play the keyboard or does the program control the
          keyboard?

<Erick>   both!

<Russell> oh!  :-D

<Erick>   it's a bi-directional parallel port

<Russell> It's like a simple MIDI recording studio!

<Erick>   sorta, only this keyboard is not MIDI

          this particular keyboard has a memory that can hold 16 patches
          (combinations of various switch and knob settings -- a digitized
          representation of the actual control)

          I could write a program to grab these patches out of the
          keyboard's memory and save them to disk, where I could have
          hundreds of thousands (a library)

          also, not only can I tell which key is being pressed, but I can
          tell the keyboard to act as if a person was playing it (a
          sequencer)

<Russell> So the program can make the keyboard play?   AWESOME! :)

<Erick>   the "challenge" to all of this is keeping track of time (the
          duration of notes and pauses)

<Russell> Erick, would be a neat test to implement this into my Duet
          program, have it send the notes out thru the parallel port and
          have th keyboard play! :)

<Erick>   however, this is a "lead synthesizer" (a monophonic keyboard --
          one note at a time) as opposed to a polyphonic keyboard




                               [*][*][*]


    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!

    This month's RTC  bits and pieces  came from A2Pro's  Tuesday
    night  conference, hosted  by  Russell Nielson  (R.NIELSON1).
    Russ is an 8-bit programming expert; he is perhaps best known
    for some  really  great arcade  games published  on the 8-bit
    version  of  Softdisk.   Some of my  [the editor's]  personal
    favorites  include  Shatter Star  (Softdisk #112)  and  Vigor
    (available various  places  online,  including A2's library).

    Anyway, if  you are  programming  an Apple IIe, Apple IIc, or
    any other 8-bit Apple II, the  Tuesday night RTC is the right
    place  for you  to ask any  programming  questions  you have.
    Russ is sure to be able  to answer your  question, and if not
    he can tell you where to go for further assistance.  Also, he
    is a great guy, and even  if he can't  help solve all of your
    programming   problems,  he  can  engage  in  an  interesting
    conversation dealing with just about anything. :)


                               [*][*][*]




[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 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
 """""""""  o Mike White          [MWHITE]       Managing Editor


  APPLE II  o Doug Cuff           [EDITOR.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] EDITOR
     """""

     ATARI  o Sheldon H. Winick   [GELAMP.ST]    ATARI EDITOR
     """""  o Bruce Smith         [B.SMITH123]   EDITOR/TX2
            o Mel Motogawa        [M.MOTOGAWA]   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
            o Timothy V. Steed    [T.STEED1]     ST Staff Writer


       IBM  o John Peters         [GENIELAMP]    IBM EDITOR
       """  o David Leithauser    [D.LEITHASUER] HyperRead Editor


 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     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
            o Lloyd E. Pulley     [LEPULLEY]     Contributing Columnist



\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
 Opinions expressed herein are those  of the individual authors, and do
 not  necessarily  represent  opinions of  GEnie Information  Services,
 GEnieLamp Online Magazines, or T/TalkNet  Online Publishing.  Bulletin
 board messages are reprinted verbatim, and are included in this publi-
 cation with permission  from GEnie Information Services and the source
 RoundTable.   GEnie Information Services,  GEnieLamp Online Magazines,
 and T/TalkNet Publishing  do not guarantee the accuracy or suitability
 of any information included herein.   We reserve the right to edit all
 letters and copy.

 Material  published in  this edition may be  reprinted under the  fol-
 lowing 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.  Please include the fol-
 lowing at the end of all reprints:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////////////////
 The  preceeding article  is reprinted  courtesy of  GEnieLamp  Online
 Magazine.  (c) Copyright 1995 T/TalkNET  Publishing and  GEnie Infor-
 mation Services.  Join GEnie  now and receive $50.00 worth  of online
 credit. To join GEnie, set your modem to 9600 baud (or less) and half
 duplex (local echo).  Have the modem dial 1-800-638-8369.  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. GEnie
 will  then  prompt  you  for   your  signup  information.   For  more 
 information call (voice) 1-800-638-9636.
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[EOF]
