

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

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


                     ~ WELCOME TO GENIELAMP A2Pro! ~
                       """""""""""""""""""""""""""
            ~ Condensing Text ~ SPOTLIGHT ON: Tim Buchheim ~
            ~ Text Windows in BASIC ~ Checking the Version ~
            ~ ORCA/Pascal Questions ~ ORCA Version Numbers ~
                  ~ HOT NEWS, HOT FILES, HOT MESSAGES ~

 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
  GEnieLamp A2Pro      ~ A T/TalkNET Publication ~       Vol.5, Issue 31
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 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? <<<
             """""""""""""""""""""""""""""""""""""""""""""""""
                            ~ October 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, great
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  <<<
                          """""""""""""""""""""""""
                        ~ A Letter From the Editor ~


HAPPY BIRTHDAY TO ME.. AND GENIE!   Today (October 1) I turn 18 :)
"""""""""""""""""""""""""""""""""   This month (I'm unsure of the day, but
I think it's the 7th) GEnie celebrates its 10th anniversary!  Yes, GEnie is
a decade old.  It has been around longer than AOL, Prodigy, or MSN. :)

Looking back over GEnie's history, it's obvious that the world of online
services has changed drastically!  When GEnie started, its only competition
was CompuServe.  GEnie's rates started at $12/hour... and that was for
300 baud after 6:00 pm!  $3/hour for 14,400 bps is much nicer, and a
$2/hour surcharge for Prime Time usage is certainly better than the $9 or
so it was a few months ago.  (I don't even want to think about what it was
when GEnie started!:)

One of the original RoundTables on GEnie was A2.  At that time, there was
no separate A2Pro, however.  We programmers only got a few categories in
the A2 Bulletin Board.

I wasn't around at the time, but I've been told that A2Pro was created
because Apple II users in A2 were sick of reading what Apple II programmers
talked about.

When I first joined GEnie, GEnie*Basic services still existed..  those
areas were free during non-prime hours, and I remember hanging around those
RoundTables quite a bit :)

If the rates hadn't changed in June 1992, I might never have become so
involved in A2 and A2Pro...  (Although my parents weren't real happy
the first few months, when my GEnie bill skyrocketed because I had not
yet adjusted to hourly rates. :)

GEnie has had its ups and downs since then, but the new reductions in
surcharges this year and the new features such as internet access and
Zmodem uploads have certainly outweighed any negative aspects of change.



                                              -- 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
    most older ones are there.


                              [*][*][*]


           //////////////////////////////////// GEnie_QWIK_QUOTE ////
          /                                                        /
         /  Never attribute to conspiracy what can be adequately  /
        /   explained by simple stupidity.                       /
       /                                                        /
      ///////////////////////////////////////// MITCHWAGNER ////



[EOA]
[DIR]//////////////////////////////
          A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
By Tim Buchheim
 [A2PRO.GELAMP]


    o   A2Pro STAFF LIST

         o   SPOTLIGHT ON: Tim Buchheim



                        >>> A2Pro STAFF LIST <<<
                        """"""""""""""""""""""""

                          ______________________________________________

                           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)




                     >>>  SPOTLIGHT ON: Tim Buchheim  <<<
                     """"""""""""""""""""""""""""""""""""


AND THIS MONTH...   This month we take a look at me, the editor of
"""""""""""""""""   GEnieLamp A2Pro.  I had hoped to have Sloanie
write about himself this month, but he's still busy getting used to
college life.  And, since it's my birthday, I guess it's a good time for
me to look back over my first 18 years...


<Tim Buchheim>   I guess I should start at second grade.  Why?
''''''''''''''   Well, that was when I first started using computers.
Starting in second grade my class went to the school's computer lab once
a week to learn to type.  I used "MicroType: The Wonderful World of Paws"
on an unenhanced Apple IIe.  At the time I thought the 6 color hi-res
graphics were pretty cool. :)  After we all learned to type fairly well, we
learned some simple LOGO programming.  At the time, I didn't really
understand what I was doing that much..  we only used the simple drawing
commands, FD, LT, RT, etc.  We never did any complicated programming, we
just moved the turtle around on the screen to draw pictures.

In third grade, we did some more typing practice, but mostly we used some
math programs, from companies like Sunburst and MECC.  In fourth and
fifth grades, we used FrEdWriter.  It wasn't until sixth grade that I began
programming again, this time in Applesoft BASIC.

During these years, I used the Apple IIgs a few times, because two of my
friends had them.  So around sixth grade, I got one, as did two more of
my friends.  (ours were ROM 3, though, which was nice.  The other two had
ROM 01s.:)

To give you an idea of about when this was, my original system disk from
Apple has System 5.0.2 on it.  Nope, I never had to suffer through those
ProDOS 16 years like so many of you ;)

In seventh grade, I took the only computer class offered at my school. We
used MicroType: The Wonderful World of Paws, FrEdWriter, and FrEdBase (a
database program which I haven't seen anywhere since) during the first
semester.  In the second semester, we used LOGO and Applesoft..  this
time I learned some of the more powerul features of LOGO (although still
not that much) and did a lot with Applesoft.

I was getting Nibble magazine, so I did a lot of Applesoft
experimentation at home.  (unfortunately, I have lost just about all
those programs I wrote..  I recovered a few off some aging 5.25" floppies a
few years ago, and uploaded them to GEnie, but none are worth the
download time or disk space :)

In eigth grade, I was a teacher's aid for the programming class.  The
teacher had recognized the fact that I knew more about Apple IIs than she
did.  I spent that class period correcting homework, writing programs,
improving my typing speed, fixing broken printers and disk drives, and
playing games on the brand new Mac Classics :)

In ninth grade I took a BASIC programming class, but at my high school we
had ancient 8088 machines with CGA monitors.. some didn't even have 640k of
memory.

This is where I learned to hate MS-DOS and Intel chips. :) oh, and
PowerBasic sucks, too.

At home I was learning to use ORCA/Pascal (v1.2, which I had gotten in
8th grade, I think, but hadn't used much).  I didn't have any toolbox
manuals, except TBR3, so I wasn't able to do much. :)

In January of my freshman year I got a modem..  I signed up for GEnie a few
days later (it was the cheapest, and the Incider/A+ had just rated it the
best for Apple II support.)

In 10th grade, I got ORCA/M, and finally started learning some assembly.
I got my first job on GEnie as the assistant editor for GEnieLamp A2Pro.
I edited the library and RTC columns.  As part of my job, I attended the
A2Pro RTC nearly every single night.  That's when I really started
programming.

I picked up the GS Hardware ref and the GS/OS ref.  I started to write some
fairly decent programs in Pascal.  Around March or so I got my first
sysop position, as host of the Friday night RTC in A2Pro.  [blatant plug
mode on]  I still host that RTC.. come visit me between 9:30 and 11:00 pm
Eastern Time on Friday nights!  [plug mode off]

I finally got TBR 1 and 2 at the end of the school year... and during the
summer I went to KansasFest '94.

During 11th grade, I didn't get much programming done, because I kept
spending more and more time on GEnie :)  In January of this year, I took
over as editor of GEnieLamp A2Pro, because Nate Trost went on a five
month vacation to Europe :)

I also took on some more responsibility in A2Pro, although my exact
position isn't clearly defined, except for that same Friday night RTC.

This summer I went to KansasFest '95 (see the August issue for the complete
story!) which wasn't quite as fun as KansasFest '94, but was still pretty
cool. :)

Now I'm a senior in high school, taking AP Computer Science, which is
much too easy for me, but it's the most difficult class they offer.  It
is forcing me to learn ISO Standard Pascal, though.  You really
appreciate ORCA/Pascal after you try to write something which meets the ISO
standard!  Try putting a {$ISO+} directive at the start of a program and
count how many "Not ISO standard" errors you get! :)

Today (October 1) is my 18th birthday..  pretty cool, I think. :)




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


    o   BULLETIN BOARD HOT SPOTS

         o   PROGRAMMER'S TIPS

              o   MESSAGE SPOTLIGHT




                      >>> BULLETIN BOARD HOT SPOTS <<<
                      """"""""""""""""""""""""""""""""
                        ~ Where All the Action Is! ~


 [*]  CAT 3,  TOP 4,  MSG {108}....The Merlin 16+ Assembler
 [*]  CAT 8,  TOP 18, MSG {4}......ProDOS FST
 [*]  CAT 9,  TOP 7,  MSG {206}....Applesoft BASIC help please!
 [*]  CAT 13, TOP 4,  MSG {128}....Looking for...
 [*]  CAT 15, TOP 3,  MSG {46}.....Miscellaneous Tool Set
 [*]  CAT 15, TOP 4,  MSG {144}....QuickDraw II
 [*]  CAT 15, TOP 34, MSG {78}.....Text Edit Tool Set
 [*]  CAT 20, TOP 17, MSG {74}.....General Apple IIgs questions




                         >>> PROGRAMMERS' TIPS <<<
                         """""""""""""""""""""""""
                    ~ Helpful Advice from the Experts ~


ZERO PAGE LABELS   Now, as soon as you guys quit reading this question, the
""""""""""""""""   first thing you're going to say is RTFM... I've read the
friendly manual <g> and it's not making sense to me.

