

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

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


                       ~ WELCOME TO GENIELAMP A2Pro! ~
                         """""""""""""""""""""""""""

                         ~ Elvis Spotted in Podunk ~ 
                 ~ Switching Video Modes ~ Merlin Madness ~
              ~ Sly Pascal RunQs ~ HyperTalk Troubleshooting ~
             ~ Sparse Files Explained ~ Tour of 8/16 Central ~
                    ~ HOT NEWS, HOT FILES, HOT MESSAGES ~

////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 GEnieLamp A2Pro   ~ A T/TalkNET OnLine Publication  ~  Vol.4, Issue 15
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 Editor.......................................................Nate Trost
  Publisher.................................................John Peters
   Copy-Editor............................................Bruce Maples
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
  ~ GEnieLamp IBM ~ GEnieLamp ST ~ GEnieLamp [PR] ~ GEnieLamp Windows ~
        ~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~
          ~ GEnieLamp A2 ~ LiveWire (ASCII) ~ GEnieLamp MacPRO ~
                 ~ Solid Windows ~ Config.sys ~ A2-Central ~
              ~ Member Of The Digital Publishing Association ~
  GE Mail: GENIELAMP  Internet: genielamp@genie.geis.com   FTP: sosi.com
 ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

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

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

 A2PRO ROUNDTABLE STAFF .. [DIR]        TOUR OF 8/16 CENTRAL .... [TOU]
  Directory of A2Pro Staff.              Great Programmers Magazine.

 LIBRARY BIT BONANZA ..... [LIB]        DEVELOPERS CORNER ....... [DEV]
  HOT Files You Can Download.            News From Online Developers.

 LOG OFF ................. [LOG]
  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)
        _____________|   _____|__  _|O__    |____ |_____________
       |Name of sender   CATegory  TOPic    Msg.   Page number|

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

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

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

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

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

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

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

SPECIAL OFFER FOR GEnieLamp READERS!   If you sign onto GEnie using the
""""""""""""""""""""""""""""""""""""   method outlined above you will
 receive an *additional* six (6) free hours of standard connect time (for a
 total of 10) to be used in the first month.  Want more?  Your first month
 charge of $8.95 will be waived!  Now there's no excuses!
                        *** GET INTO THE LAMP! ***
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



[EOA]
[FRM]//////////////////////////////
                 FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""

     o TOP OF THE PAGE


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

DAZE OF SUMMER?   Well, it's early May already and summer is just around the
"""""""""""""""   corner already!  I can't believe it.  :-)

With A2U on hiatus until the next session, the advent of spring, and such
tasks as spring cleaning and the mowing of the lawn (after spending the 
equivalent of two long debugging sessions getting it in running condition!)
one would expect A2Pro to be quiet.  However, I was quite surprised by the
amount of invaluable programming chatter in the BB this month.  Enjoy the 
issue!  I've got to figure out what to do with all these grass clippings...


                                                 Nate Trost
                                               GEnieLamp A2Pro
                     


[EOA]
[DIR]//////////////////////////////
          A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
By Nate Trost
 [A2PRO.GELAMP]
                          ______________________________________________

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

                                 [*][*][*]



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

     o   BULLETIN BOARD HOT SPOTS
           
           o   PROGRAMMER'S TIPS

                 o   FOR SALE
                       
                       o   MESSAGE SPOTLIGHT
                             


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

 [*]  CAT3,   TOP4,   MSG{80}....................The Merlin 16+ Assembler
 [*]  CAT15,  TOP14,  MSG{113}.............................Window Manager
 [*]  CAT15,  TOP16,  MSG{89}.............................Control Manager
 [*]  CAT15,  TOP30,  MSG{86}............................Resource Manager
 [*]  CAT16,  TOP2,   MSG{165}...........................Programmers Cafe
 [*]  CAT30,  TOP2,   MSG{122}........................Using the GNO Shell
 [*]  CAT33,  TOP3,   MSG{157}...............Rumors, Wishes and Vaporware



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

STARTUP AND SHUTDOWN   I have a question about StartUpTools.  In my 
""""""""""""""""""""   application, I call StartUpTools, which starts 
nearly all of the standard tools.  I then JSR to a routine which looks at
the contents of the Accumulator and displays an error message on the
text screen where appropriate.

      My question is this.  I faked A system error to see how my text 
messages would look, if a user received an error while launching my
application.  The messages were fine.  However, when I relaunched my
application, my error routine reported a fatal error of $1E12, which I
believe is a duplicate ResourceStartUp call.

      Before I even call StartUpTools, I manually start the Tool Locator 
and Memory Manager.  I have two exit entry points to my application.  The
first of these calls ShutDownTools and jumps to the second entry point. 
This second point shuts down the Memory Manager and Tool Locator, and
then quits.

      If StartUpTools returns an error, the error-handling code, after
displaying a nice message on the text screen, jumps to the second entry
point without calling ShutDownTools.  Should ShutDownTools be called
when exiting an application, whether or not StartUpTools was successful?
 If not, what should I do to avoid the duplicate ResourceStartUp call
the next time my application is launched?

 Tony Morales AKA. Hexman

                (T.MORALES [Hexman], CAT15, TOP1, MSG:76/M530)


>>>>>   ShutDownTools has been fixed (I think it's mentioned in the 6.0 
"""""   docs; if not, it's in the 6.0.1 update) to shut down the resource 
manager even if there's a bad input for the StartStopRec (presumably
because of an error during StartUpTools) so that it shuts down the
Resource Manager no matter what.  If you have your error handler call
the ShutDownTools exit entry point (nice terminology, BTW.. ;-)  <jk>),
all should be fine.

...Sloanie

              (A2PRO.HELP [ Sloanie ], CAT15, TOP1, MSG:77/M530)


RUN-QUEUE AND ORCA/PASCAL   A few questions regarding the Desk Manager.. :)
"""""""""""""""""""""""""

   (1) Is it possible to install a run-queue item from ORCA/Pascal, and 
   
   (2) if it's indeed possible, does anybody know how it's done?

      In the run-queue description/reference (TBR3, pgs. 29-3...29-5) it
appears that the run-queue system uses some sort of jsl/jsr mechanism,
and not the stack (like IPC does).  Does this mean that Pascal won't
work?  Note that I do have ORCA/M if a run-queue handler is impossible
to do from Pascal, but I'd like to avoid using assembly if at all
possible.

Any suggestions would be greatly appreciated; I REALLY have no idea how to do
this.  Thanks in advance. :)

  --Greg (SnakeBytes:)

                  (SNAKEBYTES [Greg B.], CAT15, TOP5, MSG:33/M530)


<<<<<   Greg, writing the actual subroutine to handle the run queue is easy 
"""""   from Pascal.  All Pascal subroutines end with an RTL, and that will 
continue to be true for the forseable future.

      The problem with a run queue is basically the same one as the problem
with a hearbeat task:  you are expected to have a record followed
immediately in memory by executable code, and there is normally no way
to guarantee that in Pascal (or any other high-level language I can think
of).

However, there is a trick.  :)

      It's dirty; it's ugly; it's nasty -- just the sort of thing we all 
love to do simply to prove it can be done.  Create a record like this, and 
declare a variable at the program/unit level:

   type
      runQueue = record
         reserved: longint;
         period: integer;
         signature: integer;
         reserved2: longint;
         jml: byte;
         proc: longint;
         end;

   var
      rq: runQueue;

      Fill in period and signature like you normally would.  Jml is a byte 
