* @param mode
   */
  public static void describe(Stella_Object name, Cons mode) {
    { Stella_Object renamed_Object = ((name == null) ? ((Stella_Object)(null)) : name.getObject(null));
      Stella_Object modespec = mode.value;
      Keyword validmode = null;

      if (modespec == null) {
        modespec = Stella.$DEFAULT_DESCRIBE_MODE$;
      }
      if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(modespec), Stella.SGT_STELLA_GENERALIZED_SYMBOL)) {
        { GeneralizedSymbol modespec000 = ((GeneralizedSymbol)(modespec));

          { String testValue000 = modespec000.symbolName;

            if (Stella.stringEqlP(testValue000, "VERBOSE") ||
                (Stella.stringEqlP(testValue000, "TERSE") ||
                 Stella.stringEqlP(testValue000, "SOURCE"))) {
              validmode = Stella.internKeyword(modespec000.symbolName);
            }
            else {
            }
          }
        }
      }
      else {
      }
      if (validmode == null) {
        {
          System.out.println("Valid modes (the second argument to 'describe') are ");
          System.out.println("   :VERBOSE, :TERSE, and :SOURCE");
        }
;
        validmode = Stella.$DEFAULT_DESCRIBE_MODE$;
      }
      if (renamed_Object == null) {
        System.out.print("NULL");
      }
      else {
        renamed_Object.describeObject(Stella.STANDARD_OUTPUT, validmode);
      }
    }
  }