I'm using Merlin 16+ v4.08. My serial # is 16001.

So I'm writing a program in assembly, and I decide that I need a 1 byte
puka to hold some value, maybe inc it at some time. The way I can do it, is
to look at my zero page chart and pick out a free spot, and refer to it
by memory byte number directly. I don't like this.

I'd rather say "Assembler, grab me a byte of memory... call it puka1",
and be able to refer to that label without knowing or caring where it
actually is located. Be able to lda puka1, and dec puka1, etc...

Now I've read the book on labels, and define byte, I need some
clarification. Sorry for ranting.

                    (C.OREM, CAT3, TOP4, MSG:108/M530)



>>>>>   Chuck O,
"""""
>> So I'm writing a program in assembly, and I decide that I need a 1 byte
>> puka to hold some value, maybe inc it at some time. The way I can do it,
>> is to look at my zero page chart and pick out a free spot, and refer to
>> it by memory byte number directly. I don't like this.

Sample Merlin-16+ v4.08 Source...
*
* My normal start of source...
*
          case se        ;all my source uses case sensitive labels    
          tr on          ;truncate generated bytes
          tr adr         ;truncate addresses
          xc             ;enable 65C02 mode
          xc             ;enable 65C816 mode
          mx %00         ;16 bit A,X,Y
          rel            ;this will be OMF code in the end
          typ  S16       ;an S16 application
*
* Direct Page layout...
*
          dum $0000      ;start a dummy section
Pucka1    ds   2,0       ;this will be a word variable
Pucka2    ds   1,0       ;this will be a byte variable
Pucka3    ds   1,0       ;this will be another byte variable
          dend           ;end the dummy section
*
* Here resideth some code...
*
          phk            ;stack my code bank
          plb            ;use as my data bank
*
          jsr  GetDP     ;call subroutine that gets my direct page
          bcs  Fatal     ;Oooops...
          tcd            ;now have my direct page set up
*
          stz  Pucka1    ;zero out Pucka1
          stz  Pucka2    ;zero out Pucka2 and Pucka3
*
          inc  Pucka1    ;bump the first variable
          sep  $30       ;8 bit A,X,Y here
          lda  #'A'      ;something for the acc
          ldy  #'B'      ;and something for Y also
          sta  Pucka2    ;setup Pucka2
          sty  Pucka3    ;and Pucka3
          rep  $30       ;back to 16 bit A,X,Y
*
* yada yada yada
*

Another approach would be to place a bunch of DS's at some place in your
program (typically at the end) and use these (instead of eating up valuable
bank zero space). Preferable, unless you're trying to keep close tabs on
the cycle counts.

Does that cover your question?

-Harold
                    (HAROLD.H, CAT3, TOP4, MSG:109/M530)



>>>>>   >So I'm writing a program in assembly, and I decide that I need a 1
"""""   >byte puka to hold some value, maybe inc it at some time. The way I
        >can do it, is to look at my zero page chart and pick out a free
        >spot, and refer to it by memory byte number directly. I don't like
        >this.

        >I'd rather say "Assembler, grab me a byte of memory... call it
        >"puka1", and >be able to refer to that label without knowing or
        >caring where it actually is located. Be able to lda puka1, and dec
        >puka1, etc...

Try:

puka1     =    $18  ;Any number between 0 and $FF

Don't forget to set the computer to one byte mode if that is all you want
to inc.

Clay

Warning!  Opinions will change due to new facts.
Clayburn W. Juniel, III - Effective Software Solutions
clay1@primenet.com
                    (C.JUNIEL, CAT3, TOP4, MSG:110/M530)



>>>>>   >So I'm writing a program in assembly, and I decide that I need a 1
"""""   >byte puka to hold some value, maybe inc it at some time. The way I
        >can do it, is to look at my zero page chart and pick out a free
        >spot, and refer to it by memory byte number directly. I don't like
        >this.

If you don't need the value to be a zero page location and you aren't being
memory concious, you can do what I so often do.  I place little storage
areas all over my programs when I need a quick place to stash some data. 
For example: (in 8-bit mode)

Start     lda  $c000          ; get keypress
          bne  :none          ; none there
          sta  :puka1         ; hold it

     ;    blah blah blah      ; do something that destroys the accum here
          inc  :puka1
          dec  :puka1

          lda  :puka1         ; get back that keypress
          rts                 ; return

:puka1    ds   1         ; holds one byte

Of course you could set up a temporary data storage in your program to look
something like this: (if you're concerned about saving space)

puka1     ds   1         ; temp storage area(s)
puka2     ds   1
puka3     ds   3

Then reference these locations as needed.

Harold's example is a good one if you need a zero page location.

                    (R.NIELSON1, CAT3, TOP4, MSG:111/M530)



<<<<<   Gentlemen,
"""""
Thank you for the help. I'm now going to try and digest this, so I can
ask more intelligent questions later.

                                    Thanks again,
                                              Chuck

                    (C.OREM, CAT3, TOP4, MSG:112/M530)