we'll fill in with the machine code for a jmup long; proc is the address
of the procedure to handle the run queue event.  (The fourth byte is not
used, but that doesn't hurt anything in this case.)

   rq.jml := $5C;
   rq.proc := ord4(@RunQueueHandler);

RunQueueHandler should be declared like this, at the program or unit level:

   procedure RunQueueHandler;
   begin
   <your stuff here>
   end.

      The same thing would work for a hearbeat interrupt, and the same 
general trick would work from C or Modula-2.

Mike Westerfield

                  (BYTEWORKS, CAT15, TOP5, MSG:34/M530)


MERLIN EQUATE WEIRDNESS   I was setting up a popup control and I equated, 
"""""""""""""""""""""""   popUpControl equ $87000000, at the begining of my 
source and used that in the template for procRef as in; adrl popUpControl. 
This didn't work and I had to just use, adrl $87000000, which does work.
No big deal but can't Merlin equate a 4-byte label?

      Also, the last field of the Task record, offset $2A, is listed as
Point--Location of last mouse click.  I understand if it says word I can
code it as DW or DA and if it says long I use ADRL but this is shown
with dotted lines which I think indicates varying size.  Being a point,
does this require two bytes for X and two for Y and so ADRL works (which
is what I decided to use for now) or do I need to DS and if so how much
storage.

                  (M.WADE7 [Mark], CAT3, TOP4, MSG:80/M530)


<<<<<   Yeah, it kinda sucks rocks, but Merlin-16 (at least v4.08) has a 
"""""   flaw in handling long equates... it can handle 1 byte, 2 byte and 3 
byte fine, but when it comes to 4 byte... well it forces a null byte for
the high byte. (Eeewwwwwww that stinks!)

 So... You ask how do I get around this? Simple! I use a macro :)

  *
  * Equates
  * (NOTE: only hi word of defProcs specified!)
  *
 popUpControl equ $8700 ;only hi word of the equate is used here!
  *
  * Macros
  *
 defProc mac
         adrl ]1*$100000 ;shift things around properly
         <<<
  *
  * neat stuff goes here
  *
          defProc popUpControl ;provides correct 4 byte long :)

  *
  *************

      Obviously this stunt will only work if the low word of the defProc is
null, but that is (normally) the case, esp when using system supplied
procedures. (custom procedures obviously require some addition care &
feeding):

      One could also specify the top 3 bytes of the defproc, and then 
multiply in the macro accordingly to achive the same results, this lets
the top 3 bytes be used, but the low byte is still a null. (I prefer the
way I gave in the example as it falls neatly on word boundaries :)

A "point" is two words so...

  adrl 0 ;provides quick & easy space of the needed size
  ds 4   ;also provides quick & easy space required

  ds 2,0 ;for X word
  ds 2,0 ;for Y word

  dw $0000 ;for X word
  da $0000 ;for Y word

      When specifying storage (variable) space, using DA, DW, or DS (with
appropriate syntax) all end up giving the same end result. (I prefer to
reserve the use of DA for addresses, DW or DS for variables, and ADRL 0
for long variables)

For sake of completeness, one could also do this as follows:

  hex 00,00 ;for X word
  hex FF,FF ;for Y word

      I don't like using hex (except when absolutely needed) but it works. 
The actual values don't matter in any of these examples of course as
they're there only as placeholders until the real data is returned.

 -Harold
     mx %11
     xc
     xc
 Foo lda #^Foo
     pha
     pea #Foo-1
     rtl                 ;recursion at it's worst ;)

                  (H.HISLOP [Harold], CAT3, TOP4, MSG:82/M530)


CHANGING VIDEO MODES   I want to change video modes within my app.  I see 
""""""""""""""""""""   the method proposed in TN #4, but it is 
pre-ToolStartUp.  Is there a way to get QD's direct page so that I may 
re-use the area allocated by ToolStartUp?  I seem to remember a
toolcall(?) to do this.  If not, what is the easiest way now to change
video modes?  I hope it doesn't require two toolstart recs, but that
seems to be the easiest thing I can see.

 Thanks,
 Pauley

                  (P.BENSON1, CAT15, TOP4, MSG:116/M530)


<<<<<   The best way to be able to shut down and start up QuickDraw II to 
"""""   do mode switches is to start it yourself:

 _TLStartUp
 _MMStartUp
 _MTStartUp
 _QDStartUp
 _StartUpTools

      Just leave QuickDraw II out of the list of tools to be started by
StartUpTools.

 Eric Shepherd     (Sheppy)

                  (POWERPC.PRO [Sheppy], CAT15, TOP4, MSG:117/M530)


HYPERTALK TROUBLESHOOTING
"""""""""""""""""""""""""

On mouseUP
  Ask "How for this skill?" with "5"
  put it into temp
  if cd fld points >= temp then
    subtract temp from cd fld points
    add temp to CWPoints
    put CWpoints into cd fld CWpoints
  else
    show cd fld zinger
    wait 5 seconds
    hide cd fld zinger
  end if end mouseUP i
  
      This is a script that I've been having problems with.  It seems that 
even after I put the contents of it into the variable temp, I can't use
Temp for  any further operations.  The script bombs out at 'add temp to
CWpoints. any help would be appricated. 

                  (F.GREATOREX [Fred], CAT18, TOP4, MSG:12/M530)


>>>>>   Sorry it took so long to get back to you, Fred, been swamped and I 
"""""   am having crashing probs on three of four machines!

      Anyway, I can see what your problem(s) is right away!  Try "Playing
computer" and you'll see it too... Let's try it.

Here's a snippet of your code followed by me "Playing Computer":

 On mouseUp
   Ask "How for this skill?" with "5"
   put it into temp
   if cd fld points >= temp then
     subtract temp from cd fld points
     add temp to CWPoints
     put CWpoints into cd fld CWpoints


 Line 1: IT is assigned 5
         (First prob, what happens if the user 'cancel's, hmm?)
         (Hint: ERROR)

 Line 2: TEMP is assigned 5

 Line 3: a fld named "Points" which happens to hold 8 is larger then 5

 Line 4: we subtract 5 from 8 leaving 3 in the fld named "points"

 Line 5: Add 5 to nothing.  Second problem, CWPoints is undefined!! You 
         can't add something to a non-number, in this case a number that 
         doesn't exist, in fact, what you are trying to do here is add 5 to 
         "CWPoints" (This is also why you have to handle "cancel" or you'll 
         try to add 5 to "cancel" ... no can do.)

To continue we'll assume CWPoints is 0, we add 5 to 0 and CWPoints is 5

 Line 6: put 5 into cd fld 5
         Huh?  Yup, here's your third error, you got lazy and didn't
         use quotes!  Instead of putting a value into a cd fld named
         "CWPoints" the container CWPoints is evaluated to 5!  Get it?
         You would've got bit by this as soon as your second error was
         corrected.

      You really MUST define variables and use quotes around literal names.  
So the corrected handler could be:

 On mouseUP
   global CWPoints
   Ask "How for this skill?" with "5"
   if if is not empty and the result is not "cancel" then
     put it into temp
     if cd fld points >= temp then
       subtract temp from cd fld "points"
       if CWpoints is empty then put 0 into CWPoints
       add temp to CWPoints
       put CWpoints into cd fld "CWpoints"
     else
       show cd fld "zinger"
       wait 5 seconds
       hide cd fld "zinger"
     end if
   end if
 end mouseUp

                  (HANGTIME [Tyrant], CAT18, TOP4, MSG:13/M530)


