VM/COM, April 1984



1
-
            ##     ## ###   ###         ###   ######   ######  ###   ###
            ##     ## ## ### ##        ##    ##    ## ##    ## ## ### ##
             ##   ##  ##  #  ##      ##      ##       ##    ## ##  #  ##
              ## ##   ##     ##    ##        ##    ## ##    ## ##     ##
               ##     ##     ##  ###          ######   ######  ##     ##
0                              CAPS User's NewsLetter
0                               Volume 01 Number 01
0                                     04/05/84
0                       Editor: Andy  Robinson (ANDY@MAINE)
-
-              Staff:
0           Andrew T. Robinson (ANDY@MAINE):            editor;
            Michael Johnson    (CSNM059@MAINE):         editor;
            Barry Gates        (CS23124@MAINE):         editor;
            Richard Fortin     (CS23011@MAINE):         editor;
            Sean Colbath       (GROUP604@MAINE):        staff writer;
            Tim Willsey        (CS23003@MAINE):         staff writer;
0           Prof. G. Markowsky (MARKOV@MAINE):          faculty advisor;
-                   NewsLetter Contribution Sink Machine: CSNEWS
0                Contributions from readers welcomed and encouraged!
1
0                                                                 PAGE 2
-
0                                Table of Contents
+                                _____ __ ________
-           Introduction to Vm/Com  . . . . . . . . . . . . . . . . .  1
            Using NICKNAME Files on CMS . . . . . . . . . . . . . . .  2
            Using CMS MAIL  . . . . . . . . . . . . . . . . . . . . .  6
            Sending Files to Other User's . . . . . . . . . . . . . . 10
            Full Screen Peruse for CMS Users  . . . . . . . . . . . . 13
            Ethics/File Transfer Over BitNet  . . . . . . . . . . . . 16
            Virtual Humor . . . . . . . . . . . . . . . . . . . . . . 18
            Tutor Listing . . . . . . . . . . . . . . . . . . . . . . 22
1
0                                                                 PAGE 1
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Introduction to VM/COM --  Andrew T. Robinson (ANDY@MAINE)
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
                 Here  you have  the first  issue of  VM/COM,  the  CAPS
            User's guide to  the galaxy as it were.   This newsletter is
            intended for the user at CAPS  who is interested in learning
            more  about our  system and  its workings.   It is  composed
            entirely of materials submitted by  programmers and users of
            the  CAPS  system,   and  the VM/COM  staff.    We  are  not
            associated in  any way  with the  CAPS administration.   The
            newsletter  contains   features  such   as  a   programmer's
            notebook,   programs   of  general   interest,   programming
            techniques,  a gripe column (VM-FLAME),   a section for MAIL
            from our readers,   a humor column,  and a  lot more!!!  Our
            publication is  primarily directed  towards increasing  your
            effectiveness  *and* enjoyment  while  programming the  CAPS
            VM/SP CMS system.
0                We encourage unsolicited material from our readers.  We
            can't guarantee that everything will be included in the next
            issue,  but everything we receive *will* be saved for future
            reference.   Send   anything  computer-related:     Humorous
            anecdotes,  Programs you feel other  users may have use for,
            programming  tips in  any language,   gripes and  complaints
            about us  or the system  in general,   and of course  we are
            always willing to accept complimentary MAIL also...
0               A service we feel will  be especially useful to students
            is the consultant/tutor list, and VM/COM will be building an
            index of programming articles  included in our 'publication'
            which will be available on request every time a new issue is
            sent out.  Our tutor/consultant list should aid students and
            users who need help in finding it...  At this time we have a
            total  of  five tutors  who  can  give  you help  on  almost
            anything related to computer science.  We  will also include
            a list  of student  consultants,  at least  one of  which is
            usually  available during  the day  in one  of the  terminal
            areas.   Members of the VM/COM staff are often available for
            consulting at various times during the day.
0               This weeks  issue deals primarily  with methods  of file
            transfers and  the use  of NICKNAME  files etc.   etc.   The
            articles are written primarily for the  new user who has had
            a little experience  with full CMS.   We would  like to hear
            your comments  about this issue so  we can improve  the next
            one, but for dow, this is it!
0               So here it is.  Read and (hopefully) enjoy.   We will be
            looking forward to your comments in the next issue, probably
            to be  sent out in  2-3 weeks,   depending on the  volume of
            material we receive.
1
0                                                                 PAGE 2
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Using NICKNAME Files on CMS -- Barry D. Gates (CS23124@MAINE)
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
                After a short time using this system,  you will probably
            have  accumulated  a list  of  your  friends who  also  have
            logonids on the computer.   Fortunately,   CAPS has a system
            set up  for handling lists  of user,   so that you  need not
            remember your friends id number, only his 'nickname'.   This
            Nickname system  is supported by  the MAIL and  MM (multiple
            message)   commands  and  allow you  substitute  a  person's
            nickname instead of his logon id.
0               A nickname file is simply a list of names and numbers in
            their proper  columns in  a file called  NICKNAME FILE  or a
            file with any  name and a filetype of  NICKNAME.   To create
            such a file,  you use the  XEDIT command NICKNAME.   For the
            purposes of  this article,  I  will use NICKNAME  FILE.   To
            start out, type