TEXT WINDOWS IN BASIC   I'm having trouble getting some display windows to
"""""""""""""""""""""   work the way I want and I'm wondering what I'm
doing wrong.

My intention is to have a data entry line (Vertical line 19, for example)
and after the data is entered, that the entry moves up to a Display area
(lines 8 to 11, for example) which will display the just entered data line,
while the cursor moves back to the Entry area for a new input line.  The
subsequent data lines will also be displayed in the Display area with the
newest lines forcing the oldest out the top of the Display area window.

I've tried the following lines:

 50   V = 9: VV = 19
 100 POKE 34,8 : POKE 35,11 REM: DISPLAY WINDOW
 120 FOR Y = 1 TO 5
 130 VTAB (VV): HTAB 1: INPUT "";A$ : REM Get Data in Data Entry Line
 140 B$ = A$
 150 VTAB (V): HTAB 1: PRINT B$; : REM Print data in Display Area
 160 V = V + 1
 170 NEXT Y

This code does display the data in the general display area, but I
sometimes get double-spacing between entries, and the data just continues
beyond the bottom of the Display window I've set.

Any ideas on what I'm doing wrong ?   I haven't done any setting up of text
window areas before, but I want to use this approach now.

Thanks.

Stan Sztaba
                    (S.SZTABA, CAT9, TOP7, MSG:206/M530)



>>>>>   Your "window" code has two problems: first, the INPUT line is below
"""""   the bottom window. The Monitor sees this as print below the bottom
of the window and scrolls the window up at each INPUT, giving you the 
double-spacing.  Second, once variable V exceeds the window bottom, it will
print B$ below the window and won't scroll right. Try these fixes to the
code you listed in msg 206:

 125 POKE 35,24
 145 POKE 35,11
 165 IF V > 11 THEN V = 11

TomZ
                    (A2.TOMZ, CAT9, TOP7, MSG:207/M530)



>>>>>   Stan,
"""""
What Tom posted was correct, although there is a problem with the display
window not scrolling when displaying the last line.  To ensure that the
display window scrolls properly when displaying lines at the last line in
the window, some tricks are needed.  You may want to try this code:

  10   TEXT : HOME 
  20   VT = 8: REM    Display Window Top
  30   VB = 11: REM   Display Window Bottom
  40   IL = 19: REM   Input Line
  50   V = VT: REM    Starting Display Line
  55   L$ = "----------------------------------------": REM  40 dashes
  60   VTAB VT - 1: HTAB 1: PRINT L$
  61   VTAB VT - 1: HTAB 12: PRINT " Display Window ";
  62   VTAB VB + 1: HTAB 1: PRINT L$
  90   V = V - 1: REM  Adjust down for later
  100  POKE 34,VT - 1: POKE 35,VB
  120  FOR Y = 1 TO 8: REM  Number of entry lines
  125  POKE 35,24: REM   Drop bottom window for input
  130  VTAB IL: HTAB 1: INPUT "";A$: REM  Get data entry line
  140  B$ = A$
  145  POKE 35,VB: REM   Set it back to bottom of display window
  150  V = V + 1
  155  IF V > VB THEN V = VB: VTAB V: HTAB 1: PRINT : REM  Scroll
  160  VTAB V: HTAB 1: PRINT B$;
  165  IF V > VB THEN V = VB
  170  NEXT Y
  180  VTAB 20: POKE 34,0: POKE 35,24: REM  Full screen again
  190  END 

I have done a lot of text window managing via Applesoft.  I have quite a
few programs that have a display area of the screen where output from a CAT
command will go while the user remains at a data entry line, just like you
are trying to do.

If you don't feel like typing in this whole program there is a neat trick
that you can do that I always use.

1.  Save the text program above to a file named SCROLL.EXEC onto a disk
    that has ProDOS and BASIC.SYSTEM.
2.  Boot the disk and you'll be in BASIC.SYSTEM at the "]" prompt.
3.  Type NEW to clear the memory. (Even though it is empty)
4.  Type EXEC SCROLL.EXEC.  This will take the SCROLL.EXEC text file and
     process it as if you are typing it in.
5.  Now save the program SAVE SCROLL.
6.  Do a LIST and you will see the program in memory.

If you ever want to generate a text listing from an Applesoft program you
can do it easily.  This is what I did to get my program listed here.

1.  Load the Applesoft program into memory. (i.e. LOAD PROGRAM)
2.  Add this line to the end of the program:

     63333  D$=CHR$(4): F$="PROGRAM.TXT": PRINT D$"OPEN"F$:PRINT D$"WRITE"
            F$: LIST - 63332: PRINT D$"CLOSE

3.  Now type GOTO 63333 and the PROGRAM.TXT file will be generated.  Now 
    you can use this file anyway you want, like posting it to the BB.  :)

- Russ
                    (R.NIELSON1, CAT9, TOP7, MSG:208/M530)





CONDENSING TEXT   Y'know how if Finder or Standard File doesn't have enough
"""""""""""""""   room to fit some text into a space, it will use that
condensed-kinda font?  What is that, and how can I use that font when I
need it?

Thank ya,
Bret
                    (B.VICTOR1, CAT15, TOP4, MSG:144/M530)



>>>>>   Bret: that font is Shaston 8 with CharExtra set to -1, if I'm not
"""""   mistaken.

Sheppy
[Team PPCPro]
                    (SHEPPY, CAT15, TOP4, MSG:145/M530)



>>>>>   That's right - Shaston 8 with CharExtra set to -1.  The toolbox
"""""   call DrawStringWidth will draw a string in an alloted space, and if
the space isn't enough, it'll first set CharExtra to -1 (to scrunch the
characters together) and then if that's still not enough space, it'll
truncate the string at a place of your choosing (beginning, middle, or end)
and insert an ellipsis (those three ... dots) where the truncation took
place.  It's a great tool call.

                    (WANKERL, CAT15, TOP4, MSG:146/M530)