DETECTING EXTENDED KEYS   I would like to support the function keys for 
"""""""""""""""""""""""   the extended keyboard for some script commands in 
Spectrum v1.1 and can find no reference as to how to know from the
EventRecord that they have been pressed.

What, if any, are the EventRecord returns for these keys?

          Ewen Wannop

                  (E.WANNOP, CAT15, TOP6, MSG:97/M530)


<<<<<   Ewen, the extended keys on the extended keyboard are simply regular 
"""""   keys with the "keypad" bit set in the modifiers.

      Unfortunately, CoPilot won't let me type extended keys into this
document, or I'd list them and their meanings.

      Undo, cut, copy, and paste are z, x, c, v, respectively.  Help is 
"r." Aside from that, I haven't memorized any of them.

 Eric Shepherd     (Sheppy)

                  (POWERPC.PRO [Sheppy], CAT15, TOP6, MSG:98/M530)


>>>>>   What Eric said.  Here are the equivalent keypresses for the 
"""""   extended keys (as Eric said, the keypad bit [bit 13 of the modifier 
flags field in the event record] will be set for these):

    Key                    Equivalent
   =====                   ==========
      F1                   z (undo)
      F2                   x (cut)
      F3                   c (copy)
      F4                   v (paste)
      F5                   `
      F6                   a
      F7                   b
      F8                   d
      F9                   e
      F10                  m
      F11                  g
      F12                  o
      F13                  i
      F14                  k
      F15                  q

      home                 s
      end                  w
      page up              t
      page down            y
      insert               r
      delete               u (true delete)

      I don't think I left any out.  If you also check for the state of the
shift key, those of us with an OmniMac keyboard (with its second set of
F keys) will be able to use the shifted keys for separate duty.


  >> Eric

  >  CoPilot won't let me type extended keys into this document, or
  >  I'd list them and their meanings.

      ShadowWrite will!  That's how I did it.  (Co-Pilot will, too, but you
have to uncheck the extended keyboard option, exit & return, and then
reset the option--ugh.)

 David

                  (D.WALLIS2, CAT15, TOP6, MSG:100/M530)


SORTLIST AND STACK ADDRESSING   What do I have to do to use _SortList with 
"""""""""""""""""""""""""""""   a custom comparision routine from within 
an NDA?  TBR1 pg.11-24 seems simple enough yet causes my system to crash.
 The way I first interpeted it was memberA is at bnk/0004 and memberB is
at bnk/0008.  Knowing NDA's don't have their own zp, I saved all these
locations first before calling _SortList and restored them afterwards. 
That didn't work.  
 
      Next I played with the 'input parameters' by saving the RTL address,
pulling what I thought would be memberA & memberB, then restoring the
RTL address, then RTL.  No luck there either.  I haven't even written the
actual comparision routine yet, I just wanted to make sure the call can
be entered and exited properly first -which it isn't- (which is why I do
this in the first place :) anyway- I guess I should mention that the
actual 'comparision' is just a CLC to cause natural ordering.  I'd love
to hear from someone who has a better understanding of custom
comparision routines then I do!

  -Ron Sullivan-

                (R.SULLIVAN8 [Sully], CAT15, TOP28, MSG:95/M530)


>>>>>   The sample routine you looked at on p. 11-24 used stack relative 
"""""   addressing.  The 4 and 8 displacements were relative to the stack 
pointer at entry, not relative to a particular bank.  For me, a picture
works a little better.  Try this:

   Location   Length   Use
   --------   ------   ---
    S+8        4       Address of memberB
    S+4        4       Address of memberA
    S+1        3       Return address

      The easiest way to use the addresses to to set up a local direct page
area, like this:

   tsc
   phd
   tcd

      Now you can access the members using indirect long addressing.  For 
example, to get the first word of memberB, you would use:

   lda   [8]

      Before you start the stack cleanup shown on p. 11-24, just be sure to 
pop the DP address you saved with

   pld

Mike Westerfield

                  (BYTEWORKS, CAT15, TOP28, MSG:96/M530)


FINDING POP-UP ITEMS   I've created and drawn a popup control in a window 
""""""""""""""""""""   and now I want to access the control record to see 
what item number has been selected, so I pulled the handle returned to me
on the stack by _NewControl2.  Then I have to dereference the handle to
get the address of the control record ( I guess I have to lock the
handle first, I did'nt do that, I'll have to try it when I go back).
Then I need to offset into the record 18 bytes to get at ctlValue.  Is
this somewhere on track?

      As I'm typing this I'm checking my books and I see in TBR 1 
_GetCtlValue.  Sounds like what I'm looking for.  I'll go try that now...

      I guess I should have hashed this out a while longer.  I usually do, 
but the response around here is so fast... anyway,  _GetCtlValue, of
course, worked.

For curiosity's sake; Shouldn't I have been able to access the control
record directly like I started to describe above?  I know I haven't
supplied any code yet but I believe I dereferenced the handle correctly.
Maybe I didnt index the record properly?  Once the handle is dere
ferenced and stored in PTR, PTR+2 could I access ctlValue by:

    LDA    [PTR],Y        ; where  Y = 18
    CMP    #ItemNum    ?

 Mark Wade  - awash in a sea of reference manuals-

                  (M.WADE7 [Mark], CAT15, TOP16, MSG:89/M530)


<<<<<   Although, yes, you can access the control record directly, you 
"""""   should avoid doing that unless absolutely necessary -- if there's 
a Control Manager call to provide the information you want, use it.  It
avoids potential incompatibilities.

 Eric Shepherd     (Sheppy)

               (POWERPC.PRO [Sheppy], CAT15, TOP16, MSG:90/M530)



                            >>> FOR SALE <<<
                            """"""""""""""""

BOOKS AND SOFTWARE FOR SALE   I have numerous books and such for Apple IIs
"""""""""""""""""""""""""""   I purchased over the years and no longer use.  
I would prefer to sell this equipment all at once, but let's face it, the
shipping charges would about kill me :-)

    The following are Softcover books from Addison Wesley:

 (2) Technical Introduction to the //GS...........................$5.00 ea.
 (1) Apple //GS Hardware Reference 2nd edition....................$7.50
 (1) Apple //GS GS/OS Reference...................................$7.50
 (1) The Apple II Guide...........................................$2.50
 (1) Apple //GS Owner's Guide (spiral bound)......................$5.00
 (1) Apple II Utilities Guide (spiral bound)......................$3.50
 (1) Applesoft Tutorial (spiral bound)............................$3.50
 (1) Applesoft BASIC Programmer's Reference Manual................$3.50

     The following are HardCover's from Addison-Wesley:

 (1) A Touch of AppleSoft BASIC...................................$5.00
 (1) Apple II ProDOS 8 Technical Reference Manual.................$5.00
 (1) BASIC Programming with ProDOS................................$7.50
 (2) Programmer's Introduction to the Apple //GS.(one w/disk).....$10.00 ea
 (1) Apple //GS Toolbox Reference Volume 1........................$15.00
 (1) Apple //GS Toolbox Reference Volume 2........................$15.00
 (1) Apple //GS Toolbox Reference Voluem 3   (paperback)..........$15.00

     The following are owner's manuals for various hardware:

 (2) Apple 3.5 Drive Owner's guide................................$1.00 ea
 (1) Apple //GS System Disk User's Guide..........................$1.00
 (1) Setting Up Your Apple //GS...................................$1.00
 (1) Apple 5.25 Drive Owner's Guide...............................$1.00
 (1) AppleColor RGB Monitor Owner's Guide.........................$1.00

      The following are an assortment of books of interest to programmers.  
