XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  PBOX  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                     PlayBox Parametrized Outer Loop
                     compiled and decompiled with JAZZ
                     Uses 4 Rompointers from Browser-Lib 224d (=E0)

Program                     Comment
-------------          ---------------------------            


::
 POLSaveUI             Save User interface. No ERRSET in the POL. 
 CONTEXT@              Errors are trapped by PLAY. 
 LASTRAM-WORD         
 NcaseSIZEERR          Starts making the list NL of names of all
 NULL{}                music pieces in COMPOSE and the list TL
 DUPROT                of its Titles, both in one loop.
 BEGIN                
 ::
  DUPTYPELIST?
  NOT?SEMI
  DUP
  CARCOMP
  DUPTYPECSTR?
  NOTcaseDROP
  ROTSWAP
  >TCOMP
  UNROTDUP
  RAM-WORDNAME
  ROTSWAP
  >TCOMP
  UNROT
 ;
 PREVRAM-WORD
 NOT_UNTIL              Lists ready. Stack:  NL TL
 '
 ::                     Shell for PLAY.
  DOLCD>                Saves stack containing NL, TL 
  SAVESTACK             and actual LCDgrob.
  2DROP                 Drops last two from stack.
  ROMPTR E0 17          Number of chosen Title in the Browser.
  NTHCOMPDROP           Global Name of corresponding music piece
  XEQRCL                recalled and played. 
  ID PLAY               If PLAY errors or is aborted, it returns
  DO>LCD                here to the Browser with first diplaying 
  DispMenu              the Browser's LCDand the Browser's menu.
 ;
 $ "ABOUT"              Start producing the Browser's menu.
 '
 ::
  DOLCD>                Similar to the Shell of PLAY. 
  SAVESTACK             Saves Stack as above and drops.
  2DROP
  $ "\\n compose & play tools\\n\\n       \\A91999 by\\n Raymond Hellstern &\\n Wolfgang Rautenberg"
  BlankDA12
  %1
  DODISP
  WaitForKey
  undo                  Reestablish the old stack
  DO>LCD
 ;
 TWO{}N
 NULL{}
 $ "TEXT"               The option TEXT recalls full text of a music piece,
 '                      Browser shows only the beginning.
 ::                     
  DOLCD>                Very similar to the PLAY shell
  SAVESTACK              
  2DROP                 
  ROMPTR E0 17          Number of chosen Title
  NTHCOMPDROP           Global Name of the music piece
  XEQRCL                Recalls it
  CARCOMP               and takes its Title 
  BlankDA12             for Display.
  %1
  DODISP
  WaitForKey
  undo
  DO>LCD
 ;
 TWO{}N
 '                       The VIO/BASS toggler
 ::
  TakeOver               Toggles the MenuGrob and Flag -4.
  FOUR
  SysITE
  $ "BASS"
  $ "VIOL"
  MakeInvLabel
 ;
 '
 ::
  FOUR
  PTR 3EDA2
  DispMenu
 ;
 TWO{}N
 $ "PLAY"
 6PICK                  Pick the Play-Shell
 TWO{}N
 $_EXIT                 The EXIT option of the Browser,
 '                      operates like CANCEL.
 ROMPTR E0 13
 TWO{}N
 SIX
 {}N                    Menu list of Browser of size 6 is ready.
 $ "PLAYBOX"            Browser Title
 3PICK                  Arranging the 9 or 10? arguments 
 '                      for the Browser-maker ROMPTR E0 10.
 ROMPTR E0 13           
 TWO{}N
 ONEONE
 7ROLL
 '
 ::
  DUP#0<>
  case
  NTHCOMPDROP
  2DROP
  ROMPTR E0 18
  LENCOMP
 ;
 NULL{}
 ROMPTR E0 10            Browser invoked.
 2DROP                   After leaving the Browser 
 FOUR                    either by EXIT or somehow else.
 ClrSysFlag
 POLRestoreUI            Restore original interface
;