0           XEDIT NICKNAME FILE
0           This will  put you  into the XEDITOR  editing a  file called
            NICKNAME FILE.  Then issue the XEDIT command NICKNAME.  This
            will prompt you for each item necessary, as follows:
0               The first thing  it will prompt you for  is the nickname
            of the person you wish to add.    This nickname may be up to
            eight characters long and will be  used as the name you wish
            to refer to  your friend's id by.   The next  prompt will be
            for your friend's id.   After that  you will be prompted for
            the user's "Location/Route id".  This field is optional, and
            if you simply type a carriage return, it will store LOCAL in
            your file.    This field is  used to designate  the computer
            system where your friend(s) is/are located.  If you knew the
            logon id of a friend at USM, you could send messages or mail
            to him.   Of  the numerous computers which  connect to MAINE
            (which is  the name for  our computer,  although  LOCAL will
            also  do),   USM is  called  PORTLAND,   and UMF  is  called
            FARMNTON.   The next  prompt is for a phone  number,  and is
            optional.   Note:  If you want to put a phone number in, use
            the format displayed on the  prompt,  otherwise the parts of
            the number may be lost.  After that you will be prompted for
            the person's name.   This data will  be stored in mixed case
            and can be up to  twenty-eight characters long.   This field
            is also optional.  It will then ask you if you wish to enter
            more nicknames.  If you do note  type 'Y' it will assume you
            do not have more to add.   When you are done adding entries,
            simply file it and then you have yourself a nickname file.
1
0                                                                 PAGE 3
0               The following  is an example  of how a  NICKNAME session
            may work.   Lines that start with  a '>' are things that you
            the user type in,   and those that are not are  the ones the
            computer types:
0           >xedit nickname file
0           XEDIT:
0           >type *
0           BARRY   CS23124  MAINE   *   *     *   *     Barry Gates
            ANDY    ANDY     MAINE   *   *     *   *     Andrew Robinson
            VM/COM  CSNEWS   MAINE   *   *     *   *     ID For Vm/Com
