# 1 "countdown.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "countdown.c"
# 18 "countdown.c"
# 1 "countdown.h" 1
# 21 "countdown.h"
# 1 "e:/winavr-20081205/lib/gcc/../../avr/include/inttypes.h" 1 3
# 37 "e:/winavr-20081205/lib/gcc/../../avr/include/inttypes.h" 3
# 1 "e:/winavr-20081205/lib/gcc/../../avr/include/stdint.h" 1 3
# 121 "e:/winavr-20081205/lib/gcc/../../avr/include/stdint.h" 3
typedef int int8_t __attribute__((__mode__(__QI__)));
typedef unsigned int uint8_t __attribute__((__mode__(__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int uint16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int uint32_t __attribute__ ((__mode__ (__SI__)));

typedef int int64_t __attribute__((__mode__(__DI__)));
typedef unsigned int uint64_t __attribute__((__mode__(__DI__)));
# 142 "e:/winavr-20081205/lib/gcc/../../avr/include/stdint.h" 3
typedef int16_t intptr_t;




typedef uint16_t uintptr_t;
# 159 "e:/winavr-20081205/lib/gcc/../../avr/include/stdint.h" 3
typedef int8_t int_least8_t;




typedef uint8_t uint_least8_t;




typedef int16_t int_least16_t;




typedef uint16_t uint_least16_t;




typedef int32_t int_least32_t;




typedef uint32_t uint_least32_t;







typedef int64_t int_least64_t;






typedef uint64_t uint_least64_t;
# 213 "e:/winavr-20081205/lib/gcc/../../avr/include/stdint.h" 3
typedef int8_t int_fast8_t;




typedef uint8_t uint_fast8_t;




typedef int16_t int_fast16_t;




typedef uint16_t uint_fast16_t;




typedef int32_t int_fast32_t;




typedef uint32_t uint_fast32_t;







typedef int64_t int_fast64_t;






typedef uint64_t uint_fast64_t;
# 273 "e:/winavr-20081205/lib/gcc/../../avr/include/stdint.h" 3
typedef int64_t intmax_t;




typedef uint64_t uintmax_t;
# 38 "e:/winavr-20081205/lib/gcc/../../avr/include/inttypes.h" 2 3
# 77 "e:/winavr-20081205/lib/gcc/../../avr/include/inttypes.h" 3
typedef int32_t int_farptr_t;



typedef uint32_t uint_farptr_t;
# 22 "countdown.h" 2

typedef struct
{
    struct
    {
  uint8_t timer_1s;
  uint8_t wait_10ms;
  uint8_t rc5;
  uint8_t blink;
        uint8_t snake;




    } ms10;

    struct
    {
        int x;
    } ms10_16;

    struct
    {
        uint8_t timer_1m;
    } sec;

    struct
    {
    } min;
} countdown_t;

extern volatile countdown_t count;

static inline
void wait_10ms (const uint8_t t)
{
    asm volatile (" ; BARRIER" ::: "memory");
    count.ms10.wait_10ms = 1+t;
    while (count.ms10.wait_10ms);
}

extern void job_countdown(void);
# 19 "countdown.c" 2

countdown_t volatile count;
# 107 "countdown.c"
void job_countdown2 (void)
{
    char minus1 = -1;
    uint8_t val;
    char *addr;

    do { if (!sizeof (count.ms10)) return; uint8_t cnt = sizeof (count.ms10) / sizeof (char); addr = ((char*) & count.ms10) + sizeof (count.ms10) / sizeof (char); do { asm( "ld  \t%[val], -%a[z]" "\n\t" "dec \t%[val]" "\n\t" "cpse\t%[val], %[minus1]" "\n\t" "st  \t%a[z],  %[val]" "\n\t" : [z] "+e" (addr), [val] "=r" (val), [minus1] "+r" (minus1) ); } while (--cnt); } while (0);

    if (!val) return;



    *addr = 100;

    do { if (!sizeof (count.sec)) return; uint8_t cnt = sizeof (count.sec) / sizeof (char); addr = ((char*) & count.sec) + sizeof (count.sec) / sizeof (char); do { asm( "ld  \t%[val], -%a[z]" "\n\t" "dec \t%[val]" "\n\t" "cpse\t%[val], %[minus1]" "\n\t" "st  \t%a[z],  %[val]" "\n\t" : [z] "+e" (addr), [val] "=r" (val), [minus1] "+r" (minus1) ); } while (--cnt); } while (0);

    if (!val) return;



    *addr = 60;

    do { if (!sizeof (count.min)) return; uint8_t cnt = sizeof (count.min) / sizeof (char); addr = ((char*) & count.min) + sizeof (count.min) / sizeof (char); do { asm( "ld  \t%[val], -%a[z]" "\n\t" "dec \t%[val]" "\n\t" "cpse\t%[val], %[minus1]" "\n\t" "st  \t%a[z],  %[val]" "\n\t" : [z] "+e" (addr), [val] "=r" (val), [minus1] "+r" (minus1) ); } while (--cnt); } while (0);
}
