   object *function = car(form);
   object *args = cdr(form);
 
-  if (function == NULL) error(PSTR("'nil' is an illegal function"));
+  if (function == NULL) error3(NIL, PSTR("is an illegal function"));
   if (!listp(args)) error(PSTR("Can't evaluate a dotted pair"));
 
   // List starts with a symbol?

  else supersub(form, lm + PPINDENT, 1, pfun);
}

const int ppspecials = 14;
const char ppspecial[ppspecials] PROGMEM = 
  { DOTIMES, DOLIST, IF, SETQ, TEE, LET, LETSTAR, LAMBDA, WHEN, UNLESS, WITHI2C, WITHSERIAL, WITHSPI, WITHSDCARD };

void supersub (object *form, int lm, int super, pfun_t pfun) {
  int special = 0, separate = 1;

object *fn_pinmode (object *args, object *env) {
  (void) env;
  int pin = integer(first(args));
  int pm = INPUT;
  object *mode = second(args);
  if (integerp(mode)) {
    int nmode = integer(mode);
    if (nmode == 1) pm = OUTPUT; else if (nmode == 2) pm = INPUT_PULLUP;
    #if defined(INPUT_PULLDOWN)
    else if (nmode == 4) pm = INPUT_PULLDOWN;
    #endif
  } else if (mode != nil) pm = OUTPUT;
  pinMode(pin, pm);
  return nil;
}