0           >nickname
0           ***** Nickname?
0           >jim
0           ***** Realid? (userid of the person who's nickname is JIM)
0           >useridxx
0           ***** Location? routeid
0           >portland         (Jim is a user at USM, or PORTLAND)
0           ***** Phone No? area nnn-nnnn ext
0           >207 999-1111 0345
0           ***** Full name? Mixed Case -- up to 28 characters.
0           >Capt. James T. Kirk
0           JIM   USERIDXX PORTLAND  999-1111 0345   Capt. James T. Kirk
0           ***** More entries (Y/N)?
0           >n
0           XEDIT:
0           >file
0               Now that you have a nickname file,  let's use an example
            on how to use  it.   Here is a portion of  a sample nickname
            file:
0           BARRY   CS23124  MAINE    *  *        *  *   Barry Gates
            ANDY    ANDY     MAINE    *  *        *  *   Andrew Robinson
            VM/COM  CSNEWS   MAINE    *  *        *  *   ID For Vm/Com
1
0                                                                 PAGE 4
0           JIM     USERIDXX PORTLAND  999-1111 0345     James T. Kirk
0           If I wanted to send a  mailfile to the Vm/Com Newsletter Id,
            I would simply type
0           MAIL VM/COM
0           (for more information on MAIL see  the article in this issue
            by Michael Johnson).  If I knew that my friend Andy was on I
            could send  him a message by  typing MM ANDY HELLO,   I NEED
            YOUR HELP.  The MM command will replace ANDY with his number
            from my  nickname file and send  a message just as  though I
            had typed  M ANDY HELLO,  I  NEED YOUR HELP.   You  may have
            noticed that  I have  an entry  for myself  in the  nickname
            file.   Although this may seem a pointless thing to do, when
            you use MAIL, the mail command finds out what your userid is
            and looks  in your nickname file  for an entry for  that id.
            It then puts the name field in the header for that mailfile.
0               This  last  section  concerns the  MM  command.    As  I
            mentioned before, the MM command will send multiple messages
            to a user.   This is only a  small part of what that command
            does.  To specify a userid, you type MM followed by either a
            userid,  a  nickname or  a userid  and nodeid  (name of  the
            computer the userid  is on)  in form  'userid@nodeid.'  If I
            wanted to  say hello  to a  friend in  Portland with  the id
            WATSON, I would type MM WATSON@PORTLAND HELLO,  and he would
            get  a message  saying 'HELLO.'  Notice that  the 'at'  sign
            ('@')  is required  only if you don't have an  entry in your
            nickname file  for a  person at  another installation  (like
            PORTLAND) and not at all if you are talking to someone using
            our computer system.
0               If you  do not type a  message after specifying  who the
            message is for,   MM will prompt you  with 'Enter Message:'.
            Here you  may type in several  lines of messages,   in mixed
            case, followed by a null line.   These lines will be sent to
            the user  specified.   MM will  also format the  messages so
            that they will take the minimum number of lines possible and
            so they will  fit on an 80 column screen.    I will conclude
            this article with an example.  If I typed in the following:
0           MM ANDY
            Enter msg:
            Hello,
            how are you?
            I was wondering if you wanted to order out for a pizza.
            Pepperoni and mushroom with extra cheese sound good to you?
0           Msg sent to ANDY 
            R;
1
0                                                                 PAGE 5
0           Andy will get the following on his screen:
0           20:57:51 MSG FROM CS23124 : Hello, how are you? I was
            20:57:51 MSG FROM CS23124 : wondering if you wanted to order
            20:57:51 MSG FROM CS23124 : order out for a pizza. Pepperoni
            20:57:51 MSG FROM CS23124 : and mushroom with extra cheese
            20:57:51 MSG FROM CS23124 : sound good to you?
-
            *Editors note*  For  those of you who have  mastered the use
            of CMS NICKNAME,   there exists on system  another method of
            entering nicknames,  called the system  nickname file.   The
            software for using this facility  is available by typing the
            command:
0           SHARE NICKNAME
0           at the console.   There are  many advantages to using SYSTEM
            NICKNAME,   but the  primary advantage  is that  your id  is
            available to  all users  who share  the NICKNAME  disk,  and
            people who do not interact with you often can send MAIL that
            will include your real name as specified in SYSTEM NICKNAME.
            The reader is left to experiment with this system.
1
0                                                                 PAGE 6
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
             Using CMS MAIL --   Michael Johnson (CSNM059@MAINE)
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
                I am sure most of you who are reading this have wondered
            at one time or another about  the CMS mail facility.  If you
            already know how  to use it,  you  may not need to  read any
            further than this, but there is a possibility you might pick
            up something you don't already know!
0               The  CMS mail  facility is  invoked  by one  of two  key
            words,  MAIL or  MEMO.  Either of these  will accomplish the
            same thing,  which is to activate  a macro named MEMO.  Just
            calling MEMO with  no parameters will not get  you very far,
            so let's cover some of the  more basic functions of the MEMO
            macro.  (In the interest of readability, I will use the term
            MAIL  to refer  to  either method  of  activating the  macro
            MEMO).
-               Recieving new MAIL:  To recieve  new mail,  type MAIL R.
            The macro will then look in your virtual reader for any mail
            files you may  have.  If you don't have any,   then an error
            message will be printed,  and  the macro will end execution.
            Any mail files that you do have will be displayed,  one at a
            time,   on your  terminal.  After  each mail  file has  been
            displayed,  you will be queried as to the disposition of the
            mailfile you have been viewing.   The following message will
            be printed:
0           Disposition? (Log  , Delete, Type, Print
                          ,   Forward userid, Reply
                          ,   Tickler > ,
                          Cms )
0           The  query  will  be  in this  form  the  first  time  only.
            Subsequent queries (if you have more than one mailfile) will
            be in a shortened form:
0           Disp? <?>
0           To see the full message, type a '?' at this point.  Covering
            all the  possible responses  to this  query would  be rather
            tedious here, so I will talk about them later.
-               Sending new MAIL to someone else: The syntax for sending
            new mail is as follows:
0           MAIL userid >
                 nickname
                 userid@nodeid
1
0                                                                 PAGE 7
-           Where: userid is the  logonid  (i.e. CS23nnn, etc.) of the
                   person you are sending the mail to.
0                  nickname is the  nickname designated  for the person
                   you are sending the  mail to in your  NICKNAME file
                   (for  more information  on NICKNAME files,  see the
                   article in this issue by Barry Gates).
0                  userid@nodeid:  userid is the logon of a person at a
                   remote BITNET node, and nodeid is the BITNET nodename
                   for that installation.   For more information on the
                   BITNET,  see the CMS help file.  The '@' character IS
                   necessary in this form of the command.
0                  >:  Are the designation
                   for an existing file on  one of the user's disks.  A
                   file may be designated with any of the above recipient
                   designations.  A copy of  the designated file will be
                   placed in a mailfile with a  subject  line at the top
                   of the header as follows:
0                  Subject: **MAIL**  of the contents of file 
0                  The mailfile will then be sent off to the MAILER server
                   machine at MAINE. More on the header and subject line
                   in the next paragraph.
-               When the macro  is called to create a  new mailfile,  it
            will (if no existing file is designated)  invoke the Xeditor
            and a special Xedit  macro will be run to build  a header on
            to the top of the file.  The header will be in the following
            form:
0           To:      userid@nodeid <(recipient name)>
            From:    userid@MAINE <(sender name)>
            Date:    
            
0           The  user will  then  be queried  for  a  subject.  This  is
            straight forward.    Type in  whatever you  wish to  at this
            point  (within  reason)   for a  short  description  of  the
            contents of  the mailfile.   If you  do not  want to  have a
            subject  line,  just  hit the  RETURN or  ENTER key  without
            typing anything in.
0               You are now ready to create your mailfile.  You have all
            the capabilities of  the Xeditor at your  disposal to create
            the  mailfile  you wish  to  send.   When you  are  finished
            creating the mailfile,   issue the FILE command  to exit the
            Xeditor.  The mailfile will then be sent to MAILER,  and you
            will be queried  as to the disposition of the  file you have
1
0                                                                 PAGE 8
0           just created.  This  is the same query message  that you get
            upon recieving new mail.  If you  should happen to quit from
            the Xeditor without creating a mailfile, i.e. QQuitting, the
            macro will detect this  and will not attempt to  send a non-
            existant file, but will type a line that says:
0           Mail not sent. xxxxxx MAIL not created.
0               At this  point I feel  it is  necessary to give  a brief
            description  of the  dossible responses  to the  disposition
            query.
0           Log : Will  place  the mailfile  that has just  been
                          displayed/created  in  a  file  designated  by
                           on the user's mini-disk as specified.
                          The default fileid is  OLDMAIL LOG A,  but any
                          id is possible.  If the log file is created on
                          a Temp disk the  mailfile is not deleted,  and
                          the query again takes place.
0           Delete:       The mailfile you have been viewing/creating is
                          removed  from your  mini-disk  and/or  virtual
                          card reader.
0           Type:         The mailfile that you have been viewing/creat-
                          ing will be typed on your terminal.
0           Print:        A copy of the mailfile you  have been viewing-
                          creating will be sent to your virtual printer,
                          with the device being spooled as designated in
                          .  If no parameters are given,
                          the device is not altered.
0           Forward:      A  copy of  the mailfile  will be sent  to the
                          specified userid in a  special format with any
                          additional  comments you  care to  add via the
                          Xeditor,   which is  invoked by  the macro  to
                          create the mailfile in forwarded format.
0           Reply:        Similar in execution to Forward,  except a new
                          mailfile is created and  sent to the specified
                          user.  The person  who sent the file currently
                          being disposed is the default for userid.
0           Tickler:      Use the contents of  the mailfile to set up an
                          entry in your reminder file.  More on REMINDER
                          and tickler files in a  future issue of VM/COM.
0           Cms:          Issue the  CMS/CP command of  your choice,  or
                          drop  into the  CMS SUBSET  if no parameter is
                          given.
1
0                                                                 PAGE 9
0               This has by no means been a complete coverage of all the
            facets of the Cms mail facility, and there will be a follow-
            up  article in  the next  issue to  take up  topics such  as
            options to  the mail  command,  and details  of some  of the
            items that were only briefly discussed in this article.   In
            the meantime,   try out  Cms MAIL and  see for  yourself how
            useful it can  be.  I should insert a note  of caution here:
            the  mail facility,   like any  other  convenience,  can  be
            abused. This proves to be at the very least an annoyance, so
            exercise discretion in the use of MAIL.
1
0                                                                PAGE 10
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Sending Files to Other User's  -- Andy Robinson (ANDY@MAINE)
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
                Most people  who have  used CMS for  any length  of time
            will have either  desired to transfer files  to other users,
            or actually done so.   This article is intended primarily to
            demonstrate a simple and fast way  to send files to any user
            at any installation connected to BITNET.
0               The most generalized file transfer  commands is CMS DISK
            DUMP.  It will send files of any length,  including modules,
            wherever  you direct  them.   The  format of  the DISK  DUMP
            command is:
0           DISK DUMP filename filetype  <( STD <)>>
0                Files sent by the DISK DUMP  command can only be loaded
            by the DISK LOAD command, which has the format:
0           DISK LOAD  <( NOREPLACE <)>>
0               In order to direct the files  to the appropriate user at
            the  appropriate node,   the user  must issue  the CP  SPOOL
            command in the following format:
0           CP SPOOL PUNCH TO userid 
0           Where 'userid'  is the userid of  the person to  receive the
            files,  and ROUTE is optional,  and  is only used if you are
            sending to another installation other than MAINE.   Examples
            of valid nodes are PORTLAND and FARMNTON.
0               When you are through sending  files to the specific user
            and node, it is good practice to issue the command:
0           CP SPOOL PUNCH OFF ROUTE OFF
0           which resets  your virtual  punch parameters,   so that  any
            files  you punch  will not  go merrily  bounding around  the
            bitnet looking for an owner.
0               After issuing the  first SPOOL command,  you  then issue
            the DISK DUMP command for every file you want to send.  When
            you are through sending files to one user you can just issue
            a new SPOOL PUNCH TO/ROUTE command and send to another user.
            When you are through sending files, issue the CP SPOOL PUNCH
            OFF ROUTE OFF command to reset  your punch,  and do whatever
            else you want.
1
0                                                                PAGE 11
0               You can  also use the EXEC  facility of CMS  LISTFILE to
            make  an EXEC  file called  CMS  EXEC on  your A-disk  which
            contains  the names  on  multiple files  to  which a  single
            command is to be applied.  The format for this command is:
0           LISTFILE filename filetype filemode (EXEC PREFIX 2 SUFFIX 3
-               To load a DISK DUMP file sent by another user,  you must
            issue the  DISK LOAD command.   If there are  other non-DISK
            DUMP files in your reader,  you  will have to ORDER the file
            so that it can be read in.  This is accomplished by doing a
0           CP QUERY READER ALL
0           Which might result in the OUTPUT:
0           ORIGINID FILE FORM RECRDS CO HLD  DATE  TIME  NAME  TYPE
            CSNEWS   2194 LOG  000031 01 NOH  03/30 16:13
            ANDY     3531 LOG  001012 01 NOH  03/30 18:46
            CS23011  6668 A    000029 01 NOH  04/01 18:35 STUFF DISKLOAD
0           The file with a 'TYPE' of  DISKLOAD was produced by the DISK
            DUMP command.   The command always places this 'TYPE' in the
            CP file identifier,   but users can alter this  using the CP
            commands, such as CLOSE or CHANGE.
0               Now, to retrieve the DISK LOAD file,  just look down the
            'FILE' column in the QUERY data, find the file-number, which
            in this case is 6668, and then issue the CP ORDER command:
0           CP ORDER RDR 6668
0           Which should result in the output:
0           0001 FILE ORDERED.
0           Now you can issue the DISK LOAD command to get the file.  It
            will be loaded onto your disk with the fileid of the file as
            it was sent from the sender's disk.   You should use care in
            this  since  a file  of  the  same  name  and type  will  be
            OVERLAYED AND POSSIBLY  DESTROYED by the DISK  LOAD command.
            It is better to  dse the  NOREPLACE option of the command to
            prevent this possible problem:
0           DISK LOAD (NOREPLACE
0           Now, the output might be:
0           RFETHICS HELPNEWS A1
0           Indicating that a file with the  fileid typed at the console
            was loaded  on your A-disk.  You  can load the file  on some
            other read-write disk than d your A-disk by typing:
1
0                                                                PAGE 12
-           DISK LOAD  (NOREPLACE
0           For instance:
0           DISK LOAD B
0           Will cause the file to be loaded on your B-disk.
0           You will  have to  repeat the  ORDER/DISK LOAD  sequence for
            every DISK DUMP file in your reader,  until all are read in,
            or you get sick of doing it, whichever comes first.
0                A sample  file sending sessions follow.    Lowercase is
            user input and uppercase is system response:
-           cp spool pun to john route portland     <- set up to send
            disk dump test1 exec                    <- dump first file
            PUN FILE 3001 TO JOHN    COPY 001 NOHOLD ROUTE PORTLAND
            disk dump test1 module                  <- send second file
            PUN FILE 3002 TO JOHN    COPY 001 NOHOLD ROUTE PORTLAND
            cp spool pun to jeff                <- ROUTE still PORTLAND
            disk dump file1 fortran             <- send him a file
            PUN FILE 3008 TO JEFF  COPY 001 NOHOLD ROUTE PORTLAND
            cp spool pun route off              <- Reset route to LOCAL
            disk dump file1 pascal              <- file to JEFF at MAINE
            PUN FILE 3010 TO JEFF    COPY 001 NOHOLD
            cp spool pun off route off          <- reset punch
-           * IMPORTANT NOTE!!!!  * If you send files to an installation
            other  than  a  CAPS installation  (MAINE,   PORTLAND,   and
            FARMNTON)  you  *must* use the  'STD' option of  DISK DUMP!!
            CAPS DISK  DUMP has special  modifications to  improve space
            usage efficiency, and other locations do not implement these
            mods.  For instance,   if sending to a user  at CUNYVM,  you
            would say:
0           CP SPOOL PUN TO JOEUSER ROUTE CUNYVM
            DISK DUMP FILE1 WHATEVER A (STD
            CP SPOOL PUN OFF ROUTE OFF
0           If you do  not do this,  the people who  receive the file(s)
            will NOT be able to read them in!!
0               These commands  are effective,   but tedious  to use  at
            best,  especially when sending large numbers of files.   The
            individual user  is encouraged to  write EXEC  procedures to
            standardize file sending and receiving.  Two such procedures
            called IMPORT and EXPORT are available from the VM/COM staff
            on request  as examples.    The user would  also do  well to
            examine the file  transfer ethics document compiled  by Rick
            Fortin in this issue.
1
0                                                                PAGE 13
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Full Screen Peruse for CMS Users --   Sean Colbath,
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-                        Using XEDIT and EXEC2 to simulate
                        Peruse in full screen -- a tutorial
-               One of  the disadvantages to  the CMS PERUSE  command is
            that it  does not  take advantage of  the capabilities  of a
            full-screen terminal.    However,  EXEC2 and XEDIT  have the
            capability to  simulate peruse  and do  it in  a full-screen
            mode.
0               To make this command work successfully, you need to make
            2 files.    One is  written in EXEC2,   and is  the 'control
            file',  responsible for handling the  spool file and getting
            it to XEDIT.  The second is  an XEDIT macro that formats the
            screen and allows the user to  display the file.   It is the
            exec file that I will address first.
0               The basic EXEC makes use of  4 commands to do the set-up
            procedure.   It uses the CMS  command VMINFO to determine if
            the user  is on a full-screen  device,  and to  obtain other
            important information.   Secondly,  it  uses SILENTCP to get
            information  on  the  spool  file,   and  thirdly  it  makes
            judicious use of the SPOOL and  DEFINE command to access the
            file.
0               The last two  commands are the most  important.   One of
            the primary problems with the  full screen peruse command is
            getting the  file on  disk (where  XEDIT can  manipulate it)
            without deleting the file from the reader spool queue.   The
            solution  is the  HOLD attribute  of the  CP SPOOL  command.
            SPOOLing  the reader  HOLD allows  you to  read in  multiple
            copies of a file without  destroying its corresponding spool
            file.  It is this method that is most commonly used.
0                Another problem is the fact that  the user may not want
            the status of his reader changed by the program.  A good way
            to get around this is to use  the AS parameter of the DEFINE
            command.   Using this, you can define your current reader at
            another address,  and define a new reader at the CMS default
            reader address,  00C.    The new reader may  be SPOOLed with
            whatever attributes the user  desires without destroying the
            original reader.  When you are  through with the new reader,
            you can replace  the old device with  its attributes intact.
            Here is an example:
1
0                                                                PAGE 14
0           CP DEFINE 00C AS 0CC      < This moves the reader to virtual
                 ...                  < address 0CC
            CP DEFINE RDR 00C         < This gets a new reader
            CP SPOOL 00C HOLD         < Give it the hold attribute
                 ...                  < Perform the needed task
            CP DETACH 00C             < Remove the extra reader
            CP DEFINE 0CC AS 00C      < Replace the user's reader
0                Now  on to  XEDIT.   The  XEDITor has  a very  powerful
            screen formatting command, RESERVE.   This will let the user
            reserve certain lines of the screen  from usage by XEDIT and
            put his data on them.   All un-reserved lines (if any)  will
            be  used  to show  the  file.    The  RESERVEd line  may  be
            highlighted or not,  and protected or  not.   I will go into
            the further uses of the RESERVE  command in a later article,
            since we will only use  RESERVE for output.   After stacking
            the  spool file  data  to the  XEDIT run  file,   it can  be
            displayed on the screen as a descriptive header.  Here is an
            example:
0                SET RESERVED 1 HIGH Perusing spool file &SID,
                                   from user &USR at &DATE &TIME
0           This reserves  the first  XEDIT screen  line with  the words
            "Perusing spool file..."  and the contents of  the variables
            &SID, &USR, &DATE and &TIME.  As many or as few lines of the
            screen can be reserved as is desired by the user.
0               The XEDIT  macro portion  of the  peruse command  should
            handle the setting of PF-keys,  reserving descriptive screen
            lines,  and (optionally)  processing command-line input from
            the user (to implement a special command, for instance).
0               Upon exit from the XEDIT  macro,  the caller exec should
            determine what to do with the  file (such as purge the file,
            leave it in the spool queue, READ it, or DISK LOAD it).   It
            is possible to  put a return code value on  the QUIT command
            line (used to leave XEDIT) and have the caller interpret it.
            Note:   It  is NOT possible to  issue the QUIT  command from
            within an XEDIT macro.  You must stack the QUIT command, and
            leave the macro via &EXIT.
0                This  is  by   no  means  a  definitive   list  of  the
            possibilities of this peruse command or of using EXEC2/XEDIT
            macro combinations to create your own commands.   The reader
            should  use  these  suggestions  to  make  his  or  her  own
            programs,  and experiment as desired.    If you would like a
            sample peruse command (RLOOK, or ReaderLOOK)  written by the
            author, simply contact the VM/COM staff.
1
0                                                                PAGE 15
0                  {Description of the RLOOK program  by Sean Colbath}
0               RLOOK allows the user to use all the capabilities of the
            XEDITOR (except  for making alterations  in the  spool file)
            because it is  an extention of the editor  itself.  The user
            can step  through the file page  by page,  or can  shift the
            file one  screen to the right  or left for very  wide files.
            When the user is done,  he/she may purge the file,  quit and
            leave the file in the spool queue,  read the file (if a read
            control card is  present)  or disk load the file  (if a disk
            load card is present).
0                The current  version allows access to  commands through
            pre-set pfkeys, or through the console. This allows the user
            to do searches for pieces of data contained in the file. The
            only limitation  to the size  of the  file is the  amount of
            storage available  and the amount  of free disk  storage the
            user presently has.
1
0                                                                PAGE 16
0           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Ethics/File Transfer over Bitnet -- Richard Fortin (CS23011)
            +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
                Lately, I'm sure,  it has come to most users' attentions
            that a problem exists in insuring  that files which are sent
            to other nodes across Bitnet are  not files which should not
            be sent, such as IBM copyrighted material.  The main concern
            to  administration  is  that  files  recognized  as  legally
            copyrighted software remain  at the nodes which  have bought
            them and not get distributed far  and wide for free.   There
            are other concerns  as well among users.   Many  of us write
            utility programs  which get spread  amongst our  friends and
            their friends  and etc.    On occasion  some of  the authors
            might not  wish to see  their programs spread  about without
            their consent.   So  in order to save us all  some grief and
            perhaps  insure  the  continued   existance  of  the  Bitnet
            connections a few simple guidelines should be followed.
0           1)  If the material is copyrighted by a company, university,
                or some other institution under no  circumstances should
                you take it upon  yourself to  send it to  someone else,
                even someone on the same system as you. Such software is
                usually purchased and it is  *ILLEGAL*  to distribute it
                by any means.
0           2)  If the material has been copyrighted by a person you do
                not know  you should  treat it as if  it is copyrighted
                by a company.
0           3)  If the  material has  been copyrighted  by a person  you
                know you should at least obtain  their permission before
                sending it and better yet refer the person asking for it
                to the author.
0           4)  If the  material is not copyrighted but is obviously the
                work of someone you know follow the same procedure as if
                it was copyrighted by them.
0           5)  If  the  material is  not  copyrighted but  is obviously
                system software then DO NOT distribute it.
