// ---------------------------------------------------------------- //
// This file is autogenerated by pioasm version 2.3.1; do not edit! //
// ---------------------------------------------------------------- //

#pragma once

#if !PICO_NO_HARDWARE
#include "hardware/pio.h"
#endif

#ifdef __cpp_constexpr
#define __pio_const constexpr
#else
#define __pio_const const
#endif

// --------- //
// sid_audio //
// --------- //

#define sid_audio_wrap_target 2
#define sid_audio_wrap 6
#define sid_audio_pio_version 0

#define sid_audio_offset_entry_point 3u

static __pio_const uint16_t sid_audio_program_instructions[] = {
    0x1081, //  0: jmp    y--, 1          side 1
    0x1040, //  1: jmp    x--, 0          side 1
            //     .wrap_target
    0x0182, //  2: jmp    y--, 2          side 0 [1]
    0x6001, //  3: out    pins, 1         side 0
    0x6027, //  4: out    x, 7            side 0
    0xa046, //  5: mov    y, isr          side 0
    0x0040, //  6: jmp    x--, 0          side 0
            //     .wrap
};

#if !PICO_NO_HARDWARE
static __pio_const struct pio_program sid_audio_program = {
    .instructions = sid_audio_program_instructions,
    .length = 7,
    .origin = -1,
    .pio_version = sid_audio_pio_version,
#if PICO_PIO_VERSION > 0
    .used_gpio_ranges = 0x0
#endif
};

static inline pio_sm_config sid_audio_program_get_default_config(uint offset) {
    pio_sm_config c = pio_get_default_sm_config();
    sm_config_set_wrap(&c, offset + sid_audio_wrap_target, offset + sid_audio_wrap);
    sm_config_set_sideset(&c, 1, false, true);
    return c;
}
#endif