All are large paperbacks in excellent condition.  The price is right!

 BASIC and the Personal Computer by Dwyet and Critchfield.........$5.00
 Exploring the Apple //GS by Little...............................$10.00
 Exploring Apple GS/OS and ProDOS 8 by Little.....................$10.00
 The Apple //GS Toolbox Revealed by Goodman.......................$10.00
 The Big Tip Book for the Apple II Series by Kersey and Sanders...$7.50
 Apple //GS Assembly Language Programming by Scanlon..............$10.00
 Mastering the Apple //GS Toolbox by Gookin and Davis.............$12.50
 Compute!s Apple //GS Machine Language for Beginners by Wagner....$10.00
 Apple //GS Toolbox by Davis and Gookin...........................$10.00
 (2) Technical Reference by Fischer...............................$12.50 ea
 Programming the Apple //GS in Assembly Language by Lichty and Eyes.$12.50
 Apple 16 by Harrison.............................................$5.00
 HiRes Graphics and Animation using Assembly Language by Malkin...$7.50


      I also have a few 8/16 issues and a few Sourcerer's Apprentice 
issues, as well.  Make an offer :-)


      I will sell the entire box of goodies for $150.00 + Shipping (less 
than half of my asking price for individual pieces)


      I (also) have some programming software for sale:

 TML Pascal II....................................................$10.00
 (2) ORCA/C with Manual and Updates...............................$20.00 ea
 (2) ORCA/M with Manual and Updates...............................$20.00 ea
 ORCA/Desktop.....................................................$10.00

 Donnie (Please reply in EMail as I rarely stop by here :-)  Thanks.

              (D.A.GRIMES [Donnie], CAT1, TOP18, MSG:40-41/M530)



                     >>> MESSAGE SPOTLIGHT <<<
                     """""""""""""""""""""""""
                     
