diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 2e9e9841..644c091f 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -72,8 +72,11 @@ set(USE_FPU no) # Project, sources and paths # -set(CPLD_SVF_PATH ${HARDWARE_PATH}/portapack_h1/cpld/output_files/portapack_h1_cpld.svf) -set(CPLD_DATA_CPP ${CMAKE_CURRENT_BINARY_DIR}/portapack_cpld_data.cpp) +set(CPLD_20150901_SVF_PATH ${HARDWARE_PATH}/portapack_h1/cpld/20150901/output_files/portapack_h1_cpld.svf) +set(CPLD_20150901_DATA_CPP ${CMAKE_CURRENT_BINARY_DIR}/portapack_cpld_20150901_data.cpp) + +set(CPLD_20170522_SVF_PATH ${HARDWARE_PATH}/portapack_h1/cpld/20170522/output_files/portapack_h1_cpld.svf) +set(CPLD_20170522_DATA_CPP ${CMAKE_CURRENT_BINARY_DIR}/portapack_cpld_20170522_data.cpp) set(HACKRF_CPLD_DATA_HPP ${CMAKE_CURRENT_BINARY_DIR}/hackrf_cpld_data.hpp) set(HACKRF_CPLD_DATA_CPP ${CMAKE_CURRENT_BINARY_DIR}/hackrf_cpld_data.cpp) @@ -123,8 +126,9 @@ set(CPPSRC clock_manager.cpp si5351.cpp ${COMMON}/wm8731.cpp + ${COMMON}/ak4951.cpp radio.cpp - baseband_cpld.cpp + ${COMMON}/baseband_cpld.cpp tuning.cpp rf_path.cpp rffc507x.cpp @@ -242,8 +246,9 @@ set(CPPSRC ${COMMON}/cpld_xilinx.cpp ${COMMON}/jtag.cpp ${COMMON}/jtag_tap.cpp - cpld_update.cpp - ${CPLD_DATA_CPP} + ${COMMON}/cpld_update.cpp + ${CPLD_20150901_DATA_CPP} + ${CPLD_20170522_DATA_CPP} ${HACKRF_CPLD_DATA_CPP} ) @@ -362,14 +367,20 @@ include(${RULESPATH}/rules.cmake) ############################################################################## add_custom_command( - OUTPUT ${CPLD_DATA_CPP} - COMMAND ${EXTRACT_CPLD_DATA} ${CPLD_SVF_PATH} >${CPLD_DATA_CPP} - DEPENDS ${EXTRACT_CPLD_DATA} ${CPLD_SVF_PATH} + OUTPUT ${CPLD_20150901_DATA_CPP} + COMMAND ${EXTRACT_CPLD_DATA} ${CPLD_20150901_SVF_PATH} rev_20150901 >${CPLD_20150901_DATA_CPP} + DEPENDS ${EXTRACT_CPLD_DATA} ${CPLD_20150901_SVF_PATH} +) + +add_custom_command( + OUTPUT ${CPLD_20170522_DATA_CPP} + COMMAND ${EXTRACT_CPLD_DATA} ${CPLD_20170522_SVF_PATH} rev_20170522 >${CPLD_20170522_DATA_CPP} + DEPENDS ${EXTRACT_CPLD_DATA} ${CPLD_20170522_SVF_PATH} ) add_custom_command( OUTPUT ${HACKRF_CPLD_DATA_HPP} ${HACKRF_CPLD_DATA_CPP} - COMMAND ${EXTRACT_SVF_DATA_XC2C64A} ${HACKRF_CPLD_SVF_PATH} hackrf::one::cpld::verify_blocks ${HACKRF_CPLD_DATA_HPP} ${HACKRF_CPLD_DATA_CPP} + COMMAND ${EXTRACT_SVF_DATA_XC2C64A} ${HACKRF_CPLD_SVF_PATH} hackrf::one::cpld::verify_blocks ${HACKRF_CPLD_DATA_CPP} DEPENDS ${EXTRACT_SVF_DATA_XC2C64A} ${HACKRF_CPLD_SVF_PATH} ) diff --git a/firmware/application/audio.cpp b/firmware/application/audio.cpp index 952f51ae..c50720e7 100644 --- a/firmware/application/audio.cpp +++ b/firmware/application/audio.cpp @@ -23,11 +23,9 @@ #include "audio.hpp" #include "portapack.hpp" -using portapack::i2c0; using portapack::clock_manager; -#include "wm8731.hpp" -using wolfson::wm8731::WM8731; +#include "portapack_hal.hpp" #include "i2s.hpp" using namespace lpc43xx; @@ -98,24 +96,10 @@ constexpr i2s::ConfigDMA i2s0_config_dma { }, }; -constexpr uint8_t wm8731_i2c_address = 0x1a; - -WM8731 audio_codec { i2c0, wm8731_i2c_address }; +static audio::Codec* audio_codec = nullptr; } /* namespace */ -namespace input { - -void start() { - i2s::i2s0::rx_start(); -} - -void stop() { - i2s::i2s0::rx_stop(); -} - -} /* namespace input */ - namespace output { void start() { @@ -130,53 +114,80 @@ void stop() { void mute() { i2s::i2s0::tx_mute(); - - audio_codec.headphone_mute(); + audio_codec->headphone_disable(); } void unmute() { i2s::i2s0::tx_unmute(); + audio_codec->headphone_enable(); } } /* namespace output */ +namespace input { + +void start() { + audio_codec->microphone_enable(); + i2s::i2s0::rx_start(); +} + +void stop() { + i2s::i2s0::rx_stop(); + audio_codec->microphone_disable(); +} + +} /* namespace input */ + namespace headphone { volume_range_t volume_range() { - return wolfson::wm8731::headphone_gain_range; + return audio_codec->headphone_gain_range(); } void set_volume(const volume_t volume) { - audio_codec.set_headphone_volume(volume); + audio_codec->set_headphone_volume(volume); } } /* namespace headphone */ namespace debug { -int reg_count() { - return wolfson::wm8731::reg_count; +size_t reg_count() { + return audio_codec->reg_count(); } -uint16_t reg_read(const int register_number) { - return audio_codec.read(register_number); +uint32_t reg_read(const size_t register_number) { + return audio_codec->reg_read(register_number); +} + +std::string codec_name() { + return audio_codec->name(); +} + +size_t reg_bits() { + return audio_codec->reg_bits(); } } /* namespace debug */ -void init() { +void init(audio::Codec* const codec) { + audio_codec = codec; + clock_manager.start_audio_pll(); - audio_codec.init(); + audio_codec->init(); i2s::i2s0::configure( i2s0_config_tx, i2s0_config_rx, i2s0_config_dma ); + + // Set pin mode, since it's likely GPIO (as left after CPLD JTAG interactions). + portapack::pin_i2s0_rx_sda.mode(3); } void shutdown() { - audio_codec.reset(); + audio_codec->reset(); output::stop(); } diff --git a/firmware/application/audio.hpp b/firmware/application/audio.hpp index 926bf1f8..06e7c92a 100644 --- a/firmware/application/audio.hpp +++ b/firmware/application/audio.hpp @@ -26,9 +26,34 @@ #include "volume.hpp" #include +#include + +#include namespace audio { +class Codec { +public: + virtual ~Codec() { } + + virtual std::string name() const = 0; + + virtual bool reset() = 0; + virtual void init() = 0; + + virtual void headphone_enable() = 0; + virtual void headphone_disable() = 0; + virtual volume_range_t headphone_gain_range() const = 0; + virtual void set_headphone_volume(const volume_t volume) = 0; + + virtual void microphone_enable() = 0; + virtual void microphone_disable() = 0; + + virtual size_t reg_count() const = 0; + virtual size_t reg_bits() const = 0; + virtual uint32_t reg_read(const size_t register_number) = 0; +}; + namespace output { void start(); @@ -56,12 +81,14 @@ void set_volume(const volume_t volume); namespace debug { -int reg_count(); -uint16_t reg_read(const int register_number); +size_t reg_count(); +uint32_t reg_read(const size_t register_number); +std::string codec_name(); +size_t reg_bits(); } /* namespace debug */ -void init(); +void init(audio::Codec* const codec); void shutdown(); enum class Rate { diff --git a/firmware/application/ffconf.h b/firmware/application/ffconf.h index cfe0e890..041cd7cd 100644 --- a/firmware/application/ffconf.h +++ b/firmware/application/ffconf.h @@ -5,7 +5,7 @@ / FatFs - FAT file system module configuration file /---------------------------------------------------------------------------*/ -#define _FFCONF 80186 /* Revision ID */ +#define _FFCONF 68300 /* Revision ID */ /*---------------------------------------------------------------------------/ / Function Configurations @@ -76,7 +76,7 @@ /* This option specifies the OEM code page to be used on the target system. / Incorrect setting of the code page can cause a file open failure. / -/ 1 - ASCII (No extended character. Non-LFN cfg. only) +/ 1 - ASCII (No support of extended character. Non-LFN cfg. only) / 437 - U.S. / 720 - Arabic / 737 - Greek @@ -151,7 +151,7 @@ /---------------------------------------------------------------------------*/ #define _VOLUMES 1 -/* Number of volumes (logical drives) to be used. */ +/* Number of volumes (logical drives) to be used. (1-10) */ #define _STR_VOLUME_ID 0 @@ -175,11 +175,11 @@ #define _MIN_SS 512 #define _MAX_SS 512 /* These options configure the range of sector size to be supported. (512, 1024, -/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and +/ 2048 or 4096) Always set both 512 for most systems, generic memory card and / harddisk. But a larger value may be required for on-board flash memory and some / type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured -/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the -/ disk_ioctl() function. */ +/ to variable sector size and GET_SECTOR_SIZE command needs to be implemented to +/ the disk_ioctl() function. */ #define _USE_TRIM 0 @@ -207,15 +207,15 @@ #define _FS_TINY 0 /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny) -/ At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes. +/ At the tiny configuration, size of file object (FIL) is shrinked _MAX_SS bytes. / Instead of private sector buffer eliminated from the file object, common sector / buffer in the file system object (FATFS) is used for the file data transfer. */ #define _FS_EXFAT 0 -/* This option switches support of exFAT file system in addition to the traditional -/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled. -/ Note that enabling exFAT discards C89 compatibility. */ +/* This option switches support of exFAT file system. (0:Disable or 1:Enable) +/ When enable exFAT, also LFN needs to be enabled. (_USE_LFN >= 1) +/ Note that enabling exFAT discards ANSI C (C89) compatibility. */ #define _FS_NORTC 0 @@ -228,7 +228,7 @@ / defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time. / To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be / added to the project to get current time form real-time clock. _NORTC_MON, -/ _NORTC_MDAY and _NORTC_YEAR have no effect. +/ _NORTC_MDAY and _NORTC_YEAR have no effect. / These options have no effect at read-only configuration (_FS_READONLY = 1). */ @@ -261,8 +261,11 @@ / / The _FS_TIMEOUT defines timeout period in unit of time tick. / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, -/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be -/ included somewhere in the scope of ff.c. */ +/ SemaphoreHandle_t and etc. A header file for O/S definitions needs to be +/ included somewhere in the scope of ff.h. */ + +/* #include // O/S definitions */ + /*--- End of configuration options ---*/ diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 384282b3..a65463b4 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -130,23 +130,23 @@ static void event_loop() { } int main(void) { - portapack::init(); + if( portapack::init() ) { + portapack::display.init(); - portapack::io.init(); - portapack::display.init(); + sdcStart(&SDCD1, nullptr); - sdcStart(&SDCD1, nullptr); + controls_init(); + lcd_frame_sync_configure(); + rtc_interrupt_enable(); - controls_init(); - lcd_frame_sync_configure(); - rtc_interrupt_enable(); + event_loop(); - event_loop(); + sdcDisconnect(&SDCD1); + sdcStop(&SDCD1); - sdcDisconnect(&SDCD1); - sdcStop(&SDCD1); + portapack::shutdown(); + } - portapack::shutdown(); m4_init(portapack::spi_flash::image_tag_hackrf, portapack::memory::map::m4_code_hackrf); m0_halt(); diff --git a/firmware/application/portapack.cpp b/firmware/application/portapack.cpp index 248bf09e..3bc7ff61 100644 --- a/firmware/application/portapack.cpp +++ b/firmware/application/portapack.cpp @@ -21,6 +21,8 @@ #include "portapack.hpp" #include "portapack_hal.hpp" +#include "portapack_dma.hpp" +#include "portapack_cpld_data.hpp" #include "portapack_persistent_memory.hpp" #include "hackrf_hal.hpp" @@ -32,8 +34,16 @@ using namespace hackrf::one; #include "touch_adc.hpp" #include "audio.hpp" +#include "wm8731.hpp" +using wolfson::wm8731::WM8731; + +#include "ak4951.hpp" +using asahi_kasei::ak4951::AK4951; + #include "cpld_update.hpp" +#include "optional.hpp" + namespace portapack { portapack::IO io { @@ -60,6 +70,9 @@ ClockManager clock_manager { i2c0, clock_generator }; +WM8731 audio_codec_wm8731 { i2c0, 0x1a }; +AK4951 audio_codec_ak4951 { i2c0, 0x12 }; + ReceiverModel receiver_model; TemperatureLogger temperature_logger; @@ -106,7 +119,53 @@ private: static Power power; -void init() { +enum class PortaPackModel { + R1_20150901, + R2_20170522, +}; + +static PortaPackModel portapack_model() { + static Optional model; + + if( !model.is_valid() ) { + if( audio_codec_wm8731.detected() ) { + model = PortaPackModel::R1_20150901; + } else { + model = PortaPackModel::R2_20170522; + } + } + + return model.value(); +} + +static audio::Codec* portapack_audio_codec() { + return (portapack_model() == PortaPackModel::R2_20170522) + ? static_cast(&audio_codec_ak4951) + : static_cast(&audio_codec_wm8731) + ; +} + +static const portapack::cpld::Config& portapack_cpld_config() { + return (portapack_model() == PortaPackModel::R2_20170522) + ? portapack::cpld::rev_20170522::config + : portapack::cpld::rev_20150901::config + ; +} + +static void shutdown_base() { + clock_manager.shutdown(); + + power.shutdown(); + // TODO: Wait a bit for supplies to discharge? + + chSysDisable(); + + systick_stop(); + + hackrf::one::reset(); +} + +bool init() { for(const auto& pin : pins) { pin.init(); } @@ -147,7 +206,18 @@ void init() { clock_manager.set_reference_ppb(persistent_memory::correction_ppb()); clock_manager.run_at_full_speed(); - audio::init(); + if( !portapack::cpld::update_if_necessary(portapack_cpld_config()) ) { + shutdown_base(); + return false; + } + + if( !hackrf::cpld::load_sram() ) { + chSysHalt(); + } + + portapack::io.init(); + + audio::init(portapack_audio_codec()); clock_manager.enable_first_if_clock(); clock_manager.enable_second_if_clock(); @@ -156,33 +226,23 @@ void init() { touch::adc::init(); - if( !cpld_update_if_necessary() ) { - chSysHalt(); - } + LPC_CREG->DMAMUX = portapack::gpdma_mux; + gpdma::controller.enable(); - if( !cpld_hackrf_load_sram() ) { - chSysHalt(); - } + return true; } void shutdown() { + gpdma::controller.disable(); + display.shutdown(); radio::disable(); audio::shutdown(); - cpld_hackrf_init_from_eeprom(); + hackrf::cpld::init_from_eeprom(); - clock_manager.shutdown(); - - power.shutdown(); - // TODO: Wait a bit for supplies to discharge? - - chSysDisable(); - - systick_stop(); - - hackrf::one::reset(); + shutdown_base(); } extern "C" { diff --git a/firmware/application/portapack.hpp b/firmware/application/portapack.hpp index 111132a9..b92db134 100644 --- a/firmware/application/portapack.hpp +++ b/firmware/application/portapack.hpp @@ -53,7 +53,7 @@ extern uint8_t bl_tick_counter; extern TemperatureLogger temperature_logger; -void init(); +bool init(); void shutdown(); } /* namespace portapack */ diff --git a/firmware/application/ui_about.cpp b/firmware/application/ui_about.cpp index ebbe61c4..a5986d8c 100644 --- a/firmware/application/ui_about.cpp +++ b/firmware/application/ui_about.cpp @@ -132,8 +132,6 @@ AboutView::AboutView( NavigationView& nav ) { - //uint8_t p, c; - add_children({ &text_cpld_hackrf, &text_cpld_hackrf_status, @@ -150,13 +148,13 @@ AboutView::AboutView( add_child(&text); } - if( cpld_hackrf_verify_eeprom() ) { + if( hackrf::cpld::verify_eeprom() ) { text_cpld_hackrf_status.set(" OK"); } else { text_cpld_hackrf_status.set("BAD"); } - button_ok.on_select = [this,&nav](Button&){ + button_ok.on_select = [&nav](Button&){ nav.pop(); }; } diff --git a/firmware/application/ui_adsbtx.cpp b/firmware/application/ui_adsbtx.cpp index b2e1c569..9181a533 100644 --- a/firmware/application/ui_adsbtx.cpp +++ b/firmware/application/ui_adsbtx.cpp @@ -136,7 +136,7 @@ ADSBTxView::ADSBTxView(NavigationView& nav) { generate_frame(); }; button_callsign.on_select = [this, &nav](Button&) { - text_entry(nav, &callsign, 9); + text_prompt(nav, &callsign, 9); }; field_altitude.set_value(11000); diff --git a/firmware/application/ui_alphanum.cpp b/firmware/application/ui_alphanum.cpp index f5d7c470..f9c2c98b 100644 --- a/firmware/application/ui_alphanum.cpp +++ b/firmware/application/ui_alphanum.cpp @@ -26,11 +26,8 @@ #include "hackrf_hal.hpp" #include "portapack_shared_memory.hpp" -#include #include -using namespace hackrf::one; - namespace ui { void AlphanumView::paint(Painter&) { @@ -41,23 +38,14 @@ AlphanumView::AlphanumView( NavigationView& nav, std::string * str, size_t max_length -) : _max_length(max_length), - _str(str) +) : TextEntryView(nav, str, max_length) { size_t n; - // Trim from right - _str->erase(std::find_if(_str->rbegin(), _str->rend(), std::not1(std::ptr_fun(std::isspace))).base(), _str->end()); - cursor_pos = _str->length(); - - _str->resize(_max_length, 0); - add_children({ - &text_input, &button_mode, &text_raw, - &field_raw, - &button_ok + &field_raw }); const auto button_fn = [this](Button& button) { @@ -97,22 +85,6 @@ AlphanumView::AlphanumView( update_text(); } -void AlphanumView::draw_cursor() { - Point draw_pos; - - draw_pos = {text_input.screen_rect().location().x() + 8 + std::min((Coord)cursor_pos, (Coord)28) * 8, - text_input.screen_rect().location().y() + 16}; - - portapack::display.fill_rectangle( - {{text_input.screen_rect().location().x(), draw_pos.y()}, {text_input.screen_rect().size().width(), 4}}, - Color::black() - ); - portapack::display.fill_rectangle( - {draw_pos, {8, 4}}, - Color::white() - ); -} - void AlphanumView::set_mode(const uint32_t new_mode) { size_t n = 0; @@ -137,10 +109,6 @@ void AlphanumView::set_mode(const uint32_t new_mode) { button_mode.set_text(key_sets[0].first); } -void AlphanumView::focus() { - button_ok.focus(); -} - void AlphanumView::on_button(Button& button) { const auto c = button.text()[0]; @@ -152,27 +120,4 @@ void AlphanumView::on_button(Button& button) { update_text(); } -void AlphanumView::char_add(const char c) { - if (cursor_pos >= _max_length) return; - - _str->replace(cursor_pos, 1, 1, c); - cursor_pos++; -} - -void AlphanumView::char_delete() { - if (!cursor_pos) return; - - cursor_pos--; - _str->replace(cursor_pos, 1, 1, 0); -} - -void AlphanumView::update_text() { - if (cursor_pos <= 28) - text_input.set(' ' + *_str + std::string(_max_length - _str->length(), ' ')); - else - text_input.set('<' + _str->substr(cursor_pos - 28, 28)); - - draw_cursor(); -} - } diff --git a/firmware/application/ui_alphanum.hpp b/firmware/application/ui_alphanum.hpp index b3b62558..0af8acc2 100644 --- a/firmware/application/ui_alphanum.hpp +++ b/firmware/application/ui_alphanum.hpp @@ -26,16 +26,13 @@ #include "ui.hpp" #include "ui_widget.hpp" #include "ui_painter.hpp" +#include "ui_textentry.hpp" #include "ui_menu.hpp" -#include "ui_navigation.hpp" -#include "ui_font_fixed_8x16.hpp" namespace ui { -class AlphanumView : public View { +class AlphanumView : public TextEntryView { public: - std::function on_changed { }; - AlphanumView(NavigationView& nav, std::string * str, size_t max_length); AlphanumView(const AlphanumView&) = delete; @@ -44,9 +41,6 @@ public: AlphanumView& operator=(AlphanumView&&) = delete; void paint(Painter& painter) override; - void focus() override; - - std::string title() const override { return "Text entry"; }; private: const char * const keys_upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ' .<"; @@ -59,21 +53,10 @@ private: { "Digit", keys_digit } }; - size_t _max_length { }; - uint32_t cursor_pos { 0 }; - uint32_t mode = 0; // Uppercase - std::string * _str { }; + uint32_t mode = 0; // Uppercase - void char_add(const char c); - void char_delete(); void set_mode(const uint32_t new_mode); - void draw_cursor(); void on_button(Button& button); - void update_text(); - - Text text_input { - { 0, 0, 240, 16 } - }; std::array buttons { }; diff --git a/firmware/application/ui_debug.cpp b/firmware/application/ui_debug.cpp index e2e8edc6..82cb1f66 100644 --- a/firmware/application/ui_debug.cpp +++ b/firmware/application/ui_debug.cpp @@ -173,12 +173,12 @@ void RegistersWidget::paint(Painter& painter) { void RegistersWidget::draw_legend(const Coord left, Painter& painter) { const auto pos = screen_pos(); - for(int i=0; i({ { - { "RFFC5072", ui::Color::white(), nullptr, [&nav](){ nav.push( - "RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 }, + add_items({ + { "RFFC5072", ui::Color::white(), nullptr, [&nav](){ nav.push( + "RFFC5072", RegistersWidgetConfig { 31, 16 }, [](const size_t register_number) { return radio::debug::first_if::register_read(register_number); } ); } }, - { "MAX2837", ui::Color::white(), nullptr, [&nav](){ nav.push( - "MAX2837", RegistersWidgetConfig { 32, 2, 3, 4 }, + { "MAX2837", ui::Color::white(), nullptr, [&nav](){ nav.push( + "MAX2837", RegistersWidgetConfig { 32, 10 }, [](const size_t register_number) { return radio::debug::second_if::register_read(register_number); } ); } }, - { "Si5351C", ui::Color::white(), nullptr, [&nav](){ nav.push( - "Si5351C", RegistersWidgetConfig { 96, 2, 2, 8 }, + { "Si5351C", ui::Color::white(), nullptr, [&nav](){ nav.push( + "Si5351C", RegistersWidgetConfig { 96, 8 }, [](const size_t register_number) { return portapack::clock_generator.read_register(register_number); } ); } }, - { "WM8731",ui::Color::white(), nullptr, [&nav](){ nav.push( - "WM8731", RegistersWidgetConfig { audio::debug::reg_count(), 1, 3, 4 }, + { audio::debug::codec_name(), ui::Color::white(), nullptr, [&nav](){ nav.push( + audio::debug::codec_name(), RegistersWidgetConfig { audio::debug::reg_count(), audio::debug::reg_bits() }, [](const size_t register_number) { return audio::debug::reg_read(register_number); } ); } }, - } }); + }); on_left = [&nav](){ nav.pop(); }; } /* DebugMenuView *********************************************************/ DebugMenuView::DebugMenuView(NavigationView& nav) { - add_items<4>({ { + add_items({ { "Memory", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, { "Radio State", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, //{ "SD Card", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, { "Peripherals", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, { "Temperature", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, - } }); + }); on_left = [&nav](){ nav.pop(); }; } diff --git a/firmware/application/ui_debug.hpp b/firmware/application/ui_debug.hpp index 2f6aa034..13d4f51a 100644 --- a/firmware/application/ui_debug.hpp +++ b/firmware/application/ui_debug.hpp @@ -131,20 +131,30 @@ private: struct RegistersWidgetConfig { int registers_count; - int legend_length; - int value_length; - int registers_per_row; + int register_bits; + + constexpr int legend_length() const { + return (registers_count >= 0x10) ? 2 : 1; + } constexpr int legend_width() const { - return legend_length * 8; + return legend_length() * 8; + } + + constexpr int value_length() const { + return (register_bits + 3) / 4; } constexpr int value_width() const { - return value_length * 8; + return value_length() * 8; + } + + constexpr int registers_per_row() const { + return (value_length() >= 3) ? 4 : 8; } constexpr int registers_row_length() const { - return (registers_per_row * (value_length + 1)) - 1; + return (registers_per_row() * (value_length() + 1)) - 1; } constexpr int registers_row_width() const { @@ -156,7 +166,7 @@ struct RegistersWidgetConfig { } constexpr int rows() const { - return registers_count / registers_per_row; + return registers_count / registers_per_row(); } }; diff --git a/firmware/application/ui_freqman.cpp b/firmware/application/ui_freqman.cpp index fbff9609..7f2bfae6 100644 --- a/firmware/application/ui_freqman.cpp +++ b/firmware/application/ui_freqman.cpp @@ -25,14 +25,12 @@ #include "portapack.hpp" #include "event_m0.hpp" -//#include - using namespace portapack; namespace ui { void FrequencySaveView::on_save_name() { - text_entry(nav_, &desc_buffer, 7, [this](std::string * buffer) { + text_prompt(nav_, &desc_buffer, 7, [this](std::string * buffer) { database.entries.push_back({ value_, "", *buffer, (int32_t)options_category.selected_index_value() }); nav_.pop(); }); @@ -209,7 +207,7 @@ void FreqManView::on_edit_freq(rf::Frequency f) { } void FreqManView::on_edit_desc(NavigationView& nav) { - text_entry(nav, &desc_buffer, 28, [this](std::string * buffer) { + text_prompt(nav, &desc_buffer, 28, [this](std::string * buffer) { database.entries[menu_view.highlighted()].description = *buffer; //setup_list(); }); diff --git a/firmware/application/ui_handwrite.cpp b/firmware/application/ui_handwrite.cpp index 02aa1405..7e2e8fff 100644 --- a/firmware/application/ui_handwrite.cpp +++ b/firmware/application/ui_handwrite.cpp @@ -26,7 +26,7 @@ #include "hackrf_hal.hpp" #include "portapack_shared_memory.hpp" -#include +#include using namespace portapack; @@ -40,24 +40,15 @@ HandWriteView::HandWriteView( NavigationView& nav, std::string * str, size_t max_length -) : _max_length(max_length), - _str(str) +) : TextEntryView(nav, str, max_length) { size_t n; - // Trim from right - _str->erase(std::find_if(_str->rbegin(), _str->rend(), std::not1(std::ptr_fun(std::isspace))).base(), _str->end()); - cursor_pos = _str->length(); - - _str->resize(_max_length, 0); - // Handwriting alphabet definition here handwriting = &handwriting_unistroke; add_children({ - &text_input, - &button_case, - &button_ok + &button_case }); const auto button_fn = [this](Button& button) { @@ -224,9 +215,8 @@ void HandWriteView::guess_letter() { char_add('A' + symbol - 1); clear_zone(Color::green(), true); // Green flash } else { - if (cursor_pos) { - cursor_pos--; - _str->replace(cursor_pos, 1, 1, 0); + if (_cursor_pos) { + char_delete(); clear_zone(Color::yellow(), true); // Yellow flash } else { clear_zone(Color::red(), true); // Red flash @@ -257,26 +247,7 @@ void HandWriteView::sample_pen() { int16_t diff_x, diff_y; uint8_t dir, dir_ud, dir_lr, stroke_prev; - // Blink cursor - if (!(sample_skip & 15)) { - Point draw_pos; - - draw_pos = {text_input.screen_rect().location().x() + 8 + std::min((Coord)cursor_pos, (Coord)28) * 8, - text_input.screen_rect().location().y() + 16 - 4}; - - if (cursor) { - display.fill_rectangle( - {draw_pos, {text_input.screen_rect().size().width() - draw_pos.x(), 4}}, - Color::black() - ); - } else { - display.fill_rectangle( - {draw_pos, {8, 4}}, - Color::white() - ); - } - cursor = !cursor; - } + draw_cursor(); if (flash_timer) { if (flash_timer == 1) clear_zone(Color::black(), false); @@ -385,18 +356,4 @@ void HandWriteView::on_button(Button& button) { update_text(); } -void HandWriteView::char_add(const char c) { - if (cursor_pos >= _max_length) return; - - _str->replace(cursor_pos, 1, 1, c); - cursor_pos++; -} - -void HandWriteView::update_text() { - if (cursor_pos <= 28) - text_input.set(' ' + *_str + std::string(_max_length - _str->length(), ' ')); - else - text_input.set('<' + _str->substr(cursor_pos - 28, 28)); -} - } diff --git a/firmware/application/ui_handwrite.hpp b/firmware/application/ui_handwrite.hpp index 35ba1220..0393b9bb 100644 --- a/firmware/application/ui_handwrite.hpp +++ b/firmware/application/ui_handwrite.hpp @@ -26,58 +26,44 @@ #include "ui.hpp" #include "ui_widget.hpp" #include "ui_painter.hpp" -#include "ui_navigation.hpp" +#include "ui_textentry.hpp" #include "unistroke.hpp" namespace ui { -class HandWriteView : public View { +class HandWriteView : public TextEntryView { public: - std::function on_changed { }; - HandWriteView(NavigationView& nav, std::string * str, size_t max_length); - + HandWriteView(const HandWriteView&) = delete; HandWriteView(HandWriteView&&) = delete; HandWriteView& operator=(const HandWriteView&) = delete; HandWriteView& operator=(HandWriteView&&) = delete; - + void paint(Painter& painter) override; void on_show() override; bool on_touch(const TouchEvent event) override; - - std::string title() const override { return "Text entry"; }; private: - const char special_chars[5] = {'\'', '.', '?', '!', '='}; + const char special_chars[5] = { '\'', '.', '?', '!', '=' }; const HandWriting * handwriting { }; Painter * _painter { }; - size_t _max_length; uint8_t dir_cnt { 0 }; uint8_t dir_prev { 0 }; uint8_t flash_timer { 0 }; - uint32_t cursor_pos { 0 }; - bool cursor { false }; bool tracing { false }; uint8_t stroke_index { 0 }; uint8_t sample_skip { 0 }, move_wait { 0 }; uint8_t stroke_list[8]; Point start_pos { }, current_pos { }, last_pos { }; bool _lowercase = false; - std::string * _str { }; void sample_pen(); void add_stroke(uint8_t dir); void guess_letter(); void clear_zone(const Color color, const bool flash); - void char_add(const char c); void on_button(Button& button); - void update_text(); - - Text text_input { - { 8, 0, 232, 16 } - }; std::array num_buttons { }; std::array special_buttons { }; diff --git a/firmware/application/ui_lcr.cpp b/firmware/application/ui_lcr.cpp index 16046c83..e9c6df99 100644 --- a/firmware/application/ui_lcr.cpp +++ b/firmware/application/ui_lcr.cpp @@ -186,7 +186,7 @@ void LCRView::start_tx(const bool scan) { } void LCRView::on_button_setam(NavigationView& nav, Button& button) { - text_entry(nav, &litteral[button.id], 7); + text_prompt(nav, &litteral[button.id], 7); } LCRView::LCRView(NavigationView& nav) { @@ -263,7 +263,7 @@ LCRView::LCRView(NavigationView& nav) { button_scan.set_style(&style_val); button_setrgsb.on_select = [this,&nav](Button&) { - text_entry(nav, &rgsb, 4); + text_prompt(nav, &rgsb, 4); }; button_txsetup.on_select = [&nav](Button&) { diff --git a/firmware/application/ui_menu.cpp b/firmware/application/ui_menu.cpp index 4168ad50..5f32cdbd 100644 --- a/firmware/application/ui_menu.cpp +++ b/firmware/application/ui_menu.cpp @@ -138,11 +138,17 @@ void MenuView::clear() { } } -void MenuView::add_item(const MenuItem item) { +void MenuView::add_item(MenuItem item) { add_child(new MenuItemView { item, keep_highlight_ }); update_items(); } +void MenuView::add_items(std::initializer_list items) { + for(auto item : items) { + add_item(item); + } +} + void MenuView::update_items() { size_t i = 0; int32_t y_pos; diff --git a/firmware/application/ui_menu.hpp b/firmware/application/ui_menu.hpp index 549b3a2f..eebada5e 100644 --- a/firmware/application/ui_menu.hpp +++ b/firmware/application/ui_menu.hpp @@ -51,7 +51,7 @@ public: MenuItemView( MenuItem item, bool keep_highlight - ) : item(item), + ) : item { item }, keep_highlight_ { keep_highlight } { } @@ -75,15 +75,9 @@ public: ~MenuView(); - void add_item(const MenuItem item); + void add_item(MenuItem item); + void add_items(std::initializer_list items); void clear(); - - template - void add_items(const std::array& items) { - for (const auto& item : items) { - add_item(item); - } - } MenuItemView* item_view(size_t index) const; diff --git a/firmware/application/ui_morse.cpp b/firmware/application/ui_morse.cpp index b3864c58..426ab901 100644 --- a/firmware/application/ui_morse.cpp +++ b/firmware/application/ui_morse.cpp @@ -71,7 +71,7 @@ static msg_t ookthread_fn(void * arg) { } void MorseView::on_set_text(NavigationView& nav) { - text_entry(nav, &buffer, 28); + text_prompt(nav, &buffer, 28); } void MorseView::focus() { diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 0df94e87..83289c33 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -281,7 +281,7 @@ void NavigationView::focus() { /* ReceiversMenuView *****************************************************/ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { - add_items<9>({ { + add_items({ { "ADS-B: Planes", ui::Color::grey(), &bitmap_icon_adsb, [&nav](){ nav.push(); }, }, { "AIS: Boats", ui::Color::green(), &bitmap_icon_ais, [&nav](){ nav.push(); } }, { "APRS", ui::Color::grey(), &bitmap_icon_aprs, [&nav](){ nav.push(); } }, @@ -291,14 +291,14 @@ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { { "SIGFOX", ui::Color::grey(), &bitmap_icon_fox, [&nav](){ nav.push(); } }, // SIGFRXView { "SSTV", ui::Color::grey(), &bitmap_icon_sstv, [&nav](){ nav.push(); } }, { "TPMS: Cars", ui::Color::green(), &bitmap_icon_tpms, [&nav](){ nav.push(); } }, - } }); + }); on_left = [&nav](){ nav.pop(); }; } /* TransmittersMenuView **************************************************/ TransmittersMenuView::TransmittersMenuView(NavigationView& nav) { - add_items<16>({ { + add_items({ { "ADS-B Mode S", ui::Color::orange(), &bitmap_icon_adsb, [&nav](){ nav.push(); } }, { "APRS", ui::Color::grey(), &bitmap_icon_aprs, [&nav](){ nav.push(); } }, { "BHT Xy/EP", ui::Color::green(), &bitmap_icon_bht, [&nav](){ nav.push(); } }, @@ -315,20 +315,20 @@ TransmittersMenuView::TransmittersMenuView(NavigationView& nav) { { "SSTV", ui::Color::green(), &bitmap_icon_sstv, [&nav](){ nav.push(); } }, { "TEDI/LCR AFSK", ui::Color::yellow(), &bitmap_icon_lcr, [&nav](){ nav.push(); } }, { "Whistle", ui::Color::green(), &bitmap_icon_whistle, [&nav](){ nav.push(); } }, - } }); + }); on_left = [&nav](){ nav.pop(); }; } /* UtilitiesMenuView *****************************************************/ UtilitiesMenuView::UtilitiesMenuView(NavigationView& nav) { - add_items<5>({ { + add_items({ { "Frequency manager", ui::Color::green(), &bitmap_icon_freqman, [&nav](){ nav.push(); } }, { "CW generator", ui::Color::green(), &bitmap_icon_cwgen, [&nav](){ nav.push(); } }, { "Whip antenna length", ui::Color::yellow(),nullptr, [&nav](){ nav.push(); } }, { "Notepad", ui::Color::grey(), &bitmap_icon_notepad, [&nav](){ nav.push(); } }, { "Wipe SD card", ui::Color::red(), nullptr, [&nav](){ nav.push(); } }, - } }); + }); on_left = [&nav](){ nav.pop(); }; } @@ -345,7 +345,7 @@ void SystemMenuView::hackrf_mode(NavigationView& nav) { } SystemMenuView::SystemMenuView(NavigationView& nav) { - add_items<10>({ { + add_items({ { "Play dead", ui::Color::red(), &bitmap_icon_playdead, [&nav](){ nav.push(); } }, { "Receivers", ui::Color::cyan(), &bitmap_icon_receivers, [&nav](){ nav.push(); } }, { "Transmitters", ui::Color::green(), nullptr, [&nav](){ nav.push(); } }, @@ -357,7 +357,7 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { //{ "Debug", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, { "HackRF mode", ui::Color::white(), &bitmap_icon_hackrf, [this, &nav](){ hackrf_mode(nav); } }, { "About", ui::Color::white(), nullptr, [&nav](){ nav.push(); } } - } }); + }); set_highlighted(1); // Startup selection is "Receivers" } diff --git a/firmware/application/ui_pocsag_tx.cpp b/firmware/application/ui_pocsag_tx.cpp index 6ae794bb..009c4eb9 100644 --- a/firmware/application/ui_pocsag_tx.cpp +++ b/firmware/application/ui_pocsag_tx.cpp @@ -124,7 +124,7 @@ void POCSAGTXView::paint(Painter&) { } void POCSAGTXView::on_set_text(NavigationView& nav) { - text_entry(nav, &buffer, 16); + text_prompt(nav, &buffer, 16); } POCSAGTXView::POCSAGTXView( diff --git a/firmware/application/ui_rds.cpp b/firmware/application/ui_rds.cpp index 3429ddb6..55244d19 100644 --- a/firmware/application/ui_rds.cpp +++ b/firmware/application/ui_rds.cpp @@ -136,11 +136,11 @@ RDSView::RDSView(NavigationView& nav) { options_coverage.set_selected_index(0); // Local button_editpsn.on_select = [this, &nav](Button&) { - text_entry(nav, &PSN, 8); + text_prompt(nav, &PSN, 8); }; button_editradiotext.on_select = [this, &nav](Button&){ - text_entry(nav, &RadioText, 24); + text_prompt(nav, &RadioText, 24); }; } diff --git a/firmware/application/ui_setup.cpp b/firmware/application/ui_setup.cpp index caab2c83..7c0b90a9 100644 --- a/firmware/application/ui_setup.cpp +++ b/firmware/application/ui_setup.cpp @@ -445,7 +445,7 @@ void ModInfoView::focus() { }*/ SetupMenuView::SetupMenuView(NavigationView& nav) { - add_items<6>({ { + add_items({ { "UI", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, //{ "SD card modules", ui::Color::white(), [&nav](){ nav.push(); } }, { "Date/Time", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, @@ -453,7 +453,7 @@ SetupMenuView::SetupMenuView(NavigationView& nav) { { "Antenna Bias Voltage", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, { "Touch screen", ui::Color::white(), nullptr, [&nav](){ nav.push(); } }, { "Play dead", ui::Color::red(), &bitmap_icon_playdead, [&nav](){ nav.push(); } } - } }); + }); on_left = [&nav](){ nav.pop(); }; } diff --git a/firmware/application/ui_textentry.cpp b/firmware/application/ui_textentry.cpp index 5631aca1..8100ac8c 100644 --- a/firmware/application/ui_textentry.cpp +++ b/firmware/application/ui_textentry.cpp @@ -22,11 +22,15 @@ #include "ui_textentry.hpp" #include "portapack_persistent_memory.hpp" +#include "ui_handwrite.hpp" +#include "ui_alphanum.hpp" + +using namespace portapack; namespace ui { -void text_entry(NavigationView& nav, std::string * str, const size_t max_length, const std::function on_done) { - if (portapack::persistent_memory::ui_config_textentry() == 0) { +void text_prompt(NavigationView& nav, std::string * str, const size_t max_length, const std::function on_done) { + if (persistent_memory::ui_config_textentry() == 0) { auto te_view = nav.push(str, max_length); te_view->on_changed = [on_done](std::string * value) { if (on_done) @@ -41,4 +45,73 @@ void text_entry(NavigationView& nav, std::string * str, const size_t max_length, } } +void TextEntryView::update_text() { + if (_cursor_pos <= 28) + text_input.set(' ' + *_str + std::string(_max_length - _str->length(), ' ')); + else + text_input.set('<' + _str->substr(_cursor_pos - 28, 28)); + + draw_cursor(); +} + +void TextEntryView::char_delete() { + if (!_cursor_pos) return; + + _cursor_pos--; + _str->replace(_cursor_pos, 1, 1, 0); +} + +void TextEntryView::char_add(const char c) { + if (_cursor_pos >= _max_length) return; + + _str->replace(_cursor_pos, 1, 1, c); + _cursor_pos++; +} + +void TextEntryView::draw_cursor() { + Point draw_pos; + + draw_pos = { text_input.screen_rect().location().x() + 8 + std::min((Coord)_cursor_pos, (Coord)28) * 8, + text_input.screen_rect().location().y() + 16 }; + + display.fill_rectangle( + { { text_input.screen_rect().location().x(), draw_pos.y() }, { text_input.screen_rect().size().width(), 4 } }, + Color::black() + ); + display.fill_rectangle( + { draw_pos, { 8, 4 } }, + Color::white() + ); +} + +void TextEntryView::focus() { + button_ok.focus(); +} + +TextEntryView::TextEntryView( + NavigationView& nav, + std::string * str, + size_t max_length +) : _str(str), + _max_length(max_length) +{ + + // Trim from right + _str->erase(std::find_if(_str->rbegin(), _str->rend(), std::not1(std::ptr_fun(std::isspace))).base(), _str->end()); + _cursor_pos = _str->length(); + + _str->resize(_max_length, 0); + + add_children({ + &text_input, + &button_ok + }); + + button_ok.on_select = [this, &nav](Button&) { + if (on_changed) + on_changed(_str); + nav.pop(); + }; +} + } /* namespace ui */ diff --git a/firmware/application/ui_textentry.hpp b/firmware/application/ui_textentry.hpp index 39985197..6e311a46 100644 --- a/firmware/application/ui_textentry.hpp +++ b/firmware/application/ui_textentry.hpp @@ -25,12 +25,44 @@ #include "ui.hpp" #include "ui_navigation.hpp" -#include "ui_handwrite.hpp" -#include "ui_alphanum.hpp" namespace ui { -void text_entry(NavigationView& nav, std::string * str, size_t max_length, const std::function on_done = nullptr); +class TextEntryView : public View { +public: + std::function on_changed { }; + + void focus() override; + std::string title() const override { return "Text entry"; }; + +protected: + TextEntryView(NavigationView& nav, std::string * str, size_t max_length); + + TextEntryView(const TextEntryView&) = delete; + TextEntryView(TextEntryView&&) = delete; + TextEntryView& operator=(const TextEntryView&) = delete; + TextEntryView& operator=(TextEntryView&&) = delete; + + void char_add(const char c); + void char_delete(); + void draw_cursor(); + void update_text(); + + std::string * _str; + size_t _max_length; + uint32_t _cursor_pos { 0 }; + + Text text_input { + { 0, 0, 240, 16 } + }; + + Button button_ok { + { 10 * 8, 33 * 8, 9 * 8, 32 }, + "OK" + }; +}; + +void text_prompt(NavigationView& nav, std::string * str, size_t max_length, const std::function on_done = nullptr); } /* namespace ui */ diff --git a/firmware/baseband/baseband.cpp b/firmware/baseband/baseband.cpp index 284b9471..198f1087 100644 --- a/firmware/baseband/baseband.cpp +++ b/firmware/baseband/baseband.cpp @@ -35,8 +35,6 @@ static void init() { audio::dma::configure(); audio::dma::enable(); - LPC_CREG->DMAMUX = portapack::gpdma_mux; - gpdma::controller.enable(); nvicEnableVector(DMA_IRQn, CORTEX_PRIORITY_MASK(LPC_DMA_IRQ_PRIORITY)); } diff --git a/firmware/baseband/channel_stats_collector.hpp b/firmware/baseband/channel_stats_collector.hpp index 44d70753..daab0822 100644 --- a/firmware/baseband/channel_stats_collector.hpp +++ b/firmware/baseband/channel_stats_collector.hpp @@ -23,7 +23,6 @@ #define __CHANNEL_STATS_COLLECTOR_H__ #include "dsp_types.hpp" -#include "simd.hpp" #include "message.hpp" #include "utility.hpp" @@ -36,15 +35,7 @@ class ChannelStatsCollector { public: template void feed(const buffer_c16_t& src, Callback callback) { - auto src_p = simd32_ptr(src.p); - const auto end_p = simd32_ptr(&src.p[src.count]); - while(src_p < end_p) { - const uint32_t sample = *(src_p++); - const uint32_t mag_sq = __SMUAD(sample, sample); - if( mag_sq > max_squared ) { - max_squared = mag_sq; - } - } + max_squared = compute_max_squared(src, max_squared); count += src.count; const size_t samples_per_update = src.sampling_rate * update_interval; @@ -63,6 +54,22 @@ private: static constexpr float update_interval { 0.1f }; uint32_t max_squared { 0 }; size_t count { 0 }; + + static uint32_t compute_max_squared( + const buffer_c16_t& src, + uint32_t max_squared + ) { + auto src_p = src.p; + while(src_p < &src.p[src.count]) { + const uint32_t sample = *__SIMD32(src_p)++; + const uint32_t mag_sq = __SMUAD(sample, sample); + if( mag_sq > max_squared ) { + max_squared = mag_sq; + } + } + + return max_squared; + } }; #endif/*__CHANNEL_STATS_COLLECTOR_H__*/ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/00index_e.html b/firmware/chibios-portapack/ext/fatfs/doc/00index_e.html index 9427acbe..68e22b0f 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/00index_e.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/00index_e.html @@ -10,11 +10,11 @@ -FatFs - Generic FAT File System Module +FatFs - Generic FAT File System Module (R0.12c) -

FatFs - Generic FAT File System Module

+

FatFs - Generic FAT File System Module (R0.12c)


@@ -23,7 +23,7 @@

Features

    -
  • Windows compatible FAT/exFAT file system.
  • +
  • DOS/Windows compatible FAT/exFAT file system.
  • Platform independent. Easy to port.
  • Very small footprint for program code and work area.
  • Various configuration options to support for: @@ -44,6 +44,7 @@

    Application Interface

    layer +

    FatFs provides various file control functions for the applications as shown below.

    • File Access
        @@ -103,9 +104,9 @@
        -

        Device Control Interface

        +

        Media Access Interface

        layer -

        Since the FatFs module is a file system layer, it is completely separated from the physical devices, such as memory card, harddisk and any type of storage device. FatFs accesses the storage devices via a simple interface shown below. The low level device control module is not a part of FatFs module. It is provided by implementer. Also sample implementations for some platforms are available in the downloads.

        +

        Since the FatFs module is just a file system layer independent of platform and storage device. It is completely separated from the physical devices, such as memory card, harddisk and any type of storage device. The low level device control module is not a part of FatFs module and it needs to be provided by implementer. FatFs accesses the storage devices via a simple media access interface shown below. Also sample implementations for some platforms are available in the downloads.

        • disk_status - Get device status
        • disk_initialize - Initialize device
        • @@ -136,6 +137,6 @@
          -

          Latest Information

          +

          FatFs Homepage

          diff --git a/firmware/chibios-portapack/ext/fatfs/doc/00index_j.html b/firmware/chibios-portapack/ext/fatfs/doc/00index_j.html index 3b881f53..02c927fb 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/00index_j.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/00index_j.html @@ -10,11 +10,11 @@ -FatFs 汎用FATファイルシステム モジュール +FatFs 汎用FATファイルシステム モジュール (R0.12c) -

          FatFs 汎用FATファイルシステム モジュール

          +

          FatFs 汎用FATファイルシステム モジュール (R0.12c)


          @@ -22,7 +22,7 @@

          FatFsは小規模な組み込みシステム向けの汎用FAT/exFATファイルシステム モジュールです。ANSI C(C89)準拠でハードウェア アーキテクチャには依存しないので、必要なワーク エリアが確保できれば、8051, PIC, AVR, SH, Z80, 68k, H8, ARMなど安価なマイコンでも使用可能です。このほか、FatFsを極小マイコン向けにシュリンクしたぷちFatFsもあります。

          FatFsモジュールの特徴

            -
          • Windows互換 FAT/exFATファイルシステム
          • +
          • DOS/Windows互換 FAT/exFATファイルシステム
          • プラットフォーム非依存
          • コンパクトなコードとRAM使用量
          • 多くの構成オプション: @@ -41,8 +41,9 @@
            -

            上位レイヤ インターフェース

            +

            アプリケーション インターフェース

            layer +

            FatFsモジュールは、上位レイヤに対して次に示すファイルAPIを提供します。

            • ファイル アクセス
                @@ -102,9 +103,9 @@
                -

                下位レイヤ インターフェース

                +

                デバイス制御インターフェース

                layer -

                FatFsモジュールは、単なるファイルシステム レイヤなので、その下位のストレージ デバイス制御レイヤはそれに含まれません。それぞれのプラットフォームやストレージ デバイスに対応した制御レイヤは、インプリメンタによって提供される必要があります。FatFsモジュールは、下位レイヤに対し標準的には次のインターフェースを要求します。一部の拡張機能、たとえばOS関連機能を有効にしたときは、加えてプロセス/メモリ操作関数なども必要になります。サンプル プロジェクトに下位レイヤの実装例を示します。

                +

                FatFsモジュールは、プラットフォームから独立した単なるファイルシステム レイヤです。ストレージ デバイス(例えばメモリ カード)の制御機能はFatFsの構成部分ではないので、インプリメンタによって提供される必要があります。FatFsモジュールは、下位レイヤに対し標準的には次のインターフェースを要求します。一部の拡張機能(たとえばOS関連機能)を利用するときは、これらに加えてプロセス/メモリ操作関数なども必要になります。サンプル プロジェクトに下位レイヤの実装例を示します。

                • disk_status - デバイスの状態取得
                • disk_initialize - デバイスの初期化
                • @@ -136,6 +137,6 @@
                  -

                  FatFs Home Page

                  +

                  FatFsホームページ

                  diff --git a/firmware/chibios-portapack/ext/fatfs/doc/css_e.css b/firmware/chibios-portapack/ext/fatfs/doc/css_e.css index 99c6714a..0813d7be 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/css_e.css +++ b/firmware/chibios-portapack/ext/fatfs/doc/css_e.css @@ -14,6 +14,7 @@ strong {} pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; font-size: 85%; font-family: "Consolas", "Courier New", monospace; background-color: white;} pre span.c {color: green;} pre span.k {color: blue;} +pre span.b {font-weight: bold;} pre span.arg {font-style: italic;} tt {margin: 0 0.2em; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; } tt.arg {font-style: italic;} @@ -24,7 +25,7 @@ dl {margin: 0.5em 1em;} dd {margin: 0 2em;} dt {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;} dl.par dt {margin: 0.5em 0 0 0 ; font-style: italic; } -dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;} +dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; font-weight: bold; } hr {border-width: 1px; margin: 1em;} div.abst {font-family: sans-serif;} div.para {clear: both; font-family: serif;} diff --git a/firmware/chibios-portapack/ext/fatfs/doc/css_j.css b/firmware/chibios-portapack/ext/fatfs/doc/css_j.css index 3b1a9646..77b634e3 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/css_j.css +++ b/firmware/chibios-portapack/ext/fatfs/doc/css_j.css @@ -17,6 +17,7 @@ strong {} pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consolas", "Courier New", "lr SVbN", monospace; background-color: white;} pre span.c {color: green;} pre span.k {color: blue;} +pre span.b {font-weight: bold;} pre span.arg {font-style: italic;} tt {margin: 0 0.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consolas", "Courier New", "lr SVbN", monospace;} tt.arg {font-style: italic;} @@ -27,7 +28,7 @@ dl {margin: 0.5em 1em;} dd {margin: 0em 2em;} dt {font-size: 0.85em; font-family: "Consolas", "Courier New", "lr SVbN", monospace;} dl.par dt {margin: 0.5em 0 0 0 ; font-style: italic; letter-spacing: 0;} -dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", "lr SVbN", monospace; letter-spacing: 0; } +dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", "lr SVbN", monospace; letter-spacing: 0; font-weight: bold; } hr {border-width: 1px; margin: 1em;} div.abst {font-family: "lr oSVbN",sans-serif;} div.para {clear: both; font-family: "lr o",serif;} diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/appnote.html b/firmware/chibios-portapack/ext/fatfs/doc/en/appnote.html index 2344b3a6..34d01cf3 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/appnote.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/appnote.html @@ -37,17 +37,17 @@
                • ANSI C
                  The FatFs module is a middleware written in ANSI C (C89). There is no platform dependence, so long as the compiler is in compliance with ANSI C.
                • Size of integer types
                  -The FatFs module assumes that size of char/short/long are 8/16/32 bit and int is 16 or 32 bit. These correspondence are defined in integer.h. This will not be a problem on most compilers. When any conflict with existing definitions is occured, you must resolve it with care.
                • +The FatFs module assumes that size of char/short/long are 8/16/32 bit and int is 16 or 32 bit. These correspondence are defined in integer.h. This will not be a problem on most compilers. When a conflict with existing definitions is occured, you must resolve it with care.

                System organizations

                The dependency diagram shown below is a typical but not specific configuration of the embedded system with FatFs module.

                dependency diagram

                -

                (a) If a working disk module with FatFs API is provided, no additional function is needed. (b) To attach existing disk drivers with different API, glue functions are needed to translate the APIs between FatFs and the drivers.

                +

                (a) If a working disk module with FatFs disk interface is provided, nothing else will be needed. (b) To attach existing disk drivers with different interface, glue functions are needed to translate the interfaces between FatFs and the drivers.

                functional diagram

                -

                Which function is required?

                -

                You need to provide only low level disk I/O functions that required by FatFs module and nothing else. If a working disk module for the target system is already existing, you need to write only glue functions to attach it to the FatFs module. If not, you need to port any other disk module or write it from scratch. Most of defined functions are not that always required. For example, disk write function is not required at read-only configuration. Following table shows which function is required depends on the configuration options.

                +

                Required functions

                +

                You need to provide only low level disk I/O functions required by FatFs module and nothing else. If a working disk module for the target system is already existing, you need to write only glue functions to attach it to the FatFs module. If not, you need to port another disk module or write it from scratch. Most of defined functions are not that always required. For example, disk write function is not required at read-only configuration. Following table shows which function is required depends on the configuration options.

                @@ -64,7 +64,7 @@ The FatFs module assumes that size of char/short/long

                Limits

                  -
                • File system type: FAT12, FAT16, FAT32(r0.0) and exFAT(r1.0).
                • +
                • File system type: FAT, FAT32(r0.0) and exFAT(r1.0).
                • Number of open files: Unlimited. (depends on available memory)
                • Number of volumes: Upto 10.
                • Volume size: Upto 2 TiB at 512 bytes/sector.
                • @@ -81,21 +81,21 @@ The FatFs module assumes that size of char/short/long
                - - - - + + + +
                FunctionRequired whenNote
                disk_status
                disk_initialize
                disk_read
                AlwaysDisk I/O functions.
                Samples available in ffsample.zip.
                There are many implementations on the web.
                ARM7
                32bit
                ARM7
                Thumb
                CM3
                Thumb-2
                AVRH8/300HPIC24RL78V850ESSH-2ARX600IA-32
                CompilerGCCGCCGCCGCCCH38C30CC78K0RCA850SHCRXCMSC
                text (Full, R/W)10.1k6.6k6.2k12.1k10.5k11.2k12.6k8.5k8.7k6.3k8.4k
                text (Min, R/W) 6.6k4.5k4.2k 7.9k 7.0k 7.6k 8.8k5.9k5.8k4.3k5.8k
                text (Full, R/O) 4.8k3.1k2.9k 5.8k 5.1k 5.5k 6.4k4.1k4.0k3.1k4.0k
                text (Min, R/O) 3.5k2.4k2.3k 4.4k 3.9k 4.2k 5.0k3.3k3.1k2.4k3.1k
                text (Full, R/W)10.4k6.8k6.3k12.4k 9.8k11.1k12.8k8.6k8.9k6.4k8.5k
                text (Min, R/W) 6.8k4.6k4.3k 8.2k 6.7k 7.6k 9.1k6.0k5.9k4.5k5.9k
                text (Full, R/O) 4.8k3.1k2.8k 5.6k 4.6k 5.3k 6.3k4.0k3.9k3.0k3.9k
                text (Min, R/O) 3.6k2.4k2.3k 4.4k 3.5k 4.0k 4.9k3.3k3.0k2.4k3.1k
                bssV*4 + 2V*4 + 2V*4 + 2V*2 + 2V*4 + 2V*2 + 2V*2 + 2V*4 + 2V*4 + 2V*4 + 2V*4 + 2
                Work area
                (_FS_TINY == 0)
                V*564
                + F*552
                V*564
                + F*552
                V*564
                + F*552
                V*560
                + F*546
                V*560
                + F*546
                V*560
                + F*546
                V*560
                + F*546
                V*564
                + F*552
                V*564
                + F*552
                V*564
                + F*552
                V*564
                + F*552
                Work area
                (_FS_TINY == 1)
                V*564
                + F*40
                V*564
                + F*40
                V*564
                + F*40
                V*560
                + F*34
                V*560
                + F*34
                V*560
                + F*34
                V*560
                + F*34
                V*564
                + F*40
                V*564
                + F*40
                V*564
                + F*40
                V*564
                + F*40

                These are the memory usage on some target systems with following condition. The memory sizes are in unit of byte, V denotes option _VOLUMES and F denotes number of open files. All samples here are optimezed in code size.

                -FatFs R0.12 options:
                +FatFs R0.12b options:
                 _FS_READONLY   0 (R/W) or 1 (R/O)
                 _FS_MINIMIZE   0 (Full, with all basic functions) or 3 (Min, with fully minimized)
                 _FS_TINY       0 (Default) or 1 (Tiny file object)
                -And any other options are left unchanged from original setting.
                +And other options are left unchanged from original setting.
                 
                @@ -144,7 +144,7 @@ And any other options are left unchanged from original setting.

                Long File Name

                -

                FatFs module supports long file name (LFN). The two different file names, short file name (SFN) and LFN, of a file is transparent on the API except for f_readdir function. The support for LFN is disabled by default. To enable the LFN, set _USE_LFN to 1, 2 or 3, and add option/unicode.c to the project. The LFN requiers a certain working buffer in addition. The buffer size can be configured by _MAX_LFN according to the available memory. The length of an LFN will be up to 255 characters, so that the _MAX_LFN should be set to 255 for all file names. If the size of working buffer is insufficient for the input file name, the file function fails with FR_INVALID_NAME. When use any re-entry to the API with LFN is enabled, _USE_LFN must be set to 2 or 3. In this case, the file function allocates the working buffer on the stack or heap. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and additional 608 bytes when exFAT enabled.

                +

                FatFs module supports long file name (LFN). The two different file names, short file name (SFN) and LFN, of a file is transparent on the API except for f_readdir function. The support for LFN is disabled by default. To enable the LFN, set _USE_LFN to 1, 2 or 3, and add option/unicode.c to the project. The LFN requiers a certain working buffer in addition. The buffer size can be configured by _MAX_LFN according to the available memory. The length of an LFN will be up to 255 characters, so that the _MAX_LFN should be set to 255 for all file names. If the size of working buffer is insufficient for the input file name, the file function fails with FR_INVALID_NAME. When use any re-entry to the API with LFN is enabled, _USE_LFN must be set to 2 or 3. In this case, the file function allocates the working buffer on the stack or heap. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and additional (_MAX_LFN + 44) / 15 * 32 bytes when exFAT is enabled.

                @@ -160,27 +160,27 @@ And any other options are left unchanged from original setting.

                Unicode API

                -

                By default, FatFs uses ANSI/OEM code set on the API even at LFN configuration. FatFs can also switch the character encoding on the API to Unicode by configuration option _LFN_UNICODE. This means that FatFs supports the full featured LFN specification. The data type TCHAR specifies any string on the API is an alias of char(ANSI) or WCHAR(UTF-16). For more information, refer to the description in the file name.

                +

                By default, FatFs uses ANSI/OEM code set on the API even at LFN configuration. FatFs can also switch the character encoding on the API to Unicode by configuration option _LFN_UNICODE. This means that FatFs supports the full featured LFN specification. The data type TCHAR specifies strings on the API is an alias of char(ANSI/OEM) or WCHAR(UTF-16). For more information, refer to the description in the file name.

                exFAT File System

                -

                The exFAT (Microsoft's Extended File Allocation Table) file system is a replacement of the FAT file system which has been widely used in the embedded systems and consumer devices. It is adopted by SDA (SD Association) as a recommended file system for high capacity SD cards (>32GB) and they are being shipped with this format, so that the exFAT will soon become one of the standard file systems for removable media.

                -

                The exFAT file system allows the file size larger than 4 GiB limit what FAT file system allows upto and some file system overhead, especially file allocation delay, are reduced as well. This feature improves the write throughput to the file. However a problem on the current implementation of FatFs is that write throughput at writing to the growing edge of the fragmented file gets less than the throughput on the FAT volume. Pre-allocating a contiguous block with f_expand function may be a workaround of this problem.

                -

                Note that the exFAT is a patent of Microsoft Corporation. The exFAT function of FatFs is an implementation based on US. Pat. App. Pub. No. 2009/0164440 A1. FatFs module can swich the exFAT on or off by configuration option. When enable the exFAT on the commercial products, you will need to be licensed by Microsoft depends on the final destination of the products.

                -

                Remark: Enabling exFAT discards C89 compatibility because of need for 64-bit integer type.

                +

                The exFAT (Microsoft's Extended File Allocation Table) file system is a replacement of the FAT file system which has been widely used in the embedded systems and consumer devices. It is adopted by SDA (SD Association) as a recommended file system for high capacity SD cards (>32GB) and they are being shipped with this format, so that the exFAT become one of the standard file systems for removable media as well as FAT. The exFAT file system allows the file size larger than 4 GiB limit what FAT file system allows upto and some file system overhead, especially cluster allocation delay, are reduced as well. This feature improves the write throughput to the file.

                +

                Note that the exFAT is a patent of Microsoft Corporation. The exFAT function of FatFs is an implementation based on US. Pat. App. Pub. No. 2009/0164440 A1. FatFs module can swich the exFAT on/off by configuration option. When enable the exFAT on the commercial products, you will need to be licensed by Microsoft depends on the final destination of the products.

                +

                Remark: Enabling exFAT discards ANSI C (C89) compatibility because of need for 64-bit integer type.

                +

                Re-entrancy

                -

                The file operations to the different volume is always re-entrant regardless of configurations except when LFN enabled with static working buffer. It can work simultaneously without any mutual exclusion.

                -

                The file operations to the same volume is not re-entrant but it can also be configured thread-safe by option _FS_REENTRANT. It enables to control exclusive use of each file system object. In this case, also the OS dependent synchronization object control functions, ff_cre_syncobj/ff_del_syncobj/ff_req_grant/ff_rel_grant, needed to be added to the project. There are some examples in the option/syscall.c.

                -

                When a file function is called while the volume is being accessed by any other task, the file function to the volume will be suspended until that task leaves the file function. If the wait time exceeded a period defined by _TIMEOUT, the file function will abort with FR_TIMEOUT. The timeout function might not be supported on the some RTOSs.

                -

                There is an exception on the re-entrancy for f_mount/f_mkfs/f_fdisk function. These volume management functions are not re-entrant to the same volume and corresponding physical drive. When use these functions, any other tasks need to avoid to access the volume.

                -

                Note that this section describes on the re-entrancy of the FatFs module itself. The _FS_REENTRANT controls only exclusive use of each file system object and it does not that prevent to re-enter the low level disk functions. For example, only disk_status function can be re-entered at single volume system and any disk function can be re-entered at multiple volume system. Thus the low level disk I/O layer must be always thread-safe when any FatFs API is re-entered by two or more tasks.

                +

                The file operations to the different volume each other is always re-entrant regardless of configurations except when LFN enabled with static working buffer. It can work simultaneously without any mutual exclusion.

                +

                The file operations to the same volume is not re-entrant. It can also be configured thread-safe by option _FS_REENTRANT. It enables to control exclusive use of each file system object. In this case, also the OS dependent synchronization object control functions, ff_cre_syncobj/ff_del_syncobj/ff_req_grant/ff_rel_grant, needed to be added to the project. There are some examples in the option/syscall.c.

                +

                When a file function is called while the volume is being accessed by other task, the file function to the volume will be suspended until that task leaves the file function. If the wait time exceeded a period defined by _TIMEOUT, the file function will abort with FR_TIMEOUT. The timeout function might not be supported on the some RTOSs.

                +

                There is an exception on the re-entrancy for f_mount/f_mkfs/f_fdisk function. These volume management functions are not re-entrant on the same volume and corresponding physical drive. When use these functions, other tasks need to avoid to access the volume.

                +

                Note that this section describes on the re-entrancy of the FatFs module itself. The _FS_REENTRANT controls only exclusive use of each file system object and it does not that prevent re-entering the low level disk functions. For example, only disk_status function is re-entered at single volume system and every disk function is re-entered at multiple volume system. Thus the low level disk I/O layer must be always thread-safe when FatFs API is re-entered by two or more tasks.

                -

                Duplicated File Access

                +

                Duplicated File Open

                FatFs module does not support the read/write collision control of duplicated open to a file. The duplicated open is permitted only when each of open method to a file is read mode. The duplicated open with one or more write mode to a file is always prohibited, and also open file must not be renamed or deleted. A violation of these rules can cause data colluption.

                The file lock control can be enabled by _FS_LOCK option. The value of option defines the number of open objects to manage simultaneously. In this case, if any open, rename or remove that violating the file shareing rule that described above is attempted, the file function will rejected with FR_LOCKED. If number of open objects, files and sub-directories, is equal to _FS_LOCK, an extra f_open/f_opendir function will fail with FR_TOO_MANY_OPEN_FILES.

                @@ -218,7 +218,7 @@ Figure 6. Comparison between Multiple/Single Sector Write

                Critical Section

                -

                If a write operation to the FAT volume is interrupted due to any accidental failure, such as sudden blackout, incorrect media removal and unrecoverable disk error, the FAT structure on the volume can be broken. Following images shows the critical section of the FatFs module.

                +

                If a write operation to the FAT volume is interrupted due to an accidental failure, such as sudden blackout, incorrect media removal and unrecoverable disk error, the FAT structure on the volume can be broken. Following images shows the critical section of the FatFs module.

                Figure 4. Long critical section
                fig.4 @@ -236,17 +236,17 @@ Figure 5. Minimized critical section
              • The file created as new or overwritten remains but no content.
              • Efficiency of disk use gets worse due to lost clusters.
              • -

                Each case does not affect the files that not opened in write mode. To minimize risk of data loss, the critical section can be minimized by minimizing the time that file is opened in write mode or using f_sync function as shown in Figure 5.

                +

                Each case does not affect any file not opened in write mode. To minimize risk of data loss, the critical section can be minimized by minimizing the time that file is opened in write mode or using f_sync function as shown in Figure 5.

                Extended Use of FatFs API

                These are examples of extended use of FatFs APIs. New item will be added whenever a useful code is found.

                  -
                1. Open or create a file for append (for R0.12 and older)
                2. +
                3. Open or create a file for append (for only R0.12 and earlier)
                4. Empty a directory
                5. -
                6. Allocate contiguous area to the file (for R0.11a and older)
                7. -
                8. Function/compatibility checker for low level disk I/O module
                9. +
                10. Allocate contiguous area to the file (for only R0.11a and earlier)
                11. +
                12. Compatibility checker for low level disk I/O module
                13. FAT image creator
                @@ -256,15 +256,15 @@ Figure 5. Minimized critical section

                FatFs has being developped as a personal project of the author, ChaN. It is free from the code anyone else wrote at current release. Following code block shows a copy of the FatFs license document that included in the source files.

                 /*----------------------------------------------------------------------------/
                -/  FatFs - Generic FAT file system module  R0.12a                             /
                +/  FatFs - Generic FAT file system module  Rx.xx                              /
                 /-----------------------------------------------------------------------------/
                 /
                -/ Copyright (C) 2016, ChaN, all right reserved.
                +/ Copyright (C) 20xx, ChaN, all right reserved.
                 /
                 / FatFs module is an open source software. Redistribution and use of FatFs in
                 / source and binary forms, with or without modification, are permitted provided
                 / that the following condition is met:
                -
                +/
                 / 1. Redistributions of source code must retain the above copyright notice,
                 /    this condition and the following disclaimer.
                 /
                @@ -274,7 +274,7 @@ Figure 5. Minimized critical section
                / by use of this software. /----------------------------------------------------------------------------*/
                -

                Therefore FatFs license is one of the BSD-style licenses but there is a significant feature. FatFs is mainly intended for embedded systems. In order to extend the usability for commercial products, the redistributions of FatFs in binary form, such as embedded code, binary library and any forms without source code, does not need to include about FatFs in the documentations. This is equivalent to the 1-clause BSD license. Of course FatFs is compatible with the most open source software licenses including GNU GPL. When you redistribute the FatFs source code with any changes or create a fork, the license can also be changed to GNU GPL, BSD-style license or any open source software licenses that not conflict with FatFs license.

                +

                Therefore FatFs license is one of the BSD-style licenses but there is a significant feature. FatFs is mainly intended for embedded systems. In order to extend the usability for commercial products, the redistributions of FatFs in binary form, such as embedded code, binary library and any forms without source code, does not need to include about FatFs in the documentations. This is equivalent to the 1-clause BSD license. Of course FatFs is compatible with the most of open source software licenses including GNU GPL. When you redistribute the FatFs source code with any changes or create a fork, the license can also be changed to GNU GPL, BSD-style license or any open source software license that not conflict with FatFs license.

                Return Home

                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/chdir.html b/firmware/chibios-portapack/ext/fatfs/doc/en/chdir.html index b9009fc5..41935fc9 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/chdir.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/chdir.html @@ -25,7 +25,7 @@ FRESULT f_chdir (

                Parameters

                path
                -
                Pointer to the null-terminated string that specifies a directory to go.
                +
                Pointer to the null-terminated string that specifies the directory to go.
                @@ -50,7 +50,7 @@ FRESULT f_chdir (

                Description

                -

                The f_chdir function changes the current directory of the logical drive. The current directory of a drive is initialized to the root directory when the drive is auto-mounted. Note that the current directory is retained in the each file system object so that it also affects other tasks that using the volume.

                +

                The f_chdir function changes the current directory of the logical drive. The current directory of a drive is set to the root directory when the drive is mounted. Note that the current directory is retained in the each file system object, so that it also affects other tasks that use the volume.

                @@ -63,10 +63,10 @@ FRESULT f_chdir (

                Example

                -    /* Change current direcoty of the current drive (dir1 under root dir) */
                +    /* Change current direcoty of the current drive ('dir1' under root directory) */
                     f_chdir("/dir1");
                 
                -    /* Change current direcoty of drive 2 (parent dir) */
                +    /* Change current direcoty of drive 2 (parent directory) */
                     f_chdir("2:..");
                 
                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/config.html b/firmware/chibios-portapack/ext/fatfs/doc/en/config.html index 880c3250..5ee685fe 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/config.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/config.html @@ -45,16 +45,16 @@

                Disable (0) or Enable (1) f_mkfs function.

                _USE_FASTSEEK

                -

                Disable (0) or Enable (1) fast seek function to enable accelerated mode of f_lseek, f_read and f_write function. For more information, read here.

                +

                Disable (0) or Enable (1) fast seek function to enable accelerated mode for f_lseek, f_read and f_write function. For more information, read here.

                _USE_EXPAND

                Disable (0) or Enable (1) , f_enpand function. Also _FS_READONLY needs to be 0.

                _USE_CHMOD

                -

                Disable (0) or Enable (1) metadata manipulation functions, f_chmod and f_utime. Also _FS_READONLY needs to be 0.

                +

                Disable (0) or Enable (1) metadata control functions, f_chmod and f_utime. Also _FS_READONLY needs to be 0.

                _USE_LABEL

                -

                Disable (0) or Enable (1) volume label functions, f_getlabel and f_setlabel.

                +

                Disable (0) or Enable (1) API functions for volume label, f_getlabel and f_setlabel.

                _USE_FORWARD

                Disable (0) or Enable (1) f_forward function.

                @@ -147,7 +147,7 @@

                Disable (0) or Enable (1). This option switches multi-partition function. By default (0), each logical drive number is bound to the same physical drive number and only an FAT volume in the physical drive is mounted. When enabled, each logical drive is bound to the partition on the physical drive listed in the user defined partition resolution table VolToPart[]. Also f_fdisk funciton will be available. For more information, read here.

                _MIN_SS, _MAX_SS

                -

                This set of options defines the size of sector on low level disk I/O interface, disk_read and disk_write function. Valid values are 512, 1024, 2048 and 4096. _MIN_SS defines minimum sector size and _MAX_SS defines the maximum sector size. Always set both 512 for any type of memory card and harddisk. But a larger value may be required for on-board flash memory and some type of optical media. When _MAX_SS > _MIN_SS, FatFs is configured to variable sector size and GET_SECTOR_SIZE command must be implemented to the disk_ioctl function.

                +

                This set of options defines the size of sector on low level disk I/O interface, disk_read and disk_write function. Valid values are 512, 1024, 2048 and 4096. _MIN_SS defines minimum sector size and _MAX_SS defines the maximum sector size. Always set both 512 for memory card and harddisk. But a larger value may be required for on-board flash memory and some type of optical media. When _MAX_SS > _MIN_SS, support of variable sector size is enabled and GET_SECTOR_SIZE command needs to be implemented to the disk_ioctl function.

                _USE_TRIM

                Disable (0) or Enable (1). This option switches ATA-TRIM function. To enable Trim function, also CTRL_TRIM command should be implemented to the disk_ioctl function.

                @@ -175,7 +175,7 @@

                This option switches support for the exFAT file system in addition to the FAT file system, Enabled(1) or Disabled(1). To enable this feature, also LFN must be enabled and configureing _LFN_UNICODE = 1 and _MAX_LFN = 255 is recommended for full-featured exFAT function. Note that enabling exFAT discards C89 compatibility because of need for 64-bit integer type.

                _FS_NORTC

                -

                Use RTC (0) or Do not use RTC (1). This option controls timestamp function. If the system does not have an RTC function or valid timestamp is not needed, set _FS_NORTC to 1 to disable the timestamp function. Any object modified by FatFs will have a fixed timestamp value defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR. To use the timestamp function, set _FS_NORTC = 0 and add get_fattime function to the project to get the current time form real-time clock. This option has no effect at read-only configuration.

                +

                Use RTC (0) or Do not use RTC (1). This option controls timestamp function. If the system does not have an RTC function or valid timestamp is not needed, set _FS_NORTC to 1 to disable the timestamp function. Any object modified by FatFs will have a fixed timestamp defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR. To use the timestamp function, set _FS_NORTC = 0 and add get_fattime function to the project to get the current time form real-time clock. This option has no effect at read-only configuration.

                _NORTC_MON, _NORTC_MDAY, _NORTC_YEAR

                This set of options defines the time to be used at no RTC systems. This option has no effect at read-only configuration or _FS_NORTC = 0.

                @@ -184,12 +184,12 @@

                This option switches file lock function to control duplicated file open and illegal operations to open objects. Note that the file lock function is independent of re-entrancy. This option must be 0 at read-only configuration.

                With LFN at CM3+gcc
                _CODE_PAGECode size
                - - + +
                ValueDescription
                0Disable file lock function. To avoid volume corruption, application program should avoid illegal open, remove and rename to the open objects.
                >0Enable file lock function. The value defines how many files/sub-directories can be opened simultaneously under file lock control. Illigal operations to the open object will be rejected with FR_LOCKED.
                0Disable file lock function. To avoid collapsing file by wrong file operation, application program needs to avoid illegal open, remove and rename to the open objects.
                >0Enable file lock function. The value defines how many files/sub-directories can be opened simultaneously under the file lock control. Illigal operations to the open object will be rejected with FR_LOCKED.

                _FS_REENTRANT

                -

                Disable (0) or Enable (1). This option switches the re-entrancy (thread safe) of the FatFs module itself. Note that file/directory access to the different volume is always re-entrant and it can work simultaneously regardless of this option but volume control functions, f_mount, f_mkfs and f_fdisk, are always not re-entrant. Only file/directory access to the same volume, in other words, exclusive use of each file system object, is under control of this function. To enable this feature, also user provided synchronization handlers, ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj, need to be added to the project. Sample code is available in option/syscall.c.

                +

                Disable (0) or Enable (1). This option switches the re-entrancy (thread safe) of the FatFs module itself. Note that file/directory access to the different volume is always re-entrant and it can work simultaneously regardless of this option but volume control functions. f_mount, f_mkfs and f_fdisk, are always not re-entrant. Only file/directory access to the same volume, in other words, exclusive use of each file system object, is under control of this function. To enable this feature, also user provided synchronization handlers, ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj, need to be added to the project. Sample code is available in option/syscall.c.

                _FS_TIMEOUT

                Number of time ticks to abort the file function with FR_TIMEOUT when wait time is too long. This option has no effect when _FS_REENTRANT = 0.

                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/dinit.html b/firmware/chibios-portapack/ext/fatfs/doc/en/dinit.html index 4a003e70..81b0ffd0 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/dinit.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/dinit.html @@ -13,7 +13,7 @@

                disk_initialize

                -

                The disk_initialize function initializes the storage device.

                +

                The disk_initialize function is called to initializes the storage device.

                 DSTATUS disk_initialize (
                   BYTE pdrv           /* [IN] Physical drive number */
                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/dioctl.html b/firmware/chibios-portapack/ext/fatfs/doc/en/dioctl.html
                index 7c692511..9a724915 100644
                --- a/firmware/chibios-portapack/ext/fatfs/doc/en/dioctl.html
                +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/dioctl.html
                @@ -13,7 +13,7 @@
                 
                 

                disk_ioctl

                -

                The disk_ioctl function controls device specific features and miscellaneous functions other than generic read/write.

                +

                The disk_ioctl function is called to control device specific features and miscellaneous functions other than generic read/write.

                 DRESULT disk_ioctl (
                   BYTE pdrv,     /* [IN] Drive number */
                @@ -59,9 +59,9 @@ DRESULT disk_ioctl (
                 CommandDescription
                 CTRL_SYNCMake sure that the device has finished pending write process. If the disk I/O module has a write back cache, the dirty buffers must be written back to the media immediately. Nothing to do for this command if each write operation to the media is completed within the disk_write function.
                 GET_SECTOR_COUNTReturns number of available sectors on the drive into the DWORD variable pointed by buff. This command is used by only f_mkfs and f_fdisk function to determine the volume/partition size to be created. Required at _USE_MKFS == 1 or _MULTI_PARTITION == 1.
                -GET_SECTOR_SIZEReturns sector size of the media into the WORD variable pointed by buff. Valid return values of this command are 512, 1024, 2048 and 4096. This command is required only at variable sector size configuration, _MAX_SS > _MIN_SS. At fixed sector size configuration, _MAX_SS == _MIN_SS, this command is not used and the device must work at that sector size.
                -GET_BLOCK_SIZEReturns erase block size of the flash memory media in unit of sector into the DWORD variable pointed by buff. The allowable value is from 1 to 32768 in power of 2. Return 1 if the erase block size is unknown or non flash memory media. This command is used by only f_mkfs function and it attempts to align data area to the erase block boundary. Required at _USE_MKFS == 1.
                -CTRL_TRIMInforms the device the data on the block of sectors that specified by DWORD array {<start sector>, <end sector>} pointed by buff is no longer needed and it may be erased. This is an identical command to Trim of ATA device. Nothing to do for this command if this funcion is not supported or not a flash memory device. The FatFs does not check the result code and the file function is not affected even if the sector block was not erased well. This command is called on remove a cluster chain and in the f_mkfs function. Required at _USE_TRIM == 1.
                +GET_SECTOR_SIZEReturns sector size of the device into the WORD variable pointed by buff. Valid return values of this command are 512, 1024, 2048 and 4096. This command is required only at variable sector size configuration, _MAX_SS > _MIN_SS. At the fixed sector size configuration, _MAX_SS == _MIN_SS, this command is not used and the device must work at that sector size.
                +GET_BLOCK_SIZEReturns erase block size of the flash memory media in unit of sector into the DWORD variable pointed by buff. The allowable value is from 1 to 32768 in power of 2. Return 1 if the erase block size is unknown or non flash memory media. This command is used by only f_mkfs function and it attempts to align data area on the erase block boundary. Required at _USE_MKFS == 1.
                +CTRL_TRIMInforms the device the data on the block of sectors is no longer needed and it can be erased. The sector block is specified by DWORD array {<start sector>, <end sector>} pointed by buff. This is an identical command to Trim of ATA device. Nothing to do for this command if this funcion is not supported or not a flash memory device. The FatFs does not check the result code and the file function is not affected even if the sector block was not erased well. This command is called on remove a cluster chain and in the f_mkfs function. Required at _USE_TRIM == 1.
                 
                 
                 

                FatFs never uses any device dependent command nor user defined command. Following table shows an example of non-standard commands usable for some applications.

                @@ -69,8 +69,8 @@ DRESULT disk_ioctl ( Example of optional ioctl command CommandDescription CTRL_FORMATCreate a physical format on the media. If buff is not null, it is pointer to the call-back function for progress notification. -CTRL_POWER_IDLEPut the device idle state. STA_NOINIT in status flag may not be set if the device goes active state by generic read/write function. -CTRL_POWER_OFFPut the device off state. Shut-down the power to the device and deinitialize the device interface if needed. STA_NOINIT in status flag must be set. The device goes active state by disk_initialize function. +CTRL_POWER_IDLEPut the device idle state. STA_NOINIT in the current status flags may not be set if the device goes active state by generic read/write function. +CTRL_POWER_OFFPut the device off state. Shut-down the power to the device and deinitialize the device interface if needed. STA_NOINIT in the current status flags must be set. The device goes active state by disk_initialize function. CTRL_LOCKLock media eject mechanism. CTRL_UNLOCKUnlock media eject mechanism. CTRL_EJECTEject media cartridge. STA_NOINIT and STA_NODISK in status flag are set after the function succeeded. diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/dread.html b/firmware/chibios-portapack/ext/fatfs/doc/en/dread.html index 14227de6..b4594c7d 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/dread.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/dread.html @@ -13,7 +13,7 @@

                disk_read

                -

                The disk_read function reads sector(s) from the storage device.

                +

                The disk_read function is called to read data from the sector(s) of storage device.

                 DRESULT disk_read (
                   BYTE pdrv,     /* [IN] Physical drive number */
                @@ -30,7 +30,7 @@ DRESULT disk_read (
                 
                pdrv
                Physical drive number to identify the target device.
                buff
                -
                Pointer to the byte array to store the read data.
                +
                Pointer to the first item of the byte array to store read data.
                sector
                Start sector number in 32-bit LBA.
                count
                @@ -45,7 +45,7 @@ DRESULT disk_read (
                RES_OK (0)
                The function succeeded.
                RES_ERROR
                -
                Any hard error occured during the read operation and could not recover it.
                +
                A hard error occured during the read operation and could not recover it.
                RES_PARERR
                Invalid parameter.
                RES_NOTRDY
                @@ -60,8 +60,8 @@ DRESULT disk_read (

                The memory address specified by buff is not that always aligned to word boundary because the argument is defined as BYTE*. The unaligned read/write request can occure at direct transfer. If the bus architecture, especially DMA controller, does not allow unaligned memory access, it should be solved in this function. There are some workarounds described below to avoid this issue.

                • Convert word transfer to byte transfer in this function if needed. - Recommended.
                • -
                • On the f_read calls, avoid long read request that includes a whole of sector. - Any direct transfer never occures.
                • -
                • On the f_read calls, make sure that (((UINT)data & 3) == (f_tell(fp) & 3)) is true. - Word alignment of buff is guaranteed.
                • +
                • On the f_read() calls, avoid long read request that includes a whole of sector. - Any direct transfer never occures.
                • +
                • On the f_read(fp, data, btw, bw) calls, make sure that (((UINT)data & 3) == (f_tell(fp) & 3)) is true. - Word alignment of buff is guaranteed.

                Generally, a multiple sector transfer request must not be split into single sector transactions to the storage device, or you will not get good read throughput.

                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/dstat.html b/firmware/chibios-portapack/ext/fatfs/doc/en/dstat.html index 07514609..7092da7c 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/dstat.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/dstat.html @@ -13,7 +13,7 @@

                disk_status

                -

                The disk_status function returns the current drive status.

                +

                The disk_status function is called to inquire the current drive status.

                 DSTATUS disk_status (
                   BYTE pdrv     /* [IN] Physical drive number */
                @@ -35,7 +35,7 @@ DSTATUS disk_status (
                 

                The current drive status is returned in combination of status flags described below. FatFs refers only STA_NOINIT and STA_PROTECT.

                STA_NOINIT
                -
                Indicates that the device is not initialized and not ready to work. This flag is set on system reset, media removal or failure of disk_initialize function. It is cleared on disk_initialize function succeeded. Any media change that occurs asynchronously must be captured and reflect it to the status flags, or auto-mount function will not work correctly. If the system does not support media change detection, application program needs to force de-initialize the file system object and re-mount the volume with f_mount function after each media change.
                +
                Indicates that the device is not initialized and not ready to work. This flag is set on system reset, media removal or failure of disk_initialize function. It is cleared on disk_initialize function succeeded. Any media change that occurs asynchronously must be captured and reflect it to the status flags, or auto-mount function will not work correctly. If the system does not support media change detection, application program needs to explicitly re-mount the volume with f_mount function after each media change.
                STA_NODISK
                Indicates that no medium in the drive. This is always cleared at fixed disk drive. Note that FatFs does not refer this flag.
                STA_PROTECT
                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/dwrite.html b/firmware/chibios-portapack/ext/fatfs/doc/en/dwrite.html index 4ee6d09a..a8c5ce8a 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/dwrite.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/dwrite.html @@ -13,7 +13,7 @@

                disk_write

                -

                The disk_write writes sector(s) to the storage device.

                +

                The disk_write function is called to write data to the sector(s) of storage device.

                 DRESULT disk_write (
                   BYTE drv,         /* [IN] Physical drive number */
                @@ -30,7 +30,7 @@ DRESULT disk_write (
                 
                pdrv
                Physical drive number to identify the target device.
                buff
                -
                Pointer to the byte array to be written. The size of data to be written is sector size * count bytes.
                +
                Pointer to the first item of the byte array to be written. The size of data to be written is sector size * count bytes.
                sector
                Start sector number in 32-bit LBA.
                count
                @@ -45,7 +45,7 @@ DRESULT disk_write (
                RES_OK (0)
                The function succeeded.
                RES_ERROR
                -
                Any hard error occured during the write operation and could not recover it.
                +
                A hard error occured during the write operation and could not recover it.
                RES_WRPRT
                The medium is write protected.
                RES_PARERR
                @@ -60,7 +60,7 @@ DRESULT disk_write (

                Description

                The specified memory address is not that always aligned to word boundary because the type of pointer is defined as BYTE*. For more information, refer to the description of disk_read function.

                Generally, a multiple sector transfer request must not be split into single sector transactions to the storage device, or you will never get good write throughput.

                -

                FatFs expects delayed write function of the disk control layer. The write operation to the media does not need to be completed when return from this function by what write operation is in progress or data is only stored into the write-back cache. But write data on the buff is invalid after return from this function. The write completion request is done by CTRL_SYNC command of disk_ioctl function. Therefore, if a delayed write function is implemented, the write throughput will be improved.

                +

                FatFs expects delayed write function of the disk control layer. The write operation to the media does not need to be completed when return from this function by what write operation is in progress or data is only stored into the write-back cache. But write data on the buff is invalid after return from this function. The write completion request is done by CTRL_SYNC command of disk_ioctl function. Therefore, if a delayed write function is implemented, the write throughput of the file system will be improved.

                Remarks: Application program MUST NOT call this function, or FAT structure on the volume can be collapsed.

                diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/expand.html b/firmware/chibios-portapack/ext/fatfs/doc/en/expand.html index 434580cf..8e40d3ca 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/expand.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/expand.html @@ -59,9 +59,9 @@ FRESULT f_expand (
              • The file has been opened in read-only mode.
              • Not allowable file size. (>= 4GiB on FAT volume)
              -

              When opt is 0, the function finds a contiguous data area and set it as suggested point for next allocation instead of allocating it to the file. The next cluster allocation is started at top of the contiguous area found by this function. Thus the write file is guaranteed be contiguous and no allocation delay until the size reaches that size at least unless any other operation to the volume with changes of FAT is performed.

              -

              The contiguous file would have an advantage at time-critical read/write operations. It reduces some overheads in the file system and the storage media caused by random access due to fragmented file data. Especially, at the exFAT volume, any FAT access for the contiguous file is completely eliminated and storage media will be accessed sequentially.

              -

              Also the contiguous file data can be easily accessed directly via low-level disk functions but it is not recommended in consideration for future compatibility.

              +

              When opt is 0, the function finds a contiguous data area and set it as suggested point for next allocation instead of allocating it to the file. The next cluster allocation is started at top of the contiguous area found by this function. Thus the write file is guaranteed be contiguous and no allocation delay until the size reaches that size at least unless any other changes to the volume is performed.

              +

              The contiguous file would have an advantage at time-critical read/write operations. It eliminates some overheads in the file system and the storage media caused by random access due to fragmented file data. Especially FAT access for the contiguous file on the exFAT volume is completely eliminated and storage media will be accessed sequentially.

              +

              Also the contiguous file can be easily accessed directly via low-level disk functions. But this is not recommended in consideration for future compatibility.

            @@ -79,28 +79,29 @@ FRESULT f_expand ( res = f_open(fp = malloc(sizeof (FIL)), "file.dat", FA_WRITE|FA_CREATE_ALWAYS); if (res) { /* Check if the file has been opened */ free(fp); - ... + die("Failed to open the file."); } /* Alloacte a 100 MiB of contiguous area to the file */ res = f_expand(fp, 104857600, 1); if (res) { /* Check if the file has been expanded */ - ... + f_close(fp); free(fp); - ... + die("Failed to allocate contiguous area."); } + /* Now you have a contiguous file accessible with fp */
            -    /* Accessing the file data directly via low-level disk functions */
            +    /* Accessing the contiguous file via low-level disk functions */
             
                 /* Get physical location of the file data */
                 drv = fp->obj.fs->drv;
            -    sect = fp->obj.fs->database + fp->obj.fs->csize * (fp->obj.sclust - 2);
            +    lba = fp->obj.fs->database + fp->obj.fs->csize * (fp->obj.sclust - 2);
             
                 /* Write 2048 sectors from top of the file at a time */
            -    res = disk_write(drv, buffer, sect, 2048);
            +    res = disk_write(drv, buffer, lba, 2048);
             
             
            diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/fattime.html b/firmware/chibios-portapack/ext/fatfs/doc/en/fattime.html index e4ff768b..f2d8982c 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/fattime.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/fattime.html @@ -13,7 +13,7 @@

            get_fattime

            -

            The get_fattime function gets current time.

            +

            The get_fattime function is called to get the current time.

             DWORD get_fattime (void);
             
            @@ -22,7 +22,7 @@ DWORD get_fattime (void);

            Return Value

            -

            Currnet local time is returned with packed into a DWORD value. The bit field is as follows:

            +

            Currnet local time shall be returned as bit-fields packed into a DWORD value. The bit fields are as follows:

            bit31:25
            Year origin from the 1980 (0..127)
            diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/fdisk.html b/firmware/chibios-portapack/ext/fatfs/doc/en/fdisk.html index 6581d87c..e86ec6c7 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/fdisk.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/fdisk.html @@ -62,22 +62,21 @@ FRESULT f_fdisk ( /* Volume management table defined by user (required when _MULTI_PARTITION == 1) */ PARTITION VolToPart[] = { - {0, 1}, /* Logical drive 0 ==> Physical drive 0, 1st partition */ - {0, 2}, /* Logical drive 1 ==> Physical drive 0, 2nd partition */ - {1, 0} /* Logical drive 2 ==> Physical drive 1, auto detection */ + {0, 1}, /* "0:" ==> Physical drive 0, 1st partition */ + {0, 2}, /* "1:" ==> Physical drive 0, 2nd partition */ + {1, 0} /* "2:" ==> Physical drive 1, auto detection */ };
                 /* Initialize a brand-new disk drive mapped to physical drive 0 */
             
            -    FATFS fs;
                 DWORD plist[] = {50, 50, 0, 0};  /* Divide drive into two partitions */
                 BYTE work[_MAX_SS];
             
            -    f_fdisk(0, plist, work);                     /* Divide physical drive 0 */
            +    f_fdisk(0, plist, work);                    /* Divide physical drive 0 */
             
            -    f_mkfs("0:", FMT_ANY, work, sizeof work);    /* Create FAT volume on the logical drive 0 */
            -    f_mkfs("1:", FMT_ANY, work, sizeof work);    /* Create FAT volume on the logical drive 1 */
            +    f_mkfs("0:", FM_ANY, work, sizeof work);    /* Create FAT volume on the logical drive 0 */
            +    f_mkfs("1:", FM_ANY, work, sizeof work);    /* Create FAT volume on the logical drive 1 */
             
             
            diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/filename.html b/firmware/chibios-portapack/ext/fatfs/doc/en/filename.html index 23e6c49c..25dc86cd 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/filename.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/filename.html @@ -10,7 +10,7 @@ -

            Path Names

            +

            Path Names on the FatFs

            Format of the path names

            @@ -19,7 +19,7 @@

            The FatFs module supports long file name (LFN) and 8.3 format file name (SFN). The LFN can be used when (_USE_LFN != 0). The sub directories are separated with a \ or / in the same way as DOS/Windows API. Duplicated separators are skipped and ignored. Only a difference is that the logical drive is specified in a numeral with a colon. When drive number is omitted, the drive number is assumed as default drive (drive 0 or current drive).

            Control characters ('\0' to '\x1F') are recognized as end of the path name. Leading/embedded spaces in the path name are valid as a part of the name at LFN configuration but the space is recognized as end of the path name at non-LFN configuration. Trailing spaces and dots are ignored at both configurations.

            In default configuration (_FS_RPATH == 0), it does not have a concept of current directory like OS oriented file system. All objects on the volume are always specified in full path name that follows from the root directory. Dot directory names (".", "..") are not allowed. Heading separator is ignored and it can be exist or omitted. The default drive is fixed to drive 0.

            -

            When relative path is enabled (_FS_RPATH >= 1), specified path is followed from the root directory if a heading separator is exist. If not, it is followed from the current directory of the drive set by f_chdir function. Dot names are also allowed for the path names. The default drive is the current drive set by f_chdrive function.

            +

            When relative path is enabled (_FS_RPATH >= 1), specified path is followed from the root directory if a heading separator is exist. If not, it is followed from the current directory of the drive set by f_chdir function. Dot names are also allowed for the path names. The default drive is the current drive set by f_chdrive function.

            @@ -36,12 +36,12 @@
            Path name_FS_RPATH == 0_FS_RPATH >= 1
            file.txtA file in the root directory of the drive 0A file in the current directory of the current drive
            /..Invalid nameThe root directory (sticks the top level)

            When option _STR_VOLUME_ID is specified, also pre-defined strings can be used as drive identifier in the path name instead of a numeral. e.g. "sd:file1.txt", "ram:swapfile.dat" and DOS/Windows style drive letter, of course.

            -

            Remark: In this revision, R0.12, double dot name ".." cannot follow the parent directory on the exFAT volume. It will work as "." and stay there.

            +

            Remark: In this revision, double dot name ".." cannot follow the parent directory on the exFAT volume. It will work as "." and stay there.

            Legal Characters and Case Sensitivity

            -

            On the FAT file system, legal characters for file name are, 0-9 A-Z ! # $ % & ' ( ) - @ ^ _ ` { } ~ and extended characters (\x80-\xFF). Under LFN supported system, also white space and + , ; = [ ] are legal for the file name and the white spaces and periods can be placed anywhere in the name except for end of the name string.

            +

            On the FAT file system, legal characters for object name (file/directory name) are, 0-9 A-Z ! # $ % & ' ( ) - @ ^ _ ` { } ~ and extended characters (\x80-\xFF). Under LFN supported system, also + , ; = [ ] and space are legal for the object name and the white spaces and periods can be placed anywhere in the path name except for end of the object name.

            FAT file system is case-insensitive to the object names on the volume. All object names are compared in case-insensitive. For example, these three names, file.txt, File.Txt and FILE.TXT, are identical. This is applied to also extended charactres. When an object is created on the FAT volume, upper converted name is recorded to the SFN entry, and the raw name is recorded to the LFN entry.

            As for the DBCS language MS-DOS, it was case-sensitive to the extended characters. To follow this specification, FatFs works with case-sensitive to the extended characters at only non-LFN with DBCS configuration (DOS/DBCS specs). But at LFN configuration, FatFs works with case-insensitive to all characters (WindowsNT specs). This can cause a problem on compatibility with Windows system when an object with extended characters is created on the volume at non-LFN and DBCS configuration; therfore the object names with DBCS extended characters should not be used on the FAT volume shared by those systems.

            diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/findfirst.html b/firmware/chibios-portapack/ext/fatfs/doc/en/findfirst.html index 5b4b1fbc..970055df 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/findfirst.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/findfirst.html @@ -61,11 +61,11 @@ FRESULT f_findfirst (

            Description

            -

            After the directory specified by path could be opened, it starts to search the directory for the items with a name specified by pattern. If found, the information about the object is stored into the file information structure. For more information about file information structure, refer to f_readdir function.

            +

            After the directory specified by path could be opened, it starts to search the directory for items with the name specified by pattern. If the first item is found, the information about the object is stored into the file information structure. For more information about file information structure, refer to f_readdir function.

            The matching pattern can contain wildcard characters (? and *). A ? matches an any character and an * matches an any string in length of zero or longer. When support of long file name is enabled, only fname[] is tested at _USE_FIND == 1 and also altname[] is tested at _USE_FIND == 2. In this revision, there are some differences listed below between FatFs and standard systems in matching condition.

              -
            • "*.*" never matches any name without extension while it matches any names at the standard systems.
            • -
            • Any patterns terminated with a period never matches any name while it matches any names without extensiton at the standard systems.
            • +
            • "*.*" never matches any name without extension while it matches any name with or without extension at the standard systems.
            • +
            • Any pattern terminated with a period never matches any name while it matches any name without extensiton at the standard systems.
            • DBCS extended characters are compared in case-sensitive at LFN with non-Unicode configuration.
            @@ -82,7 +82,7 @@ FRESULT f_findfirst (
             /* Search a directory for objects and display it */
             
            -void find_image (void)
            +void find_image_file (void)
             {
                 FRESULT fr;     /* Return value */
                 DIR dj;         /* Directory search object */
            @@ -94,6 +94,7 @@ void find_image (void)
                     printf("%s\n", fno.fname);                /* Display the object name */
                     fr = f_findnext(&dj, &fno);               /* Search for next item */
                 }
            +
                 f_closedir(&dj);
             }
             
            diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/forward.html b/firmware/chibios-portapack/ext/fatfs/doc/en/forward.html index eddb051f..b16a0758 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/forward.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/forward.html @@ -46,6 +46,7 @@ FRESULT f_forward ( FR_DISK_ERR, FR_INT_ERR, FR_INVALID_OBJECT, +FR_DENIED, FR_TIMEOUT

            @@ -114,7 +115,7 @@ FRESULT play_file ( /* Repeat until the file pointer reaches end of the file */ while (rc == FR_OK && !f_eof(&fil)) { - /* any other processes... */ + /* some processes... */ /* Fill output stream periodicaly or on-demand */ rc = f_forward(&fil, out_stream, 1000, &dmy); diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/getcwd.html b/firmware/chibios-portapack/ext/fatfs/doc/en/getcwd.html index c30aa650..52a7f3f8 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/getcwd.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/getcwd.html @@ -51,7 +51,7 @@ FRESULT f_getcwd (

            Description

            The f_getcwd function retrieves full path name of the current directory of the current drive. When _VOLUMES is larger than 1, a logical drive number is added to top of the path name.

            -

            Note: In this revision, R0.12, this function cannot retrieve the current directory path on the exFAT volume. It always returns the root directory path.

            +

            Note: In this revision, this function cannot retrieve the current directory path on the exFAT volume. It always returns the root directory path.

            diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/lseek.html b/firmware/chibios-portapack/ext/fatfs/doc/en/lseek.html index cf4f47e5..f631979a 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/lseek.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/lseek.html @@ -29,7 +29,7 @@ FRESULT f_lseek (
            fp
            Pointer to the open file object.
            ofs
            -
            Byte offset from top of the file. The data type FSIZE_t is an alias of either DWORD(32-bit) or QWORD(64-bit) depends on the configuration option _FS_EXFAT.
            +
            Byte offset from top of the file to set read/write pointer. The data type FSIZE_t is an alias of either DWORD(32-bit) or QWORD(64-bit) depends on the configuration option _FS_EXFAT.
          @@ -48,7 +48,8 @@ FRESULT f_lseek (

          Description

          -

          The f_lseek function moves the file read/write pointer of an open file. The offset can be specified in only origin from top of the file. When an offset beyond the file size is specified at write mode, the file size is expanded to the specified offset. The file data in the expanded area is undefined because no data is written to the file in this process. This is suitable to pre-allocate a cluster chain quickly, for fast write operation. When a contiguous data area needs to be allocated to the file, use f_expand function instead. After the f_lseek function succeeded, the current read/write pointer should be checked in order to make sure the read/write pointer has been moved correctry. In case of the read/write pointer is not the expected value, either of followings has been occured.

          +

          File read/write ponter in the open file object points the data byte to be read/written at next read/write operation. It advances as the number of bytes read/written. The f_lseek function moves the file read/write pointer without any read/write operation to the file.

          +

          When an offset beyond the file size is specified at write mode, the file size is expanded to the specified offset. The file data in the expanded area is undefined because no data is written to the file in this process. This is suitable to pre-allocate a data area to the file quickly for fast write operation. When a contiguous data area needs to be allocated to the file, use f_expand function instead. After the f_lseek function succeeded, the current read/write pointer should be checked in order to make sure the read/write pointer has been moved correctry. In case of the read/write pointer is not the expected value, either of followings has been occured.

          • End of file. The specified ofs was clipped at end of the file because the file has been opened in read-only mode.
          • Disk full. There is no free space on the volume to expand the file.
          • diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/mkdir.html b/firmware/chibios-portapack/ext/fatfs/doc/en/mkdir.html index 970627c9..7417eacc 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/mkdir.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/mkdir.html @@ -39,7 +39,7 @@ FRESULT f_mkdir ( FR_NOT_READY, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, +FR_DENIED, FR_EXIST, FR_WRITE_PROTECTED, FR_INVALID_DRIVE, diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/mkfs.html b/firmware/chibios-portapack/ext/fatfs/doc/en/mkfs.html index 52f5c3cb..aba07b9e 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/mkfs.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/mkfs.html @@ -29,15 +29,15 @@ FRESULT f_mkfs (

            Parameters

            path
            -
            Pointer to the null-terminated string specifies the logical drive to be formatted. If there is no drive number in it, it means the default drive. The logical drive does not need to be mounted.
            +
            Pointer to the null-terminated string specifies the logical drive to be formatted. If it has no drive number in it, it means the default drive. The logical drive may or may not be mounted for the format process.
            opt
            Specifies the format option in combination of FM_FAT, FM_FAT32, FM_EXFAT and bitwise-or of these three, FM_ANY. FM_EXFAT is ignored when exFAT is not enabled. These flags specify which FAT type to be created on the volume. If two or more types are specified, one out of them will be selected depends on the volume size. The flag FM_SFD specifies to place the volume on the drive in SFD format.
            au
            -
            Specifies size of the allocation unit (cluter) in unit of byte. The valid value is N times the sector size. N is power of 2 from 1 to 128 for FAT volume and upto 16MiB for exFAT volume. If zero is given, the default allocation unit size is selected depends on the volume size.
            +
            Specifies size of the allocation unit (cluter) in unit of byte. The valid value is n times the sector size. The n is power of 2 from 1 to 128 for FAT volume and upto 16MiB for exFAT volume. If zero is given, the default allocation unit size is selected depends on the volume size.
            work
            -
            Pointer to the working buffer for the format process.
            +
            Pointer to the working buffer used for the format process.
            len
            -
            Size of the working buffer in unit of byte. It needs to be the sector size at least. Plenty of working buffer reduces number of write transaction to the device and the format process will be finished quickly.
            +
            Size of the working buffer in unit of byte. It needs to be the sector size at least. Plenty of working buffer reduces number of write transactions to the drive and the format process will be finished quickly.
          @@ -57,9 +57,9 @@ FRESULT f_mkfs (

          Description

          The FAT sub-type, FAT12/FAT16/FAT32, of FAT volume except exFAT is determined by only number of clusters on the volume and nothing else, according to the FAT specification issued by Microsoft. Thus which FAT sub-type is selected, is depends on the volume size and the specified cluster size. In case of the combination of FAT type and cluter size specified by argument cannot be valid on the volume, the function will fail with FR_MKFS_ABORTED.

          -

          The allocation unit, also called 'cluster', is a unit of disk space allocation for files. When the size of allocation unit is 32768 bytes, a file with 100 bytes in size occupies 32768 bytes of disk space. The space efficiency of disk usage gets worse as increasing size of allocation unit, but, on the other hand, the read/write performance increases as the size of allocation unit. Therefore the allocation unit is a trade-off between space efficiency and performance. For the large storages in GB order, 32768 bytes or larger cluster (this is automatically selected by default) is recommended for most case unless extremely many files are created on a volume.

          +

          The allocation unit, also called 'cluster', is a unit of disk space allocation for files. When the size of allocation unit is 32768 bytes, a file with 100 bytes in size occupies 32768 bytes of disk space. The space efficiency of disk usage gets worse as increasing size of allocation unit, but, on the other hand, the read/write performance increases as the size of allocation unit. Therefore the size of allocation unit is a trade-off between space efficiency and performance. For the large storages in GB order, 32768 bytes or larger cluster (this is automatically selected by default) is recommended for most case unless extremely many small files are created on a volume.

          There are two disk formats, FDISK and SFD. The FDISK format is usually used for harddisk, MMC, SDC, CFC and U Disk. It can divide a physical drive into one or more partitions with a partition table on the MBR (maser boot record, the first sector of the physical drive). The SFD (super-floppy disk) is non-partitioned disk format. The FAT volume starts at the first sector of the physical drive without any disk partitioning. It is usually used for floppy disk, Microdrive, optical disk and most type of super-floppy media. Some systems support only either one of two formats and other is not supported.

          -

          When FM_SFD is not specified, a primary partition occupies whole drive space is created and then the FAT volume is created in it. When FM_SFD is specified, the FAT volume occupies from the first sector of the drive is created.

          +

          When FM_SFD is not specified (the volume is bound to a physical drive), a primary partition occupies whole drive space is created and then the FAT volume is created in it. When FM_SFD is specified, the FAT volume occupies from the first sector of the drive is created.

          If the logical drive to be formatted is bound to the specific partition (1-4) by support of multiple partition, _MULTI_PARTITION, the FAT volume is created into the partition and FM_SFD flag is ignored. The physical drive needs to be partitioned with f_fdisk function or any other partitioning tools prior to create the FAT volume with this function.

          @@ -78,7 +78,7 @@ int main (void) FIL fil; /* File object */ FRESULT res; /* API result code */ UINT bw; /* Bytes written */ - BYTE work[_MAX_SS]; /* Work area (larger is better for process time) */ + BYTE work[_MAX_SS]; /* Work area (larger is better for processing time) */ /* Create FAT volume */ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/mount.html b/firmware/chibios-portapack/ext/fatfs/doc/en/mount.html index f7176327..0999b9c0 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/mount.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/mount.html @@ -31,7 +31,7 @@ FRESULT f_mount (
          path
          Pointer to the null-terminated string that specifies the logical drive. The string without drive number means the default drive.
          opt
          -
          Initialization option. 0: Do not mount now (to be mounted later), 1: Force mounted the volume to check if the volume is ready to work.
          +
          Mounting option. 0: Do not mount now (to be mounted on the first access to the volume), 1: Force mounted the volume to check if it is ready to work.
        @@ -54,15 +54,15 @@ FRESULT f_mount (
      • Determines the logical drive which specified by path.
      • Clears and unregisters the regsitered work area of the drive if exist.
      • Clears and registers the new work area to the drive if fs is not NULL.
      • -
      • Performs volume mount process to the drive if forced mount is specified.
      • +
      • Performs volume mount process to the drive if forced mounting is specified.
      • -

        The file system object is the work area needed for each logical drive. It must be given to the logical drive with this function prior to use any other file functions except for f_fdisk function to the logical drive. To unregister the work area, specify a NULL to the fs, and then the work area can be discarded.

        -

        If forced mounting is not specified, this function always succeeds regardless of the physical drive status due to delayed mount feature. It only clears (de-initializes) the given work area and registers its address to the internal table. There is no activity of the physical drive in this function. It can also be used to force de-initialized the registered work area of a logical drive. The volume mount processes, initialize the corresponding physical drive, find the FAT volume in it and initialize the work area, is performed in the subsequent file access functions when either or both of following condition is true.

        +

        The file system object is the work area needed for each logical drive. It must be given to the logical drive with this function prior to use any API functions except for f_mkfs/f_fdisk function to the logical drive.

        +

        If forced mounting is not specified (opt = 0), this function always succeeds regardless of the physical drive status. It only clears (de-initializes) the given work area and registers its address to the internal table and no activity of the physical drive in this function. To unregister the work area, specify a NULL to the fs, and then the work area can be discarded. The volume mount processes, initialize the corresponding physical drive, find the FAT volume in it and initialize the work area, is performed in the subsequent file access functions when either or both of following condition is true.

          -
        • File system object is not initialized. It is de-initialized by f_mount function.
        • +
        • File system object has not been initialized. It is de-initialized by f_mount function.
        • Physical drive is not initialized. It is de-initialized by system reset or media removal.
        -

        If the function with forced mounting failed, it means that the file system object has been registered successfully but the volume is currently not ready to work. The volume mount process will also be attempted at subsequent file access functions.

        +

        If the function with forced mounting (opt = 1) failed, it means that the file system object has been registered successfully but the volume is currently not ready to work. The volume mount process will be attempted at subsequent file access functions if the file system object is not initialized. (delayed mounting)

        If implementation of the disk I/O layer lacks media change detection, application program needs to perform a f_mount function after each media change to force cleared the file system object.

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/open.html b/firmware/chibios-portapack/ext/fatfs/doc/en/open.html index 475b5944..de218e12 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/open.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/open.html @@ -40,7 +40,7 @@ FRESULT f_open ( FA_CREATE_NEWCreates a new file. The function fails with FR_EXIST if the file is existing. FA_CREATE_ALWAYSCreates a new file. If the file is existing, it will be truncated and overwritten. FA_OPEN_ALWAYSOpens the file if it is existing. If not, a new file will be created. -FA_OPEN_APPENDSame as FA_OPEN_ALWAYS except read/write pointer is set end of the file. +FA_OPEN_APPENDSame as FA_OPEN_ALWAYS except the read/write pointer is set end of the file. @@ -57,7 +57,7 @@ FRESULT f_open ( FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, +FR_DENIED, FR_EXIST, FR_INVALID_OBJECT, FR_WRITE_PROTECTED, @@ -74,7 +74,7 @@ FRESULT f_open (

    Description

    -

    Before using any file function, a work area (file system object) must be registered to the logical drive with f_mount function. All API functions except for f_mkfs and f_fdisk function can work after this procedure.

    +

    Before using any file function, a work area (file system object) needs to be registered to the logical drive with f_mount function. All API functions except for f_mkfs/f_fdisk function get ready to work after this procedure.

    After f_open function succeeded, the file object is valid. The file object is used for subsequent operations to the file to identify the file. Open file must be closed prior to power down, media removal or re-mount, or the file can be collapsed. To close an open file, use f_close function.

    If duplicated file open is needed, read here carefully. However duplicated open of a file with any write mode flag is always prohibited.

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/printf.html b/firmware/chibios-portapack/ext/fatfs/doc/en/printf.html index 7d917510..f6030528 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/printf.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/printf.html @@ -39,7 +39,7 @@ int f_printf (

    Return Values

    -

    When the function succeeded, it returns number of characters written. When the function failed due to disk full or any error, an EOF (-1) will be returned.

    +

    When the function succeeded, it returns number of characters written. If the function could not write the generated string to the file due to disk full or an error, EOF (-1) will be returned.

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/rc.html b/firmware/chibios-portapack/ext/fatfs/doc/en/rc.html index ecf2fd47..89e650d3 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/rc.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/rc.html @@ -6,12 +6,12 @@ -FatFs - Return Codes +FatFs - API Return Code -

    Return Code of the File Functions

    -

    On the FatFs API, most of file functions return common result code as enum type FRESULT. When a function succeeded, it returns zero, otherwise returns non-zero value that indicates type of error.

    +

    Return Code of API Functions

    +

    Most of API functions return common result code as enum type FRESULT. When an API function succeeded, it returns zero (FR_OK), otherwise it returns non-zero value indicates type of error.

    @@ -19,19 +19,27 @@
    The function succeeded.
    FR_DISK_ERR
    -
    An unrecoverable hard error occured in the lower layer, disk_read, disk_write or disk_ioctl function.
    Note that if once this error occured at any operation to an open file, the file object is aborted and all operations to the file except for close will be rejected.
    +
    The lower layer, disk_read, disk_write or disk_ioctl function, reported that an unrecoverable hard error occured.
    Note that if once this error occured at any operation to an open file, the file object is aborted and all operations to the file except for close will be rejected.
    FR_INT_ERR
    Assertion failed. An insanity is detected in the internal process. One of the following possibilities is suspected.
    • Work area (file system object, file object or etc...) has been broken by stack overflow or any other tasks. This is the reason in most case.
    • -
    • There is any error of the FAT structure on the volume.
    • +
    • There is an error of the FAT structure on the volume.
    • +
    • There is a bug in the FatFs module itself.
    Note that if once this error occured at any operation to an open file, the file object is aborted and all operations to the file except for close will be rejected.
    FR_NOT_READY
    -
    The storage device cannot work due to a failure of disk_initialize function due to no medium or any other reason.
    +
    The lower layer, disk_initialize function, reported that the storage device could not be got ready to work. One of the following possibilities is suspected. +
      +
    • No medium in the drive.
    • +
    • Wrong lower layer implementation for the storage device.
    • +
    • Wrong hardware configuration.
    • +
    • The storage device is broken.
    • +
    +
    FR_NO_FILE
    Could not find the file.
    @@ -50,25 +58,25 @@ Note that if once this error occured at any operation to an open file, the file
  • Deleting the non-empty directory or current directory.
  • Reading the file opened without FA_READ flag.
  • Any modification to the file opened without FA_WRITE flag.
  • -
  • Could not create the file or directory due to the directory table is full.
  • +
  • Could not create the object due to root directory full or disk full.
  • Could not allocate a contiguous area to the file.
FR_EXIST
-
Name collision. Any object that has the same name is already existing.
+
Name collision. An object with the same name is already existing.
FR_INVALID_OBJECT
The file/directory object is invalid or a null pointer is given. There are some reasons as follows:
    -
  • It has been closed, it is not opened or it can be collapsed.
  • -
  • It has been invalidated by a voulme mount process. All open objects of the volume are invalidated as well.
  • -
  • The corresponding physical drive is not ready due to a media removal.
  • +
  • It has been closed, it has not been opened or it has been collapsed.
  • +
  • It has been invalidated by a voulme mount process. Open objects on the volume are invalidated by voulme mount process.
  • +
  • Physical drive is not ready to work due to a media removal.
FR_WRITE_PROTECTED
-
Any write mode operation against the write-protected media.
+
A write mode operation against the write-protected media.
FR_INVALID_DRIVE
Invalid drive number is specified in the path name. A null pointer is given as the path name. (Related option: _VOLUMES)
@@ -107,7 +115,7 @@ Note that if once this error occured at any operation to an open file, the file
Number of open objects has been reached maximum value and no more object can be opened. (Related option: _FS_LOCK)
FR_INVALID_PARAMETER
-
The given parameter is invalid or there is any inconsistent.
+
The given parameter is invalid or there is an inconsistent for the volume.

Return

diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/read.html b/firmware/chibios-portapack/ext/fatfs/doc/en/read.html index ccd4b85c..3751b7d4 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/read.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/read.html @@ -45,6 +45,7 @@ FRESULT f_read ( FR_OK, FR_DISK_ERR, FR_INT_ERR, +FR_DENIED, FR_INVALID_OBJECT, FR_TIMEOUT

@@ -53,7 +54,7 @@ FRESULT f_read (

Description

-

The function starts to read data from the file at the position pointed by the read/write pointer. The read/write pointer advances as number of bytes read. After the function succeeded, *br should be checked to detect end of the file. In case of *br is less than btr, it means the read/write pointer reached end of the file during read operation.

+

The function starts to read data from the file at the position pointed by the read/write pointer. The read/write pointer advances as number of bytes read. After the function succeeded, *br should be checked to detect end of the file. In case of *br < btr, it means the read/write pointer reached end of the file during read operation.

diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/readdir.html b/firmware/chibios-portapack/ext/fatfs/doc/en/readdir.html index 235beee7..6d79bd8e 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/readdir.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/readdir.html @@ -55,7 +55,7 @@ FRESULT f_readdir (
  • Setting of _MAX_LFN is insufficient for the long file name. (Not the case at _MAX_LFN == 255)
  • The long file name contains any character not allowed in ANSI/OEM code. (Not the case at _LFN_UNICODE == 1)
  • -

    There is a problem on reading a directory of exFAT volume. The exFAT does not support short file name. This means no name can be returned on the condition above. If it is the case, a "?" is returned as file name to indicate that the object is not accessible. To avoid this problem, configure FatFs _LFN_UNICODE = 1 and _MAX_LFN = 255 to support the full feature of LFN specification.

    +

    There is a problem on reading a directory of exFAT volume. The exFAT does not support short file name. This means no name can be returned on the condition above. If it is the case, "?" is returned into the fname[] to indicate that the object is not accessible. To avoid this problem, configure FatFs _LFN_UNICODE = 1 and _MAX_LFN = 255 to support the full feature of LFN specification.

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/rename.html b/firmware/chibios-portapack/ext/fatfs/doc/en/rename.html index 47cca44f..efe6f269 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/rename.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/rename.html @@ -13,7 +13,7 @@

    f_rename

    -

    Renames a file or sub-directory.

    +

    The f_rename function renames and/or moves a file or sub-directory.

     FRESULT f_rename (
       const TCHAR* old_name, /* [IN] Old object name */
    @@ -28,7 +28,7 @@ FRESULT f_rename (
     
    old_name
    Pointer to a null-terminated string that specifies the existing file or sub-directory to be renamed.
    new_name
    -
    Pointer to a null-terminated string that specifies the new object name. Any drive number may be specified in this string but it is ignored and assumed as the same drive of the old_name.
    +
    Pointer to a null-terminated string that specifies the new object name. A drive number may be specified in this string but it is ignored and assumed as the same drive of the old_name. Any object with this path name except old_name must not be exist, or the function fails with FR_EXIST.
    @@ -43,7 +43,6 @@ FRESULT f_rename ( FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, FR_EXIST, FR_WRITE_PROTECTED, FR_INVALID_DRIVE, @@ -58,7 +57,7 @@ FRESULT f_rename (

    Description

    -

    Renames a file or sub-directory and can also move it to other directory in the same logical drive. The object to be renamed must not be an open object, or the FAT volume can be collapsed. Such the wrong operation can be rejected safely when file lock feature is enabled.

    +

    Renames a file or sub-directory and can also move it to other directory in the same volume. The object to be renamed must not be an open object, or the FAT volume can be collapsed. Such the wrong operation is rejected safely when file lock function is enabled.

    @@ -77,7 +76,7 @@ FRESULT f_rename ( /* Rename an object in the drive 2 */ f_rename("2:oldname.txt", "newname.txt"); - /* Rename an object and move it to other directory */ + /* Rename an object and move it to other directory in the volume */ f_rename("log.txt", "old/log0001.txt"); diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/sdir.html b/firmware/chibios-portapack/ext/fatfs/doc/en/sdir.html index a01a7166..7fff827f 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/sdir.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/sdir.html @@ -13,7 +13,7 @@

    DIR

    -

    The DIR structure is used for the work area to read a directory by f_oepndir, f_readdir, f_findfirst and f_findnext function. Application program must not modify any member in this structure, or any data on the FAT volume can be collapsed.

    +

    The DIR structure is used for the work area to read a directory by f_oepndir, f_readdir, f_findfirst and f_findnext function. Application program must not modify any member in this structure, or any file on the volume can be collapsed.

     typedef struct {
         _FDID   obj;        /* Owner file sytem object and object identifier */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/sfatfs.html b/firmware/chibios-portapack/ext/fatfs/doc/en/sfatfs.html
    index e701f441..75a31536 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/en/sfatfs.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/sfatfs.html
    @@ -13,7 +13,7 @@
     
     

    FATFS

    -

    The FATFS structure (file system object) holds dynamic work area of individual logical drives. It is given by application program and registerd/unregisterd to the FatFs module with f_mount function. Initialization is done on first API call after f_mount function or media change. Application program must not modify any member in this structure, or any data on the FAT volume can be collapsed.

    +

    The FATFS structure (file system object) holds dynamic work area of individual logical drives. It is given by application program and registerd/unregisterd to the FatFs module with f_mount function. Initialization of the structure is done by volume mount process whenever necessary. Application program must not modify any member in this structure, or the FAT volume can be collapsed.

     typedef struct {
         BYTE    fs_type;      /* File system type (0, FS_FAT12, FS_FAT16, FS_FAT32 or FS_EXFAT) */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/sfileinfo.html b/firmware/chibios-portapack/ext/fatfs/doc/en/sfileinfo.html
    index 268b8c14..856f739d 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/en/sfileinfo.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/sfileinfo.html
    @@ -13,7 +13,7 @@
     
     

    FILINFO

    -

    The FILINFO structure holds information about the object returned by f_readdir, f_findfirst, f_findnext and f_stat function.

    +

    The FILINFO structure holds information about the object returned by f_readdir, f_findfirst, f_findnext and f_stat function. Be careful in the size of structure when LFN is enabled.

     typedef struct {
         FSIZE_t fsize;               /* File size */
    @@ -33,7 +33,7 @@
     

    Members

    fsize
    -
    Indicates size of the file in unit of byte. Always zero for directories. FSIZE_t is an alias of integer type either DWORD(32-bit) or QWORD(64-bit) depends on the configuration option _FS_EXFAT.
    +
    Indicates size of the file in unit of byte. FSIZE_t is an alias of integer type either DWORD(32-bit) or QWORD(64-bit) depends on the configuration option _FS_EXFAT. Do not care when the item is a directory.
    fdate
    Indicates the date when the file was modified or the directory was created.
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/unlink.html b/firmware/chibios-portapack/ext/fatfs/doc/en/unlink.html index 4cd1f660..7d643576 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/unlink.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/unlink.html @@ -40,7 +40,7 @@ FRESULT f_unlink ( FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, +FR_DENIED, FR_EXIST, FR_WRITE_PROTECTED, FR_INVALID_DRIVE, diff --git a/firmware/chibios-portapack/ext/fatfs/doc/en/write.html b/firmware/chibios-portapack/ext/fatfs/doc/en/write.html index 644dd6df..a29f56fd 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/en/write.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/en/write.html @@ -45,6 +45,7 @@ FRESULT f_write ( FR_OK, FR_DISK_ERR, FR_INT_ERR, +FR_DENIED, FR_INVALID_OBJECT, FR_TIMEOUT

    @@ -53,7 +54,7 @@ FRESULT f_write (

    Description

    -

    The function starts to write data to the file at the position pointed by the read/write pointer. The read/write pointer advances as number of bytes written. After the function succeeded, *bw should be checked to detect the disk full. In case of *bw is less than btw, it means the volume got full during the write operation. The function can take a time when the volume is full or close to full.

    +

    The function starts to write data to the file at the position pointed by the read/write pointer. The read/write pointer advances as number of bytes written. After the function succeeded, *bw should be checked to detect the disk full. In case of *bw < btw, it means the volume got full during the write operation. The function can take a time when the volume is full or close to full.

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/appnote.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/appnote.html index b716ebd3..d176bd70 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/appnote.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/appnote.html @@ -47,7 +47,7 @@ FatFsモジュールはANSI C(C89)準拠で記述されているので、普通

    functional diagram

    ユーザの作成する関数

    -

    ポーティング作業は、要求されるデバイス制御関数を用意することが全てで、それ以外にすることは何もありません。既に動作しているデバイス制御モジュールがあるなら、そのAPIをFatFsに合わせるかグルー関数を介してつなぐだけで済みますが、無い場合はほかから移植するか最初から書くかする必要があります。定義されている全ての関数が常に必要なわけではありません。例えば、リード オンリ構成では書き込み系関数は必要ありません。次の表に構成オプションと要求される関数の対応を示します。

    +

    ポーティング作業は、要求されるデバイス制御関数を用意することが全てで、それ以外にすることは何もありません。既に動作しているデバイス制御モジュールがあるなら、そのインターフェースをFatFsに合わせるかグルー関数を介してつなぐだけで済みますが、無い場合はほかから移植するか最初から書くかする必要があります。定義されている全ての関数が常に必要なわけではありません。例えば、リード オンリ構成では書き込み系関数は必要ありません。次の表に構成オプションと要求される関数の対応を示します。

    @@ -64,7 +64,7 @@ FatFsモジュールはANSI C(C89)準拠で記述されているので、普通

    限界値

      -
    • ファイルシステム: FAT12, FAT16, FAT32(r0.0) および exFAT(r1.0)。
    • +
    • ファイルシステム: FAT, FAT32(r0.0) および exFAT(r1.0)。
    • 同時オープン ファイル数: 無制限。(利用可能メモリによる)
    • 同時マウント ボリューム数: 最大 10。
    • ファイル サイズ: 最大 4GiB - 1 (FATボリューム) および、事実上無制限(exFATボリューム)。
    • @@ -81,16 +81,16 @@ FatFsモジュールはANSI C(C89)準拠で記述されているので、普通
    - - - - + + + +
    必要な関数必要となる条件備考
    disk_status
    disk_initialize
    disk_read
    常時ffsample.zip (サンプル)
    その他web上に多数
    ARM7
    32bit
    ARM7
    Thumb
    CM3
    Thumb-2
    AVRH8/300HPIC24RL78V850ESSH-2ARX600IA-32
    CompilerGCCGCCGCCGCCCH38C30CC78K0RCA850SHCRXCMSC
    text (Full, R/W)10.1k6.6k6.2k12.1k10.5k11.2k12.6k8.5k8.7k6.3k8.4k
    text (Min, R/W) 6.6k4.5k4.2k 7.9k 7.0k 7.6k 8.8k5.9k5.8k4.3k5.8k
    text (Full, R/O) 4.8k3.1k2.9k 5.8k 5.1k 5.5k 6.4k4.1k4.0k3.1k4.0k
    text (Min, R/O) 3.5k2.4k2.3k 4.4k 3.9k 4.2k 5.0k3.3k3.1k2.4k3.1k
    text (Full, R/W)10.4k6.8k6.3k12.4k 9.8k11.1k12.8k8.6k8.9k6.4k8.5k
    text (Min, R/W) 6.8k4.6k4.3k 8.2k 6.7k 7.6k 9.1k6.0k5.9k4.5k5.9k
    text (Full, R/O) 4.8k3.1k2.8k 5.6k 4.6k 5.3k 6.3k4.0k3.9k3.0k3.9k
    text (Min, R/O) 3.6k2.4k2.3k 4.4k 3.5k 4.0k 4.9k3.3k3.0k2.4k3.1k
    bssV*4 + 2V*4 + 2V*4 + 2V*2 + 2V*4 + 2V*2 + 2V*2 + 2V*4 + 2V*4 + 2V*4 + 2V*4 + 2
    Work area
    (_FS_TINY == 0)
    V*564
    + F*552
    V*564
    + F*552
    V*564
    + F*552
    V*560
    + F*546
    V*560
    + F*546
    V*560
    + F*546
    V*560
    + F*546
    V*564
    + F*552
    V*564
    + F*552
    V*564
    + F*552
    V*564
    + F*552
    Work area
    (_FS_TINY == 1)
    V*564
    + F*40
    V*564
    + F*40
    V*564
    + F*40
    V*560
    + F*34
    V*560
    + F*34
    V*560
    + F*34
    V*560
    + F*34
    V*564
    + F*40
    V*564
    + F*40
    V*564
    + F*40
    V*564
    + F*40
    -FatFs R0.12 options:
    +FatFs R0.12b options:
     _FS_READONLY   0 (R/W) or 1 (R/O)
     _FS_MINIMIZE   0 (Full, with all basic functions) or 3 (Min, with fully minimized)
     _FS_TINY       0 (Default) or 1 (Tiny file object)
    @@ -144,7 +144,7 @@ And any other options are left not changed from default setting.
     

    長いファイル名

    FatFsモジュールは、長いファイル名(LFN)をサポートします。ファイルに付けられた2つの異なる名前(短いファル名と長いファイル名)は、f_readdir関数を除くファイル操作関数において透過です。デフォルト構成では、LFN機能はOFFになっています。LFN機能を有効にするには、_USE_LFNを1,2または3に設定し、option/unicode.cをプロジェクトに追加します。LFN機能は、加えてある程度のワーク エリア(LFN操作バッファ)を必要とします。バッファ長は使用できるメモリに応じて_MAX_LFNで構成されることができます。LFNの長さは最大255文字に達するので、LFN完全対応のためには_MAX_LFNは255に設定されるべきです。与えられたファイル名に対してバッファ長が不足した場合、ファイル関数はFR_INVALID_NAMEで失敗します。

    -

    ファイル関数に再入を行う条件の下でLFN機能を使用する場合は、_USE_LFNは2または3に設定されなければなりません。この場合、ファイル関数はワーク エリアを動的に確保(スタックまたはヒープ)します。ワーク エリアのサイズは、(_MAX_LFN + 1) * 2バイト(exFAT利用時はさらに+608バイト)になるので、スタック等のサイズはそれを考慮した十分な余裕がなければなりません。

    +

    ファイル関数に再入を行う条件の下でLFN機能を使用する場合は、_USE_LFNは2または3に設定されなければなりません。この場合、ファイル関数はワーク エリアを動的に確保(スタックまたはヒープ)します。ワーク エリアのサイズは、(_MAX_LFN + 1) * 2バイト(exFAT利用時は加えて((_MAX_LFN + 44) / 15 * 32バイト)になるので、これらのメモリ消費量に注意を払う必要があります。

    @@ -165,10 +165,9 @@ And any other options are left not changed from default setting.

    exFATファイルシステム

    -

    exFAT(Microsoft's Extended File Allocation Table)ファイルシステムは、既に組み込みシステムや情報家電で広く使われているFATファイルシステムを置き換える目的で開発されました。exFATは、64GiB以上のSDメモリ カードで標準ファイルシステムに採用されるなど、FATに並びリムーバブル メディアの標準ファイルシステムの一つとなりつつあります。

    -

    exFATボリュームでは、FATボリュームで制約となっていた4GiB以上のサイズのファイルを扱え、ファイルシステムのオーバーヘッド(特にファイル アロケーション ディレイ)も大幅に低減され、書き込みスループットがFATより向上しています。しかし、現リビジョンのFatFsでは、実装上の理由から不連続ファイルへのサイズ拡大を伴う書き込み時のとき、スループットがFATより低下します。f_expand関数による連続領域の割り当て機能は、この問題の回避に有効かもしれません。

    -

    exFATはマイクロソフト社が開発したものなので、マイクロソフト社はexFATについていくつかの特許を保有しています。FatFsのexFAT機能は、それの US. Pat. App. Pub. No. 2009/0164440 A1 に基づいた実装です。このため、商用製品でexFAT機能を利用する場合、製品の最終仕向地によってはライセンスが必要になります。最近のFATドライバの多くはexFAT機能を含んでいるため、それらの使用に当たってライセンスが必要になりますが、FatFsは構成オプションでexFAT機能を任意にON/OFFできるため、無効にしてライセンス問題を回避することもできます。

    -

    exFATを有効にすると、FatFsモジュールのC89互換は失われます(64ビット整数型が必要なため)。

    +

    exFAT(Microsoft's Extended File Allocation Table)ファイルシステムは、既に組み込みシステムや情報家電で広く使われているFATファイルシステムを置き換える目的で開発されました。exFATは、64GiB以上のSDメモリ カードで標準ファイルシステムに採用されるなど、FATに並びリムーバブル メディアの標準ファイルシステムの一つとなっています。exFATボリュームでは、FATボリュームで制約となっていた4GiB以上のサイズのファイルを扱え、ファイルシステムのオーバーヘッド(特にファイル アロケーション ディレイ)も大幅に低減され、書き込みスループットがFATより向上しています。

    +

    exFATはマイクロソフト社が開発したものなので、マイクロソフト社はexFATについていくつかの特許を保有しています。FatFsのexFAT機能は、それのUS. Pat. App. Pub. No. 2009/0164440 A1に基づいた実装です。このため、商用製品でexFAT機能を利用する場合、製品の最終仕向地によってはライセンスが必要になります。最近のFATドライバの多くはexFAT機能を含んでいるため、それらの使用に当たってライセンスが必要になりますが、FatFsは構成オプションでexFAT機能を任意にON/OFFできるため、無効にしてライセンス問題を回避することもできます。

    +

    exFATを有効にすると、FatFsモジュールのANSI C(C89)互換は失われます(64ビット整数型が必要なため)。

    @@ -254,13 +253,13 @@ And any other options are left not changed from default setting.

    FatFsのライセンスについて

    -

    FatFsは、作者(ChaN)の個人プロジェクトとして開発されています。現在のリビジョンにおいてコントリビューターはいないため、作者の書いたソース コード以外は含まれません。ソース ファイルにライセンス条件が記述されているので、利用の際はそれに従うこと。原文は英語ですが、参考までに以下に日本語訳を示しておきます。

    +

    FatFsは、作者(ChaN)の個人プロジェクトとして開発されています。現在までのリビジョンにおいてコントリビューターはいないため、作者以外の書いたソース コードは含まれません。ソース ファイルにライセンス条件が記述されているので、利用の際はそれに従うこと。原文は英語ですが、参考までに以下に日本語訳を示しておきます。

     /*----------------------------------------------------------------------------/
    -/  FatFs - Generic FAT file system module  R0.12a                             /
    +/  FatFs - Generic FAT file system module  Rx.xx                              /
     /-----------------------------------------------------------------------------/
     /
    -/ Copyright (C) 2016, ChaN, all right reserved.
    +/ Copyright (C) 20xx, ChaN, all right reserved.
     /
     / FatFsモジュールはオープンソースソフトウェアです。FatFsの再配布および使用は、
     / ソースコードかバイナリ形式か、また変更の有無にかかわらず、次の条件が満たされ
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/dinit.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/dinit.html
    index 68f4cc3f..bac8d016 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/dinit.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/dinit.html
    @@ -13,7 +13,7 @@
     
     

    disk_initialize

    -

    ストレージ デバイスを初期化します。

    +

    ストレージ デバイスの初期化の際に呼ばれます。

     DSTATUS disk_initialize (
       BYTE pdrv      /* [IN] 物理ドライブ番号 */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/dioctl.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/dioctl.html
    index b37ffeaf..4b7b24b1 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/dioctl.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/dioctl.html
    @@ -13,7 +13,7 @@
     
     

    disk_ioctl

    -

    一般的なデータ読み書き以外のストレージ デバイス自体に対する様々な制御を行います。

    +

    一般的なデータ読み書き以外のストレージ デバイス自体に対する様々な制御を行うときに呼ばれます。

     DRESULT disk_ioctl (
       BYTE pdrv,    /* [IN] 物理ドライブ番号 */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/dread.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/dread.html
    index 4c8ddba8..6810d709 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/dread.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/dread.html
    @@ -13,7 +13,7 @@
     
     

    disk_read

    -

    ストレージ デバイスからデータを読み出します。

    +

    ストレージ デバイスからデータを読み出すときに呼ばれます。

     DRESULT disk_read (
       BYTE pdrv,     /* [IN] 物理ドライブ番号 */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/dstat.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/dstat.html
    index f965649f..ad503479 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/dstat.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/dstat.html
    @@ -13,7 +13,7 @@
     
     

    disk_status

    -

    ストレージ デバイスの状態を取得します。

    +

    ストレージ デバイスの状態を取得するために呼ばれます。

     DSTATUS disk_status (
       BYTE pdrv           /* [IN] 物理ドライブ番号 */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/dwrite.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/dwrite.html
    index fa0de8d1..cec09768 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/dwrite.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/dwrite.html
    @@ -13,7 +13,7 @@
     
     

    disk_write

    -

    ストレージ デバイスにデータを書き込みます。

    +

    ストレージ デバイスにデータを書き込むときに呼ばれます。

     DRESULT disk_write (
       BYTE pdrv,        /* [IN] 物理ドライブ番号 */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/expand.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/expand.html
    index 98667d10..8e91cf07 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/expand.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/expand.html
    @@ -30,7 +30,7 @@ FRESULT f_expand (
     
    fp
    対象となるファイル オブジェクト構造体へのポインタを指定します。
    fsz
    -
    ファイルに割り当てるバイト単位のサイズ。データ型FSIZE_tは、DWORD(32-bit)またはQWORD(64-bit)のエリアスで、exFATサポートの有無により切り替わります。
    +
    ファイルに割り当てるバイト単位のサイズ。データ型FSIZE_tは、DWORD(32ビット)またはQWORD(64ビット)のエリアスで、exFATサポートの有無により切り替わります。
    opt
    実際に割り当てを行うかどうか指定するフラグ。
    @@ -43,8 +43,8 @@ FRESULT f_expand ( FR_OK, FR_DISK_ERR, FR_INT_ERR, -FR_INVALID_OBJECT, FR_DENIED, +FR_INVALID_OBJECT, FR_TIMEOUT

    @@ -79,15 +79,15 @@ FRESULT f_expand ( res = f_open(fp = malloc(sizeof (FIL)), "file.dat", FA_WRITE|FA_CREATE_ALWAYS); if (res) { /* ファイルが開かれたかチェック */ free(fp); - ... + die("Failed to open the file."); } /* 100 MiB の連続領域を割り当てる */ res = f_expand(fp, 104857600, 1); if (res) { /* 割り当てられたかチェック */ - ... + f_close(fp); free(fp); - ... + die("Failed to allocate contiguous area."); } /* 連続ファイル作成成功 fp でアクセス可能 */ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/fattime.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/fattime.html index ef694ca4..fc727927 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/fattime.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/fattime.html @@ -13,7 +13,7 @@

    get_fattime

    -

    現在時刻を取得します。

    +

    現在時刻を取得する際に呼ばれます。

     DWORD get_fattime (void);
     
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/fdisk.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/fdisk.html index 2598f7e6..3e3b0840 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/fdisk.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/fdisk.html @@ -62,22 +62,21 @@ FRESULT f_fdisk ( /* ユーザ定義のボリューム管理テーブル (_MULTI_PARTITION == 1 のとき必要) */ PARTITION VolToPart[] = { - {0, 1}, /* 論理ドライブ 0 ==> 物理ドライブ 0, 第1区画 */ - {0, 2}, /* 論理ドライブ 1 ==> 物理ドライブ 0, 第2区画 */ - {1, 0} /* 論理ドライブ 2 ==> 物理ドライブ 1, 自動検出 */ + {0, 1}, /* "0:" ==> 物理ドライブ 0, 第1区画 */ + {0, 2}, /* "1:" ==> 物理ドライブ 0, 第2区画 */ + {1, 0} /* "2:" ==> 物理ドライブ 1, 自動検出 */ };
         /* 新しい物理ドライブ(0)の初期化 */
     
    -    FATFS fs;
         DWORD plist[] = {50, 50, 0, 0};  /* 第1区画,第2区画それぞれに50%ずつ割り当て */
         BYTE work[_MAX_SS];
     
    -    f_fdisk(0, plist, work);                    /* 物理ドライブ 0 の分割 */
    +    f_fdisk(0, plist, work);                   /* 物理ドライブ 0 の分割 */
     
    -    f_mkfs("0:", FMT_ANY, work, sizeof work);   /* 論理ドライブ 0: のフォーマット */
    -    f_mkfs("1:", FMT_ANY, work, sizeof work);   /* 論理ドライブ 1: のフォーマット */
    +    f_mkfs("0:", FM_ANY, work, sizeof work);   /* 論理ドライブ 0: のフォーマット */
    +    f_mkfs("1:", FM_ANY, work, sizeof work);   /* 論理ドライブ 1: のフォーマット */
     
     
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/findfirst.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/findfirst.html index c788768b..1ccdd489 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/findfirst.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/findfirst.html @@ -80,9 +80,9 @@ FRESULT f_findfirst (

    使用例

    -/* ディレクトリ内のオブジェクトの検索と表示 */
    +/* ディレクトリ内のjpegファイルの検索 */
     
    -void find_image (void)
    +void find_image_file (void)
     {
         FRESULT fr;     /* API戻り値 */
         DIR dj;         /* ディレクトリ オブジェクト */
    @@ -94,6 +94,7 @@ void find_image (void)
             printf("%s\n", fno.fname);                /* 見つけた項目の名前を表示 */
             fr = f_findnext(&dj, &fno);               /* 次を検索 */
         }
    +
         f_closedir(&dj);
     }
     
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/forward.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/forward.html index 34f4f483..bdc66426 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/forward.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/forward.html @@ -45,7 +45,7 @@ FRESULT f_forward ( FR_OK, FR_DISK_ERR, FR_INT_ERR, -FR_DENIED, +FR_DENIED, FR_INVALID_OBJECT, FR_TIMEOUT

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/lseek.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/lseek.html index 00e4a958..45781871 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/lseek.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/lseek.html @@ -28,7 +28,7 @@ FRESULT f_lseek (
    fp
    対象となるファイル オブジェクト構造体へのポインタを指定します。
    ofs
    -
    移動先のオフセット(リード/ライト ポインタ)値。ファイル先頭からのオフセットをバイト単位で指定します。データ型FSIZE_tは、DWORD(32-bit)またはQWORD(64-bit)のエリアスで、exFATサポートの有無により切り替わります。
    +
    移動先のオフセット(リード/ライト ポインタ)値。ファイル先頭からのオフセットをバイト単位で指定します。データ型FSIZE_tは、DWORD(32ビット)またはQWORD(64ビット)のエリアスで、exFATサポートの有無により切り替わります。
    @@ -48,7 +48,8 @@ FRESULT f_lseek (

    解説

    -

    ファイルのリード/ライト ポインタ(次に読み出し・書き込みされるバイトのオフセット)を移動します。オフセットの原点はファイル先頭です。書き込みモードでファイル サイズより大きな値を指定すると、そこまでファイル サイズが拡張され、拡張された部分のデータは未定義となります。データを遅延無く高速に書き込みたいときは、予めこの関数で必要なサイズまでファイル サイズを拡張しておくと良いでしょう。ファイルに連続したデータ領域を割り当てる必要があるときは、f_expand関数を使用してください。f_lseek関数が正常終了したあとは、リード/ライト ポインタが正しく移動したかチェックするべきです。リード/ライト ポインタが指定より小さいときは、次の原因が考えられます。

    +

    各ファイル オブジェクトが持つリード/ライト ポインタは、次に読み出し・書き込みされるバイトのオフセットを保持し、読み書きされただけ進みます。この関数は、ファイルへの読み書きを行わずにリード/ライト ポインタのみ移動します。

    +

    書き込みモードでファイル サイズより大きな値を指定すると、そこまでファイル サイズが拡張されますが、拡張された部分のデータは未定義となります。データを遅延無く高速に書き込みたいときは、予めこの関数で必要なサイズまでファイル サイズを拡張しておくと良いでしょう。ファイルに連続したデータ領域を割り当てる必要があるときは、f_expand関数を使用してください。f_lseek関数が正常終了したあとは、リード/ライト ポインタが正しく移動したかチェックするべきです。リード/ライト ポインタが指定より小さいときは、次の原因が考えられます。

    • 非書き込みモードまたは高速シーク モードのため、ファイル サイズでクリップされた。
    • ファイル拡張中にディスクが満杯になった。
    • diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/mkdir.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/mkdir.html index 5e92469a..e7fc916b 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/mkdir.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/mkdir.html @@ -39,7 +39,7 @@ FRESULT f_mkdir ( FR_NOT_READY, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, +FR_DENIED, FR_EXIST, FR_WRITE_PROTECTED, FR_INVALID_DRIVE, diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/mount.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/mount.html index d7906bec..7fde855b 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/mount.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/mount.html @@ -52,8 +52,8 @@ FRESULT f_mount (

      FatFsモジュールでは、それぞれの論理ドライブにファイル システム オブジェクトというワーク エリアが必要です。この関数は論理ドライブにファイル システム オブジェクトを登録したり抹消したりします。何らかのファイル関数を使用する前に、この関数でその論理ドライブのファイル システム オブジェクトを与えておかなければなりません。fsにヌル ポインタを指定すると、その論理ドライブのファイル システム オブジェクトの登録は抹消されるだけです。登録抹消されたファイル システム オブジェクトのメモリは解放できます。操作の対象の論理ドライブ上に開かれたままのファイルやディレクトリがあった場合、それらに対して作成された構造体は全て無効になります。この関数の内部処理は次のような順に行われます。

      1. 対象の論理ドライブをpathから得る。
      2. -
      3. 既に登録されているファイル システム オブジェクトはクリア(無効化)し、登録を解除する。
      4. -
      5. fsが有効なポインタのときは、そのファイル システム オブジェクトをクリアし登録する。
      6. +
      7. 登録されているファイル システム オブジェクトがあるときは、それをクリア(無効化)し、登録を解除する。
      8. +
      9. fsが有効なポインタのときは、そのファイル システム オブジェクトをクリアし、登録する。
      10. マウント動作が指定されているときは、それを実行する。

      optに0を指定すると、マウント動作(物理ドライブの初期化、FATボリュームの検索、BPBを解析しファイル システム オブジェクトを初期化)は行われず、関数は物理ドライブの状態に関わらず常に成功します。関数内では下位レイヤへのアクセスは発生せず、指定されたファイル システム オブジェクトをクリア(無効化)し、そのアドレスを内部配列に登録するだけです。単に登録済みのファイル システム オブジェクトをクリアする目的にも使えます。実際のマウント動作は、ボリュームへのアクセス(パス名を渡すもの全て)が行われたときに、次のうちいずれかの条件が真の場合に行われます。

      diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/open.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/open.html index 9fb76427..9e1f2c13 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/open.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/open.html @@ -57,7 +57,7 @@ FRESULT f_open ( FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, +FR_DENIED, FR_EXIST, FR_INVALID_OBJECT, FR_WRITE_PROTECTED, diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/rc.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/rc.html index 561f3846..59b48718 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/rc.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/rc.html @@ -11,22 +11,30 @@

      ファイル関数の戻り値

      -

      FatFsのAPIでは、一部の関数を除き結果に応じた共通のリザルト コード(FRESULT型(enum))を返します。関数が成功した場合は0を返します。失敗した場合は0以外の値を返し、値はエラーの種類を示します。

      +

      FatFsのAPIでは、一部の関数を除き結果に応じた共通のリザルト コード(FRESULT型(enum))を返します。関数が成功した場合は0 (FR_OK)を返します。失敗した場合は0以外の値を返し、値はエラーの種類を示します。

      FR_OK (0)
      関数は成功した。
      FR_DISK_ERR
      -
      下位レイヤ(disk_read/disk_write/disk_ioctl関数)で回復不能なエラーが発生した。
      ※開かれたファイルの操作においてこのエラーが発生すると、そのファイル オブジェクトはアボート状態となり、クローズ以外のの操作ができなくなります。
      +
      下位レイヤ(disk_read/disk_write/disk_ioctl関数)で回復不能なエラーが発生した。
      ※開かれたファイルの操作においてこのエラーが発生すると、そのファイル オブジェクトはアボート状態となり、クローズ以外の操作ができなくなります。
      FR_INT_ERR
      -
      内部処理の健全性に異常が検出された。原因としては次のようなことが考えられます。 +
      内部処理の健全性チェックで何らかの異常が検出された。原因としては次のようなことが考えられます。
        -
      • ボリューム上のFAT構造にエラーがある。
      • スタック不足や不正なメモリ操作等によるワーク エリアの破壊。多くはこれが原因。
      • +
      • ボリューム上のFAT構造にエラーがある。
      • +
      • FatFsモジュール自体のバグ。
      ※開かれたファイルの操作においてこのエラーが発生すると、そのファイル オブジェクトはアボート状態となり、クローズ以外の操作ができなくなります。
      FR_NOT_READY
      -
      disk_initialize関数の失敗。物理ドライブが動作可能な状態にない。
      +
      下位レイヤ(disk_initialize関数)の失敗。次のような理由が考えられる。 +
        +
      • ドライブにメディアがセットされていない。
      • +
      • 下位レイヤの実装が不完全。
      • +
      • 間違ったハードウェア構成。
      • +
      • ストレージ デバイスの故障。
      • +
      +
      FR_NO_FILE
      指定されたファイルが見つからなかった。
      FR_NO_PATH
      @@ -41,7 +49,8 @@
    • 空でないディレクトリまたはカレント ディレクトリを削除しようとした。
    • FA_READフラグを付けずに開いたファイルに対して読み出しを行った。
    • FA_WRITEフラグを付けずに開いたファイルに対して変更を加えようとした。
    • -
    • ボリュームまたは静的ディレクトリが満杯でオブジェクトの新規作成ができなかった。
    • +
    • ボリュームまたは静的ディレクトリ(FAT12/16のルート)が満杯でディレクトリ エントリの新規作成ができなかった。
    • +
    • ファイルに割り当てる連続領域が見つからなかった。
    FR_EXIST
    @@ -49,9 +58,9 @@
    FR_INVALID_OBJECT
    指定されたファイル オブジェクトやディレクトリ オブジェクトが無効、またはヌル ポインタが渡された。無効になる理由は次のことが考えられます。
      -
    • オープンされていない、既に閉じられた、破損しているなど。
    • -
    • それの属するボリュームのマウント動作があった。ボリューム上で開かれたオブジェクトは全て無効化される。
    • -
    • 関連する物理ドライブがメディアの取り外しで動作不可能になっている。
    • +
    • オープンされていない、既に閉じられている、破損しているなど。
    • +
    • そのボリュームでマウント動作があり、ボリューム上の開かれたオブジェクトが全て無効化された。
    • +
    • 物理ドライブがメディアの取り外し等で動作不可能になっている。
    FR_WRITE_PROTECTED
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/read.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/read.html index e33e564e..c0c03a3e 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/read.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/read.html @@ -45,7 +45,7 @@ FRESULT f_read ( FR_OK, FR_DISK_ERR, FR_INT_ERR, -FR_DENIED, +FR_DENIED, FR_INVALID_OBJECT, FR_TIMEOUT

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/rename.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/rename.html index a768b9aa..84bb7978 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/rename.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/rename.html @@ -28,7 +28,7 @@ FRESULT f_rename (
    old_name
    変更対象のファイルまたはサブ ディレクトリのパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。
    new_name
    -
    新しいパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。既に存在するオブジェクトと同じ名前は使えません。また、ドライブ番号は指定しても無視され、old_nameで決められた論理ドライブ上のオブジェクトとして扱われます。
    +
    新しいパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。また、ドライブ番号は指定しても無視され、old_nameで決められたボリューム上のオブジェクトとして扱われます。これと同じパス名(old_nameは除く)のオブジェクトが存在すると、関数はFR_EXISTで失敗します。
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/sfatfs.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/sfatfs.html index 12e54e16..7079133c 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/sfatfs.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/sfatfs.html @@ -13,7 +13,7 @@

    FATFS

    -

    FATFS構造体(ファイル システム オブジェクト)は、個々の論理ドライブのダイナミック ワーク エリアを保持し、f_mount関数でFatFsモジュールに登録されます。初期化が行われるタイミングは、f_mount関数(強制マウント指定)の実行またはメディア交換の後の最初のファイル アクセスの時です。アプリケーションは、この構造体のメンバを書き換えてはなりません。

    +

    FATFS構造体(ファイル システム オブジェクト)は、個々の論理ドライブのダイナミック ワーク エリアを保持し、f_mount関数でFatFsモジュールに登録されます。構造体の作成は、随時ボリューム マウント プロセスにより行われます。アプリケーションは、この構造体のメンバを書き換えてはなりません。

     typedef struct {
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/sfileinfo.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/sfileinfo.html
    index f6694109..ea063202 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/sfileinfo.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/sfileinfo.html
    @@ -13,7 +13,7 @@
     
     

    FILINFO

    -

    FILINFO構造体は、f_stat/f_readdir/f_findfirst/f_findnext関数で返されるオブジェクトに関する情報を保持します。

    +

    FILINFO構造体は、f_stat/f_readdir/f_findfirst/f_findnext関数で返されるオブジェクトに関する情報を保持します。LFN使用時はサイズが大きく増加するので注意が必要です。

     typedef struct {
         FSIZE_t fsize;               /* ファイル サイズ */
    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/truncate.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/truncate.html
    index 54026031..9d9298d9 100644
    --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/truncate.html
    +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/truncate.html
    @@ -36,7 +36,7 @@ FRESULT f_truncate (
     FR_OK,
     FR_DISK_ERR,
     FR_INT_ERR,
    -FR_DENIED,
    +FR_DENIED,
     FR_INVALID_OBJECT,
     FR_TIMEOUT
     

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/unlink.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/unlink.html index d9b631b0..1f3c7ec2 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/unlink.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/unlink.html @@ -40,7 +40,7 @@ FRESULT f_unlink ( FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, -FR_DENIED, +FR_DENIED, FR_WRITE_PROTECTED, FR_INVALID_DRIVE, FR_NOT_ENABLED, diff --git a/firmware/chibios-portapack/ext/fatfs/doc/ja/write.html b/firmware/chibios-portapack/ext/fatfs/doc/ja/write.html index a5ea4654..6286a594 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/ja/write.html +++ b/firmware/chibios-portapack/ext/fatfs/doc/ja/write.html @@ -45,7 +45,7 @@ FRESULT f_write ( FR_OK, FR_DISK_ERR, FR_INT_ERR, -FR_DENIED, +FR_DENIED, FR_INVALID_OBJECT, FR_TIMEOUT

    diff --git a/firmware/chibios-portapack/ext/fatfs/doc/res/app4.c b/firmware/chibios-portapack/ext/fatfs/doc/res/app4.c index 03d124de..56c07fec 100644 --- a/firmware/chibios-portapack/ext/fatfs/doc/res/app4.c +++ b/firmware/chibios-portapack/ext/fatfs/doc/res/app4.c @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------/ -/ Low level disk I/O module function checker +/ Low level disk I/O module function checker / /-----------------------------------------------------------------------/ / WARNING: The data on the target drive will be lost! */ @@ -41,8 +41,8 @@ int test_diskio ( ) { UINT n, cc, ns; - DWORD sz_drv, lba, lba2, pns = 1; - WORD sz_sect, sz_eblk; + DWORD sz_drv, lba, lba2, sz_eblk, pns = 1; + WORD sz_sect; BYTE *pbuff = (BYTE*)buff; DSTATUS ds; DRESULT dr; @@ -113,7 +113,7 @@ int test_diskio ( printf(" - failed.\n"); } if (dr == RES_OK || sz_eblk >= 2) { - printf(" Size of the erase block is %u sectors.\n", sz_eblk); + printf(" Size of the erase block is %lu sectors.\n", sz_eblk); } else { printf(" Size of the erase block is unknown.\n"); } @@ -196,7 +196,7 @@ int test_diskio ( pns++; /* Single sector write test (misaligned memory address) */ - printf("**** Single sector write test 2 ****\n"); + printf("**** Single sector write test (misaligned address) ****\n"); lba = 5; for (n = 0, pn(pns); n < sz_sect; n++) pbuff[n+3] = (BYTE)pn(0); printf(" disk_write(%u, 0x%X, %lu, 1)", pdrv, (UINT)(pbuff+3), lba); diff --git a/firmware/chibios-portapack/ext/fatfs/doc/res/layers3.png b/firmware/chibios-portapack/ext/fatfs/doc/res/layers3.png deleted file mode 100644 index ac439b0b..00000000 Binary files a/firmware/chibios-portapack/ext/fatfs/doc/res/layers3.png and /dev/null differ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/res/mkfatimg.zip b/firmware/chibios-portapack/ext/fatfs/doc/res/mkfatimg.zip index d0728b4e..67d423b1 100644 Binary files a/firmware/chibios-portapack/ext/fatfs/doc/res/mkfatimg.zip and b/firmware/chibios-portapack/ext/fatfs/doc/res/mkfatimg.zip differ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/res/mkfs.xls b/firmware/chibios-portapack/ext/fatfs/doc/res/mkfs.xls index f01ddcc8..3c615cb7 100644 Binary files a/firmware/chibios-portapack/ext/fatfs/doc/res/mkfs.xls and b/firmware/chibios-portapack/ext/fatfs/doc/res/mkfs.xls differ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/res/rwtest1.png b/firmware/chibios-portapack/ext/fatfs/doc/res/rwtest1.png index af51c5f9..bc033020 100644 Binary files a/firmware/chibios-portapack/ext/fatfs/doc/res/rwtest1.png and b/firmware/chibios-portapack/ext/fatfs/doc/res/rwtest1.png differ diff --git a/firmware/chibios-portapack/ext/fatfs/doc/updates.txt b/firmware/chibios-portapack/ext/fatfs/doc/updates.txt new file mode 100644 index 00000000..d4965f90 --- /dev/null +++ b/firmware/chibios-portapack/ext/fatfs/doc/updates.txt @@ -0,0 +1,195 @@ +R0.12c (March 04, 2017) + Improved write throughput at the fragmented file on the exFAT volume. + Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN. + Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12) + Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c) + +R0.12b (September 4, 2016) + Make f_rename() be able to rename objects with the same name but case. + Fixed an error in the case conversion teble of code page 866. (ff.c) + Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12) + Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12) + Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12) + Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12) + Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12) + Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12) + +R0.12a (July 10, 2016) + Added support for creating exFAT volume with some changes of f_mkfs(). + Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed. + f_forward() is available regardless of _FS_TINY. + Fixed f_mkfs() creates wrong volume. (appeared at R0.12) + Fixed wrong memory read in create_name(). (appeared at R0.12) + Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD. + +R0.12 (April 12, 2016) + Added support for exFAT file system. (_FS_EXFAT) + Added f_expand(). (_USE_EXPAND) + Changed some members in FINFO structure and behavior of f_readdir(). + Added an option _USE_CHMOD and removed an option _WORD_ACCESS. + Fixed errors in the case conversion teble of Unicode (cc*.c). + +R0.11a (September 5, 2015) + Fixed wrong media change can lead a deadlock at thread-safe configuration. + Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE) + Removed some code pages actually not exist on the standard systems. (_CODE_PAGE) + Fixed errors in the case conversion teble of code page 437 and 850 (ff.c). + Fixed errors in the case conversion teble of Unicode (cc*.c). + +R0.11 (February 9, 2015) + Added f_findfirst() and f_findnext(). (_USE_FIND) + Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c) + Fixed _FS_NORTC option does not work properly. (appeared at R0.10c) + +R0.10c (November 9, 2014) + Added a configuration option for the platforms without RTC. (_FS_NORTC) + Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b) + Fixed a potential problem of FAT access that can appear on disk error. + Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08) + +R0.10b (May 19, 2014) + Fixed a hard error in the disk I/O layer can collapse the directory entry. + Fixed LFN entry is not deleted on delete/rename an object with its lossy converted SFN. (appeared at R0.07) + +R0.10a (January 15, 2014) + Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID) + Added an option for minimum sector size. (_MIN_SS) + 2nd argument of f_rename() can have a drive number and it will be ignored. + Fixed f_mount() with forced mount fails when drive number is larger than 0. (appeared at R0.10) + Fixed f_close() invalidates the file object without volume lock. + Fixed volume lock is left acquired after return from f_closedir(). (appeared at R0.10) + Fixed creation of a directory entry with LFN fails on too many SFN collisions. (appeared at R0.07) + +R0.10 (October 2, 2013) + Added an option for character encoding on the file. (_STRF_ENCODE) + Added f_closedir(). + Added forced full FAT scan option for f_getfree(). (_FS_NOFSINFO) + Added forced mount option with changes of f_mount(). + Improved behavior of volume auto detection. + Improved write throughput of f_puts() and f_printf(). + Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write(). + Fixed f_write() can be truncated when the file size is close to 4GB. + Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect result code on error. + +R0.09b (January 24, 2013) + Added f_getlabel() and f_setlabel(). (_USE_LABEL = 1) + +R0.09a (August 27, 2012) + Fixed assertion failure due to OS/2 EA on FAT12/16 volume. + Changed file functions reject null object pointer to avoid crash. + Changed option name _FS_SHARE to _FS_LOCK. + +R0.09 (September 6, 2011) + f_mkfs() supports multiple partition on a physical drive. + Added f_fdisk(). (_MULTI_PARTITION = 2) + +R0.08b (January 15, 2011) + Fast seek function is also applied to f_read() and f_write(). + f_lseek() reports required table size on creating CLMP. + Extended format syntax of f_printf(). + Ignores duplicated directory separators in given path names. + +R0.08a (August 16, 2010) + Added f_getcwd(). (_FS_RPATH = 2) + Added sector erase function. (_USE_ERASE) + Moved file lock semaphore table from fs object to the bss. + Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'. + Fixed f_mkfs() creates wrong FAT32 volume. + +R0.08 (May 15, 2010) + Added a memory configuration option. (_USE_LFN) + Added support of file lock. (_FS_SHARE) + Added fast seek function. (_USE_FASTSEEK) + Changed some types on the API, XCHAR->TCHAR. + Changed fname member in the FILINFO structure on Unicode cfg. + String functions support UTF-8 encoding files on Unicode cfg. + +R0.07e (November 3, 2009) + Separated out configuration options from ff.h to ffconf.h. + Added a configuration option, _LFN_UNICODE. + Fixed f_unlink() fails to remove a sub-dir on _FS_RPATH. + Fixed name matching error on the 13 char boundary. + Changed f_readdir() to return the SFN with always upper case on non-LFN cfg. + +R0.07c (Junuary 21, 2009) + Fixed f_unlink() may return FR_OK on error. + Fixed wrong cache control in f_lseek(). + Added support of relative path. + Added f_chdir(). + Added f_chdrive(). + Added proper case conversion to extended characters. + +R0.07a (April 14, 2009) + Separated out OS dependent code on re-entrant configuration. + Added multiple sector size support. + +R0.07 (April 1, 2009) + Merged Tiny-FatFs into FatFs as a buffer configuration option. + Added long file name support. + Added multiple code page support. + Added re-entrancy for multitask operation. + Added auto cluster size selection to f_mkfs(). + Added rewind option to f_readdir(). + Changed result code of critical errors. + Renamed string functions to avoid name collision. + +R0.06 (April 1, 2008) + Added f_forward. (Tiny-FatFs) + Added string functions: fgets, fputc, fputs and fprintf. + Improved performance of f_lseek on moving to the same or following cluster. + +R0.05a (February 3, 2008) + Added f_truncate. + Added f_utime. + Fixed off by one error at FAT sub-type determination. + Fixed btr in f_read can be mistruncated. + Fixed cached sector is left not flushed when create and close without write. + +R0.05 (August 26, 2007) + Changed arguments of f_read, f_write. + Changed arguments of f_mkfs. (FatFs) + Fixed f_mkfs on FAT32 creates incorrect FSInfo. (FatFs) + Fixed f_mkdir on FAT32 creates incorrect directory. (FatFs) + +R0.04b (May 5, 2007) + Added _USE_NTFLAG option. + Added FSInfo support. + Fixed some problems corresponds to FAT32. (Tiny-FatFs) + Fixed DBCS name can result FR_INVALID_NAME. + Fixed short seek (<= csize) collapses the file object. + +R0.04a (April 1, 2007) + Supported multiple partitions on a plysical drive. (FatFs) + Added minimization level 3. + Added a capability of extending file size to f_lseek. + Fixed an endian sensitive code in f_mkfs. (FatFs) + Fixed a problem corresponds to FAT32 support. (Tiny-FatFs) + +R0.04 (February 4, 2007) + Supported multiple drive system. (FatFs) + Changed some APIs for multiple drive system. + Added f_mkfs. (FatFs) + Added _USE_FAT32 option. (Tiny-FatFs) + +R0.03a (December 11, 2006) + Improved cluster scan algolithm to write files fast. + Fixed f_mkdir creates incorrect directory on FAT32. + +R0.03 (September 22, 2006) + Added f_rename. + Changed option _FS_MINIMUM to _FS_MINIMIZE. + +R0.02a (June 10, 2006) + Added a configuration option _FS_MINIMUM. + +R0.02 (Jun 01, 2006) + Added FAT12. + Removed unbuffered mode. + Fixed a problem on small (<32M) patition. + +R0.01 (April 29, 2006) + First release + +R0.00 (February 26, 2006) + Prototype (not released) + diff --git a/firmware/chibios-portapack/ext/fatfs/src/00history.txt b/firmware/chibios-portapack/ext/fatfs/src/00history.txt index 151b6949..fa736381 100644 --- a/firmware/chibios-portapack/ext/fatfs/src/00history.txt +++ b/firmware/chibios-portapack/ext/fatfs/src/00history.txt @@ -212,7 +212,7 @@ R0.10a (January 15, 2014) R0.10b (May 19, 2014) Fixed a hard error in the disk I/O layer can collapse the directory entry. - Fixed LFN entry is not deleted on delete/rename an object with lossy converted SFN. (appeared at R0.07) + Fixed LFN entry is not deleted when delete/rename an object with lossy converted SFN. (appeared at R0.07) @@ -260,8 +260,29 @@ R0.12a (July 10, 2016) Added support for creating exFAT volume with some changes of f_mkfs(). Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed. f_forward() is available regardless of _FS_TINY. - Fixed f_mkfs() creates wrong volume. + Fixed f_mkfs() creates wrong volume. (appeared at R0.12) + Fixed wrong memory read in create_name(). (appeared at R0.12) Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD. - Fixed wrong memory read in create_name(). + +R0.12b (September 04, 2016) + + Made f_rename() be able to rename objects with the same name but case. + Fixed an error in the case conversion teble of code page 866. (ff.c) + Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12) + Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12) + Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12) + Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12) + Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12) + Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12) + + + +R0.12c (March 04, 2017) + + Improved write throughput at the fragmented file on the exFAT volume. + Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN. + Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12) + Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c) + diff --git a/firmware/chibios-portapack/ext/fatfs/src/00readme.txt b/firmware/chibios-portapack/ext/fatfs/src/00readme.txt index 42426a40..2b7cc760 100644 --- a/firmware/chibios-portapack/ext/fatfs/src/00readme.txt +++ b/firmware/chibios-portapack/ext/fatfs/src/00readme.txt @@ -1,21 +1,21 @@ -FatFs Module Source Files R0.12a +FatFs Module Source Files R0.12c FILES - 00readme.txt This file. - history.txt Revision history. - ffconf.h Configuration file for FatFs module. - ff.h Common include file for FatFs and application module. - ff.c FatFs module. - diskio.h Common include file for FatFs and disk I/O module. - diskio.c An example of glue function to attach existing disk I/O module to FatFs. - integer.h Integer type definitions for FatFs. - option Optional external functions. + 00readme.txt This file. + 00history.txt Revision history. + ff.c FatFs module. + ffconf.h Configuration file of FatFs module. + ff.h Common include file for FatFs and application module. + diskio.h Common include file for FatFs and disk I/O module. + diskio.c An example of glue function to attach existing disk I/O module to FatFs. + integer.h Integer type definitions for FatFs. + option Optional external modules. Low level disk I/O module is not included in this archive because the FatFs - module is only a generic file system layer and not depend on any specific - storage device. You have to provide a low level disk I/O module that written - to control the target storage device. + module is only a generic file system layer and it does not depend on any specific + storage device. You have to provide a low level disk I/O module written to + control the storage device that attached to the target system. diff --git a/firmware/chibios-portapack/ext/fatfs/src/diskio.c b/firmware/chibios-portapack/ext/fatfs/src/diskio.c index 1d57ddb4..25f5e53b 100644 --- a/firmware/chibios-portapack/ext/fatfs/src/diskio.c +++ b/firmware/chibios-portapack/ext/fatfs/src/diskio.c @@ -41,7 +41,7 @@ DSTATUS disk_status ( return stat; - case DEB_USB : + case DEV_USB : result = USB_disk_status(); // translate the reslut code here diff --git a/firmware/chibios-portapack/ext/fatfs/src/ff.c b/firmware/chibios-portapack/ext/fatfs/src/ff.c index edcd4b48..fa9c50f3 100644 --- a/firmware/chibios-portapack/ext/fatfs/src/ff.c +++ b/firmware/chibios-portapack/ext/fatfs/src/ff.c @@ -1,13 +1,13 @@ /*----------------------------------------------------------------------------/ -/ FatFs - Generic FAT file system module R0.12a / +/ FatFs - Generic FAT file system module R0.12c / /-----------------------------------------------------------------------------/ / -/ Copyright (C) 2016, ChaN, all right reserved. +/ Copyright (C) 2017, ChaN, all right reserved. / / FatFs module is an open source software. Redistribution and use of FatFs in / source and binary forms, with or without modification, are permitted provided / that the following condition is met: - +/ / 1. Redistributions of source code must retain the above copyright notice, / this condition and the following disclaimer. / @@ -28,65 +28,11 @@ ---------------------------------------------------------------------------*/ -#if _FATFS != 80186 /* Revision ID */ +#if _FATFS != 68300 /* Revision ID */ #error Wrong include file (ff.h). #endif -#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } - - -/* Reentrancy related */ -#if _FS_REENTRANT -#if _USE_LFN == 1 -#error Static LFN work area cannot be used at thread-safe configuration -#endif -#define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; } -#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } -#else -#define ENTER_FF(fs) -#define LEAVE_FF(fs, res) return res -#endif - - - -/* Definitions of sector size */ -#if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096) || (_MIN_SS != 512 && _MIN_SS != 1024 && _MIN_SS != 2048 && _MIN_SS != 4096) -#error Wrong sector size configuration -#endif -#if _MAX_SS == _MIN_SS -#define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */ -#else -#define SS(fs) ((fs)->ssize) /* Variable sector size */ -#endif - - -/* Timestamp */ -#if _FS_NORTC == 1 -#if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY < 1 || _NORTC_MDAY > 31 -#error Invalid _FS_NORTC settings -#endif -#define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_MDAY << 16) -#else -#define GET_FATTIME() get_fattime() -#endif - - -/* File lock controls */ -#if _FS_LOCK != 0 -#if _FS_READONLY -#error _FS_LOCK must be 0 at read-only configuration -#endif -typedef struct { - FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ - DWORD clu; /* Object ID 2, directory (0:root) */ - DWORD ofs; /* Object ID 3, directory offset */ - WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */ -} FILESEM; -#endif - - - /* DBCS code ranges and SBCS upper conversion tables */ #if _CODE_PAGE == 932 /* Japanese Shift-JIS */ @@ -351,20 +297,20 @@ typedef struct { #endif /* _DF1S */ -/* File attribute bits (internal use) */ +/* Additional file attribute bits for internal use */ #define AM_VOL 0x08 /* Volume label */ #define AM_LFN 0x0F /* LFN entry */ #define AM_MASK 0x3F /* Mask of defined bits */ -/* File access control and file status flags (internal use) */ +/* Additional file access control and file status flags for internal use */ #define FA_SEEKEND 0x20 /* Seek to end of the file on file open */ #define FA_MODIFIED 0x40 /* File has been modified */ #define FA_DIRTY 0x80 /* FIL.buf[] needs to be written-back */ -/* Name status flags */ -#define NSFLAG 11 /* Index of name status byte in fn[] */ +/* Name status flags in fn[] */ +#define NSFLAG 11 /* Index of the name status byte */ #define NS_LOSS 0x01 /* Out of 8.3 format */ #define NS_LFN 0x02 /* Force to create LFN entry */ #define NS_LAST 0x04 /* Last segment */ @@ -375,18 +321,17 @@ typedef struct { #define NS_NONAME 0x80 /* Not followed */ -/* Limits and boundaries (differ from specs but correct for real DOS/Windows) */ -#define MAX_FAT12 0xFF5 /* Maximum number of FAT12 clusters */ -#define MAX_FAT16 0xFFF5 /* Maximum number of FAT16 clusters */ -#define MAX_FAT32 0xFFFFFF5 /* Maximum number of FAT32 clusters */ -#define MAX_EXFAT 0x7FFFFFFD /* Maximum number of exFAT clusters (limited by implementation) */ -#define MAX_DIR 0x200000 /* Maximum size of FAT directory */ -#define MAX_DIR_EX 0x10000000 /* Maximum size of exFAT directory */ +/* Limits and boundaries */ +#define MAX_DIR 0x200000 /* Max size of FAT directory */ +#define MAX_DIR_EX 0x10000000 /* Max size of exFAT directory */ +#define MAX_FAT12 0xFF5 /* Max FAT12 clusters (differs from specs, but correct for real DOS/Windows behavior) */ +#define MAX_FAT16 0xFFF5 /* Max FAT16 clusters (differs from specs, but correct for real DOS/Windows behavior) */ +#define MAX_FAT32 0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */ +#define MAX_EXFAT 0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */ -/* FatFs refers the members in the FAT structures as byte array instead of -/ structure members because the structure is not binary compatible between -/ different platforms */ +/* FatFs refers the FAT structure as simple byte array instead of structure member +/ because the C structure is not binary compatible between different platforms */ #define BS_JmpBoot 0 /* x86 jump instruction (3-byte) */ #define BS_OEMName 3 /* OEM name (8-byte) */ @@ -396,7 +341,7 @@ typedef struct { #define BPB_NumFATs 16 /* Number of FATs (BYTE) */ #define BPB_RootEntCnt 17 /* Size of root directory area for FAT12/16 [entry] (WORD) */ #define BPB_TotSec16 19 /* Volume size (16-bit) [sector] (WORD) */ -#define BPB_Media 21 /* Media descriptor (BYTE) */ +#define BPB_Media 21 /* Media descriptor byte (BYTE) */ #define BPB_FATSz16 22 /* FAT size (16-bit) [sector] (WORD) */ #define BPB_SecPerTrk 24 /* Track size for int13h [sector] (WORD) */ #define BPB_NumHeads 26 /* Number of heads for int13h (WORD) */ @@ -409,6 +354,7 @@ typedef struct { #define BS_VolLab 43 /* Volume label string (8-byte) */ #define BS_FilSysType 54 /* File system type string (8-byte) */ #define BS_BootCode 62 /* Boot code (448-byte) */ +#define BS_55AA 510 /* Signature word (WORD) */ #define BPB_FATSz32 36 /* FAT32: FAT size [sector] (DWORD) */ #define BPB_ExtFlags32 40 /* FAT32: Extended flags (WORD) */ @@ -431,19 +377,61 @@ typedef struct { #define BPB_FatSzEx 84 /* exFAT: FAT size [sector] (DWORD) */ #define BPB_DataOfsEx 88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */ #define BPB_NumClusEx 92 /* exFAT: Number of clusters (DWORD) */ -#define BPB_RootClusEx 96 /* exFAT: Root directory cluster (DWORD) */ +#define BPB_RootClusEx 96 /* exFAT: Root directory start cluster (DWORD) */ #define BPB_VolIDEx 100 /* exFAT: Volume serial number (DWORD) */ #define BPB_FSVerEx 104 /* exFAT: File system version (WORD) */ #define BPB_VolFlagEx 106 /* exFAT: Volume flags (BYTE) */ #define BPB_ActFatEx 107 /* exFAT: Active FAT flags (BYTE) */ -#define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in byte (BYTE) */ -#define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in sector (BYTE) */ +#define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */ +#define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */ #define BPB_NumFATsEx 110 /* exFAT: Number of FATs (BYTE) */ #define BPB_DrvNumEx 111 /* exFAT: Physical drive number for int13h (BYTE) */ #define BPB_PercInUseEx 112 /* exFAT: Percent in use (BYTE) */ #define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */ #define BS_BootCodeEx 120 /* exFAT: Boot code (390-byte) */ +#define DIR_Name 0 /* Short file name (11-byte) */ +#define DIR_Attr 11 /* Attribute (BYTE) */ +#define DIR_NTres 12 /* Lower case flag (BYTE) */ +#define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ +#define DIR_CrtTime 14 /* Created time (DWORD) */ +#define DIR_LstAccDate 18 /* Last accessed date (WORD) */ +#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ +#define DIR_ModTime 22 /* Modified time (DWORD) */ +#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ +#define DIR_FileSize 28 /* File size (DWORD) */ +#define LDIR_Ord 0 /* LFN: LFN order and LLE flag (BYTE) */ +#define LDIR_Attr 11 /* LFN: LFN attribute (BYTE) */ +#define LDIR_Type 12 /* LFN: Entry type (BYTE) */ +#define LDIR_Chksum 13 /* LFN: Checksum of the SFN (BYTE) */ +#define LDIR_FstClusLO 26 /* LFN: MBZ field (WORD) */ +#define XDIR_Type 0 /* exFAT: Type of exFAT directory entry (BYTE) */ +#define XDIR_NumLabel 1 /* exFAT: Number of volume label characters (BYTE) */ +#define XDIR_Label 2 /* exFAT: Volume label (11-WORD) */ +#define XDIR_CaseSum 4 /* exFAT: Sum of case conversion table (DWORD) */ +#define XDIR_NumSec 1 /* exFAT: Number of secondary entries (BYTE) */ +#define XDIR_SetSum 2 /* exFAT: Sum of the set of directory entries (WORD) */ +#define XDIR_Attr 4 /* exFAT: File attribute (WORD) */ +#define XDIR_CrtTime 8 /* exFAT: Created time (DWORD) */ +#define XDIR_ModTime 12 /* exFAT: Modified time (DWORD) */ +#define XDIR_AccTime 16 /* exFAT: Last accessed time (DWORD) */ +#define XDIR_CrtTime10 20 /* exFAT: Created time subsecond (BYTE) */ +#define XDIR_ModTime10 21 /* exFAT: Modified time subsecond (BYTE) */ +#define XDIR_CrtTZ 22 /* exFAT: Created timezone (BYTE) */ +#define XDIR_ModTZ 23 /* exFAT: Modified timezone (BYTE) */ +#define XDIR_AccTZ 24 /* exFAT: Last accessed timezone (BYTE) */ +#define XDIR_GenFlags 33 /* exFAT: General secondary flags (WORD) */ +#define XDIR_NumName 35 /* exFAT: Number of file name characters (BYTE) */ +#define XDIR_NameHash 36 /* exFAT: Hash of file name (WORD) */ +#define XDIR_ValidFileSize 40 /* exFAT: Valid file size (QWORD) */ +#define XDIR_FstClus 52 /* exFAT: First cluster of the file data (DWORD) */ +#define XDIR_FileSize 56 /* exFAT: File/Directory size (QWORD) */ + +#define SZDIRE 32 /* Size of a directory entry */ +#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ +#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ +#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ + #define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */ #define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */ #define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */ @@ -462,49 +450,68 @@ typedef struct { #define PTE_StLba 8 /* MBR PTE: Start in LBA */ #define PTE_SizLba 12 /* MBR PTE: Size in LBA */ -#define BS_55AA 510 /* Signature word (WORD) */ -#define DIR_Name 0 /* Short file name (11-byte) */ -#define DIR_Attr 11 /* Attribute (BYTE) */ -#define DIR_NTres 12 /* Lower case flag (BYTE) */ -#define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ -#define DIR_CrtTime 14 /* Created time (DWORD) */ -#define DIR_LstAccDate 18 /* Last accessed date (WORD) */ -#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ -#define DIR_ModTime 22 /* Modified time (DWORD) */ -#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ -#define DIR_FileSize 28 /* File size (DWORD) */ -#define LDIR_Ord 0 /* LFN entry order and LLE flag (BYTE) */ -#define LDIR_Attr 11 /* LFN attribute (BYTE) */ -#define LDIR_Type 12 /* LFN type (BYTE) */ -#define LDIR_Chksum 13 /* Checksum of the SFN entry (BYTE) */ -#define LDIR_FstClusLO 26 /* Must be zero (WORD) */ -#define XDIR_Type 0 /* Type of exFAT directory entry (BYTE) */ -#define XDIR_NumLabel 1 /* Number of volume label characters (BYTE) */ -#define XDIR_Label 2 /* Volume label (11-WORD) */ -#define XDIR_CaseSum 4 /* Sum of case conversion table (DWORD) */ -#define XDIR_NumSec 1 /* Number of secondary entries (BYTE) */ -#define XDIR_SetSum 2 /* Sum of the set of directory entries (WORD) */ -#define XDIR_Attr 4 /* File attribute (WORD) */ -#define XDIR_CrtTime 8 /* Created time (DWORD) */ -#define XDIR_ModTime 12 /* Modified time (DWORD) */ -#define XDIR_AccTime 16 /* Last accessed time (DWORD) */ -#define XDIR_CrtTime10 20 /* Created time subsecond (BYTE) */ -#define XDIR_ModTime10 21 /* Modified time subsecond (BYTE) */ -#define XDIR_CrtTZ 22 /* Created timezone (BYTE) */ -#define XDIR_ModTZ 23 /* Modified timezone (BYTE) */ -#define XDIR_AccTZ 24 /* Last accessed timezone (BYTE) */ -#define XDIR_GenFlags 33 /* Gneral secondary flags (WORD) */ -#define XDIR_NumName 35 /* Number of file name characters (BYTE) */ -#define XDIR_NameHash 36 /* Hash of file name (WORD) */ -#define XDIR_ValidFileSize 40 /* Valid file size (QWORD) */ -#define XDIR_FstClus 52 /* First cluster of the file data (DWORD) */ -#define XDIR_FileSize 56 /* File/Directory size (QWORD) */ +/* Post process after fatal error on file operation */ +#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } -#define SZDIRE 32 /* Size of a directory entry */ -#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ -#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ -#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ + +/* Reentrancy related */ +#if _FS_REENTRANT +#if _USE_LFN == 1 +#error Static LFN work area cannot be used at thread-safe configuration +#endif +#define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; } +#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } +#else +#define ENTER_FF(fs) +#define LEAVE_FF(fs, res) return res +#endif + + +/* Definitions of volume - partition conversion */ +#if _MULTI_PARTITION +#define LD2PD(vol) VolToPart[vol].pd /* Get physical drive number */ +#define LD2PT(vol) VolToPart[vol].pt /* Get partition index */ +#else +#define LD2PD(vol) (BYTE)(vol) /* Each logical drive is bound to the same physical drive number */ +#define LD2PT(vol) 0 /* Find first valid partition or in SFD */ +#endif + + +/* Definitions of sector size */ +#if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096) || (_MIN_SS != 512 && _MIN_SS != 1024 && _MIN_SS != 2048 && _MIN_SS != 4096) +#error Wrong sector size configuration +#endif +#if _MAX_SS == _MIN_SS +#define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */ +#else +#define SS(fs) ((fs)->ssize) /* Variable sector size */ +#endif + + +/* Timestamp */ +#if _FS_NORTC == 1 +#if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY < 1 || _NORTC_MDAY > 31 +#error Invalid _FS_NORTC settings +#endif +#define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_MDAY << 16) +#else +#define GET_FATTIME() get_fattime() +#endif + + +/* File lock controls */ +#if _FS_LOCK != 0 +#if _FS_READONLY +#error _FS_LOCK must be 0 at read-only configuration +#endif +typedef struct { + FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ + DWORD clu; /* Object ID 2, containing directory (0:root) */ + DWORD ofs; /* Object ID 3, offset in the directory */ + WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */ +} FILESEM; +#endif @@ -516,11 +523,11 @@ typedef struct { ---------------------------------------------------------------------------*/ -/* Remark: Variables here without initial value shall be guaranteed zero/null -/ at start-up. If not, either the linker or start-up routine being used is +/* Remark: Variables defined here without initial value shall be guaranteed +/ zero/null at start-up. If not, the linker option or start-up routine is / not compliance with C standard. */ -#if _VOLUMES < 1 || _VOLUMES > 9 +#if _VOLUMES < 1 || _VOLUMES > 10 #error Wrong _VOLUMES setting #endif static FATFS *FatFs[_VOLUMES]; /* Pointer to the file system objects (logical drives) */ @@ -534,27 +541,29 @@ static BYTE CurrVol; /* Current drive */ static FILESEM Files[_FS_LOCK]; /* Open object lock semaphores */ #endif -#if _USE_LFN == 0 /* Non-LFN configuration */ +#if _USE_LFN == 0 /* Non-LFN configuration */ #define DEF_NAMBUF #define INIT_NAMBUF(fs) #define FREE_NAMBUF() -#else + +#else /* LFN configuration */ #if _MAX_LFN < 12 || _MAX_LFN > 255 -#error Wrong _MAX_LFN setting +#error Wrong _MAX_LFN value #endif +#define MAXDIRB(nc) ((nc + 44U) / 15 * SZDIRE) #if _USE_LFN == 1 /* LFN enabled with static working buffer */ #if _FS_EXFAT -static BYTE DirBuf[SZDIRE*19]; /* Directory entry block scratchpad buffer (19 entries in size) */ +static BYTE DirBuf[MAXDIRB(_MAX_LFN)]; /* Directory entry block scratchpad buffer */ #endif -static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ +static WCHAR LfnBuf[_MAX_LFN + 1]; /* LFN enabled with static working buffer */ #define DEF_NAMBUF #define INIT_NAMBUF(fs) #define FREE_NAMBUF() #elif _USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */ #if _FS_EXFAT -#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[SZDIRE*19]; +#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[MAXDIRB(_MAX_LFN)]; #define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; (fs)->dirbuf = dbuf; } #define FREE_NAMBUF() #else @@ -566,7 +575,7 @@ static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ #elif _USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */ #if _FS_EXFAT #define DEF_NAMBUF WCHAR *lfn; -#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + SZDIRE*19); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+_MAX_LFN+1); } +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + MAXDIRB(_MAX_LFN)); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+_MAX_LFN+1); } #define FREE_NAMBUF() ff_memfree(lfn) #else #define DEF_NAMBUF WCHAR *lfn; @@ -576,8 +585,9 @@ static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ #else #error Wrong _USE_LFN setting + #endif -#endif +#endif /* else _USE_LFN == 0 */ #ifdef _EXCVT static const BYTE ExCvt[] = _EXCVT; /* Upper conversion table for SBCS extended characters */ @@ -685,7 +695,9 @@ void mem_cpy (void* dst, const void* src, UINT cnt) { const BYTE *s = (const BYTE*)src; if (cnt) { - do *d++ = *s++; while (--cnt); + do { + *d++ = *s++; + } while (--cnt); } } @@ -694,7 +706,9 @@ static void mem_set (void* dst, int val, UINT cnt) { BYTE *d = (BYTE*)dst; - do *d++ = (BYTE)val; while (--cnt); + do { + *d++ = (BYTE)val; + } while (--cnt); } /* Compare memory block */ @@ -729,7 +743,7 @@ int lock_fs ( FATFS* fs /* File system object */ ) { - return ff_req_grant(fs->sobj); + return (fs && ff_req_grant(fs->sobj)) ? 1 : 0; } @@ -1031,17 +1045,21 @@ DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluste break; } } - if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the contiguous part? */ + if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the 1st fragment? */ val = clst + 1; /* Generate the value */ break; } if (obj->stat != 2) { /* Get value from FAT if FAT chain is valid */ - if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; - val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF; + if (obj->n_frag != 0) { /* Is it on the growing edge? */ + val = 0x7FFFFFFF; /* Generate EOC */ + } else { + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF; + } break; } } - /* go next */ + /* go to default */ #endif default: val = 1; /* Internal error */ @@ -1070,7 +1088,6 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ BYTE *p; FRESULT res = FR_INT_ERR; - if (clst >= 2 && clst < fs->n_fatent) { /* Check if in valid range */ switch (fs->fs_type) { case FS_FAT12 : /* Bitfield items */ @@ -1121,12 +1138,12 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ /* exFAT: Accessing FAT and Allocation Bitmap */ /*-----------------------------------------------------------------------*/ -/*---------------------------------------------*/ -/* exFAT: Find a contiguous free cluster block */ -/*---------------------------------------------*/ +/*--------------------------------------*/ +/* Find a contiguous free cluster block */ +/*--------------------------------------*/ static -DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Disk error */ +DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk error */ FATFS* fs, /* File system object */ DWORD clst, /* Cluster number to scan from */ DWORD ncl /* Number of contiguous clusters to find (1..) */ @@ -1141,18 +1158,18 @@ DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Dis if (clst >= fs->n_fatent - 2) clst = 0; scl = val = clst; ctr = 0; for (;;) { - if (move_window(fs, fs->database + val / 8 / SS(fs)) != FR_OK) return 0xFFFFFFFF; + if (move_window(fs, fs->database + val / 8 / SS(fs)) != FR_OK) return 0xFFFFFFFF; /* (assuming bitmap is located top of the cluster heap) */ i = val / 8 % SS(fs); bm = 1 << (val % 8); do { do { bv = fs->win[i] & bm; bm <<= 1; /* Get bit value */ if (++val >= fs->n_fatent - 2) { /* Next cluster (with wrap-around) */ - val = 0; bm = 0; i = 4096; + val = 0; bm = 0; i = SS(fs); } if (!bv) { /* Is it a free cluster? */ - if (++ctr == ncl) return scl + 2; /* Check run length */ + if (++ctr == ncl) return scl + 2; /* Check if run length is sufficient for required */ } else { - scl = val; ctr = 0; /* Encountered a live cluster, restart to scan */ + scl = val; ctr = 0; /* Encountered a cluster in-use, restart to scan */ } if (val == clst) return 0; /* All cluster scanned? */ } while (bm); @@ -1162,9 +1179,9 @@ DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Dis } -/*------------------------------------*/ -/* exFAT: Set/Clear a block of bitmap */ -/*------------------------------------*/ +/*----------------------------------------*/ +/* Set/Clear a block of allocation bitmap */ +/*----------------------------------------*/ static FRESULT change_bitmap ( @@ -1178,9 +1195,8 @@ FRESULT change_bitmap ( UINT i; DWORD sect; - clst -= 2; /* The first bit corresponds to cluster #2 */ - sect = fs->database + clst / 8 / SS(fs); /* Sector address */ + sect = fs->database + clst / 8 / SS(fs); /* Sector address (assuming bitmap is located top of the cluster heap) */ i = clst / 8 % SS(fs); /* Byte offset in the sector */ bm = 1 << (clst % 8); /* Bit mask in the byte */ for (;;) { @@ -1200,11 +1216,11 @@ FRESULT change_bitmap ( /*---------------------------------------------*/ -/* Complement contiguous part of the FAT chain */ +/* Fill the first fragment of the FAT chain */ /*---------------------------------------------*/ static -FRESULT fill_fat_chain ( +FRESULT fill_first_frag ( _FDID* obj /* Pointer to the corresponding object */ ) { @@ -1221,6 +1237,28 @@ FRESULT fill_fat_chain ( return FR_OK; } + +/*---------------------------------------------*/ +/* Fill the last fragment of the FAT chain */ +/*---------------------------------------------*/ + +static +FRESULT fill_last_frag ( + _FDID* obj, /* Pointer to the corresponding object */ + DWORD lcl, /* Last cluster of the fragment */ + DWORD term /* Value to set the last FAT entry */ +) +{ + FRESULT res; + + while (obj->n_frag > 0) { /* Create the last chain on the FAT */ + res = put_fat(obj->fs, lcl - obj->n_frag + 1, (obj->n_frag > 1) ? lcl - obj->n_frag + 2 : term); + if (res != FR_OK) return res; + obj->n_frag--; + } + return FR_OK; +} + #endif /* _FS_EXFAT && !_FS_READONLY */ @@ -1271,7 +1309,7 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ #if _FS_EXFAT || _USE_TRIM if (ecl + 1 == nxt) { /* Is next cluster contiguous? */ ecl = nxt; - } else { /* End of contiguous cluster block */ + } else { /* End of contiguous cluster block */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { res = change_bitmap(fs, scl, ecl - scl + 1, 0); /* Mark the cluster block 'free' on the bitmap */ @@ -1291,11 +1329,25 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - if (pclst == 0) { /* Does object have no chain? */ + if (pclst == 0) { /* Does the object have no chain? */ obj->stat = 0; /* Change the object status 'initial' */ } else { - if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Did the chain got contiguous? */ - obj->stat = 2; /* Change the object status 'contiguous' */ + if (obj->stat == 0) { /* Is it a fragmented chain from the beginning of this session? */ + clst = obj->sclust; /* Follow the chain to check if it gets contiguous */ + while (clst != pclst) { + nxt = get_fat(obj, clst); + if (nxt < 2) return FR_INT_ERR; + if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; + if (nxt != clst + 1) break; /* Not contiguous? */ + clst++; + } + if (clst == pclst) { /* Has the chain got contiguous again? */ + obj->stat = 2; /* Change the chain status 'contiguous' */ + } + } else { + if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Was the chain fragmented in this session and got contiguous again? */ + obj->stat = 2; /* Change the chain status 'contiguous' */ + } } } } @@ -1321,35 +1373,44 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err if (clst == 0) { /* Create a new chain */ - scl = fs->last_clst; /* Get suggested cluster to start at */ + scl = fs->last_clst; /* Get suggested cluster to start from */ if (scl == 0 || scl >= fs->n_fatent) scl = 1; } else { /* Stretch current chain */ cs = get_fat(obj, clst); /* Check the cluster status */ - if (cs < 2) return 1; /* Invalid value */ + if (cs < 2) return 1; /* Invalid FAT value */ if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ scl = clst; } #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ ncl = find_bitmap(fs, scl, 1); /* Find a free cluster */ if (ncl == 0 || ncl == 0xFFFFFFFF) return ncl; /* No free cluster or hard error? */ res = change_bitmap(fs, ncl, 1, 1); /* Mark the cluster 'in use' */ if (res == FR_INT_ERR) return 1; if (res == FR_DISK_ERR) return 0xFFFFFFFF; if (clst == 0) { /* Is it a new chain? */ - obj->stat = 2; /* Set status 'contiguous chain' */ - } else { /* This is a stretched chain */ + obj->stat = 2; /* Set status 'contiguous' */ + } else { /* It is a stretched chain */ if (obj->stat == 2 && ncl != scl + 1) { /* Is the chain got fragmented? */ obj->n_cont = scl - obj->sclust; /* Set size of the contiguous part */ obj->stat = 3; /* Change status 'just fragmented' */ } } + if (obj->stat != 2) { /* Is the file non-contiguous? */ + if (ncl == clst + 1) { /* Is the cluster next to previous one? */ + obj->n_frag = obj->n_frag ? obj->n_frag + 1 : 2; /* Increment size of last framgent */ + } else { /* New fragment */ + if (obj->n_frag == 0) obj->n_frag = 1; + res = fill_last_frag(obj, clst, ncl); /* Fill last fragment on the FAT and link it to new one */ + if (res == FR_OK) obj->n_frag = 1; + } + } } else #endif - { /* At the FAT12/16/32 */ + { /* On the FAT12/16/32 volume */ ncl = scl; /* Start cluster */ for (;;) { ncl++; /* Next cluster */ @@ -1362,23 +1423,18 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */ if (ncl == scl) return 0; /* No free cluster */ } - } - - if (_FS_EXFAT && fs->fs_type == FS_EXFAT && obj->stat == 2) { /* Is it a contiguous chain? */ - res = FR_OK; /* FAT does not need to be written */ - } else { res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */ - if (res == FR_OK && clst) { + if (res == FR_OK && clst != 0) { res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ } } if (res == FR_OK) { /* Update FSINFO if function succeeded. */ fs->last_clst = ncl; - if (fs->free_clst < fs->n_fatent - 2) fs->free_clst--; + if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--; fs->fsi_flag |= 1; } else { - ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Create error status */ + ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Generate error status */ } return ncl; /* Return new cluster number or error status */ @@ -1520,7 +1576,7 @@ FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Cou } fs->winsect -= n; /* Restore window offset */ #else - if (!stretch) dp->sect = 0; /* If no stretch, report EOT (this is to suppress warning) */ + if (!stretch) dp->sect = 0; /* (this line is to suppress compiler warning) */ dp->sect = 0; return FR_NO_FILE; /* Report EOT */ #endif } @@ -1677,9 +1733,9 @@ int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ WCHAR wc, uc; - if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */ + if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO is 0 */ - i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */ + i = ((dir[LDIR_Ord] & ~LLEF) - 1) * 13; /* Offset in the LFN buffer */ for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ @@ -1775,7 +1831,7 @@ void gen_numname ( /* itoa (hexdecimal) */ i = 7; do { - c = (seq % 16) + '0'; + c = (BYTE)((seq % 16) + '0'); if (c > '9') c += 7; ns[i--] = c; seq /= 16; @@ -1810,7 +1866,9 @@ BYTE sum_sfn ( BYTE sum = 0; UINT n = 11; - do sum = (sum >> 1) + (sum << 7) + *dir++; while (--n); + do { + sum = (sum >> 1) + (sum << 7) + *dir++; + } while (--n); return sum; } @@ -1894,30 +1952,26 @@ void get_xdir_info ( #endif /* Get file name */ + di = 0; #if _LFN_UNICODE - if (dirb[XDIR_NumName] <= _MAX_LFN) { - for (si = SZDIRE * 2, di = 0; di < dirb[XDIR_NumName]; si += 2, di++) { - if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ - w = ld_word(dirb + si); /* Get a character */ - fno->fname[di] = w; /* Store it */ - } - } else { - di = 0; /* Buffer overflow and inaccessible object */ + for (si = SZDIRE * 2; di < dirb[XDIR_NumName]; si += 2, di++) { + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + w = ld_word(dirb + si); /* Get a character */ + if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow --> inaccessible object name */ + fno->fname[di] = w; /* Store it */ } #else - for (si = SZDIRE * 2, di = nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) { - if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ - w = ld_word(dirb + si); /* Get a character */ - w = ff_convert(w, 0); /* Unicode -> OEM */ - if (w == 0) { di = 0; break; } /* Could not be converted and inaccessible object */ - if (_DF1S && w >= 0x100) { /* Put 1st byte if it is a DBC (always false at SBCS cfg) */ - fno->fname[di++] = (char)(w >> 8); + for (si = SZDIRE * 2, nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) { + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + w = ff_convert(ld_word(dirb + si), 0); /* Get a character and Unicode -> OEM */ + if (_DF1S && w >= 0x100) { /* Is it a double byte char? (always false at SBCS cfg) */ + fno->fname[di++] = (char)(w >> 8); /* Put 1st byte of the DBC */ } - if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow and inaccessible object */ + if (w == 0 || di >= _MAX_LFN) { di = 0; break; } /* Invalid char or buffer overflow --> inaccessible object name */ fno->fname[di++] = (char)w; } #endif - if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object? */ + if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object name? */ fno->fname[di] = 0; /* Terminate file name */ fno->altname[0] = 0; /* No SFN */ @@ -1940,7 +1994,7 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ ) { FRESULT res; - UINT i, nent; + UINT i, sz_ent; BYTE* dirb = dp->obj.fs->dirbuf; /* Pointer to the on-memory direcotry entry block 85+C0+C1s */ @@ -1948,8 +2002,9 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; if (dp->dir[XDIR_Type] != 0x85) return FR_INT_ERR; - mem_cpy(dirb, dp->dir, SZDIRE); - nent = dirb[XDIR_NumSec] + 1; + mem_cpy(dirb + 0, dp->dir, SZDIRE); + sz_ent = (dirb[XDIR_NumSec] + 1) * SZDIRE; + if (sz_ent < 3 * SZDIRE || sz_ent > 19 * SZDIRE) return FR_INT_ERR; /* Load C0 entry */ res = dir_next(dp, 0); @@ -1958,48 +2013,48 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ if (res != FR_OK) return res; if (dp->dir[XDIR_Type] != 0xC0) return FR_INT_ERR; mem_cpy(dirb + SZDIRE, dp->dir, SZDIRE); + if (MAXDIRB(dirb[XDIR_NumName]) > sz_ent) return FR_INT_ERR; /* Load C1 entries */ - if (nent < 3 || nent > 19) return FR_NO_FILE; - i = SZDIRE * 2; nent *= SZDIRE; + i = SZDIRE * 2; /* C1 offset */ do { res = dir_next(dp, 0); if (res != FR_OK) return res; res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; if (dp->dir[XDIR_Type] != 0xC1) return FR_INT_ERR; - mem_cpy(dirb + i, dp->dir, SZDIRE); - i += SZDIRE; - } while (i < nent); - - /* Sanity check */ - if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; + if (i < MAXDIRB(_MAX_LFN)) mem_cpy(dirb + i, dp->dir, SZDIRE); + } while ((i += SZDIRE) < sz_ent); + /* Sanity check (do it when accessible object name) */ + if (i <= MAXDIRB(_MAX_LFN)) { + if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; + } return FR_OK; } -#if !_FS_READONLY || _FS_RPATH != 0 +#if !_FS_READONLY || _FS_RPATH != 0 /*------------------------------------------------*/ /* exFAT: Load the object's directory entry block */ /*------------------------------------------------*/ static FRESULT load_obj_dir ( DIR* dp, /* Blank directory object to be used to access containing direcotry */ - const _FDID* obj /* Object with containing directory information */ + const _FDID* obj /* Object with its containing directory information */ ) { FRESULT res; - /* Open object containing directory */ dp->obj.fs = obj->fs; dp->obj.sclust = obj->c_scl; dp->obj.stat = (BYTE)obj->c_size; dp->obj.objsize = obj->c_size & 0xFFFFFF00; + dp->obj.n_frag = 0; dp->blk_ofs = obj->c_ofs; - res = dir_sdi(dp, dp->blk_ofs); /* Goto the block location */ + res = dir_sdi(dp, dp->blk_ofs); /* Goto object's entry block */ if (res == FR_OK) { res = load_xdir(dp); /* Load the object's entry block */ } @@ -2056,24 +2111,25 @@ void create_xdir ( WCHAR chr; - mem_set(dirb, 0, 2 * SZDIRE); /* Initialize 85+C0 entry */ + /* Create 85+C0 entry */ + mem_set(dirb, 0, 2 * SZDIRE); dirb[XDIR_Type] = 0x85; dirb[XDIR_Type + SZDIRE] = 0xC0; - st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ - i = SZDIRE * 2; /* C1 offset */ - nc = 0; nb = 1; chr = 1; + /* Create C1 entries */ + nc = 0; nb = 1; chr = 1; i = SZDIRE * 2; do { dirb[i++] = 0xC1; dirb[i++] = 0; /* Entry type C1 */ do { /* Fill name field */ if (chr && (chr = lfn[nc]) != 0) nc++; /* Get a character if exist */ - st_word(dirb + i, chr); i += 2; /* Store it */ - } while (i % SZDIRE); + st_word(dirb + i, chr); /* Store it */ + } while ((i += 2) % SZDIRE != 0); nb++; } while (lfn[nc]); /* Fill next entry if any char follows */ dirb[XDIR_NumName] = nc; /* Set name length */ - dirb[XDIR_NumSec] = nb; /* Set number of C0+C1s */ + dirb[XDIR_NumSec] = nb; /* Set block length */ + st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ } #endif /* !_FS_READONLY */ @@ -2103,9 +2159,11 @@ FRESULT dir_read ( res = move_window(fs, dp->sect); if (res != FR_OK) break; c = dp->dir[DIR_Name]; /* Test for the entry type */ - if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of the directory */ + if (c == 0) { + res = FR_NO_FILE; break; /* Reached to end of the directory */ + } #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ if (_USE_LABEL && vol) { if (c == 0x83) break; /* Volume label entry? */ } else { @@ -2120,7 +2178,7 @@ FRESULT dir_read ( } } else #endif - { /* At the FAT12/16/32 */ + { /* On the FAT12/16/32 volume */ dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */ #if _USE_LFN != 0 /* LFN configuration */ if (c == DDEM || c == '.' || (int)((a & ~AM_ARC) == AM_VOL) != vol) { /* An entry without valid data */ @@ -2129,7 +2187,7 @@ FRESULT dir_read ( if (a == AM_LFN) { /* An LFN entry is found */ if (c & LLEF) { /* Is it start of an LFN sequence? */ sum = dp->dir[LDIR_Chksum]; - c &= ~LLEF; ord = c; + c &= (BYTE)~LLEF; ord = c; dp->blk_ofs = dp->dptr; } /* Check LFN validity and capture it */ @@ -2178,13 +2236,16 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ res = dir_sdi(dp, 0); /* Rewind directory object */ if (res != FR_OK) return res; #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ BYTE nc; UINT di, ni; WORD hash = xname_sum(fs->lfnbuf); /* Hash value of the name to find */ while ((res = dir_read(dp, 0)) == FR_OK) { /* Read an item */ - if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip the comparison if hash value mismatched */ +#if _MAX_LFN < 255 + if (fs->dirbuf[XDIR_NumName] > _MAX_LFN) continue; /* Skip comparison if inaccessible object name */ +#endif + if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip comparison if hash mismatched */ for (nc = fs->dirbuf[XDIR_NumName], di = SZDIRE * 2, ni = 0; nc; nc--, di += 2, ni++) { /* Compare the name */ if ((di % SZDIRE) == 0) di += 2; if (ff_wtoupper(ld_word(fs->dirbuf + di)) != ff_wtoupper(fs->lfnbuf[ni])) break; @@ -2194,7 +2255,7 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ return res; } #endif - /* At the FAT12/16/32 */ + /* On the FAT12/16/32 volume */ #if _USE_LFN != 0 ord = sum = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ #endif @@ -2212,7 +2273,7 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ if (!(dp->fn[NSFLAG] & NS_NOLFN)) { if (c & LLEF) { /* Is it start of LFN sequence? */ sum = dp->dir[LDIR_Chksum]; - c &= ~LLEF; ord = c; /* LFN start order */ + c &= (BYTE)~LLEF; ord = c; /* LFN start order */ dp->blk_ofs = dp->dptr; /* Start offset of LFN */ } /* Check validity of the LFN entry and compare it with given name */ @@ -2258,33 +2319,37 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S for (nlen = 0; fs->lfnbuf[nlen]; nlen++) ; /* Get lfn length */ #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ DIR dj; nent = (nlen + 14) / 15 + 2; /* Number of entries to allocate (85+C0+C1s) */ res = dir_alloc(dp, nent); /* Allocate entries */ if (res != FR_OK) return res; - dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set block position */ + dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set the allocated entry block offset */ - if (dp->obj.sclust != 0 && (dp->obj.stat & 4)) { /* Has the sub-directory been stretched? */ - dp->obj.stat &= 3; - dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase object size by cluster size */ - res = fill_fat_chain(&dp->obj); /* Complement FAT chain if needed */ + if (dp->obj.stat & 4) { /* Has the directory been stretched? */ + dp->obj.stat &= ~4; + res = fill_first_frag(&dp->obj); /* Fill the first fragment on the FAT if needed */ if (res != FR_OK) return res; - res = load_obj_dir(&dj, &dp->obj); - if (res != FR_OK) return res; /* Load the object status */ - st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */ - st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); - fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; - res = store_xdir(&dj); /* Store the object status */ + res = fill_last_frag(&dp->obj, dp->clust, 0xFFFFFFFF); /* Fill the last fragment on the FAT if needed */ if (res != FR_OK) return res; + if (dp->obj.sclust != 0) { /* Is it a sub directory? */ + res = load_obj_dir(&dj, &dp->obj); /* Load the object status */ + if (res != FR_OK) return res; + dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase the directory size by cluster size */ + st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */ + st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); + fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; + res = store_xdir(&dj); /* Store the object status */ + if (res != FR_OK) return res; + } } create_xdir(fs->dirbuf, fs->lfnbuf); /* Create on-memory directory block to be written later */ return FR_OK; } #endif - /* At the FAT12/16/32 */ + /* On the FAT12/16/32 volume */ mem_cpy(sn, dp->fn, 12); if (sn[NSFLAG] & NS_LOSS) { /* When LFN is out of 8.3 format, generate a numbered name */ dp->fn[NSFLAG] = NS_NOLFN; /* Find only SFN */ @@ -2361,9 +2426,9 @@ FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ res = move_window(fs, dp->sect); if (res != FR_OK) break; /* Mark an entry 'deleted' */ - if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ dp->dir[XDIR_Type] &= 0x7F; - } else { /* At the FAT12/16/32 */ + } else { /* On the FAT12/16/32 volume */ dp->dir[DIR_Name] = DDEM; } fs->wflag = 1; @@ -2413,12 +2478,12 @@ void get_fileinfo ( /* No return code */ #if _USE_LFN != 0 /* LFN configuration */ #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ get_xdir_info(fs->dirbuf, fno); return; } else #endif - { /* At the FAT12/16/32 */ + { /* On the FAT12/16/32 volume */ if (dp->blk_ofs != 0xFFFFFFFF) { /* Get LFN if available */ i = j = 0; while ((w = fs->lfnbuf[j++]) != 0) { /* Get an LFN character */ @@ -2455,7 +2520,7 @@ void get_fileinfo ( /* No return code */ #endif fno->altname[j] = c; if (!lfv) { - if (IsUpper(c) && (dp->dir[DIR_NTres] & (i >= 9 ? NS_EXT : NS_BODY))) { + if (IsUpper(c) && (dp->dir[DIR_NTres] & ((i >= 9) ? NS_EXT : NS_BODY))) { c += 0x20; /* To lower */ } fno->fname[j] = c; @@ -2628,7 +2693,7 @@ FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ if (si) cf |= NS_LOSS | NS_LFN; while (di && lfn[di - 1] != '.') di--; /* Find extension (di<=si: no extension) */ - b = i = 0; ni = 8; + i = b = 0; ni = 8; for (;;) { w = lfn[si++]; /* Get an LFN character */ if (!w) break; /* Break on end of the LFN */ @@ -2776,14 +2841,16 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ #if _FS_RPATH != 0 if (*path != '/' && *path != '\\') { /* Without heading separator */ - obj->sclust = fs->cdir; /* Start from the current directory */ + obj->sclust = fs->cdir; /* Start from current directory */ } else #endif { /* With heading separator */ while (*path == '/' || *path == '\\') path++; /* Strip heading separator */ - obj->sclust = 0; /* Start from the root directory */ + obj->sclust = 0; /* Start from root directory */ } -#if _FS_EXFAT && _FS_RPATH != 0 +#if _FS_EXFAT + obj->n_frag = 0; /* Invalidate last fragment counter of the object */ +#if _FS_RPATH != 0 if (fs->fs_type == FS_EXFAT && obj->sclust) { /* Retrieve the sub-directory status if needed */ DIR dj; @@ -2795,6 +2862,7 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ obj->objsize = ld_dword(fs->dirbuf + XDIR_FileSize); obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; } +#endif #endif if ((UINT)*path < ' ') { /* Null path name is the origin directory itself */ @@ -2825,8 +2893,8 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ res = FR_NO_PATH; break; } #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { - obj->c_scl = obj->sclust; /* Save containing directory information for next dir */ + if (fs->fs_type == FS_EXFAT) { /* Save containing directory information for next dir */ + obj->c_scl = obj->sclust; obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; obj->c_ofs = dp->blk_ofs; obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Open next directory */ @@ -2859,7 +2927,7 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ UINT i; int vol = -1; #if _STR_VOLUME_ID /* Find string drive id */ - static const char* const str[] = {_VOLUME_STRS}; + static const char* const volid[] = {_VOLUME_STRS}; const char *sp; char c; TCHAR tc; @@ -2870,7 +2938,7 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ for (tt = *path; (UINT)*tt >= (_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find ':' in the path */ if (*tt == ':') { /* If a ':' is exist in the path name */ tp = *path; - i = *tp++ - '0'; + i = *tp++ - '0'; if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ vol = (int)i; @@ -2881,7 +2949,7 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ else { /* No numeric drive number, find string drive id */ i = 0; tt++; do { - sp = str[i]; tp = *path; + sp = volid[i]; tp = *path; do { /* Compare a string drive id with path name */ c = *sp++; tc = *tp++; if (IsLower(tc)) tc -= 0x20; @@ -2914,13 +2982,13 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ static BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4:Disk error */ FATFS* fs, /* File system object */ - DWORD sect /* Sector# (lba) to check if it is an FAT-VBR or not */ + DWORD sect /* Sector# (lba) to load and check if it is an FAT-VBR or not */ ) { fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */ if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */ - if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed at offset 510 even if the sector size is >512) */ + if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed here even if the sector size is >512) */ if (fs->win[BS_JmpBoot] == 0xE9 || (fs->win[BS_JmpBoot] == 0xEB && fs->win[BS_JmpBoot + 2] == 0x90)) { if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string */ @@ -2955,7 +3023,7 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ UINT i; - /* Get logical drive number from the path name */ + /* Get logical drive number */ *rfs = 0; vol = get_ldnumber(path); if (vol < 0) return FR_INVALID_DRIVE; @@ -2967,7 +3035,7 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ ENTER_FF(fs); /* Lock the volume */ *rfs = fs; /* Return pointer to the file system object */ - mode &= ~FA_READ; /* Desired access mode, write access or not */ + mode &= (BYTE)~FA_READ; /* Desired access mode, write access or not */ if (fs->fs_type) { /* If the volume has been mounted */ stat = disk_status(fs->drv); if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ @@ -2990,29 +3058,30 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */ return FR_WRITE_PROTECTED; } -#if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */ +#if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */ if (disk_ioctl(fs->drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR; if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR; #endif - /* Find an FAT partition on the drive. Supports only generic partitioning, FDISK and SFD. */ + + /* Find an FAT partition on the drive. Supports only generic partitioning rules, FDISK and SFD. */ bsect = 0; fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT-VBR as SFD */ if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */ - for (i = 0; i < 4; i++) { /* Get partition offset */ + for (i = 0; i < 4; i++) { /* Get partition offset */ pt = fs->win + (MBR_Table + i * SZ_PTE); br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; } - i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */ + i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */ if (i) i--; - do { /* Find an FAT volume */ + do { /* Find an FAT volume */ bsect = br[i]; fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */ - } while (!LD2PT(vol) && fmt >= 2 && ++i < 4); + } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4); } if (fmt == 4) return FR_DISK_ERR; /* An error occured in the disk I/O layer */ if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ - /* An FAT volume is found. Following code initializes the file system object */ + /* An FAT volume is found (bsect). Following code initializes the file system object */ #if _FS_EXFAT if (fmt == 1) { @@ -3023,8 +3092,9 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT revision (Must be 1.0) */ - if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ + if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) { /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ return FR_NO_FILESYSTEM; + } maxlba = ld_qword(fs->win + BPB_TotSecEx) + bsect; /* Last LBA + 1 of the volume */ if (maxlba >= 0x100000000) return FR_NO_FILESYSTEM; /* (It cannot be handled in 32-bit LBA) */ @@ -3045,7 +3115,7 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ fs->volbase = bsect; fs->database = bsect + ld_dword(fs->win + BPB_DataOfsEx); fs->fatbase = bsect + ld_dword(fs->win + BPB_FatOfsEx); - if (maxlba < fs->database + nclst * fs->csize) return FR_NO_FILESYSTEM; /* (Volume size must not be smaller than the size requiered) */ + if (maxlba < (QWORD)fs->database + nclst * fs->csize) return FR_NO_FILESYSTEM; /* (Volume size must not be smaller than the size requiered) */ fs->dirbase = ld_dword(fs->win + BPB_RootClusEx); /* Check if bitmap location is in assumption (at the first cluster) */ @@ -3063,49 +3133,49 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ { if (ld_word(fs->win + BPB_BytsPerSec) != SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_BytsPerSec must be equal to the physical sector size) */ - fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */ + fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */ if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); fs->fsize = fasize; - fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */ + fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */ if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */ - fasize *= fs->n_fats; /* Number of sectors for FAT area */ + fasize *= fs->n_fats; /* Number of sectors for FAT area */ - fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */ + fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */ if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power of 2) */ fs->n_rootdir = ld_word(fs->win + BPB_RootEntCnt); /* Number of root directory entries */ if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */ - tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */ + tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */ if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); - nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */ - if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ + nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */ + if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ /* Determine the FAT sub type */ sysect = nrsv + fasize + fs->n_rootdir / (SS(fs) / SZDIRE); /* RSV + FAT + DIR */ - if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ - nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ - if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ + if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ fmt = FS_FAT32; if (nclst <= MAX_FAT16) fmt = FS_FAT16; if (nclst <= MAX_FAT12) fmt = FS_FAT12; /* Boundaries and Limits */ - fs->n_fatent = nclst + 2; /* Number of FAT entries */ - fs->volbase = bsect; /* Volume start sector */ - fs->fatbase = bsect + nrsv; /* FAT start sector */ - fs->database = bsect + sysect; /* Data start sector */ + fs->n_fatent = nclst + 2; /* Number of FAT entries */ + fs->volbase = bsect; /* Volume start sector */ + fs->fatbase = bsect + nrsv; /* FAT start sector */ + fs->database = bsect + sysect; /* Data start sector */ if (fmt == FS_FAT32) { if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0) */ - if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ + if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ - szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ + szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ } else { if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM;/* (BPB_RootEntCnt must not be 0) */ - fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ - szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ + fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ + szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1); } if (fs->fsize < (szbfat + (SS(fs) - 1)) / SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_FATSz must not be less than the size needed) */ @@ -3136,18 +3206,18 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ #endif /* !_FS_READONLY */ } - fs->fs_type = fmt; /* FAT sub-type */ - fs->id = ++Fsid; /* File system mount ID */ + fs->fs_type = fmt; /* FAT sub-type */ + fs->id = ++Fsid; /* File system mount ID */ #if _USE_LFN == 1 fs->lfnbuf = LfnBuf; /* Static LFN working buffer */ #if _FS_EXFAT - fs->dirbuf = DirBuf; /* Static directory block working buuffer */ + fs->dirbuf = DirBuf; /* Static directory block scratchpad buuffer */ #endif #endif #if _FS_RPATH != 0 - fs->cdir = 0; /* Initialize current directory */ + fs->cdir = 0; /* Initialize current directory */ #endif -#if _FS_LOCK != 0 /* Clear file lock semaphores */ +#if _FS_LOCK != 0 /* Clear file lock semaphores */ clear_lock(fs); #endif return FR_OK; @@ -3162,21 +3232,19 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ static FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ - void* dfp, /* Pointer to the FIL/DIR object to check validity */ + _FDID* obj, /* Pointer to the _OBJ, the 1st member in the FIL/DIR object, to check validity */ FATFS** fs /* Pointer to pointer to the owner file system object to return */ ) { - _FDID *obj = (_FDID*)dfp; /* Assuming .obj in the FIL/DIR is the first member */ FRESULT res; - - if (!dfp || !obj->fs || !obj->fs->fs_type || obj->fs->id != obj->id || (disk_status(obj->fs->drv) & STA_NOINIT)) { - *fs = 0; /* The object is invalid */ - res = FR_INVALID_OBJECT; + if (!obj || !obj->fs || !obj->fs->fs_type || obj->fs->id != obj->id || (disk_status(obj->fs->drv) & STA_NOINIT)) { + *fs = 0; + res = FR_INVALID_OBJECT; /* The object is invalid */ } else { *fs = obj->fs; /* Owner file sytem object */ ENTER_FF(obj->fs); /* Lock file system */ - res = FR_OK; + res = FR_OK; /* Valid object */ } return res; } @@ -3208,6 +3276,7 @@ FRESULT f_mount ( const TCHAR *rp = path; + /* Get logical drive number */ vol = get_ldnumber(&rp); if (vol < 0) return FR_INVALID_DRIVE; cfs = FatFs[vol]; /* Pointer to fs object */ @@ -3261,7 +3330,7 @@ FRESULT f_open ( if (!fp) return FR_INVALID_OBJECT; - /* Get logical drive number */ + /* Get logical drive */ mode &= _FS_READONLY ? FA_READ : FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_ALWAYS | FA_OPEN_APPEND | FA_SEEKEND; res = find_volume(&path, &fs, mode); if (res == FR_OK) { @@ -3282,12 +3351,13 @@ FRESULT f_open ( /* Create or Open a file */ if (mode & (FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW)) { if (res != FR_OK) { /* No file, create new */ - if (res == FR_NO_FILE) /* There is no file to open, create a new entry */ + if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */ #if _FS_LOCK != 0 res = enq_lock() ? dir_register(&dj) : FR_TOO_MANY_OPEN_FILES; #else res = dir_register(&dj); #endif + } mode |= FA_CREATE_ALWAYS; /* File is created */ } else { /* Any object is already existing */ @@ -3306,6 +3376,7 @@ FRESULT f_open ( fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + fp->obj.n_frag = 0; /* Initialize directory entry block */ st_dword(fs->dirbuf + XDIR_CrtTime, dw); /* Set created time */ fs->dirbuf[XDIR_CrtTime10] = 0; @@ -3380,16 +3451,17 @@ FRESULT f_open ( if (res == FR_OK) { #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get allocation info */ - fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); - fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; - fp->obj.c_scl = dj.obj.sclust; + fp->obj.c_scl = dj.obj.sclust; /* Get containing directory info */ fp->obj.c_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; fp->obj.c_ofs = dj.blk_ofs; + fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */ + fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + fp->obj.n_frag = 0; } else #endif { - fp->obj.sclust = ld_clust(fs, dj.dir); /* Get allocation info */ + fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */ fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); } #if _USE_FASTSEEK @@ -3459,7 +3531,7 @@ FRESULT f_read ( BYTE *rbuff = (BYTE*)buff; *br = 0; /* Clear read byte counter */ - res = validate(fp, &fs); + res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ remain = fp->obj.objsize - fp->fptr; @@ -3494,9 +3566,7 @@ FRESULT f_read ( if (csect + cc > fs->csize) { /* Clip at cluster boundary */ cc = fs->csize - csect; } - if (disk_read(fs->drv, rbuff, sect, cc) != RES_OK) { - ABORT(fs, FR_DISK_ERR); - } + if (disk_read(fs->drv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); #if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it contains a dirty sector */ #if _FS_TINY if (fs->wflag && fs->winsect - sect < cc) { @@ -3516,12 +3586,10 @@ FRESULT f_read ( #if !_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { /* Fill sector cache */ - ABORT(fs, FR_DISK_ERR); - } + if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ } #endif fp->sect = sect; @@ -3562,7 +3630,7 @@ FRESULT f_write ( *bw = 0; /* Clear write byte counter */ - res = validate(fp, &fs); + res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ @@ -3602,7 +3670,7 @@ FRESULT f_write ( #else if (fp->flag & FA_DIRTY) { /* Write-back sector cache */ if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif sect = clust2sect(fs, fp->clust); /* Get current sector */ @@ -3613,9 +3681,7 @@ FRESULT f_write ( if (csect + cc > fs->csize) { /* Clip at cluster boundary */ cc = fs->csize - csect; } - if (disk_write(fs->drv, wbuff, sect, cc) != RES_OK) { - ABORT(fs, FR_DISK_ERR); - } + if (disk_write(fs->drv, wbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); #if _FS_MINIMIZE <= 2 #if _FS_TINY if (fs->winsect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ @@ -3625,7 +3691,7 @@ FRESULT f_write ( #else if (fp->sect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif #endif @@ -3633,16 +3699,15 @@ FRESULT f_write ( continue; } #if _FS_TINY - if (fp->fptr >= fp->obj.objsize) { /* Avoid silly cache filling at growing edge */ + if (fp->fptr >= fp->obj.objsize) { /* Avoid silly cache filling on the growing edge */ if (sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); fs->winsect = sect; } #else - if (fp->sect != sect) { /* Fill sector cache with file data */ - if (fp->fptr < fp->obj.objsize && - disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { - ABORT(fs, FR_DISK_ERR); - } + if (fp->sect != sect && /* Fill sector cache with file data */ + fp->fptr < fp->obj.objsize && + disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { + ABORT(fs, FR_DISK_ERR); } #endif fp->sect = sect; @@ -3659,7 +3724,7 @@ FRESULT f_write ( #endif } - fp->flag |= FA_MODIFIED; /* Set file change flag */ + fp->flag |= FA_MODIFIED; /* Set file change flag */ LEAVE_FF(fs, FR_OK); } @@ -3680,26 +3745,28 @@ FRESULT f_sync ( DWORD tm; BYTE *dir; #if _FS_EXFAT + DIR dj; DEF_NAMBUF #endif - res = validate(fp, &fs); /* Check validity of the object */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res == FR_OK) { if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */ #if !_FS_TINY if (fp->flag & FA_DIRTY) { /* Write-back cached data if needed */ if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif /* Update the directory entry */ tm = GET_FATTIME(); /* Modified time */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - res = fill_fat_chain(&fp->obj); /* Create FAT chain if needed */ + res = fill_first_frag(&fp->obj); /* Fill first fragment on the FAT if needed */ + if (res == FR_OK) { + res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + } if (res == FR_OK) { - DIR dj; - INIT_NAMBUF(fs); res = load_obj_dir(&dj, &fp->obj); /* Load directory entry block */ if (res == FR_OK) { @@ -3714,7 +3781,7 @@ FRESULT f_sync ( res = store_xdir(&dj); /* Restore it to the directory */ if (res == FR_OK) { res = sync_fs(fs); - fp->flag &= ~FA_MODIFIED; + fp->flag &= (BYTE)~FA_MODIFIED; } } FREE_NAMBUF(); @@ -3732,7 +3799,7 @@ FRESULT f_sync ( st_word(dir + DIR_LstAccDate, 0); fs->wflag = 1; res = sync_fs(fs); /* Restore it to the directory */ - fp->flag &= ~FA_MODIFIED; + fp->flag &= (BYTE)~FA_MODIFIED; } } } @@ -3762,7 +3829,7 @@ FRESULT f_close ( if (res == FR_OK) #endif { - res = validate(fp, &fs); /* Lock volume */ + res = validate(&fp->obj, &fs); /* Lock volume */ if (res == FR_OK) { #if _FS_LOCK != 0 res = dec_lock(fp->obj.lockid); /* Decrement file open counter */ @@ -3795,10 +3862,11 @@ FRESULT f_chdrive ( int vol; + /* Get logical drive number */ vol = get_ldnumber(&path); if (vol < 0) return FR_INVALID_DRIVE; - CurrVol = (BYTE)vol; + CurrVol = (BYTE)vol; /* Set it as current volume */ return FR_OK; } @@ -3814,7 +3882,7 @@ FRESULT f_chdir ( FATFS *fs; DEF_NAMBUF - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&path, &fs, 0); if (res == FR_OK) { dj.obj.fs = fs; @@ -3873,7 +3941,7 @@ FRESULT f_getcwd ( *buff = 0; - /* Get logical drive number */ + /* Get logical drive */ res = find_volume((const TCHAR**)&buff, &fs, 0); /* Get current volume */ if (res == FR_OK) { dj.obj.fs = fs; @@ -3950,8 +4018,15 @@ FRESULT f_lseek ( DWORD cl, pcl, ncl, tcl, dsc, tlen, ulen, *tbl; #endif - res = validate(fp, &fs); /* Check validity of the object */ - if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res == FR_OK) res = (FRESULT)fp->err; +#if _FS_EXFAT && !_FS_READONLY + if (res == FR_OK && fs->fs_type == FS_EXFAT) { + res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + } +#endif + if (res != FR_OK) LEAVE_FF(fs, res); + #if _USE_FASTSEEK if (fp->cltbl) { /* Fast seek */ if (ofs == CREATE_LINKMAP) { /* Create CLMT */ @@ -3992,12 +4067,10 @@ FRESULT f_lseek ( #if !_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, dsc, 1) != RES_OK) { /* Load current sector */ - ABORT(fs, FR_DISK_ERR); - } + if (disk_read(fs->drv, fp->buf, dsc, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Load current sector */ #endif fp->sect = dsc; } @@ -4020,7 +4093,7 @@ FRESULT f_lseek ( bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */ if (ifptr > 0 && (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ - fp->fptr = (ifptr - 1) & ~(bcs - 1); /* start from the current cluster */ + fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */ ofs -= fp->fptr; clst = fp->clust; } else { /* When seek to back cluster, */ @@ -4044,13 +4117,15 @@ FRESULT f_lseek ( fp->obj.objsize = fp->fptr; fp->flag |= FA_MODIFIED; } - clst = create_chain(&fp->obj, clst); /* Force stretch if in write mode */ - if (clst == 0) { /* When disk gets full, clip file size */ + clst = create_chain(&fp->obj, clst); /* Follow chain with forceed stretch */ + if (clst == 0) { /* Clip file size in case of disk full */ ofs = 0; break; } } else #endif + { clst = get_fat(&fp->obj, clst); /* Follow cluster chain if not in write mode */ + } if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); fp->clust = clst; @@ -4063,26 +4138,22 @@ FRESULT f_lseek ( } } } + if (!_FS_READONLY && fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is extended */ + fp->obj.objsize = fp->fptr; + fp->flag |= FA_MODIFIED; + } if (fp->fptr % SS(fs) && nsect != fp->sect) { /* Fill sector cache if needed */ #if !_FS_TINY #if !_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, nsect, 1) != RES_OK) { /* Fill sector cache */ - ABORT(fs, FR_DISK_ERR); - } + if (disk_read(fs->drv, fp->buf, nsect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ #endif fp->sect = nsect; } -#if !_FS_READONLY - if (fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is extended */ - fp->obj.objsize = fp->fptr; - fp->flag |= FA_MODIFIED; - } -#endif } LEAVE_FF(fs, res); @@ -4108,7 +4179,7 @@ FRESULT f_opendir ( if (!dp) return FR_INVALID_OBJECT; - /* Get logical drive number */ + /* Get logical drive */ obj = &dp->obj; res = find_volume(&path, &fs, 0); if (res == FR_OK) { @@ -4120,16 +4191,16 @@ FRESULT f_opendir ( if (obj->attr & AM_DIR) { /* This object is a sub-directory */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - obj->c_scl = obj->sclust; /* Save containing directory inforamation */ + obj->c_scl = obj->sclust; /* Get containing directory inforamation */ obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; obj->c_ofs = dp->blk_ofs; - obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object location and status */ + obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */ obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; } else #endif { - obj->sclust = ld_clust(fs, dp->dir); /* Get object location */ + obj->sclust = ld_clust(fs, dp->dir); /* Get object allocation info */ } } else { /* This object is a file */ res = FR_NO_PATH; @@ -4173,7 +4244,7 @@ FRESULT f_closedir ( FATFS *fs; - res = validate(dp, &fs); + res = validate(&dp->obj, &fs); /* Check validity of the file object */ if (res == FR_OK) { #if _FS_LOCK != 0 if (dp->obj.lockid) { /* Decrement sub-directory open counter */ @@ -4208,7 +4279,7 @@ FRESULT f_readdir ( DEF_NAMBUF - res = validate(dp, &fs); /* Check validity of the object */ + res = validate(&dp->obj, &fs); /* Check validity of the directory object */ if (res == FR_OK) { if (!fno) { res = dir_sdi(dp, 0); /* Rewind the directory object */ @@ -4296,7 +4367,7 @@ FRESULT f_stat ( DEF_NAMBUF - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&path, &dj.obj.fs, 0); if (res == FR_OK) { INIT_NAMBUF(dj.obj.fs); @@ -4335,7 +4406,7 @@ FRESULT f_getfree ( _FDID obj; - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&path, &fs, 0); if (res == FR_OK) { *fatfs = fs; /* Return ptr to the fs object */ @@ -4417,11 +4488,11 @@ FRESULT f_truncate ( DWORD ncl; - res = validate(fp, &fs); /* Check validity of the object */ - if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ - if (fp->obj.objsize > fp->fptr) { + if (fp->fptr < fp->obj.objsize) { /* Process when fptr is not on the eof */ if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */ res = remove_chain(&fp->obj, fp->obj.sclust, 0); fp->obj.sclust = 0; @@ -4441,7 +4512,7 @@ FRESULT f_truncate ( if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) { res = FR_DISK_ERR; } else { - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } } #endif @@ -4472,7 +4543,7 @@ FRESULT f_unlink ( DEF_NAMBUF - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&path, &fs, FA_WRITE); dj.obj.fs = fs; if (res == FR_OK) { @@ -4504,7 +4575,7 @@ FRESULT f_unlink ( { dclst = ld_clust(fs, dj.dir); } - if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory ? */ + if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory? */ #if _FS_RPATH != 0 if (dclst == fs->cdir) { /* Is it the current directory? */ res = FR_DENIED; @@ -4566,7 +4637,7 @@ FRESULT f_mkdir ( DEF_NAMBUF - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&path, &fs, FA_WRITE); dj.obj.fs = fs; if (res == FR_OK) { @@ -4608,7 +4679,9 @@ FRESULT f_mkdir ( mem_set(dir, 0, SS(fs)); } } - if (res == FR_OK) res = dir_register(&dj); /* Register the object to the directoy */ + if (res == FR_OK) { + res = dir_register(&dj); /* Register the object to the directoy */ + } if (res == FR_OK) { #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */ @@ -4628,7 +4701,9 @@ FRESULT f_mkdir ( dir[DIR_Attr] = AM_DIR; /* Attribute */ fs->wflag = 1; } - if (res == FR_OK) res = sync_fs(fs); + if (res == FR_OK) { + res = sync_fs(fs); + } } else { remove_chain(&dj.obj, dcl, 0); /* Could not register, remove cluster chain */ } @@ -4659,15 +4734,17 @@ FRESULT f_rename ( DEF_NAMBUF - get_ldnumber(&path_new); /* Ignore drive number of new name */ - res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive number of the old object */ + get_ldnumber(&path_new); /* Snip drive number of new name off */ + res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ if (res == FR_OK) { djo.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&djo, path_old); /* Check old object */ if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check validity of name */ #if _FS_LOCK != 0 - if (res == FR_OK) res = chk_lock(&djo, 2); + if (res == FR_OK) { + res = chk_lock(&djo, 2); + } #endif if (res == FR_OK) { /* Object to be renamed is found */ #if _FS_EXFAT @@ -4677,17 +4754,19 @@ FRESULT f_rename ( mem_cpy(buf, fs->dirbuf, SZDIRE * 2); /* Save 85+C0 entry of old object */ mem_cpy(&djn, &djo, sizeof djo); - res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ - if (res == FR_OK) res = FR_EXIST; /* Is new name already in use? */ - if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ - res = dir_register(&djn); /* Register the new entry */ + res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ + if (res == FR_OK) { /* Is new name already in use by any other object? */ + res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; + } + if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ + res = dir_register(&djn); /* Register the new entry */ if (res == FR_OK) { nf = fs->dirbuf[XDIR_NumSec]; nn = fs->dirbuf[XDIR_NumName]; nh = ld_word(fs->dirbuf + XDIR_NameHash); mem_cpy(fs->dirbuf, buf, SZDIRE * 2); fs->dirbuf[XDIR_NumSec] = nf; fs->dirbuf[XDIR_NumName] = nn; st_word(fs->dirbuf + XDIR_NameHash, nh); -/* Start of critical section where any interruption can cause a cross-link */ +/* Start of critical section where an interruption can cause a cross-link */ res = store_xdir(&djn); } } @@ -4697,7 +4776,9 @@ FRESULT f_rename ( mem_cpy(buf, djo.dir + DIR_Attr, 21); /* Save information about the object except name */ mem_cpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */ res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ - if (res == FR_OK) res = FR_EXIST; /* Is new name already in use? */ + if (res == FR_OK) { /* Is new name already in use by any other object? */ + res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; + } if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ res = dir_register(&djn); /* Register the new entry */ if (res == FR_OK) { @@ -4710,7 +4791,7 @@ FRESULT f_rename ( if (!dw) { res = FR_INT_ERR; } else { -/* Start of critical section where any interruption can cause a cross-link */ +/* Start of critical section where an interruption can cause a cross-link */ res = move_window(fs, dw); dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ if (res == FR_OK && dir[1] == '.') { @@ -4728,7 +4809,7 @@ FRESULT f_rename ( res = sync_fs(fs); } } -/* End of critical section */ +/* End of the critical section */ } FREE_NAMBUF(); } @@ -4760,7 +4841,7 @@ FRESULT f_chmod ( DEF_NAMBUF - res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive number */ + res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */ dj.obj.fs = fs; if (res == FR_OK) { INIT_NAMBUF(fs); @@ -4778,7 +4859,9 @@ FRESULT f_chmod ( dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */ fs->wflag = 1; } - if (res == FR_OK) res = sync_fs(fs); + if (res == FR_OK) { + res = sync_fs(fs); + } } FREE_NAMBUF(); } @@ -4804,7 +4887,7 @@ FRESULT f_utime ( DEF_NAMBUF - res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive number */ + res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */ dj.obj.fs = fs; if (res == FR_OK) { INIT_NAMBUF(fs); @@ -4821,7 +4904,9 @@ FRESULT f_utime ( st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); fs->wflag = 1; } - if (res == FR_OK) res = sync_fs(fs); + if (res == FR_OK) { + res = sync_fs(fs); + } } FREE_NAMBUF(); } @@ -4852,7 +4937,7 @@ FRESULT f_getlabel ( WCHAR w; #endif - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&path, &fs, 0); /* Get volume label */ @@ -4909,9 +4994,14 @@ FRESULT f_getlabel ( res = move_window(fs, fs->volbase); if (res == FR_OK) { switch (fs->fs_type) { - case FS_EXFAT: di = BPB_VolIDEx; break; - case FS_FAT32: di = BS_VolID32; break; - default: di = BS_VolID; + case FS_EXFAT: + di = BPB_VolIDEx; break; + + case FS_FAT32: + di = BS_VolID32; break; + + default: + di = BS_VolID; } *vsn = ld_dword(fs->win + di); } @@ -4940,7 +5030,7 @@ FRESULT f_setlabel ( static const char badchr[] = "\"*+,.:;<=>\?[]|\x7F"; - /* Get logical drive number */ + /* Get logical drive */ res = find_volume(&label, &fs, FA_WRITE); if (res != FR_OK) LEAVE_FF(fs, res); dj.obj.fs = fs; @@ -4949,7 +5039,7 @@ FRESULT f_setlabel ( for (slen = 0; (UINT)label[slen] >= ' '; slen++) ; /* Get name length */ #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At the exFAT */ + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ for (i = j = 0; i < slen; ) { /* Create volume label in directory form */ w = label[i++]; #if !_LFN_UNICODE @@ -4966,7 +5056,7 @@ FRESULT f_setlabel ( slen = j; } else #endif - { /* At the FAT12/16/32 */ + { /* On the FAT12/16/32 volume */ for ( ; slen && label[slen - 1] == ' '; slen--) ; /* Remove trailing spaces */ if (slen) { /* Is there a volume label to be set? */ dirvn[0] = 0; i = j = 0; /* Create volume label in directory form */ @@ -5007,7 +5097,7 @@ FRESULT f_setlabel ( res = dir_read(&dj, 1); /* Get volume label entry */ if (res == FR_OK) { if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { - dj.dir[XDIR_NumLabel] = slen / 2; /* Change the volume label */ + dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); /* Change the volume label */ mem_cpy(dj.dir + XDIR_Label, dirvn, slen); } else { if (slen) { @@ -5027,7 +5117,7 @@ FRESULT f_setlabel ( mem_set(dj.dir, 0, SZDIRE); /* Clear the entry */ if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { dj.dir[XDIR_Type] = 0x83; /* Create 83 entry */ - dj.dir[XDIR_NumLabel] = slen / 2; + dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); mem_cpy(dj.dir + XDIR_Label, dirvn, slen); } else { dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */ @@ -5065,8 +5155,8 @@ FRESULT f_expand ( DWORD n, clst, stcl, scl, ncl, tcl, lclst; - res = validate(fp, &fs); /* Check validity of the object */ - if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); if (fsz == 0 || fp->obj.objsize != 0 || !(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); #if _FS_EXFAT if (fs->fs_type != FS_EXFAT && fsz >= 0x100000000) LEAVE_FF(fs, FR_DENIED); /* Check if in size limit */ @@ -5081,11 +5171,11 @@ FRESULT f_expand ( scl = find_bitmap(fs, stcl, tcl); /* Find a contiguous cluster block */ if (scl == 0) res = FR_DENIED; /* No contiguous cluster block was found */ if (scl == 0xFFFFFFFF) res = FR_DISK_ERR; - if (res == FR_OK) { - if (opt) { + if (res == FR_OK) { /* A contiguous free area is found */ + if (opt) { /* Allocate it now */ res = change_bitmap(fs, scl, tcl, 1); /* Mark the cluster block 'in use' */ lclst = scl + tcl - 1; - } else { + } else { /* Set it as suggested point for next allocation */ lclst = scl - 1; } } @@ -5105,14 +5195,14 @@ FRESULT f_expand ( } if (clst == stcl) { res = FR_DENIED; break; } /* No contiguous cluster? */ } - if (res == FR_OK) { - if (opt) { + if (res == FR_OK) { /* A contiguous free area is found */ + if (opt) { /* Allocate it now */ for (clst = scl, n = tcl; n; clst++, n--) { /* Create a cluster chain on the FAT */ res = put_fat(fs, clst, (n == 1) ? 0xFFFFFFFF : clst + 1); if (res != FR_OK) break; lclst = clst; } - } else { + } else { /* Set it as suggested point for next allocation */ lclst = scl - 1; } } @@ -5120,12 +5210,12 @@ FRESULT f_expand ( if (res == FR_OK) { fs->last_clst = lclst; /* Set suggested start cluster to start next */ - if (opt) { + if (opt) { /* Is it allocated now? */ fp->obj.sclust = scl; /* Update object allocation information */ fp->obj.objsize = fsz; if (_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */ fp->flag |= FA_MODIFIED; - if (fs->free_clst < fs->n_fatent - 2) { /* Update FSINFO */ + if (fs->free_clst <= fs->n_fatent - 2) { /* Update FSINFO */ fs->free_clst -= tcl; fs->fsi_flag |= 1; } @@ -5160,8 +5250,8 @@ FRESULT f_forward ( *bf = 0; /* Clear transfer byte counter */ - res = validate(fp, &fs); /* Check validity of the object */ - if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ remain = fp->obj.objsize - fp->fptr; @@ -5190,7 +5280,7 @@ FRESULT f_forward ( #if !_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); - fp->flag &= ~FA_DIRTY; + fp->flag &= (BYTE)~FA_DIRTY; } #endif if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); @@ -5212,27 +5302,27 @@ FRESULT f_forward ( #if _USE_MKFS && !_FS_READONLY /*-----------------------------------------------------------------------*/ -/* Create FAT file system on the logical drive */ +/* Create an FAT/exFAT volume */ /*-----------------------------------------------------------------------*/ FRESULT f_mkfs ( const TCHAR* path, /* Logical drive number */ BYTE opt, /* Format option */ - DWORD au, /* Size of allocation unit [byte] */ + DWORD au, /* Size of allocation unit (cluster) [byte] */ void* work, /* Pointer to working buffer */ UINT len /* Size of working buffer */ ) { const UINT n_fats = 1; /* Number of FATs for FAT12/16/32 volume (1 or 2) */ const UINT n_rootdir = 512; /* Number of root directory entries for FAT12/16 volume */ - static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT12/16 volume (4KS unit) */ - static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (128KS unit) */ + static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT12/16 volume (4Ks unit) */ + static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (128Ks unit) */ BYTE fmt, sys, *buf, *pte, pdrv, part; WORD ss; - DWORD n, pau, n_clst, sz_blk, sect, szb_buf, sz_buf; + DWORD szb_buf, sz_buf, sz_blk, n_clst, pau, sect, nsect, n; DWORD b_vol, b_fat, b_data; /* Base LBA for volume, fat, data */ DWORD sz_vol, sz_rsv, sz_fat, sz_dir; /* Size for volume, fat, dir, data */ - UINT i, ns; + UINT i; int vol; DSTATUS stat; #if _USE_TRIM || _FS_EXFAT @@ -5243,36 +5333,35 @@ FRESULT f_mkfs ( /* Check mounted drive and clear work area */ vol = get_ldnumber(&path); /* Get target logical drive */ if (vol < 0) return FR_INVALID_DRIVE; - if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear mounted volume */ + if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ pdrv = LD2PD(vol); /* Physical drive */ - part = LD2PT(vol); /* Partition (0:create as new, 1-4:get by partition table) */ + part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */ /* Check physical drive status */ stat = disk_initialize(pdrv); if (stat & STA_NOINIT) return FR_NOT_READY; if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; - if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk & (sz_blk - 1))) sz_blk = 1; -#if _MAX_SS != _MIN_SS /* Get sector size of the medium */ + if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk & (sz_blk - 1))) sz_blk = 1; /* Erase block to align data area */ +#if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ if (disk_ioctl(pdrv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR; if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; #else ss = _MAX_SS; #endif - if ((au != 0 && au < ss) || (au & (au - 1))) return FR_INVALID_PARAMETER; /* Check if au is valid */ - au /= ss; /* Cluster size in byte to in sector */ - if (au > 32768) return FR_INVALID_PARAMETER; + if ((au != 0 && au < ss) || au > 0x1000000 || (au & (au - 1))) return FR_INVALID_PARAMETER; /* Check if au is valid */ + au /= ss; /* Cluster size in unit of sector */ - /* Set size and pointer of the working buffer */ - buf = (BYTE*)work; /* Use given working buffer */ - if (len < ss) return FR_MKFS_ABORTED; - szb_buf = len & ~(ss - 1); /* Round-down by sector size [byte] */ - sz_buf = szb_buf / ss; /* Size of sector buffer [sector] */ + /* Get working buffer */ + buf = (BYTE*)work; /* Working buffer */ + sz_buf = len / ss; /* Size of working buffer (sector) */ + szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ + if (!szb_buf) return FR_MKFS_ABORTED; /* Determine where the volume to be located (b_vol, sz_vol) */ if (_MULTI_PARTITION && part != 0) { /* Get partition information from partition table in the MBR */ if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Load MBR */ - if (ld_word(buf + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED; /* Check MBR is valid */ + if (ld_word(buf + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED; /* Check if MBR is valid */ pte = buf + (MBR_Table + (part - 1) * SZ_PTE); if (!pte[PTE_System]) return FR_MKFS_ABORTED; /* No partition? */ b_vol = ld_dword(pte + PTE_StLba); /* Get volume start sector */ @@ -5284,16 +5373,16 @@ FRESULT f_mkfs ( if (sz_vol < b_vol) return FR_MKFS_ABORTED; sz_vol -= b_vol; /* Volume size */ } - if (sz_vol < 128) return FR_MKFS_ABORTED; /* Check volume size (>=128s) */ + if (sz_vol < 128) return FR_MKFS_ABORTED; /* Check if volume size is >=128s */ - /* Pre-determine the FAT type by argument */ + /* Pre-determine the FAT type */ do { if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */ - if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au >= 256) { /* exFAT only, vol >= 64Ms or au >= 256s ? */ + if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au > 128) { /* exFAT only, vol >= 64Ms or au > 128s ? */ fmt = FS_EXFAT; break; } } - if (au >= 256) return FR_INVALID_PARAMETER; /* Too large au for FAT/FAT32 */ + if (au > 128) return FR_INVALID_PARAMETER; /* Too large au for FAT/FAT32 */ if (opt & FM_FAT32) { /* FAT32 possible? */ if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */ fmt = FS_FAT32; break; @@ -5312,26 +5401,25 @@ FRESULT f_mkfs ( if (sz_vol < 0x1000) return FR_MKFS_ABORTED; /* Too small volume? */ #if _USE_TRIM - tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area can be erased */ + tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area may be erased */ disk_ioctl(pdrv, CTRL_TRIM, tbl); #endif /* Determine FAT location, data location and number of clusters */ if (!au) { /* au auto-selection */ au = 8; - if (sz_vol >= 0x80000) au = 64; /* >= 512KS */ - if (sz_vol >= 0x4000000) au = 256; /* >= 64MS */ + if (sz_vol >= 0x80000) au = 64; /* >= 512Ks */ + if (sz_vol >= 0x4000000) au = 256; /* >= 64Ms */ } b_fat = b_vol + 32; /* FAT start at offset 32 */ - sz_fat = ((sz_vol / au + 2) * 4 + ss - 1) / ss; /* Numbef of FAT sectors */ + sz_fat = ((sz_vol / au + 2) * 4 + ss - 1) / ss; /* Number of FAT sectors */ b_data = (b_fat + sz_fat + sz_blk - 1) & ~(sz_blk - 1); /* Align data area to the erase block boundary */ if (b_data >= sz_vol / 2) return FR_MKFS_ABORTED; /* Too small volume? */ - n_clst = (sz_vol - (b_data - b_vol)) / au; /* Nunber of clusters */ + n_clst = (sz_vol - (b_data - b_vol)) / au; /* Number of clusters */ if (n_clst <16) return FR_MKFS_ABORTED; /* Too few clusters? */ if (n_clst > MAX_EXFAT) return FR_MKFS_ABORTED; /* Too many clusters? */ - szb_bit = (n_clst + 7) / 8; /* Size of allocation bitmap */ - tbl[0] = (szb_bit + au * ss - 1) / (au * ss); /* Number of bitmap clusters */ - tbl[2] = 1; /* Number of rootdir clusters */ + szb_bit = (n_clst + 7) / 8; /* Size of allocation bitmap */ + tbl[0] = (szb_bit + au * ss - 1) / (au * ss); /* Number of allocation bitmap clusters */ /* Create a compressed up-case table */ sect = b_data + au * tbl[0]; /* Table start sector */ @@ -5349,11 +5437,12 @@ FRESULT f_mkfs ( ch = 0xFFFF; st = 2; break; /* Compress the no-case block if run is >= 128 */ } st = 1; /* Do not compress short run */ - /* continue */ + /* go to next case */ case 1: ch = si++; /* Fill the short run */ if (--j == 0) st = 0; break; + default: ch = (WCHAR)j; si += j; /* Number of chars to skip */ st = 0; @@ -5362,30 +5451,31 @@ FRESULT f_mkfs ( sum = xsum32(buf[i + 1] = (BYTE)(ch >> 8), sum); i += 2; szb_case += 2; if (!si || i == szb_buf) { /* Write buffered data when buffer full or end of process */ - ns = (i + ss - 1) / ss; - if (disk_write(pdrv, buf, sect, ns) != RES_OK) return FR_DISK_ERR; - sect += ns; i = 0; + n = (i + ss - 1) / ss; + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + sect += n; i = 0; } } while (si); - tbl[1] = (szb_case + au * ss - 1) / (au * ss); /* Number of up-case clusters */ + tbl[1] = (szb_case + au * ss - 1) / (au * ss); /* Number of up-case table clusters */ + tbl[2] = 1; /* Number of root dir clusters */ /* Initialize the allocation bitmap */ - sect = b_data; n = (szb_bit + ss - 1) / ss; /* Start of bitmap and number of the sectors */ + sect = b_data; nsect = (szb_bit + ss - 1) / ss; /* Start of bitmap and number of sectors */ nb = tbl[0] + tbl[1] + tbl[2]; /* Number of clusters in-use by system */ do { mem_set(buf, 0, szb_buf); for (i = 0; nb >= 8 && i < szb_buf; buf[i++] = 0xFF, nb -= 8) ; for (b = 1; nb && i < szb_buf; buf[i] |= b, b <<= 1, nb--) ; - ns = (n > sz_buf) ? sz_buf : n; /* Write the buffered data */ - if (disk_write(pdrv, buf, sect, ns) != RES_OK) return FR_DISK_ERR; - sect += ns; n -= ns; - } while (n); + n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + sect += n; nsect -= n; + } while (nsect); /* Initialize the FAT */ - sect = b_fat; n = sz_fat; /* Start of FAT and number of the sectors */ + sect = b_fat; nsect = sz_fat; /* Start of FAT and number of FAT sectors */ j = nb = cl = 0; do { - mem_set(buf, 0, szb_buf); i = 0; + mem_set(buf, 0, szb_buf); i = 0; /* Clear work area and reset write index */ if (cl == 0) { /* Set entry 0 and 1 */ st_dword(buf + i, 0xFFFFFFF8); i += 4; cl++; st_dword(buf + i, 0xFFFFFFFF); i += 4; cl++; @@ -5397,13 +5487,13 @@ FRESULT f_mkfs ( } if (!nb && j < 3) nb = tbl[j++]; /* Next chain */ } while (nb && i < szb_buf); - ns = (n > sz_buf) ? sz_buf : n; /* Write the buffered data */ - if (disk_write(pdrv, buf, sect, ns) != RES_OK) return FR_DISK_ERR; - sect += ns; n -= ns; - } while (n); + n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + sect += n; nsect -= n; + } while (nsect); /* Initialize the root directory */ - mem_set(buf, 0, ss); + mem_set(buf, 0, szb_buf); buf[SZDIRE * 0 + 0] = 0x83; /* 83 entry (volume label) */ buf[SZDIRE * 1 + 0] = 0x81; /* 81 entry (allocation bitmap) */ st_dword(buf + SZDIRE * 1 + 20, 2); @@ -5412,13 +5502,13 @@ FRESULT f_mkfs ( st_dword(buf + SZDIRE * 2 + 4, sum); st_dword(buf + SZDIRE * 2 + 20, 2 + tbl[0]); st_dword(buf + SZDIRE * 2 + 24, szb_case); - sect = b_data + au * (tbl[0] + tbl[1]); n = au; /* Start of directory and number of the sectors */ - do { /* Fill root direcotry sectors */ - ns = (n > sz_buf) ? sz_buf : n; - if (disk_write(pdrv, buf, sect, ns) != RES_OK) return FR_DISK_ERR; - sect += ns; + sect = b_data + au * (tbl[0] + tbl[1]); nsect = au; /* Start of the root directory and number of sectors */ + do { /* Fill root directory sectors */ + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; mem_set(buf, 0, ss); - } while (n -= ns); + sect += n; nsect -= n; + } while (nsect); /* Create two set of the exFAT VBR blocks */ sect = b_vol; @@ -5464,7 +5554,7 @@ FRESULT f_mkfs ( } } else -#endif +#endif /* _FS_EXFAT */ { /* Create an FAT12/16/32 volume */ do { pau = au; @@ -5547,14 +5637,14 @@ FRESULT f_mkfs ( st_word(buf + BPB_BytsPerSec, ss); /* Sector size [byte] */ buf[BPB_SecPerClus] = (BYTE)pau; /* Cluster size [sector] */ st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */ - buf[BPB_NumFATs] = n_fats; /* Number of FATs */ + buf[BPB_NumFATs] = (BYTE)n_fats; /* Number of FATs */ st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root directory entries */ if (sz_vol < 0x10000) { st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */ } else { - st_dword(buf + BPB_TotSec32, sz_vol); /* Volume size in 12-bit LBA */ + st_dword(buf + BPB_TotSec32, sz_vol); /* Volume size in 32-bit LBA */ } - buf[BPB_Media] = 0xF8; /* Media descriptor */ + buf[BPB_Media] = 0xF8; /* Media descriptor byte */ st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */ st_word(buf + BPB_NumHeads, 255); /* Number of heads (for int13) */ st_dword(buf + BPB_HiddSec, b_vol); /* Volume offset in the physical drive [sector] */ @@ -5591,8 +5681,8 @@ FRESULT f_mkfs ( } /* Initialize FAT area */ - mem_set(buf, 0, szb_buf); - sect = b_fat; /* Start sector */ + mem_set(buf, 0, (UINT)szb_buf); + sect = b_fat; /* FAT start sector */ for (i = 0; i < n_fats; i++) { /* Initialize FATs each */ if (fmt == FS_FAT32) { st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */ @@ -5601,22 +5691,22 @@ FRESULT f_mkfs ( } else { st_dword(buf + 0, (fmt == FS_FAT12) ? 0xFFFFF8 : 0xFFFFFFF8); /* Entry 0 and 1 */ } - n = sz_fat; /* Sector count of a FAT */ + nsect = sz_fat; /* Number of FAT sectors */ do { /* Fill FAT sectors */ - ns = (n > sz_buf) ? sz_buf : n; - if (disk_write(pdrv, buf, sect, ns) != RES_OK) return FR_DISK_ERR; - sect += ns; + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; mem_set(buf, 0, ss); - } while (n -= ns); + sect += n; nsect -= n; + } while (nsect); } /* Initialize root directory (fill with zero) */ - n = (fmt == FS_FAT32) ? pau : sz_dir; /* Sector count of root directory */ + nsect = (fmt == FS_FAT32) ? pau : sz_dir; /* Number of root directory sectors */ do { - ns = (n > sz_buf) ? sz_buf : n; - if (disk_write(pdrv, buf, sect, ns) != RES_OK) return FR_DISK_ERR; - sect += ns; - } while (n -= ns); + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; + sect += n; nsect -= n; + } while (nsect); } /* Determine system ID in the partition table */ @@ -5634,14 +5724,14 @@ FRESULT f_mkfs ( } } - if (_MULTI_PARTITION && part != 0) { + /* Update partition information */ + if (_MULTI_PARTITION && part != 0) { /* Created in the existing partition */ /* Update system ID in the partition table */ if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Read the MBR */ - buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system type */ + buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system ID */ if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it back to the MBR */ - } else { - if (!(opt & FM_SFD)) { - /* Create partition table in FDISK format */ + } else { /* Created as a new single partition */ + if (!(opt & FM_SFD)) { /* Create partition table if in FDISK format */ mem_set(buf, 0, ss); st_word(buf + BS_55AA, 0xAA55); /* MBR signature */ pte = buf + MBR_Table; /* Create partition table for single partition in the drive */ @@ -5650,7 +5740,7 @@ FRESULT f_mkfs ( pte[PTE_StSec] = 1; /* Start sector */ pte[PTE_StCyl] = 0; /* Start cylinder */ pte[PTE_System] = sys; /* System type */ - n = (b_vol + sz_vol) / (63 * 255); /* (End CHS is incorrect) */ + n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */ pte[PTE_EdHead] = 254; /* End head */ pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */ pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ @@ -5689,7 +5779,7 @@ FRESULT f_fdisk ( if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_disk)) return FR_DISK_ERR; - /* Determine the CHS without any care of the drive geometry */ + /* Determine the CHS without any consideration of the drive geometry */ for (n = 16; n < 256 && sz_disk / n / 63 > 1024; n *= 2) ; if (n == 256) n--; e_hd = n - 1; @@ -5700,7 +5790,7 @@ FRESULT f_fdisk ( mem_set(buf, 0, _MAX_SS); p = buf + MBR_Table; b_cyl = 0; for (i = 0; i < 4; i++, p += SZ_PTE) { - p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; + p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; /* Number of cylinders */ if (!p_cyl) continue; s_part = (DWORD)sz_cyl * b_cyl; sz_part = (DWORD)sz_cyl * p_cyl; @@ -5710,19 +5800,19 @@ FRESULT f_fdisk ( } else { s_hd = 0; } - e_cyl = b_cyl + p_cyl - 1; + e_cyl = b_cyl + p_cyl - 1; /* End cylinder */ if (e_cyl >= tot_cyl) return FR_INVALID_PARAMETER; /* Set partition table */ p[1] = s_hd; /* Start head */ p[2] = (BYTE)((b_cyl >> 2) + 1); /* Start sector */ p[3] = (BYTE)b_cyl; /* Start cylinder */ - p[4] = 0x06; /* System type (temporary setting) */ + p[4] = 0x07; /* System type (temporary setting) */ p[5] = e_hd; /* End head */ p[6] = (BYTE)((e_cyl >> 2) + 63); /* End sector */ p[7] = (BYTE)e_cyl; /* End cylinder */ st_dword(p + 8, s_part); /* Start sector in LBA */ - st_dword(p + 12, sz_part); /* Partition size */ + st_dword(p + 12, sz_part); /* Number of sectors */ /* Next partition */ b_cyl += p_cyl; @@ -5764,17 +5854,17 @@ TCHAR* f_gets ( c = s[0]; if (c >= 0x80) { if (c < 0xC0) continue; /* Skip stray trailer */ - if (c < 0xE0) { /* Two-byte sequence */ + if (c < 0xE0) { /* Two-byte sequence (0x80-0x7FF) */ f_read(fp, s, 1, &rc); if (rc != 1) break; c = (c & 0x1F) << 6 | (s[0] & 0x3F); - if (c < 0x80) c = '?'; + if (c < 0x80) c = '?'; /* Reject invalid code range */ } else { - if (c < 0xF0) { /* Three-byte sequence */ + if (c < 0xF0) { /* Three-byte sequence (0x800-0xFFFF) */ f_read(fp, s, 2, &rc); if (rc != 2) break; c = c << 12 | (s[0] & 0x3F) << 6 | (s[1] & 0x3F); - if (c < 0x800) c = '?'; + if (c < 0x800) c = '?'; /* Reject invalid code range */ } else { /* Reject four-byte sequence */ c = '?'; } @@ -6006,17 +6096,23 @@ int f_printf ( while (*p) putc_bfd(&pb, *p++); while (j++ < w) putc_bfd(&pb, ' '); continue; + case 'C' : /* Character */ putc_bfd(&pb, (TCHAR)va_arg(arp, int)); continue; + case 'B' : /* Binary */ r = 2; break; + case 'O' : /* Octal */ r = 8; break; + case 'D' : /* Signed decimal */ case 'U' : /* Unsigned decimal */ r = 10; break; + case 'X' : /* Hexdecimal */ r = 16; break; + default: /* Unknown type (pass-through) */ putc_bfd(&pb, c); continue; } @@ -6036,7 +6132,9 @@ int f_printf ( if (f & 8) str[i++] = '-'; j = i; d = (f & 1) ? '0' : ' '; while (!(f & 2) && j++ < w) putc_bfd(&pb, d); - do putc_bfd(&pb, str[--i]); while (i); + do { + putc_bfd(&pb, str[--i]); + } while (i); while (j++ < w) putc_bfd(&pb, d); } diff --git a/firmware/chibios-portapack/ext/fatfs/src/ff.h b/firmware/chibios-portapack/ext/fatfs/src/ff.h index 5984c8eb..f9025198 100644 --- a/firmware/chibios-portapack/ext/fatfs/src/ff.h +++ b/firmware/chibios-portapack/ext/fatfs/src/ff.h @@ -1,8 +1,8 @@ /*----------------------------------------------------------------------------/ -/ FatFs - Generic FAT file system module R0.12a / +/ FatFs - Generic FAT file system module R0.12c / /-----------------------------------------------------------------------------/ / -/ Copyright (C) 2016, ChaN, all right reserved. +/ Copyright (C) 2017, ChaN, all right reserved. / / FatFs module is an open source software. Redistribution and use of FatFs in / source and binary forms, with or without modification, are permitted provided @@ -19,7 +19,7 @@ #ifndef _FATFS -#define _FATFS 80186 /* Revision ID */ +#define _FATFS 68300 /* Revision ID */ #ifdef __cplusplus extern "C" { @@ -42,13 +42,6 @@ typedef struct { BYTE pt; /* Partition: 0:Auto detect, 1-4:Forced partition) */ } PARTITION; extern PARTITION VolToPart[]; /* Volume - Partition resolution table */ -#define LD2PD(vol) (VolToPart[vol].pd) /* Get physical drive number */ -#define LD2PT(vol) (VolToPart[vol].pt) /* Get partition index */ - -#else /* Single partition configuration */ -#define LD2PD(vol) (BYTE)(vol) /* Each logical drive is bound to the same physical drive number */ -#define LD2PT(vol) 0 /* Find first valid partition or in SFD */ - #endif @@ -140,14 +133,15 @@ typedef struct { FATFS* fs; /* Pointer to the owner file system object */ WORD id; /* Owner file system mount ID */ BYTE attr; /* Object attribute */ - BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous (no data on FAT), =3:got flagmented, b2:sub-directory stretched) */ + BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous (no data on FAT), =3:flagmented in this session, b2:sub-directory stretched) */ DWORD sclust; /* Object start cluster (0:no cluster or root directory) */ FSIZE_t objsize; /* Object size (valid when sclust != 0) */ #if _FS_EXFAT - DWORD n_cont; /* Size of coutiguous part, clusters - 1 (valid when stat == 3) */ + DWORD n_cont; /* Size of first fragment, clusters - 1 (valid when stat == 3) */ + DWORD n_frag; /* Size of last fragment needs to be written (valid when not zero) */ DWORD c_scl; /* Containing directory start cluster (valid when sclust != 0) */ DWORD c_size; /* b31-b8:Size of containing directory, b7-b0: Chain status (valid when c_scl != 0) */ - DWORD c_ofs; /* Offset in the containing directory (valid when sclust != 0) */ + DWORD c_ofs; /* Offset in the containing directory (valid when sclust != 0 and non-directory object) */ #endif #if _FS_LOCK != 0 UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */ @@ -159,11 +153,11 @@ typedef struct { /* File object structure (FIL) */ typedef struct { - _FDID obj; /* Object identifier */ + _FDID obj; /* Object identifier (must be the 1st member to detect invalid object pointer) */ BYTE flag; /* File status flags */ BYTE err; /* Abort flag (error code) */ FSIZE_t fptr; /* File read/write pointer (Zeroed on file open) */ - DWORD clust; /* Current cluster of fpter (invalid when fprt is 0) */ + DWORD clust; /* Current cluster of fpter (invalid when fptr is 0) */ DWORD sect; /* Sector number appearing in buf[] (0:invalid) */ #if !_FS_READONLY DWORD dir_sect; /* Sector number containing the directory entry */ @@ -185,7 +179,7 @@ typedef struct { _FDID obj; /* Object identifier */ DWORD dptr; /* Current read/write offset */ DWORD clust; /* Current cluster */ - DWORD sect; /* Current sector */ + DWORD sect; /* Current sector (0:Read operation has terminated) */ BYTE* dir; /* Pointer to the directory item in the win[] */ BYTE fn[12]; /* SFN (in/out) {body[8],ext[3],status[1]} */ #if _USE_LFN != 0 @@ -285,6 +279,7 @@ TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the fil #define f_size(fp) ((fp)->obj.objsize) #define f_rewind(fp) f_lseek((fp), 0) #define f_rewinddir(dp) f_readdir((dp), 0) +#define f_rmdir(path) f_unlink(path) #ifndef EOF #define EOF (-1) diff --git a/firmware/chibios-portapack/ext/fatfs/src/ffconf_template.h b/firmware/chibios-portapack/ext/fatfs/src/ffconf_template.h deleted file mode 100644 index 8db3d7cb..00000000 --- a/firmware/chibios-portapack/ext/fatfs/src/ffconf_template.h +++ /dev/null @@ -1,265 +0,0 @@ -/*---------------------------------------------------------------------------/ -/ FatFs - FAT file system module configuration file -/---------------------------------------------------------------------------*/ - -#define _FFCONF 80186 /* Revision ID */ - -/*---------------------------------------------------------------------------/ -/ Function Configurations -/---------------------------------------------------------------------------*/ - -#define _FS_READONLY 0 -/* This option switches read-only configuration. (0:Read/Write or 1:Read-only) -/ Read-only configuration removes writing API functions, f_write(), f_sync(), -/ f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree() -/ and optional writing functions as well. */ - - -#define _FS_MINIMIZE 0 -/* This option defines minimization level to remove some basic API functions. -/ -/ 0: All basic functions are enabled. -/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename() -/ are removed. -/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1. -/ 3: f_lseek() function is removed in addition to 2. */ - - -#define _USE_STRFUNC 0 -/* This option switches string functions, f_gets(), f_putc(), f_puts() and -/ f_printf(). -/ -/ 0: Disable string functions. -/ 1: Enable without LF-CRLF conversion. -/ 2: Enable with LF-CRLF conversion. */ - - -#define _USE_FIND 0 -/* This option switches filtered directory read functions, f_findfirst() and -/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */ - - -#define _USE_MKFS 0 -/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */ - - -#define _USE_FASTSEEK 0 -/* This option switches fast seek function. (0:Disable or 1:Enable) */ - - -#define _USE_EXPAND 0 -/* This option switches f_expand function. (0:Disable or 1:Enable) */ - - -#define _USE_CHMOD 0 -/* This option switches attribute manipulation functions, f_chmod() and f_utime(). -/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */ - - -#define _USE_LABEL 0 -/* This option switches volume label functions, f_getlabel() and f_setlabel(). -/ (0:Disable or 1:Enable) */ - - -#define _USE_FORWARD 0 -/* This option switches f_forward() function. (0:Disable or 1:Enable) */ - - -/*---------------------------------------------------------------------------/ -/ Locale and Namespace Configurations -/---------------------------------------------------------------------------*/ - -#define _CODE_PAGE 932 -/* This option specifies the OEM code page to be used on the target system. -/ Incorrect setting of the code page can cause a file open failure. -/ -/ 1 - ASCII (No extended character. Non-LFN cfg. only) -/ 437 - U.S. -/ 720 - Arabic -/ 737 - Greek -/ 771 - KBL -/ 775 - Baltic -/ 850 - Latin 1 -/ 852 - Latin 2 -/ 855 - Cyrillic -/ 857 - Turkish -/ 860 - Portuguese -/ 861 - Icelandic -/ 862 - Hebrew -/ 863 - Canadian French -/ 864 - Arabic -/ 865 - Nordic -/ 866 - Russian -/ 869 - Greek 2 -/ 932 - Japanese (DBCS) -/ 936 - Simplified Chinese (DBCS) -/ 949 - Korean (DBCS) -/ 950 - Traditional Chinese (DBCS) -*/ - - -#define _USE_LFN 0 -#define _MAX_LFN 255 -/* The _USE_LFN switches the support of long file name (LFN). -/ -/ 0: Disable support of LFN. _MAX_LFN has no effect. -/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe. -/ 2: Enable LFN with dynamic working buffer on the STACK. -/ 3: Enable LFN with dynamic working buffer on the HEAP. -/ -/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added -/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and -/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255. -/ It should be set 255 to support full featured LFN operations. -/ When use stack for the working buffer, take care on stack overflow. When use heap -/ memory for the working buffer, memory management functions, ff_memalloc() and -/ ff_memfree(), must be added to the project. */ - - -#define _LFN_UNICODE 0 -/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16) -/ To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1. -/ This option also affects behavior of string I/O functions. */ - - -#define _STRF_ENCODE 3 -/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to -/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf(). -/ -/ 0: ANSI/OEM -/ 1: UTF-16LE -/ 2: UTF-16BE -/ 3: UTF-8 -/ -/ This option has no effect when _LFN_UNICODE == 0. */ - - -#define _FS_RPATH 0 -/* This option configures support of relative path. -/ -/ 0: Disable relative path and remove related functions. -/ 1: Enable relative path. f_chdir() and f_chdrive() are available. -/ 2: f_getcwd() function is available in addition to 1. -*/ - - -/*---------------------------------------------------------------------------/ -/ Drive/Volume Configurations -/---------------------------------------------------------------------------*/ - -#define _VOLUMES 1 -/* Number of volumes (logical drives) to be used. */ - - -#define _STR_VOLUME_ID 0 -#define _VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" -/* _STR_VOLUME_ID switches string support of volume ID. -/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive -/ number in the path name. _VOLUME_STRS defines the drive ID strings for each -/ logical drives. Number of items must be equal to _VOLUMES. Valid characters for -/ the drive ID strings are: A-Z and 0-9. */ - - -#define _MULTI_PARTITION 0 -/* This option switches support of multi-partition on a physical drive. -/ By default (0), each logical drive number is bound to the same physical drive -/ number and only an FAT volume found on the physical drive will be mounted. -/ When multi-partition is enabled (1), each logical drive number can be bound to -/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk() -/ funciton will be available. */ - - -#define _MIN_SS 512 -#define _MAX_SS 512 -/* These options configure the range of sector size to be supported. (512, 1024, -/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and -/ harddisk. But a larger value may be required for on-board flash memory and some -/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured -/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the -/ disk_ioctl() function. */ - - -#define _USE_TRIM 0 -/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable) -/ To enable Trim function, also CTRL_TRIM command should be implemented to the -/ disk_ioctl() function. */ - - -#define _FS_NOFSINFO 0 -/* If you need to know correct free space on the FAT32 volume, set bit 0 of this -/ option, and f_getfree() function at first time after volume mount will force -/ a full FAT scan. Bit 1 controls the use of last allocated cluster number. -/ -/ bit0=0: Use free cluster count in the FSINFO if available. -/ bit0=1: Do not trust free cluster count in the FSINFO. -/ bit1=0: Use last allocated cluster number in the FSINFO if available. -/ bit1=1: Do not trust last allocated cluster number in the FSINFO. -*/ - - - -/*---------------------------------------------------------------------------/ -/ System Configurations -/---------------------------------------------------------------------------*/ - -#define _FS_TINY 0 -/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny) -/ At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes. -/ Instead of private sector buffer eliminated from the file object, common sector -/ buffer in the file system object (FATFS) is used for the file data transfer. */ - - -#define _FS_EXFAT 0 -/* This option switches support of exFAT file system in addition to the traditional -/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled. -/ Note that enabling exFAT discards C89 compatibility. */ - - -#define _FS_NORTC 0 -#define _NORTC_MON 1 -#define _NORTC_MDAY 1 -#define _NORTC_YEAR 2016 -/* The option _FS_NORTC switches timestamp functiton. If the system does not have -/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable -/ the timestamp function. All objects modified by FatFs will have a fixed timestamp -/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time. -/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be -/ added to the project to get current time form real-time clock. _NORTC_MON, -/ _NORTC_MDAY and _NORTC_YEAR have no effect. -/ These options have no effect at read-only configuration (_FS_READONLY = 1). */ - - -#define _FS_LOCK 0 -/* The option _FS_LOCK switches file lock function to control duplicated file open -/ and illegal operation to open objects. This option must be 0 when _FS_READONLY -/ is 1. -/ -/ 0: Disable file lock function. To avoid volume corruption, application program -/ should avoid illegal open, remove and rename to the open objects. -/ >0: Enable file lock function. The value defines how many files/sub-directories -/ can be opened simultaneously under file lock control. Note that the file -/ lock control is independent of re-entrancy. */ - - -#define _FS_REENTRANT 0 -#define _FS_TIMEOUT 1000 -#define _SYNC_t HANDLE -/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs -/ module itself. Note that regardless of this option, file access to different -/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs() -/ and f_fdisk() function, are always not re-entrant. Only file/directory access -/ to the same volume is under control of this function. -/ -/ 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect. -/ 1: Enable re-entrancy. Also user provided synchronization handlers, -/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj() -/ function, must be added to the project. Samples are available in -/ option/syscall.c. -/ -/ The _FS_TIMEOUT defines timeout period in unit of time tick. -/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, -/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be -/ included somewhere in the scope of ff.c. */ - - -/*--- End of configuration options ---*/ diff --git a/firmware/chibios-portapack/ext/fatfs/src/integer.h b/firmware/chibios-portapack/ext/fatfs/src/integer.h index 4660ed62..d8e911cf 100644 --- a/firmware/chibios-portapack/ext/fatfs/src/integer.h +++ b/firmware/chibios-portapack/ext/fatfs/src/integer.h @@ -30,7 +30,7 @@ typedef unsigned short WCHAR; typedef long LONG; typedef unsigned long DWORD; -/* This type MUST be 64-bit (Remove this for C89 compatibility) */ +/* This type MUST be 64-bit (Remove this for ANSI C (C89) compatibility) */ typedef unsigned long long QWORD; #endif diff --git a/firmware/common/ak4951.cpp b/firmware/common/ak4951.cpp new file mode 100644 index 00000000..66061315 --- /dev/null +++ b/firmware/common/ak4951.cpp @@ -0,0 +1,312 @@ +/* + * Copyright (C) 2017 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ak4951.hpp" + +#include "portapack_io.hpp" +using namespace portapack; + +#include + +namespace asahi_kasei { +namespace ak4951 { + +void AK4951::configure_digital_interface() { + // Configure for external slave mode. + map.r.mode_control_1.DIF = 0b11; // I2S compatible + map.r.mode_control_1.BCKO = 0; // BICK = 32fs + update(Register::ModeControl1); + + map.r.mode_control_2.CM = 0b00; // MCKI = 256fs + map.r.mode_control_2.FS = 0b1011; // fs = 48kHz + update(Register::ModeControl2); + + // map.r.mode_control_3.DVOLC = 1; // Control L/R channels with DVL (LchDigitalVolumeControl) + // update(Register::ModeControl3); + + map.r.power_management_2.MS = 0; // Slave mode + map.r.power_management_2.PMPLL = 0; // EXT mode + update(Register::PowerManagement2); +} + +void AK4951::init() { + reset(); + + // Write dummy address to "release" the reset. + write(0x00, 0x00); + + configure_digital_interface(); + + map.r.power_management_1.PMVCM = 1; + update(Register::PowerManagement1); + + // Headphone output is hi-Z when not active, reduces crosstalk from speaker output. + map.r.beep_control.HPZ = 1; + update(Register::BeepControl); + + // Pause for VCOM and REGFIL pins to stabilize. + chThdSleepMilliseconds(2); + + headphone_mute(); + + // SPK-Amp gain setting: SPKG1-0 bits = “00” → “01” + map.r.signal_select_2.SPKG = 0b01; + update(Register::SignalSelect2); + + map.r.signal_select_3.MONO = 0b00; + update(Register::SignalSelect3); + + map.r.digital_filter_mode.PFSDO = 0; // ADC bypass digital filter block. + map.r.digital_filter_mode.ADCPF = 1; // ADC output + map.r.digital_filter_mode.PFDAC = 0b00; // SDTI + update(Register::DigitalFilterMode); + + // Set up FRN, FRATT and ADRST1-0 bits (Addr = 09H) + // map.r.timer_select.FRN = 0; + // map.r.timer_select.FRATT = 0; + // map.r.timer_select.ADRST = 0b00; + // update(Register::TimerSelect); + + // Set up ALC mode (Addr = 0AH, 0BH) + // map.r.alc_timer_select. = ; + // update(Register::ALCTimerSelect); + // map.r.alc_mode_control_1. = ; + // update(Register::ALCModeControl1); + + // Set up REF value of ALC (Addr = 0CH) + // map.r.alc_mode_control_2. = ; + // update(Register::ALCModeControl2); + + // Set up IVOL value of ALC operation start (Addr = 0DH) + // map.r.l_ch_input_volume_control. = ; + // update(Register::LchInputVolumeControl); + // map.r.r_ch_input_volume_control. = ; + // update(Register::RchInputVolumeControl); + + // Set up the output digital volume. (Addr = 13H) + // set_headphone_volume(...); + + // Set up Programmable Filter Path: PFDAC1-0 bits=“01”, PFSDO=ADCPF bits=“0” (Addr = 1DH) + // map.r.digital_filter_mode.PFDAC = 0b01; + // update(Register::DigitalFilterMode); +} + +bool AK4951::reset() { + io.audio_reset_state(true); + + // PDN# pulse must be >200ns + chThdSleepMicroseconds(10); + + io.audio_reset_state(false); + + return true; +} + +void AK4951::set_digtal_volume_control(const reg_t value) { + map.r.l_ch_digital_volume_control.DV = value; + update(Register::LchDigitalVolumeControl); +} + +void AK4951::set_headphone_volume(const volume_t volume) { + const auto normalized = headphone_gain_range().normalize(volume); + auto n = normalized.centibel() / 5; + set_digtal_volume_control(0xcb - n); +} + +void AK4951::headphone_mute() { + set_digtal_volume_control(0xff); +} + +void AK4951::set_dac_power(const bool enable) { + map.r.power_management_1.PMDAC = enable; + update(Register::PowerManagement1); +} + +void AK4951::set_headphone_power(const bool enable) { + map.r.power_management_2.PMHPL = map.r.power_management_2.PMHPR = enable; + update(Register::PowerManagement2); +} + +void AK4951::set_speaker_power(const bool enable) { + map.r.power_management_2.PMSL = enable; + update(Register::PowerManagement2); +} + +void AK4951::select_line_out(const LineOutSelect value) { + map.r.power_management_2.LOSEL = (value == LineOutSelect::Line) ? 1 : 0; + update(Register::PowerManagement2); +} + +void AK4951::headphone_enable() { + set_dac_power(true); + set_headphone_power(true); + + // Wait for headphone amplifier charge pump power-up. + chThdSleepMilliseconds(35); +} + +void AK4951::headphone_disable() { + set_headphone_power(false); + set_dac_power(false); +} + +void AK4951::speaker_enable() { + // Set up the path of DAC → SPK-Amp: DACS bit = “0” → “1” + map.r.signal_select_1.DACS = 1; + update(Register::SignalSelect1); + + // Enter Speaker-Amp Output Mode: LOSEL bit = “0” + select_line_out(LineOutSelect::Speaker); + + // Power up DAC, Programmable Filter and Speaker-Amp: PMDAC=PMPFIL=PMSL bits=“0”→“1” + set_dac_power(true); + // map.r.power_management_1.PMPFIL = 1; + // update(Register::PowerManagement1); + set_speaker_power(true); + + // Time from PMSL=1 to SLPSN=1. + chThdSleepMilliseconds(1); + + // Exit the power-save mode of Speaker-Amp: SLPSN bit = “0” → “1” + map.r.signal_select_1.SLPSN = 1; + update(Register::SignalSelect1); +} + +void AK4951::speaker_disable() { + // Enter Speaker-Amp Power Save Mode: SLPSN bit = “1” → “0” + map.r.signal_select_1.SLPSN = 0; + update(Register::SignalSelect1); + + // Disable the path of DAC → SPK-Amp: DACS bit = “1” → “0” + map.r.signal_select_1.DACS = 0; + update(Register::SignalSelect1); + + // Power down DAC, Programmable Filter and speaker: PMDAC=PMPFIL=PMSL bits= “1”→“0” + set_dac_power(false); + // map.r.power_management_1.PMPFIL = 0; + // update(Register::PowerManagement1); + set_speaker_power(false); +} + +void AK4951::microphone_enable() { +// map.r.digital_mic.DMIC = 0; +// update(Register::DigitalMic); + + map.r.signal_select_1.MGAIN20 = 0b110; + map.r.signal_select_1.PMMP = 1; + map.r.signal_select_1.MPSEL = 1; // MPWR2 pin + map.r.signal_select_1.MGAIN3 = 0b0; + update(Register::SignalSelect1); + + map.r.signal_select_2.INL = 0b01; // Lch input signal = LIN2 + map.r.signal_select_2.INR = 0b01; // Rch input signal = RIN2 + map.r.signal_select_2.MICL = 0; // MPWR = 2.4V + update(Register::SignalSelect2); + +// map.r.r_ch_mic_gain_setting.MGR = 0x80; // Microphone sensitivity correction = 0dB. +// update(Register::RchMicGainSetting); +/* + map.r.timer_select.FRN = ?; + map.r.timer_select.FRATT = ?; + map.r.timer_select.ADRST = 0b??; + update(Register::TimerSelect); + + map.r.alc_timer_select. = ?; + update(Register::ALCTimerSelect); + map.r.alc_mode_control_1. = ?; + map.r.alc_mode_control_1.ALC = 1; + update(Register::ALCModeControl1); + + map.r.alc_mode_control_2.REF = ?; + update(Register::ALCModeControl2); +*/ +// map.r.l_ch_input_volume_control.IV = 0xe1; +// update(Register::LchInputVolumeControl); +// map.r.r_ch_input_volume_control.IV = 0xe1; +// update(Register::RchInputVolumeControl); +/* + map.r.auto_hpf_control.STG = 0b00; + map.r.auto_hpf_control.SENC = 0b011; + map.r.auto_hpf_control.AHPF = 0; + update(Register::AutoHPFControl); +*/ + map.r.digital_filter_select_1.HPFAD = 1; // HPF1 (after ADC) = on + map.r.digital_filter_select_1.HPFC = 0b11; // 2336.8 Hz @ fs=48k + update(Register::DigitalFilterSelect1); +/* + map.r.digital_filter_select_2.HPF = 0; + map.r.digital_filter_select_2.LPF = 0; + map.r.digital_filter_select_2.FIL3 = 0; + map.r.digital_filter_select_2.EQ0 = 0; + map.r.digital_filter_select_2.GN = 0b00; + update(Register::DigitalFilterSelect2); + + map.r.digital_filter_select_3.EQ1 = 0; + map.r.digital_filter_select_3.EQ2 = 0; + map.r.digital_filter_select_3.EQ3 = 0; + map.r.digital_filter_select_3.EQ4 = 0; + map.r.digital_filter_select_3.EQ5 = 0; + update(Register::DigitalFilterSelect3); +*/ + map.r.digital_filter_mode.PFSDO = 0; // ADC (+ 1st order HPF) Output + map.r.digital_filter_mode.ADCPF = 1; // ADC Output (default) + update(Register::DigitalFilterMode); + + // ... Set coefficients ... + + map.r.power_management_1.PMADL = 1; // ADC Lch = Lch input signal + map.r.power_management_1.PMADR = 1; // ADC Rch = Rch input signal + map.r.power_management_1.PMPFIL = 0; // Programmable filter unused, routed around. + update(Register::PowerManagement1); + + // 1059/fs, 22ms @ 48kHz + chThdSleepMilliseconds(22); +} + +void AK4951::microphone_disable() { + map.r.power_management_1.PMADL = 0; + map.r.power_management_1.PMADR = 0; + map.r.power_management_1.PMPFIL = 0; + update(Register::PowerManagement1); + + map.r.alc_mode_control_1.ALC = 0; + update(Register::ALCModeControl1); +} + +reg_t AK4951::read(const address_t reg_address) { + const std::array tx { reg_address }; + std::array rx { 0x00 }; + bus.transmit(bus_address, tx.data(), tx.size()); + bus.receive(bus_address, rx.data(), rx.size()); + return rx[0]; +} + +void AK4951::update(const Register reg) { + write(toUType(reg), map.w[toUType(reg)]); +} + +void AK4951::write(const address_t reg_address, const reg_t value) { + const std::array tx { reg_address, value }; + bus.transmit(bus_address, tx.data(), tx.size()); +} + +} /* namespace ak4951 */ +} /* namespace asahi_kasei */ diff --git a/firmware/common/ak4951.hpp b/firmware/common/ak4951.hpp new file mode 100644 index 00000000..54115481 --- /dev/null +++ b/firmware/common/ak4951.hpp @@ -0,0 +1,882 @@ +/* + * Copyright (C) 2017 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __AK4951_H__ +#define __AK4951_H__ + +#include +#include + +#include "utility.hpp" + +#include "i2c_pp.hpp" + +#include "audio.hpp" + +namespace asahi_kasei { +namespace ak4951 { + +using address_t = uint8_t; +using reg_t = uint8_t; + +constexpr size_t reg_count = 0x50; + +enum class Register : address_t { + PowerManagement1 = 0x00, + PowerManagement2 = 0x01, + SignalSelect1 = 0x02, + SignalSelect2 = 0x03, + SignalSelect3 = 0x04, + ModeControl1 = 0x05, + ModeControl2 = 0x06, + ModeControl3 = 0x07, + DigitalMic = 0x08, + TimerSelect = 0x09, + ALCTimerSelect = 0x0a, + ALCModeControl1 = 0x0b, + ALCModeControl2 = 0x0c, + LchInputVolumeControl = 0x0d, + RchInputVolumeControl = 0x0e, + ALCVolume = 0x0f, + _Reserved_0x10 = 0x10, + RchMicGainSetting = 0x11, + BeepControl = 0x12, + LchDigitalVolumeControl = 0x13, + RchDigitalVolumeControl = 0x14, + EQCommonGainSelect = 0x15, + EQ2CommonGainSetting = 0x16, + EQ3CommonGainSetting = 0x17, + EQ4CommonGainSetting = 0x18, + EQ5CommonGainSetting = 0x19, + AutoHPFControl = 0x1a, + DigitalFilterSelect1 = 0x1b, + DigitalFilterSelect2 = 0x1c, + DigitalFilterMode = 0x1d, + HPF2Coefficient0 = 0x1e, + HPF2Coefficient1 = 0x1f, + HPF2Coefficient2 = 0x20, + HPF2Coefficient3 = 0x21, + LPFCoefficient0 = 0x22, + LPFCoefficient1 = 0x23, + LPFCoefficient2 = 0x24, + LPFCoefficient3 = 0x25, + FIL3Coefficient0 = 0x26, + FIL3Coefficient1 = 0x27, + FIL3Coefficient2 = 0x28, + FIL3Coefficient3 = 0x29, + EQCoefficient0 = 0x2a, + EQCoefficient1 = 0x2b, + EQCoefficient2 = 0x2c, + EQCoefficient3 = 0x2d, + EQCoefficient4 = 0x2e, + EQCoefficient5 = 0x2f, + DigitalFilterSelect3 = 0x30, + DeviceInformation = 0x31, + E1Coefficient0 = 0x32, + E1Coefficient1 = 0x33, + E1Coefficient2 = 0x34, + E1Coefficient3 = 0x35, + E1Coefficient4 = 0x36, + E1Coefficient5 = 0x37, + E2Coefficient0 = 0x38, + E2Coefficient1 = 0x39, + E2Coefficient2 = 0x3a, + E2Coefficient3 = 0x3b, + E2Coefficient4 = 0x3c, + E2Coefficient5 = 0x3d, + E3Coefficient0 = 0x3e, + E3Coefficient1 = 0x3f, + E3Coefficient2 = 0x40, + E3Coefficient3 = 0x41, + E3Coefficient4 = 0x42, + E3Coefficient5 = 0x43, + E4Coefficient0 = 0x44, + E4Coefficient1 = 0x45, + E4Coefficient2 = 0x46, + E4Coefficient3 = 0x47, + E4Coefficient4 = 0x48, + E4Coefficient5 = 0x49, + E5Coefficient0 = 0x4a, + E5Coefficient1 = 0x4b, + E5Coefficient2 = 0x4c, + E5Coefficient3 = 0x4d, + E5Coefficient4 = 0x4e, + E5Coefficient5 = 0x4f, + _count, +}; + +static_assert(toUType(Register::_count) == reg_count, "Register::_count != reg_count"); + +struct PowerManagement1 { + reg_t PMADL : 1; + reg_t PMADR : 1; + reg_t PMDAC : 1; + reg_t reserved0 : 2; + reg_t PMBP : 1; + reg_t PMVCM : 1; + reg_t PMPFIL : 1; +}; + +static_assert(sizeof(PowerManagement1) == sizeof(reg_t), "wrong size `struct"); + +struct PowerManagement2 { + reg_t LOSEL : 1; + reg_t PMSL : 1; + reg_t PMPLL : 1; + reg_t MS : 1; + reg_t PMHPL : 1; + reg_t PMHPR : 1; + reg_t reserved0 : 1; + reg_t PMOSC : 1; +}; + +static_assert(sizeof(PowerManagement2) == sizeof(reg_t), "wrong size struct"); + +struct SignalSelect1 { + reg_t MGAIN20 : 3; + reg_t PMMP : 1; + reg_t MPSEL : 1; + reg_t DACS : 1; + reg_t MGAIN3 : 1; + reg_t SLPSN : 1; +}; + +static_assert(sizeof(SignalSelect1) == sizeof(reg_t), "wrong size struct"); + +struct SignalSelect2 { + reg_t INR : 2; + reg_t INL : 2; + reg_t MICL : 1; + reg_t reserved0 : 1; + reg_t SPKG : 2; +}; + +static_assert(sizeof(SignalSelect2) == sizeof(reg_t), "wrong size struct"); + +struct SignalSelect3 { + reg_t MONO : 2; + reg_t PTS : 2; + reg_t reserved0 : 1; + reg_t DACL : 1; + reg_t LVCM : 2; +}; + +static_assert(sizeof(SignalSelect3) == sizeof(reg_t), "wrong size struct"); + +struct ModeControl1 { + reg_t DIF : 2; + reg_t CKOFF : 1; + reg_t BCKO : 1; + reg_t PLL : 4; +}; + +static_assert(sizeof(ModeControl1) == sizeof(reg_t), "wrong size struct"); + +struct ModeControl2 { + reg_t FS : 4; + reg_t reserved0 : 2; + reg_t CM : 2; +}; + +static_assert(sizeof(ModeControl2) == sizeof(reg_t), "wrong size struct"); + +struct ModeControl3 { + reg_t reserved0 : 2; + reg_t IVOLC : 1; + reg_t reserved1 : 1; + reg_t DVOLC : 1; + reg_t SMUTE : 1; + reg_t THDET : 1; + reg_t TSDSEL : 1; +}; + +static_assert(sizeof(ModeControl3) == sizeof(reg_t), "wrong size struct"); + +struct DigitalMIC { + reg_t DMIC : 1; + reg_t DCLKP : 1; + reg_t reserved0 : 1; + reg_t DCLKE : 1; + reg_t PMDML : 1; + reg_t PMDMR : 1; + reg_t reserved1 : 1; + reg_t READ : 1; +}; + +static_assert(sizeof(DigitalMIC) == sizeof(reg_t), "wrong size struct"); + +struct TimerSelect { + reg_t DVTM : 1; + reg_t MOFF : 1; + reg_t reserved0 : 2; + reg_t FRN : 1; + reg_t FRATT : 1; + reg_t ADRST : 2; +}; + +static_assert(sizeof(TimerSelect) == sizeof(reg_t), "wrong size struct"); + +struct ALCTimerSelect { + reg_t RFST : 2; + reg_t WTM : 2; + reg_t EQFC : 2; + reg_t IVTM : 1; + reg_t reserved0 : 1; +}; + +static_assert(sizeof(ALCTimerSelect) == sizeof(reg_t), "wrong size struct"); + +struct ALCModeControl1 { + reg_t LMTH10 : 2; + reg_t RGAIN : 3; + reg_t ALC : 1; + reg_t LMTH2 : 1; + reg_t ALCEQN : 1; +}; + +static_assert(sizeof(ALCModeControl1) == sizeof(reg_t), "wrong size struct"); + +struct ALCModeControl2 { + reg_t REF : 8; +}; + +static_assert(sizeof(ALCModeControl2) == sizeof(reg_t), "wrong size struct"); + +struct InputVolumeControl { + reg_t IV : 8; +}; + +static_assert(sizeof(InputVolumeControl) == sizeof(reg_t), "wrong size struct"); + +using LchInputVolumeControl = InputVolumeControl; +using RchInputVolumeControl = InputVolumeControl; + +struct ALCVolume { + reg_t VOL : 8; +}; + +static_assert(sizeof(ALCVolume) == sizeof(reg_t), "wrong size struct"); + +struct RchMICGainSetting { + reg_t MGR : 8; +}; + +static_assert(sizeof(RchMICGainSetting) == sizeof(reg_t), "wrong size struct"); + +struct BeepControl { + reg_t BPLVL : 4; + reg_t BEEPH : 1; + reg_t BEEPS : 1; + reg_t BPVCM : 1; + reg_t HPZ : 1; +}; + +static_assert(sizeof(BeepControl) == sizeof(reg_t), "wrong size struct"); + +struct DigitalVolumeControl { + reg_t DV : 8; +}; + +static_assert(sizeof(DigitalVolumeControl) == sizeof(reg_t), "wrong size struct"); + +using LchDigitalVolumeControl = DigitalVolumeControl; +using RchDigitalVolumeControl = DigitalVolumeControl; + +struct EQCommonGainSelect { + reg_t reserved0 : 1; + reg_t EQC2 : 1; + reg_t EQC3 : 1; + reg_t EQC4 : 1; + reg_t EQC5 : 1; + reg_t reserved1 : 3; +}; + +static_assert(sizeof(EQCommonGainSelect) == sizeof(reg_t), "wrong size struct"); + +struct EQCommonGainSetting { + reg_t EQnT : 2; + reg_t EQnG : 6; +}; + +static_assert(sizeof(EQCommonGainSetting) == sizeof(reg_t), "wrong size struct"); + +using EQ2CommonGainSetting = EQCommonGainSetting; +using EQ3CommonGainSetting = EQCommonGainSetting; +using EQ4CommonGainSetting = EQCommonGainSetting; +using EQ5CommonGainSetting = EQCommonGainSetting; + +struct AutoHPFControl { + reg_t STG : 2; + reg_t SENC : 3; + reg_t AHPF : 1; + reg_t reserved0 : 2; +}; + +static_assert(sizeof(AutoHPFControl) == sizeof(reg_t), "wrong size struct"); + +struct DigitalFilterSelect1 { + reg_t HPFAD : 1; + reg_t HPFC : 2; + reg_t reserved0 : 5; +}; + +static_assert(sizeof(DigitalFilterSelect1) == sizeof(reg_t), "wrong size struct"); + +struct DigitalFilterSelect2 { + reg_t HPF : 1; + reg_t LPF : 1; + reg_t reserved0 : 2; + reg_t FIL3 : 1; + reg_t EQ0 : 1; + reg_t GN : 2; +}; + +static_assert(sizeof(DigitalFilterSelect2) == sizeof(reg_t), "wrong size struct"); + +struct DigitalFilterMode { + reg_t PFSDO : 1; + reg_t ADCPF : 1; + reg_t PFDAC : 2; + reg_t PFVOL : 2; + reg_t reserved0 : 2; +}; + +static_assert(sizeof(DigitalFilterMode) == sizeof(reg_t), "wrong size struct"); + +struct Coefficient14L { + reg_t l : 8; +}; + +struct Coefficient14H { + reg_t h : 6; + reg_t reserved0 : 2; +}; + +static_assert(sizeof(Coefficient14L) == sizeof(reg_t), "wrong size struct"); +static_assert(sizeof(Coefficient14H) == sizeof(reg_t), "wrong size struct"); + +using Coefficient16L = Coefficient14L; + +struct Coefficient16H { + reg_t h : 8; +}; + +static_assert(sizeof(Coefficient16H) == sizeof(reg_t), "wrong size struct"); + +using HPF2Coefficient0 = Coefficient14L; +using HPF2Coefficient1 = Coefficient14H; +using HPF2Coefficient2 = Coefficient14L; +using HPF2Coefficient3 = Coefficient14H; + +using LPFCoefficient0 = Coefficient14L; +using LPFCoefficient1 = Coefficient14H; +using LPFCoefficient2 = Coefficient14L; +using LPFCoefficient3 = Coefficient14H; + +using FIL3Coefficient0 = Coefficient14L; + +struct FIL3Coefficient1 { + reg_t h : 6; + reg_t reserved0 : 1; + reg_t s : 1; +}; + +static_assert(sizeof(FIL3Coefficient1) == sizeof(reg_t), "wrong size struct"); + +using FIL3Coefficient2 = Coefficient14L; +using FIL3Coefficient3 = Coefficient14H; + +using EQCoefficient0 = Coefficient16L; +using EQCoefficient1 = Coefficient16H; +using EQCoefficient2 = Coefficient14L; +using EQCoefficient3 = Coefficient14H; +using EQCoefficient4 = Coefficient16L; +using EQCoefficient5 = Coefficient16H; + +struct DigitalFilterSelect3 { + reg_t EQ1 : 1; + reg_t EQ2 : 1; + reg_t EQ3 : 1; + reg_t EQ4 : 1; + reg_t EQ5 : 1; + reg_t reserved0 : 3; +}; + +static_assert(sizeof(DigitalFilterSelect3) == sizeof(reg_t), "wrong size struct"); + +struct DeviceInformation { + reg_t DVN : 4; + reg_t REV : 4; +}; + +static_assert(sizeof(DeviceInformation) == sizeof(reg_t), "wrong size struct"); + +using E1Coefficient0 = Coefficient16L; +using E1Coefficient1 = Coefficient16H; +using E1Coefficient2 = Coefficient16L; +using E1Coefficient3 = Coefficient16H; +using E1Coefficient4 = Coefficient16L; +using E1Coefficient5 = Coefficient16H; + +using E2Coefficient0 = Coefficient16L; +using E2Coefficient1 = Coefficient16H; +using E2Coefficient2 = Coefficient16L; +using E2Coefficient3 = Coefficient16H; +using E2Coefficient4 = Coefficient16L; +using E2Coefficient5 = Coefficient16H; + +using E3Coefficient0 = Coefficient16L; +using E3Coefficient1 = Coefficient16H; +using E3Coefficient2 = Coefficient16L; +using E3Coefficient3 = Coefficient16H; +using E3Coefficient4 = Coefficient16L; +using E3Coefficient5 = Coefficient16H; + +using E4Coefficient0 = Coefficient16L; +using E4Coefficient1 = Coefficient16H; +using E4Coefficient2 = Coefficient16L; +using E4Coefficient3 = Coefficient16H; +using E4Coefficient4 = Coefficient16L; +using E4Coefficient5 = Coefficient16H; + +using E5Coefficient0 = Coefficient16L; +using E5Coefficient1 = Coefficient16H; +using E5Coefficient2 = Coefficient16L; +using E5Coefficient3 = Coefficient16H; +using E5Coefficient4 = Coefficient16L; +using E5Coefficient5 = Coefficient16H; + +struct Register_Type { + PowerManagement1 power_management_1; + PowerManagement2 power_management_2; + SignalSelect1 signal_select_1; + SignalSelect2 signal_select_2; + SignalSelect3 signal_select_3; + ModeControl1 mode_control_1; + ModeControl2 mode_control_2; + ModeControl3 mode_control_3; + DigitalMIC digital_mic; + TimerSelect timer_select; + ALCTimerSelect alc_timer_select; + ALCModeControl1 alc_mode_control_1; + ALCModeControl2 alc_mode_control_2; + LchInputVolumeControl l_ch_input_volume_control; + RchInputVolumeControl r_ch_input_volume_control; + ALCVolume alc_volume; + reg_t _reserved_0x10; + RchMICGainSetting r_ch_mic_gain_setting; + BeepControl beep_control; + LchDigitalVolumeControl l_ch_digital_volume_control; + RchDigitalVolumeControl r_ch_digital_volume_control; + EQCommonGainSelect eq_common_gain_select; + EQ2CommonGainSetting eq2_common_gain_setting; + EQ3CommonGainSetting eq3_common_gain_setting; + EQ4CommonGainSetting eq4_common_gain_setting; + EQ5CommonGainSetting eq5_common_gain_setting; + AutoHPFControl auto_hpf_control; + DigitalFilterSelect1 digital_filter_select_1; + DigitalFilterSelect2 digital_filter_select_2; + DigitalFilterMode digital_filter_mode; + HPF2Coefficient0 hpf_2_coefficient_0; + HPF2Coefficient1 hpf_2_coefficient_1; + HPF2Coefficient2 hpf_2_coefficient_2; + HPF2Coefficient3 hpf_2_coefficient_3; + LPFCoefficient0 lpf_coefficient_0; + LPFCoefficient1 lpf_coefficient_1; + LPFCoefficient2 lpf_coefficient_2; + LPFCoefficient3 lpf_coefficient_3; + FIL3Coefficient0 fil_3_coefficient_0; + FIL3Coefficient1 fil_3_coefficient_1; + FIL3Coefficient2 fil_3_coefficient_2; + FIL3Coefficient3 fil_3_coefficient_3; + EQCoefficient0 eq_coefficient_0; + EQCoefficient1 eq_coefficient_1; + EQCoefficient2 eq_coefficient_2; + EQCoefficient3 eq_coefficient_3; + EQCoefficient4 eq_coefficient_4; + EQCoefficient5 eq_coefficient_5; + DigitalFilterSelect3 digital_filter_select_3; + DeviceInformation device_information; + E1Coefficient0 e1_coefficient_0; + E1Coefficient1 e1_coefficient_1; + E1Coefficient2 e1_coefficient_2; + E1Coefficient3 e1_coefficient_3; + E1Coefficient4 e1_coefficient_4; + E1Coefficient5 e1_coefficient_5; + E2Coefficient0 e2_coefficient_0; + E2Coefficient1 e2_coefficient_1; + E2Coefficient2 e2_coefficient_2; + E2Coefficient3 e2_coefficient_3; + E2Coefficient4 e2_coefficient_4; + E2Coefficient5 e2_coefficient_5; + E3Coefficient0 e3_coefficient_0; + E3Coefficient1 e3_coefficient_1; + E3Coefficient2 e3_coefficient_2; + E3Coefficient3 e3_coefficient_3; + E3Coefficient4 e3_coefficient_4; + E3Coefficient5 e3_coefficient_5; + E4Coefficient0 e4_coefficient_0; + E4Coefficient1 e4_coefficient_1; + E4Coefficient2 e4_coefficient_2; + E4Coefficient3 e4_coefficient_3; + E4Coefficient4 e4_coefficient_4; + E4Coefficient5 e4_coefficient_5; + E5Coefficient0 e5_coefficient_0; + E5Coefficient1 e5_coefficient_1; + E5Coefficient2 e5_coefficient_2; + E5Coefficient3 e5_coefficient_3; + E5Coefficient4 e5_coefficient_4; + E5Coefficient5 e5_coefficient_5; +}; + +static_assert(sizeof(Register_Type) == reg_count * sizeof(reg_t), "Register_Type wrong size"); + +struct RegisterMap { + constexpr RegisterMap( + Register_Type values + ) : r(values) + { + } + + union { + Register_Type r; + std::array w; + }; +}; + +static_assert(sizeof(RegisterMap) == reg_count * sizeof(reg_t), "RegisterMap type wrong size"); + +constexpr RegisterMap default_after_reset { Register_Type { + .power_management_1 = { + .PMADL = 0, + .PMADR = 0, + .PMDAC = 0, + .reserved0 = 0, + .PMBP = 0, + .PMVCM = 0, + .PMPFIL = 0, + }, + .power_management_2 = { + .LOSEL = 0, + .PMSL = 0, + .PMPLL = 0, + .MS = 0, + .PMHPL = 0, + .PMHPR = 0, + .reserved0 = 0, + .PMOSC = 0, + }, + .signal_select_1 = { + .MGAIN20 = 0b110, + .PMMP = 0, + .MPSEL = 0, + .DACS = 0, + .MGAIN3 = 0, + .SLPSN = 0, + }, + .signal_select_2 = { + .INR = 0b00, + .INL = 0b00, + .MICL = 0, + .reserved0 = 0, + .SPKG = 0b00, + }, + .signal_select_3 = { + .MONO = 0b00, + .PTS = 0b01, + .reserved0 = 0, + .DACL = 0, + .LVCM = 0b01, + }, + .mode_control_1 = { + .DIF = 0b10, + .CKOFF = 0, + .BCKO = 0, + .PLL = 0b0101, + }, + .mode_control_2 = { + .FS = 0b1011, + .reserved0 = 0, + .CM = 0b00, + }, + .mode_control_3 = { + .reserved0 = 0, + .IVOLC = 1, + .reserved1 = 0, + .DVOLC = 1, + .SMUTE = 0, + .THDET = 0, + .TSDSEL = 0, + }, + .digital_mic = { + .DMIC = 0, + .DCLKP = 0, + .reserved0 = 0, + .DCLKE = 0, + .PMDML = 0, + .PMDMR = 1, + .reserved1 = 0, + .READ = 0, + }, + .timer_select = { + .DVTM = 0, + .MOFF = 0, + .reserved0 = 0, + .FRN = 0, + .FRATT = 0, + .ADRST = 0b00, + }, + .alc_timer_select = { + .RFST = 0b00, + .WTM = 0b00, + .EQFC = 0b10, + .IVTM = 1, + .reserved0 = 0, + }, + .alc_mode_control_1 = { + .LMTH10 = 0b00, + .RGAIN = 0b000, + .ALC = 0, + .LMTH2 = 0, + .ALCEQN = 0, + }, + .alc_mode_control_2 = { + .REF = 0xe1, + }, + .l_ch_input_volume_control = { + .IV = 0xe1, + }, + .r_ch_input_volume_control = { + .IV = 0xe1, + }, + .alc_volume = { + .VOL = 0x00, // Read-only. + }, + ._reserved_0x10 = 0x80, + .r_ch_mic_gain_setting = { + .MGR = 0x80, + }, + .beep_control = { + .BPLVL = 0b0000, + .BEEPH = 0, + .BEEPS = 0, + .BPVCM = 0, + .HPZ = 0, + }, + .l_ch_digital_volume_control = { + .DV = 0x18, + }, + .r_ch_digital_volume_control = { + .DV = 0x18, + }, + .eq_common_gain_select = { + .reserved0 = 0, + .EQC2 = 0, + .EQC3 = 0, + .EQC4 = 0, + .EQC5 = 0, + .reserved1 = 0, + }, + .eq2_common_gain_setting = { + .EQnT = 0b00, + .EQnG = 0b000000, + }, + .eq3_common_gain_setting = { + .EQnT = 0b00, + .EQnG = 0b000000, + }, + .eq4_common_gain_setting = { + .EQnT = 0b00, + .EQnG = 0b000000, + }, + .eq5_common_gain_setting = { + .EQnT = 0b00, + .EQnG = 0b000000, + }, + .auto_hpf_control = { + .STG = 0b00, + .SENC = 0b011, + .AHPF = 0, + .reserved0 = 0, + }, + .digital_filter_select_1 = { + .HPFAD = 1, + .HPFC = 0b00, + .reserved0 = 0, + }, + .digital_filter_select_2 = { + .HPF = 0, + .LPF = 0, + .reserved0 = 0, + .FIL3 = 0, + .EQ0 = 0, + .GN = 0b00, + }, + .digital_filter_mode = { + .PFSDO = 1, + .ADCPF = 1, + .PFDAC = 0b00, + .PFVOL = 0b00, + .reserved0 = 0, + }, + + .hpf_2_coefficient_0 = { .l = 0xb0 }, + .hpf_2_coefficient_1 = { .h = 0x1f, .reserved0 = 0 }, + .hpf_2_coefficient_2 = { .l = 0x9f }, + .hpf_2_coefficient_3 = { .h = 0x20, .reserved0 = 0 }, + + .lpf_coefficient_0 = { .l = 0x00 }, + .lpf_coefficient_1 = { .h = 0x00, .reserved0 = 0 }, + .lpf_coefficient_2 = { .l = 0x00 }, + .lpf_coefficient_3 = { .h = 0x00, .reserved0 = 0 }, + + .fil_3_coefficient_0 = { .l = 0x00 }, + .fil_3_coefficient_1 = { .h = 0x00, .reserved0 = 0, .s = 0 }, + .fil_3_coefficient_2 = { .l = 0x00 }, + .fil_3_coefficient_3 = { .h = 0x00, .reserved0 = 0 }, + + .eq_coefficient_0 = { .l = 0x00 }, + .eq_coefficient_1 = { .h = 0x00 }, + .eq_coefficient_2 = { .l = 0x00 }, + .eq_coefficient_3 = { .h = 0x00, .reserved0 = 0 }, + .eq_coefficient_4 = { .l = 0x00 }, + .eq_coefficient_5 = { .h = 0x00 }, + + .digital_filter_select_3 = { + .EQ1 = 0, + .EQ2 = 0, + .EQ3 = 0, + .EQ4 = 0, + .EQ5 = 0, + .reserved0 = 0, + }, + .device_information = { + .DVN = 0b0001, + .REV = 0b1100, + }, + + .e1_coefficient_0 = { .l = 0x00 }, + .e1_coefficient_1 = { .h = 0x00 }, + .e1_coefficient_2 = { .l = 0x00 }, + .e1_coefficient_3 = { .h = 0x00 }, + .e1_coefficient_4 = { .l = 0x00 }, + .e1_coefficient_5 = { .h = 0x00 }, + + .e2_coefficient_0 = { .l = 0x00 }, + .e2_coefficient_1 = { .h = 0x00 }, + .e2_coefficient_2 = { .l = 0x00 }, + .e2_coefficient_3 = { .h = 0x00 }, + .e2_coefficient_4 = { .l = 0x00 }, + .e2_coefficient_5 = { .h = 0x00 }, + + .e3_coefficient_0 = { .l = 0x00 }, + .e3_coefficient_1 = { .h = 0x00 }, + .e3_coefficient_2 = { .l = 0x00 }, + .e3_coefficient_3 = { .h = 0x00 }, + .e3_coefficient_4 = { .l = 0x00 }, + .e3_coefficient_5 = { .h = 0x00 }, + + .e4_coefficient_0 = { .l = 0x00 }, + .e4_coefficient_1 = { .h = 0x00 }, + .e4_coefficient_2 = { .l = 0x00 }, + .e4_coefficient_3 = { .h = 0x00 }, + .e4_coefficient_4 = { .l = 0x00 }, + .e4_coefficient_5 = { .h = 0x00 }, + + .e5_coefficient_0 = { .l = 0x00 }, + .e5_coefficient_1 = { .h = 0x00 }, + .e5_coefficient_2 = { .l = 0x00 }, + .e5_coefficient_3 = { .h = 0x00 }, + .e5_coefficient_4 = { .l = 0x00 }, + .e5_coefficient_5 = { .h = 0x00 }, +} }; + +class AK4951 : public audio::Codec { +public: + constexpr AK4951( + I2C& bus, + const I2C::address_t bus_address + ) : bus(bus), + bus_address(bus_address) + { + } + + std::string name() const override { + return "AK4951"; + } + + void init() override; + bool reset() override; + + volume_range_t headphone_gain_range() const override { + return { -89.5_dB, 12.0_dB }; + } + + void headphone_enable() override; + void headphone_disable() override; + + void speaker_enable(); + void speaker_disable(); + + void set_headphone_volume(const volume_t volume) override; + void headphone_mute(); + + void microphone_enable(); + void microphone_disable(); + + size_t reg_count() const override { + return asahi_kasei::ak4951::reg_count; + } + + size_t reg_bits() const override { + return 8; + } + + uint32_t reg_read(const size_t reg_address) override { + return read(reg_address); + } + +private: + I2C& bus; + const I2C::address_t bus_address; + RegisterMap map { default_after_reset }; + + enum class LineOutSelect { + Speaker, + Line, + }; + + void configure_digital_interface(); + void set_digtal_volume_control(const reg_t value); + void set_dac_power(const bool enable); + void set_headphone_power(const bool enable); + void set_speaker_power(const bool enable); + void select_line_out(const LineOutSelect value); + + reg_t read(const address_t reg_address); + void update(const Register reg); + void write(const address_t reg_address, const reg_t value); +}; + +} /* namespace ak4951 */ +} /* namespace asahi_kasei */ + +#endif/*__AK4951_H__*/ diff --git a/firmware/application/baseband_cpld.cpp b/firmware/common/baseband_cpld.cpp similarity index 100% rename from firmware/application/baseband_cpld.cpp rename to firmware/common/baseband_cpld.cpp diff --git a/firmware/application/baseband_cpld.hpp b/firmware/common/baseband_cpld.hpp similarity index 100% rename from firmware/application/baseband_cpld.hpp rename to firmware/common/baseband_cpld.hpp diff --git a/firmware/common/cpld_max5.hpp b/firmware/common/cpld_max5.hpp index 98bf96d8..bf98edda 100644 --- a/firmware/common/cpld_max5.hpp +++ b/firmware/common/cpld_max5.hpp @@ -33,6 +33,11 @@ namespace cpld { namespace max5 { +struct Config { + const std::array& block_0; + const std::array& block_1; +}; + class CPLD { public: constexpr CPLD( diff --git a/firmware/application/cpld_update.cpp b/firmware/common/cpld_update.cpp similarity index 80% rename from firmware/application/cpld_update.cpp rename to firmware/common/cpld_update.cpp index cafa81cb..11fd6867 100644 --- a/firmware/application/cpld_update.cpp +++ b/firmware/common/cpld_update.cpp @@ -30,7 +30,12 @@ #include "portapack_cpld_data.hpp" #include "hackrf_cpld_data.hpp" -bool cpld_update_if_necessary() { +namespace portapack { +namespace cpld { + +bool update_if_necessary( + const Config config +) { jtag::GPIOTarget target { portapack::gpio_cpld_tck, portapack::gpio_cpld_tms, @@ -38,7 +43,7 @@ bool cpld_update_if_necessary() { portapack::gpio_cpld_tdo }; jtag::JTAG jtag { target }; - cpld::max5::CPLD cpld { jtag }; + CPLD cpld { jtag }; /* Unknown state */ cpld.reset(); @@ -63,17 +68,11 @@ bool cpld_update_if_necessary() { } /* Verify CPLD contents against current bitstream. */ - auto ok = cpld.verify( - portapack::cpld::block_0, - portapack::cpld::block_1 - ); + auto ok = cpld.verify(config.block_0, config.block_1); /* CPLD verifies incorrectly. Erase and program with current bitstream. */ if( !ok ) { - ok = cpld.program( - portapack::cpld::block_0, - portapack::cpld::block_1 - ); + ok = cpld.program(config.block_0, config.block_1); } /* If programming OK, reset CPLD to user mode. Otherwise leave it in @@ -86,6 +85,12 @@ bool cpld_update_if_necessary() { return ok; } +} /* namespace cpld */ +} /* namespace portapack */ + +namespace hackrf { +namespace cpld { + static jtag::GPIOTarget jtag_target_hackrf() { return { hackrf::one::gpio_cpld_tck, @@ -95,9 +100,9 @@ static jtag::GPIOTarget jtag_target_hackrf() { }; } -bool cpld_hackrf_load_sram() { +bool load_sram() { auto jtag_target_hackrf_cpld = jtag_target_hackrf(); - cpld::xilinx::XC2C64A hackrf_cpld { jtag_target_hackrf_cpld }; + hackrf::one::cpld::CPLD hackrf_cpld { jtag_target_hackrf_cpld }; hackrf_cpld.write_sram(hackrf::one::cpld::verify_blocks); const auto ok = hackrf_cpld.verify_sram(hackrf::one::cpld::verify_blocks); @@ -105,18 +110,21 @@ bool cpld_hackrf_load_sram() { return ok; } -bool cpld_hackrf_verify_eeprom() { +bool verify_eeprom() { auto jtag_target_hackrf_cpld = jtag_target_hackrf(); - cpld::xilinx::XC2C64A hackrf_cpld { jtag_target_hackrf_cpld }; + hackrf::one::cpld::CPLD hackrf_cpld { jtag_target_hackrf_cpld }; const auto ok = hackrf_cpld.verify_eeprom(hackrf::one::cpld::verify_blocks); return ok; } -void cpld_hackrf_init_from_eeprom() { +void init_from_eeprom() { auto jtag_target_hackrf_cpld = jtag_target_hackrf(); - cpld::xilinx::XC2C64A hackrf_cpld { jtag_target_hackrf_cpld }; + hackrf::one::cpld::CPLD hackrf_cpld { jtag_target_hackrf_cpld }; hackrf_cpld.init_from_eeprom(); } + +} /* namespace cpld */ +} /* namespace hackrf */ diff --git a/firmware/application/cpld_update.hpp b/firmware/common/cpld_update.hpp similarity index 73% rename from firmware/application/cpld_update.hpp rename to firmware/common/cpld_update.hpp index 17c42bd5..6799c708 100644 --- a/firmware/application/cpld_update.hpp +++ b/firmware/common/cpld_update.hpp @@ -22,10 +22,26 @@ #ifndef __CPLD_UPDATE_H__ #define __CPLD_UPDATE_H__ -bool cpld_update_if_necessary(); +#include "portapack_cpld_data.hpp" -bool cpld_hackrf_load_sram(); -bool cpld_hackrf_verify_eeprom(); -void cpld_hackrf_init_from_eeprom(); +namespace portapack { +namespace cpld { + +bool update_if_necessary( + const Config config +); + +} /* namespace cpld */ +} /* namespace portapack */ + +namespace hackrf { +namespace cpld { + +bool load_sram(); +bool verify_eeprom(); +void init_from_eeprom(); + +} /* namespace cpld */ +} /* namespace hackrf */ #endif/*__CPLD_UPDATE_H__*/ diff --git a/firmware/common/hackrf_cpld_data.hpp b/firmware/common/hackrf_cpld_data.hpp new file mode 100644 index 00000000..888d41ea --- /dev/null +++ b/firmware/common/hackrf_cpld_data.hpp @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2014 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __HACKRF_CPLD_DATA_H__ +#define __HACKRF_CPLD_DATA_H__ + +#include "cpld_xilinx.hpp" + +namespace hackrf { +namespace one { +namespace cpld { + +using CPLD = ::cpld::xilinx::XC2C64A; + +extern const CPLD::verify_blocks_t verify_blocks; + +} /* namespace hackrf */ +} /* namespace one */ +} /* namespace cpld */ + +#endif/*__HACKRF_CPLD_DATA_H__*/ diff --git a/firmware/common/pins.hpp b/firmware/common/pins.hpp index 76f1761d..166cd1b0 100644 --- a/firmware/common/pins.hpp +++ b/firmware/common/pins.hpp @@ -79,7 +79,7 @@ constexpr Pin pins[] = { [P2_12] = { 2, 12, { .mode=0, .pd=0, .pu=0, .fast=0, .input=0, .ifilt=1 } }, /* !RX_AMP_PWR/P52: 10K PU, Q1.G(I), power to U13 (RX amp) */ [P2_13] = { 2, 13, { .mode=0, .pd=0, .pu=1, .fast=0, .input=1, .ifilt=1 } }, /* P2_13: PortaPack P2_13/DIR */ [P3_0] = { 3, 0, { .mode=2, .pd=0, .pu=1, .fast=0, .input=0, .ifilt=1 } }, /* I2S0_TX_SCK: PortaPack I2S0_TX_SCK(I) */ - [P3_1] = { 3, 1, { .mode=0, .pd=0, .pu=1, .fast=0, .input=0, .ifilt=1 } }, /* I2S0_RX_WS: PortaPack I2S0_TX_WS(I) */ + [P3_1] = { 3, 1, { .mode=0, .pd=0, .pu=1, .fast=0, .input=1, .ifilt=1 } }, /* I2S0_RX_WS: PortaPack I2S0_TX_WS(I). Input enabled to fold back into RX. */ [P3_2] = { 3, 2, { .mode=0, .pd=0, .pu=1, .fast=0, .input=0, .ifilt=1 } }, /* I2S0_RX_SDA: PortaPack I2S0_TX_SDA(I) */ //[P3_3] = { 3, 3, { .mode=3, .pd=1, .pu=0, .fast=1, .input=1, .ifilt=0 } }, /* SPIFI_SCK: W25Q80BV.CLK(I), enable input buffer for timing feedback */ //[P3_4] = { 3, 4, { .mode=3, .pd=0, .pu=1, .fast=1, .input=1, .ifilt=0 } }, /* SPIFI_SIO3/P82: W25Q80BV.HOLD(IO) */ diff --git a/firmware/common/portapack_cpld_data.hpp b/firmware/common/portapack_cpld_data.hpp index d356b7c3..ad4dfd2f 100644 --- a/firmware/common/portapack_cpld_data.hpp +++ b/firmware/common/portapack_cpld_data.hpp @@ -22,15 +22,35 @@ #ifndef __PORTAPACK_CPLD_DATA_H__ #define __PORTAPACK_CPLD_DATA_H__ +#include "cpld_max5.hpp" + #include #include namespace portapack { namespace cpld { +using CPLD = ::cpld::max5::CPLD; +using Config = ::cpld::max5::Config; + +namespace rev_20150901 { + extern const std::array block_0; extern const std::array block_1; +const Config config { block_0, block_1 }; + +} /* namespace rev_20150901 */ + +namespace rev_20170522 { + +extern const std::array block_0; +extern const std::array block_1; + +const Config config { block_0, block_1 }; + +} /* namespace rev_20170522 */ + } /* namespace cpld */ } /* namespace portapack */ diff --git a/firmware/common/portapack_hal.hpp b/firmware/common/portapack_hal.hpp index 00098f23..716e8678 100644 --- a/firmware/common/portapack_hal.hpp +++ b/firmware/common/portapack_hal.hpp @@ -56,6 +56,12 @@ constexpr GPIO gpio_cpld_tdo = gpio[GPIO1_8]; // P1_5 constexpr GPIO gpio_cpld_tck = gpio[GPIO3_0]; // P6_1 constexpr GPIO gpio_cpld_tdi = gpio[GPIO3_1]; // P6_2 +constexpr auto pin_i2s0_mclk = pins[CLK2]; +constexpr auto pin_i2s0_sck = pins[P3_0]; +constexpr auto pin_i2s0_ws = pins[P3_1]; +constexpr auto pin_i2s0_tx_sda = pins[P3_2]; +constexpr auto pin_i2s0_rx_sda = pins[P6_2]; + } /* namespace portapack */ #endif/*__PORTAPACK_HAL_H__*/ diff --git a/firmware/common/portapack_io.cpp b/firmware/common/portapack_io.cpp index aa053129..5668ad28 100644 --- a/firmware/common/portapack_io.cpp +++ b/firmware/common/portapack_io.cpp @@ -64,6 +64,17 @@ void IO::lcd_reset_state(const bool active) { io_write(1, io_reg); } +void IO::audio_reset_state(const bool active) { + /* Reset signal for audio codec. Some audio codecs (e.g. WM8731) do not + * implement reset signal, only soft reset via I2C. + */ + /* NOTE: This overwrites the contents of the IO register, which for now + * have no significance. But someday...? + */ + io_reg = (io_reg & 0xfd) | ((active ? 1 : 0) << 1); + io_write(1, io_reg); +} + uint32_t IO::io_update(const TouchPinsConfig write_value) { /* Very touchy code to save context of PortaPack data bus while the * resistive touch pin drive is changed. Order of operations is diff --git a/firmware/common/portapack_io.hpp b/firmware/common/portapack_io.hpp index 7ec86841..9ae46485 100644 --- a/firmware/common/portapack_io.hpp +++ b/firmware/common/portapack_io.hpp @@ -100,6 +100,7 @@ public: void lcd_backlight(const bool value); void lcd_reset_state(const bool active); + void audio_reset_state(const bool active); void lcd_data_write_command_and_data( const uint_fast8_t command, @@ -198,7 +199,7 @@ private: static constexpr size_t gpio_data_shift = 8; static constexpr ioportmask_t gpio_data_mask = 0xffU << gpio_data_shift; - uint8_t io_reg { 0x01 }; + uint8_t io_reg { 0x03 }; void lcd_rd_assert() { gpio_lcd_rd.set(); diff --git a/firmware/common/simd.hpp b/firmware/common/simd.hpp index 1724066b..c2e9be95 100644 --- a/firmware/common/simd.hpp +++ b/firmware/common/simd.hpp @@ -28,30 +28,6 @@ #include -template -struct simd32_t { - union { - uint32_t raw; - T vec; - }; - - operator uint32_t() const { - return raw; - } - - simd32_t& operator=(uint32_t v) { - raw = v; - return *this; - } - - static_assert(sizeof(raw) == sizeof(vec), "simd32_t types are not the same size."); -}; - -template -simd32_t* simd32_ptr(T* const p) { - return reinterpret_cast*>(p); -} - struct vec4_s8 { union { int8_t v[4]; diff --git a/firmware/common/wm8731.cpp b/firmware/common/wm8731.cpp index 8ea783c1..c677d374 100644 --- a/firmware/common/wm8731.cpp +++ b/firmware/common/wm8731.cpp @@ -87,24 +87,28 @@ void WM8731::init() { headphone_mute(); } -void WM8731::reset() { - write(0x0f, 0); +bool WM8731::detected() { + return reset(); } -void WM8731::write(const Register reg) { - write(toUType(reg), map.w[toUType(reg)]); +bool WM8731::reset() { + return write(0x0f, 0); } -void WM8731::write(const address_t reg_address, const reg_t value) { +bool WM8731::write(const Register reg) { + return write(toUType(reg), map.w[toUType(reg)]); +} + +bool WM8731::write(const address_t reg_address, const reg_t value) { const uint16_t word = (reg_address << 9) | value; const std::array values { static_cast(word >> 8), static_cast(word & 0xff), }; - bus.transmit(bus_address, values.data(), values.size()); + return bus.transmit(bus_address, values.data(), values.size()); } -reg_t WM8731::read(const address_t reg_address) { +uint32_t WM8731::reg_read(const size_t reg_address) { return map.w[reg_address]; } diff --git a/firmware/common/wm8731.hpp b/firmware/common/wm8731.hpp index a81e819c..b2c52778 100644 --- a/firmware/common/wm8731.hpp +++ b/firmware/common/wm8731.hpp @@ -27,14 +27,11 @@ #include "i2c_pp.hpp" -#include "volume.hpp" +#include "audio.hpp" namespace wolfson { namespace wm8731 { -constexpr volume_range_t headphone_gain_range { -121.0_dB, 6.0_dB }; -constexpr volume_range_t line_in_gain_range { -34.5_dB, 12.0_dB }; - enum class ADCSource { Line = 0, Microphone = 1, @@ -278,7 +275,7 @@ constexpr RegisterMap default_after_reset { Register_Type { }, } }; -class WM8731 { +class WM8731 : public audio::Codec { public: constexpr WM8731( I2C& bus, @@ -288,12 +285,18 @@ public: { } - void init(); + void init() override; + + bool reset() override; - void reset(); + std::string name() const override { + return "WM8731"; + } + + bool detected(); void set_line_in_volume(const volume_t volume) { - const auto normalized = line_in_gain_range.normalize(volume); + const auto normalized = line_in_gain_range().normalize(volume); auto n = normalized.centibel() / 15; write(LeftLineIn { @@ -305,8 +308,9 @@ public: }); } - void set_headphone_volume(const volume_t volume) { - const auto normalized = headphone_gain_range.normalize(volume); + void set_headphone_volume(const volume_t volume) override { + headphone_volume = volume; + const auto normalized = headphone_gain_range().normalize(volume); auto n = normalized.centibel() / 10; write(LeftHeadphoneOut { @@ -317,8 +321,32 @@ public: }); } + volume_range_t headphone_gain_range() const override { + return { -121.0_dB, 6.0_dB }; + } + + volume_range_t line_in_gain_range() const { + return { -34.5_dB, 12.0_dB }; + } + void headphone_mute() { - set_headphone_volume(headphone_gain_range.min); + set_headphone_volume(headphone_gain_range().min); + } + + void headphone_enable() override { + set_headphone_volume(headphone_volume); + } + + void headphone_disable() override { + headphone_mute(); + } + + void microphone_enable() override { + // TODO: Implement + } + + void microphone_disable() override { + // TODO: Implement } // void microphone_mute(const bool mute) { @@ -331,16 +359,25 @@ public: // write(Register::AnalogAudioPathControl); // } - reg_t read(const address_t reg_address); + size_t reg_count() const override { + return wolfson::wm8731::reg_count; + } + + size_t reg_bits() const override { + return 9; + } + + uint32_t reg_read(const size_t reg_address) override; private: I2C& bus; const I2C::address_t bus_address; RegisterMap map { default_after_reset }; + volume_t headphone_volume = -60.0_dB; - void write(const Register reg); + bool write(const Register reg); - void write(const address_t reg_address, const reg_t value); + bool write(const address_t reg_address, const reg_t value); void write(const LeftLineIn value); void write(const RightLineIn value); diff --git a/firmware/tools/extract_cpld_data.py b/firmware/tools/extract_cpld_data.py index c4405854..530a31ac 100755 --- a/firmware/tools/extract_cpld_data.py +++ b/firmware/tools/extract_cpld_data.py @@ -25,11 +25,12 @@ import sys -if len(sys.argv) != 2: - print('Usage: ') +if len(sys.argv) != 3: + print('Usage: ') sys.exit(-1) f = open(sys.argv[1], 'r') +revision_name = sys.argv[2] calculate_crc = False @@ -98,7 +99,8 @@ print("""#include "portapack_cpld_data.hpp" namespace portapack { namespace cpld { -""") +namespace %s { +""" % revision_name) print('const std::array block_0 { {' % len(block_0)) print_block(block_0) @@ -111,9 +113,10 @@ print_block(block_1) print("""} }; +} /* namespace %s */ } /* namespace cpld */ } /* namespace portapack */ -""") +""" % revision_name) if calculate_crc: # Apply post-programming modification to make post-programming CRC correct: diff --git a/firmware/tools/extract_svf_data_xc2c64a.py b/firmware/tools/extract_svf_data_xc2c64a.py index 5a2656d6..a82ca538 100755 --- a/firmware/tools/extract_svf_data_xc2c64a.py +++ b/firmware/tools/extract_svf_data_xc2c64a.py @@ -36,7 +36,7 @@ def crack_variable_path(variable_path): parser = argparse.ArgumentParser() parser.add_argument('input_file_path', type=str) parser.add_argument('variable_path', type=str) -parser.add_argument('header_file_path', type=str) +# parser.add_argument('header_file_path', type=str) parser.add_argument('data_file_path', type=str) args = parser.parse_args() @@ -330,13 +330,14 @@ for block in verify: if block['id'] == 0x05: block['tdo'] = program_done[0]['tdi'] -header_file_name = os.path.split(args.header_file_path)[1] +# header_file_name = os.path.split(args.header_file_path)[1] +header_file_name = 'hackrf_cpld_data.hpp' -header_includes = ('cpld_xilinx.hpp',) +# header_includes = ('cpld_xilinx.hpp',) data_includes = (header_file_name,) type_name = '::cpld::xilinx::XC2C64A::verify_blocks_t' -HeaderGen(header_includes, namespaces, type_name, variable_name).to_file(args.header_file_path) +# HeaderGen(header_includes, namespaces, type_name, variable_name).to_file(args.header_file_path) DataGen(data_includes, namespaces, type_name, variable_name, verify).to_file(args.data_file_path) diff --git a/hardware/.gitignore b/hardware/.gitignore index ddc0d214..a0aef850 100644 --- a/hardware/.gitignore +++ b/hardware/.gitignore @@ -1,19 +1,5 @@ # Common *.bak -# CPLD tool -*.bsd -*.rpt -tb2_ie_info.xml -**/cpld/db/ -**/cpld/incremental_db/ -**/cpld/output_files/*.done -**/cpld/output_files/*.smsg -**/cpld/output_files/*.summary -**/cpld/output_files/*.jdi -**/cpld/output_files/*.pin -**/cpld/output_files/*.pof -**/cpld/simulation/ - # KiCad *.kicad_pcb-bak diff --git a/hardware/portapack_h1/cpld/.gitignore b/hardware/portapack_h1/cpld/.gitignore new file mode 100644 index 00000000..8399f17b --- /dev/null +++ b/hardware/portapack_h1/cpld/.gitignore @@ -0,0 +1,14 @@ +**/*.qws +**/*.chg +**/smart.log +**/db/ +**/incremental_db/ +**/output_files/*.done +**/output_files/*.smsg +**/output_files/*.summary +**/output_files/*.jdi +**/output_files/*.pin +**/output_files/*.pof +**/output_files/*.rpt +**/output_files/*.sld +**/simulation/ diff --git a/hardware/portapack_h1/cpld/20150901/Makefile b/hardware/portapack_h1/cpld/20150901/Makefile new file mode 100644 index 00000000..26da9d70 --- /dev/null +++ b/hardware/portapack_h1/cpld/20150901/Makefile @@ -0,0 +1,108 @@ +# +# Copyright (C) 2017 Jared Boone, ShareBrained Technology, Inc. +# +# This file is part of PortaPack. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. + +# Makefile based on Altera Quartus documentation example, topic +# "About Using Quartus II from the Command Line" + +################################################################### +# Project Configuration: +# +# Specify the name of the design (project) and Quartus II Settings +# File (.qsf) and the list of source files used. +################################################################### + +PROJECT=portapack_h1_cpld +SOURCE_FILES=top.vhd +ASSIGNMENT_FILES=$(PROJECT).qpf $(PROJECT).qsf $(PROJECT).sdc +OUTPUT_DIR=output_files + +################################################################### +# Main Targets +# +# all: build everything +# clean: remove output files and database +################################################################### + +all: smart.log $(OUTPUT_DIR)/$(PROJECT).asm.rpt $(OUTPUT_DIR)/$(PROJECT).sta.rpt + +clean: + rm -rf *.chg *.qws smart.log db/ incremental_db/ $(OUTPUT_DIR)/ + +map: smart.log $(OUTPUT_DIR)/$(PROJECT).map.rpt + +fit: smart.log $(OUTPUT_DIR)/$(PROJECT).fit.rpt + +asm: smart.log $(OUTPUT_DIR)/$(PROJECT).asm.rpt + +sta: smart.log $(OUTPUT_DIR)/$(PROJECT).sta.rpt + +smart: smart.log + +################################################################### +# Executable Configuration +################################################################### + +MAP_ARGS= +FIT_ARGS= +ASM_ARGS= +STA_ARGS= + +################################################################### +# Target implementations +################################################################### + +STAMP = echo done > + +$(OUTPUT_DIR)/$(PROJECT).map.rpt: $(SOURCE_FILES) + quartus_map $(MAP_ARGS) $(PROJECT) + $(STAMP) fit.chg + +$(OUTPUT_DIR)/$(PROJECT).fit.rpt: fit.chg $(OUTPUT_DIR)/$(PROJECT).map.rpt + quartus_fit $(FIT_ARGS) $(PROJECT) + $(STAMP) asm.chg + $(STAMP) sta.chg + +$(OUTPUT_DIR)/$(PROJECT).asm.rpt: asm.chg $(OUTPUT_DIR)/$(PROJECT).fit.rpt + quartus_asm $(ASM_ARGS) $(PROJECT) + +$(OUTPUT_DIR)/$(PROJECT).sta.rpt: sta.chg $(OUTPUT_DIR)/$(PROJECT).fit.rpt + quartus_sta $(STA_ARGS) $(PROJECT) + +smart.log: $(ASSIGNMENT_FILES) $(OUTPUT_DIR) + quartus_sh --determine_smart_action $(PROJECT) > smart.log + +################################################################### +# Project initialization +################################################################### + +$(OUTPUT_DIR): + mkdir $(OUTPUT_DIR) + +$(ASSIGNMENT_FILES): $(OUTPUT_DIR) + quartus_sh --prepare $(PROJECT) + +fit.chg: + $(STAMP) fit.chg + +sta.chg: + $(STAMP) sta.chg + +asm.chg: + $(STAMP) asm.chg diff --git a/hardware/portapack_h1/cpld/output_files/portapack_h1_cpld.svf b/hardware/portapack_h1/cpld/20150901/output_files/portapack_h1_cpld.svf similarity index 94% rename from hardware/portapack_h1/cpld/output_files/portapack_h1_cpld.svf rename to hardware/portapack_h1/cpld/20150901/output_files/portapack_h1_cpld.svf index c039e066..baeef5f7 100644 --- a/hardware/portapack_h1/cpld/output_files/portapack_h1_cpld.svf +++ b/hardware/portapack_h1/cpld/20150901/output_files/portapack_h1_cpld.svf @@ -1,25 +1,25 @@ -!Copyright (C) 1991-2014 Altera Corporation. All rights reserved. -!Your use of Altera Corporation's design tools, logic functions +!Copyright (C) 2017 Intel Corporation. All rights reserved. +!Your use of Intel Corporation's design tools, logic functions !and other software and tools, and its AMPP partner logic !functions, and any output files from any of the foregoing !(including device programming or simulation files), and any !associated documentation or information are expressly subject -!to the terms and conditions of the Altera Program License -!Subscription Agreement, the Altera Quartus II License Agreement, -!the Altera MegaCore Function License Agreement, or other +!to the terms and conditions of the Intel Program License +!Subscription Agreement, the Intel Quartus Prime License Agreement, +!the Intel MegaCore Function License Agreement, or other !applicable license agreement, including, without limitation, !that your use is for the sole purpose of programming logic -!devices manufactured by Altera and sold by Altera or its +!devices manufactured by Intel and sold by Intel or its !authorized distributors. Please refer to the applicable !agreement for further details. ! -!Quartus II SVF converter 14.1 +!Quartus Prime SVF converter 16.1 ! -!Device #1: 5M40Z - /mnt/hgfs/src/portapack-hackrf/hardware/portapack_h1/cpld/output_files/portapack_h1_cpld.pof Fri Aug 21 12:12:34 2015 +!Device #1: 5M40Z - /home/jboone/src/portapack-release/hardware/portapack_h1/cpld/20150901/output_files/portapack_h1_cpld.pof Wed May 31 16:04:37 2017 ! -!NOTE "USERCODE" "0018AF0E"; +!NOTE "USERCODE" "0018B114"; ! -!NOTE "CHECKSUM" "0018B286"; +!NOTE "CHECKSUM" "0018B594"; ! ! ! @@ -31,8 +31,13 @@ TRST ABSENT; ENDDR IDLE; ENDIR IRPAUSE; STATE IDLE; +SIR 10 TDI (005); +RUNTEST IDLE 93 TCK ENDSTATE IDLE; +SDR 240 TDI (FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); +SIR 10 TDI (3FF); +RUNTEST 18003 TCK; SIR 10 TDI (2CC); -RUNTEST IDLE 18003 TCK ENDSTATE IDLE; +RUNTEST 18003 TCK; ! ! ! @@ -148,13 +153,13 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (67FF); +SDR 16 TDI (77FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FEFD); +SDR 16 TDI (FEDD); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -178,21 +183,21 @@ SDR 16 TDI (B99F); RUNTEST 1800 TCK; SDR 16 TDI (BCCC); RUNTEST 1800 TCK; -SDR 16 TDI (CFFE); +SDR 16 TDI (CFFF); RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEB); +SDR 16 TDI (FFF7); RUNTEST 1800 TCK; -SDR 16 TDI (77F3); +SDR 16 TDI (6FEB); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFE6); +SDR 16 TDI (BFD6); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -204,38 +209,6 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBFE); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -250,17 +223,49 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFDB); +SDR 16 TDI (FFFE); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFF7); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFD7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (EFFF); RUNTEST 1800 TCK; @@ -274,7 +279,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFFE); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -282,9 +287,9 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFFB); RUNTEST 1800 TCK; -SDR 16 TDI (7FF5); +SDR 16 TDI (7FF7); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -292,7 +297,7 @@ SDR 16 TDI (BFFD); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7EFF); +SDR 16 TDI (7AFF); RUNTEST 1800 TCK; SDR 16 TDI (EFFF); RUNTEST 1800 TCK; @@ -314,15 +319,15 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FDBB); +SDR 16 TDI (FFBF); RUNTEST 1800 TCK; -SDR 16 TDI (77EF); +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7B); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); +SDR 16 TDI (BFFB); RUNTEST 1800 TCK; SDR 16 TDI (7EEF); RUNTEST 1800 TCK; @@ -332,7 +337,7 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -346,13 +351,13 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFFD); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (6FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (5FFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -378,120 +383,120 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; +SDR 16 TDI (FF7E); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7EEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (76FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; SDR 16 TDI (FF7F); RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FEF7); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7EF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7EFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -504,53 +509,13 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B5FD); +SDR 16 TDI (BDFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (ADFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (FF5F); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); +SDR 16 TDI (DFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -558,6 +523,22 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7DFF); RUNTEST 1800 TCK; +SDR 16 TDI (EEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); @@ -570,6 +551,94 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (79FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F7F); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFD7); +RUNTEST 1800 TCK; +SDR 16 TDI (7EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); @@ -588,75 +657,19 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F6FF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBCB); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); +SDR 16 TDI (7F7F); RUNTEST 1800 TCK; SDR 16 TDI (FFDF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -678,22 +691,14 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (DBFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFF5); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (7EFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FAFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFD5); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (A55F); @@ -716,13 +721,13 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FDF); +SDR 16 TDI (7FDD); RUNTEST 1800 TCK; -SDR 16 TDI (DEEF); +SDR 16 TDI (EFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BBFF); RUNTEST 1800 TCK; -SDR 16 TDI (FDFF); +SDR 16 TDI (DFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -748,15 +753,15 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFFE); RUNTEST 1800 TCK; -SDR 16 TDI (BFFB); +SDR 16 TDI (BFDF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEB); +SDR 16 TDI (FD6A); RUNTEST 1800 TCK; -SDR 16 TDI (6BFF); +SDR 16 TDI (7BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -782,13 +787,13 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FDDF); RUNTEST 1800 TCK; -SDR 16 TDI (BDFF); +SDR 16 TDI (BFFD); RUNTEST 1800 TCK; -SDR 16 TDI (DFF5); +SDR 16 TDI (FF75); RUNTEST 1800 TCK; -SDR 16 TDI (77FF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -812,15 +817,143 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFB); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (F9BF); +SDR 16 TDI (E76F); RUNTEST 1800 TCK; -SDR 16 TDI (BAFE); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BD7B); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (F77F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (B72F); +RUNTEST 1800 TCK; +SDR 16 TDI (BEDB); +RUNTEST 1800 TCK; +SDR 16 TDI (7EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7AF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (CAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -846,140 +979,12 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFE); RUNTEST 1800 TCK; -SDR 16 TDI (FFDE); +SDR 16 TDI (FDDD); RUNTEST 1800 TCK; -SDR 16 TDI (BFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (35FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FD2); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFBC); -RUNTEST 1800 TCK; -SDR 16 TDI (C7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7AF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (DDEE); +SDR 16 TDI (BDFC); RUNTEST 1800 TCK; SDR 16 TDI (B9FF); RUNTEST 1800 TCK; -SDR 16 TDI (BDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); -RUNTEST 1800 TCK; -SDR 16 TDI (EA9F); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFB); -RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -1004,19 +1009,19 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); +SDR 16 TDI (7FF3); RUNTEST 1800 TCK; -SDR 16 TDI (0DDF); +SDR 16 TDI (D55F); RUNTEST 1800 TCK; -SDR 16 TDI (B598); +SDR 16 TDI (B585); RUNTEST 1800 TCK; -SDR 16 TDI (5E74); +SDR 16 TDI (07F4); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (7BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B65F); +SDR 16 TDI (B6FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1036,51 +1041,19 @@ SDR 16 TDI (BFFE); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFC); +SDR 16 TDI (7FF3); RUNTEST 1800 TCK; -SDR 16 TDI (0DDD); +SDR 16 TDI (DCCF); RUNTEST 1800 TCK; -SDR 16 TDI (BD99); +SDR 16 TDI (BD81); RUNTEST 1800 TCK; -SDR 16 TDI (1E6A); +SDR 16 TDI (816B); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7F08); -RUNTEST 1800 TCK; -SDR 16 TDI (388F); -RUNTEST 1800 TCK; -SDR 16 TDI (B89E); -RUNTEST 1800 TCK; -SDR 16 TDI (887F); -RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B6F7); +SDR 16 TDI (BF5F); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1100,15 +1073,47 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7F0C); +SDR 16 TDI (7F00); RUNTEST 1800 TCK; -SDR 16 TDI (388F); +SDR 16 TDI (8CCF); RUNTEST 1800 TCK; -SDR 16 TDI (B89F); +SDR 16 TDI (B881); RUNTEST 1800 TCK; -SDR 16 TDI (983B); +SDR 16 TDI (E6FF); RUNTEST 1800 TCK; -SDR 16 TDI (67FF); +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7F7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F00); +RUNTEST 1800 TCK; +SDR 16 TDI (8CCF); +RUNTEST 1800 TCK; +SDR 16 TDI (B881); +RUNTEST 1800 TCK; +SDR 16 TDI (E073); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1134,13 +1139,13 @@ SDR 16 TDI (9999); RUNTEST 1800 TCK; SDR 16 TDI (73E8); RUNTEST 1800 TCK; -SDR 16 TDI (C445); +SDR 16 TDI (4885); RUNTEST 1800 TCK; SDR 16 TDI (B938); RUNTEST 1800 TCK; -SDR 16 TDI (88FF); +SDR 16 TDI (98FF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (7BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1166,17 +1171,17 @@ SDR 16 TDI (5DDD); RUNTEST 1800 TCK; SDR 16 TDI (7BCD); RUNTEST 1800 TCK; -SDR 16 TDI (DCCA); +SDR 16 TDI (CDDA); RUNTEST 1800 TCK; SDR 16 TDI (B19D); RUNTEST 1800 TCK; SDR 16 TDI (DDFB); RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BDF7); +SDR 16 TDI (BFF7); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1198,160 +1203,16 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (E66F); +SDR 16 TDI (6FFF); RUNTEST 1800 TCK; -SDR 16 TDI (B37F); +SDR 16 TDI (B377); RUNTEST 1800 TCK; -SDR 16 TDI (FFDE); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FEB); -RUNTEST 1800 TCK; -SDR 16 TDI (EEDF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (FCFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EEEE); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFB); -RUNTEST 1800 TCK; -SDR 16 TDI (FBBF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFA); -RUNTEST 1800 TCK; -SDR 16 TDI (EFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FEF); -RUNTEST 1800 TCK; -SDR 16 TDI (FEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFDD); -RUNTEST 1800 TCK; -SDR 16 TDI (FD7A); +SDR 16 TDI (BFEF); RUNTEST 1800 TCK; SDR 16 TDI (77FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BEBE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFF7); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FB7F); -RUNTEST 1800 TCK; -SDR 16 TDI (BF9F); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -1360,73 +1221,33 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFB); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BAFF); +SDR 16 TDI (AFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFD); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBDF); +RUNTEST 1800 TCK; SDR 16 TDI (FDFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (DFDE); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFB); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B7FD); +SDR 16 TDI (BFF7); RUNTEST 1800 TCK; -SDR 16 TDI (FFF7); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FDFB); -RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFF3); -RUNTEST 1800 TCK; -SDR 16 TDI (BBF7); +SDR 16 TDI (FFFD); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -1438,9 +1259,25 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FF7F); +SDR 16 TDI (FFFB); RUNTEST 1800 TCK; -SDR 16 TDI (BEAF); +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFE); RUNTEST 1800 TCK; @@ -1448,9 +1285,113 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFBE); +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFA); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FA); +RUNTEST 1800 TCK; +SDR 16 TDI (BF9F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF3); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FE); RUNTEST 1800 TCK; SDR 16 TDI (7FFB); RUNTEST 1800 TCK; @@ -1464,57 +1405,121 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BDEE); +SDR 16 TDI (BFF7); RUNTEST 1800 TCK; -SDR 16 TDI (B7F7); +SDR 16 TDI (7DFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBEF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBFE); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FEDF); -RUNTEST 1800 TCK; -SDR 16 TDI (6DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FEF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (7FFD); RUNTEST 1800 TCK; SDR 16 TDI (FFF7); RUNTEST 1800 TCK; -SDR 16 TDI (ADBF); +SDR 16 TDI (B7FF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFA); +RUNTEST 1800 TCK; +SDR 16 TDI (BEAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFE); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFCF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F77F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -1528,13 +1533,13 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); +SDR 16 TDI (BFF7); RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FDFF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1542,31 +1547,39 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFD7); RUNTEST 1800 TCK; -SDR 16 TDI (6EFF); +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF5F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BADF); -RUNTEST 1800 TCK; -SDR 16 TDI (7BD7); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FD7D); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1574,14 +1587,6 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FBF9); -RUNTEST 1800 TCK; -SDR 16 TDI (B3FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); @@ -1592,13 +1597,13 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BE5F); +SDR 16 TDI (BBFF); RUNTEST 1800 TCK; -SDR 16 TDI (FF77); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FEFD); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1606,13 +1611,13 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FEEE); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFBF); RUNTEST 1800 TCK; -SDR 16 TDI (FB3B); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (77FF); +SDR 16 TDI (7EFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1620,15 +1625,23 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFEA); RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BE5F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BBFF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1642,7 +1655,15 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (D7FF); +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -1652,29 +1673,13 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBAF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (DDFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -1688,9 +1693,9 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BDAF); +SDR 16 TDI (B5AF); RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -1702,13 +1707,13 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (F7BA); +SDR 16 TDI (FFFD); RUNTEST 1800 TCK; -SDR 16 TDI (B37F); +SDR 16 TDI (BFFB); RUNTEST 1800 TCK; -SDR 16 TDI (EEFF); +SDR 16 TDI (FFFD); RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1734,11 +1739,75 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FEFF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFBF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFF3); +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7EFF); RUNTEST 1800 TCK; @@ -1752,31 +1821,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7F7F); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F76F); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFB7); -RUNTEST 1800 TCK; -SDR 16 TDI (6EFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFAF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1786,55 +1831,15 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FF7F); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FCDE); +SDR 16 TDI (FFFE); RUNTEST 1800 TCK; -SDR 16 TDI (BDBF); +SDR 16 TDI (AFFF); RUNTEST 1800 TCK; -SDR 16 TDI (DF8D); -RUNTEST 1800 TCK; -SDR 16 TDI (7AFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B5AF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (6FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (6F7F); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBAD); -RUNTEST 1800 TCK; -SDR 16 TDI (BFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (F77B); +SDR 16 TDI (DDBB); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -1850,26 +1855,10 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FBF7); -RUNTEST 1800 TCK; -SDR 16 TDI (7F7F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (F77B); -RUNTEST 1800 TCK; -SDR 16 TDI (B37F); -RUNTEST 1800 TCK; -SDR 16 TDI (ECF6); -RUNTEST 1800 TCK; -SDR 16 TDI (6DFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); @@ -1880,13 +1869,29 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFAF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (3000); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (67C0); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (061F); +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B6AF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1894,13 +1899,13 @@ SDR 16 TDI (FFEF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FCCD); +SDR 16 TDI (FFFC); RUNTEST 1800 TCK; -SDR 16 TDI (BBB7); +SDR 16 TDI (BE1F); RUNTEST 1800 TCK; -SDR 16 TDI (7F99); +SDR 16 TDI (0019); RUNTEST 1800 TCK; -SDR 16 TDI (7CFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1912,13 +1917,13 @@ SDR 16 TDI (6BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); +SDR 16 TDI (BF5F); RUNTEST 1800 TCK; -SDR 16 TDI (3000); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (66E0); +SDR 16 TDI (7FBF); RUNTEST 1800 TCK; -SDR 16 TDI (0601); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1926,13 +1931,13 @@ SDR 16 TDI (FFDF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FCCD); +SDR 16 TDI (FFFC); RUNTEST 1800 TCK; -SDR 16 TDI (BBBE); +SDR 16 TDI (A01B); RUNTEST 1800 TCK; -SDR 16 TDI (D519); +SDR 16 TDI (8019); RUNTEST 1800 TCK; -SDR 16 TDI (7CFF); +SDR 16 TDI (70FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1944,13 +1949,13 @@ SDR 16 TDI (7DFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BD5F); +SDR 16 TDI (BAFF); RUNTEST 1800 TCK; -SDR 16 TDI (3000); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (67E0); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (061F); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1958,13 +1963,13 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FCC8); +SDR 16 TDI (FFFC); RUNTEST 1800 TCK; -SDR 16 TDI (B11F); +SDR 16 TDI (BE1F); RUNTEST 1800 TCK; -SDR 16 TDI (CC99); +SDR 16 TDI (8019); RUNTEST 1800 TCK; -SDR 16 TDI (78FF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -1976,13 +1981,13 @@ SDR 16 TDI (6BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BBFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; -SDR 16 TDI (3000); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (67E0); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (0601); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -1990,13 +1995,13 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (F698); +SDR 16 TDI (FFFC); RUNTEST 1800 TCK; -SDR 16 TDI (B11F); +SDR 16 TDI (A01F); RUNTEST 1800 TCK; -SDR 16 TDI (8033); +SDR 16 TDI (8019); RUNTEST 1800 TCK; -SDR 16 TDI (6EFF); +SDR 16 TDI (70FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2004,17 +2009,17 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (77FF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFF7); +SDR 16 TDI (BFDF); RUNTEST 1800 TCK; -SDR 16 TDI (BBBB); +SDR 16 TDI (3333); RUNTEST 1800 TCK; -SDR 16 TDI (73EE); +SDR 16 TDI (63E6); RUNTEST 1800 TCK; -SDR 16 TDI (6EE7); +SDR 16 TDI (6667); RUNTEST 1800 TCK; SDR 16 TDI (B333); RUNTEST 1800 TCK; @@ -2022,13 +2027,13 @@ SDR 16 TDI (31F3); RUNTEST 1800 TCK; SDR 16 TDI (6666); RUNTEST 1800 TCK; -SDR 16 TDI (78C6); +SDR 16 TDI (7CCE); RUNTEST 1800 TCK; -SDR 16 TDI (ACCF); +SDR 16 TDI (B9CF); RUNTEST 1800 TCK; -SDR 16 TDI (B318); +SDR 16 TDI (9BB9); RUNTEST 1800 TCK; -SDR 16 TDI (7BCC); +SDR 16 TDI (73CC); RUNTEST 1800 TCK; SDR 16 TDI (CCC7); RUNTEST 1800 TCK; @@ -2040,13 +2045,13 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (3333); +SDR 16 TDI (7777); RUNTEST 1800 TCK; -SDR 16 TDI (6546); +SDR 16 TDI (6957); RUNTEST 1800 TCK; -SDR 16 TDI (6667); +SDR 16 TDI (7777); RUNTEST 1800 TCK; SDR 16 TDI (B777); RUNTEST 1800 TCK; @@ -2054,13 +2059,13 @@ SDR 16 TDI (74AB); RUNTEST 1800 TCK; SDR 16 TDI (7777); RUNTEST 1800 TCK; -SDR 16 TDI (7D9C); +SDR 16 TDI (7DDC); RUNTEST 1800 TCK; SDR 16 TDI (B995); RUNTEST 1800 TCK; -SDR 16 TDI (19CD); +SDR 16 TDI (1999); RUNTEST 1800 TCK; -SDR 16 TDI (79DD); +SDR 16 TDI (73DD); RUNTEST 1800 TCK; SDR 16 TDI (DDD2); RUNTEST 1800 TCK; @@ -2068,17 +2073,17 @@ SDR 16 TDI (B5DD); RUNTEST 1800 TCK; SDR 16 TDI (DDFF); RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFB); +SDR 16 TDI (BEEF); RUNTEST 1800 TCK; -SDR 16 TDI (FDDD); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FDD); +SDR 16 TDI (7FDF); RUNTEST 1800 TCK; -SDR 16 TDI (DFDF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -2086,11 +2091,11 @@ SDR 16 TDI (FFEF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFF6); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (ACFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; -SDR 16 TDI (337F); +SDR 16 TDI (777F); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -2104,9 +2109,169 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; SDR 16 TDI (BFFD); RUNTEST 1800 TCK; -SDR 16 TDI (5FFF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -2118,15 +2283,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBDF); -RUNTEST 1800 TCK; -SDR 16 TDI (DDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7BBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (EFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -2144,33 +2301,9 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BDFD); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FDDF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDD); -RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (DFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -2182,59 +2315,11 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDD); -RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBFF); -RUNTEST 1800 TCK; -SDR 16 TDI (5FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FEDF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBFF); +SDR 16 TDI (EFFF); RUNTEST 1800 TCK; SDR 16 TDI (BDFF); RUNTEST 1800 TCK; -SDR 16 TDI (77BF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (BFFB); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -2244,7 +2329,7 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2254,6 +2339,14 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; +SDR 16 TDI (DFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); @@ -2268,99 +2361,11 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFB); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FDFF); -RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2456,7 +2461,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2488,7 +2493,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BF7F); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2520,7 +2525,7 @@ SDR 16 TDI (7BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B77F); +SDR 16 TDI (B7FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2552,7 +2557,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFBF); +SDR 16 TDI (BBBF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2584,7 +2589,7 @@ SDR 16 TDI (79FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B7BF); +SDR 16 TDI (BFBF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -2712,774 +2717,6 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BEBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (A59F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FDF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFF5); -RUNTEST 1800 TCK; -SDR 16 TDI (69FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (AB7F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (AFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BDDF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFF5); -RUNTEST 1800 TCK; -SDR 16 TDI (6BFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BABF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (3333); -RUNTEST 1800 TCK; -SDR 16 TDI (63E6); -RUNTEST 1800 TCK; -SDR 16 TDI (6667); -RUNTEST 1800 TCK; -SDR 16 TDI (B333); -RUNTEST 1800 TCK; -SDR 16 TDI (31F3); -RUNTEST 1800 TCK; -SDR 16 TDI (6666); -RUNTEST 1800 TCK; -SDR 16 TDI (7CCC); -RUNTEST 1800 TCK; -SDR 16 TDI (B98F); -RUNTEST 1800 TCK; -SDR 16 TDI (9999); -RUNTEST 1800 TCK; -SDR 16 TDI (73CC); -RUNTEST 1800 TCK; -SDR 16 TDI (CCC7); -RUNTEST 1800 TCK; -SDR 16 TDI (B999); -RUNTEST 1800 TCK; -SDR 16 TDI (99FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7BF); -RUNTEST 1800 TCK; -SDR 16 TDI (7777); -RUNTEST 1800 TCK; -SDR 16 TDI (6957); -RUNTEST 1800 TCK; -SDR 16 TDI (7777); -RUNTEST 1800 TCK; -SDR 16 TDI (B777); -RUNTEST 1800 TCK; -SDR 16 TDI (74AB); -RUNTEST 1800 TCK; -SDR 16 TDI (7777); -RUNTEST 1800 TCK; -SDR 16 TDI (7DDD); -RUNTEST 1800 TCK; -SDR 16 TDI (BBA5); -RUNTEST 1800 TCK; -SDR 16 TDI (5DDD); -RUNTEST 1800 TCK; -SDR 16 TDI (7BDD); -RUNTEST 1800 TCK; -SDR 16 TDI (DDD2); -RUNTEST 1800 TCK; -SDR 16 TDI (B5DD); -RUNTEST 1800 TCK; -SDR 16 TDI (DDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FDF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FBFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (F7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FF7F); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFB); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (AD5F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFF5); -RUNTEST 1800 TCK; -SDR 16 TDI (69FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (ABFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7DFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BD9F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFF5); -RUNTEST 1800 TCK; -SDR 16 TDI (69FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (B6BF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -3508,7 +2745,7 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFE); RUNTEST 1800 TCK; -SDR 16 TDI (75FF); +SDR 16 TDI (77FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -3544,31 +2781,55 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (AD9F); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (69FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFDF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFFE); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -3576,39 +2837,15 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (AFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (7DFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFAF); +SDR 16 TDI (BD5F); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -3636,11 +2873,11 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFF5); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (6BFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BBFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -3672,135 +2909,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B6AF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FDF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B7FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (7BFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B9FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FBF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (AFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEB); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BF5F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BE9F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BDFF); RUNTEST 1800 TCK; SDR 16 TDI (3333); RUNTEST 1800 TCK; @@ -3832,7 +2941,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFBF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (7777); RUNTEST 1800 TCK; @@ -3864,7 +2973,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BEDF); +SDR 16 TDI (B6FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -3890,334 +2999,6 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (B7FF); RUNTEST 1800 TCK; -SDR 16 TDI (FFF7); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FF5F); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BF7F); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (6FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BF7F); -RUNTEST 1800 TCK; -SDR 16 TDI (FEFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FF7F); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFB); -RUNTEST 1800 TCK; -SDR 16 TDI (FF7F); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BBF7); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFB); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (77FF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); -RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BDFD); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (6FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (DFF7); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFBD); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FDFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFB); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFEA); -RUNTEST 1800 TCK; -SDR 16 TDI (75FF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFD); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); @@ -4248,9 +3029,17 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFDB); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B5FF); +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -4274,22 +3063,6 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (B6AF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); @@ -4306,22 +3079,6 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFF5); -RUNTEST 1800 TCK; -SDR 16 TDI (6BFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); @@ -4344,9 +3101,297 @@ SDR 16 TDI (7DFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B7AF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FDFF); +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (ADDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -4372,17 +3417,17 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFF5); RUNTEST 1800 TCK; -SDR 16 TDI (6BFF); +SDR 16 TDI (69FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BDAF); +SDR 16 TDI (ABBF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -4402,27 +3447,987 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B9DF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (69FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BE3F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (75FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF0F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B9FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEA); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (63E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); +RUNTEST 1800 TCK; +SDR 16 TDI (7CCC); +RUNTEST 1800 TCK; +SDR 16 TDI (B98F); +RUNTEST 1800 TCK; +SDR 16 TDI (9999); +RUNTEST 1800 TCK; +SDR 16 TDI (73CC); +RUNTEST 1800 TCK; +SDR 16 TDI (CCC7); +RUNTEST 1800 TCK; +SDR 16 TDI (B999); +RUNTEST 1800 TCK; +SDR 16 TDI (99FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (6957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBA5); +RUNTEST 1800 TCK; +SDR 16 TDI (5DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BDD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDD2); +RUNTEST 1800 TCK; +SDR 16 TDI (B5DD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFE7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7DF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FBBB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBB); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF5F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (F6FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBBF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFA); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFA); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF3); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEF9); +RUNTEST 1800 TCK; +SDR 16 TDI (A5FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7EEB); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEB); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFD); +RUNTEST 1800 TCK; +SDR 16 TDI (F7DF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (9EF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FEAD); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7AE); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (77EF); +RUNTEST 1800 TCK; +SDR 16 TDI (7CFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BAAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FD); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFAE); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FA); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; SDR 16 TDI (FFEA); RUNTEST 1800 TCK; SDR 16 TDI (77FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BBFF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (9D5F); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (D6F7); RUNTEST 1800 TCK; -SDR 16 TDI (9FFF); +SDR 16 TDI (9FF7); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (5FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -4442,11 +4447,11 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFFD); RUNTEST 1800 TCK; -SDR 16 TDI (4FFF); +SDR 16 TDI (57EB); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFDF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -4474,11 +4479,11 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (DEFF); +SDR 16 TDI (7777); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (7FED); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (FFFB); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -4504,19 +4509,19 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BAFF); +SDR 16 TDI (BAFC); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (EAEE); RUNTEST 1800 TCK; -SDR 16 TDI (77FF); +SDR 16 TDI (67F3); RUNTEST 1800 TCK; -SDR 16 TDI (FFBF); +SDR 16 TDI (260F); RUNTEST 1800 TCK; -SDR 16 TDI (9FFF); +SDR 16 TDI (9BFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (7F7B); RUNTEST 1800 TCK; -SDR 16 TDI (5FFF); +SDR 16 TDI (5EFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -4538,17 +4543,17 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (BFB9); RUNTEST 1800 TCK; -SDR 16 TDI (7FEF); +SDR 16 TDI (7FFE); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (FDF7); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFFB); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (6FEE); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -4570,20 +4575,20 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (A55F); RUNTEST 1800 TCK; -SDR 16 TDI (FEBF); +SDR 16 TDI (7777); RUNTEST 1800 TCK; -SDR 16 TDI (67C6); +SDR 16 TDI (65C7); RUNTEST 1800 TCK; -SDR 16 TDI (1EBF); +SDR 16 TDI (7E7B); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (B3F0); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (3FE0); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); @@ -4602,20 +4607,20 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (AFFF); RUNTEST 1800 TCK; -SDR 16 TDI (C2BF); +SDR 16 TDI (3777); RUNTEST 1800 TCK; -SDR 16 TDI (47A6); +SDR 16 TDI (47A7); RUNTEST 1800 TCK; -SDR 16 TDI (1EBF); +SDR 16 TDI (787B); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (B3F0); RUNTEST 1800 TCK; -SDR 16 TDI (FFDF); +SDR 16 TDI (3FF0); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (BFFE); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -4632,22 +4637,22 @@ SDR 16 TDI (5FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (B55F); +SDR 16 TDI (B55E); RUNTEST 1800 TCK; -SDR 16 TDI (FE7F); +SDR 16 TDI (2222); RUNTEST 1800 TCK; -SDR 16 TDI (67E6); +SDR 16 TDI (67EE); RUNTEST 1800 TCK; -SDR 16 TDI (1F3F); +SDR 16 TDI (2623); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (B3F0); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (3FF0); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -4664,22 +4669,22 @@ SDR 16 TDI (67FF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (9FFF); +SDR 16 TDI (9FF7); RUNTEST 1800 TCK; -SDR 16 TDI (C27F); +SDR 16 TDI (2223); RUNTEST 1800 TCK; -SDR 16 TDI (47E6); +SDR 16 TDI (57E2); RUNTEST 1800 TCK; -SDR 16 TDI (1F3F); +SDR 16 TDI (20E3); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (B3F0); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (3FF0); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -4698,17 +4703,17 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (3BB3); +SDR 16 TDI (199B); RUNTEST 1800 TCK; -SDR 16 TDI (73EE); +SDR 16 TDI (63E6); RUNTEST 1800 TCK; -SDR 16 TDI (E6E7); +SDR 16 TDI (CC6D); RUNTEST 1800 TCK; -SDR 16 TDI (B333); +SDR 16 TDI (B33B); RUNTEST 1800 TCK; -SDR 16 TDI (31F3); +SDR 16 TDI (B1F3); RUNTEST 1800 TCK; -SDR 16 TDI (4666); +SDR 16 TDI (46EE); RUNTEST 1800 TCK; SDR 16 TDI (7CCC); RUNTEST 1800 TCK; @@ -4728,19 +4733,19 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFFE); RUNTEST 1800 TCK; -SDR 16 TDI (7337); +SDR 16 TDI (7332); RUNTEST 1800 TCK; -SDR 16 TDI (4546); +SDR 16 TDI (4D52); RUNTEST 1800 TCK; -SDR 16 TDI (7677); +SDR 16 TDI (6323); RUNTEST 1800 TCK; -SDR 16 TDI (B777); +SDR 16 TDI (B373); RUNTEST 1800 TCK; -SDR 16 TDI (74AB); +SDR 16 TDI (36A3); RUNTEST 1800 TCK; -SDR 16 TDI (7777); +SDR 16 TDI (6666); RUNTEST 1800 TCK; SDR 16 TDI (7DDD); RUNTEST 1800 TCK; @@ -4760,17 +4765,17 @@ SDR 16 TDI (5FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFFB); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (D99B); RUNTEST 1800 TCK; -SDR 16 TDI (7FDF); +SDR 16 TDI (7FDE); RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); +SDR 16 TDI (DDFD); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFFD); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FFEE); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -4794,23 +4799,23 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (BFF7); RUNTEST 1800 TCK; -SDR 16 TDI (77FF); +SDR 16 TDI (6FF7); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (EFEF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); +SDR 16 TDI (6FFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BF7F); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFF7); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -4826,21 +4831,21 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (F7FF); RUNTEST 1800 TCK; SDR 16 TDI (7FDF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -4858,23 +4863,23 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (8FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFD); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (4FF7); +SDR 16 TDI (5FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (7FBF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -4890,21 +4895,21 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (AFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (7FFB); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (6FF7); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (F7EF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); +SDR 16 TDI (E7FF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (9F7F); +SDR 16 TDI (9FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -4944,7 +4949,7 @@ SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); +SDR 16 TDI (BFEF); RUNTEST 1800 TCK; SDR 16 TDI (FFFB); RUNTEST 1800 TCK; @@ -4962,7 +4967,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -4974,31 +4979,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (9FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (5FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (77EE); -RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); -RUNTEST 1800 TCK; -SDR 16 TDI (EFFF); +SDR 16 TDI (FF7F); RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; @@ -5020,6 +5001,30 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; +SDR 16 TDI (6FFE); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); @@ -5722,7 +5727,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FEFF); +SDR 16 TDI (FEEF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -5828,11 +5833,11 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (F7FF); RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); -RUNTEST 1800 TCK; -SDR 16 TDI (BFBF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -5850,7 +5855,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -5924,11 +5929,11 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (7FBE); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (BFDF); +SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -5948,9 +5953,9 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FEF); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFF); +SDR 16 TDI (EBFF); RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; @@ -5978,11 +5983,11 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFBD); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FFF); +SDR 16 TDI (6FFF); RUNTEST 1800 TCK; -SDR 16 TDI (BDFF); +SDR 16 TDI (BEFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -6012,7 +6017,7 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; -SDR 16 TDI (7FF7); +SDR 16 TDI (6FFF); RUNTEST 1800 TCK; SDR 16 TDI (FDFF); RUNTEST 1800 TCK; @@ -6042,11 +6047,11 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FF7E); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; -SDR 16 TDI (DFFF); +SDR 16 TDI (D77F); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -6074,9 +6079,9 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FFDD); RUNTEST 1800 TCK; -SDR 16 TDI (7FFD); +SDR 16 TDI (7FFF); RUNTEST 1800 TCK; SDR 16 TDI (DFFF); RUNTEST 1800 TCK; @@ -6108,7 +6113,7 @@ SDR 16 TDI (BFFF); RUNTEST 1800 TCK; SDR 16 TDI (FFFB); RUNTEST 1800 TCK; -SDR 16 TDI (77EF); +SDR 16 TDI (77EB); RUNTEST 1800 TCK; SDR 16 TDI (FFFF); RUNTEST 1800 TCK; @@ -6138,7 +6143,7 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFFE); +SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (7FFF); RUNTEST 1800 TCK; @@ -6170,9 +6175,9 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (9FFF); RUNTEST 1800 TCK; -SDR 16 TDI (FFEF); +SDR 16 TDI (FFF5); RUNTEST 1800 TCK; -SDR 16 TDI (5FFD); +SDR 16 TDI (4FF3); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -6202,9 +6207,9 @@ SDR 16 TDI (FFFF); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; -SDR 16 TDI (FEF1); +SDR 16 TDI (FED7); RUNTEST 1800 TCK; -SDR 16 TDI (67E7); +SDR 16 TDI (6FF7); RUNTEST 1800 TCK; SDR 16 TDI (BFFF); RUNTEST 1800 TCK; @@ -7813,10 +7818,10 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (67FF); +SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FEFD); +SDR 16 TDI (FFFF) TDO (FEDD); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FF7F); SDR 16 TDI (FFFF) TDO (BFFF); @@ -7828,35 +7833,19 @@ SDR 16 TDI (FFFF) TDO (CCCF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (B99F); SDR 16 TDI (FFFF) TDO (BCCC); -SDR 16 TDI (FFFF) TDO (CFFE); -SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (CFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEB); -SDR 16 TDI (FFFF) TDO (77F3); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (6FEB); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFE6); +SDR 16 TDI (FFFF) TDO (BFD6); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FBF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FBFE); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (6FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFEF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -7864,28 +7853,44 @@ SDR 16 TDI (FFFF) TDO (FFFE); SDR 16 TDI (FFFF) TDO (6FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDB); +SDR 16 TDI (FFFF) TDO (FFFE); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (77FB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFD7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFE); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF5); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FF7); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFD); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (7AFF); SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -7896,26 +7901,26 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (6FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FDBB); -SDR 16 TDI (FFFF) TDO (77EF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7B); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFB); SDR 16 TDI (FFFF) TDO (7EEF); SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7DFF); SDR 16 TDI (FFFF) TDO (EFFF); @@ -7928,102 +7933,134 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7E); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (7EEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (76FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FF7F); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (F7FF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FEF7); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (BFFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7EF7); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (6FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7EFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FEFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B5FD); +SDR 16 TDI (FFFF) TDO (BDFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (ADFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (7FFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFEF); -SDR 16 TDI (FFFF) TDO (FF5F); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (DFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (EEFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (BBEF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (79FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F7F); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFD7); +SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BBFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8033,41 +8070,13 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (F6FF); -SDR 16 TDI (FFFF) TDO (BBCB); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (7F7F); SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8078,14 +8087,10 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (DBFF); +SDR 16 TDI (FFFF) TDO (BFF5); +SDR 16 TDI (FFFF) TDO (7EFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FAFF); -SDR 16 TDI (FFFF) TDO (BFD5); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (A55F); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8097,10 +8102,10 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FDF); -SDR 16 TDI (FFFF) TDO (DEEF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FDD); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (DFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (AFFF); @@ -8113,11 +8118,11 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFB); -SDR 16 TDI (FFFF) TDO (FFEB); -SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FD6A); +SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (B55F); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8130,10 +8135,10 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDFF); -SDR 16 TDI (FFFF) TDO (DFF5); -SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FDDF); +SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FF75); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BABF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8145,11 +8150,75 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFB); -SDR 16 TDI (FFFF) TDO (F9BF); -SDR 16 TDI (FFFF) TDO (BAFE); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (E76F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (BD7B); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (F77F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (5DFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (B72F); +SDR 16 TDI (FFFF) TDO (BEDB); +SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7AF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (CAFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (DF7F); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8162,73 +8231,9 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFE); -SDR 16 TDI (FFFF) TDO (FFDE); -SDR 16 TDI (FFFF) TDO (BFDF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (BFFD); -SDR 16 TDI (FFFF) TDO (35FF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FD2); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFBC); -SDR 16 TDI (FFFF) TDO (C7FF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7AF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (DDEE); +SDR 16 TDI (FFFF) TDO (FDDD); +SDR 16 TDI (FFFF) TDO (BDFC); SDR 16 TDI (FFFF) TDO (B9FF); -SDR 16 TDI (FFFF) TDO (BDFF); -SDR 16 TDI (FFFF) TDO (7BFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFD); -SDR 16 TDI (FFFF) TDO (EA9F); -SDR 16 TDI (FFFF) TDO (BEFB); -SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BEAF); @@ -8241,13 +8246,13 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (7FFD); -SDR 16 TDI (FFFF) TDO (0DDF); -SDR 16 TDI (FFFF) TDO (B598); -SDR 16 TDI (FFFF) TDO (5E74); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FF3); +SDR 16 TDI (FFFF) TDO (D55F); +SDR 16 TDI (FFFF) TDO (B585); +SDR 16 TDI (FFFF) TDO (07F4); +SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B65F); +SDR 16 TDI (FFFF) TDO (B6FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FBF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8257,29 +8262,13 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFE); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFC); -SDR 16 TDI (FFFF) TDO (0DDD); -SDR 16 TDI (FFFF) TDO (BD99); -SDR 16 TDI (FFFF) TDO (1E6A); +SDR 16 TDI (FFFF) TDO (7FF3); +SDR 16 TDI (FFFF) TDO (DCCF); +SDR 16 TDI (FFFF) TDO (BD81); +SDR 16 TDI (FFFF) TDO (816B); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7F08); -SDR 16 TDI (FFFF) TDO (388F); -SDR 16 TDI (FFFF) TDO (B89E); -SDR 16 TDI (FFFF) TDO (887F); -SDR 16 TDI (FFFF) TDO (7BFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B6F7); +SDR 16 TDI (FFFF) TDO (BF5F); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8289,11 +8278,27 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7F0C); -SDR 16 TDI (FFFF) TDO (388F); -SDR 16 TDI (FFFF) TDO (B89F); -SDR 16 TDI (FFFF) TDO (983B); -SDR 16 TDI (FFFF) TDO (67FF); +SDR 16 TDI (FFFF) TDO (7F00); +SDR 16 TDI (FFFF) TDO (8CCF); +SDR 16 TDI (FFFF) TDO (B881); +SDR 16 TDI (FFFF) TDO (E6FF); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7F7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F00); +SDR 16 TDI (FFFF) TDO (8CCF); +SDR 16 TDI (FFFF) TDO (B881); +SDR 16 TDI (FFFF) TDO (E073); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (3333); @@ -8306,10 +8311,10 @@ SDR 16 TDI (FFFF) TDO (7CCC); SDR 16 TDI (FFFF) TDO (B98F); SDR 16 TDI (FFFF) TDO (9999); SDR 16 TDI (FFFF) TDO (73E8); -SDR 16 TDI (FFFF) TDO (C445); +SDR 16 TDI (FFFF) TDO (4885); SDR 16 TDI (FFFF) TDO (B938); -SDR 16 TDI (FFFF) TDO (88FF); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (98FF); +SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (B7FF); SDR 16 TDI (FFFF) TDO (7777); @@ -8322,12 +8327,12 @@ SDR 16 TDI (FFFF) TDO (7DDD); SDR 16 TDI (FFFF) TDO (BBA5); SDR 16 TDI (FFFF) TDO (5DDD); SDR 16 TDI (FFFF) TDO (7BCD); -SDR 16 TDI (FFFF) TDO (DCCA); +SDR 16 TDI (FFFF) TDO (CDDA); SDR 16 TDI (FFFF) TDO (B19D); SDR 16 TDI (FFFF) TDO (DDFB); -SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDF7); +SDR 16 TDI (FFFF) TDO (BFF7); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FDF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8338,262 +8343,262 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (E66F); -SDR 16 TDI (FFFF) TDO (B37F); -SDR 16 TDI (FFFF) TDO (FFDE); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FEB); -SDR 16 TDI (FFFF) TDO (EEDF); -SDR 16 TDI (FFFF) TDO (BFDF); -SDR 16 TDI (FFFF) TDO (FCFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (EEEE); -SDR 16 TDI (FFFF) TDO (7FFB); -SDR 16 TDI (FFFF) TDO (FBBF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFD); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFA); -SDR 16 TDI (FFFF) TDO (EFDF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FEF); -SDR 16 TDI (FFFF) TDO (FEFF); -SDR 16 TDI (FFFF) TDO (BFDD); -SDR 16 TDI (FFFF) TDO (FD7A); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (B377); +SDR 16 TDI (FFFF) TDO (BFEF); SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEBE); -SDR 16 TDI (FFFF) TDO (FFF7); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FB7F); -SDR 16 TDI (FFFF) TDO (BF9F); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFEF); -SDR 16 TDI (FFFF) TDO (FFFB); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BAFF); +SDR 16 TDI (FFFF) TDO (AFFF); SDR 16 TDI (FFFF) TDO (FFFD); SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FAF); +SDR 16 TDI (FFFF) TDO (FEEF); +SDR 16 TDI (FFFF) TDO (BBDF); SDR 16 TDI (FFFF) TDO (FDFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (DFDE); -SDR 16 TDI (FFFF) TDO (7FFB); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FD); -SDR 16 TDI (FFFF) TDO (FFF7); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FDFB); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EDFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFF3); -SDR 16 TDI (FFFF) TDO (BBF7); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFD); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FF7F); -SDR 16 TDI (FFFF) TDO (BEAF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEEF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFF7); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFE); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (BFBE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFE); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FAF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (BDBF); +SDR 16 TDI (FFFF) TDO (FDFA); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEBF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FA); +SDR 16 TDI (FFFF) TDO (BF9F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (7FF3); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (BAFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (F7FE); SDR 16 TDI (FFFF) TDO (7FFB); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDEE); -SDR 16 TDI (FFFF) TDO (B7F7); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBEF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBFE); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FEDF); -SDR 16 TDI (FFFF) TDO (6DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (EFDF); -SDR 16 TDI (FFFF) TDO (7FEF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (7FFD); SDR 16 TDI (FFFF) TDO (FFF7); -SDR 16 TDI (FFFF) TDO (ADBF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7DFE); +SDR 16 TDI (FFFF) TDO (FEEF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (EFFA); +SDR 16 TDI (FFFF) TDO (BEAF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDFE); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFCF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F77F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFB); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFD); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFD7); -SDR 16 TDI (FFFF) TDO (6EFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF5F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BADF); -SDR 16 TDI (FFFF) TDO (7BD7); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (FD7D); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBF9); -SDR 16 TDI (FFFF) TDO (B3FF); -SDR 16 TDI (FFFF) TDO (FEFF); -SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFB); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BE5F); -SDR 16 TDI (FFFF) TDO (FF77); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FEFD); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FEEE); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFBF); -SDR 16 TDI (FFFF) TDO (FB3B); -SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7EFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFEA); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BE5F); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (D7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFAF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7BFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBAF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (DDFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFF4); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDAF); -SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (B5AF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (F7BA); -SDR 16 TDI (FFFF) TDO (B37F); -SDR 16 TDI (FFFF) TDO (EEFF); -SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8606,57 +8611,57 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FEFF); -SDR 16 TDI (FFFF) TDO (BFBF); -SDR 16 TDI (FFFF) TDO (FFF3); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFBD); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7EFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7F7F); -SDR 16 TDI (FFFF) TDO (F7FF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (F76F); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFB7); -SDR 16 TDI (FFFF) TDO (6EFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFAF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FF7F); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FCDE); -SDR 16 TDI (FFFF) TDO (BDBF); -SDR 16 TDI (FFFF) TDO (DF8D); -SDR 16 TDI (FFFF) TDO (7AFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B5AF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (6FF7); -SDR 16 TDI (FFFF) TDO (6F7F); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBAD); -SDR 16 TDI (FFFF) TDO (BFDF); -SDR 16 TDI (FFFF) TDO (F77B); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (DDBB); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -8664,145 +8669,221 @@ SDR 16 TDI (FFFF) TDO (FFEE); SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FBF7); -SDR 16 TDI (FFFF) TDO (7F7F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (F77B); -SDR 16 TDI (FFFF) TDO (B37F); -SDR 16 TDI (FFFF) TDO (ECF6); -SDR 16 TDI (FFFF) TDO (6DFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFAF); -SDR 16 TDI (FFFF) TDO (3000); -SDR 16 TDI (FFFF) TDO (67C0); -SDR 16 TDI (FFFF) TDO (061F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B6AF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFEF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FCCD); -SDR 16 TDI (FFFF) TDO (BBB7); -SDR 16 TDI (FFFF) TDO (7F99); -SDR 16 TDI (FFFF) TDO (7CFF); +SDR 16 TDI (FFFF) TDO (FFFC); +SDR 16 TDI (FFFF) TDO (BE1F); +SDR 16 TDI (FFFF) TDO (0019); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (B7FF); SDR 16 TDI (FFFF) TDO (FFF5); SDR 16 TDI (FFFF) TDO (6BFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (3000); -SDR 16 TDI (FFFF) TDO (66E0); -SDR 16 TDI (FFFF) TDO (0601); +SDR 16 TDI (FFFF) TDO (BF5F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFDF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FCCD); -SDR 16 TDI (FFFF) TDO (BBBE); -SDR 16 TDI (FFFF) TDO (D519); -SDR 16 TDI (FFFF) TDO (7CFF); +SDR 16 TDI (FFFF) TDO (FFFC); +SDR 16 TDI (FFFF) TDO (A01B); +SDR 16 TDI (FFFF) TDO (8019); +SDR 16 TDI (FFFF) TDO (70FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (AFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7DFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BD5F); -SDR 16 TDI (FFFF) TDO (3000); -SDR 16 TDI (FFFF) TDO (67E0); -SDR 16 TDI (FFFF) TDO (061F); +SDR 16 TDI (FFFF) TDO (BAFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FCC8); -SDR 16 TDI (FFFF) TDO (B11F); -SDR 16 TDI (FFFF) TDO (CC99); -SDR 16 TDI (FFFF) TDO (78FF); +SDR 16 TDI (FFFF) TDO (FFFC); +SDR 16 TDI (FFFF) TDO (BE1F); +SDR 16 TDI (FFFF) TDO (8019); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFF5); SDR 16 TDI (FFFF) TDO (6BFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBFF); -SDR 16 TDI (FFFF) TDO (3000); -SDR 16 TDI (FFFF) TDO (67E0); -SDR 16 TDI (FFFF) TDO (0601); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (F698); -SDR 16 TDI (FFFF) TDO (B11F); -SDR 16 TDI (FFFF) TDO (8033); -SDR 16 TDI (FFFF) TDO (6EFF); +SDR 16 TDI (FFFF) TDO (FFFC); +SDR 16 TDI (FFFF) TDO (A01F); +SDR 16 TDI (FFFF) TDO (8019); +SDR 16 TDI (FFFF) TDO (70FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFF7); -SDR 16 TDI (FFFF) TDO (BBBB); -SDR 16 TDI (FFFF) TDO (73EE); -SDR 16 TDI (FFFF) TDO (6EE7); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); SDR 16 TDI (FFFF) TDO (B333); SDR 16 TDI (FFFF) TDO (31F3); SDR 16 TDI (FFFF) TDO (6666); -SDR 16 TDI (FFFF) TDO (78C6); -SDR 16 TDI (FFFF) TDO (ACCF); -SDR 16 TDI (FFFF) TDO (B318); -SDR 16 TDI (FFFF) TDO (7BCC); +SDR 16 TDI (FFFF) TDO (7CCE); +SDR 16 TDI (FFFF) TDO (B9CF); +SDR 16 TDI (FFFF) TDO (9BB9); +SDR 16 TDI (FFFF) TDO (73CC); SDR 16 TDI (FFFF) TDO (CCC7); SDR 16 TDI (FFFF) TDO (B999); SDR 16 TDI (FFFF) TDO (99FF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (3333); -SDR 16 TDI (FFFF) TDO (6546); -SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); SDR 16 TDI (FFFF) TDO (B777); SDR 16 TDI (FFFF) TDO (74AB); SDR 16 TDI (FFFF) TDO (7777); -SDR 16 TDI (FFFF) TDO (7D9C); +SDR 16 TDI (FFFF) TDO (7DDC); SDR 16 TDI (FFFF) TDO (B995); -SDR 16 TDI (FFFF) TDO (19CD); -SDR 16 TDI (FFFF) TDO (79DD); +SDR 16 TDI (FFFF) TDO (1999); +SDR 16 TDI (FFFF) TDO (73DD); SDR 16 TDI (FFFF) TDO (DDD2); SDR 16 TDI (FFFF) TDO (B5DD); SDR 16 TDI (FFFF) TDO (DDFF); -SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFB); -SDR 16 TDI (FFFF) TDO (FDDD); -SDR 16 TDI (FFFF) TDO (7FDD); -SDR 16 TDI (FFFF) TDO (DFDF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFEF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFF6); -SDR 16 TDI (FFFF) TDO (ACFF); -SDR 16 TDI (FFFF) TDO (337F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (777F); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (B7FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFD); -SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBDF); -SDR 16 TDI (FFFF) TDO (DDFF); -SDR 16 TDI (FFFF) TDO (7BBF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -8811,61 +8892,29 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FDDF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDD); -SDR 16 TDI (FFFF) TDO (6FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (DFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFBF); -SDR 16 TDI (FFFF) TDO (FFDD); -SDR 16 TDI (FFFF) TDO (6FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBFF); -SDR 16 TDI (FFFF) TDO (5FFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FEDF); -SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BDFF); -SDR 16 TDI (FFFF) TDO (77BF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFBF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (BFFB); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8873,53 +8922,9 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFB); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FDFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFF7); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EEFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FDFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BEFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8967,7 +8972,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BEFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8983,7 +8988,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BF7F); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -8999,7 +9004,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFD); SDR 16 TDI (FFFF) TDO (7BFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B77F); +SDR 16 TDI (FFFF) TDO (B7FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9015,7 +9020,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (BBBF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9031,7 +9036,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFD); SDR 16 TDI (FFFF) TDO (79FF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7BF); +SDR 16 TDI (FFFF) TDO (BFBF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9095,390 +9100,6 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEBF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (A59F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FDF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (69FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (AB7F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FBF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (AFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDDF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (6BFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BABF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (3333); -SDR 16 TDI (FFFF) TDO (63E6); -SDR 16 TDI (FFFF) TDO (6667); -SDR 16 TDI (FFFF) TDO (B333); -SDR 16 TDI (FFFF) TDO (31F3); -SDR 16 TDI (FFFF) TDO (6666); -SDR 16 TDI (FFFF) TDO (7CCC); -SDR 16 TDI (FFFF) TDO (B98F); -SDR 16 TDI (FFFF) TDO (9999); -SDR 16 TDI (FFFF) TDO (73CC); -SDR 16 TDI (FFFF) TDO (CCC7); -SDR 16 TDI (FFFF) TDO (B999); -SDR 16 TDI (FFFF) TDO (99FF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7BF); -SDR 16 TDI (FFFF) TDO (7777); -SDR 16 TDI (FFFF) TDO (6957); -SDR 16 TDI (FFFF) TDO (7777); -SDR 16 TDI (FFFF) TDO (B777); -SDR 16 TDI (FFFF) TDO (74AB); -SDR 16 TDI (FFFF) TDO (7777); -SDR 16 TDI (FFFF) TDO (7DDD); -SDR 16 TDI (FFFF) TDO (BBA5); -SDR 16 TDI (FFFF) TDO (5DDD); -SDR 16 TDI (FFFF) TDO (7BDD); -SDR 16 TDI (FFFF) TDO (DDD2); -SDR 16 TDI (FFFF) TDO (B5DD); -SDR 16 TDI (FFFF) TDO (DDFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FDF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (F7FF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (F7FF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (F7FF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBBF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FBFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFF7); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (F7FF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FF7F); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFB); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (AD5F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (69FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (ABFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7DFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BD9F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (69FF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (B6BF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -9493,7 +9114,7 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (75FF); +SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9511,39 +9132,39 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (AD9F); SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (69FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (AFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7DFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFAF); +SDR 16 TDI (FFFF) TDO (BD5F); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9557,9 +9178,9 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (6BFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BBFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9575,71 +9196,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B6AF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FDF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (7BFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B9FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FBF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (AFFF); -SDR 16 TDI (FFFF) TDO (FFEB); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BF5F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BE9F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BDFF); SDR 16 TDI (FFFF) TDO (3333); SDR 16 TDI (FFFF) TDO (63E6); SDR 16 TDI (FFFF) TDO (6667); @@ -9655,7 +9212,7 @@ SDR 16 TDI (FFFF) TDO (B999); SDR 16 TDI (FFFF) TDO (99FF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (7777); SDR 16 TDI (FFFF) TDO (6957); SDR 16 TDI (FFFF) TDO (7777); @@ -9671,7 +9228,7 @@ SDR 16 TDI (FFFF) TDO (B5DD); SDR 16 TDI (FFFF) TDO (DDFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEDF); +SDR 16 TDI (FFFF) TDO (B6FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FDF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9684,170 +9241,6 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (B7FF); -SDR 16 TDI (FFFF) TDO (FFF7); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (BEFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BEFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FF5F); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BF7F); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (6FF7); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BF7F); -SDR 16 TDI (FFFF) TDO (FEFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FF7F); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFB); -SDR 16 TDI (FFFF) TDO (FF7F); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (BBF7); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFB); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (6FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDFD); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (6FFF); -SDR 16 TDI (FFFF) TDO (DFF7); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBD); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FDFF); -SDR 16 TDI (FFFF) TDO (BFFE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFB); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFEA); -SDR 16 TDI (FFFF) TDO (75FF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFD); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9863,8 +9256,12 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFDB); -SDR 16 TDI (FFFF) TDO (B5FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -9876,14 +9273,6 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B6AF); -SDR 16 TDI (FFFF) TDO (EFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9892,14 +9281,6 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (6BFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -9911,8 +9292,152 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7DFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B7AF); -SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFBD); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (ADDF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -9925,12 +9450,12 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFF5); -SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (69FF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BDAF); +SDR 16 TDI (FFFF) TDO (ABBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); -SDR 16 TDI (FFFF) TDO (FFDF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -9940,17 +9465,497 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B9DF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (69FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BE3F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (75FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF0F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B9FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEAF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFEA); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFEB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFAF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (6666); +SDR 16 TDI (FFFF) TDO (7CCC); +SDR 16 TDI (FFFF) TDO (B98F); +SDR 16 TDI (FFFF) TDO (9999); +SDR 16 TDI (FFFF) TDO (73CC); +SDR 16 TDI (FFFF) TDO (CCC7); +SDR 16 TDI (FFFF) TDO (B999); +SDR 16 TDI (FFFF) TDO (99FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DDD); +SDR 16 TDI (FFFF) TDO (BBA5); +SDR 16 TDI (FFFF) TDO (5DDD); +SDR 16 TDI (FFFF) TDO (7BDD); +SDR 16 TDI (FFFF) TDO (DDD2); +SDR 16 TDI (FFFF) TDO (B5DD); +SDR 16 TDI (FFFF) TDO (DDBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFE7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (BEEF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7DF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (FBBB); +SDR 16 TDI (FFFF) TDO (BFEE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBB); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF5F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (F6FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFB); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FBBF); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFA); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (BFFA); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFF3); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEF9); +SDR 16 TDI (FFFF) TDO (A5FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7EEB); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEB); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (EFDF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (F7DF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (9EF7); +SDR 16 TDI (FFFF) TDO (7FFE); +SDR 16 TDI (FFFF) TDO (FEAD); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7AE); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (77EF); +SDR 16 TDI (FFFF) TDO (7CFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BAAF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FD); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFAE); +SDR 16 TDI (FFFF) TDO (F7FA); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFEA); SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BBFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (9D5F); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (D6F7); +SDR 16 TDI (FFFF) TDO (9FF7); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -9960,9 +9965,9 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (4FFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (57EB); +SDR 16 TDI (FFFF) TDO (FFDF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -9976,9 +9981,9 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (DEFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7FED); +SDR 16 TDI (FFFF) TDO (FFFB); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -9991,13 +9996,13 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BAFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFBF); -SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (BAFC); +SDR 16 TDI (FFFF) TDO (EAEE); +SDR 16 TDI (FFFF) TDO (67F3); +SDR 16 TDI (FFFF) TDO (260F); +SDR 16 TDI (FFFF) TDO (9BFF); +SDR 16 TDI (FFFF) TDO (7F7B); +SDR 16 TDI (FFFF) TDO (5EFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10008,12 +10013,12 @@ SDR 16 TDI (FFFF) TDO (FFEE); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFB9); +SDR 16 TDI (FFFF) TDO (7FFE); +SDR 16 TDI (FFFF) TDO (FDF7); +SDR 16 TDI (FFFF) TDO (BFFB); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FEF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (6FEE); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10024,13 +10029,13 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (A55F); -SDR 16 TDI (FFFF) TDO (FEBF); -SDR 16 TDI (FFFF) TDO (67C6); -SDR 16 TDI (FFFF) TDO (1EBF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (65C7); +SDR 16 TDI (FFFF) TDO (7E7B); +SDR 16 TDI (FFFF) TDO (B3F0); +SDR 16 TDI (FFFF) TDO (3FE0); +SDR 16 TDI (FFFF) TDO (6666); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (9FFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (5FFF); @@ -10040,13 +10045,13 @@ SDR 16 TDI (FFFF) TDO (FFF5); SDR 16 TDI (FFFF) TDO (67FF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (AFFF); -SDR 16 TDI (FFFF) TDO (C2BF); -SDR 16 TDI (FFFF) TDO (47A6); -SDR 16 TDI (FFFF) TDO (1EBF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (3777); +SDR 16 TDI (FFFF) TDO (47A7); +SDR 16 TDI (FFFF) TDO (787B); +SDR 16 TDI (FFFF) TDO (B3F0); +SDR 16 TDI (FFFF) TDO (3FF0); +SDR 16 TDI (FFFF) TDO (6666); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFE); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -10055,14 +10060,14 @@ SDR 16 TDI (FFFF) TDO (AFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (B55F); -SDR 16 TDI (FFFF) TDO (FE7F); -SDR 16 TDI (FFFF) TDO (67E6); -SDR 16 TDI (FFFF) TDO (1F3F); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B55E); +SDR 16 TDI (FFFF) TDO (2222); +SDR 16 TDI (FFFF) TDO (67EE); +SDR 16 TDI (FFFF) TDO (2623); +SDR 16 TDI (FFFF) TDO (B3F0); +SDR 16 TDI (FFFF) TDO (3FF0); +SDR 16 TDI (FFFF) TDO (6666); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -10071,14 +10076,14 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFF5); SDR 16 TDI (FFFF) TDO (67FF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (C27F); -SDR 16 TDI (FFFF) TDO (47E6); -SDR 16 TDI (FFFF) TDO (1F3F); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FF7); +SDR 16 TDI (FFFF) TDO (2223); +SDR 16 TDI (FFFF) TDO (57E2); +SDR 16 TDI (FFFF) TDO (20E3); +SDR 16 TDI (FFFF) TDO (B3F0); +SDR 16 TDI (FFFF) TDO (3FF0); +SDR 16 TDI (FFFF) TDO (6666); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); @@ -10088,12 +10093,12 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (3BB3); -SDR 16 TDI (FFFF) TDO (73EE); -SDR 16 TDI (FFFF) TDO (E6E7); -SDR 16 TDI (FFFF) TDO (B333); -SDR 16 TDI (FFFF) TDO (31F3); -SDR 16 TDI (FFFF) TDO (4666); +SDR 16 TDI (FFFF) TDO (199B); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (CC6D); +SDR 16 TDI (FFFF) TDO (B33B); +SDR 16 TDI (FFFF) TDO (B1F3); +SDR 16 TDI (FFFF) TDO (46EE); SDR 16 TDI (FFFF) TDO (7CCC); SDR 16 TDI (FFFF) TDO (B98F); SDR 16 TDI (FFFF) TDO (9999); @@ -10103,13 +10108,13 @@ SDR 16 TDI (FFFF) TDO (B999); SDR 16 TDI (FFFF) TDO (99FF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (7337); -SDR 16 TDI (FFFF) TDO (4546); -SDR 16 TDI (FFFF) TDO (7677); -SDR 16 TDI (FFFF) TDO (B777); -SDR 16 TDI (FFFF) TDO (74AB); -SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (7332); +SDR 16 TDI (FFFF) TDO (4D52); +SDR 16 TDI (FFFF) TDO (6323); +SDR 16 TDI (FFFF) TDO (B373); +SDR 16 TDI (FFFF) TDO (36A3); +SDR 16 TDI (FFFF) TDO (6666); SDR 16 TDI (FFFF) TDO (7DDD); SDR 16 TDI (FFFF) TDO (BBA5); SDR 16 TDI (FFFF) TDO (5DDD); @@ -10119,12 +10124,12 @@ SDR 16 TDI (FFFF) TDO (B5DD); SDR 16 TDI (FFFF) TDO (DDFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FDF); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (D99B); +SDR 16 TDI (FFFF) TDO (7FDE); +SDR 16 TDI (FFFF) TDO (DDFD); +SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FFEE); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -10136,15 +10141,15 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77FF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (6FF7); +SDR 16 TDI (FFFF) TDO (EFEF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (6FFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BF7F); -SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -10152,14 +10157,14 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (F7FF); SDR 16 TDI (FFFF) TDO (7FDF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BEFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FF7F); @@ -10168,15 +10173,15 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (8FFF); -SDR 16 TDI (FFFF) TDO (FFFD); -SDR 16 TDI (FFFF) TDO (4FF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (7FBF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FF7F); SDR 16 TDI (FFFF) TDO (9FFF); @@ -10184,14 +10189,14 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5DFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (AFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (6FF7); +SDR 16 TDI (FFFF) TDO (F7EF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (E7FF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (9F7F); +SDR 16 TDI (FFFF) TDO (9FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10211,7 +10216,7 @@ SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFEF); SDR 16 TDI (FFFF) TDO (FFFB); SDR 16 TDI (FFFF) TDO (77FF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10220,25 +10225,13 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (5FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (77EE); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (DFFF); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (FF7F); SDR 16 TDI (FFFF) TDO (9FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); @@ -10249,6 +10242,18 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFE); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -10600,7 +10605,7 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (FEEF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -10653,9 +10658,9 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FDF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10664,7 +10669,7 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -10701,9 +10706,9 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FBE); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10713,8 +10718,8 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FEF); -SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EBFF); SDR 16 TDI (FFFF) TDO (9FFF); SDR 16 TDI (FFFF) TDO (EFFF); SDR 16 TDI (FFFF) TDO (5FFF); @@ -10728,9 +10733,9 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (5FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFBD); -SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (BEFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (F7FF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -10745,7 +10750,7 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); -SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (6FFF); SDR 16 TDI (FFFF) TDO (FDFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10760,9 +10765,9 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FF7E); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); -SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (D77F); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (DBFF); SDR 16 TDI (FFFF) TDO (7FFF); @@ -10776,8 +10781,8 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (FFDD); +SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (DFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10793,7 +10798,7 @@ SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (FFFB); -SDR 16 TDI (FFFF) TDO (77EF); +SDR 16 TDI (FFFF) TDO (77EB); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFDD); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10808,7 +10813,7 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); @@ -10824,8 +10829,8 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (9FFF); -SDR 16 TDI (FFFF) TDO (FFEF); -SDR 16 TDI (FFFF) TDO (5FFD); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (4FF3); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (BFEF); SDR 16 TDI (FFFF) TDO (FFFF); @@ -10840,8 +10845,8 @@ SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (7FFF); SDR 16 TDI (FFFF) TDO (FFFF); SDR 16 TDI (FFFF) TDO (BFFF); -SDR 16 TDI (FFFF) TDO (FEF1); -SDR 16 TDI (FFFF) TDO (67E7); +SDR 16 TDI (FFFF) TDO (FED7); +SDR 16 TDI (FFFF) TDO (6FF7); SDR 16 TDI (FFFF) TDO (BFFF); SDR 16 TDI (FFFF) TDO (9FED); SDR 16 TDI (FFFF) TDO (EFFD); diff --git a/hardware/portapack_h1/cpld/portapack_h1_cpld.qpf b/hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.qpf similarity index 100% rename from hardware/portapack_h1/cpld/portapack_h1_cpld.qpf rename to hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.qpf diff --git a/hardware/portapack_h1/cpld/portapack_h1_cpld.qsf b/hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.qsf similarity index 98% rename from hardware/portapack_h1/cpld/portapack_h1_cpld.qsf rename to hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.qsf index b9cec13a..a834c020 100644 --- a/hardware/portapack_h1/cpld/portapack_h1_cpld.qsf +++ b/hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.qsf @@ -41,7 +41,7 @@ set_global_assignment -name DEVICE 5M40ZE64C5 set_global_assignment -name TOP_LEVEL_ENTITY top set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1 set_global_assignment -name PROJECT_CREATION_TIME_DATE "21:24:55 APRIL 29, 2014" -set_global_assignment -name LAST_QUARTUS_VERSION 14.1.0 +set_global_assignment -name LAST_QUARTUS_VERSION "16.1.2 Lite Edition" set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 @@ -285,4 +285,5 @@ set_location_assignment PIN_34 -to MCU_P2_8 set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_P2_8 set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_P2_8 set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_P2_8 -set_instance_assignment -name PCI_IO OFF -to MCU_P2_8 \ No newline at end of file +set_instance_assignment -name PCI_IO OFF -to MCU_P2_8 +set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL diff --git a/hardware/portapack_h1/cpld/portapack_h1_cpld.sdc b/hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.sdc similarity index 100% rename from hardware/portapack_h1/cpld/portapack_h1_cpld.sdc rename to hardware/portapack_h1/cpld/20150901/portapack_h1_cpld.sdc diff --git a/hardware/portapack_h1/cpld/top.vhd b/hardware/portapack_h1/cpld/20150901/top.vhd similarity index 100% rename from hardware/portapack_h1/cpld/top.vhd rename to hardware/portapack_h1/cpld/20150901/top.vhd diff --git a/hardware/portapack_h1/cpld/top_tb.vhd b/hardware/portapack_h1/cpld/20150901/top_tb.vhd similarity index 100% rename from hardware/portapack_h1/cpld/top_tb.vhd rename to hardware/portapack_h1/cpld/20150901/top_tb.vhd diff --git a/hardware/portapack_h1/cpld/20170522/Makefile b/hardware/portapack_h1/cpld/20170522/Makefile new file mode 100644 index 00000000..26da9d70 --- /dev/null +++ b/hardware/portapack_h1/cpld/20170522/Makefile @@ -0,0 +1,108 @@ +# +# Copyright (C) 2017 Jared Boone, ShareBrained Technology, Inc. +# +# This file is part of PortaPack. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. + +# Makefile based on Altera Quartus documentation example, topic +# "About Using Quartus II from the Command Line" + +################################################################### +# Project Configuration: +# +# Specify the name of the design (project) and Quartus II Settings +# File (.qsf) and the list of source files used. +################################################################### + +PROJECT=portapack_h1_cpld +SOURCE_FILES=top.vhd +ASSIGNMENT_FILES=$(PROJECT).qpf $(PROJECT).qsf $(PROJECT).sdc +OUTPUT_DIR=output_files + +################################################################### +# Main Targets +# +# all: build everything +# clean: remove output files and database +################################################################### + +all: smart.log $(OUTPUT_DIR)/$(PROJECT).asm.rpt $(OUTPUT_DIR)/$(PROJECT).sta.rpt + +clean: + rm -rf *.chg *.qws smart.log db/ incremental_db/ $(OUTPUT_DIR)/ + +map: smart.log $(OUTPUT_DIR)/$(PROJECT).map.rpt + +fit: smart.log $(OUTPUT_DIR)/$(PROJECT).fit.rpt + +asm: smart.log $(OUTPUT_DIR)/$(PROJECT).asm.rpt + +sta: smart.log $(OUTPUT_DIR)/$(PROJECT).sta.rpt + +smart: smart.log + +################################################################### +# Executable Configuration +################################################################### + +MAP_ARGS= +FIT_ARGS= +ASM_ARGS= +STA_ARGS= + +################################################################### +# Target implementations +################################################################### + +STAMP = echo done > + +$(OUTPUT_DIR)/$(PROJECT).map.rpt: $(SOURCE_FILES) + quartus_map $(MAP_ARGS) $(PROJECT) + $(STAMP) fit.chg + +$(OUTPUT_DIR)/$(PROJECT).fit.rpt: fit.chg $(OUTPUT_DIR)/$(PROJECT).map.rpt + quartus_fit $(FIT_ARGS) $(PROJECT) + $(STAMP) asm.chg + $(STAMP) sta.chg + +$(OUTPUT_DIR)/$(PROJECT).asm.rpt: asm.chg $(OUTPUT_DIR)/$(PROJECT).fit.rpt + quartus_asm $(ASM_ARGS) $(PROJECT) + +$(OUTPUT_DIR)/$(PROJECT).sta.rpt: sta.chg $(OUTPUT_DIR)/$(PROJECT).fit.rpt + quartus_sta $(STA_ARGS) $(PROJECT) + +smart.log: $(ASSIGNMENT_FILES) $(OUTPUT_DIR) + quartus_sh --determine_smart_action $(PROJECT) > smart.log + +################################################################### +# Project initialization +################################################################### + +$(OUTPUT_DIR): + mkdir $(OUTPUT_DIR) + +$(ASSIGNMENT_FILES): $(OUTPUT_DIR) + quartus_sh --prepare $(PROJECT) + +fit.chg: + $(STAMP) fit.chg + +sta.chg: + $(STAMP) sta.chg + +asm.chg: + $(STAMP) asm.chg diff --git a/hardware/portapack_h1/cpld/20170522/output_files/portapack_h1_cpld.svf b/hardware/portapack_h1/cpld/20170522/output_files/portapack_h1_cpld.svf new file mode 100644 index 00000000..f3ad8b8b --- /dev/null +++ b/hardware/portapack_h1/cpld/20170522/output_files/portapack_h1_cpld.svf @@ -0,0 +1,11651 @@ +!Copyright (C) 2017 Intel Corporation. All rights reserved. +!Your use of Intel Corporation's design tools, logic functions +!and other software and tools, and its AMPP partner logic +!functions, and any output files from any of the foregoing +!(including device programming or simulation files), and any +!associated documentation or information are expressly subject +!to the terms and conditions of the Intel Program License +!Subscription Agreement, the Intel Quartus Prime License Agreement, +!the Intel MegaCore Function License Agreement, or other +!applicable license agreement, including, without limitation, +!that your use is for the sole purpose of programming logic +!devices manufactured by Intel and sold by Intel or its +!authorized distributors. Please refer to the applicable +!agreement for further details. +! +!Quartus Prime SVF converter 16.1 +! +!Device #1: 5M40Z - /home/jboone/src/portapack-release/hardware/portapack_h1/cpld/20170522/output_files/portapack_h1_cpld.pof Wed May 31 16:05:40 2017 +! +!NOTE "USERCODE" "0018BE34"; +! +!NOTE "CHECKSUM" "0018C224"; +! +! +! +FREQUENCY 1.80E+07 HZ; +! +! +! +TRST ABSENT; +ENDDR IDLE; +ENDIR IRPAUSE; +STATE IDLE; +SIR 10 TDI (005); +RUNTEST IDLE 93 TCK ENDSTATE IDLE; +SDR 240 TDI (FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); +SIR 10 TDI (3FF); +RUNTEST 18003 TCK; +SIR 10 TDI (2CC); +RUNTEST 18003 TCK; +! +! +! +!CHECKING SILICON ID +! +! +! +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0089); +SIR 10 TDI (205); +RUNTEST 93 TCK; +SDR 16 TDI (FFFF) TDO (8232) MASK (FFFF); +SDR 16 TDI (FFFF) TDO (2AA2); +SDR 16 TDI (FFFF) TDO (4A82); +SDR 16 TDI (FFFF) TDO (8C0C); +SDR 16 TDI (FFFF) TDO (0000); +! +! +! +!BULK ERASE +! +! +! +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0011); +SIR 10 TDI (2F2); +RUNTEST 9000003 TCK; +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0001); +SIR 10 TDI (2F2); +RUNTEST 9000003 TCK; +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0000); +SIR 10 TDI (2F2); +RUNTEST 9000003 TCK; +! +! +! +!PROGRAM +! +! +! +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0000); +SIR 10 TDI (2F4); +RUNTEST 93 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFC); +RUNTEST 1800 TCK; +SDR 16 TDI (F9E7); +RUNTEST 1800 TCK; +SDR 16 TDI (79FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (AF9E); +RUNTEST 1800 TCK; +SDR 16 TDI (7CFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBE7); +RUNTEST 1800 TCK; +SDR 16 TDI (B3F7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F3F); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (67FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDB); +RUNTEST 1800 TCK; +SDR 16 TDI (E7F9); +RUNTEST 1800 TCK; +SDR 16 TDI (733F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF9); +RUNTEST 1800 TCK; +SDR 16 TDI (B77F); +RUNTEST 1800 TCK; +SDR 16 TDI (CCCF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B99F); +RUNTEST 1800 TCK; +SDR 16 TDI (BCCC); +RUNTEST 1800 TCK; +SDR 16 TDI (CFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFD6); +RUNTEST 1800 TCK; +SDR 16 TDI (77F5); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7B7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFE); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDA); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F9FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (E7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEB); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (EBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (E7BF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFED); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFCF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFD); +RUNTEST 1800 TCK; +SDR 16 TDI (DF7E); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FE); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BABF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBDB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A95F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F3F); +RUNTEST 1800 TCK; +SDR 16 TDI (FACF); +RUNTEST 1800 TCK; +SDR 16 TDI (B678); +RUNTEST 1800 TCK; +SDR 16 TDI (07F4); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F3F); +RUNTEST 1800 TCK; +SDR 16 TDI (FACF); +RUNTEST 1800 TCK; +SDR 16 TDI (BE78); +RUNTEST 1800 TCK; +SDR 16 TDI (006B); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BB5F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F3F); +RUNTEST 1800 TCK; +SDR 16 TDI (F9CF); +RUNTEST 1800 TCK; +SDR 16 TDI (B806); +RUNTEST 1800 TCK; +SDR 16 TDI (07FE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F3F); +RUNTEST 1800 TCK; +SDR 16 TDI (F9CF); +RUNTEST 1800 TCK; +SDR 16 TDI (B806); +RUNTEST 1800 TCK; +SDR 16 TDI (003B); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (63E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); +RUNTEST 1800 TCK; +SDR 16 TDI (7CCC); +RUNTEST 1800 TCK; +SDR 16 TDI (B98F); +RUNTEST 1800 TCK; +SDR 16 TDI (9999); +RUNTEST 1800 TCK; +SDR 16 TDI (73EC); +RUNTEST 1800 TCK; +SDR 16 TDI (CCC7); +RUNTEST 1800 TCK; +SDR 16 TDI (B8B9); +RUNTEST 1800 TCK; +SDR 16 TDI (B9FF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (6957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBA5); +RUNTEST 1800 TCK; +SDR 16 TDI (5DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BCD); +RUNTEST 1800 TCK; +SDR 16 TDI (DCCA); +RUNTEST 1800 TCK; +SDR 16 TDI (B59D); +RUNTEST 1800 TCK; +SDR 16 TDI (99FA); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FB); +RUNTEST 1800 TCK; +SDR 16 TDI (F7DF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F99); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF2F); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF9F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FB7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B5FD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7D7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBE); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F67F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7D5B); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF6); +RUNTEST 1800 TCK; +SDR 16 TDI (ABBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7EF7); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F679); +RUNTEST 1800 TCK; +SDR 16 TDI (B3FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FD7B); +RUNTEST 1800 TCK; +SDR 16 TDI (7F5F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDE); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FE); +RUNTEST 1800 TCK; +SDR 16 TDI (D7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A57F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BE9F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FDF5); +RUNTEST 1800 TCK; +SDR 16 TDI (67FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B6BF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (ADFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B77E); +RUNTEST 1800 TCK; +SDR 16 TDI (7EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFD6); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF89); +RUNTEST 1800 TCK; +SDR 16 TDI (B5FF); +RUNTEST 1800 TCK; +SDR 16 TDI (CFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (73FF); +RUNTEST 1800 TCK; +SDR 16 TDI (D7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B5AF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF6); +RUNTEST 1800 TCK; +SDR 16 TDI (BB7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEE); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEA); +RUNTEST 1800 TCK; +SDR 16 TDI (6CFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDC); +RUNTEST 1800 TCK; +SDR 16 TDI (BB57); +RUNTEST 1800 TCK; +SDR 16 TDI (5AA9); +RUNTEST 1800 TCK; +SDR 16 TDI (7300); +RUNTEST 1800 TCK; +SDR 16 TDI (0FCF); +RUNTEST 1800 TCK; +SDR 16 TDI (B1A9); +RUNTEST 1800 TCK; +SDR 16 TDI (9875); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BB5F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDC); +RUNTEST 1800 TCK; +SDR 16 TDI (BB5E); +RUNTEST 1800 TCK; +SDR 16 TDI (DAA9); +RUNTEST 1800 TCK; +SDR 16 TDI (7300); +RUNTEST 1800 TCK; +SDR 16 TDI (00CF); +RUNTEST 1800 TCK; +SDR 16 TDI (B9A9); +RUNTEST 1800 TCK; +SDR 16 TDI (987F); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF88); +RUNTEST 1800 TCK; +SDR 16 TDI (B13F); +RUNTEST 1800 TCK; +SDR 16 TDI (8CC9); +RUNTEST 1800 TCK; +SDR 16 TDI (7300); +RUNTEST 1800 TCK; +SDR 16 TDI (0FCF); +RUNTEST 1800 TCK; +SDR 16 TDI (B9C9); +RUNTEST 1800 TCK; +SDR 16 TDI (9875); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF8E); +RUNTEST 1800 TCK; +SDR 16 TDI (B13F); +RUNTEST 1800 TCK; +SDR 16 TDI (8CCB); +RUNTEST 1800 TCK; +SDR 16 TDI (6600); +RUNTEST 1800 TCK; +SDR 16 TDI (00CF); +RUNTEST 1800 TCK; +SDR 16 TDI (B9C9); +RUNTEST 1800 TCK; +SDR 16 TDI (987F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (63E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); +RUNTEST 1800 TCK; +SDR 16 TDI (7C6C); +RUNTEST 1800 TCK; +SDR 16 TDI (AD8F); +RUNTEST 1800 TCK; +SDR 16 TDI (B198); +RUNTEST 1800 TCK; +SDR 16 TDI (73EE); +RUNTEST 1800 TCK; +SDR 16 TDI (ECE7); +RUNTEST 1800 TCK; +SDR 16 TDI (BB9B); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (6957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DC9); +RUNTEST 1800 TCK; +SDR 16 TDI (B995); +RUNTEST 1800 TCK; +SDR 16 TDI (199D); +RUNTEST 1800 TCK; +SDR 16 TDI (79CC); +RUNTEST 1800 TCK; +SDR 16 TDI (CCCA); +RUNTEST 1800 TCK; +SDR 16 TDI (B199); +RUNTEST 1800 TCK; +SDR 16 TDI (99FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B9EF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF6F); +RUNTEST 1800 TCK; +SDR 16 TDI (ADFF); +RUNTEST 1800 TCK; +SDR 16 TDI (37FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F77); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7D); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BBD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (75FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFB); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (DEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (D7DF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BB7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBE); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDDF); +RUNTEST 1800 TCK; +SDR 16 TDI (BD7B); +RUNTEST 1800 TCK; +SDR 16 TDI (377D); +RUNTEST 1800 TCK; +SDR 16 TDI (79FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F77); +RUNTEST 1800 TCK; +SDR 16 TDI (67BF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFD7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (75FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FF6F); +RUNTEST 1800 TCK; +SDR 16 TDI (BB7F); +RUNTEST 1800 TCK; +SDR 16 TDI (577F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F9B); +RUNTEST 1800 TCK; +SDR 16 TDI (ABDF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBCD); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B6BF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F7F); +RUNTEST 1800 TCK; +SDR 16 TDI (DFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (D3FE); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFC); +RUNTEST 1800 TCK; +SDR 16 TDI (FC7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BE3A); +RUNTEST 1800 TCK; +SDR 16 TDI (6C7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AD9F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDCB); +RUNTEST 1800 TCK; +SDR 16 TDI (B1D9); +RUNTEST 1800 TCK; +SDR 16 TDI (81F5); +RUNTEST 1800 TCK; +SDR 16 TDI (69FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (ABFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F5D); +RUNTEST 1800 TCK; +SDR 16 TDI (DDCF); +RUNTEST 1800 TCK; +SDR 16 TDI (ABDB); +RUNTEST 1800 TCK; +SDR 16 TDI (A3FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BD5F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F98); +RUNTEST 1800 TCK; +SDR 16 TDI (88CF); +RUNTEST 1800 TCK; +SDR 16 TDI (B989); +RUNTEST 1800 TCK; +SDR 16 TDI (B9F5); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F08); +RUNTEST 1800 TCK; +SDR 16 TDI (889F); +RUNTEST 1800 TCK; +SDR 16 TDI (B909); +RUNTEST 1800 TCK; +SDR 16 TDI (797F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (63E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); +RUNTEST 1800 TCK; +SDR 16 TDI (7CCC); +RUNTEST 1800 TCK; +SDR 16 TDI (B98F); +RUNTEST 1800 TCK; +SDR 16 TDI (9999); +RUNTEST 1800 TCK; +SDR 16 TDI (7366); +RUNTEST 1800 TCK; +SDR 16 TDI (66C7); +RUNTEST 1800 TCK; +SDR 16 TDI (B9B1); +RUNTEST 1800 TCK; +SDR 16 TDI (98FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (6957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBA5); +RUNTEST 1800 TCK; +SDR 16 TDI (5DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BCC); +RUNTEST 1800 TCK; +SDR 16 TDI (CC9A); +RUNTEST 1800 TCK; +SDR 16 TDI (B49C); +RUNTEST 1800 TCK; +SDR 16 TDI (CDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F66); +RUNTEST 1800 TCK; +SDR 16 TDI (66FF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7B7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7EEF); +RUNTEST 1800 TCK; +SDR 16 TDI (DEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBCC); +RUNTEST 1800 TCK; +SDR 16 TDI (F3FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEE); +RUNTEST 1800 TCK; +SDR 16 TDI (FEEF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFD); +RUNTEST 1800 TCK; +SDR 16 TDI (D5FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFD6); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBBF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (DFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B6FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A5DF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (69FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B99F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (69FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (75FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B5AF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7AF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEB); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (63E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); +RUNTEST 1800 TCK; +SDR 16 TDI (7CCC); +RUNTEST 1800 TCK; +SDR 16 TDI (B98F); +RUNTEST 1800 TCK; +SDR 16 TDI (9999); +RUNTEST 1800 TCK; +SDR 16 TDI (73CC); +RUNTEST 1800 TCK; +SDR 16 TDI (CCC7); +RUNTEST 1800 TCK; +SDR 16 TDI (B999); +RUNTEST 1800 TCK; +SDR 16 TDI (99DF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (6957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBA5); +RUNTEST 1800 TCK; +SDR 16 TDI (5DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BDD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDD2); +RUNTEST 1800 TCK; +SDR 16 TDI (B5DD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFB9); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFAF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B5AF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEA); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (67FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (67FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (63E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (4666); +RUNTEST 1800 TCK; +SDR 16 TDI (7CCC); +RUNTEST 1800 TCK; +SDR 16 TDI (B98F); +RUNTEST 1800 TCK; +SDR 16 TDI (9999); +RUNTEST 1800 TCK; +SDR 16 TDI (73CC); +RUNTEST 1800 TCK; +SDR 16 TDI (CCC7); +RUNTEST 1800 TCK; +SDR 16 TDI (B999); +RUNTEST 1800 TCK; +SDR 16 TDI (99FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (4957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBA5); +RUNTEST 1800 TCK; +SDR 16 TDI (5DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BDD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDD2); +RUNTEST 1800 TCK; +SDR 16 TDI (B5DD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (8FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (CFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (A55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BAFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEE); +RUNTEST 1800 TCK; +SDR 16 TDI (77FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (855F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (97FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (4BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B55F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF5); +RUNTEST 1800 TCK; +SDR 16 TDI (6BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (3333); +RUNTEST 1800 TCK; +SDR 16 TDI (43E6); +RUNTEST 1800 TCK; +SDR 16 TDI (6667); +RUNTEST 1800 TCK; +SDR 16 TDI (B333); +RUNTEST 1800 TCK; +SDR 16 TDI (31F3); +RUNTEST 1800 TCK; +SDR 16 TDI (6666); +RUNTEST 1800 TCK; +SDR 16 TDI (7CCC); +RUNTEST 1800 TCK; +SDR 16 TDI (B98F); +RUNTEST 1800 TCK; +SDR 16 TDI (9999); +RUNTEST 1800 TCK; +SDR 16 TDI (73CC); +RUNTEST 1800 TCK; +SDR 16 TDI (CCC7); +RUNTEST 1800 TCK; +SDR 16 TDI (B999); +RUNTEST 1800 TCK; +SDR 16 TDI (99FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (6957); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (B777); +RUNTEST 1800 TCK; +SDR 16 TDI (74AB); +RUNTEST 1800 TCK; +SDR 16 TDI (7777); +RUNTEST 1800 TCK; +SDR 16 TDI (7DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (BBA5); +RUNTEST 1800 TCK; +SDR 16 TDI (5DDD); +RUNTEST 1800 TCK; +SDR 16 TDI (7BDD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDD2); +RUNTEST 1800 TCK; +SDR 16 TDI (B5DD); +RUNTEST 1800 TCK; +SDR 16 TDI (DDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (B7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7BBF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (AFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7DFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFEF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FF7F); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFBF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5EFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFE); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BDFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FEF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FBFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7F7F); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFB); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFD); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF9); +RUNTEST 1800 TCK; +SDR 16 TDI (77EE); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFB); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (EFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFDF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFD7); +RUNTEST 1800 TCK; +SDR 16 TDI (4FF3); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FEF5); +RUNTEST 1800 TCK; +SDR 16 TDI (6FF7); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FD5); +RUNTEST 1800 TCK; +SDR 16 TDI (6FFD); +RUNTEST 1800 TCK; +SDR 16 TDI (53FF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFF9); +RUNTEST 1800 TCK; +SDR 16 TDI (B77F); +RUNTEST 1800 TCK; +SDR 16 TDI (F7FF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BF9F); +RUNTEST 1800 TCK; +SDR 16 TDI (BCCF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFC); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFE); +RUNTEST 1800 TCK; +SDR 16 TDI (7CFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFE7); +RUNTEST 1800 TCK; +SDR 16 TDI (93E7); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5F3E); +RUNTEST 1800 TCK; +SDR 16 TDI (79F3); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (9FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (5FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (7FFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0001); +SIR 10 TDI (2F4); +RUNTEST 93 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +! +! +! +!VERIFY +! +! +! +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0000); +SIR 10 TDI (205); +RUNTEST 93 TCK; +SDR 16 TDI (FFFF) TDO (7FFF) MASK (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFC); +SDR 16 TDI (FFFF) TDO (F9E7); +SDR 16 TDI (FFFF) TDO (79FF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (AF9E); +SDR 16 TDI (FFFF) TDO (7CFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FBE7); +SDR 16 TDI (FFFF) TDO (B3F7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F3F); +SDR 16 TDI (FFFF) TDO (7DFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (67FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFDB); +SDR 16 TDI (FFFF) TDO (E7F9); +SDR 16 TDI (FFFF) TDO (733F); +SDR 16 TDI (FFFF) TDO (FFF9); +SDR 16 TDI (FFFF) TDO (B77F); +SDR 16 TDI (FFFF) TDO (CCCF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (B99F); +SDR 16 TDI (FFFF) TDO (BCCC); +SDR 16 TDI (FFFF) TDO (CFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFD6); +SDR 16 TDI (FFFF) TDO (77F5); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7B7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFE); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FBFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDA); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F9FF); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FDEF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DDFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (E7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFEB); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (EBFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7F7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (E7BF); +SDR 16 TDI (FFFF) TDO (BFED); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFEF); +SDR 16 TDI (FFFF) TDO (FFCF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (DF7E); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FE); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BABF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FBFD); +SDR 16 TDI (FFFF) TDO (BBDB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A95F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7F3F); +SDR 16 TDI (FFFF) TDO (FACF); +SDR 16 TDI (FFFF) TDO (B678); +SDR 16 TDI (FFFF) TDO (07F4); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F3F); +SDR 16 TDI (FFFF) TDO (FACF); +SDR 16 TDI (FFFF) TDO (BE78); +SDR 16 TDI (FFFF) TDO (006B); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BB5F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F3F); +SDR 16 TDI (FFFF) TDO (F9CF); +SDR 16 TDI (FFFF) TDO (B806); +SDR 16 TDI (FFFF) TDO (07FE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F3F); +SDR 16 TDI (FFFF) TDO (F9CF); +SDR 16 TDI (FFFF) TDO (B806); +SDR 16 TDI (FFFF) TDO (003B); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (6666); +SDR 16 TDI (FFFF) TDO (7CCC); +SDR 16 TDI (FFFF) TDO (B98F); +SDR 16 TDI (FFFF) TDO (9999); +SDR 16 TDI (FFFF) TDO (73EC); +SDR 16 TDI (FFFF) TDO (CCC7); +SDR 16 TDI (FFFF) TDO (B8B9); +SDR 16 TDI (FFFF) TDO (B9FF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DDD); +SDR 16 TDI (FFFF) TDO (BBA5); +SDR 16 TDI (FFFF) TDO (5DDD); +SDR 16 TDI (FFFF) TDO (7BCD); +SDR 16 TDI (FFFF) TDO (DCCA); +SDR 16 TDI (FFFF) TDO (B59D); +SDR 16 TDI (FFFF) TDO (99FA); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FB); +SDR 16 TDI (FFFF) TDO (F7DF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DEFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F99); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (EFFD); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FEE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DEFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF2F); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF9F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FB7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFEF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B5FD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7D7F); +SDR 16 TDI (FFFF) TDO (FEEF); +SDR 16 TDI (FFFF) TDO (BFBE); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFAF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BEF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F67F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FAFF); +SDR 16 TDI (FFFF) TDO (7D5B); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFEF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFF6); +SDR 16 TDI (FFFF) TDO (ABBF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7EF7); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BDBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F679); +SDR 16 TDI (FFFF) TDO (B3FF); +SDR 16 TDI (FFFF) TDO (FD7B); +SDR 16 TDI (FFFF) TDO (7F5F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFDB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFDE); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (77FE); +SDR 16 TDI (FFFF) TDO (D7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A57F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (6EFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BE9F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FDF5); +SDR 16 TDI (FFFF) TDO (67FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B6BF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (ADFF); +SDR 16 TDI (FFFF) TDO (B77E); +SDR 16 TDI (FFFF) TDO (7EFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFD6); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF89); +SDR 16 TDI (FFFF) TDO (B5FF); +SDR 16 TDI (FFFF) TDO (CFFD); +SDR 16 TDI (FFFF) TDO (73FF); +SDR 16 TDI (FFFF) TDO (D7FF); +SDR 16 TDI (FFFF) TDO (BFEF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B5AF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFF6); +SDR 16 TDI (FFFF) TDO (BB7F); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (7FDD); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFEE); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEA); +SDR 16 TDI (FFFF) TDO (6CFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFAF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFDC); +SDR 16 TDI (FFFF) TDO (BB57); +SDR 16 TDI (FFFF) TDO (5AA9); +SDR 16 TDI (FFFF) TDO (7300); +SDR 16 TDI (FFFF) TDO (0FCF); +SDR 16 TDI (FFFF) TDO (B1A9); +SDR 16 TDI (FFFF) TDO (9875); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BB5F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFDC); +SDR 16 TDI (FFFF) TDO (BB5E); +SDR 16 TDI (FFFF) TDO (DAA9); +SDR 16 TDI (FFFF) TDO (7300); +SDR 16 TDI (FFFF) TDO (00CF); +SDR 16 TDI (FFFF) TDO (B9A9); +SDR 16 TDI (FFFF) TDO (987F); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF88); +SDR 16 TDI (FFFF) TDO (B13F); +SDR 16 TDI (FFFF) TDO (8CC9); +SDR 16 TDI (FFFF) TDO (7300); +SDR 16 TDI (FFFF) TDO (0FCF); +SDR 16 TDI (FFFF) TDO (B9C9); +SDR 16 TDI (FFFF) TDO (9875); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BAFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF8E); +SDR 16 TDI (FFFF) TDO (B13F); +SDR 16 TDI (FFFF) TDO (8CCB); +SDR 16 TDI (FFFF) TDO (6600); +SDR 16 TDI (FFFF) TDO (00CF); +SDR 16 TDI (FFFF) TDO (B9C9); +SDR 16 TDI (FFFF) TDO (987F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (6666); +SDR 16 TDI (FFFF) TDO (7C6C); +SDR 16 TDI (FFFF) TDO (AD8F); +SDR 16 TDI (FFFF) TDO (B198); +SDR 16 TDI (FFFF) TDO (73EE); +SDR 16 TDI (FFFF) TDO (ECE7); +SDR 16 TDI (FFFF) TDO (BB9B); +SDR 16 TDI (FFFF) TDO (BBFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DC9); +SDR 16 TDI (FFFF) TDO (B995); +SDR 16 TDI (FFFF) TDO (199D); +SDR 16 TDI (FFFF) TDO (79CC); +SDR 16 TDI (FFFF) TDO (CCCA); +SDR 16 TDI (FFFF) TDO (B199); +SDR 16 TDI (FFFF) TDO (99FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B9EF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF6F); +SDR 16 TDI (FFFF) TDO (ADFF); +SDR 16 TDI (FFFF) TDO (37FF); +SDR 16 TDI (FFFF) TDO (7F77); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FF7D); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FDDF); +SDR 16 TDI (FFFF) TDO (7BBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDD); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (BEFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FDBF); +SDR 16 TDI (FFFF) TDO (7BBD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFAF); +SDR 16 TDI (FFFF) TDO (75FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (DFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FBFB); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (DEFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (D7DF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BB7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBE); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDDF); +SDR 16 TDI (FFFF) TDO (BD7B); +SDR 16 TDI (FFFF) TDO (377D); +SDR 16 TDI (FFFF) TDO (79FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F77); +SDR 16 TDI (FFFF) TDO (67BF); +SDR 16 TDI (FFFF) TDO (BFD7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (75FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (FF6F); +SDR 16 TDI (FFFF) TDO (BB7F); +SDR 16 TDI (FFFF) TDO (577F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F9B); +SDR 16 TDI (FFFF) TDO (ABDF); +SDR 16 TDI (FFFF) TDO (BBCD); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B6BF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F7F); +SDR 16 TDI (FFFF) TDO (DFAF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (D3FE); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFC); +SDR 16 TDI (FFFF) TDO (FC7F); +SDR 16 TDI (FFFF) TDO (BE3A); +SDR 16 TDI (FFFF) TDO (6C7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AD9F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (DDCB); +SDR 16 TDI (FFFF) TDO (B1D9); +SDR 16 TDI (FFFF) TDO (81F5); +SDR 16 TDI (FFFF) TDO (69FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (ABFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F5D); +SDR 16 TDI (FFFF) TDO (DDCF); +SDR 16 TDI (FFFF) TDO (ABDB); +SDR 16 TDI (FFFF) TDO (A3FF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BD5F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F98); +SDR 16 TDI (FFFF) TDO (88CF); +SDR 16 TDI (FFFF) TDO (B989); +SDR 16 TDI (FFFF) TDO (B9F5); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7F08); +SDR 16 TDI (FFFF) TDO (889F); +SDR 16 TDI (FFFF) TDO (B909); +SDR 16 TDI (FFFF) TDO (797F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (6666); +SDR 16 TDI (FFFF) TDO (7CCC); +SDR 16 TDI (FFFF) TDO (B98F); +SDR 16 TDI (FFFF) TDO (9999); +SDR 16 TDI (FFFF) TDO (7366); +SDR 16 TDI (FFFF) TDO (66C7); +SDR 16 TDI (FFFF) TDO (B9B1); +SDR 16 TDI (FFFF) TDO (98FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DDD); +SDR 16 TDI (FFFF) TDO (BBA5); +SDR 16 TDI (FFFF) TDO (5DDD); +SDR 16 TDI (FFFF) TDO (7BCC); +SDR 16 TDI (FFFF) TDO (CC9A); +SDR 16 TDI (FFFF) TDO (B49C); +SDR 16 TDI (FFFF) TDO (CDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7F66); +SDR 16 TDI (FFFF) TDO (66FF); +SDR 16 TDI (FFFF) TDO (B7B7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7EEF); +SDR 16 TDI (FFFF) TDO (DEEF); +SDR 16 TDI (FFFF) TDO (BBCC); +SDR 16 TDI (FFFF) TDO (F3FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FEE); +SDR 16 TDI (FFFF) TDO (FEEF); +SDR 16 TDI (FFFF) TDO (BDFD); +SDR 16 TDI (FFFF) TDO (D5FF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFD6); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBBF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (DFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFDE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B6FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A5DF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (69FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B99F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (69FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (75FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B5AF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFAF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7AF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEB); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (6666); +SDR 16 TDI (FFFF) TDO (7CCC); +SDR 16 TDI (FFFF) TDO (B98F); +SDR 16 TDI (FFFF) TDO (9999); +SDR 16 TDI (FFFF) TDO (73CC); +SDR 16 TDI (FFFF) TDO (CCC7); +SDR 16 TDI (FFFF) TDO (B999); +SDR 16 TDI (FFFF) TDO (99DF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DDD); +SDR 16 TDI (FFFF) TDO (BBA5); +SDR 16 TDI (FFFF) TDO (5DDD); +SDR 16 TDI (FFFF) TDO (7BDD); +SDR 16 TDI (FFFF) TDO (DDD2); +SDR 16 TDI (FFFF) TDO (B5DD); +SDR 16 TDI (FFFF) TDO (DDDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BF7F); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (7F7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFB9); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDAF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFAF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B5AF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEA); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BAFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (67FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (67FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (63E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (4666); +SDR 16 TDI (FFFF) TDO (7CCC); +SDR 16 TDI (FFFF) TDO (B98F); +SDR 16 TDI (FFFF) TDO (9999); +SDR 16 TDI (FFFF) TDO (73CC); +SDR 16 TDI (FFFF) TDO (CCC7); +SDR 16 TDI (FFFF) TDO (B999); +SDR 16 TDI (FFFF) TDO (99FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (4957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DDD); +SDR 16 TDI (FFFF) TDO (BBA5); +SDR 16 TDI (FFFF) TDO (5DDD); +SDR 16 TDI (FFFF) TDO (7BDD); +SDR 16 TDI (FFFF) TDO (DDD2); +SDR 16 TDI (FFFF) TDO (B5DD); +SDR 16 TDI (FFFF) TDO (DDFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FDF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (8FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFF7); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FF7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FEFB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (CFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BBFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (A55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (7BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AAFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFB); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BAFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEE); +SDR 16 TDI (FFFF) TDO (77FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (855F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (97FF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (4BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B55F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF5); +SDR 16 TDI (FFFF) TDO (6BFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (3333); +SDR 16 TDI (FFFF) TDO (43E6); +SDR 16 TDI (FFFF) TDO (6667); +SDR 16 TDI (FFFF) TDO (B333); +SDR 16 TDI (FFFF) TDO (31F3); +SDR 16 TDI (FFFF) TDO (6666); +SDR 16 TDI (FFFF) TDO (7CCC); +SDR 16 TDI (FFFF) TDO (B98F); +SDR 16 TDI (FFFF) TDO (9999); +SDR 16 TDI (FFFF) TDO (73CC); +SDR 16 TDI (FFFF) TDO (CCC7); +SDR 16 TDI (FFFF) TDO (B999); +SDR 16 TDI (FFFF) TDO (99FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (6957); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (B777); +SDR 16 TDI (FFFF) TDO (74AB); +SDR 16 TDI (FFFF) TDO (7777); +SDR 16 TDI (FFFF) TDO (7DDD); +SDR 16 TDI (FFFF) TDO (BBA5); +SDR 16 TDI (FFFF) TDO (5DDD); +SDR 16 TDI (FFFF) TDO (7BDD); +SDR 16 TDI (FFFF) TDO (DDD2); +SDR 16 TDI (FFFF) TDO (B5DD); +SDR 16 TDI (FFFF) TDO (DDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (B7FF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7BBF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (AFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7DFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFEF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EF7F); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FF7F); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFBF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5EFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FDFE); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BEFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFD); +SDR 16 TDI (FFFF) TDO (6FFF); +SDR 16 TDI (FFFF) TDO (FDFF); +SDR 16 TDI (FFFF) TDO (BDFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEFF); +SDR 16 TDI (FFFF) TDO (7FEF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FBFF); +SDR 16 TDI (FFFF) TDO (7F7F); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFE); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFDF); +SDR 16 TDI (FFFF) TDO (7FFB); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFD); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFF9); +SDR 16 TDI (FFFF) TDO (77EE); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFB); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (EFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (BFDF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFD7); +SDR 16 TDI (FFFF) TDO (4FF3); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (BFF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FEF5); +SDR 16 TDI (FFFF) TDO (6FF7); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (9FD5); +SDR 16 TDI (FFFF) TDO (6FFD); +SDR 16 TDI (FFFF) TDO (53FF); +SDR 16 TDI (FFFF) TDO (FFF9); +SDR 16 TDI (FFFF) TDO (B77F); +SDR 16 TDI (FFFF) TDO (F7FF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (BF9F); +SDR 16 TDI (FFFF) TDO (BCCF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFC); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFE); +SDR 16 TDI (FFFF) TDO (7CFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFE7); +SDR 16 TDI (FFFF) TDO (93E7); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5F3E); +SDR 16 TDI (FFFF) TDO (79F3); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (9FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (5FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (7FFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (BFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0001); +SIR 10 TDI (205); +RUNTEST 93 TCK; +SDR 16 TDI (FFFF) TDO (FFFF) MASK (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SDR 16 TDI (FFFF) TDO (FFFF); +SIR 10 TDI (203); +RUNTEST 93 TCK; +SDR 13 TDI (0000); +SIR 10 TDI (2F4); +RUNTEST 93 TCK; +SDR 16 TDI (7BFF); +RUNTEST 1800 TCK; +SDR 16 TDI (FFFF); +RUNTEST 1800 TCK; +SDR 16 TDI (BFFC); +RUNTEST 1800 TCK; +SDR 16 TDI (F9E7); +RUNTEST 1800 TCK; +SIR 10 TDI (201); +RUNTEST 18003 TCK; +SIR 10 TDI (3FF); +RUNTEST 18000 TCK; +STATE IDLE; diff --git a/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.qpf b/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.qpf new file mode 100644 index 00000000..0ced0c84 --- /dev/null +++ b/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2014 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 32-bit +# Version 13.1.4 Build 182 03/12/2014 SJ Web Edition +# Date created = 21:24:55 April 29, 2014 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "13.1" +DATE = "21:24:55 April 29, 2014" + +# Revisions + +PROJECT_REVISION = "portapack_h1_cpld" diff --git a/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.qsf b/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.qsf new file mode 100644 index 00000000..0b47ac08 --- /dev/null +++ b/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.qsf @@ -0,0 +1,292 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2014 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 32-bit +# Version 13.1.4 Build 182 03/12/2014 SJ Web Edition +# Date created = 21:24:55 April 29, 2014 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# portapack_h1_cpld_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "MAX V" +set_global_assignment -name DEVICE 5M40ZE64C5 +set_global_assignment -name TOP_LEVEL_ENTITY top +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "21:24:55 APRIL 29, 2014" +set_global_assignment -name LAST_QUARTUS_VERSION "16.1.2 Lite Edition" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name DEVICE_FILTER_PACKAGE EQFP +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 64 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR "-1" +set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (VHDL)" +set_global_assignment -name EDA_NETLIST_WRITER_OUTPUT_DIR simulation/modelsim -section_id eda_simulation +set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation +set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 +set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF +set_global_assignment -name SDC_FILE portapack_h1_cpld.sdc +set_global_assignment -name VHDL_FILE top.vhd +set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVCMOS" +set_location_assignment PIN_43 -to LCD_DB[15] +set_location_assignment PIN_44 -to LCD_DB[14] +set_location_assignment PIN_45 -to LCD_DB[13] +set_location_assignment PIN_46 -to LCD_DB[12] +set_location_assignment PIN_47 -to LCD_DB[11] +set_location_assignment PIN_48 -to LCD_DB[10] +set_location_assignment PIN_49 -to LCD_DB[9] +set_location_assignment PIN_50 -to LCD_DB[8] +set_location_assignment PIN_51 -to LCD_DB[7] +set_location_assignment PIN_52 -to LCD_DB[6] +set_location_assignment PIN_53 -to LCD_DB[5] +set_location_assignment PIN_54 -to LCD_DB[4] +set_location_assignment PIN_55 -to LCD_DB[3] +set_location_assignment PIN_56 -to LCD_DB[2] +set_location_assignment PIN_58 -to LCD_DB[1] +set_location_assignment PIN_59 -to LCD_DB[0] +set_location_assignment PIN_60 -to LCD_RDX +set_location_assignment PIN_62 -to LCD_RS +set_location_assignment PIN_63 -to LCD_TE +set_location_assignment PIN_61 -to LCD_WRX +set_location_assignment PIN_10 -to SW_D +set_location_assignment PIN_28 -to SW_L +set_location_assignment PIN_9 -to SW_R +set_location_assignment PIN_11 -to SW_ROT_A +set_location_assignment PIN_12 -to SW_ROT_B +set_location_assignment PIN_13 -to SW_SEL +set_location_assignment PIN_25 -to SW_U +set_location_assignment PIN_1 -to TP_D +set_location_assignment PIN_2 -to TP_L +set_location_assignment PIN_64 -to TP_R +set_location_assignment PIN_3 -to TP_U +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_D +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_L +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_R +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_ROT_A +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_ROT_B +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_SEL +set_instance_assignment -name IO_STANDARD "3.3V SCHMITT TRIGGER INPUT" -to SW_U +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to TP_D +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to TP_L +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to TP_R +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to TP_U +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[15] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[14] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[13] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[12] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[11] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[10] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[9] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[8] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[7] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[6] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[5] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[4] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[3] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[2] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[1] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_DB[0] +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_RDX +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_RS +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_TE +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_WRX +set_global_assignment -name EDA_TEST_BENCH_ENABLE_STATUS TEST_BENCH_MODE -section_id eda_simulation +set_global_assignment -name EDA_NATIVELINK_SIMULATION_TEST_BENCH top_tb -section_id eda_simulation +set_global_assignment -name EDA_TEST_BENCH_NAME top_tb -section_id eda_simulation +set_global_assignment -name EDA_DESIGN_INSTANCE_NAME uut -section_id top_tb +set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME top_tb -section_id top_tb +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +set_global_assignment -name EDA_TEST_BENCH_RUN_SIM_FOR "500 ns" -section_id top_tb +set_global_assignment -name EDA_TEST_BENCH_FILE top_tb.vhd -section_id top_tb +set_global_assignment -name EDA_BOARD_DESIGN_BOUNDARY_SCAN_TOOL "BSDL (Boundary Scan)" +set_global_assignment -name EDA_NETLIST_WRITER_OUTPUT_DIR /home/jboone/src/portapack/portapack_hackrf/hardware/portapack_h1/cpld -section_id eda_board_design_boundary_scan +set_global_assignment -name EDA_BOARD_BOUNDARY_SCAN_OPERATION POST_CONFIG -section_id eda_board_design_boundary_scan +set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF +set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF +set_global_assignment -name ENABLE_NCE_PIN OFF +set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF +set_global_assignment -name USE_CONFIGURATION_DEVICE ON +set_global_assignment -name GENERATE_RBF_FILE OFF +set_global_assignment -name GENERATE_SVF_FILE ON +set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED WITH BUS-HOLD" +set_location_assignment PIN_38 -to LCD_RESETX +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_RESETX +set_location_assignment PIN_18 -to MCU_D[7] +set_location_assignment PIN_19 -to MCU_D[6] +set_location_assignment PIN_21 -to MCU_D[5] +set_location_assignment PIN_20 -to MCU_D[4] +set_location_assignment PIN_22 -to MCU_D[3] +set_location_assignment PIN_24 -to MCU_D[2] +set_location_assignment PIN_27 -to MCU_D[1] +set_location_assignment PIN_26 -to MCU_D[0] +set_location_assignment PIN_33 -to MCU_ADDR +set_location_assignment PIN_42 -to MCU_DIR +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_ADDR +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_D[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_DIR +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_D +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_L +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_R +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_U +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_ROT_B +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_SEL +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SW_ROT_A +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[15] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[14] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[13] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[12] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[11] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[10] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[9] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[8] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[7] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[6] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[5] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[4] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[3] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[2] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[1] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_DB[0] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_RDX +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_RESETX +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_RS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_TE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_WRX +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_ADDR +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[7] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[6] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[5] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[4] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[3] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[2] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[1] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_D[0] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_DIR +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_D +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_L +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_R +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_ROT_A +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_ROT_B +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_SEL +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SW_U +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to TP_D +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to TP_L +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to TP_R +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to TP_U +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[15] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[14] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[13] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[12] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[11] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[10] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[9] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[8] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[7] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[6] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[5] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[4] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[3] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[2] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[1] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_DB[0] +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_RDX +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_RESETX +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_RS +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_TE +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_WRX +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_ADDR +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[7] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[6] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[5] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[4] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[3] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[2] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[1] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_D[0] +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_DIR +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_D +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_L +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_R +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_ROT_A +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_ROT_B +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_SEL +set_instance_assignment -name SLOW_SLEW_RATE ON -to SW_U +set_instance_assignment -name SLOW_SLEW_RATE ON -to TP_D +set_instance_assignment -name SLOW_SLEW_RATE ON -to TP_L +set_instance_assignment -name SLOW_SLEW_RATE ON -to TP_R +set_instance_assignment -name SLOW_SLEW_RATE ON -to TP_U +set_global_assignment -name ENABLE_DEVICE_WIDE_RESET ON +set_global_assignment -name IOBANK_VCCIO 1.8V -section_id 2 +set_global_assignment -name IOBANK_VCCIO 3.3V -section_id 1 +set_instance_assignment -name PCI_IO OFF -to MCU_DIR +set_global_assignment -name ALLOW_LVTTL_LVCMOS_INPUT_LEVELS_TO_OVERDRIVE_INPUT_BUFFER ON +set_location_assignment PIN_37 -to LCD_BACKLIGHT +set_instance_assignment -name IO_STANDARD "1.8 V" -to LCD_BACKLIGHT +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LCD_BACKLIGHT +set_instance_assignment -name SLOW_SLEW_RATE ON -to LCD_BACKLIGHT +set_location_assignment PIN_4 -to AUDIO_RESETX +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to AUDIO_RESETX +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to AUDIO_RESETX +set_instance_assignment -name SLOW_SLEW_RATE ON -to AUDIO_RESETX +set_location_assignment PIN_30 -to MCU_LCD_RD +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_LCD_RD +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_LCD_RD +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_LCD_RD +set_location_assignment PIN_40 -to MCU_LCD_WR +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_LCD_WR +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_LCD_WR +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_LCD_WR +set_instance_assignment -name PCI_IO OFF -to MCU_LCD_WR +set_location_assignment PIN_32 -to MCU_IO_STBX +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_IO_STBX +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_IO_STBX +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_IO_STBX +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to TP_R +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to TP_D +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to TP_L +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to TP_U +set_location_assignment PIN_31 -to MCU_LCD_TE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_LCD_TE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_LCD_TE +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_LCD_TE +set_location_assignment PIN_34 -to MCU_P2_8 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to MCU_P2_8 +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to MCU_P2_8 +set_instance_assignment -name SLOW_SLEW_RATE ON -to MCU_P2_8 +set_instance_assignment -name PCI_IO OFF -to MCU_P2_8 +set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL diff --git a/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.sdc b/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.sdc new file mode 100644 index 00000000..7417b944 --- /dev/null +++ b/hardware/portapack_h1/cpld/20170522/portapack_h1_cpld.sdc @@ -0,0 +1,116 @@ +## Generated SDC file "portapack_hackrf_one_cpld.sdc" + +## Copyright (C) 1991-2014 Altera Corporation +## Your use of Altera Corporation's design tools, logic functions +## and other software and tools, and its AMPP partner logic +## functions, and any output files from any of the foregoing +## (including device programming or simulation files), and any +## associated documentation or information are expressly subject +## to the terms and conditions of the Altera Program License +## Subscription Agreement, Altera MegaCore Function License +## Agreement, or other applicable license agreement, including, +## without limitation, that your use is for the sole purpose of +## programming logic devices manufactured by Altera and sold by +## Altera or its authorized distributors. Please refer to the +## applicable agreement for further details. + + +## VENDOR "Altera" +## PROGRAM "Quartus II" +## VERSION "Version 13.1.4 Build 182 03/12/2014 SJ Web Edition" + +## DATE "Sat May 3 10:22:18 2014" + +## +## DEVICE "5M40ZE64C5" +## + +# RS = 0, D = DB[15:8] +# wait max(tast = 0 ns, CPLD setup = ?) +# WR = 0, D = DB[7:0] +# wait max(CPLD ) + +#************************************************************** +# Time Information +#************************************************************** + +set_time_format -unit ns -decimal_places 3 + +set mcu_clk_period 4.9 + +set lcd_data_wr_setup 10.0 +set lcd_data_wr_hold 10.0 + +#************************************************************** +# Create Clock +#************************************************************** + +create_clock -name {MCU_LCD_WR} -period 66.000 -waveform { 0.000 33.000 } [get_ports {MCU_LCD_WR}] +#create_clock -name strobe_virt -period 66.000 + +#************************************************************** +# Create Generated Clock +#************************************************************** + + + +#************************************************************** +# Set Clock Latency +#************************************************************** + + + +#************************************************************** +# Set Clock Uncertainty +#************************************************************** + + + +#************************************************************** +# Set Input Delay +#************************************************************** + +#set_input_delay -clock strobe_virt [get_ports {D[*]}] + +#************************************************************** +# Set Output Delay +#************************************************************** + + + +#************************************************************** +# Set Clock Groups +#************************************************************** + + + +#************************************************************** +# Set False Path +#************************************************************** + +#set_false_path -from [get_clocks {MCU_IO_STBX}] -to [get_ports {TP_D TP_L TP_R TP_U}] +#set_false_path -from [get_ports {SW_D SW_L SW_R SW_ROT_A SW_ROT_B SW_SEL SW_U}] -to [get_ports {MCU_D[*]}] + + +#************************************************************** +# Set Multicycle Path +#************************************************************** + + + +#************************************************************** +# Set Maximum Delay +#************************************************************** + + + +#************************************************************** +# Set Minimum Delay +#************************************************************** + + + +#************************************************************** +# Set Input Transition +#************************************************************** + diff --git a/hardware/portapack_h1/cpld/20170522/top.vhd b/hardware/portapack_h1/cpld/20170522/top.vhd new file mode 100644 index 00000000..d9969ff4 --- /dev/null +++ b/hardware/portapack_h1/cpld/20170522/top.vhd @@ -0,0 +1,173 @@ +-- +-- Copyright (C) 2012 Jared Boone, ShareBrained Technology, Inc. +-- +-- This file is part of PortaPack. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2, or (at your option) +-- any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; see the file COPYING. If not, write to +-- the Free Software Foundation, Inc., 51 Franklin Street, +-- Boston, MA 02110-1301, USA. + +library ieee; +use ieee.std_logic_1164.all; + +entity top is + port ( + MCU_D : inout std_logic_vector(7 downto 0); + MCU_DIR : in std_logic; + MCU_IO_STBX : in std_logic; + MCU_LCD_WR : in std_logic; + MCU_ADDR : in std_logic; + MCU_LCD_TE : out std_logic; + MCU_P2_8 : in std_logic; + MCU_LCD_RD : in std_logic; + + TP_U : out std_logic; + TP_D : out std_logic; + TP_L : out std_logic; + TP_R : out std_logic; + + SW_SEL : in std_logic; + SW_ROT_A : in std_logic; + SW_ROT_B : in std_logic; + SW_U : in std_logic; + SW_D : in std_logic; + SW_L : in std_logic; + SW_R : in std_logic; + + LCD_RESETX : out std_logic; + LCD_RS : out std_logic; + LCD_WRX : out std_logic; + LCD_RDX : out std_logic; + LCD_DB : inout std_logic_vector(15 downto 0); + LCD_TE : in std_logic; + LCD_BACKLIGHT : out std_logic; + + AUDIO_RESETX : out std_logic + ); +end top; + +architecture rtl of top is + + signal switches : std_logic_vector(7 downto 0); + + type data_direction_t is (from_mcu, to_mcu); + signal data_dir : data_direction_t; + + signal mcu_data_out_lcd : std_logic_vector(7 downto 0); + signal mcu_data_out_io : std_logic_vector(7 downto 0); + signal mcu_data_out : std_logic_vector(7 downto 0); + signal mcu_data_in : std_logic_vector(7 downto 0); + + signal lcd_data_in : std_logic_vector(15 downto 0); + signal lcd_data_in_mux : std_logic_vector(7 downto 0); + signal lcd_data_out : std_logic_vector(15 downto 0); + + signal lcd_data_in_q : std_logic_vector(7 downto 0) := (others => '0'); + signal lcd_data_out_q : std_logic_vector(7 downto 0) := (others => '0'); + + signal tp_q : std_logic_vector(7 downto 0) := (others => '0'); + + signal lcd_reset_q : std_logic := '1'; + signal lcd_backlight_q : std_logic := '0'; + + signal audio_reset_q : std_logic := '1'; + + signal dir_read : boolean; + signal dir_write : boolean; + + signal lcd_read_strobe : boolean; + signal lcd_write_strobe : boolean; + signal lcd_write : boolean; + + signal io_strobe : boolean; + signal io_read_strobe : boolean; + signal io_write_strobe : boolean; + +begin + + -- I/O data + switches <= LCD_TE & not SW_ROT_B & not SW_ROT_A & not SW_SEL & not SW_U & not SW_D & not SW_L & not SW_R; + + TP_U <= tp_q(3) when tp_q(7) = '1' else 'Z'; + TP_D <= tp_q(2) when tp_q(6) = '1' else 'Z'; + TP_L <= tp_q(1) when tp_q(5) = '1' else 'Z'; + TP_R <= tp_q(0) when tp_q(4) = '1' else 'Z'; + + LCD_BACKLIGHT <= lcd_backlight_q; + + MCU_LCD_TE <= LCD_TE; + + -- State management + data_dir <= to_mcu when MCU_DIR = '1' else from_mcu; + dir_read <= (data_dir = to_mcu); + dir_write <= (data_dir = from_mcu); + + io_strobe <= (MCU_IO_STBX = '0'); + io_read_strobe <= io_strobe and dir_read; + + lcd_read_strobe <= (MCU_LCD_RD = '1'); + lcd_write <= not lcd_read_strobe; + + -- LCD interface + LCD_RS <= MCU_ADDR; + LCD_RDX <= not MCU_LCD_RD; + LCD_WRX <= not MCU_LCD_WR; + + lcd_data_out <= lcd_data_out_q & mcu_data_in; + lcd_data_in <= LCD_DB; + LCD_DB <= lcd_data_out when lcd_write else (others => 'Z'); + + LCD_RESETX <= not lcd_reset_q; + AUDIO_RESETX <= not audio_reset_q; + + -- MCU interface + mcu_data_out_lcd <= lcd_data_in(15 downto 8) when lcd_read_strobe else lcd_data_in_q; + mcu_data_out_io <= switches; + mcu_data_out <= mcu_data_out_io when io_read_strobe else mcu_data_out_lcd; + + mcu_data_in <= MCU_D; + MCU_D <= mcu_data_out when dir_read else (others => 'Z'); + + -- Synchronous behaviors: + -- LCD write: Capture LCD high byte on LCD_WRX falling edge. + process(MCU_LCD_WR, mcu_data_in) + begin + if rising_edge(MCU_LCD_WR) then + lcd_data_out_q <= mcu_data_in; + end if; + end process; + + -- LCD read: Capture LCD low byte on LCD_RD falling edge. + process(MCU_LCD_RD, lcd_data_in) + begin + if falling_edge(MCU_LCD_RD) then + lcd_data_in_q <= lcd_data_in(7 downto 0); + end if; + end process; + + -- I/O write (to resistive touch panel): Capture data from + -- MCU and hold on TP pins until further notice. + process(MCU_IO_STBX, dir_write, mcu_data_in, MCU_ADDR) + begin + if rising_edge(MCU_IO_STBX) and dir_write then + if MCU_ADDR = '0' then + tp_q <= mcu_data_in; + else + lcd_reset_q <= mcu_data_in(0); + audio_reset_q <= mcu_data_in(1); + lcd_backlight_q <= mcu_data_in(7); + end if; + end if; + end process; +end rtl;
    LFN構成 at CM3
    _CODE_PAGE追加コード