0           6)  If  the  material  is not  copyrighted  and is  just  an
                interesting piece of  uork go ahead and send it,  that's
                that's what Bitnet's for.
0               And one last  thing to remember,  when  sending material
            that is copyrighted ( after obtaining permission of course )
            always send the copyright with it.
1
0                                                                PAGE 17
0           * Editors note *  Also keep in mind the nature  of the files
            you are  transmitting and what they  are meant to  do.   For
            instance,  CAPS  is within  it's rights to  NOLOG a  user or
            ERASE a file that they consider threatening to the system or
            other  users.   Things  such as  repetitive message  sending
            execs and  terminal-holders are frowned upon  by operations.
            Use your common  sense,  and when in doubt,   ask someone in
            authority.   If  you follow the guidelines  prescribed above
            you will probably not have any troubles, but if you feel the
            slightest bit funny about it... ASK!
0           Also note that a legally binding copyright for non-purchased
            software is of the general form:
0           (C) year BY name, ALL RIGHTS RESERVED
0           For example:
0           (C) 1984 BY JOE C. DOE (JOEDOE@VMVM), ALL RIGHTS RESERVED
0           Such  a  copyright legally  binds  a  person who  wishes  to
            distribute the  piece of software  to obtaining  the authors
            permission before doing so.
1
0                                                                PAGE 18
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Virtual Humor --  Edited by the VMCOM editorial staff
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
                It's nice  to see your  bright smiling faces  bright and
            smiling again, and this seems like the time to enlighten you
            on  our 'humor'  column.   In  this column,   we put  almost
            anything that's funny and computer related.   Of course,  we
            *are* limited by the bounds of good taste, most of the time,
            but virtually anything  can make it into the  column (no pun
            intended).