OPCODE JOKES   I found this list over in Chat (m400;7) and thought you'd 
""""""""""""   all get a kick out of it.  Enjoy!

 > Category 3,  Topic 27
 > Message 36        Fri Apr 08, 1994
 > JOKEMASTER [Sir Laffalot]    at 03:41 EDT


    Knowing that most programmers have little time to keep up with new
    OPCODEs, I have compiled the latest:

                  JOKEMASTER OPCODE UPDATE, v. 1.4

  OPCODE: AAR   = Alter at Random
  OPCODE: AFVHD = Apply Five-hundred Volts to Hard Drive
  OPCODE: AND   = Accelerate Noisy Disk
  OPCODE: AO    = Annoy Operator
  OPCODE: AWTT  = Assemble with Tinker Toys
  OPCODE: CAPH  = Convert All Prime numbers to Hex
  OPCODE: CBNC  = Close, But No Cigar
  OPCODE: CLBRI = Clobber Register Immediately
  OPCODE: CLD   = Close Logical Door
  OPCODE: CMPSW = Copy Multiple Programs to Standard Window
  OPCODE: CNB   = Cause Nervous Breakdown
  OPCODE: COLB  = Crash for Operator's Lunch Break
  OPCODE: COZ   = Change Ones to Zeros
  OPCODE: CNTC  = Crunch Numbers in Trash Compactor
  OPCODE: CPPR  = Crumple Printer Paper and Rip
  OPCODE: DAE   = Delete All Executables
  OPCODE: DTUD  = Display Totally Useless Data
  OPCODE: DXGR  = Display X-rated GIFs at Random
  OPCODE: ECH   = Engage in Computer Hex
  OPCODE: EXOP  = Execute Operator
  OPCODE: EXPC  = Execute Politically Correct
  OPCODE: EXPP  = Execute Political Prisoner
  OPCODE: FLI   = Flash Lights Impressively
  OPCODE: FSM   = Fold, Spindle and Mutilate
  OPCODE: FSRA  = Forms Skip and Run Away
  OPCODE: HLT   = Hide Last Term paper
  OPCODE: IFC   = Ignore Further Commands
  OPCODE: IAE   = Ignore All Exceptions
  OPCODE: IAS   = Ignore Annoy and Split
  OPCODE: IIB   = Ignore Inquiry and Branch
  OPCODE: IRET  = Ignore Request and Explode Terminal
  OPCODE: INT   = Invade Next Terminal
  OPCODE: IAQ   = Insert Another Quarter
  OPCODE: IRUN  = Insert Random Useless Numbers
  OPCODE: JO    = Jail Owner
  OPCODE: JP    = Junk Program
  OPCODE: MRC   = Move Registers - to Cleveland
  OPCODE: MC    = Melt CPU
  OPCODE: PVLC  = Punch Variable Length Card
  OPCODE: RA    = Randomize Answer
  OPCODE: RAC   = Randomize Alphabetic Code
  OPCODE: RASC  = Read and Shred Card
  OPCODE: RCB   = Read Command Backwards
  OPCODE: RDA   = Refuse to Disclose Answer
  OPCODE: RDB   = Run Disk Backwards
  OPCODE: RMM   = Request More Memory
  OPCODE: SQPYC = Sit Quietly and Play with Your Crayons
  OPCODE: SRT   = Steal Random Taglines
  OPCODE: SSJ   = Select Stacker and Jam
  OPCODE: STA   = Store Anywhere
  OPCODE: STROM = Store in Read-only Memory
  OPCODE: TARC  = Take Arithmetic Review Course
  OPCODE: UER   = Update and Erase Record
  OPCODE: ULDA  = Unload Accumulator
  OPCODE: UP    = Understand Program
  OPCODE: UPCI  = Update Card In Place
  OPCODE: WBT   = Water Binary Tree
  OPCODE: WEMG  = Write Eighteen Minute Gap
  OPCODE: WF    = Wait Forever
  OPCODE: WHFO  = Wait Until Hell Freezes Over
  OPCODE: WSWW  = Work in Strange and Wondrous Ways
  OPCODE: WWLR  = Write Wrong-Length Record

 Compiled from various unknown sources; many additions: JOKEMASTER

            (A2.TONY [A2 Librarian], CAT16, TOP2, MSG:161/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 Nate C. Trost
[A2PRO.GELAMP]



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



                      >>> NEWS FROM PROCYON INC. <<<
                      """"""""""""""""""""""""""""""

GSH IDENTITY   I'm writing a shell utility to modify a rVersion resource.  
""""""""""""   Because Merlin refuses to use the ORCA wildcard shell calls 
(gee, I wonder why! ;) I have to special-case shells.  So...

   #1)  What is the shell identifier for GSH?
   #2)  Does GSH use the ORCA/Shell wildcard calls?

                  (A2PRO.HELP [ Sloanie ], CAT30, TOP2, MSG:122/M530)


<<<<<   >   #1)  What is the shell identifier for GSH?
"""""

Strangely enough, it's "BYTEWRKS" :-)

        >   #2)  Does GSH use the ORCA/Shell wildcard calls?

      Yes.  However, they do not handle the "=" wildcards; they use the 
full shell regular expression wildcards.  Also note that wildcards passed
on a command line are expanded by the shell _before_ your program is
run, so your program should be written to support multiple filename
arguments on the command line (as in "foo file_a file_b file_c").

 Jawaid

                  (PROCYON.INC, CAT30, TOP2, MSG:123/M530)


DIALUP REQUEST   I just uploaded '4082:DialUp.V121.BXY 30K' to library 30 
""""""""""""""   (If nothing went wrong :-))

I believe this is the newest version.

      If it is of any value to anyone I would like to ask a favor.  Please 
compile the '.asm' file (very small) under Orca/M, SHK the OBJ file and
either upload or Email the file to me.

      I want to experiment with the C source but I don't have Orca/M to do 
all of it.  I am an old Merlin guy and I don't use assembly much anymore,
only C.

The things I want to modify/experiment with are:
   - a command line option to specify the number of rings rather than
     just one (before answering that is).
   - try to add the 'Calling-Number-Display' option that my new Supra
     144LC has (this will be a command line option also).
   - I'll even rename the file 'xDialUp' to avoid confusion.

If I get the OBJ's, I will upload the result here if anyone expresses an
interest.

Thanks in advance to anyone who can help with this ODD request.

                                                  Doug Mitton

                (D.MITTON [Doug], CAT30, TOP3, MSG:119/M530)



                     >>> NEWS FROM THE BYTE WORKS <<<
                     """"""""""""""""""""""""""""""""
 
ORCA FUTURE POSSIBILITIES   Kaz, from what people have told me, here is a 
"""""""""""""""""""""""""   short list off the top of my head of some of 
the things that I'll be seriously considering for the updates.  Keep in
mind, these are not commitments, and there are several things I'll
probably forget here that I will remember when I look over my messages
and notes.  This is just to give you an idea of the level of things that
may happen for the updates.  Also, keep in mind that the primary reason
for the updates is to fix bugs.  The reason for adding a few other
things at the same time is that it's convinient to do so.  Testing and
building disks for programs this size is very time consuming, so I don't
redo the disks very often -- and consequently, I try to put as much in
as I can when I _do_ rebuild the disks!

   1.  // comments in C.

   2.  Labels (aka markers) in both editors.

   3.  Support for international characters in PRIZM.

   4.  Minor internal improvements in objects in Pascal.

   5.  A script menu in PRIZM.

   6.  Better Finder support (basically allowing you to click on a document 
       and have ORCA launch and do something sensible).

   7.  Allow strings as function return values in Pascal.

   8.  More search options for executable files in the shell (e.g. a list 
       of prefixes the shell will search trying to find the file to 
       execute).

   9.  A "default" header in C for setting global options for all compiles.

      Again, don't worry if your favorite change isn't here -- this is just 
a quick list to give you an idea of scope.

Things that won't get done, but have been suggested, are things like:

   1.  Projects with automatic scanning of source files to build dependency
       lists.

(But projects _may_ be added.)

   2.  C++

   3.  Context sensitive editing that allows the editor to select blocks, 
       build lists of procedures for editor labels, etc.  (Although hooks 
       to let you play with ideas _may_ be added.)

      It's not that these are bad ideas, it's just that I'm one person in a
small market maintaining three major languages and a lot of support
programs, trying to get a much-needed set of bug fixes out.  :)  I have
to pick my targets carefully!

Mike Westerfield

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




[EOA]
[TOU]///////////////////////////////
             TOUR OF 8/16 CENTRAL /
//////////////////////////////////
The Great Programmers Magazine
""""""""""""""""""""""""""""""
Chris Budewig
    [K.FLYNN]

      A full directory of all files on each issue of 8/16 and 8/16-Central 
can be found in file #3382 (ESC.INDEX.BXY).  A condensed directory of the
contents of this issue is included below.  The code letters in
parentheses next to each item mean:

  S : Source code -- what you need to create a program
  X : Executable program -- you can run this directly!
  D : Documentation -- tells how the program works and what to do with it
  A : Article -- explains a subject and probably the source code that
      demonstrates it



                 >> 8/16-Central - May, 1991 - File #3415 <<
                 """""""""""""""""""""""""""""""""""""""""""


/es.central.9105/
 ..About.This.Disk    Introduction and complete catalog listing
 ..Contents           Table of Contents
 ..Columns/
 ....WhatsNew         (A) About the latest in the world of Apple II
 ....HyperLab/        (SA) HyperStudio tips and techniques for large
                           projects plus an XCMD to turn on/off the menubar
                           for all cards in a stack
 ....VaporWare        (A) Murphy Sewall's industry snapshot
 ..Q.And.A/
 ....LETTERS          Readers Write - Problems with SuperCat (Apr 91 issue)
 ....AOL.TT           America Online TechTalk - ejecting/detecting 3.5"
                      disks from BASIC and a couple comments on Aztec C
 ....GE.TT            GEnie TechTalk - Using MVN/MVP and fast animation
                      methods
 ..Apple.II/
 ....Designer/        (SXA) An 80-column text screen designer
 ....AztecC/          (SA) Using Apple's Desktop Toolkit from Aztec C
 ..Apple.IIgs/
 ....NDA.Horrors/     (SXA) How to avoid all the little gotcha's that go
                            with creating a new NDA - includes the
                            Search-n-Rescue NDA which provides quick access
                            to two user-definable text files
 ....TileScroll/      (SXA) How to do tiled animation - first of a two or
                            three-part series on tiling.  Inlcudes a
                            shareware tile-grabbing program and a tile map
                            maker
 ..Goodies/
 ....ani640/          (XD) Demo of 640-mode animation
 ....superview/       (X) 3200-color picture viewer/converter
 ....ERROR.CODES      (D) List of Apple IIGS error codes


      It takes much longer to PRINT complicated text screens while in 
Applesoft than it does to just BLOAD them into screen memory.  With that
in mind, the Screen Designer in this month's Apple II section will let
you create text screens with normal, inverse, and mousetext characters
that can quickly be shown to the user of your programs.

      In the NDA.Horrors article, Jay Jennings shows takes you step-by-step  
through the process of creating an NDA.  He details all the pitfalls he
ran  into so that you won't have to!  The NDA he constructed is also
included  and it allows you to specify two text files to be instantly
available from  the NDA menu.  You can even type a word or phrase to be
found and hilited  within the file you've chosen.



                 >> 8/16-Central - June, 1991 - File #3416 <<
                 """"""""""""""""""""""""""""""""""""""""""""


/es.central.9106/
 ..About.This.Disk    Introduction and complete catalog listing
 ..Contents           Table of Contents
 ..Columns/
 ....WhatsNew         (A) About the latest in the world of Apple II
 ....HyperLab/        (SXA) Two new XCMD's give you access to the Toolbox's
                            ScrollRect and SetBackPat calls and allow
                            simple animation or new screen transitions
 ....VaporWare        (A) Murphy Sewall's industry snapshot
 ....DBMaster/        (A) First in a series of articles on developing
                          applications with DBMaster Pro
 ..Q.And.A/
 ....LETTERS          Readers Write - Loading a DHR picture, trapping
                      keypresses in HyperCard GS, and reading a text file
                      into a TextEdit control
 ....AOL.TT           America Online TechTalk - Apple IIGS Toolbox
                      Programming conference
 ....GE.TT            GEnie TechTalk - Script-Central RTC
 ....test             (SX) Demo code for this month's Letters
 ..Apple.II/
 ....DHR/             (SXA) How to load and display double hires pictures
                            from both Applesoft and assembly language
 ....Dungeons/        (SXA) This article, the first in a series on writing
                            adventure games, goes over some of the
                            fundamentals of traversing a dungeon
 ..Apple.IIgs/
 ....Game.Design/     (A) This is a screenfull of shapes for non-artist
                          arcade game designers that can be cut out and
                          used in your own games -- there are space ships,
                          a space station, missiles and explosions.
 ....CTips/           (SXA) For ORCA/C programmers, APW/C libraries such as
                            those from Apple DTS and on DEVELOP are not
                            directly useable, but Ken Kashmarek shows how
                            to call them from within your programs!
 ....Parsing/         (SXA) How to parse a command line into individual
                            arguments and flags
 ..Goodies/
 ....Lithium/         (SXD) Nifty little NDA to save and restore snapshots
                            of the IIGS Battery RAM
 ....Repton/          (X) 8-bit arcade game similar to Defender
 ....KeyFilter/       (S) APW/C source to implement a TextEdit key filter
 ....FileCompare/     (SXD) Applesoft program to find differences in two
                            files and display them on screen
 ....NDALib/          (SXD) A library of standard routines for NDA writers
 ..startup            (SX) A cheesy little launcher that lets you pick from
                           this issue's P8 programs


      The theme for this month's issue is supposed to be tools for game 
writing.  On the Apple II side, we have an article than begins a series on
 programming adventure games.  This goes over some of the basic concepts
of  navigating through a 'dungeon'.

      On the IIGS side, there's an article on how to parse command lines 
(which would be an essential part of a text adventure!).  The
accompanying demo program reads the line you typed, breaks it down into
individual arguments and then displays them on the screen.  It takes
into account quoted  arguments (so a parameter can contain a space) and
flag arguments (e.g., +s  and -p).



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



                       >>> GNO Utilities <<<
                       """""""""""""""""""""

File # 4082  DIALUP.V121.BXY  (GS)
Uploaded on 4/24/94 by D.MITTON
About 30K (d/l time approx. 3 minutes  @ 2400 baud)

This is Phillip Vandrys ...
DialUp V1.2.1 for GNO/ME V2.0.
This is the newest so far (I think).


File # 4052  LAST1.1.BXY  (GS)
Uploaded on 4/8/94 by S.REEVES2
About 24K (d/l time approx. 2 minutes 24 seconds @ 2400 baud)

      "last", like the UNIX utility of the same name, reports the last 
logins for specified users or terminals by searching through the login
accounting file /var/adm/wtmp.  Version 1.1.  Requires GNO 2.x and the
multi-user update (init 2.0) by Phil Vandry.



                   >>>  rVersion utilities  <<<
                   """"""""""""""""""""""""""""

File # 4048  SETRVERSION.BXY  V1.0  (GS)
Uploaded on 4/5/94 by RICHARD.B
About 3K (d/l time approx. 18 seconds @ 2400 baud)

      Merlin EXE which sets the version number field of a chosen rVersion 
resource.  Can be used from the command line, command box and linker file.
No more popping into a resource editor just to update the last revision,
just make it the last command in your linker file!


File # 4035  RPERVERSION.BXY    V1.0  (GS)
Uploaded on 3/31/94 by A2PRO.HELP
About 10K (d/l time approx. 1 minute @ 2400 baud)

      This EXE allows you to edit the rVersion of a file from the command 
line of a shell.  Written for ORCA/Shell v1.2, it may or may not work
under newer versions or other shells (I'd like to hear about it if you
try it.. :).  Read the rPV.ReadMe file for more information.  No more
fiddling with Rez code when you could be doing something productive! No
more dropping to ResLin or LLRE to edit the resource by hand! 
rPerVersion v1.0!  :-) Enjoy.  :)



              >>>  comp.sys.apple2 newsgroup digests  <<<
              """""""""""""""""""""""""""""""""""""""""""

File # 4075  CSA2PROG.17.BXY  (ALL)
Uploaded on 4/21/94 by B.TAO
About 88K (d/l time approx. 8 minutes 48 seconds @ 2400 baud)

      Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Apr 10, 1994.  This week's
highlights (total of 38 messages):
  o  Mouse Bypass INIT
  o  The PHOENIX Project
  o  Which Tech Notes relate to custom window defs?


File # 4074  CSA2GNO.17.BXY  (GS)
Uploaded on 4/21/94 by B.TAO
About 29K (d/l time approx. 2 minutes 54 seconds @ 2400 baud)

      Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Apr 10, 1994.  This week's
highlights (total of 40 messages):
  o  DRWM 2.0 - what would YOU like to see?
  o  TMTerm v1.1
  o  Xlogin and utmp probs...
  o  getty(8) manpage


File # 4073  CSA2SUBJ.17.BXY  (ALL)
Uploaded on 4/21/94 by B.TAO
About 6K (d/l time approx. 36 seconds @ 2400 baud)

      Subject listing for the comp.sys.apple2, csa2.comm,
csa2.marketplace, csa2.gno, csa2.programmer and
csa2.usergroups digests for the week ending Apr 10, 1994.


File # 4047  CSA2PROG.16.BXY  (ALL)
Uploaded on 4/5/94 by B.TAO
About 23K (d/l time approx. 2 minutes 18 seconds @ 2400 baud)

      Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Apr 3, 1994.  This week's
highlights (total of 19 messages):
  o  Format Options Choice Problem
  o  Non-Blocking I/O in ANSI C?
  o  The PHOENIX Project


File # 4046  CSA2GNO.16.BXY  (GS)
Uploaded on 4/5/94 by B.TAO
About 33K (d/l time approx. 3 minutes 18 seconds @ 2400 baud)

      Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Apr 3, 1994.  This week's
highlights (total of 49 messages):
  o  TMTerm v1.1
  o  Using Copycat and rz to download???
  o  xLogin help?


File # 4045  CSA2SUBJ.16.BXY  (ALL)
Uploaded on 4/5/94 by B.TAO
About 5K (d/l time approx. 30 seconds @ 2400 baud)

      Subject listing for the comp.sys.apple2, csa2.comm,
csa2.marketplace, csa2.gno and csa2.programmer digests
for the week ending Apr 3, 1994.


File # 4034  CSA2PROG.15.BXY  (ALL)
Uploaded on 3/31/94 by B.TAO
About 19K (d/l time approx. 1 minutes 54 seconds @ 2400 baud)

      Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Mar 27, 1994.  This week's
highlights (total of 31 messages):
  o  Dynamic Loadable Segments?
  o  GS Modem Port
  o  ProDOS 8 question (forked files?)
  o  Parsing filename from MessageCenter


File # 4033  CSA2GNO.15.BXY  (GS)
Uploaded on 3/31/94 by B.TAO
About 37K (d/l time approx. 3 minutes 42 seconds @ 2400 baud)

      Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Mar 27, 1994.  This week's
highlights (total of 51 messages):
  o  DRWM 2.0 - what would YOU like to see?
  o  TMTerm v1.1


File # 4032  CSA2SUBJ.15.BXY  (ALL)
Uploaded on 3/31/94 by B.TAO
About 5K (d/l time approx. 30 seconds @ 2400 baud)

      Subject listing for the comp.sys.apple2, csa2.comm,
csa2.marketplace, csa2.gno, csa2.programmer and
csa2.usergroup digests for the week ending Mar 27, 1994.



                        >>>  Miscellaneous <<<
                        """"""""""""""""""""""

File # 4063  CDIFF.BXY  (GS)
Uploaded on 4/16/94 by G.DESROCHERS
About 38K (d/l time approx. 3 minutes 48 seconds @ 2400 baud)

      This is a (BSD) UNIX type diff program.  It even puts out in
ex format.  Performs a diff of two files and displays what it thinks is
the difference between them.  Includes source.


File # 4060  DEATHERAGE.TXT  (ALL)
Uploaded on 4/14/49 by DEAN.ESMAY
About 17K (d/l time approx. 1 minutes 42 seconds @ 2400 baud)

      This is a file describing something that involves someone who used to 
be a very good friend to the Apple II world.  We don't condone his
actions but we do believe people should know another side to the story
that's been getting so much attention in the media of late.  And we need
help from people who still think well of Matt, regardless of anything
he's done.  Please read.  This file is identical to a message posted in
A2Pro's bulletin board this evening.


File # 4057  TC2.1.0.BXY  (GS)
Uploaded on 4/10/94 by A2.TONY
About 1275K (d/l time approx. 1 hour 40 minutes @ 2400 baud)

      The Complex II is a multi-user online game system.  The host requires 
an Apple IIgs to run, however the game includes Apple //e, Apple IIgs and
Macintosh terminal programs to support the graphics and sound.
Optionally, it will drive a PFP (Pascal 1.1 Firmware Protocol) emulation
such as those used in Spectrum or ProTERM, but you don't get the cool
graphics and sound.  This file is 1.2MB, and contains everything a sysop
needs to get started.  The terminal programs are downloaded by users the
first time they log on, so you do not need to download this file if just
want to play the game.  (However you do need someone to set this file up
for you to dial in via modem!) Packed with ShrinkIt GS v1.1.  [NOTE:
Hard drive is REQUIRED for this file.]


File # 4042  WAVELABV1B.BXY  (GS)
Uploaded on 4/4/94 by D.TRIBBY
About 124K (d/l time approx. 9 minutes @ 2400 baud)

waveLAB 1.0 fixes defects from version 0.1 and lets you:
   * create and edit MIDI Synth waveforms and instruments
   * load waveforms & instruments from MIDI Synth (".wav" & ".bnk") files
   * load an arbitrary binary file for use as a waveform
   * shuffle the order of instruments using the Edit menu
   * plot graphs of an instrument's waveforms or envelopes
   * save the instruments and waveforms you have created
   * load and play MIDI Synth sequence files
This Beta version contains debug code and has not been fully tested.
Packed with GS Shrinkit.



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



            >>> RTC INTERVIEW WITH ADDREZ and DISREZ CREATOR <<<
            """"""""""""""""""""""""""""""""""""""""""""""""""""
                         
<T.BUCHHEIM>    So, Brian, what what does one do if he wants to add 
                resources to a program, but he uses Merlin rather than 
                ORCA/M and Rez?

<B.WELLS5>      Well, there is Richard's MAKERES Merlin command, but 
                recently I wrote two new Merlin commands that make it very 
                easy to add resources to programs.

                The first one is ADDREZ.  This will convert data generated 
                by the assembler (or another source) into a resource and 
                add it to your program's resource fork.  The resource's 
                type, ID, and attibutes can all be set.

                For disassembly I wrote the second Merlin utility - DISREZ.
                This utility allows you to disassemble any resource as 
                Merlin code.  Which you then can modify, assemble, and put 
                back into the resource fork using ADDREZ.

                When you select a file to open, DISREZ will help you select 
                the resource to disassemble by putting up a list of all the 
                ones in the resource fork.  No guessing at resource type 
                numbers! :)  The source code generated is even commented 
                for your convienence :)

<T.BUCHHEIM>    Wow!  This sounds cool!  Is it shareware?  How much is it?

<B.WELLS5>      In a moment of weakness, I released it as FreeWare.  
                There is no charge for the software.

<T.BUCHHEIM>    Cool! :)

<B.WELLS5>      One thing that makes DISREZ really spiffy is the use of 
                modules.

<T.BUCHHEIM>    Oh?

<B.WELLS5>      These modules contain code that can disassemble specific 
                resources or control templates.  As new resource types of 
                control templates are designed (or changed), new modules 
                can be written to disassemble them.  Documentation on how 
                to write the modules, as well as complete source code, is 
                included with DISREZ.

<T.BUCHHEIM>    Sounds pretty good!  Are any modules included?

<B.WELLS5>      In fact, 25 modules come with the current version.  Each is
                complete with source code, so that the user can modify any 
                of them or write a module of their own.

<T.BUCHHEIM>    Are ADDREZ and DISREZ used from Merlin just like any other
                utility, or do you have to do something special to use 
                them?

<B.WELLS5>      Both can be used from Merlin's disk command line.  However, 
                due to a bug in Merlin, only ADDREZ can be used from the 
                Command Box.  That's not a big loss, though.  I hope to 
                rectify it in a future version.

                I plan to improve the disassembly routines as time allows 
                me to.  I'm planning on bit-value lists, as well as a few 
                other improvements.

                Some people may wonder why I wrote these utilities, what 
                with Apple's REZ and DEREZ utilities being so powerful.

                I did it because I think Merlin 16+ is the fastest, most 
                powerful assembler available, and I want to support it and 
                it's users :)



                    >>> ProDOS STORAGE TYPE CONFUSION <<<
                    """""""""""""""""""""""""""""""""""""

<B.WELLS5>      I just found part of the GS/OS Ref. is kinda misleading :(

<T.BUCHHEIM>    Oh?  what part?

<T.MORALES>     And where is/was the rest of it?

<B.WELLS5>      Look on page 156, which documents GetFileInfo..

                It claims that the storageType is returned as $01-standard 
                file, $05-extended file, or $0D-volume directory or 
                subdirectory file.  But, as we all have known for eons, the 
                OS always returns the actual storageType code..   And $0D 
                is not for both volumes and directories..  :(

<T.MORALES>     That's really confusing.

<T.BUCHHEIM>    $0F is volume, isn't it?

<T.MORALES>     Isn't 0E subdirectory?

<B.WELLS5>      I wasn't bothered by the messup in Apple's docs at first, 
                but this is the official documentation, and many people 
                could be very confused.

<T.MORALES>     I think ProDOS stores 0E as the storage type of 
                subdirectory entries.

<B.WELLS5>      $0E is used in subdirectories, but not like you'd expect.

                In the actual directory information stored on disk, the 
                first file entry is the Directory Header.  $0E marks a 
                Subdirectory Header and $0F marks a Volume Directory Header 
                (Beneath Apple ProDOS).



                 >>> ProDOS's MYSTERIOUS "SPARSE" FILE <<<
                 """""""""""""""""""""""""""""""""""""""""

<R.NIELSON1>    Imagine a 16 megabyte file on a 5.25 inch disk... :)

