   else supersub(form, lm + PPINDENT, 1, pfun);
 }
 
-const int ppspecials = 14;
+const int ppspecials = 15;
 const char ppspecial[ppspecials] PROGMEM = 
-  { DOTIMES, DOLIST, IF, SETQ, TEE, LET, LETSTAR, LAMBDA, WHEN, UNLESS, WITHI2C, WITHSERIAL, WITHSPI, WITHSDCARD };
+  { DOTIMES, DOLIST, IF, SETQ, TEE, LET, LETSTAR, LAMBDA, WHEN, UNLESS, WITHI2C, WITHSERIAL, WITHSPI, WITHSDCARD, FORMILLIS };
 
 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));
  object *mode = second(args);
  if ((integerp(mode) && mode->integer == 1) || mode != nil) pinMode(pin, OUTPUT);
  else if (integerp(mode) && mode->integer == 2) pinMode(pin, INPUT_PULLUP);
  #if defined(INPUT_PULLDOWN)
  else if (integerp(mode) && mode->integer == 4) pinMode(pin, INPUT_PULLDOWN);
  #endif
  else pinMode(pin, INPUT);
  return nil;
}


  object *function = car(form);
  object *args = cdr(form);

  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?