0               Some of our regular features are 'OPCODEs', a listing of
            all kinds  of weird  and occasionally  funny perversions  of
            machine language  instruction mnemonics,   'CSJOKES',  again
            weird,  even funny,  jokes about the system and computers in
            general, and then, anything else we can fit in.
-           Opcodes #1 (if you have any funny opcodes, send them in!!):
0           TTITT   Turn 2400 foot tape Into Two 1200 foot tapes
            SEX     Sign EXtend
            CRUEL   CRash Until Everyone Leaves
            SSM     Set Sado-Masochistic CPU mode ON
            WWLR    Write Wrong Length Record
            WWR     Write Wrong Record
            AWP     Argue With Programmer
            CPWM    CPU - Weird Mode
            SUR     Screw Up Royally
            CUC     Cheat Until Caught
            SUP     Solve Unsolvable Problem
            SHRT    SHRed Tape
            CSYS    Crash SYStem
            CSNIO   Crash System on Next I/O
            TST     Trash System Tracks
            CS      Crash System
            WSE     Write Stack Everywhere
            FSM     Fold, Spindle and Mutilate
            FSRA    Forms Skip and Run Away
            ESB     Eject Selectric Ball
                     Õfrom IBM selectric typewriter terminalsþ
            BSC     Burst Selector Channel
            SRDR    Shift Right, Double Ridiculous
            DIRFW   Do It Right For Once
            ERM     Erase Reserved Memory
            SRR     Shift Registers Random
            AR      Alter Reality
            EROS    Erase Read Only Storage
                     ÕSounds like an IBM special!þ
            EROM    Erase Read Only Memory
            CRM     Clear Random Memory