>>>>>   Note that DrawStringWidth is only present in System 6.0.1. (And is
"""""   by far the most useful of the new QuickDraw II Auxillary calls.:)
It's on page 19 of the 6.0.1 docs.

                    (A2PRO.GELAMP, CAT15, TOP4, MSG:147/M530)



<<<<<   DrawStringWidth -- right on!  Thanks, guys!
"""""

-Bret
                    (B.VICTOR1, CAT15, TOP4, MSG:148/M530)





TEXTEDIT TROUBLES   I'm having trouble using the Text Edit control and
"""""""""""""""""   could use some advice.  Basically, I'm reading a file
and then placing the characters it contains in to a previously reserved
area of memory. This area is then used when I create the Text Edit control.
During this process the colors of the characters are changed depending on
certain characteristics of the original file.  This is done by using an
embedded change as per LETextBox2.  The only change is to the foreground
color.  No other changes to text style are made.

Everything works until there are more than approximately 1024 ($400)
changes in color.  When this happens, the computer freezes and requires a
reboot.  I have stepped through the code using GSBug and the problem occurs
when the control is created.  The systems does not return any error code,
it just sits there.

It is possible to check for the number of color changes and stop the
process before the "Magic number" is reached, but I would appreciate a more
elegant solution.


Thanks,

Bob
                    (R.HEWITT5, CAT15, TOP34, MSG:78/M530)



>>>>>   I seem to remember that the LETextBox2 kind of style changes
"""""   doesn't work very well... but that might be in exporting text, not
importing.  Fuzzy memory here.  :-)  My advice is to try using a different
style type instead of LETextBox2.  I've also run into problems with
TESetText not working when there are a lot of style changes, but TEInsert
works fine.  So, option number two would be to create an empty control and
then use TEInsert to shove the text/styles in there.

                    (WANKERL, CAT15, TOP24, MSG:79/M530)



<<<<<   Thanks for your suggestion of using TEInsert instead of TESetText.
"""""   Unfortunately it didn't help.

 > Everything works until there are more than approximately
 > 1024 ($400) changes in color.  When this happens, the
 > computer freezes and requires a reboot.

When I started this project, I was under the impression that I knew a
little about the TextEdit tool set.  After trying your suggestion (and a
few other things) I have confirmed that I know less than I thought. I
must have something seriously wrong with the way I'm setting things up. 
Even without the style changes, things don't act the way the manual
describes. I'm going to have to go back and double check what I've done
wrong.


 Bob
                    (R.HEWITT5, CAT15, TOP34, MSG:80/M530)



>>>>>   I didn't see the original post on this, but TextEdit really weirds
"""""   out when you have lots of style changes -- especially if your
source text is in rTextForLETextBox2 format.

 Sheppy
 [Team PPCPro]
                    (SHEPPY, CAT15, TOP34, MSG:81/M530)



>>>>>   yeah, TextEdit seems to have quite a few bugs crawling around in
"""""   it..

                    (A2PRO.GELAMP, CAT15, TOP34, MSG:82/M530)





NDAS WITHOUT AN APPLE MENU?   Hi Everybody!
"""""""""""""""""""""""""""

I'm sorta new to the IIgs programming world, so here goes...

I'm working on a rudimentary 'KidDesk' type project for the IIgs to keep my
kids out of the Finder -- where they're extremely interested in the trash
can... :)

It's fairly straightforward as a program launcher, but my question is this:
Is there a way to open desk accessories without having to choose them from
the Apple menu?  Sort of like clicking on the calculator opens the
Calculator DA, notepad opens a NotePad DA, etc...

I'm using ORCA/C, Genesys & a lot of code from M.Westerfield's ToolBox/C
series.  Also, this is my first 'real' project outside of the series.

Can anyone point me in the right direction?  I have all toolbox
references (thru 6.0.1) plus tech notes, etc...

Thanks!

  -- Tom Bradshaw
                  (T.BRADSHAW4, CAT20, TOP17, MSG:74/M530)



>>>>>   Well, to open an NDA, call _OpenNDA (page 5-20 of Toolbox Reference
"""""   Volume 1) with the NDA's ID number. (The ID number is the menu ID
assigned to the NDA when you use _FixAppleMenu to add NDAs to the Apple
menu)

I'm not sure how you'd know which ID number to use.  (Unless maybe you used
_FixAppleMenu to add the NDAs to a menu, then parsed the menu record..  if
you really feel like doing that.. :)


I'd just keep it simple and stick with the menu :)

                    (A2PRO.GELAMP, CAT20, TOP17, MSG:76/M530)



>>>>>   I wrote a program called Quick DA that does just that.  It'll open
"""""   a NDA, CDA, or CDev for you without you having to choose it from
whatever place it is.  :-)  It has two access methods - the first is you
hit a control-key-on-the-keypad key (or control-function-key) and it'll
magically open a DA you have assigned.  The other method is via the
_SendRequest tool call... so you can request Quick DA to open a new desk
accessory named "EGOed" and poof, there it is.  You can probably tie the
_SendRequest method into any of your program quite easily.  I've even
written an XCMD for Spectrum that lets you script spectrum into opening a
DA for you, too.  It's cool.  :-)

                      (WANKERL, CAT20, TOP17, MSG:77/M530)



>>>>>   Tom,
"""""      You may be able to avoid a lot of work if you merely hide the
Trash can.  There may be a utility by Snakebyte or someone else that does
this.  Also,  Brendan Bellina wrote "No Worries" a Hypercard stack that
allows easy launching of programs, calling an NDA, and really provides a
LOT of security.  Very much like the Mac program "At Ease".  You could
easily extract the scripts to learn how to launch various programs and NDAs
with Simple Hypertalk commands.  There is also an Init called DCP that will
disable the text control panel for you, so they can't muck with your
settings. Of course, you should deactivate the CDEV control panels for
maximum security.  In  Hypercard, the command for opening NDAs is this:

  On mouseup
     domenu "calculator"
  end mouseup

And bingo, the calculator NDA opens!  You can also perform any menu 
selection in this manner, such as domenu "quit" or whatever.

 Brian Gillespie, Jaunt! Software

                  (B.GILLESPIE3, CAT20, TOP17, MSG:86/M530)



<<<<<   To Tim Buchheim,
"""""
> Well, to open an NDA, call _OpenNDA...id number...

(Slapping my forehead)...You're right!  About the ID numbers though, that
seems pretty messy.  Although, it appears to be the same order that the
NDAs are loaded in.


To WANKERL [Joe],

> I wrote a program called Quick DA...

I never thought of that.  I check it out in my back issues of GS+.  I
also want to incorporate some list managing routines based on your
'Things to Do' NDA (like picking different desktops based on each kid).
Time to wade thru some more source code...


To Brian [B.GILLESPIE3],

> ...hide the trash can... ..."No Worries" Hypercard stack... etc..

Thanks for these wonderful suggestions.  Again, the whole purpose of this
project is to get more experience in GS programming.  If I get too
frustrated, I'll look into these as stopgap measures. :)

--Tom
                    (T.BRADSHAW4, CAT20, TOP17, MSG:87/M530)