<POWERPC.PRO>   It's possible, if the file is sparse. :)

<II.ALIVE>      Yeah.  
                CREATE BIGFILE,TBIN... BSAVE BIGFILE,A$2000,L1,B$FFFFFF

<POWERPC.PRO>   You should be able to use L0, too, I think.

<R.NIELSON1>    That'd make a BIG file Jerry!  :)

                Sheppy: how could you load 0 bytes?

<POWERPC.PRO>   It would make a 16 megabyte file that would take 128 blocks 
                on disk, I think.  Maybe 129.

<T.BUCHHEIM>    Russ: yeah, but most of it would take no space, it would be 
                a "sparse file" (ProDOS won't store all that unused bytes 
                on the disk :)

<II.ALIVE>      Yeah, it'd be a 16 MB file on disk, but it'd fit on a 
                floppy. B)

<POWERPC.PRO>   I should know the exact byte count; my tests at Apple were 
                all on this kind of thing with weird EOFs. :)

                You can write zero bytes to disk using BSAVE.  You can 
                probably BLOAD zero bytes, too, but I've never tried. :)

<T.BUCHHEIM>    That's one of the best things about the ProDOS file 
                system..of course, there is one small problem...you can 
                make the file smaller, and it might not fit into the disk 
                anymore! :)