1
0                                                                PAGE 19
0           ERIC    Eject Random Integrated Circuit
            CSD     Cough, Sputter, and Die
            EP      Eat Pizza
            EPI     Eat Pizza Immediate
            BF      Belch Fire
            FOPC    ÕSetþ False Out-of-paper Condition
            PEHC    Punch Extra Holes in Cards
            EEP     Erase Entire Program
            DDC     Daily During Calculations
            PAUD    PAUse Dramatically
            BDC     Break Down and Cry
            EJDV    EJect Disk with initial velocity V
            SDC     Spool Disk to Console
            ED      Eject Disk
            PD      Punch Disk
            FLD     FLing Disc
            SDE     Solve Differential Equations
            TDS     Trash Data Segment
            EDIT    Erase Data and Increment Time
            CCD     Clear Current Directory Õthis may really exist!þ
            WC      Waste Core ÕUNIXþ
            CCCI    Clear Condition-Codes Indefinitely
            DCWPDGD Drink Coffee, Write Program, Debug, Get Drunk
            SCCA    Short Circuit on Correct Answer
            EC      Eject Carriage
            ECL     Early Care Lace
            PCI     Pleat Cards Immediate
            SCI     Shred Cards Immediate
            SC      Shred Cards
            SCTR    Stick Card To Reader
            ECP     Erase Card Punch
            SHRC    SHRed Card
            MBTD    Mount Beatles on Tape Drive
            PBPBPBP Place Backup in Plain Brown Paper Bag, Please
                     Õfor stealing codeþ