CHECKING THE VERSION   Okay guys, one more question...  :)
""""""""""""""""""""
What's the best way for my Finder Extention to check if it's running under
system 6.0.1?  (And come to think of it...  what's the best way to get
itself out of memory if it isn't?)

Thankie,
Bret
                    (B.VICTOR1, CAT20, TOP17, MSG:78/M530)



>>>>>   Bret,
"""""     To see if the user is using System 6.0.1, call _QDVersion and see
if it returns $0308.  (If you check page 17 of the 6.0.1 reference, you'll
see that the ONLY change in version 3.8 of QuickDraw II was the version
number change.  To quote the 6.0.1 ref, "QDVersion is a standard reference
for distinguishing system versions, so it had to change." :)

                    (A2PRO.GELAMP, CAT20, TOP17, MSG:79/M530)



>>>>>   I prefer to call VersionGS and see if the returned value is $0402
"""""   (GS/OS 4.02, which is what ships with System 6.0.1).

Sheppy
[Team PPCPro]
                    (SHEPPY, CAT20, TOP17, MSG:80/M530)



>>>>>   Sheppy,
"""""     yep, that works too :)

I'm not sure why Apple always mentions using _QDVersion to check for what
system software you're using, but they mention it in several places.
Here's another one: "Assuming a correct installation, requiring QuickDraw
3.7 in effect requires System Software 6.0" (Apple IIgs Technical Note #100,
June 1992 update)

of course, that is "assuming a correct installation," which might be a
bit much to ask..  QD 3.8 would be perfectly happy running in 6.0, so I
guess some twisted individual might put QD 3.8 on his 6.0 system..

GS/OS 4.02 wouldn't work w/o the current versions of certain toolsets, so
VersionGS is probably more dependable..

                    (A2PRO.GELAMP, CAT20, TOP17, MSG:81/M530)



>>>>>   Actually, what I do is load the system's rVersion resource and
"""""   check that for 6.0.1. Seems logical to me.

Regards,
 Richard
                    (RICHARD.B, CAT20, TOP17, MSG:82/M530)



>>>>>   Richard,
"""""     yes, that works.  takes longer, too. :)

                    (A2PRO.GELAMP, CAT20, TOP17, MSG:83/M530)



>>>>>   I just check the QuickDraw version.  Apple does it that way.  So I
"""""   do, too.  If someone installs noncompatible versions of things,
then they deserve to get bit.  :-)

                    (WANKERL, CAT20, TOP17, MSG:84/M530)



>>>>>   >If someone installs noncompatible versions of things, then they
"""""   >deserve to get bit.  :-)

right.  Anyone who doesn't know what he's doing should use Apple's
Installer. That's what it's for.  Anyone who does know what he's doing
should know not to put System 6.0.1's TS2/TS3 file (I think that's where QD
currently resides) on a System 6.0 disk :)

                    (A2PRO.GELAMP, CAT20, TOP17, MSG:85/M530)






                         >>> MESSAGE SPOTLIGHT <<<
                         """""""""""""""""""""""""
                   ~ Important or Interesting Messages ~


A PRODOS FST ODDITY   Why is it that when you Open a ProDOS volume
"""""""""""""""""""   directory, the modDateTime field is zeroed, but when
you do GetFileInfo, it's filled in?  (This is using System 6.0.1.)

                     (S.REEVES2, CAT8, TOP18, MSG:4/M530)





BRAM DOCUMENTATION ERRORS   Ok, I've been thru all my docs, with no luck,
"""""""""""""""""""""""""   so here's a chance for everyone else to check
as well :)

I have discovered that the listing in TBRV1 for the various BRAM
locations is filled with errors, especially when dealing with BRAM from a
ROM_03 machine (two examples, what location REALLY gets changed when you
change the mouse resolution / scaling, or when you change the DoubleClick
time (the docs are seriously wrong on these)) There are numerous other
locations incorrectly documented... (many are only off by one or two
locs, but that's enough to cause serious grief)

The locations that are covered in the System 6.0 and System 6.0.1
refrence updates however appear to be correct for both ROM_01 and ROM_03
machines, Thank You Mike, Nice Job :)

Anyway, does anyone know where I can find a =correct= listing for BRAM
locations $00 thru $51 (or higher if you have the info) besides plugging
away with CDevs and inspecting BRAM to see what changed each time?

Does anyone know what any of the "reserved" / undocumented locations are
used for? (location $81, which Apple simply noted as an "Operating System
Variable", is the size of the GS/OS disk cache :)

(no, I'm not writing something to permit illicit BRAM tweaking, this info
would only be used for informational display at boot time should
something in bram not match up with what had been previously saved to a
file on disk)

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





THE TROUBLE WITH _ALERTMESSAGE   It's been awhile since I've been in this
""""""""""""""""""""""""""""""   topic (time wise that is) but....
I'mmmm Baaaaaaaaaaaack! :)

Some nasties exist in the _AlertMessage call....

First the good news:

1) Under System 6.0.1 the Miscellaneous Toolset version is $0303
   (could not find this in the 6.0.1 docs)

2) The disk based patches to the Miscellaneous toolset which update it to
   v3.03 are automatically loaded by the system early during the boot
   process, so there's no need to place a _LoadOneTool call to ensure its
   availability. (it's loaded by the time TIF's and PIF's are loaded)

Now the bad... 

1) The strings passed to _AlertMessage are supposed to be in _AlertWindow
   format, this means that the IconSpec must be present even if the string
   will be displayed on the text screen (icon info is supposed to be
   ignored).  Passing a value of $30 (for "display no icon") should be
   legal, and infact is fine if the alert will be displayed on the SHR
   screen. But if it gets displayed on the text screen some very ugly
   things happen (including nasty display of the alert, trashed memory,
   crashing, whole bunch of uglyness...)  Specifying an icon to be used
   clears this up. (haven't tested yet with a custom icon)

2) No length limit is specified for the text used for the button name
   strings, but if one uses strings too long (and they get displayed on the
   text screen) more nastiness as described above occurs... (not sure what
   the max safe char count is yet)

3) Regardless of the value passed for standard sized windows, the one that
   is used on the text screen is always the same size (and it's always on
   the 40 column screen, regardless of the control panel settings... ick!)

I'm working on a small init that uses the _AlertMessage call to handle some
user interaction, so I'll be wading thru all the problems with this call,
and noting them here. This msg is just some preliminary findings.

-Harold
                    (HAROLD.H, CAT15, TOP3, MSG:46/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 urges  you to give  the bulletin board  area a  try.
    There are literally thousands  of messages posted from people
    like you from around the world.


                               [*][*][*]



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


    o   ONLINE SUPPORT IN A2Pro

         o   ORCA VERSION NUMBERS

              o   ORCA/PASCAL QUESTIONS

                   o   KEEP YOUR COMPILERS UPDATED

                        o   PRIZM PRINTING PROBLEMS



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





                      >>>  ORCA VERSION NUMBERS  <<<
                      """"""""""""""""""""""""""""""


SO WHICH ONE IS IT?   What is the latest version of ORCA/M? My update disk
"""""""""""""""""""   says 2.0.3, but after installing it, the shell comes
up and says it is 2.0.2. Which is it really?

Joat
                    (A2.TIM, CAT36, TOP9, MSG:205/M530)



>>>>>   The latest version of ORCA/M is 2.0.4.  Keep in mind that ORCA is a
"""""   big system, and each executable file has its own independent
version number.  The latest version of the shell, which is what you saw the
version for, is 2.0.3. The version number we list is the _disk_ version,
which is contained in the Login file and printed when you boot from the
original disk or from a full installation.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP9, MSG:206/M530)






                      >>>  ORCA/PASCAL QUESTIONS  <<<
                      """""""""""""""""""""""""""""""

