+#if (BOOTLOADER_CAN_EXIT)
+# if (USE_EXCESSIVE_ASSEMBLER)
+asm volatile (
+ "ldi %[sil], %[normval]\n\t"
+# if ((defined(CONFIG_HAVE__BOOTLOADER_ABORTTIMEOUTONACT)) && (!(BOOTLOADER_IGNOREPROGBUTTON)) && (BOOTLOADER_LOOPCYCLES_TIMEOUT))
+ "sbis %[pin], %[bit]\n\t"
+ "subi %[sil], 0x02\n\t"
+# endif
+ : [sil] "=d" (stayinloader)
+ : [normval] "M" (stayinloader_initialValue)
+# if (!(BOOTLOADER_IGNOREPROGBUTTON))
+ ,
+ [pin] "I" (_SFR_IO_ADDR(PIN_PIN(JUMPER_PORT))),
+ [bit] "I" (PIN(JUMPER_PORT, JUMPER_BIT))
+# endif
+);
+# else
+# if ((defined(CONFIG_HAVE__BOOTLOADER_ABORTTIMEOUTONACT)) && (!(BOOTLOADER_IGNOREPROGBUTTON)) && (BOOTLOADER_LOOPCYCLES_TIMEOUT))
+ if (bootLoaderConditionSimple()) {
+ stayinloader = stayinloader_initialValue - 0x02;
+ } else
+# endif
+ stayinloader = stayinloader_initialValue;
+# endif
+#endif