1
0                                                                PAGE 20
0           CS-Jokes #1:
-           (These  jokes courtesy  of  Mike Dow.   They're  not all  CS
            oriented,  but we hope you get a laugh out of a few of them.
            For a complete list, just ask a VM/COM staff member!)
-                  The Cannonical Collection of Light Bulb Jokes
0           Q: How  many Psychiatrists does it take to change a light
               bulb?
            A: Only one, but the bulb has got to really WANT to change.
0           Q: How many programmers does it take to screw in a light
               bulb?
            A: None.  Thats a hardware problem.
0           Q: How many Unix hacks does it take to change a light bulb?
            A: As many as you want; they're all virtual, anyway.
0           Q: How many Bell Labs Vice Presidents does it take to change
               a light bulb?
            A: That's proprietary information.  Answer available from
               Western Electric Corp. on payment of license fee
               (binary only).
0           Q: How many graduate students does it take to screw in a
               lightbulb?
            A: Only one, but it may take upwards of five years for him
               to get it done.
0           Q: How many jugglers does it take to change a light bulb?
            A: One, but it takes at least three light bulbs.
0           Q: How many valley girls does it take to change a light
               bulb?
            A: Oooh, like, manual labor?  Gag me with a spoon!
0           Q: How many data base people does it take to change a light
               bulb?
            A: Three:
             One to write the light bulb removal program,
             one to write the light bulb insertion program, and
             one to act as a light bulb administrator to make sure
             nobody else tries to change the light bulb at the same time
