! PRO.BAS  This program enables a user to execute only those commands
!          implemented in the program.  It appears to the user that they
!          are in AMOS command mode but only allows actual usage of commands'
!          listed in the program. The program is error protected so that there
!          is no control c out of the program. It makes use of DAVID PALLMANS
!          AMOS.SBR which exucutes the program. The only draw backs that I
!          know of are that command files are not executed to their entirety.
!          I think because AMOS.sbr uses the same memory location. But what do
!          I know!. Also I don't know if it works with DRAVAC security.
!          As an alternative to the EXPERT mode on AMUS the PRO mode could be
!          used for those who were used to the command mode version of AMUS
!          or for anybody else that only whats users to use certain commands.
!          The only way out of the program is to input a SECRET password to get
!          out or Reset the system if password selection is not used.
!          For those who would like it to look like the AMOS command mode
!          Then Replace the ":" on the INPUT LINE":",WHOLE to
!                                      INPUT LINE".",WHOLE
!
!          If you wish to add more commands for available use to the user
!          Then include them in the program.
!          Just a suggestion!
!          James A. Jarboe IV

ON ERROR GOTO ERR                       ! no control C out

MAP1 WHOLE,S,30                         ! input string

MAP1 WHICH(10),S,30                     ! names of commands available
                                       ! to user
       WHICH(1)="TYPE"
       WHICH(2)="DIR"
       WHICH(3)="LOG"
       WHICH(4)="TRMTYP"
       WHICH(5)="MAIL"
       WHICH(6)="LOGOFF"
       WHICH(7)="WATCH"
       WHICH(8)="RIO"
       WHICH(9)="SYSTAT"

MAP1 MANY,F,6,10                        ! number of commands available


TOP:
       WHOLE=""                                ! clear input variable
       INPUT LINE ":",WHOLE                    ! use colon as prompt
                                               ! so you know your not
                                               ! really at AMOS
                                               ! or make it a . to
                                               ! really fool them
       WHOLE=UCS(WHOLE)                        ! make it upper case

       IF WHOLE="" THEN GOTO TOP               ! if nothing do again

!       IF WHOLE="SECRET" THEN GOTO QUIT        ! take this out if you want
                                               ! no out of PRO.BAS
                                               ! until reset
       IF WHOLE="LIST" THEN GOTO LIST          ! list commands available
                                               ! to user
       I=0

SEE'LOOP:
               ! lets check for proper commands
       I=I+1
       IF I>MANY THEN GOTO BAD
       YES=INSTR(1,WHOLE,WHICH(I))
       IF YES=0 GOTO SEE'LOOP
       GOTO INPUT

BAD:
               ! not on command list

       ? "?"+WHOLE+"?"
       GOTO TOP
INPUT:
               ! on command list let's process it

!       XCALL STRIP,WHOLE
       XCALL AMOS,WHOLE
       GOTO TOP
ERR:
       RESUME
       GOTO TOP
QUIT:
       END

LIST:
       ? TAB(-1,0);"You may use these commands at AMOS level"
       ?
       FOR I=1 TO MANY
       ? WHICH(I)
       NEXT I
       GOTO TOP