<POWERPC.PRO>   Very true, Tim.

<R.NIELSON1>    LOL Tim!.. smaller but bigger :)

<II.ALIVE>      Yeah, but if you BSAVE 0 bytes, does it make the file 
                sparse

<POWERPC.PRO>   It ought to.

<II.ALIVE>      Yeah, probably does a SET_EOF regardless

<R.NIELSON1>    Please.. explain sparsing

<II.ALIVE>      A sparse file is one in which all the blocks aren't there

<R.NIELSON1>    Does that mean the file is corrupt?

<POWERPC.PRO>   It's perfectly safe; it's a special feature of ProDOS that 
                allows files with lots of zeros to take up less disk space.
                ProDOS' file structure permits a block with no data in it 
                to be represented in such a way that the block doesn't 
                exist on disk; there's just a special value in the file's 
                directory structure that says "this block is full of 
                zeros".

<II.ALIVE>      Say with your picture file, you saved files one and three..
                at $0000 and then at $4000... but you DID NOT save any data 
                into $2000-$3FFF.  The part of the file from $2000-$3FFF 
                was never written to so it takes up no room on the disk

<R.NIELSON1>    Hmm.. fascinating 

<POWERPC.PRO>   It is.  It's unique to ProDOS, I think.

<II.ALIVE>      Well, unique to ProDOS, and DOS 3.3, and DOS 3.2... %)