0           Q: How many Zen masters does it take to screw in a light
               bulb?
            A: Two: one to change the bulb and one not to change it.
            Notes:  1 to change and 1 not to change is fake Zen.  The
                    true Zen answer is Four.  One to change the bulb.
1
0                                                                PAGE 21
0           Q: How many Carl Sagans does it take to screw in a light
               bulb?
            A: Billions and billions.
0           Q: How many folk singers does it take to screw in a light
               bulb?
            A: Two. One to change the bulb, and one to write a song
               about how good the old light bulb was.
0           Q: How many surrealists does it take to change a light bulb?
            A: Two, one to hold the giraffe, and the other to fill the
               bathtub with brightly colored machine tools.
0           Q: How many psychologists does it take to change a lightbulb?
            A: None, the bulb will change itself when its ready.
0           Q: How many IBM types does it take to change a light bulb?
            A: 100. Ten to do it, and 90 to write document number
               GC7500439-0001, Multitasking Incandescent Source System
               Facility, of which 10% of the pages state only "This page
               intentionally left blank", and 20% of the definitions are
               of the form "A ...... consists of sequences of non-blank
               characters separated by blanks".
0           Q:  How many Federal employees does it take to screw in a
                lightbulb?
            A:  Sorry, that item has been cut from the budget!
-           Also,  for those of you with  funny annecdotes for our humor
            column,  send them in!!  Just  about any material within the
            bounds of good taste can be used,  but CS related stuff gets
            priority!
1
0                                                                PAGE 22
0           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Tutor Listing as of 3-30-84 -- VM/COM Staff (CSNEWS @MAINE)
            ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-           The following tutors are available for CS students:
-           Rate/hr Name/Userid@Node    will tutor/consult in:
            ------- ------------------  -------------------------------
0           $3.25   ³ Barry D. Gates    Cs81,82,83,182,189,190,C,Exec,
             3.75 T ³ CS23124@MAINE     Exec-II,Pascal,Cobol,SAS
                    ³                   Fortran,Assembler
0            3.25   ³ Andy Robinson     Cs-81,82,83,189,190,PL/1
             3.75 T ³ ANDY@MAINE        Exec,Exec-II,Script,Assembler,
                    ³                   Cobol,Fortran,FortVS, more..
0            3.25   ³ Rick Fortin       Cs83,182, Fortran,
             3.75 T ³ CS23011@MAINE     Pascal,RPG,SPSS
                    ³
             3.25   ³ Tim Willsey       Cs82,83,182,189,Pascal,
             3.75 T ³ CS23003@MAINE     Fortran,Assembler
0            3.25   ³ Mike Johnson      Cs83,182,Pascal
             3.75 T ³ CSNM059@MAINE
                    ³
            -----------------------------------------------------------
-              Generally,  the tutors mentioned above  can assist you on
            simple problems with your programs  without charge,  but any
            time in excess of 15 minutes is chargeable, according to the
            rate scale of the tutor, as online (terminal) tutoring.
1
0                                                                PAGE 23
0              Tutors can be contacted by CMS  Mail,  CP or CMS MSG,  in
            person, by the phone, or whatever way is most convenient for
            you.   The tutors  retain the right to  designate a mutually
            convenient time to meet,  and expect students to be there at
            the appointed time.   If the student does not show up, it is
            the right of the tutor to charge  his base rate for one hour
            of tutoring time.    Talk to your particular tutor about his
            rates, policy, and minimum charges.
0              The rates shown above are  for regular tutoring (no code)
            and/or online or on-the-terminal tutoring,   with a 'T' next
            to the  rate.   Rates  of all tutors  are subject  to change
            without notice.  It is requested however that any tutors who
            appear on this list notify us of rate-changes.
0              Tutors for which there is a  'C' listed instead of a rate
            will offer help  free of charge to anyone who  needs it when
            they  are  not busy.   Please  note  that these  people  are
            generally informal consultants,  and  have projects of there
            own to  do.   If you are  having a serious logic  problem or
            something similar in your program,  it  is better to see the
            designated  student   consultant  or  your   instructor  for
            assistance.
0              Any person who would like to have their name added to the
            consultant/tutor list please contact the VM/COM staff or the
            VM/COM machine  via MAIL.  This  list is maintained  free of
            charge,  and  is intended to  provide a competitive  base of
            tutors from which students may choose.