-/* uLisp AVR Version 2.8 - www.ulisp.com
-   David Johnson-Davies - www.technoblogy.com - 20th July 2019
+/* uLisp AVR Version 2.8a - www.ulisp.com
+   David Johnson-Davies - www.technoblogy.com - 6th August 2019
 
    Licensed under the MIT license: https://opensource.org/licenses/MIT
 */

object *sp_withsdcard (object *args, object *env) {
#if defined(sdcardsupport)
  object *params = first(args);
  if (params == NULL) error2(WITHSPCARD, nostream);
  object *var = first(params);
  object *filename = eval(second(params), env);
  params = cddr(params);

    checkargs(fname, args);
    return ((fn_ptr_type)lookupfn(fname))(args, env);
  }
  if (consp(function) && issymbol(car(function), LAMBDA)) {
    function = cdr(function);
    object *result = closure(0, 0, NULL, function, args, &env);
    return eval(result, env);
  }
  if (consp(function) && issymbol(car(function), CLOSURE)) {
    function = cdr(function);
    object *result = closure(0, 0, car(function), cdr(function), args, &env);
    return eval(result, env);