SOME QUESTIONS   I was just wondering if one of you Pascal-heads could
""""""""""""""   answer a couple of quick questions for me about
ORCA/Pascal.  I'm just not familiar enough with the product to be sure what
I think is right.

First, are there unsigned numbers in O/P, or are all numbers signed?

Second, I'm under the impression that it is much easier for a C function to
call a Pascal function that is the reverse.  Looking at the calling
conventions, the Pascal caller would have to reverse the order of the
arguments, and the C function to be called would have to be named with
all its letters in uppercase.  Whereas, to call a Pascal function from C,
you just stick the "pascal" qualifier in the function declaration.  Is this
correct?

Thanks,
  Mike
                    (M.HACKETT, CAT36, TOP10, MSG:362/M530)



>>>>>   From a technical standpoint, the Pascal language does not have (or
"""""   need) unsigned numbers.  Of course, knowing all of the numbers
are unsigned allows the code generator to create more efficient code,
especially for compares.  Unlike C, Pascal is a strongly typed and
syntactically consistent language.  As a result, in ORCA/Pascal, I was able
to easily implement unsigned operations.  Any time all of the arguments are
declared as a subrange of positive values, ORCA/Pascal automatically shifts
to unsigned operations.  The gutsy details are a bit involved; I'll refer
you to the manual for them.  The bottom line is that it's useful to declare
this type in your ORCA/Pascal programs:

  type
    unsigned: 0..maxint;

Note that I did not extend the Pascal language to make this work.  The
programs you create using this convention will work on _any_ Pascal
compiler. They will just work _better_ in ORCA/Pascal!

As for whether it is easier to call C from Pascal or Pascal from C, the
real answer is that it's just as easy either way.  In both cases, you
need to declare the C side with the pascal qualifier.  Why?  Because C uses
parameter passing conventions that are different from any other language.
From a historical and portability standpoint, keep in mind that some C
compilers use a fortran qualifier instead of a pascal qualifier.  It does
the same thing.  :)

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP10, MSG:363/M530)



<<<<<   Thanks Mike.  I wasn't aware of the optimizations done for unsigned
"""""   subranges in Pascal (I knew unsigned operations were faster in C).

> In both cases, you need to declare the C side with the pascal qualifier.

Ah, but then the function is using the Pascal calling conventions!  I guess
I could have been clearer.  The point being a C function declared _without_
the pascal qualifier (i.e. using the C calling conventions), is not as
easily accessed from Pascal as one using the Pascal calling conventions,
right?  Whereas, to access a Pascal-format routine from C, all you need
is that pascal qualifier in the C header file.

I'm just trying to confirm that I am making the right choice by using the
Pascal conventions for cross-language libraries.

Mike Hackett (just to be clear)

                    (M.HACKETT, CAT36, TOP10, MSG:364/M530)



>>>>>   > I knew unsigned operations were faster in C.
"""""
Well, not compared to ORCA/Pascal.  C does still have an advantage, but
it's in the range of numbers.  unsigned int in C ranges from 0..65535,
while in Pascal, 0..maxint only goes to 32767.  The same idea holds for
longint.  But the speed is the same.  In fact, when there _is_ a
difference, it's almost always Pascal that wins--the stricter type
checking, and in particular the tighter for-loop rules, allow the Pascal
compiler to make optimizations with unsigned that are simply not safe (or
legal) in C.

It is perfectly true that a C function using C calling conventions cannot
be called by any language except C or assembly.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP10, MSG:365/M530)



<<<<<   > > I knew unsigned operations were faster in C.
"""""
        > Well, not compared to ORCA/Pascal. [...]

Oops.  No, I just meant that unsigned operations were faster than signed
operations in C.  I wasn't comparing Orca/C to Orca/Pascal.  I don't expect
your Pascal to ever lag behind your C compiler.  We all know how you love
your Pascal! :-)

> It is perfectly true that a C function using C calling conventions cannot
> be called by any language except C or assembly.

OK, thanks.  That answers that question.

 Mike
                    (M.HACKETT, CAT36, TOP10, MSG:366/M530)



>>>>>   Actually, the fact that Pascal can do some things faster than C has
"""""   to do with the design of the language, not any personal
preference I have.  C can also do some things faster than Pascal.  For
crunching numbers, integer or real, Pascal has inherent advantages C does
not share.  C also has some advantages Standard Pascal does not, but they
generally don't apply to real- world implementations of Pascal.

And interestingly enough, I _like_ C.  :)  The impression that I like
Pascal and dislike C comes mostly from the fact that a large number of
vocal people have promoted C and disparaged Pascal without knowing either
language well enough to have an informed opinion, and I feel it is my moral
obligation to step in.  ;)

Mike Westerfield

P.S.  You should hear what I say about languages I _don't_ like!  Don't get
      me started on Forth...  :)

                    (BYTEWORKS, CAT36, TOP10, MSG:367/M530)



>>>>>   Does this mean there is not likely to be an ORCA/Forth product? :)
"""""
 Joat
                   (A2.TIM, CAT36, TOP10, MSG:368/M530)





                  >>>  KEEP YOUR COMPILERS UPDATED  <<<
                  """""""""""""""""""""""""""""""""""""

A BUG? YES! FIXED? YES!   I think I've found a bug...
"""""""""""""""""""""""
the compiler says it's version "2.1 A1" .. is this current?

anyway, the compiler doesn't seem to like it when no parameters are passed to
the EOLN function..

here's a short test program:


Program test(input,output);

var a: packed array [1..10] of char;
    count: integer;

begin
a := '0123456789';
count := 0;
while (not eoln) and (count < 10) do
   begin
   count := count+1;
   read(a[count])
   end;
writeln(a);
end.



When I compile this program, ORCA/Pascal reports that there is a total of 1
error, but it never shows where the error is.

Where it should be showing an error message, it just prints a blank line
(with a |, \, -, or / character at the beginning of the line)

When the program is executed, eoln seems to be true at all times and the
loop is never executed.  As far as I can tell, it shouldn't be doing this.


I discovered this when I was trying to input strings in an ISO-legal way.
(for a programming project for a class at school.)

I've tried this with ISO+ and ISO-, and with optimizations on and off.  It
never works.

OTOH, it works fine in Turbo Pascal at school.  (And in whatever compiler
the authors of my textbook used.)

                  (A2PRO.GELAMP, CAT36, TOP10, MSG:376/M530)



>>>>>   Tim,
"""""
> Where it should be showing an error message, it just prints a blank line
> (with a |, \, -, or / character at the beginning of the line)