<T.BUCHHEIM>    A 16 megabyte file of just zeros would fit on a 5.25" disk, 
                while a 200k file of $01 wouldn't fit :)

<R.NIELSON1>    It's mutli-unique :)

<POWERPC.PRO>   It's the most complex part of ProDOS.  It's taken a long 
                time to get that part of ProDOS thoroughly debugged.

<R.NIELSON1>    Gotcha!

<T.BUCHHEIM>    DOS has it? cool, I didn't know that :)

<POWERPC.PRO>   I consider DOS 3.3 to be ProDOS 8, v0.3. :)

<II.ALIVE>      However... writing zeroes to part of a file will NOT make 
                it sparse

<T.BUCHHEIM>    Nope, it doesn't :(

<POWERPC.PRO>   I'm pretty familiar with DOS, and I don't recall 
                it being there.

<II.ALIVE>      (not under ProDOS 8, anyway... GS/OS's ProDOS FST does 
                sparsify files when you write zeroes into them)

<POWERPC.PRO>   Right.

<II.ALIVE>      Sheppy: Serious?  One of the biggest problems when people 
                tried to convert data files from DOS to ProDOS, was that 
                Apple's convert utility wouldn't handle sparse files 
                properly (stopped at the first $00 byte)

<POWERPC.PRO>   How about that.  After all my work with DOS, including 
                updating it to have file date/time stamping and stuff, I 
                had no idea... :)

<R.NIELSON1>    I must tell you.. the Apple is the funnest computer around 
                to program on!!

<POWERPC.PRO>   More likely, I just forgot all about it.  It's been years 
                since I've used DOS seriously.

                I agree, Russell.

 
   


[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        Windows         WINDOWS     1335

    GEnieLamp is also distributed on CrossNet, Internet, America Online,
 Delphi and many public and commercial BBS systems worldwide.

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

     o Our Internet anonymous FTP address is: sosi.com.  All current
       versions of GEnieLamp are available in the ~/pub/GEnieLamp
       directory.  Due to the added expense involved, we ask that when you
       get GEnieLamp via the anonymous ftp for GEnieLamp, that it _not_ be
       ftp'd during the hours of 9AM and 5PM Eastern Standard Time.  We
       appreciate your cooperation in this matter.

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

                    Platform                    Magic Name To Use
                    """"""""                    """""""""""""""""
                    GEnieLamp IBM .................. GLIBM
                    GEnieLamp ST ................... GLST
                    GEnieLamp A2Pro ................ GLA2PRO
                    GEnieLamp Macintosh ............ GLMAC
                    GEnieLamp TX2 .................. GLTX2
                    GEnieLamp A2 ................... GLA2
                    GEnieLamp Windows .............. GLWIN

    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
      #42 in the DigiPub RoundTable on page 1395 (M1395;3) or Email it to
      GENIELAMP.  On Internet send it to: genielamp@genie.geis.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 us "live" talk to us every Wednesday
      night in the Digi*Pub Real-Time Conference, 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/Editor
   """""""""

         IBM  o Bob Connors         [DR.BOB]       EDITOR
         """  o David C. Leithauser [D.LEITHAUSER] HyperRead Editor
              o Brad Biondo         [B.BIONDO]     IBM Staff Writer
              o David Holmes        [D.HOLMES14]   IBM Staff Writer
              o Nancy Thomas        [N.NOWINSON]   IBM Staff Writer
              o Don Lokke           [D.LOKKE]      Cartoonist

     Windows  o Tippy Martinez      [WIN.LAMP]     EDITOR
     """""""  o Brad Biondo         [B.BIONDO]     Windows Staff Writer
              o John Osarczuk       [J.OSARCZUK]   Windows Staff Writer

   MACINTOSH  o Richard Vega        [GELAMP.MAC]   EDITOR
   """""""""  o Tom Trinko          [T.TRINKO]     Mac Staff Writer
              o Robert Goff         [R.GOFF]       Mac Staff Writer
              o Bill F. Martin III  [W.MARTIN3]    Mac Staff Writer
              o Ricky J. Vega       [GELAMP.MAC]   Mac Staff Writer

    ATARI ST  o John Gniewkowski    [GENIELAMP.ST] ST EDITOR
    """"""""  o Mel Motogawa        [M.MOTOGAWA]   ST Staff Writer
              o Sheldon Winick      [S.WINICK]     ST Staff Writer
              o Terry Quinn         [TQUINN]       ST Staff Writer
              o Richard Brown       [R.BROWN30]    ST Staff Writer
              o Al Fasoldt          [A.FASOLDT]    ST Staff Writer
              o Fred Koch           [F.KOCH]       ST Staff Writer
              o Sandy Wolf          [S.WOLF4]      ST Staff Writer

ATARI ST/TX2  o Cliff Allen         [C.ALLEN17]    EDITOR/TX2
 """"""""""""

  ATARI [PR]  o Bruce Faulkner      [R.FAULKNER4]  EDITOR/GEnieLamp [PR]
  """"""""""

    APPLE II  o Doug Cuff           [EDITOR.A2]    EDITOR
    """"""""  o Tara Dillinger      [TARA]         Co-Editor
              o Phil Shapiro        [P.SHAPIRO1]   A2 Staff Writer
              o Mel Fowler          [MELSOFT]      A2 Staff Writer
              o Darrel Raines       [D.RAINES]     A2 Staff Writer
              o Gina E. Saikin      [A2.GENA]      A2 Staff Writer
              o Steve Weyhrich      [S.WEYHRICH]   A2 Staff Writer

       A2Pro  o Nate Trost          [A2PRO.GELAMP] EDITOR
       """""  o Tim Buchheim        [T.BUCHHEIM]   Co-Editor

        ETC.  o Jim Lubin           [J.LUBIN]      Add Aladdin/Scripts
        """"  o Scott Garrigus      [S.GARRIGUS]   Search-ME!
              o Bruce Maples        [B.MAPLES]     Copy Editor
              o Mike White          [MWHITE]       (oo) / DigiPub SysOp
              o Susie Oviatt        [SUSIE]        ASCII Artist



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

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