diff --git a/.gitignore b/.gitignore index 04c7fff6f4..69f71847bf 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,5 @@ TAGS # POEdit mo files #################### *.mo + +.vscode diff --git a/.gitmodules b/.gitmodules index 5ddbc44946..163d45fcd1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,9 +5,6 @@ [submodule "lib/libffi"] path = lib/libffi url = https://github.com/atgreen/libffi -[submodule "lib/lwip"] - path = lib/lwip - url = https://git.savannah.gnu.org/r/lwip.git [submodule "lib/berkeley-db-1.xx"] path = lib/berkeley-db-1.xx url = https://github.com/pfalcon/berkeley-db-1.xx diff --git a/.travis.yml b/.travis.yml index 31f9a24471..48c86a9f96 100755 --- a/.travis.yml +++ b/.travis.yml @@ -22,10 +22,10 @@ git: # just try to make the builds "about equal in run time" env: - TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini" TRAVIS_SDK=arm:nrf - - TRAVIS_BOARDS="metro_m0_express metro_m4_express pirkey_m0 trellis_m4_express trinket_m0 sparkfun_lumidrive sparkfun_redboard_turbo pybadge" TRAVIS_SDK=arm + - TRAVIS_BOARDS="metro_m0_express metro_m4_express metro_m4_airlift_lite pirkey_m0 trellis_m4_express trinket_m0 sparkfun_lumidrive sparkfun_redboard_turbo bast_pro_mini_m0" TRAVIS_SDK=arm - TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip" TRAVIS_SDK=arm - - TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10" TRAVIS_SDK=arm - - TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev" TRAVIS_SDK=arm + - TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10" TRAVIS_SDK=arm + - TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge" TRAVIS_SDK=arm addons: artifacts: diff --git a/Makefile b/Makefile index 0c298f0ba8..9b7a5a32c6 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,8 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(BASEOPTS) # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(BASEOPTS) +TRANSLATE_SOURCES = extmod lib main.c ports/atmel-samd ports/nrf py shared-bindings shared-module supervisor + .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @@ -194,7 +196,7 @@ pseudoxml: all-source: locale/circuitpython.pot: all-source - find . -iname "*.c" | xargs xgettext -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale + find $(TRANSLATE_SOURCES) -iname "*.c" | xargs xgettext -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale translate: locale/circuitpython.pot for po in $(shell ls locale/*.po); do msgmerge -U $$po -s --no-fuzzy-matching --add-location=file locale/circuitpython.pot; done diff --git a/docs/design_guide.rst b/docs/design_guide.rst index e7b3832bcb..2efbdc34c0 100644 --- a/docs/design_guide.rst +++ b/docs/design_guide.rst @@ -500,6 +500,8 @@ properties. +-----------------------+-----------------------+-------------------------------------------------------------------------+ | ``value`` | int | 16-bit Analog value, unit-less | +-----------------------+-----------------------+-------------------------------------------------------------------------+ +| ``weight`` | float | grams (g) | ++-----------------------+-----------------------+-------------------------------------------------------------------------+ Adding native modules -------------------------------------------------------------------------------- diff --git a/frozen/Adafruit_CircuitPython_BusDevice b/frozen/Adafruit_CircuitPython_BusDevice index 3e6bf71c75..6b34029659 160000 --- a/frozen/Adafruit_CircuitPython_BusDevice +++ b/frozen/Adafruit_CircuitPython_BusDevice @@ -1 +1 @@ -Subproject commit 3e6bf71c75c9ed4ada51ab69f8bd196dad18c0c1 +Subproject commit 6b3402965999d068316882d63fae3ab26006477c diff --git a/frozen/Adafruit_CircuitPython_HID b/frozen/Adafruit_CircuitPython_HID index dbfabac857..836bb9843f 160000 --- a/frozen/Adafruit_CircuitPython_HID +++ b/frozen/Adafruit_CircuitPython_HID @@ -1 +1 @@ -Subproject commit dbfabac857123443506a3a1de9b5917d58248820 +Subproject commit 836bb9843fd793683061c15150944f8897d806e9 diff --git a/frozen/Adafruit_CircuitPython_Motor b/frozen/Adafruit_CircuitPython_Motor index a889448028..98563ab658 160000 --- a/frozen/Adafruit_CircuitPython_Motor +++ b/frozen/Adafruit_CircuitPython_Motor @@ -1 +1 @@ -Subproject commit a8894480283e3b81f39a3db5716b443963abc56f +Subproject commit 98563ab65800aac6464f671c0d005df56ecaa6c6 diff --git a/frozen/Adafruit_CircuitPython_NeoPixel b/frozen/Adafruit_CircuitPython_NeoPixel index 6e35cd2b40..c0ed34813a 160000 --- a/frozen/Adafruit_CircuitPython_NeoPixel +++ b/frozen/Adafruit_CircuitPython_NeoPixel @@ -1 +1 @@ -Subproject commit 6e35cd2b40575a20e2904b096508325cef4a71d3 +Subproject commit c0ed34813a608b64ed044826553918ddbad12f0c diff --git a/frozen/Adafruit_CircuitPython_seesaw b/frozen/Adafruit_CircuitPython_seesaw index 2df8a671a5..1d12cfc0b7 160000 --- a/frozen/Adafruit_CircuitPython_seesaw +++ b/frozen/Adafruit_CircuitPython_seesaw @@ -1 +1 @@ -Subproject commit 2df8a671a5a3d055b75df278fb354b558718b56d +Subproject commit 1d12cfc0b729b4ae0a2f3f4e7c1933a0fbd3b166 diff --git a/frozen/circuitpython-stage b/frozen/circuitpython-stage index d8a9d8c1d7..5669083c2d 160000 --- a/frozen/circuitpython-stage +++ b/frozen/circuitpython-stage @@ -1 +1 @@ -Subproject commit d8a9d8c1d73041e4cc5669c5441f531ecba517fc +Subproject commit 5669083c2d2cada8b2a1108cdcd4c69694648c93 diff --git a/lib/lwip b/lib/lwip deleted file mode 160000 index 5b8b5d459e..0000000000 --- a/lib/lwip +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5b8b5d459e7dd890724515bbfad86c705234f9ec diff --git a/lib/tinyusb b/lib/tinyusb index 55874813f8..0848c462b3 160000 --- a/lib/tinyusb +++ b/lib/tinyusb @@ -1 +1 @@ -Subproject commit 55874813f82157b7509729b1a0c66e68f86e2d07 +Subproject commit 0848c462b3e431a9da42e96537d2b597a4579636 diff --git a/locale/ID.po b/locale/ID.po index 3052cb90b4..0151b2e333 100644 --- a/locale/ID.po +++ b/locale/ID.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -218,10 +218,6 @@ msgstr "" msgid "A hardware interrupt channel is already in use" msgstr "Sebuah channel hardware interrupt sedang digunakan" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "AP dibutuhkan" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -349,10 +345,6 @@ msgstr "buffers harus mempunyai panjang yang sama" msgid "Bytes must be between 0 and 255." msgstr "" -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "Dukungan C-level" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -374,18 +366,10 @@ msgstr "" msgid "Can't connect in Peripheral mode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "Tidak dapat menyambungkan ke AP" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "Tidak dapat memutuskna dari AP" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -415,16 +399,11 @@ msgid "Cannot remount '/' when USB is active." msgstr "" #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" "Tidak dapat melakukan reset ke bootloader karena tidak ada bootloader yang " "terisi" -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "Tidak dapat mengatur konfigurasi STA" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "" @@ -441,10 +420,6 @@ msgstr "" msgid "Cannot unambiguously get sizeof scalar" msgstr "tidak dapat mendapatkan ukuran scalar secara tidak ambigu" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "Tidak dapat memperbarui status i/f" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "" @@ -534,31 +509,15 @@ msgstr "" msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "Tidak tahu cara meloloskan objek ke fungsi native" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "ESP8266 tidak mendukung safe mode" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "ESP866 tidak mendukung pull down" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "Channel EXTINT sedang digunakan" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Errod pada ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "Error pada regex" @@ -613,7 +572,6 @@ msgid "Failed to allocate RX buffer" msgstr "Gagal untuk mengalokasikan buffer RX" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -660,9 +618,9 @@ msgid "Failed to get softdevice state" msgstr "Gagal untuk mendapatkan status softdevice, error: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "Gagal untuk melaporkan nilai atribut, status: 0x%08lX" +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -670,9 +628,9 @@ msgid "Failed to read CCCD value, err 0x%04x" msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX" +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -763,23 +721,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "GPIO16 tidak mendukung pull up" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "operasi I/O pada file tertutup" @@ -818,6 +768,10 @@ msgstr "" msgid "Invalid bit clock pin" msgstr "Bit clock pada pin tidak valid" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "Ukuran buffer tidak valid" @@ -928,11 +882,6 @@ msgstr "" msgid "MOSI pin init failed." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "Nilai maksimum frekuensi PWM adalah %dhz" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -950,15 +899,6 @@ msgstr "" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "Nilai minimum frekuensi PWM is 1hz" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "Nilai Frekuensi PWM ganda tidak didukung. PWM sudah diatur pada %dhz" - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -972,10 +912,6 @@ msgstr "Tidak ada DAC (Digital Analog Converter) di dalam chip" msgid "No DMA channel found" msgstr "tidak ada channel DMA ditemukan" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Tidak ada dukungan PulseIn untuk %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Tidak pin RX" @@ -988,17 +924,9 @@ msgstr "Tidak ada pin TX" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Tidak ada standar bus I2C" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Tidak ada standar bus SPI" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Tidak ada standar bus UART" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Tidak ada standar bus %q" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -1008,10 +936,6 @@ msgstr "Tidak ada GCLK yang kosong" msgid "No hardware random available" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Tidak dukungan hardware untuk analog out." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1030,10 +954,6 @@ msgstr "" msgid "Not connected" msgstr "Tidak dapat menyambungkan ke AP" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "" @@ -1057,10 +977,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1072,10 +988,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Hanya tx yang mendukung pada UART1 (GPIO2)." - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "" @@ -1090,32 +1002,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "PWM tidak didukung pada pin %d" - #: py/moduerrno.c msgid "Permission denied" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "Pin %q tidak memiliki kemampuan ADC" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "Pin tidak mempunya kemampuan untuk ADC (Analog Digital Converter)" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Pin(16) tidak mendukung pull" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Pin-pin tidak valid untuk SPI" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1134,11 +1029,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "" -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "" @@ -1180,14 +1075,6 @@ msgstr "" msgid "SDA or SCL needs a pull up" msgstr "SDA atau SCL membutuhkan pull up" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "STA harus aktif" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "STA dibutuhkan" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "" @@ -1306,15 +1193,6 @@ msgstr "" msgid "Tuple or struct_time argument required" msgstr "" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) tidak ada" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "UART(1) tidak dapat dibaca" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "" @@ -1353,10 +1231,6 @@ msgstr "" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Tidak dapat memasang filesystem kembali" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "" @@ -1365,10 +1239,6 @@ msgstr "" msgid "Unexpected nrfx uuid type" msgstr "" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Tipe tidak diketahui" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1395,12 +1265,6 @@ msgstr "" msgid "Unsupported pull value." msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" -"Gunakan esptool untuk menghapus flash dan upload ulang Python sebagai " -"gantinya" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "" @@ -1441,11 +1305,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "Anda mengajukan untuk memulai mode aman pada (safe mode) pada " -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "[addrinfo error %d]" - #: py/objtype.c msgid "__init__() should return None" msgstr "" @@ -1467,7 +1326,7 @@ msgstr "sebuah objek menyerupai byte (bytes-like) dibutuhkan" msgid "abort() called" msgstr "abort() dipanggil" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "alamat %08x tidak selaras dengan %d bytes" @@ -1562,10 +1421,6 @@ msgstr "buffers harus mempunyai panjang yang sama" msgid "buffer slices must be of equal length" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "buffer terlalu panjang" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1620,10 +1475,6 @@ msgstr "" msgid "can only save bytecode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "hanya bisa melakukan query satu param" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1695,14 +1546,6 @@ msgstr "" msgid "can't do truncated division of a complex number" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "tidak bisa mendapatkan konfigurasi AP" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "tidak bisa mendapatkan konfigurasi STA" - #: py/compile.c msgid "can't have multiple **x" msgstr "tidak bisa memiliki **x ganda" @@ -1731,14 +1574,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "tidak bisa mendapatkan konfigurasi AP" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "tidak bisa mendapatkan konfigurasi STA" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "" @@ -1871,10 +1706,6 @@ msgstr "" msgid "division by zero" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "hanya antar pos atau kw args yang diperbolehkan" - #: py/objdeque.c msgid "empty" msgstr "" @@ -1924,10 +1755,6 @@ msgstr "" msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "mengharapkan sebuah pin" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "sebuah instruksi assembler diharapkan" @@ -1948,10 +1775,6 @@ msgstr "argumen keyword ekstra telah diberikan" msgid "extra positional arguments given" msgstr "argumen posisi ekstra telah diberikan" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "ffi_prep_closure_loc" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "" @@ -1968,10 +1791,6 @@ msgstr "" msgid "firstbit must be MSB" msgstr "bit pertama(firstbit) harus berupa MSB" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "alokasi flash harus dibawah 1MByte" - #: py/objint.c msgid "float too big" msgstr "" @@ -1984,10 +1803,6 @@ msgstr "" msgid "format requires a dict" msgstr "" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "frekuensi hanya bisa didefinisikan 80Mhz atau 160Mhz" - #: py/objdeque.c msgid "full" msgstr "" @@ -2056,10 +1871,6 @@ msgstr "identifier didefinisi ulang sebagai global" msgid "identifier redefined as nonlocal" msgstr "identifier didefinisi ulang sebagai nonlocal" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "baudrate tidak memungkinkan" - #: py/objstr.c msgid "incomplete format" msgstr "" @@ -2073,7 +1884,6 @@ msgid "incorrect padding" msgstr "lapisan (padding) tidak benar" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index keluar dari jangkauan" @@ -2106,26 +1916,14 @@ msgstr "perangkat I2C tidak valid" msgid "invalid SPI peripheral" msgstr "perangkat SPI tidak valid" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "alarm tidak valid" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "argumen-argumen tidak valid" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "panjang buffer tidak valid" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "cert tidak valid" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "bit data tidak valid" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "indeks dupterm tidak valid" @@ -2146,18 +1944,10 @@ msgstr "key tidak valid" msgid "invalid micropython decorator" msgstr "micropython decorator tidak valid" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "pin tidak valid" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "stop bit tidak valid" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "syntax tidak valid" @@ -2203,10 +1993,6 @@ msgstr "" msgid "label redefined" msgstr "label didefinis ulang" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "len harus kelipatan dari 4" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "" @@ -2248,11 +2034,6 @@ msgstr "" msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "alokasi memori gagal, mengalokasikan %u byte untuk kode native" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "" @@ -2359,11 +2140,6 @@ msgstr "non-keyword arg setelah keyword arg" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "tidak valid channel ADC: %d" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2465,10 +2241,6 @@ msgstr "" msgid "parameters must be registers in sequence r0 to r3" msgstr "parameter harus menjadi register dalam urutan r0 sampai r3" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "pin tidak memiliki kemampuan IRQ" - #: shared-bindings/displayio/Bitmap.c msgid "pixel coordinates out of bounds" msgstr "" @@ -2482,7 +2254,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "Muncul dari PulseIn yang kosong" @@ -2536,10 +2307,6 @@ msgstr "anotasi return harus sebuah identifier" msgid "return expected '%q' but got '%q'" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2554,10 +2321,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "nilai sampling keluar dari jangkauan" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "scan gagal" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2765,10 +2528,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "konfigurasi param tidak diketahui" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2789,10 +2548,6 @@ msgstr "" msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "status param tidak diketahui" - #: py/compile.c msgid "unknown type" msgstr "tipe tidak diketahui" @@ -2809,6 +2564,10 @@ msgstr "" msgid "unreadable attribute" msgstr "" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2819,10 +2578,6 @@ msgstr "" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2840,9 +2595,9 @@ msgstr "" msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() gagal" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" @@ -2871,3 +2626,176 @@ msgstr "" #: py/objrange.c msgid "zero step" msgstr "" + +#~ msgid "AP required" +#~ msgstr "AP dibutuhkan" + +#~ msgid "C-level assert" +#~ msgstr "Dukungan C-level" + +#~ msgid "Cannot connect to AP" +#~ msgstr "Tidak dapat menyambungkan ke AP" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "Tidak dapat memutuskna dari AP" + +#~ msgid "Cannot set STA config" +#~ msgstr "Tidak dapat mengatur konfigurasi STA" + +#~ msgid "Cannot update i/f status" +#~ msgstr "Tidak dapat memperbarui status i/f" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "Tidak tahu cara meloloskan objek ke fungsi native" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "ESP8266 tidak mendukung safe mode" + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "ESP866 tidak mendukung pull down" + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Errod pada ffi_prep_cif" + +#, fuzzy +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "Gagal untuk melaporkan nilai atribut, status: 0x%08lX" + +#, fuzzy +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX" + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "GPIO16 tidak mendukung pull up" + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "Nilai maksimum frekuensi PWM adalah %dhz" + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "Nilai minimum frekuensi PWM is 1hz" + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "" +#~ "Nilai Frekuensi PWM ganda tidak didukung. PWM sudah diatur pada %dhz" + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Tidak ada dukungan PulseIn untuk %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Tidak dukungan hardware untuk analog out." + +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "Hanya tx yang mendukung pada UART1 (GPIO2)." + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "PWM tidak didukung pada pin %d" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "Pin %q tidak memiliki kemampuan ADC" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Pin(16) tidak mendukung pull" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Pin-pin tidak valid untuk SPI" + +#~ msgid "STA must be active" +#~ msgstr "STA harus aktif" + +#~ msgid "STA required" +#~ msgstr "STA dibutuhkan" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "UART(%d) tidak ada" + +#~ msgid "UART(1) can't read" +#~ msgstr "UART(1) tidak dapat dibaca" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Tidak dapat memasang filesystem kembali" + +#~ msgid "Unknown type" +#~ msgstr "Tipe tidak diketahui" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "" +#~ "Gunakan esptool untuk menghapus flash dan upload ulang Python sebagai " +#~ "gantinya" + +#~ msgid "[addrinfo error %d]" +#~ msgstr "[addrinfo error %d]" + +#~ msgid "buffer too long" +#~ msgstr "buffer terlalu panjang" + +#~ msgid "can query only one param" +#~ msgstr "hanya bisa melakukan query satu param" + +#~ msgid "can't get AP config" +#~ msgstr "tidak bisa mendapatkan konfigurasi AP" + +#~ msgid "can't get STA config" +#~ msgstr "tidak bisa mendapatkan konfigurasi STA" + +#~ msgid "can't set AP config" +#~ msgstr "tidak bisa mendapatkan konfigurasi AP" + +#~ msgid "can't set STA config" +#~ msgstr "tidak bisa mendapatkan konfigurasi STA" + +#~ msgid "either pos or kw args are allowed" +#~ msgstr "hanya antar pos atau kw args yang diperbolehkan" + +#~ msgid "expecting a pin" +#~ msgstr "mengharapkan sebuah pin" + +#~ msgid "ffi_prep_closure_loc" +#~ msgstr "ffi_prep_closure_loc" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "alokasi flash harus dibawah 1MByte" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "frekuensi hanya bisa didefinisikan 80Mhz atau 160Mhz" + +#~ msgid "impossible baudrate" +#~ msgstr "baudrate tidak memungkinkan" + +#~ msgid "invalid alarm" +#~ msgstr "alarm tidak valid" + +#~ msgid "invalid buffer length" +#~ msgstr "panjang buffer tidak valid" + +#~ msgid "invalid data bits" +#~ msgstr "bit data tidak valid" + +#~ msgid "invalid pin" +#~ msgstr "pin tidak valid" + +#~ msgid "invalid stop bits" +#~ msgstr "stop bit tidak valid" + +#~ msgid "len must be multiple of 4" +#~ msgstr "len harus kelipatan dari 4" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "alokasi memori gagal, mengalokasikan %u byte untuk kode native" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "tidak valid channel ADC: %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "pin tidak memiliki kemampuan IRQ" + +#~ msgid "scan failed" +#~ msgstr "scan gagal" + +#~ msgid "unknown config param" +#~ msgstr "konfigurasi param tidak diketahui" + +#~ msgid "unknown status param" +#~ msgstr "status param tidak diketahui" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "wifi_set_ip_info() gagal" diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index cb2183a0d1..d680a125a6 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -217,10 +217,6 @@ msgstr "" msgid "A hardware interrupt channel is already in use" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -344,10 +340,6 @@ msgstr "" msgid "Bytes must be between 0 and 255." msgstr "" -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -369,18 +361,10 @@ msgstr "" msgid "Can't connect in Peripheral mode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -407,14 +391,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "" #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "" @@ -431,10 +410,6 @@ msgstr "" msgid "Cannot unambiguously get sizeof scalar" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "" @@ -522,31 +497,15 @@ msgstr "" msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "" - #: extmod/modure.c msgid "Error in regex" msgstr "" @@ -599,7 +558,6 @@ msgid "Failed to allocate RX buffer" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -640,7 +598,7 @@ msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" +msgid "Failed to notify or indicate attribute value, err 0x%04x" msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c @@ -650,7 +608,7 @@ msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to read attribute value, err %0x04x" +msgid "Failed to read attribute value, err 0x%04x" msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c @@ -738,23 +696,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "" @@ -793,6 +743,10 @@ msgstr "" msgid "Invalid bit clock pin" msgstr "" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "" @@ -903,11 +857,6 @@ msgstr "" msgid "MOSI pin init failed." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -925,15 +874,6 @@ msgstr "" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -947,10 +887,6 @@ msgstr "" msgid "No DMA channel found" msgstr "" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "" @@ -963,16 +899,8 @@ msgstr "" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" msgstr "" #: ports/atmel-samd/common-hal/touchio/TouchIn.c @@ -983,10 +911,6 @@ msgstr "" msgid "No hardware random available" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1004,10 +928,6 @@ msgstr "" msgid "Not connected" msgstr "" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "" @@ -1031,10 +951,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1046,10 +962,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "" - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "" @@ -1064,32 +976,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "" - #: py/moduerrno.c msgid "Permission denied" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1106,11 +1001,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "" -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "" @@ -1150,14 +1045,6 @@ msgstr "" msgid "SDA or SCL needs a pull up" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "" @@ -1273,15 +1160,6 @@ msgstr "" msgid "Tuple or struct_time argument required" msgstr "" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "" @@ -1320,10 +1198,6 @@ msgstr "" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "" @@ -1332,10 +1206,6 @@ msgstr "" msgid "Unexpected nrfx uuid type" msgstr "" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1361,10 +1231,6 @@ msgstr "" msgid "Unsupported pull value." msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "" @@ -1396,11 +1262,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "" -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "" @@ -1422,7 +1283,7 @@ msgstr "" msgid "abort() called" msgstr "" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "" @@ -1516,10 +1377,6 @@ msgstr "" msgid "buffer slices must be of equal length" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1574,10 +1431,6 @@ msgstr "" msgid "can only save bytecode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1649,14 +1502,6 @@ msgstr "" msgid "can't do truncated division of a complex number" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "" - #: py/compile.c msgid "can't have multiple **x" msgstr "" @@ -1685,14 +1530,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "" @@ -1825,10 +1662,6 @@ msgstr "" msgid "division by zero" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "" - #: py/objdeque.c msgid "empty" msgstr "" @@ -1878,10 +1711,6 @@ msgstr "" msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "" @@ -1902,10 +1731,6 @@ msgstr "" msgid "extra positional arguments given" msgstr "" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "" @@ -1922,10 +1747,6 @@ msgstr "" msgid "firstbit must be MSB" msgstr "" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "" - #: py/objint.c msgid "float too big" msgstr "" @@ -1938,10 +1759,6 @@ msgstr "" msgid "format requires a dict" msgstr "" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "" - #: py/objdeque.c msgid "full" msgstr "" @@ -2010,10 +1827,6 @@ msgstr "" msgid "identifier redefined as nonlocal" msgstr "" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "" - #: py/objstr.c msgid "incomplete format" msgstr "" @@ -2027,7 +1840,6 @@ msgid "incorrect padding" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "" @@ -2060,26 +1872,14 @@ msgstr "" msgid "invalid SPI peripheral" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "" @@ -2100,18 +1900,10 @@ msgstr "" msgid "invalid micropython decorator" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "" @@ -2157,10 +1949,6 @@ msgstr "" msgid "label redefined" msgstr "" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "" @@ -2202,11 +1990,6 @@ msgstr "" msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "" @@ -2312,11 +2095,6 @@ msgstr "" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2417,10 +2195,6 @@ msgstr "" msgid "parameters must be registers in sequence r0 to r3" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "" - #: shared-bindings/displayio/Bitmap.c msgid "pixel coordinates out of bounds" msgstr "" @@ -2434,7 +2208,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "" @@ -2488,10 +2261,6 @@ msgstr "" msgid "return expected '%q' but got '%q'" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2506,10 +2275,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2716,10 +2481,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2740,10 +2501,6 @@ msgstr "" msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "" - #: py/compile.c msgid "unknown type" msgstr "" @@ -2760,6 +2517,10 @@ msgstr "" msgid "unreadable attribute" msgstr "" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2770,10 +2531,6 @@ msgstr "" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2791,8 +2548,8 @@ msgstr "" msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c diff --git a/locale/de_DE.po b/locale/de_DE.po index 4d1278da12..f2b66ce5d4 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: Pascal Deneaux\n" "Language-Team: Sebastian Plamauer, Pascal Deneaux\n" @@ -219,10 +219,6 @@ msgstr "3-arg pow() wird nicht unterstützt" msgid "A hardware interrupt channel is already in use" msgstr "Ein Hardware Interrupt Kanal wird schon benutzt" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "AP erforderlich" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -348,10 +344,6 @@ msgstr "Der Puffer muss 16 Bytes lang sein" msgid "Bytes must be between 0 and 255." msgstr "Ein Bytes kann nur Werte zwischen 0 und 255 annehmen." -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "C-Level Assert" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -373,18 +365,10 @@ msgstr "Im Central mode kann name nicht geändert werden" msgid "Can't connect in Peripheral mode" msgstr "Im Peripheral mode kann keine Verbindung hergestellt werden" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "Kann nicht zu AP verbinden" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "Kann Werte nicht löschen" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "Kann nicht trennen von AP" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -411,14 +395,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "Kann '/' nicht remounten when USB aktiv ist" #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "Reset zum bootloader nicht möglich da bootloader nicht vorhanden" -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "Kann STA Konfiguration nicht setzen" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "Der Wert kann nicht gesetzt werden, wenn die Richtung input ist." @@ -435,10 +414,6 @@ msgstr "Übertragung ohne MOSI- und MISO-Pins nicht möglich." msgid "Cannot unambiguously get sizeof scalar" msgstr "sizeof scalar kann nicht eindeutig bestimmt werden" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "Kann i/f Status nicht updaten" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "Kann nicht ohne MOSI-Pin schreiben." @@ -526,32 +501,15 @@ msgstr "Die Zielkapazität ist kleiner als destination_length." msgid "Display rotation must be in 90 degree increments" msgstr "Die Rotation der Anzeige muss in 90-Grad-Schritten erfolgen" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "" -"Ich weiß nicht, wie man das Objekt an die native Funktion übergeben kann" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "Drive mode wird nicht verwendet, wenn die Richtung input ist." -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "ESP8226 hat keinen Sicherheitsmodus" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "ESP8266 unterstützt pull down nicht" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "EXTINT Kanal ist schon in Benutzung" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Fehler in ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "Fehler in regex" @@ -604,7 +562,6 @@ msgid "Failed to allocate RX buffer" msgstr "Konnte keinen RX Buffer allozieren" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -645,8 +602,8 @@ msgstr "Fehler beim Abrufen des Softdevice-Status" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "Kann den Attributwert nicht mitteilen. Status: 0x%04x" +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format @@ -655,8 +612,8 @@ msgstr "Kann CCCD value nicht lesen. Status: 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "Kann den Attributwert nicht lesen. Status: 0x%04x" +msgid "Failed to read attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format @@ -743,23 +700,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "GPIO16 unterstützt pull up nicht" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "Gruppe voll" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "Lese/Schreibe-operation an geschlossener Datei" @@ -800,6 +749,10 @@ msgstr "Ungültiges Argument" msgid "Invalid bit clock pin" msgstr "Ungültiges bit clock pin" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "Ungültige Puffergröße" @@ -914,11 +867,6 @@ msgstr "MISO pin Initialisierung fehlgeschlagen" msgid "MOSI pin init failed." msgstr "MOSI pin Initialisierung fehlgeschlagen" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "Maximale PWM Frequenz ist %dHz" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -939,17 +887,6 @@ msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" "Die Startverzögerung des Mikrofons muss im Bereich von 0,0 bis 1,0 liegen" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "Minimale PWM Frequenz ist %dHz" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" -"Mehrere PWM Frequenzen werden nicht unterstützt. PWM wurde bereits auf %dHz " -"gesetzt." - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -963,10 +900,6 @@ msgstr "Kein DAC im Chip vorhanden" msgid "No DMA channel found" msgstr "Kein DMA Kanal gefunden" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Keine PulseIn Unterstützung für %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Kein RX Pin" @@ -979,17 +912,9 @@ msgstr "Kein TX Pin" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Kein Standard I2C Bus" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Kein Standard SPI Bus" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Kein Standard UART Bus" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Kein Standard %q Bus" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -999,10 +924,6 @@ msgstr "Keine freien GCLKs" msgid "No hardware random available" msgstr "Kein hardware random verfügbar" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Keine Hardwareunterstützung für analog out" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1020,10 +941,6 @@ msgstr "Keine solche Datei/Verzeichnis" msgid "Not connected" msgstr "Nicht verbunden" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "Nicht verbunden." - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "Spielt nicht" @@ -1049,11 +966,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "" -"Es werden nur Bitmaps mit einer Farbtiefe von 8 Bit oder weniger unterstützt" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1065,10 +977,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "UART1 (GPIO2) unterstützt nur tx" - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "Oversample muss ein Vielfaches von 8 sein." @@ -1083,32 +991,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "Die PWM-Frequenz ist nicht schreibbar wenn variable_Frequenz = False." -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "PWM nicht unterstützt an Pin %d" - #: py/moduerrno.c msgid "Permission denied" msgstr "Zugang verweigert" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "Pin %q hat keine ADC Funktion" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "Pin hat keine ADC Funktionalität" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Pin(16) unterstützt kein pull" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Pins nicht gültig für SPI" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "Pixel außerhalb der Puffergrenzen" @@ -1127,11 +1018,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "Pull wird nicht verwendet, wenn die Richtung output ist." -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "Die RTC-Kalibrierung wird auf diesem Board nicht unterstützt" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "Eine RTC wird auf diesem Board nicht unterstützt" @@ -1171,14 +1062,6 @@ msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n" msgid "SDA or SCL needs a pull up" msgstr "SDA oder SCL brauchen pull up" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "STA muss aktiv sein" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "STA erforderlich" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "Abtastrate muss positiv sein" @@ -1306,15 +1189,6 @@ msgstr "Zurückverfolgung (jüngste Aufforderung zuletzt):\n" msgid "Tuple or struct_time argument required" msgstr "Tuple- oder struct_time-Argument erforderlich" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) existiert nicht" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "UART(1) kann nicht lesen" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "USB beschäftigt" @@ -1353,10 +1227,6 @@ msgstr "Parser konnte nicht gestartet werden" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Dateisystem konnte nicht wieder eingebunden werden." - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "Schreiben in nvm nicht möglich." @@ -1365,10 +1235,6 @@ msgstr "Schreiben in nvm nicht möglich." msgid "Unexpected nrfx uuid type" msgstr "Unerwarteter nrfx uuid-Typ" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Unbekannter Typ" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1396,11 +1262,6 @@ msgstr "Nicht unterstützte Operation" msgid "Unsupported pull value." msgstr "Nicht unterstützter Pull-Wert" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" -"Benutze das esptool um den flash zu löschen und Python erneut hochzuladen" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "Viper-Funktionen unterstützen derzeit nicht mehr als 4 Argumente" @@ -1441,11 +1302,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "Du hast das Starten im Sicherheitsmodus ausgelöst durch " -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "__init__() sollte None zurückgeben" @@ -1467,7 +1323,7 @@ msgstr "ein Byte-ähnliches Objekt ist erforderlich" msgid "abort() called" msgstr "abort() wurde aufgerufen" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "Addresse %08x ist nicht an %d bytes ausgerichtet" @@ -1561,10 +1417,6 @@ msgstr "Die Puffergröße muss zum Format passen" msgid "buffer slices must be of equal length" msgstr "Puffersegmente müssen gleich lang sein" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "Buffer zu lang" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1619,10 +1471,6 @@ msgstr "kann nur bis zu 4 Parameter für die Xtensa assembly haben" msgid "can only save bytecode" msgstr "kann nur Bytecode speichern" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1694,14 +1542,6 @@ msgstr "Eine binäre Operation zwischen '%q' und '%q' ist nicht möglich" msgid "can't do truncated division of a complex number" msgstr "kann mit einer komplexen Zahl keine abgeschnittene Division ausführen" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "" - #: py/compile.c msgid "can't have multiple **x" msgstr "mehrere **x sind nicht gestattet" @@ -1730,14 +1570,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "" @@ -1870,10 +1702,6 @@ msgstr "" msgid "division by zero" msgstr "Division durch Null" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "" - #: py/objdeque.c msgid "empty" msgstr "leer" @@ -1923,10 +1751,6 @@ msgstr "erwarte tuple/list" msgid "expecting a dict for keyword args" msgstr "erwarte ein dict als Keyword-Argumente" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "Ein Pin wird erwartet" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "erwartet eine Assembler-Anweisung" @@ -1947,10 +1771,6 @@ msgstr "Es wurden zusätzliche Keyword-Argumente angegeben" msgid "extra positional arguments given" msgstr "Es wurden zusätzliche Argumente ohne Keyword angegeben" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "ffi_prep_closure_loc" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein" @@ -1967,10 +1787,6 @@ msgstr "Das erste Argument für super() muss type sein" msgid "firstbit must be MSB" msgstr "Erstes Bit muss das höchstwertigste Bit (MSB) sein" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "flash location muss unter 1MByte sein" - #: py/objint.c msgid "float too big" msgstr "float zu groß" @@ -1983,10 +1799,6 @@ msgstr "Die Schriftart (font) muss 2048 Byte lang sein" msgid "format requires a dict" msgstr "" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "Die Frequenz kann nur 80Mhz oder 160Mhz sein" - #: py/objdeque.c msgid "full" msgstr "voll" @@ -2056,10 +1868,6 @@ msgstr "Bezeichner als global neu definiert" msgid "identifier redefined as nonlocal" msgstr "Bezeichner als nonlocal definiert" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "Unmögliche Baudrate" - #: py/objstr.c msgid "incomplete format" msgstr "unvollständiges Format" @@ -2073,7 +1881,6 @@ msgid "incorrect padding" msgstr "padding ist inkorrekt" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index außerhalb der Reichweite" @@ -2106,26 +1913,14 @@ msgstr "ungültige I2C Schnittstelle" msgid "invalid SPI peripheral" msgstr "ungültige SPI Schnittstelle" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "ungültiger Alarm" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "ungültige argumente" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "ungültige Pufferlänge" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "ungültiges cert" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "ungültige Datenbits" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "ungültiger dupterm index" @@ -2146,18 +1941,10 @@ msgstr "ungültiger Schlüssel" msgid "invalid micropython decorator" msgstr "ungültiger micropython decorator" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "ungültiger Pin" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "ungültiger Schritt (step)" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "ungültige Stopbits" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "ungültige Syntax" @@ -2207,10 +1994,6 @@ msgstr "Label '%q' nicht definiert" msgid "label redefined" msgstr "Label neu definiert" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "len muss ein vielfaches von 4 sein" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "Für diesen Typ ist length nicht zulässig" @@ -2254,12 +2037,6 @@ msgstr "maximale Rekursionstiefe überschritten" msgid "memory allocation failed, allocating %u bytes" msgstr "Speicherzuordnung fehlgeschlagen, Zuweisung von %u Bytes" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" -"Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "Speicherzuweisung fehlgeschlagen, der Heap ist gesperrt" @@ -2365,11 +2142,6 @@ msgstr "" msgid "not a 128-bit UUID" msgstr "keine 128-bit UUID" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "Kein gültiger ADC Kanal: %d" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2472,10 +2244,6 @@ msgstr "Die Parameter müssen Register der Reihenfolge a2 bis a5 sein" msgid "parameters must be registers in sequence r0 to r3" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "Pin hat keine IRQ Fähigkeiten" - #: shared-bindings/displayio/Bitmap.c msgid "pixel coordinates out of bounds" msgstr "Pixelkoordinaten außerhalb der Grenzen" @@ -2489,7 +2257,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "pixel_shader muss displayio.Palette oder displayio.ColorConverter sein" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "pop von einem leeren PulseIn" @@ -2543,10 +2310,6 @@ msgstr "return annotation muss ein identifier sein" msgid "return expected '%q' but got '%q'" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2563,10 +2326,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "Abtastrate außerhalb der Reichweite" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "Scan fehlgeschlagen" - #: py/modmicropython.c msgid "schedule stack full" msgstr "Der schedule stack ist voll" @@ -2778,10 +2537,6 @@ msgstr "" "Einrückung entspricht keiner äußeren Einrückungsebene. Bitte Leerzeichen am " "Zeilenanfang kontrollieren!" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2802,10 +2557,6 @@ msgstr "" msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "Unbekannter Statusparameter" - #: py/compile.c msgid "unknown type" msgstr "unbekannter Typ" @@ -2822,6 +2573,10 @@ msgstr "" msgid "unreadable attribute" msgstr "nicht lesbares Attribut" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "Nicht unterstützter %q-Typ" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2832,10 +2587,6 @@ msgstr "nicht unterstützter Thumb-Befehl '%s' mit %d Argumenten" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "Nicht unterstützter Bitmap-Typ" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2853,9 +2604,9 @@ msgstr "nicht unterstützter Typ für Operator" msgid "unsupported types for %q: '%s', '%s'" msgstr "nicht unterstützte Typen für %q: '%s', '%s'" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() fehlgeschlagen" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" @@ -2885,5 +2636,166 @@ msgstr "y Wert außerhalb der Grenzen" msgid "zero step" msgstr "" +#~ msgid "AP required" +#~ msgstr "AP erforderlich" + +#~ msgid "C-level assert" +#~ msgstr "C-Level Assert" + +#~ msgid "Cannot connect to AP" +#~ msgstr "Kann nicht zu AP verbinden" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "Kann nicht trennen von AP" + +#~ msgid "Cannot set STA config" +#~ msgstr "Kann STA Konfiguration nicht setzen" + +#~ msgid "Cannot update i/f status" +#~ msgstr "Kann i/f Status nicht updaten" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "" +#~ "Ich weiß nicht, wie man das Objekt an die native Funktion übergeben kann" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "ESP8226 hat keinen Sicherheitsmodus" + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "ESP8266 unterstützt pull down nicht" + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Fehler in ffi_prep_cif" + +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "Kann den Attributwert nicht mitteilen. Status: 0x%04x" + +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "Kann den Attributwert nicht lesen. Status: 0x%04x" + +#~ msgid "Function requires lock." +#~ msgstr "" +#~ "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde" + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "GPIO16 unterstützt pull up nicht" + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "Maximale PWM Frequenz ist %dHz" + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "Minimale PWM Frequenz ist %dHz" + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "" +#~ "Mehrere PWM Frequenzen werden nicht unterstützt. PWM wurde bereits auf " +#~ "%dHz gesetzt." + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Keine PulseIn Unterstützung für %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Keine Hardwareunterstützung für analog out" + +#~ msgid "Not connected." +#~ msgstr "Nicht verbunden." + #~ msgid "Only Windows format, uncompressed BMP supported %d" #~ msgstr "Nur unkomprimiertes Windows-Format (BMP) unterstützt %d" + +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "" +#~ "Es werden nur Bitmaps mit einer Farbtiefe von 8 Bit oder weniger " +#~ "unterstützt" + +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "UART1 (GPIO2) unterstützt nur tx" + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "PWM nicht unterstützt an Pin %d" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "Pin %q hat keine ADC Funktion" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Pin(16) unterstützt kein pull" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Pins nicht gültig für SPI" + +#~ msgid "STA must be active" +#~ msgstr "STA muss aktiv sein" + +#~ msgid "STA required" +#~ msgstr "STA erforderlich" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "UART(%d) existiert nicht" + +#~ msgid "UART(1) can't read" +#~ msgstr "UART(1) kann nicht lesen" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Dateisystem konnte nicht wieder eingebunden werden." + +#~ msgid "Unknown type" +#~ msgstr "Unbekannter Typ" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "" +#~ "Benutze das esptool um den flash zu löschen und Python erneut hochzuladen" + +#~ msgid "buffer too long" +#~ msgstr "Buffer zu lang" + +#~ msgid "expecting a pin" +#~ msgstr "Ein Pin wird erwartet" + +#~ msgid "ffi_prep_closure_loc" +#~ msgstr "ffi_prep_closure_loc" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "flash location muss unter 1MByte sein" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "Die Frequenz kann nur 80Mhz oder 160Mhz sein" + +#~ msgid "impossible baudrate" +#~ msgstr "Unmögliche Baudrate" + +#~ msgid "invalid alarm" +#~ msgstr "ungültiger Alarm" + +#~ msgid "invalid buffer length" +#~ msgstr "ungültige Pufferlänge" + +#~ msgid "invalid data bits" +#~ msgstr "ungültige Datenbits" + +#~ msgid "invalid pin" +#~ msgstr "ungültiger Pin" + +#~ msgid "invalid stop bits" +#~ msgstr "ungültige Stopbits" + +#~ msgid "len must be multiple of 4" +#~ msgstr "len muss ein vielfaches von 4 sein" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "" +#~ "Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "Kein gültiger ADC Kanal: %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "Pin hat keine IRQ Fähigkeiten" + +#~ msgid "scan failed" +#~ msgstr "Scan fehlgeschlagen" + +#~ msgid "unknown status param" +#~ msgstr "Unbekannter Statusparameter" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "wifi_set_ip_info() fehlgeschlagen" diff --git a/locale/en_US.po b/locale/en_US.po index 3cb21287bc..fe75e4f5f7 100644 --- a/locale/en_US.po +++ b/locale/en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -217,10 +217,6 @@ msgstr "" msgid "A hardware interrupt channel is already in use" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -344,10 +340,6 @@ msgstr "" msgid "Bytes must be between 0 and 255." msgstr "" -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -369,18 +361,10 @@ msgstr "" msgid "Can't connect in Peripheral mode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -407,14 +391,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "" #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "" @@ -431,10 +410,6 @@ msgstr "" msgid "Cannot unambiguously get sizeof scalar" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "" @@ -522,31 +497,15 @@ msgstr "" msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "" - #: extmod/modure.c msgid "Error in regex" msgstr "" @@ -599,7 +558,6 @@ msgid "Failed to allocate RX buffer" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -640,7 +598,7 @@ msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" +msgid "Failed to notify or indicate attribute value, err 0x%04x" msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c @@ -650,7 +608,7 @@ msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to read attribute value, err %0x04x" +msgid "Failed to read attribute value, err 0x%04x" msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c @@ -738,23 +696,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "" @@ -793,6 +743,10 @@ msgstr "" msgid "Invalid bit clock pin" msgstr "" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "" @@ -903,11 +857,6 @@ msgstr "" msgid "MOSI pin init failed." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -925,15 +874,6 @@ msgstr "" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -947,10 +887,6 @@ msgstr "" msgid "No DMA channel found" msgstr "" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "" @@ -963,16 +899,8 @@ msgstr "" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" msgstr "" #: ports/atmel-samd/common-hal/touchio/TouchIn.c @@ -983,10 +911,6 @@ msgstr "" msgid "No hardware random available" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1004,10 +928,6 @@ msgstr "" msgid "Not connected" msgstr "" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "" @@ -1031,10 +951,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1046,10 +962,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "" - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "" @@ -1064,32 +976,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "" - #: py/moduerrno.c msgid "Permission denied" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1106,11 +1001,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "" -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "" @@ -1150,14 +1045,6 @@ msgstr "" msgid "SDA or SCL needs a pull up" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "" @@ -1273,15 +1160,6 @@ msgstr "" msgid "Tuple or struct_time argument required" msgstr "" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "" @@ -1320,10 +1198,6 @@ msgstr "" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "" @@ -1332,10 +1206,6 @@ msgstr "" msgid "Unexpected nrfx uuid type" msgstr "" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1361,10 +1231,6 @@ msgstr "" msgid "Unsupported pull value." msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "" @@ -1396,11 +1262,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "" -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "" @@ -1422,7 +1283,7 @@ msgstr "" msgid "abort() called" msgstr "" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "" @@ -1516,10 +1377,6 @@ msgstr "" msgid "buffer slices must be of equal length" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1574,10 +1431,6 @@ msgstr "" msgid "can only save bytecode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1649,14 +1502,6 @@ msgstr "" msgid "can't do truncated division of a complex number" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "" - #: py/compile.c msgid "can't have multiple **x" msgstr "" @@ -1685,14 +1530,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "" @@ -1825,10 +1662,6 @@ msgstr "" msgid "division by zero" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "" - #: py/objdeque.c msgid "empty" msgstr "" @@ -1878,10 +1711,6 @@ msgstr "" msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "" @@ -1902,10 +1731,6 @@ msgstr "" msgid "extra positional arguments given" msgstr "" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "" @@ -1922,10 +1747,6 @@ msgstr "" msgid "firstbit must be MSB" msgstr "" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "" - #: py/objint.c msgid "float too big" msgstr "" @@ -1938,10 +1759,6 @@ msgstr "" msgid "format requires a dict" msgstr "" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "" - #: py/objdeque.c msgid "full" msgstr "" @@ -2010,10 +1827,6 @@ msgstr "" msgid "identifier redefined as nonlocal" msgstr "" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "" - #: py/objstr.c msgid "incomplete format" msgstr "" @@ -2027,7 +1840,6 @@ msgid "incorrect padding" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "" @@ -2060,26 +1872,14 @@ msgstr "" msgid "invalid SPI peripheral" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "" @@ -2100,18 +1900,10 @@ msgstr "" msgid "invalid micropython decorator" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "" @@ -2157,10 +1949,6 @@ msgstr "" msgid "label redefined" msgstr "" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "" @@ -2202,11 +1990,6 @@ msgstr "" msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "" @@ -2312,11 +2095,6 @@ msgstr "" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2417,10 +2195,6 @@ msgstr "" msgid "parameters must be registers in sequence r0 to r3" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "" - #: shared-bindings/displayio/Bitmap.c msgid "pixel coordinates out of bounds" msgstr "" @@ -2434,7 +2208,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "" @@ -2488,10 +2261,6 @@ msgstr "" msgid "return expected '%q' but got '%q'" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2506,10 +2275,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2716,10 +2481,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2740,10 +2501,6 @@ msgstr "" msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "" - #: py/compile.c msgid "unknown type" msgstr "" @@ -2760,6 +2517,10 @@ msgstr "" msgid "unreadable attribute" msgstr "" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2770,10 +2531,6 @@ msgstr "" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2791,8 +2548,8 @@ msgstr "" msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c diff --git a/locale/en_x_pirate.po b/locale/en_x_pirate.po index 97683883dc..4bfdc644ec 100644 --- a/locale/en_x_pirate.po +++ b/locale/en_x_pirate.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: @sommersoft, @MrCertainly\n" @@ -219,10 +219,6 @@ msgstr "" msgid "A hardware interrupt channel is already in use" msgstr "Avast! A hardware interrupt channel be used already" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -348,10 +344,6 @@ msgstr "" msgid "Bytes must be between 0 and 255." msgstr "" -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -373,18 +365,10 @@ msgstr "" msgid "Can't connect in Peripheral mode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -411,14 +395,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "" #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "" @@ -435,10 +414,6 @@ msgstr "" msgid "Cannot unambiguously get sizeof scalar" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "" @@ -526,31 +501,15 @@ msgstr "" msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "Avast! EXTINT channel already in use" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "" - #: extmod/modure.c msgid "Error in regex" msgstr "" @@ -603,7 +562,6 @@ msgid "Failed to allocate RX buffer" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -644,7 +602,7 @@ msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" +msgid "Failed to notify or indicate attribute value, err 0x%04x" msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c @@ -654,7 +612,7 @@ msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, c-format -msgid "Failed to read attribute value, err %0x04x" +msgid "Failed to read attribute value, err 0x%04x" msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c @@ -742,23 +700,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "" @@ -797,6 +747,10 @@ msgstr "" msgid "Invalid bit clock pin" msgstr "" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "" @@ -907,11 +861,6 @@ msgstr "" msgid "MOSI pin init failed." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -929,15 +878,6 @@ msgstr "" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -951,10 +891,6 @@ msgstr "Shiver me timbers! There be no DAC on this chip" msgid "No DMA channel found" msgstr "" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "" @@ -967,16 +903,8 @@ msgstr "" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" msgstr "" #: ports/atmel-samd/common-hal/touchio/TouchIn.c @@ -987,10 +915,6 @@ msgstr "" msgid "No hardware random available" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1008,10 +932,6 @@ msgstr "" msgid "Not connected" msgstr "" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "" @@ -1035,10 +955,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1050,10 +966,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "" - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "" @@ -1068,32 +980,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "" - #: py/moduerrno.c msgid "Permission denied" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "Belay that! Th' Pin be not ADC capable" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1110,11 +1005,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "" -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "" @@ -1154,14 +1049,6 @@ msgstr "Runnin' in safe mode! Nay runnin' saved code.\n" msgid "SDA or SCL needs a pull up" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "" @@ -1277,15 +1164,6 @@ msgstr "" msgid "Tuple or struct_time argument required" msgstr "" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "" @@ -1324,10 +1202,6 @@ msgstr "" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "" @@ -1336,10 +1210,6 @@ msgstr "" msgid "Unexpected nrfx uuid type" msgstr "" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1365,10 +1235,6 @@ msgstr "" msgid "Unsupported pull value." msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "" @@ -1400,11 +1266,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "" -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "" @@ -1426,7 +1287,7 @@ msgstr "" msgid "abort() called" msgstr "" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "" @@ -1520,10 +1381,6 @@ msgstr "" msgid "buffer slices must be of equal length" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1578,10 +1435,6 @@ msgstr "" msgid "can only save bytecode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1653,14 +1506,6 @@ msgstr "" msgid "can't do truncated division of a complex number" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "" - #: py/compile.c msgid "can't have multiple **x" msgstr "" @@ -1689,14 +1534,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "" @@ -1829,10 +1666,6 @@ msgstr "" msgid "division by zero" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "" - #: py/objdeque.c msgid "empty" msgstr "" @@ -1882,10 +1715,6 @@ msgstr "" msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "" @@ -1906,10 +1735,6 @@ msgstr "" msgid "extra positional arguments given" msgstr "" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "" @@ -1926,10 +1751,6 @@ msgstr "" msgid "firstbit must be MSB" msgstr "" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "" - #: py/objint.c msgid "float too big" msgstr "" @@ -1942,10 +1763,6 @@ msgstr "" msgid "format requires a dict" msgstr "" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "" - #: py/objdeque.c msgid "full" msgstr "" @@ -2014,10 +1831,6 @@ msgstr "" msgid "identifier redefined as nonlocal" msgstr "" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "" - #: py/objstr.c msgid "incomplete format" msgstr "" @@ -2031,7 +1844,6 @@ msgid "incorrect padding" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "" @@ -2064,26 +1876,14 @@ msgstr "Belay that! I2C peripheral be invalid" msgid "invalid SPI peripheral" msgstr "Arr! SPI peripheral be invalid" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "" @@ -2104,18 +1904,10 @@ msgstr "" msgid "invalid micropython decorator" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "" @@ -2161,10 +1953,6 @@ msgstr "" msgid "label redefined" msgstr "" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "" @@ -2206,11 +1994,6 @@ msgstr "" msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "" @@ -2316,11 +2099,6 @@ msgstr "" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2421,10 +2199,6 @@ msgstr "" msgid "parameters must be registers in sequence r0 to r3" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "" - #: shared-bindings/displayio/Bitmap.c msgid "pixel coordinates out of bounds" msgstr "" @@ -2438,7 +2212,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "" @@ -2492,10 +2265,6 @@ msgstr "" msgid "return expected '%q' but got '%q'" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2510,10 +2279,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2720,10 +2485,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2744,10 +2505,6 @@ msgstr "" msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "" - #: py/compile.c msgid "unknown type" msgstr "" @@ -2764,6 +2521,10 @@ msgstr "" msgid "unreadable attribute" msgstr "" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2774,10 +2535,6 @@ msgstr "" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2795,8 +2552,8 @@ msgstr "" msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c diff --git a/locale/es.po b/locale/es.po index 8ee9eda359..6b84a4821f 100644 --- a/locale/es.po +++ b/locale/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-08-24 22:56-0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -23,6 +23,8 @@ msgid "" "\n" "Code done running. Waiting for reload.\n" msgstr "" +"\n" +"Código en ejecución. Esperando para recargar.\n" #: py/obj.c msgid " File \"%q\"" @@ -47,7 +49,7 @@ msgstr "%q está siendo utilizado" #: py/obj.c msgid "%q index out of range" -msgstr "%w indice fuera de rango" +msgstr "%q indice fuera de rango" #: py/obj.c msgid "%q indices must be integers, not %s" @@ -57,12 +59,12 @@ msgstr "%q indices deben ser enteros, no %s" #: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c #, fuzzy msgid "%q must be >= 1" -msgstr "los buffers deben de tener la misma longitud" +msgstr "%q debe ser >= 1" #: shared-bindings/fontio/BuiltinFont.c #, fuzzy msgid "%q should be an int" -msgstr "y deberia ser un int" +msgstr "%q deberia ser un int" #: py/bc.c py/objnamedtuple.c msgid "%q() takes %d positional arguments but %d were given" @@ -85,7 +87,7 @@ msgstr "'%s' espera un registro" #: py/emitinlinethumb.c #, c-format msgid "'%s' expects a special register" -msgstr "ord espera un carácter" +msgstr "'%s' espera un carácter" #: py/emitinlinethumb.c #, c-format @@ -221,10 +223,6 @@ msgstr "pow() con 3 argumentos no soportado" msgid "A hardware interrupt channel is already in use" msgstr "El canal EXTINT ya está siendo utilizado" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "AP requerido" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -354,10 +352,6 @@ msgstr "buffer debe de ser un objeto bytes-like" msgid "Bytes must be between 0 and 255." msgstr "Bytes debe estar entre 0 y 255." -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -379,18 +373,10 @@ msgstr "No se puede cambiar el nombre en modo Central" msgid "Can't connect in Peripheral mode" msgstr "No se puede conectar en modo Peripheral" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "No se puede conectar a AP" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "No se puede eliminar valores" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "No se puede desconectar de AP" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -418,14 +404,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "No se puede volver a montar '/' cuando el USB esta activo." #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "No se puede reiniciar a bootloader porque no hay bootloader presente." -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "No se puede establecer STA config" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "No se puede asignar un valor cuando la dirección es input." @@ -442,10 +423,6 @@ msgstr "No se puede transferir sin pines MOSI y MISO." msgid "Cannot unambiguously get sizeof scalar" msgstr "No se puede obtener inequívocamente sizeof escalar" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "No se puede actualizar i/f status" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "No se puede escribir sin pin MOSI." @@ -535,33 +512,17 @@ msgstr "Capacidad de destino es mas pequeña que destination_length." #: shared-bindings/displayio/Display.c msgid "Display rotation must be in 90 degree increments" -msgstr "" - -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "No se sabe cómo pasar objeto a función nativa" +msgstr "Rotación de display debe ser en incrementos de 90 grados" #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "Modo Drive no se usa cuando la dirección es input." -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "ESP8226 no soporta modo seguro." - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "ESP8266 no soporta pull down." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "El canal EXTINT ya está siendo utilizado" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Error en ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "Error en regex" @@ -586,7 +547,7 @@ msgstr "Se espera un %q" #: shared-module/_pixelbuf/PixelBuf.c #, c-format msgid "Expected tuple of length %d, got %d" -msgstr "" +msgstr "Se esperaba un tuple de %d, se obtuvo %d" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy @@ -618,7 +579,6 @@ msgid "Failed to allocate RX buffer" msgstr "Ha fallado la asignación del buffer RX" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -665,9 +625,9 @@ msgid "Failed to get softdevice state" msgstr "No se puede obtener el estado del softdevice, error: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "No se puede notificar el valor del anuncio. status: 0x%02x" +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "Error al notificar o indicar el valor del atributo, err 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -675,9 +635,9 @@ msgid "Failed to read CCCD value, err 0x%04x" msgstr "No se puede leer el valor del atributo. status 0x%02x" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "No se puede leer el valor del atributo. status 0x%02x" +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "Error al leer valor del atributo, err 0x%04" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -747,44 +707,36 @@ msgstr "El archivo ya existe" #: ports/nrf/supervisor/internal_flash.c msgid "Flash erase failed" -msgstr "" +msgstr "Falló borrado de flash" #: ports/nrf/supervisor/internal_flash.c #, c-format msgid "Flash erase failed to start, err 0x%04x" -msgstr "" +msgstr "Falló el iniciar borrado de flash, err 0x%04x" #: ports/nrf/supervisor/internal_flash.c msgid "Flash write failed" -msgstr "" +msgstr "Falló la escritura" #: ports/nrf/supervisor/internal_flash.c #, c-format msgid "Flash write failed to start, err 0x%04x" -msgstr "" +msgstr "Falló el iniciar la escritura de flash, err 0x%04x" #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c msgid "Frequency captured is above capability. Capture Paused." -msgstr "" +msgstr "Frecuencia capturada por encima de la capacidad. Captura en pausa." #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "La función requiere lock" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "La función requiere lock" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "GPIO16 no soporta pull up." - #: shared-module/displayio/Group.c msgid "Group full" msgstr "Group lleno" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "Operación I/O en archivo cerrado" @@ -802,7 +754,7 @@ msgstr "" #: shared-bindings/_pew/PewPew.c msgid "Incorrect buffer size" -msgstr "" +msgstr "Tamaño incorrecto del buffer" #: py/moduerrno.c msgid "Input/output error" @@ -825,6 +777,10 @@ msgstr "Argumento inválido" msgid "Invalid bit clock pin" msgstr "Pin bit clock inválido" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "Tamaño de buffer inválido" @@ -910,7 +866,7 @@ msgstr "LHS del agumento por palabra clave deberia ser un identificador" #: shared-module/displayio/Group.c msgid "Layer must be a Group or TileGrid subclass." -msgstr "" +msgstr "Layer debe ser una subclase de Group o TileGrid." #: py/objslice.c msgid "Length must be an int" @@ -939,15 +895,10 @@ msgstr "MISO pin init fallido." msgid "MOSI pin init failed." msgstr "MOSI pin init fallido." -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "La frecuencia máxima del PWM es %dhz." - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" -msgstr "" +msgstr "Valor máximo de x cuando se refleja es %d" #: supervisor/shared/safe_mode.c msgid "MicroPython NLR jump failed. Likely memory corruption.\n" @@ -955,25 +906,15 @@ msgstr "" #: supervisor/shared/safe_mode.c msgid "MicroPython fatal error.\n" -msgstr "" +msgstr "Error fatal de MicroPython.\n" #: shared-bindings/audiobusio/PDMIn.c msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "La frecuencia mínima del PWM es 1hz" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" -"PWM de múltiples frecuencias no soportado. El PWM ya se estableció a %dhz" - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." -msgstr "" +msgstr "Debe ser una subclase de Group." #: ports/atmel-samd/common-hal/analogio/AnalogOut.c msgid "No DAC on chip" @@ -984,10 +925,6 @@ msgstr "El chip no tiene DAC" msgid "No DMA channel found" msgstr "No se encontró el canal DMA" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Sin soporte PulseIn para %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Sin pin RX" @@ -998,19 +935,11 @@ msgstr "Sin pin TX" #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c msgid "No available clocks" -msgstr "" +msgstr "Relojes no disponibles" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Sin bus I2C por defecto" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Sin bus SPI por defecto" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Sin bus UART por defecto" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Sin bus %q por defecto" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -1020,10 +949,6 @@ msgstr "Sin GCLKs libres" msgid "No hardware random available" msgstr "No hay hardware random disponible" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Sin soporte de hardware para analog out" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1031,7 +956,7 @@ msgstr "Sin soporte de hardware en pin" #: py/moduerrno.c msgid "No space left on device" -msgstr "" +msgstr "No queda espacio en el dispositivo" #: py/moduerrno.c msgid "No such file/directory" @@ -1042,10 +967,6 @@ msgstr "No existe el archivo/directorio" msgid "Not connected" msgstr "No se puede conectar a AP" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "" @@ -1071,10 +992,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "Solo se admiten bit maps de color de 8 bits o menos" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1087,10 +1004,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "solo se admiten segmentos con step=1 (alias None)" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Solo tx soportada en UART1 (GPIO2)" - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "" @@ -1105,32 +1018,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "El pin %d no soporta PWM" - #: py/moduerrno.c msgid "Permission denied" msgstr "Permiso denegado" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "Pin %q no tiene capacidades de ADC" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "Pin no tiene capacidad ADC" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Pin(16) no soporta para pull" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Pines no válidos para SPI" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1149,11 +1045,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "Pull no se usa cuando la dirección es output." -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "Calibración de RTC no es soportada en esta placa" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "RTC no soportado en esta placa" @@ -1195,14 +1091,6 @@ msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n" msgid "SDA or SCL needs a pull up" msgstr "SDA o SCL necesitan una pull up" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "STA debe estar activo" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "STA requerido" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "Sample rate debe ser positivo" @@ -1291,11 +1179,11 @@ msgstr "El signo del sample no iguala al del mixer" #: shared-bindings/displayio/TileGrid.c msgid "Tile height must exactly divide bitmap height" -msgstr "" +msgstr "La altura del Tile debe dividir exacto la altura del bitmap" #: shared-bindings/displayio/TileGrid.c msgid "Tile indices must be 0 - 255" -msgstr "" +msgstr "Los índices de Tile deben ser 0 - 255" #: shared-bindings/displayio/TileGrid.c msgid "Tile width must exactly divide bitmap width" @@ -1315,7 +1203,7 @@ msgstr "" #: shared-bindings/displayio/Display.c msgid "Too many displays" -msgstr "" +msgstr "Muchos displays" #: py/obj.c msgid "Traceback (most recent call last):\n" @@ -1325,15 +1213,6 @@ msgstr "Traceback (ultima llamada reciente):\n" msgid "Tuple or struct_time argument required" msgstr "Argumento tuple o struct_time requerido" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) no existe" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "UART(1) no puede leer" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "USB ocupado" @@ -1370,11 +1249,7 @@ msgstr "Incapaz de inicializar el parser" #: shared-module/displayio/OnDiskBitmap.c msgid "Unable to read color palette data" -msgstr "" - -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Incapaz de montar de nuevo el sistema de archivos" +msgstr "No se pudo leer los datos de la paleta de colores" #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." @@ -1384,10 +1259,6 @@ msgstr "Imposible escribir en nvm" msgid "Unexpected nrfx uuid type" msgstr "" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Tipo desconocido" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1414,10 +1285,6 @@ msgstr "Operación no soportada" msgid "Unsupported pull value." msgstr "valor pull no soportado." -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "Usa esptool para borrar la flash y vuelve a cargar Python en su lugar" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "funciones Viper actualmente no soportan más de 4 argumentos." @@ -1458,11 +1325,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "Solicitaste iniciar en modo seguro por " -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "__init__() deberia devolver None" @@ -1484,7 +1346,7 @@ msgstr "se requiere un objeto bytes-like" msgid "abort() called" msgstr "se llamó abort()" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "la dirección %08x no esta alineada a %d bytes" @@ -1579,10 +1441,6 @@ msgstr "los buffers deben de tener la misma longitud" msgid "buffer slices must be of equal length" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "buffer demasiado largo" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1637,10 +1495,6 @@ msgstr "solo puede tener hasta 4 parámetros para ensamblador Xtensa" msgid "can only save bytecode" msgstr "solo puede almacenar bytecode" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "puede consultar solo un param" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "no se puede agregar un método a una clase ya subclasificada" @@ -1712,14 +1566,6 @@ msgstr "no se puede hacer una operacion binaria entre '%q' y '%q'" msgid "can't do truncated division of a complex number" msgstr "no se puede hacer la división truncada de un número complejo" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "no se puede obtener AP config" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "no se puede obtener STA config" - #: py/compile.c msgid "can't have multiple **x" msgstr "no puede tener multiples *x" @@ -1749,14 +1595,6 @@ msgid "can't send non-None value to a just-started generator" msgstr "" "no se puede enviar un valor que no sea None a un generador recién iniciado" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "no se puede establecer AP config" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "no se puede establecer STA config" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "no se puede asignar el atributo" @@ -1895,10 +1733,6 @@ msgstr "la secuencia de actualizacion del dict tiene una longitud incorrecta" msgid "division by zero" msgstr "división por cero" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "ya sea pos o kw args son permitidos" - #: py/objdeque.c msgid "empty" msgstr "vacío" @@ -1949,10 +1783,6 @@ msgstr "tupla/lista esperada" msgid "expecting a dict for keyword args" msgstr "esperando un diccionario para argumentos por palabra clave" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "esperando un pin" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "esperando una instrucción de ensamblador" @@ -1973,10 +1803,6 @@ msgstr "argumento(s) por palabra clave adicionales fueron dados" msgid "extra positional arguments given" msgstr "argumento posicional adicional dado" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "ffi_prep_closure_loc" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "el archivo deberia ser una archivo abierto en modo byte" @@ -1993,10 +1819,6 @@ msgstr "primer argumento para super() debe ser de tipo" msgid "firstbit must be MSB" msgstr "firstbit debe ser MSB" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "la ubicación de la flash debe estar debajo de 1MByte" - #: py/objint.c msgid "float too big" msgstr "" @@ -2009,10 +1831,6 @@ msgstr "font debe ser 2048 bytes de largo" msgid "format requires a dict" msgstr "format requiere un dict" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "la frecuencia solo puede ser 80MHz o 160MHz" - #: py/objdeque.c msgid "full" msgstr "lleno" @@ -2081,10 +1899,6 @@ msgstr "identificador redefinido como global" msgid "identifier redefined as nonlocal" msgstr "identificador redefinido como nonlocal" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "baudrate imposible" - #: py/objstr.c msgid "incomplete format" msgstr "formato incompleto" @@ -2098,7 +1912,6 @@ msgid "incorrect padding" msgstr "relleno (padding) incorrecto" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index fuera de rango" @@ -2131,26 +1944,14 @@ msgstr "periférico I2C inválido" msgid "invalid SPI peripheral" msgstr "periférico SPI inválido" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "alarma inválida" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "argumentos inválidos" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "longitud de buffer inválida" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "certificado inválido" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "data bits inválidos" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "index dupterm inválido" @@ -2171,18 +1972,10 @@ msgstr "llave inválida" msgid "invalid micropython decorator" msgstr "decorador de micropython inválido" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "pin inválido" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "stop bits inválidos" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "sintaxis inválida" @@ -2231,10 +2024,6 @@ msgstr "etiqueta '%q' no definida" msgid "label redefined" msgstr "etiqueta redefinida" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "len debe de ser múltiple de 4" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "argumento length no permitido para este tipo" @@ -2276,11 +2065,6 @@ msgstr "profundidad máxima de recursión excedida" msgid "memory allocation failed, allocating %u bytes" msgstr "la asignación de memoria falló, asignando %u bytes" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "falló la asignación de memoria, asignando %u bytes para código nativo" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "la asignación de memoria falló, el heap está bloqueado" @@ -2389,11 +2173,6 @@ msgstr "" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "no es un canal ADC válido: %d" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2496,10 +2275,6 @@ msgstr "los parámetros deben ser registros en secuencia de a2 a a5" msgid "parameters must be registers in sequence r0 to r3" msgstr "los parametros deben ser registros en secuencia del r0 al r3" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "pin sin capacidades IRQ" - #: shared-bindings/displayio/Bitmap.c #, fuzzy msgid "pixel coordinates out of bounds" @@ -2514,7 +2289,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "pixel_shader debe ser displayio.Palette o displayio.ColorConverter" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "pop de un PulseIn vacío" @@ -2569,10 +2343,6 @@ msgstr "la anotación de retorno debe ser un identificador" msgid "return expected '%q' but got '%q'" msgstr "retorno esperado '%q' pero se obtuvo '%q'" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "la fila debe estar empacada y la palabra alineada" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2589,10 +2359,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "frecuencia de muestreo fuera de rango" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "scan ha fallado" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2801,10 +2567,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "sangría no coincide con ningún nivel exterior" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "parámetro config desconocido" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2825,10 +2587,6 @@ msgstr "codigo format desconocido '%c' para el typo de objeto 'float'" msgid "unknown format code '%c' for object of type 'str'" msgstr "codigo format desconocido '%c' para objeto de tipo 'str'" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "status param desconocido" - #: py/compile.c msgid "unknown type" msgstr "tipo desconocido" @@ -2845,6 +2603,10 @@ msgstr "No coinciden '{' en format" msgid "unreadable attribute" msgstr "atributo no legible" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "tipo de %q no soportado" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2855,10 +2617,6 @@ msgstr "instrucción de tipo Thumb no admitida '%s' con %d argumentos" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "instrucción Xtensa '%s' con %d argumentos no soportada" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "tipo de bitmap no soportado" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2876,9 +2634,9 @@ msgstr "tipo de operador no soportado" msgid "unsupported types for %q: '%s', '%s'" msgstr "tipos no soportados para %q: '%s', '%s'" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() ha fallado" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" @@ -2910,11 +2668,190 @@ msgstr "address fuera de límites" msgid "zero step" msgstr "paso cero" +#~ msgid "AP required" +#~ msgstr "AP requerido" + +#~ msgid "Cannot connect to AP" +#~ msgstr "No se puede conectar a AP" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "No se puede desconectar de AP" + +#~ msgid "Cannot set STA config" +#~ msgstr "No se puede establecer STA config" + +#~ msgid "Cannot update i/f status" +#~ msgstr "No se puede actualizar i/f status" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "No se sabe cómo pasar objeto a función nativa" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "ESP8226 no soporta modo seguro." + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "ESP8266 no soporta pull down." + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Error en ffi_prep_cif" + +#, fuzzy +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "No se puede notificar el valor del anuncio. status: 0x%02x" + +#, fuzzy +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "No se puede leer el valor del atributo. status 0x%02x" + +#~ msgid "Function requires lock." +#~ msgstr "La función requiere lock" + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "GPIO16 no soporta pull up." + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "La frecuencia máxima del PWM es %dhz." + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "La frecuencia mínima del PWM es 1hz" + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "" +#~ "PWM de múltiples frecuencias no soportado. El PWM ya se estableció a %dhz" + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Sin soporte PulseIn para %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Sin soporte de hardware para analog out" + +#~ msgid "Not connected." +#~ msgstr "No conectado." + #~ msgid "Only Windows format, uncompressed BMP supported %d" #~ msgstr "Solo formato Windows, BMP sin comprimir soportado %d" +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Solo se admiten bit maps de color de 8 bits o menos" + #~ msgid "Only true color (24 bpp or higher) BMP supported %x" #~ msgstr "Solo color verdadero (24 bpp o superior) BMP admitido %x" +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "Solo tx soportada en UART1 (GPIO2)" + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "El pin %d no soporta PWM" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "Pin %q no tiene capacidades de ADC" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Pin(16) no soporta para pull" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Pines no válidos para SPI" + +#~ msgid "STA must be active" +#~ msgstr "STA debe estar activo" + +#~ msgid "STA required" +#~ msgstr "STA requerido" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "UART(%d) no existe" + +#~ msgid "UART(1) can't read" +#~ msgstr "UART(1) no puede leer" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Incapaz de montar de nuevo el sistema de archivos" + +#~ msgid "Unknown type" +#~ msgstr "Tipo desconocido" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "" +#~ "Usa esptool para borrar la flash y vuelve a cargar Python en su lugar" + +#~ msgid "buffer too long" +#~ msgstr "buffer demasiado largo" + +#~ msgid "can query only one param" +#~ msgstr "puede consultar solo un param" + +#~ msgid "can't get AP config" +#~ msgstr "no se puede obtener AP config" + +#~ msgid "can't get STA config" +#~ msgstr "no se puede obtener STA config" + +#~ msgid "can't set AP config" +#~ msgstr "no se puede establecer AP config" + +#~ msgid "can't set STA config" +#~ msgstr "no se puede establecer STA config" + +#~ msgid "either pos or kw args are allowed" +#~ msgstr "ya sea pos o kw args son permitidos" + +#~ msgid "expecting a pin" +#~ msgstr "esperando un pin" + +#~ msgid "ffi_prep_closure_loc" +#~ msgstr "ffi_prep_closure_loc" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "la ubicación de la flash debe estar debajo de 1MByte" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "la frecuencia solo puede ser 80MHz o 160MHz" + +#~ msgid "impossible baudrate" +#~ msgstr "baudrate imposible" + +#~ msgid "invalid alarm" +#~ msgstr "alarma inválida" + +#~ msgid "invalid buffer length" +#~ msgstr "longitud de buffer inválida" + +#~ msgid "invalid data bits" +#~ msgstr "data bits inválidos" + +#~ msgid "invalid pin" +#~ msgstr "pin inválido" + +#~ msgid "invalid stop bits" +#~ msgstr "stop bits inválidos" + +#~ msgid "len must be multiple of 4" +#~ msgstr "len debe de ser múltiple de 4" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "" +#~ "falló la asignación de memoria, asignando %u bytes para código nativo" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "no es un canal ADC válido: %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "pin sin capacidades IRQ" + #~ msgid "position must be 2-tuple" #~ msgstr "posición debe ser 2-tuple" + +#~ msgid "row must be packed and word aligned" +#~ msgstr "la fila debe estar empacada y la palabra alineada" + +#~ msgid "scan failed" +#~ msgstr "scan ha fallado" + +#~ msgid "unknown config param" +#~ msgstr "parámetro config desconocido" + +#~ msgid "unknown status param" +#~ msgstr "status param desconocido" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "wifi_set_ip_info() ha fallado" diff --git a/locale/fil.po b/locale/fil.po index 2f7ba57bb9..55768aeba0 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n" "Last-Translator: Timothy \n" "Language-Team: fil\n" @@ -220,10 +220,6 @@ msgstr "3-arg pow() hindi suportado" msgid "A hardware interrupt channel is already in use" msgstr "Isang channel ng hardware interrupt ay ginagamit na" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "AP kailangan" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -351,10 +347,6 @@ msgstr "buffer ay dapat bytes-like object" msgid "Bytes must be between 0 and 255." msgstr "Sa gitna ng 0 o 255 dapat ang bytes." -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "C-level assert" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -376,18 +368,10 @@ msgstr "Hindi mapalitan ang pangalan sa Central mode" msgid "Can't connect in Peripheral mode" msgstr "Hindi maconnect sa Peripheral mode" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "Hindi maka connect sa AP" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "Hindi mabura ang values" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "Hindi ma disconnect sa AP" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -415,14 +399,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "Hindi ma-remount '/' kapag aktibo ang USB." #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "Hindi ma-reset sa bootloader dahil walang bootloader." -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "Hindi ma-set ang STA Config" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "Hindi ma i-set ang value kapag ang direksyon ay input." @@ -439,10 +418,6 @@ msgstr "Hindi maaaring ilipat kapag walang MOSI at MISO pin." msgid "Cannot unambiguously get sizeof scalar" msgstr "Hindi puedeng hindi sigurado ang get sizeof scalar" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "Hindi ma-update i/f status" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "Hindi maaring isulat kapag walang MOSI pin." @@ -535,31 +510,15 @@ msgstr "" msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "Hindi alam ipasa ang object sa native function" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "Drive mode ay hindi ginagamit kapag ang direksyon ay input." -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "Walang safemode support ang ESP8266." - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "Walang pull down support ang ESP8266." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "Ginagamit na ang EXTINT channel" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Pagkakamali sa ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "May pagkakamali sa REGEX" @@ -616,7 +575,6 @@ msgid "Failed to allocate RX buffer" msgstr "Nabigong ilaan ang RX buffer" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -663,9 +621,9 @@ msgid "Failed to get softdevice state" msgstr "Nabigo sa pagkuha ng softdevice state, error: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX" +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -673,9 +631,9 @@ msgid "Failed to read CCCD value, err 0x%04x" msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX" +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -766,23 +724,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "Function nangangailangan ng lock" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "Kailangan ng lock ang function." - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "Walang pull down support ang GPI016." - #: shared-module/displayio/Group.c msgid "Group full" msgstr "Puno ang group" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "I/O operasyon sa saradong file" @@ -823,6 +773,10 @@ msgstr "Maling argumento" msgid "Invalid bit clock pin" msgstr "Mali ang bit clock pin" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c msgid "Invalid buffer size" msgstr "Mali ang buffer size" @@ -937,11 +891,6 @@ msgstr "Hindi ma-initialize ang MISO pin." msgid "MOSI pin init failed." msgstr "Hindi ma-initialize ang MOSI pin." -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "Pinakamataas na PWM frequency ay %dhz." - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -959,16 +908,6 @@ msgstr "CircuitPython fatal na pagkakamali.\n" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "Ang delay ng startup ng mikropono ay dapat na nasa 0.0 hanggang 1.0" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "Pinakamababang PWM frequency ay 1hz." - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" -"Hindi sinusuportahan ang maraming mga PWM frequency. PWM na naka-set sa %dhz." - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -982,10 +921,6 @@ msgstr "Walang DAC sa chip" msgid "No DMA channel found" msgstr "Walang DMA channel na mahanap" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Walang PulseIn support sa %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Walang RX pin" @@ -998,17 +933,9 @@ msgstr "Walang TX pin" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Walang default na I2C bus" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Walang default SPI bus" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Walang default UART bus" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Walang default na %q bus" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -1018,10 +945,6 @@ msgstr "Walang libreng GCLKs" msgid "No hardware random available" msgstr "Walang magagamit na hardware random" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Hindi supportado ng hardware ang analog out." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1040,10 +963,6 @@ msgstr "Walang file/directory" msgid "Not connected" msgstr "Hindi maka connect sa AP" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "Hindi playing" @@ -1069,10 +988,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "Tanging bit maps na may 8 bit color o mas mababa ang supportado" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1085,10 +1000,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "ang mga slices lamang na may hakbang = 1 (aka None) ang sinusuportahan" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Tanging suportado ang TX sa UART1 (GPIO2)." - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "Oversample ay dapat multiple ng 8." @@ -1104,32 +1015,15 @@ msgid "" msgstr "" "PWM frequency hindi writable kapag variable_frequency ay False sa pag buo." -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "Walang PWM support sa pin %d" - #: py/moduerrno.c msgid "Permission denied" msgstr "Walang pahintulot" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "Walang kakayahang ADC ang pin %q" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "Ang pin ay walang kakayahan sa ADC" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Walang pull support ang Pin(16)" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Mali ang pins para sa SPI" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1148,11 +1042,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "Pull hindi ginagamit kapag ang direksyon ay output." -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "RTC calibration ay hindi supportado ng board na ito" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "Hindi supportado ang RTC sa board na ito" @@ -1194,14 +1088,6 @@ msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n" msgid "SDA or SCL needs a pull up" msgstr "Kailangan ng pull up resistors ang SDA o SCL" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "Dapat aktibo ang STA" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "STA kailangan" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "Sample rate ay dapat positibo" @@ -1327,15 +1213,6 @@ msgstr "Traceback (pinakahuling huling tawag): \n" msgid "Tuple or struct_time argument required" msgstr "Tuple o struct_time argument kailangan" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "Walang UART(%d)" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "Hindi mabasa ang UART(1)" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "Busy ang USB" @@ -1374,10 +1251,6 @@ msgstr "Hindi ma-init ang parser" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Hindi ma-remount ang filesystem" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "Hindi ma i-sulat sa NVM." @@ -1387,10 +1260,6 @@ msgstr "Hindi ma i-sulat sa NVM." msgid "Unexpected nrfx uuid type" msgstr "hindi inaasahang indent" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Hindi alam ang type" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1417,11 +1286,6 @@ msgstr "Hindi sinusuportahang operasyon" msgid "Unsupported pull value." msgstr "Hindi suportado ang pull value." -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" -"Gamitin ang esptool upang burahin ang flash at muling i-upload ang Python" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "" @@ -1461,11 +1325,6 @@ msgstr "Ikaw ay tumatakbo sa safe mode dahil may masamang nangyari.\n" msgid "You requested starting safe mode by " msgstr "Ikaw ang humiling sa safe mode sa pamamagitan ng " -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "[addrinfo error %d]" - #: py/objtype.c msgid "__init__() should return None" msgstr "__init __ () dapat magbalik na None" @@ -1487,7 +1346,7 @@ msgstr "a bytes-like object ay kailangan" msgid "abort() called" msgstr "abort() tinawag" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "address %08x ay hindi pantay sa %d bytes" @@ -1582,10 +1441,6 @@ msgstr "aarehas na haba dapat ang buffer slices" msgid "buffer slices must be of equal length" msgstr "aarehas na haba dapat ang buffer slices" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "masyadong mahaba ng buffer" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1640,10 +1495,6 @@ msgstr "maaari lamang magkaroon ng hanggang 4 na parameter sa Xtensa assembly" msgid "can only save bytecode" msgstr "maaring i-save lamang ang bytecode" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "maaaring i-query lamang ang isang param" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1717,14 +1568,6 @@ msgid "can't do truncated division of a complex number" msgstr "" "hindi maaaring gawin ang truncated division ng isang kumplikadong numero" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "hindi makuha ang AP config" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "hindi makuha ang STA config" - #: py/compile.c msgid "can't have multiple **x" msgstr "hindi puede ang maraming **x" @@ -1753,14 +1596,6 @@ msgstr "hindi mapadala ang send throw sa isang kaka umpisang generator" msgid "can't send non-None value to a just-started generator" msgstr "hindi mapadala ang non-None value sa isang kaka umpisang generator" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "hindi makuha ang AP config" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "hindi makuha ang STA config" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "hindi ma i-set ang attribute" @@ -1901,10 +1736,6 @@ msgstr "may mali sa haba ng dict update sequence" msgid "division by zero" msgstr "dibisyon ng zero" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "pos o kw args ang pinahihintulutan" - #: py/objdeque.c msgid "empty" msgstr "walang laman" @@ -1955,10 +1786,6 @@ msgstr "umaasa ng tuple/list" msgid "expecting a dict for keyword args" msgstr "umaasa ng dict para sa keyword args" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "umaasa ng isang pin" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "umaasa ng assembler instruction" @@ -1979,10 +1806,6 @@ msgstr "dagdag na keyword argument na ibinigay" msgid "extra positional arguments given" msgstr "dagdag na positional argument na ibinigay" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "ffi_prep_closure_loc" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "file ay dapat buksan sa byte mode" @@ -1999,10 +1822,6 @@ msgstr "unang argument ng super() ay dapat type" msgid "firstbit must be MSB" msgstr "firstbit ay dapat MSB" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "dapat na mas mababa sa 1MB ang lokasyon ng flash" - #: py/objint.c msgid "float too big" msgstr "masyadong malaki ang float" @@ -2015,10 +1834,6 @@ msgstr "font ay dapat 2048 bytes ang haba" msgid "format requires a dict" msgstr "kailangan ng format ng dict" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "ang frequency ay dapat 80Mhz or 160MHz lamang" - #: py/objdeque.c msgid "full" msgstr "puno" @@ -2088,10 +1903,6 @@ msgstr "identifier ginawang global" msgid "identifier redefined as nonlocal" msgstr "identifier ginawang nonlocal" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "impossibleng baudrate" - #: py/objstr.c msgid "incomplete format" msgstr "hindi kumpleto ang format" @@ -2105,7 +1916,6 @@ msgid "incorrect padding" msgstr "mali ang padding" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index wala sa sakop" @@ -2138,26 +1948,14 @@ msgstr "maling I2C peripheral" msgid "invalid SPI peripheral" msgstr "hindi wastong SPI peripheral" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "mali ang alarm" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "mali ang mga argumento" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "mali ang buffer length" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "mali ang cert" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "mali ang data bits" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "mali ang dupterm index" @@ -2178,18 +1976,10 @@ msgstr "mali ang key" msgid "invalid micropython decorator" msgstr "mali ang micropython decorator" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "mali ang pin" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "mali ang step" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "mali ang stop bits" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "mali ang sintaks" @@ -2239,10 +2029,6 @@ msgstr "label '%d' kailangan na i-define" msgid "label redefined" msgstr "ang label ay na-define ulit" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "len ay dapat multiple ng 4" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "length argument ay walang pahintulot sa ganitong type" @@ -2284,12 +2070,6 @@ msgstr "lumagpas ang maximum recursion depth" msgid "memory allocation failed, allocating %u bytes" msgstr "nabigo ang paglalaan ng memorya, paglalaan ng %u bytes" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" -"nabigo ang paglalaan ng memorya, naglalaan ng %u bytes para sa native code" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "abigo ang paglalaan ng memorya, ang heap ay naka-lock" @@ -2396,11 +2176,6 @@ msgstr "non-keyword arg sa huli ng keyword arg" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "hindi tamang ADC Channel: %d" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "hindi lahat ng arguments na i-convert habang string formatting" @@ -2502,10 +2277,6 @@ msgstr "ang mga parameter ay dapat na nagrerehistro sa sequence a2 hanggang a5" msgid "parameters must be registers in sequence r0 to r3" msgstr "ang mga parameter ay dapat na nagrerehistro sa sequence r0 hanggang r3" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "walang IRQ capabilities ang pin" - #: shared-bindings/displayio/Bitmap.c #, fuzzy msgid "pixel coordinates out of bounds" @@ -2520,7 +2291,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "pixel_shader ay dapat displayio.Palette o displayio.ColorConverter" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "pop mula sa walang laman na PulseIn" @@ -2575,10 +2345,6 @@ msgstr "return annotation ay dapat na identifier" msgid "return expected '%q' but got '%q'" msgstr "return umasa ng '%q' pero ang nakuha ay ‘%q’" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "row ay dapat packed at ang word nakahanay" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "rsplit(None,n)" @@ -2595,10 +2361,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "pagpili ng rate wala sa sakop" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "nabigo ang pag-scan" - #: py/modmicropython.c msgid "schedule stack full" msgstr "puno na ang schedule stack" @@ -2807,10 +2569,6 @@ msgstr "unicode name escapes" msgid "unindent does not match any outer indentation level" msgstr "unindent hindi tugma sa indentation level sa labas" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "hindi alam na config param" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2831,10 +2589,6 @@ msgstr "hindi alam ang format code '%c' sa object na ang type ay 'float'" msgid "unknown format code '%c' for object of type 'str'" msgstr "hindi alam ang format ng code na '%c' para sa object ng type ay 'str'" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "hindi alam na status param" - #: py/compile.c msgid "unknown type" msgstr "hindi malaman ang type (unknown type)" @@ -2851,6 +2605,10 @@ msgstr "hindi tugma ang '{' sa format" msgid "unreadable attribute" msgstr "hindi mabasa ang attribute" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "Hindi supportadong tipo ng %q" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2861,10 +2619,6 @@ msgstr "hindi sinusuportahan ang thumb instruktion '%s' sa %d argumento" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "hindi sinusuportahan ang instruction ng Xtensa '%s' sa %d argumento" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "Hindi supportadong tipo ng bitmap" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2882,9 +2636,9 @@ msgstr "hindi sinusuportahang type para sa operator" msgid "unsupported types for %q: '%s', '%s'" msgstr "hindi sinusuportahang type para sa %q: '%s', '%s'" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "nabigo ang wifi_set_ip_info()" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" @@ -2916,11 +2670,194 @@ msgstr "wala sa sakop ang address" msgid "zero step" msgstr "zero step" +#~ msgid "AP required" +#~ msgstr "AP kailangan" + +#~ msgid "C-level assert" +#~ msgstr "C-level assert" + +#~ msgid "Cannot connect to AP" +#~ msgstr "Hindi maka connect sa AP" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "Hindi ma disconnect sa AP" + +#~ msgid "Cannot set STA config" +#~ msgstr "Hindi ma-set ang STA Config" + +#~ msgid "Cannot update i/f status" +#~ msgstr "Hindi ma-update i/f status" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "Hindi alam ipasa ang object sa native function" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "Walang safemode support ang ESP8266." + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "Walang pull down support ang ESP8266." + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Pagkakamali sa ffi_prep_cif" + +#, fuzzy +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX" + +#, fuzzy +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX" + +#~ msgid "Function requires lock." +#~ msgstr "Kailangan ng lock ang function." + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "Walang pull down support ang GPI016." + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "Pinakamataas na PWM frequency ay %dhz." + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "Pinakamababang PWM frequency ay 1hz." + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "" +#~ "Hindi sinusuportahan ang maraming mga PWM frequency. PWM na naka-set sa " +#~ "%dhz." + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Walang PulseIn support sa %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Hindi supportado ng hardware ang analog out." + #~ msgid "Only Windows format, uncompressed BMP supported %d" #~ msgstr "Tanging Windows format, uncompressed BMP lamang ang supportado %d" +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Tanging bit maps na may 8 bit color o mas mababa ang supportado" + #~ msgid "Only true color (24 bpp or higher) BMP supported %x" #~ msgstr "Dapat true color (24 bpp o mas mataas) BMP lamang ang supportado %x" +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "Tanging suportado ang TX sa UART1 (GPIO2)." + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "Walang PWM support sa pin %d" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "Walang kakayahang ADC ang pin %q" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Walang pull support ang Pin(16)" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Mali ang pins para sa SPI" + +#~ msgid "STA must be active" +#~ msgstr "Dapat aktibo ang STA" + +#~ msgid "STA required" +#~ msgstr "STA kailangan" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "Walang UART(%d)" + +#~ msgid "UART(1) can't read" +#~ msgstr "Hindi mabasa ang UART(1)" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Hindi ma-remount ang filesystem" + +#~ msgid "Unknown type" +#~ msgstr "Hindi alam ang type" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "" +#~ "Gamitin ang esptool upang burahin ang flash at muling i-upload ang Python" + +#~ msgid "[addrinfo error %d]" +#~ msgstr "[addrinfo error %d]" + +#~ msgid "buffer too long" +#~ msgstr "masyadong mahaba ng buffer" + +#~ msgid "can query only one param" +#~ msgstr "maaaring i-query lamang ang isang param" + +#~ msgid "can't get AP config" +#~ msgstr "hindi makuha ang AP config" + +#~ msgid "can't get STA config" +#~ msgstr "hindi makuha ang STA config" + +#~ msgid "can't set AP config" +#~ msgstr "hindi makuha ang AP config" + +#~ msgid "can't set STA config" +#~ msgstr "hindi makuha ang STA config" + +#~ msgid "either pos or kw args are allowed" +#~ msgstr "pos o kw args ang pinahihintulutan" + +#~ msgid "expecting a pin" +#~ msgstr "umaasa ng isang pin" + +#~ msgid "ffi_prep_closure_loc" +#~ msgstr "ffi_prep_closure_loc" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "dapat na mas mababa sa 1MB ang lokasyon ng flash" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "ang frequency ay dapat 80Mhz or 160MHz lamang" + +#~ msgid "impossible baudrate" +#~ msgstr "impossibleng baudrate" + +#~ msgid "invalid alarm" +#~ msgstr "mali ang alarm" + +#~ msgid "invalid buffer length" +#~ msgstr "mali ang buffer length" + +#~ msgid "invalid data bits" +#~ msgstr "mali ang data bits" + +#~ msgid "invalid pin" +#~ msgstr "mali ang pin" + +#~ msgid "invalid stop bits" +#~ msgstr "mali ang stop bits" + +#~ msgid "len must be multiple of 4" +#~ msgstr "len ay dapat multiple ng 4" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "" +#~ "nabigo ang paglalaan ng memorya, naglalaan ng %u bytes para sa native code" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "hindi tamang ADC Channel: %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "walang IRQ capabilities ang pin" + #~ msgid "position must be 2-tuple" #~ msgstr "position ay dapat 2-tuple" + +#~ msgid "row must be packed and word aligned" +#~ msgstr "row ay dapat packed at ang word nakahanay" + +#~ msgid "scan failed" +#~ msgstr "nabigo ang pag-scan" + +#~ msgid "unknown config param" +#~ msgstr "hindi alam na config param" + +#~ msgid "unknown status param" +#~ msgstr "hindi alam na status param" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "nabigo ang wifi_set_ip_info()" diff --git a/locale/fr.po b/locale/fr.po index fd8f78027b..3f8b1c0bbd 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -2,13 +2,14 @@ # Copyright (C) 2018 # This file is distributed under the same license as the PACKAGE package. # Pierrick Couturier , 2018. +# Olivier Deveault # msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" -"PO-Revision-Date: 2018-12-23 20:05+0100\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" +"PO-Revision-Date: 2019-04-14 20:05+0100\n" "Last-Translator: Pierrick Couturier \n" "Language-Team: fr\n" "Language: fr\n" @@ -21,6 +22,8 @@ msgid "" "\n" "Code done running. Waiting for reload.\n" msgstr "" +"\n" +"Fin d'éxecution du code. En attente de recharge.\n" #: py/obj.c msgid " File \"%q\"" @@ -37,7 +40,7 @@ msgstr " sortie:\n" #: py/objstr.c #, c-format msgid "%%c requires int or char" -msgstr "%%c nécessite un entier int ou un caractère char" +msgstr "%%c nécessite un entier 'int' ou un caractère 'char'" #: shared-bindings/microcontroller/Pin.c msgid "%q in use" @@ -55,7 +58,7 @@ msgstr "les indices %q doivent être des entiers, pas %s" #: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c #, fuzzy msgid "%q must be >= 1" -msgstr "les slices de tampon doivent être de longueurs égales" +msgstr "%d doit être >=1" #: shared-bindings/fontio/BuiltinFont.c #, fuzzy @@ -64,7 +67,7 @@ msgstr "y doit être un entier (int)" #: py/bc.c py/objnamedtuple.c msgid "%q() takes %d positional arguments but %d were given" -msgstr "%q() prend %d arguments mais %d ont été donnés" +msgstr "%q() prend %d arguments positionnels mais %d ont été donnés" #: py/argcheck.c msgid "'%q' argument required" @@ -103,7 +106,7 @@ msgstr "'%s' attend un entier" #: py/emitinlinethumb.c #, fuzzy, c-format msgid "'%s' expects at most r%d" -msgstr "'%s' attend un registre" +msgstr "'%s' s'attend au plus à r%d" #: py/emitinlinethumb.c #, fuzzy, c-format @@ -142,12 +145,12 @@ msgstr "l'objet '%s' n'est pas un itérateur" #: py/objtype.c py/runtime.c #, c-format msgid "'%s' object is not callable" -msgstr "objet '%s' non appelable" +msgstr "objet '%s' n'est pas appelable" #: py/runtime.c #, c-format msgid "'%s' object is not iterable" -msgstr "objet '%s' non itérable" +msgstr "objet '%s' n'est pas itérable" #: py/obj.c #, c-format @@ -212,25 +215,21 @@ msgstr "0.0 à une puissance complexe" #: py/modbuiltins.c msgid "3-arg pow() not supported" -msgstr "pow() avec 3 arguments non supporté" +msgstr "pow() non supporté avec 3 arguments" #: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c msgid "A hardware interrupt channel is already in use" -msgstr "Un canal d'interruptions est déjà utilisé" - -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "'AP' requis" +msgstr "Un canal d'interruptions matérielles est déjà utilisé" #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" -msgstr "" +msgstr "L'adresse n'est pas longue de %d octets ou est d'un format erroné" #: shared-bindings/bleio/Address.c #, fuzzy, c-format msgid "Address must be %d bytes long" -msgstr "la palette doit être longue de 32 octets" +msgstr "L'adresse doit être longue de %d octets" #: ports/nrf/common-hal/busio/I2C.c #, fuzzy @@ -269,16 +268,15 @@ msgstr "Tous les timers sont utilisés" #: ports/nrf/common-hal/analogio/AnalogOut.c msgid "AnalogOut functionality not supported" -msgstr "AnalogOut non supporté" +msgstr "Fonctionnalité AnalogOut non supportée" #: shared-bindings/analogio/AnalogOut.c msgid "AnalogOut is only 16 bits. Value must be less than 65536." -msgstr "" -"AnalogOut est seulement 16 bits. Les valeurs doivent être inf. à 65536." +msgstr "AnalogOut est seulement 16 bits. Les valeurs doivent être inf. à 65536." #: ports/atmel-samd/common-hal/analogio/AnalogOut.c msgid "AnalogOut not supported on given pin" -msgstr "AnalogOut n'est pas supporté sur la broche indiquée" +msgstr "'AnalogOut' n'est pas supporté sur la broche indiquée" #: ports/atmel-samd/common-hal/pulseio/PulseOut.c msgid "Another send is already active" @@ -286,7 +284,7 @@ msgstr "Un autre envoi est déjà actif" #: shared-bindings/pulseio/PulseOut.c msgid "Array must contain halfwords (type 'H')" -msgstr "Le tableau doit contenir des halfwords (type 'H')" +msgstr "Le tableau doit contenir des demi-mots (type 'H')" #: shared-bindings/nvm/ByteArray.c msgid "Array values should be single bytes." @@ -294,11 +292,11 @@ msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'." #: supervisor/shared/safe_mode.c msgid "Attempted heap allocation when MicroPython VM not running.\n" -msgstr "" +msgstr "Tentative d'allocation de tas alors que la VM MicroPython ne tourne pas.\n" #: main.c msgid "Auto-reload is off.\n" -msgstr "Auto-rechargement désactivé.\n" +msgstr "L'auto-chargement est désactivé.\n" #: main.c msgid "" @@ -318,7 +316,7 @@ msgstr "La profondeur de bit doit être un multiple de 8." #: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c msgid "Both pins must support hardware interrupts" -msgstr "Les deux entrées doivent supporter les interruptions" +msgstr "Les deux entrées doivent supporter les interruptions matérielles" #: shared-bindings/supervisor/__init__.c msgid "Brightness must be between 0 and 255" @@ -326,7 +324,7 @@ msgstr "La luminosité doit être entre 0 et 255" #: shared-bindings/displayio/Display.c msgid "Brightness not adjustable" -msgstr "" +msgstr "Luminosité non-ajustable" #: shared-module/usb_hid/Device.c #, c-format @@ -341,33 +339,29 @@ msgstr "Le tampon doit être de longueur au moins 1" #: ports/nrf/common-hal/displayio/ParallelBus.c #, fuzzy, c-format msgid "Bus pin %d is already in use" -msgstr "DAC déjà utilisé" +msgstr "La broche %d du bus est déjà utilisée" #: shared-bindings/bleio/UUID.c #, fuzzy msgid "Byte buffer must be 16 bytes." -msgstr "le tampon doit être un objet bytes-like" +msgstr "Le tampon d'octets doit être de 16 octets." #: shared-bindings/nvm/ByteArray.c msgid "Bytes must be between 0 and 255." msgstr "Les octets 'bytes' doivent être entre 0 et 255" -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" -msgstr "" +msgstr "Impossible d'utiliser 'dotstar' avec %s" #: shared-bindings/bleio/Device.c msgid "Can't add services in Central mode" -msgstr "Impossible d'ajouter des service en mode Central" +msgstr "Impossible d'ajouter des services en mode Central" #: shared-bindings/bleio/Device.c msgid "Can't advertise in Central mode" -msgstr "" +msgstr "Impossible de publier en mode Central" #: shared-bindings/bleio/Device.c msgid "Can't change the name in Central mode" @@ -375,29 +369,21 @@ msgstr "Modification du nom impossible en mode Central" #: shared-bindings/bleio/Device.c msgid "Can't connect in Peripheral mode" -msgstr "Impossible de se connecter en mode Peripheral" - -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "Impossible de se connecter à 'AP'" +msgstr "Impossible de se connecter en mode 'Peripheral'" #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "Impossible de supprimer les valeurs" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "Impossible de se déconnecter de 'AP'" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" -msgstr "Ne peux être tiré ('pull') en mode 'output'" +msgstr "Ne peut être tiré ('pull') en mode 'output'" #: ports/nrf/common-hal/microcontroller/Processor.c #, fuzzy msgid "Cannot get temperature" -msgstr "Impossible de lire la température. status: 0x%02x" +msgstr "Impossible de lire la température" #: ports/atmel-samd/common-hal/audioio/AudioOut.c msgid "Cannot output both channels on the same pin" @@ -416,14 +402,8 @@ msgid "Cannot remount '/' when USB is active." msgstr "'/' ne peut être remonté quand l'USB est actif." #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." -msgstr "" -"Ne peut être redémarré vers le bootloader car il n'y a pas de bootloader." - -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "Impossible de configurer STA" +msgstr "Ne peut être redémarré vers le bootloader car il n'y a pas de bootloader." #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." @@ -431,35 +411,31 @@ msgstr "Impossible d'affecter une valeur quand la direction est 'input'." #: py/objslice.c msgid "Cannot subclass slice" -msgstr "On ne peut faire de subclass de slice" +msgstr "On ne peut faire de sous-classes de tranches" #: shared-module/bitbangio/SPI.c msgid "Cannot transfer without MOSI and MISO pins." -msgstr "Pas de transfert sans broches MOSI et MISO" +msgstr "Pas de transfert sans broches MOSI et MISO." #: extmod/moductypes.c msgid "Cannot unambiguously get sizeof scalar" msgstr "Impossible d'obtenir la taille du scalaire sans ambigüité" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "le status i/f ne peut être mis à jour" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "Impossible d'écrire sans broche MOSI." #: shared-bindings/bleio/Service.c msgid "Characteristic UUID doesn't match Service UUID" -msgstr "" +msgstr "L'UUID de 'Characteristic' ne correspond pas à l'UUID du Service" #: ports/nrf/common-hal/bleio/Service.c msgid "Characteristic already in use by another Service." -msgstr "" +msgstr "'Characteristic' déjà en utilisation par un autre service" #: shared-bindings/bleio/CharacteristicBuffer.c msgid "CharacteristicBuffer writing not provided" -msgstr "" +msgstr "Ecriture sur 'CharacteristicBuffer' non fournie" #: shared-module/bitbangio/SPI.c msgid "Clock pin init failed." @@ -475,17 +451,17 @@ msgstr "Horloge en cours d'utilisation" #: shared-bindings/_pew/PewPew.c msgid "Column entry must be digitalio.DigitalInOut" -msgstr "" +msgstr "L'entrée 'Column' doit être un digitalio.DigitalInOut" #: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c #, fuzzy msgid "Command must be an int between 0 and 255" -msgstr "Les octets 'bytes' doivent être entre 0 et 255" +msgstr "La commande doit être un entier entre 0 et 255" #: ports/nrf/common-hal/bleio/UUID.c #, c-format msgid "Could not decode ble_uuid, err 0x%04x" -msgstr "" +msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x" #: ports/atmel-samd/common-hal/busio/UART.c msgid "Could not initialize UART" @@ -501,7 +477,7 @@ msgstr "Impossible d'allouer le 2e tampon" #: supervisor/shared/safe_mode.c msgid "Crash into the HardFault_Handler.\n" -msgstr "" +msgstr "Plantage vers le 'HardFault_Handler'.\n" #: ports/atmel-samd/common-hal/audioio/AudioOut.c msgid "DAC already in use" @@ -511,7 +487,7 @@ msgstr "DAC déjà utilisé" #: ports/nrf/common-hal/displayio/ParallelBus.c #, fuzzy msgid "Data 0 pin must be byte aligned" -msgstr "le graphic doit être long de 2048 octets" +msgstr "La broche 'Data 0' doit être aligné sur l'octet" #: shared-module/audioio/WaveFile.c msgid "Data chunk must follow fmt chunk" @@ -520,45 +496,29 @@ msgstr "Un bloc de données doit suivre un bloc de format" #: ports/nrf/common-hal/bleio/Broadcaster.c #: ports/nrf/common-hal/bleio/Peripheral.c msgid "Data too large for advertisement packet" -msgstr "" +msgstr "Données trop volumineuses pour un paquet de diffusion" #: ports/nrf/common-hal/bleio/Device.c msgid "Data too large for the advertisement packet" -msgstr "" +msgstr "Données trop volumineuses pour le paquet de diffusion" #: shared-bindings/audiobusio/PDMIn.c msgid "Destination capacity is smaller than destination_length." -msgstr "La capacité de la cible est plus petite que destination_length." +msgstr "La capacité de destination est plus petite que 'destination_length'." #: shared-bindings/displayio/Display.c msgid "Display rotation must be in 90 degree increments" -msgstr "" - -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "Ne sais pas comment passer l'objet à une fonction native" +msgstr "La rotation d'affichage doit se faire par incréments de 90 degrés" #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'." -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "l'ESP8266 ne supporte pas le mode sans-échec" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "L'ESP8266 ne supporte pas le rappel (pull-down)" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "Canal EXTINT déjà utilisé" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Erreur dans ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "Erreur dans l'expression régulière" @@ -567,55 +527,54 @@ msgstr "Erreur dans l'expression régulière" #: shared-bindings/neopixel_write/__init__.c shared-bindings/pulseio/PulseOut.c #: shared-bindings/terminalio/Terminal.c msgid "Expected a %q" -msgstr "Attendu : %q" +msgstr "Attendu un %q" #: shared-bindings/bleio/CharacteristicBuffer.c #, fuzzy msgid "Expected a Characteristic" -msgstr "Impossible d'ajouter la Characteristic." +msgstr "Une 'Characteristic' est attendue" #: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c #: shared-bindings/bleio/Service.c #, fuzzy msgid "Expected a UUID" -msgstr "Attendu : %q" +msgstr "Un UUID est attendu" #: shared-module/_pixelbuf/PixelBuf.c #, c-format msgid "Expected tuple of length %d, got %d" -msgstr "" +msgstr "Tuple de longueur %d attendu, obtenu %d" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to acquire mutex" -msgstr "Echec de l'obtention de mutex, status: 0x%08lX" +msgstr "Echec de l'obtention de mutex" #: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c #, fuzzy, c-format msgid "Failed to acquire mutex, err 0x%04x" -msgstr "Echec de l'obtention de mutex, status: 0x%08lX" +msgstr "Echec de l'obtention de mutex, err 0x%04x" #: ports/nrf/common-hal/bleio/Service.c #, fuzzy, c-format msgid "Failed to add characteristic, err 0x%04x" -msgstr "Echec de l'ajout de caractéristique, statut: 0x%08lX" +msgstr "Echec de l'ajout de caractéristique, err 0x%04x" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to add service" -msgstr "Echec de l'ajout de service, statut: 0x%08lX" +msgstr "Echec de l'ajout de service" #: ports/nrf/common-hal/bleio/Peripheral.c #, fuzzy, c-format msgid "Failed to add service, err 0x%04x" -msgstr "Echec de l'ajout de service, statut: 0x%08lX" +msgstr "Echec de l'ajout de service, err 0x%04x" #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "Failed to allocate RX buffer" msgstr "Echec de l'allocation du tampon RX" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -624,119 +583,119 @@ msgstr "Echec de l'allocation de %d octets du tampon RX" #: ports/nrf/common-hal/bleio/Adapter.c #, fuzzy msgid "Failed to change softdevice state" -msgstr "Echec de la modification de l'état du périph., erreur: 0x%08lX" +msgstr "Echec de la modification de l'état du périphérique" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to connect:" -msgstr "Connection impossible. statut: 0x%08lX" +msgstr "Echec de connection:" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to continue scanning" -msgstr "Impossible de commencer à scanner. statut: 0x%0xlX" +msgstr "Impossible de poursuivre le scan" #: ports/nrf/common-hal/bleio/Scanner.c #, fuzzy, c-format msgid "Failed to continue scanning, err 0x%04x" -msgstr "Impossible de commencer à scanner. statut: 0x%0xlX" +msgstr "Impossible de poursuivre le scan, err 0x%04x" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to create mutex" -msgstr "Echec de la création de mutex, statut: 0x%0xlX" +msgstr "Echec de la création de mutex" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to discover services" -msgstr "Echec de la découverte de services, statut: 0x%08lX" +msgstr "Echec de la découverte de services" #: ports/nrf/common-hal/bleio/Adapter.c #, fuzzy msgid "Failed to get local address" -msgstr "Echec de l'obtention de l'adresse locale, erreur: 0x%08lX" +msgstr "Echec de l'obtention de l'adresse locale" #: ports/nrf/common-hal/bleio/Adapter.c #, fuzzy msgid "Failed to get softdevice state" -msgstr "Echec de l'obtention de l'état du périph., erreur: 0x%08lX" +msgstr "Echec de l'obtention de l'état du périphérique" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX" +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "Impossible de notifier ou d'indiquer la valeur de l'attribut, err 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format msgid "Failed to read CCCD value, err 0x%04x" -msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX" +msgstr "Impossible de lire la valeur 'CCCD', err 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX" +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "Impossible de lire la valeur de l'attribut, err 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format msgid "Failed to read gatts value, err 0x%04x" -msgstr "Impossible d'écrire la valeur de gatts. status: 0x%08lX" +msgstr "Impossible de lire la valeur de 'gatts', err 0x%04x" #: ports/nrf/common-hal/bleio/UUID.c #, fuzzy, c-format msgid "Failed to register Vendor-Specific UUID, err 0x%04x" -msgstr "Echec de l'ajout de l'UUID Vendor Specific, , statut: 0x%08lX" +msgstr "Echec de l'ajout de l'UUID du fournisseur, err 0x%04x" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to release mutex" -msgstr "Impossible de libérer mutex, status: 0x%08lX" +msgstr "Impossible de libérer mutex" #: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c #, fuzzy, c-format msgid "Failed to release mutex, err 0x%04x" -msgstr "Impossible de libérer mutex, status: 0x%08lX" +msgstr "Impossible de libérer mutex, err 0x%04x" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to start advertising" -msgstr "Echec de l'ajout de service, statut: 0x%08lX" +msgstr "Echec du démarrage de la diffusion" #: ports/nrf/common-hal/bleio/Broadcaster.c #: ports/nrf/common-hal/bleio/Peripheral.c #, fuzzy, c-format msgid "Failed to start advertising, err 0x%04x" -msgstr "Impossible de commencer à scanner, statut: 0x%0xlX" +msgstr "Impossible de commencer à diffuser, err 0x%04x" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to start scanning" -msgstr "Impossible de commencer à scanner, statut: 0x%0xlX" +msgstr "Impossible de commencer à scanner" #: ports/nrf/common-hal/bleio/Scanner.c #, fuzzy, c-format msgid "Failed to start scanning, err 0x%04x" -msgstr "Impossible de commencer à scanner, statut: 0x%0xlX" +msgstr "Impossible de commencer à scanner, err 0x%04x" #: ports/nrf/common-hal/bleio/Device.c #, fuzzy msgid "Failed to stop advertising" -msgstr "Echec de l'ajout de service, statut: 0x%08lX" +msgstr "Echec de l'arrêt de diffusion" #: ports/nrf/common-hal/bleio/Broadcaster.c #: ports/nrf/common-hal/bleio/Peripheral.c #, fuzzy, c-format msgid "Failed to stop advertising, err 0x%04x" -msgstr "Echec de l'ajout de service, statut: 0x%08lX" +msgstr "Echec de l'arrêt de diffusion, err 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format msgid "Failed to write attribute value, err 0x%04x" -msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%08lX" +msgstr "Impossible d'écrire la valeur de l'attribut, err 0x%04x" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format msgid "Failed to write gatts value, err 0x%04x" -msgstr "Impossible d'écrire la valeur de gatts. status: 0x%08lX" +msgstr "Impossible d'écrire la valeur de 'gatts', err 0x%04x" #: py/moduerrno.c msgid "File exists" @@ -744,44 +703,36 @@ msgstr "Le fichier existe" #: ports/nrf/supervisor/internal_flash.c msgid "Flash erase failed" -msgstr "" +msgstr "L'effacement de la flash a échoué" #: ports/nrf/supervisor/internal_flash.c #, c-format msgid "Flash erase failed to start, err 0x%04x" -msgstr "" +msgstr "Echec du démarrage de l'effacement de la flash, err 0x%04x" #: ports/nrf/supervisor/internal_flash.c msgid "Flash write failed" -msgstr "" +msgstr "L'écriture de la flash échoué" #: ports/nrf/supervisor/internal_flash.c #, c-format msgid "Flash write failed to start, err 0x%04x" -msgstr "" +msgstr "Echec du démarrage de l'écriture de la flash, err 0x%04x" #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c msgid "Frequency captured is above capability. Capture Paused." -msgstr "" +msgstr "La fréquence capturée est au delà des capacités. Capture en pause." #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "La fonction nécessite un verrou" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "La fonction nécessite un verrou." - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "le GPIO16 ne supporte pas le tirage (pull-up)" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "Groupe plein" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "opération d'E/S sur un fichier fermé" @@ -794,12 +745,12 @@ msgid "" "Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" "mpy-update for more info." msgstr "" -"Fichier .mpy incompatible. Merci de mettre à jour tous les .mpy. Voirhttp://" -"adafru.it/mpy-update pour plus d'informations." +"Fichier .mpy incompatible. Merci de mettre à jour tous les fichiers .mpy." +"Voir http://adafru.it/mpy-update pour plus d'informations." #: shared-bindings/_pew/PewPew.c msgid "Incorrect buffer size" -msgstr "" +msgstr "Taille de tampon incorrecte" #: py/moduerrno.c msgid "Input/output error" @@ -808,7 +759,7 @@ msgstr "Erreur d'entrée/sortie" #: shared-module/displayio/OnDiskBitmap.c #, fuzzy msgid "Invalid BMP file" -msgstr "Fichier invalide" +msgstr "Fichier BMP invalide" #: ports/atmel-samd/common-hal/pulseio/PWMOut.c #: ports/nrf/common-hal/pulseio/PWMOut.c shared-bindings/pulseio/PWMOut.c @@ -823,19 +774,23 @@ msgstr "Argument invalide" msgid "Invalid bit clock pin" msgstr "Broche invalide pour 'bit clock'" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "Bits par valeur invalides" + #: ports/nrf/common-hal/busio/UART.c #, fuzzy msgid "Invalid buffer size" -msgstr "longueur de tampon invalide" +msgstr "Longueur de tampon invalide" #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c msgid "Invalid capture period. Valid range: 1 - 500" -msgstr "" +msgstr "Période de capture invalide. Gamme valide: 1 à 500" #: shared-bindings/audioio/Mixer.c #, fuzzy msgid "Invalid channel count" -msgstr "Argument invalide" +msgstr "Nombre de canaux invalide" #: ports/atmel-samd/common-hal/audiobusio/PDMIn.c msgid "Invalid clock pin" @@ -894,12 +849,12 @@ msgstr "Polarité invalide" #: shared-bindings/microcontroller/__init__.c msgid "Invalid run mode." -msgstr "Mode de lancement invalide" +msgstr "Mode de lancement invalide." #: shared-bindings/audioio/Mixer.c #, fuzzy msgid "Invalid voice count" -msgstr "Type de service invalide" +msgstr "Nombre de voix invalide" #: shared-module/audioio/WaveFile.c msgid "Invalid wave file" @@ -911,11 +866,11 @@ msgstr "La partie gauche de l'argument nommé doit être un identifiant" #: shared-module/displayio/Group.c msgid "Layer must be a Group or TileGrid subclass." -msgstr "" +msgstr "'Layer' doit être un 'Group' ou une sous-classe 'TileGrid'." #: py/objslice.c msgid "Length must be an int" -msgstr "La longueur doit être entière" +msgstr "La longueur doit être un nombre entier" #: py/objslice.c msgid "Length must be non-negative" @@ -940,19 +895,14 @@ msgstr "Echec de l'init. de la broche MISO" msgid "MOSI pin init failed." msgstr "Echec de l'init. de la broche MOSI" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "La fréquence de PWM maximale est %dHz" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" -msgstr "" +msgstr "La valeur max. de x est %d lors d'une opération miroir" #: supervisor/shared/safe_mode.c msgid "MicroPython NLR jump failed. Likely memory corruption.\n" -msgstr "" +msgstr "Saut MicroPython NLR a échoué. Corruption de mémoire possible.\n" #: supervisor/shared/safe_mode.c msgid "MicroPython fatal error.\n" @@ -962,19 +912,9 @@ msgstr "Erreur fatale de MicroPython.\n" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "Le délais au démarrage du micro doit être entre 0.0 et 1.0" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "La fréquence de PWM minimale est 1Hz" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "" -"Les fréquences de PWM multiples ne sont pas supportées. PWM réglé à %dHz" - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." -msgstr "" +msgstr "Doit être une sous-classe de 'Group'" #: ports/atmel-samd/common-hal/analogio/AnalogOut.c msgid "No DAC on chip" @@ -985,10 +925,6 @@ msgstr "Pas de DAC sur la puce" msgid "No DMA channel found" msgstr "Aucun canal DMA trouvé" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Pas de support de PulseIn pour %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Pas de broche RX" @@ -999,19 +935,11 @@ msgstr "Pas de broche TX" #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c msgid "No available clocks" -msgstr "" +msgstr "Pas d'horloge disponible" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Pas de bus I2C par défaut" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Pas de bus SPI par défaut" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Pas de bus UART par défaut" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Pas de bus %q par défaut" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -1021,10 +949,6 @@ msgstr "Pas de GCLK libre" msgid "No hardware random available" msgstr "Pas de source matérielle d'aléa disponible" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Pas de support matériel pour une sortie analogique" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1032,7 +956,7 @@ msgstr "Pas de support matériel pour cette broche" #: py/moduerrno.c msgid "No space left on device" -msgstr "" +msgstr "Il n'y a plus d'espace libre sur le périphérique" #: py/moduerrno.c msgid "No such file/directory" @@ -1041,11 +965,7 @@ msgstr "Fichier/dossier introuvable" #: shared-bindings/bleio/CharacteristicBuffer.c #, fuzzy msgid "Not connected" -msgstr "Impossible de se connecter à 'AP'" - -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" +msgstr "Non connecté" #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" @@ -1061,7 +981,7 @@ msgstr "" #: ports/nrf/common-hal/busio/UART.c #, fuzzy msgid "Odd parity is not supported" -msgstr "parité impaire non supportée" +msgstr "Parité impaire non supportée" #: ports/atmel-samd/common-hal/audiobusio/PDMIn.c msgid "Only 8 or 16 bit mono with " @@ -1072,10 +992,8 @@ msgstr "Uniquement 8 ou 16 bit mono avec " msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" - -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "Seules les bitmaps de 8bits par couleur ou moins sont supportées" +"Seul le format BMP Windows, non compressé est supporté: la taille de l'entête" +"fournie est %d" #: shared-module/displayio/OnDiskBitmap.c #, c-format @@ -1083,15 +1001,12 @@ msgid "" "Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp " "given" msgstr "" +"Seul les BMP monochromes, 8bit indexé et 16bit sont supportés: %d bpp fourni" #: shared-bindings/_pixelbuf/PixelBuf.c #, fuzzy msgid "Only slices with step=1 (aka None) are supported" -msgstr "seuls les slices avec 'step=1' (cad None) sont supportées" - -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Seul le tx est supporté sur l'UART1 (GPIO2)." +msgstr "seuls les slices avec 'step=1' (cad 'None') sont supportées" #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." @@ -1112,40 +1027,23 @@ msgstr "" "La fréquence de PWM n'est pas modifiable quand variable_frequency est False " "à la construction." -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "La broche %d ne supporte pas le PWM" - #: py/moduerrno.c msgid "Permission denied" msgstr "Permission refusée" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "La broche %q n'a pas de convertisseur analogique-digital" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" -msgstr "la broche ne peut être utilisé pour l'ADC" - -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Pin(16) ne supporte pas le tirage (pull)" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Broche invalide pour le SPI" +msgstr "La broche ne peut être utilisée pour l'ADC" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" -msgstr "" +msgstr "Pixel au-delà des limites du tampon" #: py/builtinhelp.c #, fuzzy msgid "Plus any modules on the filesystem\n" -msgstr "Impossible de remonter le système de fichiers" +msgstr "Ainsi que tout autre module présent sur le système de fichiers\n" #: main.c msgid "Press any key to enter the REPL. Use CTRL-D to reload." @@ -1155,11 +1053,11 @@ msgstr "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger." msgid "Pull not used when direction is output." msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'." -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" -msgstr "calibration de la RTC non supportée sur cette carte" +msgstr "étalonnage de la RTC non supportée sur cette carte" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "RTC non supportée sur cette carte" @@ -1179,7 +1077,7 @@ msgstr "Système de fichier en lecture seule" #: shared-module/displayio/Bitmap.c #, fuzzy msgid "Read-only object" -msgstr "Lecture seule" +msgstr "Objet en lecture seule" #: ports/atmel-samd/common-hal/audioio/AudioOut.c msgid "Right channel unsupported" @@ -1187,32 +1085,24 @@ msgstr "Canal droit non supporté" #: shared-bindings/_pew/PewPew.c msgid "Row entry must be digitalio.DigitalInOut" -msgstr "" +msgstr "L'entrée de ligne 'Row' doit être un digitalio.DigitalInOut" #: main.c msgid "Running in safe mode! Auto-reload is off.\n" -msgstr "Mode sans-échec. Auto-rechargement désactivé.\n" +msgstr "Mode sans-échec! Auto-chargement désactivé.\n" #: main.c msgid "Running in safe mode! Not running saved code.\n" -msgstr "Mode sans-échec! Le code sauvegardé ne s'éxecute pas.\n" +msgstr "Mode sans-échec! Le code sauvegardé n'est pas éxecuté.\n" #: ports/atmel-samd/common-hal/busio/I2C.c msgid "SDA or SCL needs a pull up" msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "'STA' doit être actif" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "'STA' requis" - #: shared-bindings/audioio/Mixer.c #, fuzzy msgid "Sample rate must be positive" -msgstr "le taux d'échantillonage doit être positif" +msgstr "Le taux d'échantillonage doit être positif" #: ports/atmel-samd/common-hal/audioio/AudioOut.c #, c-format @@ -1226,21 +1116,21 @@ msgstr "Sérialiseur en cours d'utilisation" #: shared-bindings/nvm/ByteArray.c msgid "Slice and value different lengths." -msgstr "Slice et valeur de tailles différentes" +msgstr "Tranche et valeur de tailles différentes" #: shared-bindings/displayio/Bitmap.c shared-bindings/displayio/Group.c #: shared-bindings/displayio/TileGrid.c shared-bindings/pulseio/PulseIn.c msgid "Slices not supported" -msgstr "Slices non supportées" +msgstr "Tranches non supportées" #: ports/nrf/common-hal/bleio/Adapter.c #, c-format msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX" -msgstr "" +msgstr "Assertion en mode 'soft-device', id: 0x%08lX, pc: 0x%08lX" #: extmod/modure.c msgid "Splitting with sub-captures" -msgstr "Fractionnement avec des captures 'sub'" +msgstr "Fractionnement avec des sous-captures" #: shared-bindings/supervisor/__init__.c msgid "Stack size must be at least 256" @@ -1258,10 +1148,10 @@ msgid "" "If you didn't change the stack, then file an issue here with the contents of " "your CIRCUITPY drive:\n" msgstr "" -"La pile de CircuitPython a été corrompue parce que la pile était trop " +"Le tas (heap) de CircuitPython a été corrompu parce que la pile était trop " "petite.\n" "Augmentez la limite de taille de la pile et appuyez sur 'reset' (après avoir " -"éjecter CIRCUITPY).\n" +"éjecté CIRCUITPY).\n" "Si vous n'avez pas modifié la pile, merci de remplir un ticket avec le " "contenu de votre lecteur CIRCUITPY :\n" @@ -1276,7 +1166,7 @@ msgstr "" "L'alimentation du microcontroleur a chuté. Merci de vérifier que votre " "alimentation fournit\n" "suffisamment de puissance pour l'ensemble du circuit et appuyez sur " -"'reset' (après avoir éjecter CIRCUITPY).\n" +"'reset' (après avoir éjecté CIRCUITPY).\n" #: supervisor/shared/safe_mode.c msgid "" @@ -1284,11 +1174,11 @@ msgid "" "exit safe mode.\n" msgstr "" "Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. " -"Appuyer denouveau pour quitter de le mode sans-échec.\n" +"Appuyer de nouveau pour quitter de le mode sans-échec.\n" #: shared-module/audioio/Mixer.c msgid "The sample's bits_per_sample does not match the mixer's" -msgstr "Le bits_per_sample de l'échantillon ne correspond pas à celui du mixer" +msgstr "Le 'bits_per_sample' de l'échantillon ne correspond pas à celui du mixer" #: shared-module/audioio/Mixer.c msgid "The sample's channel count does not match the mixer's" @@ -1300,19 +1190,19 @@ msgstr "L'échantillonage de l'échantillon ne correspond pas à celui du mixer" #: shared-module/audioio/Mixer.c msgid "The sample's signedness does not match the mixer's" -msgstr "Le signe de l'échantillon ne correspond pas au mixer" +msgstr "Le signe de l'échantillon ne correspond pas à celui du mixer" #: shared-bindings/displayio/TileGrid.c msgid "Tile height must exactly divide bitmap height" -msgstr "" +msgstr "La hauteur de la tuile doit diviser exactement la hauteur de l'image" #: shared-bindings/displayio/TileGrid.c msgid "Tile indices must be 0 - 255" -msgstr "" +msgstr "Les indices des tuiles doivent être compris entre 0 et 255 " #: shared-bindings/displayio/TileGrid.c msgid "Tile width must exactly divide bitmap width" -msgstr "" +msgstr "La largeur de la tuile doit diviser exactement la largeur de l'image" #: supervisor/shared/safe_mode.c msgid "To exit, please reset the board without " @@ -1324,11 +1214,11 @@ msgstr "Trop de canaux dans l'échantillon." #: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c msgid "Too many display busses" -msgstr "" +msgstr "Trop de bus d'affichage" #: shared-bindings/displayio/Display.c msgid "Too many displays" -msgstr "" +msgstr "Trop d'affichages" #: py/obj.c msgid "Traceback (most recent call last):\n" @@ -1338,15 +1228,6 @@ msgstr "Trace (appels les plus récents en dernier):\n" msgid "Tuple or struct_time argument required" msgstr "Argument de type tuple ou struct_time nécessaire" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) n'existe pas" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "UART(1) ne peut pas lire" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "USB occupé" @@ -1357,15 +1238,15 @@ msgstr "Erreur USB" #: shared-bindings/bleio/UUID.c msgid "UUID integer value not in range 0 to 0xffff" -msgstr "" +msgstr "valeur de l'entier UUID est hors-bornes 0 à 0xffff" #: shared-bindings/bleio/UUID.c msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" -msgstr "" +msgstr "La chaîne UUID n'est pas au format 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" #: shared-bindings/bleio/UUID.c msgid "UUID value is not str, int or byte buffer" -msgstr "" +msgstr "la valeur de l'UUID n'est pas une chaîne de caractères, un entier ou un tampon d'octets" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c #: ports/atmel-samd/common-hal/audioio/AudioOut.c @@ -1383,29 +1264,21 @@ msgstr "Impossible d'initialiser le parser" #: shared-module/displayio/OnDiskBitmap.c msgid "Unable to read color palette data" -msgstr "" - -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Impossible de remonter le système de fichiers" +msgstr "Impossible de lire les données de la palette de couleurs" #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." -msgstr "Impossible d'écrire sur la nvm." +msgstr "Impossible d'écrire sur la mémoire non-volatile." #: ports/nrf/common-hal/bleio/UUID.c #, fuzzy msgid "Unexpected nrfx uuid type" -msgstr "indentation inattendue" - -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Type inconnu" +msgstr "Type inattendu pour l'uuid nrfx" #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." -msgstr "" +msgstr "Pas de correspondance du nombres d'éléments à droite (attendu %d, obtenu %d)" #: ports/atmel-samd/common-hal/busio/I2C.c msgid "Unsupported baudrate" @@ -1414,7 +1287,7 @@ msgstr "Débit non supporté" #: shared-module/displayio/Display.c #, fuzzy msgid "Unsupported display bus type" -msgstr "type de bitmap non supporté" +msgstr "Type de bus d'affichage non supporté" #: shared-module/audioio/WaveFile.c msgid "Unsupported format" @@ -1428,14 +1301,9 @@ msgstr "Opération non supportée" msgid "Unsupported pull value." msgstr "Valeur de tirage 'pull' non supportée." -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" -"Utilisez 'esptool' pour effacer la flash et rechargez Python à la place" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" -msgstr "les fonctions Viper ne supportent pas plus de 4 arguments actuellement" +msgstr "les fonctions de Viper ne supportent pas plus de 4 arguments actuellement" #: shared-module/audioio/Mixer.c msgid "Voice index too high" @@ -1456,7 +1324,7 @@ msgid "" msgstr "" "Bienvenue sur Adafruit CircuitPython %s!\n" "\n" -"Vistez learn.adafruit.com/category/circuitpython pour des guides.\n" +"Visitez learn.adafruit.com/category/circuitpython pour les guides.\n" "\n" "Pour lister les modules inclus, tapez `help(\"modules\")`.\n" @@ -1471,11 +1339,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "Vous avez demandé à démarrer en mode sans-échec par " -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "__init__() doit retourner None" @@ -1497,7 +1360,7 @@ msgstr "un objet 'bytes-like' est requis" msgid "abort() called" msgstr "abort() appelé" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "l'adresse %08x n'est pas alignée sur %d octets" @@ -1536,7 +1399,7 @@ msgstr "attribut pas encore supporté" #: ports/nrf/common-hal/bleio/Characteristic.c msgid "bad GATT role" -msgstr "" +msgstr "mauvais rôle GATT" #: py/builtinevex.c msgid "bad compile mode" @@ -1569,17 +1432,17 @@ msgstr "les bits doivent être 8" #: shared-bindings/audioio/Mixer.c #, fuzzy msgid "bits_per_sample must be 8 or 16" -msgstr "bits doivent être 8 ou 16" +msgstr "'bits_per_sample' doivent être 8 ou 16" #: py/emitinlinethumb.c #, fuzzy msgid "branch not in range" -msgstr "argument de chr() hors de la gamme range(256)" +msgstr "branche hors-bornes" #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "buf is too small. need %d bytes" -msgstr "" +msgstr "'buf' est trop petit. Besoin de %d octets" #: shared-bindings/audioio/RawSample.c msgid "buffer must be a bytes-like object" @@ -1588,15 +1451,11 @@ msgstr "le tampon doit être un objet bytes-like" #: shared-module/struct/__init__.c #, fuzzy msgid "buffer size must match format" -msgstr "les slices de tampon doivent être de longueurs égales" +msgstr "la taille du tampon doit correspondre au format" #: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c msgid "buffer slices must be of equal length" -msgstr "les slices de tampon doivent être de longueurs égales" - -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "tampon trop long" +msgstr "les tranches de tampon doivent être de longueurs égales" #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c @@ -1609,7 +1468,7 @@ msgstr "les tampons doivent être de la même longueur" #: shared-bindings/_pew/PewPew.c msgid "buttons must be digitalio.DigitalInOut" -msgstr "" +msgstr "les boutons doivent être des digitalio.DigitalInOut" #: py/vm.c msgid "byte code not implemented" @@ -1618,7 +1477,7 @@ msgstr "bytecode non implémenté" #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "byteorder is not an instance of ByteOrder (got a %s)" -msgstr "" +msgstr "'byteorder' n'est pas une instance de ByteOrder (reçu un %s)" #: ports/atmel-samd/common-hal/busio/UART.c msgid "bytes > 8 bits not supported" @@ -1626,44 +1485,39 @@ msgstr "octets > 8 bits non supporté" #: py/objstr.c msgid "bytes value out of range" -msgstr "valeur des octets hors gamme" +msgstr "valeur des octets hors bornes" #: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" -msgstr "calibration hors gamme" +msgstr "étalonnage hors bornes" #: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is read only" -msgstr "calibration en lecture seule" +msgstr "étalonnage en lecture seule" #: ports/atmel-samd/common-hal/rtc/RTC.c msgid "calibration value out of range +/-127" -msgstr "valeur de calibration hors gamme +/-127" +msgstr "valeur de étalonnage hors bornes +/-127" #: py/emitinlinethumb.c msgid "can only have up to 4 parameters to Thumb assembly" -msgstr "il peut y avoir jusqu'à 4 paramètres pour Thumb assembly" +msgstr "il peut y avoir jusqu'à 4 paramètres pour l'assemblage Thumb" #: py/emitinlinextensa.c msgid "can only have up to 4 parameters to Xtensa assembly" -msgstr "Maximum 4 paramètres pour l'assembleur Xtensa" +msgstr "maximum 4 paramètres pour l'assembleur Xtensa" #: py/persistentcode.c msgid "can only save bytecode" msgstr "ne peut sauvegarder que du bytecode" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "ne peut demander qu'un seul paramètre" - #: py/objtype.c msgid "can't add special method to already-subclassed class" -msgstr "" -"impossible d'ajouter une méthode spécial à une classe déjà sous-classée" +msgstr "impossible d'ajouter une méthode spéciale à une classe déjà sous-classée" #: py/compile.c msgid "can't assign to expression" -msgstr "ne peut pas assigner à l'expression" +msgstr "ne peut pas assigner à une expression" #: py/obj.c #, c-format @@ -1673,12 +1527,12 @@ msgstr "ne peut convertir %s en nombre complexe" #: py/obj.c #, c-format msgid "can't convert %s to float" -msgstr "ne peut convertir %s en nombre à virgule flottante (float)" +msgstr "ne peut convertir %s en nombre à virgule flottante 'float'" #: py/obj.c #, c-format msgid "can't convert %s to int" -msgstr "ne peut convertir %s en entier (int)" +msgstr "ne peut convertir %s en entier 'int'" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" @@ -1686,16 +1540,16 @@ msgstr "impossible de convertir l'objet '%q' en '%q' implicitement" #: py/objint.c msgid "can't convert NaN to int" -msgstr "on ne peut convertir NaN en int" +msgstr "on ne peut convertir NaN en entier 'int'" #: shared-bindings/i2cslave/I2CSlave.c #, fuzzy msgid "can't convert address to int" -msgstr "ne peut convertir %s en entier int" +msgstr "ne peut convertir l'adresse en entier 'int'" #: py/objint.c msgid "can't convert inf to int" -msgstr "on ne peut convertir inf en int" +msgstr "on ne peut convertir l'infini 'inf' en entier 'int'" #: py/obj.c msgid "can't convert to complex" @@ -1703,19 +1557,19 @@ msgstr "ne peut convertir en nombre complexe" #: py/obj.c msgid "can't convert to float" -msgstr "ne peut convertir en nombre à virgule flottante (float)" +msgstr "ne peut convertir en nombre à virgule flottante 'float'" #: py/obj.c msgid "can't convert to int" -msgstr "ne peut convertir en entier (int)" +msgstr "ne peut convertir en entier 'int'" #: py/objstr.c msgid "can't convert to str implicitly" -msgstr "impossible de convertir en str implicitement" +msgstr "impossible de convertir en chaine 'str' implicitement" #: py/compile.c msgid "can't declare nonlocal in outer code" -msgstr "ne peut déclarer de nonlocal dans un code externe" +msgstr "ne peut déclarer de 'nonlocal' dans un code externe" #: py/compile.c msgid "can't delete expression" @@ -1729,14 +1583,6 @@ msgstr "opération binaire impossible entre '%q' et '%q'" msgid "can't do truncated division of a complex number" msgstr "on ne peut pas faire de division tronquée de nombres complexes" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "impossible de récupérer la config de 'AP'" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "impossible de récupérer la config de 'STA'" - #: py/compile.c msgid "can't have multiple **x" msgstr "il ne peut y avoir de **x multiples" @@ -1755,26 +1601,17 @@ msgstr "impossible de charger depuis '%q'" #: py/emitnative.c msgid "can't load with '%q' index" -msgstr "impossible de charger avec l'index '%q'" +msgstr "impossible de charger avec l'indice '%q'" #: py/objgenerator.c msgid "can't pend throw to just-started generator" -msgstr "" +msgstr "on ne peut effectuer une action de type 'pend throw' sur un générateur fraîchement démarré" #: py/objgenerator.c msgid "can't send non-None value to a just-started generator" -msgstr "" -"on ne peut envoyer une valeur autre que None à un générateur fraîchement " +msgstr "on ne peut envoyer une valeur autre que 'None' à un générateur fraîchement " "démarré" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "impossible de régler la config de 'AP'" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "impossible de régler la config de 'STA'" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "attribut non modifiable" @@ -1789,7 +1626,7 @@ msgstr "impossible de stocker vers '%q'" #: py/emitnative.c msgid "can't store with '%q' index" -msgstr "impossible de stocker avec un index '%q'" +msgstr "impossible de stocker avec un indice '%q'" #: py/objstr.c msgid "" @@ -1827,7 +1664,7 @@ msgstr "typage" #: shared-bindings/bleio/Service.c msgid "characteristics includes an object that is not a Characteristic" -msgstr "" +msgstr "'characteristics' inclut un objet qui n'est pas une 'Characteristic'" #: shared-bindings/_stage/Text.c msgid "chars buffer too small" @@ -1848,13 +1685,12 @@ msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)" #: shared-bindings/displayio/Palette.c #, fuzzy msgid "color buffer must be a buffer or int" -msgstr "le tampon de couleur doit être un tampon ou un entier" +msgstr "le tampon de couleur doit être un tampon ou un entier 'int'" #: shared-bindings/displayio/Palette.c #, fuzzy msgid "color buffer must be a bytearray or array of type 'b' or 'B'" -msgstr "" -"le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'" +msgstr "le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'" #: shared-bindings/displayio/Palette.c #, fuzzy @@ -1864,7 +1700,7 @@ msgstr "la couleur doit être entre 0x000000 et 0xffffff" #: shared-bindings/displayio/ColorConverter.c #, fuzzy msgid "color should be an int" -msgstr "la couleur doit être un entier (int)" +msgstr "la couleur doit être un entier 'int'" #: py/objcomplex.c msgid "complex division by zero" @@ -1880,7 +1716,7 @@ msgstr "entête de compression" #: py/parse.c msgid "constant must be an integer" -msgstr "une constante doit être un entier" +msgstr "constante doit être un entier" #: py/emitnative.c msgid "conversion to object" @@ -1902,8 +1738,7 @@ msgstr "" #: shared-bindings/audiobusio/PDMIn.c msgid "destination buffer must be an array of type 'H' for bit_depth = 16" -msgstr "" -"le tampon de destination doit être un tableau de type 'H' pour bit_depth = 16" +msgstr "le tampon de destination doit être un tableau de type 'H' pour bit_depth = 16" #: shared-bindings/audiobusio/PDMIn.c msgid "destination_length must be an int >= 0" @@ -1918,17 +1753,13 @@ msgstr "la séquence de mise à jour de dict a une mauvaise longueur" msgid "division by zero" msgstr "division par zéro" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "soit 'pos', soit 'kw' est permis en argument" - #: py/objdeque.c msgid "empty" msgstr "vide" #: extmod/moduheapq.c extmod/modutimeq.c msgid "empty heap" -msgstr "'heap' vide" +msgstr "tas vide" #: py/objstr.c msgid "empty separator" @@ -1945,7 +1776,7 @@ msgstr "fin de format en cherchant une spécification de conversion" #: shared-bindings/displayio/Shape.c #, fuzzy msgid "end_x should be an int" -msgstr "y doit être un entier (int)" +msgstr "y doit être un entier 'int'" #: ports/nrf/common-hal/busio/UART.c #, c-format @@ -1954,7 +1785,7 @@ msgstr "erreur = 0x%08lX" #: py/runtime.c msgid "exceptions must derive from BaseException" -msgstr "les exceptions doivent dériver de BaseException" +msgstr "les exceptions doivent dériver de 'BaseException'" #: py/objstr.c msgid "expected ':' after format specifier" @@ -1972,33 +1803,25 @@ msgstr "un tuple ou une liste est attendu" msgid "expecting a dict for keyword args" msgstr "un dict est attendu pour les arguments nommés" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "une broche (Pin) est attendue" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "une instruction assembleur est attendue" #: py/compile.c msgid "expecting just a value for set" -msgstr "une simple valeur est attendue pour set" +msgstr "une simple valeur est attendue pour l'ensemble 'set'" #: py/compile.c msgid "expecting key:value for dict" -msgstr "couple clef:valeur attendu pour un objet dict" +msgstr "couple clef:valeur attendu pour un dictionnaire 'dict'" #: py/argcheck.c msgid "extra keyword arguments given" -msgstr "argument nommé donné en plus" +msgstr "argument(s) nommé(s) supplémentaire(s) donné(s)" #: py/argcheck.c msgid "extra positional arguments given" -msgstr "argument positionnel donné en plus" - -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "" +msgstr "argument(s) positionnel(s) supplémentaire(s) donné(s)" #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" @@ -2016,26 +1839,18 @@ msgstr "le premier argument de super() doit être un type" msgid "firstbit must be MSB" msgstr "le 1er bit doit être le MSB" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "l'emplacement en mémoire flash doit être inférieure à 1Mo" - #: py/objint.c msgid "float too big" -msgstr "nombre flottant trop grand" +msgstr "nombre à virgule flottante trop grand" #: shared-bindings/_stage/Text.c msgid "font must be 2048 bytes long" -msgstr "la fonte doit être longue de 2048 octets" +msgstr "la police doit être longue de 2048 octets" #: py/objstr.c msgid "format requires a dict" msgstr "le format nécessite un dict" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "la fréquence doit être soit 80MHz soit 160MHz" - #: py/objdeque.c msgid "full" msgstr "plein" @@ -2060,7 +1875,7 @@ msgstr "il manque %d arguments obligatoires à la fonction" #: py/bc.c msgid "function missing keyword-only argument" -msgstr "il manque l'argument nommé obligatoire" +msgstr "il manque un argument nommé obligatoire" #: py/bc.c msgid "function missing required keyword argument '%q'" @@ -2069,12 +1884,12 @@ msgstr "il manque l'argument nommé obligatoire '%q'" #: py/bc.c #, c-format msgid "function missing required positional argument #%d" -msgstr "il manque l'argument obligatoire #%d" +msgstr "il manque l'argument positionnel obligatoire #%d" #: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" -msgstr "la fonction prend %d argument(s) mais %d ont été donné(s)" +msgstr "la fonction prend %d argument(s) positionnels mais %d ont été donné(s)" #: shared-bindings/time/__init__.c msgid "function takes exactly 9 arguments" @@ -2090,11 +1905,11 @@ msgstr "le générateur a ignoré GeneratorExit" #: shared-bindings/_stage/Layer.c msgid "graphic must be 2048 bytes long" -msgstr "le graphic doit être long de 2048 octets" +msgstr "graphic doit être long de 2048 octets" #: extmod/moduheapq.c msgid "heap must be a list" -msgstr "'heap' doit être une liste" +msgstr "le tas doit être une liste" #: py/compile.c msgid "identifier redefined as global" @@ -2104,10 +1919,6 @@ msgstr "identifiant redéfini comme global" msgid "identifier redefined as nonlocal" msgstr "identifiant redéfini comme nonlocal" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "débit impossible" - #: py/objstr.c msgid "incomplete format" msgstr "format incomplet" @@ -2121,7 +1932,6 @@ msgid "incorrect padding" msgstr "espacement incorrect" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index hors gamme" @@ -2144,7 +1954,7 @@ msgstr "entier requis" #: ports/nrf/common-hal/bleio/Broadcaster.c msgid "interval not in range 0.0020 to 10.24" -msgstr "" +msgstr "intervalle hors bornes 0.0020 à 10.24" #: extmod/machine_i2c.c msgid "invalid I2C peripheral" @@ -2154,26 +1964,14 @@ msgstr "périphérique I2C invalide" msgid "invalid SPI peripheral" msgstr "périphérique SPI invalide" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "alarme invalide" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "arguments invalides" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "longueur de tampon invalide" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "certificat invalide" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "bits de données invalides" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "index invalide pour dupterm" @@ -2194,18 +1992,10 @@ msgstr "clé invalide" msgid "invalid micropython decorator" msgstr "décorateur micropython invalide" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "broche invalide" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "pas invalide" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "bits d'arrêt invalides" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "syntaxe invalide" @@ -2229,21 +2019,19 @@ msgstr "l'argument 1 de issubclass() doit être une classe" #: py/objtype.c msgid "issubclass() arg 2 must be a class or a tuple of classes" -msgstr "" -"l'argument 2 de issubclass() doit être une classe ou un tuple de classes" +msgstr "l'argument 2 de issubclass() doit être une classe ou un tuple de classes" #: py/objstr.c msgid "join expects a list of str/bytes objects consistent with self object" -msgstr "join attend une liste d'objets str/bytes cohérent avec l'objet self" +msgstr "'join' s'attend à une liste d'objets str/bytes cohérents avec l'objet self" #: py/argcheck.c msgid "keyword argument(s) not yet implemented - use normal args instead" -msgstr "" -"argument(s) nommé(s) pas encore implémenté - utilisez les arguments normaux" +msgstr "argument(s) nommé(s) pas encore implémenté(s) - utilisez les arguments normaux" #: py/bc.c msgid "keywords must be strings" -msgstr "les noms doivent être des chaînes de caractère" +msgstr "les noms doivent être des chaînes de caractères" #: py/emitinlinethumb.c py/emitinlinextensa.c msgid "label '%q' not defined" @@ -2253,13 +2041,9 @@ msgstr "label '%q' non supporté" msgid "label redefined" msgstr "label redéfini" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "'len' doit être un multiple de 4" - #: py/stream.c msgid "length argument not allowed for this type" -msgstr "argument lenght non permis pour ce type" +msgstr "argument 'length' non-permis pour ce type" #: py/objarray.c msgid "lhs and rhs should be compatible" @@ -2298,15 +2082,9 @@ msgstr "profondeur maximale de récursivité dépassée" msgid "memory allocation failed, allocating %u bytes" msgstr "l'allocation de mémoire a échoué en allouant %u octets" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" -"l'allocation de mémoire a échoué en allouant %u octets pour un code natif" - #: py/runtime.c msgid "memory allocation failed, heap is locked" -msgstr "l'allocation de mémoire a échoué, la pile est vérrouillé" +msgstr "l'allocation de mémoire a échoué, le tas est vérrouillé" #: py/builtinimport.c msgid "module not found" @@ -2318,11 +2096,11 @@ msgstr "*x multiple dans l'assignement" #: py/objtype.c msgid "multiple bases have instance lay-out conflict" -msgstr "de multiple bases ont un conflit de lay-out d'instance" +msgstr "de multiples bases ont un conflit de lay-out d'instance" #: py/objtype.c msgid "multiple inheritance not supported" -msgstr "héritage multiple non supporté" +msgstr "héritages multiples non supportés" #: py/emitnative.c msgid "must raise an object" @@ -2330,11 +2108,11 @@ msgstr "doit lever un objet" #: extmod/machine_spi.c msgid "must specify all of sck/mosi/miso" -msgstr "SCK, MOSI et MISO doivent tous être spécifiés" +msgstr "sck, mosi et miso doivent tous être spécifiés" #: py/modbuiltins.c msgid "must use keyword argument for key function" -msgstr "il faut utiliser un argument nommé pour une fonction key" +msgstr "doit utiliser un argument nommé pour une fonction key" #: py/runtime.c msgid "name '%q' is not defined" @@ -2360,11 +2138,11 @@ msgstr "" #: py/runtime.c #, c-format msgid "need more than %d values to unpack" -msgstr "nécessite plus de %d valeur à dégrouper" +msgstr "nécessite plus de %d valeurs à dégrouper" #: py/objint_longlong.c py/objint_mpz.c py/runtime.c msgid "negative power with no float support" -msgstr "puissance négative sans support des nombres flottants" +msgstr "puissance négative sans support des nombres à virgule flottante" #: py/objint_mpz.c py/runtime.c msgid "negative shift count" @@ -2377,7 +2155,7 @@ msgstr "aucune exception active à relever" #: shared-bindings/socket/__init__.c shared-module/network/__init__.c #, fuzzy msgid "no available NIC" -msgstr "NIC non disponible" +msgstr "adapteur réseau non disponible" #: py/compile.c msgid "no binding for nonlocal found" @@ -2393,12 +2171,11 @@ msgstr "pas de tel attribut" #: py/compile.c msgid "non-default argument follows default argument" -msgstr "" -"un argument sans valeur par défaut suit un argument avec valeur par défaut" +msgstr "un argument sans valeur par défaut suit un argument avec valeur par défaut" #: extmod/modubinascii.c msgid "non-hex digit found" -msgstr "digit non-héxadécimale trouvé" +msgstr "chiffre non-héxadécimale trouvé" #: py/compile.c msgid "non-keyword arg after */**" @@ -2410,17 +2187,11 @@ msgstr "argument non-nommé après argument nommé" #: shared-bindings/bleio/UUID.c msgid "not a 128-bit UUID" -msgstr "" - -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "canal ADC non valide : %d" +msgstr "n'est pas un UUID 128 bits" #: py/objstr.c msgid "not all arguments converted during string formatting" -msgstr "" -"tous les arguments n'ont pas été convertis pendant le formatage de la chaîne" +msgstr "tous les arguments n'ont pas été convertis pendant le formatage de la chaîne" #: py/objstr.c msgid "not enough arguments for format string" @@ -2441,7 +2212,7 @@ msgstr "l'objet ne supporte pas la suppression d'éléments" #: py/obj.c msgid "object has no len" -msgstr "l'objet n'a pas de len" +msgstr "l'objet n'a pas de 'len'" #: py/obj.c msgid "object is not subscriptable" @@ -2470,7 +2241,7 @@ msgstr "l'objet de type '%s' n'a pas de len()" #: py/obj.c msgid "object with buffer protocol required" -msgstr "un objet avec un protocol de tampon est nécessaire" +msgstr "un objet avec un protocole de tampon est nécessaire" #: extmod/modubinascii.c msgid "odd-length string" @@ -2484,7 +2255,7 @@ msgstr "adresse hors limites" #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: shared-bindings/nvm/ByteArray.c msgid "only slices with step=1 (aka None) are supported" -msgstr "seuls les slices avec 'step=1' (cad None) sont supportées" +msgstr "seules les tranches avec 'step=1' (cad None) sont supportées" #: py/modbuiltins.c msgid "ord expects a character" @@ -2493,7 +2264,7 @@ msgstr "ord attend un caractère" #: py/modbuiltins.c #, c-format msgid "ord() expected a character, but string of length %d found" -msgstr "ord() attend un caractère mais une chaîne de longueur %d a été trouvée" +msgstr "ord() attend un caractère mais une chaîne de caractère de longueur %d a été trouvée" #: py/objint_mpz.c msgid "overflow converting long int to machine word" @@ -2506,7 +2277,7 @@ msgstr "la palette doit être longue de 32 octets" #: shared-bindings/displayio/Palette.c #, fuzzy msgid "palette_index should be an int" -msgstr "palette_index devrait être un entier (int)'" +msgstr "palette_index devrait être un entier 'int'" #: py/compile.c msgid "parameter annotation must be an identifier" @@ -2521,37 +2292,31 @@ msgstr "les paramètres doivent être des registres dans la séquence a2 à a5" msgid "parameters must be registers in sequence r0 to r3" msgstr "les paramètres doivent être des registres dans la séquence r0 à r3" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "la broche ne supporte pas les interruptions (IRQ)" - #: shared-bindings/displayio/Bitmap.c #, fuzzy msgid "pixel coordinates out of bounds" -msgstr "adresse hors limites" +msgstr "coordonnées de pixel hors limites" #: shared-bindings/displayio/Bitmap.c msgid "pixel value requires too many bits" -msgstr "" +msgstr "la valeur du pixel requiet trop de bits" #: shared-bindings/displayio/TileGrid.c msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" -msgstr "" -"pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter" +msgstr "pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "'pop' d'une entrée PulseIn vide" #: py/objset.c msgid "pop from an empty set" -msgstr "pop d'un ensemble set vide" +msgstr "'pop' d'un ensemble set vide" #: py/objlist.c msgid "pop from empty list" -msgstr "pop d'une liste vide" +msgstr "'pop' d'une liste vide" #: py/objdict.c msgid "popitem(): dictionary is empty" @@ -2571,12 +2336,12 @@ msgstr "dépassement de file" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "rawbuf is not the same size as buf" -msgstr "" +msgstr "'rawbuf' n'est pas de la même taille que 'buf'" #: shared-bindings/_pixelbuf/__init__.c #, fuzzy msgid "readonly attribute" -msgstr "attribut illisible" +msgstr "attribut en lecture seule" #: py/builtinimport.c msgid "relative import" @@ -2595,10 +2360,6 @@ msgstr "l'annotation de return doit être un identifiant" msgid "return expected '%q' but got '%q'" msgstr "return attendait '%q' mais a reçu '%q'" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2615,21 +2376,17 @@ msgstr "" msgid "sampling rate out of range" msgstr "taux d'échantillonage hors gamme" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "échec du scan" - #: py/modmicropython.c msgid "schedule stack full" -msgstr "pile de plannification pleine" +msgstr "pile de planification pleine" #: lib/utils/pyexec.c py/builtinimport.c msgid "script compilation not supported" -msgstr "compilation de script non supporté" +msgstr "compilation de script non supportée" #: shared-bindings/bleio/Peripheral.c msgid "services includes an object that is not a Service" -msgstr "" +msgstr "'services' inclut un object qui n'est pas un 'Service'" #: py/objstr.c msgid "sign not allowed in string format specifier" @@ -2649,7 +2406,7 @@ msgstr "la longueur de sleep ne doit pas être négative" #: py/objslice.c py/sequence.c msgid "slice step cannot be zero" -msgstr "le pas 'step' de slice ne peut être zéro" +msgstr "le pas 'step' de la tranche ne peut être zéro" #: py/objint.c py/sequence.c msgid "small int overflow" @@ -2666,7 +2423,7 @@ msgstr "indices de début/fin" #: shared-bindings/displayio/Shape.c #, fuzzy msgid "start_x should be an int" -msgstr "y doit être un entier (int)" +msgstr "'start_x' doit être un entier 'int'" #: shared-bindings/random/__init__.c msgid "step must be non-zero" @@ -2691,12 +2448,11 @@ msgstr "index de chaîne hors gamme" #: py/objstrunicode.c #, c-format msgid "string indices must be integers, not %s" -msgstr "les indices de chaîne de caractère doivent être des entiers, pas %s" +msgstr "les indices de chaîne de caractères doivent être des entiers, pas %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" -msgstr "" -"chaîne de carac. non supportée; utilisez des bytes ou un tableau de bytes" +msgstr "chaîne de carac. non supportée; utilisez des bytes ou un tableau de bytes" #: extmod/moductypes.c msgid "struct: cannot index" @@ -2704,7 +2460,7 @@ msgstr "struct: indexage impossible" #: extmod/moductypes.c msgid "struct: index out of range" -msgstr "struct: index hors limite" +msgstr "struct: index hors limites" #: extmod/moductypes.c msgid "struct: no fields" @@ -2732,7 +2488,7 @@ msgstr "le seuil doit être dans la gamme 0-65536" #: shared-bindings/displayio/TileGrid.c msgid "tile index out of bounds" -msgstr "" +msgstr "indice de tuile hors limites" #: shared-bindings/time/__init__.c msgid "time.struct_time() takes a 9-sequence" @@ -2749,11 +2505,11 @@ msgstr "timeout >100 (exprimé en secondes, pas en ms)" #: shared-bindings/bleio/CharacteristicBuffer.c #, fuzzy msgid "timeout must be >= 0.0" -msgstr "les bits doivent être 8" +msgstr "'timeout' doit être >=0.0" #: shared-bindings/time/__init__.c msgid "timestamp out of range for platform time_t" -msgstr "timestamp hors gamme pour time_t de la plateforme" +msgstr "'timestamp' hors bornes pour 'time_t' de la plateforme" #: shared-bindings/gamepad/GamePad.c msgid "too many arguments" @@ -2778,11 +2534,11 @@ msgstr "tuple/liste a une mauvaise longueur" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "tuple/list required on RHS" -msgstr "" +msgstr "tuple ou liste requis en partie droite" #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "tx and rx cannot both be None" -msgstr "tx et rx ne peuvent être None tous les deux" +msgstr "tx et rx ne peuvent être 'None' tous les deux" #: py/objtype.c msgid "type '%q' is not an acceptable base type" @@ -2814,11 +2570,11 @@ msgstr "indentation inattendue" #: py/bc.c msgid "unexpected keyword argument" -msgstr "argument nommé imprévu" +msgstr "argument nommé inattendu" #: py/bc.c py/objnamedtuple.c msgid "unexpected keyword argument '%q'" -msgstr "argument nommé '%q' imprévu" +msgstr "argument nommé '%q' inattendu" #: py/lexer.c msgid "unicode name escapes" @@ -2826,11 +2582,7 @@ msgstr "échappements de nom unicode" #: py/parse.c msgid "unindent does not match any outer indentation level" -msgstr "la désindentation ne correspond à aucune indentation" - -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "paramètre de config. inconnu" +msgstr "la désindentation ne correspond à aucune indentation précédente" #: py/objstr.c #, c-format @@ -2852,10 +2604,6 @@ msgstr "code de format '%c' inconnu pour un objet de type 'float'" msgid "unknown format code '%c' for object of type 'str'" msgstr "code de format '%c' inconnu pour un objet de type 'str'" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "paramètre de status inconnu" - #: py/compile.c msgid "unknown type" msgstr "type inconnu" @@ -2872,6 +2620,11 @@ msgstr "'{' sans correspondance dans le format" msgid "unreadable attribute" msgstr "attribut illisible" +#: shared-bindings/displayio/TileGrid.c +#, fuzzy +msgid "unsupported %q type" +msgstr "type de %q non supporté" + #: py/emitinlinethumb.c #, fuzzy, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2882,11 +2635,6 @@ msgstr "instruction Thumb '%s' non supportée avec %d arguments" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "instruction Xtensa '%s' non supportée avec %d arguments" -#: shared-bindings/displayio/TileGrid.c -#, fuzzy -msgid "unsupported bitmap type" -msgstr "type de bitmap non supporté" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2904,13 +2652,13 @@ msgstr "type non supporté pour l'opérateur" msgid "unsupported types for %q: '%s', '%s'" msgstr "type non supporté pour %q: '%s', '%s'" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() a échoué" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "'value_count' doit être > 0" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" -msgstr "" +msgstr "'write_args' doit être une liste, un tuple ou 'None'" #: py/objstr.c msgid "wrong number of arguments" @@ -2923,28 +2671,198 @@ msgstr "mauvais nombre de valeurs à dégrouper" #: shared-module/displayio/Shape.c #, fuzzy msgid "x value out of bounds" -msgstr "adresse hors limites" +msgstr "valeur x hors limites" #: shared-bindings/displayio/Shape.c #, fuzzy msgid "y should be an int" -msgstr "y doit être un entier (int)" +msgstr "y doit être un entier 'int'" #: shared-module/displayio/Shape.c #, fuzzy msgid "y value out of bounds" -msgstr "adresse hors limites" +msgstr "valeur y hors limites" #: py/objrange.c msgid "zero step" msgstr "'step' nul" +#~ msgid "AP required" +#~ msgstr "'AP' requis" + +#~ msgid "Cannot connect to AP" +#~ msgstr "Impossible de se connecter à 'AP'" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "Impossible de se déconnecter de 'AP'" + +#~ msgid "Cannot set STA config" +#~ msgstr "Impossible de configurer STA" + +#~ msgid "Cannot update i/f status" +#~ msgstr "le status i/f ne peut être mis à jour" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "Ne sais pas comment passer l'objet à une fonction native" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "L'ESP8266 ne supporte pas le mode sans-échec" + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "L'ESP8266 ne supporte pas le rappel (pull-down)" + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Erreur dans ffi_prep_cif" + +#, fuzzy +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX" + +#, fuzzy +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX" + +#~ msgid "Function requires lock." +#~ msgstr "La fonction nécessite un verrou." + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "Le GPIO16 ne supporte pas le tirage (pull-up)" + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "La fréquence de PWM maximale est %dHz" + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "La fréquence de PWM minimale est 1Hz" + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "" +#~ "Les fréquences de PWM multiples ne sont pas supportées. PWM réglé à %dHz" + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Pas de support de PulseIn pour %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Pas de support matériel pour une sortie analogique" + #~ msgid "Only Windows format, uncompressed BMP supported %d" #~ msgstr "Seul les BMP non-compressé au format Windows sont supportés %d" +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Seules les bitmaps de 8bits par couleur ou moins sont supportées" + #~ msgid "Only true color (24 bpp or higher) BMP supported %x" #~ msgstr "Seul les BMP 24bits ou plus sont supportés %x" +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "Seul le tx est supporté sur l'UART1 (GPIO2)." + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "La broche %d ne supporte pas le PWM" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "La broche %q n'a pas de convertisseur analogique-digital" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Pin(16) ne supporte pas le tirage (pull)" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Broche invalide pour le SPI" + +#~ msgid "STA must be active" +#~ msgstr "'STA' doit être actif" + +#~ msgid "STA required" +#~ msgstr "'STA' requis" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "UART(%d) n'existe pas" + +#~ msgid "UART(1) can't read" +#~ msgstr "UART(1) ne peut pas lire" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Impossible de remonter le système de fichiers" + +#~ msgid "Unknown type" +#~ msgstr "Type inconnu" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "" +#~ "Utilisez 'esptool' pour effacer la flash et recharger Python à la place" + +#~ msgid "buffer too long" +#~ msgstr "tampon trop long" + +#~ msgid "can query only one param" +#~ msgstr "ne peut demander qu'un seul paramètre" + +#~ msgid "can't get AP config" +#~ msgstr "impossible de récupérer la config de 'AP'" + +#~ msgid "can't get STA config" +#~ msgstr "impossible de récupérer la config de 'STA'" + +#~ msgid "can't set AP config" +#~ msgstr "impossible de régler la config de 'AP'" + +#~ msgid "can't set STA config" +#~ msgstr "impossible de régler la config de 'STA'" + +#~ msgid "either pos or kw args are allowed" +#~ msgstr "soit 'pos', soit 'kw' est permis en argument" + +#~ msgid "expecting a pin" +#~ msgstr "une broche (Pin) est attendue" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "l'emplacement en mémoire flash doit être inférieur à 1Mo" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "la fréquence doit être soit 80MHz soit 160MHz" + +#~ msgid "impossible baudrate" +#~ msgstr "débit impossible" + +#~ msgid "invalid alarm" +#~ msgstr "alarme invalide" + +#~ msgid "invalid buffer length" +#~ msgstr "longueur de tampon invalide" + +#~ msgid "invalid data bits" +#~ msgstr "bits de données invalides" + +#~ msgid "invalid pin" +#~ msgstr "broche invalide" + +#~ msgid "invalid stop bits" +#~ msgstr "bits d'arrêt invalides" + +#~ msgid "len must be multiple of 4" +#~ msgstr "'len' doit être un multiple de 4" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "" +#~ "l'allocation de mémoire a échoué en allouant %u octets pour un code natif" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "canal ADC non valide : %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "la broche ne supporte pas les interruptions (IRQ)" + #, fuzzy #~ msgid "position must be 2-tuple" #~ msgstr "position doit être un 2-tuple" + +#~ msgid "scan failed" +#~ msgstr "échec du scan" + +#~ msgid "unknown config param" +#~ msgstr "paramètre de config. inconnu" + +#~ msgid "unknown status param" +#~ msgstr "paramètre de statut inconnu" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "wifi_set_ip_info() a échoué" diff --git a/locale/it_IT.po b/locale/it_IT.po index 5d69dd2de6..355f594946 100644 --- a/locale/it_IT.po +++ b/locale/it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n" "Last-Translator: Enrico Paganin \n" "Language-Team: \n" @@ -219,10 +219,6 @@ msgstr "pow() con tre argmomenti non supportata" msgid "A hardware interrupt channel is already in use" msgstr "Un canale di interrupt hardware è già in uso" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "AP richiesto" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -351,10 +347,6 @@ msgstr "i buffer devono essere della stessa lunghezza" msgid "Bytes must be between 0 and 255." msgstr "I byte devono essere compresi tra 0 e 255" -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "assert a livello C" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -376,18 +368,10 @@ msgstr "" msgid "Can't connect in Peripheral mode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "Impossible connettersi all'AP" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "Impossibile cancellare valori" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "Impossible disconnettersi all'AP" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -415,15 +399,10 @@ msgid "Cannot remount '/' when USB is active." msgstr "Non è possibile rimontare '/' mentre l'USB è attiva." #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" "Impossibile resettare nel bootloader poiché nessun bootloader è presente." -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "Impossibile impostare la configurazione della STA" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "" @@ -440,10 +419,6 @@ msgstr "Impossibile trasferire senza i pin MOSI e MISO." msgid "Cannot unambiguously get sizeof scalar" msgstr "Impossibile ricavare la grandezza scalare di sizeof inequivocabilmente" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "Impossibile aggiornare status di i/f" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "Impossibile scrivere senza pin MOSI." @@ -535,31 +510,15 @@ msgstr "La capacità di destinazione è più piccola di destination_length." msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "Non so come passare l'oggetto alla funzione nativa" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "ESP8266 non supporta la modalità sicura." - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "ESP8266 non supporta pull-down" - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "Canale EXTINT già in uso" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Errore in ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "Errore nella regex" @@ -616,7 +575,6 @@ msgid "Failed to allocate RX buffer" msgstr "Impossibile allocare buffer RX" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -662,9 +620,9 @@ msgid "Failed to get softdevice state" msgstr "Impossibile fermare advertisement. status: 0x%02x" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "Impossibile notificare valore dell'attributo. status: 0x%02x" +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -672,9 +630,9 @@ msgid "Failed to read CCCD value, err 0x%04x" msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x" +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -765,23 +723,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "GPIO16 non supporta pull-up" - #: shared-module/displayio/Group.c msgid "Group full" msgstr "Gruppo pieno" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "operazione I/O su file chiuso" @@ -822,6 +772,10 @@ msgstr "Argomento non valido" msgid "Invalid bit clock pin" msgstr "Pin del clock di bit non valido" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c #, fuzzy msgid "Invalid buffer size" @@ -935,11 +889,6 @@ msgstr "inizializzazione del pin MISO fallita." msgid "MOSI pin init failed." msgstr "inizializzazione del pin MOSI fallita." -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "Frequenza massima su PWM è %dhz" - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -958,15 +907,6 @@ msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" "Il ritardo di avvio del microfono deve essere nell'intervallo tra 0.0 e 1.0" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "Frequenza minima su PWM è 1hz" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "Frequenze PWM multiple non supportate. PWM già impostato a %shz." - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -980,10 +920,6 @@ msgstr "Nessun DAC sul chip" msgid "No DMA channel found" msgstr "Nessun canale DMA trovato" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Nessun supporto per PulseIn per %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Nessun pin RX" @@ -996,17 +932,9 @@ msgstr "Nessun pin TX" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Nessun bus I2C predefinito" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Nessun bus SPI predefinito" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Nessun bus UART predefinito" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Nessun bus %q predefinito" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -1016,10 +944,6 @@ msgstr "Nessun GCLK libero" msgid "No hardware random available" msgstr "Nessun generatore hardware di numeri casuali disponibile" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Nessun supporto hardware per l'uscita analogica." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1038,10 +962,6 @@ msgstr "Nessun file/directory esistente" msgid "Not connected" msgstr "Impossible connettersi all'AP" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "In pausa" @@ -1068,10 +988,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "Sono supportate solo bitmap con colori a 8 bit o meno" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1084,10 +1000,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "solo slice con step=1 (aka None) sono supportate" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Solo tx supportato su UART1 (GPIO2)." - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "L'oversampling deve essere multiplo di 8." @@ -1107,32 +1019,15 @@ msgstr "" "frequenza PWM frequency non è scrivibile quando variable_frequency è " "impostato nel costruttore a False." -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "PWM non è supportato sul pin %d" - #: py/moduerrno.c msgid "Permission denied" msgstr "Permesso negato" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "Il pin %q non ha capacità ADC" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "Il pin non ha capacità di ADC" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Pin(16) non supporta pull" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Pin non validi per SPI" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1151,11 +1046,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "" -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "calibrazione RTC non supportata su questa scheda" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "RTC non supportato su questa scheda" @@ -1197,14 +1092,6 @@ msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n" msgid "SDA or SCL needs a pull up" msgstr "SDA o SCL necessitano un pull-up" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "STA deve essere attiva" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "STA richiesta" - #: shared-bindings/audioio/Mixer.c #, fuzzy msgid "Sample rate must be positive" @@ -1325,15 +1212,6 @@ msgstr "Traceback (chiamata più recente per ultima):\n" msgid "Tuple or struct_time argument required" msgstr "Tupla o struct_time richiesto come argomento" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) non esistente" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "UART(1) non leggibile" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "USB occupata" @@ -1372,10 +1250,6 @@ msgstr "Inizilizzazione del parser non possibile" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Imposssibile rimontare il filesystem" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "Imposibile scrivere su nvm." @@ -1385,10 +1259,6 @@ msgstr "Imposibile scrivere su nvm." msgid "Unexpected nrfx uuid type" msgstr "indentazione inaspettata" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Tipo sconosciuto" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1415,10 +1285,6 @@ msgstr "Operazione non supportata" msgid "Unsupported pull value." msgstr "Valore di pull non supportato." -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "Usa esptool per cancellare la flash e ricaricare Python invece" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "Le funzioni Viper non supportano più di 4 argomenti al momento" @@ -1453,11 +1319,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "È stato richiesto l'avvio in modalità sicura da " -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "[errore addrinfo %d]" - #: py/objtype.c msgid "__init__() should return None" msgstr "__init__() deve ritornare None" @@ -1479,7 +1340,7 @@ msgstr "un oggetto byte-like è richiesto" msgid "abort() called" msgstr "abort() chiamato" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "l'indirizzo %08x non è allineato a %d bytes" @@ -1576,10 +1437,6 @@ msgstr "slice del buffer devono essere della stessa lunghezza" msgid "buffer slices must be of equal length" msgstr "slice del buffer devono essere della stessa lunghezza" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "buffer troppo lungo" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1635,10 +1492,6 @@ msgstr "sono disponibili fino a 4 parametri per il Xtensa assembly" msgid "can only save bytecode" msgstr "È possibile salvare solo bytecode" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "è possibile interrogare solo un parametro" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1710,14 +1563,6 @@ msgstr "impossibile eseguire operazione binaria tra '%q' e '%q'" msgid "can't do truncated division of a complex number" msgstr "impossibile fare il modulo di un numero complesso" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "impossibile recuperare le configurazioni dell'AP" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "impossibile recuperare la configurazione della STA" - #: py/compile.c msgid "can't have multiple **x" msgstr "impossibile usare **x multipli" @@ -1746,14 +1591,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "impossibile impostare le configurazioni dell'AP" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "impossibile impostare le configurazioni della STA" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "impossibile impostare attributo" @@ -1891,10 +1728,6 @@ msgstr "sequanza di aggiornamento del dizionario ha la lunghezza errata" msgid "division by zero" msgstr "divisione per zero" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "sono permesse solo gli argomenti pos o kw" - #: py/objdeque.c msgid "empty" msgstr "vuoto" @@ -1945,10 +1778,6 @@ msgstr "lista/tupla prevista" msgid "expecting a dict for keyword args" msgstr "argomenti nominati necessitano un dizionario" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "pin atteso" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "istruzione assembler attesa" @@ -1969,10 +1798,6 @@ msgstr "argomento nominato aggiuntivo fornito" msgid "extra positional arguments given" msgstr "argomenti posizonali extra dati" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "ffi_prep_closure_loc" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "" @@ -1989,10 +1814,6 @@ msgstr "" msgid "firstbit must be MSB" msgstr "il primo bit deve essere il più significativo (MSB)" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "Locazione della flash deve essere inferiore a 1mb" - #: py/objint.c msgid "float too big" msgstr "float troppo grande" @@ -2005,10 +1826,6 @@ msgstr "il font deve essere lungo 2048 byte" msgid "format requires a dict" msgstr "la formattazione richiede un dict" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "la frequenza può essere o 80Mhz o 160Mhz" - #: py/objdeque.c msgid "full" msgstr "pieno" @@ -2078,10 +1895,6 @@ msgstr "identificatore ridefinito come globale" msgid "identifier redefined as nonlocal" msgstr "identificatore ridefinito come nonlocal" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "baudrate impossibile" - #: py/objstr.c msgid "incomplete format" msgstr "formato incompleto" @@ -2095,7 +1908,6 @@ msgid "incorrect padding" msgstr "padding incorretto" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "indice fuori intervallo" @@ -2128,26 +1940,14 @@ msgstr "periferica I2C invalida" msgid "invalid SPI peripheral" msgstr "periferica SPI invalida" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "alarm non valido" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "argomenti non validi" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "lunghezza del buffer non valida" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "certificato non valido" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "bit dati invalidi" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "indice dupterm non valido" @@ -2168,18 +1968,10 @@ msgstr "chiave non valida" msgid "invalid micropython decorator" msgstr "decoratore non valido in micropython" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "pin non valido" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "step non valida" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "bit di stop invalidi" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "sintassi non valida" @@ -2230,10 +2022,6 @@ msgstr "etichetta '%q' non definita" msgid "label redefined" msgstr "etichetta ridefinita" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "len deve essere multiplo di 4" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "" @@ -2275,12 +2063,6 @@ msgstr "profondità massima di ricorsione superata" msgid "memory allocation failed, allocating %u bytes" msgstr "allocazione di memoria fallita, allocando %u byte" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" -"allocazione di memoria fallita, allocazione di %d byte per codice nativo" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "allocazione di memoria fallita, l'heap è bloccato" @@ -2388,11 +2170,6 @@ msgstr "argomento non nominato seguito da argomento nominato" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "canale ADC non valido: %d" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2498,10 +2275,6 @@ msgstr "parametri devono essere i registri in sequenza da a2 a a5" msgid "parameters must be registers in sequence r0 to r3" msgstr "parametri devono essere i registri in sequenza da a2 a a5" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "il pin non implementa IRQ" - #: shared-bindings/displayio/Bitmap.c #, fuzzy msgid "pixel coordinates out of bounds" @@ -2516,7 +2289,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "pixel_shader deve essere displayio.Palette o displayio.ColorConverter" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "pop sun un PulseIn vuoto" @@ -2571,10 +2343,6 @@ msgstr "" msgid "return expected '%q' but got '%q'" msgstr "return aspettava '%q' ma ha ottenuto '%q'" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "la riga deve essere compattata e allineata alla parola" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2591,10 +2359,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "frequenza di campionamento fuori intervallo" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "scansione fallita" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2803,10 +2567,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "parametro di configurazione sconosciuto" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2827,10 +2587,6 @@ msgstr "codice di formattazione '%c' sconosciuto per oggetto di tipo 'float'" msgid "unknown format code '%c' for object of type 'str'" msgstr "codice di formattazione '%c' sconosciuto per oggetto di tipo 'str'" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "prametro di stato sconosciuto" - #: py/compile.c msgid "unknown type" msgstr "tipo sconosciuto" @@ -2847,6 +2603,10 @@ msgstr "'{' spaiato nella stringa di formattazione" msgid "unreadable attribute" msgstr "attributo non leggibile" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "tipo di %q non supportato" + #: py/emitinlinethumb.c #, fuzzy, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2857,10 +2617,6 @@ msgstr "istruzione '%s' Xtensa non supportata con %d argomenti" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "istruzione '%s' Xtensa non supportata con %d argomenti" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "tipo di bitmap non supportato" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2878,9 +2634,9 @@ msgstr "tipo non supportato per l'operando" msgid "unsupported types for %q: '%s', '%s'" msgstr "tipi non supportati per %q: '%s', '%s'" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() faillito" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" @@ -2912,11 +2668,188 @@ msgstr "indirizzo fuori limite" msgid "zero step" msgstr "zero step" +#~ msgid "AP required" +#~ msgstr "AP richiesto" + +#~ msgid "C-level assert" +#~ msgstr "assert a livello C" + +#~ msgid "Cannot connect to AP" +#~ msgstr "Impossible connettersi all'AP" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "Impossible disconnettersi all'AP" + +#~ msgid "Cannot set STA config" +#~ msgstr "Impossibile impostare la configurazione della STA" + +#~ msgid "Cannot update i/f status" +#~ msgstr "Impossibile aggiornare status di i/f" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "Non so come passare l'oggetto alla funzione nativa" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "ESP8266 non supporta la modalità sicura." + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "ESP8266 non supporta pull-down" + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Errore in ffi_prep_cif" + +#, fuzzy +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "Impossibile notificare valore dell'attributo. status: 0x%02x" + +#, fuzzy +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x" + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "GPIO16 non supporta pull-up" + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "Frequenza massima su PWM è %dhz" + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "Frequenza minima su PWM è 1hz" + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "Frequenze PWM multiple non supportate. PWM già impostato a %shz." + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Nessun supporto per PulseIn per %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Nessun supporto hardware per l'uscita analogica." + #~ msgid "Only Windows format, uncompressed BMP supported %d" #~ msgstr "Formato solo di Windows, BMP non compresso supportato %d" +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Sono supportate solo bitmap con colori a 8 bit o meno" + #~ msgid "Only true color (24 bpp or higher) BMP supported %x" #~ msgstr "Solo BMP true color (24 bpp o superiore) sono supportati %x" +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "Solo tx supportato su UART1 (GPIO2)." + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "PWM non è supportato sul pin %d" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "Il pin %q non ha capacità ADC" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Pin(16) non supporta pull" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Pin non validi per SPI" + +#~ msgid "STA must be active" +#~ msgstr "STA deve essere attiva" + +#~ msgid "STA required" +#~ msgstr "STA richiesta" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "UART(%d) non esistente" + +#~ msgid "UART(1) can't read" +#~ msgstr "UART(1) non leggibile" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Imposssibile rimontare il filesystem" + +#~ msgid "Unknown type" +#~ msgstr "Tipo sconosciuto" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "Usa esptool per cancellare la flash e ricaricare Python invece" + +#~ msgid "[addrinfo error %d]" +#~ msgstr "[errore addrinfo %d]" + +#~ msgid "buffer too long" +#~ msgstr "buffer troppo lungo" + +#~ msgid "can query only one param" +#~ msgstr "è possibile interrogare solo un parametro" + +#~ msgid "can't get AP config" +#~ msgstr "impossibile recuperare le configurazioni dell'AP" + +#~ msgid "can't get STA config" +#~ msgstr "impossibile recuperare la configurazione della STA" + +#~ msgid "can't set AP config" +#~ msgstr "impossibile impostare le configurazioni dell'AP" + +#~ msgid "can't set STA config" +#~ msgstr "impossibile impostare le configurazioni della STA" + +#~ msgid "either pos or kw args are allowed" +#~ msgstr "sono permesse solo gli argomenti pos o kw" + +#~ msgid "expecting a pin" +#~ msgstr "pin atteso" + +#~ msgid "ffi_prep_closure_loc" +#~ msgstr "ffi_prep_closure_loc" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "Locazione della flash deve essere inferiore a 1mb" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "la frequenza può essere o 80Mhz o 160Mhz" + +#~ msgid "impossible baudrate" +#~ msgstr "baudrate impossibile" + +#~ msgid "invalid alarm" +#~ msgstr "alarm non valido" + +#~ msgid "invalid buffer length" +#~ msgstr "lunghezza del buffer non valida" + +#~ msgid "invalid data bits" +#~ msgstr "bit dati invalidi" + +#~ msgid "invalid pin" +#~ msgstr "pin non valido" + +#~ msgid "invalid stop bits" +#~ msgstr "bit di stop invalidi" + +#~ msgid "len must be multiple of 4" +#~ msgstr "len deve essere multiplo di 4" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "" +#~ "allocazione di memoria fallita, allocazione di %d byte per codice nativo" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "canale ADC non valido: %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "il pin non implementa IRQ" + #~ msgid "position must be 2-tuple" #~ msgstr "position deve essere una 2-tuple" + +#~ msgid "row must be packed and word aligned" +#~ msgstr "la riga deve essere compattata e allineata alla parola" + +#~ msgid "scan failed" +#~ msgstr "scansione fallita" + +#~ msgid "unknown config param" +#~ msgstr "parametro di configurazione sconosciuto" + +#~ msgid "unknown status param" +#~ msgstr "prametro di stato sconosciuto" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "wifi_set_ip_info() faillito" diff --git a/locale/pl.po b/locale/pl.po new file mode 100644 index 0000000000..a82ad6fb62 --- /dev/null +++ b/locale/pl.po @@ -0,0 +1,2623 @@ +# Adafruit CircuitPython Polish Translation +# Copyright (C) 2019 +# This file is distributed under the same license as the CircuitPython package. +# Radomir Dopieralski , 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" +"PO-Revision-Date: 2019-03-19 18:37-0700\n" +"Last-Translator: Radomir Dopieralski \n" +"Language-Team: pl\n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: main.c +msgid "" +"\n" +"Code done running. Waiting for reload.\n" +msgstr "" +"\n" +"Kod wykonany. Oczekiwanie na przeładowanie.\n" + +#: py/obj.c +msgid " File \"%q\"" +msgstr " Plik \"%q\"" + +#: py/obj.c +msgid " File \"%q\", line %d" +msgstr " Plik \"%q\", linia %d" + +#: main.c +msgid " output:\n" +msgstr " wyjście:\n" + +#: py/objstr.c +#, c-format +msgid "%%c requires int or char" +msgstr "%%c wymaga int lub char" + +#: shared-bindings/microcontroller/Pin.c +msgid "%q in use" +msgstr "%q w użyciu" + +#: py/obj.c +msgid "%q index out of range" +msgstr "%q poza zakresem" + +#: py/obj.c +msgid "%q indices must be integers, not %s" +msgstr "%q indeks musi być liczbą całkowitą, a nie %s" + +#: shared-bindings/bleio/CharacteristicBuffer.c +#: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c +msgid "%q must be >= 1" +msgstr "%q musi być >= 1" + +#: shared-bindings/fontio/BuiltinFont.c +msgid "%q should be an int" +msgstr "%q powinno być typu int" + +#: py/bc.c py/objnamedtuple.c +msgid "%q() takes %d positional arguments but %d were given" +msgstr "%q() bierze %d argumentów pozycyjnych, lecz podano %d" + +#: py/argcheck.c +msgid "'%q' argument required" +msgstr "'%q' wymaga argumentu" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +#, c-format +msgid "'%s' expects a label" +msgstr "'%s' oczekuje etykiety" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +#, c-format +msgid "'%s' expects a register" +msgstr "'%s' oczekuje rejestru" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects a special register" +msgstr "'%s' oczekuje rejestru specjalnego" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects an FPU register" +msgstr "'%s' oczekuje rejestru FPU" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects an address of the form [a, b]" +msgstr "'%s' oczekuje adresu w postaci [a, b]" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +#, c-format +msgid "'%s' expects an integer" +msgstr "'%s' oczekuje liczby całkowitej" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects at most r%d" +msgstr "'%s' oczekuje co najwyżej r%d" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects {r0, r1, ...}" +msgstr "'%s' oczekuje {r0, r1, ...}" + +#: py/emitinlinextensa.c +#, c-format +msgid "'%s' integer %d is not within range %d..%d" +msgstr "'%s' liczba %d nie mieści się w zakresie %d..%d" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' integer 0x%x does not fit in mask 0x%x" +msgstr "'%s' liczba 0x%x nie pasuje do maski 0x%x" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' obiekt nie pozwala na przypisanie do elementów" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' obiekt nie pozwala na usuwanie elementów" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' obiekt nie ma atrybutu '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' obiekt nie jest iteratorem" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' nie można wywoływać obiektu" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' nie można iterować po obiekcie" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' nie można indeksować obiektu" + +#: py/objstr.c +msgid "'=' alignment not allowed in string format specifier" +msgstr "wyrównanie '=' niedozwolone w specyfikacji formatu" + +#: shared-module/struct/__init__.c +msgid "'S' and 'O' are not supported format types" +msgstr "typy formatowanie 'S' oraz 'O' nie są wspierane" + +#: py/compile.c +msgid "'align' requires 1 argument" +msgstr "'align' wymaga 1 argumentu" + +#: py/compile.c +msgid "'await' outside function" +msgstr "'await' poza funkcją" + +#: py/compile.c +msgid "'break' outside loop" +msgstr "'break' poza pętlą" + +#: py/compile.c +msgid "'continue' outside loop" +msgstr "'continue' poza pętlą" + +#: py/compile.c +msgid "'data' requires at least 2 arguments" +msgstr "'data' wymaga co najmniej 2 argumentów" + +#: py/compile.c +msgid "'data' requires integer arguments" +msgstr "'data' wymaga całkowitych argumentów" + +#: py/compile.c +msgid "'label' requires 1 argument" +msgstr "'label' wymaga 1 argumentu" + +#: py/compile.c +msgid "'return' outside function" +msgstr "'return' poza funkcją" + +#: py/compile.c +msgid "'yield' outside function" +msgstr "'yield' poza funkcją" + +#: py/compile.c +msgid "*x must be assignment target" +msgstr "*x musi być obiektem przypisania" + +#: py/obj.c +msgid ", in %q\n" +msgstr ", w %q\n" + +#: py/objcomplex.c +msgid "0.0 to a complex power" +msgstr "0.0 do potęgi zespolonej" + +#: py/modbuiltins.c +msgid "3-arg pow() not supported" +msgstr "3-argumentowy pow() jest niewspierany" + +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c +msgid "A hardware interrupt channel is already in use" +msgstr "Kanał przerwań sprzętowych jest już w użyciu" + +#: shared-bindings/bleio/Address.c +#, c-format +msgid "Address is not %d bytes long or is in wrong format" +msgstr "Adres nie ma długości %d bajtów lub jest w złym formacie" + +#: shared-bindings/bleio/Address.c +#, c-format +msgid "Address must be %d bytes long" +msgstr "Adres musi mieć %d bajtów" + +#: ports/nrf/common-hal/busio/I2C.c +msgid "All I2C peripherals are in use" +msgstr "Wszystkie peryferia I2C są w użyciu" + +#: ports/nrf/common-hal/busio/SPI.c +msgid "All SPI peripherals are in use" +msgstr "Wszystkie peryferia SPI są w użyciu" + +#: ports/nrf/common-hal/busio/UART.c +msgid "All UART peripherals are in use" +msgstr "Wszystkie peryferia UART są w użyciu" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "All event channels in use" +msgstr "Wszystkie kanały zdarzeń są w użyciu" + +#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "All sync event channels in use" +msgstr "Wszystkie kanały zdarzeń synchronizacji są w użyciu" + +#: shared-bindings/pulseio/PWMOut.c +msgid "All timers for this pin are in use" +msgstr "Wszystkie " + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c +#: ports/nrf/common-hal/pulseio/PulseOut.c shared-bindings/pulseio/PWMOut.c +#: shared-module/_pew/PewPew.c +msgid "All timers in use" +msgstr "Wszystkie timery są w użyciu" + +#: ports/nrf/common-hal/analogio/AnalogOut.c +msgid "AnalogOut functionality not supported" +msgstr "AnalogOut nie jest wspierane" + +#: shared-bindings/analogio/AnalogOut.c +msgid "AnalogOut is only 16 bits. Value must be less than 65536." +msgstr "AnalogOut ma tylko 16 bitów. Wartość musi być mniejsza od 65536." + +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c +msgid "AnalogOut not supported on given pin" +msgstr "AnalogOut niewspierany na tej nóżce" + +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c +msgid "Another send is already active" +msgstr "Wysyłanie jest już w toku" + +#: shared-bindings/pulseio/PulseOut.c +msgid "Array must contain halfwords (type 'H')" +msgstr "Tablica musi zawierać pół-słowa (typ 'H')" + +#: shared-bindings/nvm/ByteArray.c +msgid "Array values should be single bytes." +msgstr "Wartości tablicy powinny być pojedynczymi bajtami" + +#: supervisor/shared/safe_mode.c +msgid "Attempted heap allocation when MicroPython VM not running.\n" +msgstr "Próba alokacji pamięci na stercie gdy maszyna wirtualna nie działa.\n" + +#: main.c +msgid "Auto-reload is off.\n" +msgstr "Samo-przeładowywanie jest wyłączone.\n" + +#: main.c +msgid "" +"Auto-reload is on. Simply save files over USB to run them or enter REPL to " +"disable.\n" +msgstr "" +"Samo-przeładowywanie jest włączone. Po prostu zapisz pliki przez USBaby je " +"uruchomić, albo wejdź w konsolę aby je wyłączyć.\n" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Bit clock and word select must share a clock unit" +msgstr "Zegar bitowy i wybór słowa muszą współdzielić jednostkę zegara" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Bit depth must be multiple of 8." +msgstr "Głębia bitowa musi być wielokrotnością 8." + +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c +msgid "Both pins must support hardware interrupts" +msgstr "Obie nóżki muszą wspierać przerwania sprzętowe" + +#: shared-bindings/supervisor/__init__.c +msgid "Brightness must be between 0 and 255" +msgstr "Jasność musi być pomiędzy 0 a 255" + +#: shared-bindings/displayio/Display.c +msgid "Brightness not adjustable" +msgstr "Jasność nie jest regulowana" + +#: shared-module/usb_hid/Device.c +#, c-format +msgid "Buffer incorrect size. Should be %d bytes." +msgstr "Zła wielkość bufora. Powinno być %d bajtów." + +#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c +msgid "Buffer must be at least length 1" +msgstr "Bufor musi mieć długość co najmniej 1" + +#: ports/atmel-samd/common-hal/displayio/ParallelBus.c +#: ports/nrf/common-hal/displayio/ParallelBus.c +#, c-format +msgid "Bus pin %d is already in use" +msgstr "Nóżka magistrali %d jest już w użyciu" + +#: shared-bindings/bleio/UUID.c +msgid "Byte buffer must be 16 bytes." +msgstr "Bufor bajtów musi mieć 16 bajtów." + +#: shared-bindings/nvm/ByteArray.c +msgid "Bytes must be between 0 and 255." +msgstr "Bytes musi być między 0 a 255." + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "Can not use dotstar with %s" +msgstr "Nie można używać dotstar z %s" + +#: shared-bindings/bleio/Device.c +msgid "Can't add services in Central mode" +msgstr "Nie można dodawać serwisów w trybie Central" + +#: shared-bindings/bleio/Device.c +msgid "Can't advertise in Central mode" +msgstr "Nie można rozgłaszać w trybie Central" + +#: shared-bindings/bleio/Device.c +msgid "Can't change the name in Central mode" +msgstr "Nie można zmienić nazwy w trybie Central" + +#: shared-bindings/bleio/Device.c +msgid "Can't connect in Peripheral mode" +msgstr "Nie można się łączyć w trybie Peripheral" + +#: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c +msgid "Cannot delete values" +msgstr "Nie można usunąć wartości" + +#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c +#: ports/nrf/common-hal/digitalio/DigitalInOut.c +msgid "Cannot get pull while in output mode" +msgstr "Nie można sprawdzić podciągnięcia w trybie wyjścia" + +#: ports/nrf/common-hal/microcontroller/Processor.c +msgid "Cannot get temperature" +msgstr "Nie można odczytać temperatury" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Cannot output both channels on the same pin" +msgstr "Nie można mieć obu kanałów na tej samej nóżce" + +#: shared-module/bitbangio/SPI.c +msgid "Cannot read without MISO pin." +msgstr "Nie można czytać bez nóżki MISO" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Cannot record to a file" +msgstr "Nie można nagrać do pliku" + +#: shared-module/storage/__init__.c +msgid "Cannot remount '/' when USB is active." +msgstr "Nie można przemontować '/' gdy USB jest aktywne." + +#: ports/atmel-samd/common-hal/microcontroller/__init__.c +msgid "Cannot reset into bootloader because no bootloader is present." +msgstr "Nie można zrestartować do bootloader, bo nie ma bootloadera." + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Cannot set value when direction is input." +msgstr "Nie można ustawić wartości w trybie wejścia" + +#: py/objslice.c +msgid "Cannot subclass slice" +msgstr "Nie można dziedziczyć ze slice" + +#: shared-module/bitbangio/SPI.c +msgid "Cannot transfer without MOSI and MISO pins." +msgstr "Nie można przesyłać bez nóżek MOSI i MISO." + +#: extmod/moductypes.c +msgid "Cannot unambiguously get sizeof scalar" +msgstr "Wielkość skalara jest niejednoznaczna" + +#: shared-module/bitbangio/SPI.c +msgid "Cannot write without MOSI pin." +msgstr "Nie można pisać bez nóżki MOSI." + +#: shared-bindings/bleio/Service.c +msgid "Characteristic UUID doesn't match Service UUID" +msgstr "UUID charakterystyki nie pasuje do UUID serwisu" + +#: ports/nrf/common-hal/bleio/Service.c +msgid "Characteristic already in use by another Service." +msgstr "Charakterystyka już w użycie w innym serwisie" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "CharacteristicBuffer writing not provided" +msgstr "Pisanie do CharacteristicBuffer niewspierane" + +#: shared-module/bitbangio/SPI.c +msgid "Clock pin init failed." +msgstr "Nie powiodła się inicjalizacja nóżki zegara" + +#: shared-module/bitbangio/I2C.c +msgid "Clock stretch too long" +msgstr "Rozciągnięcie zegara zbyt duże" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Clock unit in use" +msgstr "Jednostka zegara w użyciu" + +#: shared-bindings/_pew/PewPew.c +msgid "Column entry must be digitalio.DigitalInOut" +msgstr "Kolumny muszą być typu digitalio.DigitalInOut" + +#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c +msgid "Command must be an int between 0 and 255" +msgstr "Komenda musi być liczbą całkowitą pomiędzy 0 a 255" + +#: ports/nrf/common-hal/bleio/UUID.c +#, c-format +msgid "Could not decode ble_uuid, err 0x%04x" +msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x" + +#: ports/atmel-samd/common-hal/busio/UART.c +msgid "Could not initialize UART" +msgstr "Inicjalizacja UART nie powiodła się" + +#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c +msgid "Couldn't allocate first buffer" +msgstr "Nie udała się alokacja pierwszego bufora" + +#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c +msgid "Couldn't allocate second buffer" +msgstr "Nie udała się alokacja drugiego bufora" + +#: supervisor/shared/safe_mode.c +msgid "Crash into the HardFault_Handler.\n" +msgstr "Katastrofa w HardFault_Handler.\n" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "DAC already in use" +msgstr "DAC jest już w użyciu" + +#: ports/atmel-samd/common-hal/displayio/ParallelBus.c +#: ports/nrf/common-hal/displayio/ParallelBus.c +msgid "Data 0 pin must be byte aligned" +msgstr "Nóżka data 0 musi być wyrównana do bajtu" + +#: shared-module/audioio/WaveFile.c +msgid "Data chunk must follow fmt chunk" +msgstr "Fragment danych musi następować po fragmencie fmt" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +#: ports/nrf/common-hal/bleio/Peripheral.c +msgid "Data too large for advertisement packet" +msgstr "Zbyt dużo danych pakietu rozgłoszeniowego" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Data too large for the advertisement packet" +msgstr "Zbyt dużo danych dla pakietu rozgłoszeniowego" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Destination capacity is smaller than destination_length." +msgstr "Pojemność celu mniejsza od destination_length." + +#: shared-bindings/displayio/Display.c +msgid "Display rotation must be in 90 degree increments" +msgstr "Orientacja wyświetlacza musi być wielokrotnością 90 stopni" + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Drive mode not used when direction is input." +msgstr "Tryb sterowania nie jest używany w trybie wejścia." + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +msgid "EXTINT channel already in use" +msgstr "Kanał EXTINT jest już w użyciu" + +#: extmod/modure.c +msgid "Error in regex" +msgstr "Błąd w regex" + +#: shared-bindings/microcontroller/Pin.c +#: shared-bindings/neopixel_write/__init__.c shared-bindings/pulseio/PulseOut.c +#: shared-bindings/terminalio/Terminal.c +msgid "Expected a %q" +msgstr "Oczekiwano %q" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "Expected a Characteristic" +msgstr "Oczekiwano charakterystyki" + +#: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c +#: shared-bindings/bleio/Service.c +msgid "Expected a UUID" +msgstr "Oczekiwano UUID" + +#: shared-module/_pixelbuf/PixelBuf.c +#, c-format +msgid "Expected tuple of length %d, got %d" +msgstr "Oczekiwano krotkę długości %d, otrzymano %d" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to acquire mutex" +msgstr "Nie udało się uzyskać blokady" + +#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c +#, c-format +msgid "Failed to acquire mutex, err 0x%04x" +msgstr "Nie udało się uzyskać blokady, błąd 0x$04x" + +#: ports/nrf/common-hal/bleio/Service.c +#, c-format +msgid "Failed to add characteristic, err 0x%04x" +msgstr "Nie udało się dodać charakterystyki, błąd 0x$04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to add service" +msgstr "Nie udało się dodać serwisu" + +#: ports/nrf/common-hal/bleio/Peripheral.c +#, c-format +msgid "Failed to add service, err 0x%04x" +msgstr "Nie udało się dodać serwisu, błąd 0x%04x" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "Failed to allocate RX buffer" +msgstr "Nie udała się alokacja bufora RX" + +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#, c-format +msgid "Failed to allocate RX buffer of %d bytes" +msgstr "Nie udała się alokacja %d bajtów na bufor RX" + +#: ports/nrf/common-hal/bleio/Adapter.c +msgid "Failed to change softdevice state" +msgstr "Nie udało się zmienić stanu softdevice" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to connect:" +msgstr "Nie udało się połączenie:" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to continue scanning" +msgstr "Nie udała się kontynuacja skanowania" + +#: ports/nrf/common-hal/bleio/Scanner.c +#, c-format +msgid "Failed to continue scanning, err 0x%04x" +msgstr "Nie udała się kontynuacja skanowania, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to create mutex" +msgstr "Nie udało się stworzyć blokady" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to discover services" +msgstr "Nie udało się odkryć serwisów" + +#: ports/nrf/common-hal/bleio/Adapter.c +msgid "Failed to get local address" +msgstr "Nie udało się uzyskać lokalnego adresu" + +#: ports/nrf/common-hal/bleio/Adapter.c +msgid "Failed to get softdevice state" +msgstr "Nie udało się odczytać stanu softdevice" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "Nie udało się powiadomić o wartości atrybutu, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to read CCCD value, err 0x%04x" +msgstr "Nie udało się odczytać CCCD, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "Nie udało się odczytać wartości atrybutu, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to read gatts value, err 0x%04x" +msgstr "Nie udało się odczytać gatts, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/UUID.c +#, c-format +msgid "Failed to register Vendor-Specific UUID, err 0x%04x" +msgstr "Nie udało się zarejestrować UUID dostawcy, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to release mutex" +msgstr "Nie udało się zwolnić blokady" + +#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c +#, c-format +msgid "Failed to release mutex, err 0x%04x" +msgstr "Nie udało się zwolnić blokady, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to start advertising" +msgstr "Nie udało się rozpocząć rozgłaszania" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +#: ports/nrf/common-hal/bleio/Peripheral.c +#, c-format +msgid "Failed to start advertising, err 0x%04x" +msgstr "Nie udało się rozpocząć rozgłaszania, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to start scanning" +msgstr "Nie udało się rozpocząć skanowania" + +#: ports/nrf/common-hal/bleio/Scanner.c +#, c-format +msgid "Failed to start scanning, err 0x%04x" +msgstr "Nie udało się rozpocząć skanowania, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to stop advertising" +msgstr "Nie udało się zatrzymać rozgłaszania" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +#: ports/nrf/common-hal/bleio/Peripheral.c +#, c-format +msgid "Failed to stop advertising, err 0x%04x" +msgstr "Nie udało się zatrzymać rozgłaszania, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to write attribute value, err 0x%04x" +msgstr "Nie udało się zapisać atrybutu, błąd 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to write gatts value, err 0x%04x" +msgstr "Nie udało się zapisać gatts, błąd 0x%04x" + +#: py/moduerrno.c +msgid "File exists" +msgstr "Plik istnieje" + +#: ports/nrf/supervisor/internal_flash.c +msgid "Flash erase failed" +msgstr "Nie udało się skasować pamięci flash" + +#: ports/nrf/supervisor/internal_flash.c +#, c-format +msgid "Flash erase failed to start, err 0x%04x" +msgstr "Nie udało się rozpocząć kasowania pamięci flash, błąd 0x%04x" + +#: ports/nrf/supervisor/internal_flash.c +msgid "Flash write failed" +msgstr "Zapis do pamięci flash nie powiódł się" + +#: ports/nrf/supervisor/internal_flash.c +#, c-format +msgid "Flash write failed to start, err 0x%04x" +msgstr "Nie udało się rozpocząć zapisu do pamięci flash, błąd 0x%04x" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +msgid "Frequency captured is above capability. Capture Paused." +msgstr "Uzyskana częstotliwość jest poza możliwościami. Spauzowano." + +#: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c +msgid "Function requires lock" +msgstr "Funkcja wymaga blokady" + +#: shared-module/displayio/Group.c +msgid "Group full" +msgstr "Grupa pełna" + +#: extmod/vfs_posix_file.c py/objstringio.c +msgid "I/O operation on closed file" +msgstr "Operacja I/O na zamkniętym pliku" + +#: extmod/machine_i2c.c +msgid "I2C operation not supported" +msgstr "Operacja I2C nie obsługiwana" + +#: py/persistentcode.c +msgid "" +"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" +"mpy-update for more info." +msgstr "" +"Niekompatybilny plik .mpy. Proszę odświeżyć wszystkie pliki .mpy. Więcej " +"informacji na http://adafrui.it/mpy-update." + +#: shared-bindings/_pew/PewPew.c +msgid "Incorrect buffer size" +msgstr "Niewłaściwa wielkość bufora" + +#: py/moduerrno.c +msgid "Input/output error" +msgstr "Błąd wejścia/wyjścia" + +#: shared-module/displayio/OnDiskBitmap.c +msgid "Invalid BMP file" +msgstr "Niepoprawny plik BMP" + +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c +#: ports/nrf/common-hal/pulseio/PWMOut.c shared-bindings/pulseio/PWMOut.c +msgid "Invalid PWM frequency" +msgstr "Niewłaściwa częstotliwość PWM" + +#: py/moduerrno.c +msgid "Invalid argument" +msgstr "Niepoprawny argument" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Invalid bit clock pin" +msgstr "Niewłaściwa nóżka zegara bitowego" + +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + +#: ports/nrf/common-hal/busio/UART.c +msgid "Invalid buffer size" +msgstr "Niewłaściwa wielkość bufora" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +msgid "Invalid capture period. Valid range: 1 - 500" +msgstr "Niewłaściwy okres. Poprawny zakres to: 1 - 500" + +#: shared-bindings/audioio/Mixer.c +msgid "Invalid channel count" +msgstr "Niewłaściwa liczba kanałów" + +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Invalid clock pin" +msgstr "Niewłaściwa nóżka zegara" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Invalid data pin" +msgstr "Niewłaściwa nóżka danych" + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Invalid direction." +msgstr "Niewłaściwy tryb" + +#: shared-module/audioio/WaveFile.c +msgid "Invalid file" +msgstr "Niewłaściwy plik" + +#: shared-module/audioio/WaveFile.c +msgid "Invalid format chunk size" +msgstr "Niewłaściwa wielkość fragmentu formatu" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "Invalid number of bits" +msgstr "Niewłaściwa liczba bitów" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "Invalid phase" +msgstr "Niewłaściwa faza" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +#: ports/atmel-samd/common-hal/touchio/TouchIn.c +#: shared-bindings/pulseio/PWMOut.c +msgid "Invalid pin" +msgstr "Niewłaściwa nóżka" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Invalid pin for left channel" +msgstr "Niewłaściwa nóżka dla lewego kanału" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Invalid pin for right channel" +msgstr "Niewłaściwa nóżka dla prawego kanału" + +#: ports/atmel-samd/common-hal/busio/I2C.c +#: ports/atmel-samd/common-hal/busio/SPI.c +#: ports/atmel-samd/common-hal/busio/UART.c +#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c +#: ports/nrf/common-hal/busio/I2C.c +msgid "Invalid pins" +msgstr "Niewłaściwe nóżki" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "Invalid polarity" +msgstr "Nie właściwa polaryzacja" + +#: shared-bindings/microcontroller/__init__.c +msgid "Invalid run mode." +msgstr "Niewłaściwy tryb uruchomienia" + +#: shared-bindings/audioio/Mixer.c +msgid "Invalid voice count" +msgstr "Niewłaściwa liczba głosów" + +#: shared-module/audioio/WaveFile.c +msgid "Invalid wave file" +msgstr "Błędny plik wave" + +#: py/compile.c +msgid "LHS of keyword arg must be an id" +msgstr "Lewa strona argumentu musi być identyfikatorem" + +#: shared-module/displayio/Group.c +msgid "Layer must be a Group or TileGrid subclass." +msgstr "Layer musi dziedziczyć z Group albo TileGrid" + +#: py/objslice.c +msgid "Length must be an int" +msgstr "Długość musi być całkowita" + +#: py/objslice.c +msgid "Length must be non-negative" +msgstr "Długość musi być nieujemna" + +#: supervisor/shared/safe_mode.c +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" +"Ojej, wygląda na to, że CircuitPython natrafił na poważny problem!\n" +"Prosimy o zgłoszenie błędu pod adresem https://github.com/adafruit/" +"circuitpython/issues\n" +" z zawartością dysku CIRCUITPY oraz tym komunikatem:\n" + +#: shared-module/bitbangio/SPI.c +msgid "MISO pin init failed." +msgstr "Nie powiodła się inicjalizacja nóżki MISO." + +#: shared-module/bitbangio/SPI.c +msgid "MOSI pin init failed." +msgstr "Nie powiodła się inicjalizacja nóżki MOSI" + +#: shared-module/displayio/Shape.c +#, c-format +msgid "Maximum x value when mirrored is %d" +msgstr "Największa możliwa wartość x przy odwróceniu to %d" + +#: supervisor/shared/safe_mode.c +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "" +"Skok NLR MicroPythona nie powiódł się. Prawdopodobne uszkodzenie pamięci.\n" + +#: supervisor/shared/safe_mode.c +msgid "MicroPython fatal error.\n" +msgstr "Krytyczny błąd MicroPythona.\n" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Microphone startup delay must be in range 0.0 to 1.0" +msgstr "Opóźnienie włączenia mikrofonu musi być w zakresie od 0.0 do 1.0" + +#: shared-bindings/displayio/Display.c +msgid "Must be a Group subclass." +msgstr "Musi dziedziczyć z Group." + +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c +msgid "No DAC on chip" +msgstr "Brak DAC" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "No DMA channel found" +msgstr "Nie znaleziono kanału DMA" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "No RX pin" +msgstr "Brak nóżki RX" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "No TX pin" +msgstr "Brak nóżki TX" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +msgid "No available clocks" +msgstr "Brak dostępnych zegarów" + +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Nie ma domyślnej magistrali %q" + +#: ports/atmel-samd/common-hal/touchio/TouchIn.c +msgid "No free GCLKs" +msgstr "Brak wolnych GLCK" + +#: shared-bindings/os/__init__.c +msgid "No hardware random available" +msgstr "Brak sprzętowego generatora liczb losowych" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +msgid "No hardware support on pin" +msgstr "Brak sprzętowej obsługi na nóżce" + +#: py/moduerrno.c +msgid "No space left on device" +msgstr "Brak miejsca na urządzeniu" + +#: py/moduerrno.c +msgid "No such file/directory" +msgstr "Nie ma takiego pliku/katalogu" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "Not connected" +msgstr "Nie podłączono" + +#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c +msgid "Not playing" +msgstr "Nic nie jest odtwarzane" + +#: shared-bindings/util.c +msgid "" +"Object has been deinitialized and can no longer be used. Create a new object." +msgstr "Obiekt został zwolnione i nie można go już używać. Utwórz nowy obiekt." + +#: ports/nrf/common-hal/busio/UART.c +msgid "Odd parity is not supported" +msgstr "Nieparzysta parzystość nie jest wspierana" + +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Only 8 or 16 bit mono with " +msgstr "Tylko 8 lub 16 bitów mono z " + +#: shared-module/displayio/OnDiskBitmap.c +#, c-format +msgid "" +"Only Windows format, uncompressed BMP supported: given header size is %d" +msgstr "" +"Wspierane są tylko nieskompresowane pliki BMP Windowsa: wielkość nagłówka %d" + +#: shared-module/displayio/OnDiskBitmap.c +#, c-format +msgid "" +"Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp " +"given" +msgstr "" +"Wspierane są tylko pliki BMP czarno-białe, indeksowane 8bpp i 16bpp: %d bpp " + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "Only slices with step=1 (aka None) are supported" +msgstr "Wspierane są tylko fragmenty z step=1 (albo None)" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Oversample must be multiple of 8." +msgstr "Nadpróbkowanie musi być wielokrotnością 8." + +#: shared-bindings/pulseio/PWMOut.c +msgid "" +"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" +msgstr "duty_cycle musi być pomiędzy 0 a 65535 włącznie (rozdzielczość 16 bit)" + +#: shared-bindings/pulseio/PWMOut.c +msgid "" +"PWM frequency not writable when variable_frequency is False on construction." +msgstr "Nie można zmienić częstotliwości PWM gdy variable_frequency=False." + +#: py/moduerrno.c +msgid "Permission denied" +msgstr "Odmowa dostępu" + +#: ports/atmel-samd/common-hal/analogio/AnalogIn.c +#: ports/nrf/common-hal/analogio/AnalogIn.c +msgid "Pin does not have ADC capabilities" +msgstr "Nóżka nie obsługuje ADC" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "Pixel beyond bounds of buffer" +msgstr "Piksel poza granicami bufora" + +#: py/builtinhelp.c +msgid "Plus any modules on the filesystem\n" +msgstr "Oraz moduły w systemie plików\n" + +#: main.c +msgid "Press any key to enter the REPL. Use CTRL-D to reload." +msgstr "" +"Naciśnij dowolny klawisz aby uruchomić konsolę. Naciśnij CTRL-D aby " +"przeładować." + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Pull not used when direction is output." +msgstr "Podciągnięcie nieużywane w trybie wyjścia." + +#: ports/nrf/common-hal/rtc/RTC.c +msgid "RTC calibration is not supported on this board" +msgstr "Ta płytka nie obsługuje kalibracji RTC" + +#: shared-bindings/time/__init__.c +msgid "RTC is not supported on this board" +msgstr "Ta płytka nie obsługuje RTC" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "Range out of bounds" +msgstr "Zakres poza granicami" + +#: shared-bindings/pulseio/PulseIn.c +msgid "Read-only" +msgstr "Tylko do odczytu" + +#: extmod/vfs_fat.c py/moduerrno.c +msgid "Read-only filesystem" +msgstr "System plików tylko do odczytu" + +#: shared-module/displayio/Bitmap.c +msgid "Read-only object" +msgstr "Obiekt tylko do odczytu" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Right channel unsupported" +msgstr "Prawy kanał nie jest wspierany" + +#: shared-bindings/_pew/PewPew.c +msgid "Row entry must be digitalio.DigitalInOut" +msgstr "Rzędy muszą być digitalio.DigitalInOut" + +#: main.c +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Uruchomiony tryb bezpieczeństwa! Samoprzeładowanie wyłączone.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n" + +#: ports/atmel-samd/common-hal/busio/I2C.c +msgid "SDA or SCL needs a pull up" +msgstr "SDA lub SCL wymagają podciągnięcia" + +#: shared-bindings/audioio/Mixer.c +msgid "Sample rate must be positive" +msgstr "Częstotliwość próbkowania musi być dodatnia" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +#, c-format +msgid "Sample rate too high. It must be less than %d" +msgstr "Zbyt wysoka częstotliwość próbkowania. Musi być mniejsza niż %d" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Serializer in use" +msgstr "Serializator w użyciu" + +#: shared-bindings/nvm/ByteArray.c +msgid "Slice and value different lengths." +msgstr "Fragment i wartość są różnych długości." + +#: shared-bindings/displayio/Bitmap.c shared-bindings/displayio/Group.c +#: shared-bindings/displayio/TileGrid.c shared-bindings/pulseio/PulseIn.c +msgid "Slices not supported" +msgstr "Fragmenty nieobsługiwane" + +#: ports/nrf/common-hal/bleio/Adapter.c +#, c-format +msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX" +msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX" + +#: extmod/modure.c +msgid "Splitting with sub-captures" +msgstr "Dzielenie z podgrupami" + +#: shared-bindings/supervisor/__init__.c +msgid "Stack size must be at least 256" +msgstr "Stos musi mieć co najmniej 256 bajtów" + +#: shared-bindings/multiterminal/__init__.c +msgid "Stream missing readinto() or write() method." +msgstr "Strumień nie ma metod readinto() lub write()." + +#: supervisor/shared/safe_mode.c +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" +"Sterta CircuitPythona jest skażona z powodu zbyt małego stosu.\n" +"Proszę zwiększyć limity wielkości stosu i nazisnąć reset (po odmontowaniu " +"CIRCUITPY).\n" +"Jeśli wielkość stosu nie była zmieniana, proszę zgłosić błąd zawierający " +"zawartość CIRCUITPY tutaj:\n" + +#: supervisor/shared/safe_mode.c +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"Zasilanie mikrokontrolera gwałtownie spadło. Proszę upewnić się,\n" +"że zasilanie jest wystarczające dla całego obwodu in nacisnąć reset (po " +"odmontowaniu CIRCUITPY).\n" + +#: supervisor/shared/safe_mode.c +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" +"Przycisk reset został wciśnięty podczas startu CircuitPythona.Wciśnij go " +"ponownie aby wyjść z trybu bezpieczeństwa.\n" + +#: shared-module/audioio/Mixer.c +msgid "The sample's bits_per_sample does not match the mixer's" +msgstr "Wartość bits_per_sample tej próbki nie pasuje do miksera" + +#: shared-module/audioio/Mixer.c +msgid "The sample's channel count does not match the mixer's" +msgstr "Liczba kanałów tej próbki nie pasuje do miksera " + +#: shared-module/audioio/Mixer.c +msgid "The sample's sample rate does not match the mixer's" +msgstr "Sample rate próbki nie pasuje do miksera" + +#: shared-module/audioio/Mixer.c +msgid "The sample's signedness does not match the mixer's" +msgstr "Znak próbki nie pasuje do miksera" + +#: shared-bindings/displayio/TileGrid.c +msgid "Tile height must exactly divide bitmap height" +msgstr "Wysyokość bitmapy musi być wielokrotnością wysokości kafelka" + +#: shared-bindings/displayio/TileGrid.c +msgid "Tile indices must be 0 - 255" +msgstr "Indeks kafelka musi być pomiędzy 0 a 255 włącznie" + +#: shared-bindings/displayio/TileGrid.c +msgid "Tile width must exactly divide bitmap width" +msgstr "Szerokość bitmapy musi być wielokrotnością szerokości kafelka" + +#: supervisor/shared/safe_mode.c +msgid "To exit, please reset the board without " +msgstr "Aby wyjść, proszę zresetować płytkę bez " + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Too many channels in sample." +msgstr "Zbyt wiele kanałów w próbce." + +#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c +msgid "Too many display busses" +msgstr "Zbyt wiele magistrali wyświetlaczy" + +#: shared-bindings/displayio/Display.c +msgid "Too many displays" +msgstr "Zbyt wiele wyświetlaczy" + +#: py/obj.c +msgid "Traceback (most recent call last):\n" +msgstr "Ślad wyjątku (najnowsze wywołanie na końcu):\n" + +#: shared-bindings/time/__init__.c +msgid "Tuple or struct_time argument required" +msgstr "Wymagana krotka lub struct_time" + +#: shared-module/usb_hid/Device.c +msgid "USB Busy" +msgstr "USB Zajęte" + +#: shared-module/usb_hid/Device.c +msgid "USB Error" +msgstr "Błąd USB" + +#: shared-bindings/bleio/UUID.c +msgid "UUID integer value not in range 0 to 0xffff" +msgstr "Wartość UUID poza zakresem 0 do 0xffff" + +#: shared-bindings/bleio/UUID.c +msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" +msgstr "UUID nie pasuje do `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" + +#: shared-bindings/bleio/UUID.c +msgid "UUID value is not str, int or byte buffer" +msgstr "UUID nie jest typu str, int lub bytes" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Unable to allocate buffers for signed conversion" +msgstr "Nie udała się alokacja buforów do konwersji ze znakiem" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Unable to find free GCLK" +msgstr "Nie znaleziono wolnego GCLK" + +#: py/parse.c +msgid "Unable to init parser" +msgstr "Błąd inicjalizacji parsera" + +#: shared-module/displayio/OnDiskBitmap.c +msgid "Unable to read color palette data" +msgstr "Nie można odczytać danych palety" + +#: shared-bindings/nvm/ByteArray.c +msgid "Unable to write to nvm." +msgstr "Błąd zapisu do NVM." + +#: ports/nrf/common-hal/bleio/UUID.c +msgid "Unexpected nrfx uuid type" +msgstr "Nieoczekiwany typ nrfx uuid." + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "Unmatched number of items on RHS (expected %d, got %d)." +msgstr "" +"Niepasująca liczba obiektów po prawej stronie (oczekiwano %d, jest %d)." + +#: ports/atmel-samd/common-hal/busio/I2C.c +msgid "Unsupported baudrate" +msgstr "Niewspierana szybkość transmisji" + +#: shared-module/displayio/Display.c +msgid "Unsupported display bus type" +msgstr "Niewspierany typ magistrali wyświetlaczy" + +#: shared-module/audioio/WaveFile.c +msgid "Unsupported format" +msgstr "Niewspierany format" + +#: py/moduerrno.c +msgid "Unsupported operation" +msgstr "Niewspierana operacja" + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Unsupported pull value." +msgstr "Niewspierana wartość podciągnięcia." + +#: py/emitnative.c +msgid "Viper functions don't currently support more than 4 arguments" +msgstr "Funkcje Viper nie obsługują obecnie więcej niż 4 argumentów" + +#: shared-module/audioio/Mixer.c +msgid "Voice index too high" +msgstr "Zbyt wysoki indeks głosu" + +#: main.c +msgid "WARNING: Your code filename has two extensions\n" +msgstr "OSTRZEŻENIE: Nazwa pliku ma dwa rozszerzenia\n" + +#: py/builtinhelp.c +#, c-format +msgid "" +"Welcome to Adafruit CircuitPython %s!\n" +"\n" +"Please visit learn.adafruit.com/category/circuitpython for project guides.\n" +"\n" +"To list built-in modules please do `help(\"modules\")`.\n" +msgstr "" +"Witamy w CircuitPythonie Adafruita %s!\n" +"Podręczniki dostępne na learn.adafruit.com/category/circuitpyhon.\n" +"Aby wyświetlić wbudowane moduły, wpisz `help(\"modules\")`.\n" + +#: supervisor/shared/safe_mode.c +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" +"Uruchomiono w trybie bezpieczeństwa, co oznacza, że nastąpiło coś " +"nieoczekiwanego.\n" + +#: supervisor/shared/safe_mode.c +msgid "You requested starting safe mode by " +msgstr "Zażądano trybu bezpieczeństwa przez " + +#: py/objtype.c +msgid "__init__() should return None" +msgstr "__init__() powinien zwracać None" + +#: py/objtype.c +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() powinien zwracać None, nie '%s'" + +#: py/objobject.c +msgid "__new__ arg must be a user-type" +msgstr "Argument __new__ musi być typu użytkownika" + +#: extmod/modubinascii.c extmod/moduhashlib.c +msgid "a bytes-like object is required" +msgstr "wymagany obiekt typu bytes" + +#: lib/embed/abort_.c +msgid "abort() called" +msgstr "Wywołano abort()" + +#: extmod/machine_mem.c +#, c-format +msgid "address %08x is not aligned to %d bytes" +msgstr "adres %08x nie jest wyrównany do %d bajtów" + +#: shared-bindings/i2cslave/I2CSlave.c +msgid "address out of bounds" +msgstr "adres poza zakresem" + +#: shared-bindings/i2cslave/I2CSlave.c +msgid "addresses is empty" +msgstr "adres jest pusty" + +#: py/modbuiltins.c +msgid "arg is an empty sequence" +msgstr "arg jest puste" + +#: py/runtime.c +msgid "argument has wrong type" +msgstr "argument ma zły typ" + +#: py/argcheck.c +msgid "argument num/types mismatch" +msgstr "niezgodna liczba lub typ argumentów" + +#: py/runtime.c +msgid "argument should be a '%q' not a '%q'" +msgstr "argument powinien być '%q' a nie '%q'" + +#: py/objarray.c shared-bindings/nvm/ByteArray.c +msgid "array/bytes required on right side" +msgstr "tablica/bytes wymagane po prawej stronie" + +#: py/objstr.c +msgid "attributes not supported yet" +msgstr "atrybuty nie są jeszcze obsługiwane" + +#: ports/nrf/common-hal/bleio/Characteristic.c +msgid "bad GATT role" +msgstr "zła rola GATT" + +#: py/builtinevex.c +msgid "bad compile mode" +msgstr "zły tryb kompilacji" + +#: py/objstr.c +msgid "bad conversion specifier" +msgstr "zły specyfikator konwersji" + +#: py/objstr.c +msgid "bad format string" +msgstr "zła specyfikacja formatu" + +#: py/binary.c +msgid "bad typecode" +msgstr "zły typecode" + +#: py/emitnative.c +msgid "binary op %q not implemented" +msgstr "dwuargumentowy operator %q niezaimplementowany" + +#: shared-bindings/busio/UART.c +msgid "bits must be 7, 8 or 9" +msgstr "buts musi być 7, 8 lub 9" + +#: extmod/machine_spi.c +msgid "bits must be 8" +msgstr "bits musi być 8" + +#: shared-bindings/audioio/Mixer.c +msgid "bits_per_sample must be 8 or 16" +msgstr "bits_per_sample musi być 8 lub 16" + +#: py/emitinlinethumb.c +msgid "branch not in range" +msgstr "skok poza zakres" + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "buf is too small. need %d bytes" +msgstr "buf zbyt mały. Wymagane %d bajtów" + +#: shared-bindings/audioio/RawSample.c +msgid "buffer must be a bytes-like object" +msgstr "bufor mysi być typu bytes" + +#: shared-module/struct/__init__.c +msgid "buffer size must match format" +msgstr "wielkość bufora musi pasować do formatu" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "buffer slices must be of equal length" +msgstr "fragmenty bufora muszą mieć tę samą długość" + +#: py/modstruct.c shared-bindings/struct/__init__.c +#: shared-module/struct/__init__.c +msgid "buffer too small" +msgstr "zbyt mały bufor" + +#: extmod/machine_spi.c +msgid "buffers must be the same length" +msgstr "bufory muszą mieć tę samą dłygość" + +#: shared-bindings/_pew/PewPew.c +msgid "buttons must be digitalio.DigitalInOut" +msgstr "buttons musi być digitalio.DigitalInOut" + +#: py/vm.c +msgid "byte code not implemented" +msgstr "bajtkod niezaimplemntowany" + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "byteorder is not an instance of ByteOrder (got a %s)" +msgstr "byteorder musi być typu ByteOrder (jest %s)" + +#: ports/atmel-samd/common-hal/busio/UART.c +msgid "bytes > 8 bits not supported" +msgstr "bajty większe od 8 bitów są niewspierane" + +#: py/objstr.c +msgid "bytes value out of range" +msgstr "wartość bytes poza zakresem" + +#: ports/atmel-samd/bindings/samd/Clock.c +msgid "calibration is out of range" +msgstr "kalibracja poza zakresem" + +#: ports/atmel-samd/bindings/samd/Clock.c +msgid "calibration is read only" +msgstr "kalibracja tylko do odczytu" + +#: ports/atmel-samd/common-hal/rtc/RTC.c +msgid "calibration value out of range +/-127" +msgstr "wartość kalibracji poza zakresem +/-127" + +#: py/emitinlinethumb.c +msgid "can only have up to 4 parameters to Thumb assembly" +msgstr "asembler Thumb może przyjąć do 4 parameterów" + +#: py/emitinlinextensa.c +msgid "can only have up to 4 parameters to Xtensa assembly" +msgstr "asembler Xtensa może przyjąć do 4 parameterów" + +#: py/persistentcode.c +msgid "can only save bytecode" +msgstr "można zapisać tylko bytecode" + +#: py/objtype.c +msgid "can't add special method to already-subclassed class" +msgstr "nie można dodać specjalnej metody do podklasy" + +#: py/compile.c +msgid "can't assign to expression" +msgstr "nie można przypisać do wyrażenia" + +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "nie można skonwertować %s do liczby zespolonej" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "nie można skonwertować %s do liczby zmiennoprzecinkowej" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "nie można skonwertować %s do liczby całkowitej" + +#: py/objstr.c +msgid "can't convert '%q' object to %q implicitly" +msgstr "nie można automatycznie skonwertować '%q' do '%q'" + +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "nie można skonwertować NaN do liczby całkowitej" + +#: shared-bindings/i2cslave/I2CSlave.c +msgid "can't convert address to int" +msgstr "nie można skonwertować adresu do liczby całkowitej" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "nie można skonwertować inf do liczby całkowitej" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "nie można skonwertować do liczby zespolonej" + +#: py/obj.c +msgid "can't convert to float" +msgstr "nie można skonwertować do liczby zmiennoprzecinkowej" + +#: py/obj.c +msgid "can't convert to int" +msgstr "nie można skonwertować do liczby całkowitej" + +#: py/objstr.c +msgid "can't convert to str implicitly" +msgstr "nie można automatycznie skonwertować do łańcucha" + +#: py/compile.c +msgid "can't declare nonlocal in outer code" +msgstr "nie można deklarować nonlocal na poziomie modułu" + +#: py/compile.c +msgid "can't delete expression" +msgstr "nie można usunąć wyrażenia" + +#: py/emitnative.c +msgid "can't do binary op between '%q' and '%q'" +msgstr "nie można użyć operatora pomiędzy '%q' a '%q'" + +#: py/objcomplex.c +msgid "can't do truncated division of a complex number" +msgstr "nie można wykonać dzielenia całkowitego na liczbie zespolonej" + +#: py/compile.c +msgid "can't have multiple **x" +msgstr "nie można mieć wielu **x" + +#: py/compile.c +msgid "can't have multiple *x" +msgstr "nie można mieć wielu *x" + +#: py/emitnative.c +msgid "can't implicitly convert '%q' to 'bool'" +msgstr "nie można automatyczne skonwertować '%q' do 'bool'" + +#: py/emitnative.c +msgid "can't load from '%q'" +msgstr "nie można ładować z '%q'" + +#: py/emitnative.c +msgid "can't load with '%q' index" +msgstr "nie można ładować z indeksem '%q'" + +#: py/objgenerator.c +msgid "can't pend throw to just-started generator" +msgstr "nie można skoczyć do świeżo stworzonego generatora" + +#: py/objgenerator.c +msgid "can't send non-None value to a just-started generator" +msgstr "świerzo stworzony generator może tylko przyjąć None" + +#: py/objnamedtuple.c +msgid "can't set attribute" +msgstr "nie można ustawić atrybutu" + +#: py/emitnative.c +msgid "can't store '%q'" +msgstr "nie można zapisać '%q'" + +#: py/emitnative.c +msgid "can't store to '%q'" +msgstr "nie można zpisać do '%q'" + +#: py/emitnative.c +msgid "can't store with '%q' index" +msgstr "nie można zapisać z indeksem '%q'" + +#: py/objstr.c +msgid "" +"can't switch from automatic field numbering to manual field specification" +msgstr "nie można zmienić z automatycznego numerowania pól do ręcznego" + +#: py/objstr.c +msgid "" +"can't switch from manual field specification to automatic field numbering" +msgstr "nie można zmienić z ręcznego numerowaniu pól do automatycznego" + +#: py/objtype.c +msgid "cannot create '%q' instances" +msgstr "nie można tworzyć instancji '%q'" + +#: py/objtype.c +msgid "cannot create instance" +msgstr "nie można stworzyć instancji" + +#: py/runtime.c +msgid "cannot import name %q" +msgstr "nie można zaimportować nazwy %q" + +#: py/builtinimport.c +msgid "cannot perform relative import" +msgstr "nie można wykonać relatywnego importu" + +#: py/emitnative.c +msgid "casting" +msgstr "rzutoowanie" + +#: shared-bindings/bleio/Service.c +msgid "characteristics includes an object that is not a Characteristic" +msgstr "charakterystyki zawierają obiekt, który nie jest typu Characteristic" + +#: shared-bindings/_stage/Text.c +msgid "chars buffer too small" +msgstr "bufor chars zbyt mały" + +#: py/modbuiltins.c +msgid "chr() arg not in range(0x110000)" +msgstr "argument chr() poza zakresem range(0x110000)" + +#: py/modbuiltins.c +msgid "chr() arg not in range(256)" +msgstr "argument chr() poza zakresem range(256)" + +#: shared-bindings/displayio/Palette.c +msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" +msgstr "bufor kolorów musi nieć 3 bajty (RGB) lub 4 bajty (RGB + wypełnienie)" + +#: shared-bindings/displayio/Palette.c +msgid "color buffer must be a buffer or int" +msgstr "bufor kolorów musi być typu buffer lub int" + +#: shared-bindings/displayio/Palette.c +msgid "color buffer must be a bytearray or array of type 'b' or 'B'" +msgstr "bufor kolorów musi być bytearray lub tablicą typu 'b' lub 'B'" + +#: shared-bindings/displayio/Palette.c +msgid "color must be between 0x000000 and 0xffffff" +msgstr "kolor musi być pomiędzy 0x000000 a 0xffffff" + +#: shared-bindings/displayio/ColorConverter.c +msgid "color should be an int" +msgstr "kolor powinien być liczbą całkowitą" + +#: py/objcomplex.c +msgid "complex division by zero" +msgstr "zespolone dzielenie przez zero" + +#: py/objfloat.c py/parsenum.c +msgid "complex values not supported" +msgstr "wartości zespolone nieobsługiwane" + +#: extmod/moduzlib.c +msgid "compression header" +msgstr "nagłówek kompresji" + +#: py/parse.c +msgid "constant must be an integer" +msgstr "stała musi być liczbą całkowitą" + +#: py/emitnative.c +msgid "conversion to object" +msgstr "konwersja do obiektu" + +#: py/parsenum.c +msgid "decimal numbers not supported" +msgstr "liczby dziesiętne nieobsługiwane" + +#: py/compile.c +msgid "default 'except' must be last" +msgstr "domyślny 'except' musi być ostatni" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "" +"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +msgstr "" +"bufor docelowy musi być bytearray lub tablicą typu 'B' dla bit_depth = 8" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +msgstr "bufor docelowy musi być tablicą typu 'H' dla bit_depth = 16" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "destination_length must be an int >= 0" +msgstr "destination_length musi być nieujemną liczbą całkowitą" + +#: py/objdict.c +msgid "dict update sequence has wrong length" +msgstr "sekwencja ma złą długość" + +#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c +#: shared-bindings/math/__init__.c +msgid "division by zero" +msgstr "dzielenie przez zero" + +#: py/objdeque.c +msgid "empty" +msgstr "puste" + +#: extmod/moduheapq.c extmod/modutimeq.c +msgid "empty heap" +msgstr "pusta sterta" + +#: py/objstr.c +msgid "empty separator" +msgstr "pusty separator" + +#: shared-bindings/random/__init__.c +msgid "empty sequence" +msgstr "pusta sekwencja" + +#: py/objstr.c +msgid "end of format while looking for conversion specifier" +msgstr "koniec formatu przy szukaniu specyfikacji konwersji" + +#: shared-bindings/displayio/Shape.c +msgid "end_x should be an int" +msgstr "end_x powinien być całkowity" + +#: ports/nrf/common-hal/busio/UART.c +#, c-format +msgid "error = 0x%08lX" +msgstr "błąd = 0x%08lX" + +#: py/runtime.c +msgid "exceptions must derive from BaseException" +msgstr "wyjątki muszą dziedziczyć po BaseException" + +#: py/objstr.c +msgid "expected ':' after format specifier" +msgstr "oczekiwano ':' po specyfikacji formatu" + +#: shared-bindings/gamepad/GamePad.c +msgid "expected a DigitalInOut" +msgstr "oczekiwano DigitalInOut" + +#: py/obj.c +msgid "expected tuple/list" +msgstr "oczekiwano krotki/listy" + +#: py/modthread.c +msgid "expecting a dict for keyword args" +msgstr "oczekiwano słownika dla argumentów nazwanych" + +#: py/compile.c +msgid "expecting an assembler instruction" +msgstr "oczekiwano instrukcji asemblera" + +#: py/compile.c +msgid "expecting just a value for set" +msgstr "oczekiwano tylko wartości dla zbioru" + +#: py/compile.c +msgid "expecting key:value for dict" +msgstr "oczekiwano klucz:wartość dla słownika" + +#: py/argcheck.c +msgid "extra keyword arguments given" +msgstr "nadmiarowe argumenty" + +#: py/argcheck.c +msgid "extra positional arguments given" +msgstr "nadmiarowe argumenty pozycyjne" + +#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c +msgid "file must be a file opened in byte mode" +msgstr "file musi być plikiem otwartym w trybie bajtowym" + +#: shared-bindings/storage/__init__.c +msgid "filesystem must provide mount method" +msgstr "system plików musi mieć metodę mount" + +#: py/objtype.c +msgid "first argument to super() must be type" +msgstr "pierwszy argument super() musi być typem" + +#: extmod/machine_spi.c +msgid "firstbit must be MSB" +msgstr "firstbit musi być MSB" + +#: py/objint.c +msgid "float too big" +msgstr "liczba zmiennoprzecinkowa zbyt wielka" + +#: shared-bindings/_stage/Text.c +msgid "font must be 2048 bytes long" +msgstr "font musi mieć 2048 bajtów długości" + +#: py/objstr.c +msgid "format requires a dict" +msgstr "format wymaga słownika" + +#: py/objdeque.c +msgid "full" +msgstr "pełny" + +#: py/argcheck.c +msgid "function does not take keyword arguments" +msgstr "funkcja nie bierze argumentów nazwanych" + +#: py/argcheck.c +#, c-format +msgid "function expected at most %d arguments, got %d" +msgstr "funkcja oczekuje najwyżej %d argumentów, jest %d" + +#: py/bc.c py/objnamedtuple.c +msgid "function got multiple values for argument '%q'" +msgstr "funkcja dostała wiele wartości dla argumentu '%q'" + +#: py/argcheck.c +#, c-format +msgid "function missing %d required positional arguments" +msgstr "brak %d wymaganych argumentów pozycyjnych funkcji" + +#: py/bc.c +msgid "function missing keyword-only argument" +msgstr "brak argumentu nazwanego funkcji" + +#: py/bc.c +msgid "function missing required keyword argument '%q'" +msgstr "brak wymaganego argumentu nazwanego '%q' funkcji" + +#: py/bc.c +#, c-format +msgid "function missing required positional argument #%d" +msgstr "brak wymaganego argumentu pozycyjnego #%d funkcji" + +#: py/argcheck.c py/bc.c py/objnamedtuple.c +#, c-format +msgid "function takes %d positional arguments but %d were given" +msgstr "funkcja wymaga %d argumentów pozycyjnych, ale jest %d" + +#: shared-bindings/time/__init__.c +msgid "function takes exactly 9 arguments" +msgstr "funkcja wymaga dokładnie 9 argumentów" + +#: py/objgenerator.c +msgid "generator already executing" +msgstr "generator już się wykonuje" + +#: py/objgenerator.c +msgid "generator ignored GeneratorExit" +msgstr "generator zignorował GeneratorExit" + +#: shared-bindings/_stage/Layer.c +msgid "graphic must be 2048 bytes long" +msgstr "graphic musi mieć 2048 bajtów długości" + +#: extmod/moduheapq.c +msgid "heap must be a list" +msgstr "heap musi być listą" + +#: py/compile.c +msgid "identifier redefined as global" +msgstr "identyfikator przedefiniowany jako globalny" + +#: py/compile.c +msgid "identifier redefined as nonlocal" +msgstr "identyfikator przedefiniowany jako nielokalny" + +#: py/objstr.c +msgid "incomplete format" +msgstr "niepełny format" + +#: py/objstr.c +msgid "incomplete format key" +msgstr "niepełny klucz formatu" + +#: extmod/modubinascii.c +msgid "incorrect padding" +msgstr "niepoprawne wypełnienie" + +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c +msgid "index out of range" +msgstr "indeks poza zakresem" + +#: py/obj.c +msgid "indices must be integers" +msgstr "indeksy muszą być całkowite" + +#: py/compile.c +msgid "inline assembler must be a function" +msgstr "wtrącony asembler musi być funkcją" + +#: py/parsenum.c +msgid "int() arg 2 must be >= 2 and <= 36" +msgstr "drugi argument do int() busi być pomiędzy 2 a 36" + +#: py/objstr.c +msgid "integer required" +msgstr "wymagana liczba całkowita" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +msgid "interval not in range 0.0020 to 10.24" +msgstr "przedział poza zakresem 0.0020 do 10.24" + +#: extmod/machine_i2c.c +msgid "invalid I2C peripheral" +msgstr "niewłaściwe peryferium I2C" + +#: extmod/machine_spi.c +msgid "invalid SPI peripheral" +msgstr "niewłaściwe peryferium SPI" + +#: lib/netutils/netutils.c +msgid "invalid arguments" +msgstr "niewłaściwe arguemnty" + +#: extmod/modussl_axtls.c +msgid "invalid cert" +msgstr "niewłaściwy ceryfikat" + +#: extmod/uos_dupterm.c +msgid "invalid dupterm index" +msgstr "niewłaściwy indeks dupterm" + +#: extmod/modframebuf.c +msgid "invalid format" +msgstr "niewłaściwy format" + +#: py/objstr.c +msgid "invalid format specifier" +msgstr "niewłaściwa specyfikacja formatu" + +#: extmod/modussl_axtls.c +msgid "invalid key" +msgstr "niewłaściwy klucz" + +#: py/compile.c +msgid "invalid micropython decorator" +msgstr "niewłaściwy dekorator micropythona" + +#: shared-bindings/random/__init__.c +msgid "invalid step" +msgstr "niewłaściwy krok" + +#: py/compile.c py/parse.c +msgid "invalid syntax" +msgstr "niewłaściwa składnia" + +#: py/parsenum.c +msgid "invalid syntax for integer" +msgstr "niewłaściwa składnia dla liczby całkowitej" + +#: py/parsenum.c +#, c-format +msgid "invalid syntax for integer with base %d" +msgstr "niewłaściwa składnia dla liczby całkowitej w bazie %d" + +#: py/parsenum.c +msgid "invalid syntax for number" +msgstr "niewłaściwa składnia dla liczby" + +#: py/objtype.c +msgid "issubclass() arg 1 must be a class" +msgstr "argument 1 dla issubclass() musi być klasą" + +#: py/objtype.c +msgid "issubclass() arg 2 must be a class or a tuple of classes" +msgstr "argument 2 dla issubclass() musi być klasą lub krotką klas" + +#: py/objstr.c +msgid "join expects a list of str/bytes objects consistent with self object" +msgstr "join oczekuje listy łańcuchów/bytes zgodnych z self" + +#: py/argcheck.c +msgid "keyword argument(s) not yet implemented - use normal args instead" +msgstr "argumenty nazwane nieobsługiwane - proszę użyć zwykłych argumentów" + +#: py/bc.c +msgid "keywords must be strings" +msgstr "słowa kluczowe muszą być łańcuchami" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +msgid "label '%q' not defined" +msgstr "etykieta '%q' niezdefiniowana" + +#: py/compile.c +msgid "label redefined" +msgstr "etykieta przedefiniowana" + +#: py/stream.c +msgid "length argument not allowed for this type" +msgstr "ten typ nie pozawala na podanie długości" + +#: py/objarray.c +msgid "lhs and rhs should be compatible" +msgstr "lewa i prawa strona powinny być kompatybilne" + +#: py/emitnative.c +msgid "local '%q' has type '%q' but source is '%q'" +msgstr "local '%q' jest typu '%q' lecz źródło jest '%q'" + +#: py/emitnative.c +msgid "local '%q' used before type known" +msgstr "local '%q' użyty zanim typ jest znany" + +#: py/vm.c +msgid "local variable referenced before assignment" +msgstr "zmienna lokalna użyta przed przypisaniem" + +#: py/objint.c +msgid "long int not supported in this build" +msgstr "long int nie jest obsługiwany w tej kompilacji" + +#: shared-bindings/_stage/Layer.c +msgid "map buffer too small" +msgstr "bufor mapy zbyt mały" + +#: py/modmath.c shared-bindings/math/__init__.c +msgid "math domain error" +msgstr "błąd domeny matematycznej" + +#: py/runtime.c +msgid "maximum recursion depth exceeded" +msgstr "przkroczono dozwoloną głębokość rekurencji" + +#: py/runtime.c +#, c-format +msgid "memory allocation failed, allocating %u bytes" +msgstr "alokacja pamięci nie powiodła się, alokowano %u bajtów" + +#: py/runtime.c +msgid "memory allocation failed, heap is locked" +msgstr "alokacja pamięci nie powiodła się, sterta zablokowana" + +#: py/builtinimport.c +msgid "module not found" +msgstr "nie znaleziono modułu" + +#: py/compile.c +msgid "multiple *x in assignment" +msgstr "wiele *x w przypisaniu" + +#: py/objtype.c +msgid "multiple bases have instance lay-out conflict" +msgstr "konflikt w planie instancji z powodu wielu baz" + +#: py/objtype.c +msgid "multiple inheritance not supported" +msgstr "wielokrotne dziedzicznie nie wspierane" + +#: py/emitnative.c +msgid "must raise an object" +msgstr "wyjątek musi być obiektem" + +#: extmod/machine_spi.c +msgid "must specify all of sck/mosi/miso" +msgstr "sck/mosi/miso muszą być podane" + +#: py/modbuiltins.c +msgid "must use keyword argument for key function" +msgstr "funkcja key musi być podana jako argument nazwany" + +#: py/runtime.c +msgid "name '%q' is not defined" +msgstr "nazwa '%q' niezdefiniowana" + +#: shared-bindings/bleio/Peripheral.c +msgid "name must be a string" +msgstr "nazwa musi być łańcuchem" + +#: py/runtime.c +msgid "name not defined" +msgstr "nazwa niezdefiniowana" + +#: py/compile.c +msgid "name reused for argument" +msgstr "nazwa użyta ponownie jako argument" + +#: py/emitnative.c +msgid "native yield" +msgstr "natywny yield" + +#: py/runtime.c +#, c-format +msgid "need more than %d values to unpack" +msgstr "potrzeba więcej niż %d do rozpakowania" + +#: py/objint_longlong.c py/objint_mpz.c py/runtime.c +msgid "negative power with no float support" +msgstr "ujemna potęga, ale brak obsługi liczb zmiennoprzecinkowych" + +#: py/objint_mpz.c py/runtime.c +msgid "negative shift count" +msgstr "ujemne przesunięcie" + +#: py/vm.c +msgid "no active exception to reraise" +msgstr "brak wyjątku do ponownego rzucenia" + +#: shared-bindings/socket/__init__.c shared-module/network/__init__.c +msgid "no available NIC" +msgstr "brak dostępnego NIC" + +#: py/compile.c +msgid "no binding for nonlocal found" +msgstr "brak wiązania dla zmiennej nielokalnej" + +#: py/builtinimport.c +msgid "no module named '%q'" +msgstr "brak modułu o nazwie '%q'" + +#: py/runtime.c shared-bindings/_pixelbuf/__init__.c +msgid "no such attribute" +msgstr "nie ma takiego atrybutu" + +#: py/compile.c +msgid "non-default argument follows default argument" +msgstr "argument z wartością domyślną przed argumentem bez" + +#: extmod/modubinascii.c +msgid "non-hex digit found" +msgstr "cyfra nieszesnastkowa znaleziona" + +#: py/compile.c +msgid "non-keyword arg after */**" +msgstr "argument nienazwany po */**" + +#: py/compile.c +msgid "non-keyword arg after keyword arg" +msgstr "argument nienazwany po nazwanym" + +#: shared-bindings/bleio/UUID.c +msgid "not a 128-bit UUID" +msgstr "to nie jest 128-bitowy UUID" + +#: py/objstr.c +msgid "not all arguments converted during string formatting" +msgstr "nie wszystkie argumenty wykorzystane w formatowaniu" + +#: py/objstr.c +msgid "not enough arguments for format string" +msgstr "nie dość argumentów przy formatowaniu" + +#: py/obj.c +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "obiekt '%s' nie jest krotką ani listą" + +#: py/obj.c +msgid "object does not support item assignment" +msgstr "obiekt nie obsługuje przypisania do elementów" + +#: py/obj.c +msgid "object does not support item deletion" +msgstr "obiekt nie obsługuje usuwania elementów" + +#: py/obj.c +msgid "object has no len" +msgstr "obiekt nie ma len" + +#: py/obj.c +msgid "object is not subscriptable" +msgstr "obiekt nie ma elementów" + +#: py/runtime.c +msgid "object not an iterator" +msgstr "obiekt nie jest iteratorem" + +#: py/objtype.c py/runtime.c +msgid "object not callable" +msgstr "obiekt nie jest wywoływalny" + +#: py/sequence.c +msgid "object not in sequence" +msgstr "obiektu nie ma sekwencji" + +#: py/runtime.c +msgid "object not iterable" +msgstr "obiekt nie jest iterowalny" + +#: py/obj.c +#, c-format +msgid "object of type '%s' has no len()" +msgstr "obiekt typu '%s' nie ma len()" + +#: py/obj.c +msgid "object with buffer protocol required" +msgstr "wymagany obiekt z protokołem buforu" + +#: extmod/modubinascii.c +msgid "odd-length string" +msgstr "łańcuch o nieparzystej długości" + +#: py/objstr.c py/objstrunicode.c +msgid "offset out of bounds" +msgstr "offset poza zakresem" + +#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c +#: shared-bindings/nvm/ByteArray.c +msgid "only slices with step=1 (aka None) are supported" +msgstr "tylko fragmenty ze step=1 (lub None) są wspierane" + +#: py/modbuiltins.c +msgid "ord expects a character" +msgstr "ord oczekuje znaku" + +#: py/modbuiltins.c +#, c-format +msgid "ord() expected a character, but string of length %d found" +msgstr "ord() oczekuje znaku, a jest łańcuch od długości %d" + +#: py/objint_mpz.c +msgid "overflow converting long int to machine word" +msgstr "przepełnienie przy konwersji long in to słowa maszynowego" + +#: shared-bindings/_stage/Layer.c shared-bindings/_stage/Text.c +msgid "palette must be 32 bytes long" +msgstr "paleta musi mieć 32 bajty długości" + +#: shared-bindings/displayio/Palette.c +msgid "palette_index should be an int" +msgstr "palette_index powinien być całkowity" + +#: py/compile.c +msgid "parameter annotation must be an identifier" +msgstr "anotacja parametru musi być identyfikatorem" + +#: py/emitinlinextensa.c +msgid "parameters must be registers in sequence a2 to a5" +msgstr "parametry muszą być rejestrami w kolejności a2 do a5" + +#: py/emitinlinethumb.c +msgid "parameters must be registers in sequence r0 to r3" +msgstr "parametry muszą być rejestrami w kolejności r0 do r3" + +#: shared-bindings/displayio/Bitmap.c +msgid "pixel coordinates out of bounds" +msgstr "współrzędne piksela poza zakresem" + +#: shared-bindings/displayio/Bitmap.c +msgid "pixel value requires too many bits" +msgstr "wartość piksela wymaga zbyt wielu bitów" + +#: shared-bindings/displayio/TileGrid.c +msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" +msgstr "" +"pixel_shader musi być typu displayio.Palette lub dispalyio.ColorConverter" + +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop z pustego PulseIn" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop z pustego zbioru" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop z pustej listy" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): słownik jest pusty" + +#: py/objint_mpz.c +msgid "pow() 3rd argument cannot be 0" +msgstr "trzeci argument pow() nie może być 0" + +#: py/objint_mpz.c +msgid "pow() with 3 arguments requires integers" +msgstr "trzyargumentowe pow() wymaga liczb całkowitych" + +#: extmod/modutimeq.c +msgid "queue overflow" +msgstr "przepełnienie kolejki" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "rawbuf is not the same size as buf" +msgstr "rawbuf nie jest tej samej wielkości co buf" + +#: shared-bindings/_pixelbuf/__init__.c +msgid "readonly attribute" +msgstr "atrybut tylko do odczytu" + +#: py/builtinimport.c +msgid "relative import" +msgstr "relatywny import" + +#: py/obj.c +#, c-format +msgid "requested length %d but object has length %d" +msgstr "zażądano długości %d ale obiekt ma długość %d" + +#: py/compile.c +msgid "return annotation must be an identifier" +msgstr "anotacja wartości musi być identyfikatorem" + +#: py/emitnative.c +msgid "return expected '%q' but got '%q'" +msgstr "return oczekiwał '%q', a jest '%q'" + +#: py/objstr.c +msgid "rsplit(None,n)" +msgstr "rsplit(None,n)" + +#: shared-bindings/audioio/RawSample.c +msgid "" +"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " +"'B'" +msgstr "" +"bufor sample_source musi być bytearray lub tablicą typu 'h', 'H', 'b' lub 'B'" + +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "sampling rate out of range" +msgstr "częstotliwość próbkowania poza zakresem" + +#: py/modmicropython.c +msgid "schedule stack full" +msgstr "stos planu pełen" + +#: lib/utils/pyexec.c py/builtinimport.c +msgid "script compilation not supported" +msgstr "kompilowanie skryptów nieobsługiwane" + +#: shared-bindings/bleio/Peripheral.c +msgid "services includes an object that is not a Service" +msgstr "obiekt typu innego niż Service w services" + +#: py/objstr.c +msgid "sign not allowed in string format specifier" +msgstr "znak jest niedopuszczalny w specyfikacji formatu łańcucha" + +#: py/objstr.c +msgid "sign not allowed with integer format specifier 'c'" +msgstr "znak jest niedopuszczalny w specyfikacji formatu liczby całkowitej" + +#: py/objstr.c +msgid "single '}' encountered in format string" +msgstr "pojedynczy '}' w specyfikacji formatu" + +#: shared-bindings/time/__init__.c +msgid "sleep length must be non-negative" +msgstr "okres snu musi być nieujemny" + +#: py/objslice.c py/sequence.c +msgid "slice step cannot be zero" +msgstr "krok fragmentu nie może być zerowy" + +#: py/objint.c py/sequence.c +msgid "small int overflow" +msgstr "przepełnienie small int" + +#: main.c +msgid "soft reboot\n" +msgstr "programowy reset\n" + +#: py/objstr.c +msgid "start/end indices" +msgstr "początkowe/końcowe indeksy" + +#: shared-bindings/displayio/Shape.c +msgid "start_x should be an int" +msgstr "start_x powinien być całkowity" + +#: shared-bindings/random/__init__.c +msgid "step must be non-zero" +msgstr "step nie może być zerowe" + +#: shared-bindings/busio/UART.c +msgid "stop must be 1 or 2" +msgstr "stop musi być 1 lub 2" + +#: shared-bindings/random/__init__.c +msgid "stop not reachable from start" +msgstr "stop nie jest osiągalne ze start" + +#: py/stream.c +msgid "stream operation not supported" +msgstr "operacja na strumieniu nieobsługiwana" + +#: py/objstrunicode.c +msgid "string index out of range" +msgstr "indeks łańcucha poza zakresem" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "indeksy łańcucha muszą być całkowite, nie %s" + +#: py/stream.c +msgid "string not supported; use bytes or bytearray" +msgstr "łańcuchy nieobsługiwane; użyj bytes lub bytearray" + +#: extmod/moductypes.c +msgid "struct: cannot index" +msgstr "struct: nie można indeksować" + +#: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: indeks poza zakresem" + +#: extmod/moductypes.c +msgid "struct: no fields" +msgstr "struct: brak pól" + +#: py/objstr.c +msgid "substring not found" +msgstr "pod-łańcuch nie znaleziony" + +#: py/compile.c +msgid "super() can't find self" +msgstr "super() nie może znaleźć self" + +#: extmod/modujson.c +msgid "syntax error in JSON" +msgstr "błąd składni w JSON" + +#: extmod/moductypes.c +msgid "syntax error in uctypes descriptor" +msgstr "błąd składni w deskryptorze uctypes" + +#: shared-bindings/touchio/TouchIn.c +msgid "threshold must be in the range 0-65536" +msgstr "threshold musi być w zakresie 0-65536" + +#: shared-bindings/displayio/TileGrid.c +msgid "tile index out of bounds" +msgstr "indeks kafelka poza zakresem" + +#: shared-bindings/time/__init__.c +msgid "time.struct_time() takes a 9-sequence" +msgstr "time.struct_time() wymaga 9-elementowej sekwencji" + +#: shared-bindings/time/__init__.c +msgid "time.struct_time() takes exactly 1 argument" +msgstr "time.struct_time() wymaga jednego argumentu" + +#: shared-bindings/busio/UART.c +msgid "timeout >100 (units are now seconds, not msecs)" +msgstr "timeout > 100 (jednostkami są sekundy)" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "timeout must be >= 0.0" +msgstr "timeout musi być >= 0.0" + +#: shared-bindings/time/__init__.c +msgid "timestamp out of range for platform time_t" +msgstr "timestamp poza zakresem dla time_t na tej platformie" + +#: shared-bindings/gamepad/GamePad.c +msgid "too many arguments" +msgstr "zbyt wiele argumentów" + +#: shared-module/struct/__init__.c +msgid "too many arguments provided with the given format" +msgstr "zbyt wiele argumentów podanych dla tego formatu" + +#: py/runtime.c +#, c-format +msgid "too many values to unpack (expected %d)" +msgstr "zbyt wiele wartości do rozpakowania (oczekiwano %d)" + +#: py/objstr.c +msgid "tuple index out of range" +msgstr "indeks krotki poza zakresem" + +#: py/obj.c +msgid "tuple/list has wrong length" +msgstr "krotka/lista ma złą długość" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "tuple/list required on RHS" +msgstr "wymagana krotka/lista po prawej stronie" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "tx and rx cannot both be None" +msgstr "tx i rx nie mogą być jednocześnie None" + +#: py/objtype.c +msgid "type '%q' is not an acceptable base type" +msgstr "typ '%q' nie może być typem bazowym" + +#: py/objtype.c +msgid "type is not an acceptable base type" +msgstr "typ nie może być typem bazowym" + +#: py/runtime.c +msgid "type object '%q' has no attribute '%q'" +msgstr "typ '%q' nie ma atrybutu '%q'" + +#: py/objtype.c +msgid "type takes 1 or 3 arguments" +msgstr "type wymaga 1 lub 3 argumentów" + +#: py/objint_longlong.c +msgid "ulonglong too large" +msgstr "ulonglong zbyt wielkie" + +#: py/emitnative.c +msgid "unary op %q not implemented" +msgstr "operator unarny %q nie jest zaimplementowany" + +#: py/parse.c +msgid "unexpected indent" +msgstr "nieoczekiwane wcięcie" + +#: py/bc.c +msgid "unexpected keyword argument" +msgstr "nieoczekiwany argument nazwany" + +#: py/bc.c py/objnamedtuple.c +msgid "unexpected keyword argument '%q'" +msgstr "nieoczekiwany argument nazwany '%q'" + +#: py/lexer.c +msgid "unicode name escapes" +msgstr "nazwy unicode" + +#: py/parse.c +msgid "unindent does not match any outer indentation level" +msgstr "wcięcie nie pasuje do żadnego wcześniejszego wcięcia" + +#: py/objstr.c +#, c-format +msgid "unknown conversion specifier %c" +msgstr "nieznana specyfikacja konwersji %c" + +#: py/objstr.c +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "nieznany kod formatowania '%c' dla obiektu typu '%s'" + +#: py/objstr.c +#, c-format +msgid "unknown format code '%c' for object of type 'float'" +msgstr "nieznany kod foratowania '%c' dla obiektu typu 'float'" + +#: py/objstr.c +#, c-format +msgid "unknown format code '%c' for object of type 'str'" +msgstr "nieznany kod formatowania '%c' dla obiektu typu 'str'" + +#: py/compile.c +msgid "unknown type" +msgstr "nieznany typ" + +#: py/emitnative.c +msgid "unknown type '%q'" +msgstr "nieznany typ '%q'" + +#: py/objstr.c +msgid "unmatched '{' in format" +msgstr "niepasujące '{' for formacie" + +#: py/objtype.c py/runtime.c +msgid "unreadable attribute" +msgstr "nieczytelny atrybut" + +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "niewspierany typ %q" + +#: py/emitinlinethumb.c +#, c-format +msgid "unsupported Thumb instruction '%s' with %d arguments" +msgstr "niewspierana instrukcja Thumb '%s' z %d argumentami" + +#: py/emitinlinextensa.c +#, c-format +msgid "unsupported Xtensa instruction '%s' with %d arguments" +msgstr "niewspierana instrukcja Xtensa '%s' z %d argumentami" + +#: py/objstr.c +#, c-format +msgid "unsupported format character '%c' (0x%x) at index %d" +msgstr "niewspierany znak formatowania '%c' (0x%x) na pozycji %d" + +#: py/runtime.c +msgid "unsupported type for %q: '%s'" +msgstr "niewspierany typ dla %q: '%s'" + +#: py/runtime.c +msgid "unsupported type for operator" +msgstr "typ niewspierany przez operator" + +#: py/runtime.c +msgid "unsupported types for %q: '%s', '%s'" +msgstr "niewspierane typy dla %q: '%s', '%s'" + +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "value_count musi być > 0" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "write_args must be a list, tuple, or None" +msgstr "write_args musi być listą, krotką lub None" + +#: py/objstr.c +msgid "wrong number of arguments" +msgstr "zła liczba argumentów" + +#: py/runtime.c +msgid "wrong number of values to unpack" +msgstr "zła liczba wartości do rozpakowania" + +#: shared-module/displayio/Shape.c +msgid "x value out of bounds" +msgstr "wartość c poza zakresem" + +#: shared-bindings/displayio/Shape.c +msgid "y should be an int" +msgstr "y powinno być całkowite" + +#: shared-module/displayio/Shape.c +msgid "y value out of bounds" +msgstr "wartość y poza zakresem" + +#: py/objrange.c +msgid "zero step" +msgstr "zerowy krok" + +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Wspierane są tylko mapy bitowe z 8 bitami lub mniej" + +#~ msgid "RTC set is not supported on this board" +#~ msgstr "Ustawianie RTC nie jest obsługiwane na tej płytce" + +#~ msgid "row must be packed and word aligned" +#~ msgstr "row musi być upakowana i wyrównana do słowa" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 42acd28d97..fe9e750a82 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-19 18:37-0700\n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" "PO-Revision-Date: 2018-10-02 21:14-0000\n" "Last-Translator: \n" "Language-Team: \n" @@ -219,10 +219,6 @@ msgstr "" msgid "A hardware interrupt channel is already in use" msgstr "Um canal de interrupção de hardware já está em uso" -#: ports/esp8266/modnetwork.c -msgid "AP required" -msgstr "AP requerido" - #: shared-bindings/bleio/Address.c #, c-format msgid "Address is not %d bytes long or is in wrong format" @@ -348,10 +344,6 @@ msgstr "buffers devem ser o mesmo tamanho" msgid "Bytes must be between 0 and 255." msgstr "Os bytes devem estar entre 0 e 255." -#: ports/esp8266/esp_mphal.c -msgid "C-level assert" -msgstr "" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Can not use dotstar with %s" @@ -373,18 +365,10 @@ msgstr "" msgid "Can't connect in Peripheral mode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot connect to AP" -msgstr "Não é possível conectar-se ao AP" - #: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c msgid "Cannot delete values" msgstr "Não é possível excluir valores" -#: ports/esp8266/modnetwork.c -msgid "Cannot disconnect from AP" -msgstr "Não é possível desconectar do AP" - #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c #: ports/nrf/common-hal/digitalio/DigitalInOut.c msgid "Cannot get pull while in output mode" @@ -412,14 +396,9 @@ msgid "Cannot remount '/' when USB is active." msgstr "Não é possível remontar '/' enquanto o USB estiver ativo." #: ports/atmel-samd/common-hal/microcontroller/__init__.c -#: ports/esp8266/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot set STA config" -msgstr "Não é possível definir a configuração STA" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Cannot set value when direction is input." msgstr "" @@ -436,10 +415,6 @@ msgstr "Não é possível transferir sem os pinos MOSI e MISO." msgid "Cannot unambiguously get sizeof scalar" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "Cannot update i/f status" -msgstr "Não é possível atualizar o status i/f" - #: shared-module/bitbangio/SPI.c msgid "Cannot write without MOSI pin." msgstr "Não é possível ler sem um pino MOSI" @@ -530,31 +505,15 @@ msgstr "" msgid "Display rotation must be in 90 degree increments" msgstr "" -#: ports/unix/modffi.c -msgid "Don't know how to pass object to native function" -msgstr "Não sabe como passar o objeto para a função nativa" - #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c -msgid "ESP8226 does not support safe mode." -msgstr "O ESP8226 não suporta o modo de segurança." - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "ESP8266 does not support pull down." -msgstr "ESP8266 não suporta pull down." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "EXTINT channel already in use" msgstr "Canal EXTINT em uso" -#: ports/unix/modffi.c -msgid "Error in ffi_prep_cif" -msgstr "Erro no ffi_prep_cif" - #: extmod/modure.c msgid "Error in regex" msgstr "Erro no regex" @@ -611,7 +570,6 @@ msgid "Failed to allocate RX buffer" msgstr "Falha ao alocar buffer RX" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c #, c-format msgid "Failed to allocate RX buffer of %d bytes" @@ -655,9 +613,9 @@ msgid "Failed to get softdevice state" msgstr "Não pode parar propaganda. status: 0x%02x" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to notify or indicate attribute value, err %0x04x" -msgstr "Não é possível gravar o valor do atributo. status: 0x%02x" +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -665,9 +623,9 @@ msgid "Failed to read CCCD value, err 0x%04x" msgstr "Não é possível ler o valor do atributo. status: 0x%02x" #: ports/nrf/common-hal/bleio/Characteristic.c -#, fuzzy, c-format -msgid "Failed to read attribute value, err %0x04x" -msgstr "Não é possível ler o valor do atributo. status: 0x%02x" +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "" #: ports/nrf/common-hal/bleio/Characteristic.c #, fuzzy, c-format @@ -758,23 +716,15 @@ msgid "Frequency captured is above capability. Capture Paused." msgstr "" #: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c -#: shared-bindings/busio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c msgid "Function requires lock" msgstr "" -#: shared-bindings/busio/I2C.c -msgid "Function requires lock." -msgstr "" - -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c -msgid "GPIO16 does not support pull up." -msgstr "GPIO16 não suporta pull up." - #: shared-module/displayio/Group.c msgid "Group full" msgstr "Grupo cheio" -#: extmod/vfs_posix_file.c ports/unix/file.c py/objstringio.c +#: extmod/vfs_posix_file.c py/objstringio.c msgid "I/O operation on closed file" msgstr "Operação I/O no arquivo fechado" @@ -813,6 +763,10 @@ msgstr "Argumento inválido" msgid "Invalid bit clock pin" msgstr "Pino de bit clock inválido" +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "" + #: ports/nrf/common-hal/busio/UART.c #, fuzzy msgid "Invalid buffer size" @@ -926,11 +880,6 @@ msgstr "Inicialização do pino MISO falhou" msgid "MOSI pin init failed." msgstr "Inicialização do pino MOSI falhou." -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "A frequência máxima PWM é de %dhz." - #: shared-module/displayio/Shape.c #, c-format msgid "Maximum x value when mirrored is %d" @@ -948,15 +897,6 @@ msgstr "" msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c -msgid "Minimum PWM frequency is 1hz." -msgstr "A frequência mínima PWM é de 1hz" - -#: ports/esp8266/common-hal/pulseio/PWMOut.c -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." -msgstr "Múltiplas frequências PWM não suportadas. PWM já definido para %dhz." - #: shared-bindings/displayio/Display.c msgid "Must be a Group subclass." msgstr "" @@ -970,10 +910,6 @@ msgstr "Nenhum DAC no chip" msgid "No DMA channel found" msgstr "Nenhum canal DMA encontrado" -#: ports/esp8266/common-hal/pulseio/PulseIn.c -msgid "No PulseIn support for %q" -msgstr "Não há suporte para PulseIn no pino %q" - #: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c msgid "No RX pin" msgstr "Nenhum pino RX" @@ -986,17 +922,9 @@ msgstr "Nenhum pino TX" msgid "No available clocks" msgstr "" -#: supervisor/shared/board_busses.c -msgid "No default I2C bus" -msgstr "Nenhum barramento I2C padrão" - -#: supervisor/shared/board_busses.c -msgid "No default SPI bus" -msgstr "Nenhum barramento SPI padrão" - -#: supervisor/shared/board_busses.c -msgid "No default UART bus" -msgstr "Nenhum barramento UART padrão" +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "Nenhum barramento %q padrão" #: ports/atmel-samd/common-hal/touchio/TouchIn.c msgid "No free GCLKs" @@ -1006,10 +934,6 @@ msgstr "Não há GCLKs livre" msgid "No hardware random available" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c -msgid "No hardware support for analog out." -msgstr "Nenhum suporte de hardware para saída analógica." - #: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c msgid "No hardware support on pin" @@ -1028,10 +952,6 @@ msgstr "" msgid "Not connected" msgstr "Não é possível conectar-se ao AP" -#: shared-bindings/bleio/CharacteristicBuffer.c -msgid "Not connected." -msgstr "" - #: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c msgid "Not playing" msgstr "" @@ -1057,10 +977,6 @@ msgid "" "Only Windows format, uncompressed BMP supported: given header size is %d" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "Only bit maps of 8 bit color or less are supported" -msgstr "Apenas bit maps de cores de 8 bit ou menos são suportados" - #: shared-module/displayio/OnDiskBitmap.c #, c-format msgid "" @@ -1072,10 +988,6 @@ msgstr "" msgid "Only slices with step=1 (aka None) are supported" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Apenas TX suportado no UART1 (GPIO2)." - #: shared-bindings/audiobusio/PDMIn.c msgid "Oversample must be multiple of 8." msgstr "" @@ -1090,32 +1002,15 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c ports/esp8266/machine_pwm.c -#, c-format -msgid "PWM not supported on pin %d" -msgstr "PWM não suportado no pino %d" - #: py/moduerrno.c msgid "Permission denied" msgstr "Permissão negada" -#: ports/esp8266/common-hal/analogio/AnalogIn.c -msgid "Pin %q does not have ADC capabilities" -msgstr "Pino %q não tem recursos de ADC" - #: ports/atmel-samd/common-hal/analogio/AnalogIn.c #: ports/nrf/common-hal/analogio/AnalogIn.c msgid "Pin does not have ADC capabilities" msgstr "O pino não tem recursos de ADC" -#: ports/esp8266/machine_pin.c -msgid "Pin(16) doesn't support pull" -msgstr "Pino (16) não suporta pull" - -#: ports/esp8266/common-hal/busio/SPI.c -msgid "Pins not valid for SPI" -msgstr "Pinos não válidos para SPI" - #: shared-bindings/_pixelbuf/PixelBuf.c msgid "Pixel beyond bounds of buffer" msgstr "" @@ -1133,11 +1028,11 @@ msgstr "" msgid "Pull not used when direction is output." msgstr "" -#: shared-bindings/rtc/RTC.c +#: ports/nrf/common-hal/rtc/RTC.c msgid "RTC calibration is not supported on this board" msgstr "A calibração RTC não é suportada nesta placa" -#: shared-bindings/rtc/RTC.c shared-bindings/time/__init__.c +#: shared-bindings/time/__init__.c msgid "RTC is not supported on this board" msgstr "O RTC não é suportado nesta placa" @@ -1178,14 +1073,6 @@ msgstr "Rodando em modo seguro! Não está executando o código salvo.\n" msgid "SDA or SCL needs a pull up" msgstr "SDA ou SCL precisa de um pull up" -#: ports/esp8266/modnetwork.c -msgid "STA must be active" -msgstr "STA deve estar ativo" - -#: ports/esp8266/modnetwork.c -msgid "STA required" -msgstr "STA requerido" - #: shared-bindings/audioio/Mixer.c msgid "Sample rate must be positive" msgstr "" @@ -1301,15 +1188,6 @@ msgstr "" msgid "Tuple or struct_time argument required" msgstr "" -#: ports/esp8266/machine_uart.c -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) não existe" - -#: ports/esp8266/machine_uart.c -msgid "UART(1) can't read" -msgstr "UART(1) não pode ler" - #: shared-module/usb_hid/Device.c msgid "USB Busy" msgstr "USB ocupada" @@ -1348,10 +1226,6 @@ msgstr "" msgid "Unable to read color palette data" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Unable to remount filesystem" -msgstr "Não é possível remontar o sistema de arquivos" - #: shared-bindings/nvm/ByteArray.c msgid "Unable to write to nvm." msgstr "Não é possível gravar no nvm." @@ -1360,10 +1234,6 @@ msgstr "Não é possível gravar no nvm." msgid "Unexpected nrfx uuid type" msgstr "" -#: ports/unix/modffi.c -msgid "Unknown type" -msgstr "Tipo desconhecido" - #: shared-bindings/_pixelbuf/PixelBuf.c #, c-format msgid "Unmatched number of items on RHS (expected %d, got %d)." @@ -1390,10 +1260,6 @@ msgstr "" msgid "Unsupported pull value." msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "Use o esptool para apagar o flash e recarregar o Python" - #: py/emitnative.c msgid "Viper functions don't currently support more than 4 arguments" msgstr "" @@ -1425,11 +1291,6 @@ msgstr "" msgid "You requested starting safe mode by " msgstr "Você solicitou o início do modo de segurança" -#: ports/unix/modusocket.c -#, c-format -msgid "[addrinfo error %d]" -msgstr "" - #: py/objtype.c msgid "__init__() should return None" msgstr "" @@ -1451,7 +1312,7 @@ msgstr "" msgid "abort() called" msgstr "abort() chamado" -#: extmod/machine_mem.c ports/unix/modmachine.c +#: extmod/machine_mem.c #, c-format msgid "address %08x is not aligned to %d bytes" msgstr "endereço %08x não está alinhado com %d bytes" @@ -1548,10 +1409,6 @@ msgstr "buffers devem ser o mesmo tamanho" msgid "buffer slices must be of equal length" msgstr "" -#: ports/esp8266/machine_rtc.c -msgid "buffer too long" -msgstr "buffer muito longo" - #: py/modstruct.c shared-bindings/struct/__init__.c #: shared-module/struct/__init__.c msgid "buffer too small" @@ -1606,10 +1463,6 @@ msgstr "" msgid "can only save bytecode" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can query only one param" -msgstr "pode consultar apenas um parâmetro" - #: py/objtype.c msgid "can't add special method to already-subclassed class" msgstr "" @@ -1681,14 +1534,6 @@ msgstr "" msgid "can't do truncated division of a complex number" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't get AP config" -msgstr "não pode obter configuração de AP" - -#: ports/esp8266/modnetwork.c -msgid "can't get STA config" -msgstr "não pode obter a configuração STA" - #: py/compile.c msgid "can't have multiple **x" msgstr "" @@ -1717,14 +1562,6 @@ msgstr "" msgid "can't send non-None value to a just-started generator" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "can't set AP config" -msgstr "não é possível definir a configuração do AP" - -#: ports/esp8266/modnetwork.c -msgid "can't set STA config" -msgstr "não é possível definir a configuração STA" - #: py/objnamedtuple.c msgid "can't set attribute" msgstr "" @@ -1857,10 +1694,6 @@ msgstr "" msgid "division by zero" msgstr "divisão por zero" -#: ports/esp8266/modnetwork.c -msgid "either pos or kw args are allowed" -msgstr "pos ou kw args são permitidos" - #: py/objdeque.c msgid "empty" msgstr "vazio" @@ -1911,10 +1744,6 @@ msgstr "" msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "expecting a pin" -msgstr "esperando um pino" - #: py/compile.c msgid "expecting an assembler instruction" msgstr "" @@ -1935,10 +1764,6 @@ msgstr "argumentos extras de palavras-chave passados" msgid "extra positional arguments given" msgstr "argumentos extra posicionais passados" -#: ports/unix/modffi.c -msgid "ffi_prep_closure_loc" -msgstr "ffi_prep_closure_loc" - #: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c msgid "file must be a file opened in byte mode" msgstr "" @@ -1955,10 +1780,6 @@ msgstr "" msgid "firstbit must be MSB" msgstr "firstbit devem ser MSB" -#: ports/esp8266/modesp.c -msgid "flash location must be below 1MByte" -msgstr "o local do flash deve estar abaixo de 1 MByte" - #: py/objint.c msgid "float too big" msgstr "float muito grande" @@ -1971,10 +1792,6 @@ msgstr "" msgid "format requires a dict" msgstr "" -#: ports/esp8266/modmachine.c -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "A frequência só pode ser 80Mhz ou 160MHz" - #: py/objdeque.c msgid "full" msgstr "cheio" @@ -2043,10 +1860,6 @@ msgstr "" msgid "identifier redefined as nonlocal" msgstr "" -#: ports/esp8266/machine_hspi.c -msgid "impossible baudrate" -msgstr "taxa de transmissão impossível" - #: py/objstr.c msgid "incomplete format" msgstr "formato incompleto" @@ -2060,7 +1873,6 @@ msgid "incorrect padding" msgstr "preenchimento incorreto" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "Índice fora do intervalo" @@ -2093,26 +1905,14 @@ msgstr "periférico I2C inválido" msgid "invalid SPI peripheral" msgstr "periférico SPI inválido" -#: ports/esp8266/machine_rtc.c -msgid "invalid alarm" -msgstr "Alarme inválido" - #: lib/netutils/netutils.c msgid "invalid arguments" msgstr "argumentos inválidos" -#: ports/esp8266/modnetwork.c -msgid "invalid buffer length" -msgstr "comprimento de buffer inválido" - #: extmod/modussl_axtls.c msgid "invalid cert" msgstr "certificado inválido" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid data bits" -msgstr "Bits de dados inválidos" - #: extmod/uos_dupterm.c msgid "invalid dupterm index" msgstr "Índice de dupterm inválido" @@ -2133,18 +1933,10 @@ msgstr "chave inválida" msgid "invalid micropython decorator" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "invalid pin" -msgstr "Pino inválido" - #: shared-bindings/random/__init__.c msgid "invalid step" msgstr "passo inválido" -#: ports/esp8266/common-hal/busio/UART.c ports/esp8266/machine_uart.c -msgid "invalid stop bits" -msgstr "Bits de parada inválidos" - #: py/compile.c py/parse.c msgid "invalid syntax" msgstr "" @@ -2190,10 +1982,6 @@ msgstr "" msgid "label redefined" msgstr "" -#: ports/esp8266/modesp.c -msgid "len must be multiple of 4" -msgstr "len deve ser múltiplo de 4" - #: py/stream.c msgid "length argument not allowed for this type" msgstr "" @@ -2235,11 +2023,6 @@ msgstr "" msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: ports/esp8266/modesp.c -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "alocação de memória falhou, alocando %u bytes para código nativo" - #: py/runtime.c msgid "memory allocation failed, heap is locked" msgstr "" @@ -2346,11 +2129,6 @@ msgstr "" msgid "not a 128-bit UUID" msgstr "" -#: ports/esp8266/machine_adc.c -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "não é um canal ADC válido: %d" - #: py/objstr.c msgid "not all arguments converted during string formatting" msgstr "" @@ -2451,10 +2229,6 @@ msgstr "" msgid "parameters must be registers in sequence r0 to r3" msgstr "" -#: ports/esp8266/machine_pin.c -msgid "pin does not have IRQ capabilities" -msgstr "Pino não tem recursos de IRQ" - #: shared-bindings/displayio/Bitmap.c msgid "pixel coordinates out of bounds" msgstr "" @@ -2468,7 +2242,6 @@ msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/esp8266/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c msgid "pop from an empty PulseIn" msgstr "" @@ -2523,10 +2296,6 @@ msgstr "" msgid "return expected '%q' but got '%q'" msgstr "" -#: shared-module/displayio/Bitmap.c -msgid "row must be packed and word aligned" -msgstr "Linha deve ser comprimida e com as palavras alinhadas" - #: py/objstr.c msgid "rsplit(None,n)" msgstr "" @@ -2541,10 +2310,6 @@ msgstr "" msgid "sampling rate out of range" msgstr "Taxa de amostragem fora do intervalo" -#: ports/esp8266/modnetwork.c -msgid "scan failed" -msgstr "varredura falhou" - #: py/modmicropython.c msgid "schedule stack full" msgstr "" @@ -2753,10 +2518,6 @@ msgstr "" msgid "unindent does not match any outer indentation level" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown config param" -msgstr "parâmetro configuração desconhecido" - #: py/objstr.c #, c-format msgid "unknown conversion specifier %c" @@ -2777,10 +2538,6 @@ msgstr "" msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "unknown status param" -msgstr "parâmetro de status desconhecido" - #: py/compile.c msgid "unknown type" msgstr "" @@ -2797,6 +2554,10 @@ msgstr "" msgid "unreadable attribute" msgstr "atributo ilegível" +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "" + #: py/emitinlinethumb.c #, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" @@ -2807,10 +2568,6 @@ msgstr "" msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: shared-bindings/displayio/TileGrid.c -msgid "unsupported bitmap type" -msgstr "" - #: py/objstr.c #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" @@ -2828,9 +2585,9 @@ msgstr "" msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: ports/esp8266/modnetwork.c -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() falhou" +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "" #: shared-bindings/_pixelbuf/PixelBuf.c msgid "write_args must be a list, tuple, or None" @@ -2860,8 +2617,179 @@ msgstr "" msgid "zero step" msgstr "passo zero" +#~ msgid "AP required" +#~ msgstr "AP requerido" + +#~ msgid "Cannot connect to AP" +#~ msgstr "Não é possível conectar-se ao AP" + +#~ msgid "Cannot disconnect from AP" +#~ msgstr "Não é possível desconectar do AP" + +#~ msgid "Cannot set STA config" +#~ msgstr "Não é possível definir a configuração STA" + +#~ msgid "Cannot update i/f status" +#~ msgstr "Não é possível atualizar o status i/f" + +#~ msgid "Don't know how to pass object to native function" +#~ msgstr "Não sabe como passar o objeto para a função nativa" + +#~ msgid "ESP8226 does not support safe mode." +#~ msgstr "O ESP8226 não suporta o modo de segurança." + +#~ msgid "ESP8266 does not support pull down." +#~ msgstr "ESP8266 não suporta pull down." + +#~ msgid "Error in ffi_prep_cif" +#~ msgstr "Erro no ffi_prep_cif" + +#, fuzzy +#~ msgid "Failed to notify or indicate attribute value, err %0x04x" +#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x" + +#, fuzzy +#~ msgid "Failed to read attribute value, err %0x04x" +#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x" + +#~ msgid "GPIO16 does not support pull up." +#~ msgstr "GPIO16 não suporta pull up." + +#~ msgid "Maximum PWM frequency is %dhz." +#~ msgstr "A frequência máxima PWM é de %dhz." + +#~ msgid "Minimum PWM frequency is 1hz." +#~ msgstr "A frequência mínima PWM é de 1hz" + +#~ msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#~ msgstr "" +#~ "Múltiplas frequências PWM não suportadas. PWM já definido para %dhz." + +#~ msgid "No PulseIn support for %q" +#~ msgstr "Não há suporte para PulseIn no pino %q" + +#~ msgid "No hardware support for analog out." +#~ msgstr "Nenhum suporte de hardware para saída analógica." + #~ msgid "Only Windows format, uncompressed BMP supported %d" #~ msgstr "Apenas formato Windows, BMP descomprimido suportado" +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Apenas bit maps de cores de 8 bit ou menos são suportados" + #~ msgid "Only true color (24 bpp or higher) BMP supported %x" #~ msgstr "Apenas cores verdadeiras (24 bpp ou maior) BMP suportadas" + +#~ msgid "Only tx supported on UART1 (GPIO2)." +#~ msgstr "Apenas TX suportado no UART1 (GPIO2)." + +#~ msgid "PWM not supported on pin %d" +#~ msgstr "PWM não suportado no pino %d" + +#~ msgid "Pin %q does not have ADC capabilities" +#~ msgstr "Pino %q não tem recursos de ADC" + +#~ msgid "Pin(16) doesn't support pull" +#~ msgstr "Pino (16) não suporta pull" + +#~ msgid "Pins not valid for SPI" +#~ msgstr "Pinos não válidos para SPI" + +#~ msgid "STA must be active" +#~ msgstr "STA deve estar ativo" + +#~ msgid "STA required" +#~ msgstr "STA requerido" + +#~ msgid "UART(%d) does not exist" +#~ msgstr "UART(%d) não existe" + +#~ msgid "UART(1) can't read" +#~ msgstr "UART(1) não pode ler" + +#~ msgid "Unable to remount filesystem" +#~ msgstr "Não é possível remontar o sistema de arquivos" + +#~ msgid "Unknown type" +#~ msgstr "Tipo desconhecido" + +#~ msgid "Use esptool to erase flash and re-upload Python instead" +#~ msgstr "Use o esptool para apagar o flash e recarregar o Python" + +#~ msgid "buffer too long" +#~ msgstr "buffer muito longo" + +#~ msgid "can query only one param" +#~ msgstr "pode consultar apenas um parâmetro" + +#~ msgid "can't get AP config" +#~ msgstr "não pode obter configuração de AP" + +#~ msgid "can't get STA config" +#~ msgstr "não pode obter a configuração STA" + +#~ msgid "can't set AP config" +#~ msgstr "não é possível definir a configuração do AP" + +#~ msgid "can't set STA config" +#~ msgstr "não é possível definir a configuração STA" + +#~ msgid "either pos or kw args are allowed" +#~ msgstr "pos ou kw args são permitidos" + +#~ msgid "expecting a pin" +#~ msgstr "esperando um pino" + +#~ msgid "ffi_prep_closure_loc" +#~ msgstr "ffi_prep_closure_loc" + +#~ msgid "flash location must be below 1MByte" +#~ msgstr "o local do flash deve estar abaixo de 1 MByte" + +#~ msgid "frequency can only be either 80Mhz or 160MHz" +#~ msgstr "A frequência só pode ser 80Mhz ou 160MHz" + +#~ msgid "impossible baudrate" +#~ msgstr "taxa de transmissão impossível" + +#~ msgid "invalid alarm" +#~ msgstr "Alarme inválido" + +#~ msgid "invalid buffer length" +#~ msgstr "comprimento de buffer inválido" + +#~ msgid "invalid data bits" +#~ msgstr "Bits de dados inválidos" + +#~ msgid "invalid pin" +#~ msgstr "Pino inválido" + +#~ msgid "invalid stop bits" +#~ msgstr "Bits de parada inválidos" + +#~ msgid "len must be multiple of 4" +#~ msgstr "len deve ser múltiplo de 4" + +#~ msgid "memory allocation failed, allocating %u bytes for native code" +#~ msgstr "alocação de memória falhou, alocando %u bytes para código nativo" + +#~ msgid "not a valid ADC Channel: %d" +#~ msgstr "não é um canal ADC válido: %d" + +#~ msgid "pin does not have IRQ capabilities" +#~ msgstr "Pino não tem recursos de IRQ" + +#~ msgid "row must be packed and word aligned" +#~ msgstr "Linha deve ser comprimida e com as palavras alinhadas" + +#~ msgid "scan failed" +#~ msgstr "varredura falhou" + +#~ msgid "unknown config param" +#~ msgstr "parâmetro configuração desconhecido" + +#~ msgid "unknown status param" +#~ msgstr "parâmetro de status desconhecido" + +#~ msgid "wifi_set_ip_info() failed" +#~ msgstr "wifi_set_ip_info() falhou" diff --git a/locale/zh_Latn_pinyin.po b/locale/zh_Latn_pinyin.po new file mode 100644 index 0000000000..9ac2dab559 --- /dev/null +++ b/locale/zh_Latn_pinyin.po @@ -0,0 +1,2638 @@ +# Adafruit CircuitPython Chinese Hanyu Pinyin Translation +# Copyright (C) 2019 +# This file is distributed under the same license as the CircuitPython package. +# @hexthat#2155, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: circuitpython-cn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-12 13:44-0700\n" +"PO-Revision-Date: 2019-04-13 10:10-0700\n" +"Last-Translator: hexthat\n" +"Language-Team: Chinese Hanyu Pinyin\n" +"Language: zh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: main.c +msgid "" +"\n" +"Code done running. Waiting for reload.\n" +msgstr "" +"\n" +"Dàimǎ yǐ wánchéng yùnxíng. Zhèngzài děngdài chóngxīn jiāzài.\n" + +#: py/obj.c +msgid " File \"%q\"" +msgstr " Wénjiàn \"%q\"" + +#: py/obj.c +msgid " File \"%q\", line %d" +msgstr " Wénjiàn \"%q\", dì %d xíng" + +#: main.c +msgid " output:\n" +msgstr " shūchū:\n" + +#: py/objstr.c +#, c-format +msgid "%%c requires int or char" +msgstr "%%c xūyào zhěngshù huò char" + +#: shared-bindings/microcontroller/Pin.c +msgid "%q in use" +msgstr "%q zhèngzài shǐyòng" + +#: py/obj.c +msgid "%q index out of range" +msgstr "%q suǒyǐn chāochū fànwéi" + +#: py/obj.c +msgid "%q indices must be integers, not %s" +msgstr "%q suǒyǐn bìxū shì zhěngshù, ér bùshì %s" + +#: shared-bindings/bleio/CharacteristicBuffer.c +#: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c +msgid "%q must be >= 1" +msgstr "%q bìxū dàyú huò děngyú 1" + +#: shared-bindings/fontio/BuiltinFont.c +msgid "%q should be an int" +msgstr "%q yīnggāi shì yīgè int" + +#: py/bc.c py/objnamedtuple.c +msgid "%q() takes %d positional arguments but %d were given" +msgstr "%q() cǎiyòng %d wèizhì cānshù, dàn gěi chū %d" + +#: py/argcheck.c +msgid "'%q' argument required" +msgstr "xūyào '%q' cānshù" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +#, c-format +msgid "'%s' expects a label" +msgstr "'%s' qīwàng biāoqiān" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +#, c-format +msgid "'%s' expects a register" +msgstr "'%s' qīwàng yīgè zhùcè" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects a special register" +msgstr "'%s' xūyào yīgè tèshū de jìcúnqì" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects an FPU register" +msgstr "'%s' xūyào FPU jìcúnqì" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects an address of the form [a, b]" +msgstr "'%s' qīwàng chuāng tǐ [a, b] dì dìzhǐ" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +#, c-format +msgid "'%s' expects an integer" +msgstr "'%s' qídài yīgè zhěngshù" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects at most r%d" +msgstr "'%s' qīwàng zuìduō de shì %d" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' expects {r0, r1, ...}" +msgstr "'%s' yùqí {r0, r1, ...}" + +#: py/emitinlinextensa.c +#, c-format +msgid "'%s' integer %d is not within range %d..%d" +msgstr "'%s' zhěngshù %d bùzài fànwéi nèi %d.%d" + +#: py/emitinlinethumb.c +#, c-format +msgid "'%s' integer 0x%x does not fit in mask 0x%x" +msgstr "'%s' zhěngshù 0x%x bù shìyòng yú yǎn mǎ 0x%x" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' duìxiàng bù zhīchí xiàngmù fēnpèi" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' duìxiàng bù zhīchí shānchú xiàngmù" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' duìxiàng méiyǒu shǔxìng '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' duìxiàng bùshì yīgè diédài qì" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' duìxiàng wúfǎ diàoyòng" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' duìxiàng bùnéng diédài" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' duìxiàng bùnéng fēnshù" + +#: py/objstr.c +msgid "'=' alignment not allowed in string format specifier" +msgstr "zìfú chuàn géshì shuōmíng fú zhōng bù yǔnxǔ '=' duìqí" + +#: shared-module/struct/__init__.c +msgid "'S' and 'O' are not supported format types" +msgstr "'S' hé 'O' bù zhīchí géshì lèixíng" + +#: py/compile.c +msgid "'align' requires 1 argument" +msgstr "'align' xūyào 1 gè cānshù" + +#: py/compile.c +msgid "'await' outside function" +msgstr "'await' wàibù gōngnéng" + +#: py/compile.c +msgid "'break' outside loop" +msgstr "'break' wàibù xúnhuán" + +#: py/compile.c +msgid "'continue' outside loop" +msgstr "'continue' wàibù xúnhuán" + +#: py/compile.c +msgid "'data' requires at least 2 arguments" +msgstr "'data' xūyào zhìshǎo 2 gè cānshù" + +#: py/compile.c +msgid "'data' requires integer arguments" +msgstr "'data' xūyào zhěngshù cānshù" + +#: py/compile.c +msgid "'label' requires 1 argument" +msgstr "'label' xūyào 1 cānshù" + +#: py/compile.c +msgid "'return' outside function" +msgstr "'return' wàibù gōngnéng" + +#: py/compile.c +msgid "'yield' outside function" +msgstr "'yield' wàibù gōngnéng" + +#: py/compile.c +msgid "*x must be assignment target" +msgstr "*x bìxū shì rènwù mùbiāo" + +#: py/obj.c +msgid ", in %q\n" +msgstr ", zài %q\n" + +#: py/objcomplex.c +msgid "0.0 to a complex power" +msgstr "0.0 dào fùzá diànyuán" + +#: py/modbuiltins.c +msgid "3-arg pow() not supported" +msgstr "bù zhīchí 3-arg pow ()" + +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c +msgid "A hardware interrupt channel is already in use" +msgstr "Yìngjiàn zhōngduàn tōngdào yǐ zài shǐyòng zhōng" + +#: shared-bindings/bleio/Address.c +#, c-format +msgid "Address is not %d bytes long or is in wrong format" +msgstr "Dìzhǐ bùshì %d zì jié zhǎng, huòzhě géshì cuòwù" + +#: shared-bindings/bleio/Address.c +#, c-format +msgid "Address must be %d bytes long" +msgstr "Dìzhǐ bìxū shì %d zì jié zhǎng" + +#: ports/nrf/common-hal/busio/I2C.c +msgid "All I2C peripherals are in use" +msgstr "Suǒyǒu I2C wàiwéi qì zhèngzài shǐyòng" + +#: ports/nrf/common-hal/busio/SPI.c +msgid "All SPI peripherals are in use" +msgstr "Suǒyǒu SPI wàiwéi qì zhèngzài shǐyòng" + +#: ports/nrf/common-hal/busio/UART.c +msgid "All UART peripherals are in use" +msgstr "Suǒyǒu UART wàiwéi zhèngzài shǐyòng" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "All event channels in use" +msgstr "Suǒyǒu shǐyòng de shìjiàn píndào" + +#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "All sync event channels in use" +msgstr "Suǒyǒu tóngbù shìjiàn píndào shǐyòng" + +#: shared-bindings/pulseio/PWMOut.c +msgid "All timers for this pin are in use" +msgstr "Cǐ yǐn jiǎo de suǒyǒu jìshí qì zhèngzài shǐyòng" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c +#: ports/nrf/common-hal/pulseio/PulseOut.c shared-bindings/pulseio/PWMOut.c +#: shared-module/_pew/PewPew.c +msgid "All timers in use" +msgstr "Suǒyǒu jìshí qì shǐyòng" + +#: ports/nrf/common-hal/analogio/AnalogOut.c +msgid "AnalogOut functionality not supported" +msgstr "Bù zhīchí AnalogOut gōngnéng" + +#: shared-bindings/analogio/AnalogOut.c +msgid "AnalogOut is only 16 bits. Value must be less than 65536." +msgstr "AnalogOut jǐn wèi 16 wèi. Zhí bìxū xiǎoyú 65536." + +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c +msgid "AnalogOut not supported on given pin" +msgstr "Wèi zhīchí zhǐdìng de yǐn jiǎo AnalogOut" + +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c +msgid "Another send is already active" +msgstr "Lìng yīgè fāsòng yǐjīng jīhuó" + +#: shared-bindings/pulseio/PulseOut.c +msgid "Array must contain halfwords (type 'H')" +msgstr "Shùzǔ bìxū bāohán bàn zìshù (type 'H')" + +#: shared-bindings/nvm/ByteArray.c +msgid "Array values should be single bytes." +msgstr "Shùzǔ zhí yīnggāi shì dāngè zì jié." + +#: supervisor/shared/safe_mode.c +msgid "Attempted heap allocation when MicroPython VM not running.\n" +msgstr "MicroPython VM wèi yùnxíng shí chángshì duī fēnpèi.\n" + +#: main.c +msgid "Auto-reload is off.\n" +msgstr "Zìdòng chóngxīn jiāzài yǐ guānbì.\n" + +#: main.c +msgid "" +"Auto-reload is on. Simply save files over USB to run them or enter REPL to " +"disable.\n" +msgstr "" +"Zìdòng chóngxīn jiāzài. Zhǐ xū tōngguò USB bǎocún wénjiàn lái yùnxíng tāmen " +"huò shūrù REPL jìnyòng.\n" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Bit clock and word select must share a clock unit" +msgstr "Bǐtè shízhōng hé dānzì xuǎnzé bìxū gòngxiǎng shízhōng dānwèi" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Bit depth must be multiple of 8." +msgstr "Bǐtè shēndù bìxū shì 8 bèi yǐshàng." + +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c +msgid "Both pins must support hardware interrupts" +msgstr "Liǎng gè yǐn jiǎo dōu bìxū zhīchí yìngjiàn zhōngduàn" + +#: shared-bindings/supervisor/__init__.c +msgid "Brightness must be between 0 and 255" +msgstr "Liàngdù bìxū jiè yú 0 dào 255 zhī jiān" + +#: shared-bindings/displayio/Display.c +msgid "Brightness not adjustable" +msgstr "Liàngdù wúfǎ tiáozhěng" + +#: shared-module/usb_hid/Device.c +#, c-format +msgid "Buffer incorrect size. Should be %d bytes." +msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè. Yīnggāi shì %d zì jié." + +#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c +msgid "Buffer must be at least length 1" +msgstr "Huǎnchōng qū bìxū zhìshǎo chángdù 1" + +#: ports/atmel-samd/common-hal/displayio/ParallelBus.c +#: ports/nrf/common-hal/displayio/ParallelBus.c +#, c-format +msgid "Bus pin %d is already in use" +msgstr "Zǒngxiàn yǐn jiǎo %d yǐ zài shǐyòng zhōng" + +#: shared-bindings/bleio/UUID.c +msgid "Byte buffer must be 16 bytes." +msgstr "Zì jié huǎnchōng qū bìxū shì 16 zì jié." + +#: shared-bindings/nvm/ByteArray.c +msgid "Bytes must be between 0 and 255." +msgstr "Zì jié bìxū jiè yú 0 dào 255 zhī jiān." + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "Can not use dotstar with %s" +msgstr "Wúfǎ yǔ dotstar yīqǐ shǐyòng %s" + +#: shared-bindings/bleio/Device.c +msgid "Can't add services in Central mode" +msgstr "Wúfǎ zài zhōngyāng móshì xià tiānjiā fúwù" + +#: shared-bindings/bleio/Device.c +msgid "Can't advertise in Central mode" +msgstr "Wúfǎ zài zhōngyāng móshì zhōng guǎnggào" + +#: shared-bindings/bleio/Device.c +msgid "Can't change the name in Central mode" +msgstr "Wúfǎ gēnggǎi zhōngyāng móshì de míngchēng" + +#: shared-bindings/bleio/Device.c +msgid "Can't connect in Peripheral mode" +msgstr "Wúfǎ zài biānyuán móshì zhōng liánjiē" + +#: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c +msgid "Cannot delete values" +msgstr "Wúfǎ shānchú zhí" + +#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c +#: ports/nrf/common-hal/digitalio/DigitalInOut.c +msgid "Cannot get pull while in output mode" +msgstr "Zài shūchū móshì xià wúfǎ huòqǔ lādòng" + +#: ports/nrf/common-hal/microcontroller/Processor.c +msgid "Cannot get temperature" +msgstr "Wúfǎ huòqǔ wēndù" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Cannot output both channels on the same pin" +msgstr "Wúfǎ shūchū tóng yīgè yǐn jiǎo shàng de liǎng gè píndào" + +#: shared-module/bitbangio/SPI.c +msgid "Cannot read without MISO pin." +msgstr "Wúfǎ dòu qǔ méiyǒu MISO de yǐn jiǎo." + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Cannot record to a file" +msgstr "Wúfǎ jìlù dào wénjiàn" + +#: shared-module/storage/__init__.c +msgid "Cannot remount '/' when USB is active." +msgstr "USB jīhuó shí wúfǎ chóngxīn bǎng ding '/'." + +#: ports/atmel-samd/common-hal/microcontroller/__init__.c +msgid "Cannot reset into bootloader because no bootloader is present." +msgstr "Wúfǎ chóng zhì wèi bootloader, yīnwèi méiyǒu bootloader cúnzài." + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Cannot set value when direction is input." +msgstr "Dāng fāngxiàng xiàng nèi shí, bùnéng shèzhì gāi zhí." + +#: py/objslice.c +msgid "Cannot subclass slice" +msgstr "Wúfǎ zi fēnlèi" + +#: shared-module/bitbangio/SPI.c +msgid "Cannot transfer without MOSI and MISO pins." +msgstr "Méiyǒu MOSI/MISO jiù wúfǎ zhuǎnyí." + +#: extmod/moductypes.c +msgid "Cannot unambiguously get sizeof scalar" +msgstr "Wúfǎ míngquè de huòdé biāoliàng de dàxiǎo" + +#: shared-module/bitbangio/SPI.c +msgid "Cannot write without MOSI pin." +msgstr "Wúfǎ xiě rù MOSI de yǐn jiǎo." + +#: shared-bindings/bleio/Service.c +msgid "Characteristic UUID doesn't match Service UUID" +msgstr "Zìfú UUID bù fúhé fúwù UUID" + +#: ports/nrf/common-hal/bleio/Service.c +msgid "Characteristic already in use by another Service." +msgstr "Qítā fúwù bùmén yǐ shǐyòng de gōngnéng." + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "CharacteristicBuffer writing not provided" +msgstr "Wèi tígōng zìfú huǎncún xiě rù" + +#: shared-module/bitbangio/SPI.c +msgid "Clock pin init failed." +msgstr "Shízhōng de yǐn jiǎo chūshǐhuà shībài." + +#: shared-module/bitbangio/I2C.c +msgid "Clock stretch too long" +msgstr "Shízhōng shēnzhǎn tài zhǎng" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Clock unit in use" +msgstr "Shǐyòng shízhōng dānwèi" + +#: shared-bindings/_pew/PewPew.c +msgid "Column entry must be digitalio.DigitalInOut" +msgstr "Liè tiáomù bìxū shì digitalio.DigitalInOut" + +#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c +msgid "Command must be an int between 0 and 255" +msgstr "Mìnglìng bìxū shì 0 dào 255 zhī jiān de int" + +#: ports/nrf/common-hal/bleio/UUID.c +#, c-format +msgid "Could not decode ble_uuid, err 0x%04x" +msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x" + +#: ports/atmel-samd/common-hal/busio/UART.c +msgid "Could not initialize UART" +msgstr "Wúfǎ chūshǐhuà UART" + +#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c +msgid "Couldn't allocate first buffer" +msgstr "Wúfǎ fēnpèi dì yī gè huǎnchōng qū" + +#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c +msgid "Couldn't allocate second buffer" +msgstr "Wúfǎ fēnpèi dì èr gè huǎnchōng qū" + +#: supervisor/shared/safe_mode.c +msgid "Crash into the HardFault_Handler.\n" +msgstr "Bēngkuì dào HardFault_Handler.\n" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "DAC already in use" +msgstr "Fā yuán huì yǐjīng shǐyòng" + +#: ports/atmel-samd/common-hal/displayio/ParallelBus.c +#: ports/nrf/common-hal/displayio/ParallelBus.c +msgid "Data 0 pin must be byte aligned" +msgstr "Shùjù 0 de yǐn jiǎo bìxū shì zì jié duìqí" + +#: shared-module/audioio/WaveFile.c +msgid "Data chunk must follow fmt chunk" +msgstr "Shùjù kuài bìxū zūnxún fmt qū kuài" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +#: ports/nrf/common-hal/bleio/Peripheral.c +msgid "Data too large for advertisement packet" +msgstr "Guǎnggào bāo de shùjù tài dà" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Data too large for the advertisement packet" +msgstr "Guǎnggào bāo de shùjù tài dà" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Destination capacity is smaller than destination_length." +msgstr "Mùbiāo róngliàng xiǎoyú mùdì de_chángdù." + +#: shared-bindings/displayio/Display.c +msgid "Display rotation must be in 90 degree increments" +msgstr "Xiǎnshì xuánzhuǎn bìxū 90 dù jiā xīn" + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Drive mode not used when direction is input." +msgstr "Fāngxiàng shūrù shí qūdòng móshì méiyǒu shǐyòng." + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +msgid "EXTINT channel already in use" +msgstr "EXTINT píndào yǐjīng shǐyòng" + +#: extmod/modure.c +msgid "Error in regex" +msgstr "Zhèngzé biǎodá shì cuòwù" + +#: shared-bindings/microcontroller/Pin.c +#: shared-bindings/neopixel_write/__init__.c shared-bindings/pulseio/PulseOut.c +#: shared-bindings/terminalio/Terminal.c +msgid "Expected a %q" +msgstr "Yùqí %q" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "Expected a Characteristic" +msgstr "Yùqí de tèdiǎn" + +#: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c +#: shared-bindings/bleio/Service.c +msgid "Expected a UUID" +msgstr "Yùqí UUID" + +#: shared-module/_pixelbuf/PixelBuf.c +#, c-format +msgid "Expected tuple of length %d, got %d" +msgstr "Qīwàng de chángdù wèi %d de yuán zǔ, dédào %d" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to acquire mutex" +msgstr "Wúfǎ huòdé mutex" + +#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c +#, c-format +msgid "Failed to acquire mutex, err 0x%04x" +msgstr "Wúfǎ huòdé mutex, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Service.c +#, c-format +msgid "Failed to add characteristic, err 0x%04x" +msgstr "Tiānjiā tèxìng shībài, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to add service" +msgstr "Tiānjiā fúwù shībài" + +#: ports/nrf/common-hal/bleio/Peripheral.c +#, c-format +msgid "Failed to add service, err 0x%04x" +msgstr "Tiānjiā fúwù shībài, err 0x%04x" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "Failed to allocate RX buffer" +msgstr "Fēnpèi RX huǎnchōng shībài" + +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#, c-format +msgid "Failed to allocate RX buffer of %d bytes" +msgstr "Fēnpèi RX huǎnchōng qū%d zì jié shībài" + +#: ports/nrf/common-hal/bleio/Adapter.c +msgid "Failed to change softdevice state" +msgstr "Gēnggǎi ruǎn shèbèi zhuàngtài shībài" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to connect:" +msgstr "Liánjiē shībài:" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to continue scanning" +msgstr "Jìxù sǎomiáo shībài" + +#: ports/nrf/common-hal/bleio/Scanner.c +#, c-format +msgid "Failed to continue scanning, err 0x%04x" +msgstr "Jìxù sǎomiáo shībài, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to create mutex" +msgstr "Wúfǎ chuàngjiàn hù chì suǒ" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to discover services" +msgstr "Fāxiàn fúwù shībài" + +#: ports/nrf/common-hal/bleio/Adapter.c +msgid "Failed to get local address" +msgstr "Huòqǔ běndì dìzhǐ shībài" + +#: ports/nrf/common-hal/bleio/Adapter.c +msgid "Failed to get softdevice state" +msgstr "Wúfǎ huòdé ruǎnjiàn shèbèi zhuàngtài" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to notify or indicate attribute value, err 0x%04x" +msgstr "Wúfǎ tōngzhī huò xiǎnshì shǔxìng zhí, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to read CCCD value, err 0x%04x" +msgstr "Dòu qǔ CCCD zhí, err 0x%04x shībài" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to read attribute value, err 0x%04x" +msgstr "Dòu qǔ shǔxìng zhí shībài, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to read gatts value, err 0x%04x" +msgstr "Wúfǎ dòu qǔ gatts zhí, err 0x%04x" + +#: ports/nrf/common-hal/bleio/UUID.c +#, c-format +msgid "Failed to register Vendor-Specific UUID, err 0x%04x" +msgstr "Wúfǎ zhùcè màizhǔ tèdìng de UUID, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to release mutex" +msgstr "Wúfǎ shìfàng mutex" + +#: ports/nrf/common-hal/bleio/Characteristic.c ports/nrf/sd_mutex.c +#, c-format +msgid "Failed to release mutex, err 0x%04x" +msgstr "Wúfǎ shìfàng mutex, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to start advertising" +msgstr "Qǐdòng guǎnggào shībài" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +#: ports/nrf/common-hal/bleio/Peripheral.c +#, c-format +msgid "Failed to start advertising, err 0x%04x" +msgstr "Qǐdòng guǎnggào shībài, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to start scanning" +msgstr "Qǐdòng sǎomiáo shībài" + +#: ports/nrf/common-hal/bleio/Scanner.c +#, c-format +msgid "Failed to start scanning, err 0x%04x" +msgstr "Qǐdòng sǎomiáo shībài, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Device.c +msgid "Failed to stop advertising" +msgstr "Wúfǎ tíngzhǐ guǎnggào" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +#: ports/nrf/common-hal/bleio/Peripheral.c +#, c-format +msgid "Failed to stop advertising, err 0x%04x" +msgstr "Wúfǎ tíngzhǐ guǎnggào, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to write attribute value, err 0x%04x" +msgstr "Xiě rù shǔxìng zhí shībài, err 0x%04x" + +#: ports/nrf/common-hal/bleio/Characteristic.c +#, c-format +msgid "Failed to write gatts value, err 0x%04x" +msgstr "Xiě rù gatts zhí,err 0x%04x shībài" + +#: py/moduerrno.c +msgid "File exists" +msgstr "Wénjiàn cúnzài" + +#: ports/nrf/supervisor/internal_flash.c +msgid "Flash erase failed" +msgstr "Flash cā chú shībài" + +#: ports/nrf/supervisor/internal_flash.c +#, c-format +msgid "Flash erase failed to start, err 0x%04x" +msgstr "Flash cā chú shībài, err 0x%04x" + +#: ports/nrf/supervisor/internal_flash.c +msgid "Flash write failed" +msgstr "Flash xiě rù shībài" + +#: ports/nrf/supervisor/internal_flash.c +#, c-format +msgid "Flash write failed to start, err 0x%04x" +msgstr "Flash xiě rù shībài, err 0x%04x" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +msgid "Frequency captured is above capability. Capture Paused." +msgstr "Pínlǜ bǔhuò gāo yú nénglì. Bǔhuò zàntíng." + +#: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c +#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c +msgid "Function requires lock" +msgstr "Hánshù xūyào suǒdìng" + +#: shared-module/displayio/Group.c +msgid "Group full" +msgstr "Fēnzǔ yǐ mǎn" + +#: extmod/vfs_posix_file.c py/objstringio.c +msgid "I/O operation on closed file" +msgstr "Wénjiàn shàng de I/ O cāozuò" + +#: extmod/machine_i2c.c +msgid "I2C operation not supported" +msgstr "I2C cāozuò bù zhīchí" + +#: py/persistentcode.c +msgid "" +"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" +"mpy-update for more info." +msgstr "" +"Bù jiānróng.Mpy wénjiàn. Qǐng gēngxīn suǒyǒu.Mpy wénjiàn. Yǒuguān xiángxì " +"xìnxī, qǐng cānyuè http://Adafru.It/mpy-update." + +#: shared-bindings/_pew/PewPew.c +msgid "Incorrect buffer size" +msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè" + +#: py/moduerrno.c +msgid "Input/output error" +msgstr "Shūrù/shūchū cuòwù" + +#: shared-module/displayio/OnDiskBitmap.c +msgid "Invalid BMP file" +msgstr "Wúxiào de BMP wénjiàn" + +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c +#: ports/nrf/common-hal/pulseio/PWMOut.c shared-bindings/pulseio/PWMOut.c +msgid "Invalid PWM frequency" +msgstr "Wúxiào de PWM pínlǜ" + +#: py/moduerrno.c +msgid "Invalid argument" +msgstr "Wúxiào de cānshù" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Invalid bit clock pin" +msgstr "Wúxiào de wèi shízhōng yǐn jiǎo" + +#: shared-module/displayio/Bitmap.c +msgid "Invalid bits per value" +msgstr "Měi gè zhí de wèi wúxiào" + +#: ports/nrf/common-hal/busio/UART.c +msgid "Invalid buffer size" +msgstr "Wúxiào de huǎnchōng qū dàxiǎo" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +msgid "Invalid capture period. Valid range: 1 - 500" +msgstr "Wúxiào de bǔhuò zhōuqí. Yǒuxiào fànwéi: 1-500" + +#: shared-bindings/audioio/Mixer.c +msgid "Invalid channel count" +msgstr "Wúxiào de tōngdào jìshù" + +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Invalid clock pin" +msgstr "Wúxiào de shízhōng yǐn jiǎo" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Invalid data pin" +msgstr "Wúxiào de shùjù yǐn jiǎo" + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Invalid direction." +msgstr "Wúxiào de fāngxiàng." + +#: shared-module/audioio/WaveFile.c +msgid "Invalid file" +msgstr "Wúxiào de wénjiàn" + +#: shared-module/audioio/WaveFile.c +msgid "Invalid format chunk size" +msgstr "Géshì kuài dàxiǎo wúxiào" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "Invalid number of bits" +msgstr "Wèi shù wúxiào" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "Invalid phase" +msgstr "Jiēduàn wúxiào" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +#: ports/atmel-samd/common-hal/touchio/TouchIn.c +#: shared-bindings/pulseio/PWMOut.c +msgid "Invalid pin" +msgstr "Wúxiào de yǐn jiǎo" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Invalid pin for left channel" +msgstr "Zuǒ tōngdào de yǐn jiǎo wúxiào" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Invalid pin for right channel" +msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào" + +#: ports/atmel-samd/common-hal/busio/I2C.c +#: ports/atmel-samd/common-hal/busio/SPI.c +#: ports/atmel-samd/common-hal/busio/UART.c +#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c +#: ports/nrf/common-hal/busio/I2C.c +msgid "Invalid pins" +msgstr "Wúxiào de yǐn jiǎo" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "Invalid polarity" +msgstr "Wúxiào liǎng jí zhí" + +#: shared-bindings/microcontroller/__init__.c +msgid "Invalid run mode." +msgstr "Wúxiào de yùnxíng móshì." + +#: shared-bindings/audioio/Mixer.c +msgid "Invalid voice count" +msgstr "Wúxiào de yǔyīn jìshù" + +#: shared-module/audioio/WaveFile.c +msgid "Invalid wave file" +msgstr "Wúxiào de làng làngcháo wénjiàn" + +#: py/compile.c +msgid "LHS of keyword arg must be an id" +msgstr "Guānjiàn zì arg de LHS bìxū shì id" + +#: shared-module/displayio/Group.c +msgid "Layer must be a Group or TileGrid subclass." +msgstr "Layer bìxū shì Group huò TileGrid zi lèi." + +#: py/objslice.c +msgid "Length must be an int" +msgstr "Chángdù bìxū shì yīgè zhěngshù" + +#: py/objslice.c +msgid "Length must be non-negative" +msgstr "Chángdù bìxū shìfēi fùshù" + +#: supervisor/shared/safe_mode.c +msgid "" +"Looks like our core CircuitPython code crashed hard. Whoops!\n" +"Please file an issue at https://github.com/adafruit/circuitpython/issues\n" +" with the contents of your CIRCUITPY drive and this message:\n" +msgstr "" +"Kàn lái wǒmen de héxīn CircuitPython dàimǎ bēngkuì dé hěn lìhài. Āi yōu!\n" +"Qǐng zài https://Github.Com/adafruit/circuitpython/issues\n" +"shàng tíjiāo yīgè wèntí, qízhōng bāohán nín de CIRCUITPY qūdòngqì de nèiróng " +"hé cǐ xiāoxī:\n" + +#: shared-module/bitbangio/SPI.c +msgid "MISO pin init failed." +msgstr "MISO yǐn jiǎo chūshǐhuà shībài." + +#: shared-module/bitbangio/SPI.c +msgid "MOSI pin init failed." +msgstr "MOSI yǐn jiǎo shūrù shībài." + +#: shared-module/displayio/Shape.c +#, c-format +msgid "Maximum x value when mirrored is %d" +msgstr "Jìngxiàng shí de zuìdà X zhí wèi%d" + +#: supervisor/shared/safe_mode.c +msgid "MicroPython NLR jump failed. Likely memory corruption.\n" +msgstr "MicroPython NLR tiàoyuè shībài. Kěnéng nèicún fǔbài.\n" + +#: supervisor/shared/safe_mode.c +msgid "MicroPython fatal error.\n" +msgstr "MicroPython zhìmìng cuòwù.\n" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Microphone startup delay must be in range 0.0 to 1.0" +msgstr "Màikèfēng qǐdòng yánchí bìxū zài 0.0 Dào 1.0 De fànwéi nèi" + +#: shared-bindings/displayio/Display.c +msgid "Must be a Group subclass." +msgstr "Bìxū shì fēnzǔ zi lèi." + +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c +msgid "No DAC on chip" +msgstr "Méiyǒu DAC zài xīnpiàn shàng de" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "No DMA channel found" +msgstr "Wèi zhǎodào DMA píndào" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "No RX pin" +msgstr "Wèi zhǎodào RX yǐn jiǎo" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "No TX pin" +msgstr "Wèi zhǎodào TX yǐn jiǎo" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +msgid "No available clocks" +msgstr "Méiyǒu kěyòng de shízhōng" + +#: shared-bindings/board/__init__.c +msgid "No default %q bus" +msgstr "wú mòrèn %q zǒngxiàn" + +#: ports/atmel-samd/common-hal/touchio/TouchIn.c +msgid "No free GCLKs" +msgstr "Méiyǒu miǎnfèi de GCLKs" + +#: shared-bindings/os/__init__.c +msgid "No hardware random available" +msgstr "Méiyǒu kěyòng de yìngjiàn suíjī" + +#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +msgid "No hardware support on pin" +msgstr "Méiyǒu zài yǐn jiǎo shàng de yìngjiàn zhīchí" + +#: py/moduerrno.c +msgid "No space left on device" +msgstr "Shèbèi shàng méiyǒu kònggé" + +#: py/moduerrno.c +msgid "No such file/directory" +msgstr "Méiyǒu cǐ lèi wénjiàn/mùlù" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "Not connected" +msgstr "Wèi liánjiē" + +#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c +msgid "Not playing" +msgstr "Wèi bòfàng" + +#: shared-bindings/util.c +msgid "" +"Object has been deinitialized and can no longer be used. Create a new object." +msgstr "" +"Duìxiàng yǐjīng bèi shānchú, wúfǎ zài shǐyòng. Chuàngjiàn yīgè xīn duìxiàng." + +#: ports/nrf/common-hal/busio/UART.c +msgid "Odd parity is not supported" +msgstr "Bù zhīchí jīshù" + +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Only 8 or 16 bit mono with " +msgstr "Zhǐyǒu 8 huò 16 wèi dānwèi " + +#: shared-module/displayio/OnDiskBitmap.c +#, c-format +msgid "" +"Only Windows format, uncompressed BMP supported: given header size is %d" +msgstr "" +"Jǐn zhīchí Windows géshì, zhīchí wèi yāsuō de BMP: Gěi dìng de biāo tóu " +"dàxiǎo wèi %d" + +#: shared-module/displayio/OnDiskBitmap.c +#, c-format +msgid "" +"Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp " +"given" +msgstr "" +"Jǐn zhīchí dān sè, suǒyǐn 8bpp hé 16bpp huò gèng dà de BMP: %d bpp tígōng" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "Only slices with step=1 (aka None) are supported" +msgstr "Jǐn zhīchí 1 bù qiēpiàn" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "Oversample must be multiple of 8." +msgstr "Guò cǎiyàng bìxū shì 8 de bèishù." + +#: shared-bindings/pulseio/PWMOut.c +msgid "" +"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" +msgstr "" +"PWM yìwù zhōuqí bìxū jiè yú 0 zhì 65535 de bāoróng xìng (16 wèi fēnbiàn lǜ)" + +#: shared-bindings/pulseio/PWMOut.c +msgid "" +"PWM frequency not writable when variable_frequency is False on construction." +msgstr "Dāng biànliàng_pínlǜ shì False zài jiànzhú shí PWM pínlǜ bùkě xiě." + +#: py/moduerrno.c +msgid "Permission denied" +msgstr "Quánxiàn bèi jùjué" + +#: ports/atmel-samd/common-hal/analogio/AnalogIn.c +#: ports/nrf/common-hal/analogio/AnalogIn.c +msgid "Pin does not have ADC capabilities" +msgstr "Pin méiyǒu ADC nénglì" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "Pixel beyond bounds of buffer" +msgstr "Xiàngsù chāochū huǎnchōng qū biānjiè" + +#: py/builtinhelp.c +msgid "Plus any modules on the filesystem\n" +msgstr "Zài wénjiàn xìtǒng shàng tiānjiā rènhé mókuài\n" + +#: main.c +msgid "Press any key to enter the REPL. Use CTRL-D to reload." +msgstr "Àn xià rènhé jiàn jìnrù REPL. Shǐyòng CTRL-D chóngxīn jiāzài." + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Pull not used when direction is output." +msgstr "Fāngxiàng shūchū shí Pull méiyǒu shǐyòng." + +#: ports/nrf/common-hal/rtc/RTC.c +msgid "RTC calibration is not supported on this board" +msgstr "Cǐ bǎn bù zhīchí RTC jiàozhǔn" + +#: shared-bindings/time/__init__.c +msgid "RTC is not supported on this board" +msgstr "Cǐ bǎn bù zhīchí RTC" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "Range out of bounds" +msgstr "Fànwéi chāochū biānjiè" + +#: shared-bindings/pulseio/PulseIn.c +msgid "Read-only" +msgstr "Zhǐ dú" + +#: extmod/vfs_fat.c py/moduerrno.c +msgid "Read-only filesystem" +msgstr "Zhǐ dú wénjiàn xìtǒng" + +#: shared-module/displayio/Bitmap.c +msgid "Read-only object" +msgstr "Zhǐ dú duìxiàng" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Right channel unsupported" +msgstr "Bù zhīchí yòu tōngdào" + +#: shared-bindings/_pew/PewPew.c +msgid "Row entry must be digitalio.DigitalInOut" +msgstr "Xíng xiàng bìxū shì digitalio.DigitalInOut" + +#: main.c +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Zài ānquán móshì xià yùnxíng! Zìdòng chóngxīn jiāzài yǐ guānbì.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dàimǎ.\n" + +#: ports/atmel-samd/common-hal/busio/I2C.c +msgid "SDA or SCL needs a pull up" +msgstr "SDA huò SCL xūyào lādòng" + +#: shared-bindings/audioio/Mixer.c +msgid "Sample rate must be positive" +msgstr "Cǎiyàng lǜ bìxū wèi zhèng shù" + +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +#, c-format +msgid "Sample rate too high. It must be less than %d" +msgstr "Cǎiyàng lǜ tài gāo. Tā bìxū xiǎoyú %d" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Serializer in use" +msgstr "Xùliè huà yǐjīng shǐyòngguò" + +#: shared-bindings/nvm/ByteArray.c +msgid "Slice and value different lengths." +msgstr "Qiēpiàn hé zhí bùtóng chángdù." + +#: shared-bindings/displayio/Bitmap.c shared-bindings/displayio/Group.c +#: shared-bindings/displayio/TileGrid.c shared-bindings/pulseio/PulseIn.c +msgid "Slices not supported" +msgstr "Qiēpiàn bù shòu zhīchí" + +#: ports/nrf/common-hal/bleio/Adapter.c +#, c-format +msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX" +msgstr "Ruǎn shèbèi wéihù, id: 0X%08lX, pc: 0X%08lX" + +#: extmod/modure.c +msgid "Splitting with sub-captures" +msgstr "Yǔ zi bǔhuò fēnliè" + +#: shared-bindings/supervisor/__init__.c +msgid "Stack size must be at least 256" +msgstr "Duīzhàn dàxiǎo bìxū zhìshǎo 256" + +#: shared-bindings/multiterminal/__init__.c +msgid "Stream missing readinto() or write() method." +msgstr "Liú quēshǎo readinto() huò write() fāngfǎ." + +#: supervisor/shared/safe_mode.c +msgid "" +"The CircuitPython heap was corrupted because the stack was too small.\n" +"Please increase stack size limits and press reset (after ejecting " +"CIRCUITPY).\n" +"If you didn't change the stack, then file an issue here with the contents of " +"your CIRCUITPY drive:\n" +msgstr "" +"Yóuyú duīzhàn tài xiǎo, huánliú Python rè sǔnhuài.\n" +"Qǐng zēngjiā duīzhàn chǐcùn xiànzhì, ránhòu chóngxīn shèzhì (zài dànchū " +"CIRCUITPY).\n" +"Rúguǒ nín méiyǒu gǎibiàn duīzhàn, qǐng zài cǐ chù tíchū yīgè wèntí, bìng zài " +"rù nín de CIRCUITPY qūdòngqì:\n" + +#: supervisor/shared/safe_mode.c +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"Wēi kòngzhì qì de diànliàng bèi chōng chū. Qǐng quèbǎo nín de diànyuán wèi\n" +"zhěnggè diànlù tígōng zúgòu de diànyuán bìng àn xià fùwèi (zài dànchū " +"CIRCUITPY hòu).\n" + +#: supervisor/shared/safe_mode.c +msgid "" +"The reset button was pressed while booting CircuitPython. Press again to " +"exit safe mode.\n" +msgstr "" +"Qǐdòng CircuitPython shí, chóng zhì ànniǔ bèi àn xià. Zàicì àn xià yǐ tuìchū " +"ānquán móshì\n" + +#: shared-module/audioio/Mixer.c +msgid "The sample's bits_per_sample does not match the mixer's" +msgstr "Yàngběn de bits_per_sample yǔ hǔn yīn qì bù pǐpèi" + +#: shared-module/audioio/Mixer.c +msgid "The sample's channel count does not match the mixer's" +msgstr "Yàngběn de píndào jìshù yǔ hǔn yīn qì bù xiāngfú" + +#: shared-module/audioio/Mixer.c +msgid "The sample's sample rate does not match the mixer's" +msgstr "Yàngběn de yàngběn sùdù yǔ hǔn yīn qì de xiāngchà bù pǐpèi" + +#: shared-module/audioio/Mixer.c +msgid "The sample's signedness does not match the mixer's" +msgstr "Yàngběn de qiānmíng yǔ hǔn yīn qì de qiānmíng bù pǐpèi" + +#: shared-bindings/displayio/TileGrid.c +msgid "Tile height must exactly divide bitmap height" +msgstr "Píng pū gāodù bìxū huàfēn wèi tú gāodù" + +#: shared-bindings/displayio/TileGrid.c +msgid "Tile indices must be 0 - 255" +msgstr "Píng pū zhǐshù bìxū wèi 0 - 255" + +#: shared-bindings/displayio/TileGrid.c +msgid "Tile width must exactly divide bitmap width" +msgstr "Píng pū kuāndù bìxū huàfēn wèi tú kuāndù" + +#: supervisor/shared/safe_mode.c +msgid "To exit, please reset the board without " +msgstr "Yào tuìchū, qǐng chóng zhì bǎnkuài ér bùyòng " + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +msgid "Too many channels in sample." +msgstr "Chōuyàng zhōng de píndào tài duō." + +#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c +msgid "Too many display busses" +msgstr "Xiǎnshì zǒngxiàn tài duōle" + +#: shared-bindings/displayio/Display.c +msgid "Too many displays" +msgstr "Xiǎnshì tài duō" + +#: py/obj.c +msgid "Traceback (most recent call last):\n" +msgstr "Traceback (Zuìjìn yīcì dǎ diànhuà):\n" + +#: shared-bindings/time/__init__.c +msgid "Tuple or struct_time argument required" +msgstr "Xūyào Tuple huò struct_time cānshù" + +#: shared-module/usb_hid/Device.c +msgid "USB Busy" +msgstr "USB máng" + +#: shared-module/usb_hid/Device.c +msgid "USB Error" +msgstr "USB Cuòwù" + +#: shared-bindings/bleio/UUID.c +msgid "UUID integer value not in range 0 to 0xffff" +msgstr "UUID zhěngshù zhí bùzài fànwéi 0 zhì 0xffff" + +#: shared-bindings/bleio/UUID.c +msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" +msgstr "UUID Zìfú chuàn bùshì 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" + +#: shared-bindings/bleio/UUID.c +msgid "UUID value is not str, int or byte buffer" +msgstr "UUID zhí bùshì str,int huò zì jié huǎnchōng qū" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audioio/AudioOut.c +msgid "Unable to allocate buffers for signed conversion" +msgstr "Wúfǎ fēnpèi huǎnchōng qū yòng yú qiānmíng zhuǎnhuàn" + +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "Unable to find free GCLK" +msgstr "Wúfǎ zhǎodào miǎnfèi de GCLK" + +#: py/parse.c +msgid "Unable to init parser" +msgstr "Wúfǎ chūshǐ jiěxī qì" + +#: shared-module/displayio/OnDiskBitmap.c +msgid "Unable to read color palette data" +msgstr "Wúfǎ dòu qǔ sè tiáo shùjù" + +#: shared-bindings/nvm/ByteArray.c +msgid "Unable to write to nvm." +msgstr "Wúfǎ xiě rù nvm." + +#: ports/nrf/common-hal/bleio/UUID.c +msgid "Unexpected nrfx uuid type" +msgstr "Yìwài de nrfx uuid lèixíng" + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "Unmatched number of items on RHS (expected %d, got %d)." +msgstr "RHS (yùqí %d, huòdé %d) shàng wèi pǐpèi de xiàngmù." + +#: ports/atmel-samd/common-hal/busio/I2C.c +msgid "Unsupported baudrate" +msgstr "Bù zhīchí de baudrate" + +#: shared-module/displayio/Display.c +msgid "Unsupported display bus type" +msgstr "Bù zhīchí de gōnggòng qìchē lèixíng" + +#: shared-module/audioio/WaveFile.c +msgid "Unsupported format" +msgstr "Bù zhīchí de géshì" + +#: py/moduerrno.c +msgid "Unsupported operation" +msgstr "Bù zhīchí de cāozuò" + +#: shared-bindings/digitalio/DigitalInOut.c +msgid "Unsupported pull value." +msgstr "Bù zhīchí de lādòng zhí." + +#: py/emitnative.c +msgid "Viper functions don't currently support more than 4 arguments" +msgstr "Viper hánshù mùqián bù zhīchí chāoguò 4 gè cānshù" + +#: shared-module/audioio/Mixer.c +msgid "Voice index too high" +msgstr "Yǔyīn suǒyǐn tài gāo" + +#: main.c +msgid "WARNING: Your code filename has two extensions\n" +msgstr "Jǐnggào: Nǐ de dàimǎ wénjiàn míng yǒu liǎng gè kuòzhǎn míng\n" + +#: py/builtinhelp.c +#, c-format +msgid "" +"Welcome to Adafruit CircuitPython %s!\n" +"\n" +"Please visit learn.adafruit.com/category/circuitpython for project guides.\n" +"\n" +"To list built-in modules please do `help(\"modules\")`.\n" +msgstr "" +"Huānyíng lái dào Adafruit CircuitPython%s!\n" +"\n" +"Qǐng fǎngwèn xuéxí. learn.Adafruit.com/category/circuitpython.\n" +"\n" +"Ruò yào liè chū nèizài de mókuài, qǐng qǐng zuò yǐxià `help(\"modules\")`.\n" + +#: supervisor/shared/safe_mode.c +msgid "" +"You are running in safe mode which means something unanticipated happened.\n" +msgstr "" +"Nǐ zhèngzài ānquán móshì xià yùnxíng, zhè yì wèi zhuó yìwài fāshēng de " +"shìqíng.\n" + +#: supervisor/shared/safe_mode.c +msgid "You requested starting safe mode by " +msgstr "Nín qǐngqiú qǐdòng ānquán móshì " + +#: py/objtype.c +msgid "__init__() should return None" +msgstr "__init__() fǎnhuí not" + +#: py/objtype.c +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__Init__() yīnggāi fǎnhuí not, ér bùshì '%s'" + +#: py/objobject.c +msgid "__new__ arg must be a user-type" +msgstr "__new__ cānshù bìxū shì yònghù lèixíng" + +#: extmod/modubinascii.c extmod/moduhashlib.c +msgid "a bytes-like object is required" +msgstr "xūyào yīgè zì jié lèi duìxiàng" + +#: lib/embed/abort_.c +msgid "abort() called" +msgstr "zhōngzhǐ () diàoyòng" + +#: extmod/machine_mem.c +#, c-format +msgid "address %08x is not aligned to %d bytes" +msgstr "wèi zhǐ %08x wèi yǔ %d wèi yuán zǔ duìqí" + +#: shared-bindings/i2cslave/I2CSlave.c +msgid "address out of bounds" +msgstr "dìzhǐ chāochū biānjiè" + +#: shared-bindings/i2cslave/I2CSlave.c +msgid "addresses is empty" +msgstr "dìzhǐ wèi kōng" + +#: py/modbuiltins.c +msgid "arg is an empty sequence" +msgstr "cānshù shì yīgè kōng de xùliè" + +#: py/runtime.c +msgid "argument has wrong type" +msgstr "cānshù lèixíng cuòwù" + +#: py/argcheck.c +msgid "argument num/types mismatch" +msgstr "cānshù biānhào/lèixíng bù pǐpèi" + +#: py/runtime.c +msgid "argument should be a '%q' not a '%q'" +msgstr "cānshù yīnggāi shì '%q', 'bùshì '%q'" + +#: py/objarray.c shared-bindings/nvm/ByteArray.c +msgid "array/bytes required on right side" +msgstr "yòu cè xūyào shùzǔ/zì jié" + +#: py/objstr.c +msgid "attributes not supported yet" +msgstr "shǔxìng shàngwèi zhīchí" + +#: ports/nrf/common-hal/bleio/Characteristic.c +msgid "bad GATT role" +msgstr "zǒng xiédìng de bùliáng juésè" + +#: py/builtinevex.c +msgid "bad compile mode" +msgstr "biānyì móshì cuòwù" + +#: py/objstr.c +msgid "bad conversion specifier" +msgstr "cuòwù zhuǎnhuàn biāozhù" + +#: py/objstr.c +msgid "bad format string" +msgstr "géshì cuòwù zìfú chuàn" + +#: py/binary.c +msgid "bad typecode" +msgstr "cuòwù de dàimǎ lèixíng" + +#: py/emitnative.c +msgid "binary op %q not implemented" +msgstr "èrjìnzhì bǎn qián bǎn %q wèi zhíxíng" + +#: shared-bindings/busio/UART.c +msgid "bits must be 7, 8 or 9" +msgstr "bǐtè bìxū shì 7,8 huò 9" + +#: extmod/machine_spi.c +msgid "bits must be 8" +msgstr "bǐtè bìxū shì 8" + +#: shared-bindings/audioio/Mixer.c +msgid "bits_per_sample must be 8 or 16" +msgstr "měi jiàn yàngběn bìxū wèi 8 huò 16" + +#: py/emitinlinethumb.c +msgid "branch not in range" +msgstr "fēnzhī bùzài fànwéi nèi" + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "buf is too small. need %d bytes" +msgstr "huǎnchōng tài xiǎo. Xūyào%d zì jié" + +#: shared-bindings/audioio/RawSample.c +msgid "buffer must be a bytes-like object" +msgstr "huǎnchōng qū bìxū shì zì jié lèi duìxiàng" + +#: shared-module/struct/__init__.c +msgid "buffer size must match format" +msgstr "huǎnchōng qū dàxiǎo bìxū pǐpèi géshì" + +#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c +msgid "buffer slices must be of equal length" +msgstr "huǎnchōng qū qiēpiàn bìxū chángdù xiāngděng" + +#: py/modstruct.c shared-bindings/struct/__init__.c +#: shared-module/struct/__init__.c +msgid "buffer too small" +msgstr "huǎnchōng qū tài xiǎo" + +#: extmod/machine_spi.c +msgid "buffers must be the same length" +msgstr "huǎnchōng qū bìxū shì chángdù xiāngtóng" + +#: shared-bindings/_pew/PewPew.c +msgid "buttons must be digitalio.DigitalInOut" +msgstr "ànniǔ bìxū shì digitalio.DigitalInOut" + +#: py/vm.c +msgid "byte code not implemented" +msgstr "zì jié dàimǎ wèi zhíxíng" + +#: shared-bindings/_pixelbuf/PixelBuf.c +#, c-format +msgid "byteorder is not an instance of ByteOrder (got a %s)" +msgstr "zì jié bùshì zì jié xù shílì (yǒu %s)" + +#: ports/atmel-samd/common-hal/busio/UART.c +msgid "bytes > 8 bits not supported" +msgstr "zì jié > 8 wèi" + +#: py/objstr.c +msgid "bytes value out of range" +msgstr "zì jié zhí chāochū fànwéi" + +#: ports/atmel-samd/bindings/samd/Clock.c +msgid "calibration is out of range" +msgstr "jiàozhǔn fànwéi chāochū fànwéi" + +#: ports/atmel-samd/bindings/samd/Clock.c +msgid "calibration is read only" +msgstr "jiàozhǔn zhǐ dú dào" + +#: ports/atmel-samd/common-hal/rtc/RTC.c +msgid "calibration value out of range +/-127" +msgstr "jiàozhǔn zhí chāochū fànwéi +/-127" + +#: py/emitinlinethumb.c +msgid "can only have up to 4 parameters to Thumb assembly" +msgstr "zhǐyǒu Thumb zǔjiàn zuìduō 4 cānshù" + +#: py/emitinlinextensa.c +msgid "can only have up to 4 parameters to Xtensa assembly" +msgstr "zhǐyǒu Xtensa zǔjiàn zuìduō 4 cānshù" + +#: py/persistentcode.c +msgid "can only save bytecode" +msgstr "zhǐ néng bǎocún zì jié mǎ jìlù" + +#: py/objtype.c +msgid "can't add special method to already-subclassed class" +msgstr "wúfǎ tiānjiā tèshū fāngfǎ dào zi fēnlèi lèi" + +#: py/compile.c +msgid "can't assign to expression" +msgstr "bùnéng fēnpèi dào biǎodá shì" + +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "wúfǎ zhuǎnhuàn%s dào fùzá" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "wúfǎ zhuǎnhuàn %s dào fú diǎn xíng biànliàng" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "wúfǎ zhuǎnhuàn%s dào int" + +#: py/objstr.c +msgid "can't convert '%q' object to %q implicitly" +msgstr "wúfǎ jiāng '%q' duìxiàng zhuǎnhuàn wèi %q yǐn hán" + +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int" + +#: shared-bindings/i2cslave/I2CSlave.c +msgid "can't convert address to int" +msgstr "wúfǎ jiāng dìzhǐ zhuǎnhuàn wèi int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "bùnéng jiāng inf zhuǎnhuàn wèi int" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "bùnéng zhuǎnhuàn wèi fùzá" + +#: py/obj.c +msgid "can't convert to float" +msgstr "bùnéng zhuǎnhuàn wèi fú diǎn" + +#: py/obj.c +msgid "can't convert to int" +msgstr "bùnéng zhuǎnhuàn wèi int" + +#: py/objstr.c +msgid "can't convert to str implicitly" +msgstr "bùnéng mò shì zhuǎnhuàn wèi str" + +#: py/compile.c +msgid "can't declare nonlocal in outer code" +msgstr "wúfǎ zàiwài dàimǎ zhōng shēngmíng fēi běndì" + +#: py/compile.c +msgid "can't delete expression" +msgstr "bùnéng shānchú biǎodá shì" + +#: py/emitnative.c +msgid "can't do binary op between '%q' and '%q'" +msgstr "bùnéng zài '%q' hé '%q' zhī jiān jìnxíng èr yuán yùnsuàn" + +#: py/objcomplex.c +msgid "can't do truncated division of a complex number" +msgstr "bùnéng fēnjiě fùzá de shùzì" + +#: py/compile.c +msgid "can't have multiple **x" +msgstr "wúfǎ yǒu duō gè **x" + +#: py/compile.c +msgid "can't have multiple *x" +msgstr "wúfǎ yǒu duō gè *x" + +#: py/emitnative.c +msgid "can't implicitly convert '%q' to 'bool'" +msgstr "bùnéng yǐn hán de jiāng '%q' zhuǎnhuàn wèi 'bool'" + +#: py/emitnative.c +msgid "can't load from '%q'" +msgstr "wúfǎ cóng '%q' jiāzài" + +#: py/emitnative.c +msgid "can't load with '%q' index" +msgstr "wúfǎ yòng '%q' ' suǒyǐn jiāzài" + +#: py/objgenerator.c +msgid "can't pend throw to just-started generator" +msgstr "bùnéng bǎ tā rēng dào gāng qǐdòng de fā diànjī shàng" + +#: py/objgenerator.c +msgid "can't send non-None value to a just-started generator" +msgstr "wúfǎ xiàng gānggāng qǐdòng de shēngchéng qì fāsòng fēi zhí" + +#: py/objnamedtuple.c +msgid "can't set attribute" +msgstr "wúfǎ shèzhì shǔxìng" + +#: py/emitnative.c +msgid "can't store '%q'" +msgstr "wúfǎ cúnchú '%q'" + +#: py/emitnative.c +msgid "can't store to '%q'" +msgstr "bùnéng cúnchú dào'%q'" + +#: py/emitnative.c +msgid "can't store with '%q' index" +msgstr "bùnéng cúnchú '%q' suǒyǐn" + +#: py/objstr.c +msgid "" +"can't switch from automatic field numbering to manual field specification" +msgstr "wúfǎ zìdòng zìduàn biānhào gǎi wèi shǒudòng zìduàn guīgé" + +#: py/objstr.c +msgid "" +"can't switch from manual field specification to automatic field numbering" +msgstr "wúfǎ cóng shǒudòng zìduàn guīgé qiēhuàn dào zìdòng zìduàn biānhào" + +#: py/objtype.c +msgid "cannot create '%q' instances" +msgstr "wúfǎ chuàngjiàn '%q' ' shílì" + +#: py/objtype.c +msgid "cannot create instance" +msgstr "wúfǎ chuàngjiàn shílì" + +#: py/runtime.c +msgid "cannot import name %q" +msgstr "wúfǎ dǎorù míngchēng %q" + +#: py/builtinimport.c +msgid "cannot perform relative import" +msgstr "wúfǎ zhíxíng xiāngguān dǎorù" + +#: py/emitnative.c +msgid "casting" +msgstr "tóuyǐng" + +#: shared-bindings/bleio/Service.c +msgid "characteristics includes an object that is not a Characteristic" +msgstr "tèxìng bāokuò bùshì zìfú de wùtǐ" + +#: shared-bindings/_stage/Text.c +msgid "chars buffer too small" +msgstr "zìfú huǎnchōng qū tài xiǎo" + +#: py/modbuiltins.c +msgid "chr() arg not in range(0x110000)" +msgstr "chr() cān shǔ bùzài fànwéi (0x110000)" + +#: py/modbuiltins.c +msgid "chr() arg not in range(256)" +msgstr "chr() cān shǔ bùzài fànwéi (256)" + +#: shared-bindings/displayio/Palette.c +msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" +msgstr "" +"yánsè huǎnchōng qū bìxū wèi 3 zì jié (RGB) huò 4 zì jié (RGB + pad zì jié)" + +#: shared-bindings/displayio/Palette.c +msgid "color buffer must be a buffer or int" +msgstr "yánsè huǎnchōng qū bìxū shì huǎnchōng qū huò zhěngshù" + +#: shared-bindings/displayio/Palette.c +msgid "color buffer must be a bytearray or array of type 'b' or 'B'" +msgstr "" +"yánsè huǎnchōng qū bìxū shì zì jié shùzǔ huò lèixíng wèi 'b' huò 'B' de shùzǔ" + +#: shared-bindings/displayio/Palette.c +msgid "color must be between 0x000000 and 0xffffff" +msgstr "yánsè bìxū jiè yú 0x000000 hé 0xffffff zhī jiān" + +#: shared-bindings/displayio/ColorConverter.c +msgid "color should be an int" +msgstr "yánsè yīng wèi zhěngshù" + +#: py/objcomplex.c +msgid "complex division by zero" +msgstr "fùzá de fēngé wèi 0" + +#: py/objfloat.c py/parsenum.c +msgid "complex values not supported" +msgstr "bù zhīchí fùzá de zhí" + +#: extmod/moduzlib.c +msgid "compression header" +msgstr "yāsuō tóu bù" + +#: py/parse.c +msgid "constant must be an integer" +msgstr "chángshù bìxū shì yīgè zhěngshù" + +#: py/emitnative.c +msgid "conversion to object" +msgstr "zhuǎnhuàn wèi duìxiàng" + +#: py/parsenum.c +msgid "decimal numbers not supported" +msgstr "bù zhīchí xiǎoshù shù" + +#: py/compile.c +msgid "default 'except' must be last" +msgstr "mòrèn 'except' bìxū shì zuìhòu yīgè" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "" +"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +msgstr "" +"mùbiāo huǎnchōng qū bìxū shì zì yǎnlèi huò lèixíng 'B' wèi wèi shēndù = 8" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +msgstr "mùbiāo huǎnchōng qū bìxū shì wèi shēndù'H' lèixíng de shùzǔ = 16" + +#: shared-bindings/audiobusio/PDMIn.c +msgid "destination_length must be an int >= 0" +msgstr "mùbiāo chángdù bìxū shì > = 0 de zhěngshù" + +#: py/objdict.c +msgid "dict update sequence has wrong length" +msgstr "yǔfǎ gēngxīn xùliè de chángdù cuòwù" + +#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c +#: shared-bindings/math/__init__.c +msgid "division by zero" +msgstr "bèi líng chú" + +#: py/objdeque.c +msgid "empty" +msgstr "kòngxián" + +#: extmod/moduheapq.c extmod/modutimeq.c +msgid "empty heap" +msgstr "kōng yīn yīnxiào" + +#: py/objstr.c +msgid "empty separator" +msgstr "kōng fēngé fú" + +#: shared-bindings/random/__init__.c +msgid "empty sequence" +msgstr "kōng xùliè" + +#: py/objstr.c +msgid "end of format while looking for conversion specifier" +msgstr "xúnzhǎo zhuǎnhuàn biāozhù géshì de jiéshù" + +#: shared-bindings/displayio/Shape.c +msgid "end_x should be an int" +msgstr "jiéwěi_x yīnggāi shì yīgè zhěngshù" + +#: ports/nrf/common-hal/busio/UART.c +#, c-format +msgid "error = 0x%08lX" +msgstr "cuòwù = 0x%08lX" + +#: py/runtime.c +msgid "exceptions must derive from BaseException" +msgstr "lìwài bìxū láizì BaseException" + +#: py/objstr.c +msgid "expected ':' after format specifier" +msgstr "zài géshì shuōmíng fú zhīhòu yùqí ':'" + +#: shared-bindings/gamepad/GamePad.c +msgid "expected a DigitalInOut" +msgstr "qídài de DigitalInOut" + +#: py/obj.c +msgid "expected tuple/list" +msgstr "yùqí de yuán zǔ/lièbiǎo" + +#: py/modthread.c +msgid "expecting a dict for keyword args" +msgstr "qídài guānjiàn zì cān shǔ de zìdiǎn" + +#: py/compile.c +msgid "expecting an assembler instruction" +msgstr "qídài zhuāngpèi zhǐlìng" + +#: py/compile.c +msgid "expecting just a value for set" +msgstr "jǐn qídài shèzhì de zhí" + +#: py/compile.c +msgid "expecting key:value for dict" +msgstr "qídài guānjiàn: Zìdiǎn de jiàzhí" + +#: py/argcheck.c +msgid "extra keyword arguments given" +msgstr "éwài de guānjiàn cí cānshù" + +#: py/argcheck.c +msgid "extra positional arguments given" +msgstr "gěi chūle éwài de wèizhì cānshù" + +#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c +msgid "file must be a file opened in byte mode" +msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn" + +#: shared-bindings/storage/__init__.c +msgid "filesystem must provide mount method" +msgstr "wénjiàn xìtǒng bìxū tígōng guà zài fāngfǎ" + +#: py/objtype.c +msgid "first argument to super() must be type" +msgstr "chāojí () de dì yī gè cānshù bìxū shì lèixíng" + +#: extmod/machine_spi.c +msgid "firstbit must be MSB" +msgstr "dì yī wèi bìxū shì MSB" + +#: py/objint.c +msgid "float too big" +msgstr "fú diǎn tài dà" + +#: shared-bindings/_stage/Text.c +msgid "font must be 2048 bytes long" +msgstr "zìtǐ bìxū wèi 2048 zì jié" + +#: py/objstr.c +msgid "format requires a dict" +msgstr "géshì yāoqiú yīgè yǔjù" + +#: py/objdeque.c +msgid "full" +msgstr "chōngfèn" + +#: py/argcheck.c +msgid "function does not take keyword arguments" +msgstr "hánshù méiyǒu guānjiàn cí cānshù" + +#: py/argcheck.c +#, c-format +msgid "function expected at most %d arguments, got %d" +msgstr "hánshù yùjì zuìduō %d cānshù, huòdé %d" + +#: py/bc.c py/objnamedtuple.c +msgid "function got multiple values for argument '%q'" +msgstr "hánshù huòdé cānshù '%q' de duōchóng zhí" + +#: py/argcheck.c +#, c-format +msgid "function missing %d required positional arguments" +msgstr "hánshù diūshī %d suǒ xū wèizhì cānshù" + +#: py/bc.c +msgid "function missing keyword-only argument" +msgstr "hánshù quēshǎo guānjiàn zì cānshù" + +#: py/bc.c +msgid "function missing required keyword argument '%q'" +msgstr "hánshù quēshǎo suǒ xū guānjiàn zì cānshù '%q'" + +#: py/bc.c +#, c-format +msgid "function missing required positional argument #%d" +msgstr "hánshù quēshǎo suǒ xū de wèizhì cānshù #%d" + +#: py/argcheck.c py/bc.c py/objnamedtuple.c +#, c-format +msgid "function takes %d positional arguments but %d were given" +msgstr "hánshù xūyào %d gè wèizhì cānshù, dàn %d bèi gěi chū" + +#: shared-bindings/time/__init__.c +msgid "function takes exactly 9 arguments" +msgstr "hánshù xūyào wánquán 9 zhǒng cānshù" + +#: py/objgenerator.c +msgid "generator already executing" +msgstr "shēngchéng qì yǐjīng zhíxíng" + +#: py/objgenerator.c +msgid "generator ignored GeneratorExit" +msgstr "shēngchéng qì hūlüè shēngchéng qì tuìchū" + +#: shared-bindings/_stage/Layer.c +msgid "graphic must be 2048 bytes long" +msgstr "túxíng bìxū wèi 2048 zì jié" + +#: extmod/moduheapq.c +msgid "heap must be a list" +msgstr "duī bìxū shì yīgè lièbiǎo" + +#: py/compile.c +msgid "identifier redefined as global" +msgstr "biāozhì fú chóngxīn dìngyì wèi quánjú" + +#: py/compile.c +msgid "identifier redefined as nonlocal" +msgstr "biāozhì fú chóngxīn dìngyì wéi fēi běndì" + +#: py/objstr.c +msgid "incomplete format" +msgstr "géshì bù wánzhěng" + +#: py/objstr.c +msgid "incomplete format key" +msgstr "géshì bù wánzhěng de mì yào" + +#: extmod/modubinascii.c +msgid "incorrect padding" +msgstr "bù zhèngquè de tiánchōng" + +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c +msgid "index out of range" +msgstr "suǒyǐn chāochū fànwéi" + +#: py/obj.c +msgid "indices must be integers" +msgstr "suǒyǐn bìxū shì zhěngshù" + +#: py/compile.c +msgid "inline assembler must be a function" +msgstr "nèi lián jíhé bìxū shì yīgè hánshù" + +#: py/parsenum.c +msgid "int() arg 2 must be >= 2 and <= 36" +msgstr "zhěngshù() cānshù 2 bìxū > = 2 qiě <= 36" + +#: py/objstr.c +msgid "integer required" +msgstr "xūyào zhěngshù" + +#: ports/nrf/common-hal/bleio/Broadcaster.c +msgid "interval not in range 0.0020 to 10.24" +msgstr "jùlí 0.0020 Zhì 10.24 Zhī jiān de jiàngé shíjiān" + +#: extmod/machine_i2c.c +msgid "invalid I2C peripheral" +msgstr "wúxiào de I2C wàiwéi qì" + +#: extmod/machine_spi.c +msgid "invalid SPI peripheral" +msgstr "wúxiào de SPI wàiwéi qì" + +#: lib/netutils/netutils.c +msgid "invalid arguments" +msgstr "wúxiào de cānshù" + +#: extmod/modussl_axtls.c +msgid "invalid cert" +msgstr "zhèngshū wúxiào" + +#: extmod/uos_dupterm.c +msgid "invalid dupterm index" +msgstr "dupterm suǒyǐn wúxiào" + +#: extmod/modframebuf.c +msgid "invalid format" +msgstr "wúxiào géshì" + +#: py/objstr.c +msgid "invalid format specifier" +msgstr "wúxiào de géshì biāozhù" + +#: extmod/modussl_axtls.c +msgid "invalid key" +msgstr "wúxiào de mì yào" + +#: py/compile.c +msgid "invalid micropython decorator" +msgstr "wúxiào de MicroPython zhuāngshì qì" + +#: shared-bindings/random/__init__.c +msgid "invalid step" +msgstr "wúxiào bùzhòu" + +#: py/compile.c py/parse.c +msgid "invalid syntax" +msgstr "wúxiào de yǔfǎ" + +#: py/parsenum.c +msgid "invalid syntax for integer" +msgstr "zhěngshù wúxiào de yǔfǎ" + +#: py/parsenum.c +#, c-format +msgid "invalid syntax for integer with base %d" +msgstr "jīshù wèi %d de zhěng shǔ de yǔfǎ wúxiào" + +#: py/parsenum.c +msgid "invalid syntax for number" +msgstr "wúxiào de hàomǎ yǔfǎ" + +#: py/objtype.c +msgid "issubclass() arg 1 must be a class" +msgstr "issubclass() cānshù 1 bìxū shì yīgè lèi" + +#: py/objtype.c +msgid "issubclass() arg 2 must be a class or a tuple of classes" +msgstr "issubclass() cānshù 2 bìxū shì lèi de lèi huò yuán zǔ" + +#: py/objstr.c +msgid "join expects a list of str/bytes objects consistent with self object" +msgstr "" +"tiānjiā yīgè fúhé zìshēn duìxiàng de zìfú chuàn/zì jié duìxiàng lièbiǎo" + +#: py/argcheck.c +msgid "keyword argument(s) not yet implemented - use normal args instead" +msgstr "guānjiàn zì cānshù shàngwèi shíxiàn - qǐng shǐyòng chángguī cānshù" + +#: py/bc.c +msgid "keywords must be strings" +msgstr "guānjiàn zì bìxū shì zìfú chuàn" + +#: py/emitinlinethumb.c py/emitinlinextensa.c +msgid "label '%q' not defined" +msgstr "biāoqiān '%q' wèi dìngyì" + +#: py/compile.c +msgid "label redefined" +msgstr "biāoqiān chóngxīn dìngyì" + +#: py/stream.c +msgid "length argument not allowed for this type" +msgstr "bù yǔnxǔ gāi lèixíng de chángdù cānshù" + +#: py/objarray.c +msgid "lhs and rhs should be compatible" +msgstr "lhs hé rhs yīnggāi jiānróng" + +#: py/emitnative.c +msgid "local '%q' has type '%q' but source is '%q'" +msgstr "bendì '%q' bāohán lèixíng '%q' dàn yuán shì '%q'" + +#: py/emitnative.c +msgid "local '%q' used before type known" +msgstr "běndì '%q' zài zhī lèixíng zhīqián shǐyòng" + +#: py/vm.c +msgid "local variable referenced before assignment" +msgstr "fùzhí qián yǐnyòng de júbù biànliàng" + +#: py/objint.c +msgid "long int not supported in this build" +msgstr "cǐ bǎnběn bù zhīchí zhǎng zhěngshù" + +#: shared-bindings/_stage/Layer.c +msgid "map buffer too small" +msgstr "dìtú huǎnchōng qū tài xiǎo" + +#: py/modmath.c shared-bindings/math/__init__.c +msgid "math domain error" +msgstr "shùxué yù cuòwù" + +#: py/runtime.c +msgid "maximum recursion depth exceeded" +msgstr "chāochū zuìdà dìguī shēndù" + +#: py/runtime.c +#, c-format +msgid "memory allocation failed, allocating %u bytes" +msgstr "nèicún fēnpèi shībài, fēnpèi %u zì jié" + +#: py/runtime.c +msgid "memory allocation failed, heap is locked" +msgstr "jìyì tǐ fēnpèi shībài, duī bèi suǒdìng" + +#: py/builtinimport.c +msgid "module not found" +msgstr "zhǎo bù dào mókuài" + +#: py/compile.c +msgid "multiple *x in assignment" +msgstr "duō gè*x zài zuòyè zhōng" + +#: py/objtype.c +msgid "multiple bases have instance lay-out conflict" +msgstr "duō gè jīdì yǒu shílì bùjú chōngtú" + +#: py/objtype.c +msgid "multiple inheritance not supported" +msgstr "bù zhīchí duō gè jìchéng" + +#: py/emitnative.c +msgid "must raise an object" +msgstr "bìxū tíchū duìxiàng" + +#: extmod/machine_spi.c +msgid "must specify all of sck/mosi/miso" +msgstr "bìxū zhǐdìng suǒyǒu sck/mosi/misco" + +#: py/modbuiltins.c +msgid "must use keyword argument for key function" +msgstr "bìxū shǐyòng guānjiàn cí cānshù" + +#: py/runtime.c +msgid "name '%q' is not defined" +msgstr "míngchēng '%q' wèi dìngyì" + +#: shared-bindings/bleio/Peripheral.c +msgid "name must be a string" +msgstr "míngchēng bìxū shì yīgè zìfú chuàn" + +#: py/runtime.c +msgid "name not defined" +msgstr "míngchēng wèi dìngyì" + +#: py/compile.c +msgid "name reused for argument" +msgstr "cān shǔ míngchēng bèi chóngxīn shǐyòng" + +#: py/emitnative.c +#, fuzzy +msgid "native yield" +msgstr "yuánshēng chǎnliàng" + +#: py/runtime.c +#, c-format +msgid "need more than %d values to unpack" +msgstr "xūyào chāoguò%d de zhí cáinéng jiědú" + +#: py/objint_longlong.c py/objint_mpz.c py/runtime.c +msgid "negative power with no float support" +msgstr "méiyǒu fú diǎn zhīchí de xiāojí gōnglǜ" + +#: py/objint_mpz.c py/runtime.c +msgid "negative shift count" +msgstr "fù zhuǎnyí jìshù" + +#: py/vm.c +msgid "no active exception to reraise" +msgstr "méiyǒu jīhuó de yìcháng lái chóngxīn píngjià" + +#: shared-bindings/socket/__init__.c shared-module/network/__init__.c +msgid "no available NIC" +msgstr "méiyǒu kěyòng de NIC" + +#: py/compile.c +msgid "no binding for nonlocal found" +msgstr "zhǎo bù dào fēi běndì de bǎng dìng" + +#: py/builtinimport.c +msgid "no module named '%q'" +msgstr "méiyǒu mókuài '%q'" + +#: py/runtime.c shared-bindings/_pixelbuf/__init__.c +msgid "no such attribute" +msgstr "méiyǒu cǐ shǔxìng" + +#: py/compile.c +msgid "non-default argument follows default argument" +msgstr "bùshì mòrèn cānshù zūnxún mòrèn cānshù" + +#: extmod/modubinascii.c +msgid "non-hex digit found" +msgstr "zhǎodào fēi shíliù jìn zhì shùzì" + +#: py/compile.c +msgid "non-keyword arg after */**" +msgstr "zài */** zhīhòu fēi guānjiàn cí cānshù" + +#: py/compile.c +msgid "non-keyword arg after keyword arg" +msgstr "guānjiàn zì cānshù zhīhòu de fēi guānjiàn zì cānshù" + +#: shared-bindings/bleio/UUID.c +msgid "not a 128-bit UUID" +msgstr "bùshì 128 wèi UUID" + +#: py/objstr.c +msgid "not all arguments converted during string formatting" +msgstr "bùshì zì chuàn géshì huà guòchéng zhōng zhuǎnhuàn de suǒyǒu cānshù" + +#: py/objstr.c +msgid "not enough arguments for format string" +msgstr "géshì zìfú chuàn cān shǔ bùzú" + +#: py/obj.c +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "duìxiàng '%s' bùshì yuán zǔ huò lièbiǎo" + +#: py/obj.c +msgid "object does not support item assignment" +msgstr "duìxiàng bù zhīchí xiàngmù fēnpèi" + +#: py/obj.c +msgid "object does not support item deletion" +msgstr "duìxiàng bù zhīchí shānchú xiàngmù" + +#: py/obj.c +msgid "object has no len" +msgstr "duìxiàng méiyǒu chángdù" + +#: py/obj.c +msgid "object is not subscriptable" +msgstr "duìxiàng bùnéng xià biāo" + +#: py/runtime.c +msgid "object not an iterator" +msgstr "duìxiàng bùshì diédài qì" + +#: py/objtype.c py/runtime.c +msgid "object not callable" +msgstr "duìxiàng wúfǎ diàoyòng" + +#: py/sequence.c +msgid "object not in sequence" +msgstr "duìxiàng bùshì xùliè" + +#: py/runtime.c +msgid "object not iterable" +msgstr "duìxiàng bùnéng diédài" + +#: py/obj.c +#, c-format +msgid "object of type '%s' has no len()" +msgstr "lèixíng '%s' de duìxiàng méiyǒu chángdù" + +#: py/obj.c +msgid "object with buffer protocol required" +msgstr "xūyào huǎnchōng qū xiéyì de duìxiàng" + +#: extmod/modubinascii.c +msgid "odd-length string" +msgstr "jīshù zìfú chuàn" + +#: py/objstr.c py/objstrunicode.c +msgid "offset out of bounds" +msgstr "piānlí biānjiè" + +#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c +#: shared-bindings/nvm/ByteArray.c +msgid "only slices with step=1 (aka None) are supported" +msgstr "jǐn zhīchí bù zhǎng = 1(jí wú) de qiēpiàn" + +#: py/modbuiltins.c +msgid "ord expects a character" +msgstr "ord yùqí zìfú" + +#: py/modbuiltins.c +#, c-format +msgid "ord() expected a character, but string of length %d found" +msgstr "ord() yùqí zìfú, dàn chángdù zìfú chuàn %d" + +#: py/objint_mpz.c +msgid "overflow converting long int to machine word" +msgstr "chāo gāo zhuǎnhuàn zhǎng zhěng shùzì shí" + +#: shared-bindings/_stage/Layer.c shared-bindings/_stage/Text.c +msgid "palette must be 32 bytes long" +msgstr "yánsè bìxū shì 32 gè zì jié" + +#: shared-bindings/displayio/Palette.c +msgid "palette_index should be an int" +msgstr "yánsè suǒyǐn yīnggāi shì yīgè zhěngshù" + +#: py/compile.c +msgid "parameter annotation must be an identifier" +msgstr "cānshù zhùshì bìxū shì biāozhì fú" + +#: py/emitinlinextensa.c +msgid "parameters must be registers in sequence a2 to a5" +msgstr "cānshù bìxū shì xùliè a2 zhì a5 de dēngjì shù" + +#: py/emitinlinethumb.c +msgid "parameters must be registers in sequence r0 to r3" +msgstr "cānshù bìxū shì xùliè r0 zhì r3 de dēngjì qì" + +#: shared-bindings/displayio/Bitmap.c +msgid "pixel coordinates out of bounds" +msgstr "xiàngsù zuòbiāo chāochū biānjiè" + +#: shared-bindings/displayio/Bitmap.c +msgid "pixel value requires too many bits" +msgstr "xiàngsù zhí xūyào tài duō wèi" + +#: shared-bindings/displayio/TileGrid.c +msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" +msgstr "pixel_shader bìxū shì displayio.Palette huò displayio.ColorConverter" + +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "cóng kōng de PulseIn dànchū dànchū" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "cóng kōng jí dànchū" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "cóng kōng lièbiǎo zhòng dànchū" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "dànchū xiàngmù (): Zìdiǎn wèi kōng" + +#: py/objint_mpz.c +msgid "pow() 3rd argument cannot be 0" +msgstr "pow() 3 cān shǔ bùnéng wéi 0" + +#: py/objint_mpz.c +msgid "pow() with 3 arguments requires integers" +msgstr "pow() yǒu 3 cānshù xūyào zhěngshù" + +#: extmod/modutimeq.c +msgid "queue overflow" +msgstr "duìliè yìchū" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "rawbuf is not the same size as buf" +msgstr "yuánshǐ huǎnchōng qū hé huǎnchōng qū de dàxiǎo bùtóng" + +#: shared-bindings/_pixelbuf/__init__.c +msgid "readonly attribute" +msgstr "zhǐ dú shǔxìng" + +#: py/builtinimport.c +msgid "relative import" +msgstr "xiāngduì dǎorù" + +#: py/obj.c +#, c-format +msgid "requested length %d but object has length %d" +msgstr "qǐngqiú chángdù %d dàn duìxiàng chángdù %d" + +#: py/compile.c +msgid "return annotation must be an identifier" +msgstr "fǎnhuí zhùshì bìxū shì biāozhì fú" + +#: py/emitnative.c +msgid "return expected '%q' but got '%q'" +msgstr "fǎnhuí yùqí de '%q' dàn huòdéle '%q'" + +#: py/objstr.c +msgid "rsplit(None,n)" +msgstr "" + +#: shared-bindings/audioio/RawSample.c +msgid "" +"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " +"'B'" +msgstr "" +"yàngběn yuán_yuán huǎnchōng qū bìxū shì zì yǎnlèi huò lèixíng 'h', 'H', 'b' " +"huò 'B' de shùzǔ" + +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c +msgid "sampling rate out of range" +msgstr "qǔyàng lǜ chāochū fànwéi" + +#: py/modmicropython.c +msgid "schedule stack full" +msgstr "jìhuà duīzhàn yǐ mǎn" + +#: lib/utils/pyexec.c py/builtinimport.c +msgid "script compilation not supported" +msgstr "bù zhīchí jiǎoběn biānyì" + +#: shared-bindings/bleio/Peripheral.c +msgid "services includes an object that is not a Service" +msgstr "fúwù bāokuò yīgè bùshì fúwù de wùjiàn" + +#: py/objstr.c +msgid "sign not allowed in string format specifier" +msgstr "zìfú chuàn géshì shuōmíng fú zhōng bù yǔnxǔ shǐyòng fúhào" + +#: py/objstr.c +msgid "sign not allowed with integer format specifier 'c'" +msgstr "zhěngshù géshì shuōmíng fú 'c' bù yǔnxǔ shǐyòng fúhào" + +#: py/objstr.c +msgid "single '}' encountered in format string" +msgstr "zài géshì zìfú chuàn zhōng yù dào de dāngè '}'" + +#: shared-bindings/time/__init__.c +msgid "sleep length must be non-negative" +msgstr "shuìmián chángdù bìxū shìfēi fùshù" + +#: py/objslice.c py/sequence.c +msgid "slice step cannot be zero" +msgstr "qiēpiàn bù bùnéng wéi líng" + +#: py/objint.c py/sequence.c +msgid "small int overflow" +msgstr "xiǎo zhěngshù yìchū" + +#: main.c +msgid "soft reboot\n" +msgstr "ruǎn chóngqǐ\n" + +#: py/objstr.c +msgid "start/end indices" +msgstr "kāishǐ/jiéshù zhǐshù" + +#: shared-bindings/displayio/Shape.c +msgid "start_x should be an int" +msgstr "kāishǐ_x yīnggāi shì yīgè zhěngshù" + +#: shared-bindings/random/__init__.c +msgid "step must be non-zero" +msgstr "bùzhòu bìxū shìfēi líng" + +#: shared-bindings/busio/UART.c +msgid "stop must be 1 or 2" +msgstr "tíngzhǐ bìxū wèi 1 huò 2" + +#: shared-bindings/random/__init__.c +msgid "stop not reachable from start" +msgstr "tíngzhǐ wúfǎ cóng kāishǐ zhōng zhǎodào" + +#: py/stream.c +msgid "stream operation not supported" +msgstr "bù zhīchí liú cāozuò" + +#: py/objstrunicode.c +msgid "string index out of range" +msgstr "zìfú chuàn suǒyǐn chāochū fànwéi" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "zìfú chuàn zhǐshù bìxū shì zhěngshù, ér bùshì %s" + +#: py/stream.c +msgid "string not supported; use bytes or bytearray" +msgstr "zìfú chuàn bù zhīchí; shǐyòng zì jié huò zì jié zǔ" + +#: extmod/moductypes.c +msgid "struct: cannot index" +msgstr "jiégòu: bùnéng suǒyǐn" + +#: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "jiégòu: suǒyǐn chāochū fànwéi" + +#: extmod/moductypes.c +msgid "struct: no fields" +msgstr "jiégòu: méiyǒu zìduàn" + +#: py/objstr.c +msgid "substring not found" +msgstr "wèi zhǎodào zi zìfú chuàn" + +#: py/compile.c +msgid "super() can't find self" +msgstr "chāojí() zhǎo bù dào zìjǐ" + +#: extmod/modujson.c +msgid "syntax error in JSON" +msgstr "JSON yǔfǎ cuòwù" + +#: extmod/moductypes.c +msgid "syntax error in uctypes descriptor" +msgstr "uctypes miáoshù fú zhōng de yǔfǎ cuòwù" + +#: shared-bindings/touchio/TouchIn.c +msgid "threshold must be in the range 0-65536" +msgstr "yùzhí bìxū zài fànwéi 0-65536" + +#: shared-bindings/displayio/TileGrid.c +msgid "tile index out of bounds" +msgstr "kuài suǒyǐn chāochū fànwéi" + +#: shared-bindings/time/__init__.c +msgid "time.struct_time() takes a 9-sequence" +msgstr "time.struct_time() xūyào 9 xùliè" + +#: shared-bindings/time/__init__.c +msgid "time.struct_time() takes exactly 1 argument" +msgstr "time.struct_time() xūyào wánquán 1 cānshù" + +#: shared-bindings/busio/UART.c +msgid "timeout >100 (units are now seconds, not msecs)" +msgstr "chāoshí >100 (dānwèi shì miǎo, ér bùshì háomiǎo)" + +#: shared-bindings/bleio/CharacteristicBuffer.c +msgid "timeout must be >= 0.0" +msgstr "chāoshí bìxū shì >= 0.0" + +#: shared-bindings/time/__init__.c +msgid "timestamp out of range for platform time_t" +msgstr "time_t shíjiān chuō chāochū píngtái fànwéi" + +#: shared-bindings/gamepad/GamePad.c +msgid "too many arguments" +msgstr "tài duō cānshù" + +#: shared-module/struct/__init__.c +msgid "too many arguments provided with the given format" +msgstr "tígōng jǐ dìng géshì de cānshù tài duō" + +#: py/runtime.c +#, c-format +msgid "too many values to unpack (expected %d)" +msgstr "dǎkāi tài duō zhí (yùqí %d)" + +#: py/objstr.c +msgid "tuple index out of range" +msgstr "yuán zǔ suǒyǐn chāochū fànwéi" + +#: py/obj.c +msgid "tuple/list has wrong length" +msgstr "yuán zǔ/lièbiǎo chángdù cuòwù" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "tuple/list required on RHS" +msgstr "RHS yāoqiú de yuán zǔ/lièbiǎo" + +#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c +msgid "tx and rx cannot both be None" +msgstr "tx hé rx bùnéng dōu shì wú" + +#: py/objtype.c +msgid "type '%q' is not an acceptable base type" +msgstr "lèixíng '%q' bùshì kě jiēshòu de jīchǔ lèixíng" + +#: py/objtype.c +msgid "type is not an acceptable base type" +msgstr "lèixíng bùshì kě jiēshòu de jīchǔ lèixíng" + +#: py/runtime.c +msgid "type object '%q' has no attribute '%q'" +msgstr "lèixíng duìxiàng '%q' méiyǒu shǔxìng '%q'" + +#: py/objtype.c +msgid "type takes 1 or 3 arguments" +msgstr "lèixíng wèi 1 huò 3 gè cānshù" + +#: py/objint_longlong.c +msgid "ulonglong too large" +msgstr "tài kuān" + +#: py/emitnative.c +msgid "unary op %q not implemented" +msgstr "wèi zhíxíng %q" + +#: py/parse.c +msgid "unexpected indent" +msgstr "wèi yùliào de suō jìn" + +#: py/bc.c +msgid "unexpected keyword argument" +msgstr "yìwài de guānjiàn cí cānshù" + +#: py/bc.c py/objnamedtuple.c +msgid "unexpected keyword argument '%q'" +msgstr "yìwài de guānjiàn cí cānshù '%q'" + +#: py/lexer.c +msgid "unicode name escapes" +msgstr "unicode míngchēng táoyì" + +#: py/parse.c +msgid "unindent does not match any outer indentation level" +msgstr "bùsuō jìn yǔ rènhé wàibù suō jìn jíbié dōu bù pǐpèi" + +#: py/objstr.c +#, c-format +msgid "unknown conversion specifier %c" +msgstr "wèizhī de zhuǎnhuàn biāozhù %c" + +#: py/objstr.c +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "lèixíng '%s' duìxiàng wèizhī de géshì dàimǎ '%c'" + +#: py/objstr.c +#, c-format +msgid "unknown format code '%c' for object of type 'float'" +msgstr "lèixíng 'float' duìxiàng wèizhī de géshì dàimǎ '%c'" + +#: py/objstr.c +#, c-format +msgid "unknown format code '%c' for object of type 'str'" +msgstr "lèixíng 'str' duìxiàng wèizhī de géshì dàimǎ '%c'" + +#: py/compile.c +msgid "unknown type" +msgstr "wèizhī lèixíng" + +#: py/emitnative.c +msgid "unknown type '%q'" +msgstr "wèizhī lèixíng '%q'" + +#: py/objstr.c +msgid "unmatched '{' in format" +msgstr "géshì wèi pǐpèi '{'" + +#: py/objtype.c py/runtime.c +msgid "unreadable attribute" +msgstr "bùkě dú shǔxìng" + +#: shared-bindings/displayio/TileGrid.c +msgid "unsupported %q type" +msgstr "bù zhīchí %q lèixíng" + +#: py/emitinlinethumb.c +#, c-format +msgid "unsupported Thumb instruction '%s' with %d arguments" +msgstr "bù zhīchí de Thumb zhǐshì '%s', shǐyòng %d cānshù" + +#: py/emitinlinextensa.c +#, c-format +msgid "unsupported Xtensa instruction '%s' with %d arguments" +msgstr "bù zhīchí de Xtensa zhǐlìng '%s', shǐyòng %d cānshù" + +#: py/objstr.c +#, c-format +msgid "unsupported format character '%c' (0x%x) at index %d" +msgstr "bù zhīchí de géshì zìfú '%c' (0x%x) suǒyǐn %d" + +#: py/runtime.c +msgid "unsupported type for %q: '%s'" +msgstr "bù zhīchí de lèixíng %q: '%s'" + +#: py/runtime.c +msgid "unsupported type for operator" +msgstr "bù zhīchí de cāozuò zhě lèixíng" + +#: py/runtime.c +msgid "unsupported types for %q: '%s', '%s'" +msgstr "bù zhīchí de lèixíng wèi %q: '%s', '%s'" + +#: shared-bindings/displayio/Bitmap.c +msgid "value_count must be > 0" +msgstr "zhí jìshù bìxū wèi > 0" + +#: shared-bindings/_pixelbuf/PixelBuf.c +msgid "write_args must be a list, tuple, or None" +msgstr "xiě cānshù bìxū shì yuán zǔ, lièbiǎo huò None" + +#: py/objstr.c +msgid "wrong number of arguments" +msgstr "cānshù shù cuòwù" + +#: py/runtime.c +msgid "wrong number of values to unpack" +msgstr "wúfǎ jiě bāo de zhí shù" + +#: shared-module/displayio/Shape.c +msgid "x value out of bounds" +msgstr "x zhí chāochū biānjiè" + +#: shared-bindings/displayio/Shape.c +msgid "y should be an int" +msgstr "y yīnggāi shì yīgè zhěngshù" + +#: shared-module/displayio/Shape.c +msgid "y value out of bounds" +msgstr "y zhí chāochū biānjiè" + +#: py/objrange.c +msgid "zero step" +msgstr "líng bù" + +#~ msgid "No default I2C bus" +#~ msgstr "Méiyǒu mòrèn I2C gōnggòng qìchē" + +#~ msgid "No default SPI bus" +#~ msgstr "Méiyǒu mòrèn SPI gōnggòng qìchē" + +#~ msgid "No default UART bus" +#~ msgstr "Méiyǒu mòrèn UART gōnggòng qìchē" + +#~ msgid "Only bit maps of 8 bit color or less are supported" +#~ msgstr "Jǐn zhīchí 8 wèi yánsè huò xiǎoyú" + +#~ msgid "row must be packed and word aligned" +#~ msgstr "xíng bìxū dǎbāo bìngqiě zì duìqí" + +#~ msgid "unsupported bitmap type" +#~ msgstr "bù zhīchí de bitmap lèixíng" diff --git a/main.c b/main.c index 77498d7dee..f7b2897763 100755 --- a/main.c +++ b/main.c @@ -43,6 +43,7 @@ #include "lib/mp-readline/readline.h" #include "lib/utils/pyexec.h" +#include "background.h" #include "mpconfigboard.h" #include "shared-module/displayio/__init__.h" #include "supervisor/cpu.h" @@ -50,7 +51,6 @@ #include "supervisor/port.h" #include "supervisor/filesystem.h" #include "supervisor/shared/autoreload.h" -#include "supervisor/shared/board_busses.h" #include "supervisor/shared/translate.h" #include "supervisor/shared/rgb_led_status.h" #include "supervisor/shared/safe_mode.h" @@ -62,6 +62,10 @@ #include "shared-module/network/__init__.h" #endif +#if CIRCUITPY_BOARD +#include "shared-module/board/__init__.h" +#endif + void do_str(const char *src, mp_parse_input_kind_t input_kind) { mp_lexer_t *lex = mp_lexer_new_from_str_len(MP_QSTR__lt_stdin_gt_, src, strlen(src), 0); if (lex == NULL) { @@ -86,6 +90,8 @@ void start_mp(supervisor_allocation* heap) { reset_status_led(); autoreload_stop(); + background_tasks_reset(); + // Stack limit should be less than real stack size, so we have a chance // to recover from limit hit. (Limit is measured in bytes.) mp_stack_ctrl_init(); diff --git a/ports/atmel-samd/Makefile b/ports/atmel-samd/Makefile index 0851b6bbb9..9b110c1bbc 100644 --- a/ports/atmel-samd/Makefile +++ b/ports/atmel-samd/Makefile @@ -212,6 +212,7 @@ SRC_C = \ bindings/samd/__init__.c \ boards/$(BOARD)/board.c \ boards/$(BOARD)/pins.c \ + eic_handler.c \ fatfs_port.c \ freetouch/adafruit_ptc.c \ lib/libc/string0.c \ diff --git a/ports/atmel-samd/background.c b/ports/atmel-samd/background.c index 519d0eeec7..4e88d34e79 100644 --- a/ports/atmel-samd/background.c +++ b/ports/atmel-samd/background.c @@ -27,6 +27,7 @@ #include "audio_dma.h" #include "tick.h" +#include "supervisor/filesystem.h" #include "supervisor/usb.h" #include "py/runtime.h" @@ -41,8 +42,20 @@ volatile uint64_t last_finished_tick = 0; bool stack_ok_so_far = true; +static bool running_background_tasks = false; + +void background_tasks_reset(void) { + running_background_tasks = false; +} + void run_background_tasks(void) { + // Don't call ourselves recursively. + if (running_background_tasks) { + return; + } assert_heap_ok(); + running_background_tasks = true; + #if (defined(SAMD21) && defined(PIN_PA02)) || defined(SAMD51) audio_dma_background(); #endif @@ -53,7 +66,9 @@ void run_background_tasks(void) { #if CIRCUITPY_NETWORK network_module_background(); #endif + filesystem_background(); usb_background(); + running_background_tasks = false; assert_heap_ok(); last_finished_tick = ticks_ms; diff --git a/ports/atmel-samd/background.h b/ports/atmel-samd/background.h index 8d1316e731..d9866a6abc 100644 --- a/ports/atmel-samd/background.h +++ b/ports/atmel-samd/background.h @@ -29,6 +29,7 @@ #include +void background_tasks_reset(void); void run_background_tasks(void); void run_background_vm_tasks(void); bool background_tasks_ok(void); diff --git a/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h b/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h index 1deda871a8..a508d91913 100644 --- a/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h +++ b/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.h @@ -7,9 +7,9 @@ #define MICROPY_HW_LED_STATUS (&pin_PB23) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA09) #define DEFAULT_I2C_BUS_SDA (&pin_PA08) diff --git a/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.mk b/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.mk index b1b127ced6..bafb8a96ca 100644 --- a/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.mk +++ b/ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/arduino_mkr1300/pins.c b/ports/atmel-samd/boards/arduino_mkr1300/pins.c index a5a058acec..7a73e89bf9 100644 --- a/ports/atmel-samd/boards/arduino_mkr1300/pins.c +++ b/ports/atmel-samd/boards/arduino_mkr1300/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB02) }, diff --git a/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h index d98da4d149..02750e6469 100644 --- a/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h +++ b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.h @@ -5,9 +5,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA09) #define DEFAULT_I2C_BUS_SDA (&pin_PA08) diff --git a/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk index 0e6fb612eb..b6df8d6e22 100644 --- a/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk +++ b/ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/arduino_mkrzero/pins.c b/ports/atmel-samd/boards/arduino_mkrzero/pins.c index 654c0d6dae..2494076ab1 100644 --- a/ports/atmel-samd/boards/arduino_mkrzero/pins.c +++ b/ports/atmel-samd/boards/arduino_mkrzero/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB02) }, diff --git a/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h b/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h index 7ab09d4477..ec201e6ef5 100644 --- a/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h +++ b/ports/atmel-samd/boards/arduino_zero/mpconfigboard.h @@ -10,9 +10,9 @@ #define MICROPY_PORT_B (PORT_PB03) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) diff --git a/ports/atmel-samd/boards/arduino_zero/mpconfigboard.mk b/ports/atmel-samd/boards/arduino_zero/mpconfigboard.mk index 26f771b502..af953e8c2d 100644 --- a/ports/atmel-samd/boards/arduino_zero/mpconfigboard.mk +++ b/ports/atmel-samd/boards/arduino_zero/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/arduino_zero/pins.c b/ports/atmel-samd/boards/arduino_zero/pins.c index f9403bb9ad..7ebcc9a6e3 100644 --- a/ports/atmel-samd/boards/arduino_zero/pins.c +++ b/ports/atmel-samd/boards/arduino_zero/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/bast_pro_mini_m0/board.c b/ports/atmel-samd/boards/bast_pro_mini_m0/board.c new file mode 100644 index 0000000000..c8e20206a1 --- /dev/null +++ b/ports/atmel-samd/boards/bast_pro_mini_m0/board.c @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" + +void board_init(void) +{ +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} diff --git a/ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.h b/ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.h new file mode 100644 index 0000000000..561240c69a --- /dev/null +++ b/ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.h @@ -0,0 +1,53 @@ +#define MICROPY_HW_BOARD_NAME "Electronic Cats Bast Pro Mini M0" +#define MICROPY_HW_MCU_NAME "samd21e18" + +#define MICROPY_PORT_A (0) +#define MICROPY_PORT_B (0) +#define MICROPY_PORT_C (0) + +#define CIRCUITPY_INTERNAL_NVM_SIZE 0 + +#define DEFAULT_I2C_BUS_SCL (&pin_PA08) +#define DEFAULT_I2C_BUS_SDA (&pin_PA09) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA17) +#define DEFAULT_SPI_BUS_MOSI (&pin_PA16) +#define DEFAULT_SPI_BUS_MISO (&pin_PA19) + +#define DEFAULT_UART_BUS_RX (&pin_PA01) +#define DEFAULT_UART_BUS_TX (&pin_PA00) + +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) + +#define IGNORE_PIN_PA03 1 +#define IGNORE_PIN_PA12 1 +#define IGNORE_PIN_PA13 1 +#define IGNORE_PIN_PA20 1 +#define IGNORE_PIN_PA21 1 +// USB is always used. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 +#define IGNORE_PIN_PA30 1 +#define IGNORE_PIN_PA31 1 +#define IGNORE_PIN_PB01 1 +#define IGNORE_PIN_PB02 1 +#define IGNORE_PIN_PB03 1 +#define IGNORE_PIN_PB04 1 +#define IGNORE_PIN_PB05 1 +#define IGNORE_PIN_PB06 1 +#define IGNORE_PIN_PB07 1 +#define IGNORE_PIN_PB08 1 +#define IGNORE_PIN_PB09 1 +#define IGNORE_PIN_PB10 1 +#define IGNORE_PIN_PB11 1 +#define IGNORE_PIN_PB12 1 +#define IGNORE_PIN_PB13 1 +#define IGNORE_PIN_PB14 1 +#define IGNORE_PIN_PB15 1 +#define IGNORE_PIN_PB16 1 +#define IGNORE_PIN_PB17 1 +#define IGNORE_PIN_PB22 1 +#define IGNORE_PIN_PB23 1 +#define IGNORE_PIN_PB30 1 +#define IGNORE_PIN_PB31 1 +#define IGNORE_PIN_PB00 1 diff --git a/ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.mk b/ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.mk new file mode 100644 index 0000000000..38a6afd179 --- /dev/null +++ b/ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.mk @@ -0,0 +1,12 @@ +LD_FILE = boards/samd21x18-bootloader.ld +USB_VID = 0xBAB3 +USB_PID = 0x1209 +USB_PRODUCT = "Bast Pro Mini M0" +USB_MANUFACTURER = "Electronic Cats" + +INTERNAL_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = NONE +CIRCUITPY_SMALL_BUILD = 1 + +CHIP_VARIANT = SAMD21E18A +CHIP_FAMILY = samd21 diff --git a/ports/atmel-samd/boards/bast_pro_mini_m0/pins.c b/ports/atmel-samd/boards/bast_pro_mini_m0/pins.c new file mode 100644 index 0000000000..3ed940e362 --- /dev/null +++ b/ports/atmel-samd/boards/bast_pro_mini_m0/pins.c @@ -0,0 +1,36 @@ +#include "shared-bindings/board/__init__.h" + +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA04) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA05) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA10) }, + { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA08) }, + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA00) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA01) }, + { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA01) }, + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA00) }, + { MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA14) }, + { MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA23) }, + { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA22) }, + { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA15) }, + { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA27) }, + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA28) }, + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) }, + { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) }, + { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) }, + { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) }, + { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) }, + { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA11) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA19) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/atmel-samd/boards/catwan_usbstick/mpconfigboard.h b/ports/atmel-samd/boards/catwan_usbstick/mpconfigboard.h index 341dcc27e6..7a32bf023f 100644 --- a/ports/atmel-samd/boards/catwan_usbstick/mpconfigboard.h +++ b/ports/atmel-samd/boards/catwan_usbstick/mpconfigboard.h @@ -7,13 +7,13 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 #define DEFAULT_SPI_BUS_SCK (&pin_PA19) #define DEFAULT_SPI_BUS_MOSI (&pin_PA18) #define DEFAULT_SPI_BUS_MISO (&pin_PA22) -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define IGNORE_PIN_PA00 1 #define IGNORE_PIN_PA01 1 diff --git a/ports/atmel-samd/boards/catwan_usbstick/pins.c b/ports/atmel-samd/boards/catwan_usbstick/pins.c index 87ee84c0be..346bd9c10c 100644 --- a/ports/atmel-samd/boards/catwan_usbstick/pins.c +++ b/ports/atmel-samd/boards/catwan_usbstick/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA30) }, { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA31) }, diff --git a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk index 868ca9443d..652d201379 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk @@ -25,5 +25,9 @@ FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Thermistor -#Adding per @danh to reduce memory usage and get the latest changes in +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 35 +else CFLAGS_INLINE_LIMIT = 55 +endif diff --git a/ports/atmel-samd/boards/circuitplayground_express/pins.c b/ports/atmel-samd/boards/circuitplayground_express/pins.c index 70743366ed..6fc46bd216 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/pins.c +++ b/ports/atmel-samd/boards/circuitplayground_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA02) }, diff --git a/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.mk b/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.mk index 1dbd1a7393..bdcb4d350d 100644 --- a/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.mk +++ b/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.mk @@ -18,7 +18,12 @@ CIRCUITPY_I2CSLAVE = 0 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 35 +else CFLAGS_INLINE_LIMIT = 55 +endif # Include these Python libraries in firmware. FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice diff --git a/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c b/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c index 70743366ed..6fc46bd216 100644 --- a/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c +++ b/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA02) }, diff --git a/ports/atmel-samd/boards/cp32-m4/mpconfigboard.h b/ports/atmel-samd/boards/cp32-m4/mpconfigboard.h index 5587d165ab..9e329b3ed9 100644 --- a/ports/atmel-samd/boards/cp32-m4/mpconfigboard.h +++ b/ports/atmel-samd/boards/cp32-m4/mpconfigboard.h @@ -1,13 +1,13 @@ #define MICROPY_HW_BOARD_NAME "CP32-M4" -#define MICROPY_HW_MCU_NAME "samd51g19" +#define MICROPY_HW_MCU_NAME "samd51j20" -#define MICROPY_HW_APA102_MOSI (&pin_PA17) -#define MICROPY_HW_APA102_SCK (&pin_PA16) +#define MICROPY_HW_APA102_MOSI (&pin_PA12) +#define MICROPY_HW_APA102_SCK (&pin_PA13) #define CIRCUITPY_MCU_FAMILY samd51 -#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11| PORT_PA16| PORT_PA17) +#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11| PORT_PA12| PORT_PA13) #define MICROPY_PORT_B ( PORT_PB10 | PORT_PB11) #define MICROPY_PORT_C (0) #define MICROPY_PORT_D (0) @@ -27,5 +27,5 @@ #define DEFAULT_SPI_BUS_MOSI (&pin_PA23) #define DEFAULT_SPI_BUS_MISO (&pin_PA21) -#define DEFAULT_UART_BUS_RX (&pin_PA12) -#define DEFAULT_UART_BUS_TX (&pin_PA13) +#define DEFAULT_UART_BUS_RX (&pin_PB17) +#define DEFAULT_UART_BUS_TX (&pin_PB16) diff --git a/ports/atmel-samd/boards/cp32-m4/mpconfigboard.mk b/ports/atmel-samd/boards/cp32-m4/mpconfigboard.mk index 0fba81ac08..0444a37b9b 100644 --- a/ports/atmel-samd/boards/cp32-m4/mpconfigboard.mk +++ b/ports/atmel-samd/boards/cp32-m4/mpconfigboard.mk @@ -1,4 +1,4 @@ -LD_FILE = boards/samd51x19-bootloader-external-flash.ld +LD_FILE = boards/samd51x20-bootloader-external-flash.ld USB_VID = 0x239A USB_PID = 0x8021 USB_PRODUCT = "CP32-M4" @@ -13,5 +13,5 @@ CIRCUITPY_AUDIOBUSIO = 0 # No touch on SAMD51 yet CIRCUITPY_TOUCHIO = 0 -CHIP_VARIANT = SAMD51G19A +CHIP_VARIANT = SAMD51J20A CHIP_FAMILY = samd51 diff --git a/ports/atmel-samd/boards/cp32-m4/pins.c b/ports/atmel-samd/boards/cp32-m4/pins.c index 9da67dfb44..1946c9d3ab 100644 --- a/ports/atmel-samd/boards/cp32-m4/pins.c +++ b/ports/atmel-samd/boards/cp32-m4/pins.c @@ -1,38 +1,48 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER_P), MP_ROM_PTR(&pin_PA02) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB08) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SW3_4), MP_ROM_PTR(&pin_PB09) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SW1_2), MP_ROM_PTR(&pin_PA04) }, { MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER_N), MP_ROM_PTR(&pin_PA05) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_STATUS_LED), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BACKLIGHT_PWM), MP_ROM_PTR(&pin_PB09) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SW9), MP_ROM_PTR(&pin_PA06) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SW7), MP_ROM_PTR(&pin_PA07) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_BACKLIGHT_PWM), MP_ROM_PTR(&pin_PA12) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_HDR3), MP_ROM_PTR(&pin_PA13) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SW5), MP_ROM_PTR(&pin_PA14) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_HDR4), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW1_2), MP_ROM_PTR(&pin_PA06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW3_4), MP_ROM_PTR(&pin_PB08) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW5), MP_ROM_PTR(&pin_PB12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW7), MP_ROM_PTR(&pin_PB06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW8), MP_ROM_PTR(&pin_PB03) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW9), MP_ROM_PTR(&pin_PB05) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SW10), MP_ROM_PTR(&pin_PB04) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PA16) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PA17) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_STATUS_LED), MP_ROM_PTR(&pin_PA18) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SW6), MP_ROM_PTR(&pin_PA19) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_CS0), MP_ROM_PTR(&pin_PA20) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_MISO), MP_ROM_PTR(&pin_PA21) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_SCK), MP_ROM_PTR(&pin_PA22) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_MOSI), MP_ROM_PTR(&pin_PA23) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_HDR3), MP_ROM_PTR(&pin_PB07) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_HDR4), MP_ROM_PTR(&pin_PA20) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_HDR5), MP_ROM_PTR(&pin_PA22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_SW6), MP_ROM_PTR(&pin_PA21) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SD0), MP_ROM_PTR(&pin_PA16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SD1), MP_ROM_PTR(&pin_PA18) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SD2), MP_ROM_PTR(&pin_PB13) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SD3), MP_ROM_PTR(&pin_PB14) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_CMD), MP_ROM_PTR(&pin_PB15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_CLK), MP_ROM_PTR(&pin_PA14) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB17) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_SCK), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_MOSI), MP_ROM_PTR(&pin_PB23) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_MISO), MP_ROM_PTR(&pin_PB22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_CS0), MP_ROM_PTR(&pin_PA19) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_CS1), MP_ROM_PTR(&pin_PA27) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LCD_DC), MP_ROM_PTR(&pin_PA23) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PA12) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_VSPI_CS1), MP_ROM_PTR(&pin_PB22) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_EXT_HDR5), MP_ROM_PTR(&pin_PB23) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_LCD_DC), MP_ROM_PTR(&pin_PA27) }, - { MP_ROM_QSTR(MP_QSTR_SW8), MP_ROM_PTR(&pin_PB02) }, - { MP_ROM_QSTR(MP_QSTR_SW10), MP_ROM_PTR(&pin_PB03) }, { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, diff --git a/ports/atmel-samd/boards/datalore_ip_m4/pins.c b/ports/atmel-samd/boards/datalore_ip_m4/pins.c index 63ae319a2b..4eb26dd21b 100644 --- a/ports/atmel-samd/boards/datalore_ip_m4/pins.c +++ b/ports/atmel-samd/boards/datalore_ip_m4/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. diff --git a/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h index 787a3ee55a..eb1b905851 100644 --- a/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.h @@ -8,9 +8,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA22) #define DEFAULT_I2C_BUS_SDA (&pin_PA23) diff --git a/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.mk index 0b99955833..26e3b7d4d0 100644 --- a/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_adalogger/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/feather_m0_adalogger/pins.c b/ports/atmel-samd/boards/feather_m0_adalogger/pins.c index d99e62c955..63d134952b 100644 --- a/ports/atmel-samd/boards/feather_m0_adalogger/pins.c +++ b/ports/atmel-samd/boards/feather_m0_adalogger/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h index 2a21b8f02b..a16cee0b4c 100644 --- a/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.h @@ -8,9 +8,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) diff --git a/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.mk index a469dcf1dc..102cb656f2 100644 --- a/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_basic/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/feather_m0_basic/pins.c b/ports/atmel-samd/boards/feather_m0_basic/pins.c index f9b6db63be..f15ec2e9d6 100644 --- a/ports/atmel-samd/boards/feather_m0_basic/pins.c +++ b/ports/atmel-samd/boards/feather_m0_basic/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk index 03a89f5f5d..a6190267d3 100644 --- a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk @@ -12,4 +12,7 @@ LONGINT_IMPL = MPZ CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 -CIRCUITPY_FREQUENCYIO = 0 +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 60 +endif diff --git a/ports/atmel-samd/boards/feather_m0_express/pins.c b/ports/atmel-samd/boards/feather_m0_express/pins.c index 1eaa98a586..3c4effbe3b 100644 --- a/ports/atmel-samd/boards/feather_m0_express/pins.c +++ b/ports/atmel-samd/boards/feather_m0_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h index abbf0b08c9..77146889e5 100644 --- a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.h @@ -32,3 +32,11 @@ #define DEFAULT_UART_BUS_RX (&pin_PA11) #define DEFAULT_UART_BUS_TX (&pin_PA10) + +// USB is always used internally so skip the pin objects for it. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 + +// Not connected +#define IGNORE_PIN_PB22 1 +#define IGNORE_PIN_PB23 1 diff --git a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk index fa39de33fa..2c1d9c7178 100644 --- a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk @@ -10,6 +10,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C" LONGINT_IMPL = MPZ # Make space for frozen libs +CIRCUITPY_BITBANGIO = 0 CIRCUITPY_DISPLAYIO = 0 CIRCUITPY_FREQUENCYIO = 0 CIRCUITPY_I2CSLAVE = 0 diff --git a/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c b/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c index 1eaa98a586..3c4effbe3b 100644 --- a/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c +++ b/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h index a0f79ed72a..19a5147587 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.h @@ -8,9 +8,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) diff --git a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk index 16696297db..ce3f8668c7 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/feather_m0_rfm69/pins.c b/ports/atmel-samd/boards/feather_m0_rfm69/pins.c index ba59cb69b6..178f945ad4 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm69/pins.c +++ b/ports/atmel-samd/boards/feather_m0_rfm69/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h index 85c24bfd04..d3db098e54 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.h @@ -8,9 +8,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) diff --git a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk index 39fdc591dc..282977338c 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c b/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c index 29a01d4056..977cb9fdfe 100644 --- a/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c +++ b/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m0_supersized/pins.c b/ports/atmel-samd/boards/feather_m0_supersized/pins.c index 1eaa98a586..3c4effbe3b 100644 --- a/ports/atmel-samd/boards/feather_m0_supersized/pins.c +++ b/ports/atmel-samd/boards/feather_m0_supersized/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/feather_m4_express/pins.c b/ports/atmel-samd/boards/feather_m4_express/pins.c index cec9fe37f1..d9496ecfc7 100644 --- a/ports/atmel-samd/boards/feather_m4_express/pins.c +++ b/ports/atmel-samd/boards/feather_m4_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) }, diff --git a/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c b/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c index 211596f786..7133978784 100755 --- a/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c +++ b/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB03) }, diff --git a/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h b/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h index 59e0b3c619..bc60ba49ba 100644 --- a/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/gemma_m0/mpconfigboard.h @@ -12,7 +12,7 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 #define DEFAULT_I2C_BUS_SCL (&pin_PA05) #define DEFAULT_I2C_BUS_SDA (&pin_PA04) @@ -20,7 +20,7 @@ #define DEFAULT_UART_BUS_RX (&pin_PA05) #define DEFAULT_UART_BUS_TX (&pin_PA04) -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define IGNORE_PIN_PA03 1 #define IGNORE_PIN_PA06 1 diff --git a/ports/atmel-samd/boards/gemma_m0/mpconfigboard.mk b/ports/atmel-samd/boards/gemma_m0/mpconfigboard.mk index d44f2feb93..9f4a9fe835 100644 --- a/ports/atmel-samd/boards/gemma_m0/mpconfigboard.mk +++ b/ports/atmel-samd/boards/gemma_m0/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21E18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/gemma_m0/pins.c b/ports/atmel-samd/boards/gemma_m0/pins.c index b24b458388..9aecd5d84e 100644 --- a/ports/atmel-samd/boards/gemma_m0/pins.c +++ b/ports/atmel-samd/boards/gemma_m0/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) }, // pad 1 { MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA05) }, diff --git a/ports/atmel-samd/boards/grandcentral_m4_express/pins.c b/ports/atmel-samd/boards/grandcentral_m4_express/pins.c index 26d0e71a0e..6b09c62bf3 100644 --- a/ports/atmel-samd/boards/grandcentral_m4_express/pins.c +++ b/ports/atmel-samd/boards/grandcentral_m4_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. diff --git a/ports/atmel-samd/boards/hallowing_m0_express/board.c b/ports/atmel-samd/boards/hallowing_m0_express/board.c index 23b1194138..94775cd94d 100644 --- a/ports/atmel-samd/boards/hallowing_m0_express/board.c +++ b/ports/atmel-samd/boards/hallowing_m0_express/board.c @@ -26,9 +26,11 @@ #include "boards/board.h" +#include "shared-bindings/board/__init__.h" #include "shared-bindings/displayio/FourWire.h" #include "shared-module/displayio/__init__.h" #include "shared-module/displayio/mipi_constants.h" +#include "shared-bindings/busio/SPI.h" #include "tick.h" @@ -71,8 +73,10 @@ uint8_t display_init_sequence[] = { void board_init(void) { displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus; bus->base.type = &displayio_fourwire_type; + busio_spi_obj_t *spi = common_hal_board_create_spi(); + common_hal_busio_spi_configure(spi, 12000000, 0, 0, 8); common_hal_displayio_fourwire_construct(bus, - board_spi(), + spi, &pin_PA28, // Command or data &pin_PA01, // Chip select &pin_PA27); // Reset @@ -93,7 +97,9 @@ void board_init(void) { 0x37, // set vertical scroll command display_init_sequence, sizeof(display_init_sequence), - &pin_PA00); + &pin_PA00, + false, // single_byte_bounds + false); // data_as_commands common_hal_displayio_display_set_auto_brightness(display, true); } diff --git a/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk index 36cb67ea57..1df82ff442 100644 --- a/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk @@ -9,6 +9,13 @@ EXTERNAL_FLASH_DEVICE_COUNT = 2 EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C" LONGINT_IMPL = MPZ +# To keep the build small +CIRCUITPY_I2CSLAVE = 0 +CIRCUITPY_FREQUENCYIO = 0 +CIRCUITPY_AUDIOBUSIO = 0 + +CFLAGS_INLINE_LIMIT = 50 + CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 @@ -16,7 +23,3 @@ CHIP_FAMILY = samd21 FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel - -# To keep the build small -CIRCUITPY_I2CSLAVE = 0 -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/hallowing_m0_express/pins.c b/ports/atmel-samd/boards/hallowing_m0_express/pins.c index 3db1b17524..3e670a676f 100644 --- a/ports/atmel-samd/boards/hallowing_m0_express/pins.c +++ b/ports/atmel-samd/boards/hallowing_m0_express/pins.c @@ -1,7 +1,6 @@ #include "shared-bindings/board/__init__.h" #include "boards/board.h" -#include "supervisor/shared/board_busses.h" #include "shared-module/displayio/__init__.h" STATIC const mp_rom_map_elem_t board_global_dict_table[] = { diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h index 530e7e4c36..79d0cd269e 100644 --- a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h @@ -36,3 +36,7 @@ // USB is always used internally so skip the pin objects for it. #define IGNORE_PIN_PA24 1 #define IGNORE_PIN_PA25 1 + +// Not connected +#define IGNORE_PIN_PA13 1 +#define IGNORE_PIN_PA28 1 diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk index 8fcf5208f0..4f3e1ca667 100644 --- a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk @@ -11,3 +11,10 @@ LONGINT_IMPL = MPZ CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 + +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 45 +else +CFLAGS_INLINE_LIMIT = 70 +endif diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c b/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c index 912fba4edc..1b0e5d09eb 100644 --- a/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c +++ b/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) }, { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) }, diff --git a/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c b/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c index ed91c88ee7..8cd2f44f89 100644 --- a/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c +++ b/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. diff --git a/ports/atmel-samd/boards/kicksat-sprite/board.c b/ports/atmel-samd/boards/kicksat-sprite/board.c new file mode 100644 index 0000000000..fc53f39675 --- /dev/null +++ b/ports/atmel-samd/boards/kicksat-sprite/board.c @@ -0,0 +1,41 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include + +#include "boards/board.h" +#include "py/mpconfig.h" + +void board_init(void) { +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} \ No newline at end of file diff --git a/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.h b/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.h new file mode 100644 index 0000000000..194542b055 --- /dev/null +++ b/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.h @@ -0,0 +1,30 @@ + +#define MICROPY_HW_BOARD_NAME "Sprite_v2b" +#define MICROPY_HW_MCU_NAME "samd51G19" +#define CIRCUITPY_MCU_FAMILY samd51 + +#define MICROPY_HW_LED_STATUS (&pin_PB03) + +#define MICROPY_PORT_A (PORT_PA24 | PORT_PA25) +#define MICROPY_PORT_B (0) +#define MICROPY_PORT_C (0) +#define MICROPY_PORT_D (0) + +#define CALIBRATE_CRYSTALLESS 1 + +#define CIRCUITPY_INTERNAL_NVM_SIZE 0 + +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - 0x010000) + +#define DEFAULT_I2C_BUS_SCL (&pin_PA17) +#define DEFAULT_I2C_BUS_SDA (&pin_PA16) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA05) +#define DEFAULT_SPI_BUS_MOSI (&pin_PA07) +#define DEFAULT_SPI_BUS_MISO (&pin_PA04) + +#define DEFAULT_UART_BUS_TX (&pin_PB09) +#define DEFAULT_UART_BUS_RX (&pin_PB08) + +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 diff --git a/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk b/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk new file mode 100644 index 0000000000..e97a701055 --- /dev/null +++ b/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk @@ -0,0 +1,17 @@ +LD_FILE = boards/samd51x19-bootloader.ld +USB_VID = 0x04D8 +USB_PID = 0xED94 +USB_PRODUCT = "kicksat-sprite" +USB_MANUFACTURER = "maholli" + +QSPI_FLASH_FILESYSTEM = 0 +INTERNAL_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = MPZ + +# No touch on SAMD51 yet +CIRCUITPY_TOUCHIO = 0 +CIRCUITPY_AUDIOBUSIO = 0 +CIRCUITPY_DISPLAYIO = 0 + +CHIP_VARIANT = SAMD51G19A +CHIP_FAMILY = samd51 \ No newline at end of file diff --git a/ports/atmel-samd/boards/kicksat-sprite/pins.c b/ports/atmel-samd/boards/kicksat-sprite/pins.c new file mode 100644 index 0000000000..03af22ff26 --- /dev/null +++ b/ports/atmel-samd/boards/kicksat-sprite/pins.c @@ -0,0 +1,38 @@ +#include "shared-bindings/board/__init__.h" +#include "boards/board.h" + +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA05) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA07) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA04) }, + + { MP_ROM_QSTR(MP_QSTR_radioCS), MP_ROM_PTR(&pin_PA00) }, + { MP_ROM_QSTR(MP_QSTR_WAKE), MP_ROM_PTR(&pin_PA01) }, + { MP_ROM_QSTR(MP_QSTR_SHDWN), MP_ROM_PTR(&pin_PB10) }, + { MP_ROM_QSTR(MP_QSTR_PWDWN), MP_ROM_PTR(&pin_PB11) }, + { MP_ROM_QSTR(MP_QSTR_TST), MP_ROM_PTR(&pin_PA11) }, + { MP_ROM_QSTR(MP_QSTR_FSYNC), MP_ROM_PTR(&pin_PA13) }, + { MP_ROM_QSTR(MP_QSTR_VCLK), MP_ROM_PTR(&pin_PA14) }, + { MP_ROM_QSTR(MP_QSTR_FSYNC), MP_ROM_PTR(&pin_PA15) }, + { MP_ROM_QSTR(MP_QSTR_MD), MP_ROM_PTR(&pin_PA18) }, + { MP_ROM_QSTR(MP_QSTR_MC), MP_ROM_PTR(&pin_PA19) }, + + { MP_ROM_QSTR(MP_QSTR_PA08), MP_ROM_PTR(&pin_PA08) }, + { MP_ROM_QSTR(MP_QSTR_PA10), MP_ROM_PTR(&pin_PA10) }, + { MP_ROM_QSTR(MP_QSTR_PA09), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_PA06), MP_ROM_PTR(&pin_PA06) }, + { MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_PA02) }, + + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB09) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB08) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA17) }, + + + { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PB03) }, + + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); \ No newline at end of file diff --git a/ports/atmel-samd/boards/meowmeow/mpconfigboard.h b/ports/atmel-samd/boards/meowmeow/mpconfigboard.h index fe741a0f71..1304b6dfbf 100644 --- a/ports/atmel-samd/boards/meowmeow/mpconfigboard.h +++ b/ports/atmel-samd/boards/meowmeow/mpconfigboard.h @@ -10,9 +10,9 @@ // If you change this, then make sure to update the linker scripts as well to // make sure you don't overwrite code. -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define CALIBRATE_CRYSTALLESS 1 diff --git a/ports/atmel-samd/boards/meowmeow/mpconfigboard.mk b/ports/atmel-samd/boards/meowmeow/mpconfigboard.mk index 3547235dd1..a620f2919c 100644 --- a/ports/atmel-samd/boards/meowmeow/mpconfigboard.mk +++ b/ports/atmel-samd/boards/meowmeow/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/meowmeow/pins.c b/ports/atmel-samd/boards/meowmeow/pins.c index 089baad32e..41d122d874 100644 --- a/ports/atmel-samd/boards/meowmeow/pins.c +++ b/ports/atmel-samd/boards/meowmeow/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA03) }, diff --git a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk index 5104b601b8..ce9c4baba2 100644 --- a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk @@ -13,4 +13,7 @@ LONGINT_IMPL = MPZ CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 -CIRCUITPY_FREQUENCYIO = 0 +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 50 +endif diff --git a/ports/atmel-samd/boards/metro_m0_express/pins.c b/ports/atmel-samd/boards/metro_m0_express/pins.c index 0707a35819..c11fac5ce6 100644 --- a/ports/atmel-samd/boards/metro_m0_express/pins.c +++ b/ports/atmel-samd/boards/metro_m0_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/metro_m4_airlift_lite/board.c b/ports/atmel-samd/boards/metro_m4_airlift_lite/board.c new file mode 100644 index 0000000000..0f60736a24 --- /dev/null +++ b/ports/atmel-samd/boards/metro_m4_airlift_lite/board.c @@ -0,0 +1,39 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" +#include "mpconfigboard.h" +#include "hal/include/hal_gpio.h" + +void board_init(void) { +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} diff --git a/ports/atmel-samd/boards/metro_m4_airlift_lite/mpconfigboard.h b/ports/atmel-samd/boards/metro_m4_airlift_lite/mpconfigboard.h new file mode 100644 index 0000000000..e89b0322a1 --- /dev/null +++ b/ports/atmel-samd/boards/metro_m4_airlift_lite/mpconfigboard.h @@ -0,0 +1,43 @@ +#define MICROPY_HW_BOARD_NAME "Adafruit Metro M4 Airlift Lite" +#define MICROPY_HW_MCU_NAME "samd51j19" + +#define CIRCUITPY_MCU_FAMILY samd51 + +#define MICROPY_HW_LED_TX (&pin_PB07) +#define MICROPY_HW_LED_RX (&pin_PB06) + +#define MICROPY_HW_LED_STATUS (&pin_PA16) + +#define MICROPY_HW_NEOPIXEL (&pin_PB22) + +// These are pins not to reset. +// QSPI Data pins +#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11) +// QSPI CS, QSPI SCK and NeoPixel pin +#define MICROPY_PORT_B (PORT_PB10 | PORT_PB11 | PORT_PB22) +#define MICROPY_PORT_C (0) +#define MICROPY_PORT_D (0) + +#define AUTORESET_DELAY_MS 500 + +// If you change this, then make sure to update the linker scripts as well to +// make sure you don't overwrite code +#define CIRCUITPY_INTERNAL_NVM_SIZE 8192 + +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) + +#define BOARD_HAS_CRYSTAL 1 + +#define DEFAULT_I2C_BUS_SCL (&pin_PB03) +#define DEFAULT_I2C_BUS_SDA (&pin_PB02) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA13) +#define DEFAULT_SPI_BUS_MOSI (&pin_PA12) +#define DEFAULT_SPI_BUS_MISO (&pin_PA14) + +#define DEFAULT_UART_BUS_RX (&pin_PA23) +#define DEFAULT_UART_BUS_TX (&pin_PA22) + +// USB is always used internally so skip the pin objects for it. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 diff --git a/ports/atmel-samd/boards/metro_m4_airlift_lite/mpconfigboard.mk b/ports/atmel-samd/boards/metro_m4_airlift_lite/mpconfigboard.mk new file mode 100644 index 0000000000..654a84eb8b --- /dev/null +++ b/ports/atmel-samd/boards/metro_m4_airlift_lite/mpconfigboard.mk @@ -0,0 +1,20 @@ +LD_FILE = boards/samd51x19-bootloader-external-flash.ld +USB_VID = 0x239A +USB_PID = 0x8038 +USB_PRODUCT = "Metro M4 Airlift Lite" +USB_MANUFACTURER = "Adafruit Industries LLC" + +QSPI_FLASH_FILESYSTEM = 1 +EXTERNAL_FLASH_DEVICE_COUNT = 3 +EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C" + +LONGINT_IMPL = MPZ + +# No touch on SAMD51 yet +CIRCUITPY_TOUCHIO = 0 + +CHIP_VARIANT = SAMD51J19A +CHIP_FAMILY = samd51 + +CIRCUITPY_NETWORK = 1 +MICROPY_PY_WIZNET5K = 5500 diff --git a/ports/atmel-samd/boards/metro_m4_airlift_lite/pins.c b/ports/atmel-samd/boards/metro_m4_airlift_lite/pins.c new file mode 100644 index 0000000000..4e90870c49 --- /dev/null +++ b/ports/atmel-samd/boards/metro_m4_airlift_lite/pins.c @@ -0,0 +1,55 @@ +#include "shared-bindings/board/__init__.h" + +// This mapping only includes functional names because pins broken +// out on connectors are labeled with their MCU name available from +// microcontroller.pin. +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB00) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB08) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB09) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA23) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA23) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PB13) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PB14) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PB15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA21) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA20) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA19) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D13),MP_ROM_PTR(&pin_PA16) }, + + // ESP control + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_CS), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_GPIO0), MP_ROM_PTR(&pin_PB01) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_BUSY), MP_ROM_PTR(&pin_PB04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RESET), MP_ROM_PTR(&pin_PB05) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RTS), MP_ROM_PTR(&pin_PB23) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_PA04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_PA07) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SDA),MP_ROM_PTR(&pin_PB02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SCL),MP_ROM_PTR(&pin_PB03) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL),MP_ROM_PTR(&pin_PB22) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SCK),MP_ROM_PTR(&pin_PA13) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MOSI),MP_ROM_PTR(&pin_PA12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MISO),MP_ROM_PTR(&pin_PA14) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_LED_RX),MP_ROM_PTR(&pin_PB06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LED_TX),MP_ROM_PTR(&pin_PB07) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/atmel-samd/boards/metro_m4_express/pins.c b/ports/atmel-samd/boards/metro_m4_express/pins.c index 63ae319a2b..4eb26dd21b 100644 --- a/ports/atmel-samd/boards/metro_m4_express/pins.c +++ b/ports/atmel-samd/boards/metro_m4_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. diff --git a/ports/atmel-samd/boards/mini_sam_m4/pins.c b/ports/atmel-samd/boards/mini_sam_m4/pins.c index f78fe1bc83..b1d8d5325c 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/pins.c +++ b/ports/atmel-samd/boards/mini_sam_m4/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. diff --git a/ports/atmel-samd/boards/pewpew10/mpconfigboard.h b/ports/atmel-samd/boards/pewpew10/mpconfigboard.h index 7dd4a54411..445ccc4355 100644 --- a/ports/atmel-samd/boards/pewpew10/mpconfigboard.h +++ b/ports/atmel-samd/boards/pewpew10/mpconfigboard.h @@ -5,9 +5,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define IGNORE_PIN_PB00 1 diff --git a/ports/atmel-samd/boards/pewpew10/mpconfigboard.mk b/ports/atmel-samd/boards/pewpew10/mpconfigboard.mk index 92f8cff527..b36a213689 100644 --- a/ports/atmel-samd/boards/pewpew10/mpconfigboard.mk +++ b/ports/atmel-samd/boards/pewpew10/mpconfigboard.mk @@ -16,8 +16,13 @@ CIRCUITPY_PEW = 1 CIRCUITPY_ANALOGIO = 1 CIRCUITPY_MATH = 1 CIRCUITPY_NEOPIXEL_WRITE = 1 +CIRCUITPY_ROTARYIO = 0 CIRCUITPY_RTC = 0 CIRCUITPY_SAMD = 0 CIRCUITPY_USB_MIDI = 0 CIRCUITPY_SMALL_BUILD = 1 -CIRCUITPY_FREQUENCYIO = 0 + +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 40 +endif diff --git a/ports/atmel-samd/boards/pewpew10/pins.c b/ports/atmel-samd/boards/pewpew10/pins.c index e2552dc325..9e5b9d98ec 100644 --- a/ports/atmel-samd/boards/pewpew10/pins.c +++ b/ports/atmel-samd/boards/pewpew10/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { // Pins for internal use. { MP_ROM_QSTR(MP_QSTR__R1), MP_ROM_PTR(&pin_PA05) }, diff --git a/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.h b/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.h index a004336bf4..288208f65a 100644 --- a/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.h @@ -10,9 +10,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define IGNORE_PIN_PA02 1 #define IGNORE_PIN_PA03 1 diff --git a/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.mk b/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.mk index 418f70d92a..60638fd19b 100644 --- a/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.mk +++ b/ports/atmel-samd/boards/pirkey_m0/mpconfigboard.mk @@ -13,16 +13,17 @@ LONGINT_IMPL = NONE CIRCUITPY_ANALOGIO = 0 CIRCUITPY_MATH = 0 CIRCUITPY_NEOPIXEL_WRITE = 0 +CIRCUITPY_ROTARYIO = 0 CIRCUITPY_RTC = 0 CIRCUITPY_SAMD = 0 -CIRCUITPY_USB_MIDI = 0 +CIRCUITPY_USB_MIDI = 1 +CIRCUITPY_TOUCHIO = 0 CIRCUITPY_SMALL_BUILD = 1 -CIRCUITPY_FREQUENCYIO = 0 CHIP_VARIANT = SAMD21E18A CHIP_FAMILY = samd21 -CFLAGS_INLINE_LIMIT = 45 +CFLAGS_INLINE_LIMIT = 35 # Include these Python libraries in firmware. FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar diff --git a/ports/atmel-samd/boards/pirkey_m0/pins.c b/ports/atmel-samd/boards/pirkey_m0/pins.c index a6dbcefe3e..e1f43c83cc 100644 --- a/ports/atmel-samd/boards/pirkey_m0/pins.c +++ b/ports/atmel-samd/boards/pirkey_m0/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_REMOTEIN), MP_ROM_PTR(&pin_PA28) }, diff --git a/ports/atmel-samd/boards/pybadge/board.c b/ports/atmel-samd/boards/pybadge/board.c index 0881d8f457..9d16ae12f2 100644 --- a/ports/atmel-samd/boards/pybadge/board.c +++ b/ports/atmel-samd/boards/pybadge/board.c @@ -69,16 +69,16 @@ uint8_t display_init_sequence[] = { 0x29, 0 | DELAY, 100, // _DISPON }; -STATIC busio_spi_obj_t display_spi_obj; - void board_init(void) { - common_hal_busio_spi_construct(&display_spi_obj, &pin_PB13, &pin_PB12, NULL); - common_hal_busio_spi_never_reset(&display_spi_obj); + busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus; + common_hal_busio_spi_construct(spi, &pin_PB13, &pin_PB15, NULL); + common_hal_busio_spi_never_reset(spi); + common_hal_busio_spi_configure(spi, 24000000, 0, 0, 8); displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus; bus->base.type = &displayio_fourwire_type; common_hal_displayio_fourwire_construct(bus, - &display_spi_obj, + spi, &pin_PB05, // TFT_DC Command or data &pin_PB07, // TFT_CS Chip select &pin_PA01); // TFT_RST Reset @@ -99,7 +99,9 @@ void board_init(void) { 0x37, // set vertical scroll command display_init_sequence, sizeof(display_init_sequence), - &pin_PA00); + &pin_PA00, + false, // single_byte_bounds + false); // data_as_commands common_hal_displayio_display_set_auto_brightness(display, true); } diff --git a/ports/atmel-samd/boards/pybadge/mpconfigboard.mk b/ports/atmel-samd/boards/pybadge/mpconfigboard.mk index 8ab7598656..837e2e5141 100644 --- a/ports/atmel-samd/boards/pybadge/mpconfigboard.mk +++ b/ports/atmel-samd/boards/pybadge/mpconfigboard.mk @@ -6,7 +6,7 @@ USB_MANUFACTURER = "Adafruit Industries LLC" QSPI_FLASH_FILESYSTEM = 1 EXTERNAL_FLASH_DEVICE_COUNT = 1 -EXTERNAL_FLASH_DEVICES = GD25Q64C +EXTERNAL_FLASH_DEVICES = GD25Q16C LONGINT_IMPL = MPZ # No I2S on SAMD51G @@ -16,3 +16,10 @@ CIRCUITPY_TOUCHIO = 0 CHIP_VARIANT = SAMD51J19A CHIP_FAMILY = samd51 + +CIRCUITPY_STAGE = 1 +CIRCUITPY_GAMEPAD = 1 +CIRCUITPY_DISPLAYIO = 1 +CIRCUITPY_AUDIOIO = 1 + +FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/pybadge diff --git a/ports/atmel-samd/boards/pybadge/pins.c b/ports/atmel-samd/boards/pybadge/pins.c index 41ab634c9e..2e7e6d4967 100644 --- a/ports/atmel-samd/boards/pybadge/pins.c +++ b/ports/atmel-samd/boards/pybadge/pins.c @@ -1,34 +1,62 @@ #include "shared-bindings/board/__init__.h" #include "boards/board.h" -#include "supervisor/shared/board_busses.h" #include "shared-module/displayio/__init__.h" STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB08) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB09) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA04) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB01) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB03) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB03) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA16) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA18) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB14) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA15) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA19) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA20) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA21) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA22) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA23) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA15) }, + // UART + { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB16) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_AVCC), MP_ROM_PTR(&pin_PA03) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_LEFT_DAC), MP_ROM_PTR(&pin_PA02) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_RIGHT_DAC), MP_ROM_PTR(&pin_PA05) }, + // I2C + { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) }, + // SPI { MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB23) }, + // Special named pins + { MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LIGHT), MP_ROM_PTR(&pin_PB04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_ACCELEROMETER_INTERRUPT), MP_ROM_PTR(&pin_PB14) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_PA02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER_ENABLE), MP_ROM_PTR(&pin_PA27) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_LATCH), MP_ROM_PTR(&pin_PB00) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_OUT), MP_ROM_PTR(&pin_PB30) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_CLOCK), MP_ROM_PTR(&pin_PB31) }, + + // TFT control pins { MP_OBJ_NEW_QSTR(MP_QSTR_TFT_LITE), MP_ROM_PTR(&pin_PA00) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_TFT_MOSI), MP_ROM_PTR(&pin_PA12) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_TFT_SCK), MP_ROM_PTR(&pin_PA13) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TFT_MOSI), MP_ROM_PTR(&pin_PB15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TFT_SCK), MP_ROM_PTR(&pin_PB13) }, { MP_OBJ_NEW_QSTR(MP_QSTR_TFT_RST), MP_ROM_PTR(&pin_PA01) }, { MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_PB07) }, { MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_PB05) }, diff --git a/ports/atmel-samd/boards/pyportal/board.c b/ports/atmel-samd/boards/pyportal/board.c index d2c328850b..222e111447 100644 --- a/ports/atmel-samd/boards/pyportal/board.c +++ b/ports/atmel-samd/boards/pyportal/board.c @@ -25,7 +25,6 @@ */ #include "boards/board.h" -#include "supervisor/shared/board_busses.h" #include "mpconfigboard.h" #include "hal/include/hal_gpio.h" @@ -90,7 +89,10 @@ void board_init(void) { 0x37, // Set vertical scroll command display_init_sequence, sizeof(display_init_sequence), - &pin_PB31); + &pin_PB31, + false, // single_byte_bounds + false); // data_as_commands + common_hal_displayio_display_set_auto_brightness(display, true); } diff --git a/ports/atmel-samd/boards/pyportal/pins.c b/ports/atmel-samd/boards/pyportal/pins.c index 4a41ee913e..14699a209d 100644 --- a/ports/atmel-samd/boards/pyportal/pins.c +++ b/ports/atmel-samd/boards/pyportal/pins.c @@ -2,7 +2,6 @@ #include "boards/board.h" #include "shared-module/displayio/__init__.h" -#include "supervisor/shared/board_busses.h" // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from diff --git a/ports/atmel-samd/boards/sam32/pins.c b/ports/atmel-samd/boards/sam32/pins.c index b2e0a3f2be..f32057d754 100644 --- a/ports/atmel-samd/boards/sam32/pins.c +++ b/ports/atmel-samd/boards/sam32/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB08) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB09) }, diff --git a/ports/atmel-samd/boards/samd21x18-bootloader.ld b/ports/atmel-samd/boards/samd21x18-bootloader.ld index 3eb97ee026..2ef09ba9af 100644 --- a/ports/atmel-samd/boards/samd21x18-bootloader.ld +++ b/ports/atmel-samd/boards/samd21x18-bootloader.ld @@ -5,8 +5,9 @@ /* Specify the memory areas */ MEMORY { - /* Leave 8KiB for the bootloader, and 64k for the flash file system. */ - FLASH (rx) : ORIGIN = 0x00000000 + 8K, LENGTH = 256K - 8K - 64K + /* Leave 8KiB for the bootloader, 64k for the flash file system, and 256b + for user config. */ + FLASH (rx) : ORIGIN = 0x00000000 + 8K, LENGTH = 256K - 8K - 64K - 256 RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K } diff --git a/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.h b/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.h index 6b470af2e5..80cacfa9b0 100755 --- a/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.h +++ b/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.h @@ -1,8 +1,6 @@ #define MICROPY_HW_BOARD_NAME "SparkFun LUMIDrive" #define MICROPY_HW_MCU_NAME "samd21g18" -//#define MICROPY_HW_NEOPIXEL (&pin_PA06) - // Clock rates are off: Salae reads 12MHz which is the limit even though we set it to the safer 8MHz. #define SPI_FLASH_BAUDRATE (8000000) @@ -30,10 +28,28 @@ #define DEFAULT_SPI_BUS_MOSI (&pin_PA18) #define DEFAULT_SPI_BUS_MISO (&pin_PA21) -//UART -#define DEFAULT_UART_BUS_RX (&pin_PA11) -#define DEFAULT_UART_BUS_TX (&pin_PA10) - // USB is always used internally so skip the pin objects for it. #define IGNORE_PIN_PA24 1 #define IGNORE_PIN_PA25 1 + +#define IGNORE_PIN_PA02 1 +#define IGNORE_PIN_PA03 1 +#define IGNORE_PIN_PA10 1 +#define IGNORE_PIN_PA11 1 +#define IGNORE_PIN_PA12 1 +#define IGNORE_PIN_PA15 1 +#define IGNORE_PIN_PA16 1 +#define IGNORE_PIN_PA21 1 +#define IGNORE_PIN_PA22 1 +#define IGNORE_PIN_PA23 1 +#define IGNORE_PIN_PA27 1 +#define IGNORE_PIN_PA28 1 + +#define IGNORE_PIN_PB02 1 +#define IGNORE_PIN_PB03 1 +#define IGNORE_PIN_PB08 1 +#define IGNORE_PIN_PB09 1 +#define IGNORE_PIN_PB10 1 +#define IGNORE_PIN_PB11 1 +#define IGNORE_PIN_PB22 1 +#define IGNORE_PIN_PB23 1 diff --git a/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.mk b/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.mk index bd8fa17e9d..4da42c02dc 100755 --- a/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.mk +++ b/ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.mk @@ -10,8 +10,10 @@ LONGINT_IMPL = MPZ CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 +CIRCUITPY_AUDIOIO = 0 +CIRCUITPY_AUDIOBUSIO = 0 + EXTERNAL_FLASH_DEVICE_COUNT = 1 EXTERNAL_FLASH_DEVICES = "W25Q32FV" FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar - diff --git a/ports/atmel-samd/boards/sparkfun_lumidrive/pins.c b/ports/atmel-samd/boards/sparkfun_lumidrive/pins.c index 232c89e380..52c0753d41 100755 --- a/ports/atmel-samd/boards/sparkfun_lumidrive/pins.c +++ b/ports/atmel-samd/boards/sparkfun_lumidrive/pins.c @@ -1,21 +1,15 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA19) }, // { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA18) }, // - { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) }, // - { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) }, - { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) }, - { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) }, { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) }, // - { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) }, // + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) }, // { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) }, { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) }, { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) }, // - { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/atmel-samd/boards/sparkfun_redboard_turbo/mpconfigboard.mk b/ports/atmel-samd/boards/sparkfun_redboard_turbo/mpconfigboard.mk index 63f61efe1c..9e45f8ad9a 100755 --- a/ports/atmel-samd/boards/sparkfun_redboard_turbo/mpconfigboard.mk +++ b/ports/atmel-samd/boards/sparkfun_redboard_turbo/mpconfigboard.mk @@ -12,3 +12,8 @@ CHIP_FAMILY = samd21 EXTERNAL_FLASH_DEVICE_COUNT = 1 EXTERNAL_FLASH_DEVICES = "W25Q32FV" + +# Tweak inlining depending on language. +ifeq ($(TRANSLATION), zh_Latn_pinyin) +CFLAGS_INLINE_LIMIT = 50 +endif diff --git a/ports/atmel-samd/boards/sparkfun_redboard_turbo/pins.c b/ports/atmel-samd/boards/sparkfun_redboard_turbo/pins.c index 223e20359e..485589fcaf 100755 --- a/ports/atmel-samd/boards/sparkfun_redboard_turbo/pins.c +++ b/ports/atmel-samd/boards/sparkfun_redboard_turbo/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, diff --git a/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.h b/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.h index 3112d3f2a3..a50c61cf2d 100644 --- a/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.h +++ b/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.h @@ -5,9 +5,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) diff --git a/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.mk b/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.mk index ec627b523f..c0238ce80e 100644 --- a/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.mk +++ b/ports/atmel-samd/boards/sparkfun_samd21_dev/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/sparkfun_samd21_dev/pins.c b/ports/atmel-samd/boards/sparkfun_samd21_dev/pins.c index 9eab132c3e..039100956e 100644 --- a/ports/atmel-samd/boards/sparkfun_samd21_dev/pins.c +++ b/ports/atmel-samd/boards/sparkfun_samd21_dev/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { // Analog pins diff --git a/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.h b/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.h index aec54ddfbd..6af7fa1918 100644 --- a/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.h +++ b/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.h @@ -5,9 +5,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) diff --git a/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.mk b/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.mk index 8d2f35a69d..462e3e2caf 100644 --- a/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.mk +++ b/ports/atmel-samd/boards/sparkfun_samd21_mini/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c b/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c index 42cd3736b8..a90b0b5a30 100644 --- a/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c +++ b/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { // Analog pins diff --git a/ports/atmel-samd/boards/trellis_m4_express/pins.c b/ports/atmel-samd/boards/trellis_m4_express/pins.c index a9f2043185..4a0fa3ca21 100644 --- a/ports/atmel-samd/boards/trellis_m4_express/pins.c +++ b/ports/atmel-samd/boards/trellis_m4_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - // This mapping only includes functional names because pins broken // out on connectors are labeled with their MCU name available from // microcontroller.pin. diff --git a/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h b/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h index cef35983ee..dd8bc03ccf 100644 --- a/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/trinket_m0/mpconfigboard.h @@ -11,9 +11,9 @@ #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE) #define IGNORE_PIN_PA03 1 #define IGNORE_PIN_PA04 1 diff --git a/ports/atmel-samd/boards/trinket_m0/mpconfigboard.mk b/ports/atmel-samd/boards/trinket_m0/mpconfigboard.mk index b3448cf49d..1c6f6db05d 100644 --- a/ports/atmel-samd/boards/trinket_m0/mpconfigboard.mk +++ b/ports/atmel-samd/boards/trinket_m0/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21E18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/trinket_m0/pins.c b/ports/atmel-samd/boards/trinket_m0/pins.c index b3637bd5bb..372601e628 100644 --- a/ports/atmel-samd/boards/trinket_m0/pins.c +++ b/ports/atmel-samd/boards/trinket_m0/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA08) }, { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA08) }, diff --git a/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.mk b/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.mk index 5975ad1bae..c9c196da7b 100644 --- a/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.mk +++ b/ports/atmel-samd/boards/trinket_m0_haxpress/mpconfigboard.mk @@ -11,5 +11,3 @@ LONGINT_IMPL = MPZ CHIP_VARIANT = SAMD21E18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c b/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c index b3637bd5bb..372601e628 100644 --- a/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c +++ b/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA08) }, { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA08) }, diff --git a/ports/atmel-samd/boards/uchip/mpconfigboard.mk b/ports/atmel-samd/boards/uchip/mpconfigboard.mk index 043bd3e8b9..b6710af6df 100644 --- a/ports/atmel-samd/boards/uchip/mpconfigboard.mk +++ b/ports/atmel-samd/boards/uchip/mpconfigboard.mk @@ -10,5 +10,3 @@ CIRCUITPY_SMALL_BUILD = 1 CHIP_VARIANT = SAMD21E18A CHIP_FAMILY = samd21 - -CIRCUITPY_FREQUENCYIO = 0 \ No newline at end of file diff --git a/ports/atmel-samd/boards/uchip/pins.c b/ports/atmel-samd/boards/uchip/pins.c index acb0a5ec38..856a220742 100644 --- a/ports/atmel-samd/boards/uchip/pins.c +++ b/ports/atmel-samd/boards/uchip/pins.c @@ -1,4 +1,4 @@ -#include "supervisor/shared/board_busses.h" +#include "shared-bindings/board/__init__.h" STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA08) }, diff --git a/ports/atmel-samd/boards/ugame10/board.c b/ports/atmel-samd/boards/ugame10/board.c index d7e856d611..a4f6bb175e 100644 --- a/ports/atmel-samd/boards/ugame10/board.c +++ b/ports/atmel-samd/boards/ugame10/board.c @@ -26,7 +26,80 @@ #include "boards/board.h" +#include "shared-bindings/board/__init__.h" +#include "shared-bindings/displayio/FourWire.h" +#include "shared-module/displayio/__init__.h" +#include "shared-module/displayio/mipi_constants.h" +#include "shared-bindings/busio/SPI.h" + +#include "tick.h" + +displayio_fourwire_obj_t board_display_obj; + +#define DELAY 0x80 + +uint8_t display_init_sequence[] = { + 0x01, 0 | DELAY, 150, // SWRESET + 0x11, 0 | DELAY, 255, // SLPOUT + 0xb1, 3, 0x01, 0x2C, 0x2D, // _FRMCTR1 + 0xb2, 3, 0x01, 0x2C, 0x2D, // + 0xb3, 6, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D, + 0xb4, 1, 0x07, // _INVCTR line inversion + 0xc0, 3, 0xa2, 0x02, 0x84, // _PWCTR1 GVDD = 4.7V, 1.0uA + 0xc1, 1, 0xc5, // _PWCTR2 VGH=14.7V, VGL=-7.35V + 0xc2, 2, 0x0a, 0x00, // _PWCTR3 Opamp current small, Boost frequency + 0xc3, 2, 0x8a, 0x2a, + 0xc4, 2, 0x8a, 0xee, + 0xc5, 1, 0x0e, // _VMCTR1 VCOMH = 4V, VOML = -1.1V + 0x2a, 0, // _INVOFF + 0x36, 1, 0xa0, // _MADCTL bottom to top refresh + // 1 clk cycle nonoverlap, 2 cycle gate rise, 3 sycle osc equalie, + // fix on VTL + 0x3a, 1, 0x05, // COLMOD - 16bit color + 0xe0, 16, 0x02, 0x1c, 0x07, 0x12, // _GMCTRP1 Gamma + 0x37, 0x32, 0x29, 0x2d, + 0x29, 0x25, 0x2B, 0x39, + 0x00, 0x01, 0x03, 0x10, + 0xe1, 16, 0x03, 0x1d, 0x07, 0x06, // _GMCTRN1 + 0x2E, 0x2C, 0x29, 0x2D, + 0x2E, 0x2E, 0x37, 0x3F, + 0x00, 0x00, 0x02, 0x10, + 0x2a, 3, 0x02, 0x00, 0x81, // _CASET XSTART = 2, XEND = 129 + 0x2b, 3, 0x02, 0x00, 0x81, // _RASET XSTART = 2, XEND = 129 + 0x13, 0 | DELAY, 10, // _NORON + 0x29, 0 | DELAY, 100, // _DISPON +}; + void board_init(void) { + displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus; + bus->base.type = &displayio_fourwire_type; + busio_spi_obj_t *spi = common_hal_board_create_spi(); + common_hal_busio_spi_configure(spi, 24000000, 0, 0, 8); + common_hal_displayio_fourwire_construct(bus, + spi, + &pin_PA09, // Command or data + &pin_PA08, // Chip select + NULL); // Reset + + displayio_display_obj_t* display = &displays[0].display; + display->base.type = &displayio_display_type; + common_hal_displayio_display_construct(display, + bus, + 128, // Width + 128, // Height + 3, // column start + 2, // row start + 0, // rotation + 16, // Color depth + MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command + MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command + MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command + 0x37, // set vertical scroll command + display_init_sequence, + sizeof(display_init_sequence), + NULL, + false, // single_byte_bounds + false); // data as commands } bool board_requests_safe_mode(void) { diff --git a/ports/atmel-samd/boards/ugame10/mpconfigboard.h b/ports/atmel-samd/boards/ugame10/mpconfigboard.h index caa05bc1ae..b5590d986c 100644 --- a/ports/atmel-samd/boards/ugame10/mpconfigboard.h +++ b/ports/atmel-samd/boards/ugame10/mpconfigboard.h @@ -19,10 +19,9 @@ #define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE) -#define EXTRA_BUILTIN_MODULES \ - { MP_OBJ_NEW_QSTR(MP_QSTR_audioio), (mp_obj_t)&audioio_module }, \ - { MP_OBJ_NEW_QSTR(MP_QSTR_gamepad),(mp_obj_t)&gamepad_module }, \ - { MP_OBJ_NEW_QSTR(MP_QSTR__stage), (mp_obj_t)&stage_module } +#define DEFAULT_SPI_BUS_SCK (&pin_PA07) +#define DEFAULT_SPI_BUS_MISO (&pin_PA11) +#define DEFAULT_SPI_BUS_MOSI (&pin_PA06) #define IGNORE_PIN_PB00 1 #define IGNORE_PIN_PB01 1 diff --git a/ports/atmel-samd/boards/ugame10/mpconfigboard.mk b/ports/atmel-samd/boards/ugame10/mpconfigboard.mk index 0a727c8b16..cafd84b214 100644 --- a/ports/atmel-samd/boards/ugame10/mpconfigboard.mk +++ b/ports/atmel-samd/boards/ugame10/mpconfigboard.mk @@ -17,13 +17,18 @@ CIRCUITPY_MATH = 1 CIRCUITPY_AUDIOIO = 1 CIRCUITPY_ANALOGIO = 1 CIRCUITPY_GAMEPAD = 1 +CIRCUITPY_DISPLAYIO = 1 + CIRCUITPY_TOUCHIO = 0 CIRCUITPY_NEOPIXEL_WRITE = 0 CIRCUITPY_RTC = 0 -CIRCUITPY_SAMD = 0 CIRCUITPY_USB_MIDI = 0 CIRCUITPY_USB_HID = 0 +CIRCUITPY_I2CSLAVE = 0 CIRCUITPY_FREQUENCYIO = 0 -CIRCUITPY_SMALL_BUILD = 1 +CIRCUITPY_AUDIOBUSIO = 0 +CIRCUITPY_PIXELBUF = 0 -FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage +FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/ugame10 + +CIRCUITPY_DISPLAY_FONT = "../../tools/Tecate-bitmap-fonts/bitmap/phallus/lemon.bdf" diff --git a/ports/atmel-samd/boards/ugame10/pins.c b/ports/atmel-samd/boards/ugame10/pins.c index 71db52752f..4a03f8bb5c 100644 --- a/ports/atmel-samd/boards/ugame10/pins.c +++ b/ports/atmel-samd/boards/ugame10/pins.c @@ -1,6 +1,5 @@ #include "shared-bindings/board/__init__.h" - -#include "supervisor/shared/board_busses.h" +#include "shared-module/displayio/__init__.h" STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_X), MP_ROM_PTR(&pin_PA00) }, @@ -25,8 +24,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_B), MP_ROM_PTR(&pin_PA14) }, { MP_ROM_QSTR(MP_QSTR_C), MP_ROM_PTR(&pin_PA15) }, { MP_ROM_QSTR(MP_QSTR_D), MP_ROM_PTR(&pin_PA28) }, - { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, - { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)} }; MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/atmel-samd/common-hal/busio/SPI.c b/ports/atmel-samd/common-hal/busio/SPI.c index ca58e3fd5c..644b9a87b4 100644 --- a/ports/atmel-samd/common-hal/busio/SPI.c +++ b/ports/atmel-samd/common-hal/busio/SPI.c @@ -361,3 +361,13 @@ bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, uint8_t *data_out, uin uint32_t common_hal_busio_spi_get_frequency(busio_spi_obj_t* self) { return samd_peripherals_spi_baud_reg_value_to_baudrate(hri_sercomspi_read_BAUD_reg(self->spi_desc.dev.prvt)); } + +uint8_t common_hal_busio_spi_get_phase(busio_spi_obj_t* self) { + void * hw = self->spi_desc.dev.prvt; + return hri_sercomspi_get_CTRLA_CPHA_bit(hw); +} + +uint8_t common_hal_busio_spi_get_polarity(busio_spi_obj_t* self) { + void * hw = self->spi_desc.dev.prvt; + return hri_sercomspi_get_CTRLA_CPOL_bit(hw); +} diff --git a/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c b/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c index 9537d6179e..e167cbb694 100644 --- a/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c +++ b/ports/atmel-samd/common-hal/digitalio/DigitalInOut.c @@ -49,6 +49,11 @@ digitalinout_result_t common_hal_digitalio_digitalinout_construct( return DIGITALINOUT_OK; } +void common_hal_digitalio_digitalinout_never_reset( + digitalio_digitalinout_obj_t *self) { + never_reset_pin_number(self->pin->number); +} + bool common_hal_digitalio_digitalinout_deinited(digitalio_digitalinout_obj_t* self) { return self->pin == mp_const_none; } diff --git a/ports/atmel-samd/common-hal/pulseio/PulseIn.c b/ports/atmel-samd/common-hal/pulseio/PulseIn.c index aaa69a6f86..a2494f102f 100644 --- a/ports/atmel-samd/common-hal/pulseio/PulseIn.c +++ b/ports/atmel-samd/common-hal/pulseio/PulseIn.c @@ -32,6 +32,7 @@ #include "hal/include/hal_gpio.h" #include "background.h" +#include "eic_handler.h" #include "mpconfigport.h" #include "py/gc.h" #include "py/runtime.h" @@ -54,7 +55,8 @@ static void pulsein_set_config(pulseio_pulsein_obj_t* self, bool first_edge) { } else { sense_setting = EIC_CONFIG_SENSE0_RISE_Val; } - turn_on_eic_channel(self->channel, sense_setting, EIC_HANDLER_PULSEIN); + set_eic_handler(self->channel, EIC_HANDLER_PULSEIN); + turn_on_eic_channel(self->channel, sense_setting); } void pulsein_interrupt_handler(uint8_t channel) { @@ -153,6 +155,7 @@ void common_hal_pulseio_pulsein_deinit(pulseio_pulsein_obj_t* self) { if (common_hal_pulseio_pulsein_deinited(self)) { return; } + set_eic_handler(self->channel, EIC_HANDLER_NO_INTERRUPT); turn_off_eic_channel(self->channel); reset_pin_number(self->pin); self->pin = NO_PIN; diff --git a/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c b/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c index 080cd61b5e..e3bcf395b5 100644 --- a/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c +++ b/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c @@ -28,6 +28,7 @@ #include "atmel_start_pins.h" +#include "eic_handler.h" #include "samd/external_interrupts.h" #include "py/runtime.h" #include "supervisor/shared/translate.h" @@ -76,8 +77,11 @@ void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencode claim_pin(pin_a); claim_pin(pin_b); - turn_on_eic_channel(self->eic_channel_a, EIC_CONFIG_SENSE0_BOTH_Val, EIC_HANDLER_INCREMENTAL_ENCODER); - turn_on_eic_channel(self->eic_channel_b, EIC_CONFIG_SENSE0_BOTH_Val, EIC_HANDLER_INCREMENTAL_ENCODER); + set_eic_handler(self->eic_channel_a, EIC_HANDLER_INCREMENTAL_ENCODER); + turn_on_eic_channel(self->eic_channel_a, EIC_CONFIG_SENSE0_BOTH_Val); + + set_eic_handler(self->eic_channel_b, EIC_HANDLER_INCREMENTAL_ENCODER); + turn_on_eic_channel(self->eic_channel_b, EIC_CONFIG_SENSE0_BOTH_Val); } bool common_hal_rotaryio_incrementalencoder_deinited(rotaryio_incrementalencoder_obj_t* self) { @@ -88,10 +92,16 @@ void common_hal_rotaryio_incrementalencoder_deinit(rotaryio_incrementalencoder_o if (common_hal_rotaryio_incrementalencoder_deinited(self)) { return; } + + set_eic_handler(self->eic_channel_a, EIC_HANDLER_NO_INTERRUPT); turn_off_eic_channel(self->eic_channel_a); + + set_eic_handler(self->eic_channel_b, EIC_HANDLER_NO_INTERRUPT); turn_off_eic_channel(self->eic_channel_b); + reset_pin_number(self->pin_a); self->pin_a = NO_PIN; + reset_pin_number(self->pin_b); self->pin_b = NO_PIN; } diff --git a/ports/atmel-samd/eic_handler.c b/ports/atmel-samd/eic_handler.c new file mode 100644 index 0000000000..db5f260e52 --- /dev/null +++ b/ports/atmel-samd/eic_handler.c @@ -0,0 +1,58 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2019 Dan Halbert for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "common-hal/pulseio/PulseIn.h" +#include "common-hal/rotaryio/IncrementalEncoder.h" +#include "shared-bindings/microcontroller/__init__.h" +//#include "samd/external_interrupts.h" +#include "eic_handler.h" + +// Which handler should be called for a particular channel? +static uint8_t eic_channel_handler[EIC_EXTINT_NUM]; + +void set_eic_handler(uint8_t channel, uint8_t eic_handler) { + eic_channel_handler[channel] = eic_handler; +} + +void shared_eic_handler(uint8_t channel) { + uint8_t handler = eic_channel_handler[channel]; + switch (handler) { +#if CIRCUITPY_PULSEIO + case EIC_HANDLER_PULSEIN: + pulsein_interrupt_handler(channel); + break; +#endif + +#if CIRCUITPY_ROTARYIO + case EIC_HANDLER_INCREMENTAL_ENCODER: + incrementalencoder_interrupt_handler(channel); + break; +#endif + + default: + break; + } +} diff --git a/ports/atmel-samd/eic_handler.h b/ports/atmel-samd/eic_handler.h new file mode 100644 index 0000000000..2f9ccd67f0 --- /dev/null +++ b/ports/atmel-samd/eic_handler.h @@ -0,0 +1,36 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2019 Dan Halbert for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#ifndef MICROPY_INCLUDED_ATMEL_SAMD_EIC_HANDLER_H +#define MICROPY_INCLUDED_ATMEL_SAMD_EIC_HANDLER_H + +#define EIC_HANDLER_NO_INTERRUPT 0x0 +#define EIC_HANDLER_PULSEIN 0x1 +#define EIC_HANDLER_INCREMENTAL_ENCODER 0x2 + +void set_eic_handler(uint8_t channel, uint8_t eic_handler); +void shared_eic_handler(uint8_t channel); + +#endif // MICROPY_INCLUDED_ATMEL_SAMD_EIC_HANDLER_H diff --git a/ports/atmel-samd/mpconfigport.mk b/ports/atmel-samd/mpconfigport.mk index bb5e222f03..66ee92e6be 100644 --- a/ports/atmel-samd/mpconfigport.mk +++ b/ports/atmel-samd/mpconfigport.mk @@ -14,6 +14,12 @@ ifeq ($(LONGINT_IMPL),LONGLONG) MPY_TOOL_LONGINT_IMPL = -mlongint-impl=longlong endif +# Put samd21-only choices here. +ifeq ($(CHIP_FAMILY),samd21) +# frequencyio not yet verified as working on SAMD21. +CIRCUITPY_FRQUENCYIO = 0 +endif + # Put samd51-only choices here. ifeq ($(CHIP_FAMILY),samd51) CIRCUITPY_SAMD = 1 diff --git a/ports/atmel-samd/peripherals b/ports/atmel-samd/peripherals index 6416828bb6..778d4f3736 160000 --- a/ports/atmel-samd/peripherals +++ b/ports/atmel-samd/peripherals @@ -1 +1 @@ -Subproject commit 6416828bb6821779d4c62fa3c7d41c95634173c0 +Subproject commit 778d4f3736728da7ba7795c5c44176c415c903cf diff --git a/ports/atmel-samd/supervisor/internal_flash.c b/ports/atmel-samd/supervisor/internal_flash.c index f1ceb5c927..6dd5ac0a70 100644 --- a/ports/atmel-samd/supervisor/internal_flash.c +++ b/ports/atmel-samd/supervisor/internal_flash.c @@ -76,6 +76,9 @@ uint32_t supervisor_flash_get_block_count(void) { void supervisor_flash_flush(void) { } +void supervisor_flash_release_cache(void) { +} + void flash_flush(void) { supervisor_flash_flush(); } diff --git a/ports/nrf/Makefile b/ports/nrf/Makefile index 3681ac49e7..3cb4b52aac 100755 --- a/ports/nrf/Makefile +++ b/ports/nrf/Makefile @@ -140,6 +140,7 @@ SRC_NRFX = $(addprefix nrfx/,\ drivers/src/nrfx_twim.c \ drivers/src/nrfx_uarte.c \ drivers/src/nrfx_gpiote.c \ + drivers/src/nrfx_rtc.c \ ) ifdef EXTERNAL_FLASH_DEVICES diff --git a/ports/nrf/README.md b/ports/nrf/README.md index 49c9fbe297..65a66b7b00 100644 --- a/ports/nrf/README.md +++ b/ports/nrf/README.md @@ -78,6 +78,7 @@ pca10056 | s140 | Peripheral and Scanner | [S feather_nrf52840_express | s140 | Peripheral and Scanner | UF2 bootloader makerdiary_nrf52840_mdk | s140 | Peripheral and Scanner | pyocd or ARM mbed DAPLink makerdiary_nrf52840_mdk_usb_dongle | s140 | Peripheral and Scanner | DFU bootloader & nrfutil +electronut_labs_papyr | s140 | Peripheral and Scanner | UF2 bootloader ## Segger Targets diff --git a/ports/nrf/background.c b/ports/nrf/background.c index 69c76fd066..3fb5febd31 100644 --- a/ports/nrf/background.c +++ b/ports/nrf/background.c @@ -25,6 +25,7 @@ */ #include "py/runtime.h" +#include "supervisor/filesystem.h" #include "supervisor/usb.h" #include "supervisor/shared/stack.h" @@ -32,12 +33,25 @@ #include "shared-module/displayio/__init__.h" #endif +static bool running_background_tasks = false; + +void background_tasks_reset(void) { + running_background_tasks = false; +} + void run_background_tasks(void) { + // Don't call ourselves recursively. + if (running_background_tasks) { + return; + } + running_background_tasks = true; + filesystem_background(); usb_background(); #ifdef CIRCUITPY_DISPLAYIO displayio_refresh_displays(); #endif + running_background_tasks = false; assert_heap_ok(); } diff --git a/ports/nrf/background.h b/ports/nrf/background.h new file mode 100644 index 0000000000..d53681c0fd --- /dev/null +++ b/ports/nrf/background.h @@ -0,0 +1,35 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2019 Dan Halbert for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MICROPY_INCLUDED_NRF_BACKGROUND_H +#define MICROPY_INCLUDED_NRF_BACKGROUND_H + +#include + +void background_tasks_reset(void); +void run_background_tasks(void); + +#endif // MICROPY_INCLUDED_NRF_BACKGROUND_H diff --git a/ports/nrf/boards/electronut_labs_papyr/README.md b/ports/nrf/boards/electronut_labs_papyr/README.md new file mode 100644 index 0000000000..fda3901938 --- /dev/null +++ b/ports/nrf/boards/electronut_labs_papyr/README.md @@ -0,0 +1,58 @@ +# Setup + +The `Electronut Labs Papyr` board is based on the `nRF52840` SoC from +Nordic Semiconductors. It has an e-ink display on it, along with a CR2477 +battery holder. + +Papyr can be programmed with the [`Adafruit nRF52 bootloader`](https://github.com/adafruit/Adafruit_nRF52_Bootloader) to + +Schematic, datasheet default pin mapping etc. can be found over [here](https://docs.electronut.in/papyr/). The default pin mapping can be found in the board directory. + +## Installing CircuitPython submodules + +Before you can build, you will need to run the following commands once, which +will install the submodules that are part of the CircuitPython ecosystem, and +build the `mpy-cross` tool: + +``` +$ cd circuitpython +$ git submodule update --init +$ make -C mpy-cross +``` + +## Installing the Bootloader + +If the `Adafruit nRF52 bootloader` is installed on the board, then the +bootloader allows you to update the core CircuitPython firmware and internal +file system contents using serial, or USB CDC, or USB mass storage. + +On empty devices, the bootloader will need to be flashed once using a +HW debugger such as a Segger J-Link, or Blackmagicprobe +(or [Electronut labs Bumpy](https://docs.electronut.in/bumpy/)). + + +## Building and Flashing CircuitPython + +No special notes for this, follow `ports/nrf` generic `README.md`. + +### Flashing CircuitPython with MSC UF2 + +`uf2` file is generated last by `all` target. + +``` +$ cd ports/nrf +$ make V=1 SD=s140 SERIAL=/dev/ttyACM0 BOARD=electronut_labs_papyr all +... +... +python3 ../../tools/uf2/utils/uf2conv.py -f 0xADA52840 -c -o "build-electronut_labs_papyr-s140/firmware.uf2" build-electronut_labs_papyr-s140/firmware.hex +Converting to uf2, output size: 536576, start address: 0x26000 +Wrote 536576 bytes to build-electronut_labs_papyr-s140/firmware.uf2 +``` + +Simply drag and drop firmware.uf2 to the MSC, the nrf52840 will blink fast and reset after done. + +### Other tips + +Once circuitpython is running on your board, it will come up as a mass storage +device named `CIRCUITPY`, where you can drop in your python code. The file names +it looks for are `main.py`, `main.txt`, `code.py` or `code.txt`. diff --git a/ports/nrf/boards/electronut_labs_papyr/board.c b/ports/nrf/boards/electronut_labs_papyr/board.c new file mode 100644 index 0000000000..4421970eef --- /dev/null +++ b/ports/nrf/boards/electronut_labs_papyr/board.c @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" + +void board_init(void) { +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { + +} diff --git a/ports/nrf/boards/electronut_labs_papyr/mpconfigboard.h b/ports/nrf/boards/electronut_labs_papyr/mpconfigboard.h new file mode 100644 index 0000000000..7f5021fdca --- /dev/null +++ b/ports/nrf/boards/electronut_labs_papyr/mpconfigboard.h @@ -0,0 +1,52 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2016 Glenn Ruben Bakke + * Copyright (c) 2018 Dan Halbert for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "nrfx/hal/nrf_gpio.h" + +#define ELECTRONUT_LABS_PAPYR + +#define MICROPY_HW_BOARD_NAME "Electronut Labs Papyr" +#define MICROPY_HW_MCU_NAME "nRF52840" +#define MICROPY_PY_SYS_PLATFORM "ElectronutLabsPapyr" + +#define CIRCUITPY_AUTORELOAD_DELAY_MS 500 + +// TODO #define CIRCUITPY_INTERNAL_NVM_SIZE 8192 + +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) + +#define BOARD_HAS_CRYSTAL 1 + +#define DEFAULT_I2C_BUS_SCL (&pin_P0_06) +#define DEFAULT_I2C_BUS_SDA (&pin_P0_05) + +#define DEFAULT_SPI_BUS_SCK (&pin_P0_31) +#define DEFAULT_SPI_BUS_MOSI (&pin_P0_29) +#define DEFAULT_SPI_BUS_MISO (&pin_P1_01) + +#define DEFAULT_UART_BUS_RX (&pin_P0_07) +#define DEFAULT_UART_BUS_TX (&pin_P0_08) diff --git a/ports/nrf/boards/electronut_labs_papyr/mpconfigboard.mk b/ports/nrf/boards/electronut_labs_papyr/mpconfigboard.mk new file mode 100644 index 0000000000..5aee244f11 --- /dev/null +++ b/ports/nrf/boards/electronut_labs_papyr/mpconfigboard.mk @@ -0,0 +1,22 @@ +USB_VID = 0x239A +USB_PID = 0x803C +USB_PRODUCT = "Papyr" +USB_MANUFACTURER = "Electronut Labs" + +MCU_SERIES = m4 +MCU_VARIANT = nrf52 +MCU_SUB_VARIANT = nrf52840 +MCU_CHIP = nrf52840 +SD ?= s140 +SOFTDEV_VERSION ?= 6.1.0 + +BOOT_SETTING_ADDR = 0xFF000 + +ifeq ($(SD),) + LD_FILE = boards/nrf52840_1M_256k.ld +else + LD_FILE = boards/adafruit_$(MCU_SUB_VARIANT)_$(SD_LOWER)_v$(firstword $(subst ., ,$(SOFTDEV_VERSION))).ld + CIRCUITPY_BLEIO = 1 +endif + +NRF_DEFINES += -DNRF52840_XXAA -DNRF52840 \ No newline at end of file diff --git a/ports/nrf/boards/electronut_labs_papyr/pins.c b/ports/nrf/boards/electronut_labs_papyr/pins.c new file mode 100644 index 0000000000..ef0178e9b1 --- /dev/null +++ b/ports/nrf/boards/electronut_labs_papyr/pins.c @@ -0,0 +1,44 @@ +#include "shared-bindings/board/__init__.h" + +STATIC const mp_rom_map_elem_t board_module_globals_table[] = { + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_05) }, + { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_P0_06) }, + + { MP_ROM_QSTR(MP_QSTR_NFC1), MP_ROM_PTR(&pin_P0_09) }, + { MP_ROM_QSTR(MP_QSTR_NFC2), MP_ROM_PTR(&pin_P0_10) }, + + { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P0_05) }, + { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P0_06) }, + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P0_07) }, + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_08) }, + { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_13) }, + { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_P0_14) }, + { MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_P0_15) }, + + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P0_31) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P0_29) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P1_01) }, + { MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_P0_30) }, + { MP_ROM_QSTR(MP_QSTR_BUSY), MP_ROM_PTR(&pin_P0_03) }, + { MP_ROM_QSTR(MP_QSTR_DC), MP_ROM_PTR(&pin_P0_28) }, + { MP_ROM_QSTR(MP_QSTR_RES), MP_ROM_PTR(&pin_P0_02) }, + { MP_ROM_QSTR(MP_QSTR_EINK_EN), MP_ROM_PTR(&pin_P0_11) }, + + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_08) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_07) }, + + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_06) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_05) }, + + { MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_P0_14) }, + { MP_ROM_QSTR(MP_QSTR_RED_LED), MP_ROM_PTR(&pin_P0_14) }, + + { MP_ROM_QSTR(MP_QSTR_BLUE_LED), MP_ROM_PTR(&pin_P0_15) }, + { MP_ROM_QSTR(MP_QSTR_GREEN_LED), MP_ROM_PTR(&pin_P0_13) }, + + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, +}; + +MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); diff --git a/ports/nrf/boards/feather_nrf52840_express/pins.c b/ports/nrf/boards/feather_nrf52840_express/pins.c index c6f643761d..ec2689ab45 100644 --- a/ports/nrf/boards/feather_nrf52840_express/pins.c +++ b/ports/nrf/boards/feather_nrf52840_express/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_04) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_05) }, diff --git a/ports/nrf/boards/makerdiary_nrf52840_mdk/pins.c b/ports/nrf/boards/makerdiary_nrf52840_mdk/pins.c index 2d24e85979..5284c24842 100644 --- a/ports/nrf/boards/makerdiary_nrf52840_mdk/pins.c +++ b/ports/nrf/boards/makerdiary_nrf52840_mdk/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_AIN0), MP_ROM_PTR(&pin_P0_02) }, { MP_ROM_QSTR(MP_QSTR_AIN1), MP_ROM_PTR(&pin_P0_03) }, diff --git a/ports/nrf/boards/makerdiary_nrf52840_mdk_usb_dongle/pins.c b/ports/nrf/boards/makerdiary_nrf52840_mdk_usb_dongle/pins.c index 10490c8cb1..006b247688 100644 --- a/ports/nrf/boards/makerdiary_nrf52840_mdk_usb_dongle/pins.c +++ b/ports/nrf/boards/makerdiary_nrf52840_mdk_usb_dongle/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_AIN0), MP_ROM_PTR(&pin_P0_02) }, { MP_ROM_QSTR(MP_QSTR_AIN1), MP_ROM_PTR(&pin_P0_03) }, diff --git a/ports/nrf/boards/particle_argon/pins.c b/ports/nrf/boards/particle_argon/pins.c index 10d547f910..9fab9e6b6a 100644 --- a/ports/nrf/boards/particle_argon/pins.c +++ b/ports/nrf/boards/particle_argon/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_03) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_04) }, diff --git a/ports/nrf/boards/particle_boron/pins.c b/ports/nrf/boards/particle_boron/pins.c index 0b827a85a4..4d6f3e7de2 100644 --- a/ports/nrf/boards/particle_boron/pins.c +++ b/ports/nrf/boards/particle_boron/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_03) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_04) }, diff --git a/ports/nrf/boards/particle_xenon/pins.c b/ports/nrf/boards/particle_xenon/pins.c index 644face61c..a50c8b6418 100644 --- a/ports/nrf/boards/particle_xenon/pins.c +++ b/ports/nrf/boards/particle_xenon/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_03) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_04) }, diff --git a/ports/nrf/boards/pca10056/pins.c b/ports/nrf/boards/pca10056/pins.c index 510b6100e3..e00bc8a11e 100644 --- a/ports/nrf/boards/pca10056/pins.c +++ b/ports/nrf/boards/pca10056/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_P0_00), MP_ROM_PTR(&pin_P0_00) }, { MP_ROM_QSTR(MP_QSTR_P0_01), MP_ROM_PTR(&pin_P0_01) }, diff --git a/ports/nrf/boards/pca10059/pins.c b/ports/nrf/boards/pca10059/pins.c index c43d3a9eb6..932b925d17 100644 --- a/ports/nrf/boards/pca10059/pins.c +++ b/ports/nrf/boards/pca10059/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_P0_02), MP_ROM_PTR(&pin_P0_02) }, { MP_ROM_QSTR(MP_QSTR_P0_04), MP_ROM_PTR(&pin_P0_04) }, diff --git a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c index f826ac771d..e7b61db584 100644 --- a/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c +++ b/ports/nrf/boards/sparkfun_nrf52840_mini/pins.c @@ -1,7 +1,5 @@ #include "shared-bindings/board/__init__.h" -#include "supervisor/shared/board_busses.h" - STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_P1_15) }, // D1/TX { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_P0_17) }, // D0/RX diff --git a/ports/nrf/common-hal/bleio/Characteristic.c b/ports/nrf/common-hal/bleio/Characteristic.c index 1db564549c..c9088c2ab7 100644 --- a/ports/nrf/common-hal/bleio/Characteristic.c +++ b/ports/nrf/common-hal/bleio/Characteristic.c @@ -129,7 +129,7 @@ STATIC void gatts_notify_indicate(bleio_characteristic_obj_t *characteristic, mp const uint32_t err_code = sd_ble_gatts_hvx(conn_handle, &hvx_params); if (err_code != NRF_SUCCESS) { m_tx_in_progress--; - mp_raise_OSError_msg_varg(translate("Failed to notify or indicate attribute value, err %0x04x"), err_code); + mp_raise_OSError_msg_varg(translate("Failed to notify or indicate attribute value, err 0x%04x"), err_code); } } @@ -141,7 +141,7 @@ STATIC void gattc_read(bleio_characteristic_obj_t *characteristic) { const uint32_t err_code = sd_ble_gattc_read(conn_handle, characteristic->handle, 0); if (err_code != NRF_SUCCESS) { - mp_raise_OSError_msg_varg(translate("Failed to read attribute value, err %0x04x"), err_code); + mp_raise_OSError_msg_varg(translate("Failed to read attribute value, err 0x%04x"), err_code); } // diff --git a/ports/nrf/common-hal/busio/SPI.c b/ports/nrf/common-hal/busio/SPI.c index 19bd4d1ba9..8881bdc6b3 100644 --- a/ports/nrf/common-hal/busio/SPI.c +++ b/ports/nrf/common-hal/busio/SPI.c @@ -327,3 +327,11 @@ uint32_t common_hal_busio_spi_get_frequency(busio_spi_obj_t* self) { return 0; } } + +uint8_t common_hal_busio_spi_get_phase(busio_spi_obj_t* self) { + return 0; +} + +uint8_t common_hal_busio_spi_get_polarity(busio_spi_obj_t* self) { + return 0; +} diff --git a/ports/nrf/common-hal/rtc/RTC.c b/ports/nrf/common-hal/rtc/RTC.c new file mode 100644 index 0000000000..57138350c9 --- /dev/null +++ b/ports/nrf/common-hal/rtc/RTC.c @@ -0,0 +1,90 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2019 Nick Moore for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include + +#include "py/obj.h" +#include "py/runtime.h" +#include "lib/timeutils/timeutils.h" +#include "shared-bindings/rtc/__init__.h" +#include "supervisor/shared/translate.h" + +#include "nrfx_rtc.h" +#include "nrf_clock.h" + +// We clock the RTC very slowly (8Hz) so that it won't overflow often. +// But the counter is only 24 bits, so overflow is about every 24 days ... +// For testing, set this to 32768 and it'll overflow every few minutes + +#define RTC_CLOCK_HZ (8) + +volatile static uint32_t rtc_offset = 0; + +const nrfx_rtc_t rtc_instance = NRFX_RTC_INSTANCE(2); + +const nrfx_rtc_config_t rtc_config = { + .prescaler = RTC_FREQ_TO_PRESCALER(RTC_CLOCK_HZ), + .reliable = 0, + .tick_latency = 0, + .interrupt_priority = 6 +}; + +void rtc_handler(nrfx_rtc_int_type_t int_type) { + if (int_type == NRFX_RTC_INT_OVERFLOW) { + rtc_offset += (1L<<24) / RTC_CLOCK_HZ; + } +} + +void rtc_init(void) { + if (!nrf_clock_lf_is_running()) { + nrf_clock_task_trigger(NRF_CLOCK_TASK_LFCLKSTART); + } + nrfx_rtc_counter_clear(&rtc_instance); + nrfx_rtc_init(&rtc_instance, &rtc_config, rtc_handler); + nrfx_rtc_enable(&rtc_instance); + nrfx_rtc_overflow_enable(&rtc_instance, 1); +} + +void common_hal_rtc_get_time(timeutils_struct_time_t *tm) { + uint32_t t = rtc_offset + (nrfx_rtc_counter_get(&rtc_instance) / RTC_CLOCK_HZ ); + timeutils_seconds_since_2000_to_struct_time(t, tm); +} + +void common_hal_rtc_set_time(timeutils_struct_time_t *tm) { + rtc_offset = timeutils_seconds_since_2000( + tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec + ); + nrfx_rtc_counter_clear(&rtc_instance); +} + +int common_hal_rtc_get_calibration(void) { + return 0; +} + +void common_hal_rtc_set_calibration(int calibration) { + mp_raise_NotImplementedError(translate("RTC calibration is not supported on this board")); +} + diff --git a/ports/nrf/common-hal/rtc/RTC.h b/ports/nrf/common-hal/rtc/RTC.h new file mode 100644 index 0000000000..0207c8338c --- /dev/null +++ b/ports/nrf/common-hal/rtc/RTC.h @@ -0,0 +1,33 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Noralf Trønnes + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MICROPY_INCLUDED_NRF_COMMON_HAL_RTC_RTC_H +#define MICROPY_INCLUDED_NRF_COMMON_HAL_RTC_RTC_H + +extern void rtc_init(void); +extern void rtc_reset(void); + +#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_RTC_RTC_H diff --git a/ports/nrf/common-hal/rtc/__init__.c b/ports/nrf/common-hal/rtc/__init__.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ports/nrf/mpconfigport.h b/ports/nrf/mpconfigport.h index 1b2d8ea122..5ed521e859 100644 --- a/ports/nrf/mpconfigport.h +++ b/ports/nrf/mpconfigport.h @@ -57,5 +57,4 @@ CIRCUITPY_COMMON_ROOT_POINTERS \ ble_drv_evt_handler_entry_t* ble_drv_evt_handler_entries; \ - #endif // NRF5_MPCONFIGPORT_H__ diff --git a/ports/nrf/mpconfigport.mk b/ports/nrf/mpconfigport.mk index badfb6735d..fdeb1bbbed 100644 --- a/ports/nrf/mpconfigport.mk +++ b/ports/nrf/mpconfigport.mk @@ -22,8 +22,8 @@ CIRCUITPY_I2CSLAVE = 0 # nvm not yet implemented CIRCUITPY_NVM = 0 -# rtc not yet implemented -CIRCUITPY_RTC = 0 +# enable RTC +CIRCUITPY_RTC = 1 # frequencyio not yet implemented CIRCUITPY_FREQUENCYIO = 0 diff --git a/ports/nrf/nrfx_config.h b/ports/nrf/nrfx_config.h index 57a2727aa7..d51739fac2 100644 --- a/ports/nrf/nrfx_config.h +++ b/ports/nrf/nrfx_config.h @@ -70,6 +70,11 @@ #define NRFX_PWM3_ENABLED 0 #endif +#define NRFX_RTC_ENABLED 1 +#define NRFX_RTC0_ENABLED 1 +#define NRFX_RTC1_ENABLED 1 +#define NRFX_RTC2_ENABLED 1 + // TIMERS #define NRFX_TIMER_ENABLED 1 // Don't enable TIMER0: it's used by the SoftDevice. diff --git a/ports/nrf/supervisor/internal_flash.c b/ports/nrf/supervisor/internal_flash.c index 2732132447..c18b708a3e 100644 --- a/ports/nrf/supervisor/internal_flash.c +++ b/ports/nrf/supervisor/internal_flash.c @@ -137,6 +137,9 @@ void supervisor_flash_flush(void) { _flash_page_addr = NO_CACHE; } +void supervisor_flash_release_cache(void) { +} + mp_uint_t supervisor_flash_read_blocks(uint8_t *dest, uint32_t block, uint32_t num_blocks) { // Must write out anything in cache before trying to read. supervisor_flash_flush(); diff --git a/ports/nrf/supervisor/port.c b/ports/nrf/supervisor/port.c index fd077a46a5..85ecd6afe5 100644 --- a/ports/nrf/supervisor/port.c +++ b/ports/nrf/supervisor/port.c @@ -45,8 +45,11 @@ #include "common-hal/pulseio/PWMOut.h" #include "common-hal/pulseio/PulseOut.h" #include "common-hal/pulseio/PulseIn.h" +#include "common-hal/rtc/RTC.h" #include "tick.h" +#include "shared-bindings/rtc/__init__.h" + static void power_warning_handler(void) { reset_into_safe_mode(BROWNOUT); } @@ -72,6 +75,10 @@ safe_mode_t port_init(void) { // Configure millisecond timer initialization. tick_init(); + #if CIRCUITPY_RTC + rtc_init(); + #endif + // Will do usb_init() if chip supports USB. board_init(); @@ -91,6 +98,10 @@ void reset_port(void) { pulsein_reset(); timers_reset(); + #if CIRCUITPY_RTC + rtc_reset(); + #endif + bleio_reset(); reset_all_pins(); diff --git a/ports/nrf/supervisor/qspi_flash.c b/ports/nrf/supervisor/qspi_flash.c index 51a9ec0329..bb449d881c 100644 --- a/ports/nrf/supervisor/qspi_flash.c +++ b/ports/nrf/supervisor/qspi_flash.c @@ -47,8 +47,7 @@ bool spi_flash_command(uint8_t command) { .wipwait = false, .wren = false }; - nrfx_qspi_cinstr_xfer(&cinstr_cfg, NULL, NULL); - return true; + return nrfx_qspi_cinstr_xfer(&cinstr_cfg, NULL, NULL) == NRFX_SUCCESS; } bool spi_flash_read_command(uint8_t command, uint8_t* response, uint32_t length) { diff --git a/ports/nrf/tick.c b/ports/nrf/tick.c index cdd329f71d..6d8fd13e0a 100644 --- a/ports/nrf/tick.c +++ b/ports/nrf/tick.c @@ -27,6 +27,7 @@ #include "tick.h" #include "supervisor/shared/autoreload.h" +#include "supervisor/filesystem.h" #include "shared-module/gamepad/__init__.h" #include "shared-bindings/microcontroller/Processor.h" #include "nrf.h" @@ -39,14 +40,17 @@ void SysTick_Handler(void) { // (every millisecond). ticks_ms += 1; - #ifdef CIRCUITPY_AUTORELOAD_DELAY_MS - autoreload_tick(); - #endif - #ifdef CIRCUITPY_GAMEPAD_TICKS +#if CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS > 0 + filesystem_tick(); +#endif +#ifdef CIRCUITPY_AUTORELOAD_DELAY_MS + autoreload_tick(); +#endif +#ifdef CIRCUITPY_GAMEPAD_TICKS if (!(ticks_ms & CIRCUITPY_GAMEPAD_TICKS)) { gamepad_tick(); } - #endif +#endif } void tick_init() { diff --git a/py/circuitpy_defns.mk b/py/circuitpy_defns.mk index 7a369817a4..342c0ab0c4 100644 --- a/py/circuitpy_defns.mk +++ b/py/circuitpy_defns.mk @@ -302,6 +302,7 @@ $(filter $(SRC_PATTERNS), \ bitbangio/OneWire.c \ bitbangio/SPI.c \ bitbangio/__init__.c \ + board/__init__.c \ busio/OneWire.c \ displayio/Bitmap.c \ displayio/ColorConverter.c \ diff --git a/py/circuitpy_mpconfig.h b/py/circuitpy_mpconfig.h index e96d811acd..441dd5badf 100644 --- a/py/circuitpy_mpconfig.h +++ b/py/circuitpy_mpconfig.h @@ -88,6 +88,7 @@ #define MICROPY_PY_BUILTINS_MEMORYVIEW (1) #define MICROPY_PY_BUILTINS_MIN_MAX (1) #define MICROPY_PY_BUILTINS_PROPERTY (1) +#define MICROPY_PY_BUILTINS_REVERSED (1) #define MICROPY_PY_BUILTINS_SET (1) #define MICROPY_PY_BUILTINS_SLICE (1) #define MICROPY_PY_BUILTINS_SLICE_ATTRS (1) @@ -182,7 +183,6 @@ typedef long mp_off_t; #define MICROPY_PY_ALL_SPECIAL_METHODS (CIRCUITPY_FULL_BUILD) #define MICROPY_PY_BUILTINS_COMPLEX (CIRCUITPY_FULL_BUILD) #define MICROPY_PY_BUILTINS_FROZENSET (CIRCUITPY_FULL_BUILD) -#define MICROPY_PY_BUILTINS_REVERSED (CIRCUITPY_FULL_BUILD) #define MICROPY_PY_BUILTINS_STR_CENTER (CIRCUITPY_FULL_BUILD) #define MICROPY_PY_BUILTINS_STR_PARTITION (CIRCUITPY_FULL_BUILD) #define MICROPY_PY_BUILTINS_STR_SPLITLINES (CIRCUITPY_FULL_BUILD) @@ -252,8 +252,29 @@ extern const struct _mp_obj_module_t bleio_module; #if CIRCUITPY_BOARD #define BOARD_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_board), (mp_obj_t)&board_module }, extern const struct _mp_obj_module_t board_module; + +#define BOARD_I2C (defined(DEFAULT_I2C_BUS_SDA) && defined(DEFAULT_I2C_BUS_SCL)) +#define BOARD_SPI (defined(DEFAULT_SPI_BUS_SCK) && defined(DEFAULT_SPI_BUS_MISO) && defined(DEFAULT_SPI_BUS_MOSI)) +#define BOARD_UART (defined(DEFAULT_UART_BUS_RX) && defined(DEFAULT_UART_BUS_TX)) + +#if BOARD_I2C +#define BOARD_I2C_ROOT_POINTER mp_obj_t shared_i2c_bus; +#else +#define BOARD_I2C_ROOT_POINTER +#endif + +// SPI is always allocated off the heap. + +#if BOARD_UART +#define BOARD_UART_ROOT_POINTER mp_obj_t shared_uart_bus; +#else +#define BOARD_UART_ROOT_POINTER +#endif + #else #define BOARD_MODULE +#define BOARD_I2C_ROOT_POINTER +#define BOARD_UART_ROOT_POINTER #endif #if CIRCUITPY_BUSIO @@ -360,6 +381,13 @@ extern const struct _mp_obj_module_t os_module; #define OS_MODULE_ALT_NAME #endif +#if CIRCUITPY_PEW +extern const struct _mp_obj_module_t pew_module; +#define PEW_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__pew),(mp_obj_t)&pew_module }, +#else +#define PEW_MODULE +#endif + #if CIRCUITPY_PIXELBUF extern const struct _mp_obj_module_t pixelbuf_module; #define PIXELBUF_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__pixelbuf),(mp_obj_t)&pixelbuf_module }, @@ -474,13 +502,6 @@ extern const struct _mp_obj_module_t ustack_module; #define USTACK_MODULE #endif -#if CIRCUITPY_PEW -extern const struct _mp_obj_module_t pew_module; -#define PEW_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__pew),(mp_obj_t)&pew_module }, -#else -#define PEW_MODULE -#endif - // These modules are not yet in shared-bindings, but we prefer the non-uxxx names. #if MICROPY_PY_UERRNO #define ERRNO_MODULE { MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mp_module_uerrno) }, @@ -546,6 +567,7 @@ extern const struct _mp_obj_module_t pew_module; PULSEIO_MODULE \ RANDOM_MODULE \ RE_MODULE \ + ROTARYIO_MODULE \ RTC_MODULE \ SAMD_MODULE \ STAGE_MODULE \ @@ -585,6 +607,8 @@ extern const struct _mp_obj_module_t pew_module; mp_obj_t gamepad_singleton; \ mp_obj_t pew_singleton; \ mp_obj_t terminal_tilegrid_tiles; \ + BOARD_I2C_ROOT_POINTER \ + BOARD_UART_ROOT_POINTER \ FLASH_ROOT_POINTERS \ NETWORK_ROOT_POINTERS \ @@ -597,6 +621,7 @@ void run_background_tasks(void); #define MICROPY_VM_HOOK_RETURN run_background_tasks(); #define CIRCUITPY_AUTORELOAD_DELAY_MS 500 +#define CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS 1000 #define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt" #endif // __INCLUDED_MPCONFIG_CIRCUITPY_H diff --git a/py/circuitpy_mpconfig.mk b/py/circuitpy_mpconfig.mk index 0df6fff063..8ea72f0bfb 100644 --- a/py/circuitpy_mpconfig.mk +++ b/py/circuitpy_mpconfig.mk @@ -93,7 +93,7 @@ endif CFLAGS += -DCIRCUITPY_DISPLAYIO=$(CIRCUITPY_DISPLAYIO) ifndef CIRCUITPY_FREQUENCYIO -CIRCUITPY_FREQUENCYIO = 1 +CIRCUITPY_FREQUENCYIO = $(CIRCUITPY_FULL_BUILD) endif CFLAGS += -DCIRCUITPY_FREQUENCYIO=$(CIRCUITPY_FREQUENCYIO) diff --git a/py/gc.c b/py/gc.c index 81e609730e..e0439e9450 100755 --- a/py/gc.c +++ b/py/gc.c @@ -176,6 +176,8 @@ void gc_init(void *start, void *end) { mp_thread_mutex_init(&MP_STATE_MEM(gc_mutex)); #endif + MP_STATE_MEM(permanent_pointers) = NULL; + DEBUG_printf("GC layout:\n"); DEBUG_printf(" alloc table at %p, length " UINT_FMT " bytes, " UINT_FMT " blocks\n", MP_STATE_MEM(gc_alloc_table_start), MP_STATE_MEM(gc_alloc_table_byte_len), MP_STATE_MEM(gc_alloc_table_byte_len) * BLOCKS_PER_ATB); #if MICROPY_ENABLE_FINALISER @@ -359,6 +361,10 @@ void gc_collect_start(void) { size_t root_end = offsetof(mp_state_ctx_t, vm.qstr_last_chunk); gc_collect_root(ptrs + root_start / sizeof(void*), (root_end - root_start) / sizeof(void*)); + if (MP_STATE_MEM(permanent_pointers) != NULL) { + gc_collect_root(MP_STATE_MEM(permanent_pointers), BYTES_PER_BLOCK / sizeof(void*)); + } + #if MICROPY_ENABLE_PYSTACK // Trace root pointers from the Python stack. ptrs = (void**)(void*)MP_STATE_THREAD(pystack_start); @@ -938,6 +944,36 @@ void *gc_realloc(void *ptr_in, size_t n_bytes, bool allow_move) { } #endif // Alternative gc_realloc impl +bool gc_never_free(void *ptr) { + // Check to make sure the pointer is on the heap in the first place. + if (gc_nbytes(ptr) == 0) { + return false; + } + // Pointers are stored in a linked list where each block is BYTES_PER_BLOCK long and the first + // pointer is the next block of pointers. + void ** current_reference_block = MP_STATE_MEM(permanent_pointers); + while (current_reference_block != NULL) { + for (size_t i = 1; i < BYTES_PER_BLOCK / sizeof(void*); i++) { + if (current_reference_block[i] == NULL) { + current_reference_block[i] = ptr; + return true; + } + } + current_reference_block = current_reference_block[0]; + } + void** next_block = gc_alloc(BYTES_PER_BLOCK, false, true); + if (next_block == NULL) { + return false; + } + if (MP_STATE_MEM(permanent_pointers) == NULL) { + MP_STATE_MEM(permanent_pointers) = next_block; + } else { + current_reference_block[0] = next_block; + } + next_block[1] = ptr; + return true; +} + void gc_dump_info(void) { gc_info_t info; gc_info(&info); diff --git a/py/gc.h b/py/gc.h index c05e006b4f..757a2a6e00 100644 --- a/py/gc.h +++ b/py/gc.h @@ -57,6 +57,10 @@ bool gc_has_finaliser(const void *ptr); void *gc_make_long_lived(void *old_ptr); void *gc_realloc(void *ptr, size_t n_bytes, bool allow_move); +// Prevents a pointer from ever being freed because it establishes a permanent reference to it. Use +// very sparingly because it can leak memory. +bool gc_never_free(void *ptr); + typedef struct _gc_info_t { size_t total; size_t used; diff --git a/py/mpstate.h b/py/mpstate.h index eef8696d3f..a3d7e5dccb 100644 --- a/py/mpstate.h +++ b/py/mpstate.h @@ -103,6 +103,8 @@ typedef struct _mp_state_mem_t { // This is a global mutex used to make the GC thread-safe. mp_thread_mutex_t gc_mutex; #endif + + void** permanent_pointers; } mp_state_mem_t; // This structure hold runtime and VM information. It includes a section diff --git a/py/objtype.c b/py/objtype.c index f205c224e6..88e918827b 100644 --- a/py/objtype.c +++ b/py/objtype.c @@ -964,6 +964,21 @@ STATIC bool check_for_special_accessors(mp_obj_t key, mp_obj_t value) { #endif return false; } + +STATIC bool map_has_special_accessors(const mp_map_t *map) { + if (map == NULL) { + return false; + } + for (size_t i = 0; i < map->alloc; i++) { + if (MP_MAP_SLOT_IS_FILLED(map, i)) { + const mp_map_elem_t *elem = &map->table[i]; + if (check_for_special_accessors(elem->key, elem->value)) { + return true; + } + } + } + return false; +} #endif STATIC void type_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { @@ -1158,20 +1173,6 @@ mp_obj_t mp_obj_new_type(qstr name, mp_obj_t bases_tuple, mp_obj_t locals_dict) o->locals_dict = make_dict_long_lived(locals_dict, 10); - #if ENABLE_SPECIAL_ACCESSORS - // Check if the class has any special accessor methods - if (!(o->flags & TYPE_FLAG_HAS_SPECIAL_ACCESSORS)) { - for (size_t i = 0; i < o->locals_dict->map.alloc; i++) { - if (MP_MAP_SLOT_IS_FILLED(&o->locals_dict->map, i)) { - const mp_map_elem_t *elem = &o->locals_dict->map.table[i]; - if (check_for_special_accessors(elem->key, elem->value)) { - o->flags |= TYPE_FLAG_HAS_SPECIAL_ACCESSORS; - break; - } - } - } - } - #endif const mp_obj_type_t *native_base; size_t num_native_bases = instance_count_native_bases(o, &native_base); @@ -1180,6 +1181,17 @@ mp_obj_t mp_obj_new_type(qstr name, mp_obj_t bases_tuple, mp_obj_t locals_dict) } mp_map_t *locals_map = &o->locals_dict->map; + #if ENABLE_SPECIAL_ACCESSORS + // Check if the class has any special accessor methods + if (!(o->flags & TYPE_FLAG_HAS_SPECIAL_ACCESSORS) && + (map_has_special_accessors(locals_map) || + (num_native_bases == 1 && + native_base->locals_dict != NULL && + map_has_special_accessors(&native_base->locals_dict->map)))) { + o->flags |= TYPE_FLAG_HAS_SPECIAL_ACCESSORS; + } + #endif + mp_map_elem_t *elem = mp_map_lookup(locals_map, MP_OBJ_NEW_QSTR(MP_QSTR___new__), MP_MAP_LOOKUP); if (elem != NULL) { // __new__ slot exists; check if it is a function diff --git a/py/runtime.c b/py/runtime.c index 060748f1b8..1e01003373 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -1590,6 +1590,14 @@ NORETURN void mp_raise_NotImplementedError(const compressed_string_t *msg) { mp_raise_msg(&mp_type_NotImplementedError, msg); } +NORETURN void mp_raise_NotImplementedError_varg(const compressed_string_t *fmt, ...) { + va_list argptr; + va_start(argptr,fmt); + mp_obj_t exception = mp_obj_new_exception_msg_vlist(&mp_type_NotImplementedError, fmt, argptr); + va_end(argptr); + nlr_raise(exception); +} + #if MICROPY_STACK_CHECK || MICROPY_ENABLE_PYSTACK NORETURN void mp_raise_recursion_depth(void) { mp_raise_RuntimeError(translate("maximum recursion depth exceeded")); diff --git a/py/runtime.h b/py/runtime.h index e52d3232ee..2577c9dd53 100644 --- a/py/runtime.h +++ b/py/runtime.h @@ -162,6 +162,7 @@ NORETURN void mp_raise_OSError(int errno_); NORETURN void mp_raise_OSError_msg(const compressed_string_t *msg); NORETURN void mp_raise_OSError_msg_varg(const compressed_string_t *fmt, ...); NORETURN void mp_raise_NotImplementedError(const compressed_string_t *msg); +NORETURN void mp_raise_NotImplementedError_varg(const compressed_string_t *fmt, ...); NORETURN void mp_raise_recursion_depth(void); #if MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG diff --git a/shared-bindings/_stage/__init__.c b/shared-bindings/_stage/__init__.c index 24a3596645..dc9dbef659 100644 --- a/shared-bindings/_stage/__init__.c +++ b/shared-bindings/_stage/__init__.c @@ -28,6 +28,7 @@ #include "py/mperrno.h" #include "py/runtime.h" #include "shared-bindings/busio/SPI.h" +#include "shared-bindings/displayio/Display.h" #include "shared-module/_stage/__init__.h" #include "Layer.h" #include "Text.h" @@ -49,7 +50,7 @@ //| Layer //| Text //| -//| .. function:: render(x0, y0, x1, y1, layers, buffer, spi) +//| .. function:: render(x0, y0, x1, y1, layers, buffer, display) //| //| Render and send to the display a fragment of the screen. //| @@ -59,11 +60,8 @@ //| :param int y1: Bottom edge of the fragment. //| :param list layers: A list of the :py:class:`~_stage.Layer` objects. //| :param bytearray buffer: A buffer to use for rendering. -//| :param ~busio.SPI spi: The SPI bus to use. +//| :param ~displayio.Display display: The display to use. //| -//| Note that this function only sends the raw pixel data. Setting up -//| the display for receiving it and handling the chip-select and -//| data-command pins has to be done outside of it. //| There are also no sanity checks, outside of the basic overflow //| checking. The caller is responsible for making the passed parameters //| valid. @@ -85,12 +83,19 @@ STATIC mp_obj_t stage_render(size_t n_args, const mp_obj_t *args) { uint16_t *buffer = bufinfo.buf; size_t buffer_size = bufinfo.len / 2; // 16-bit indexing - busio_spi_obj_t *spi = MP_OBJ_TO_PTR(args[6]); - - if (!render_stage(x0, y0, x1, y1, layers, layers_size, - buffer, buffer_size, spi)) { - mp_raise_OSError(MP_EIO); + if (!MP_OBJ_IS_TYPE(args[6], &displayio_display_type)) { + mp_raise_TypeError(translate("argument num/types mismatch")); } + displayio_display_obj_t *display = MP_OBJ_TO_PTR(args[6]); + + while (!displayio_display_begin_transaction(display)) { +#ifdef MICROPY_VM_HOOK_LOOP + MICROPY_VM_HOOK_LOOP ; +#endif + } + displayio_display_set_region_to_update(display, x0, y0, x1, y1); + render_stage(x0, y0, x1, y1, layers, layers_size, buffer, buffer_size, display); + displayio_display_end_transaction(display); return mp_const_none; } diff --git a/shared-bindings/bleio/CharacteristicBuffer.c b/shared-bindings/bleio/CharacteristicBuffer.c index 66d164954e..c368de3614 100644 --- a/shared-bindings/bleio/CharacteristicBuffer.c +++ b/shared-bindings/bleio/CharacteristicBuffer.c @@ -144,7 +144,7 @@ STATIC mp_uint_t bleio_characteristic_buffer_ioctl(mp_obj_t self_in, mp_uint_t r raise_error_if_deinited(common_hal_bleio_characteristic_buffer_deinited(self)); raise_error_if_not_connected(self); if (!common_hal_bleio_characteristic_buffer_connected(self)) { - mp_raise_ValueError(translate("Not connected.")); + mp_raise_ValueError(translate("Not connected")); } mp_uint_t ret; if (request == MP_IOCTL_POLL) { diff --git a/shared-bindings/board/__init__.c b/shared-bindings/board/__init__.c index 06c2f218fb..82a0cab675 100644 --- a/shared-bindings/board/__init__.c +++ b/shared-bindings/board/__init__.c @@ -25,6 +25,7 @@ */ #include "py/obj.h" +#include "py/runtime.h" #include "shared-bindings/board/__init__.h" @@ -37,6 +38,81 @@ //| //| Common container for board base pin names. These will vary from board to //| board so don't expect portability when using this module. +//| +//| .. warning:: The board module varies by board. The APIs documented here may or may not be +//| available on a specific board. + +//| .. method:: I2C() +//| +//| Returns the `busio.I2C` object for the board designated SDA and SCL pins. It is a singleton. +//| + +#if BOARD_I2C +mp_obj_t board_i2c(void) { + mp_obj_t singleton = common_hal_board_get_i2c(); + if (singleton != NULL) { + return singleton; + } + assert_pin_free(DEFAULT_I2C_BUS_SDA); + assert_pin_free(DEFAULT_I2C_BUS_SCL); + return common_hal_board_create_i2c(); +} +#else +mp_obj_t board_i2c(void) { + mp_raise_NotImplementedError_varg(translate("No default %q bus"), MP_QSTR_I2C); + return NULL; +} +#endif +MP_DEFINE_CONST_FUN_OBJ_0(board_i2c_obj, board_i2c); + + +//| .. method:: SPI() +//| +//| Returns the `busio.SPI` object for the board designated SCK, MOSI and MISO pins. It is a +//| singleton. +//| +#if BOARD_SPI +mp_obj_t board_spi(void) { + mp_obj_t singleton = common_hal_board_get_spi(); + if (singleton != NULL) { + return singleton; + } + assert_pin_free(DEFAULT_SPI_BUS_SCK); + assert_pin_free(DEFAULT_SPI_BUS_MOSI); + assert_pin_free(DEFAULT_SPI_BUS_MISO); + return common_hal_board_create_spi(); +} +#else +mp_obj_t board_spi(void) { + mp_raise_NotImplementedError_varg(translate("No default %q bus"), MP_QSTR_SPI); + return NULL; +} +#endif +MP_DEFINE_CONST_FUN_OBJ_0(board_spi_obj, board_spi); + +//| .. method:: UART() +//| +//| Returns the `busio.UART` object for the board designated TX and RX pins. It is a singleton. +//| +#if BOARD_UART +mp_obj_t board_uart(void) { + mp_obj_t singleton = common_hal_board_get_uart(); + if (singleton != NULL) { + return singleton; + } + + assert_pin_free(DEFAULT_UART_BUS_RX); + assert_pin_free(DEFAULT_UART_BUS_TX); + + return common_hal_board_create_uart(); +} +#else +mp_obj_t board_uart(void) { + mp_raise_NotImplementedError_varg(translate("No default %q bus"), MP_QSTR_SPI); + return NULL; +} +#endif +MP_DEFINE_CONST_FUN_OBJ_0(board_uart_obj, board_uart); const mp_obj_module_t board_module = { .base = { &mp_type_module }, diff --git a/shared-bindings/board/__init__.h b/shared-bindings/board/__init__.h index 2730e5f51b..a9b652ba8d 100644 --- a/shared-bindings/board/__init__.h +++ b/shared-bindings/board/__init__.h @@ -33,4 +33,16 @@ extern const mp_obj_dict_t board_module_globals; +mp_obj_t common_hal_board_get_i2c(void); +mp_obj_t common_hal_board_create_i2c(void); +MP_DECLARE_CONST_FUN_OBJ_0(board_i2c_obj); + +mp_obj_t common_hal_board_get_spi(void); +mp_obj_t common_hal_board_create_spi(void); +MP_DECLARE_CONST_FUN_OBJ_0(board_spi_obj); + +mp_obj_t common_hal_board_get_uart(void); +mp_obj_t common_hal_board_create_uart(void); +MP_DECLARE_CONST_FUN_OBJ_0(board_uart_obj); + #endif // MICROPY_INCLUDED_SHARED_BINDINGS_BOARD___INIT___H diff --git a/shared-bindings/busio/SPI.h b/shared-bindings/busio/SPI.h index 2d12b8b764..b7b0715d13 100644 --- a/shared-bindings/busio/SPI.h +++ b/shared-bindings/busio/SPI.h @@ -61,6 +61,12 @@ extern bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, uint8_t *data_o // Return actual SPI bus frequency. uint32_t common_hal_busio_spi_get_frequency(busio_spi_obj_t* self); +// Return SPI bus phase. +uint8_t common_hal_busio_spi_get_phase(busio_spi_obj_t* self); + +// Return SPI bus polarity. +uint8_t common_hal_busio_spi_get_polarity(busio_spi_obj_t* self); + // This is used by the supervisor to claim SPI devices indefinitely. extern void common_hal_busio_spi_never_reset(busio_spi_obj_t *self); diff --git a/shared-bindings/busio/UART.c b/shared-bindings/busio/UART.c index b40f3fa031..94ad1bd3ed 100644 --- a/shared-bindings/busio/UART.c +++ b/shared-bindings/busio/UART.c @@ -57,7 +57,7 @@ //| :param int bits: the number of bits per byte, 7, 8 or 9. //| :param Parity parity: the parity used for error checking. //| :param int stop: the number of stop bits, 1 or 2. -//| :param int timeout: the timeout in seconds to wait for the first character and between subsequent characters. Raises ``ValueError`` if timeout >100 seconds. +//| :param float timeout: the timeout in seconds to wait for the first character and between subsequent characters. Raises ``ValueError`` if timeout >100 seconds. //| :param int receiver_buffer_size: the character length of the read buffer (0 to disable). (When a character is 9 bits the buffer will be 2 * receiver_buffer_size bytes.) //| //| *New in CircuitPython 4.0:* ``timeout`` has incompatibly changed units from milliseconds to seconds. diff --git a/shared-bindings/digitalio/DigitalInOut.h b/shared-bindings/digitalio/DigitalInOut.h index 2aaa31b7f4..0379790985 100644 --- a/shared-bindings/digitalio/DigitalInOut.h +++ b/shared-bindings/digitalio/DigitalInOut.h @@ -52,5 +52,6 @@ void common_hal_digitalio_digitalinout_set_drive_mode(digitalio_digitalinout_obj digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(digitalio_digitalinout_obj_t* self); void common_hal_digitalio_digitalinout_set_pull(digitalio_digitalinout_obj_t* self, digitalio_pull_t pull); digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(digitalio_digitalinout_obj_t* self); +void common_hal_digitalio_digitalinout_never_reset(digitalio_digitalinout_obj_t *self); #endif // MICROPY_INCLUDED_SHARED_BINDINGS_DIGITALIO_DIGITALINOUT_H diff --git a/shared-bindings/displayio/Bitmap.c b/shared-bindings/displayio/Bitmap.c index 3612b8d63f..91c17f2d13 100644 --- a/shared-bindings/displayio/Bitmap.c +++ b/shared-bindings/displayio/Bitmap.c @@ -58,14 +58,22 @@ STATIC mp_obj_t displayio_bitmap_make_new(const mp_obj_type_t *type, size_t n_ar uint32_t width = mp_obj_get_int(pos_args[0]); uint32_t height = mp_obj_get_int(pos_args[1]); uint32_t value_count = mp_obj_get_int(pos_args[2]); - uint32_t power_of_two = 1; - while (value_count > (1U << power_of_two)) { - power_of_two <<= 1; + uint32_t bits = 1; + + if (value_count == 0) { + mp_raise_ValueError(translate("value_count must be > 0")); + } + while ((value_count - 1) >> bits) { + if (bits < 8) { + bits <<= 1; + } else { + bits += 8; + } } displayio_bitmap_t *self = m_new_obj(displayio_bitmap_t); self->base.type = &displayio_bitmap_type; - common_hal_displayio_bitmap_construct(self, width, height, power_of_two); + common_hal_displayio_bitmap_construct(self, width, height, bits); return MP_OBJ_FROM_PTR(self); } diff --git a/shared-bindings/displayio/Display.c b/shared-bindings/displayio/Display.c index 1f46330e82..17f275bc07 100644 --- a/shared-bindings/displayio/Display.c +++ b/shared-bindings/displayio/Display.c @@ -50,7 +50,7 @@ //| Most people should not use this class directly. Use a specific display driver instead that will //| contain the initialization sequence at minimum. //| -//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None) +//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None, single_byte_bounds=False, data_as_commands=False) //| //| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`). //| @@ -91,9 +91,11 @@ //| :param int write_ram_command: Command used to write pixels values into the update region //| :param int set_vertical_scroll: Command used to set the first row to show //| :param microcontroller.Pin backlight_pin: Pin connected to the display's backlight +//| :param bool single_byte_bounds: Display column and row commands use single bytes +//| :param bool data_as_commands: Treat all init and boundary data as SPI commands. Certain displays require this. //| STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { - enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin }; + enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_single_byte_bounds, ARG_data_as_commands }; static const mp_arg_t allowed_args[] = { { MP_QSTR_display_bus, MP_ARG_REQUIRED | MP_ARG_OBJ }, { MP_QSTR_init_sequence, MP_ARG_REQUIRED | MP_ARG_OBJ }, @@ -108,6 +110,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a { MP_QSTR_write_ram_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2c} }, { MP_QSTR_set_vertical_scroll, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x0} }, { MP_QSTR_backlight_pin, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} }, + { MP_QSTR_single_byte_bounds, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} }, + { MP_QSTR_data_as_commands, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} }, }; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); @@ -146,18 +150,26 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a args[ARG_color_depth].u_int, args[ARG_set_column_command].u_int, args[ARG_set_row_command].u_int, args[ARG_write_ram_command].u_int, args[ARG_set_vertical_scroll].u_int, - bufinfo.buf, bufinfo.len, MP_OBJ_TO_PTR(backlight_pin)); + bufinfo.buf, bufinfo.len, MP_OBJ_TO_PTR(backlight_pin), + args[ARG_single_byte_bounds].u_bool, + args[ARG_data_as_commands].u_bool); return self; } +// Helper to ensure we have the native super class instead of a subclass. +static displayio_display_obj_t* native_display(mp_obj_t display_obj) { + mp_obj_t native_display = mp_instance_cast_to_native_base(display_obj, &displayio_display_type); + return MP_OBJ_TO_PTR(native_display); +} + //| .. method:: show(group) //| //| Switches to displaying the given group of layers. When group is None, the default //| CircuitPython terminal will be shown. //| STATIC mp_obj_t displayio_display_obj_show(mp_obj_t self_in, mp_obj_t group_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); displayio_group_t* group = NULL; if (group_in != mp_const_none) { mp_obj_t native_layer = mp_instance_cast_to_native_base(group_in, &displayio_group_type); @@ -177,7 +189,7 @@ MP_DEFINE_CONST_FUN_OBJ_2(displayio_display_show_obj, displayio_display_obj_show //| Queues up a display refresh that happens in the background. //| STATIC mp_obj_t displayio_display_obj_refresh_soon(mp_obj_t self_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); common_hal_displayio_display_refresh_soon(self); return mp_const_none; } @@ -189,7 +201,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_refresh_soon_obj, displayio_display_ //| behind the rendered frames. In that case, this will return immediately with the wait count. //| STATIC mp_obj_t displayio_display_obj_wait_for_frame(mp_obj_t self_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_display_wait_for_frame(self)); } MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_wait_for_frame_obj, displayio_display_obj_wait_for_frame); @@ -201,7 +213,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_wait_for_frame_obj, displayio_displa //| effect. To control the brightness, auto_brightness must be false. //| STATIC mp_obj_t displayio_display_obj_get_brightness(mp_obj_t self_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); mp_float_t brightness = common_hal_displayio_display_get_brightness(self); if (brightness < 0) { mp_raise_RuntimeError(translate("Brightness not adjustable")); @@ -211,7 +223,7 @@ STATIC mp_obj_t displayio_display_obj_get_brightness(mp_obj_t self_in) { MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_get_brightness_obj, displayio_display_obj_get_brightness); STATIC mp_obj_t displayio_display_obj_set_brightness(mp_obj_t self_in, mp_obj_t brightness) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); bool ok = common_hal_displayio_display_set_brightness(self, mp_obj_get_float(brightness)); if (!ok) { mp_raise_RuntimeError(translate("Brightness not adjustable")); @@ -232,13 +244,13 @@ const mp_obj_property_t displayio_display_brightness_obj = { //| True when the display brightness is auto adjusted. //| STATIC mp_obj_t displayio_display_obj_get_auto_brightness(mp_obj_t self_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); return mp_obj_new_bool(common_hal_displayio_display_get_auto_brightness(self)); } MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_get_auto_brightness_obj, displayio_display_obj_get_auto_brightness); STATIC mp_obj_t displayio_display_obj_set_auto_brightness(mp_obj_t self_in, mp_obj_t auto_brightness) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); common_hal_displayio_display_set_auto_brightness(self, mp_obj_is_true(auto_brightness)); @@ -259,7 +271,7 @@ const mp_obj_property_t displayio_display_auto_brightness_obj = { //| //| STATIC mp_obj_t displayio_display_obj_get_width(mp_obj_t self_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_display_get_width(self)); } MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_get_width_obj, displayio_display_obj_get_width); @@ -277,7 +289,7 @@ const mp_obj_property_t displayio_display_width_obj = { //| //| STATIC mp_obj_t displayio_display_obj_get_height(mp_obj_t self_in) { - displayio_display_obj_t *self = MP_OBJ_TO_PTR(self_in); + displayio_display_obj_t *self = native_display(self_in); return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_display_get_height(self)); } MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_get_height_obj, displayio_display_obj_get_height); @@ -289,6 +301,25 @@ const mp_obj_property_t displayio_display_height_obj = { (mp_obj_t)&mp_const_none_obj}, }; +//| .. attribute:: bus +//| +//| The bus being used by the display +//| +//| +STATIC mp_obj_t displayio_display_obj_get_bus(mp_obj_t self_in) { + displayio_display_obj_t *self = native_display(self_in); + return self->bus; +} +MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_get_bus_obj, displayio_display_obj_get_bus); + +const mp_obj_property_t displayio_display_bus_obj = { + .base.type = &mp_type_property, + .proxy = {(mp_obj_t)&displayio_display_get_bus_obj, + (mp_obj_t)&mp_const_none_obj, + (mp_obj_t)&mp_const_none_obj}, +}; + + STATIC const mp_rom_map_elem_t displayio_display_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_show), MP_ROM_PTR(&displayio_display_show_obj) }, { MP_ROM_QSTR(MP_QSTR_refresh_soon), MP_ROM_PTR(&displayio_display_refresh_soon_obj) }, @@ -299,6 +330,7 @@ STATIC const mp_rom_map_elem_t displayio_display_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_display_width_obj) }, { MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_display_height_obj) }, + { MP_ROM_QSTR(MP_QSTR_bus), MP_ROM_PTR(&displayio_display_bus_obj) }, }; STATIC MP_DEFINE_CONST_DICT(displayio_display_locals_dict, displayio_display_locals_dict_table); diff --git a/shared-bindings/displayio/Display.h b/shared-bindings/displayio/Display.h index 7d6444a2d4..3b855195d6 100644 --- a/shared-bindings/displayio/Display.h +++ b/shared-bindings/displayio/Display.h @@ -40,7 +40,8 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self, mp_obj_t bus, uint16_t width, uint16_t height, int16_t colstart, int16_t rowstart, uint16_t rotation, uint16_t color_depth, uint8_t set_column_command, uint8_t set_row_command, uint8_t write_ram_command, uint8_t set_vertical_scroll, - uint8_t* init_sequence, uint16_t init_sequence_len, const mcu_pin_obj_t* backlight_pin); + uint8_t* init_sequence, uint16_t init_sequence_len, const mcu_pin_obj_t* backlight_pin, bool single_byte_bounds, + bool data_as_commands); int32_t common_hal_displayio_display_wait_for_frame(displayio_display_obj_t* self); diff --git a/shared-bindings/displayio/FourWire.h b/shared-bindings/displayio/FourWire.h index b8b00372ce..b65b1b5b79 100644 --- a/shared-bindings/displayio/FourWire.h +++ b/shared-bindings/displayio/FourWire.h @@ -31,7 +31,6 @@ #include "common-hal/microcontroller/Pin.h" #include "shared-module/displayio/Group.h" -#include "supervisor/shared/board_busses.h" extern const mp_obj_type_t displayio_fourwire_type; diff --git a/shared-bindings/displayio/TileGrid.c b/shared-bindings/displayio/TileGrid.c index a45feaec41..2b41eb8fd5 100644 --- a/shared-bindings/displayio/TileGrid.c +++ b/shared-bindings/displayio/TileGrid.c @@ -103,7 +103,12 @@ STATIC mp_obj_t displayio_tilegrid_make_new(const mp_obj_type_t *type, size_t n_ bitmap_width = bmp->width; bitmap_height = bmp->height; } else { - mp_raise_TypeError(translate("unsupported bitmap type")); + mp_raise_TypeError_varg(translate("unsupported %q type"), MP_QSTR_bitmap); + } + mp_obj_t pixel_shader = args[ARG_pixel_shader].u_obj; + if (!MP_OBJ_IS_TYPE(pixel_shader, &displayio_colorconverter_type) && + !MP_OBJ_IS_TYPE(pixel_shader, &displayio_palette_type)) { + mp_raise_TypeError_varg(translate("unsupported %q type"), MP_QSTR_pixel_shader); } uint16_t tile_width = args[ARG_tile_width].u_int; if (tile_width == 0) { @@ -126,7 +131,7 @@ STATIC mp_obj_t displayio_tilegrid_make_new(const mp_obj_type_t *type, size_t n_ displayio_tilegrid_t *self = m_new_obj(displayio_tilegrid_t); self->base.type = &displayio_tilegrid_type; common_hal_displayio_tilegrid_construct(self, native, bitmap_width / tile_width, - args[ARG_pixel_shader].u_obj, args[ARG_width].u_int, args[ARG_height].u_int, + pixel_shader, args[ARG_width].u_int, args[ARG_height].u_int, tile_width, tile_height, x, y, args[ARG_default_tile].u_int); return MP_OBJ_FROM_PTR(self); } @@ -259,9 +264,10 @@ STATIC mp_obj_t tilegrid_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t v mp_obj_get_array_fixed_n(index_obj, 2, &items); x = mp_obj_get_int(items[0]); y = mp_obj_get_int(items[1]); - if (x >= common_hal_displayio_tilegrid_get_width(self) || y >= common_hal_displayio_tilegrid_get_height(self)) { - mp_raise_IndexError(translate("tile index out of bounds")); - } + } + if (x >= common_hal_displayio_tilegrid_get_width(self) || + y >= common_hal_displayio_tilegrid_get_height(self)) { + mp_raise_IndexError(translate("tile index out of bounds")); } if (value_obj == MP_OBJ_SENTINEL) { diff --git a/shared-bindings/rtc/RTC.c b/shared-bindings/rtc/RTC.c index 474d4a399a..17dccdb03c 100644 --- a/shared-bindings/rtc/RTC.c +++ b/shared-bindings/rtc/RTC.c @@ -36,22 +36,6 @@ #include "shared-bindings/time/__init__.h" #include "supervisor/shared/translate.h" -void MP_WEAK common_hal_rtc_get_time(timeutils_struct_time_t *tm) { - mp_raise_NotImplementedError(translate("RTC is not supported on this board")); -} - -void MP_WEAK common_hal_rtc_set_time(timeutils_struct_time_t *tm) { - mp_raise_NotImplementedError(translate("RTC is not supported on this board")); -} - -int MP_WEAK common_hal_rtc_get_calibration(void) { - return 0; -} - -void MP_WEAK common_hal_rtc_set_calibration(int calibration) { - mp_raise_NotImplementedError(translate("RTC calibration is not supported on this board")); -} - const rtc_rtc_obj_t rtc_rtc_obj = {{&rtc_rtc_type}}; //| .. currentmodule:: rtc diff --git a/shared-bindings/socket/__init__.c b/shared-bindings/socket/__init__.c index 29d47de568..c59724efcf 100644 --- a/shared-bindings/socket/__init__.c +++ b/shared-bindings/socket/__init__.c @@ -240,6 +240,52 @@ STATIC mp_obj_t socket_send(mp_obj_t self_in, mp_obj_t buf_in) { } STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_send_obj, socket_send); + +// helper function for socket_recv and socket_recv_into to handle common operations of both +STATIC mp_int_t _socket_recv_into(mod_network_socket_obj_t *sock, byte *buf, mp_int_t len) { + int _errno; + mp_int_t ret = sock->nic_type->recv(sock, buf, len, &_errno); + if (ret == -1) { + mp_raise_OSError(_errno); + } + return len; +} + + +//| .. method:: recv_into(buffer[, bufsize]) +//| +//| Reads some bytes from the connected remote address, writing +//| into the provided buffer. If bufsize <= len(buffer) is given, +//| a maximum of bufsize bytes will be read into the buffer. If no +//| valid value is given for bufsize, the default is the length of +//| the given buffer. +//| +//| Suits sockets of type SOCK_STREAM +//| Returns an int of number of bytes read. +//| +//| :param bytearray buffer: buffer to receive into +//| :param int bufsize: optionally, a maximum number of bytes to read. + +STATIC mp_obj_t socket_recv_into(size_t n_args, const mp_obj_t *args) { + mod_network_socket_obj_t *self = MP_OBJ_TO_PTR(args[0]); + if (self->nic == MP_OBJ_NULL) { + // not connected + mp_raise_OSError(MP_ENOTCONN); + } + mp_buffer_info_t bufinfo; + mp_get_buffer_raise(args[1], &bufinfo, MP_BUFFER_WRITE); + mp_int_t len; + if (n_args == 3) { + len = mp_obj_get_int(args[2]); + } + if (n_args == 2 || (size_t) len > bufinfo.len) { + len = bufinfo.len; + } + mp_int_t ret = _socket_recv_into(self, (byte*)bufinfo.buf, len); + return mp_obj_new_int_from_uint(ret); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_recv_into_obj, 2, 3, socket_recv_into); + //| .. method:: recv(bufsize) //| //| Reads some bytes from the connected remote address. @@ -257,11 +303,7 @@ STATIC mp_obj_t socket_recv(mp_obj_t self_in, mp_obj_t len_in) { mp_int_t len = mp_obj_get_int(len_in); vstr_t vstr; vstr_init_len(&vstr, len); - int _errno; - mp_int_t ret = self->nic_type->recv(self, (byte*)vstr.buf, len, &_errno); - if (ret == -1) { - mp_raise_OSError(_errno); - } + mp_int_t ret = _socket_recv_into(self, (byte*)vstr.buf, len); if (ret == 0) { return mp_const_empty_bytes; } @@ -436,6 +478,7 @@ STATIC const mp_rom_map_elem_t socket_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_recv), MP_ROM_PTR(&socket_recv_obj) }, { MP_ROM_QSTR(MP_QSTR_sendto), MP_ROM_PTR(&socket_sendto_obj) }, { MP_ROM_QSTR(MP_QSTR_recvfrom), MP_ROM_PTR(&socket_recvfrom_obj) }, + { MP_ROM_QSTR(MP_QSTR_recv_into), MP_ROM_PTR(&socket_recv_into_obj) }, { MP_ROM_QSTR(MP_QSTR_setsockopt), MP_ROM_PTR(&socket_setsockopt_obj) }, { MP_ROM_QSTR(MP_QSTR_settimeout), MP_ROM_PTR(&socket_settimeout_obj) }, { MP_ROM_QSTR(MP_QSTR_setblocking), MP_ROM_PTR(&socket_setblocking_obj) }, diff --git a/shared-module/_stage/__init__.c b/shared-module/_stage/__init__.c index 86f5ee7957..1af279e92b 100644 --- a/shared-module/_stage/__init__.c +++ b/shared-module/_stage/__init__.c @@ -31,10 +31,10 @@ #include "shared-bindings/_stage/Text.h" -bool render_stage(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, +void render_stage(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, mp_obj_t *layers, size_t layers_size, uint16_t *buffer, size_t buffer_size, - busio_spi_obj_t *spi) { + displayio_display_obj_t *display) { size_t index = 0; for (uint16_t y = y0; y < y1; ++y) { @@ -55,19 +55,13 @@ bool render_stage(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, index += 1; // The buffer is full, send it. if (index >= buffer_size) { - if (!common_hal_busio_spi_write(spi, - ((uint8_t*)buffer), buffer_size * 2)) { - return false; - } + display->send(display->bus, false, ((uint8_t*)buffer), buffer_size * 2); index = 0; } } } // Send the remaining data. if (index) { - if (!common_hal_busio_spi_write(spi, ((uint8_t*)buffer), index * 2)) { - return false; - } + display->send(display->bus, false, ((uint8_t*)buffer), index * 2); } - return true; } diff --git a/shared-module/_stage/__init__.h b/shared-module/_stage/__init__.h index d56a26940f..d263302b48 100644 --- a/shared-module/_stage/__init__.h +++ b/shared-module/_stage/__init__.h @@ -27,16 +27,16 @@ #ifndef MICROPY_INCLUDED_SHARED_MODULE__STAGE_H #define MICROPY_INCLUDED_SHARED_MODULE__STAGE_H -#include "shared-bindings/busio/SPI.h" +#include "shared-bindings/displayio/Display.h" #include #include #include "py/obj.h" #define TRANSPARENT (0x1ff8) -bool render_stage(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, +void render_stage(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, mp_obj_t *layers, size_t layers_size, uint16_t *buffer, size_t buffer_size, - busio_spi_obj_t *spi); + displayio_display_obj_t *display); #endif // MICROPY_INCLUDED_SHARED_MODULE__STAGE diff --git a/shared-module/board/__init__.c b/shared-module/board/__init__.c new file mode 100644 index 0000000000..ac4de2fe5e --- /dev/null +++ b/shared-module/board/__init__.c @@ -0,0 +1,121 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "shared-bindings/busio/I2C.h" +#include "shared-bindings/busio/SPI.h" +#include "shared-bindings/busio/UART.h" + +#include "shared-bindings/microcontroller/Pin.h" +#include "supervisor/shared/translate.h" +#include "mpconfigboard.h" +#include "py/runtime.h" + +#ifdef CIRCUITPY_DISPLAYIO +#include "shared-module/displayio/__init__.h" +#endif + +#if BOARD_I2C +mp_obj_t common_hal_board_get_i2c(void) { + return MP_STATE_VM(shared_i2c_bus); +} + +mp_obj_t common_hal_board_create_i2c(void) { + busio_i2c_obj_t *self = m_new_ll_obj(busio_i2c_obj_t); + self->base.type = &busio_i2c_type; + + common_hal_busio_i2c_construct(self, DEFAULT_I2C_BUS_SCL, DEFAULT_I2C_BUS_SDA, 400000, 0); + MP_STATE_VM(shared_i2c_bus) = MP_OBJ_FROM_PTR(self); + return MP_STATE_VM(shared_i2c_bus); +} +#endif + + +#if BOARD_SPI +// Statically allocate the SPI object so it can live past the end of the heap and into the next VM. +// That way it can be used by built-in FourWire displays and be accessible through board.SPI(). +STATIC busio_spi_obj_t spi_obj; +STATIC mp_obj_t spi_singleton = NULL; + +mp_obj_t common_hal_board_get_spi(void) { + return spi_singleton; +} + +mp_obj_t common_hal_board_create_spi(void) { + if (spi_singleton != NULL) { + return spi_singleton; + } + busio_spi_obj_t *self = &spi_obj; + self->base.type = &busio_spi_type; + + const mcu_pin_obj_t* clock = MP_OBJ_TO_PTR(DEFAULT_SPI_BUS_SCK); + const mcu_pin_obj_t* mosi = MP_OBJ_TO_PTR(DEFAULT_SPI_BUS_MOSI); + const mcu_pin_obj_t* miso = MP_OBJ_TO_PTR(DEFAULT_SPI_BUS_MISO); + common_hal_busio_spi_construct(self, clock, mosi, miso); + spi_singleton = (mp_obj_t)self; + return spi_singleton; +} +#endif + +#if BOARD_UART +mp_obj_t common_hal_board_get_uart(void) { + return MP_STATE_VM(shared_uart_bus); +} + +mp_obj_t common_hal_board_create_uart(void) { + busio_uart_obj_t *self = m_new_ll_obj(busio_uart_obj_t); + self->base.type = &busio_uart_type; + + const mcu_pin_obj_t* rx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_RX); + const mcu_pin_obj_t* tx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_TX); + + common_hal_busio_uart_construct(self, tx, rx, 9600, 8, PARITY_NONE, 1, 1000, 64); + MP_STATE_VM(shared_uart_bus) = MP_OBJ_FROM_PTR(self); + return MP_STATE_VM(shared_uart_bus); +} +#endif + +void reset_board_busses(void) { +#if BOARD_I2C + MP_STATE_VM(shared_i2c_bus) = NULL; +#endif +#if BOARD_SPI + bool display_using_spi = false; + #ifdef CIRCUITPY_DISPLAYIO + for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) { + if (displays[i].fourwire_bus.bus == spi_singleton) { + display_using_spi = true; + break; + } + } + #endif + if (!display_using_spi) { + spi_singleton = NULL; + } +#endif +#if BOARD_UART + MP_STATE_VM(shared_uart_bus) = NULL; +#endif +} diff --git a/supervisor/shared/board_busses.h b/shared-module/board/__init__.h similarity index 72% rename from supervisor/shared/board_busses.h rename to shared-module/board/__init__.h index 0ccb3ba6a6..f7eecd4170 100644 --- a/supervisor/shared/board_busses.h +++ b/shared-module/board/__init__.h @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2018 Scott Shawcroft for Adafruit Industries + * Copyright (c) 2019 Scott Shawcroft for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,20 +24,9 @@ * THE SOFTWARE. */ -#ifndef MICROPY_INCLUDED_SUPERVISOR_SHARED_BOARD_BUSSES_H -#define MICROPY_INCLUDED_SUPERVISOR_SHARED_BOARD_BUSSES_H - -#include "py/obj.h" - -mp_obj_t board_i2c(void); -MP_DECLARE_CONST_FUN_OBJ_0(board_i2c_obj); - -mp_obj_t board_spi(void); -MP_DECLARE_CONST_FUN_OBJ_0(board_spi_obj); - -mp_obj_t board_uart(void); -MP_DECLARE_CONST_FUN_OBJ_0(board_uart_obj); +#ifndef MICROPY_INCLUDED_SHARED_MODULE_BOARD__INIT__H +#define MICROPY_INCLUDED_SHARED_MODULE_BOARD__INIT__H void reset_board_busses(void); -#endif // MICROPY_INCLUDED_SUPERVISOR_SHARED_BOARD_BUSSES_H +#endif // MICROPY_INCLUDED_SHARED_MODULE_BOARD__INIT__H diff --git a/shared-module/displayio/Bitmap.c b/shared-module/displayio/Bitmap.c index 2b2c70ab68..f8dc24c15e 100644 --- a/shared-module/displayio/Bitmap.c +++ b/shared-module/displayio/Bitmap.c @@ -33,20 +33,21 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t width, uint32_t height, uint32_t bits_per_value) { uint32_t row_width = width * bits_per_value; - // word align - if (row_width % 32 != 0) { - self->stride = (row_width / 32 + 1); + // align to size_t + uint8_t align_bits = 8 * sizeof(size_t); + if (row_width % align_bits != 0) { + self->stride = (row_width / align_bits + 1); } else { - self->stride = row_width / 32; + self->stride = row_width / align_bits; } self->width = width; self->height = height; - self->data = m_malloc(self->stride * height * sizeof(uint32_t), false); + self->data = m_malloc(self->stride * height * sizeof(size_t), false); self->read_only = false; self->bits_per_value = bits_per_value; - if (bits_per_value > 8) { - mp_raise_NotImplementedError(translate("Only bit maps of 8 bit color or less are supported")); + if (bits_per_value > 8 && bits_per_value != 16 && bits_per_value != 32) { + mp_raise_NotImplementedError(translate("Invalid bits per value")); } // Division and modulus can be slow because it has to handle any integer. We know bits_per_value @@ -56,7 +57,7 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi self->x_shift = 0; // Used to divide the index by the number of pixels per word. Its used in a // shift which effectively divides by 2 ** x_shift. uint32_t power_of_two = 1; - while (power_of_two < 32 / bits_per_value ) { + while (power_of_two < align_bits / bits_per_value ) { self->x_shift++; power_of_two <<= 1; } @@ -76,41 +77,27 @@ uint32_t common_hal_displayio_bitmap_get_bits_per_value(displayio_bitmap_t *self return self->bits_per_value; } -void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, uint16_t len) { - if (len != self->stride * sizeof(uint32_t)) { - mp_raise_ValueError(translate("row must be packed and word aligned")); - } - uint32_t* row_value = self->data + (y * self->stride); - // Do the memcpy ourselves since we may want to flip endianness. - for (uint32_t i = 0; i < self->stride; i++) { - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wcast-align" - uint32_t value = ((uint32_t *)data)[i]; - #pragma GCC diagnostic pop - if (self->bits_per_value < 16) { - value = ((value >> 24) & 0xff) | - ((value << 8) & 0xff0000) | - ((value >> 8) & 0xff00) | - ((value << 24) & 0xff000000); - } - *row_value = value; - row_value++; - } -} - uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t x, int16_t y) { if (x >= self->width || x < 0 || y >= self->height || y < 0) { return 0; } int32_t row_start = y * self->stride; - if (self->bits_per_value < 8) { - uint32_t word = self->data[row_start + (x >> self->x_shift)]; + uint32_t bytes_per_value = self->bits_per_value / 8; + if (bytes_per_value < 1) { + size_t word = self->data[row_start + (x >> self->x_shift)]; - return (word >> (32 - ((x & self->x_mask) + 1) * self->bits_per_value)) & self->bitmask; + return (word >> (sizeof(size_t) * 8 - ((x & self->x_mask) + 1) * self->bits_per_value)) & self->bitmask; } else { - uint32_t bytes_per_value = self->bits_per_value / 8; - return self->data[row_start + x * bytes_per_value]; + size_t* row = self->data + row_start; + if (bytes_per_value == 1) { + return ((uint8_t*) row)[x]; + } else if (bytes_per_value == 2) { + return ((uint16_t*) row)[x]; + } else if (bytes_per_value == 4) { + return ((uint32_t*) row)[x]; + } } + return 0; } void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x, int16_t y, uint32_t value) { @@ -118,15 +105,22 @@ void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x, mp_raise_RuntimeError(translate("Read-only object")); } int32_t row_start = y * self->stride; - if (self->bits_per_value < 8) { - uint32_t bit_position = (32 - ((x & self->x_mask) + 1) * self->bits_per_value); + uint32_t bytes_per_value = self->bits_per_value / 8; + if (bytes_per_value < 1) { + uint32_t bit_position = (sizeof(size_t) * 8 - ((x & self->x_mask) + 1) * self->bits_per_value); uint32_t index = row_start + (x >> self->x_shift); uint32_t word = self->data[index]; word &= ~(self->bitmask << bit_position); word |= (value & self->bitmask) << bit_position; self->data[index] = word; } else { - uint32_t bytes_per_value = self->bits_per_value / 8; - self->data[row_start + x * bytes_per_value] = value; + size_t* row = self->data + row_start; + if (bytes_per_value == 1) { + ((uint8_t*) row)[x] = value; + } else if (bytes_per_value == 2) { + ((uint16_t*) row)[x] = value; + } else if (bytes_per_value == 4) { + ((uint32_t*) row)[x] = value; + } } } diff --git a/shared-module/displayio/Bitmap.h b/shared-module/displayio/Bitmap.h index 485b57daf2..48ca9e2cf6 100644 --- a/shared-module/displayio/Bitmap.h +++ b/shared-module/displayio/Bitmap.h @@ -36,11 +36,11 @@ typedef struct { mp_obj_base_t base; uint16_t width; uint16_t height; - uint32_t* data; - uint16_t stride; // words + size_t* data; + uint16_t stride; // size_t's uint8_t bits_per_value; uint8_t x_shift; - uint8_t x_mask; + size_t x_mask; uint16_t bitmask; bool read_only; } displayio_bitmap_t; diff --git a/shared-module/displayio/ColorConverter.c b/shared-module/displayio/ColorConverter.c index d20b24c01a..3928e115ab 100644 --- a/shared-module/displayio/ColorConverter.c +++ b/shared-module/displayio/ColorConverter.c @@ -39,3 +39,11 @@ bool common_hal_displayio_colorconverter_convert(displayio_colorconverter_t *sel *output_color = __builtin_bswap16(packed); return true; } + +// Currently no refresh logic is needed for a ColorConverter. +bool displayio_colorconverter_needs_refresh(displayio_colorconverter_t *self) { + return false; +} + +void displayio_colorconverter_finish_refresh(displayio_colorconverter_t *self) { +} diff --git a/shared-module/displayio/ColorConverter.h b/shared-module/displayio/ColorConverter.h index 62ef2eaab9..7f3c1a0a03 100644 --- a/shared-module/displayio/ColorConverter.h +++ b/shared-module/displayio/ColorConverter.h @@ -36,4 +36,7 @@ typedef struct { mp_obj_base_t base; } displayio_colorconverter_t; +bool displayio_colorconverter_needs_refresh(displayio_colorconverter_t *self); +void displayio_colorconverter_finish_refresh(displayio_colorconverter_t *self); + #endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_COLORCONVERTER_H diff --git a/shared-module/displayio/Display.c b/shared-module/displayio/Display.c index 0e76a868f5..28df062f88 100644 --- a/shared-module/displayio/Display.c +++ b/shared-module/displayio/Display.c @@ -44,7 +44,7 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self, mp_obj_t bus, uint16_t width, uint16_t height, int16_t colstart, int16_t rowstart, uint16_t rotation, uint16_t color_depth, uint8_t set_column_command, uint8_t set_row_command, uint8_t write_ram_command, uint8_t set_vertical_scroll, uint8_t* init_sequence, uint16_t init_sequence_len, - const mcu_pin_obj_t* backlight_pin) { + const mcu_pin_obj_t* backlight_pin, bool single_byte_bounds, bool data_as_commands) { self->color_depth = color_depth; self->set_column_command = set_column_command; self->set_row_command = set_row_command; @@ -54,6 +54,8 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self, self->colstart = colstart; self->rowstart = rowstart; self->auto_brightness = false; + self->data_as_commands = data_as_commands; + self->single_byte_bounds = single_byte_bounds; if (MP_OBJ_IS_TYPE(bus, &displayio_parallelbus_type)) { self->begin_transaction = common_hal_displayio_parallelbus_begin_transaction; @@ -81,7 +83,14 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self, data_size &= ~DELAY; uint8_t *data = cmd + 2; self->send(self->bus, true, cmd, 1); - self->send(self->bus, false, data, data_size); + if (self->data_as_commands) { + // Loop through each parameter to force a CS toggle + for (uint32_t j=0; j < data_size; j++) { + self->send(self->bus, true, data + j, 1); + } + } else { + self->send(self->bus, false, data, data_size); + } uint16_t delay_length_ms = 10; if (delay) { data_size++; @@ -211,17 +220,35 @@ void displayio_display_end_transaction(displayio_display_obj_t* self) { } void displayio_display_set_region_to_update(displayio_display_obj_t* self, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { - // TODO(tannewt): Handle displays with single byte bounds. - uint16_t data[2]; + self->send(self->bus, true, &self->set_column_command, 1); - data[0] = __builtin_bswap16(x0 + self->colstart); - data[1] = __builtin_bswap16(x1 - 1 + self->colstart); - self->send(self->bus, false, (uint8_t*) data, 4); + bool isCommand = self->data_as_commands; + if (self->single_byte_bounds) { + uint8_t data[2]; + data[0] = x0 + self->colstart; + data[1] = x1 - 1 + self->colstart; + self->send(self->bus, isCommand, (uint8_t*) data, 2); + } else { + uint16_t data[2]; + data[0] = __builtin_bswap16(x0 + self->colstart); + data[1] = __builtin_bswap16(x1 - 1 + self->colstart); + self->send(self->bus, isCommand, (uint8_t*) data, 4); + } self->send(self->bus, true, &self->set_row_command, 1); - data[0] = __builtin_bswap16(y0 + self->rowstart); - data[1] = __builtin_bswap16(y1 - 1 + self->rowstart); - self->send(self->bus, false, (uint8_t*) data, 4); - self->send(self->bus, true, &self->write_ram_command, 1); + if (self->single_byte_bounds) { + uint8_t data[2]; + data[0] = y0 + self->rowstart; + data[1] = y1 - 1 + self->rowstart; + self->send(self->bus, isCommand, (uint8_t*) data, 2); + } else { + uint16_t data[2]; + data[0] = __builtin_bswap16(y0 + self->rowstart); + data[1] = __builtin_bswap16(y1 - 1 + self->rowstart); + self->send(self->bus, isCommand, (uint8_t*) data, 4); + } + if (!self->data_as_commands) { + self->send(self->bus, true, &self->write_ram_command, 1); + } } bool displayio_display_frame_queued(displayio_display_obj_t* self) { diff --git a/shared-module/displayio/Display.h b/shared-module/displayio/Display.h index 04da68b63d..52f98a2520 100644 --- a/shared-module/displayio/Display.h +++ b/shared-module/displayio/Display.h @@ -49,6 +49,8 @@ typedef struct { uint64_t last_refresh; int16_t colstart; int16_t rowstart; + bool single_byte_bounds; + bool data_as_commands; display_bus_begin_transaction begin_transaction; display_bus_send send; display_bus_end_transaction end_transaction; diff --git a/shared-module/displayio/FourWire.c b/shared-module/displayio/FourWire.c index 9da5c07012..b01456bba2 100644 --- a/shared-module/displayio/FourWire.c +++ b/shared-module/displayio/FourWire.c @@ -28,8 +28,10 @@ #include +#include "py/gc.h" #include "shared-bindings/busio/SPI.h" #include "shared-bindings/digitalio/DigitalInOut.h" +#include "shared-bindings/time/__init__.h" #include "tick.h" @@ -39,6 +41,13 @@ void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self, self->bus = spi; common_hal_busio_spi_never_reset(self->bus); + // Our object is statically allocated off the heap so make sure the bus object lives to the end + // of the heap as well. + gc_never_free(self->bus); + + self->frequency = common_hal_busio_spi_get_frequency(spi); + self->polarity = common_hal_busio_spi_get_polarity(spi); + self->phase = common_hal_busio_spi_get_phase(spi); common_hal_digitalio_digitalinout_construct(&self->command, command); common_hal_digitalio_digitalinout_switch_to_output(&self->command, true, DRIVE_MODE_PUSH_PULL); @@ -70,14 +79,19 @@ bool common_hal_displayio_fourwire_begin_transaction(mp_obj_t obj) { if (!common_hal_busio_spi_try_lock(self->bus)) { return false; } - // TODO(tannewt): Stop hardcoding SPI frequency, polarity and phase. - common_hal_busio_spi_configure(self->bus, 12000000, 0, 0, 8); + common_hal_busio_spi_configure(self->bus, self->frequency, self->polarity, + self->phase, 8); common_hal_digitalio_digitalinout_set_value(&self->chip_select, false); return true; } void common_hal_displayio_fourwire_send(mp_obj_t obj, bool command, uint8_t *data, uint32_t data_length) { displayio_fourwire_obj_t* self = MP_OBJ_TO_PTR(obj); + if (command) { + common_hal_digitalio_digitalinout_set_value(&self->chip_select, true); + common_hal_time_delay_ms(1); + common_hal_digitalio_digitalinout_set_value(&self->chip_select, false); + } common_hal_digitalio_digitalinout_set_value(&self->command, !command); common_hal_busio_spi_write(self->bus, data, data_length); } diff --git a/shared-module/displayio/FourWire.h b/shared-module/displayio/FourWire.h index 234bcf794f..743139e627 100644 --- a/shared-module/displayio/FourWire.h +++ b/shared-module/displayio/FourWire.h @@ -38,6 +38,9 @@ typedef struct { digitalio_digitalinout_obj_t command; digitalio_digitalinout_obj_t chip_select; digitalio_digitalinout_obj_t reset; + uint32_t frequency; + uint8_t polarity; + uint8_t phase; } displayio_fourwire_obj_t; #endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_DISPLAYIO_FOURWIRE_H diff --git a/shared-module/displayio/Group.c b/shared-module/displayio/Group.c index 20182863eb..12f80cac43 100644 --- a/shared-module/displayio/Group.c +++ b/shared-module/displayio/Group.c @@ -73,8 +73,8 @@ void common_hal_displayio_group_insert(displayio_group_t* self, size_t index, mp mp_raise_ValueError(translate("Layer must be a Group or TileGrid subclass.")); } // Shift everything right. - for (size_t i = index; i < self->size; i++) { - self->children[i + 1] = self->children[i]; + for (size_t i = self->size; i > index; i--) { + self->children[i] = self->children[i - 1]; } self->children[index].native = native_layer; self->children[index].original = layer; diff --git a/shared-module/displayio/TileGrid.c b/shared-module/displayio/TileGrid.c index bbbb119245..3212dfe8b9 100644 --- a/shared-module/displayio/TileGrid.c +++ b/shared-module/displayio/TileGrid.c @@ -170,12 +170,24 @@ bool displayio_tilegrid_get_pixel(displayio_tilegrid_t *self, int16_t x, int16_t } bool displayio_tilegrid_needs_refresh(displayio_tilegrid_t *self) { - return self->needs_refresh || displayio_palette_needs_refresh(self->pixel_shader); + if (self->needs_refresh) { + return true; + } else if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_palette_type)) { + return displayio_palette_needs_refresh(self->pixel_shader); + } else if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_colorconverter_type)) { + return displayio_colorconverter_needs_refresh(self->pixel_shader); + } + + return false; } void displayio_tilegrid_finish_refresh(displayio_tilegrid_t *self) { self->needs_refresh = false; - displayio_palette_finish_refresh(self->pixel_shader); + if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_palette_type)) { + displayio_palette_finish_refresh(self->pixel_shader); + } else if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_colorconverter_type)) { + displayio_colorconverter_finish_refresh(self->pixel_shader); + } // TODO(tannewt): We could double buffer changes to position and move them over here. // That way they won't change during a refresh and tear. } diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c index ced5b0fef6..156640440e 100644 --- a/shared-module/displayio/__init__.c +++ b/shared-module/displayio/__init__.c @@ -5,6 +5,7 @@ #include "lib/utils/interrupt_char.h" #include "py/reload.h" #include "py/runtime.h" +#include "shared-bindings/board/__init__.h" #include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Display.h" #include "shared-bindings/displayio/Group.h" @@ -190,9 +191,14 @@ void reset_displays(void) { if (((uint32_t) fourwire->bus) < ((uint32_t) &displays) || ((uint32_t) fourwire->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) { busio_spi_obj_t* original_spi = fourwire->bus; - if (original_spi == board_spi()) { - continue; - } + #if BOARD_SPI + // We don't need to move original_spi if it is the board.SPI object because it is + // statically allocated already. (Doing so would also make it impossible to reference in + // a subsequent VM run.) + if (original_spi == common_hal_board_get_spi()) { + continue; + } + #endif memcpy(&fourwire->inline_bus, original_spi, sizeof(busio_spi_obj_t)); fourwire->bus = &fourwire->inline_bus; // Check for other displays that use the same spi bus and swap them too. diff --git a/shared-module/usb_hid/Device.c b/shared-module/usb_hid/Device.c index 820e14ad0b..0e256cb5e4 100644 --- a/shared-module/usb_hid/Device.c +++ b/shared-module/usb_hid/Device.c @@ -60,27 +60,33 @@ void common_hal_usb_hid_device_send_report(usb_hid_device_obj_t *self, uint8_t* } } +static usb_hid_device_obj_t* get_hid_device(uint8_t report_id) { + for (uint8_t i = 0; i < USB_HID_NUM_DEVICES; i++) { + if (usb_hid_devices[i].report_id == report_id) { + return &usb_hid_devices[i]; + } + } + return NULL; +} + // Callbacks invoked when receive Get_Report request through control endpoint uint16_t tud_hid_generic_get_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen) { // only support Input Report if ( report_type != HID_REPORT_TYPE_INPUT ) return 0; - // index is ID-1 - uint8_t idx = ( report_id ? (report_id-1) : 0 ); - // fill buffer with current report - memcpy(buffer, usb_hid_devices[idx].report_buffer, reqlen); + memcpy(buffer, get_hid_device(report_id)->report_buffer, reqlen); return reqlen; } // Callbacks invoked when receive Set_Report request through control endpoint void tud_hid_generic_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize) { - // index is ID-1 - uint8_t idx = ( report_id ? (report_id-1) : 0 ); + usb_hid_device_obj_t* hid_device = get_hid_device(report_id); if ( report_type == HID_REPORT_TYPE_OUTPUT ) { // Check if it is Keyboard device - if ( (usb_hid_devices[idx].usage_page == HID_USAGE_PAGE_DESKTOP) && (usb_hid_devices[idx].usage == HID_USAGE_DESKTOP_KEYBOARD) ) { + if (hid_device->usage_page == HID_USAGE_PAGE_DESKTOP && + hid_device->usage == HID_USAGE_DESKTOP_KEYBOARD) { // This is LED indicator (CapsLock, NumLock) // TODO Light up some LED here } diff --git a/supervisor/filesystem.h b/supervisor/filesystem.h index 76f235f47d..c7c951a5e6 100644 --- a/supervisor/filesystem.h +++ b/supervisor/filesystem.h @@ -31,6 +31,10 @@ #include "extmod/vfs_fat.h" +extern volatile bool filesystem_flush_requested; + +void filesystem_background(void); +void filesystem_tick(void); void filesystem_init(bool create_allowed, bool force_create); void filesystem_flush(void); bool filesystem_present(void); diff --git a/supervisor/flash.h b/supervisor/flash.h index edf43f4b10..0a124353e6 100644 --- a/supervisor/flash.h +++ b/supervisor/flash.h @@ -40,7 +40,6 @@ void supervisor_flash_init(void); uint32_t supervisor_flash_get_block_size(void); uint32_t supervisor_flash_get_block_count(void); -void supervisor_flash_flush(void); // these return 0 on success, non-zero on error mp_uint_t supervisor_flash_read_blocks(uint8_t *dest, uint32_t block_num, uint32_t num_blocks); @@ -49,5 +48,6 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t block_num, struct _fs_user_mount_t; void supervisor_flash_init_vfs(struct _fs_user_mount_t *vfs); void supervisor_flash_flush(void); +void supervisor_flash_release_cache(void); #endif // MICROPY_INCLUDED_SUPERVISOR_FLASH_H diff --git a/supervisor/shared/autoreload.c b/supervisor/shared/autoreload.c index 2a7fd1e9d8..14b21902cd 100644 --- a/supervisor/shared/autoreload.c +++ b/supervisor/shared/autoreload.c @@ -29,9 +29,10 @@ #include "py/mphal.h" #include "py/reload.h" -volatile uint32_t autoreload_delay_ms = 0; -bool autoreload_enabled = false; +static volatile uint32_t autoreload_delay_ms = 0; +static bool autoreload_enabled = false; static bool autoreload_suspended = false; + volatile bool reload_requested = false; inline void autoreload_tick() { diff --git a/supervisor/shared/board_busses.c b/supervisor/shared/board_busses.c deleted file mode 100644 index d77c4f3313..0000000000 --- a/supervisor/shared/board_busses.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - * This file is part of the MicroPython project, http://micropython.org/ - * - * The MIT License (MIT) - * - * Copyright (c) 2018 Scott Shawcroft for Adafruit Industries - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include "shared-bindings/busio/I2C.h" -#include "shared-bindings/busio/SPI.h" -#include "shared-bindings/busio/UART.h" - -#include "shared-bindings/microcontroller/Pin.h" -#include "supervisor/shared/translate.h" -#include "mpconfigboard.h" -#include "py/runtime.h" - -#ifdef CIRCUITPY_DISPLAYIO -#include "shared-module/displayio/__init__.h" -#endif - -#define BOARD_I2C (defined(DEFAULT_I2C_BUS_SDA) && defined(DEFAULT_I2C_BUS_SCL)) -#define BOARD_SPI (defined(DEFAULT_SPI_BUS_SCK) && defined(DEFAULT_SPI_BUS_MISO) && defined(DEFAULT_SPI_BUS_MOSI)) -#define BOARD_UART (defined(DEFAULT_UART_BUS_RX) && defined(DEFAULT_UART_BUS_TX)) - -#if BOARD_I2C -STATIC mp_obj_t i2c_singleton = NULL; - -mp_obj_t board_i2c(void) { - - if (i2c_singleton == NULL) { - busio_i2c_obj_t *self = m_new_ll_obj(busio_i2c_obj_t); - self->base.type = &busio_i2c_type; - - assert_pin_free(DEFAULT_I2C_BUS_SDA); - assert_pin_free(DEFAULT_I2C_BUS_SCL); - common_hal_busio_i2c_construct(self, DEFAULT_I2C_BUS_SCL, DEFAULT_I2C_BUS_SDA, 400000, 0); - i2c_singleton = (mp_obj_t)self; - } - return i2c_singleton; -} -#else -mp_obj_t board_i2c(void) { - mp_raise_NotImplementedError(translate("No default I2C bus")); - return NULL; -} -#endif -MP_DEFINE_CONST_FUN_OBJ_0(board_i2c_obj, board_i2c); - -#if BOARD_SPI -// Statically allocate the SPI object so it can live past the end of the heap and into the next VM. -// That way it can be used by built-in FourWire displays and be accessible through board.SPI(). -STATIC busio_spi_obj_t spi_obj; -STATIC mp_obj_t spi_singleton = NULL; - -mp_obj_t board_spi(void) { - if (spi_singleton == NULL) { - busio_spi_obj_t *self = &spi_obj; - self->base.type = &busio_spi_type; - assert_pin_free(DEFAULT_SPI_BUS_SCK); - assert_pin_free(DEFAULT_SPI_BUS_MOSI); - assert_pin_free(DEFAULT_SPI_BUS_MISO); - const mcu_pin_obj_t* clock = MP_OBJ_TO_PTR(DEFAULT_SPI_BUS_SCK); - const mcu_pin_obj_t* mosi = MP_OBJ_TO_PTR(DEFAULT_SPI_BUS_MOSI); - const mcu_pin_obj_t* miso = MP_OBJ_TO_PTR(DEFAULT_SPI_BUS_MISO); - common_hal_busio_spi_construct(self, clock, mosi, miso); - spi_singleton = (mp_obj_t)self; - } - return spi_singleton; -} -#else -mp_obj_t board_spi(void) { - mp_raise_NotImplementedError(translate("No default SPI bus")); - return NULL; -} -#endif -MP_DEFINE_CONST_FUN_OBJ_0(board_spi_obj, board_spi); - -#if BOARD_UART -STATIC mp_obj_t uart_singleton = NULL; - -mp_obj_t board_uart(void) { - if (uart_singleton == NULL) { - busio_uart_obj_t *self = m_new_ll_obj(busio_uart_obj_t); - self->base.type = &busio_uart_type; - - assert_pin_free(DEFAULT_UART_BUS_RX); - assert_pin_free(DEFAULT_UART_BUS_TX); - - const mcu_pin_obj_t* rx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_RX); - const mcu_pin_obj_t* tx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_TX); - - common_hal_busio_uart_construct(self, tx, rx, 9600, 8, PARITY_NONE, 1, 1000, 64); - uart_singleton = (mp_obj_t)self; - } - return uart_singleton; -} -#else -mp_obj_t board_uart(void) { - mp_raise_NotImplementedError(translate("No default UART bus")); - return NULL; -} -#endif -MP_DEFINE_CONST_FUN_OBJ_0(board_uart_obj, board_uart); - - -void reset_board_busses(void) { -#if BOARD_I2C - i2c_singleton = NULL; -#endif -#if BOARD_SPI - bool display_using_spi = false; - #ifdef CIRCUITPY_DISPLAYIO - for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) { - if (displays[i].fourwire_bus.bus == spi_singleton) { - display_using_spi = true; - break; - } - } - #endif - if (!display_using_spi) { - spi_singleton = NULL; - } -#endif -#if BOARD_UART - uart_singleton = NULL; -#endif -} diff --git a/supervisor/shared/display.c b/supervisor/shared/display.c index e1400426e9..0b3fbe178f 100644 --- a/supervisor/shared/display.c +++ b/supervisor/shared/display.c @@ -34,7 +34,7 @@ #include "shared-bindings/displayio/TileGrid.h" #include "supervisor/memory.h" -extern uint32_t blinka_bitmap_data[]; +extern size_t blinka_bitmap_data[]; extern displayio_bitmap_t blinka_bitmap; extern displayio_group_t circuitpython_splash; @@ -81,6 +81,7 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) { void supervisor_stop_terminal(void) { if (tilegrid_tiles != NULL) { free_memory(tilegrid_tiles); + tilegrid_tiles = NULL; supervisor_terminal_text_grid.inline_tiles = false; supervisor_terminal_text_grid.tiles = NULL; } @@ -106,7 +107,7 @@ void supervisor_display_move_memory(void) { #endif } -uint32_t blinka_bitmap_data[32] = { +size_t blinka_bitmap_data[32] = { 0x00000011, 0x11000000, 0x00000111, 0x53100000, 0x00000111, 0x56110000, diff --git a/supervisor/shared/external_flash/external_flash.c b/supervisor/shared/external_flash/external_flash.c index 73b7f7f911..ad10bab516 100644 --- a/supervisor/shared/external_flash/external_flash.c +++ b/supervisor/shared/external_flash/external_flash.c @@ -272,6 +272,9 @@ uint32_t supervisor_flash_get_block_count(void) { // Flush the cache that was written to the scratch portion of flash. Only used // when ram is tight. static bool flush_scratch_flash(void) { + if (current_sector == NO_SECTOR_LOADED) { + return true; + } // First, copy out any blocks that we haven't touched from the sector we've // cached. bool copy_to_scratch_ok = true; @@ -360,9 +363,25 @@ static bool allocate_ram_cache(void) { return success; } +static void release_ram_cache(void) { + if (supervisor_cache != NULL) { + free_memory(supervisor_cache); + supervisor_cache = NULL; + } else { + m_free(MP_STATE_VM(flash_ram_cache)); + } + MP_STATE_VM(flash_ram_cache) = NULL; +} + // Flush the cached sector from ram onto the flash. We'll free the cache unless // keep_cache is true. static bool flush_ram_cache(bool keep_cache) { + if (current_sector == NO_SECTOR_LOADED) { + if (!keep_cache) { + release_ram_cache(); + } + return true; + } // First, copy out any blocks that we haven't touched from the sector // we've cached. If we don't do this we'll erase the data during the sector // erase below. @@ -403,22 +422,13 @@ static bool flush_ram_cache(bool keep_cache) { } // We're done with the cache for now so give it back. if (!keep_cache) { - if (supervisor_cache != NULL) { - free_memory(supervisor_cache); - supervisor_cache = NULL; - } else { - m_free(MP_STATE_VM(flash_ram_cache)); - } - MP_STATE_VM(flash_ram_cache) = NULL; + release_ram_cache(); } return true; } // Delegates to the correct flash flush method depending on the existing cache. static void spi_flash_flush_keep_cache(bool keep_cache) { - if (current_sector == NO_SECTOR_LOADED) { - return; - } #ifdef MICROPY_HW_LED_MSC port_pin_set_output_level(MICROPY_HW_LED_MSC, true); #endif @@ -436,9 +446,11 @@ static void spi_flash_flush_keep_cache(bool keep_cache) { #endif } -// External flash function used. If called externally we assume we won't need -// the cache after. void supervisor_flash_flush(void) { + spi_flash_flush_keep_cache(true); +} + +void supervisor_flash_release_cache(void) { spi_flash_flush_keep_cache(false); } @@ -502,7 +514,7 @@ bool external_flash_write_block(const uint8_t *data, uint32_t block) { return write_flash(address, data, FILESYSTEM_BLOCK_SIZE); } if (current_sector != NO_SECTOR_LOADED) { - spi_flash_flush_keep_cache(true); + supervisor_flash_flush(); } if (MP_STATE_VM(flash_ram_cache) == NULL && !allocate_ram_cache()) { erase_sector(flash_device->total_size - SPI_FLASH_ERASE_SIZE); diff --git a/supervisor/shared/external_flash/spi_flash.c b/supervisor/shared/external_flash/spi_flash.c index ec7101bc91..12888f2d33 100644 --- a/supervisor/shared/external_flash/spi_flash.c +++ b/supervisor/shared/external_flash/spi_flash.c @@ -132,11 +132,15 @@ bool spi_flash_read_data(uint32_t address, uint8_t* data, uint32_t data_length) } void spi_flash_init(void) { + cs_pin.base.type = &digitalio_digitalinout_type; common_hal_digitalio_digitalinout_construct(&cs_pin, SPI_FLASH_CS_PIN); + // Set CS high (disabled). common_hal_digitalio_digitalinout_switch_to_output(&cs_pin, true, DRIVE_MODE_PUSH_PULL); + common_hal_digitalio_digitalinout_never_reset(&cs_pin); + spi.base.type = &busio_spi_type; common_hal_busio_spi_construct(&spi, SPI_FLASH_SCK_PIN, SPI_FLASH_MOSI_PIN, SPI_FLASH_MISO_PIN); common_hal_busio_spi_never_reset(&spi); } diff --git a/supervisor/shared/filesystem.c b/supervisor/shared/filesystem.c index 0ef978ef21..fa34ed0dac 100644 --- a/supervisor/shared/filesystem.c +++ b/supervisor/shared/filesystem.c @@ -37,6 +37,32 @@ static mp_vfs_mount_t _mp_vfs; static fs_user_mount_t _internal_vfs; +static volatile uint32_t filesystem_flush_interval_ms = CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS; +volatile bool filesystem_flush_requested = false; + +void filesystem_background(void) { + if (filesystem_flush_requested) { + filesystem_flush_interval_ms = CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS; + // Flush but keep caches + supervisor_flash_flush(); + filesystem_flush_requested = false; + } +} + +inline void filesystem_tick(void) { + if (filesystem_flush_interval_ms == 0) { + // 0 means not turned on. + return; + } + if (filesystem_flush_interval_ms == 1) { + filesystem_flush_requested = true; + filesystem_flush_interval_ms = CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS; + } else { + filesystem_flush_interval_ms--; + } +} + + static void make_empty_file(FATFS *fatfs, const char *path) { FIL fp; f_open(fatfs, &fp, path, FA_WRITE | FA_CREATE_ALWAYS); @@ -91,7 +117,11 @@ void filesystem_init(bool create_allowed, bool force_create) { } void filesystem_flush(void) { + // Reset interval before next flush. + filesystem_flush_interval_ms = CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS; supervisor_flash_flush(); + // Don't keep caches because this is called when starting or stopping the VM. + supervisor_flash_release_cache(); } void filesystem_set_internal_writable_by_usb(bool writable) { diff --git a/supervisor/shared/rgb_led_status.c b/supervisor/shared/rgb_led_status.c index 186e33ab9b..df9fdf8d95 100644 --- a/supervisor/shared/rgb_led_status.c +++ b/supervisor/shared/rgb_led_status.c @@ -197,6 +197,12 @@ uint32_t color_brightness(uint32_t color, uint8_t brightness) { void set_rgb_status_brightness(uint8_t level){ #if defined(MICROPY_HW_NEOPIXEL) || (defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)) rgb_status_brightness = level; + uint32_t current_color = current_status_color; + // Temporarily change the current color global to force the new_status_color call to update the + // LED. Usually duplicate calls of the same color are ignored without regard to brightness + // changes. + current_status_color = 0; + new_status_color(current_color); #endif } diff --git a/supervisor/shared/safe_mode.c b/supervisor/shared/safe_mode.c index 3bb75b8973..f965bc48a9 100644 --- a/supervisor/shared/safe_mode.c +++ b/supervisor/shared/safe_mode.c @@ -27,7 +27,6 @@ #include "supervisor/shared/safe_mode.h" #include "mphalport.h" -// #include "py/mpconfig.h" #include "shared-bindings/digitalio/DigitalInOut.h" @@ -77,7 +76,8 @@ safe_mode_t wait_for_safe_mode_reset(void) { return NO_SAFE_MODE; } -void reset_into_safe_mode(safe_mode_t reason) { +// Don't inline this so it's easy to break on it from GDB. +void __attribute__((noinline,)) reset_into_safe_mode(safe_mode_t reason) { if (current_safe_mode > BROWNOUT && reason > BROWNOUT) { while (true) { // This very bad because it means running in safe mode didn't save us. Only ignore brownout diff --git a/supervisor/shared/serial.c b/supervisor/shared/serial.c index ed210416fe..a61899576f 100644 --- a/supervisor/shared/serial.c +++ b/supervisor/shared/serial.c @@ -52,15 +52,13 @@ bool serial_bytes_available(void) { } void serial_write_substring(const char* text, uint32_t length) { - #if CIRCUITPY_DISPLAYIO +#if CIRCUITPY_DISPLAYIO int errcode; common_hal_terminalio_terminal_write(&supervisor_terminal, (const uint8_t*) text, length, &errcode); - #endif - if (!tud_cdc_connected()) { - return; - } +#endif + uint32_t count = 0; - while (count < length) { + while (count < length && tud_cdc_connected()) { count += tud_cdc_write(text + count, length - count); usb_background(); } diff --git a/supervisor/shared/usb/usb.c b/supervisor/shared/usb/usb.c index c77f1e417c..0678a3a3fc 100644 --- a/supervisor/shared/usb/usb.c +++ b/supervisor/shared/usb/usb.c @@ -70,7 +70,9 @@ void usb_init(void) { tud_cdc_set_wanted_char(CHAR_CTRL_C); #endif +#if CIRCUITPY_USB_MIDI usb_midi_init(); +#endif } void usb_background(void) { @@ -92,13 +94,15 @@ void tud_mount_cb(void) { void tud_umount_cb(void) { } -uint32_t tusb_hal_millis(void) { - uint64_t ms; - uint32_t us; - current_tick(&ms, &us); - return (uint32_t) ms; +// Invoked when usb bus is suspended +// remote_wakeup_en : if host allows us to perform remote wakeup +// USB Specs: Within 7ms, device must draw an average current less than 2.5 mA from bus +void tud_suspend_cb(bool remote_wakeup_en) { } +// Invoked when usb bus is resumed +void tud_resume_cb(void) { +} // Invoked when cdc when line state changed e.g connected/disconnected // Use to reset to DFU when disconnect with 1200 bps diff --git a/supervisor/supervisor.mk b/supervisor/supervisor.mk index 6815fba57b..2d50e7a8b1 100644 --- a/supervisor/supervisor.mk +++ b/supervisor/supervisor.mk @@ -2,7 +2,6 @@ SRC_SUPERVISOR = \ main.c \ supervisor/port.c \ supervisor/shared/autoreload.c \ - supervisor/shared/board_busses.c \ supervisor/shared/display.c \ supervisor/shared/filesystem.c \ supervisor/shared/flash.c \ @@ -102,7 +101,7 @@ autogen_usb_descriptor.intermediate: ../../tools/gen_usb_descriptor.py Makefile --output_c_file $(BUILD)/autogen_usb_descriptor.c\ --output_h_file $(BUILD)/genhdr/autogen_usb_descriptor.h -CIRCUITPY_DISPLAY_FONT = "../../tools/Tecate-bitmap-fonts/bitmap/terminus-font-4.39/ter-u12n.bdf" +CIRCUITPY_DISPLAY_FONT ?= "../../tools/fonts/ter-u12n.bdf" $(BUILD)/autogen_display_resources.c: ../../tools/gen_display_resources.py $(HEADER_BUILD)/qstrdefs.generated.h Makefile | $(HEADER_BUILD) $(STEPECHO) "GEN $@" diff --git a/tools/build_board_info.py b/tools/build_board_info.py index b09b29effe..307d90d7aa 100644 --- a/tools/build_board_info.py +++ b/tools/build_board_info.py @@ -42,6 +42,12 @@ extension_by_board = { "pca10059": BIN_UF2 } +aliases_by_board = { + "circuitplayground_express": ["circuitplayground_express_4h", "circuitplayground_express_digikey_pycon2019"], + "gemma_m0": ["gemma_m0_pycon2018"], + "pewpew10": ["pewpew13"] +} + def get_languages(): languages = [] for f in os.scandir("../locale"): @@ -59,7 +65,17 @@ def get_board_mapping(): board_id = board_path.name extensions = extension_by_port[port] extensions = extension_by_board.get(board_path.name, extensions) - boards[board_id] = {"port": port, "extensions": extensions, "download_count": 0} + aliases = aliases_by_board.get(board_path.name, []) + boards[board_id] = {"port": port, + "extensions": extensions, + "download_count": 0, + "aliases": aliases} + for alias in aliases: + boards[alias] = {"port": port, + "extensions": extensions, + "download_count": 0, + "alias": True, + "aliases": []} return boards def get_version_info(): @@ -235,23 +251,25 @@ def generate_download_info(): board_id = board_path.name board_info = board_mapping[board_id] - if board_id not in current_info: - changes["new_boards"].append(board_id) - current_info[board_id] = {"downloads": 0, - "versions": []} + for alias in [board_id] + board_info["aliases"]: + alias_info = board_mapping[alias] + if alias not in current_info: + changes["new_boards"].append(alias) + current_info[alias] = {"downloads": 0, + "versions": []} - new_version = { - "stable": new_stable, - "version": new_tag, - "files": {} - } - for language in languages: - files = [] - new_version["files"][language] = files - for extension in board_info["extensions"]: - files.append("https://github.com/adafruit/circuitpython/releases/download/{tag}/adafruit-circuitpython-{board}-{language}-{tag}.{extension}".format(tag=new_tag, board=board_id, language=language, extension=extension)) - current_info[board_id]["downloads"] = board_info["download_count"] - current_info[board_id]["versions"].append(new_version) + new_version = { + "stable": new_stable, + "version": new_tag, + "files": {} + } + for language in languages: + files = [] + new_version["files"][language] = files + for extension in board_info["extensions"]: + files.append("https://github.com/adafruit/circuitpython/releases/download/{tag}/adafruit-circuitpython-{alias}-{language}-{tag}.{extension}".format(tag=new_tag, alias=alias, language=language, extension=extension)) + current_info[alias]["downloads"] = alias_info["download_count"] + current_info[alias]["versions"].append(new_version) changes["new_languages"] = set(languages) - previous_languages diff --git a/tools/build_release_files.py b/tools/build_release_files.py index 37e827eb1c..872302a4f6 100755 --- a/tools/build_release_files.py +++ b/tools/build_release_files.py @@ -48,14 +48,17 @@ for board in build_boards: for extension in board_info["extensions"]: temp_filename = "../ports/{port}/build-{board}/firmware.{extension}".format(port=board_info["port"], board=board, extension=extension) - final_filename = "adafruit-circuitpython-{board}-{language}-{version}.{extension}".format(board=board, language=language, version=version, extension=extension) - final_filename = os.path.join(bin_directory, final_filename) - try: - shutil.copyfile(temp_filename, final_filename) - except FileNotFoundError: - other_output = "Cannot find file {}".format(temp_filename) - if exit_status == 0: - exit_status = 1 + for alias in board_info["aliases"] + [board]: + bin_directory = "../bin/{alias}/{language}".format(alias=alias, language=language) + os.makedirs(bin_directory, exist_ok=True) + final_filename = "adafruit-circuitpython-{alias}-{language}-{version}.{extension}".format(alias=alias, language=language, version=version, extension=extension) + final_filename = os.path.join(bin_directory, final_filename) + try: + shutil.copyfile(temp_filename, final_filename) + except FileNotFoundError: + other_output = "Cannot find file {}".format(temp_filename) + if exit_status == 0: + exit_status = 1 if travis: print('travis_fold:start:adafruit-bins-{}-{}\\r'.format(language, board)) diff --git a/tools/convert_release_notes.py b/tools/convert_release_notes.py new file mode 100644 index 0000000000..4805f182a7 --- /dev/null +++ b/tools/convert_release_notes.py @@ -0,0 +1,57 @@ +import sys +import mistune + +print(sys.argv[1]) + +with open(sys.argv[1], "r") as source_file: + source = source_file.read() + +html = mistune.Markdown() + +print() +print("HTML") +print("=====================================") +print("From the GitHub release page:\n
") +print(html(source)) +print("
") + +class AdafruitBBCodeRenderer: + def __init__(self, **kwargs): + self.options = kwargs + + def placeholder(self): + return '' + + def paragraph(self, text): + return text + "\n\n" + + def text(self, text): + return text + + def link(self, link, title, text): + return "[url={}]{}[/url]".format(link, text) + + def header(self, text, level, raw): + return "[b][size=150]{}[/size][/b]\n".format(text) + + def codespan(self, text): + return "[color=#E74C3C][size=95]{}[/size][/color]".format(text) + + def list_item(self, text): + return "[*]{}[/*]\n".format(text.strip()) + + def list(self, body, ordered=True): + ordered_indicator = "=" if ordered else "" + return "[list{}]\n{}[/list]".format(ordered_indicator, body) + + def double_emphasis(self, text): + return "[b]{}[/b]".format(text) + +bbcode = mistune.Markdown(renderer=AdafruitBBCodeRenderer()) + +print() +print("BBCode") +print("=====================================") +print("From the [url=]GitHub release page[/url]:\n[quote]") +print(bbcode(source)) +print("[/quote]") diff --git a/tools/fonts/ter-u12n.bdf b/tools/fonts/ter-u12n.bdf new file mode 100644 index 0000000000..390d0a1e87 --- /dev/null +++ b/tools/fonts/ter-u12n.bdf @@ -0,0 +1,25240 @@ +STARTFONT 2.1 +FONT -xos4-Terminus-Medium-R-Normal--12-120-72-72-C-60-ISO10646-1 +SIZE 12 72 72 +FONTBOUNDINGBOX 6 12 0 -2 +STARTPROPERTIES 20 +FAMILY_NAME "Terminus" +FOUNDRY "xos4" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +COPYRIGHT "Copyright (C) 2018 Dimitar Toshkov Zhekov" +NOTICE "Licensed under the SIL Open Font License, Version 1.1" +WEIGHT_NAME "Medium" +SLANT "R" +PIXEL_SIZE 12 +POINT_SIZE 120 +RESOLUTION_X 72 +RESOLUTION_Y 72 +SPACING "C" +AVERAGE_WIDTH 60 +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +MIN_SPACE 6 +FONT_ASCENT 10 +FONT_DESCENT 2 +DEFAULT_CHAR 65533 +ENDPROPERTIES +CHARS 1326 +STARTCHAR char0 +ENCODING 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +D8 +88 +00 +88 +88 +00 +88 +D8 +00 +00 +ENDCHAR +STARTCHAR space +ENCODING 32 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR exclam +ENCODING 33 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +20 +20 +20 +00 +20 +20 +00 +00 +ENDCHAR +STARTCHAR quotedbl +ENCODING 34 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +50 +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR numbersign +ENCODING 35 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +F8 +50 +50 +F8 +50 +50 +00 +00 +ENDCHAR +STARTCHAR dollar +ENCODING 36 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +A8 +A0 +70 +28 +A8 +70 +20 +00 +ENDCHAR +STARTCHAR percent +ENCODING 37 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +48 +A8 +50 +10 +20 +28 +54 +48 +00 +00 +ENDCHAR +STARTCHAR ampersand +ENCODING 38 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +50 +20 +68 +90 +90 +68 +00 +00 +ENDCHAR +STARTCHAR quotesingle +ENCODING 39 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +20 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR parenleft +ENCODING 40 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +40 +40 +40 +40 +20 +10 +00 +00 +ENDCHAR +STARTCHAR parenright +ENCODING 41 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +10 +10 +10 +10 +20 +40 +00 +00 +ENDCHAR +STARTCHAR asterisk +ENCODING 42 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +50 +20 +F8 +20 +50 +00 +00 +00 +ENDCHAR +STARTCHAR plus +ENCODING 43 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +F8 +20 +20 +00 +00 +00 +ENDCHAR +STARTCHAR comma +ENCODING 44 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +20 +20 +40 +00 +ENDCHAR +STARTCHAR hyphen +ENCODING 45 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR period +ENCODING 46 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +20 +20 +00 +00 +ENDCHAR +STARTCHAR slash +ENCODING 47 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +08 +10 +10 +20 +20 +40 +40 +00 +00 +ENDCHAR +STARTCHAR zero +ENCODING 48 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +98 +A8 +C8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR one +ENCODING 49 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +60 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR two +ENCODING 50 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +08 +10 +20 +40 +F8 +00 +00 +ENDCHAR +STARTCHAR three +ENCODING 51 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +30 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR four +ENCODING 52 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +18 +28 +48 +88 +F8 +08 +08 +00 +00 +ENDCHAR +STARTCHAR five +ENCODING 53 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR six +ENCODING 54 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +80 +80 +F0 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR seven +ENCODING 55 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +08 +08 +10 +10 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR eight +ENCODING 56 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +70 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR nine +ENCODING 57 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +78 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR colon +ENCODING 58 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +00 +00 +20 +20 +00 +00 +ENDCHAR +STARTCHAR semicolon +ENCODING 59 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +00 +00 +20 +20 +40 +00 +ENDCHAR +STARTCHAR less +ENCODING 60 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +10 +20 +40 +20 +10 +08 +00 +00 +ENDCHAR +STARTCHAR equal +ENCODING 61 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +00 +00 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR greater +ENCODING 62 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +20 +10 +08 +10 +20 +40 +00 +00 +ENDCHAR +STARTCHAR question +ENCODING 63 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +10 +20 +00 +20 +20 +00 +00 +ENDCHAR +STARTCHAR at +ENCODING 64 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +98 +A8 +A8 +98 +80 +78 +00 +00 +ENDCHAR +STARTCHAR A +ENCODING 65 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR B +ENCODING 66 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +F0 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR C +ENCODING 67 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR D +ENCODING 68 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +88 +88 +88 +88 +90 +E0 +00 +00 +ENDCHAR +STARTCHAR E +ENCODING 69 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR F +ENCODING 70 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR G +ENCODING 71 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +B8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR H +ENCODING 72 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +F8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR I +ENCODING 73 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR J +ENCODING 74 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +38 +10 +10 +10 +10 +90 +90 +60 +00 +00 +ENDCHAR +STARTCHAR K +ENCODING 75 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +90 +A0 +C0 +C0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR L +ENCODING 76 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +80 +80 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR M +ENCODING 77 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +D8 +A8 +A8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR N +ENCODING 78 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +98 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR O +ENCODING 79 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR P +ENCODING 80 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR Q +ENCODING 81 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +A8 +70 +08 +00 +ENDCHAR +STARTCHAR R +ENCODING 82 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR S +ENCODING 83 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR T +ENCODING 84 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR U +ENCODING 85 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR V +ENCODING 86 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +50 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR W +ENCODING 87 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +A8 +A8 +D8 +88 +00 +00 +ENDCHAR +STARTCHAR X +ENCODING 88 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +20 +20 +50 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Y +ENCODING 89 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Z +ENCODING 90 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +08 +10 +20 +40 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR bracketleft +ENCODING 91 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +40 +40 +40 +40 +40 +40 +70 +00 +00 +ENDCHAR +STARTCHAR backslash +ENCODING 92 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +20 +20 +10 +10 +08 +08 +00 +00 +ENDCHAR +STARTCHAR bracketright +ENCODING 93 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +10 +10 +10 +10 +10 +10 +70 +00 +00 +ENDCHAR +STARTCHAR asciicircum +ENCODING 94 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +50 +88 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR underscore +ENCODING 95 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +F8 +00 +ENDCHAR +STARTCHAR grave +ENCODING 96 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR a +ENCODING 97 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR b +ENCODING 98 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +F0 +88 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR c +ENCODING 99 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR d +ENCODING 100 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +08 +78 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR e +ENCODING 101 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR f +ENCODING 102 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +18 +20 +70 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR g +ENCODING 103 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR h +ENCODING 104 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR i +ENCODING 105 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR j +ENCODING 106 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +08 +08 +00 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR k +ENCODING 107 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +48 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR l +ENCODING 108 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR m +ENCODING 109 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +A8 +A8 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR n +ENCODING 110 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR o +ENCODING 111 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR p +ENCODING 112 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +F0 +80 +80 +ENDCHAR +STARTCHAR q +ENCODING 113 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +88 +88 +88 +88 +78 +08 +08 +ENDCHAR +STARTCHAR r +ENCODING 114 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +B8 +C0 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR s +ENCODING 115 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +80 +70 +08 +08 +F0 +00 +00 +ENDCHAR +STARTCHAR t +ENCODING 116 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +20 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR u +ENCODING 117 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR v +ENCODING 118 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR w +ENCODING 119 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +A8 +A8 +A8 +70 +00 +00 +ENDCHAR +STARTCHAR x +ENCODING 120 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +50 +20 +20 +50 +88 +00 +00 +ENDCHAR +STARTCHAR y +ENCODING 121 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR z +ENCODING 122 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR braceleft +ENCODING 123 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +18 +20 +20 +40 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR bar +ENCODING 124 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR braceright +ENCODING 125 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +10 +10 +08 +10 +10 +10 +60 +00 +00 +ENDCHAR +STARTCHAR asciitilde +ENCODING 126 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +48 +A8 +90 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR nbspace +ENCODING 160 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR exclamdown +ENCODING 161 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +00 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR cent +ENCODING 162 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +70 +A8 +A0 +A0 +A8 +70 +20 +00 +ENDCHAR +STARTCHAR sterling +ENCODING 163 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +30 +48 +40 +F0 +40 +40 +48 +F8 +00 +00 +ENDCHAR +STARTCHAR currency +ENCODING 164 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +30 +48 +48 +30 +48 +00 +00 +00 +ENDCHAR +STARTCHAR yen +ENCODING 165 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +20 +70 +20 +70 +20 +00 +00 +ENDCHAR +STARTCHAR brokenbar +ENCODING 166 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +20 +00 +00 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR section +ENCODING 167 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +48 +20 +50 +48 +28 +10 +48 +30 +00 +00 +ENDCHAR +STARTCHAR dieresis +ENCODING 168 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR copyright +ENCODING 169 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +84 +B4 +A4 +A4 +B4 +84 +78 +00 +00 +ENDCHAR +STARTCHAR ordfeminine +ENCODING 170 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +08 +38 +48 +38 +00 +78 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR guillemotleft +ENCODING 171 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +14 +28 +50 +A0 +50 +28 +14 +00 +00 +ENDCHAR +STARTCHAR logicalnot +ENCODING 172 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +08 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR softhyphen +ENCODING 173 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +78 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR registered +ENCODING 174 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +84 +B4 +AC +B4 +AC +84 +78 +00 +00 +ENDCHAR +STARTCHAR macron +ENCODING 175 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR degree +ENCODING 176 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +50 +20 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR plusminus +ENCODING 177 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +20 +F8 +20 +20 +00 +F8 +00 +00 +ENDCHAR +STARTCHAR twosuperior +ENCODING 178 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +48 +10 +20 +78 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR threesuperior +ENCODING 179 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +70 +08 +30 +08 +70 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR acute +ENCODING 180 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR mu +ENCODING 181 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +98 +E8 +80 +80 +ENDCHAR +STARTCHAR paragraph +ENCODING 182 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +A8 +A8 +A8 +68 +28 +28 +28 +00 +00 +ENDCHAR +STARTCHAR periodcentered +ENCODING 183 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +20 +20 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR cedilla +ENCODING 184 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +20 +20 +40 +ENDCHAR +STARTCHAR onesuperior +ENCODING 185 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +10 +30 +10 +10 +38 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR ordmasculine +ENCODING 186 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +48 +48 +48 +30 +00 +78 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR guillemotright +ENCODING 187 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +A0 +50 +28 +14 +28 +50 +A0 +00 +00 +ENDCHAR +STARTCHAR onequarter +ENCODING 188 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +C0 +44 +48 +50 +20 +48 +98 +28 +78 +08 +08 +ENDCHAR +STARTCHAR onehalf +ENCODING 189 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +C0 +44 +48 +50 +20 +40 +98 +24 +08 +10 +3C +ENDCHAR +STARTCHAR threequarters +ENCODING 190 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +E0 +10 +60 +14 +E8 +10 +24 +4C +94 +3C +04 +04 +ENDCHAR +STARTCHAR questiondown +ENCODING 191 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +00 +20 +40 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Agrave +ENCODING 192 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Aacute +ENCODING 193 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Acircumflex +ENCODING 194 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Atilde +ENCODING 195 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Adieresis +ENCODING 196 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Aring +ENCODING 197 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR AE +ENCODING 198 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +7C +90 +90 +FC +90 +90 +90 +9C +00 +00 +ENDCHAR +STARTCHAR Ccedilla +ENCODING 199 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +80 +88 +70 +20 +40 +ENDCHAR +STARTCHAR Egrave +ENCODING 200 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Eacute +ENCODING 201 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Ecircumflex +ENCODING 202 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Edieresis +ENCODING 203 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Igrave +ENCODING 204 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Iacute +ENCODING 205 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Icircumflex +ENCODING 206 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Idieresis +ENCODING 207 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Eth +ENCODING 208 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +88 +E8 +88 +88 +90 +E0 +00 +00 +ENDCHAR +STARTCHAR Ntilde +ENCODING 209 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +88 +88 +C8 +A8 +98 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Ograve +ENCODING 210 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Oacute +ENCODING 211 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Ocircumflex +ENCODING 212 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Otilde +ENCODING 213 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Odieresis +ENCODING 214 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR multiply +ENCODING 215 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +50 +20 +50 +88 +00 +00 +00 +ENDCHAR +STARTCHAR Oslash +ENCODING 216 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +74 +88 +98 +A8 +C8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Ugrave +ENCODING 217 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Uacute +ENCODING 218 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Ucircumflex +ENCODING 219 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Udieresis +ENCODING 220 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Yacute +ENCODING 221 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Thorn +ENCODING 222 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +F0 +88 +88 +88 +F0 +80 +80 +00 +00 +ENDCHAR +STARTCHAR germandbls +ENCODING 223 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +90 +F0 +88 +88 +C8 +B0 +00 +00 +ENDCHAR +STARTCHAR agrave +ENCODING 224 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR aacute +ENCODING 225 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR acircumflex +ENCODING 226 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR atilde +ENCODING 227 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR adieresis +ENCODING 228 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR aring +ENCODING 229 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR ae +ENCODING 230 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +28 +68 +B0 +A0 +78 +00 +00 +ENDCHAR +STARTCHAR ccedilla +ENCODING 231 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +20 +40 +ENDCHAR +STARTCHAR egrave +ENCODING 232 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR eacute +ENCODING 233 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR ecircumflex +ENCODING 234 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR edieresis +ENCODING 235 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR igrave +ENCODING 236 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR iacute +ENCODING 237 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR icircumflex +ENCODING 238 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR idieresis +ENCODING 239 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR eth +ENCODING 240 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +A0 +40 +A0 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ntilde +ENCODING 241 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR ograve +ENCODING 242 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR oacute +ENCODING 243 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ocircumflex +ENCODING 244 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR otilde +ENCODING 245 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR odieresis +ENCODING 246 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR divide +ENCODING 247 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +20 +00 +F8 +00 +20 +20 +00 +00 +ENDCHAR +STARTCHAR oslash +ENCODING 248 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +74 +98 +A8 +C8 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ugrave +ENCODING 249 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR uacute +ENCODING 250 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR ucircumflex +ENCODING 251 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR udieresis +ENCODING 252 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR yacute +ENCODING 253 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR thorn +ENCODING 254 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +F0 +88 +88 +88 +88 +F0 +80 +80 +ENDCHAR +STARTCHAR ydieresis +ENCODING 255 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Amacron +ENCODING 256 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR amacron +ENCODING 257 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Abreve +ENCODING 258 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR abreve +ENCODING 259 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Aogonek +ENCODING 260 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +F8 +88 +88 +88 +10 +0C +ENDCHAR +STARTCHAR aogonek +ENCODING 261 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +08 +78 +88 +88 +78 +10 +0C +ENDCHAR +STARTCHAR Cacute +ENCODING 262 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +70 +88 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR cacute +ENCODING 263 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Ccircumflex +ENCODING 264 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +88 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ccircumflex +ENCODING 265 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Cdotaccent +ENCODING 266 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +70 +88 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR cdotaccent +ENCODING 267 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Ccaron +ENCODING 268 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ccaron +ENCODING 269 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Dcaron +ENCODING 270 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +A0 +40 +E0 +90 +88 +88 +88 +88 +90 +E0 +00 +00 +ENDCHAR +STARTCHAR dcaron +ENCODING 271 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +08 +08 +78 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Dcroat +ENCODING 272 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +88 +E8 +88 +88 +90 +E0 +00 +00 +ENDCHAR +STARTCHAR dcroat +ENCODING 273 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +3C +08 +78 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Emacron +ENCODING 274 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR emacron +ENCODING 275 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR Ebreve +ENCODING 276 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR ebreve +ENCODING 277 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR Edotaccent +ENCODING 278 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR edotaccent +ENCODING 279 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR Eogonek +ENCODING 280 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +80 +80 +80 +F8 +10 +0C +ENDCHAR +STARTCHAR eogonek +ENCODING 281 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +F8 +80 +80 +78 +20 +18 +ENDCHAR +STARTCHAR Ecaron +ENCODING 282 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR ecaron +ENCODING 283 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR Gcircumflex +ENCODING 284 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +88 +80 +80 +B8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR gcircumflex +ENCODING 285 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Gbreve +ENCODING 286 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +80 +80 +B8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR gbreve +ENCODING 287 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Gdotaccent +ENCODING 288 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +70 +88 +80 +80 +B8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR gdotaccent +ENCODING 289 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Gcommaaccent +ENCODING 290 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +B8 +88 +88 +70 +20 +40 +ENDCHAR +STARTCHAR gcommaaccent +ENCODING 291 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Hcircumflex +ENCODING 292 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +88 +88 +88 +F8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR hcircumflex +ENCODING 293 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +80 +80 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Hbar +ENCODING 294 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +48 +FC +48 +78 +48 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR hbar +ENCODING 295 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +F0 +40 +70 +48 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR Itilde +ENCODING 296 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR itilde +ENCODING 297 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Imacron +ENCODING 298 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR imacron +ENCODING 299 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Ibreve +ENCODING 300 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR ibreve +ENCODING 301 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Iogonek +ENCODING 302 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +70 +20 +18 +ENDCHAR +STARTCHAR iogonek +ENCODING 303 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +00 +60 +20 +20 +20 +20 +70 +20 +18 +ENDCHAR +STARTCHAR Idotaccent +ENCODING 304 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR dotlessi +ENCODING 305 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR IJ +ENCODING 306 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +A8 +A8 +90 +00 +00 +ENDCHAR +STARTCHAR ij +ENCODING 307 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +88 +88 +00 +98 +88 +88 +88 +88 +88 +28 +10 +ENDCHAR +STARTCHAR Jcircumflex +ENCODING 308 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +28 +38 +10 +10 +10 +10 +90 +90 +60 +00 +00 +ENDCHAR +STARTCHAR jcircumflex +ENCODING 309 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +14 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR Kcommaaccent +ENCODING 310 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +90 +A0 +C0 +C0 +A0 +90 +A8 +20 +40 +ENDCHAR +STARTCHAR kcommaaccent +ENCODING 311 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +48 +50 +60 +60 +50 +68 +20 +40 +ENDCHAR +STARTCHAR kgreenlandic +ENCODING 312 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +48 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR Lacute +ENCODING 313 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +40 +80 +80 +80 +80 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR lacute +ENCODING 314 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +60 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Lcommaaccent +ENCODING 315 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +80 +80 +80 +80 +80 +F8 +20 +40 +ENDCHAR +STARTCHAR lcommaaccent +ENCODING 316 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +20 +20 +20 +20 +20 +20 +70 +20 +40 +ENDCHAR +STARTCHAR Lcaron +ENCODING 317 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +80 +80 +80 +80 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR lcaron +ENCODING 318 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +60 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Ldot +ENCODING 319 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +80 +90 +90 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR ldot +ENCODING 320 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +20 +20 +24 +24 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Lslash +ENCODING 321 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +40 +60 +C0 +40 +40 +7C +00 +00 +ENDCHAR +STARTCHAR lslash +ENCODING 322 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +20 +20 +30 +60 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Nacute +ENCODING 323 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +88 +88 +C8 +A8 +98 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR nacute +ENCODING 324 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Ncommaaccent +ENCODING 325 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +98 +88 +88 +A8 +20 +40 +ENDCHAR +STARTCHAR ncommaaccent +ENCODING 326 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +A8 +20 +40 +ENDCHAR +STARTCHAR Ncaron +ENCODING 327 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +88 +88 +C8 +A8 +98 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR ncaron +ENCODING 328 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR napostrophe +ENCODING 329 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +40 +40 +80 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Eng +ENCODING 330 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +98 +88 +88 +88 +08 +10 +ENDCHAR +STARTCHAR eng +ENCODING 331 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +88 +08 +10 +ENDCHAR +STARTCHAR Omacron +ENCODING 332 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR omacron +ENCODING 333 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Obreve +ENCODING 334 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR obreve +ENCODING 335 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Ohungarumlaut +ENCODING 336 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ohungarumlaut +ENCODING 337 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR OE +ENCODING 338 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +7C +90 +90 +9C +90 +90 +90 +7C +00 +00 +ENDCHAR +STARTCHAR oe +ENCODING 339 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +A8 +A8 +B0 +A0 +78 +00 +00 +ENDCHAR +STARTCHAR Racute +ENCODING 340 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +F0 +88 +88 +88 +F0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR racute +ENCODING 341 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +B8 +C0 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR Rcommaaccent +ENCODING 342 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +A0 +90 +A8 +20 +40 +ENDCHAR +STARTCHAR rcommaaccent +ENCODING 343 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +B8 +C0 +80 +80 +80 +C0 +40 +80 +ENDCHAR +STARTCHAR Rcaron +ENCODING 344 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F0 +88 +88 +88 +F0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR rcaron +ENCODING 345 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +B8 +C0 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR Sacute +ENCODING 346 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +70 +88 +80 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR sacute +ENCODING 347 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +78 +80 +70 +08 +08 +F0 +00 +00 +ENDCHAR +STARTCHAR Scircumflex +ENCODING 348 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +70 +88 +80 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR scircumflex +ENCODING 349 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +78 +80 +70 +08 +08 +F0 +00 +00 +ENDCHAR +STARTCHAR Scedilla +ENCODING 350 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +70 +08 +08 +88 +70 +20 +40 +ENDCHAR +STARTCHAR scedilla +ENCODING 351 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +80 +70 +08 +08 +F0 +20 +40 +ENDCHAR +STARTCHAR Scaron +ENCODING 352 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +80 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR scaron +ENCODING 353 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +78 +80 +70 +08 +08 +F0 +00 +00 +ENDCHAR +STARTCHAR Tcedilla +ENCODING 354 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +30 +10 +20 +ENDCHAR +STARTCHAR tcedilla +ENCODING 355 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +20 +20 +20 +20 +18 +10 +20 +ENDCHAR +STARTCHAR Tcaron +ENCODING 356 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F8 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR tcaron +ENCODING 357 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +20 +20 +70 +20 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR Tbar +ENCODING 358 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +70 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR tbar +ENCODING 359 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +20 +70 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR Utilde +ENCODING 360 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR utilde +ENCODING 361 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Umacron +ENCODING 362 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR umacron +ENCODING 363 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Ubreve +ENCODING 364 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR ubreve +ENCODING 365 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Uring +ENCODING 366 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +A8 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uring +ENCODING 367 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +A8 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Uhungarumlaut +ENCODING 368 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uhungarumlaut +ENCODING 369 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR Uogonek +ENCODING 370 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +70 +20 +18 +ENDCHAR +STARTCHAR uogonek +ENCODING 371 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +78 +10 +0C +ENDCHAR +STARTCHAR Wcircumflex +ENCODING 372 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +88 +88 +88 +88 +A8 +A8 +D8 +88 +00 +00 +ENDCHAR +STARTCHAR wcircumflex +ENCODING 373 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +88 +88 +A8 +A8 +A8 +70 +00 +00 +ENDCHAR +STARTCHAR Ycircumflex +ENCODING 374 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR ycircumflex +ENCODING 375 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +50 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Ydieresis +ENCODING 376 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Zacute +ENCODING 377 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +F8 +08 +10 +20 +40 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR zacute +ENCODING 378 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +F8 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Zdotaccent +ENCODING 379 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +F8 +08 +10 +20 +40 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR zdotaccent +ENCODING 380 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +F8 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Zcaron +ENCODING 381 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F8 +08 +10 +20 +40 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR zcaron +ENCODING 382 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +F8 +10 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR longs +ENCODING 383 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +18 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni0186 +ENCODING 390 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +08 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni018E +ENCODING 398 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +08 +08 +78 +08 +08 +08 +F8 +00 +00 +ENDCHAR +STARTCHAR Schwa +ENCODING 399 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +08 +F8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni0190 +ENCODING 400 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +60 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR florin +ENCODING 402 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +28 +20 +70 +20 +20 +20 +20 +A0 +40 +ENDCHAR +STARTCHAR uni019D +ENCODING 413 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +98 +88 +88 +C8 +40 +80 +ENDCHAR +STARTCHAR uni019E +ENCODING 414 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +88 +08 +08 +ENDCHAR +STARTCHAR uni01B5 +ENCODING 437 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +08 +10 +F8 +20 +40 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR uni01B6 +ENCODING 438 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +10 +78 +20 +40 +F8 +00 +00 +ENDCHAR +STARTCHAR Ezh +ENCODING 439 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +08 +10 +30 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01CD +ENCODING 461 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni01CE +ENCODING 462 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR uni01CF +ENCODING 463 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR uni01D0 +ENCODING 464 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR uni01D1 +ENCODING 465 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01D2 +ENCODING 466 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01D3 +ENCODING 467 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01D4 +ENCODING 468 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +ENDCHAR +STARTCHAR uni01DC +ENCODING 476 +SWIDTH 1000 0 +DWIDTH 6 0 +BBX 5 10 0 0 +BITMAP +40 +20 +88 +00 +88 +88 +88 +88 +88 +78 +ENDCHAR +STARTCHAR uni01E2 +ENCODING 482 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +78 +00 +7C +90 +90 +FC +90 +90 +90 +9C +00 +00 +ENDCHAR +STARTCHAR uni01E3 +ENCODING 483 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +70 +28 +68 +B0 +A0 +78 +00 +00 +ENDCHAR +STARTCHAR uni01E4 +ENCODING 484 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +80 +80 +B8 +88 +9C +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01E5 +ENCODING 485 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +88 +9C +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR Gcaron +ENCODING 486 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +80 +80 +B8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR gcaron +ENCODING 487 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR uni01E8 +ENCODING 488 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +88 +90 +A0 +C0 +C0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR uni01E9 +ENCODING 489 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +40 +40 +48 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR uni01EA +ENCODING 490 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +70 +20 +18 +ENDCHAR +STARTCHAR uni01EB +ENCODING 491 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +70 +20 +18 +ENDCHAR +STARTCHAR uni01EC +ENCODING 492 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +70 +88 +88 +88 +88 +88 +88 +70 +20 +18 +ENDCHAR +STARTCHAR uni01ED +ENCODING 493 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +70 +88 +88 +88 +88 +70 +20 +18 +ENDCHAR +STARTCHAR uni01EE +ENCODING 494 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F8 +08 +10 +30 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01EF +ENCODING 495 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +F8 +08 +10 +30 +08 +08 +88 +70 +ENDCHAR +STARTCHAR uni01F0 +ENCODING 496 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +14 +08 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR uni01F4 +ENCODING 500 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +70 +88 +80 +80 +B8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni01F5 +ENCODING 501 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR AEacute +ENCODING 508 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +10 +7C +90 +90 +FC +90 +90 +90 +9C +00 +00 +ENDCHAR +STARTCHAR aeacute +ENCODING 509 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +28 +68 +B0 +A0 +78 +00 +00 +ENDCHAR +STARTCHAR Oslashacute +ENCODING 510 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +74 +88 +98 +A8 +C8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR oslashacute +ENCODING 511 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +74 +98 +A8 +C8 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Scommaaccent +ENCODING 536 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +70 +08 +08 +88 +70 +20 +40 +ENDCHAR +STARTCHAR scommaaccent +ENCODING 537 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +80 +70 +08 +08 +F0 +20 +40 +ENDCHAR +STARTCHAR Tcommaaccent +ENCODING 538 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +30 +10 +20 +ENDCHAR +STARTCHAR tcommaaccent +ENCODING 539 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +20 +20 +20 +20 +18 +08 +10 +ENDCHAR +STARTCHAR uni0232 +ENCODING 562 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni0233 +ENCODING 563 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR dotlessj +ENCODING 567 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR uni0254 +ENCODING 596 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni0258 +ENCODING 600 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +F8 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR schwa +ENCODING 601 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +08 +F8 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni025B +ENCODING 603 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +60 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni0272 +ENCODING 626 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +C8 +40 +80 +ENDCHAR +STARTCHAR ezh +ENCODING 658 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +08 +10 +30 +08 +08 +88 +70 +ENDCHAR +STARTCHAR commaturnedmod +ENCODING 699 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii57929 +ENCODING 700 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii64937 +ENCODING 701 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +10 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR circumflex +ENCODING 710 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR caron +ENCODING 711 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR breve +ENCODING 728 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR dotaccent +ENCODING 729 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR ogonek +ENCODING 731 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +10 +20 +18 +ENDCHAR +STARTCHAR tilde +ENCODING 732 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR hungarumlaut +ENCODING 733 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR gravecomb +ENCODING 768 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR acutecomb +ENCODING 769 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0302 +ENCODING 770 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR tildecomb +ENCODING 771 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0304 +ENCODING 772 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0305 +ENCODING 773 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +F8 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0306 +ENCODING 774 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0307 +ENCODING 775 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0308 +ENCODING 776 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni030A +ENCODING 778 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +50 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni030B +ENCODING 779 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni030C +ENCODING 780 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni0329 +ENCODING 809 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +20 +20 +ENDCHAR +STARTCHAR tonos +ENCODING 900 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR dieresistonos +ENCODING 901 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR Alphatonos +ENCODING 902 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR anoteleia +ENCODING 903 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR Epsilontonos +ENCODING 904 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Etatonos +ENCODING 905 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +88 +88 +88 +F8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Iotatonos +ENCODING 906 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Omicrontonos +ENCODING 908 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Upsilontonos +ENCODING 910 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Omegatonos +ENCODING 911 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +80 +70 +88 +88 +88 +88 +88 +50 +D8 +00 +00 +ENDCHAR +STARTCHAR iotadieresistonos +ENCODING 912 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +50 +50 +60 +20 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR Alpha +ENCODING 913 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Beta +ENCODING 914 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +F0 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR Gamma +ENCODING 915 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR Delta +ENCODING 916 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +50 +50 +88 +88 +88 +F8 +00 +00 +ENDCHAR +STARTCHAR Epsilon +ENCODING 917 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Zeta +ENCODING 918 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +08 +10 +20 +40 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Eta +ENCODING 919 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +F8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Theta +ENCODING 920 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +A8 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Iota +ENCODING 921 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Kappa +ENCODING 922 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +90 +A0 +C0 +C0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR Lambda +ENCODING 923 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +50 +50 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Mu +ENCODING 924 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +D8 +A8 +A8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Nu +ENCODING 925 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +98 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Xi +ENCODING 926 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +00 +00 +70 +00 +00 +00 +F8 +00 +00 +ENDCHAR +STARTCHAR Omicron +ENCODING 927 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR Pi +ENCODING 928 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +88 +88 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Rho +ENCODING 929 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR Sigma +ENCODING 931 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +40 +20 +10 +10 +20 +40 +F8 +00 +00 +ENDCHAR +STARTCHAR Tau +ENCODING 932 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Upsilon +ENCODING 933 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Phi +ENCODING 934 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +A8 +A8 +A8 +A8 +70 +20 +00 +00 +ENDCHAR +STARTCHAR Chi +ENCODING 935 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +20 +20 +50 +88 +88 +00 +00 +ENDCHAR +STARTCHAR Psi +ENCODING 936 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +A8 +A8 +A8 +A8 +A8 +70 +20 +20 +00 +00 +ENDCHAR +STARTCHAR Omega +ENCODING 937 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +50 +D8 +00 +00 +ENDCHAR +STARTCHAR Iotadieresis +ENCODING 938 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR Upsilondieresis +ENCODING 939 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR alphatonos +ENCODING 940 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +68 +90 +90 +90 +90 +68 +00 +00 +ENDCHAR +STARTCHAR epsilontonos +ENCODING 941 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +88 +60 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR etatonos +ENCODING 942 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +F0 +88 +88 +88 +88 +88 +08 +08 +ENDCHAR +STARTCHAR iotatonos +ENCODING 943 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +60 +20 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR upsilondieresistonos +ENCODING 944 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +50 +50 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR alpha +ENCODING 945 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +68 +90 +90 +90 +90 +68 +00 +00 +ENDCHAR +STARTCHAR beta +ENCODING 946 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +90 +F0 +88 +88 +88 +F0 +80 +80 +ENDCHAR +STARTCHAR gamma +ENCODING 947 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +50 +50 +20 +20 +20 +ENDCHAR +STARTCHAR delta +ENCODING 948 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +40 +20 +70 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR epsilon +ENCODING 949 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +60 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR zeta +ENCODING 950 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +10 +20 +40 +80 +80 +80 +70 +08 +10 +ENDCHAR +STARTCHAR eta +ENCODING 951 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +88 +08 +08 +ENDCHAR +STARTCHAR theta +ENCODING 952 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +30 +48 +48 +78 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR iota +ENCODING 953 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +60 +20 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR kappa +ENCODING 954 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +48 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR lambda +ENCODING 955 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +20 +20 +50 +50 +88 +88 +00 +00 +ENDCHAR +STARTCHAR mugreek +ENCODING 956 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +98 +E8 +80 +80 +ENDCHAR +STARTCHAR nu +ENCODING 957 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR xi +ENCODING 958 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +80 +80 +70 +80 +80 +80 +70 +08 +10 +ENDCHAR +STARTCHAR omicron +ENCODING 959 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR pi +ENCODING 960 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR rho +ENCODING 961 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +F0 +80 +80 +ENDCHAR +STARTCHAR sigma1 +ENCODING 962 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +80 +80 +80 +70 +08 +10 +ENDCHAR +STARTCHAR sigma +ENCODING 963 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +90 +90 +90 +90 +60 +00 +00 +ENDCHAR +STARTCHAR tau +ENCODING 964 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +20 +20 +20 +20 +10 +00 +00 +ENDCHAR +STARTCHAR upsilon +ENCODING 965 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR phi +ENCODING 966 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +90 +A8 +A8 +A8 +A8 +70 +20 +20 +ENDCHAR +STARTCHAR chi +ENCODING 967 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +50 +20 +20 +50 +88 +88 +ENDCHAR +STARTCHAR psi +ENCODING 968 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A8 +A8 +A8 +A8 +A8 +70 +20 +20 +ENDCHAR +STARTCHAR omega +ENCODING 969 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +50 +88 +A8 +A8 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR iotadieresis +ENCODING 970 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +60 +20 +20 +20 +20 +18 +00 +00 +ENDCHAR +STARTCHAR upsilondieresis +ENCODING 971 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR omicrontonos +ENCODING 972 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR upsilontonos +ENCODING 973 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR omegatonos +ENCODING 974 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +50 +88 +A8 +A8 +A8 +50 +00 +00 +ENDCHAR +STARTCHAR theta1 +ENCODING 977 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +30 +48 +48 +3C +08 +C8 +48 +30 +00 +00 +ENDCHAR +STARTCHAR phi1 +ENCODING 981 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +70 +A8 +A8 +A8 +A8 +70 +20 +00 +ENDCHAR +STARTCHAR uni03F0 +ENCODING 1008 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +C4 +28 +10 +20 +50 +8C +00 +00 +ENDCHAR +STARTCHAR uni03F1 +ENCODING 1009 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +F0 +80 +70 +ENDCHAR +STARTCHAR uni03F2 +ENCODING 1010 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni03F3 +ENCODING 1011 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +08 +08 +00 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR uni03F4 +ENCODING 1012 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +F8 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni03F5 +ENCODING 1013 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +80 +F0 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR uni03F6 +ENCODING 1014 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +08 +78 +08 +08 +F0 +00 +00 +ENDCHAR +STARTCHAR uni0400 +ENCODING 1024 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR afii10023 +ENCODING 1025 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR afii10051 +ENCODING 1026 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +40 +40 +70 +48 +48 +48 +48 +08 +10 +ENDCHAR +STARTCHAR afii10052 +ENCODING 1027 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +F8 +80 +80 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR afii10053 +ENCODING 1028 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +F0 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10054 +ENCODING 1029 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +70 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10055 +ENCODING 1030 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR afii10056 +ENCODING 1031 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR afii10057 +ENCODING 1032 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +38 +10 +10 +10 +10 +90 +90 +60 +00 +00 +ENDCHAR +STARTCHAR afii10058 +ENCODING 1033 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +A0 +B0 +A8 +A8 +A8 +A8 +B0 +00 +00 +ENDCHAR +STARTCHAR afii10059 +ENCODING 1034 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +A0 +A0 +B0 +E8 +A8 +A8 +A8 +B0 +00 +00 +ENDCHAR +STARTCHAR afii10060 +ENCODING 1035 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +40 +40 +70 +48 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR afii10061 +ENCODING 1036 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +20 +88 +90 +A0 +C0 +C0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR uni040D +ENCODING 1037 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +88 +88 +98 +A8 +C8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10062 +ENCODING 1038 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +88 +88 +88 +88 +78 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR afii10145 +ENCODING 1039 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +F8 +20 +20 +ENDCHAR +STARTCHAR afii10017 +ENCODING 1040 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10018 +ENCODING 1041 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +80 +80 +F0 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR afii10019 +ENCODING 1042 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +F0 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR afii10020 +ENCODING 1043 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR afii10021 +ENCODING 1044 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +38 +48 +48 +48 +48 +48 +48 +FC +84 +00 +ENDCHAR +STARTCHAR afii10022 +ENCODING 1045 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR afii10024 +ENCODING 1046 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +A8 +A8 +A8 +70 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR afii10025 +ENCODING 1047 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +30 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10026 +ENCODING 1048 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +98 +A8 +C8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10027 +ENCODING 1049 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +88 +88 +98 +A8 +C8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10028 +ENCODING 1050 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +90 +A0 +C0 +C0 +A0 +90 +88 +00 +00 +ENDCHAR +STARTCHAR afii10029 +ENCODING 1051 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +38 +48 +48 +48 +48 +48 +48 +88 +00 +00 +ENDCHAR +STARTCHAR afii10030 +ENCODING 1052 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +D8 +A8 +A8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10031 +ENCODING 1053 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +F8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10032 +ENCODING 1054 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10033 +ENCODING 1055 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +88 +88 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10034 +ENCODING 1056 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +88 +88 +88 +F0 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR afii10035 +ENCODING 1057 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10036 +ENCODING 1058 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR afii10037 +ENCODING 1059 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +78 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR afii10038 +ENCODING 1060 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +70 +A8 +A8 +A8 +A8 +A8 +A8 +70 +20 +00 +ENDCHAR +STARTCHAR afii10039 +ENCODING 1061 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +20 +20 +50 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10040 +ENCODING 1062 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +7C +04 +04 +ENDCHAR +STARTCHAR afii10041 +ENCODING 1063 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +78 +08 +08 +08 +00 +00 +ENDCHAR +STARTCHAR afii10042 +ENCODING 1064 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +A8 +A8 +A8 +A8 +A8 +A8 +A8 +78 +00 +00 +ENDCHAR +STARTCHAR afii10043 +ENCODING 1065 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +A8 +A8 +A8 +A8 +A8 +A8 +A8 +7C +04 +04 +ENDCHAR +STARTCHAR afii10044 +ENCODING 1066 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +C0 +40 +70 +48 +48 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR afii10045 +ENCODING 1067 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +A8 +A8 +A8 +C8 +00 +00 +ENDCHAR +STARTCHAR afii10046 +ENCODING 1068 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +70 +48 +48 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR afii10047 +ENCODING 1069 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +38 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10048 +ENCODING 1070 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +90 +A8 +A8 +A8 +E8 +A8 +A8 +90 +00 +00 +ENDCHAR +STARTCHAR afii10049 +ENCODING 1071 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +88 +88 +88 +78 +28 +48 +88 +00 +00 +ENDCHAR +STARTCHAR afii10065 +ENCODING 1072 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR afii10066 +ENCODING 1073 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +80 +F0 +88 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR afii10067 +ENCODING 1074 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +90 +F0 +88 +88 +88 +F0 +00 +00 +ENDCHAR +STARTCHAR afii10068 +ENCODING 1075 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR afii10069 +ENCODING 1076 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR afii10070 +ENCODING 1077 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR afii10072 +ENCODING 1078 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A8 +A8 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR afii10073 +ENCODING 1079 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +30 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10074 +ENCODING 1080 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR afii10075 +ENCODING 1081 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR afii10076 +ENCODING 1082 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +48 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR afii10077 +ENCODING 1083 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +38 +48 +48 +48 +48 +88 +00 +00 +ENDCHAR +STARTCHAR afii10078 +ENCODING 1084 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +D8 +A8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10079 +ENCODING 1085 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10080 +ENCODING 1086 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10081 +ENCODING 1087 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii10082 +ENCODING 1088 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +F0 +80 +80 +ENDCHAR +STARTCHAR afii10083 +ENCODING 1089 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10084 +ENCODING 1090 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR afii10085 +ENCODING 1091 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR afii10086 +ENCODING 1092 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +70 +A8 +A8 +A8 +A8 +70 +20 +00 +ENDCHAR +STARTCHAR afii10087 +ENCODING 1093 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +50 +20 +20 +50 +88 +00 +00 +ENDCHAR +STARTCHAR afii10088 +ENCODING 1094 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +7C +04 +04 +ENDCHAR +STARTCHAR afii10089 +ENCODING 1095 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +78 +08 +08 +00 +00 +ENDCHAR +STARTCHAR afii10090 +ENCODING 1096 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A8 +A8 +A8 +A8 +A8 +78 +00 +00 +ENDCHAR +STARTCHAR afii10091 +ENCODING 1097 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A8 +A8 +A8 +A8 +A8 +7C +04 +04 +ENDCHAR +STARTCHAR afii10092 +ENCODING 1098 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +C0 +40 +70 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR afii10093 +ENCODING 1099 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +C8 +A8 +A8 +C8 +00 +00 +ENDCHAR +STARTCHAR afii10094 +ENCODING 1100 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +40 +40 +70 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR afii10095 +ENCODING 1101 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +38 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10096 +ENCODING 1102 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +90 +A8 +A8 +E8 +A8 +90 +00 +00 +ENDCHAR +STARTCHAR afii10097 +ENCODING 1103 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +88 +88 +78 +28 +48 +00 +00 +ENDCHAR +STARTCHAR uni0450 +ENCODING 1104 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR afii10071 +ENCODING 1105 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR afii10099 +ENCODING 1106 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +F0 +40 +70 +48 +48 +48 +48 +08 +10 +ENDCHAR +STARTCHAR afii10100 +ENCODING 1107 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +20 +F8 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR afii10101 +ENCODING 1108 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +E0 +80 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10102 +ENCODING 1109 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +80 +70 +08 +08 +F0 +00 +00 +ENDCHAR +STARTCHAR afii10103 +ENCODING 1110 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR afii10104 +ENCODING 1111 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR afii10105 +ENCODING 1112 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +08 +08 +00 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR afii10106 +ENCODING 1113 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +60 +A0 +B0 +A8 +A8 +B0 +00 +00 +ENDCHAR +STARTCHAR afii10107 +ENCODING 1114 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A0 +A0 +F0 +A8 +A8 +B0 +00 +00 +ENDCHAR +STARTCHAR afii10108 +ENCODING 1115 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +F0 +40 +70 +48 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR afii10109 +ENCODING 1116 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +10 +48 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR uni045D +ENCODING 1117 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +20 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR afii10110 +ENCODING 1118 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR afii10193 +ENCODING 1119 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +F8 +20 +20 +ENDCHAR +STARTCHAR afii10146 +ENCODING 1122 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +F0 +40 +70 +48 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR afii10194 +ENCODING 1123 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +E0 +40 +70 +48 +48 +70 +00 +00 +ENDCHAR +STARTCHAR uni046A +ENCODING 1130 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +88 +50 +20 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni046B +ENCODING 1131 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +50 +20 +70 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR afii10050 +ENCODING 1168 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +F8 +80 +80 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR afii10098 +ENCODING 1169 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +08 +F8 +80 +80 +80 +80 +80 +00 +00 +ENDCHAR +STARTCHAR uni0492 +ENCODING 1170 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +7C +40 +40 +40 +F0 +40 +40 +40 +00 +00 +ENDCHAR +STARTCHAR uni0493 +ENCODING 1171 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +40 +40 +F0 +40 +40 +00 +00 +ENDCHAR +STARTCHAR uni0494 +ENCODING 1172 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +80 +F0 +88 +88 +88 +08 +10 +ENDCHAR +STARTCHAR uni0495 +ENCODING 1173 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +80 +80 +E0 +90 +90 +10 +20 +ENDCHAR +STARTCHAR uni0496 +ENCODING 1174 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +A8 +A8 +A8 +70 +70 +A8 +A8 +AC +04 +04 +ENDCHAR +STARTCHAR uni0497 +ENCODING 1175 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A8 +A8 +70 +A8 +A8 +AC +04 +04 +ENDCHAR +STARTCHAR uni0498 +ENCODING 1176 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +30 +08 +08 +88 +70 +20 +20 +ENDCHAR +STARTCHAR uni0499 +ENCODING 1177 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +30 +08 +88 +70 +20 +20 +ENDCHAR +STARTCHAR uni049A +ENCODING 1178 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +90 +A0 +C0 +C0 +A0 +90 +8C +04 +04 +ENDCHAR +STARTCHAR uni049B +ENCODING 1179 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +48 +50 +60 +60 +50 +4C +04 +04 +ENDCHAR +STARTCHAR uni049C +ENCODING 1180 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +84 +A8 +B0 +E0 +E0 +B0 +A8 +84 +00 +00 +ENDCHAR +STARTCHAR uni049D +ENCODING 1181 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +A8 +B0 +E0 +E0 +B0 +A8 +00 +00 +ENDCHAR +STARTCHAR uni04A0 +ENCODING 1184 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +C4 +48 +50 +60 +60 +50 +48 +44 +00 +00 +ENDCHAR +STARTCHAR uni04A1 +ENCODING 1185 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +C8 +50 +60 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR uni04A2 +ENCODING 1186 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +F8 +88 +88 +88 +8C +04 +04 +ENDCHAR +STARTCHAR uni04A3 +ENCODING 1187 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +F8 +88 +88 +8C +04 +04 +ENDCHAR +STARTCHAR uni04A4 +ENCODING 1188 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +9C +90 +90 +F0 +90 +90 +90 +90 +00 +00 +ENDCHAR +STARTCHAR uni04A5 +ENCODING 1189 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +9C +90 +F0 +90 +90 +90 +00 +00 +ENDCHAR +STARTCHAR uni04AA +ENCODING 1194 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +80 +80 +80 +80 +88 +70 +20 +20 +ENDCHAR +STARTCHAR uni04AB +ENCODING 1195 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +80 +80 +88 +70 +20 +20 +ENDCHAR +STARTCHAR uni04AE +ENCODING 1198 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni04AF +ENCODING 1199 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +50 +50 +20 +20 +20 +ENDCHAR +STARTCHAR uni04B0 +ENCODING 1200 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +50 +20 +70 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni04B1 +ENCODING 1201 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +50 +50 +20 +70 +20 +ENDCHAR +STARTCHAR uni04B2 +ENCODING 1202 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +50 +20 +20 +50 +88 +8C +04 +04 +ENDCHAR +STARTCHAR uni04B3 +ENCODING 1203 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +50 +20 +20 +50 +8C +04 +04 +ENDCHAR +STARTCHAR uni04B6 +ENCODING 1206 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +78 +08 +08 +0C +04 +04 +ENDCHAR +STARTCHAR uni04B7 +ENCODING 1207 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +78 +08 +0C +04 +04 +ENDCHAR +STARTCHAR uni04B8 +ENCODING 1208 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +A8 +A8 +78 +28 +28 +08 +00 +00 +ENDCHAR +STARTCHAR uni04B9 +ENCODING 1209 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +A8 +A8 +78 +28 +08 +00 +00 +ENDCHAR +STARTCHAR uni04BA +ENCODING 1210 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +80 +F0 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni04BB +ENCODING 1211 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +80 +80 +F0 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni04C0 +ENCODING 1216 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR uni04C1 +ENCODING 1217 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +A8 +A8 +A8 +70 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni04C2 +ENCODING 1218 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +A8 +A8 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni04CF +ENCODING 1231 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +20 +20 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR uni04D0 +ENCODING 1232 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni04D1 +ENCODING 1233 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR uni04D2 +ENCODING 1234 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +88 +88 +F8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni04D3 +ENCODING 1235 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +08 +78 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR uni04D4 +ENCODING 1236 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +7C +90 +90 +FC +90 +90 +90 +9C +00 +00 +ENDCHAR +STARTCHAR uni04D5 +ENCODING 1237 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +28 +68 +B0 +A0 +78 +00 +00 +ENDCHAR +STARTCHAR uni04D6 +ENCODING 1238 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +20 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR uni04D7 +ENCODING 1239 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +20 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR uni04D8 +ENCODING 1240 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +08 +08 +F8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR afii10846 +ENCODING 1241 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +08 +F8 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04DA +ENCODING 1242 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +08 +08 +F8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04DB +ENCODING 1243 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +08 +F8 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04DC +ENCODING 1244 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +A8 +A8 +A8 +70 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni04DD +ENCODING 1245 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +A8 +A8 +70 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni04DE +ENCODING 1246 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +08 +30 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04DF +ENCODING 1247 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +30 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04E2 +ENCODING 1250 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +88 +88 +98 +A8 +C8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni04E3 +ENCODING 1251 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR uni04E4 +ENCODING 1252 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +98 +A8 +C8 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni04E5 +ENCODING 1253 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +88 +88 +88 +78 +00 +00 +ENDCHAR +STARTCHAR uni04E6 +ENCODING 1254 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04E7 +ENCODING 1255 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04E8 +ENCODING 1256 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +F8 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04E9 +ENCODING 1257 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +F8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04EA +ENCODING 1258 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +88 +88 +F8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04EB +ENCODING 1259 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +F8 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04EC +ENCODING 1260 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +70 +88 +08 +38 +08 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04ED +ENCODING 1261 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +70 +88 +38 +08 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni04EE +ENCODING 1262 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +70 +00 +88 +88 +88 +88 +78 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR uni04EF +ENCODING 1263 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +00 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR uni04F0 +ENCODING 1264 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +88 +88 +78 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR uni04F1 +ENCODING 1265 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR uni04F2 +ENCODING 1266 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +88 +88 +88 +88 +78 +08 +08 +70 +00 +00 +ENDCHAR +STARTCHAR uni04F3 +ENCODING 1267 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR uni04F4 +ENCODING 1268 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +88 +88 +78 +08 +08 +08 +00 +00 +ENDCHAR +STARTCHAR uni04F5 +ENCODING 1269 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +88 +78 +08 +08 +00 +00 +ENDCHAR +STARTCHAR uni04F8 +ENCODING 1272 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +88 +88 +C8 +A8 +A8 +A8 +A8 +C8 +00 +00 +ENDCHAR +STARTCHAR uni04F9 +ENCODING 1273 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +88 +88 +C8 +A8 +A8 +C8 +00 +00 +ENDCHAR +STARTCHAR uni1E0C +ENCODING 7692 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +E0 +90 +88 +88 +88 +88 +90 +E0 +20 +20 +ENDCHAR +STARTCHAR uni1E0D +ENCODING 7693 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +08 +78 +88 +88 +88 +88 +78 +20 +20 +ENDCHAR +STARTCHAR Klinebelow +ENCODING 7732 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +90 +A0 +C0 +C0 +A0 +90 +88 +00 +70 +ENDCHAR +STARTCHAR klinebelow +ENCODING 7733 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +48 +50 +60 +60 +50 +48 +00 +70 +ENDCHAR +STARTCHAR uni1E36 +ENCODING 7734 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +80 +80 +80 +80 +80 +F8 +20 +20 +ENDCHAR +STARTCHAR uni1E37 +ENCODING 7735 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +60 +20 +20 +20 +20 +20 +20 +70 +20 +20 +ENDCHAR +STARTCHAR uni1E40 +ENCODING 7744 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +88 +D8 +A8 +A8 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni1E41 +ENCODING 7745 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +F0 +A8 +A8 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni1E42 +ENCODING 7746 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +D8 +A8 +A8 +88 +88 +88 +88 +20 +20 +ENDCHAR +STARTCHAR uni1E43 +ENCODING 7747 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +A8 +A8 +A8 +A8 +A8 +10 +10 +ENDCHAR +STARTCHAR uni1E44 +ENCODING 7748 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +88 +88 +C8 +A8 +98 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni1E45 +ENCODING 7749 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni1E46 +ENCODING 7750 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +C8 +A8 +98 +88 +88 +88 +20 +20 +ENDCHAR +STARTCHAR uni1E47 +ENCODING 7751 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +88 +88 +88 +88 +88 +20 +20 +ENDCHAR +STARTCHAR uni1E6C +ENCODING 7788 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +20 +20 +20 +20 +20 +20 +10 +10 +ENDCHAR +STARTCHAR uni1E6D +ENCODING 7789 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +20 +20 +20 +20 +18 +10 +10 +ENDCHAR +STARTCHAR Edotbelow +ENCODING 7864 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +80 +80 +F0 +80 +80 +80 +F8 +20 +20 +ENDCHAR +STARTCHAR edotbelow +ENCODING 7865 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +F8 +80 +80 +78 +20 +20 +ENDCHAR +STARTCHAR Etilde +ENCODING 7868 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +F8 +80 +80 +F0 +80 +80 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR etilde +ENCODING 7869 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +70 +88 +F8 +80 +80 +78 +00 +00 +ENDCHAR +STARTCHAR uni1ECA +ENCODING 7882 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +20 +20 +20 +20 +20 +20 +70 +20 +20 +ENDCHAR +STARTCHAR uni1ECB +ENCODING 7883 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +00 +60 +20 +20 +20 +20 +70 +20 +20 +ENDCHAR +STARTCHAR Odotbelow +ENCODING 7884 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +70 +20 +20 +ENDCHAR +STARTCHAR odotbelow +ENCODING 7885 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +70 +20 +20 +ENDCHAR +STARTCHAR uni1EE4 +ENCODING 7908 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +70 +20 +20 +ENDCHAR +STARTCHAR uni1EE5 +ENCODING 7909 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +78 +20 +20 +ENDCHAR +STARTCHAR Ytilde +ENCODING 7928 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +28 +50 +88 +88 +50 +50 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR ytilde +ENCODING 7929 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +28 +50 +88 +88 +88 +88 +88 +78 +08 +70 +ENDCHAR +STARTCHAR uni2000 +ENCODING 8192 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2001 +ENCODING 8193 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR enspace +ENCODING 8194 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2003 +ENCODING 8195 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2004 +ENCODING 8196 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2005 +ENCODING 8197 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2006 +ENCODING 8198 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2007 +ENCODING 8199 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2008 +ENCODING 8200 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2009 +ENCODING 8201 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni200A +ENCODING 8202 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni200B +ENCODING 8203 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii61664 +ENCODING 8204 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii301 +ENCODING 8205 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii299 +ENCODING 8206 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii300 +ENCODING 8207 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR hyphentwo +ENCODING 8208 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +78 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2011 +ENCODING 8209 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +78 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR figuredash +ENCODING 8210 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR endash +ENCODING 8211 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR emdash +ENCODING 8212 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR afii00208 +ENCODING 8213 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR dblverticalbar +ENCODING 8214 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +50 +50 +50 +50 +50 +50 +00 +00 +ENDCHAR +STARTCHAR underscoredbl +ENCODING 8215 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +F8 +00 +F8 +ENDCHAR +STARTCHAR quoteleft +ENCODING 8216 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +10 +20 +20 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR quoteright +ENCODING 8217 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +40 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR quotesinglbase +ENCODING 8218 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +20 +20 +40 +00 +ENDCHAR +STARTCHAR quotereversed +ENCODING 8219 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +10 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR quotedblleft +ENCODING 8220 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +28 +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR quotedblright +ENCODING 8221 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +28 +28 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR quotedblbase +ENCODING 8222 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +50 +50 +A0 +00 +ENDCHAR +STARTCHAR uni201F +ENCODING 8223 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +A0 +A0 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR dagger +ENCODING 8224 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +20 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR daggerdbl +ENCODING 8225 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +20 +20 +20 +20 +70 +20 +00 +00 +ENDCHAR +STARTCHAR bullet +ENCODING 8226 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +30 +78 +78 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR ellipsis +ENCODING 8230 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR perthousand +ENCODING 8240 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +44 +A8 +50 +20 +40 +A8 +54 +28 +00 +00 +ENDCHAR +STARTCHAR minute +ENCODING 8242 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +20 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR second +ENCODING 8243 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +50 +50 +50 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR guilsinglleft +ENCODING 8249 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +10 +20 +40 +20 +10 +08 +00 +00 +ENDCHAR +STARTCHAR guilsinglright +ENCODING 8250 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +20 +10 +08 +10 +20 +40 +00 +00 +ENDCHAR +STARTCHAR exclamdbl +ENCODING 8252 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +50 +50 +50 +00 +50 +50 +00 +00 +ENDCHAR +STARTCHAR overline +ENCODING 8254 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +F8 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2070 +ENCODING 8304 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +48 +48 +48 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2071 +ENCODING 8305 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +00 +60 +20 +20 +70 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2074 +ENCODING 8308 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +08 +18 +28 +78 +08 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2075 +ENCODING 8309 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +70 +40 +70 +08 +70 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2076 +ENCODING 8310 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +40 +70 +48 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2077 +ENCODING 8311 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +78 +08 +10 +20 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2078 +ENCODING 8312 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +48 +30 +48 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2079 +ENCODING 8313 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +48 +38 +08 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni207A +ENCODING 8314 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +20 +F8 +20 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni207B +ENCODING 8315 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +78 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni207C +ENCODING 8316 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +00 +78 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni207D +ENCODING 8317 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +10 +20 +20 +20 +10 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni207E +ENCODING 8318 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +20 +10 +10 +10 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR nsuperior +ENCODING 8319 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +70 +48 +48 +48 +48 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2080 +ENCODING 8320 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR uni2081 +ENCODING 8321 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +10 +30 +10 +10 +38 +00 +00 +ENDCHAR +STARTCHAR uni2082 +ENCODING 8322 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +48 +10 +20 +78 +00 +00 +ENDCHAR +STARTCHAR uni2083 +ENCODING 8323 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +08 +30 +08 +70 +00 +00 +ENDCHAR +STARTCHAR uni2084 +ENCODING 8324 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +08 +18 +28 +78 +08 +00 +00 +ENDCHAR +STARTCHAR uni2085 +ENCODING 8325 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +40 +70 +08 +70 +00 +00 +ENDCHAR +STARTCHAR uni2086 +ENCODING 8326 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +40 +70 +48 +30 +00 +00 +ENDCHAR +STARTCHAR uni2087 +ENCODING 8327 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +78 +08 +10 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni2088 +ENCODING 8328 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +48 +30 +48 +30 +00 +00 +ENDCHAR +STARTCHAR uni2089 +ENCODING 8329 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +48 +38 +08 +30 +00 +00 +ENDCHAR +STARTCHAR uni208A +ENCODING 8330 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +20 +20 +F8 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni208B +ENCODING 8331 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +78 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni208C +ENCODING 8332 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +78 +00 +78 +00 +00 +00 +ENDCHAR +STARTCHAR uni208D +ENCODING 8333 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +10 +20 +20 +20 +10 +00 +00 +ENDCHAR +STARTCHAR uni208E +ENCODING 8334 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +20 +10 +10 +10 +20 +00 +00 +ENDCHAR +STARTCHAR uni2090 +ENCODING 8336 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +08 +38 +48 +38 +00 +00 +ENDCHAR +STARTCHAR uni2091 +ENCODING 8337 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +48 +78 +40 +38 +00 +00 +ENDCHAR +STARTCHAR uni2092 +ENCODING 8338 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +48 +48 +48 +30 +00 +00 +ENDCHAR +STARTCHAR uni2093 +ENCODING 8339 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +88 +50 +20 +50 +88 +00 +00 +ENDCHAR +STARTCHAR uni2094 +ENCODING 8340 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +08 +78 +48 +30 +00 +00 +ENDCHAR +STARTCHAR uni2095 +ENCODING 8341 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +40 +70 +48 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR uni2096 +ENCODING 8342 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +40 +48 +50 +60 +50 +48 +00 +00 +ENDCHAR +STARTCHAR uni2097 +ENCODING 8343 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +60 +20 +20 +20 +20 +70 +00 +00 +ENDCHAR +STARTCHAR uni2098 +ENCODING 8344 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +F0 +A8 +A8 +A8 +A8 +00 +00 +ENDCHAR +STARTCHAR uni209A +ENCODING 8346 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +70 +48 +48 +48 +70 +40 +40 +ENDCHAR +STARTCHAR peseta +ENCODING 8359 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +C0 +A0 +A0 +C8 +9C +88 +88 +84 +00 +00 +ENDCHAR +STARTCHAR Euro +ENCODING 8364 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +38 +44 +F0 +40 +F0 +44 +38 +00 +00 +ENDCHAR +STARTCHAR uni20AE +ENCODING 8366 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +20 +30 +60 +30 +60 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni2102 +ENCODING 8450 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +A8 +A0 +A0 +A0 +A0 +A8 +70 +00 +00 +ENDCHAR +STARTCHAR uni210E +ENCODING 8462 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +80 +F0 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni210F +ENCODING 8463 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +F0 +40 +70 +48 +48 +48 +48 +00 +00 +ENDCHAR +STARTCHAR uni2115 +ENCODING 8469 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +C8 +A8 +D8 +A8 +98 +88 +88 +00 +00 +ENDCHAR +STARTCHAR afii61352 +ENCODING 8470 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +94 +94 +D0 +F0 +F0 +B4 +90 +94 +00 +00 +ENDCHAR +STARTCHAR uni211A +ENCODING 8474 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +C8 +A8 +A8 +A8 +A8 +A8 +70 +18 +00 +ENDCHAR +STARTCHAR uni211D +ENCODING 8477 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +A8 +A8 +A8 +B0 +B0 +A8 +E4 +00 +00 +ENDCHAR +STARTCHAR trademark +ENCODING 8482 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F4 +5C +54 +54 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2124 +ENCODING 8484 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +18 +28 +50 +A0 +C0 +80 +F8 +00 +00 +ENDCHAR +STARTCHAR Ohm +ENCODING 8486 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +50 +D8 +00 +00 +ENDCHAR +STARTCHAR aleph +ENCODING 8501 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +48 +48 +24 +68 +90 +90 +88 +48 +00 +00 +ENDCHAR +STARTCHAR arrowleft +ENCODING 8592 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +60 +FC +60 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR arrowup +ENCODING 8593 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +F8 +20 +20 +20 +20 +20 +00 +00 +ENDCHAR +STARTCHAR arrowright +ENCODING 8594 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +10 +18 +FC +18 +10 +00 +00 +00 +00 +ENDCHAR +STARTCHAR arrowdown +ENCODING 8595 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +20 +20 +20 +F8 +70 +20 +00 +00 +ENDCHAR +STARTCHAR arrowboth +ENCODING 8596 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +CC +FC +CC +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR arrowupdn +ENCODING 8597 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +F8 +20 +20 +F8 +70 +20 +00 +00 +ENDCHAR +STARTCHAR uni21A4 +ENCODING 8612 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +24 +64 +FC +64 +24 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni21A6 +ENCODING 8614 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +90 +98 +FC +98 +90 +00 +00 +00 +00 +ENDCHAR +STARTCHAR arrowupdnbse +ENCODING 8616 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +F8 +20 +F8 +70 +20 +F8 +00 +00 +ENDCHAR +STARTCHAR carriagereturn +ENCODING 8629 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +08 +08 +28 +68 +F8 +60 +20 +00 +00 +ENDCHAR +STARTCHAR uni21BB +ENCODING 8635 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +30 +50 +94 +84 +84 +84 +78 +00 +00 +ENDCHAR +STARTCHAR uni21CB +ENCODING 8651 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +40 +FC +00 +FC +08 +10 +00 +00 +00 +ENDCHAR +STARTCHAR uni21CC +ENCODING 8652 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +08 +FC +00 +FC +40 +20 +00 +00 +00 +ENDCHAR +STARTCHAR arrowdblleft +ENCODING 8656 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +7C +E0 +7C +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR arrowdblup +ENCODING 8657 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +F8 +50 +50 +50 +50 +50 +00 +00 +ENDCHAR +STARTCHAR arrowdblright +ENCODING 8658 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +10 +F8 +1C +F8 +10 +00 +00 +00 +00 +ENDCHAR +STARTCHAR arrowdbldown +ENCODING 8659 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +50 +50 +50 +F8 +70 +20 +00 +00 +ENDCHAR +STARTCHAR arrowdblboth +ENCODING 8660 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +FC +CC +FC +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni21D5 +ENCODING 8661 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +F8 +50 +50 +F8 +70 +20 +00 +00 +ENDCHAR +STARTCHAR universal +ENCODING 8704 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +F8 +50 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR existential +ENCODING 8707 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +F8 +08 +08 +F8 +08 +08 +F8 +00 +00 +ENDCHAR +STARTCHAR uni2204 +ENCODING 8708 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +F8 +28 +28 +F8 +48 +48 +F8 +80 +00 +ENDCHAR +STARTCHAR emptyset +ENCODING 8709 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +70 +98 +A8 +A8 +C8 +70 +80 +00 +00 +ENDCHAR +STARTCHAR increment +ENCODING 8710 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +50 +50 +88 +88 +88 +F8 +00 +00 +ENDCHAR +STARTCHAR gradient +ENCODING 8711 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +88 +88 +88 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR element +ENCODING 8712 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +38 +40 +80 +F8 +80 +40 +38 +00 +00 +ENDCHAR +STARTCHAR notelement +ENCODING 8713 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +38 +50 +90 +F8 +A0 +60 +78 +40 +00 +ENDCHAR +STARTCHAR uni220A +ENCODING 8714 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +78 +80 +F8 +80 +78 +00 +00 +00 +ENDCHAR +STARTCHAR suchthat +ENCODING 8715 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +E0 +10 +08 +F8 +08 +10 +E0 +00 +00 +ENDCHAR +STARTCHAR uni220C +ENCODING 8716 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +80 +E0 +50 +48 +F8 +28 +30 +F0 +10 +00 +ENDCHAR +STARTCHAR uni220D +ENCODING 8717 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +08 +F8 +08 +F0 +00 +00 +00 +ENDCHAR +STARTCHAR minus +ENCODING 8722 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +F8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2213 +ENCODING 8723 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +F8 +00 +20 +20 +F8 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni2214 +ENCODING 8724 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +00 +20 +20 +F8 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni2215 +ENCODING 8725 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +08 +10 +20 +40 +80 +00 +00 +00 +ENDCHAR +STARTCHAR uni2216 +ENCODING 8726 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +80 +40 +20 +10 +08 +00 +00 +00 +ENDCHAR +STARTCHAR bulletoperator +ENCODING 8729 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +30 +78 +30 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR radical +ENCODING 8730 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +0C +08 +08 +08 +88 +88 +48 +28 +18 +00 +00 +ENDCHAR +STARTCHAR infinity +ENCODING 8734 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +50 +A8 +A8 +A8 +50 +00 +00 +00 +00 +ENDCHAR +STARTCHAR orthogonal +ENCODING 8735 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +80 +80 +80 +80 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2225 +ENCODING 8741 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +50 +50 +50 +50 +50 +50 +50 +50 +00 +00 +ENDCHAR +STARTCHAR logicaland +ENCODING 8743 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +50 +50 +88 +88 +00 +00 +ENDCHAR +STARTCHAR logicalor +ENCODING 8744 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +50 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR intersection +ENCODING 8745 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +70 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR union +ENCODING 8746 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR approxequal +ENCODING 8776 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +68 +B0 +00 +68 +B0 +00 +00 +00 +ENDCHAR +STARTCHAR notequal +ENCODING 8800 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +F8 +20 +40 +F8 +80 +00 +00 +00 +ENDCHAR +STARTCHAR equivalence +ENCODING 8801 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +00 +F8 +00 +F8 +00 +00 +00 +ENDCHAR +STARTCHAR lessequal +ENCODING 8804 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +10 +20 +40 +80 +40 +20 +10 +00 +F8 +00 +00 +ENDCHAR +STARTCHAR greaterequal +ENCODING 8805 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +40 +20 +10 +08 +10 +20 +40 +00 +F8 +00 +00 +ENDCHAR +STARTCHAR uni226A +ENCODING 8810 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +14 +28 +50 +A0 +50 +28 +14 +00 +00 +ENDCHAR +STARTCHAR uni226B +ENCODING 8811 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +A0 +50 +28 +14 +28 +50 +A0 +00 +00 +ENDCHAR +STARTCHAR propersubset +ENCODING 8834 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +78 +80 +80 +80 +80 +78 +00 +00 +00 +ENDCHAR +STARTCHAR propersuperset +ENCODING 8835 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +F0 +08 +08 +08 +08 +F0 +00 +00 +00 +ENDCHAR +STARTCHAR reflexsubset +ENCODING 8838 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +80 +80 +80 +80 +78 +00 +F8 +00 +00 +ENDCHAR +STARTCHAR reflexsuperset +ENCODING 8839 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F0 +08 +08 +08 +08 +F0 +00 +F8 +00 +00 +ENDCHAR +STARTCHAR perpendicular +ENCODING 8869 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +20 +20 +20 +20 +F8 +00 +00 +ENDCHAR +STARTCHAR uni22C2 +ENCODING 8898 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +88 +88 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uni22C3 +ENCODING 8899 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +88 +88 +88 +88 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR uni2300 +ENCODING 8960 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +08 +70 +98 +A8 +A8 +C8 +70 +80 +00 +00 +ENDCHAR +STARTCHAR house +ENCODING 8962 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +20 +50 +88 +88 +88 +F8 +00 +00 +ENDCHAR +STARTCHAR uni2308 +ENCODING 8968 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +40 +40 +40 +40 +40 +40 +40 +00 +00 +ENDCHAR +STARTCHAR uni2309 +ENCODING 8969 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +10 +10 +10 +10 +10 +10 +10 +00 +00 +ENDCHAR +STARTCHAR uni230A +ENCODING 8970 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +40 +40 +40 +40 +40 +40 +40 +70 +00 +00 +ENDCHAR +STARTCHAR uni230B +ENCODING 8971 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +10 +10 +10 +10 +10 +10 +70 +00 +00 +ENDCHAR +STARTCHAR revlogicalnot +ENCODING 8976 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F8 +80 +80 +80 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2319 +ENCODING 8985 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +80 +80 +80 +F8 +00 +00 +00 +00 +ENDCHAR +STARTCHAR integraltp +ENCODING 8992 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +10 +28 +28 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR integralbt +ENCODING 8993 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +A0 +A0 +40 +00 +00 +ENDCHAR +STARTCHAR uni239B +ENCODING 9115 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +10 +10 +20 +20 +20 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR uni239C +ENCODING 9116 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR uni239D +ENCODING 9117 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +40 +40 +40 +40 +20 +20 +20 +10 +10 +08 +ENDCHAR +STARTCHAR uni239E +ENCODING 9118 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +20 +20 +10 +10 +10 +08 +08 +08 +08 +08 +08 +ENDCHAR +STARTCHAR uni239F +ENCODING 9119 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +ENDCHAR +STARTCHAR uni23A0 +ENCODING 9120 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +08 +08 +08 +08 +10 +10 +10 +20 +20 +40 +ENDCHAR +STARTCHAR uni23A1 +ENCODING 9121 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +78 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR uni23A2 +ENCODING 9122 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR uni23A3 +ENCODING 9123 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +40 +78 +ENDCHAR +STARTCHAR uni23A4 +ENCODING 9124 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +78 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +ENDCHAR +STARTCHAR uni23A5 +ENCODING 9125 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +ENDCHAR +STARTCHAR uni23A6 +ENCODING 9126 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +08 +78 +ENDCHAR +STARTCHAR uni23A7 +ENCODING 9127 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +0C +10 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni23A8 +ENCODING 9128 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +C0 +C0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni23A9 +ENCODING 9129 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +10 +0C +ENDCHAR +STARTCHAR uni23AB +ENCODING 9131 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +C0 +20 +10 +10 +10 +10 +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR uni23AC +ENCODING 9132 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +10 +10 +10 +10 +0C +0C +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR uni23AD +ENCODING 9133 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +10 +10 +10 +10 +10 +10 +10 +10 +10 +10 +20 +C0 +ENDCHAR +STARTCHAR uni23AE +ENCODING 9134 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni23AF +ENCODING 9135 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni23BA +ENCODING 9146 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni23BB +ENCODING 9147 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +FC +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni23BC +ENCODING 9148 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +FC +00 +00 +00 +ENDCHAR +STARTCHAR uni23BD +ENCODING 9149 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +ENDCHAR +STARTCHAR uni23D0 +ENCODING 9168 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2409 +ENCODING 9225 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +90 +90 +F0 +90 +90 +00 +7C +10 +10 +10 +10 +00 +ENDCHAR +STARTCHAR uni240A +ENCODING 9226 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +80 +80 +80 +F0 +00 +3C +20 +38 +20 +20 +00 +ENDCHAR +STARTCHAR uni240B +ENCODING 9227 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +88 +88 +88 +50 +20 +00 +7C +10 +10 +10 +10 +00 +ENDCHAR +STARTCHAR uni240C +ENCODING 9228 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +F0 +80 +E0 +80 +80 +00 +3C +20 +38 +20 +20 +00 +ENDCHAR +STARTCHAR uni240D +ENCODING 9229 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +60 +90 +80 +90 +60 +00 +38 +24 +38 +28 +24 +00 +ENDCHAR +STARTCHAR uni2424 +ENCODING 9252 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +90 +D0 +B0 +90 +90 +00 +20 +20 +20 +20 +3C +00 +ENDCHAR +STARTCHAR SF100000 +ENCODING 9472 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2501 +ENCODING 9473 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF110000 +ENCODING 9474 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2503 +ENCODING 9475 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2508 +ENCODING 9480 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +A8 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2509 +ENCODING 9481 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +A8 +A8 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni250A +ENCODING 9482 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +00 +20 +20 +00 +20 +20 +00 +20 +20 +00 +ENDCHAR +STARTCHAR uni250B +ENCODING 9483 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +00 +30 +30 +00 +30 +30 +00 +30 +30 +00 +ENDCHAR +STARTCHAR SF010000 +ENCODING 9484 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni250D +ENCODING 9485 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni250E +ENCODING 9486 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni250F +ENCODING 9487 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR SF030000 +ENCODING 9488 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +E0 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2511 +ENCODING 9489 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +E0 +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2512 +ENCODING 9490 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +F0 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2513 +ENCODING 9491 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +F0 +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR SF020000 +ENCODING 9492 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +3C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2515 +ENCODING 9493 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +3C +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2516 +ENCODING 9494 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +3C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2517 +ENCODING 9495 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +3C +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF040000 +ENCODING 9496 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +E0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2519 +ENCODING 9497 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +E0 +E0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni251A +ENCODING 9498 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +F0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni251B +ENCODING 9499 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +F0 +F0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF080000 +ENCODING 9500 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +3C +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni251D +ENCODING 9501 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +3C +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni251E +ENCODING 9502 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +3C +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni251F +ENCODING 9503 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +3C +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2520 +ENCODING 9504 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +3C +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2521 +ENCODING 9505 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +3C +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2522 +ENCODING 9506 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +3C +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2523 +ENCODING 9507 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +3C +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR SF090000 +ENCODING 9508 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +E0 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2525 +ENCODING 9509 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +E0 +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2526 +ENCODING 9510 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +F0 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2527 +ENCODING 9511 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +F0 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2528 +ENCODING 9512 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +F0 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2529 +ENCODING 9513 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +F0 +F0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni252A +ENCODING 9514 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +F0 +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni252B +ENCODING 9515 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +F0 +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR SF060000 +ENCODING 9516 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni252D +ENCODING 9517 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni252E +ENCODING 9518 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni252F +ENCODING 9519 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +FC +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2530 +ENCODING 9520 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2531 +ENCODING 9521 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2532 +ENCODING 9522 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2533 +ENCODING 9523 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +FC +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR SF070000 +ENCODING 9524 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2535 +ENCODING 9525 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +E0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2536 +ENCODING 9526 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2537 +ENCODING 9527 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2538 +ENCODING 9528 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2539 +ENCODING 9529 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +F0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni253A +ENCODING 9530 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni253B +ENCODING 9531 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF050000 +ENCODING 9532 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni253D +ENCODING 9533 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni253E +ENCODING 9534 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni253F +ENCODING 9535 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +FC +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2540 +ENCODING 9536 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2541 +ENCODING 9537 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2542 +ENCODING 9538 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2543 +ENCODING 9539 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2544 +ENCODING 9540 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2545 +ENCODING 9541 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2546 +ENCODING 9542 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2547 +ENCODING 9543 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +FC +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2548 +ENCODING 9544 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +FC +FC +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni2549 +ENCODING 9545 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +F0 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni254A +ENCODING 9546 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +3C +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni254B +ENCODING 9547 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +FC +FC +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR SF430000 +ENCODING 9552 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +FC +00 +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF240000 +ENCODING 9553 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +50 +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF510000 +ENCODING 9554 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +3C +20 +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR SF520000 +ENCODING 9555 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +7C +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF390000 +ENCODING 9556 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +7C +40 +5C +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF220000 +ENCODING 9557 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +E0 +20 +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR SF210000 +ENCODING 9558 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +F0 +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF250000 +ENCODING 9559 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +F0 +10 +D0 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF500000 +ENCODING 9560 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +3C +20 +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF490000 +ENCODING 9561 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +7C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF380000 +ENCODING 9562 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +5C +40 +7C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF280000 +ENCODING 9563 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +E0 +20 +E0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF270000 +ENCODING 9564 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +F0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF260000 +ENCODING 9565 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +D0 +10 +F0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF360000 +ENCODING 9566 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +3C +20 +3C +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR SF370000 +ENCODING 9567 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +5C +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF420000 +ENCODING 9568 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +5C +40 +5C +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF190000 +ENCODING 9569 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +E0 +20 +E0 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR SF200000 +ENCODING 9570 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +D0 +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF230000 +ENCODING 9571 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +D0 +10 +D0 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF470000 +ENCODING 9572 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +FC +00 +FC +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR SF480000 +ENCODING 9573 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF410000 +ENCODING 9574 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +FC +00 +DC +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF450000 +ENCODING 9575 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +FC +00 +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF460000 +ENCODING 9576 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF400000 +ENCODING 9577 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +DC +00 +FC +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR SF540000 +ENCODING 9578 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +FC +20 +FC +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR SF530000 +ENCODING 9579 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +50 +FC +50 +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR SF440000 +ENCODING 9580 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +50 +50 +50 +50 +DC +00 +DC +50 +50 +50 +50 +50 +ENDCHAR +STARTCHAR uni256D +ENCODING 9581 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +0C +10 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni256E +ENCODING 9582 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +80 +40 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni256F +ENCODING 9583 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +40 +80 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2570 +ENCODING 9584 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +10 +0C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2571 +ENCODING 9585 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +04 +04 +08 +08 +10 +10 +20 +20 +40 +40 +80 +80 +ENDCHAR +STARTCHAR uni2572 +ENCODING 9586 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +80 +40 +40 +20 +20 +10 +10 +08 +08 +04 +04 +ENDCHAR +STARTCHAR uni2573 +ENCODING 9587 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +84 +84 +48 +48 +30 +30 +30 +30 +48 +48 +84 +84 +ENDCHAR +STARTCHAR uni2574 +ENCODING 9588 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +E0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2575 +ENCODING 9589 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +20 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2576 +ENCODING 9590 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2577 +ENCODING 9591 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR uni2578 +ENCODING 9592 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +E0 +E0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2579 +ENCODING 9593 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni257A +ENCODING 9594 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni257B +ENCODING 9595 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni257C +ENCODING 9596 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +3C +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni257D +ENCODING 9597 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +20 +20 +20 +20 +20 +30 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR uni257E +ENCODING 9598 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +E0 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni257F +ENCODING 9599 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +30 +30 +30 +30 +30 +30 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR upblock +ENCODING 9600 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +FC +FC +FC +FC +FC +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2581 +ENCODING 9601 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +ENDCHAR +STARTCHAR uni2582 +ENCODING 9602 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +FC +FC +FC +ENDCHAR +STARTCHAR uni2583 +ENCODING 9603 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +FC +FC +FC +FC +ENDCHAR +STARTCHAR dnblock +ENCODING 9604 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR uni2585 +ENCODING 9605 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +FC +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR uni2586 +ENCODING 9606 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +FC +FC +FC +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR uni2587 +ENCODING 9607 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +FC +FC +FC +FC +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR block +ENCODING 9608 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +FC +FC +FC +FC +FC +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR uni2589 +ENCODING 9609 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +ENDCHAR +STARTCHAR uni258A +ENCODING 9610 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR uni258B +ENCODING 9611 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +F0 +ENDCHAR +STARTCHAR lfblock +ENCODING 9612 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR uni258D +ENCODING 9613 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR uni258E +ENCODING 9614 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR uni258F +ENCODING 9615 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR rtblock +ENCODING 9616 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +1C +1C +1C +1C +1C +1C +1C +1C +1C +1C +1C +1C +ENDCHAR +STARTCHAR ltshade +ENCODING 9617 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +90 +24 +90 +24 +90 +24 +90 +24 +90 +24 +90 +24 +ENDCHAR +STARTCHAR shade +ENCODING 9618 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +A8 +54 +ENDCHAR +STARTCHAR dkshade +ENCODING 9619 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +D8 +B4 +D8 +B4 +D8 +B4 +D8 +B4 +D8 +B4 +D8 +B4 +ENDCHAR +STARTCHAR uni2596 +ENCODING 9622 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR uni2597 +ENCODING 9623 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +1C +1C +1C +1C +1C +1C +ENDCHAR +STARTCHAR uni2598 +ENCODING 9624 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2599 +ENCODING 9625 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR uni259A +ENCODING 9626 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +1C +1C +1C +1C +1C +1C +ENDCHAR +STARTCHAR uni259B +ENCODING 9627 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +FC +FC +FC +FC +FC +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR uni259C +ENCODING 9628 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +FC +FC +FC +FC +FC +1C +1C +1C +1C +1C +1C +ENDCHAR +STARTCHAR uni259D +ENCODING 9629 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +1C +1C +1C +1C +1C +1C +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni259E +ENCODING 9630 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +1C +1C +1C +1C +1C +1C +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR uni259F +ENCODING 9631 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +1C +1C +1C +1C +1C +1C +FC +FC +FC +FC +FC +FC +ENDCHAR +STARTCHAR filledbox +ENCODING 9632 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +78 +78 +78 +78 +78 +00 +00 +00 +00 +ENDCHAR +STARTCHAR filledrect +ENCODING 9644 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +F8 +F8 +F8 +00 +00 +ENDCHAR +STARTCHAR uni25AE +ENCODING 9646 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +F8 +00 +00 +ENDCHAR +STARTCHAR triagup +ENCODING 9650 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +30 +30 +78 +78 +FC +FC +00 +00 +00 +ENDCHAR +STARTCHAR uni25B6 +ENCODING 9654 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +C0 +F0 +FC +FC +F0 +C0 +00 +00 +00 +ENDCHAR +STARTCHAR triagrt +ENCODING 9658 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +C0 +F0 +FC +FC +F0 +C0 +00 +00 +00 +ENDCHAR +STARTCHAR triagdn +ENCODING 9660 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +FC +FC +78 +78 +30 +30 +00 +00 +00 +ENDCHAR +STARTCHAR uni25C0 +ENCODING 9664 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +0C +3C +FC +FC +3C +0C +00 +00 +00 +ENDCHAR +STARTCHAR triaglf +ENCODING 9668 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +0C +3C +FC +FC +3C +0C +00 +00 +00 +ENDCHAR +STARTCHAR blackdiamond +ENCODING 9670 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +70 +F8 +70 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR lozenge +ENCODING 9674 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +50 +88 +50 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR circle +ENCODING 9675 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +30 +48 +48 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR H18533 +ENCODING 9679 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +30 +78 +78 +30 +00 +00 +00 +00 +ENDCHAR +STARTCHAR invbullet +ENCODING 9688 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +FC +FC +FC +CC +84 +84 +CC +FC +FC +FC +FC +ENDCHAR +STARTCHAR invcircle +ENCODING 9689 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +FC +FC +FC +FC +CC +B4 +B4 +CC +FC +FC +FC +FC +ENDCHAR +STARTCHAR smileface +ENCODING 9786 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +84 +CC +84 +B4 +B4 +84 +78 +00 +00 +ENDCHAR +STARTCHAR invsmileface +ENCODING 9787 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +FC +B4 +FC +84 +CC +FC +78 +00 +00 +ENDCHAR +STARTCHAR sun +ENCODING 9788 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +A8 +70 +D8 +70 +A8 +20 +00 +00 +ENDCHAR +STARTCHAR female +ENCODING 9792 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +70 +88 +88 +88 +70 +20 +F8 +20 +00 +00 +ENDCHAR +STARTCHAR male +ENCODING 9794 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +3C +0C +14 +70 +88 +88 +88 +70 +00 +00 +ENDCHAR +STARTCHAR spade +ENCODING 9824 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +20 +70 +F8 +F8 +70 +20 +70 +00 +00 +ENDCHAR +STARTCHAR club +ENCODING 9827 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +20 +70 +20 +A8 +F8 +A8 +20 +70 +00 +00 +ENDCHAR +STARTCHAR heart +ENCODING 9829 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +50 +F8 +F8 +F8 +70 +70 +20 +00 +00 +ENDCHAR +STARTCHAR diamond +ENCODING 9830 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +20 +70 +F8 +70 +20 +00 +00 +00 +00 +ENDCHAR +STARTCHAR musicalnote +ENCODING 9834 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +48 +78 +40 +40 +40 +40 +80 +00 +00 +ENDCHAR +STARTCHAR musicalnotedbl +ENCODING 9835 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +78 +48 +78 +48 +48 +48 +48 +50 +80 +00 +ENDCHAR +STARTCHAR uni2713 +ENCODING 10003 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +04 +04 +08 +88 +90 +50 +20 +20 +00 +00 +ENDCHAR +STARTCHAR uni2714 +ENCODING 10004 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +0C +0C +18 +D8 +F0 +70 +60 +60 +00 +00 +ENDCHAR +STARTCHAR uni2717 +ENCODING 10007 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +48 +28 +10 +10 +28 +24 +40 +40 +00 +00 +ENDCHAR +STARTCHAR uni2718 +ENCODING 10008 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +18 +D8 +70 +30 +78 +6C +C0 +C0 +00 +00 +ENDCHAR +STARTCHAR uni27E8 +ENCODING 10216 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +10 +10 +20 +20 +40 +20 +20 +10 +10 +00 +00 +ENDCHAR +STARTCHAR uni27E9 +ENCODING 10217 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +40 +40 +20 +20 +10 +20 +20 +40 +40 +00 +00 +ENDCHAR +STARTCHAR uni27EA +ENCODING 10218 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +28 +28 +50 +50 +A0 +50 +50 +28 +28 +00 +00 +ENDCHAR +STARTCHAR uni27EB +ENCODING 10219 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +A0 +A0 +50 +50 +28 +50 +50 +A0 +A0 +00 +00 +ENDCHAR +STARTCHAR uni2800 +ENCODING 10240 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2801 +ENCODING 10241 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2802 +ENCODING 10242 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2803 +ENCODING 10243 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2804 +ENCODING 10244 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2805 +ENCODING 10245 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2806 +ENCODING 10246 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2807 +ENCODING 10247 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2808 +ENCODING 10248 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2809 +ENCODING 10249 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni280A +ENCODING 10250 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni280B +ENCODING 10251 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni280C +ENCODING 10252 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni280D +ENCODING 10253 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni280E +ENCODING 10254 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni280F +ENCODING 10255 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2810 +ENCODING 10256 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2811 +ENCODING 10257 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2812 +ENCODING 10258 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2813 +ENCODING 10259 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2814 +ENCODING 10260 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2815 +ENCODING 10261 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2816 +ENCODING 10262 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2817 +ENCODING 10263 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2818 +ENCODING 10264 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2819 +ENCODING 10265 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni281A +ENCODING 10266 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni281B +ENCODING 10267 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni281C +ENCODING 10268 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni281D +ENCODING 10269 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni281E +ENCODING 10270 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni281F +ENCODING 10271 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +40 +40 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2820 +ENCODING 10272 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2821 +ENCODING 10273 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2822 +ENCODING 10274 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2823 +ENCODING 10275 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2824 +ENCODING 10276 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2825 +ENCODING 10277 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2826 +ENCODING 10278 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2827 +ENCODING 10279 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2828 +ENCODING 10280 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2829 +ENCODING 10281 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni282A +ENCODING 10282 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni282B +ENCODING 10283 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni282C +ENCODING 10284 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni282D +ENCODING 10285 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni282E +ENCODING 10286 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni282F +ENCODING 10287 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2830 +ENCODING 10288 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2831 +ENCODING 10289 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2832 +ENCODING 10290 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2833 +ENCODING 10291 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2834 +ENCODING 10292 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2835 +ENCODING 10293 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2836 +ENCODING 10294 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2837 +ENCODING 10295 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2838 +ENCODING 10296 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2839 +ENCODING 10297 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni283A +ENCODING 10298 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni283B +ENCODING 10299 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +08 +08 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni283C +ENCODING 10300 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni283D +ENCODING 10301 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni283E +ENCODING 10302 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni283F +ENCODING 10303 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +48 +48 +00 +00 +00 +00 +ENDCHAR +STARTCHAR uni2840 +ENCODING 10304 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2841 +ENCODING 10305 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2842 +ENCODING 10306 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2843 +ENCODING 10307 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2844 +ENCODING 10308 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2845 +ENCODING 10309 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2846 +ENCODING 10310 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2847 +ENCODING 10311 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2848 +ENCODING 10312 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2849 +ENCODING 10313 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni284A +ENCODING 10314 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni284B +ENCODING 10315 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni284C +ENCODING 10316 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni284D +ENCODING 10317 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni284E +ENCODING 10318 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni284F +ENCODING 10319 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2850 +ENCODING 10320 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2851 +ENCODING 10321 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2852 +ENCODING 10322 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2853 +ENCODING 10323 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2854 +ENCODING 10324 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2855 +ENCODING 10325 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2856 +ENCODING 10326 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2857 +ENCODING 10327 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2858 +ENCODING 10328 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2859 +ENCODING 10329 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni285A +ENCODING 10330 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni285B +ENCODING 10331 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +00 +00 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni285C +ENCODING 10332 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni285D +ENCODING 10333 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni285E +ENCODING 10334 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni285F +ENCODING 10335 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +40 +40 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2860 +ENCODING 10336 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2861 +ENCODING 10337 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2862 +ENCODING 10338 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2863 +ENCODING 10339 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2864 +ENCODING 10340 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2865 +ENCODING 10341 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2866 +ENCODING 10342 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2867 +ENCODING 10343 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2868 +ENCODING 10344 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2869 +ENCODING 10345 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni286A +ENCODING 10346 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni286B +ENCODING 10347 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni286C +ENCODING 10348 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni286D +ENCODING 10349 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni286E +ENCODING 10350 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni286F +ENCODING 10351 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2870 +ENCODING 10352 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2871 +ENCODING 10353 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2872 +ENCODING 10354 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2873 +ENCODING 10355 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2874 +ENCODING 10356 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2875 +ENCODING 10357 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2876 +ENCODING 10358 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2877 +ENCODING 10359 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2878 +ENCODING 10360 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2879 +ENCODING 10361 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni287A +ENCODING 10362 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni287B +ENCODING 10363 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +08 +08 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni287C +ENCODING 10364 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni287D +ENCODING 10365 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni287E +ENCODING 10366 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni287F +ENCODING 10367 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +48 +48 +00 +40 +40 +00 +ENDCHAR +STARTCHAR uni2880 +ENCODING 10368 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2881 +ENCODING 10369 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2882 +ENCODING 10370 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2883 +ENCODING 10371 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2884 +ENCODING 10372 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2885 +ENCODING 10373 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2886 +ENCODING 10374 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2887 +ENCODING 10375 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2888 +ENCODING 10376 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2889 +ENCODING 10377 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni288A +ENCODING 10378 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni288B +ENCODING 10379 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni288C +ENCODING 10380 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni288D +ENCODING 10381 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni288E +ENCODING 10382 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni288F +ENCODING 10383 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2890 +ENCODING 10384 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2891 +ENCODING 10385 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2892 +ENCODING 10386 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2893 +ENCODING 10387 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2894 +ENCODING 10388 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2895 +ENCODING 10389 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2896 +ENCODING 10390 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2897 +ENCODING 10391 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2898 +ENCODING 10392 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni2899 +ENCODING 10393 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni289A +ENCODING 10394 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni289B +ENCODING 10395 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +00 +00 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni289C +ENCODING 10396 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni289D +ENCODING 10397 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni289E +ENCODING 10398 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni289F +ENCODING 10399 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +40 +40 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A0 +ENCODING 10400 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A1 +ENCODING 10401 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A2 +ENCODING 10402 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A3 +ENCODING 10403 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A4 +ENCODING 10404 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A5 +ENCODING 10405 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A6 +ENCODING 10406 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A7 +ENCODING 10407 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A8 +ENCODING 10408 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28A9 +ENCODING 10409 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28AA +ENCODING 10410 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28AB +ENCODING 10411 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28AC +ENCODING 10412 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28AD +ENCODING 10413 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28AE +ENCODING 10414 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28AF +ENCODING 10415 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B0 +ENCODING 10416 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B1 +ENCODING 10417 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B2 +ENCODING 10418 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B3 +ENCODING 10419 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B4 +ENCODING 10420 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B5 +ENCODING 10421 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B6 +ENCODING 10422 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B7 +ENCODING 10423 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B8 +ENCODING 10424 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28B9 +ENCODING 10425 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28BA +ENCODING 10426 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28BB +ENCODING 10427 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +08 +08 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28BC +ENCODING 10428 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28BD +ENCODING 10429 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28BE +ENCODING 10430 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28BF +ENCODING 10431 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +48 +48 +00 +08 +08 +00 +ENDCHAR +STARTCHAR uni28C0 +ENCODING 10432 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C1 +ENCODING 10433 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C2 +ENCODING 10434 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C3 +ENCODING 10435 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C4 +ENCODING 10436 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C5 +ENCODING 10437 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C6 +ENCODING 10438 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C7 +ENCODING 10439 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C8 +ENCODING 10440 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28C9 +ENCODING 10441 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28CA +ENCODING 10442 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28CB +ENCODING 10443 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28CC +ENCODING 10444 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28CD +ENCODING 10445 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28CE +ENCODING 10446 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28CF +ENCODING 10447 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D0 +ENCODING 10448 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D1 +ENCODING 10449 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D2 +ENCODING 10450 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D3 +ENCODING 10451 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D4 +ENCODING 10452 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D5 +ENCODING 10453 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D6 +ENCODING 10454 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D7 +ENCODING 10455 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D8 +ENCODING 10456 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28D9 +ENCODING 10457 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28DA +ENCODING 10458 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28DB +ENCODING 10459 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +00 +00 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28DC +ENCODING 10460 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28DD +ENCODING 10461 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28DE +ENCODING 10462 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28DF +ENCODING 10463 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +40 +40 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E0 +ENCODING 10464 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E1 +ENCODING 10465 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E2 +ENCODING 10466 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E3 +ENCODING 10467 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E4 +ENCODING 10468 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E5 +ENCODING 10469 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +00 +00 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E6 +ENCODING 10470 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +40 +40 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E7 +ENCODING 10471 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +40 +40 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E8 +ENCODING 10472 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28E9 +ENCODING 10473 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28EA +ENCODING 10474 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28EB +ENCODING 10475 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28EC +ENCODING 10476 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +00 +00 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28ED +ENCODING 10477 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +00 +00 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28EE +ENCODING 10478 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +40 +40 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28EF +ENCODING 10479 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +40 +40 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F0 +ENCODING 10480 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F1 +ENCODING 10481 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F2 +ENCODING 10482 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F3 +ENCODING 10483 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F4 +ENCODING 10484 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +08 +08 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F5 +ENCODING 10485 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +08 +08 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F6 +ENCODING 10486 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +48 +48 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F7 +ENCODING 10487 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +40 +40 +00 +48 +48 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F8 +ENCODING 10488 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28F9 +ENCODING 10489 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28FA +ENCODING 10490 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28FB +ENCODING 10491 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +08 +08 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28FC +ENCODING 10492 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +08 +08 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28FD +ENCODING 10493 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +08 +08 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28FE +ENCODING 10494 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +08 +08 +00 +48 +48 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni28FF +ENCODING 10495 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +48 +48 +00 +48 +48 +00 +48 +48 +00 +48 +48 +00 +ENDCHAR +STARTCHAR uni2E2C +ENCODING 11820 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +88 +88 +00 +00 +88 +88 +00 +00 +ENDCHAR +STARTCHAR uniE0A0 +ENCODING 57504 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +90 +B8 +90 +90 +90 +20 +40 +80 +80 +80 +80 +ENDCHAR +STARTCHAR uniE0A1 +ENCODING 57505 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +80 +80 +80 +F0 +00 +24 +34 +2C +24 +24 +00 +ENDCHAR +STARTCHAR uniE0A2 +ENCODING 57506 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +30 +48 +48 +48 +FC +FC +CC +CC +FC +FC +00 +ENDCHAR +STARTCHAR uniE0B0 +ENCODING 57520 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +C0 +E0 +F0 +F8 +FC +FC +F8 +F0 +E0 +C0 +80 +ENDCHAR +STARTCHAR uniE0B1 +ENCODING 57521 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +80 +40 +20 +10 +08 +04 +04 +08 +10 +20 +40 +80 +ENDCHAR +STARTCHAR uniE0B2 +ENCODING 57522 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +04 +0C +1C +3C +7C +FC +FC +7C +3C +1C +0C +04 +ENDCHAR +STARTCHAR uniE0B3 +ENCODING 57523 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +04 +08 +10 +20 +40 +80 +80 +40 +20 +10 +08 +04 +ENDCHAR +STARTCHAR uniF6BE +ENCODING 63166 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +00 +00 +18 +08 +08 +08 +08 +08 +48 +30 +ENDCHAR +STARTCHAR uniFFFD +ENCODING 65533 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 12 0 -2 +BITMAP +00 +00 +F8 +88 +88 +88 +88 +88 +88 +F8 +00 +00 +ENDCHAR +ENDFONT diff --git a/tools/gen_display_resources.py b/tools/gen_display_resources.py index 82676ef074..ebea9dccc2 100644 --- a/tools/gen_display_resources.py +++ b/tools/gen_display_resources.py @@ -153,7 +153,7 @@ const displayio_bitmap_t supervisor_terminal_font_bitmap = {{ .base = {{.type = &displayio_bitmap_type }}, .width = {}, .height = {}, - .data = (uint32_t*) font_bitmap_data, + .data = (size_t*) font_bitmap_data, .stride = {}, .bits_per_value = 1, .x_shift = 5, diff --git a/tools/usb_descriptor b/tools/usb_descriptor index e2e79566a8..dac9689e27 160000 --- a/tools/usb_descriptor +++ b/tools/usb_descriptor @@ -1 +1 @@ -Subproject commit e2e79566a807b7230dddbc53a103c19b2f65e2cb +Subproject commit dac9689e274844294bbe4fd1b78defff9ff27533