While Pascal is compiling, these characters "|, \, -, or /" loop through to
show that something is happening. I compiled the program with Pascal
2.1.1 B3 from the ORCA library. Requires BYTEWORKS access. Send email to
get access.

I compiled and ran the program without trouble. I have had a few programs
freeze with one of the looping characters (mostly C). This one wasn't one
of them.

I ran my 2.0.1 version of Pascal and got your errors. Time to upgrade.:)

Don't know why the program fails with the earlier versions.

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



<<<<<   hmm..  you know, I probably have 2.1.1 B3 on my hard drive
"""""   somewhere.. probably just never unpacked it.  I'll give it a try..

>While Pascal is compiling, these characters "|, \, -, or /" loop through..

yeah, I know.  But once for each EOLN in my program, it would fail to erase
the "twirling cursor" character properly and leave junk on the screen.

                  (A2PRO.GELAMP, CAT36, TOP10, MSG:378/M530)



<<<<<   oh, I did install 2.1.1 B3..  fixed everything.. and the release
"""""   notes for it even list my problems specifically as bugs which have
been fixed in the 2.0.x -> 2.1 upgrade..

>3. Eof and eoln have not worked for the standard input file since the
>switch to the .CONSOLE driver.  They do, now.

>5. Reading a value into an array element or a pointer, as in
>
>   read(readValue[4])
>
>did not always work correctly.

I have an ORCA/Pascal 2.1 upgrade disk around here somewhere.. I guess I
never got around to installing it :)

                  (A2PRO.GELAMP, CAT36, TOP10, MSG:379/M530)



>>>>>   Glad it's all working, Tim.
"""""
Mike Westerfield
                    (BYTEWORKS, CAT36, TOP10, MSG:380/M530)



                 >>>  PRIZM PRINTING PROBLEMS  <<<
                 """""""""""""""""""""""""""""""""

SLOW PRINTING   I have been using ORCA/C a lot lately. :) And I have been
"""""""""""""   doing so under the Prizm shell. I cannot print to my IW
LQ while in Prizm. Or rather, I can, but at a =much= reduced rate. I
average about one line per minute, but only after about 5 minutes of prep
time. Do I need to do something different to Prizm to get it to print
properly? I find myself loading Shadowwrite to do my printing from within
the shell. I am using the latest version of Prizm (2.0.2?), whatever came
with ORCA/M 2.0.3 and ORCA/C 2.0.1.

 Joat
                    (A2.TIM, CAT36, TOP19, MSG:87/M530)



>>>>>   Yes.  PRIZM prints using Apple's drivers, sending formatted fonts
"""""   to the printer.  That works great for a networked laserwriter,
which is what it was designed for, but is awful on direct connect dot
matrix printers.

Try moving to the shell window and printing the file like this:

  type +t myfile.cc >.printer

Be sure you set up the .printer driver first, and be _very_ sure to include
the +t.

Mike Westerfield
                    (BYTEWORKS, CAT36, TOP10, MSG:88/M530)


           //////////////////////////////////// GEnie_QWIK_QUOTE ////
          /                                                        /
         /     My memory's getting unreliable...too bad they      /
        /      don't have grey-matter SIMMs!                     /
       /                                                        /
      //////////////////////////////////////// KEVIN.STEELE ////



[EOA]
[LIB]//////////////////////////////
             LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Tim Buchheim
 [A2PRO.GELAMP]


    o   SHELL UTILITY

         o   SOURCE CODE

              o   GNO UTILITIES





                      >>>  SHELL UTILITY  <<<
                      """""""""""""""""""""""

File #4863  TERM.1.1.BXY  (GS)
Uploaded on 9/26/95 by K.FLYNN
About 10K (d/l time approx. 1 minute @ 2400 baud)

ReTERMinator will replace line termination characters in any text file
(whether they are CR, LF, or CRLF) with either CR (carriage return - Apple
standard) or LF (linefeed - Unix standard).  What is unique about this
utility is that it will convert whole directories at once (wild card
characters are supported), files are converted in place (directory order
of files is not changed) and date/time stamps are preserved.




                       >>>  SOURCE CODE  <<<
                       """""""""""""""""""""

File #4861  DOTZ.BXY  (ALL)
Uploaded on 9/26/95 by BRANDT
About 29K (d/l time approx. 2 minutes @ 2400 baud)

Here's an archive with source for the I.UM.DEFAULTS init, containing more
than a dozen dot commands for UltraMacros. The files are in Merlin format,
readable by AppleWorks 5. You'll need a knowledge of AW and 65C02 assembly
language to do anything with this info. It's an "as is" contribution to the
AW5 knowledge base. All rights are retained by JEM Software, but you may use
the info to create your own commands. You'll have to hack your way through
the files. Docs are not provided. Have fun!




                      >>>  GNO UTILTIES  <<<
                      """"""""""""""""""""""

File #4858  AWK.BXY  (GS)
Uploaded on 9/15/95 by S.REEVES2
About 101K (d/l time approx. 7 minutes @ 2400 baud)

This is a port of awk, the text pattern scanning and processing language,
for GNO.  This archive contains the executable, man page and readme files
(not the source code).  Ported by Jawaid Bazyar, bazyar@netcom.com.  Requires
an Apple IIgs and GNO/ME 2.0 or higher.



File #4856  LPR3.2.BXY  (GS)
Uploaded on 9/14/95 by S.REEVES2
About 41K (d/l time approx. 3 minutes @ 2400 baud)

This is lpr version 3.2, part of GNO/ME's print spooler package, by Jason 
Perez (jasonp@amcu-tx.sps.mot.com).  Supports the Apple ImageWriter II and 
the HP Deskjet 500.  Requires an Apple IIgs, GNO 2.0 or higher, and the lpd 
line printer daemon (which is here in this library in a nearby archive).  
ORCA/C source code and a man page are included.



File #4855  LPDLPC.BXY  (GS)
Uploaded on 9/14/95 by S.REEVES2
About 60K (d/l time approx. 4 minutes @ 2400 baud)

Here is lpd version 2.1 and lpc version 1.0, part of GNO/ME's print spooler 
package, by Phillip Vandry (vandry@cam.org).  lpd is the line printer daemon 
used by lpr (which is here in this library in a nearby archive).  lpc is a 
utility to control lpd's print queue.  Requires an Apple IIgs and GNO 2.0 or 
higher.  ORCA/C source code and man pages are included.


            //////////////////////////////////// GEnie_QWIK_QUOTE ///////
           /                                                           /
          /   Heheh...  And where in the IIgs Technotes does it       /
         /    say, "If you are having a problem, simply post it      /
        /     in A2Pro, and you will instantly realize what you     /
       /      are doing wrong"?  :)  I spotted the problem about   /
      /       ten minutes after I posted it, and went back to     /
     /        delete the message so as to spare myself           /
    /         embarrasment...  :)                               /
   /                                                           /
  /////////////////////////////////////////////// B.VICTOR1 ////



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


    o   A2Pro WEEKLY RTC SCHEDULE

         o   16-BIT PROGRAMMING vs. 8-BIT PROGRAMMING




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



              >>>  16-BIT PROGRAMMING vs. 8-BIT PROGRAMMING  <<<
              """"""""""""""""""""""""""""""""""""""""""""""""""

