Index: /trunk/Ohana/src/opihi/pantasks/ControllerOps.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/ControllerOps.c	(revision 18084)
+++ /trunk/Ohana/src/opihi/pantasks/ControllerOps.c	(revision 18085)
@@ -445,4 +445,11 @@
 }
 
+int FlushControllerOutput () {
+
+  FlushIOBuffer (&stdout_buffer);
+  FlushIOBuffer (&stderr_buffer);
+
+  return (TRUE);
+}
 
 int KillControllerJob (Job *job) {
Index: /trunk/Ohana/src/opihi/pantasks/Makefile
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/Makefile	(revision 18084)
+++ /trunk/Ohana/src/opihi/pantasks/Makefile	(revision 18085)
@@ -79,4 +79,5 @@
 $(SRC)/controller_status.$(ARCH).o \
 $(SRC)/controller_jobstack.$(ARCH).o \
+$(SRC)/controller_verbose.$(ARCH).o \
 $(SRC)/controller_run.$(ARCH).o \
 $(SRC)/controller_output.$(ARCH).o \
Index: /trunk/Ohana/src/opihi/pantasks/controller.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/controller.c	(revision 18084)
+++ /trunk/Ohana/src/opihi/pantasks/controller.c	(revision 18085)
@@ -5,4 +5,5 @@
 int controller_status  	PROTO((int, char **));
 int controller_jobstack PROTO((int, char **));
+int controller_verbose  PROTO((int, char **));
 int controller_run     	PROTO((int, char **));
 int controller_stop    	PROTO((int, char **));
@@ -19,4 +20,5 @@
   {1, "status",   controller_status,   "check controller status"},
   {1, "jobstack", controller_jobstack, "check controller status"},
+  {1, "verbose",  controller_verbose,  "set controller verbosity"},
   {1, "output",   controller_output,   "print controller output"},
   {1, "pulse",    controller_pulse,    "set controller pulse"},
Index: /trunk/Ohana/src/opihi/pantasks/controller_jobstack.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/controller_jobstack.c	(revision 18084)
+++ /trunk/Ohana/src/opihi/pantasks/controller_jobstack.c	(revision 18085)
@@ -21,5 +21,5 @@
 
   // XXX this has an error?  test this out...
-  sprintf (command, "jobstack %s", argv[2]);
+  sprintf (command, "jobstack %s", argv[1]);
   InitIOBuffer (&buffer, 0x100);
 
Index: /trunk/Ohana/src/opihi/pantasks/controller_output.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/controller_output.c	(revision 18084)
+++ /trunk/Ohana/src/opihi/pantasks/controller_output.c	(revision 18085)
@@ -3,6 +3,6 @@
 int controller_output (int argc, char **argv) {
 
-  if (argc != 1) {
-    gprint (GP_ERR, "USAGE: controller status\n");
+  if ((argc != 1) || ((argc == 2) && (strcmp(argv[1], "flush")))) {
+    gprint (GP_ERR, "USAGE: controller output\n");
     return (FALSE);
   }
@@ -10,4 +10,9 @@
   CheckControllerOutput ();
   PrintControllerOutput ();
+
+  if (argc == 2) {
+    FlushControllerOutput ();
+  }
+
   return (TRUE);
 }
Index: /trunk/Ohana/src/opihi/pantasks/controller_verbose.c
===================================================================
--- /trunk/Ohana/src/opihi/pantasks/controller_verbose.c	(revision 18085)
+++ /trunk/Ohana/src/opihi/pantasks/controller_verbose.c	(revision 18085)
@@ -0,0 +1,37 @@
+# include "pantasks.h"
+
+int controller_verbose (int argc, char **argv) {
+
+  int status;
+  char command[1024];
+  IOBuffer buffer;
+
+  if (argc != 2) {
+    gprint (GP_ERR, "USAGE: controller verbose (level)\n");
+    gprint (GP_ERR, "       (level) : off, on, toggle\n");
+    return (FALSE);
+  }
+
+  /* check if controller is running */
+  status = CheckControllerStatus ();
+  if (!status) {
+    gprint (GP_LOG, "controller is not active\n");
+    return (TRUE);
+  }
+
+  // XXX this has an error?  test this out...
+  sprintf (command, "verbose %s", argv[1]);
+  InitIOBuffer (&buffer, 0x100);
+
+  SerialThreadLock ();
+  status = ControllerCommand (command, CONTROLLER_PROMPT, &buffer);
+  SerialThreadUnlock ();
+
+  if (status) {
+    gwrite (buffer.buffer, 1, buffer.Nbuffer, GP_LOG);
+  } else {
+    gprint (GP_LOG, "controller is not communicating\n");
+  }
+  FreeIOBuffer (&buffer);
+  return (TRUE);
+}
Index: /trunk/Ohana/src/opihi/pcontrol/JobOps.c
===================================================================
--- /trunk/Ohana/src/opihi/pcontrol/JobOps.c	(revision 18084)
+++ /trunk/Ohana/src/opihi/pcontrol/JobOps.c	(revision 18085)
@@ -1,3 +1,5 @@
 # include "pcontrol.h"
+
+// Stack *JobPool_AllJobs;
 
 Stack *JobPool_Pending;
@@ -10,4 +12,6 @@
 
 void InitJobStacks () {
+  // JobPool_AllJobs = InitStack ();
+
   JobPool_Pending = InitStack ();
   JobPool_Busy    = InitStack ();
@@ -28,4 +32,8 @@
 
 void FreeJobStacks () {
+
+  // AllJobs is a virtual stack : all jobs are references
+  // FreeStack (JobPool_AllJobs);
+
   FreeJobStack (JobPool_Pending);
   FreeJobStack (JobPool_Busy   );
@@ -39,4 +47,6 @@
 char *GetJobStackName (int StackID) {
   switch (StackID) {
+    // case PCONTROL_JOB_ALLJOBS: return ("ALLJOBS");
+
     case PCONTROL_JOB_PENDING: return ("PENDING");
     case PCONTROL_JOB_BUSY:    return ("BUSY");
@@ -54,4 +64,6 @@
 Stack *GetJobStack (int StackID) {
   switch (StackID) {
+    // case PCONTROL_JOB_ALLJOBS: return (JobPool_AllJobs);
+
     case PCONTROL_JOB_PENDING: return (JobPool_Pending);
     case PCONTROL_JOB_BUSY:    return (JobPool_Busy);
@@ -68,4 +80,6 @@
 
 Stack *GetJobStackByName (char *name) {
+
+  // if (!strcasecmp (name, "all"))     return (JobPool_AllJobs);
 
   if (!strcasecmp (name, "pending")) return (JobPool_Pending);
@@ -183,5 +197,8 @@
 
   JobID = job[0].JobID;
+
   PutJob (job, PCONTROL_JOB_PENDING, STACK_BOTTOM);
+  // PutJob (job, PCONTROL_JOB_ALLJOBS, STACK_BOTTOM);
+
   if (VerboseMode()) gprint (GP_ERR, "added new job\n");
   return (JobID);
