

                            PubScreenNames
                            ~~~~~~~~~~~~~~

                    A small utility  for the Shell
                          By Diego Caravana

                         Actual Version: 1.1

                                 ---


                            1. Legal Stuff
                            ==============

 PubScreenNames is placed in the Public Domain for the Amiga.
 No  fee  is  requested  to  use it, nor anyone can ask anything for it
 (except for the media).  Feel free to use it, but AT YOUR OWN RISK, as
 I  cannot  be  considered  responsible  for  any damage caused to your
 system.  Have Fun!


                            2. What is it?
                            ==============

 PubScreenNames  is  a  small  utility  that  I have written mainly for
 support  to  my  GetString,  but I think it can be very useful also in
 other  places.   It  is  a  Shell-only  program and its work should be
 clear:   it  prints the names of the actually opened Public Screens or
 checks for the presence of a particular Public Screen, enabling you to
 use it in your Shell scripts (or for what you want :) in a very simple
 way.


                            3. How to use
                            =============

 It  requires  OS  2.04+.
 As  said  above, PubScreenNames is a Shell-only program, so do not try
 to use from Workbench.  It uses the standard parser of OS 2.x.  Try to
 execute  PubScreenNames  with  a  `?'  as  argument  and  you will get
 something like this:

    FULL/S,EXISTS/K

 Now, a little explanations of the arguments:

    FULL/S      specify this if you want more informations about the
                screens (see below), not only the name

    EXISTS/K    is  followed  by  a  string  that  is  the  name  of a
                particular Public Screen whose you want to know the
                presence. NOTE: the comparison of the strings is case
                sensitive!

 The  keyword  above  followed  by `/K' MUST appear in the command line
 followed  by  its  argument.  That followed by `/S' act like a switch,
 i.e.   if  it  appear,  the  corresponding  feature  will  be enabled.
 Remember to use apices when necessary!

 If  you  execute  PubScreenNames  without  arguments,  it will print a
 simple  list of Public Screen names.  If you specify the keyword FULL,
 you will get something like this:

 >PubScreenNames FULL

 N. Name               Visitors Screen     Task       Flags
 ----------------------------------------------------------------------
 1  Workbench             1     $31DBE0    $0         <No Flags Set>
 2  DM                    0     $3759C0    $0         <No Flags Set>
 3  CygnusEdScreen1       0     $34BB20    $0         <No Flags Set>

 Found 3 Public Screen(s)

 >_

 The  first two fields are simple to understand; the third, `Visitors',
 is  the  count  of "Visitor Windows" opened actually on that screen (a
 visitor  window is simply a window opened by a program that is not the
 owner  of  the Public screen); the fourth, `Screen', is the address of
 an  Intuition Screen that corresponds to the Public Screen; the fifth,
 `Task',  is  the address of a task that must be signalled by Intuition
 when some events occours; the last field, `Flags', contains the status
 of  some  flags (for now, only SHANGHAI and POPPUBSCREEN are defined).
 [For  informations  about  Public  Screens, see Intuition Autodocs and
 intuition/screens.[m|h|i] includes.]

 The  keyword  EXISTS  is  useful  only in in AmigaDOS scripts; a small
 example is given below:

    ; stuff...

    PubScreenNames EXISTS DM    ; DiskMaster' Public Screen name
    if WARN                     ; ok, it is opened!
        <...>                   ; ...something...
    else                        ; oh, you didn't run DiskMaster!
        <...>                   ; ...something else...
    endif

    ; even more stuff...


                           4. The Language
                           ===============

 I have used E language to write PubScreenNames.  What?  E ?!  Yea!  Go
 and see the source!!!  :-)
 But  Why?   Because  it  is  a  very  powerful  simple-to-use language
 dedicated  explicitly  to  our Amiga, influenced by C and Modula-2, so
 you  can  imagine  its  power.  It offers an incredibly vast number of
 features, like high speed in compiling, extremely compact executables,
 inline  assembly,  direct  access  to Amiga Shared Libraries, powerful
 type system, exception handling, etc.

 Cool, eh?  Try it, if you do not believe to your eyes ! :-)
 The author of E language is:

      Wouter van Oortmerssen ($#%!)
      Levendaal 87
      2311 JG  Leiden
      HOLLAND
  
  If you have access to Email:

      Wouter@alf.let.uva.nl    (E-programming support)
  or: Wouter@mars.let.uva.nl   (personal)
  or: Oortmers@gene.fwi.uva.nl (other)


                            5. The Author
                            =============

 If  you  want  to  send  me  bug-reports  or a time-bomb *:), I can be
 contacted in the following manners:

    by snail-mail

        Diego Caravana

        V. Liguria, 24
        10071 Borgaro (TO)
        Italy

    by Email

        `Diego Caravana'  on

        FIDO       2:334/308
                   2:334/308.9
        AMIGANET   39:101/3

        Internet   Diego.Caravana%bbs@osra.sublink.org

 To  find  me and the E language stuff, you can call the BBS on which I
 am CoSysOp (located in Turin, Italy):

       *The New ATH*
        ~~~~~~~~~~~
        TEL       +39-11-5629284
                  +39-11-5629290
        FIDO      2:334/308
        AMIGANET  39:101/3
        Internet  <soon>