<Erick>   I have a GS programming technique question.  Perhaps Richard can
          give some suggestions.  I'm wandering what methods should be used
          to write modular code where new modules can be "dropped in"
          without affecting the architecture.


<Richard> In what environment Erick?


<Erick>   Desktop environment
          where modules could be added later to implement new featuers

          I still need to gather my thoughts on this but I need to start
          doing some serious reading and studying of example code


<Richard> I guess it depends on what features. The ways extras and drivers
          usually work is your program simple walks a folder, loading every
          load module that matches its load criteria (filtype/auxtype
          etc.), and just jumps to it.

          The module then responds with whatever it needs to work. For
          example, when it should be called, and with what data.

          Is that the sort of stuff you're talking about?


<Erick>   maybe, I guess I should first determine how things =could= be
          split out and then ask what GS mechanisms would best support it:)

          This would not be your typical GS application.  I need to figure
          out if this would be a real application or a sample.


<Richard> For example, Finder Extras. Finder simply send out system wide
          IPC calls to tell everyone what it is doing or about to do. It is
          then up to individual modules (extras) to decide if they want to
          respond, and if so what they'll do.


<Erick>   from 16-bit mode, how does one access the annunciator lines?  is
          it 00/C058 or E0/C058 ?


<Richard> The actual address are in bank $E0, but they're generally
          shadowed into bank $00 as well in a normal desktop environment.
          Use $E0/C058 just to be sure.


<Erick>   how should one reference memory for the softswitches (in 16-bit
          mode)?


<Richard> You don't. You switch to 8-bit.


<Erick>   set emulation for 65C02 and then do 6502/65C02 instructions?


<Richard> No, stay in native mode, but switch to the 8 bit accumulator
          using SEP $20. Access your switch, and then restore 16 bit using
          REP $20.


<Erick>   so in that case, I can stay in 16-bit mode and just reference
          $E0/C058 ?

          I'm twisting things around :)


<Richard> A lot of people get confused when they use the 816 for the first
          time, about emulation mode and register widths.

          A desktop application shouldn't really ever switch to emulation
          mode.


<Erick>   so stay in native mode, but set the register widths to 8-bits?


<Richard> Yep. The native mode 816 can switch back and forth between 16 bit
          and 8 bit registers, it's a function of the chip. When you switch
          to emulation mode, it just happens to FORCE register widths to
          8 bit.


<Erick>   once this is done, I still reference $E0/C058, right?


<Richard> Right.

          So:

          SEP $20 ; switch to 8 bit accum
          LDA >$E0C058 ; access it
          REP $20 ; switch back to 16 bit accum

          I haven't done any annunciator stuff since before the GS, so I
          have no idea what you'd do between the SEP and REP. :)


<Erick>   I'm switching to 8-bit registers, because the 65816 would attempt
          to read in 16-bits beginning at $E0/C058, right?


<Richard> Right. It would read C058 and C059.

          Note that SEP $20 only sets the "m" bit, so while the accumulator
          goes to 8 bit, the index regs stay at 16 bit.


<Erick>   how do the index reg get switched to 8-bits?  is this only via
          emulation mode?


<Richard> Nope. By setting the "x" bit. Do you have an 816 reference handy?
          To do this, do SEP $10.


<Erick>   I have a lightly used copy on the bookshelf.  Need to start
          getting my money's worth :)

          I have plenty of examples on how to write properly behaving $FF
          (.SYSTEM) files/programs.  What rules do I have to follow to
          write .S16 files in assembler?


<Richard> Gee... Do you have the GS/OS reference?


<Erick>   yeah, I have GS/OS Ref.  Is this the only guide I should use?

          I've been thumbing thru GS/OS ref
          I don't see any specific rules about .sys16 files like there was
          for .SYSTEM ($FF) files.

          the 8-bit environment in P8 was probably too primitive so you had
          to do more.  I guess the loader is smarter

          to help make my library searches more productive, do you know if
          any particular person uploaded any good samples of .SYS16 apps
          that were text-based?


<Richard> Not that I know of. You want one?


<Erick>   I'm looking for assembler of course


<Richard> Of course. :)


<Erick>   sure, just something that shows the basics (tools needed, etc.)


<Richard> For text you don't really need to start enything.


<Erick>   I was thinking of using the GS/OS console driver for screen I/O


<Richard> The console driver is a part of GS/OS. You just open it using
          _Open.


<Erick>   that's a macro?


<Richard> Sorry, I don't know. The GS/OS OPEN call. $2010.


<Richard> I don't like using macros for OS calls. Don't ask me why, I
          just don't. :)


<Erick>   I just thought with the name "_Open" that it was a special macro
          :)


<Richard> I think Merlin has an _Open. I just said it like that hoping
          you'd know what I was talking about. :)


<Richard> JSL $E100A8
          DA $2010
          ADRL OPENPARMS
          BCS ERR


<Erick>   yep, looks like P8 MLI stuff


<Richard> Exactly.

          I think that's partially why I don't use macros for it, because I
          never did with P8 either.


<Erick>   did you have an app in mind as an example program?


<Richard> Oh I've got a dozen text based utilities that do silly little
          things for me. I'll just grab one of those if you like. Nothing
          flashy, just runs and does something and then quits.


<Erick>   sounds great
 



[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).  Internet users should use
      the GEnie gopher (gopher.genie.com) which has most back issues
      (but might be missing a few of them).

    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]    A2 EDITOR
  """"""""  o Gina E. Saikin      [A2.GENA]      A2 Staff Writer
            o Charlie Hartley     [A2.CHARLIE]   A2 Staff Writer

     A2Pro  o Tim Buchheim        [A2PRO.GELAMP] A2Pro 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 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 Sharon La Gue       [SHARON.LAMP]  IBM EDITOR
       """  o Tika Carr           [LAMP.MM]      MULTIMEDIA EDITOR
            o David Leithauser    [D.LEITHASUER] HyperRead Editor
            o Bob Connors         [DR.BOB]       IBM Staff Writer
            o Susan M. English    [S.ENGLISH1]   Multimedia Graphics Artist

 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
   """""""  o Marlene Gaberel     [M.GABEREL1]   Windows Staff Writer

      ETC.  o Jim Lubin           [J.LUBIN]      Add Aladdin Scripts
      """"  o Scott Garrigus      [S.GARRIGUS]   Search-ME!
            o Mike White          [MWHITE]       (oo) / DigiPub SysOp
            o John Peters         [GENIELAMP]    DigiPub SysOp
            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]
