Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4347ed2d68 | ||
|
|
c5409f4f1b | ||
|
|
74b225ceaa | ||
|
|
f6affb67ca | ||
|
|
3f69dbd5a3 | ||
|
|
d7e8bd77e4 | ||
|
|
b570ebae54 | ||
|
|
884f22c8af | ||
|
|
acd4d69f7d | ||
|
|
d5eee5f69b | ||
|
|
9a2dc5c524 | ||
|
|
d05561bc84 | ||
|
|
6b558479e4 | ||
|
|
07f4164a32 | ||
|
|
e81c86157b | ||
|
|
85cba9b9e4 | ||
|
|
04f3e1aa02 | ||
|
|
cffb49ab34 | ||
|
|
35ac6d2455 | ||
|
|
c70a63b44b | ||
|
|
c3226110f6 | ||
|
|
88bf41da7c | ||
|
|
e8ee66d1c8 | ||
|
|
8c8ec9328e | ||
|
|
c1e465ef8a | ||
|
|
7ba80dff4e | ||
|
|
576f7a91f2 | ||
|
|
609354b857 | ||
|
|
c1ed852986 | ||
|
|
e4857dfe6b | ||
|
|
793e7356d7 | ||
|
|
449e21ae65 | ||
|
|
008e03edb4 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -49,3 +49,7 @@ workspace/TS100A/Release/TS100A.list
|
||||
workspace/TS100A/Release/TS100A.hex
|
||||
workspace/TS100A/.settings/language.settings.xml
|
||||
workspace/TS100A/.metadata/
|
||||
Translation Editor/.vscode/
|
||||
Translation Editor/__pycache__/
|
||||
*.pyc
|
||||
workspace/TS100/src/Translation.cpp
|
||||
|
||||
@@ -8,7 +8,7 @@ import sys
|
||||
try:
|
||||
from PIL import Image, ImageOps
|
||||
except ImportError as error:
|
||||
raise ImportError("{}: {} requres Python Imaging Library (PIL). "
|
||||
raise ImportError("{}: {} requres Python Imaging Library (PIL). "
|
||||
"Install with `pip` or OS-specific package "
|
||||
"management tool."
|
||||
.format(error, sys.argv[0]))
|
||||
@@ -32,29 +32,32 @@ def split16(word):
|
||||
return (word >> 8) & 0xff, word & 0xff
|
||||
|
||||
|
||||
def intel_hex_line(file, record_type, offset, data):
|
||||
"""write a line of data in Intel hex format"""
|
||||
def intel_hex_line(record_type, offset, data):
|
||||
"""generate a line of data in Intel hex format"""
|
||||
# length, address offset, record type
|
||||
record_length = len(data)
|
||||
file.write(':{:02X}{:04X}{:02X}'.format(record_length, offset, record_type))
|
||||
yield ':{:02X}{:04X}{:02X}'.format(record_length, offset, record_type)
|
||||
|
||||
# data
|
||||
map(lambda byte: file.write("{:02X}".format(byte)), data)
|
||||
for byte in data:
|
||||
yield "{:02X}".format(byte)
|
||||
|
||||
# compute and write checksum (with DOS line ending for compatibility/safety)
|
||||
file.write("{:02X}\r\n"
|
||||
.format((((sum(data, # sum data ...
|
||||
record_length # ... and other ...
|
||||
+ sum(split16(offset)) # ... fields ...
|
||||
+ record_type) # ... on line
|
||||
& 0xff) # low 8 bits
|
||||
^ 0xff) # two's ...
|
||||
+ 1) # ... complement
|
||||
& 0xff)) # low 8 bits
|
||||
yield "{:02X}\r\n".format((((sum(data, # sum data ...
|
||||
record_length # ... and other ...
|
||||
+ sum(split16(offset)) # ... fields ...
|
||||
+ record_type) # ... on line
|
||||
& 0xff) # low 8 bits
|
||||
^ 0xff) # two's ...
|
||||
+ 1) # ... complement
|
||||
& 0xff) # low 8 bits
|
||||
|
||||
|
||||
def intel_hex(file, bytes_, start_address=0x0):
|
||||
"""write block of data in Intel hex format"""
|
||||
def write(generator):
|
||||
file.write(''.join(generator))
|
||||
|
||||
if len(bytes_) % INTELHEX_BYTES_PER_LINE != 0:
|
||||
raise ValueError("Program error: Size of LCD data is not evenly divisible by {}"
|
||||
.format(INTELHEX_BYTES_PER_LINE))
|
||||
@@ -62,25 +65,21 @@ def intel_hex(file, bytes_, start_address=0x0):
|
||||
address_lo = start_address & 0xffff
|
||||
address_hi = (start_address >> 16) & 0xffff
|
||||
|
||||
intel_hex_line(file,
|
||||
INTELHEX_EXTENDED_LINEAR_ADDRESS_RECORD,
|
||||
0,
|
||||
split16(address_hi))
|
||||
write(intel_hex_line(INTELHEX_EXTENDED_LINEAR_ADDRESS_RECORD, 0,
|
||||
split16(address_hi)))
|
||||
|
||||
size_written = 0
|
||||
while size_written < INTELHEX_MINIMUM_SIZE:
|
||||
offset = address_lo
|
||||
for line_start in range(0, len(bytes_), INTELHEX_BYTES_PER_LINE):
|
||||
intel_hex_line(file,
|
||||
INTELHEX_DATA_RECORD,
|
||||
offset,
|
||||
bytes_[line_start:line_start + INTELHEX_BYTES_PER_LINE])
|
||||
write(intel_hex_line(INTELHEX_DATA_RECORD, offset,
|
||||
bytes_[line_start:line_start + INTELHEX_BYTES_PER_LINE]))
|
||||
size_written += INTELHEX_BYTES_PER_LINE
|
||||
if size_written >= INTELHEX_MINIMUM_SIZE:
|
||||
break
|
||||
offset += INTELHEX_BYTES_PER_LINE
|
||||
|
||||
intel_hex_line(file, INTELHEX_END_OF_FILE_RECORD, 0, ())
|
||||
write(intel_hex_line(INTELHEX_END_OF_FILE_RECORD, 0, ()))
|
||||
|
||||
|
||||
def img2hex(input_filename,
|
||||
|
||||
139
README.md
139
README.md
@@ -1,62 +1,70 @@
|
||||
# TS100
|
||||
# TS100 & TS80 Firmware
|
||||
|
||||
This is a complete rewrite of the open source software for the ts100 soldering iron.
|
||||
The version two fork of this code has no shared code with the original firmware from Miniware (E-design) group.
|
||||
This firmware is a fresh start for these soldering irons. Designed from the ground up as fully featured control software that leaves nothing to be desired.
|
||||
It originally started back back at the end of 2016 and has since seen vast improvements, especially some very smart work by community members.
|
||||
|
||||
The firmware supports everything you would expect in the soldering iron, and has the same features as the stock firmware with some nice extras packed in.
|
||||
There is a comprehensive menu system in the iron that allows for adjustment of all the settings on the unit, and support for various languages is added by the communitiy.
|
||||
|
||||
On the TS100 there are settings to allow you to specify a cutoff voltage for different lithium iron battery packs to protect your power source.
|
||||
For the TS80 these are removed and replaced with the selection of 18W or 24W depending on what your QC power bank can support.
|
||||
Otherwise both systems work very similar and should support all the features.
|
||||
|
||||
This project is considered feature complete for use as a soldering iron, *so please suggest any feature improvements you would like!*
|
||||
|
||||
A short(ish) video that goes through every single menu option in the firmware is available [over here](https://www.youtube.com/watch?v=WlnpboYfxNk).
|
||||
This video was created on an earlier 1.x version of the firmware, so alot has changed but should be fairly intuitive as the menu has vastly improved.
|
||||
|
||||
*This firmware does **NOT** support the usb port while running for changing settings. This is done through the onscreen menu only. Logos are edited using the tool or python script and uploaded in DFU mode.*
|
||||
|
||||
*Please note that when running the iron off a Lithium battery pack, the Iron is only rated to 24V input. So using a fully charged 6S battery *slightly* exceeds this rating, and is done so at your own risk.
|
||||
Please calibrate your irons voltage reading when you are using a lithium battery after any firmware upgrades.*
|
||||
|
||||
## Features
|
||||
## Core Features
|
||||
|
||||
* PID iron temperature control
|
||||
* Automatic sleep with selectable sensitivity
|
||||
* Motion wake support
|
||||
* Settings menu on the unit
|
||||
* Set a voltage lower limit for Lithium batteries so you dont kill your battery pack
|
||||
* (TS100) Set a voltage lower limit for Lithium batteries so you dont kill your battery pack
|
||||
* (TS80 ) Set 18W or 24W settings for your power bank
|
||||
* All settings saved to flash when you exit the menu
|
||||
* Improved readability Fonts
|
||||
* Use hardware features to improve reliability
|
||||
* Can disable movement detection if desired
|
||||
* Calibration of the thermocouple offset
|
||||
* Full tip profile calibration
|
||||
* Boost mode lets you temporarily change the temperature when soldering (ie raise temperature for short periods of time)
|
||||
* Battery charge level indicatior if power source set to a lipo cell count.
|
||||
* Custom bootup logo support
|
||||
* (TS100) Battery charge level indicator if power source set to a lipo cell count.
|
||||
* (TS80) Power bank operating voltage is displayed.
|
||||
* Custom boot up logo support.
|
||||
* Automatic LCD rotation based on orientation
|
||||
* Supports both the version 1 and version 2 hardware
|
||||
* Supports both the version 1 and version 2 hardware (different accelerometers)
|
||||
|
||||
## Upgrading your ts100 iron
|
||||
# Upgrading your iron
|
||||
|
||||
This is completely safe, if it goes wrong just put the .hex file from the official website onto the unit and your back to the old firmware. Downloads for the hex files to flash are available on the [releases page.](https://github.com/Ralim/ts100/releases) The file you want is called *ts100_EN.hex* unless you want the translations, they are ts100_*language short name*.hex.
|
||||
This is completely safe, if it goes wrong just put the .hex file from the official website onto the unit and your back to the old firmware. Downloads for the hex files to flash are available on the [releases page.](https://github.com/Ralim/ts100/releases) The file you want is called *(MODEL)_EN.hex* unless you want the translations, they are (MODEL)_*language short name*.hex. Where (MODEL) is either TS100 or TS80.
|
||||
|
||||
Officially the bootloader on the iron only works under Windows. However, users have reported that it does work under Mac, and can be made to work under Linux *sometimes*. Details over on the [wiki page](https://github.com/Ralim/ts100/wiki/Upgrading-Firmware).
|
||||
|
||||
1. Disable Teracopy or other Explorer replacements.
|
||||
2. Hold the button closest to the tip, and plug in the USB to the computer.
|
||||
3. The unit will appear as a USB drive.
|
||||
4. Drag the .hex file onto the USB drive.
|
||||
5. The unit will disconnect and reconnect.
|
||||
6. The filename will have changed to end in .RDY (=success) or .ERR (=error)
|
||||
7. If it ends with .RDY you're done! Otherwise something went wrong, retry. E.g. try to copy the firmware with the windows command line tool "copy" instead of explorer
|
||||
```
|
||||
1. Hold the button closest to the tip, and plug in the USB to the computer.
|
||||
2. The unit will appear as a USB drive.
|
||||
3. Drag the .hex file onto the USB drive.
|
||||
4. The unit will disconnect and reconnect.
|
||||
5. The filename will have changed to end in .RDY or .ERR
|
||||
6. If it ends with .RDY you're done! Otherwise something went wrong.
|
||||
7. If it didnt work the first time, try copying the file again without disconnecting the iron, often it will work on the second shot.
|
||||
8. Disconnect the USB and power up the iron. You're good to go.
|
||||
```
|
||||
|
||||
For the more adventurerous out there, you can also load this firmware onto the device using a SWD programmer.
|
||||
|
||||
For the more adventurous out there, you can also load this firmware onto the device using a SWD programmer.
|
||||
On the bottom of the MCU riser pcb, there are 4 pads for programming.
|
||||
There is a complete device flash backup included in this repository. (Note this includes the bootloader, so will need a SWD programmer to load onto the unit). Please do not use the backup of the bootloader for anything malicious, its only saved here for those who are tinkering with their iron and decide to replace it.
|
||||
There is a complete device flash backup included in this repository. (Note this includes the bootloader, so will need a SWD programmer to load onto the unit).
|
||||
For the TS80 the SWD pins are used for the QC negotiation, so you can actually connect to the SWD power via the USB connector
|
||||
|
||||
## Setting a custom bootup image
|
||||
|
||||
This firmware uses a different method of updating the bootup image.
|
||||
This removes the need for emulating a USB drive on the iron just to allow for a bootup image to be setup.
|
||||
There are further instructions on the [wiki](https://github.com/Ralim/ts100/wiki/Logo-Editor). Instructions are kept on the wiki so that users can update the information if they find extra helpful information.
|
||||
There are further instructions on the [wiki](https://github.com/Ralim/ts100/wiki/Logo-Editor).
|
||||
Instructions are kept on the wiki so that users can update the information if they find extra helpful information.
|
||||
|
||||
## New Menu System
|
||||
# Menu System
|
||||
|
||||
This new firmware uses a new menu system to allow access to the settings on the device.
|
||||
When on the main screen, the unit shows prompts for the two most common operations.
|
||||
@@ -66,74 +74,33 @@ When on the main screen, the unit shows prompts for the two most common operatio
|
||||
* Holding the button near the tip will enter soldering temperature adjust mode (This is the same as the one in the soldering menu, just to let you edit before heating up).
|
||||
* Holding the button near the USB end will show the firmware version details.
|
||||
|
||||
## Soldering mode
|
||||
|
||||
In this mode the iron works as you would expect, pressing either button will take you to a temperature change screen.
|
||||
Use each button to go up and down in temperature. Pressing both buttons will exit you from the temperature menu (or wait 3 seconds and it will time out).
|
||||
Pressing both buttons or holding the button near the USB will exit the soldering mode.
|
||||
Holding the button at the front of the iron will enter boost mode (if enabled).
|
||||
|
||||
## Settings Menu
|
||||
|
||||
This menu allows you to cycle through all the options and set their values.
|
||||
The button near the USB cycles through the options, and the one near the tip changes the selected option.
|
||||
Note that settings are not saved until you exit the menu.
|
||||
If you leave the unit alone (ie don't press any buttons) on a setting, after 3 seconds the screen will scroll a rough description of the setting.
|
||||
|
||||
The menu is arranged so that the most often used settings are first.
|
||||
With submenu's being selected to enter using the front button (as if you were going to change the setting).
|
||||
Scrolling through the submenu will return you back to its entry location after you scroll through all of the options.
|
||||
|
||||
### Calibrating input voltage
|
||||
|
||||
Due to the tolerance on the resistors used for the input voltage divider, some irons can be up to 0.6V out on the voltage measurement.
|
||||
Please calibrate your iron if you have any issues with the cutoff voltage.
|
||||
Note that cutoff messages can also be triggered by using a power supply that is too weak and fails under the load of the iron.
|
||||
This is more critical than before with the new cell count based cutout voltage.
|
||||
|
||||
To calibrate your Iron:
|
||||
|
||||
1. Measure the input voltage with a multimeter and note it down.
|
||||
2. Connect the input to your iron.
|
||||
3. Enter the settings menu
|
||||
4. Under the advanced submenu
|
||||
5. Select the calibrate voltage option
|
||||
6. Use the front and back buttons to adjust the displayed voltage to minimise the error to your origional measurement
|
||||
7. Hold both buttons to save and exit to the menu
|
||||
|
||||
### Calibrating tip offset
|
||||
|
||||
Some tips will have an offset on their readings, to calibrate this out perform the following steps:
|
||||
|
||||
1. Connect power to your iron
|
||||
2. Make sure the tip is at room temperature (ie. wait for a fair while after using the iron before calibration)
|
||||
3. Enter the settings menu
|
||||
4. Scroll down to the advanced menu, and then the temperature calibration
|
||||
5. Press the button to change the option (tip button)
|
||||
6. The display will start to scroll a warning message to check that the tip is at ambient temperature!
|
||||
7. Press the button near the tip of the iron to confirm.
|
||||
8. The display will go to "...." for a short period of time as the unit measures the tip temperature and the handle temperature and compares them
|
||||
9. The display will then go back to *TMP CAL*
|
||||
10. Calibration is done, just exit the settings menu as normal
|
||||
11. You're done. Enjoy your iron.
|
||||
|
||||
### Boost mode
|
||||
|
||||
This allows you to change the front key (one near the tip) to become a boost button when you hold it for > 2 seconds. This allows you to set this button to change the soldering temperature for short periods. For example when soldering a big joint and you want to boost the temperature a bit.
|
||||
|
||||
The boost temperature is set in the settings menu.
|
||||
More details are over in the [Menu information.](menu.md)
|
||||
|
||||
## Thanks
|
||||
|
||||
If you love this firmware and want to continue my caffine addiction, you can do so here (or email me for other options) : https://paypal.me/RalimTek
|
||||
|
||||
If you love this firmware and want to continue my caffeine addiction, you can do so here (or email me for other options) : https://paypal.me/RalimTek
|
||||
I also want to should out to all of the [Fantastic Contributors](https://github.com/Ralim/ts100/graphs/contributors).
|
||||
|
||||
Especially to the following users, who have helped in various ways that are massively appreciated.:
|
||||
|
||||
* [dhiltonp](https://github.com/dhiltonp)
|
||||
* [Mrkvozrout](https://github.com/Mrkvozrout)
|
||||
* [jonnieZG](https://github.com/jonnieZG)
|
||||
* [federck](https://github.com/federck)
|
||||
* [jvitkauskas](https://github.com/jvitkauskas)
|
||||
* [doegox](https://github.com/doegox)
|
||||
* [perillamint](https://github.com/perillamint)
|
||||
|
||||
|
||||
## Licence
|
||||
|
||||
The code in this repository that is based on the STM tools is under a BSD like licence.
|
||||
The code created by the communitiy is GNU GPLv3.
|
||||
The code created by the community is GNU GPLv3. Unless noted elsewhere.
|
||||
The FreeRToS is under its own licence.
|
||||
|
||||
## Commercial Use
|
||||
|
||||
This software is provided as-is, so I cannot provide any commercial support for the firmware. However you are more than welcome to distribute links to the firmware, or provide irons with this software on them.
|
||||
Please do not re-host the files, but rather link to this page, so that there are not old versions of the firmware scattered around. If this firmware does make you money, it would be nice to recieve a donation, however there is no enforcement.
|
||||
|
||||
|
||||
844
Translation Editor/fontTables.py
Executable file
844
Translation Editor/fontTables.py
Executable file
@@ -0,0 +1,844 @@
|
||||
#coding=utf-8
|
||||
def getFontMap():
|
||||
font = {
|
||||
" ":"0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,",
|
||||
"!":"0x00,0x00,0x00,0x00,0x7C,0xFF,0xFF,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"\"":"0x00,0x00,0x00,0x3C,0x3C,0x00,0x00,0x3C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,",
|
||||
"#":"0x00,0x00,0x10,0x90,0xF0,0x7E,0x1E,0x90,0xF0,0x7E,0x1E,0x10,0x00,0x02,0x1E,0x1F,0x03,0x02,0x1E,0x1F,0x03,0x02,0x00,0x00," ,
|
||||
"$":"0x00,0x00,0x78,0xFC,0xCC,0xFF,0xFF,0xCC,0xCC,0x88,0x00,0x00,0x00,0x00,0x04,0x0C,0x0C,0x3F,0x3F,0x0C,0x0F,0x07,0x00,0x00," ,
|
||||
"%":"0x00,0x00,0x38,0x38,0x38,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x00,0x30,0x38,0x1C,0x0E,0x07,0x03,0x01,0x38,0x38,0x38,0x00," ,
|
||||
"&":"0x00,0x00,0x00,0xB8,0xFC,0xC6,0xE2,0x3E,0x1C,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x31,0x21,0x37,0x1E,0x1C,0x36,0x22,0x00," ,
|
||||
"'":"0x00,0x00,0x00,0x00,0x27,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"(":"0x00,0x00,0x00,0xF0,0xFC,0xFE,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x38,0x20,0x20,0x00,0x00,0x00," ,
|
||||
"(":"0x00,0x00,0x00,0xF0,0xFC,0xFE,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x38,0x20,0x20,0x00,0x00,0x00," ,
|
||||
")":"0x00,0x00,0x00,0x01,0x01,0x07,0xFE,0xFC,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x38,0x1F,0x0F,0x03,0x00,0x00,0x00," ,
|
||||
")":"0x00,0x00,0x00,0x01,0x01,0x07,0xFE,0xFC,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x38,0x1F,0x0F,0x03,0x00,0x00,0x00," ,
|
||||
"*":"0x00,0x00,0x98,0xB8,0xE0,0xF8,0xF8,0xE0,0xB8,0x98,0x00,0x00,0x00,0x00,0x0C,0x0E,0x03,0x0F,0x0F,0x03,0x0E,0x0C,0x00,0x00," ,
|
||||
"+":"0x00,0x00,0x80,0x80,0x80,0xF0,0xF0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F,0x0F,0x01,0x01,0x01,0x00,0x00," ,
|
||||
",":"0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0xF8,0x78,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"-":"0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00," ,
|
||||
".":"0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"/":"0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x00,0x18,0x1C,0x0E,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"0":"0x00,0xF8,0xFE,0x06,0x03,0x83,0xC3,0x63,0x33,0x1E,0xFE,0xF8,0x00,0x07,0x1F,0x1E,0x33,0x31,0x30,0x30,0x30,0x18,0x1F,0x07," ,
|
||||
"1":"0x00,0x00,0x00,0x0C,0x0C,0x0E,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x3F,0x3F,0x30,0x30,0x30,0x00," ,
|
||||
"2":"0x00,0x1C,0x1E,0x07,0x03,0x03,0x83,0xC3,0xE3,0x77,0x3E,0x1C,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x30," ,
|
||||
"3":"0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0x7E,0x3C,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0E," ,
|
||||
"З":"0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0x7E,0x3C,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0E," ,
|
||||
"4":"0x00,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x07,0xFF,0xFF,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x03,0x03," ,
|
||||
"5":"0x00,0x3F,0x7F,0x63,0x63,0x63,0x63,0x63,0x63,0xE3,0xC3,0x83,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F," ,
|
||||
"6":"0x00,0xC0,0xF0,0xF8,0xDC,0xCE,0xC7,0xC3,0xC3,0xC3,0x80,0x00,0x00,0x0F,0x1F,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F," ,
|
||||
"7":"0x00,0x03,0x03,0x03,0x03,0x03,0x03,0xC3,0xF3,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x30,0x3C,0x0F,0x03,0x00,0x00,0x00,0x00," ,
|
||||
"8":"0x00,0x00,0xBC,0xFE,0xE7,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x0F,0x1F,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F," ,
|
||||
"9":"0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xFC,0x00,0x00,0x00,0x30,0x30,0x30,0x38,0x1C,0x0E,0x07,0x03,0x00," ,
|
||||
":":"0x00,0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00," ,
|
||||
":":"0x00,0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00," ,
|
||||
";":"0x00,0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9C,0xFC,0x7C,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"<":"0x00,0x00,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00,0x00," ,
|
||||
"=":"0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00," ,
|
||||
">":"0x00,0x00,0x03,0x07,0x0E,0x1C,0x38,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x30,0x38,0x1C,0x0E,0x07,0x03,0x01,0x00,0x00,0x00," ,
|
||||
"?":"0x00,0x1C,0x1E,0x07,0x03,0x83,0xC3,0xE3,0x77,0x3E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x37,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"@":"0x00,0xF8,0xFE,0x07,0xF3,0xFB,0x1B,0xFB,0xFB,0x07,0xFE,0xF8,0x00,0x0F,0x1F,0x18,0x33,0x37,0x36,0x37,0x37,0x36,0x03,0x01," ,
|
||||
"A":"0x00,0x00,0x00,0xE0,0xFC,0x1F,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00," ,
|
||||
"А":"0x00,0x00,0x00,0xE0,0xFC,0x1F,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00," ,
|
||||
"B":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"C":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x0E,0x0C,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"D":"0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"E":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"E":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"F":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"G":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0xC3,0xC3,0xC3,0xC7,0xC6,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00," ,
|
||||
"H":"0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"I":"0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"J":"0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"K":"0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00," ,
|
||||
"L":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"M":"0x00,0xFF,0xFF,0x1E,0x78,0xE0,0xE0,0x78,0x1E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x01,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"N":"0x00,0xFF,0xFF,0x0E,0x38,0xF0,0xC0,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00," ,
|
||||
"O":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"P":"0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00," ,
|
||||
"Р":"0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00," ,
|
||||
"Q":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x36,0x3E,0x1C,0x3F,0x33,0x00," ,
|
||||
"R":"0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00," ,
|
||||
"S":"0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC7,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"T":"0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"U":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"V":"0x00,0x07,0x3F,0xF8,0xC0,0x00,0x00,0xC0,0xF8,0x3F,0x07,0x00,0x00,0x00,0x00,0x01,0x0F,0x3E,0x3E,0x0F,0x01,0x00,0x00,0x00," ,
|
||||
"W":"0x00,0xFF,0xFF,0x00,0x00,0x80,0x80,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x06,0x03,0x03,0x06,0x1C,0x3F,0x3F,0x00," ,
|
||||
"X":"0x00,0x03,0x0F,0x1C,0x30,0xE0,0xE0,0x30,0x1C,0x0F,0x03,0x00,0x00,0x30,0x3C,0x0E,0x03,0x01,0x01,0x03,0x0E,0x3C,0x30,0x00," ,
|
||||
"Y":"0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Z":"0x00,0x03,0x03,0x03,0x03,0xC3,0xE3,0x33,0x1F,0x0F,0x03,0x00,0x00,0x30,0x3C,0x3E,0x33,0x31,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"Z":"0x00,0x03,0x03,0x03,0x03,0xC3,0xE3,0x33,0x1F,0x0F,0x03,0x00,0x00,0x30,0x3C,0x3E,0x33,0x31,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"[":"0x00,0x00,0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"\\":"0x00,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x18,",
|
||||
"\\":"0x00,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x18,",
|
||||
"]":"0x00,0x00,0x00,0x03,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00,0x00,0x00," ,
|
||||
"^":"0x00,0x60,0x70,0x38,0x1C,0x0E,0x07,0x0E,0x1C,0x38,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"_":"0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0," ,
|
||||
"`":"0x00,0x00,0x00,0x00,0x00,0x3E,0x7E,0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"a":"0x00,0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"b":"0x00,0xFF,0xFF,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"c":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00," ,
|
||||
"d":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xC0,0xFF,0xFF,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00," ,
|
||||
"e":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00," ,
|
||||
"f":"0x00,0xC0,0xC0,0xFC,0xFE,0xC7,0xC3,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"g":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00," ,
|
||||
"h":"0x00,0xFF,0xFF,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00," ,
|
||||
"i":"0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"j":"0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00," ,
|
||||
"k":"0x00,0x00,0xFF,0xFF,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x07,0x0F,0x1C,0x38,0x30,0x00,0x00," ,
|
||||
"l":"0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"m":"0x00,0xE0,0xC0,0xE0,0xE0,0xC0,0xC0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"n":"0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"o":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"p":"0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x0C,0x18,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00," ,
|
||||
"q":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0xFF,0xFF,0x00," ,
|
||||
"r":"0x00,0x00,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"s":"0x00,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00," ,
|
||||
"t":"0x00,0x60,0x60,0xFE,0xFE,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"u":"0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"v":"0x00,0x60,0xE0,0x80,0x00,0x00,0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,0x01,0x07,0x1E,0x38,0x38,0x1E,0x07,0x01,0x00,0x00," ,
|
||||
"w":"0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x07,0x1F,0x38,0x1C,0x0F,0x0F,0x1C,0x38,0x1F,0x07,0x00," ,
|
||||
"x":"0x00,0x60,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x30,0x38,0x1D,0x0F,0x07,0x0F,0x1D,0x38,0x30,0x00,0x00," ,
|
||||
"y":"0x00,0x00,0x60,0xE0,0x80,0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00," ,
|
||||
"z":"0x00,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00," ,
|
||||
"z":"0x00,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00," ,
|
||||
"{":"0x00,0x00,0x80,0xC0,0xFC,0x7E,0x07,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x1F,0x3F,0x70,0x60,0x60,0x60,0x00,0x00," ,
|
||||
"|":"0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"}":"0x00,0x00,0x03,0x03,0x03,0x07,0x7E,0xFC,0xC0,0x80,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x70,0x3F,0x1F,0x01,0x00,0x00,0x00," ,
|
||||
"~":"0x00,0x10,0x18,0x0C,0x04,0x0C,0x18,0x10,0x18,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"¡":"0x00,0x00,0x00,0x00,0x80,0xF3,0xF3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00," ,
|
||||
"¢":"0x00,0x00,0xE0,0xF0,0x38,0xFE,0xFE,0x18,0x38,0x30,0x00,0x00,0x00,0x00,0x03,0x07,0x0E,0x3F,0x3F,0x0C,0x0E,0x06,0x00,0x00," ,
|
||||
"£":"0x00,0x00,0x00,0x80,0xF8,0xFC,0x8C,0x8C,0x1C,0x18,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x0B,0x18,0x18,0x18,0x18,0x08,0x00," ,
|
||||
"¤":"0x00,0xF6,0xFE,0x18,0x0C,0x0C,0x0C,0x0C,0x18,0xFE,0xF6,0x00,0x00,0x1B,0x1F,0x06,0x0C,0x0C,0x0C,0x0C,0x06,0x1F,0x1B,0x00," ,
|
||||
"¥":"0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,0x0A,0x0A,0x0A,0x3F,0x3F,0x0A,0x0A,0x0A,0x00,0x00," ,
|
||||
"¦":"0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"§":"0x00,0x00,0xDC,0xFE,0x22,0x22,0x22,0x22,0xE6,0xC4,0x00,0x00,0x00,0x00,0x08,0x19,0x11,0x11,0x11,0x11,0x1F,0x0E,0x00,0x00," ,
|
||||
"¨":"0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"©":"0x00,0xF0,0xF8,0x1C,0xCC,0xEC,0x2C,0x6C,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x19,0x1B,0x1A,0x1B,0x19,0x1C,0x0F,0x07," ,
|
||||
"«":"0x00,0x80,0xC0,0x60,0x20,0x00,0x80,0xC0,0x60,0x20,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x00,0x00,0x01,0x03,0x02,0x00,0x00," ,
|
||||
"¬":"0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00," ,
|
||||
"®":"0x00,0xF0,0xF8,0x1C,0xEC,0xEC,0xAC,0xEC,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x1B,0x1B,0x18,0x1B,0x1B,0x1C,0x0F,0x07," ,
|
||||
"¯":"0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"°":"0x00,0x00,0x00,0x1E,0x3F,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"±":"0x00,0x00,0x00,0xC0,0xC0,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1B,0x1B,0x18,0x18,0x00,0x00,0x00," ,
|
||||
"²":"0x00,0x00,0x19,0x1D,0x15,0x17,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"³":"0x00,0x00,0x11,0x15,0x15,0x1F,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"´":"0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"µ":"0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0xFF,0xFF,0x0E,0x0C,0x0C,0x0C,0x06,0x0F,0x0F,0x00,0x00," ,
|
||||
"¶":"0x00,0x38,0x7C,0xC6,0x82,0xFE,0xFE,0x02,0xFE,0xFE,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x3F,0x3F,0x00,0x00," ,
|
||||
"¹":"0x00,0x00,0x12,0x1F,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"»":"0x00,0x20,0x60,0xC0,0x80,0x00,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x00," ,
|
||||
"¼":"0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00," ,
|
||||
"½":"0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x19,0x1D,0x17,0x12,0x00," ,
|
||||
"¾":"0x00,0x44,0x54,0x7C,0x28,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00," ,
|
||||
"¿":"0x00,0x00,0x00,0x80,0xC0,0xFB,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x3B,0x31,0x30,0x30,0x30,0x38,0x1E,0x0E,0x00," ,
|
||||
"À":"0x00,0x00,0x00,0x80,0xE1,0x7B,0x7E,0xE4,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00," ,
|
||||
"Á":"0x00,0x00,0x00,0x80,0xE4,0x7E,0x7B,0xE1,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00," ,
|
||||
"Â":"0x00,0x00,0x00,0x84,0xE6,0x7B,0x7B,0xE6,0x84,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00," ,
|
||||
"Ã":"0x00,0x00,0x00,0x82,0xE3,0x79,0x7B,0xE2,0x83,0x01,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00," ,
|
||||
"Ä":"0x00,0x00,0x00,0x83,0xE3,0x78,0x78,0xE3,0x83,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00," ,
|
||||
"Å":"0x00,0x00,0x00,0x80,0xE2,0x75,0x75,0xE2,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00," ,
|
||||
"Æ":"0x00,0x00,0x80,0xF0,0x7C,0x1F,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x3C,0x3F,0x07,0x06,0x06,0x3F,0x3F,0x30,0x30,0x30,0x00," ,
|
||||
"Ç":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x1E,0x1C,0x00,0x00,0x01,0x07,0xCE,0xDC,0xF8,0xF8,0x18,0x1C,0x0E,0x06,0x00," ,
|
||||
"È":"0x00,0xF8,0xF8,0x99,0x9B,0x9E,0x9C,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"É":"0x00,0xF8,0xF8,0x98,0x98,0x9C,0x9E,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"Ê":"0x00,0xF8,0xF8,0x9C,0x9E,0x9B,0x9B,0x9E,0x9C,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"Ë":"0x00,0xF8,0xF8,0x9B,0x9B,0x98,0x98,0x9B,0x9B,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"Ì":"0x00,0x00,0x00,0x19,0x1B,0xFE,0xFC,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Í":"0x00,0x00,0x00,0x18,0x18,0xFC,0xFE,0x1B,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Î":"0x00,0x00,0x00,0x1C,0x1E,0xFB,0xFB,0x1E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ï":"0x00,0x00,0x00,0x1B,0x1B,0xF8,0xF8,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ð":"0x00,0xC0,0xFF,0xFF,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"Ñ":"0x00,0xF8,0xF8,0x72,0xE3,0xC1,0x83,0x02,0x03,0xF9,0xF8,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x03,0x07,0x0E,0x3F,0x3F,0x00," ,
|
||||
"Ò":"0x00,0xE0,0xF0,0x39,0x1B,0x1E,0x1C,0x18,0x38,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Ó":"0x00,0xE0,0xF0,0x38,0x18,0x1C,0x1E,0x1B,0x39,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Ô":"0x00,0xE0,0xF0,0x3C,0x1E,0x1B,0x1B,0x1E,0x3C,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Õ":"0x00,0xE0,0xF0,0x3A,0x1B,0x19,0x1B,0x1A,0x3B,0xF1,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Ö":"0x00,0xE0,0xF0,0x3B,0x1B,0x18,0x18,0x1B,0x3B,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"×":"0x00,0xF0,0xF8,0x1C,0x0C,0x8C,0xEC,0x7C,0x18,0xFC,0xF4,0x00,0x00,0x2F,0x3F,0x18,0x3E,0x37,0x31,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Ù":"0x00,0xF8,0xF8,0x01,0x03,0x06,0x04,0x00,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"Ú":"0x00,0xF8,0xF8,0x00,0x00,0x04,0x06,0x03,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"Û":"0x00,0xF8,0xF8,0x04,0x06,0x03,0x03,0x06,0x04,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"Ü":"0x00,0xF8,0xF8,0x03,0x03,0x00,0x00,0x03,0x03,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"Ý":"0x00,0x08,0x18,0x30,0x60,0xC4,0xC6,0x63,0x31,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"ß":"0x00,0x00,0xC0,0xE0,0x30,0x10,0x10,0x30,0xE0,0xC0,0x00,0x00,0x00,0x00,0xFF,0xFF,0x21,0x21,0x21,0x33,0x3F,0x1E,0x00,0x00," ,
|
||||
"à":"0x00,0x00,0x40,0x60,0x62,0x66,0x6C,0x68,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"á":"0x00,0x00,0x40,0x60,0x68,0x6C,0x66,0x62,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"â":"0x00,0x00,0x40,0x68,0x6C,0x66,0x66,0x6C,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"ã":"0x00,0x00,0x40,0x68,0x6C,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"ä":"0x00,0x00,0x40,0x6C,0x6C,0x60,0x60,0x6C,0x6C,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"å":"0x00,0x00,0x40,0x60,0x64,0x6A,0x6A,0x64,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"æ":"0x00,0x80,0xC0,0x40,0x40,0xC0,0x80,0x40,0x40,0xC0,0x80,0x00,0x00,0x1C,0x3E,0x22,0x22,0x1F,0x3F,0x22,0x22,0x33,0x11,0x00," ,
|
||||
"ç":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0xB8,0xB0,0xF0,0xF0,0x30,0x38,0x18,0x08,0x00," ,
|
||||
"è":"0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00," ,
|
||||
"é":"0x00,0x80,0xC0,0xE0,0x60,0x68,0x6C,0x66,0x62,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00," ,
|
||||
"ê":"0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00," ,
|
||||
"ë":"0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0x6C,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00," ,
|
||||
"ì":"0x00,0x00,0x00,0x00,0x62,0xE6,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"í":"0x00,0x00,0x00,0x00,0x68,0xEC,0xE6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"î":"0x00,0x00,0x00,0x08,0x6C,0xE6,0xE6,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ï":"0x00,0x00,0x00,0x0C,0x6C,0xE0,0xEC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ñ":"0x00,0x00,0xE0,0xE8,0x6C,0x64,0x6C,0x68,0xEC,0xC4,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"ò":"0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"ó":"0x00,0x80,0xC0,0xE0,0x68,0x6C,0x66,0x62,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"ô":"0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0xE8,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"õ":"0x00,0x80,0xC8,0xEC,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"ö":"0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0xEC,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"÷":"0x00,0x00,0x80,0x80,0x80,0xB0,0xB0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0D,0x0D,0x01,0x01,0x01,0x00,0x00," ,
|
||||
"ø":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xC0,0xE0,0xA0,0x00,0x00,0x2F,0x3F,0x18,0x3C,0x36,0x33,0x31,0x38,0x1F,0x0F,0x00," ,
|
||||
"ù":"0x00,0xE0,0xE0,0x00,0x02,0x06,0x0C,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"ú":"0x00,0xE0,0xE0,0x00,0x08,0x0C,0x06,0x02,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"û":"0x00,0xE0,0xE0,0x08,0x0C,0x06,0x06,0x0C,0x08,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"ü":"0x00,0xE0,0xE0,0x0C,0x0C,0x00,0x00,0x0C,0x0C,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"ý":"0x00,0x00,0x60,0xE0,0x80,0x10,0x18,0x8C,0xE4,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00," ,
|
||||
"þ":"0x00,0x00,0x03,0xFF,0xFF,0x1B,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x36,0x06,0x06,0x07,0x03,0x00,0x00," ,
|
||||
"ÿ":"0x00,0x00,0x60,0xEC,0x8C,0x00,0x00,0x8C,0xEC,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00," ,
|
||||
"Ѐ":"0x00,0xFC,0xFC,0x8D,0x8F,0x8E,0x8C,0x8C,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"Ё":"0x00,0xFE,0xFE,0xC7,0xC7,0xC6,0xC6,0xC7,0xC7,0x06,0x06,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"Ђ":"0x00,0x03,0xFF,0xFF,0x83,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"Ѓ":"0x00,0xFC,0xFC,0x0C,0x0C,0x0C,0x0E,0x0F,0x0D,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Є":"0x00,0xF8,0xFC,0xCE,0xC7,0xC3,0xC3,0xC3,0x07,0x0E,0x0C,0x00,0x00,0x07,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"Ѕ":"0x00,0x3C,0x7E,0x67,0xE3,0xC3,0xC3,0xC3,0x87,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x31,0x39,0x1F,0x0F,0x00," ,
|
||||
"І":"0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ї":"0x00,0x00,0x00,0x0D,0x0D,0xFC,0xFC,0x0D,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ј":"0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Љ":"0x00,0x00,0xFE,0xFF,0x03,0x03,0xFF,0xFF,0xC0,0xC0,0x80,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x3F,0x3F,0x30,0x39,0x1F,0x0F," ,
|
||||
"Њ":"0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xFF,0xFF,0xC0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x3F,0x3F,0x30,0x39,0x1F,0x0F," ,
|
||||
"Ћ":"0x00,0x03,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x00,0x00,0x01,0x3F,0x3F,0x00," ,
|
||||
"Ќ":"0x00,0xFF,0xFF,0xC0,0xE2,0xF3,0x39,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00," ,
|
||||
"Ѝ":"0x00,0xFF,0xFF,0x00,0x01,0xC3,0xF2,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Ў":"0x00,0x07,0x1F,0x7C,0xF1,0xC1,0xC1,0xF1,0x7C,0x1F,0x07,0x00,0x00,0x00,0x30,0x30,0x3C,0x0F,0x07,0x01,0x00,0x00,0x00,0x00," ,
|
||||
"Џ":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x1F,0x18,0x18,0x78,0x78,0x18,0x18,0x1F,0x1F,0x00," ,
|
||||
#"A":"0x00,0x80,0xE0,0x78,0x1E,0x07,0x07,0x1E,0x78,0xE0,0x80,0x00,0x00,0x3F,0x3F,0x06,0x06,0x06,0x06,0x06,0x06,0x3F,0x3F,0x00," ,
|
||||
"Б":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x83,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"В":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"Г":"0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Г":"0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Д":"0x00,0x00,0xF8,0xFE,0x0F,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x00,0x70,0x7F,0x1F,0x18,0x18,0x18,0x18,0x1F,0x7F,0x70,0x00," ,
|
||||
"Е":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"Ж":"0x00,0x03,0x0F,0xFC,0xE0,0xFF,0xFF,0xE0,0xFC,0x0F,0x03,0x00,0x00,0x38,0x3F,0x07,0x00,0x3F,0x3F,0x00,0x07,0x3F,0x38,0x00," ,
|
||||
"Ж":"0x00,0x03,0x0F,0xFC,0xE0,0xFF,0xFF,0xE0,0xFC,0x0F,0x03,0x00,0x00,0x38,0x3F,0x07,0x00,0x3F,0x3F,0x00,0x07,0x3F,0x38,0x00," ,
|
||||
"И":"0x00,0xFF,0xFF,0x00,0x00,0xC0,0xF0,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Й":"0x00,0xFF,0xFF,0x00,0x02,0xC3,0xF1,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"К":"0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00," ,
|
||||
"Л":"0x00,0x00,0xF0,0xFC,0x1E,0x07,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"М":"0x00,0xFF,0xFF,0x1E,0x78,0xE0,0xE0,0x78,0x1E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x01,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Н":"0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"О":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"П":"0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Р":"0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00," ,
|
||||
"С":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x0E,0x0C,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"Т":"0x00,0x03,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"У":"0x00,0x07,0x1F,0x7C,0xF0,0xC0,0xC0,0xF0,0x7C,0x1F,0x07,0x00,0x00,0x00,0x30,0x30,0x3C,0x0F,0x07,0x01,0x00,0x00,0x00,0x00," ,
|
||||
"Ф":"0x00,0xF8,0xFC,0x0E,0x06,0xFF,0xFF,0x06,0x0E,0xFC,0xF8,0x00,0x00,0x03,0x07,0x0E,0x0C,0x3F,0x3F,0x0C,0x0E,0x07,0x03,0x00," ,
|
||||
"Х":"0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x30,0x3C,0x0F,0x03,0x00,0x00,0x03,0x0F,0x3C,0x30,0x00," ,
|
||||
"Ц":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18,0x18,0x18,0x1F,0x7F,0x78,0x00," ,
|
||||
"Ч":"0x00,0x7F,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Ш":"0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00," ,
|
||||
"Щ":"0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x1F,0x18,0x18,0x1F,0x1F,0x18,0x18,0x1F,0x7F,0x70," ,
|
||||
"Ъ":"0x03,0x03,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"Ы":"0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x00,0x3F,0x3F,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00,0x3F,0x3F," ,
|
||||
"Ь":"0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"Э":"0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC7,0xCE,0xFC,0xF8,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0F,0x07,0x00," ,
|
||||
"Ю":"0x00,0xFF,0xFF,0xC0,0xFC,0xFE,0x07,0x03,0x07,0xFE,0xFC,0x00,0x00,0x3F,0x3F,0x00,0x0F,0x1F,0x38,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Я":"0x00,0x7C,0xFE,0xC7,0x83,0x83,0x83,0x83,0x83,0xFF,0xFF,0x00,0x00,0x30,0x38,0x1D,0x0F,0x07,0x03,0x01,0x01,0x3F,0x3F,0x00," ,
|
||||
"а":"0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1E,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"б":"0x00,0xE0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00," ,
|
||||
"в":"0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00," ,
|
||||
"г":"0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"д":"0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x00,0x60,0x7F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x7F,0x60,0x00," ,
|
||||
"е":"0x00,0xE0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00," ,
|
||||
"ж":"0x00,0x30,0xF0,0xC0,0x00,0xF0,0xF0,0x00,0xC0,0xF0,0x30,0x00,0x00,0x30,0x3C,0x0F,0x03,0x3F,0x3F,0x03,0x0F,0x3C,0x30,0x00," ,
|
||||
"з":"0x00,0x60,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x18,0x38,0x30,0x33,0x33,0x33,0x33,0x33,0x3F,0x1D,0x00," ,
|
||||
"З":"0x00,0x60,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x18,0x38,0x30,0x33,0x33,0x33,0x33,0x33,0x3F,0x1D,0x00," ,
|
||||
"и":"0x00,0xF0,0xF0,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00," ,
|
||||
"й":"0x00,0xF0,0xF0,0x00,0x04,0x08,0x88,0xC4,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00," ,
|
||||
"к":"0x00,0xF0,0xF0,0x80,0x80,0xC0,0xE0,0x70,0x30,0x10,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x07,0x0E,0x1C,0x38,0x30,0x20,0x00," ,
|
||||
"л":"0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"м":"0x00,0xF0,0xF0,0xE0,0xC0,0x80,0x80,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x03,0x01,0x00,0x3F,0x3F,0x00," ,
|
||||
"н":"0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00," ,
|
||||
"о":"0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"п":"0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"р":"0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0xFF,0xFF,0x0C,0x0C,0x0C,0x0C,0x0C,0x0E,0x07,0x03,0x00," ,
|
||||
"с":"0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x18,0x08,0x00," ,
|
||||
"т":"0x00,0x30,0x30,0x30,0x30,0xF0,0xF0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"у":"0x00,0x30,0xF0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00," ,
|
||||
"ф":"0x00,0x80,0xC0,0x60,0x60,0xF0,0xF0,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x30,0x30,0xFF,0xFF,0x30,0x30,0x1F,0x0F,0x00," ,
|
||||
"х":"0x00,0x30,0x70,0xC0,0x80,0x00,0x00,0x80,0xC0,0x70,0x30,0x00,0x00,0x30,0x38,0x0C,0x07,0x03,0x03,0x07,0x0C,0x38,0x30,0x00," ,
|
||||
"ц":"0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x3F,0xFF,0xF0,0x00," ,
|
||||
"ч":"0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00," ,
|
||||
"ш":"0x00,0xF0,0xF0,0x00,0x00,0xE0,0xE0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00," ,
|
||||
"щ":"0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0xFF,0xE0," ,
|
||||
"ъ":"0x30,0x30,0xF0,0xF0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00," ,
|
||||
"ы":"0x00,0xF0,0xF0,0x80,0x80,0x80,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x31,0x31,0x3B,0x1F,0x0E,0x00,0x3F,0x3F,0x00," ,
|
||||
"ь":"0x00,0xF0,0xF0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00," ,
|
||||
"э":"0x00,0x40,0x60,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x08,0x18,0x38,0x30,0x33,0x33,0x33,0x3B,0x1F,0x0F,0x00," ,
|
||||
"ю":"0x00,0xF0,0xF0,0x00,0xE0,0xF0,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x3F,0x3F,0x03,0x1F,0x3F,0x30,0x30,0x30,0x3F,0x1F,0x00," ,
|
||||
"я":"0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x21,0x33,0x3B,0x1E,0x0E,0x06,0x06,0x06,0x3F,0x3F,0x00," ,
|
||||
"ѐ":"0x00,0xE0,0xF0,0x32,0x36,0x36,0x34,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00," ,
|
||||
"ё":"0x00,0xE0,0xF0,0x34,0x34,0x30,0x30,0x34,0x34,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00," ,
|
||||
"ђ":"0x00,0x30,0xFC,0xFC,0x30,0xB0,0xB0,0xB0,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x07,0x03,0x01,0x01,0xC1,0xFF,0x3F,0x00," ,
|
||||
"ѓ":"0x00,0xF0,0xF0,0x30,0x30,0x34,0x36,0x32,0x30,0x30,0x30,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"є":"0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x30,0x38,0x18,0x08,0x00," ,
|
||||
"ѕ":"0x00,0xE0,0xF0,0xB0,0xB0,0x30,0x30,0x30,0x30,0x70,0x60,0x00,0x00,0x18,0x39,0x31,0x33,0x33,0x33,0x37,0x36,0x3E,0x1C,0x00," ,
|
||||
"і":"0x00,0x00,0x00,0x00,0x30,0xF6,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ї":"0x00,0x00,0x00,0x04,0x34,0xF0,0xF4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ј":"0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xF6,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00," ,
|
||||
"љ":"0x00,0x00,0xE0,0xF0,0x30,0x30,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x3F,0x3F,0x33,0x33,0x1E,0x0C," ,
|
||||
"њ":"0x00,0xF0,0xF0,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x3F,0x3F,0x33,0x33,0x1E,0x0C," ,
|
||||
"ћ":"0x00,0x30,0xFC,0xFC,0xB0,0xB0,0xB0,0xB0,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x00," ,
|
||||
"ќ":"0x00,0xF0,0xF0,0x80,0x88,0xCC,0xE4,0x70,0x30,0x10,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x07,0x0E,0x1C,0x38,0x30,0x20,0x00," ,
|
||||
"ѝ":"0x00,0xF0,0xF0,0x00,0x06,0x0C,0x88,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00," ,
|
||||
"ў":"0x00,0x30,0xF0,0xC0,0x04,0x08,0x08,0x04,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00," ,
|
||||
"џ":"0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0xF0,0xF0,0x30,0x30,0x3F,0x3F,0x00," ,
|
||||
"Ā":"0x00,0x00,0x00,0xE0,0xF9,0x1D,0x1D,0xF9,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00," ,
|
||||
"ā":"0x00,0x00,0x40,0x60,0x68,0x68,0x68,0x68,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"Ă":"0x00,0x00,0x00,0xE0,0xF9,0x1A,0x1A,0xF9,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00," ,
|
||||
"ă":"0x00,0x00,0x40,0x60,0x64,0x68,0x68,0x68,0x64,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"Ą":"0x00,0x00,0x00,0xE0,0xFC,0x1F,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x67,0xBF,0xB8,0x00," ,
|
||||
"ą":"0x00,0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x73,0xBF,0xBF,0x00," ,
|
||||
"Ć":"0x00,0x80,0xE0,0x70,0x38,0x18,0x1A,0x1B,0x39,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"ć":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00," ,
|
||||
"Ĉ":"0x00,0x80,0xE0,0x70,0x3A,0x1B,0x19,0x1B,0x3A,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"ĉ":"0x00,0x80,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00," ,
|
||||
"Ċ":"0x00,0x80,0xE0,0x70,0x38,0x18,0x1A,0x18,0x38,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"ċ":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00," ,
|
||||
"Č":"0x00,0x80,0xE0,0x70,0x39,0x1B,0x1A,0x1B,0x39,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00," ,
|
||||
"č":"0x00,0x80,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00," ,
|
||||
"Ď":"0x00,0xF8,0xF8,0x19,0x1B,0x1A,0x1B,0x39,0x70,0xE0,0x80,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"ď":"0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xFF,0xFF,0x00,0x05,0x03,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x3F,0x3F,0x00,0x00,0x00," ,
|
||||
"Đ":"0xC0,0xFF,0xFF,0xC3,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"đ":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE4,0xC4,0xFF,0xFF,0x04,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00," ,
|
||||
"Ē":"0x00,0xFC,0xFC,0x8C,0x8D,0x8D,0x8D,0x8D,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"ē":"0x00,0x80,0xC0,0xE0,0x68,0x68,0x68,0x68,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00," ,
|
||||
"Ĕ":"0x00,0xF8,0xF8,0x98,0x99,0x9A,0x9A,0x99,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"ĕ":"0x00,0x80,0xC0,0xE0,0x64,0x68,0x68,0x68,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00," ,
|
||||
"Ė":"0x00,0xF8,0xF8,0x98,0x98,0x98,0x9A,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"ė":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00," ,
|
||||
"Ę":"0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x70,0xB0,0xB0,0x00," ,
|
||||
"ę":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x73,0xB3,0xB3,0x13,0x01,0x00," ,
|
||||
"Ě":"0x00,0xF8,0xF8,0x98,0x99,0x9B,0x9A,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00," ,
|
||||
"ě":"0x00,0x80,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00," ,
|
||||
"Ĝ":"0x00,0x80,0xE0,0x70,0x1A,0x1B,0x19,0x1B,0x1A,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"ĝ":"0x00,0x80,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00," ,
|
||||
"Ğ":"0x00,0x80,0xE0,0x70,0x1A,0x19,0x19,0x19,0x1A,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"ğ":"0x00,0x80,0xC0,0xE0,0x68,0x64,0x64,0x64,0x68,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00," ,
|
||||
"Ġ":"0x00,0x80,0xE0,0x70,0x18,0x18,0x1A,0x18,0x18,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00," ,
|
||||
"ġ":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00," ,
|
||||
"Ģ":"0x00,0xF0,0xFC,0x0E,0x07,0x03,0xC3,0xC3,0xC3,0xC7,0xC6,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0xB0,0x70,0x30,0x3F,0x3F,0x00," ,
|
||||
"ģ":"0x00,0x80,0xC0,0xE0,0x60,0x60,0x6C,0x6A,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00," ,
|
||||
"Ĥ":"0x00,0xFC,0xFC,0x80,0x82,0x81,0x81,0x82,0x80,0xFC,0xFC,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x00," ,
|
||||
"ĥ":"0x00,0xFE,0xFE,0xC0,0x62,0x63,0x61,0xE3,0xC2,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00," ,
|
||||
"Ħ":"0x02,0xFF,0xFF,0xC2,0xC2,0xC2,0xC2,0xC2,0xC2,0xFF,0xFF,0x02,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"ħ":"0x04,0xFF,0xFF,0xC4,0x64,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00," ,
|
||||
"Ĩ":"0x00,0x00,0x00,0x1A,0x19,0xFB,0xFB,0x1A,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ĩ":"0x00,0x00,0x00,0x08,0x64,0xEC,0xE8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ī":"0x00,0x00,0x00,0x0C,0x0D,0xFD,0xFD,0x0D,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ī":"0x00,0x00,0x00,0x08,0x68,0xE8,0xE8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ĭ":"0x00,0x00,0x00,0x18,0x19,0xFA,0xFA,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ĭ":"0x00,0x00,0x00,0x00,0x64,0xE8,0xE8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Į":"0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7F,0xBF,0xB0,0x30,0x00,0x00,0x00," ,
|
||||
"į":"0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7F,0xBF,0xB0,0x30,0x00,0x00,0x00," ,
|
||||
"İ":"0x00,0x00,0x00,0x18,0x18,0xF8,0xFA,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"ı":"0x00,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"IJ":"0x00,0x03,0xFF,0xFF,0x03,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x30,0x3F,0x3F,0x30,0x0C,0x1C,0x30,0x30,0x3F,0x1F,0x00," ,
|
||||
"ij":"0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x70,0xC0,0xC0,0xFF,0x7F,0x00,0x00," ,
|
||||
"Ĵ":"0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x03,0x02,0xF8,0xF8,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"ĵ":"0x00,0x00,0x00,0x00,0x00,0x08,0x6C,0xE4,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00," ,
|
||||
"Ķ":"0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0xA3,0x67,0x0E,0x1C,0x38,0x30,0x00," ,
|
||||
"ķ":"0x00,0x00,0xFF,0xFF,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0xA7,0x6F,0x1C,0x38,0x30,0x00,0x00," ,
|
||||
"ĸ":"0x00,0x00,0xE0,0xE0,0x00,0x80,0xC0,0xE0,0x60,0x20,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x07,0x0F,0x1C,0x38,0x30,0x00,0x00," ,
|
||||
"Ĺ":"0x00,0xF8,0xFA,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"ĺ":"0x00,0x00,0x00,0x00,0x18,0xFA,0xFB,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ļ":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0xB0,0x70,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"ļ":"0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xBF,0x7F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ľ":"0x00,0xFF,0xFF,0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"ľ":"0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ŀ":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"ŀ":"0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ł":"0x80,0xFF,0xFF,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00," ,
|
||||
"ł":"0x00,0x00,0x00,0x00,0x83,0xFF,0xFF,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ń":"0x00,0xFF,0xFF,0x0E,0x38,0xF2,0xC3,0x01,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00," ,
|
||||
"ń":"0x00,0x00,0xE0,0xE0,0x60,0x68,0x6C,0x64,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Ņ":"0x00,0xFF,0xFF,0x0E,0x38,0xF0,0xC0,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0xA0,0x63,0x07,0x1C,0x3F,0x3F,0x00," ,
|
||||
"ņ":"0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0xA0,0x60,0x00,0x3F,0x3F,0x00," ,
|
||||
"Ň":"0x00,0xFF,0xFF,0x0E,0x38,0xF1,0xC2,0x01,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00," ,
|
||||
"ň":"0x00,0x00,0xE0,0xE0,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"ʼn":"0x00,0x0A,0xE6,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00," ,
|
||||
"Ŋ":"0x00,0x00,0xFF,0xFF,0x06,0x03,0x03,0x03,0x07,0xFE,0xFC,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x20,0x20,0x30,0x1F,0x0F,0x00," ,
|
||||
"ŋ":"0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0xC0,0xC0,0xFF,0x7F,0x00," ,
|
||||
"Ō":"0x00,0xC0,0xF0,0x38,0x1D,0x0D,0x0D,0x1D,0x38,0xF0,0xC0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"ō":"0x00,0x80,0xC0,0xE0,0x68,0x68,0x68,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Ŏ":"0x00,0x80,0xE0,0x70,0x39,0x1A,0x1A,0x39,0x70,0xE0,0x80,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"ŏ":"0x00,0x80,0xC0,0xE0,0x64,0x68,0x68,0x64,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Ő":"0x00,0x80,0xE0,0x70,0x3A,0x19,0x1A,0x39,0x70,0xE0,0x80,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00," ,
|
||||
"ő":"0x00,0x80,0xC0,0xE0,0x68,0x64,0x68,0x64,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00," ,
|
||||
"Œ":"0xF0,0xFC,0x0E,0x03,0x03,0x07,0xFE,0xFF,0xC3,0xC3,0xC3,0x00,0x03,0x0F,0x1C,0x30,0x30,0x38,0x1F,0x3F,0x30,0x30,0x30,0x00," ,
|
||||
"œ":"0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x60,0x60,0x60,0x40,0x80,0x0F,0x1F,0x38,0x30,0x30,0x1F,0x1F,0x3B,0x33,0x33,0x1B,0x09," ,
|
||||
"Ŕ":"0x00,0xF8,0xF8,0x98,0x98,0x9A,0x9B,0x99,0xF8,0xF0,0x60,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00," ,
|
||||
"ŕ":"0x00,0x00,0xE0,0xE0,0xC0,0x60,0x68,0x6C,0x64,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Ŗ":"0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0xA3,0x67,0x0F,0x1D,0x38,0x30,0x00," ,
|
||||
"ŗ":"0x00,0x00,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0xA0,0x60,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Ř":"0x00,0xF8,0xF8,0x99,0x9B,0x9A,0x9B,0x99,0xF8,0xF0,0x60,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00," ,
|
||||
"ř":"0x00,0x00,0xE0,0xE0,0xC4,0x6C,0x68,0x6C,0x64,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Ś":"0x00,0x60,0xF0,0xF8,0x98,0x9A,0x9B,0x99,0x98,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00," ,
|
||||
"ś":"0x00,0xC0,0xE0,0x60,0x68,0x6C,0x64,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00," ,
|
||||
"Ŝ":"0x00,0x60,0xF0,0xF8,0x9A,0x9B,0x99,0x9B,0x9A,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00," ,
|
||||
"ŝ":"0x00,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00," ,
|
||||
"Ş":"0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC7,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0xB0,0xF0,0x30,0x39,0x1F,0x0F,0x00," ,
|
||||
"ş":"0x00,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0xB3,0xF3,0x33,0x3F,0x1E,0x00,0x00,0x00," ,
|
||||
"Š":"0x00,0x60,0xF0,0xF8,0x99,0x9B,0x9A,0x9B,0x99,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00," ,
|
||||
"š":"0x00,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00," ,
|
||||
"Ţ":"0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xBF,0x60,0x00,0x00,0x00,0x00," ,
|
||||
"ţ":"0x00,0x60,0x60,0xFE,0xFE,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0xB0,0xB0,0xF0,0x30,0x00,0x00,0x00," ,
|
||||
"Ť":"0x00,0x00,0x18,0x19,0x1B,0xFA,0xFA,0x1B,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"ť":"0x00,0x60,0x60,0xFE,0xFE,0x60,0x65,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ŧ":"0x00,0x00,0x03,0xC3,0xC3,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"ŧ":"0x00,0x30,0x30,0xFE,0xFE,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x3F,0x33,0x33,0x30,0x30,0x00,0x00,0x00," ,
|
||||
"Ũ":"0x00,0xF8,0xF8,0x02,0x01,0x03,0x03,0x02,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"ũ":"0x00,0xE0,0xE0,0x08,0x04,0x0C,0x0C,0x08,0x04,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"Ū":"0x00,0xFC,0xFC,0x00,0x01,0x01,0x01,0x01,0x00,0xFC,0xFC,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"ū":"0x00,0xE0,0xE0,0x00,0x08,0x08,0x08,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"Ŭ":"0x00,0xFC,0xFC,0x00,0x01,0x02,0x02,0x01,0x00,0xFC,0xFC,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"ŭ":"0x00,0xE0,0xE0,0x00,0x04,0x08,0x08,0x04,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"Ů":"0x00,0xF8,0xF8,0x00,0x06,0x09,0x09,0x06,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"ů":"0x00,0xE0,0xE0,0x00,0x0C,0x12,0x12,0x0C,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"Ű":"0x00,0xF8,0xF8,0x00,0x02,0x01,0x02,0x01,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00," ,
|
||||
"ű":"0x00,0xE0,0xE0,0x00,0x08,0x04,0x08,0x04,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00," ,
|
||||
"Ų":"0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x07,0x1F,0x38,0x30,0xF0,0xB0,0xB0,0x38,0x1F,0x07,0x00," ,
|
||||
"ų":"0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0xF0,0xB0,0xB0,0x18,0x3F,0x3F,0x00," ,
|
||||
"Ŵ":"0x00,0xFC,0xFC,0x00,0x02,0x81,0x81,0x02,0x00,0xFC,0xFC,0x00,0x00,0x3F,0x3F,0x1C,0x06,0x03,0x03,0x06,0x1C,0x3F,0x3F,0x00," ,
|
||||
"ŵ":"0x00,0xE0,0xE0,0x00,0x04,0xE8,0xE8,0x04,0x00,0xE0,0xE0,0x00,0x00,0x07,0x1F,0x38,0x1C,0x0F,0x0F,0x1C,0x38,0x1F,0x07,0x00," ,
|
||||
"Ŷ":"0x00,0x02,0x0E,0x3C,0xF2,0xC1,0xC1,0xF2,0x3C,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"ŷ":"0x00,0x00,0x60,0xE0,0x88,0x04,0x04,0x88,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00," ,
|
||||
"Ÿ":"0x00,0x02,0x0E,0x3C,0xF1,0xC0,0xC0,0xF1,0x3C,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00," ,
|
||||
"Ź":"0x00,0x18,0x18,0x18,0x18,0x1A,0x9B,0xD9,0xF8,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00," ,
|
||||
"ź":"0x00,0x60,0x60,0x60,0x68,0x6C,0xE4,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00," ,
|
||||
"Ż":"0x00,0x18,0x18,0x18,0x18,0x18,0x9A,0xD8,0xF8,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00," ,
|
||||
"ż":"0x00,0x60,0x60,0x60,0x60,0x68,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00," ,
|
||||
"Ž":"0x00,0x18,0x18,0x18,0x19,0x1B,0x9A,0xDB,0xF9,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00," ,
|
||||
"ž":"0x00,0x60,0x60,0x64,0x6C,0x68,0xEC,0xE4,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00," ,
|
||||
"ſ":"0x00,0x00,0x00,0x00,0xFC,0xFE,0x06,0x06,0x0E,0x0C,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x00,0x00,0x00,0x00,0x00," ,
|
||||
}
|
||||
return font
|
||||
|
||||
def getSmallFontMap():
|
||||
font = {
|
||||
" ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"!":"0x00, 0x00, 0x4f, 0x00, 0x00, 0x00,",
|
||||
"\"":"0x00, 0x07, 0x00, 0x07, 0x00, 0x00,",
|
||||
"#":"0x14, 0x7f, 0x14, 0x7f, 0x14, 0x00,",
|
||||
"$":"0x24, 0x2a, 0x7f, 0x2a, 0x12, 0x00,",
|
||||
"%":"0x23, 0x13, 0x08, 0x64, 0x62, 0x00,",
|
||||
"&":"0x36, 0x49, 0x56, 0x20, 0x58, 0x00,",
|
||||
"'":"0x00, 0x05, 0x03, 0x00, 0x00, 0x00,",
|
||||
"(":"0x00, 0x1c, 0x22, 0x41, 0x00, 0x00,",
|
||||
")":"0x00, 0x41, 0x22, 0x1c, 0x00, 0x00,",
|
||||
"*":"0x14, 0x08, 0x3e, 0x08, 0x14, 0x00,",
|
||||
"+":"0x08, 0x08, 0x3e, 0x08, 0x08, 0x00,",
|
||||
",":"0x00, 0x50, 0x30, 0x00, 0x00, 0x00,",
|
||||
"-":"0x08, 0x08, 0x08, 0x08, 0x08, 0x00,",
|
||||
".":"0x00, 0x60, 0x60, 0x00, 0x00, 0x00,",
|
||||
"/":"0x20, 0x10, 0x08, 0x04, 0x02, 0x00,",
|
||||
"0":"0x3e, 0x51, 0x49, 0x45, 0x3e, 0x00,",
|
||||
"1":"0x00, 0x42, 0x7f, 0x40, 0x00, 0x00,",
|
||||
"2":"0x42, 0x61, 0x51, 0x49, 0x46, 0x00,",
|
||||
"3":"0x21, 0x41, 0x45, 0x4b, 0x31, 0x00,",
|
||||
"4":"0x18, 0x14, 0x12, 0x7f, 0x10, 0x00,",
|
||||
"5":"0x27, 0x45, 0x45, 0x45, 0x39, 0x00,",
|
||||
"6":"0x3c, 0x4a, 0x49, 0x49, 0x30, 0x00,",
|
||||
"7":"0x01, 0x71, 0x09, 0x05, 0x03, 0x00,",
|
||||
"8":"0x36, 0x49, 0x49, 0x49, 0x36, 0x00,",
|
||||
"9":"0x06, 0x49, 0x49, 0x29, 0x1e, 0x00,",
|
||||
":":"0x00, 0x36, 0x36, 0x00, 0x00, 0x00,",
|
||||
";":"0x00, 0x56, 0x36, 0x00, 0x00, 0x00,",
|
||||
"<":"0x08, 0x14, 0x22, 0x41, 0x00, 0x00,",
|
||||
"=":"0x14, 0x14, 0x14, 0x14, 0x14, 0x00,",
|
||||
">":"0x00, 0x41, 0x22, 0x14, 0x08, 0x00,",
|
||||
"?":"0x02, 0x01, 0x51, 0x09, 0x06, 0x00,",
|
||||
"@":"0x32, 0x49, 0x79, 0x41, 0x3e, 0x00,",
|
||||
"A":"0x7e, 0x09, 0x09, 0x09, 0x7e, 0x00,",
|
||||
"B":"0x7f, 0x49, 0x49, 0x49, 0x36, 0x00,",
|
||||
"C":"0x3e, 0x41, 0x41, 0x41, 0x22, 0x00,",
|
||||
"D":"0x7f, 0x41, 0x41, 0x22, 0x1c, 0x00,",
|
||||
"E":"0x7f, 0x49, 0x49, 0x49, 0x41, 0x00,",
|
||||
"F":"0x7f, 0x09, 0x09, 0x09, 0x01, 0x00,",
|
||||
"G":"0x3e, 0x41, 0x41, 0x49, 0x7a, 0x00,",
|
||||
"H":"0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00,",
|
||||
"I":"0x00, 0x41, 0x7f, 0x41, 0x00, 0x00,",
|
||||
"J":"0x20, 0x40, 0x41, 0x3f, 0x01, 0x00,",
|
||||
"K":"0x7f, 0x08, 0x14, 0x22, 0x41, 0x00,",
|
||||
"L":"0x7f, 0x40, 0x40, 0x40, 0x40, 0x00,",
|
||||
"M":"0x7f, 0x02, 0x0c, 0x02, 0x7f, 0x00,",
|
||||
"N":"0x7f, 0x04, 0x08, 0x10, 0x7f, 0x00,",
|
||||
"O":"0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00,",
|
||||
"P":"0x7f, 0x09, 0x09, 0x09, 0x06, 0x00,",
|
||||
"Q":"0x3e, 0x41, 0x51, 0x21, 0x5e, 0x00,",
|
||||
"R":"0x7f, 0x09, 0x19, 0x29, 0x46, 0x00,",
|
||||
"S":"0x26, 0x49, 0x49, 0x49, 0x32, 0x00,",
|
||||
"T":"0x01, 0x01, 0x7f, 0x01, 0x01, 0x00,",
|
||||
"U":"0x3f, 0x40, 0x40, 0x40, 0x3f, 0x00,",
|
||||
"V":"0x1f, 0x20, 0x40, 0x20, 0x1f, 0x00,",
|
||||
"W":"0x3f, 0x40, 0x38, 0x40, 0x3f, 0x00,",
|
||||
"X":"0x63, 0x14, 0x08, 0x14, 0x63, 0x00,",
|
||||
"Y":"0x07, 0x08, 0x70, 0x08, 0x07, 0x00,",
|
||||
"Z":"0x61, 0x51, 0x49, 0x45, 0x43, 0x00,",
|
||||
"[":"0x00, 0x7f, 0x41, 0x41, 0x00, 0x00,",
|
||||
"\\":"0x02, 0x04, 0x08, 0x10, 0x20, 0x00,",
|
||||
"]":"0x00, 0x41, 0x41, 0x7f, 0x00, 0x00,",
|
||||
"^":"0x04, 0x02, 0x01, 0x02, 0x04, 0x00,",
|
||||
"_":"0x40, 0x40, 0x40, 0x40, 0x40, 0x00,",
|
||||
"`":"0x00, 0x03, 0x05, 0x00, 0x00, 0x00,",
|
||||
"a":"0x20, 0x54, 0x54, 0x54, 0x78, 0x00,",
|
||||
"b":"0x7f, 0x48, 0x44, 0x44, 0x38, 0x00,",
|
||||
"c":"0x38, 0x44, 0x44, 0x44, 0x20, 0x00,",
|
||||
"d":"0x38, 0x44, 0x44, 0x48, 0x7f, 0x00,",
|
||||
"e":"0x38, 0x54, 0x54, 0x54, 0x18, 0x00,",
|
||||
"f":"0x00, 0x04, 0x7e, 0x05, 0x01, 0x00,",
|
||||
"g":"0x08, 0x54, 0x54, 0x54, 0x3c, 0x00,",
|
||||
"h":"0x7f, 0x08, 0x04, 0x04, 0x78, 0x00,",
|
||||
"i":"0x00, 0x44, 0x7d, 0x40, 0x00, 0x00,",
|
||||
"j":"0x20, 0x40, 0x44, 0x3d, 0x00, 0x00,",
|
||||
"k":"0x00, 0x7f, 0x10, 0x28, 0x44, 0x00,",
|
||||
"l":"0x00, 0x41, 0x7f, 0x40, 0x00, 0x00,",
|
||||
"m":"0x7c, 0x04, 0x78, 0x04, 0x78, 0x00,",
|
||||
"n":"0x7c, 0x08, 0x04, 0x04, 0x78, 0x00,",
|
||||
"o":"0x38, 0x44, 0x44, 0x44, 0x38, 0x00,",
|
||||
"p":"0x7c, 0x14, 0x14, 0x14, 0x08, 0x00,",
|
||||
"q":"0x08, 0x14, 0x14, 0x14, 0x7c, 0x00,",
|
||||
"r":"0x7c, 0x08, 0x04, 0x04, 0x08, 0x00,",
|
||||
"s":"0x48, 0x54, 0x54, 0x54, 0x24, 0x00,",
|
||||
"t":"0x04, 0x3e, 0x44, 0x40, 0x20, 0x00,",
|
||||
"u":"0x3c, 0x40, 0x40, 0x20, 0x7c, 0x00,",
|
||||
"v":"0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00,",
|
||||
"w":"0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00,",
|
||||
"x":"0x44, 0x24, 0x38, 0x48, 0x44, 0x00,",
|
||||
"y":"0x44, 0x48, 0x30, 0x10, 0x0c, 0x00,",
|
||||
"z":"0x44, 0x64, 0x54, 0x4c, 0x44, 0x00,",
|
||||
"{":"0x08, 0x36, 0x41, 0x00, 0x00, 0x00,",
|
||||
"|":"0x00, 0x00, 0x77, 0x00, 0x00, 0x00,",
|
||||
"}":"0x00, 0x00, 0x41, 0x36, 0x08, 0x00,",
|
||||
"~":"0x02, 0x01, 0x02, 0x04, 0x02, 0x00,",
|
||||
"^":"0x04, 0x02, 0x01, 0x02, 0x04, 0x00,",
|
||||
" ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"¡":"0x00, 0x00, 0x79, 0x00, 0x00, 0x00,",
|
||||
"¢":"0x1c, 0x22, 0x7f, 0x22, 0x10, 0x00,",
|
||||
"£":"0x50, 0x7e, 0x51, 0x41, 0x42, 0x00,",
|
||||
"¤":"0x22, 0x1c, 0x14, 0x1c, 0x22, 0x00,",
|
||||
"¥":"0x15, 0x16, 0x7c, 0x16, 0x15, 0x00,",
|
||||
"¦":"0x00, 0x00, 0x77, 0x00, 0x00, 0x00,",
|
||||
"§":"0x4a, 0x55, 0x55, 0x55, 0x29, 0x00,",
|
||||
"¨":"0x00, 0x01, 0x00, 0x01, 0x00, 0x00,",
|
||||
"©":"0x00, 0x18, 0x24, 0x24, 0x00, 0x00,",
|
||||
"ª":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"«":"0x08, 0x14, 0x00, 0x08, 0x14, 0x00,",
|
||||
"¬":"0x08, 0x08, 0x08, 0x08, 0x38, 0x00,",
|
||||
"":"0x08, 0x08, 0x08, 0x08, 0x08, 0x00,",
|
||||
"®":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"¯":"0x00, 0x01, 0x01, 0x01, 0x00, 0x00,",
|
||||
"°":"0x00, 0x00, 0x07, 0x05, 0x07, 0x00,",
|
||||
"±":"0x44, 0x44, 0x5f, 0x44, 0x44, 0x00,",
|
||||
"²":"0x1d, 0x15, 0x17, 0x00, 0x00, 0x00,",
|
||||
"³":"0x15, 0x15, 0x1f, 0x00, 0x00, 0x00,",
|
||||
"´":"0x00, 0x04, 0x02, 0x01, 0x00, 0x00,",
|
||||
"µ":"0x7c, 0x10, 0x10, 0x0c, 0x10, 0x00,",
|
||||
"¶":"0x02, 0x07, 0x7f, 0x01, 0x7f, 0x00,",
|
||||
"·":"0x00, 0x00, 0x08, 0x00, 0x00, 0x00,",
|
||||
"¸":"0x00, 0x40, 0x60, 0x00, 0x00, 0x00,",
|
||||
"¹":"0x12, 0x1f, 0x10, 0x00, 0x00, 0x00,",
|
||||
"º":"0x07, 0x05, 0x07, 0x00, 0x00, 0x00,",
|
||||
"»":"0x14, 0x08, 0x00, 0x14, 0x08, 0x00,",
|
||||
"¼":"0x21, 0x17, 0x38, 0x24, 0x72, 0x00,",
|
||||
"½":"0x21, 0x17, 0x78, 0x54, 0x5e, 0x00,",
|
||||
"¾":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"¿":"0x30, 0x48, 0x45, 0x40, 0x20, 0x00,",
|
||||
"À":"0x78, 0x15, 0x16, 0x14, 0x78, 0x00,",
|
||||
"Á":"0x78, 0x14, 0x16, 0x15, 0x78, 0x00,",
|
||||
"Â":"0x78, 0x16, 0x15, 0x16, 0x78, 0x00,",
|
||||
"Ã":"0x7a, 0x29, 0x2a, 0x79, 0x00, 0x00,",
|
||||
"Ä":"0x78, 0x15, 0x14, 0x15, 0x78, 0x00,",
|
||||
"Å":"0x78, 0x14, 0x15, 0x14, 0x78, 0x00,",
|
||||
"Æ":"0x7e, 0x09, 0x7f, 0x49, 0x49, 0x00,",
|
||||
"Ç":"0x0e, 0x51, 0x71, 0x11, 0x08, 0x00,",
|
||||
"È":"0x7c, 0x55, 0x56, 0x44, 0x44, 0x00,",
|
||||
"É":"0x7c, 0x54, 0x56, 0x45, 0x44, 0x00,",
|
||||
"Ê":"0x7c, 0x56, 0x55, 0x46, 0x44, 0x00,",
|
||||
"Ë":"0x7c, 0x55, 0x54, 0x45, 0x44, 0x00,",
|
||||
"Ì":"0x00, 0x49, 0x7a, 0x48, 0x00, 0x00,",
|
||||
"Í":"0x00, 0x48, 0x7a, 0x49, 0x00, 0x00,",
|
||||
"Î":"0x00, 0x4a, 0x79, 0x4a, 0x00, 0x00,",
|
||||
"Ï":"0x44, 0x45, 0x7c, 0x45, 0x44, 0x00,",
|
||||
"Ð":"0x08, 0x7f, 0x49, 0x22, 0x1c, 0x00,",
|
||||
"Ñ":"0x7a, 0x11, 0x22, 0x79, 0x00, 0x00,",
|
||||
"Ò":"0x38, 0x45, 0x46, 0x44, 0x38, 0x00,",
|
||||
"Ó":"0x38, 0x44, 0x46, 0x45, 0x38, 0x00,",
|
||||
"Ô":"0x38, 0x46, 0x45, 0x46, 0x38, 0x00,",
|
||||
"Õ":"0x32, 0x49, 0x4a, 0x31, 0x00, 0x00,",
|
||||
"Ö":"0x38, 0x45, 0x44, 0x45, 0x38, 0x00,",
|
||||
"×":"0x22, 0x14, 0x08, 0x14, 0x22, 0x00,",
|
||||
"Ø":"0x58, 0x24, 0x54, 0x48, 0x34, 0x00,",
|
||||
"Ù":"0x38, 0x41, 0x42, 0x40, 0x38, 0x00,",
|
||||
"Ú":"0x38, 0x40, 0x42, 0x41, 0x38, 0x00,",
|
||||
"Û":"0x38, 0x42, 0x41, 0x42, 0x38, 0x00,",
|
||||
"Ü":"0x3c, 0x41, 0x40, 0x41, 0x3c, 0x00,",
|
||||
"Ý":"0x04, 0x08, 0x72, 0x09, 0x04, 0x00,",
|
||||
"Þ":"0x7f, 0x22, 0x22, 0x22, 0x1c, 0x00,",
|
||||
"ß":"0x7e, 0x11, 0x25, 0x25, 0x1a, 0x00,",
|
||||
"à":"0x20, 0x55, 0x56, 0x54, 0x78, 0x00,",
|
||||
"á":"0x20, 0x54, 0x56, 0x55, 0x78, 0x00,",
|
||||
"â":"0x20, 0x56, 0x55, 0x56, 0x78, 0x00,",
|
||||
"ã":"0x22, 0x55, 0x56, 0x55, 0x78, 0x00,",
|
||||
"ä":"0x20, 0x55, 0x54, 0x55, 0x78, 0x00,",
|
||||
"å":"0x20, 0x54, 0x55, 0x54, 0x78, 0x00,",
|
||||
"æ":"0x24, 0x54, 0x7c, 0x54, 0x48, 0x00,",
|
||||
"ç":"0x1c, 0x22, 0x62, 0x22, 0x10, 0x00,",
|
||||
"è":"0x38, 0x55, 0x56, 0x54, 0x08, 0x00,",
|
||||
"é":"0x38, 0x54, 0x56, 0x55, 0x08, 0x00,",
|
||||
"ê":"0x38, 0x56, 0x55, 0x56, 0x08, 0x00,",
|
||||
"ë":"0x38, 0x55, 0x54, 0x55, 0x08, 0x00,",
|
||||
"ì":"0x00, 0x45, 0x7e, 0x40, 0x00, 0x00,",
|
||||
"í":"0x00, 0x44, 0x7e, 0x41, 0x00, 0x00,",
|
||||
"î":"0x00, 0x46, 0x7d, 0x42, 0x00, 0x00,",
|
||||
"ï":"0x00, 0x45, 0x7c, 0x41, 0x00, 0x00,",
|
||||
"ð":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ñ":"0x78, 0x12, 0x09, 0x0a, 0x71, 0x00,",
|
||||
"ò":"0x38, 0x45, 0x46, 0x44, 0x38, 0x00,",
|
||||
"ó":"0x38, 0x44, 0x46, 0x45, 0x38, 0x00,",
|
||||
"ô":"0x38, 0x46, 0x45, 0x46, 0x38, 0x00,",
|
||||
"õ":"0x32, 0x49, 0x4a, 0x31, 0x00, 0x00,",
|
||||
"ö":"0x38, 0x45, 0x44, 0x45, 0x38, 0x00,",
|
||||
"÷":"0x08, 0x08, 0x2a, 0x08, 0x08, 0x00,",
|
||||
"ø":"0x58, 0x24, 0x54, 0x48, 0x34, 0x00,",
|
||||
"ù":"0x3c, 0x41, 0x42, 0x20, 0x7c, 0x00,",
|
||||
"ú":"0x3c, 0x40, 0x42, 0x21, 0x7c, 0x00,",
|
||||
"û":"0x3c, 0x42, 0x41, 0x22, 0x7c, 0x00,",
|
||||
"ü":"0x3c, 0x41, 0x40, 0x21, 0x5c, 0x00,",
|
||||
"ý":"0x44, 0x48, 0x32, 0x11, 0x0c, 0x00,",
|
||||
"þ":"0x7c, 0x28, 0x28, 0x10, 0x00, 0x00,",
|
||||
"ÿ":"0x44, 0x49, 0x30, 0x11, 0x0c, 0x00,",
|
||||
"Ѐ":"0x7c, 0x55, 0x56, 0x44, 0x44, 0x00,",
|
||||
"Ё":"0x7c, 0x55, 0x54, 0x45, 0x44, 0x00,",
|
||||
"Ђ":"0x01, 0x7f, 0x09, 0x49, 0x31, 0x00,",
|
||||
"Ѓ":"0x7c, 0x04, 0x06, 0x05, 0x04, 0x00,",
|
||||
"Є":"0x3e, 0x49, 0x49, 0x41, 0x00, 0x00,",
|
||||
"Ѕ":"0x06, 0x49, 0x49, 0x49, 0x30, 0x00,",
|
||||
"І":"0x41, 0x41, 0x7f, 0x41, 0x41, 0x00,",
|
||||
"Ї":"0x44, 0x45, 0x7c, 0x45, 0x44, 0x00,",
|
||||
"Ј":"0x20, 0x40, 0x41, 0x3f, 0x01, 0x00,",
|
||||
"Љ":"0x7f, 0x01, 0x7f, 0x48, 0x30, 0x00,",
|
||||
"Њ":"0x7f, 0x08, 0x7f, 0x48, 0x30, 0x00,",
|
||||
"Ћ":"0x01, 0x01, 0x7f, 0x09, 0x71, 0x00,",
|
||||
"Ќ":"0x7c, 0x12, 0x29, 0x44, 0x00, 0x00,",
|
||||
"Ѝ":"0x7c, 0x21, 0x12, 0x08, 0x7c, 0x00,",
|
||||
"Ў":"0x44, 0x49, 0x32, 0x09, 0x04, 0x00,",
|
||||
"Џ":"0x3f, 0x20, 0x60, 0x20, 0x3f, 0x00,",
|
||||
"А":"0x7e, 0x09, 0x09, 0x09, 0x7e, 0x00,",
|
||||
"Б":"0x7f, 0x49, 0x49, 0x49, 0x31, 0x00,",
|
||||
"В":"0x7f, 0x49, 0x49, 0x49, 0x36, 0x00,",
|
||||
"Г":"0x7f, 0x01, 0x01, 0x01, 0x01, 0x00,",
|
||||
"Д":"0x60, 0x3f, 0x21, 0x3f, 0x60, 0x00,",
|
||||
"Е":"0x7f, 0x49, 0x49, 0x49, 0x41, 0x00,",
|
||||
"Ж":"0x77, 0x08, 0x7f, 0x08, 0x77, 0x00,",
|
||||
"З":"0x00, 0x41, 0x49, 0x49, 0x36, 0x00,",
|
||||
"И":"0x7f, 0x10, 0x08, 0x04, 0x7f, 0x00,",
|
||||
"Й":"0x7c, 0x21, 0x12, 0x09, 0x7c, 0x00,",
|
||||
"К":"0x7f, 0x08, 0x14, 0x22, 0x41, 0x00,",
|
||||
"Л":"0x40, 0x3f, 0x01, 0x01, 0x7f, 0x00,",
|
||||
"М":"0x7f, 0x02, 0x04, 0x02, 0x7f, 0x00,",
|
||||
"Н":"0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00,",
|
||||
"О":"0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00,",
|
||||
"П":"0x7f, 0x01, 0x01, 0x01, 0x7f, 0x00,",
|
||||
"Р":"0x7f, 0x09, 0x09, 0x09, 0x06, 0x00,",
|
||||
"С":"0x3e, 0x41, 0x41, 0x41, 0x22, 0x00,",
|
||||
"Т":"0x01, 0x01, 0x7f, 0x01, 0x01, 0x00,",
|
||||
"У":"0x47, 0x48, 0x30, 0x08, 0x07, 0x00,",
|
||||
"Ф":"0x0c, 0x12, 0x7f, 0x12, 0x0c, 0x00,",
|
||||
"Х":"0x63, 0x14, 0x08, 0x14, 0x63, 0x00,",
|
||||
"Ц":"0x3f, 0x20, 0x20, 0x3f, 0x60, 0x00,",
|
||||
"Ч":"0x07, 0x08, 0x08, 0x08, 0x7f, 0x00,",
|
||||
"Ш":"0x3f, 0x20, 0x3f, 0x20, 0x3f, 0x00,",
|
||||
"Щ":"0x3f, 0x20, 0x3f, 0x20, 0x3f, 0x60,",
|
||||
"Ъ":"0x01, 0x7f, 0x48, 0x48, 0x30, 0x00,",
|
||||
"Ы":"0x7f, 0x48, 0x30, 0x00, 0x7f, 0x00,",
|
||||
"Ь":"0x00, 0x7f, 0x48, 0x48, 0x30, 0x00,",
|
||||
"Э":"0x22, 0x49, 0x49, 0x2a, 0x1c, 0x00,",
|
||||
"Ю":"0x7f, 0x08, 0x3e, 0x41, 0x3e, 0x00,",
|
||||
"Я":"0x46, 0x29, 0x19, 0x09, 0x7f, 0x00,",
|
||||
"а":"0x20, 0x54, 0x54, 0x54, 0x78, 0x00,",
|
||||
"б":"0x3c, 0x4a, 0x4a, 0x4a, 0x30, 0x00,",
|
||||
"в":"0x7c, 0x54, 0x54, 0x54, 0x28, 0x00,",
|
||||
"г":"0x7c, 0x04, 0x04, 0x04, 0x04, 0x00,",
|
||||
"д":"0x40, 0x3c, 0x24, 0x3c, 0x60, 0x00,",
|
||||
"е":"0x38, 0x54, 0x54, 0x54, 0x18, 0x00,",
|
||||
"ж":"0x6c, 0x10, 0x7c, 0x10, 0x6c, 0x00,",
|
||||
"з":"0x28, 0x44, 0x54, 0x54, 0x28, 0x00,",
|
||||
"и":"0x7c, 0x20, 0x10, 0x08, 0x7c, 0x00,",
|
||||
"й":"0x7c, 0x21, 0x12, 0x09, 0x7c, 0x00,",
|
||||
"к":"0x7c, 0x10, 0x28, 0x44, 0x00, 0x00,",
|
||||
"л":"0x40, 0x3c, 0x04, 0x04, 0x7c, 0x00,",
|
||||
"м":"0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00,",
|
||||
"н":"0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00,",
|
||||
"о":"0x38, 0x44, 0x44, 0x44, 0x38, 0x00,",
|
||||
"п":"0x7c, 0x04, 0x04, 0x04, 0x7c, 0x00,",
|
||||
"р":"0x7c, 0x14, 0x14, 0x14, 0x08, 0x00,",
|
||||
"с":"0x38, 0x44, 0x44, 0x44, 0x20, 0x00,",
|
||||
"т":"0x04, 0x04, 0x7c, 0x04, 0x04, 0x00,",
|
||||
"у":"0x4c, 0x50, 0x20, 0x10, 0x0c, 0x00,",
|
||||
"ф":"0x18, 0x24, 0x7e, 0x24, 0x18, 0x00,",
|
||||
"х":"0x44, 0x28, 0x10, 0x28, 0x44, 0x00,",
|
||||
"ц":"0x3c, 0x20, 0x20, 0x3c, 0x60, 0x00,",
|
||||
"ч":"0x0c, 0x10, 0x10, 0x10, 0x7c, 0x00,",
|
||||
"ш":"0x3c, 0x20, 0x3c, 0x20, 0x3c, 0x00,",
|
||||
"щ":"0x3c, 0x20, 0x3c, 0x20, 0x7c, 0x00,",
|
||||
"ъ":"0x04, 0x7c, 0x50, 0x20, 0x00, 0x00,",
|
||||
"ы":"0x7c, 0x50, 0x20, 0x00, 0x7c, 0x00,",
|
||||
"ь":"0x00, 0x7c, 0x50, 0x20, 0x00, 0x00,",
|
||||
"э":"0x28, 0x44, 0x54, 0x54, 0x28, 0x00,",
|
||||
"ю":"0x7c, 0x10, 0x38, 0x44, 0x38, 0x00,",
|
||||
"я":"0x48, 0x34, 0x14, 0x14, 0x7c, 0x00,",
|
||||
"ѐ":"0x38, 0x55, 0x56, 0x54, 0x08, 0x00,",
|
||||
"ё":"0x38, 0x55, 0x54, 0x55, 0x08, 0x00,",
|
||||
"ђ":"0x02, 0x3f, 0x12, 0x48, 0x30, 0x00,",
|
||||
"ѓ":"0x7c, 0x04, 0x06, 0x05, 0x04, 0x00,",
|
||||
"є":"0x38, 0x54, 0x54, 0x44, 0x28, 0x00,",
|
||||
"ѕ":"0x08, 0x54, 0x54, 0x54, 0x20, 0x00,",
|
||||
"і":"0x00, 0x44, 0x7d, 0x40, 0x00, 0x00,",
|
||||
"ї":"0x00, 0x45, 0x7c, 0x41, 0x00, 0x00,",
|
||||
"ј":"0x20, 0x40, 0x44, 0x3d, 0x00, 0x00,",
|
||||
"љ":"0x7c, 0x04, 0x7c, 0x50, 0x20, 0x00,",
|
||||
"њ":"0x7c, 0x10, 0x7c, 0x50, 0x20, 0x00,",
|
||||
"ћ":"0x04, 0x7e, 0x14, 0x10, 0x60, 0x00,",
|
||||
"ќ":"0x7c, 0x12, 0x29, 0x44, 0x00, 0x00,",
|
||||
"ѝ":"0x7c, 0x21, 0x12, 0x08, 0x7c, 0x00,",
|
||||
"ў":"0x4c, 0x51, 0x22, 0x11, 0x0c, 0x00,",
|
||||
"џ":"0x3c, 0x20, 0x60, 0x20, 0x3c, 0x00,",
|
||||
"Ā":"0x78, 0x15, 0x15, 0x15, 0x78, 0x00,",
|
||||
"ā":"0x20, 0x55, 0x55, 0x55, 0x78, 0x00,",
|
||||
"Ă":"0x78, 0x15, 0x16, 0x15, 0x78, 0x00,",
|
||||
"ă":"0x20, 0x55, 0x56, 0x55, 0x78, 0x00,",
|
||||
"Ą":"0x7e, 0x09, 0x09, 0x49, 0xbe, 0x00,",
|
||||
"ą":"0x20, 0x54, 0x54, 0xd4, 0x78, 0x00,",
|
||||
"Ć":"0x38, 0x44, 0x46, 0x45, 0x28, 0x00,",
|
||||
"ć":"0x38, 0x44, 0x46, 0x45, 0x20, 0x00,",
|
||||
"Ĉ":"0x38, 0x46, 0x45, 0x46, 0x28, 0x00,",
|
||||
"ĉ":"0x38, 0x46, 0x45, 0x46, 0x20, 0x00,",
|
||||
"Ċ":"0x38, 0x44, 0x45, 0x44, 0x28, 0x00,",
|
||||
"ċ":"0x38, 0x44, 0x45, 0x44, 0x20, 0x00,",
|
||||
"Č":"0x38, 0x45, 0x46, 0x45, 0x28, 0x00,",
|
||||
"č":"0x38, 0x45, 0x46, 0x45, 0x20, 0x00,",
|
||||
"Ď":"0x7c, 0x45, 0x46, 0x29, 0x10, 0x00,",
|
||||
"ď":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Đ":"0x08, 0x7f, 0x49, 0x22, 0x1c, 0x00,",
|
||||
"đ":"0x38, 0x44, 0x44, 0x4A, 0x7F, 0x00,",
|
||||
"Ē":"0x7c, 0x55, 0x55, 0x55, 0x44, 0x00,",
|
||||
"ē":"0x38, 0x55, 0x55, 0x55, 0x08, 0x00,",
|
||||
"Ĕ":"0x7c, 0x55, 0x56, 0x55, 0x44, 0x00,",
|
||||
"ĕ":"0x38, 0x55, 0x56, 0x55, 0x08, 0x00,",
|
||||
"Ė":"0x7c, 0x54, 0x55, 0x54, 0x44, 0x00,",
|
||||
"ė":"0x38, 0x54, 0x55, 0x54, 0x08, 0x00,",
|
||||
"Ę":"0x7f, 0x49, 0x49, 0xc9, 0x41, 0x00,",
|
||||
"ę":"0x38, 0x54, 0x54, 0xd4, 0x18, 0x00,",
|
||||
"Ě":"0x7c, 0x55, 0x56, 0x55, 0x44, 0x00,",
|
||||
"ě":"0x38, 0x55, 0x56, 0x55, 0x08, 0x00,",
|
||||
"Ĝ":"0x38, 0x46, 0x55, 0x56, 0x70, 0x00,",
|
||||
"ĝ":"0x08, 0x56, 0x55, 0x56, 0x3c, 0x00,",
|
||||
"Ğ":"0x38, 0x45, 0x56, 0x55, 0x30, 0x00,",
|
||||
"ğ":"0x08, 0x55, 0x56, 0x55, 0x3c, 0x00,",
|
||||
"Ġ":"0x38, 0x44, 0x55, 0x54, 0x30, 0x00,",
|
||||
"ġ":"0x08, 0x54, 0x55, 0x54, 0x3c, 0x00,",
|
||||
"Ģ":"0x0e, 0x51, 0x35, 0x15, 0x1c, 0x00,",
|
||||
"ģ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ĥ":"0x7c, 0x12, 0x11, 0x12, 0x7c, 0x00,",
|
||||
"ĥ":"0x02, 0x79, 0x22, 0x10, 0x60, 0x00,",
|
||||
"Ħ":"0x02, 0x7f, 0x0a, 0x7f, 0x02, 0x00,",
|
||||
"ħ":"0x02, 0x7f, 0x12, 0x08, 0x70, 0x00,",
|
||||
"Ĩ":"0x4a, 0x49, 0x7a, 0x49, 0x48, 0x00,",
|
||||
"ĩ":"0x02, 0x49, 0x7a, 0x41, 0x00, 0x00,",
|
||||
"Ī":"0x44, 0x45, 0x7d, 0x45, 0x44, 0x00,",
|
||||
"ī":"0x00, 0x45, 0x7d, 0x41, 0x00, 0x00,",
|
||||
"Ĭ":"0x44, 0x45, 0x7e, 0x45, 0x44, 0x00,",
|
||||
"ĭ":"0x00, 0x45, 0x7e, 0x41, 0x00, 0x00,",
|
||||
"Į":"0x00, 0x41, 0x7f, 0xc1, 0x00, 0x00,",
|
||||
"į":"0x00, 0x44, 0x7d, 0xc0, 0x00, 0x00,",
|
||||
"İ":"0x44, 0x44, 0x7d, 0x44, 0x44, 0x00,",
|
||||
"ı":"0x00, 0x44, 0x7c, 0x40, 0x00, 0x00,",
|
||||
"IJ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ij":"0x44, 0x7d, 0x40, 0x44, 0x3d, 0x00,",
|
||||
"Ĵ":"0x20, 0x40, 0x46, 0x3d, 0x06, 0x00,",
|
||||
"ĵ":"0x00, 0x20, 0x46, 0x3d, 0x02, 0x00,",
|
||||
"Ķ":"0x1f, 0x44, 0x2a, 0x11, 0x00, 0x00,",
|
||||
"ķ":"0x1f, 0x44, 0x2a, 0x11, 0x00, 0x00,",
|
||||
"ĸ":"0x7c, 0x10, 0x28, 0x44, 0x00, 0x00,",
|
||||
"Ĺ":"0x7c, 0x40, 0x42, 0x41, 0x40, 0x00,",
|
||||
"ĺ":"0x00, 0x44, 0x7e, 0x41, 0x00, 0x00,",
|
||||
"Ļ":"0x1f, 0x50, 0x30, 0x10, 0x10, 0x00,",
|
||||
"ļ":"0x00, 0x51, 0x3f, 0x10, 0x00, 0x00,",
|
||||
"Ľ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ľ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ŀ":"0x7f, 0x40, 0x40, 0x48, 0x40, 0x00,",
|
||||
"ŀ":"0x00, 0x41, 0x7f, 0x40, 0x08, 0x00,",
|
||||
"Ł":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ł":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ń":"0x7c, 0x08, 0x12, 0x21, 0x7c, 0x00,",
|
||||
"ń":"0x7c, 0x08, 0x06, 0x05, 0x78, 0x00,",
|
||||
"Ņ":"0x1f, 0x42, 0x24, 0x08, 0x1f, 0x00,",
|
||||
"ņ":"0x1f, 0x42, 0x21, 0x01, 0x1e, 0x00,",
|
||||
"Ň":"0x7c, 0x09, 0x12, 0x21, 0x7c, 0x00,",
|
||||
"ň":"0x7c, 0x09, 0x06, 0x05, 0x78, 0x00,",
|
||||
"ʼn":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ŋ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ŋ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ō":"0x38, 0x45, 0x45, 0x45, 0x38, 0x00,",
|
||||
"ō":"0x38, 0x45, 0x45, 0x45, 0x38, 0x00,",
|
||||
"Ŏ":"0x38, 0x45, 0x46, 0x45, 0x38, 0x00,",
|
||||
"ŏ":"0x38, 0x45, 0x46, 0x45, 0x38, 0x00,",
|
||||
"Ő":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ő":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Œ":"0x3e, 0x41, 0x7f, 0x49, 0x49, 0x00,",
|
||||
"œ":"0x38, 0x44, 0x7c, 0x54, 0x58, 0x00,",
|
||||
"Ŕ":"0x7c, 0x14, 0x16, 0x15, 0x68, 0x00,",
|
||||
"ŕ":"0x7c, 0x08, 0x06, 0x05, 0x08, 0x00,",
|
||||
"Ŗ":"0x1f, 0x45, 0x25, 0x05, 0x1a, 0x00,",
|
||||
"ŗ":"0x1f, 0x42, 0x21, 0x01, 0x02, 0x00,",
|
||||
"Ř":"0x7c, 0x15, 0x16, 0x15, 0x68, 0x00,",
|
||||
"ř":"0x7c, 0x09, 0x06, 0x05, 0x08, 0x00,",
|
||||
"Ś":"0x08, 0x54, 0x56, 0x55, 0x20, 0x00,",
|
||||
"ś":"0x48, 0x54, 0x56, 0x55, 0x24, 0x00,",
|
||||
"Ŝ":"0x08, 0x56, 0x55, 0x56, 0x20, 0x00,",
|
||||
"ŝ":"0x48, 0x56, 0x55, 0x56, 0x24, 0x00,",
|
||||
"Ş":"0x02, 0x55, 0x35, 0x15, 0x08, 0x00,",
|
||||
"ş":"0x12, 0x55, 0x35, 0x15, 0x09, 0x00,",
|
||||
"Š":"0x08, 0x55, 0x56, 0x55, 0x20, 0x00,",
|
||||
"š":"0x48, 0x55, 0x56, 0x55, 0x24, 0x00,",
|
||||
"Ţ":"0x01, 0x41, 0x3f, 0x01, 0x01, 0x00,",
|
||||
"ţ":"0x02, 0x4f, 0x32, 0x10, 0x08, 0x00,",
|
||||
"Ť":"0x04, 0x05, 0x7e, 0x05, 0x04, 0x00,",
|
||||
"ť":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ŧ":"0x01, 0x09, 0x7f, 0x09, 0x01, 0x00,",
|
||||
"ŧ":"0x14, 0x3e, 0x54, 0x40, 0x20, 0x00,",
|
||||
"Ũ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ũ":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ū":"0x3c, 0x41, 0x41, 0x41, 0x3c, 0x00,",
|
||||
"ū":"0x3c, 0x41, 0x41, 0x21, 0x7c, 0x00,",
|
||||
"Ŭ":"0x3c, 0x41, 0x42, 0x41, 0x3c, 0x00,",
|
||||
"ŭ":"0x3c, 0x41, 0x41, 0x21, 0x7c, 0x00,",
|
||||
"Ů":"0x3c, 0x40, 0x41, 0x40, 0x3c, 0x00,",
|
||||
"ů":"0x3c, 0x41, 0x41, 0x21, 0x7c, 0x00,",
|
||||
"Ű":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ű":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ų":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"ų":"0x00, 0x00, 0x00, 0x00, 0x00, 0x00,",
|
||||
"Ŵ":"0x3c, 0x42, 0x39, 0x42, 0x3c, 0x00,",
|
||||
"ŵ":"0x3c, 0x42, 0x31, 0x42, 0x3c, 0x00,",
|
||||
"Ŷ":"0x04, 0x0a, 0x71, 0x0a, 0x04, 0x00,",
|
||||
"ŷ":"0x04, 0x4a, 0x31, 0x12, 0x0c, 0x00,",
|
||||
"Ÿ":"0x04, 0x09, 0x70, 0x09, 0x04, 0x00,",
|
||||
"Ź":"0x44, 0x64, 0x56, 0x4d, 0x44, 0x00,",
|
||||
"ź":"0x44, 0x64, 0x56, 0x4d, 0x44, 0x00,",
|
||||
"Ż":"0x44, 0x64, 0x55, 0x4c, 0x44, 0x00,",
|
||||
"ż":"0x44, 0x64, 0x55, 0x4c, 0x44, 0x00,",
|
||||
"Ž":"0x44, 0x65, 0x56, 0x4d, 0x44, 0x00,",
|
||||
"ž":"0x44, 0x65, 0x56, 0x4d, 0x44, 0x00,",
|
||||
"ſ":"0x00, 0x04, 0x7e, 0x01, 0x01, 0x00,",
|
||||
}
|
||||
return font
|
||||
349
Translation Editor/make_translation.py
Normal file → Executable file
349
Translation Editor/make_translation.py
Normal file → Executable file
@@ -1,14 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#!/usr/bin/env python3
|
||||
#coding=utf-8
|
||||
from __future__ import print_function
|
||||
import json
|
||||
import os
|
||||
import io
|
||||
import sys
|
||||
|
||||
import fontTables
|
||||
TRANSLATION_CPP = "Translation.cpp"
|
||||
|
||||
try :
|
||||
try:
|
||||
to_unicode = unicode
|
||||
except NameError:
|
||||
to_unicode = str
|
||||
@@ -28,13 +28,13 @@ def loadJson(fileName, skipFirstLine):
|
||||
# Reading all language translations into a dictionary by langCode
|
||||
def readTranslations(jsonDir):
|
||||
langDict = {}
|
||||
|
||||
|
||||
# Read all translation files from the input dir
|
||||
for fileName in os.listdir(jsonDir):
|
||||
|
||||
|
||||
fileWithPath = os.path.join(jsonDir, fileName)
|
||||
lf = fileName.lower()
|
||||
|
||||
|
||||
# Read only translation_XX.json
|
||||
if lf.startswith("translation_") and lf.endswith(".json"):
|
||||
try:
|
||||
@@ -54,15 +54,18 @@ def readTranslations(jsonDir):
|
||||
|
||||
# ...cause they should be the same!
|
||||
if langCode != langCodeFromJson:
|
||||
raise ValueError("Invalid languageCode " + langCodeFromJson + " in file " + fileName)
|
||||
|
||||
raise ValueError("Invalid languageCode " + langCodeFromJson +
|
||||
" in file " + fileName)
|
||||
|
||||
langDict[langCode] = lang
|
||||
|
||||
|
||||
return langDict
|
||||
|
||||
|
||||
def writeStart(f):
|
||||
f.write(to_unicode("""// WARNING: THIS FILE WAS AUTO GENERATED BY make_translation.py. PLEASE DO NOT EDIT.
|
||||
f.write(
|
||||
to_unicode(
|
||||
"""// WARNING: THIS FILE WAS AUTO GENERATED BY make_translation.py. PLEASE DO NOT EDIT.
|
||||
|
||||
#include "Translation.h"
|
||||
#ifndef LANG
|
||||
@@ -75,71 +78,310 @@ def escapeC(s):
|
||||
return s.replace("\"", "\\\"")
|
||||
|
||||
|
||||
def getConstants():
|
||||
# Extra constants that are used in the firmware that are shared across all languages
|
||||
consants =[]
|
||||
consants.append(('SymbolPlus','+'))
|
||||
consants.append(('SymbolMinus','-'))
|
||||
consants.append(('SymbolSpace',' '))
|
||||
consants.append(('SymbolDot','.'))
|
||||
consants.append(('SymbolDegC','C'))
|
||||
consants.append(('SymbolDegF','F'))
|
||||
consants.append(('SymbolMinutes','M'))
|
||||
consants.append(('SymbolSeconds','S'))
|
||||
consants.append(('SymbolWatts','W'))
|
||||
consants.append(('SymbolVolts','V'))
|
||||
consants.append(('SymbolDC','DC'))
|
||||
consants.append(('SymbolCellCount','S'))
|
||||
consants.append(('SymbolVersionNumber','V2.06'))
|
||||
return consants
|
||||
def getTipModelEnumTS80():
|
||||
constants = []
|
||||
constants.append("B02")
|
||||
constants.append("D25")
|
||||
constants.append("TS80") # end of miniware
|
||||
constants.append("User") # User
|
||||
return constants
|
||||
|
||||
def getTipModelEnumTS100():
|
||||
constants = []
|
||||
constants.append("B02")
|
||||
constants.append("D24")
|
||||
constants.append("BC2")
|
||||
constants.append(" C1")
|
||||
constants.append("TS100")# end of miniware
|
||||
constants.append("BC2")
|
||||
constants.append("Hakko")# end of hakko
|
||||
constants.append("User")
|
||||
return constants
|
||||
|
||||
def getDebugMenuHeaders():
|
||||
constants = []
|
||||
constants.append("DateHere")
|
||||
constants.append("Heap: ")
|
||||
constants.append("HWMG: ")
|
||||
constants.append("HWMP: ")
|
||||
constants.append("HWMM: ")
|
||||
constants.append("Time: ")
|
||||
constants.append("Move: ")
|
||||
constants.append("RTip: ")
|
||||
constants.append("CTip: ")
|
||||
constants.append("Vin: ")
|
||||
constants.append("THan: ")
|
||||
constants.append("Model: ")
|
||||
constants.append("Tres: ")
|
||||
return constants
|
||||
|
||||
|
||||
def getLetterCounts(defs, lang):
|
||||
textList = []
|
||||
#iterate over all strings
|
||||
obj = lang['menuOptions']
|
||||
for mod in defs['menuOptions']:
|
||||
eid = mod['id']
|
||||
textList.append(obj[eid]['desc'])
|
||||
|
||||
obj = lang['messages']
|
||||
for mod in defs['messages']:
|
||||
eid = mod['id']
|
||||
if eid not in obj:
|
||||
textList.append(mod['default'])
|
||||
else:
|
||||
textList.append(obj[eid])
|
||||
|
||||
obj = lang['characters']
|
||||
|
||||
for mod in defs['characters']:
|
||||
eid = mod['id']
|
||||
textList.append(obj[eid])
|
||||
|
||||
obj = lang['menuOptions']
|
||||
for mod in defs['menuOptions']:
|
||||
eid = mod['id']
|
||||
if lang['menuDouble']:
|
||||
textList.append(obj[eid]['text2'][0])
|
||||
textList.append(obj[eid]['text2'][1])
|
||||
else:
|
||||
textList.append(obj[eid]['text'])
|
||||
|
||||
obj = lang['menuGroups']
|
||||
for mod in defs['menuGroups']:
|
||||
eid = mod['id']
|
||||
textList.append(obj[eid]['text2'][0])
|
||||
textList.append(obj[eid]['text2'][1])
|
||||
|
||||
obj = lang['menuGroups']
|
||||
for mod in defs['menuGroups']:
|
||||
eid = mod['id']
|
||||
textList.append(obj[eid]['desc'])
|
||||
constants = getConstants()
|
||||
for x in constants:
|
||||
textList.append(x[1])
|
||||
textList.extend(getDebugMenuHeaders())
|
||||
textList.extend(getTipModelEnumTS100())
|
||||
textList.extend(getTipModelEnumTS80())
|
||||
|
||||
# collapse all strings down into the composite letters and store totals for these
|
||||
|
||||
symbolCounts = {}
|
||||
for line in textList:
|
||||
line = line.replace('\n', '').replace('\r', '')
|
||||
line = line.replace('\\n', '').replace('\\r', '')
|
||||
if len(line):
|
||||
#print(line)
|
||||
for letter in line:
|
||||
symbolCounts[letter] = symbolCounts.get(letter, 0) + 1
|
||||
symbolCounts = sorted(
|
||||
symbolCounts.items(),
|
||||
key=lambda kv: kv[1]) # swap to Big -> little sort order
|
||||
symbolCounts = list(map(lambda x: x[0], symbolCounts))
|
||||
symbolCounts.reverse()
|
||||
return symbolCounts
|
||||
|
||||
|
||||
|
||||
def getFontMapAndTable(textList):
|
||||
# the text list is sorted
|
||||
# allocate out these in their order as number codes
|
||||
symbolMap = {}
|
||||
symbolMap['\n'] = '\\x01'
|
||||
index = 2 # start at 2, as 0= null terminator,1 = new line
|
||||
forcedFirstSymbols = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
|
||||
#enforce numbers are first
|
||||
for sym in forcedFirstSymbols:
|
||||
symbolMap[sym] = "\\x%0.2X" % index
|
||||
index = index + 1
|
||||
if len(textList) > (253 - len(forcedFirstSymbols)):
|
||||
print('Error, too many used symbols for this version')
|
||||
exit(1)
|
||||
print('Generating fonts for {} symbols'.format(len(textList)))
|
||||
|
||||
for sym in textList:
|
||||
if sym not in symbolMap:
|
||||
symbolMap[sym] = "\\x%0.2X" % index
|
||||
index = index + 1
|
||||
# Get the font table
|
||||
fontTableStrings = []
|
||||
fontSmallTableStrings = []
|
||||
fontTable = fontTables.getFontMap()
|
||||
fontSmallTable = fontTables.getSmallFontMap()
|
||||
for sym in forcedFirstSymbols:
|
||||
if sym not in fontTable:
|
||||
print('Missing Large font element for {}'.format(sym))
|
||||
exit(1)
|
||||
fontLine = fontTable[sym]
|
||||
fontTableStrings.append(fontLine + "//{} -> {}".format(symbolMap[sym],sym))
|
||||
if sym not in fontSmallTable:
|
||||
print('Missing Small font element for {}'.format(sym))
|
||||
exit(1)
|
||||
fontLine = fontSmallTable[sym]
|
||||
fontSmallTableStrings.append(fontLine + "//{} -> {}".format(symbolMap[sym],sym))
|
||||
|
||||
for sym in textList:
|
||||
if sym not in fontTable:
|
||||
print('Missing Large font element for {}'.format(sym))
|
||||
exit(1)
|
||||
if sym not in forcedFirstSymbols:
|
||||
fontLine = fontTable[sym]
|
||||
fontTableStrings.append(fontLine + "//{} -> {}".format(symbolMap[sym],sym))
|
||||
if sym not in fontSmallTable:
|
||||
print('Missing Small font element for {}'.format(sym))
|
||||
exit(1)
|
||||
fontLine = fontSmallTable[sym]
|
||||
fontSmallTableStrings.append(fontLine + "//{} -> {}".format(symbolMap[sym],sym))
|
||||
outputTable = "const uint8_t USER_FONT_12[] = {" + to_unicode("\n")
|
||||
for line in fontTableStrings:
|
||||
# join font table int one large string
|
||||
outputTable = outputTable + line + to_unicode("\n")
|
||||
outputTable = outputTable + "};" + to_unicode("\n")
|
||||
outputTable = outputTable + "const uint8_t USER_FONT_6x8[] = {" + to_unicode(
|
||||
"\n")
|
||||
for line in fontSmallTableStrings:
|
||||
# join font table int one large string
|
||||
outputTable = outputTable + line + to_unicode("\n")
|
||||
outputTable = outputTable + "};" + to_unicode("\n")
|
||||
return (outputTable, symbolMap)
|
||||
|
||||
|
||||
def convStr(symbolConversionTable, text):
|
||||
# convert all of the symbols from the string into escapes for their content
|
||||
outputString = ""
|
||||
for c in text.replace('\\r', '').replace('\\n','\n'):
|
||||
if c not in symbolConversionTable:
|
||||
print('Missing font definition for {}'.format(c))
|
||||
else:
|
||||
outputString = outputString + symbolConversionTable[c]
|
||||
return outputString
|
||||
|
||||
|
||||
def writeLanguage(languageCode, defs, f):
|
||||
print("Generating block for " + languageCode)
|
||||
lang = langDict[languageCode]
|
||||
|
||||
#Iterate over all of the text to build up the symbols & counts
|
||||
textList = getLetterCounts(defs, lang)
|
||||
# From the letter counts, need to make a symbol translator & write out the font
|
||||
(fontTableText, symbolConversionTable) = getFontMapAndTable(textList)
|
||||
|
||||
f.write(to_unicode("\n#ifdef LANG_" + languageCode + "\n"))
|
||||
f.write(fontTableText)
|
||||
try:
|
||||
langName = lang['languageLocalName']
|
||||
except KeyError:
|
||||
langName = languageCode
|
||||
|
||||
|
||||
f.write(to_unicode("// ---- " + langName + " ----\n\n"))
|
||||
|
||||
try:
|
||||
cyrillic = lang['cyrillicGlyphs']
|
||||
except KeyError:
|
||||
cyrillic = False
|
||||
|
||||
if cyrillic :
|
||||
f.write(to_unicode("#define CYRILLIC_GLYPHS\n\n"))
|
||||
|
||||
# ----- Writing SettingsDescriptions
|
||||
obj = lang['menuOptions']
|
||||
f.write(to_unicode("const char* SettingsDescriptions[] = {\n"))
|
||||
|
||||
|
||||
maxLen = 25
|
||||
for mod in defs['menuOptions']:
|
||||
eid = mod['id']
|
||||
if 'feature' in mod:
|
||||
f.write(to_unicode("#ifdef " + mod['feature'] + "\n"))
|
||||
f.write(to_unicode(" /* " + eid.ljust(maxLen)[:maxLen] + " */ "))
|
||||
f.write(to_unicode("\"" + escapeC(obj[eid]['desc']) + "\",\n"))
|
||||
f.write(
|
||||
to_unicode("\"" +
|
||||
convStr(symbolConversionTable, (obj[eid]['desc'])) +
|
||||
"\"," + "//{} \n".format(obj[eid]['desc'])))
|
||||
if 'feature' in mod:
|
||||
f.write(to_unicode("#endif\n"))
|
||||
|
||||
f.write(to_unicode("};\n\n"))
|
||||
|
||||
|
||||
# ----- Writing Message strings
|
||||
|
||||
|
||||
obj = lang['messages']
|
||||
|
||||
|
||||
for mod in defs['messages']:
|
||||
eid = mod['id']
|
||||
f.write(to_unicode("const char* " + eid + " = \"" + escapeC(obj[eid]) + "\";\n"))
|
||||
if eid not in obj:
|
||||
f.write(
|
||||
to_unicode("const char* " + eid + " = \"" +
|
||||
convStr(symbolConversionTable, (mod['default'])) + "\";"+ "//{} \n".format(mod['default'])))
|
||||
else:
|
||||
f.write(
|
||||
to_unicode("const char* " + eid + " = \"" +
|
||||
convStr(symbolConversionTable, (obj[eid])) + "\";"+ "//{} \n".format(obj[eid])))
|
||||
|
||||
f.write(to_unicode("\n"))
|
||||
|
||||
# ----- Writing Characters
|
||||
|
||||
|
||||
obj = lang['characters']
|
||||
|
||||
|
||||
for mod in defs['characters']:
|
||||
eid = mod['id']
|
||||
f.write(to_unicode("const char " + eid + " = '" + obj[eid] + "';\n"))
|
||||
f.write(
|
||||
to_unicode("const char* " + eid + " = \"" +
|
||||
convStr(symbolConversionTable, obj[eid]) + "\";"+ "//{} \n".format(obj[eid])))
|
||||
|
||||
f.write(to_unicode("\n"))
|
||||
|
||||
# Write out firmware constant options
|
||||
constants = getConstants()
|
||||
for x in constants:
|
||||
f.write(
|
||||
to_unicode("const char* " + x[0] + " = \"" +
|
||||
convStr(symbolConversionTable, x[1]) + "\";"+ "//{} \n".format(x[1])))
|
||||
|
||||
f.write(to_unicode("\n"))
|
||||
# Write out tip model strings
|
||||
|
||||
f.write(to_unicode("const char* TipModelStrings[] = {\n"))
|
||||
f.write(to_unicode("#ifdef MODEL_TS100\n"))
|
||||
for c in getTipModelEnumTS100():
|
||||
f.write(to_unicode("\t \"" + convStr(symbolConversionTable, c) + "\","+ "//{} \n".format(c)))
|
||||
f.write(to_unicode("#else\n"))
|
||||
for c in getTipModelEnumTS80():
|
||||
f.write(to_unicode("\t \"" + convStr(symbolConversionTable, c) + "\","+ "//{} \n".format(c)))
|
||||
f.write(to_unicode("#endif\n"))
|
||||
|
||||
f.write(to_unicode("};\n\n"))
|
||||
|
||||
# -- Debugging Menu
|
||||
|
||||
|
||||
|
||||
f.write(to_unicode("const char* DebugMenu[] = {\n"))
|
||||
for c in getDebugMenuHeaders():
|
||||
f.write(to_unicode("\t \"" + convStr(symbolConversionTable, c) + "\","+ "//{} \n".format(c)))
|
||||
f.write(to_unicode("};\n\n"))
|
||||
|
||||
# ----- Menu Options
|
||||
|
||||
# Menu type
|
||||
f.write(to_unicode("const enum ShortNameType SettingsShortNameType = SHORT_NAME_" + ("DOUBLE" if lang['menuDouble'] else "SINGLE") + "_LINE;\n"))
|
||||
f.write(
|
||||
to_unicode(
|
||||
"const enum ShortNameType SettingsShortNameType = SHORT_NAME_" +
|
||||
("DOUBLE" if lang['menuDouble'] else "SINGLE") + "_LINE;\n"))
|
||||
|
||||
# ----- Writing SettingsDescriptions
|
||||
obj = lang['menuOptions']
|
||||
f.write(to_unicode("const char* SettingsShortNames[][2] = {\n"))
|
||||
|
||||
|
||||
maxLen = 25
|
||||
for mod in defs['menuOptions']:
|
||||
eid = mod['id']
|
||||
@@ -147,39 +389,58 @@ def writeLanguage(languageCode, defs, f):
|
||||
f.write(to_unicode("#ifdef " + mod['feature'] + "\n"))
|
||||
f.write(to_unicode(" /* " + eid.ljust(maxLen)[:maxLen] + " */ "))
|
||||
if lang['menuDouble']:
|
||||
f.write(to_unicode("{ \"" + escapeC(obj[eid]['text2'][0]) + "\", \"" + escapeC(obj[eid]['text2'][1]) + "\" },\n"))
|
||||
f.write(
|
||||
to_unicode(
|
||||
"{ \"" +
|
||||
convStr(symbolConversionTable, (obj[eid]['text2'][0])) +
|
||||
"\", \"" +
|
||||
convStr(symbolConversionTable, (obj[eid]['text2'][1])) +
|
||||
"\" },"+ "//{} \n".format(obj[eid]['text2'])))
|
||||
else:
|
||||
f.write(to_unicode("{ \"" + escapeC(obj[eid]['text']) + "\" },\n"))
|
||||
f.write(
|
||||
to_unicode("{ \"" +
|
||||
convStr(symbolConversionTable, (obj[eid]['text'])) +
|
||||
"\" },"+ "//{} \n".format(obj[eid]['text'])))
|
||||
if 'feature' in mod:
|
||||
f.write(to_unicode("#endif\n"))
|
||||
|
||||
|
||||
f.write(to_unicode("};\n\n"))
|
||||
|
||||
# ----- Writing Menu Groups
|
||||
obj = lang['menuGroups']
|
||||
f.write(to_unicode("const char* SettingsMenuEntries[" + str(len(obj)) + "] = {\n"))
|
||||
|
||||
f.write(
|
||||
to_unicode("const char* SettingsMenuEntries[" + str(len(obj)) +
|
||||
"] = {\n"))
|
||||
|
||||
maxLen = 25
|
||||
for mod in defs['menuGroups']:
|
||||
eid = mod['id']
|
||||
f.write(to_unicode(" /* " + eid.ljust(maxLen)[:maxLen] + " */ "))
|
||||
f.write(to_unicode("\"" + escapeC(obj[eid]['text2'][0] + "\\n" + obj[eid]['text2'][1]) + "\",\n"))
|
||||
|
||||
f.write(
|
||||
to_unicode("\"" +
|
||||
convStr(symbolConversionTable, (obj[eid]['text2'][0]) +
|
||||
"\\n" + obj[eid]['text2'][1]) + "\","+ "//{} \n".format(obj[eid]['text2'])))
|
||||
|
||||
f.write(to_unicode("};\n\n"))
|
||||
|
||||
# ----- Writing Menu Groups Descriptions
|
||||
obj = lang['menuGroups']
|
||||
f.write(to_unicode("const char* SettingsMenuEntriesDescriptions[" + str(len(obj)) + "] = {\n"))
|
||||
|
||||
f.write(
|
||||
to_unicode("const char* SettingsMenuEntriesDescriptions[" +
|
||||
str(len(obj)) + "] = {\n"))
|
||||
|
||||
maxLen = 25
|
||||
for mod in defs['menuGroups']:
|
||||
eid = mod['id']
|
||||
f.write(to_unicode(" /* " + eid.ljust(maxLen)[:maxLen] + " */ "))
|
||||
f.write(to_unicode("\"" + escapeC(obj[eid]['desc']) + "\",\n"))
|
||||
|
||||
f.write(
|
||||
to_unicode("\"" +
|
||||
convStr(symbolConversionTable, (obj[eid]['desc'])) +
|
||||
"\","+ "//{} \n".format(obj[eid]['desc'])))
|
||||
|
||||
f.write(to_unicode("};\n\n"))
|
||||
|
||||
# ----- Block end
|
||||
# ----- Block end
|
||||
f.write(to_unicode("#endif\n"))
|
||||
|
||||
|
||||
@@ -218,7 +479,7 @@ def orderOutput(langDict):
|
||||
mandatoryOrder.append(key)
|
||||
|
||||
return mandatoryOrder
|
||||
|
||||
|
||||
|
||||
def writeTarget(outFile, defs, langCodes):
|
||||
# Start writing the file
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "ВРЪХ ЛОША ВРЪЗКА",
|
||||
"SolderingAdvancedPowerPrompt": "Захранване: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Cíl:",
|
||||
"TipDisconnectedString": "HROT NEPŘIPOJEN",
|
||||
"SolderingAdvancedPowerPrompt": "Ohřev: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "P",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "TIP DISCONNECTED",
|
||||
"SolderingAdvancedPowerPrompt": "Power: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "H",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Soll:",
|
||||
"TipDisconnectedString": "Spitze fehlt",
|
||||
"SolderingAdvancedPowerPrompt": "Leistung: ",
|
||||
"OffString": "Aus"
|
||||
"OffString": "Aus",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "TIP DISCONNECTED",
|
||||
"SolderingAdvancedPowerPrompt": "Power: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK",
|
||||
"YourGainMessage":"Your Gain:"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Aj:",
|
||||
"TipDisconnectedString": "SIN PUNTA",
|
||||
"SolderingAdvancedPowerPrompt": "POTENCIA: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Asetus:",
|
||||
"TipDisconnectedString": "KÄRKI ON IRTI",
|
||||
"SolderingAdvancedPowerPrompt": "Teho: ",
|
||||
"OffString": "OFF"
|
||||
"OffString": "OFF",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "O",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "PANNE DÉBRANCHÉE",
|
||||
"SolderingAdvancedPowerPrompt": "Puissance: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " / ",
|
||||
"TipDisconnectedString": "VRH NIJE SPOJEN!",
|
||||
"SolderingAdvancedPowerPrompt": "Snaga: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Cél:",
|
||||
"TipDisconnectedString": "HEGY LEVÉVE",
|
||||
"SolderingAdvancedPowerPrompt": "Telj: ",
|
||||
"OffString": "Ki"
|
||||
"OffString": "Ki",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "J",
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
"WarningSimpleString": "HOT!",
|
||||
"WarningAdvancedString": "PUNTA CALDA!",
|
||||
"SleepingTipAdvancedString": "Punta:",
|
||||
"IdleTipString": "Punta:",
|
||||
"IdleTipString": "T punta:",
|
||||
"IdleSetString": "/",
|
||||
"TipDisconnectedString": "PUNTA ASSENTE",
|
||||
"SolderingAdvancedPowerPrompt": "Potenza:",
|
||||
"OffString": "OFF"
|
||||
"SolderingAdvancedPowerPrompt": "Potenz:",
|
||||
"OffString": "OFF",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
@@ -112,10 +113,10 @@
|
||||
"AdvancedIdle": {
|
||||
"text": "",
|
||||
"text2": [
|
||||
"Mostra",
|
||||
"dettagli"
|
||||
"Interfaccia",
|
||||
"testuale"
|
||||
],
|
||||
"desc": "Mostra informazioni dettagliate con un carattere più piccolo all'interno della schermata principale"
|
||||
"desc": "Mostra informazioni dettagliate all'interno della schermata principale"
|
||||
},
|
||||
"DisplayRotation": {
|
||||
"text": "",
|
||||
@@ -131,7 +132,7 @@
|
||||
"Funzione",
|
||||
"«Turbo»"
|
||||
],
|
||||
"desc": "Il tasto superiore attiva la funzione «Turbo» durante la modalità Saldatura"
|
||||
"desc": "Attiva la funzione «Turbo», durante la modalità Saldatura, tenendo premuto il tasto superiore"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"text": "",
|
||||
@@ -201,7 +202,7 @@
|
||||
"text": "TIPMO",
|
||||
"text2": [
|
||||
"Modello",
|
||||
"della punta"
|
||||
"punta"
|
||||
],
|
||||
"desc": "Seleziona il modello della punta in uso"
|
||||
},
|
||||
@@ -227,7 +228,7 @@
|
||||
"Potenza",
|
||||
"alimentaz"
|
||||
],
|
||||
"desc": "Imposta la potenza dell'alimentatore in uso"
|
||||
"desc": "Imposta la potenza massima erogabile dall'alimentatore in uso"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Nust:",
|
||||
"TipDisconnectedString": "ANTGAL ATJUNGTAS",
|
||||
"SolderingAdvancedPowerPrompt": "Maitinimas: ",
|
||||
"OffString": "Išj"
|
||||
"OffString": "Išj",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "TIP LOSGEKOPPELD",
|
||||
"SolderingAdvancedPowerPrompt": "vermogen: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": "Stel in:",
|
||||
"TipDisconnectedString": "Punt ONTKOPPELD",
|
||||
"SolderingAdvancedPowerPrompt": "Vermogen: ",
|
||||
"OffString": "Uit"
|
||||
"OffString": "Uit",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": "Set:",
|
||||
"TipDisconnectedString": "SPISS FRAKOBLET",
|
||||
"SolderingAdvancedPowerPrompt": "Effekt: ",
|
||||
"OffString": "Av"
|
||||
"OffString": "Av",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "H",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Ustaw:",
|
||||
"TipDisconnectedString": "GROT ODŁĄCZONY",
|
||||
"SolderingAdvancedPowerPrompt": "Power: ",
|
||||
"OffString": "Wyłącz"
|
||||
"OffString": "Wyłącz",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "P",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Aj:",
|
||||
"TipDisconnectedString": "SEM PONTA",
|
||||
"SolderingAdvancedPowerPrompt": "Power: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " ->",
|
||||
"TipDisconnectedString": "Жало отключено",
|
||||
"SolderingAdvancedPowerPrompt": "Питание: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "П",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "TIP DISCONNECTED",
|
||||
"SolderingAdvancedPowerPrompt": "Power: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " / ",
|
||||
"TipDisconnectedString": "ВРХ НИЈЕ СПОЈЕН",
|
||||
"SolderingAdvancedPowerPrompt": "Снага: ",
|
||||
"OffString": "Иск"
|
||||
"OffString": "Иск",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "Д",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " / ",
|
||||
"TipDisconnectedString": "VRH NIJE SPOJEN",
|
||||
"SolderingAdvancedPowerPrompt": "Snaga: ",
|
||||
"OffString": "Isk"
|
||||
"OffString": "Isk",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "D",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Ange:",
|
||||
"TipDisconnectedString": "SPETS URTAGEN",
|
||||
"SolderingAdvancedPowerPrompt": "Ström: ",
|
||||
"OffString": "Av"
|
||||
"OffString": "Av",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "H",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " Set:",
|
||||
"TipDisconnectedString": "TIP DISCONNECTED",
|
||||
"SolderingAdvancedPowerPrompt": "Power: ",
|
||||
"OffString": "Off"
|
||||
"OffString": "Off",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"IdleSetString": " ->",
|
||||
"TipDisconnectedString": "Жало вимкнено!",
|
||||
"SolderingAdvancedPowerPrompt": "Живлення: ",
|
||||
"OffString": "Вим"
|
||||
"OffString": "Вим",
|
||||
"ResetOKMessage":"Reset OK"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -80,6 +80,15 @@ var def =
|
||||
{
|
||||
"id": "OffString",
|
||||
"maxLen": 3
|
||||
},
|
||||
{
|
||||
"id": "ResetOKMessage",
|
||||
"maxLen": 8
|
||||
},
|
||||
{
|
||||
"id": "YourGainMessage",
|
||||
"maxLen": 8,
|
||||
"default":"Your Gain"
|
||||
}
|
||||
],
|
||||
"characters": [
|
||||
|
||||
77
menu.md
Normal file
77
menu.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Menu System
|
||||
|
||||
|
||||
## Soldering mode
|
||||
|
||||
In this mode the iron works as you would expect, pressing either button will take you to a temperature change screen.
|
||||
Use each button to go up and down in temperature. Pressing both buttons will exit you from the temperature menu (or wait 3 seconds and it will time out).
|
||||
Pressing both buttons or holding the button near the USB will exit the soldering mode.
|
||||
Holding the button at the front of the iron will enter boost mode (if enabled).
|
||||
|
||||
## Settings Menu
|
||||
|
||||
This menu allows you to cycle through all the options and set their values.
|
||||
The button near the USB cycles through the options, and the one near the tip changes the selected option.
|
||||
Note that settings are not saved until you exit the menu.
|
||||
If you leave the unit alone (ie don't press any buttons) on a setting, after 3 seconds the screen will scroll a rough description of the setting.
|
||||
|
||||
The menu is arranged so that the most often used settings are first.
|
||||
With submenu's being selected to enter using the front button (as if you were going to change the setting).
|
||||
Scrolling through the submenu will return you back to its entry location after you scroll through all of the options.
|
||||
|
||||
### Calibrating input voltage
|
||||
|
||||
Due to the tolerance on the resistors used for the input voltage divider, some irons can be up to 0.6V out on the voltage measurement.
|
||||
Please calibrate your iron if you have any issues with the cutoff voltage.
|
||||
Note that cutoff messages can also be triggered by using a power supply that is too weak and fails under the load of the iron.
|
||||
This is more critical than before with the new cell count based cutout voltage.
|
||||
|
||||
To calibrate your Iron:
|
||||
|
||||
1. Measure the input voltage with a multimeter and note it down.
|
||||
2. Connect the input to your iron.
|
||||
3. Enter the settings menu
|
||||
4. Under the advanced submenu
|
||||
5. Select the calibrate voltage option
|
||||
6. Use the front and back buttons to adjust the displayed voltage to minimize the error to your original measurement
|
||||
7. Hold both buttons to save and exit to the menu
|
||||
|
||||
### Tip Model Selection
|
||||
|
||||
The menu now lets you select which tip you are using with your iron. This lets the unit know which gain value to use for your tip, this varies slightly between models and can help with temperature accuracy.
|
||||
There is also an option for a *custom* tip. This basically means that you will tune the tip parameters yourself.
|
||||
|
||||
### Calibrating tip offset (Set tip model)
|
||||
|
||||
Some tips will have an offset on their readings, to calibrate this out perform the following steps:
|
||||
|
||||
1. Connect power to your iron
|
||||
2. Make sure the tip is at room temperature (ie. wait for a fair while after using the iron before calibration)
|
||||
3. Enter the settings menu
|
||||
4. Scroll down to the advanced menu, and then the temperature calibration
|
||||
5. Press the button to change the option (tip button)
|
||||
6. The display will start to scroll a warning message to check that the tip is at ambient temperature!
|
||||
7. Press the button near the tip of the iron to confirm.
|
||||
8. The display will go to "...." for a short period of time as the unit measures the tip temperature and the handle temperature and compares them
|
||||
9. The display will then go back to *TMP CAL*
|
||||
10. Calibration is done, just exit the settings menu as normal
|
||||
11. You're done. Enjoy your iron.
|
||||
|
||||
### Calibration of custom tip
|
||||
|
||||
There are two methods to calibrate the tip, the simple mode which requires boiling water, and an advanced mode that requires a method of measuring the actual tip of the tip.
|
||||
|
||||
Advanced mode is preffered.
|
||||
|
||||
In simple mode you first need to have the tip at room temperature to start, and then when promped place the tip into a cup of boiling water, wait a few seconds and then press a button to confirm.
|
||||
|
||||
In advanced mode, follow instructions on the screen, you will need to adjust the ranges to find two calibration points by measuing the tip temperature directly. This tends to be significantly more accurate.
|
||||
|
||||
If you do calibrate your own values for a tip because its missing from the menu or because you think the one in the menu is really wrong, raise an issue on github and I'm happy to look at adding it or revising the existing settings.
|
||||
|
||||
|
||||
### Boost mode
|
||||
|
||||
This allows you to change the front key (one near the tip) to become a boost button when you hold it for > 2 seconds. This allows you to set this button to change the soldering temperature for short periods. For example when soldering a big joint and you want to boost the temperature a bit.
|
||||
|
||||
The boost temperature is set in the settings menu.
|
||||
@@ -35,14 +35,14 @@ HEXFILE_DIR=Hexfile
|
||||
OUTPUT_DIR=Objects
|
||||
|
||||
# code optimisation ------------------------------------------------------------
|
||||
OPTIM=-Os -flto -finline-small-functions -findirect-inlining -fdiagnostics-color -ffunction-sections -fdata-sections
|
||||
OPTIM=-Os -flto -ffat-lto-objects -finline-small-functions -findirect-inlining -fdiagnostics-color -ffunction-sections -fdata-sections
|
||||
|
||||
|
||||
# global defines ---------------------------------------------------------------
|
||||
GLOBAL_DEFINES += -D STM32F103T8Ux -D STM32F1 -D STM32 -D USE_HAL_DRIVER -D STM32F103xB -D USE_RTOS_SYSTICK -D LANG_$(lang) -D LANG -D MODEL_$(model)
|
||||
|
||||
# Enable debug code generation
|
||||
DEBUG=-g
|
||||
DEBUG=-g3
|
||||
# Without debug code
|
||||
#DEBUG=
|
||||
|
||||
@@ -55,14 +55,17 @@ LDSCRIPT=LinkerScript.ld
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
COMPILER=gcc
|
||||
# arm-none is the general ARM compiler,
|
||||
# arm-atollic is the atollic customised compilers if you have them setup
|
||||
COMPILER_PREFIX=arm-none
|
||||
# programs ---------------------------------------------------------------------
|
||||
CC=arm-none-eabi-gcc
|
||||
CPP=arm-none-eabi-g++
|
||||
AS=arm-none-eabi-as
|
||||
GCOV=arm-none-eabi-gcov
|
||||
OBJCOPY=arm-none-eabi-objcopy
|
||||
OBJDUMP=arm-none-eabi-objdump
|
||||
SIZE=arm-none-eabi-size
|
||||
CC=$(COMPILER_PREFIX)-eabi-gcc
|
||||
CPP=$(COMPILER_PREFIX)-eabi-g++
|
||||
AS=$(COMPILER_PREFIX)-eabi-as
|
||||
GCOV=$(COMPILER_PREFIX)-eabi-gcov
|
||||
OBJCOPY=$(COMPILER_PREFIX)-eabi-objcopy
|
||||
OBJDUMP=$(COMPILER_PREFIX)-eabi-objdump
|
||||
SIZE=$(COMPILER_PREFIX)-eabi-size
|
||||
SREC=srec_cat
|
||||
SREC_INFO=srec_info
|
||||
|
||||
@@ -76,7 +79,8 @@ LINKER_FLAGS=-Wl,--gc-sections \
|
||||
-mcpu=cortex-m3 \
|
||||
-mthumb \
|
||||
-mfloat-abi=soft \
|
||||
-lm -Os -flto -Wl,--undefined=vTaskSwitchContext
|
||||
-lm -Os -flto -Wl,--undefined=vTaskSwitchContext \
|
||||
--specs=nano.specs
|
||||
|
||||
# compiler flags ---------------------------------------------------------------
|
||||
CPUFLAGS=-D GCC_ARMCM3 \
|
||||
|
||||
@@ -61,7 +61,7 @@ do
|
||||
usage
|
||||
;;
|
||||
l)
|
||||
LANGUAGE=${OPTARG}
|
||||
LANGUAGEREQ=${OPTARG}
|
||||
;;
|
||||
m)
|
||||
MODEL=${OPTARG}
|
||||
@@ -92,14 +92,14 @@ done
|
||||
echo "Available languages :"
|
||||
echo " ${AVAILABLE_LANGUAGES[*]}"
|
||||
echo "Requested languages :"
|
||||
if [ -n "$LANGUAGE" ]
|
||||
if [ -n "$LANGUAGEREQ" ]
|
||||
then
|
||||
if isInArray "$LANGUAGE" "${AVAILABLE_LANGUAGES[@]}"
|
||||
if isInArray "$LANGUAGEREQ" "${AVAILABLE_LANGUAGES[@]}"
|
||||
then
|
||||
echo " $LANGUAGE"
|
||||
BUILD_LANGUAGES+=("$LANGUAGE")
|
||||
echo " $LANGUAGEREQ"
|
||||
BUILD_LANGUAGES+=("$LANGUAGEREQ")
|
||||
else
|
||||
echo " $LANGUAGE doesn't exist"
|
||||
echo " $LANGUAGEREQ doesn't exist"
|
||||
forceExit
|
||||
fi
|
||||
else
|
||||
@@ -131,7 +131,7 @@ echo "*********************************************"
|
||||
if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]
|
||||
then
|
||||
echo "Generating Translation.cpp"
|
||||
python "$TRANSLATION_DIR/$TRANSLATION_SCRIPT" "$TRANSLATION_DIR" 1>/dev/null
|
||||
python3 "$TRANSLATION_DIR/$TRANSLATION_SCRIPT" "$TRANSLATION_DIR"
|
||||
checkLastCommand
|
||||
|
||||
echo "Cleaning previous builds"
|
||||
|
||||
@@ -10,469 +10,10 @@
|
||||
#ifndef FONT_H_
|
||||
#define FONT_H_
|
||||
#include "Translation.h"
|
||||
#ifdef LANG_RU
|
||||
#ifndef CYRILLIC_GLYPHS
|
||||
#define CYRILLIC_GLYPHS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define FONT_12_WIDTH 12
|
||||
// FONTS ARE NO LONGER HERE, MOVED TO PYTHON AUTO GEN
|
||||
|
||||
/*
|
||||
* Remember screen is LSB at the top, MSB at the bottom of the strip!
|
||||
*/
|
||||
const uint8_t FONT_12[]={
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // blank
|
||||
0x00,0x00,0x00,0x00,0x7C,0xFF,0xFF,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00, // !
|
||||
0x00,0x00,0x00,0x3C,0x3C,0x00,0x00,0x3C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // "
|
||||
0x00,0x00,0x10,0x90,0xF0,0x7E,0x1E,0x90,0xF0,0x7E,0x1E,0x10,0x00,0x02,0x1E,0x1F,0x03,0x02,0x1E,0x1F,0x03,0x02,0x00,0x00, // #
|
||||
0x00,0x00,0x78,0xFC,0xCC,0xFF,0xFF,0xCC,0xCC,0x88,0x00,0x00,0x00,0x00,0x04,0x0C,0x0C,0x3F,0x3F,0x0C,0x0F,0x07,0x00,0x00, // $
|
||||
0x00,0x00,0x38,0x38,0x38,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x00,0x30,0x38,0x1C,0x0E,0x07,0x03,0x01,0x38,0x38,0x38,0x00, // %
|
||||
0x00,0x00,0x00,0xB8,0xFC,0xC6,0xE2,0x3E,0x1C,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x31,0x21,0x37,0x1E,0x1C,0x36,0x22,0x00, // &
|
||||
0x00,0x00,0x00,0x00,0x27,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
|
||||
0x00,0x00,0x00,0xF0,0xFC,0xFE,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x38,0x20,0x20,0x00,0x00,0x00, // (
|
||||
0x00,0x00,0x00,0x01,0x01,0x07,0xFE,0xFC,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x38,0x1F,0x0F,0x03,0x00,0x00,0x00, // )
|
||||
0x00,0x00,0x98,0xB8,0xE0,0xF8,0xF8,0xE0,0xB8,0x98,0x00,0x00,0x00,0x00,0x0C,0x0E,0x03,0x0F,0x0F,0x03,0x0E,0x0C,0x00,0x00, // *
|
||||
0x00,0x00,0x80,0x80,0x80,0xF0,0xF0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F,0x0F,0x01,0x01,0x01,0x00,0x00, // +
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0xF8,0x78,0x00,0x00,0x00,0x00,0x00, // ,
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, // -
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00, // .
|
||||
0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x00,0x18,0x1C,0x0E,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00, // /
|
||||
//V16
|
||||
0x00,0xF8,0xFE,0x06,0x03,0x83,0xC3,0x63,0x33,0x1E,0xFE,0xF8,0x00,0x07,0x1F,0x1E,0x33,0x31,0x30,0x30,0x30,0x18,0x1F,0x07, // 0
|
||||
0x00,0x00,0x00,0x0C,0x0C,0x0E,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x3F,0x3F,0x30,0x30,0x30,0x00, // 1
|
||||
0x00,0x1C,0x1E,0x07,0x03,0x03,0x83,0xC3,0xE3,0x77,0x3E,0x1C,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x30, // 2
|
||||
0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0x7E,0x3C,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0E, // 3
|
||||
0x00,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x07,0xFF,0xFF,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x03,0x03, // 4
|
||||
0x00,0x3F,0x7F,0x63,0x63,0x63,0x63,0x63,0x63,0xE3,0xC3,0x83,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F, // 5
|
||||
0x00,0xC0,0xF0,0xF8,0xDC,0xCE,0xC7,0xC3,0xC3,0xC3,0x80,0x00,0x00,0x0F,0x1F,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F, // 6
|
||||
0x00,0x03,0x03,0x03,0x03,0x03,0x03,0xC3,0xF3,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x30,0x3C,0x0F,0x03,0x00,0x00,0x00,0x00, // 7
|
||||
0x00,0x00,0xBC,0xFE,0xE7,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x0F,0x1F,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F, // 8
|
||||
0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xFC,0x00,0x00,0x00,0x30,0x30,0x30,0x38,0x1C,0x0E,0x07,0x03,0x00, // 9
|
||||
0x00,0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00, // :
|
||||
0x00,0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9C,0xFC,0x7C,0x00,0x00,0x00,0x00,0x00, // ;
|
||||
0x00,0x00,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00,0x00, // <
|
||||
0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00, // =
|
||||
0x00,0x00,0x03,0x07,0x0E,0x1C,0x38,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x30,0x38,0x1C,0x0E,0x07,0x03,0x01,0x00,0x00,0x00, // >
|
||||
0x00,0x1C,0x1E,0x07,0x03,0x83,0xC3,0xE3,0x77,0x3E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x37,0x00,0x00,0x00,0x00,0x00, // ?
|
||||
//V 32
|
||||
0x00,0xF8,0xFE,0x07,0xF3,0xFB,0x1B,0xFB,0xFB,0x07,0xFE,0xF8,0x00,0x0F,0x1F,0x18,0x33,0x37,0x36,0x37,0x37,0x36,0x03,0x01, // @
|
||||
0x00,0x00,0x00,0xE0,0xFC,0x1F,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00, // A
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // B
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x0E,0x0C,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // C
|
||||
0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // D
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // E
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // F
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0xC3,0xC3,0xC3,0xC7,0xC6,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00, // G
|
||||
0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // H
|
||||
0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // I
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // J
|
||||
0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00, // K
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // L
|
||||
0x00,0xFF,0xFF,0x1E,0x78,0xE0,0xE0,0x78,0x1E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x01,0x00,0x00,0x3F,0x3F,0x00, // M
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF0,0xC0,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00, // N
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // O
|
||||
//V 48
|
||||
0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, // P
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x36,0x3E,0x1C,0x3F,0x33,0x00, // Q
|
||||
0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00, // R
|
||||
0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC7,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // S
|
||||
0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // T
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // U
|
||||
0x00,0x07,0x3F,0xF8,0xC0,0x00,0x00,0xC0,0xF8,0x3F,0x07,0x00,0x00,0x00,0x00,0x01,0x0F,0x3E,0x3E,0x0F,0x01,0x00,0x00,0x00, // V
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x80,0x80,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x06,0x03,0x03,0x06,0x1C,0x3F,0x3F,0x00, // W
|
||||
0x00,0x03,0x0F,0x1C,0x30,0xE0,0xE0,0x30,0x1C,0x0F,0x03,0x00,0x00,0x30,0x3C,0x0E,0x03,0x01,0x01,0x03,0x0E,0x3C,0x30,0x00, // X
|
||||
0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Y
|
||||
0x00,0x03,0x03,0x03,0x03,0xC3,0xE3,0x33,0x1F,0x0F,0x03,0x00,0x00,0x30,0x3C,0x3E,0x33,0x31,0x30,0x30,0x30,0x30,0x30,0x00, // Z
|
||||
0x00,0x00,0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00, // [
|
||||
0x00,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x18, // backslash
|
||||
0x00,0x00,0x00,0x03,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00,0x00,0x00, // ]
|
||||
0x00,0x60,0x70,0x38,0x1C,0x0E,0x07,0x0E,0x1C,0x38,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, // _
|
||||
//V64
|
||||
0x00,0x00,0x00,0x00,0x00,0x3E,0x7E,0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // `
|
||||
0x00,0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // a
|
||||
0x00,0xFF,0xFF,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // b
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // c
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xC0,0xFF,0xFF,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00, // d
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // e
|
||||
0x00,0xC0,0xC0,0xFC,0xFE,0xC7,0xC3,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // f
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // g
|
||||
0x00,0xFF,0xFF,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00, // h
|
||||
0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // i
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00, // j
|
||||
0x00,0x00,0xFF,0xFF,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x07,0x0F,0x1C,0x38,0x30,0x00,0x00, // k
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // l
|
||||
0x00,0xE0,0xC0,0xE0,0xE0,0xC0,0xC0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x00, // m
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // n
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // o
|
||||
//V80
|
||||
0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x0C,0x18,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00, // p
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0xFF,0xFF,0x00, // q
|
||||
0x00,0x00,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // r
|
||||
0x00,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // s
|
||||
0x00,0x60,0x60,0xFE,0xFE,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00, // t
|
||||
0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // u
|
||||
0x00,0x60,0xE0,0x80,0x00,0x00,0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,0x01,0x07,0x1E,0x38,0x38,0x1E,0x07,0x01,0x00,0x00, // v
|
||||
0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x07,0x1F,0x38,0x1C,0x0F,0x0F,0x1C,0x38,0x1F,0x07,0x00, // w
|
||||
0x00,0x60,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x30,0x38,0x1D,0x0F,0x07,0x0F,0x1D,0x38,0x30,0x00,0x00, // x
|
||||
0x00,0x00,0x60,0xE0,0x80,0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // y
|
||||
0x00,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // z
|
||||
0x00,0x00,0x80,0xC0,0xFC,0x7E,0x07,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x1F,0x3F,0x70,0x60,0x60,0x60,0x00,0x00, // {
|
||||
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // |
|
||||
0x00,0x00,0x03,0x03,0x03,0x07,0x7E,0xFC,0xC0,0x80,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x70,0x3F,0x1F,0x01,0x00,0x00,0x00, // }
|
||||
0x00,0x10,0x18,0x0C,0x04,0x0C,0x18,0x10,0x18,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~
|
||||
0x00,0x00,0x80,0xC0,0x60,0x30,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x0F,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0F,0x0F,0x00, // Up triangle
|
||||
|
||||
/*Start extended Latin range*/
|
||||
//V96 ---- HALF-PAGE U+00A0-U+00BF (UTF 0xC2A0-0xC2BF) ----
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 a0
|
||||
0x00,0x00,0x00,0x00,0x80,0xF3,0xF3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00, // ¡ c2 a1
|
||||
0x00,0x00,0xE0,0xF0,0x38,0xFE,0xFE,0x18,0x38,0x30,0x00,0x00,0x00,0x00,0x03,0x07,0x0E,0x3F,0x3F,0x0C,0x0E,0x06,0x00,0x00, // ¢ c2 a2
|
||||
0x00,0x00,0x00,0x80,0xF8,0xFC,0x8C,0x8C,0x1C,0x18,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x0B,0x18,0x18,0x18,0x18,0x08,0x00, // £ c2 a3
|
||||
0x00,0xF6,0xFE,0x18,0x0C,0x0C,0x0C,0x0C,0x18,0xFE,0xF6,0x00,0x00,0x1B,0x1F,0x06,0x0C,0x0C,0x0C,0x0C,0x06,0x1F,0x1B,0x00, // ¤ c2 a4
|
||||
0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,0x0A,0x0A,0x0A,0x3F,0x3F,0x0A,0x0A,0x0A,0x00,0x00, // ¥ c2 a5
|
||||
0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // ¦ c2 a6
|
||||
0x00,0x00,0xDC,0xFE,0x22,0x22,0x22,0x22,0xE6,0xC4,0x00,0x00,0x00,0x00,0x08,0x19,0x11,0x11,0x11,0x11,0x1F,0x0E,0x00,0x00, // § c2 a7
|
||||
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ¨ c2 a8
|
||||
0x00,0xF0,0xF8,0x1C,0xCC,0xEC,0x2C,0x6C,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x19,0x1B,0x1A,0x1B,0x19,0x1C,0x0F,0x07, // © c2 a9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 aa
|
||||
0x00,0x80,0xC0,0x60,0x20,0x00,0x80,0xC0,0x60,0x20,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x00,0x00,0x01,0x03,0x02,0x00,0x00, // « c2 ab
|
||||
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00, // ¬ c2 ac
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 ad
|
||||
0x00,0xF0,0xF8,0x1C,0xEC,0xEC,0xAC,0xEC,0x4C,0x1C,0xF8,0xF0,0x00,0x07,0x0F,0x1C,0x1B,0x1B,0x18,0x1B,0x1B,0x1C,0x0F,0x07, // ® c2 ae
|
||||
0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ¯ c2 af
|
||||
//V112
|
||||
0x00,0x00,0x00,0x1E,0x3F,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ° c2 b0
|
||||
0x00,0x00,0x00,0xC0,0xC0,0xF0,0xF0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1B,0x1B,0x18,0x18,0x00,0x00,0x00, // ± c2 b1
|
||||
0x00,0x00,0x19,0x1D,0x15,0x17,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ² c2 b2
|
||||
0x00,0x00,0x11,0x15,0x15,0x1F,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ³ c2 b3
|
||||
0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ´ c2 b4
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0xFF,0xFF,0x0E,0x0C,0x0C,0x0C,0x06,0x0F,0x0F,0x00,0x00, // µ c2 b5
|
||||
0x00,0x38,0x7C,0xC6,0x82,0xFE,0xFE,0x02,0xFE,0xFE,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x3F,0x3F,0x00,0x00, // ¶ c2 b6
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 b7
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 b8
|
||||
0x00,0x00,0x12,0x1F,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ¹ c2 b9
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c2 ba
|
||||
0x00,0x20,0x60,0xC0,0x80,0x00,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x00, // » c2 bb
|
||||
0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00, // ¼ c2 bc
|
||||
0x00,0x48,0x7C,0x7C,0x40,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,0x19,0x1D,0x17,0x12,0x00, // ½ c2 bd
|
||||
0x00,0x44,0x54,0x7C,0x28,0x80,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x06,0x07,0x04,0x1F,0x1F,0x00, // ¾ c2 be
|
||||
0x00,0x00,0x00,0x80,0xC0,0xFB,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x3B,0x31,0x30,0x30,0x30,0x38,0x1E,0x0E,0x00, // ¿ c2 bf
|
||||
|
||||
//V128 ---- PAGE U+00C0-U+00FF (UTF 0xC380-0xC3BF) ----
|
||||
0x00,0x00,0x00,0x80,0xE1,0x7B,0x7E,0xE4,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // À c3 80
|
||||
0x00,0x00,0x00,0x80,0xE4,0x7E,0x7B,0xE1,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Á c3 81
|
||||
0x00,0x00,0x00,0x84,0xE6,0x7B,0x7B,0xE6,0x84,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Â c3 82
|
||||
0x00,0x00,0x00,0x82,0xE3,0x79,0x7B,0xE2,0x83,0x01,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Ã c3 83
|
||||
0x00,0x00,0x00,0x83,0xE3,0x78,0x78,0xE3,0x83,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Ä c3 84
|
||||
0x00,0x00,0x00,0x80,0xE2,0x75,0x75,0xE2,0x80,0x00,0x00,0x00,0x00,0x38,0x3E,0x0F,0x0D,0x0C,0x0C,0x0D,0x0F,0x3E,0x38,0x00, // Å c3 85
|
||||
0x00,0x00,0x80,0xF0,0x7C,0x1F,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x3C,0x3F,0x07,0x06,0x06,0x3F,0x3F,0x30,0x30,0x30,0x00, // Æ c3 86
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x1E,0x1C,0x00,0x00,0x01,0x07,0xCE,0xDC,0xF8,0xF8,0x18,0x1C,0x0E,0x06,0x00, // Ç c3 87
|
||||
0x00,0xF8,0xF8,0x99,0x9B,0x9E,0x9C,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // È c3 88
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x9C,0x9E,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // É c3 89
|
||||
0x00,0xF8,0xF8,0x9C,0x9E,0x9B,0x9B,0x9E,0x9C,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ê c3 8a
|
||||
0x00,0xF8,0xF8,0x9B,0x9B,0x98,0x98,0x9B,0x9B,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ë c3 8b
|
||||
0x00,0x00,0x00,0x19,0x1B,0xFE,0xFC,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ì c3 8c
|
||||
0x00,0x00,0x00,0x18,0x18,0xFC,0xFE,0x1B,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Í c3 8d
|
||||
0x00,0x00,0x00,0x1C,0x1E,0xFB,0xFB,0x1E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Î c3 8e
|
||||
0x00,0x00,0x00,0x1B,0x1B,0xF8,0xF8,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ï c3 8f
|
||||
//V144
|
||||
0x00,0xC0,0xFF,0xFF,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ð c3 90
|
||||
0x00,0xF8,0xF8,0x72,0xE3,0xC1,0x83,0x02,0x03,0xF9,0xF8,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x03,0x07,0x0E,0x3F,0x3F,0x00, // Ñ c3 91
|
||||
0x00,0xE0,0xF0,0x39,0x1B,0x1E,0x1C,0x18,0x38,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ò c3 92
|
||||
0x00,0xE0,0xF0,0x38,0x18,0x1C,0x1E,0x1B,0x39,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ó c3 93
|
||||
0x00,0xE0,0xF0,0x3C,0x1E,0x1B,0x1B,0x1E,0x3C,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ô c3 94
|
||||
0x00,0xE0,0xF0,0x3A,0x1B,0x19,0x1B,0x1A,0x3B,0xF1,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Õ c3 95
|
||||
0x00,0xE0,0xF0,0x3B,0x1B,0x18,0x18,0x1B,0x3B,0xF0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ö c3 96
|
||||
0x00,0x00,0x10,0x30,0x60,0xC0,0xC0,0x60,0x30,0x10,0x00,0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x01,0x03,0x06,0x04,0x00,0x00, // × c3 97
|
||||
0x00,0xF0,0xF8,0x1C,0x0C,0x8C,0xEC,0x7C,0x18,0xFC,0xF4,0x00,0x00,0x2F,0x3F,0x18,0x3E,0x37,0x31,0x30,0x38,0x1F,0x0F,0x00, // × c3 98
|
||||
0x00,0xF8,0xF8,0x01,0x03,0x06,0x04,0x00,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ù c3 99
|
||||
0x00,0xF8,0xF8,0x00,0x00,0x04,0x06,0x03,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ú c3 9a
|
||||
0x00,0xF8,0xF8,0x04,0x06,0x03,0x03,0x06,0x04,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Û c3 9b
|
||||
0x00,0xF8,0xF8,0x03,0x03,0x00,0x00,0x03,0x03,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ü c3 9c
|
||||
0x00,0x08,0x18,0x30,0x60,0xC4,0xC6,0x63,0x31,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ý c3 9d
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c3 9e
|
||||
0x00,0x00,0xC0,0xE0,0x30,0x10,0x10,0x30,0xE0,0xC0,0x00,0x00,0x00,0x00,0xFF,0xFF,0x21,0x21,0x21,0x33,0x3F,0x1E,0x00,0x00, // ß c3 9f
|
||||
//V160
|
||||
0x00,0x00,0x40,0x60,0x62,0x66,0x6C,0x68,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // à c3 a0
|
||||
0x00,0x00,0x40,0x60,0x68,0x6C,0x66,0x62,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // á c3 a1
|
||||
0x00,0x00,0x40,0x68,0x6C,0x66,0x66,0x6C,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // â c3 a2
|
||||
0x00,0x00,0x40,0x68,0x6C,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ã c3 a3
|
||||
0x00,0x00,0x40,0x6C,0x6C,0x60,0x60,0x6C,0x6C,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ä c3 a4
|
||||
0x00,0x00,0x40,0x60,0x64,0x6A,0x6A,0x64,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // å c3 a5
|
||||
0x00,0x80,0xC0,0x40,0x40,0xC0,0x80,0x40,0x40,0xC0,0x80,0x00,0x00,0x1C,0x3E,0x22,0x22,0x1F,0x3F,0x22,0x22,0x33,0x11,0x00, // æ c3 a6
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0xB8,0xB0,0xF0,0xF0,0x30,0x38,0x18,0x08,0x00, // ç c3 a7
|
||||
0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // è c3 a8
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x68,0x6C,0x66,0x62,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // é c3 a9
|
||||
0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // ê c3 aa
|
||||
0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0x6C,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x33,0x33,0x33,0x33,0x33,0x33,0x13,0x03,0x00, // ë c3 ab
|
||||
0x00,0x00,0x00,0x00,0x62,0xE6,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ì c3 ac
|
||||
0x00,0x00,0x00,0x00,0x68,0xEC,0xE6,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // í c3 ad
|
||||
0x00,0x00,0x00,0x08,0x6C,0xE6,0xE6,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // î c3 ae
|
||||
0x00,0x00,0x00,0x0C,0x6C,0xE0,0xEC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ï c3 af
|
||||
//V176
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c3 b0
|
||||
0x00,0x00,0xE0,0xE8,0x6C,0x64,0x6C,0x68,0xEC,0xC4,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ñ c3 b1
|
||||
0x00,0x80,0xC0,0xE0,0x62,0x66,0x6C,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ò c3 b2
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x66,0x62,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ó c3 b3
|
||||
0x00,0x80,0xC0,0xE8,0x6C,0x66,0x66,0x6C,0xE8,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ô c3 b4
|
||||
0x00,0x80,0xC8,0xEC,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // õ c3 b5
|
||||
0x00,0x80,0xC0,0xEC,0x6C,0x60,0x60,0x6C,0xEC,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ö c3 b6
|
||||
0x00,0x00,0x80,0x80,0x80,0xB0,0xB0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0D,0x0D,0x01,0x01,0x01,0x00,0x00, // ÷ c3 b7
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xC0,0xE0,0xA0,0x00,0x00,0x2F,0x3F,0x18,0x3C,0x36,0x33,0x31,0x38,0x1F,0x0F,0x00, // ø c3 b8
|
||||
0x00,0xE0,0xE0,0x00,0x02,0x06,0x0C,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ù c3 b9
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x0C,0x06,0x02,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ú c3 ba
|
||||
0x00,0xE0,0xE0,0x08,0x0C,0x06,0x06,0x0C,0x08,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // û c3 bb
|
||||
0x00,0xE0,0xE0,0x0C,0x0C,0x00,0x00,0x0C,0x0C,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ü c3 bc
|
||||
0x00,0x00,0x60,0xE0,0x80,0x10,0x18,0x8C,0xE4,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ý c3 bd
|
||||
0x00,0x00,0x03,0xFF,0xFF,0x1B,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x36,0x06,0x06,0x07,0x03,0x00,0x00, // þ c3 be
|
||||
0x00,0x00,0x60,0xEC,0x8C,0x00,0x00,0x8C,0xEC,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ÿ c3 bf
|
||||
#ifdef CYRILLIC_GLYPHS
|
||||
/* Cyrillic Glyphs */
|
||||
//V192 ---- PAGE U+0400-U+043F (UTF 0xD080-0xD0BF) ----
|
||||
0x00,0xFC,0xFC,0x8D,0x8F,0x8E,0x8C,0x8C,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ѐ d0 80
|
||||
0x00,0xFE,0xFE,0xC7,0xC7,0xC6,0xC6,0xC7,0xC7,0x06,0x06,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ё d0 81
|
||||
0x00,0x03,0xFF,0xFF,0x83,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ђ d0 82
|
||||
0x00,0xFC,0xFC,0x0C,0x0C,0x0C,0x0E,0x0F,0x0D,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Ѓ d0 83
|
||||
0x00,0xF8,0xFC,0xCE,0xC7,0xC3,0xC3,0xC3,0x07,0x0E,0x0C,0x00,0x00,0x07,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Є d0 84
|
||||
0x00,0x3C,0x7E,0x67,0xE3,0xC3,0xC3,0xC3,0x87,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x31,0x39,0x1F,0x0F,0x00, // Ѕ d0 85
|
||||
0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // І d0 86
|
||||
0x00,0x00,0x00,0x0D,0x0D,0xFC,0xFC,0x0D,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ї d0 87
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ј d0 88
|
||||
0x00,0x00,0xFE,0xFF,0x03,0x03,0xFF,0xFF,0xC0,0xC0,0x80,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x3F,0x3F,0x30,0x39,0x1F,0x0F, // Љ d0 89
|
||||
0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xFF,0xFF,0xC0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x3F,0x3F,0x30,0x39,0x1F,0x0F, // Њ d0 8a
|
||||
0x00,0x03,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x00,0x00,0x01,0x3F,0x3F,0x00, // Ћ d0 8b
|
||||
0x00,0xFF,0xFF,0xC0,0xE2,0xF3,0x39,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00, // Ќ d0 8c
|
||||
0x00,0xFF,0xFF,0x00,0x01,0xC3,0xF2,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00, // Ѝ d0 8d
|
||||
0x00,0x07,0x1F,0x7C,0xF1,0xC1,0xC1,0xF1,0x7C,0x1F,0x07,0x00,0x00,0x00,0x30,0x30,0x3C,0x0F,0x07,0x01,0x00,0x00,0x00,0x00, // Ў d0 8e
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x1F,0x18,0x18,0x78,0x78,0x18,0x18,0x1F,0x1F,0x00, // Џ d0 8f
|
||||
//V208
|
||||
0x00,0x80,0xE0,0x78,0x1E,0x07,0x07,0x1E,0x78,0xE0,0x80,0x00,0x00,0x3F,0x3F,0x06,0x06,0x06,0x06,0x06,0x06,0x3F,0x3F,0x00, // A d0 90
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x83,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // Б d0 91
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // В d0 92
|
||||
0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Г d0 93
|
||||
0x00,0x00,0xF8,0xFE,0x0F,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x00,0x70,0x7F,0x1F,0x18,0x18,0x18,0x18,0x1F,0x7F,0x70,0x00, // Д d0 94
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Е d0 95
|
||||
0x00,0x03,0x0F,0xFC,0xE0,0xFF,0xFF,0xE0,0xFC,0x0F,0x03,0x00,0x00,0x38,0x3F,0x07,0x00,0x3F,0x3F,0x00,0x07,0x3F,0x38,0x00, // Ж d0 96
|
||||
0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0x3C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // 3 d0 97
|
||||
0x00,0xFF,0xFF,0x00,0x00,0xC0,0xF0,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00, // И d0 98
|
||||
0x00,0xFF,0xFF,0x00,0x02,0xC3,0xF1,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00, // Й d0 99
|
||||
0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00, // К d0 9a
|
||||
0x00,0x00,0xF0,0xFC,0x1E,0x07,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Л d0 9b
|
||||
0x00,0xFF,0xFF,0x1E,0x78,0xE0,0xE0,0x78,0x1E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x01,0x00,0x00,0x3F,0x3F,0x00, // М d0 9c
|
||||
0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Н d0 9d
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // О d0 9e
|
||||
0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // П d0 9f
|
||||
//V224
|
||||
0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, // Р d0 a0
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x0E,0x0C,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // С d0 a1
|
||||
0x00,0x03,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Т d0 a2
|
||||
0x00,0x07,0x1F,0x7C,0xF0,0xC0,0xC0,0xF0,0x7C,0x1F,0x07,0x00,0x00,0x00,0x30,0x30,0x3C,0x0F,0x07,0x01,0x00,0x00,0x00,0x00, // У d0 a3
|
||||
0x00,0xF8,0xFC,0x0E,0x06,0xFF,0xFF,0x06,0x0E,0xFC,0xF8,0x00,0x00,0x03,0x07,0x0E,0x0C,0x3F,0x3F,0x0C,0x0E,0x07,0x03,0x00, // Ф d0 a4
|
||||
0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x30,0x3C,0x0F,0x03,0x00,0x00,0x03,0x0F,0x3C,0x30,0x00, // Х d0 a5
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18,0x18,0x18,0x1F,0x7F,0x78,0x00, // Ц d0 a6
|
||||
0x00,0x7F,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Ч d0 a7
|
||||
0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00, // Ш d0 a8
|
||||
0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x1F,0x18,0x18,0x1F,0x1F,0x18,0x18,0x1F,0x7F,0x70, // Щ d0 a9
|
||||
0x03,0x03,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ъ d0 aa
|
||||
0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x00,0x3F,0x3F,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00,0x3F,0x3F, // Ы d0 ab
|
||||
0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ь d0 ac
|
||||
0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC7,0xCE,0xFC,0xF8,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0F,0x07,0x00, // Э d0 ad
|
||||
0x00,0xFF,0xFF,0xC0,0xFC,0xFE,0x07,0x03,0x07,0xFE,0xFC,0x00,0x00,0x3F,0x3F,0x00,0x0F,0x1F,0x38,0x30,0x38,0x1F,0x0F,0x00, // Ю d0 ae
|
||||
0x00,0x7C,0xFE,0xC7,0x83,0x83,0x83,0x83,0x83,0xFF,0xFF,0x00,0x00,0x30,0x38,0x1D,0x0F,0x07,0x03,0x01,0x01,0x3F,0x3F,0x00, // Я d0 af
|
||||
//V240
|
||||
0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1E,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // а d0 b0
|
||||
0x00,0xE0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00, // б d0 b1
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00, // в d0 b2
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // г d0 b3
|
||||
0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x00,0x60,0x7F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x7F,0x60,0x00, // д d0 b4
|
||||
0x00,0xE0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00, // е d0 b5
|
||||
0x00,0x30,0xF0,0xC0,0x00,0xF0,0xF0,0x00,0xC0,0xF0,0x30,0x00,0x00,0x30,0x3C,0x0F,0x03,0x3F,0x3F,0x03,0x0F,0x3C,0x30,0x00, // ж d0 b6
|
||||
0x00,0x60,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x18,0x38,0x30,0x33,0x33,0x33,0x33,0x33,0x3F,0x1D,0x00, // з d0 b7
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // и d0 b8
|
||||
0x00,0xF0,0xF0,0x00,0x04,0x08,0x88,0xC4,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // й d0 b9
|
||||
0x00,0xF0,0xF0,0x80,0x80,0xC0,0xE0,0x70,0x30,0x10,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x07,0x0E,0x1C,0x38,0x30,0x20,0x00, // к d0 ba
|
||||
0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // л d0 bb
|
||||
0x00,0xF0,0xF0,0xE0,0xC0,0x80,0x80,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x03,0x01,0x00,0x3F,0x3F,0x00, // м d0 bc
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00, // н d0 bd
|
||||
0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // о d0 be
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // п d0 bf
|
||||
|
||||
//V256 ---- HALF-PAGE U+0440-U+045F (UTF 0xD180-0xD1BF) ----
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0xFF,0xFF,0x0C,0x0C,0x0C,0x0C,0x0C,0x0E,0x07,0x03,0x00, // р d1 80
|
||||
0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x18,0x08,0x00, // с d1 81
|
||||
0x00,0x30,0x30,0x30,0x30,0xF0,0xF0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // т d1 82
|
||||
0x00,0x30,0xF0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00, // у d1 83
|
||||
0x00,0x80,0xC0,0x60,0x60,0xF0,0xF0,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x30,0x30,0xFF,0xFF,0x30,0x30,0x1F,0x0F,0x00, // ф d1 84
|
||||
0x00,0x30,0x70,0xC0,0x80,0x00,0x00,0x80,0xC0,0x70,0x30,0x00,0x00,0x30,0x38,0x0C,0x07,0x03,0x03,0x07,0x0C,0x38,0x30,0x00, // х d1 85
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x3F,0xFF,0xF0,0x00, // ц d1 86
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00, // ч d1 87
|
||||
0x00,0xF0,0xF0,0x00,0x00,0xE0,0xE0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00, // ш d1 88
|
||||
0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0xFF,0xE0, // щ d1 89
|
||||
0x30,0x30,0xF0,0xF0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // ъ d1 8a
|
||||
0x00,0xF0,0xF0,0x80,0x80,0x80,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x31,0x31,0x3B,0x1F,0x0E,0x00,0x3F,0x3F,0x00, // ы d1 8b
|
||||
0x00,0xF0,0xF0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // ь d1 8c
|
||||
0x00,0x40,0x60,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x08,0x18,0x38,0x30,0x33,0x33,0x33,0x3B,0x1F,0x0F,0x00, // э d1 8d
|
||||
0x00,0xF0,0xF0,0x00,0xE0,0xF0,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x3F,0x3F,0x03,0x1F,0x3F,0x30,0x30,0x30,0x3F,0x1F,0x00, // ю d1 8e
|
||||
0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x21,0x33,0x3B,0x1E,0x0E,0x06,0x06,0x06,0x3F,0x3F,0x00, // я d1 8f
|
||||
//V272
|
||||
0x00,0xE0,0xF0,0x32,0x36,0x36,0x34,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00, // ѐ d1 90
|
||||
0x00,0xE0,0xF0,0x34,0x34,0x30,0x30,0x34,0x34,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00, // ё d1 91
|
||||
0x00,0x30,0xFC,0xFC,0x30,0xB0,0xB0,0xB0,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x07,0x03,0x01,0x01,0xC1,0xFF,0x3F,0x00, // ђ d1 92
|
||||
0x00,0xF0,0xF0,0x30,0x30,0x34,0x36,0x32,0x30,0x30,0x30,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ѓ d1 93
|
||||
0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x30,0x38,0x18,0x08,0x00, // є d1 94
|
||||
0x00,0xE0,0xF0,0xB0,0xB0,0x30,0x30,0x30,0x30,0x70,0x60,0x00,0x00,0x18,0x39,0x31,0x33,0x33,0x33,0x37,0x36,0x3E,0x1C,0x00, // ѕ d1 95
|
||||
0x00,0x00,0x00,0x00,0x30,0xF6,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // і d1 96
|
||||
0x00,0x00,0x00,0x04,0x34,0xF0,0xF4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ї d1 97
|
||||
0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xF6,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00, // ј d1 98
|
||||
0x00,0x00,0xE0,0xF0,0x30,0x30,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x3F,0x3F,0x33,0x33,0x1E,0x0C, // љ d1 99
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x3F,0x3F,0x33,0x33,0x1E,0x0C, // њ d1 9a
|
||||
0x00,0x30,0xFC,0xFC,0xB0,0xB0,0xB0,0xB0,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x00, // ћ d1 9b
|
||||
0x00,0xF0,0xF0,0x80,0x88,0xCC,0xE4,0x70,0x30,0x10,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x07,0x0E,0x1C,0x38,0x30,0x20,0x00, // ќ d1 9c
|
||||
0x00,0xF0,0xF0,0x00,0x06,0x0C,0x88,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // ѝ d1 9d
|
||||
0x00,0x30,0xF0,0xC0,0x04,0x08,0x08,0x04,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00, // ў d1 9e
|
||||
0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0xF0,0xF0,0x30,0x30,0x3F,0x3F,0x00, // џ d1 9f
|
||||
#else
|
||||
/* U+0100 to ... Latin Extended-A */
|
||||
//V192 ---- PAGE U+0100-U+013F (UTF 0xC480-0xC4BF) ----
|
||||
0x00,0x00,0x00,0xE0,0xF9,0x1D,0x1D,0xF9,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00, // Ā c4 80
|
||||
0x00,0x00,0x40,0x60,0x68,0x68,0x68,0x68,0x68,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ā c4 81
|
||||
0x00,0x00,0x00,0xE0,0xF9,0x1A,0x1A,0xF9,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x07,0x3F,0x38,0x00, // Ă c4 82
|
||||
0x00,0x00,0x40,0x60,0x64,0x68,0x68,0x68,0x64,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // ă c4 83
|
||||
0x00,0x00,0x00,0xE0,0xFC,0x1F,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,0x38,0x3F,0x07,0x06,0x06,0x06,0x06,0x67,0xBF,0xB8,0x00, // Ą c4 84
|
||||
0x00,0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x1C,0x3E,0x33,0x33,0x33,0x33,0x33,0x73,0xBF,0xBF,0x00, // ą c4 85
|
||||
0x00,0x80,0xE0,0x70,0x38,0x18,0x1A,0x1B,0x39,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Ć c4 86
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // ć c4 87
|
||||
0x00,0x80,0xE0,0x70,0x3A,0x1B,0x19,0x1B,0x3A,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Ĉ c4 88
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // ĉ c4 89
|
||||
0x00,0x80,0xE0,0x70,0x38,0x18,0x1A,0x18,0x38,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Ċ c4 8a
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // ċ c4 8b
|
||||
0x00,0x80,0xE0,0x70,0x39,0x1B,0x1A,0x1B,0x39,0x70,0x60,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Č c4 8c
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00, // č c4 8d
|
||||
0x00,0xF8,0xF8,0x19,0x1B,0x1A,0x1B,0x39,0x70,0xE0,0x80,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ď c4 8e
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xFF,0xFF,0x00,0x05,0x03,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x3F,0x3F,0x00,0x00,0x00, // ď c4 8f
|
||||
//V208
|
||||
0xC0,0xFF,0xFF,0xC3,0xC3,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Đ c4 90
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xE4,0xC4,0xFF,0xFF,0x04,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x30,0x3F,0x3F,0x00, // đ c4 91
|
||||
0x00,0xFC,0xFC,0x8C,0x8D,0x8D,0x8D,0x8D,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ē c4 92
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x68,0x68,0x68,0x68,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ē c4 93
|
||||
0x00,0xF8,0xF8,0x98,0x99,0x9A,0x9A,0x99,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ĕ c4 94
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x68,0x68,0x68,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ĕ c4 95
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x98,0x9A,0x98,0x98,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ė c4 96
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ė c4 97
|
||||
0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x70,0xB0,0xB0,0x00, // Ę c4 98
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x73,0xB3,0xB3,0x13,0x01,0x00, // ę c4 99
|
||||
0x00,0xF8,0xF8,0x98,0x99,0x9B,0x9A,0x9B,0x99,0x18,0x18,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ě c4 9a
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00, // ě c4 9b
|
||||
0x00,0x80,0xE0,0x70,0x1A,0x1B,0x19,0x1B,0x1A,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00, // Ĝ c4 9c
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ĝ c4 9d
|
||||
0x00,0x80,0xE0,0x70,0x1A,0x19,0x19,0x19,0x1A,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00, // Ğ c4 9e
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x64,0x64,0x64,0x68,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ğ c4 9f
|
||||
//V224 -
|
||||
0x00,0x80,0xE0,0x70,0x18,0x18,0x1A,0x18,0x18,0x38,0x30,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x33,0x33,0x33,0x3F,0x3F,0x00, // Ġ c4 a0
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x68,0x60,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ġ c4 a1
|
||||
0x00,0xF0,0xFC,0x0E,0x07,0x03,0xC3,0xC3,0xC3,0xC7,0xC6,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0xB0,0x70,0x30,0x3F,0x3F,0x00, // Ģ c4 a2
|
||||
0x00,0x80,0xC0,0xE0,0x60,0x60,0x6C,0x6A,0x60,0xE0,0xE0,0x00,0x00,0x03,0xC7,0xCE,0xCC,0xCC,0xCC,0xCC,0xE6,0x7F,0x3F,0x00, // ģ c4 a3
|
||||
0x00,0xFC,0xFC,0x80,0x82,0x81,0x81,0x82,0x80,0xFC,0xFC,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x00, // Ĥ c4 a4
|
||||
0x00,0xFE,0xFE,0xC0,0x62,0x63,0x61,0xE3,0xC2,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00, // ĥ c4 a5
|
||||
0x02,0xFF,0xFF,0xC2,0xC2,0xC2,0xC2,0xC2,0xC2,0xFF,0xFF,0x02,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Ħ c4 a6
|
||||
0x04,0xFF,0xFF,0xC4,0x64,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00, // ħ c4 a7
|
||||
0x00,0x00,0x00,0x1A,0x19,0xFB,0xFB,0x1A,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ĩ c4 a8
|
||||
0x00,0x00,0x00,0x08,0x64,0xEC,0xE8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ĩ c4 a9
|
||||
0x00,0x00,0x00,0x0C,0x0D,0xFD,0xFD,0x0D,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ī c4 aa
|
||||
0x00,0x00,0x00,0x08,0x68,0xE8,0xE8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ī c4 ab
|
||||
0x00,0x00,0x00,0x18,0x19,0xFA,0xFA,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ĭ c4 ac
|
||||
0x00,0x00,0x00,0x00,0x64,0xE8,0xE8,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ĭ c4 ad
|
||||
0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7F,0xBF,0xB0,0x30,0x00,0x00,0x00, // Į c4 ae
|
||||
0x00,0x00,0x00,0x00,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7F,0xBF,0xB0,0x30,0x00,0x00,0x00, // į c4 af
|
||||
//V240
|
||||
0x00,0x00,0x00,0x18,0x18,0xF8,0xFA,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // İ c4 b0
|
||||
0x00,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ı c4 b1
|
||||
0x00,0x03,0xFF,0xFF,0x03,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x30,0x3F,0x3F,0x30,0x0C,0x1C,0x30,0x30,0x3F,0x1F,0x00, // IJ c4 b2
|
||||
0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x70,0xC0,0xC0,0xFF,0x7F,0x00,0x00, // ij c4 b3
|
||||
0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x03,0x02,0xF8,0xF8,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ĵ c4 b4
|
||||
0x00,0x00,0x00,0x00,0x00,0x08,0x6C,0xE4,0xEC,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00, // ĵ c4 b5
|
||||
0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0xA3,0x67,0x0E,0x1C,0x38,0x30,0x00, // Ķ c4 b6
|
||||
0x00,0x00,0xFF,0xFF,0x00,0x80,0xC0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0xA7,0x6F,0x1C,0x38,0x30,0x00,0x00, // ķ c4 b7
|
||||
0x00,0x00,0xE0,0xE0,0x00,0x80,0xC0,0xE0,0x60,0x20,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x07,0x0F,0x1C,0x38,0x30,0x00,0x00, // ĸ c4 b8
|
||||
0x00,0xF8,0xFA,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ĺ c4 b9
|
||||
0x00,0x00,0x00,0x00,0x18,0xFA,0xFB,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ĺ c4 ba
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0xB0,0x70,0x30,0x30,0x30,0x30,0x00, // Ļ c4 bb
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xBF,0x7F,0x30,0x30,0x00,0x00,0x00, // ļ c4 bc
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ľ c4 bd
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ľ c4 be
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ŀ c4 bf
|
||||
|
||||
//V256 ---- PAGE U+0140-U+017F (UTF 0xC580-0xC5BF) ----
|
||||
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ŀ c5 80
|
||||
0x80,0xFF,0xFF,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ł c5 81
|
||||
0x00,0x00,0x00,0x00,0x83,0xFF,0xFF,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ł c5 82
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF2,0xC3,0x01,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00, // Ń c5 83
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x68,0x6C,0x64,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ń c5 84
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF0,0xC0,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0xA0,0x63,0x07,0x1C,0x3F,0x3F,0x00, // Ņ c5 85
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0xA0,0x60,0x00,0x3F,0x3F,0x00, // ņ c5 86
|
||||
0x00,0xFF,0xFF,0x0E,0x38,0xF1,0xC2,0x01,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x03,0x07,0x1C,0x3F,0x3F,0x00, // Ň c5 87
|
||||
0x00,0x00,0xE0,0xE0,0x64,0x6C,0x68,0x6C,0xE4,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ň c5 88
|
||||
0x00,0x0A,0xE6,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // ʼn c5 89
|
||||
0x00,0x00,0xFF,0xFF,0x06,0x03,0x03,0x03,0x07,0xFE,0xFC,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x20,0x20,0x30,0x1F,0x0F,0x00, // Ŋ c5 8a
|
||||
0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0xC0,0xC0,0xFF,0x7F,0x00, // ŋ c5 8b
|
||||
0x00,0xC0,0xF0,0x38,0x1D,0x0D,0x0D,0x1D,0x38,0xF0,0xC0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ō c5 8c
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x68,0x68,0x68,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ō c5 8d
|
||||
0x00,0x80,0xE0,0x70,0x39,0x1A,0x1A,0x39,0x70,0xE0,0x80,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ŏ c5 8e
|
||||
0x00,0x80,0xC0,0xE0,0x64,0x68,0x68,0x64,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ŏ c5 8f
|
||||
//V272
|
||||
0x00,0x80,0xE0,0x70,0x3A,0x19,0x1A,0x39,0x70,0xE0,0x80,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // Ő c5 90
|
||||
0x00,0x80,0xC0,0xE0,0x68,0x64,0x68,0x64,0xE0,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // ő c5 91
|
||||
0xF0,0xFC,0x0E,0x03,0x03,0x07,0xFE,0xFF,0xC3,0xC3,0xC3,0x00,0x03,0x0F,0x1C,0x30,0x30,0x38,0x1F,0x3F,0x30,0x30,0x30,0x00, // Œ c5 92
|
||||
0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x60,0x60,0x60,0x40,0x80,0x0F,0x1F,0x38,0x30,0x30,0x1F,0x1F,0x3B,0x33,0x33,0x1B,0x09, // œ c5 93
|
||||
0x00,0xF8,0xF8,0x98,0x98,0x9A,0x9B,0x99,0xF8,0xF0,0x60,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00, // Ŕ c5 94
|
||||
0x00,0x00,0xE0,0xE0,0xC0,0x60,0x68,0x6C,0x64,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ŕ c5 95
|
||||
0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0xA3,0x67,0x0F,0x1D,0x38,0x30,0x00, // Ŗ c5 96
|
||||
0x00,0x00,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0xA0,0x60,0x00,0x00,0x00,0x00,0x00, // ŗ c5 97
|
||||
0x00,0xF8,0xF8,0x99,0x9B,0x9A,0x9B,0x99,0xF8,0xF0,0x60,0x00,0x00,0x3F,0x3F,0x01,0x01,0x03,0x07,0x0F,0x1D,0x38,0x30,0x00, // Ř c5 98
|
||||
0x00,0x00,0xE0,0xE0,0xC4,0x6C,0x68,0x6C,0x64,0xE0,0xC0,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ř c5 99
|
||||
0x00,0x60,0xF0,0xF8,0x98,0x9A,0x9B,0x99,0x98,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // Ś c5 9a
|
||||
0x00,0xC0,0xE0,0x60,0x68,0x6C,0x64,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // ś c5 9b
|
||||
0x00,0x60,0xF0,0xF8,0x9A,0x9B,0x99,0x9B,0x9A,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // Ŝ c5 9c
|
||||
0x00,0xC0,0xE0,0x68,0x6C,0x64,0x6C,0x68,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // ŝ c5 9d
|
||||
0x00,0x3C,0x7E,0xE7,0xC3,0xC3,0xC3,0xC3,0xC7,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0xB0,0xF0,0x30,0x39,0x1F,0x0F,0x00, // Ş c5 9e
|
||||
0x00,0xC0,0xE0,0x60,0x60,0x60,0x60,0x60,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0xB3,0xF3,0x33,0x3F,0x1E,0x00,0x00,0x00, // ş c5 9f
|
||||
//V288
|
||||
0x00,0x60,0xF0,0xF8,0x99,0x9B,0x9A,0x9B,0x99,0x30,0x20,0x00,0x00,0x0C,0x1C,0x39,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // Š c5 a0
|
||||
0x00,0xC0,0xE0,0x64,0x6C,0x68,0x6C,0x64,0x40,0x00,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00,0x00,0x00, // š c5 a1
|
||||
0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xBF,0x60,0x00,0x00,0x00,0x00, // Ţ c5 a2
|
||||
0x00,0x60,0x60,0xFE,0xFE,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0xB0,0xB0,0xF0,0x30,0x00,0x00,0x00, // ţ c5 a3
|
||||
0x00,0x00,0x18,0x19,0x1B,0xFA,0xFA,0x1B,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ť c5 a4
|
||||
0x00,0x60,0x60,0xFE,0xFE,0x60,0x65,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x30,0x30,0x30,0x30,0x00,0x00,0x00, // ť c5 a5
|
||||
0x00,0x00,0x03,0xC3,0xC3,0xFF,0xFF,0xC3,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ŧ c5 a6
|
||||
0x00,0x30,0x30,0xFE,0xFE,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x1F,0x3F,0x33,0x33,0x30,0x30,0x00,0x00,0x00, // ŧ c5 a7
|
||||
0x00,0xF8,0xF8,0x02,0x01,0x03,0x03,0x02,0x01,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ũ c5 a8
|
||||
0x00,0xE0,0xE0,0x08,0x04,0x0C,0x0C,0x08,0x04,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ũ c5 a9
|
||||
0x00,0xFC,0xFC,0x00,0x01,0x01,0x01,0x01,0x00,0xFC,0xFC,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ū c5 aa
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x08,0x08,0x08,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ū c5 ab
|
||||
0x00,0xFC,0xFC,0x00,0x01,0x02,0x02,0x01,0x00,0xFC,0xFC,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ŭ c5 ac
|
||||
0x00,0xE0,0xE0,0x00,0x04,0x08,0x08,0x04,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ŭ c5 ad
|
||||
0x00,0xF8,0xF8,0x00,0x06,0x09,0x09,0x06,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ů c5 ae
|
||||
0x00,0xE0,0xE0,0x00,0x0C,0x12,0x12,0x0C,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ů c5 af
|
||||
//V304
|
||||
0x00,0xF8,0xF8,0x00,0x02,0x01,0x02,0x01,0x00,0xF8,0xF8,0x00,0x00,0x07,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x07,0x00, // Ű c5 b0
|
||||
0x00,0xE0,0xE0,0x00,0x08,0x04,0x08,0x04,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x18,0x3F,0x3F,0x00, // ű c5 b1
|
||||
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x07,0x1F,0x38,0x30,0xF0,0xB0,0xB0,0x38,0x1F,0x07,0x00, // Ų c5 b2
|
||||
0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x0F,0x1F,0x38,0x30,0xF0,0xB0,0xB0,0x18,0x3F,0x3F,0x00, // ų c5 b3
|
||||
0x00,0xFC,0xFC,0x00,0x02,0x81,0x81,0x02,0x00,0xFC,0xFC,0x00,0x00,0x3F,0x3F,0x1C,0x06,0x03,0x03,0x06,0x1C,0x3F,0x3F,0x00, // Ŵ c5 b4
|
||||
0x00,0xE0,0xE0,0x00,0x04,0xE8,0xE8,0x04,0x00,0xE0,0xE0,0x00,0x00,0x07,0x1F,0x38,0x1C,0x0F,0x0F,0x1C,0x38,0x1F,0x07,0x00, // ŵ c5 b5
|
||||
0x00,0x02,0x0E,0x3C,0xF2,0xC1,0xC1,0xF2,0x3C,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ŷ c5 b6
|
||||
0x00,0x00,0x60,0xE0,0x88,0x04,0x04,0x88,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ŷ c5 b7
|
||||
0x00,0x02,0x0E,0x3C,0xF1,0xC0,0xC0,0xF1,0x3C,0x0E,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Ÿ c5 b8
|
||||
0x00,0x18,0x18,0x18,0x18,0x1A,0x9B,0xD9,0xF8,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00, // Ź c5 b9
|
||||
0x00,0x60,0x60,0x60,0x68,0x6C,0xE4,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // ź c5 ba
|
||||
0x00,0x18,0x18,0x18,0x18,0x18,0x9A,0xD8,0xF8,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00, // Ż c5 bb
|
||||
0x00,0x60,0x60,0x60,0x60,0x68,0xE0,0xE0,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // ż c5 bc
|
||||
0x00,0x18,0x18,0x18,0x19,0x1B,0x9A,0xDB,0xF9,0x78,0x38,0x00,0x00,0x30,0x38,0x3C,0x3E,0x37,0x33,0x31,0x30,0x30,0x30,0x00, // Ž c5 bd
|
||||
0x00,0x60,0x60,0x64,0x6C,0x68,0xEC,0xE4,0x60,0x20,0x00,0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00, // ž c5 be
|
||||
0x00,0x00,0x00,0x00,0xFC,0xFE,0x06,0x06,0x0E,0x0C,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x00,0x00,0x00,0x00,0x00 // ſ c5 bf
|
||||
#endif
|
||||
};
|
||||
|
||||
const uint8_t ExtraFontChars[] = {
|
||||
//width = 12
|
||||
@@ -569,7 +110,7 @@ const uint8_t WarningBlock24[] = {
|
||||
//width = 24
|
||||
//height = 16
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x0C,0x02,0xF1,0xF1,0xF1,0x02,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xC0,0xB0,0x8C,0x83,0x80,0x80,0x80,0x80,0xB3,0xB3,0xB3,0x80,0x80,0x80,0x80,0x83,0x8C,0xB0,0xC0,0x00,0x00
|
||||
0x00,0x00,0x00,0xC0,0xB0,0x8C,0x83,0x80,0x80,0x80,0x80,0xB3,0xB3,0xB3,0x80,0x80,0x80,0x80,0x83,0x8C,0xB0,0xC0,0x00,0x00
|
||||
};
|
||||
|
||||
const uint8_t idleScreenBG[] = {
|
||||
@@ -582,7 +123,7 @@ const uint8_t idleScreenBG[] = {
|
||||
0x00,0x07,0x18,0x20,0x40,0x40,0x80,0x82,0x86,0x86,0x86,0x87,0x83,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
|
||||
0x81,0x81,0x81,0x81,0x83,0x87,0x86,0x86,0x86,0x82,0x80,0x80,0x40,0x40,0x20,0x18,0x07,0x00,0x00,0x07,0x18,0x20,0x40,0x40,
|
||||
0x80,0x82,0x87,0x85,0x85,0x85,0x85,0x87,0x87,0x85,0x87,0x85,0x87,0x87,0x82,0x82,0x82,0x80,0x82,0x80,0x82,0x82,0x82,0x92,
|
||||
0x8A,0x84,0x82,0x81,0x80,0x80,0x80,0x40,0x40,0x20,0x18,0x07
|
||||
0x8A,0x84,0x82,0x81,0x80,0x80,0x80,0x40,0x40,0x20,0x18,0x07
|
||||
};
|
||||
|
||||
const uint8_t idleScreenBGF[] = {
|
||||
@@ -595,7 +136,7 @@ const uint8_t idleScreenBGF[] = {
|
||||
0x07,0x18,0x20,0x40,0x40,0x80,0x80,0x80,0x81,0x82,0x84,0x8A,0x92,0x82,0x82,0x82,0x80,0x82,0x80,0x82,0x82,0x82,0x87,0x87,
|
||||
0x85,0x87,0x85,0x87,0x87,0x85,0x85,0x85,0x85,0x87,0x82,0x80,0x40,0x40,0x20,0x18,0x07,0x00,0x00,0x07,0x18,0x20,0x40,0x40,
|
||||
0x80,0x80,0x82,0x86,0x86,0x86,0x87,0x83,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x83,
|
||||
0x87,0x86,0x86,0x86,0x82,0x80,0x40,0x40,0x20,0x18,0x07,0x00
|
||||
0x87,0x86,0x86,0x86,0x82,0x80,0x40,0x40,0x20,0x18,0x07,0x00
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -647,439 +188,5 @@ const uint8_t SettingsMenuIcons[] = {
|
||||
#endif
|
||||
};
|
||||
|
||||
const uint8_t FONT_6x8[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 000: ' ' U+0020 (utf-8: 20)
|
||||
0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, // 001: '!' U+0021 (utf-8: 21)
|
||||
0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 002: '"' U+0022 (utf-8: 22)
|
||||
0x14, 0x7f, 0x14, 0x7f, 0x14, 0x00, // 003: '#' U+0023 (utf-8: 23)
|
||||
0x24, 0x2a, 0x7f, 0x2a, 0x12, 0x00, // 004: '$' U+0024 (utf-8: 24)
|
||||
0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 005: '%' U+0025 (utf-8: 25)
|
||||
0x36, 0x49, 0x56, 0x20, 0x58, 0x00, // 006: '&' U+0026 (utf-8: 26)
|
||||
0x00, 0x05, 0x03, 0x00, 0x00, 0x00, // 007: ''' U+0027 (utf-8: 27)
|
||||
0x00, 0x1c, 0x22, 0x41, 0x00, 0x00, // 008: '(' U+0028 (utf-8: 28)
|
||||
0x00, 0x41, 0x22, 0x1c, 0x00, 0x00, // 009: ')' U+0029 (utf-8: 29)
|
||||
0x14, 0x08, 0x3e, 0x08, 0x14, 0x00, // 010: '*' U+002a (utf-8: 2a)
|
||||
0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, // 011: '+' U+002b (utf-8: 2b)
|
||||
0x00, 0x50, 0x30, 0x00, 0x00, 0x00, // 012: ',' U+002c (utf-8: 2c)
|
||||
0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 013: '-' U+002d (utf-8: 2d)
|
||||
0x00, 0x60, 0x60, 0x00, 0x00, 0x00, // 014: '.' U+002e (utf-8: 2e)
|
||||
0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 015: '/' U+002f (utf-8: 2f)
|
||||
0x3e, 0x51, 0x49, 0x45, 0x3e, 0x00, // 016: '0' U+0030 (utf-8: 30)
|
||||
0x00, 0x42, 0x7f, 0x40, 0x00, 0x00, // 017: '1' U+0031 (utf-8: 31)
|
||||
0x42, 0x61, 0x51, 0x49, 0x46, 0x00, // 018: '2' U+0032 (utf-8: 32)
|
||||
0x21, 0x41, 0x45, 0x4b, 0x31, 0x00, // 019: '3' U+0033 (utf-8: 33)
|
||||
0x18, 0x14, 0x12, 0x7f, 0x10, 0x00, // 020: '4' U+0034 (utf-8: 34)
|
||||
0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 021: '5' U+0035 (utf-8: 35)
|
||||
0x3c, 0x4a, 0x49, 0x49, 0x30, 0x00, // 022: '6' U+0036 (utf-8: 36)
|
||||
0x01, 0x71, 0x09, 0x05, 0x03, 0x00, // 023: '7' U+0037 (utf-8: 37)
|
||||
0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 024: '8' U+0038 (utf-8: 38)
|
||||
0x06, 0x49, 0x49, 0x29, 0x1e, 0x00, // 025: '9' U+0039 (utf-8: 39)
|
||||
0x00, 0x36, 0x36, 0x00, 0x00, 0x00, // 026: ':' U+003a (utf-8: 3a)
|
||||
0x00, 0x56, 0x36, 0x00, 0x00, 0x00, // 027: ';' U+003b (utf-8: 3b)
|
||||
0x08, 0x14, 0x22, 0x41, 0x00, 0x00, // 028: '<' U+003c (utf-8: 3c)
|
||||
0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 029: '=' U+003d (utf-8: 3d)
|
||||
0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 030: '>' U+003e (utf-8: 3e)
|
||||
0x02, 0x01, 0x51, 0x09, 0x06, 0x00, // 031: '?' U+003f (utf-8: 3f)
|
||||
0x32, 0x49, 0x79, 0x41, 0x3e, 0x00, // 032: '@' U+0040 (utf-8: 40)
|
||||
0x7e, 0x09, 0x09, 0x09, 0x7e, 0x00, // 033: 'A' U+0041 (utf-8: 41)
|
||||
0x7f, 0x49, 0x49, 0x49, 0x36, 0x00, // 034: 'B' U+0042 (utf-8: 42)
|
||||
0x3e, 0x41, 0x41, 0x41, 0x22, 0x00, // 035: 'C' U+0043 (utf-8: 43)
|
||||
0x7f, 0x41, 0x41, 0x22, 0x1c, 0x00, // 036: 'D' U+0044 (utf-8: 44)
|
||||
0x7f, 0x49, 0x49, 0x49, 0x41, 0x00, // 037: 'E' U+0045 (utf-8: 45)
|
||||
0x7f, 0x09, 0x09, 0x09, 0x01, 0x00, // 038: 'F' U+0046 (utf-8: 46)
|
||||
0x3e, 0x41, 0x41, 0x49, 0x7a, 0x00, // 039: 'G' U+0047 (utf-8: 47)
|
||||
0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00, // 040: 'H' U+0048 (utf-8: 48)
|
||||
0x00, 0x41, 0x7f, 0x41, 0x00, 0x00, // 041: 'I' U+0049 (utf-8: 49)
|
||||
0x20, 0x40, 0x41, 0x3f, 0x01, 0x00, // 042: 'J' U+004a (utf-8: 4a)
|
||||
0x7f, 0x08, 0x14, 0x22, 0x41, 0x00, // 043: 'K' U+004b (utf-8: 4b)
|
||||
0x7f, 0x40, 0x40, 0x40, 0x40, 0x00, // 044: 'L' U+004c (utf-8: 4c)
|
||||
0x7f, 0x02, 0x0c, 0x02, 0x7f, 0x00, // 045: 'M' U+004d (utf-8: 4d)
|
||||
0x7f, 0x04, 0x08, 0x10, 0x7f, 0x00, // 046: 'N' U+004e (utf-8: 4e)
|
||||
0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, // 047: 'O' U+004f (utf-8: 4f)
|
||||
0x7f, 0x09, 0x09, 0x09, 0x06, 0x00, // 048: 'P' U+0050 (utf-8: 50)
|
||||
0x3e, 0x41, 0x51, 0x21, 0x5e, 0x00, // 049: 'Q' U+0051 (utf-8: 51)
|
||||
0x7f, 0x09, 0x19, 0x29, 0x46, 0x00, // 050: 'R' U+0052 (utf-8: 52)
|
||||
0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 051: 'S' U+0053 (utf-8: 53)
|
||||
0x01, 0x01, 0x7f, 0x01, 0x01, 0x00, // 052: 'T' U+0054 (utf-8: 54)
|
||||
0x3f, 0x40, 0x40, 0x40, 0x3f, 0x00, // 053: 'U' U+0055 (utf-8: 55)
|
||||
0x1f, 0x20, 0x40, 0x20, 0x1f, 0x00, // 054: 'V' U+0056 (utf-8: 56)
|
||||
0x3f, 0x40, 0x38, 0x40, 0x3f, 0x00, // 055: 'W' U+0057 (utf-8: 57)
|
||||
0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 056: 'X' U+0058 (utf-8: 58)
|
||||
0x07, 0x08, 0x70, 0x08, 0x07, 0x00, // 057: 'Y' U+0059 (utf-8: 59)
|
||||
0x61, 0x51, 0x49, 0x45, 0x43, 0x00, // 058: 'Z' U+005a (utf-8: 5a)
|
||||
0x00, 0x7f, 0x41, 0x41, 0x00, 0x00, // 059: '[' U+005b (utf-8: 5b)
|
||||
0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 060: '\' U+005c (utf-8: 5c)
|
||||
0x00, 0x41, 0x41, 0x7f, 0x00, 0x00, // 061: ']' U+005d (utf-8: 5d)
|
||||
0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 062: '^' U+005e (utf-8: 5e)
|
||||
0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 063: '_' U+005f (utf-8: 5f)
|
||||
0x00, 0x03, 0x05, 0x00, 0x00, 0x00, // 064: '`' U+0060 (utf-8: 60)
|
||||
0x20, 0x54, 0x54, 0x54, 0x78, 0x00, // 065: 'a' U+0061 (utf-8: 61)
|
||||
0x7f, 0x48, 0x44, 0x44, 0x38, 0x00, // 066: 'b' U+0062 (utf-8: 62)
|
||||
0x38, 0x44, 0x44, 0x44, 0x20, 0x00, // 067: 'c' U+0063 (utf-8: 63)
|
||||
0x38, 0x44, 0x44, 0x48, 0x7f, 0x00, // 068: 'd' U+0064 (utf-8: 64)
|
||||
0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 069: 'e' U+0065 (utf-8: 65)
|
||||
0x00, 0x04, 0x7e, 0x05, 0x01, 0x00, // 070: 'f' U+0066 (utf-8: 66)
|
||||
0x08, 0x54, 0x54, 0x54, 0x3c, 0x00, // 071: 'g' U+0067 (utf-8: 67)
|
||||
0x7f, 0x08, 0x04, 0x04, 0x78, 0x00, // 072: 'h' U+0068 (utf-8: 68)
|
||||
0x00, 0x44, 0x7d, 0x40, 0x00, 0x00, // 073: 'i' U+0069 (utf-8: 69)
|
||||
0x20, 0x40, 0x44, 0x3d, 0x00, 0x00, // 074: 'j' U+006a (utf-8: 6a)
|
||||
0x00, 0x7f, 0x10, 0x28, 0x44, 0x00, // 075: 'k' U+006b (utf-8: 6b)
|
||||
0x00, 0x41, 0x7f, 0x40, 0x00, 0x00, // 076: 'l' U+006c (utf-8: 6c)
|
||||
0x7c, 0x04, 0x78, 0x04, 0x78, 0x00, // 077: 'm' U+006d (utf-8: 6d)
|
||||
0x7c, 0x08, 0x04, 0x04, 0x78, 0x00, // 078: 'n' U+006e (utf-8: 6e)
|
||||
0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 079: 'o' U+006f (utf-8: 6f)
|
||||
0x7c, 0x14, 0x14, 0x14, 0x08, 0x00, // 080: 'p' U+0070 (utf-8: 70)
|
||||
0x08, 0x14, 0x14, 0x14, 0x7c, 0x00, // 081: 'q' U+0071 (utf-8: 71)
|
||||
0x7c, 0x08, 0x04, 0x04, 0x08, 0x00, // 082: 'r' U+0072 (utf-8: 72)
|
||||
0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 083: 's' U+0073 (utf-8: 73)
|
||||
0x04, 0x3e, 0x44, 0x40, 0x20, 0x00, // 084: 't' U+0074 (utf-8: 74)
|
||||
0x3c, 0x40, 0x40, 0x20, 0x7c, 0x00, // 085: 'u' U+0075 (utf-8: 75)
|
||||
0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00, // 086: 'v' U+0076 (utf-8: 76)
|
||||
0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00, // 087: 'w' U+0077 (utf-8: 77)
|
||||
0x44, 0x24, 0x38, 0x48, 0x44, 0x00, // 088: 'x' U+0078 (utf-8: 78)
|
||||
0x44, 0x48, 0x30, 0x10, 0x0c, 0x00, // 089: 'y' U+0079 (utf-8: 79)
|
||||
0x44, 0x64, 0x54, 0x4c, 0x44, 0x00, // 090: 'z' U+007a (utf-8: 7a)
|
||||
0x08, 0x36, 0x41, 0x00, 0x00, 0x00, // 091: '{' U+007b (utf-8: 7b)
|
||||
0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 092: '|' U+007c (utf-8: 7c)
|
||||
0x00, 0x00, 0x41, 0x36, 0x08, 0x00, // 093: '}' U+007d (utf-8: 7d)
|
||||
0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 094: '~' U+007e (utf-8: 7e)
|
||||
0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 095: '^' U+005e (utf-8: 5e)
|
||||
|
||||
/* Latin-1 Supplement */
|
||||
// ---- HALF-PAGE U+00A0-U+00BF (UTF 0xC2A0-0xC2BF) ----
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 096: ' ' U+00a0 (utf-8: c2 a0)
|
||||
0x00, 0x00, 0x79, 0x00, 0x00, 0x00, // 097: '¡' U+00a1 (utf-8: c2 a1)
|
||||
0x1c, 0x22, 0x7f, 0x22, 0x10, 0x00, // 098: '¢' U+00a2 (utf-8: c2 a2)
|
||||
0x50, 0x7e, 0x51, 0x41, 0x42, 0x00, // 099: '£' U+00a3 (utf-8: c2 a3)
|
||||
0x22, 0x1c, 0x14, 0x1c, 0x22, 0x00, // 100: '¤' U+00a4 (utf-8: c2 a4)
|
||||
0x15, 0x16, 0x7c, 0x16, 0x15, 0x00, // 101: '¥' U+00a5 (utf-8: c2 a5)
|
||||
0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 102: '¦' U+00a6 (utf-8: c2 a6)
|
||||
0x4a, 0x55, 0x55, 0x55, 0x29, 0x00, // 103: '§' U+00a7 (utf-8: c2 a7)
|
||||
0x00, 0x01, 0x00, 0x01, 0x00, 0x00, // 104: '¨' U+00a8 (utf-8: c2 a8)
|
||||
0x00, 0x18, 0x24, 0x24, 0x00, 0x00, // 105: '©' U+00a9 (utf-8: c2 a9)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 106: 'ª' U+00aa (utf-8: c2 aa)
|
||||
0x08, 0x14, 0x00, 0x08, 0x14, 0x00, // 107: '«' U+00ab (utf-8: c2 ab)
|
||||
0x08, 0x08, 0x08, 0x08, 0x38, 0x00, // 108: '¬' U+00ac (utf-8: c2 ac)
|
||||
0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 109: '' U+00ad (utf-8: c2 ad)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 110: '®' U+00ae (utf-8: c2 ae)
|
||||
0x00, 0x01, 0x01, 0x01, 0x00, 0x00, // 111: '¯' U+00af (utf-8: c2 af)
|
||||
0x00, 0x00, 0x07, 0x05, 0x07, 0x00, // 112: '°' U+00b0 (utf-8: c2 b0)
|
||||
0x44, 0x44, 0x5f, 0x44, 0x44, 0x00, // 113: '±' U+00b1 (utf-8: c2 b1)
|
||||
0x1d, 0x15, 0x17, 0x00, 0x00, 0x00, // 114: '²' U+00b2 (utf-8: c2 b2)
|
||||
0x15, 0x15, 0x1f, 0x00, 0x00, 0x00, // 115: '³' U+00b3 (utf-8: c2 b3)
|
||||
0x00, 0x04, 0x02, 0x01, 0x00, 0x00, // 116: '´' U+00b4 (utf-8: c2 b4)
|
||||
0x7c, 0x10, 0x10, 0x0c, 0x10, 0x00, // 117: 'µ' U+00b5 (utf-8: c2 b5)
|
||||
0x02, 0x07, 0x7f, 0x01, 0x7f, 0x00, // 118: '¶' U+00b6 (utf-8: c2 b6)
|
||||
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // 119: '·' U+00b7 (utf-8: c2 b7)
|
||||
0x00, 0x40, 0x60, 0x00, 0x00, 0x00, // 120: '¸' U+00b8 (utf-8: c2 b8)
|
||||
0x12, 0x1f, 0x10, 0x00, 0x00, 0x00, // 121: '¹' U+00b9 (utf-8: c2 b9)
|
||||
0x07, 0x05, 0x07, 0x00, 0x00, 0x00, // 122: 'º' U+00ba (utf-8: c2 ba)
|
||||
0x14, 0x08, 0x00, 0x14, 0x08, 0x00, // 123: '»' U+00bb (utf-8: c2 bb)
|
||||
0x21, 0x17, 0x38, 0x24, 0x72, 0x00, // 124: '¼' U+00bc (utf-8: c2 bc)
|
||||
0x21, 0x17, 0x78, 0x54, 0x5e, 0x00, // 125: '½' U+00bd (utf-8: c2 bd)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126: '¾' U+00be (utf-8: c2 be)
|
||||
0x30, 0x48, 0x45, 0x40, 0x20, 0x00, // 127: '¿' U+00bf (utf-8: c2 bf)
|
||||
|
||||
// ---- PAGE U+00C0-U+00FF (UTF 0xC380-0xC3BF) ----
|
||||
0x78, 0x15, 0x16, 0x14, 0x78, 0x00, // 128: 'À' U+00c0 (utf-8: c3 80)
|
||||
0x78, 0x14, 0x16, 0x15, 0x78, 0x00, // 129: 'Á' U+00c1 (utf-8: c3 81)
|
||||
0x78, 0x16, 0x15, 0x16, 0x78, 0x00, // 130: 'Â' U+00c2 (utf-8: c3 82)
|
||||
0x7a, 0x29, 0x2a, 0x79, 0x00, 0x00, // 131: 'Ã' U+00c3 (utf-8: c3 83)
|
||||
0x78, 0x15, 0x14, 0x15, 0x78, 0x00, // 132: 'Ä' U+00c4 (utf-8: c3 84)
|
||||
0x78, 0x14, 0x15, 0x14, 0x78, 0x00, // 133: 'Å' U+00c5 (utf-8: c3 85)
|
||||
0x7e, 0x09, 0x7f, 0x49, 0x49, 0x00, // 134: 'Æ' U+00c6 (utf-8: c3 86)
|
||||
0x0e, 0x51, 0x71, 0x11, 0x08, 0x00, // 135: 'Ç' U+00c7 (utf-8: c3 87)
|
||||
0x7c, 0x55, 0x56, 0x44, 0x44, 0x00, // 136: 'È' U+00c8 (utf-8: c3 88)
|
||||
0x7c, 0x54, 0x56, 0x45, 0x44, 0x00, // 137: 'É' U+00c9 (utf-8: c3 89)
|
||||
0x7c, 0x56, 0x55, 0x46, 0x44, 0x00, // 138: 'Ê' U+00ca (utf-8: c3 8a)
|
||||
0x7c, 0x55, 0x54, 0x45, 0x44, 0x00, // 139: 'Ë' U+00cb (utf-8: c3 8b)
|
||||
0x00, 0x49, 0x7a, 0x48, 0x00, 0x00, // 140: 'Ì' U+00cc (utf-8: c3 8c)
|
||||
0x00, 0x48, 0x7a, 0x49, 0x00, 0x00, // 141: 'Í' U+00cd (utf-8: c3 8d)
|
||||
0x00, 0x4a, 0x79, 0x4a, 0x00, 0x00, // 142: 'Î' U+00ce (utf-8: c3 8e)
|
||||
0x44, 0x45, 0x7c, 0x45, 0x44, 0x00, // 143: 'Ï' U+00cf (utf-8: c3 8f)
|
||||
0x08, 0x7f, 0x49, 0x22, 0x1c, 0x00, // 144: 'Ð' U+00d0 (utf-8: c3 90)
|
||||
0x7a, 0x11, 0x22, 0x79, 0x00, 0x00, // 145: 'Ñ' U+00d1 (utf-8: c3 91)
|
||||
0x38, 0x45, 0x46, 0x44, 0x38, 0x00, // 146: 'Ò' U+00d2 (utf-8: c3 92)
|
||||
0x38, 0x44, 0x46, 0x45, 0x38, 0x00, // 147: 'Ó' U+00d3 (utf-8: c3 93)
|
||||
0x38, 0x46, 0x45, 0x46, 0x38, 0x00, // 148: 'Ô' U+00d4 (utf-8: c3 94)
|
||||
0x32, 0x49, 0x4a, 0x31, 0x00, 0x00, // 149: 'Õ' U+00d5 (utf-8: c3 95)
|
||||
0x38, 0x45, 0x44, 0x45, 0x38, 0x00, // 150: 'Ö' U+00d6 (utf-8: c3 96)
|
||||
0x22, 0x14, 0x08, 0x14, 0x22, 0x00, // 151: '×' U+00d7 (utf-8: c3 97)
|
||||
0x58, 0x24, 0x54, 0x48, 0x34, 0x00, // 152: 'Ø' U+00d8 (utf-8: c3 98)
|
||||
0x38, 0x41, 0x42, 0x40, 0x38, 0x00, // 153: 'Ù' U+00d9 (utf-8: c3 99)
|
||||
0x38, 0x40, 0x42, 0x41, 0x38, 0x00, // 154: 'Ú' U+00da (utf-8: c3 9a)
|
||||
0x38, 0x42, 0x41, 0x42, 0x38, 0x00, // 155: 'Û' U+00db (utf-8: c3 9b)
|
||||
0x3c, 0x41, 0x40, 0x41, 0x3c, 0x00, // 156: 'Ü' U+00dc (utf-8: c3 9c)
|
||||
0x04, 0x08, 0x72, 0x09, 0x04, 0x00, // 157: 'Ý' U+00dd (utf-8: c3 9d)
|
||||
0x7f, 0x22, 0x22, 0x22, 0x1c, 0x00, // 158: 'Þ' U+00de (utf-8: c3 9e)
|
||||
0x7e, 0x11, 0x25, 0x25, 0x1a, 0x00, // 159: 'ß' U+00df (utf-8: c3 9f)
|
||||
0x20, 0x55, 0x56, 0x54, 0x78, 0x00, // 160: 'à' U+00e0 (utf-8: c3 a0)
|
||||
0x20, 0x54, 0x56, 0x55, 0x78, 0x00, // 161: 'á' U+00e1 (utf-8: c3 a1)
|
||||
0x20, 0x56, 0x55, 0x56, 0x78, 0x00, // 162: 'â' U+00e2 (utf-8: c3 a2)
|
||||
0x22, 0x55, 0x56, 0x55, 0x78, 0x00, // 163: 'ã' U+00e3 (utf-8: c3 a3)
|
||||
0x20, 0x55, 0x54, 0x55, 0x78, 0x00, // 164: 'ä' U+00e4 (utf-8: c3 a4)
|
||||
0x20, 0x54, 0x55, 0x54, 0x78, 0x00, // 165: 'å' U+00e5 (utf-8: c3 a5)
|
||||
0x24, 0x54, 0x7c, 0x54, 0x48, 0x00, // 166: 'æ' U+00e6 (utf-8: c3 a6)
|
||||
0x1c, 0x22, 0x62, 0x22, 0x10, 0x00, // 167: 'ç' U+00e7 (utf-8: c3 a7)
|
||||
0x38, 0x55, 0x56, 0x54, 0x08, 0x00, // 168: 'è' U+00e8 (utf-8: c3 a8)
|
||||
0x38, 0x54, 0x56, 0x55, 0x08, 0x00, // 169: 'é' U+00e9 (utf-8: c3 a9)
|
||||
0x38, 0x56, 0x55, 0x56, 0x08, 0x00, // 170: 'ê' U+00ea (utf-8: c3 aa)
|
||||
0x38, 0x55, 0x54, 0x55, 0x08, 0x00, // 171: 'ë' U+00eb (utf-8: c3 ab)
|
||||
0x00, 0x45, 0x7e, 0x40, 0x00, 0x00, // 172: 'ì' U+00ec (utf-8: c3 ac)
|
||||
0x00, 0x44, 0x7e, 0x41, 0x00, 0x00, // 173: 'í' U+00ed (utf-8: c3 ad)
|
||||
0x00, 0x46, 0x7d, 0x42, 0x00, 0x00, // 174: 'î' U+00ee (utf-8: c3 ae)
|
||||
0x00, 0x45, 0x7c, 0x41, 0x00, 0x00, // 175: 'ï' U+00ef (utf-8: c3 af)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 176: 'ð' U+00f0 (utf-8: c3 b0)
|
||||
0x78, 0x12, 0x09, 0x0a, 0x71, 0x00, // 177: 'ñ' U+00f1 (utf-8: c3 b1)
|
||||
0x38, 0x45, 0x46, 0x44, 0x38, 0x00, // 178: 'ò' U+00f2 (utf-8: c3 b2)
|
||||
0x38, 0x44, 0x46, 0x45, 0x38, 0x00, // 179: 'ó' U+00f3 (utf-8: c3 b3)
|
||||
0x38, 0x46, 0x45, 0x46, 0x38, 0x00, // 180: 'ô' U+00f4 (utf-8: c3 b4)
|
||||
0x32, 0x49, 0x4a, 0x31, 0x00, 0x00, // 181: 'õ' U+00f5 (utf-8: c3 b5)
|
||||
0x38, 0x45, 0x44, 0x45, 0x38, 0x00, // 182: 'ö' U+00f6 (utf-8: c3 b6)
|
||||
0x08, 0x08, 0x2a, 0x08, 0x08, 0x00, // 183: '÷' U+00f7 (utf-8: c3 b7)
|
||||
0x58, 0x24, 0x54, 0x48, 0x34, 0x00, // 184: 'ø' U+00f8 (utf-8: c3 b8)
|
||||
0x3c, 0x41, 0x42, 0x20, 0x7c, 0x00, // 185: 'ù' U+00f9 (utf-8: c3 b9)
|
||||
0x3c, 0x40, 0x42, 0x21, 0x7c, 0x00, // 186: 'ú' U+00fa (utf-8: c3 ba)
|
||||
0x3c, 0x42, 0x41, 0x22, 0x7c, 0x00, // 187: 'û' U+00fb (utf-8: c3 bb)
|
||||
0x3c, 0x41, 0x40, 0x21, 0x5c, 0x00, // 188: 'ü' U+00fc (utf-8: c3 bc)
|
||||
0x44, 0x48, 0x32, 0x11, 0x0c, 0x00, // 189: 'ý' U+00fd (utf-8: c3 bd)
|
||||
0x7c, 0x28, 0x28, 0x10, 0x00, 0x00, // 190: 'þ' U+00fe (utf-8: c3 be)
|
||||
0x44, 0x49, 0x30, 0x11, 0x0c, 0x00, // 191: 'ÿ' U+00ff (utf-8: c3 bf)
|
||||
#ifdef CYRILLIC_GLYPHS
|
||||
/* Cyrillic */
|
||||
// ---- PAGE U+0400-U+043F (UTF 0xD080-0xD0BF) ----
|
||||
0x7c, 0x55, 0x56, 0x44, 0x44, 0x00, // 192: 'Ѐ' U+0400 (utf-8: d0 80)
|
||||
0x7c, 0x55, 0x54, 0x45, 0x44, 0x00, // 193: 'Ё' U+0401 (utf-8: d0 81)
|
||||
0x01, 0x7f, 0x09, 0x49, 0x31, 0x00, // 194: 'Ђ' U+0402 (utf-8: d0 82)
|
||||
0x7c, 0x04, 0x06, 0x05, 0x04, 0x00, // 195: 'Ѓ' U+0403 (utf-8: d0 83)
|
||||
0x3e, 0x49, 0x49, 0x41, 0x00, 0x00, // 196: 'Є' U+0404 (utf-8: d0 84)
|
||||
0x06, 0x49, 0x49, 0x49, 0x30, 0x00, // 197: 'Ѕ' U+0405 (utf-8: d0 85)
|
||||
0x41, 0x41, 0x7f, 0x41, 0x41, 0x00, // 198: 'І' U+0406 (utf-8: d0 86)
|
||||
0x44, 0x45, 0x7c, 0x45, 0x44, 0x00, // 199: 'Ї' U+0407 (utf-8: d0 87)
|
||||
0x20, 0x40, 0x41, 0x3f, 0x01, 0x00, // 200: 'Ј' U+0408 (utf-8: d0 88)
|
||||
0x7f, 0x01, 0x7f, 0x48, 0x30, 0x00, // 201: 'Љ' U+0409 (utf-8: d0 89)
|
||||
0x7f, 0x08, 0x7f, 0x48, 0x30, 0x00, // 202: 'Њ' U+040a (utf-8: d0 8a)
|
||||
0x01, 0x01, 0x7f, 0x09, 0x71, 0x00, // 203: 'Ћ' U+040b (utf-8: d0 8b)
|
||||
0x7c, 0x12, 0x29, 0x44, 0x00, 0x00, // 204: 'Ќ' U+040c (utf-8: d0 8c)
|
||||
0x7c, 0x21, 0x12, 0x08, 0x7c, 0x00, // 205: 'Ѝ' U+040d (utf-8: d0 8d)
|
||||
0x44, 0x49, 0x32, 0x09, 0x04, 0x00, // 206: 'Ў' U+040e (utf-8: d0 8e)
|
||||
0x3f, 0x20, 0x60, 0x20, 0x3f, 0x00, // 207: 'Џ' U+040f (utf-8: d0 8f)
|
||||
0x7e, 0x09, 0x09, 0x09, 0x7e, 0x00, // 208: 'А' U+0410 (utf-8: d0 90)
|
||||
0x7f, 0x49, 0x49, 0x49, 0x31, 0x00, // 209: 'Б' U+0411 (utf-8: d0 91)
|
||||
0x7f, 0x49, 0x49, 0x49, 0x36, 0x00, // 210: 'В' U+0412 (utf-8: d0 92)
|
||||
0x7f, 0x01, 0x01, 0x01, 0x01, 0x00, // 211: 'Г' U+0413 (utf-8: d0 93)
|
||||
0x60, 0x3f, 0x21, 0x3f, 0x60, 0x00, // 212: 'Д' U+0414 (utf-8: d0 94)
|
||||
0x7f, 0x49, 0x49, 0x49, 0x41, 0x00, // 213: 'Е' U+0415 (utf-8: d0 95)
|
||||
0x77, 0x08, 0x7f, 0x08, 0x77, 0x00, // 214: 'Ж' U+0416 (utf-8: d0 96)
|
||||
0x00, 0x41, 0x49, 0x49, 0x36, 0x00, // 215: 'З' U+0417 (utf-8: d0 97)
|
||||
0x7f, 0x10, 0x08, 0x04, 0x7f, 0x00, // 216: 'И' U+0418 (utf-8: d0 98)
|
||||
0x7c, 0x21, 0x12, 0x09, 0x7c, 0x00, // 217: 'Й' U+0419 (utf-8: d0 99)
|
||||
0x7f, 0x08, 0x14, 0x22, 0x41, 0x00, // 218: 'К' U+041a (utf-8: d0 9a)
|
||||
0x40, 0x3f, 0x01, 0x01, 0x7f, 0x00, // 219: 'Л' U+041b (utf-8: d0 9b)
|
||||
0x7f, 0x02, 0x04, 0x02, 0x7f, 0x00, // 220: 'М' U+041c (utf-8: d0 9c)
|
||||
0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00, // 221: 'Н' U+041d (utf-8: d0 9d)
|
||||
0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, // 222: 'О' U+041e (utf-8: d0 9e)
|
||||
0x7f, 0x01, 0x01, 0x01, 0x7f, 0x00, // 223: 'П' U+041f (utf-8: d0 9f)
|
||||
0x7f, 0x09, 0x09, 0x09, 0x06, 0x00, // 224: 'Р' U+0420 (utf-8: d0 a0)
|
||||
0x3e, 0x41, 0x41, 0x41, 0x22, 0x00, // 225: 'С' U+0421 (utf-8: d0 a1)
|
||||
0x01, 0x01, 0x7f, 0x01, 0x01, 0x00, // 226: 'Т' U+0422 (utf-8: d0 a2)
|
||||
0x47, 0x48, 0x30, 0x08, 0x07, 0x00, // 227: 'У' U+0423 (utf-8: d0 a3)
|
||||
0x0c, 0x12, 0x7f, 0x12, 0x0c, 0x00, // 228: 'Ф' U+0424 (utf-8: d0 a4)
|
||||
0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 229: 'Х' U+0425 (utf-8: d0 a5)
|
||||
0x3f, 0x20, 0x20, 0x3f, 0x60, 0x00, // 230: 'Ц' U+0426 (utf-8: d0 a6)
|
||||
0x07, 0x08, 0x08, 0x08, 0x7f, 0x00, // 231: 'Ч' U+0427 (utf-8: d0 a7)
|
||||
0x3f, 0x20, 0x3f, 0x20, 0x3f, 0x00, // 232: 'Ш' U+0428 (utf-8: d0 a8)
|
||||
0x3f, 0x20, 0x3f, 0x20, 0x3f, 0x60, // 233: 'Щ' U+0429 (utf-8: d0 a9)
|
||||
0x01, 0x7f, 0x48, 0x48, 0x30, 0x00, // 234: 'Ъ' U+042a (utf-8: d0 aa)
|
||||
0x7f, 0x48, 0x30, 0x00, 0x7f, 0x00, // 235: 'Ы' U+042b (utf-8: d0 ab)
|
||||
0x00, 0x7f, 0x48, 0x48, 0x30, 0x00, // 236: 'Ь' U+042c (utf-8: d0 ac)
|
||||
0x22, 0x49, 0x49, 0x2a, 0x1c, 0x00, // 237: 'Э' U+042d (utf-8: d0 ad)
|
||||
0x7f, 0x08, 0x3e, 0x41, 0x3e, 0x00, // 238: 'Ю' U+042e (utf-8: d0 ae)
|
||||
0x46, 0x29, 0x19, 0x09, 0x7f, 0x00, // 239: 'Я' U+042f (utf-8: d0 af)
|
||||
0x20, 0x54, 0x54, 0x54, 0x78, 0x00, // 240: 'а' U+0430 (utf-8: d0 b0)
|
||||
0x3c, 0x4a, 0x4a, 0x4a, 0x30, 0x00, // 241: 'б' U+0431 (utf-8: d0 b1)
|
||||
0x7c, 0x54, 0x54, 0x54, 0x28, 0x00, // 242: 'в' U+0432 (utf-8: d0 b2)
|
||||
0x7c, 0x04, 0x04, 0x04, 0x04, 0x00, // 243: 'г' U+0433 (utf-8: d0 b3)
|
||||
0x40, 0x3c, 0x24, 0x3c, 0x60, 0x00, // 244: 'д' U+0434 (utf-8: d0 b4)
|
||||
0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 245: 'е' U+0435 (utf-8: d0 b5)
|
||||
0x6c, 0x10, 0x7c, 0x10, 0x6c, 0x00, // 246: 'ж' U+0436 (utf-8: d0 b6)
|
||||
0x28, 0x44, 0x54, 0x54, 0x28, 0x00, // 247: 'з' U+0437 (utf-8: d0 b7)
|
||||
0x7c, 0x20, 0x10, 0x08, 0x7c, 0x00, // 248: 'и' U+0438 (utf-8: d0 b8)
|
||||
0x7c, 0x21, 0x12, 0x09, 0x7c, 0x00, // 249: 'й' U+0439 (utf-8: d0 b9)
|
||||
0x7c, 0x10, 0x28, 0x44, 0x00, 0x00, // 250: 'к' U+043a (utf-8: d0 ba)
|
||||
0x40, 0x3c, 0x04, 0x04, 0x7c, 0x00, // 251: 'л' U+043b (utf-8: d0 bb)
|
||||
0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00, // 252: 'м' U+043c (utf-8: d0 bc)
|
||||
0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00, // 253: 'н' U+043d (utf-8: d0 bd)
|
||||
0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 254: 'о' U+043e (utf-8: d0 be)
|
||||
0x7c, 0x04, 0x04, 0x04, 0x7c, 0x00, // 255: 'п' U+043f (utf-8: d0 bf)
|
||||
|
||||
// ---- HALF-PAGE U+0440-U+045F (UTF 0xD180-0xD1BF) ----
|
||||
0x7c, 0x14, 0x14, 0x14, 0x08, 0x00, // 256: 'р' U+0440 (utf-8: d1 80)
|
||||
0x38, 0x44, 0x44, 0x44, 0x20, 0x00, // 257: 'с' U+0441 (utf-8: d1 81)
|
||||
0x04, 0x04, 0x7c, 0x04, 0x04, 0x00, // 258: 'т' U+0442 (utf-8: d1 82)
|
||||
0x4c, 0x50, 0x20, 0x10, 0x0c, 0x00, // 259: 'у' U+0443 (utf-8: d1 83)
|
||||
0x18, 0x24, 0x7e, 0x24, 0x18, 0x00, // 260: 'ф' U+0444 (utf-8: d1 84)
|
||||
0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 261: 'х' U+0445 (utf-8: d1 85)
|
||||
0x3c, 0x20, 0x20, 0x3c, 0x60, 0x00, // 262: 'ц' U+0446 (utf-8: d1 86)
|
||||
0x0c, 0x10, 0x10, 0x10, 0x7c, 0x00, // 263: 'ч' U+0447 (utf-8: d1 87)
|
||||
0x3c, 0x20, 0x3c, 0x20, 0x3c, 0x00, // 264: 'ш' U+0448 (utf-8: d1 88)
|
||||
0x3c, 0x20, 0x3c, 0x20, 0x7c, 0x00, // 265: 'щ' U+0449 (utf-8: d1 89)
|
||||
0x04, 0x7c, 0x50, 0x20, 0x00, 0x00, // 266: 'ъ' U+044a (utf-8: d1 8a)
|
||||
0x7c, 0x50, 0x20, 0x00, 0x7c, 0x00, // 267: 'ы' U+044b (utf-8: d1 8b)
|
||||
0x00, 0x7c, 0x50, 0x20, 0x00, 0x00, // 268: 'ь' U+044c (utf-8: d1 8c)
|
||||
0x28, 0x44, 0x54, 0x54, 0x28, 0x00, // 269: 'э' U+044d (utf-8: d1 8d)
|
||||
0x7c, 0x10, 0x38, 0x44, 0x38, 0x00, // 270: 'ю' U+044e (utf-8: d1 8e)
|
||||
0x48, 0x34, 0x14, 0x14, 0x7c, 0x00, // 271: 'я' U+044f (utf-8: d1 8f)
|
||||
0x38, 0x55, 0x56, 0x54, 0x08, 0x00, // 272: 'ѐ' U+0450 (utf-8: d1 90)
|
||||
0x38, 0x55, 0x54, 0x55, 0x08, 0x00, // 273: 'ё' U+0451 (utf-8: d1 91)
|
||||
0x02, 0x3f, 0x12, 0x48, 0x30, 0x00, // 274: 'ђ' U+0452 (utf-8: d1 92)
|
||||
0x7c, 0x04, 0x06, 0x05, 0x04, 0x00, // 275: 'ѓ' U+0453 (utf-8: d1 93)
|
||||
0x38, 0x54, 0x54, 0x44, 0x28, 0x00, // 276: 'є' U+0454 (utf-8: d1 94)
|
||||
0x08, 0x54, 0x54, 0x54, 0x20, 0x00, // 277: 'ѕ' U+0455 (utf-8: d1 95)
|
||||
0x00, 0x44, 0x7d, 0x40, 0x00, 0x00, // 278: 'і' U+0456 (utf-8: d1 96)
|
||||
0x00, 0x45, 0x7c, 0x41, 0x00, 0x00, // 279: 'ї' U+0457 (utf-8: d1 97)
|
||||
0x20, 0x40, 0x44, 0x3d, 0x00, 0x00, // 280: 'ј' U+0458 (utf-8: d1 98)
|
||||
0x7c, 0x04, 0x7c, 0x50, 0x20, 0x00, // 281: 'љ' U+0459 (utf-8: d1 99)
|
||||
0x7c, 0x10, 0x7c, 0x50, 0x20, 0x00, // 282: 'њ' U+045a (utf-8: d1 9a)
|
||||
0x04, 0x7e, 0x14, 0x10, 0x60, 0x00, // 283: 'ћ' U+045b (utf-8: d1 9b)
|
||||
0x7c, 0x12, 0x29, 0x44, 0x00, 0x00, // 284: 'ќ' U+045c (utf-8: d1 9c)
|
||||
0x7c, 0x21, 0x12, 0x08, 0x7c, 0x00, // 285: 'ѝ' U+045d (utf-8: d1 9d)
|
||||
0x4c, 0x51, 0x22, 0x11, 0x0c, 0x00, // 286: 'ў' U+045e (utf-8: d1 9e)
|
||||
0x3c, 0x20, 0x60, 0x20, 0x3c, 0x00, // 287: 'џ' U+045f (utf-8: d1 9f)
|
||||
#else
|
||||
/* Latin Extended-A */
|
||||
// ---- PAGE U+0100-U+013F (UTF 0xC480-0xC4BF) ----
|
||||
0x78, 0x15, 0x15, 0x15, 0x78, 0x00, // 192: 'Ā' U+0100 (utf-8: c4 80)
|
||||
0x20, 0x55, 0x55, 0x55, 0x78, 0x00, // 193: 'ā' U+0101 (utf-8: c4 81)
|
||||
0x78, 0x15, 0x16, 0x15, 0x78, 0x00, // 194: 'Ă' U+0102 (utf-8: c4 82)
|
||||
0x20, 0x55, 0x56, 0x55, 0x78, 0x00, // 195: 'ă' U+0103 (utf-8: c4 83)
|
||||
0x7e, 0x09, 0x09, 0x49, 0xbe, 0x00, // 196: 'Ą' U+0104 (utf-8: c4 84)
|
||||
0x20, 0x54, 0x54, 0xd4, 0x78, 0x00, // 197: 'ą' U+0105 (utf-8: c4 85)
|
||||
0x38, 0x44, 0x46, 0x45, 0x28, 0x00, // 198: 'Ć' U+0106 (utf-8: c4 86)
|
||||
0x38, 0x44, 0x46, 0x45, 0x20, 0x00, // 199: 'ć' U+0107 (utf-8: c4 87)
|
||||
0x38, 0x46, 0x45, 0x46, 0x28, 0x00, // 200: 'Ĉ' U+0108 (utf-8: c4 88)
|
||||
0x38, 0x46, 0x45, 0x46, 0x20, 0x00, // 201: 'ĉ' U+0109 (utf-8: c4 89)
|
||||
0x38, 0x44, 0x45, 0x44, 0x28, 0x00, // 202: 'Ċ' U+010a (utf-8: c4 8a)
|
||||
0x38, 0x44, 0x45, 0x44, 0x20, 0x00, // 203: 'ċ' U+010b (utf-8: c4 8b)
|
||||
0x38, 0x45, 0x46, 0x45, 0x28, 0x00, // 204: 'Č' U+010c (utf-8: c4 8c)
|
||||
0x38, 0x45, 0x46, 0x45, 0x20, 0x00, // 205: 'č' U+010d (utf-8: c4 8d)
|
||||
0x7c, 0x45, 0x46, 0x29, 0x10, 0x00, // 206: 'Ď' U+010e (utf-8: c4 8e)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 207: 'ď' U+010f (utf-8: c4 8f)
|
||||
0x08, 0x7f, 0x49, 0x22, 0x1c, 0x00, // 208: 'Đ' U+0110 (utf-8: c4 90)
|
||||
0x38, 0x44, 0x44, 0x4A, 0x7F, 0x00, // 209: 'đ' U+0111 (utf-8: c4 91)
|
||||
0x7c, 0x55, 0x55, 0x55, 0x44, 0x00, // 210: 'Ē' U+0112 (utf-8: c4 92)
|
||||
0x38, 0x55, 0x55, 0x55, 0x08, 0x00, // 211: 'ē' U+0113 (utf-8: c4 93)
|
||||
0x7c, 0x55, 0x56, 0x55, 0x44, 0x00, // 212: 'Ĕ' U+0114 (utf-8: c4 94)
|
||||
0x38, 0x55, 0x56, 0x55, 0x08, 0x00, // 213: 'ĕ' U+0115 (utf-8: c4 95)
|
||||
0x7c, 0x54, 0x55, 0x54, 0x44, 0x00, // 214: 'Ė' U+0116 (utf-8: c4 96)
|
||||
0x38, 0x54, 0x55, 0x54, 0x08, 0x00, // 215: 'ė' U+0117 (utf-8: c4 97)
|
||||
0x7f, 0x49, 0x49, 0xc9, 0x41, 0x00, // 216: 'Ę' U+0118 (utf-8: c4 98)
|
||||
0x38, 0x54, 0x54, 0xd4, 0x18, 0x00, // 217: 'ę' U+0119 (utf-8: c4 99)
|
||||
0x7c, 0x55, 0x56, 0x55, 0x44, 0x00, // 218: 'Ě' U+011a (utf-8: c4 9a)
|
||||
0x38, 0x55, 0x56, 0x55, 0x08, 0x00, // 219: 'ě' U+011b (utf-8: c4 9b)
|
||||
0x38, 0x46, 0x55, 0x56, 0x70, 0x00, // 220: 'Ĝ' U+011c (utf-8: c4 9c)
|
||||
0x08, 0x56, 0x55, 0x56, 0x3c, 0x00, // 221: 'ĝ' U+011d (utf-8: c4 9d)
|
||||
0x38, 0x45, 0x56, 0x55, 0x30, 0x00, // 222: 'Ğ' U+011e (utf-8: c4 9e)
|
||||
0x08, 0x55, 0x56, 0x55, 0x3c, 0x00, // 223: 'ğ' U+011f (utf-8: c4 9f)
|
||||
0x38, 0x44, 0x55, 0x54, 0x30, 0x00, // 224: 'Ġ' U+0120 (utf-8: c4 a0)
|
||||
0x08, 0x54, 0x55, 0x54, 0x3c, 0x00, // 225: 'ġ' U+0121 (utf-8: c4 a1)
|
||||
0x0e, 0x51, 0x35, 0x15, 0x1c, 0x00, // 226: 'Ģ' U+0122 (utf-8: c4 a2)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 227: 'ģ' U+0123 (utf-8: c4 a3)
|
||||
0x7c, 0x12, 0x11, 0x12, 0x7c, 0x00, // 228: 'Ĥ' U+0124 (utf-8: c4 a4)
|
||||
0x02, 0x79, 0x22, 0x10, 0x60, 0x00, // 229: 'ĥ' U+0125 (utf-8: c4 a5)
|
||||
0x02, 0x7f, 0x0a, 0x7f, 0x02, 0x00, // 230: 'Ħ' U+0126 (utf-8: c4 a6)
|
||||
0x02, 0x7f, 0x12, 0x08, 0x70, 0x00, // 231: 'ħ' U+0127 (utf-8: c4 a7)
|
||||
0x4a, 0x49, 0x7a, 0x49, 0x48, 0x00, // 232: 'Ĩ' U+0128 (utf-8: c4 a8)
|
||||
0x02, 0x49, 0x7a, 0x41, 0x00, 0x00, // 233: 'ĩ' U+0129 (utf-8: c4 a9)
|
||||
0x44, 0x45, 0x7d, 0x45, 0x44, 0x00, // 234: 'Ī' U+012a (utf-8: c4 aa)
|
||||
0x00, 0x45, 0x7d, 0x41, 0x00, 0x00, // 235: 'ī' U+012b (utf-8: c4 ab)
|
||||
0x44, 0x45, 0x7e, 0x45, 0x44, 0x00, // 236: 'Ĭ' U+012c (utf-8: c4 ac)
|
||||
0x00, 0x45, 0x7e, 0x41, 0x00, 0x00, // 237: 'ĭ' U+012d (utf-8: c4 ad)
|
||||
0x00, 0x41, 0x7f, 0xc1, 0x00, 0x00, // 238: 'Į' U+012e (utf-8: c4 ae)
|
||||
0x00, 0x44, 0x7d, 0xc0, 0x00, 0x00, // 239: 'į' U+012f (utf-8: c4 af)
|
||||
0x44, 0x44, 0x7d, 0x44, 0x44, 0x00, // 240: 'İ' U+0130 (utf-8: c4 b0)
|
||||
0x00, 0x44, 0x7c, 0x40, 0x00, 0x00, // 241: 'ı' U+0131 (utf-8: c4 b1)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 242: 'IJ' U+0132 (utf-8: c4 b2)
|
||||
0x44, 0x7d, 0x40, 0x44, 0x3d, 0x00, // 243: 'ij' U+0133 (utf-8: c4 b3)
|
||||
0x20, 0x40, 0x46, 0x3d, 0x06, 0x00, // 244: 'Ĵ' U+0134 (utf-8: c4 b4)
|
||||
0x00, 0x20, 0x46, 0x3d, 0x02, 0x00, // 245: 'ĵ' U+0135 (utf-8: c4 b5)
|
||||
0x1f, 0x44, 0x2a, 0x11, 0x00, 0x00, // 246: 'Ķ' U+0136 (utf-8: c4 b6)
|
||||
0x1f, 0x44, 0x2a, 0x11, 0x00, 0x00, // 247: 'ķ' U+0137 (utf-8: c4 b7)
|
||||
0x7c, 0x10, 0x28, 0x44, 0x00, 0x00, // 248: 'ĸ' U+0138 (utf-8: c4 b8)
|
||||
0x7c, 0x40, 0x42, 0x41, 0x40, 0x00, // 249: 'Ĺ' U+0139 (utf-8: c4 b9)
|
||||
0x00, 0x44, 0x7e, 0x41, 0x00, 0x00, // 250: 'ĺ' U+013a (utf-8: c4 ba)
|
||||
0x1f, 0x50, 0x30, 0x10, 0x10, 0x00, // 251: 'Ļ' U+013b (utf-8: c4 bb)
|
||||
0x00, 0x51, 0x3f, 0x10, 0x00, 0x00, // 252: 'ļ' U+013c (utf-8: c4 bc)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 253: 'Ľ' U+013d (utf-8: c4 bd)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 254: 'ľ' U+013e (utf-8: c4 be)
|
||||
0x7f, 0x40, 0x40, 0x48, 0x40, 0x00, // 255: 'Ŀ' U+013f (utf-8: c4 bf)
|
||||
|
||||
// ---- PAGE U+0140-U+017F (UTF 0xC580-0xC5BF) ----
|
||||
0x00, 0x41, 0x7f, 0x40, 0x08, 0x00, // 256: 'ŀ' U+0140 (utf-8: c5 80)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 257: 'Ł' U+0141 (utf-8: c5 81)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 258: 'ł' U+0142 (utf-8: c5 82)
|
||||
0x7c, 0x08, 0x12, 0x21, 0x7c, 0x00, // 259: 'Ń' U+0143 (utf-8: c5 83)
|
||||
0x7c, 0x08, 0x06, 0x05, 0x78, 0x00, // 260: 'ń' U+0144 (utf-8: c5 84)
|
||||
0x1f, 0x42, 0x24, 0x08, 0x1f, 0x00, // 261: 'Ņ' U+0145 (utf-8: c5 85)
|
||||
0x1f, 0x42, 0x21, 0x01, 0x1e, 0x00, // 262: 'ņ' U+0146 (utf-8: c5 86)
|
||||
0x7c, 0x09, 0x12, 0x21, 0x7c, 0x00, // 263: 'Ň' U+0147 (utf-8: c5 87)
|
||||
0x7c, 0x09, 0x06, 0x05, 0x78, 0x00, // 264: 'ň' U+0148 (utf-8: c5 88)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 265: 'ʼn' U+0149 (utf-8: c5 89)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 266: 'Ŋ' U+014a (utf-8: c5 8a)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 267: 'ŋ' U+014b (utf-8: c5 8b)
|
||||
0x38, 0x45, 0x45, 0x45, 0x38, 0x00, // 268: 'Ō' U+014c (utf-8: c5 8c)
|
||||
0x38, 0x45, 0x45, 0x45, 0x38, 0x00, // 269: 'ō' U+014d (utf-8: c5 8d)
|
||||
0x38, 0x45, 0x46, 0x45, 0x38, 0x00, // 270: 'Ŏ' U+014e (utf-8: c5 8e)
|
||||
0x38, 0x45, 0x46, 0x45, 0x38, 0x00, // 271: 'ŏ' U+014f (utf-8: c5 8f)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 272: 'Ő' U+0150 (utf-8: c5 90)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 273: 'ő' U+0151 (utf-8: c5 91)
|
||||
0x3e, 0x41, 0x7f, 0x49, 0x49, 0x00, // 274: 'Œ' U+0152 (utf-8: c5 92)
|
||||
0x38, 0x44, 0x7c, 0x54, 0x58, 0x00, // 275: 'œ' U+0153 (utf-8: c5 93)
|
||||
0x7c, 0x14, 0x16, 0x15, 0x68, 0x00, // 276: 'Ŕ' U+0154 (utf-8: c5 94)
|
||||
0x7c, 0x08, 0x06, 0x05, 0x08, 0x00, // 277: 'ŕ' U+0155 (utf-8: c5 95)
|
||||
0x1f, 0x45, 0x25, 0x05, 0x1a, 0x00, // 278: 'Ŗ' U+0156 (utf-8: c5 96)
|
||||
0x1f, 0x42, 0x21, 0x01, 0x02, 0x00, // 279: 'ŗ' U+0157 (utf-8: c5 97)
|
||||
0x7c, 0x15, 0x16, 0x15, 0x68, 0x00, // 280: 'Ř' U+0158 (utf-8: c5 98)
|
||||
0x7c, 0x09, 0x06, 0x05, 0x08, 0x00, // 281: 'ř' U+0159 (utf-8: c5 99)
|
||||
0x08, 0x54, 0x56, 0x55, 0x20, 0x00, // 282: 'Ś' U+015a (utf-8: c5 9a)
|
||||
0x48, 0x54, 0x56, 0x55, 0x24, 0x00, // 283: 'ś' U+015b (utf-8: c5 9b)
|
||||
0x08, 0x56, 0x55, 0x56, 0x20, 0x00, // 284: 'Ŝ' U+015c (utf-8: c5 9c)
|
||||
0x48, 0x56, 0x55, 0x56, 0x24, 0x00, // 285: 'ŝ' U+015d (utf-8: c5 9d)
|
||||
0x02, 0x55, 0x35, 0x15, 0x08, 0x00, // 286: 'Ş' U+015e (utf-8: c5 9e)
|
||||
0x12, 0x55, 0x35, 0x15, 0x09, 0x00, // 287: 'ş' U+015f (utf-8: c5 9f)
|
||||
0x08, 0x55, 0x56, 0x55, 0x20, 0x00, // 288: 'Š' U+0160 (utf-8: c5 a0)
|
||||
0x48, 0x55, 0x56, 0x55, 0x24, 0x00, // 289: 'š' U+0161 (utf-8: c5 a1)
|
||||
0x01, 0x41, 0x3f, 0x01, 0x01, 0x00, // 290: 'Ţ' U+0162 (utf-8: c5 a2)
|
||||
0x02, 0x4f, 0x32, 0x10, 0x08, 0x00, // 291: 'ţ' U+0163 (utf-8: c5 a3)
|
||||
0x04, 0x05, 0x7e, 0x05, 0x04, 0x00, // 292: 'Ť' U+0164 (utf-8: c5 a4)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 293: 'ť' U+0165 (utf-8: c5 a5)
|
||||
0x01, 0x09, 0x7f, 0x09, 0x01, 0x00, // 294: 'Ŧ' U+0166 (utf-8: c5 a6)
|
||||
0x14, 0x3e, 0x54, 0x40, 0x20, 0x00, // 295: 'ŧ' U+0167 (utf-8: c5 a7)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 296: 'Ũ' U+0168 (utf-8: c5 a8)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 297: 'ũ' U+0169 (utf-8: c5 a9)
|
||||
0x3c, 0x41, 0x41, 0x41, 0x3c, 0x00, // 298: 'Ū' U+016a (utf-8: c5 aa)
|
||||
0x3c, 0x41, 0x41, 0x21, 0x7c, 0x00, // 299: 'ū' U+016b (utf-8: c5 ab)
|
||||
0x3c, 0x41, 0x42, 0x41, 0x3c, 0x00, // 300: 'Ŭ' U+016c (utf-8: c5 ac)
|
||||
0x3c, 0x41, 0x41, 0x21, 0x7c, 0x00, // 301: 'ŭ' U+016d (utf-8: c5 ad)
|
||||
0x3c, 0x40, 0x41, 0x40, 0x3c, 0x00, // 302: 'Ů' U+016e (utf-8: c5 ae)
|
||||
0x3c, 0x41, 0x41, 0x21, 0x7c, 0x00, // 303: 'ů' U+016f (utf-8: c5 af)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 304: 'Ű' U+0170 (utf-8: c5 b0)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 305: 'ű' U+0171 (utf-8: c5 b1)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 306: 'Ų' U+0172 (utf-8: c5 b2)
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 307: 'ų' U+0173 (utf-8: c5 b3)
|
||||
0x3c, 0x42, 0x39, 0x42, 0x3c, 0x00, // 308: 'Ŵ' U+0174 (utf-8: c5 b4)
|
||||
0x3c, 0x42, 0x31, 0x42, 0x3c, 0x00, // 309: 'ŵ' U+0175 (utf-8: c5 b5)
|
||||
0x04, 0x0a, 0x71, 0x0a, 0x04, 0x00, // 310: 'Ŷ' U+0176 (utf-8: c5 b6)
|
||||
0x04, 0x4a, 0x31, 0x12, 0x0c, 0x00, // 311: 'ŷ' U+0177 (utf-8: c5 b7)
|
||||
0x04, 0x09, 0x70, 0x09, 0x04, 0x00, // 312: 'Ÿ' U+0178 (utf-8: c5 b8)
|
||||
0x44, 0x64, 0x56, 0x4d, 0x44, 0x00, // 313: 'Ź' U+0179 (utf-8: c5 b9)
|
||||
0x44, 0x64, 0x56, 0x4d, 0x44, 0x00, // 314: 'ź' U+017a (utf-8: c5 ba)
|
||||
0x44, 0x64, 0x55, 0x4c, 0x44, 0x00, // 315: 'Ż' U+017b (utf-8: c5 bb)
|
||||
0x44, 0x64, 0x55, 0x4c, 0x44, 0x00, // 316: 'ż' U+017c (utf-8: c5 bc)
|
||||
0x44, 0x65, 0x56, 0x4d, 0x44, 0x00, // 317: 'Ž' U+017d (utf-8: c5 bd)
|
||||
0x44, 0x65, 0x56, 0x4d, 0x44, 0x00, // 318: 'ž' U+017e (utf-8: c5 be)
|
||||
0x00, 0x04, 0x7e, 0x01, 0x01, 0x00 // 319: 'ſ' U+017f (utf-8: c5 bf)
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* FONT_H_ */
|
||||
|
||||
@@ -38,7 +38,6 @@ public:
|
||||
//or we need to goto double buffering
|
||||
}
|
||||
|
||||
static void drawChar(char c, char preCursorCommand = '\0'); // Draw a character to a specific location
|
||||
// Turn the screen on or not
|
||||
static void displayOnOff(bool on) {
|
||||
displayOnOffState = on;
|
||||
@@ -92,9 +91,7 @@ public:
|
||||
bool clear);
|
||||
static void drawHeatSymbol(uint8_t state);
|
||||
private:
|
||||
|
||||
//Draw a buffer to the screen buffer
|
||||
|
||||
static void drawChar(char c); // Draw a character to a specific location
|
||||
static const uint8_t* currentFont;// Pointer to the current font used for rendering to the buffer
|
||||
static uint8_t* firstStripPtr; // Pointers to the strips to allow for buffer having extra content
|
||||
static uint8_t* secondStripPtr; //Pointers to the strips
|
||||
|
||||
@@ -48,6 +48,9 @@ typedef struct {
|
||||
uint8_t customTipGain; // Tip gain value if custom tuned, or 0 if using a
|
||||
// tipType param
|
||||
uint8_t tipType;
|
||||
#ifdef MODEL_TS80
|
||||
uint8_t pidPowerLimit;
|
||||
#endif
|
||||
uint32_t padding; // This is here for in case we are not an even divisor so
|
||||
// that nothing gets cut off
|
||||
} systemSettingsType;
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
#ifndef TRANSLATION_H_
|
||||
#define TRANSLATION_H_
|
||||
|
||||
#include "stm32f1xx_hal.h"
|
||||
enum ShortNameType {
|
||||
SHORT_NAME_SINGLE_LINE = 1,
|
||||
SHORT_NAME_DOUBLE_LINE = 2,
|
||||
SHORT_NAME_SINGLE_LINE = 1, SHORT_NAME_DOUBLE_LINE = 2,
|
||||
};
|
||||
|
||||
extern const uint8_t USER_FONT_12[];
|
||||
extern const uint8_t USER_FONT_6x8[];
|
||||
/*
|
||||
* When SettingsShortNameType is SHORT_NAME_SINGLE_LINE
|
||||
* use SettingsShortNames as SettingsShortNames[16][1].. second column undefined
|
||||
@@ -41,14 +41,31 @@ extern const char* IdleSetString;
|
||||
extern const char* TipDisconnectedString;
|
||||
extern const char* SolderingAdvancedPowerPrompt;
|
||||
extern const char* OffString;
|
||||
extern const char* ResetOKMessage;
|
||||
extern const char* YourGainMessage;
|
||||
|
||||
extern const char SettingTrueChar;
|
||||
extern const char SettingFalseChar;
|
||||
extern const char SettingRightChar;
|
||||
extern const char SettingLeftChar;
|
||||
extern const char SettingAutoChar;
|
||||
extern const char* SettingTrueChar;
|
||||
extern const char* SettingFalseChar;
|
||||
extern const char* SettingRightChar;
|
||||
extern const char* SettingLeftChar;
|
||||
extern const char* SettingAutoChar;
|
||||
|
||||
extern const char SettingFastChar;
|
||||
extern const char SettingSlowChar;
|
||||
extern const char* SettingFastChar;
|
||||
extern const char* SettingSlowChar;
|
||||
extern const char* TipModelStrings[];
|
||||
extern const char* SymbolPlus;
|
||||
extern const char* SymbolMinus;
|
||||
extern const char* SymbolSpace;
|
||||
extern const char* SymbolDot;
|
||||
extern const char* SymbolDegC;
|
||||
extern const char* SymbolDegF;
|
||||
extern const char* SymbolMinutes;
|
||||
extern const char* SymbolSeconds;
|
||||
extern const char* SymbolWatts;
|
||||
extern const char* SymbolVolts;
|
||||
extern const char* SymbolDC;
|
||||
extern const char* SymbolCellCount;
|
||||
extern const char* SymbolVersionNumber;
|
||||
|
||||
extern const char* DebugMenu[];
|
||||
#endif /* TRANSLATION_H_ */
|
||||
|
||||
@@ -16,7 +16,7 @@ extern "C" {
|
||||
enum Orientation {
|
||||
ORIENTATION_LEFT_HAND = 0, ORIENTATION_RIGHT_HAND = 1, ORIENTATION_FLAT = 3
|
||||
};
|
||||
|
||||
#define PID_TIM_HZ (8)
|
||||
#if defined(MODEL_TS100) + defined(MODEL_TS80) > 1
|
||||
#error "Multiple models defined!"
|
||||
#elif defined(MODEL_TS100) + defined(MODEL_TS80) == 0
|
||||
@@ -106,7 +106,7 @@ enum TipType {
|
||||
#endif
|
||||
#ifdef MODEL_TS80
|
||||
enum TipType {
|
||||
TS_B02 = 0, TS_D25 = 1, Tip_MiniWare = 2, Tip_Custom = 2,
|
||||
TS_B02 = 0, TS_D25 = 1, Tip_MiniWare = 2, Tip_Custom = 3,
|
||||
};
|
||||
#endif
|
||||
extern uint16_t tipGainCalValue ;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
// max size = 127
|
||||
template <class T=uint16_t, uint8_t SIZE=15>
|
||||
template <class T, uint8_t SIZE>
|
||||
struct history {
|
||||
static const uint8_t size = SIZE;
|
||||
T buf[size];
|
||||
|
||||
@@ -2,23 +2,38 @@
|
||||
* Power.hpp
|
||||
*
|
||||
* Created on: 28 Oct, 2018
|
||||
* Authors: Ben V. Brown, David Hilton
|
||||
* Authors: Ben V. Brown, David Hilton (David's Idea)
|
||||
*/
|
||||
|
||||
#include "stdint.h"
|
||||
#include <history.hpp>
|
||||
|
||||
#include "hardware.h"
|
||||
#ifndef POWER_HPP_
|
||||
#define POWER_HPP_
|
||||
|
||||
const uint8_t hz = 32;//PID loop rate
|
||||
const uint8_t oscillationPeriod = 3.5 * hz; // dampening look back tuning
|
||||
extern history<uint32_t, oscillationPeriod> milliWattHistory;
|
||||
void setupPower(uint8_t resistance);
|
||||
// thermal mass = 1690 milliJ/*C for my tip.
|
||||
// -> Wattsx10*Seconds to raise Temp from room temp to +100*C, divided by 100*C.
|
||||
// we divide mass by 20 to let the I term dominate near the set point.
|
||||
// This is necessary because of the temp noise and thermal lag in the system.
|
||||
// Once we have feed-forward temp estimation we should be able to better tune this.
|
||||
|
||||
int32_t tempToMilliWatts(int32_t rawTemp, uint16_t mass, uint8_t rawC);
|
||||
#ifdef MODEL_TS100
|
||||
const uint16_t tipMass = 450; // divide here so division is compile-time.
|
||||
const uint8_t tipResistance = 85; //x10 ohms, 8.5 typical for ts100, 4.5 typical for ts80
|
||||
|
||||
#endif
|
||||
#ifdef MODEL_TS80
|
||||
const uint16_t tipMass = 450;
|
||||
const uint8_t tipResistance = 45; //x10 ohms, 8.5 typical for ts100, 4.5 typical for ts80
|
||||
|
||||
#endif
|
||||
const uint8_t oscillationPeriod = 6 * PID_TIM_HZ; // I term look back value
|
||||
extern history<uint32_t, oscillationPeriod> milliWattHistory;
|
||||
|
||||
int32_t tempToMilliWatts(int32_t rawTemp, uint8_t rawC);
|
||||
void setTipMilliWatts(int32_t mw);
|
||||
uint8_t milliWattsToPWM(int32_t milliWatts, uint8_t divisor,uint8_t sample=0);
|
||||
int32_t PWMToMilliWatts(uint8_t pwm, uint8_t divisor);
|
||||
uint8_t milliWattsToPWM(int32_t milliWatts, uint8_t divisor,
|
||||
uint8_t sample = 0);
|
||||
int32_t PWMToMilliWatts(uint8_t pwm, uint8_t divisor, uint8_t sample = 0);
|
||||
|
||||
#endif /* POWER_HPP_ */
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
#include "cmsis_os.h"
|
||||
|
||||
const uint8_t* OLED::currentFont; // Pointer to the current font used for
|
||||
// rendering to the buffer
|
||||
// rendering to the buffer
|
||||
uint8_t* OLED::firstStripPtr; // Pointers to the strips to allow for buffer
|
||||
// having extra content
|
||||
// having extra content
|
||||
uint8_t* OLED::secondStripPtr; // Pointers to the strips
|
||||
bool OLED::inLeftHandedMode; // Whether the screen is in left or not (used for
|
||||
// offsets in GRAM)
|
||||
// offsets in GRAM)
|
||||
bool OLED::displayOnOffState; // If the display is on or not
|
||||
uint8_t OLED::fontWidth, OLED::fontHeight;
|
||||
int16_t OLED::cursor_x, OLED::cursor_y;
|
||||
@@ -29,58 +29,57 @@ uint8_t OLED::screenBuffer[16 + (OLED_WIDTH * 2) + 10]; // The data buffer
|
||||
/*All commands are prefixed with 0x80*/
|
||||
/*Data packets are prefixed with 0x40*/
|
||||
uint8_t OLED_Setup_Array[] = {
|
||||
/**/
|
||||
0x80, 0xAE, /*Display off*/
|
||||
0x80, 0xD5, /*Set display clock divide ratio / osc freq*/
|
||||
0x80, 0x52, /*Divide ratios*/
|
||||
0x80, 0xA8, /*Set Multiplex Ratio*/
|
||||
0x80, 0x0F, /*16 == max brightness,39==dimmest*/
|
||||
0x80, 0xC0, /*Set COM Scan direction*/
|
||||
0x80, 0xD3, /*Set vertical Display offset*/
|
||||
0x80, 0x00, /*0 Offset*/
|
||||
0x80, 0x40, /*Set Display start line to 0*/
|
||||
0x80, 0xA0, /*Set Segment remap to normal*/
|
||||
0x80, 0x8D, /*Charge Pump*/
|
||||
0x80, 0x14, /*Charge Pump settings*/
|
||||
0x80, 0xDA, /*Set VCOM Pins hardware config*/
|
||||
0x80, 0x02, /*Combination 2*/
|
||||
0x80, 0x81, /*Contrast*/
|
||||
0x80, 0x33, /*^51*/
|
||||
0x80, 0xD9, /*Set pre-charge period*/
|
||||
0x80, 0xF1, /*Pre charge period*/
|
||||
0x80, 0xDB, /*Adjust VCOMH regulator ouput*/
|
||||
0x80, 0x30, /*VCOM level*/
|
||||
0x80, 0xA4, /*Enable the display GDDR*/
|
||||
0x80, 0XA6, /*Normal display*/
|
||||
0x80, 0x20, /*Memory Mode*/
|
||||
0x80, 0x00, /*Wrap memory*/
|
||||
0x80, 0xAF /*Display on*/
|
||||
/**/
|
||||
0x80, 0xAE, /*Display off*/
|
||||
0x80, 0xD5, /*Set display clock divide ratio / osc freq*/
|
||||
0x80, 0x52, /*Divide ratios*/
|
||||
0x80, 0xA8, /*Set Multiplex Ratio*/
|
||||
0x80, 0x0F, /*16 == max brightness,39==dimmest*/
|
||||
0x80, 0xC0, /*Set COM Scan direction*/
|
||||
0x80, 0xD3, /*Set vertical Display offset*/
|
||||
0x80, 0x00, /*0 Offset*/
|
||||
0x80, 0x40, /*Set Display start line to 0*/
|
||||
0x80, 0xA0, /*Set Segment remap to normal*/
|
||||
0x80, 0x8D, /*Charge Pump*/
|
||||
0x80, 0x14, /*Charge Pump settings*/
|
||||
0x80, 0xDA, /*Set VCOM Pins hardware config*/
|
||||
0x80, 0x02, /*Combination 2*/
|
||||
0x80, 0x81, /*Contrast*/
|
||||
0x80, 0x33, /*^51*/
|
||||
0x80, 0xD9, /*Set pre-charge period*/
|
||||
0x80, 0xF1, /*Pre charge period*/
|
||||
0x80, 0xDB, /*Adjust VCOMH regulator ouput*/
|
||||
0x80, 0x30, /*VCOM level*/
|
||||
0x80, 0xA4, /*Enable the display GDDR*/
|
||||
0x80, 0XA6, /*Normal display*/
|
||||
0x80, 0x20, /*Memory Mode*/
|
||||
0x80, 0x00, /*Wrap memory*/
|
||||
0x80, 0xAF /*Display on*/
|
||||
};
|
||||
// Setup based on the SSD1307 and modified for the SSD1306
|
||||
|
||||
const uint8_t REFRESH_COMMANDS[17] = {0x80, 0xAF, 0x80, 0x21, 0x80, 0x20,
|
||||
0x80, 0x7F, 0x80, 0xC0, 0x80, 0x22,
|
||||
0x80, 0x00, 0x80, 0x01, 0x40};
|
||||
const uint8_t REFRESH_COMMANDS[17] = { 0x80, 0xAF, 0x80, 0x21, 0x80, 0x20, 0x80,
|
||||
0x7F, 0x80, 0xC0, 0x80, 0x22, 0x80, 0x00, 0x80, 0x01, 0x40 };
|
||||
|
||||
void OLED::initialize() {
|
||||
cursor_x = cursor_y = 0;
|
||||
currentFont = FONT_12;
|
||||
fontWidth = 12;
|
||||
inLeftHandedMode = false;
|
||||
firstStripPtr = &screenBuffer[FRAMEBUFFER_START];
|
||||
secondStripPtr = &screenBuffer[FRAMEBUFFER_START + OLED_WIDTH];
|
||||
fontHeight = 16;
|
||||
displayOffset = 0;
|
||||
displayOnOffState = true;
|
||||
memcpy(&screenBuffer[0], &REFRESH_COMMANDS[0], sizeof(REFRESH_COMMANDS));
|
||||
cursor_x = cursor_y = 0;
|
||||
currentFont = USER_FONT_12;
|
||||
fontWidth = 12;
|
||||
inLeftHandedMode = false;
|
||||
firstStripPtr = &screenBuffer[FRAMEBUFFER_START];
|
||||
secondStripPtr = &screenBuffer[FRAMEBUFFER_START + OLED_WIDTH];
|
||||
fontHeight = 16;
|
||||
displayOffset = 0;
|
||||
displayOnOffState = true;
|
||||
memcpy(&screenBuffer[0], &REFRESH_COMMANDS[0], sizeof(REFRESH_COMMANDS));
|
||||
|
||||
HAL_Delay(50);
|
||||
HAL_GPIO_WritePin(OLED_RESET_GPIO_Port, OLED_RESET_Pin, GPIO_PIN_SET);
|
||||
HAL_Delay(50);
|
||||
// Send the setup settings
|
||||
FRToSI2C::Transmit(DEVICEADDR_OLED, (uint8_t*)OLED_Setup_Array,
|
||||
sizeof(OLED_Setup_Array));
|
||||
displayOnOff(true);
|
||||
HAL_Delay(50);
|
||||
HAL_GPIO_WritePin(OLED_RESET_GPIO_Port, OLED_RESET_Pin, GPIO_PIN_SET);
|
||||
HAL_Delay(50);
|
||||
// Send the setup settings
|
||||
FRToSI2C::Transmit(DEVICEADDR_OLED, (uint8_t*) OLED_Setup_Array,
|
||||
sizeof(OLED_Setup_Array));
|
||||
displayOnOff(true);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -88,280 +87,236 @@ void OLED::initialize() {
|
||||
* UTF font handling is done using the two input chars.
|
||||
* Precursor is the command char that is used to select the table.
|
||||
*/
|
||||
void OLED::drawChar(char c, char PrecursorCommand) {
|
||||
if (c == '\n' && cursor_y == 0) {
|
||||
cursor_x = 0;
|
||||
cursor_y = 8;
|
||||
}
|
||||
if (c < ' ') {
|
||||
return;
|
||||
}
|
||||
uint16_t index = 0;
|
||||
if (PrecursorCommand == 0) {
|
||||
// Fonts are offset to start at the space char
|
||||
index = (c - ' ');
|
||||
} else {
|
||||
// This is for extended range
|
||||
// We decode the precursor command to find the offset
|
||||
// Latin starts at 96
|
||||
c -= 0x80;
|
||||
|
||||
switch (PrecursorCommand) {
|
||||
case 0xC2:
|
||||
index = (96 - 32) + (c);
|
||||
break; //-32 compensate for chars excluded from font C2 section
|
||||
case 0xC3:
|
||||
index = (128) + (c);
|
||||
break;
|
||||
#if defined(LANG_RU) || defined(LANG_UK) || defined(LANG_SR) || \
|
||||
defined(LANG_BG) || defined(LANG_MK)
|
||||
case 0xD0:
|
||||
index = (192) + (c);
|
||||
break;
|
||||
case 0xD1:
|
||||
index = (256) + (c);
|
||||
break;
|
||||
#else
|
||||
case 0xC4:
|
||||
index = (192) + (c);
|
||||
break;
|
||||
case 0xC5:
|
||||
index = (256) + (c);
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
uint8_t* charPointer;
|
||||
charPointer =
|
||||
((uint8_t*)currentFont) + ((fontWidth * (fontHeight / 8)) * index);
|
||||
|
||||
drawArea(cursor_x, cursor_y, fontWidth, fontHeight, charPointer);
|
||||
|
||||
cursor_x += fontWidth;
|
||||
void OLED::drawChar(char c) {
|
||||
if (c == '\x01' && cursor_y == 0) { // 0x01 is used as new line char
|
||||
cursor_x = 0;
|
||||
cursor_y = 8;
|
||||
return;
|
||||
} else if (c == 0) {
|
||||
return;
|
||||
}
|
||||
uint16_t index = c - 2; //First index is \x02
|
||||
uint8_t* charPointer;
|
||||
charPointer = ((uint8_t*) currentFont)
|
||||
+ ((fontWidth * (fontHeight / 8)) * index);
|
||||
drawArea(cursor_x, cursor_y, fontWidth, fontHeight, charPointer);
|
||||
cursor_x += fontWidth;
|
||||
}
|
||||
|
||||
void OLED::setRotation(bool leftHanded) {
|
||||
#ifdef MODEL_TS80
|
||||
leftHanded=!leftHanded;
|
||||
leftHanded = !leftHanded;
|
||||
#endif
|
||||
if (inLeftHandedMode == leftHanded) {
|
||||
return;
|
||||
}
|
||||
if (inLeftHandedMode == leftHanded) {
|
||||
return;
|
||||
}
|
||||
|
||||
// send command struct again with changes
|
||||
if (leftHanded) {
|
||||
OLED_Setup_Array[11] = 0xC8; // c1?
|
||||
OLED_Setup_Array[19] = 0xA1;
|
||||
} else {
|
||||
OLED_Setup_Array[11] = 0xC0;
|
||||
OLED_Setup_Array[19] = 0xA0;
|
||||
}
|
||||
FRToSI2C::Transmit(DEVICEADDR_OLED, (uint8_t*)OLED_Setup_Array,
|
||||
sizeof(OLED_Setup_Array));
|
||||
inLeftHandedMode = leftHanded;
|
||||
// send command struct again with changes
|
||||
if (leftHanded) {
|
||||
OLED_Setup_Array[11] = 0xC8; // c1?
|
||||
OLED_Setup_Array[19] = 0xA1;
|
||||
} else {
|
||||
OLED_Setup_Array[11] = 0xC0;
|
||||
OLED_Setup_Array[19] = 0xA0;
|
||||
}
|
||||
FRToSI2C::Transmit(DEVICEADDR_OLED, (uint8_t*) OLED_Setup_Array,
|
||||
sizeof(OLED_Setup_Array));
|
||||
inLeftHandedMode = leftHanded;
|
||||
|
||||
screenBuffer[5] =
|
||||
inLeftHandedMode ? 0 : 32; // display is shifted by 32 in left handed
|
||||
// mode as driver ram is 128 wide
|
||||
screenBuffer[7] =
|
||||
inLeftHandedMode
|
||||
? 95
|
||||
: 0x7F; // End address of the ram segment we are writing to (96 wide)
|
||||
screenBuffer[9] = inLeftHandedMode ? 0xC8 : 0xC0;
|
||||
screenBuffer[5] = inLeftHandedMode ? 0 : 32; // display is shifted by 32 in left handed
|
||||
// mode as driver ram is 128 wide
|
||||
screenBuffer[7] = inLeftHandedMode ? 95 : 0x7F; // End address of the ram segment we are writing to (96 wide)
|
||||
screenBuffer[9] = inLeftHandedMode ? 0xC8 : 0xC0;
|
||||
}
|
||||
|
||||
// print a string to the current cursor location
|
||||
void OLED::print(const char* str) {
|
||||
while (str[0]) {
|
||||
if (str[0] >= 0x80) {
|
||||
drawChar(str[1], str[0]);
|
||||
str++; // skip this marker
|
||||
} else
|
||||
drawChar(str[0]);
|
||||
str++;
|
||||
}
|
||||
while (str[0]) {
|
||||
drawChar(str[0]);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void OLED::setFont(uint8_t fontNumber) {
|
||||
if (fontNumber == 1) {
|
||||
// small font
|
||||
currentFont = FONT_6x8;
|
||||
fontHeight = 8;
|
||||
fontWidth = 6;
|
||||
} else if (fontNumber == 2) {
|
||||
currentFont = ExtraFontChars;
|
||||
fontHeight = 16;
|
||||
fontWidth = 12;
|
||||
} else {
|
||||
currentFont = FONT_12;
|
||||
fontHeight = 16;
|
||||
fontWidth = 12;
|
||||
}
|
||||
if (fontNumber == 1) {
|
||||
// small font
|
||||
currentFont = USER_FONT_6x8;
|
||||
fontHeight = 8;
|
||||
fontWidth = 6;
|
||||
} else if (fontNumber == 2) {
|
||||
currentFont = ExtraFontChars;
|
||||
fontHeight = 16;
|
||||
fontWidth = 12;
|
||||
} else {
|
||||
currentFont = USER_FONT_12;
|
||||
fontHeight = 16;
|
||||
fontWidth = 12;
|
||||
}
|
||||
}
|
||||
|
||||
// maximum places is 5
|
||||
void OLED::printNumber(uint16_t number, uint8_t places) {
|
||||
char buffer[7] = {0};
|
||||
char buffer[7] = { 0 };
|
||||
|
||||
if (places >= 5) {
|
||||
buffer[5] = '0' + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
if (places > 4) {
|
||||
buffer[4] = '0' + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
if (places >= 5) {
|
||||
buffer[5] = 2 + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
if (places > 4) {
|
||||
buffer[4] = 2 + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
|
||||
if (places > 3) {
|
||||
buffer[3] = '0' + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
if (places > 3) {
|
||||
buffer[3] = 2 + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
|
||||
if (places > 2) {
|
||||
buffer[2] = '0' + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
if (places > 2) {
|
||||
buffer[2] = 2 + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
|
||||
if (places > 1) {
|
||||
buffer[1] = '0' + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
if (places > 1) {
|
||||
buffer[1] = 2 + number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
|
||||
buffer[0] = '0' + number % 10;
|
||||
number /= 10;
|
||||
print(buffer);
|
||||
buffer[0] = 2 + number % 10;
|
||||
number /= 10;
|
||||
print(buffer);
|
||||
}
|
||||
|
||||
void OLED::debugNumber(int32_t val) {
|
||||
if (abs(val) > 99999) {
|
||||
OLED::print(" OoB"); // out of bounds
|
||||
OLED::print(SymbolSpace); // out of bounds
|
||||
return;
|
||||
}
|
||||
if (val >= 0) {
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
OLED::printNumber(val, 5);
|
||||
} else {
|
||||
OLED::drawChar('-');
|
||||
OLED::print(SymbolMinus);
|
||||
OLED::printNumber(-val, 5);
|
||||
}
|
||||
}
|
||||
|
||||
void OLED::drawSymbol(uint8_t symbolID) {
|
||||
// draw a symbol to the current cursor location
|
||||
setFont(2);
|
||||
drawChar(' ' + symbolID); // space offset is in all fonts, so we pad it here
|
||||
// and remove it later
|
||||
setFont(0);
|
||||
// draw a symbol to the current cursor location
|
||||
setFont(2);
|
||||
drawChar(symbolID + 2);
|
||||
setFont(0);
|
||||
}
|
||||
|
||||
// Draw an area, but y must be aligned on 0/8 offset
|
||||
void OLED::drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
|
||||
const uint8_t* ptr) {
|
||||
// Splat this from x->x+wide in two strides
|
||||
if (x <= -wide) return; // cutoffleft
|
||||
if (x > 96) return; // cutoff right
|
||||
const uint8_t* ptr) {
|
||||
// Splat this from x->x+wide in two strides
|
||||
if (x <= -wide)
|
||||
return; // cutoffleft
|
||||
if (x > 96)
|
||||
return; // cutoff right
|
||||
|
||||
uint8_t visibleStart = 0;
|
||||
uint8_t visibleEnd = wide;
|
||||
uint8_t visibleStart = 0;
|
||||
uint8_t visibleEnd = wide;
|
||||
|
||||
// trimming to draw partials
|
||||
if (x < 0) {
|
||||
visibleStart -= x; // subtract negative value == add absolute value
|
||||
}
|
||||
if (x + wide > 96) {
|
||||
visibleEnd = 96 - x;
|
||||
}
|
||||
// trimming to draw partials
|
||||
if (x < 0) {
|
||||
visibleStart -= x; // subtract negative value == add absolute value
|
||||
}
|
||||
if (x + wide > 96) {
|
||||
visibleEnd = 96 - x;
|
||||
}
|
||||
|
||||
if (y == 0) {
|
||||
// Splat first line of data
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
firstStripPtr[xx + x] = ptr[xx];
|
||||
}
|
||||
}
|
||||
if (y == 8 || height == 16) {
|
||||
// Splat the second line
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
secondStripPtr[x + xx] = ptr[xx + (height == 16 ? wide : 0)];
|
||||
}
|
||||
}
|
||||
if (y == 0) {
|
||||
// Splat first line of data
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
firstStripPtr[xx + x] = ptr[xx];
|
||||
}
|
||||
}
|
||||
if (y == 8 || height == 16) {
|
||||
// Splat the second line
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
secondStripPtr[x + xx] = ptr[xx + (height == 16 ? wide : 0)];
|
||||
}
|
||||
}
|
||||
}
|
||||
void OLED::fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
|
||||
const uint8_t value) {
|
||||
// Splat this from x->x+wide in two strides
|
||||
if (x <= -wide) return; // cutoffleft
|
||||
if (x > 96) return; // cutoff right
|
||||
const uint8_t value) {
|
||||
// Splat this from x->x+wide in two strides
|
||||
if (x <= -wide)
|
||||
return; // cutoffleft
|
||||
if (x > 96)
|
||||
return; // cutoff right
|
||||
|
||||
uint8_t visibleStart = 0;
|
||||
uint8_t visibleEnd = wide;
|
||||
uint8_t visibleStart = 0;
|
||||
uint8_t visibleEnd = wide;
|
||||
|
||||
// trimming to draw partials
|
||||
if (x < 0) {
|
||||
visibleStart -= x; // subtract negative value == add absolute value
|
||||
}
|
||||
if (x + wide > 96) {
|
||||
visibleEnd = 96 - x;
|
||||
}
|
||||
// trimming to draw partials
|
||||
if (x < 0) {
|
||||
visibleStart -= x; // subtract negative value == add absolute value
|
||||
}
|
||||
if (x + wide > 96) {
|
||||
visibleEnd = 96 - x;
|
||||
}
|
||||
|
||||
if (y == 0) {
|
||||
// Splat first line of data
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
firstStripPtr[xx + x] = value;
|
||||
}
|
||||
}
|
||||
if (y == 8 || height == 16) {
|
||||
// Splat the second line
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
secondStripPtr[x + xx] = value;
|
||||
}
|
||||
}
|
||||
if (y == 0) {
|
||||
// Splat first line of data
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
firstStripPtr[xx + x] = value;
|
||||
}
|
||||
}
|
||||
if (y == 8 || height == 16) {
|
||||
// Splat the second line
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
secondStripPtr[x + xx] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OLED::drawFilledRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1,
|
||||
bool clear) {
|
||||
// Draw this in 3 sections
|
||||
// This is basically a N wide version of vertical line
|
||||
bool clear) {
|
||||
// Draw this in 3 sections
|
||||
// This is basically a N wide version of vertical line
|
||||
|
||||
// Step 1 : Draw in the top few pixels that are not /8 aligned
|
||||
// LSB is at the top of the screen
|
||||
uint8_t mask = 0xFF;
|
||||
if (y0) {
|
||||
mask = mask << (y0 % 8);
|
||||
for (uint8_t col = x0; col < x1; col++)
|
||||
if (clear)
|
||||
firstStripPtr[(y0 / 8) * 96 + col] &= ~mask;
|
||||
else
|
||||
firstStripPtr[(y0 / 8) * 96 + col] |= mask;
|
||||
}
|
||||
// Next loop down the line the total number of solids
|
||||
if (y0 / 8 != y1 / 8)
|
||||
for (uint8_t col = x0; col < x1; col++)
|
||||
for (uint8_t r = (y0 / 8); r < (y1 / 8); r++) {
|
||||
// This gives us the row index r
|
||||
if (clear)
|
||||
firstStripPtr[(r * 96) + col] = 0;
|
||||
else
|
||||
firstStripPtr[(r * 96) + col] = 0xFF;
|
||||
}
|
||||
// Step 1 : Draw in the top few pixels that are not /8 aligned
|
||||
// LSB is at the top of the screen
|
||||
uint8_t mask = 0xFF;
|
||||
if (y0) {
|
||||
mask = mask << (y0 % 8);
|
||||
for (uint8_t col = x0; col < x1; col++)
|
||||
if (clear)
|
||||
firstStripPtr[(y0 / 8) * 96 + col] &= ~mask;
|
||||
else
|
||||
firstStripPtr[(y0 / 8) * 96 + col] |= mask;
|
||||
}
|
||||
// Next loop down the line the total number of solids
|
||||
if (y0 / 8 != y1 / 8)
|
||||
for (uint8_t col = x0; col < x1; col++)
|
||||
for (uint8_t r = (y0 / 8); r < (y1 / 8); r++) {
|
||||
// This gives us the row index r
|
||||
if (clear)
|
||||
firstStripPtr[(r * 96) + col] = 0;
|
||||
else
|
||||
firstStripPtr[(r * 96) + col] = 0xFF;
|
||||
}
|
||||
|
||||
// Finally draw the tail
|
||||
mask = ~(mask << (y1 % 8));
|
||||
for (uint8_t col = x0; col < x1; col++)
|
||||
if (clear)
|
||||
firstStripPtr[(y1 / 8) * 96 + col] &= ~mask;
|
||||
else
|
||||
firstStripPtr[(y1 / 8) * 96 + col] |= mask;
|
||||
// Finally draw the tail
|
||||
mask = ~(mask << (y1 % 8));
|
||||
for (uint8_t col = x0; col < x1; col++)
|
||||
if (clear)
|
||||
firstStripPtr[(y1 / 8) * 96 + col] &= ~mask;
|
||||
else
|
||||
firstStripPtr[(y1 / 8) * 96 + col] |= mask;
|
||||
}
|
||||
|
||||
void OLED::drawHeatSymbol(uint8_t state) {
|
||||
// Draw symbol 14
|
||||
// Then draw over it, the bottom 5 pixels always stay. 8 pixels above that are
|
||||
// the levels masks the symbol nicely
|
||||
state /= 31; // 0-> 8 range
|
||||
// Then we want to draw down (16-(5+state)
|
||||
uint8_t cursor_x_temp = cursor_x;
|
||||
drawSymbol(14);
|
||||
drawFilledRect(cursor_x_temp, 0, cursor_x_temp + 12, 2 + (8 - state), true);
|
||||
// Draw symbol 14
|
||||
// Then draw over it, the bottom 5 pixels always stay. 8 pixels above that are
|
||||
// the levels masks the symbol nicely
|
||||
state /= 31; // 0-> 8 range
|
||||
// Then we want to draw down (16-(5+state)
|
||||
uint8_t cursor_x_temp = cursor_x;
|
||||
drawSymbol(14);
|
||||
drawFilledRect(cursor_x_temp, 0, cursor_x_temp + 12, 2 + (8 - state), true);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ void resetSettings() {
|
||||
systemSettings.tipType = TS_B2; // Default to the B2 Tip
|
||||
#endif
|
||||
#ifdef MODEL_TS80
|
||||
|
||||
systemSettings.pidPowerLimit=24; // Sets the max pwm power limit
|
||||
systemSettings.tipType = TS_B02; // Default to the B2 Tip
|
||||
#endif
|
||||
saveSettings(); // Save defaults
|
||||
|
||||
@@ -32,13 +32,13 @@ static void MX_ADC2_Init(void);
|
||||
|
||||
void Setup_HAL() {
|
||||
SystemClock_Config();
|
||||
#ifndef LOCAL_BUILD
|
||||
__HAL_AFIO_REMAP_SWJ_DISABLE();
|
||||
#else
|
||||
__HAL_AFIO_REMAP_SWJ_NOJTAG();
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef LOCAL_BUILD
|
||||
__HAL_AFIO_REMAP_SWJ_DISABLE()
|
||||
;
|
||||
#else
|
||||
__HAL_AFIO_REMAP_SWJ_NOJTAG();
|
||||
#endif
|
||||
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
MX_I2C1_Init();
|
||||
@@ -262,9 +262,9 @@ static void MX_TIM3_Init(void) {
|
||||
htim3.Instance = TIM3;
|
||||
htim3.Init.Prescaler = 8;
|
||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim3.Init.Period = 100; // 10 Khz PWM freq
|
||||
htim3.Init.Period = 100; // 5 Khz PWM freq
|
||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; // 4mhz before div
|
||||
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
|
||||
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; //Preload the ARR register (though we dont use this)
|
||||
HAL_TIM_Base_Init(&htim3);
|
||||
|
||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||
@@ -279,7 +279,7 @@ static void MX_TIM3_Init(void) {
|
||||
HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig);
|
||||
|
||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||
sConfigOC.Pulse = 50;
|
||||
sConfigOC.Pulse = 80; //80% duty cycle, that is AC coupled through the cap
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;
|
||||
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, PWM_Out_CHANNEL);
|
||||
@@ -291,11 +291,12 @@ static void MX_TIM3_Init(void) {
|
||||
*/
|
||||
GPIO_InitStruct.Pin = PWM_Out_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; //We would like sharp rising edges
|
||||
HAL_GPIO_Init(PWM_Out_GPIO_Port, &GPIO_InitStruct);
|
||||
#ifdef MODEL_TS100
|
||||
// Remap TIM3_CH1 to be on pB4
|
||||
__HAL_AFIO_REMAP_TIM3_PARTIAL();
|
||||
// Remap TIM3_CH1 to be on PB4
|
||||
__HAL_AFIO_REMAP_TIM3_PARTIAL()
|
||||
;
|
||||
#else
|
||||
// No re-map required
|
||||
#endif
|
||||
@@ -314,14 +315,15 @@ static void MX_TIM2_Init(void) {
|
||||
// Timer 2 is fairly slow as its being used to run the PWM and trigger the ADC
|
||||
// in the PWM off time.
|
||||
htim2.Instance = TIM2;
|
||||
htim2.Init.Prescaler = 785; // pwm out is 10k from tim3, we want to run our PWM at around 10hz or slower on the output stage
|
||||
// The input is 1mhz after the div/4, so divide this by 785 to give around 4Hz output change rate
|
||||
//Trade off is the slower the PWM output the slower we can respond and we gain temperature accuracy in settling time,
|
||||
//But it increases the time delay between the heat cycle and the measurement and calculate cycle
|
||||
htim2.Init.Prescaler = 4000; //1mhz tick rate/800 = 1.25 KHz tick rate
|
||||
|
||||
// pwm out is 10k from tim3, we want to run our PWM at around 10hz or slower on the output stage
|
||||
// These values give a rate of around 8Hz
|
||||
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim2.Init.Period = 255 + 60;
|
||||
htim2.Init.Period = 255 + 17;
|
||||
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; // 4mhz before divide
|
||||
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
|
||||
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
htim2.Init.RepetitionCounter = 0;
|
||||
HAL_TIM_Base_Init(&htim2);
|
||||
|
||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||
@@ -335,7 +337,8 @@ static void MX_TIM2_Init(void) {
|
||||
HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);
|
||||
|
||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||
sConfigOC.Pulse = 255 + 50; //255 is the largest time period of the drive signal, and the 50 offsets this around 5ms afterwards
|
||||
sConfigOC.Pulse = 255 + 13;//13 -> Delay of 5ms
|
||||
//255 is the largest time period of the drive signal, and then offset ADC sample to be a bit delayed after this
|
||||
/*
|
||||
* It takes 4 milliseconds for output to be stable after PWM turns off.
|
||||
* Assume ADC samples in 0.5ms
|
||||
@@ -344,11 +347,7 @@ static void MX_TIM2_Init(void) {
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;
|
||||
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);
|
||||
|
||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||
sConfigOC.Pulse = 0;
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;
|
||||
sConfigOC.Pulse = 0; //default to entirely off
|
||||
HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4);
|
||||
|
||||
HAL_TIM_Base_Start_IT(&htim2);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -305,10 +305,10 @@ static void settings_displayInputVRange(void) {
|
||||
printShortDescription(0, 6);
|
||||
|
||||
if (systemSettings.cutoutSetting) {
|
||||
OLED::drawChar('0' + 2 + systemSettings.cutoutSetting);
|
||||
OLED::drawChar('S');
|
||||
OLED::printNumber(2 + systemSettings.cutoutSetting,1);
|
||||
OLED::print(SymbolCellCount);
|
||||
} else {
|
||||
OLED::print("DC");
|
||||
OLED::print(SymbolDC);
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -318,13 +318,17 @@ static void settings_setInputPRange(void) {
|
||||
|
||||
static void settings_displayInputPRange(void) {
|
||||
printShortDescription(0, 5);
|
||||
//0 = 18W, 1=24W
|
||||
//0 = 9V, 1=12V (Fixed Voltages, these imply 1.5A limits)
|
||||
//2 = 18W, 2=24W (Auto Adjusting V, estimated from the tip resistance???) # TODO
|
||||
// Need to come back and look at these ^ as there were issues with voltage hunting
|
||||
switch (systemSettings.cutoutSetting) {
|
||||
case 0:
|
||||
OLED::print("18W");
|
||||
OLED::printNumber(9, 2);
|
||||
OLED::print(SymbolVolts);
|
||||
break;
|
||||
case 1:
|
||||
OLED::print("24W");
|
||||
OLED::printNumber(12, 2);
|
||||
OLED::print(SymbolVolts);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -367,10 +371,10 @@ static void settings_displaySleepTime(void) {
|
||||
OLED::print(OffString);
|
||||
} else if (systemSettings.SleepTime < 6) {
|
||||
OLED::printNumber(systemSettings.SleepTime * 10, 2);
|
||||
OLED::drawChar('S');
|
||||
OLED::print(SymbolSeconds);
|
||||
} else {
|
||||
OLED::printNumber(systemSettings.SleepTime - 5, 2);
|
||||
OLED::drawChar('M');
|
||||
OLED::print(SymbolMinutes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -389,7 +393,7 @@ static void settings_displayShutdownTime(void) {
|
||||
OLED::print(OffString);
|
||||
} else {
|
||||
OLED::printNumber(systemSettings.ShutdownTime, 2);
|
||||
OLED::drawChar('M');
|
||||
OLED::print(SymbolMinutes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -422,7 +426,7 @@ static void settings_setTempF(void) {
|
||||
static void settings_displayTempF(void) {
|
||||
printShortDescription(5, 7);
|
||||
|
||||
OLED::drawChar((systemSettings.temperatureInF) ? 'F' : 'C');
|
||||
OLED::print((systemSettings.temperatureInF) ? SymbolDegF : SymbolDegC);
|
||||
}
|
||||
|
||||
static void settings_setSensitivity(void) {
|
||||
@@ -462,7 +466,7 @@ static void settings_setScrollSpeed(void) {
|
||||
}
|
||||
static void settings_displayScrollSpeed(void) {
|
||||
printShortDescription(16, 7);
|
||||
OLED::drawChar(
|
||||
OLED::print(
|
||||
(systemSettings.descriptionScrollSpeed) ?
|
||||
SettingFastChar : SettingSlowChar);
|
||||
}
|
||||
@@ -490,16 +494,16 @@ static void settings_displayDisplayRotation(void) {
|
||||
|
||||
switch (systemSettings.OrientationMode) {
|
||||
case 0:
|
||||
OLED::drawChar(SettingRightChar);
|
||||
OLED::print(SettingRightChar);
|
||||
break;
|
||||
case 1:
|
||||
OLED::drawChar(SettingLeftChar);
|
||||
OLED::print(SettingLeftChar);
|
||||
break;
|
||||
case 2:
|
||||
OLED::drawChar(SettingAutoChar);
|
||||
OLED::print(SettingAutoChar);
|
||||
break;
|
||||
default:
|
||||
OLED::drawChar(SettingRightChar);
|
||||
OLED::print(SettingRightChar);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -559,7 +563,7 @@ static void settings_setResetSettings(void) {
|
||||
|
||||
OLED::setFont(0);
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print("RESET OK");
|
||||
OLED::print(ResetOKMessage);
|
||||
OLED::refresh();
|
||||
|
||||
waitForButtonPressOrTimeout(200); // 2 second timeout
|
||||
@@ -572,6 +576,12 @@ static void settings_displayResetSettings(void) {
|
||||
|
||||
static void settings_setTipModel(void) {
|
||||
systemSettings.tipType++;
|
||||
if(systemSettings.tipType==Tip_MiniWare)
|
||||
systemSettings.tipType++;
|
||||
#ifdef MODEL_TS100
|
||||
if(systemSettings.tipType==Tip_Hakko)
|
||||
systemSettings.tipType++;
|
||||
#endif
|
||||
systemSettings.tipType %= (Tip_Custom + 1); // Wrap after custom
|
||||
}
|
||||
static void settings_displayTipModel(void) {
|
||||
@@ -581,64 +591,21 @@ static void settings_displayTipModel(void) {
|
||||
// set the cursor
|
||||
// Print the mfg
|
||||
OLED::setCursor(55, 0);
|
||||
if (systemSettings.tipType < Tip_MiniWare) {
|
||||
#ifdef MODEL_TS100
|
||||
OLED::print("TS100");
|
||||
#else
|
||||
OLED::print("TS80");
|
||||
#endif
|
||||
if (systemSettings.tipType == Tip_Custom) {
|
||||
OLED::print(TipModelStrings[Tip_Custom]);
|
||||
} else if (systemSettings.tipType < Tip_MiniWare) {
|
||||
OLED::print(TipModelStrings[Tip_MiniWare]);
|
||||
}
|
||||
#ifdef MODEL_TS100
|
||||
else if (systemSettings.tipType < Tip_Hakko) {
|
||||
OLED::print("HAKKO");
|
||||
OLED::print(TipModelStrings[Tip_Hakko]);
|
||||
}
|
||||
#endif
|
||||
else if (systemSettings.tipType == Tip_Custom) {
|
||||
OLED::print("User");
|
||||
}
|
||||
|
||||
OLED::setCursor(55, 8);
|
||||
#ifdef MODEL_TS100
|
||||
switch ((enum TipType)systemSettings.tipType) {
|
||||
case TS_B2:
|
||||
OLED::print(" B2 ");
|
||||
break;
|
||||
case TS_D24:
|
||||
OLED::print(" D24 ");
|
||||
break;
|
||||
case TS_BC2:
|
||||
OLED::print(" BC2 ");
|
||||
break;
|
||||
case TS_C1:
|
||||
OLED::print(" C1 ");
|
||||
break;
|
||||
case HAKKO_BC2:
|
||||
OLED::print(" BC2 ");
|
||||
break;
|
||||
case Tip_Custom:
|
||||
OLED::print("Tuned");
|
||||
break;
|
||||
default:
|
||||
OLED::print("????");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef MODEL_TS80
|
||||
// only 2 tips atm
|
||||
switch ((enum TipType) systemSettings.tipType) {
|
||||
case TS_B02:
|
||||
OLED::print(" B02 ");
|
||||
break;
|
||||
case TS_D25:
|
||||
OLED::print(" D25 ");
|
||||
break;
|
||||
case Tip_Custom:
|
||||
OLED::print("Tuned");
|
||||
break;
|
||||
default:
|
||||
OLED::print("????");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
if (systemSettings.tipType != Tip_Custom)
|
||||
OLED::print(TipModelStrings[systemSettings.tipType]);
|
||||
|
||||
}
|
||||
static void calibration_displaySimpleCal(void) {
|
||||
printShortDescription(18, 5);
|
||||
@@ -656,9 +623,9 @@ static void setTipOffset() {
|
||||
// cycle through the filter a fair bit to ensure we're stable.
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print(".");
|
||||
OLED::print(SymbolDot);
|
||||
for (uint8_t x = 0; x < i / 4; x++)
|
||||
OLED::print(".");
|
||||
OLED::print(SymbolDot);
|
||||
OLED::refresh();
|
||||
osDelay(100);
|
||||
}
|
||||
@@ -671,7 +638,7 @@ static void setTipOffset() {
|
||||
setCalibrationOffset(systemSettings.CalibrationOffset); // store the error
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print("OK");
|
||||
OLED::drawCheckbox(true);
|
||||
OLED::refresh();
|
||||
osDelay(1000);
|
||||
}
|
||||
@@ -706,18 +673,17 @@ static void calibration_enterSimpleCal(void) {
|
||||
// Show this to the user
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print("Your G: ");
|
||||
OLED::print(YourGainMessage);
|
||||
OLED::printNumber(gain, 6);
|
||||
OLED::print("\n~= 120-140");
|
||||
OLED::refresh();
|
||||
osDelay(2000);
|
||||
waitForButtonPress();
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print("H: ");
|
||||
OLED::print(SymbolPlus);
|
||||
OLED::printNumber(RawTipHot, 8);
|
||||
OLED::setCursor(0, 8);
|
||||
OLED::print("C: ");
|
||||
OLED::print(SymbolMinus);
|
||||
OLED::printNumber(RawTipCold, 8);
|
||||
OLED::refresh();
|
||||
osDelay(2000);
|
||||
@@ -771,17 +737,17 @@ static void calibration_enterAdvancedCal(void) {
|
||||
OLED::clearScreen();
|
||||
OLED::setFont(0);
|
||||
if (OLED::getRotation())
|
||||
OLED::drawChar('-');
|
||||
OLED::print(SymbolMinus);
|
||||
else
|
||||
OLED::drawChar('+');
|
||||
OLED::print(SymbolPlus);
|
||||
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
OLED::printNumber(systemSettings.customTipGain, 4);
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
if (OLED::getRotation())
|
||||
OLED::drawChar('+');
|
||||
OLED::print(SymbolPlus);
|
||||
else
|
||||
OLED::drawChar('-');
|
||||
OLED::print(SymbolMinus);
|
||||
OLED::refresh();
|
||||
GUIDelay();
|
||||
}
|
||||
@@ -824,10 +790,10 @@ static void settings_setCalibrateVIN(void) {
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::printNumber(getInputVoltageX10(systemSettings.voltageDiv, 0) / 10,
|
||||
2);
|
||||
OLED::print(".");
|
||||
OLED::print(SymbolDot);
|
||||
OLED::printNumber(getInputVoltageX10(systemSettings.voltageDiv, 0) % 10,
|
||||
1);
|
||||
OLED::print("V");
|
||||
OLED::print(SymbolVolts);
|
||||
|
||||
ButtonState buttons = getButtonState();
|
||||
switch (buttons) {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "FreeRTOS.h"
|
||||
#include "stm32f1xx_hal.h"
|
||||
#include "cmsis_os.h"
|
||||
#include "history.hpp"
|
||||
volatile uint16_t PWMSafetyTimer = 0;
|
||||
volatile int16_t CalibrationTempOffset = 0;
|
||||
uint16_t tipGainCalValue = 0;
|
||||
@@ -68,15 +69,31 @@ uint16_t ftoTipMeasurement(uint16_t temp) {
|
||||
}
|
||||
|
||||
uint16_t getTipInstantTemperature() {
|
||||
uint16_t sum;
|
||||
sum = hadc1.Instance->JDR1;
|
||||
sum += hadc1.Instance->JDR2;
|
||||
sum += hadc1.Instance->JDR3;
|
||||
sum += hadc1.Instance->JDR4;
|
||||
sum += hadc2.Instance->JDR1;
|
||||
sum += hadc2.Instance->JDR2;
|
||||
sum += hadc2.Instance->JDR3;
|
||||
sum += hadc2.Instance->JDR4;
|
||||
uint16_t sum = 0; // 12 bit readings * 8 -> 15 bits
|
||||
uint16_t readings[8];
|
||||
//Looking to reject the highest outlier readings.
|
||||
//As on some hardware these samples can run into the op-amp recovery time
|
||||
//Once this time is up the signal stabilises quickly, so no need to reject minimums
|
||||
readings[0] = hadc1.Instance->JDR1;
|
||||
readings[1] = hadc1.Instance->JDR2;
|
||||
readings[2] = hadc1.Instance->JDR3;
|
||||
readings[3] = hadc1.Instance->JDR4;
|
||||
readings[4] = hadc2.Instance->JDR1;
|
||||
readings[5] = hadc2.Instance->JDR2;
|
||||
readings[6] = hadc2.Instance->JDR3;
|
||||
readings[7] = hadc2.Instance->JDR4;
|
||||
uint8_t minID = 0, maxID = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (readings[i] < readings[minID])
|
||||
minID = i;
|
||||
else if (readings[i] > readings[maxID])
|
||||
maxID = i;
|
||||
}
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i != maxID)
|
||||
sum += readings[i];
|
||||
}
|
||||
sum += readings[minID]; //Duplicate the min to make up for the missing max value
|
||||
return sum; // 8x over sample
|
||||
}
|
||||
/*
|
||||
@@ -117,15 +134,17 @@ uint16_t lookupTipDefaultCalValue(enum TipType tipID) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
//2 second filter (ADC is PID_TIM_HZ Hz)
|
||||
history<uint16_t, PID_TIM_HZ*4> rawTempFilter = { { 0 }, 0, 0 };
|
||||
|
||||
uint16_t getTipRawTemp(uint8_t refresh) {
|
||||
static uint16_t lastSample = 0;
|
||||
|
||||
if (refresh) {
|
||||
lastSample = getTipInstantTemperature();
|
||||
uint16_t lastSample = getTipInstantTemperature();
|
||||
rawTempFilter.update(lastSample);
|
||||
return lastSample;
|
||||
} else {
|
||||
return rawTempFilter.average();
|
||||
}
|
||||
|
||||
return lastSample;
|
||||
}
|
||||
|
||||
uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
|
||||
@@ -237,8 +256,6 @@ void startQC(uint16_t divisor) {
|
||||
// Pre check that the input could be >5V already, and if so, dont both
|
||||
// negotiating as someone is feeding in hv
|
||||
uint16_t vin = getInputVoltageX10(divisor, 1);
|
||||
if (vin > 150)
|
||||
return; // Over voltage
|
||||
if (vin > 100) {
|
||||
QCMode = 1; // ALready at ~12V
|
||||
return;
|
||||
@@ -82,7 +82,7 @@ int main(void) {
|
||||
#ifdef LOCAL_BUILD
|
||||
//Test that there was enough ram in the FreeRToS pool to allocate all the tasks
|
||||
if (MOVTaskHandle == 0)
|
||||
asm("bkpt");
|
||||
asm("bkpt");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ int main(void) {
|
||||
void printVoltage() {
|
||||
uint32_t volt = getInputVoltageX10(systemSettings.voltageDiv, 0);
|
||||
OLED::printNumber(volt / 10, 2);
|
||||
OLED::drawChar('.');
|
||||
OLED::print(SymbolDot);
|
||||
OLED::printNumber(volt % 10, 1);
|
||||
}
|
||||
void GUIDelay() {
|
||||
@@ -119,9 +119,9 @@ void gui_drawTipTemp(bool symbol) {
|
||||
OLED::printNumber(Temp, 3); // Draw the tip temp out finally
|
||||
if (symbol) {
|
||||
if (systemSettings.temperatureInF)
|
||||
OLED::print("F");
|
||||
OLED::print(SymbolDegF);
|
||||
else
|
||||
OLED::print("C");
|
||||
OLED::print(SymbolDegC);
|
||||
}
|
||||
}
|
||||
ButtonState getButtonState() {
|
||||
@@ -271,36 +271,36 @@ static void gui_drawBatteryIcon() {
|
||||
// we need to calculate which of the 10 levels they are on
|
||||
uint8_t cellCount = systemSettings.cutoutSetting + 2;
|
||||
uint32_t cellV = getInputVoltageX10(systemSettings.voltageDiv, 0)
|
||||
/ cellCount;
|
||||
/ cellCount;
|
||||
// Should give us approx cell voltage X10
|
||||
// Range is 42 -> 33 = 9 steps therefore we will use battery 1-10
|
||||
if (cellV < 33)
|
||||
cellV = 33;
|
||||
cellV -= 33; // Should leave us a number of 0-9
|
||||
cellV = 33;
|
||||
cellV -= 33;// Should leave us a number of 0-9
|
||||
if (cellV > 9)
|
||||
cellV = 9;
|
||||
cellV = 9;
|
||||
OLED::drawBattery(cellV + 1);
|
||||
} else
|
||||
OLED::drawSymbol(15); // Draw the DC Logo
|
||||
OLED::drawSymbol(15); // Draw the DC Logo
|
||||
#else
|
||||
// On TS80 we replace this symbol with the voltage we are operating on
|
||||
// If <9V then show single digit, if not show duals
|
||||
uint8_t V = getInputVoltageX10(systemSettings.voltageDiv, 0);
|
||||
if (V % 10 >= 5)
|
||||
V = V / 10 + 1;// round up
|
||||
else
|
||||
V = V / 10;
|
||||
if (V >= 10) {
|
||||
int16_t xPos = OLED::getCursorX();
|
||||
OLED::setFont(1);
|
||||
OLED::printNumber(1, 1);
|
||||
OLED::setCursor(xPos, 8);
|
||||
OLED::printNumber(V % 10, 1);
|
||||
OLED::setFont(0);
|
||||
OLED::setCursor(xPos + 12, 0); // need to reset this as if we drew a wide char
|
||||
} else {
|
||||
OLED::printNumber(V, 1);
|
||||
}
|
||||
// On TS80 we replace this symbol with the voltage we are operating on
|
||||
// If <9V then show single digit, if not show duals
|
||||
uint8_t V = getInputVoltageX10(systemSettings.voltageDiv, 0);
|
||||
if (V % 10 >= 5)
|
||||
V = V / 10 + 1; // round up
|
||||
else
|
||||
V = V / 10;
|
||||
if (V >= 10) {
|
||||
int16_t xPos = OLED::getCursorX();
|
||||
OLED::setFont(1);
|
||||
OLED::printNumber(1, 1);
|
||||
OLED::setCursor(xPos, 8);
|
||||
OLED::printNumber(V % 10, 1);
|
||||
OLED::setFont(0);
|
||||
OLED::setCursor(xPos + 12, 0); // need to reset this as if we drew a wide char
|
||||
} else {
|
||||
OLED::printNumber(V, 1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
static void gui_solderingTempAdjust() {
|
||||
@@ -372,27 +372,27 @@ static void gui_solderingTempAdjust() {
|
||||
#ifdef MODEL_TS80
|
||||
if (!OLED::getRotation())
|
||||
#else
|
||||
if (OLED::getRotation())
|
||||
if (OLED::getRotation())
|
||||
#endif
|
||||
OLED::drawChar('-');
|
||||
OLED::print(SymbolMinus);
|
||||
else
|
||||
OLED::drawChar('+');
|
||||
OLED::print(SymbolPlus);
|
||||
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
OLED::printNumber(systemSettings.SolderingTemp, 3);
|
||||
if (systemSettings.temperatureInF)
|
||||
OLED::drawSymbol(0);
|
||||
else
|
||||
OLED::drawSymbol(1);
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
#ifdef MODEL_TS80
|
||||
if (!OLED::getRotation())
|
||||
#else
|
||||
if (OLED::getRotation())
|
||||
if (OLED::getRotation())
|
||||
#endif
|
||||
OLED::drawChar('+');
|
||||
OLED::print(SymbolPlus);
|
||||
else
|
||||
OLED::drawChar('-');
|
||||
OLED::print(SymbolMinus);
|
||||
OLED::refresh();
|
||||
GUIDelay();
|
||||
}
|
||||
@@ -415,7 +415,7 @@ static int gui_SolderingSleepingMode() {
|
||||
|| (xTaskGetTickCount() - lastButtonTime < 100))
|
||||
return 0; // user moved or pressed a button, go back to soldering
|
||||
#ifdef MODEL_TS100
|
||||
if (checkVoltageForExit())
|
||||
if (checkVoltageForExit())
|
||||
return 1; // return non-zero on error
|
||||
#endif
|
||||
if (systemSettings.temperatureInF) {
|
||||
@@ -443,13 +443,13 @@ static int gui_SolderingSleepingMode() {
|
||||
OLED::print(SleepingTipAdvancedString);
|
||||
OLED::printNumber(tipTemp, 3);
|
||||
if (systemSettings.temperatureInF)
|
||||
OLED::print("F");
|
||||
OLED::print(SymbolDegF);
|
||||
else
|
||||
OLED::print("C");
|
||||
OLED::print(SymbolDegC);
|
||||
|
||||
OLED::print(" ");
|
||||
OLED::print(SymbolSpace);
|
||||
printVoltage();
|
||||
OLED::drawChar('V');
|
||||
OLED::print(SymbolVolts);
|
||||
} else {
|
||||
OLED::setFont(0);
|
||||
OLED::print(SleepingSimpleString);
|
||||
@@ -484,10 +484,10 @@ static void display_countdown(int sleepThres) {
|
||||
int downCount = sleepThres - xTaskGetTickCount() + lastEventTime;
|
||||
if (downCount > 9900) {
|
||||
OLED::printNumber(downCount / 6000 + 1, 2);
|
||||
OLED::print("M");
|
||||
OLED::print(SymbolMinutes);
|
||||
} else {
|
||||
OLED::printNumber(downCount / 100 + 1, 2);
|
||||
OLED::print("S");
|
||||
OLED::print(SymbolSeconds);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -556,7 +556,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
OLED::setFont(0);
|
||||
uint16_t tipTemp = getTipRawTemp(0);
|
||||
if (tipTemp > 32700) {
|
||||
badTipCounter++;// Use a counter so that error has to persist for > 1 second continious so that peak errors dont trip it
|
||||
badTipCounter++; // Use a counter so that error has to persist for > 1 second continious so that peak errors dont trip it
|
||||
} else {
|
||||
badTipCounter = 0;
|
||||
}
|
||||
@@ -565,28 +565,28 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
OLED::setFont(1);
|
||||
OLED::print(SolderingAdvancedPowerPrompt); // Power:
|
||||
OLED::printNumber(milliWattHistory[0] / 1000, 2);
|
||||
OLED::drawChar('.');
|
||||
OLED::print(SymbolDot);
|
||||
OLED::printNumber(milliWattHistory[0] / 100 % 10, 1);
|
||||
OLED::drawChar('W');
|
||||
OLED::print(SymbolWatts);
|
||||
|
||||
if (systemSettings.sensitivity && systemSettings.SleepTime) {
|
||||
OLED::print(" ");
|
||||
OLED::print(SymbolSpace);
|
||||
display_countdown(sleepThres);
|
||||
}
|
||||
|
||||
OLED::setCursor(0, 8);
|
||||
OLED::print(SleepingTipAdvancedString);
|
||||
gui_drawTipTemp(true);
|
||||
OLED::print(" ");
|
||||
OLED::print(SymbolSpace);
|
||||
printVoltage();
|
||||
OLED::drawChar('V');
|
||||
OLED::print(SymbolVolts);
|
||||
} else {
|
||||
// We switch the layout direction depending on the orientation of the
|
||||
// OLED::
|
||||
if (OLED::getRotation()) {
|
||||
// battery
|
||||
gui_drawBatteryIcon();
|
||||
OLED::drawChar(' '); // Space out gap between battery <-> temp
|
||||
OLED::print(SymbolSpace); // Space out gap between battery <-> temp
|
||||
gui_drawTipTemp(true); // Draw current tip temp
|
||||
|
||||
// We draw boost arrow if boosting, or else gap temp <-> heat
|
||||
@@ -594,7 +594,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
if (boostModeOn)
|
||||
OLED::drawSymbol(2);
|
||||
else
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
|
||||
// Draw heating/cooling symbols
|
||||
OLED::drawHeatSymbol(
|
||||
@@ -610,10 +610,10 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
if (boostModeOn)
|
||||
OLED::drawSymbol(2);
|
||||
else
|
||||
OLED::drawChar(' ');
|
||||
OLED::print(SymbolSpace);
|
||||
gui_drawTipTemp(true); // Draw current tip temp
|
||||
|
||||
OLED::drawChar(' '); // Space out gap between battery <-> temp
|
||||
OLED::print(SymbolSpace); // Space out gap between battery <-> temp
|
||||
|
||||
gui_drawBatteryIcon();
|
||||
}
|
||||
@@ -674,17 +674,6 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
}
|
||||
}
|
||||
|
||||
static const char *HEADERS[] = {
|
||||
__DATE__, "Heap: ", "HWMG: ", "HWMP: ", "HWMM: ", "Time: ", "Move: ", "RTip: ",
|
||||
"CTip: ", "Vin :", "THan: ", "Model: ",
|
||||
#ifdef MODEL_TS80
|
||||
"QCV: ", "Tr ",
|
||||
#else
|
||||
"Tm ", "Ralim-",
|
||||
|
||||
#endif
|
||||
};
|
||||
|
||||
void showVersion(void) {
|
||||
uint8_t screen = 0;
|
||||
ButtonState b;
|
||||
@@ -693,12 +682,12 @@ void showVersion(void) {
|
||||
OLED::setCursor(0, 0); // Position the cursor at the 0,0 (top left)
|
||||
OLED::setFont(1); // small font
|
||||
#ifdef MODEL_TS100
|
||||
OLED::print((char *) "V2.06 TS100"); // Print version number
|
||||
OLED::print(SymbolVersionNumber); // Print version number
|
||||
#else
|
||||
OLED::print((char *) "V2.06 TS80"); // Print version number
|
||||
OLED::print(SymbolVersionNumber); // Print version number
|
||||
#endif
|
||||
OLED::setCursor(0, 8); // second line
|
||||
OLED::print(HEADERS[screen]);
|
||||
OLED::print(DebugMenu[screen]);
|
||||
switch (screen) {
|
||||
case 1:
|
||||
OLED::printNumber(xPortGetFreeHeapSize(), 5);
|
||||
@@ -744,7 +733,7 @@ void showVersion(void) {
|
||||
#ifdef MODEL_TS80
|
||||
OLED::printNumber(calculateTipR(), 5);
|
||||
#else
|
||||
OLED::print("Tek.com");
|
||||
OLED::printNumber(8500, 5);
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
@@ -882,7 +871,7 @@ void startGUITask(void const *argument __unused) {
|
||||
#ifdef MODEL_TS80
|
||||
if (!OLED::getRotation()) {
|
||||
#else
|
||||
if (OLED::getRotation()) {
|
||||
if (OLED::getRotation()) {
|
||||
#endif
|
||||
OLED::drawArea(12, 0, 84, 16, idleScreenBG);
|
||||
OLED::setCursor(0, 0);
|
||||
@@ -903,7 +892,7 @@ void startGUITask(void const *argument __unused) {
|
||||
#ifdef MODEL_TS80
|
||||
if (!OLED::getRotation()) {
|
||||
#else
|
||||
if (OLED::getRotation()) {
|
||||
if (OLED::getRotation()) {
|
||||
#endif
|
||||
// in right handed mode we want to draw over the first part
|
||||
OLED::fillArea(55, 0, 41, 16, 0); // clear the area for the temp
|
||||
@@ -932,19 +921,17 @@ void startPIDTask(void const *argument __unused) {
|
||||
*/
|
||||
setTipMilliWatts(0); // disable the output driver if the output is set to be off
|
||||
#ifdef MODEL_TS80
|
||||
idealQCVoltage = calculateMaxVoltage(systemSettings.cutoutSetting);
|
||||
idealQCVoltage = calculateMaxVoltage(systemSettings.cutoutSetting);
|
||||
#endif
|
||||
uint8_t rawC = ctoTipMeasurement(101) - ctoTipMeasurement(100); // 1*C change in raw.
|
||||
|
||||
#ifdef MODEL_TS80
|
||||
//Set power management code to the tip resistance in ohms * 10
|
||||
setupPower(calculateTipR() / 100);
|
||||
//size_t lastPowerPulse = 0;
|
||||
#else
|
||||
setupPower(85);
|
||||
|
||||
//Set power management code to the tip resistance in ohms * 10
|
||||
TickType_t lastPowerPulse = 0;
|
||||
#endif
|
||||
history<int32_t> tempError = { { 0 }, 0, 0 };
|
||||
// Tip temp reading filter
|
||||
// Tip temp is read at a rate of PID_TIM_Hz
|
||||
history<int32_t, PID_TIM_HZ / 4> tempError = { { 0 }, 0, 0 };
|
||||
currentlyActiveTemperatureTarget = 0; // Force start with no output (off). If in sleep / soldering this will
|
||||
// be over-ridden rapidly
|
||||
pidTaskNotification = xTaskGetCurrentTaskHandle();
|
||||
@@ -958,9 +945,9 @@ void startPIDTask(void const *argument __unused) {
|
||||
if (currentlyActiveTemperatureTarget > ctoTipMeasurement(450)) {
|
||||
//Maximum allowed output
|
||||
currentlyActiveTemperatureTarget = ctoTipMeasurement(450);
|
||||
} else if (currentlyActiveTemperatureTarget > 32400) {
|
||||
//Cap to max adc reading
|
||||
currentlyActiveTemperatureTarget = 32400;
|
||||
} else if (currentlyActiveTemperatureTarget > 32700) {
|
||||
//Cap to max adc reading (32768)
|
||||
currentlyActiveTemperatureTarget = 32700;
|
||||
}
|
||||
|
||||
// As we get close to our target, temp noise causes the system
|
||||
@@ -974,27 +961,15 @@ void startPIDTask(void const *argument __unused) {
|
||||
tempError.update(tError);
|
||||
|
||||
// Now for the PID!
|
||||
int32_t milliWattsOut = 0;
|
||||
|
||||
// P term - total power needed to hit target temp next cycle.
|
||||
// thermal mass = 1690 milliJ/*C for my tip.
|
||||
// = Watts*Seconds to raise Temp from room temp to +100*C, divided by 100*C.
|
||||
// we divide milliWattsNeeded by 20 to let the I term dominate near the set point.
|
||||
// This is necessary because of the temp noise and thermal lag in the system.
|
||||
// Once we have feed-forward temp estimation we should be able to better tune this.
|
||||
|
||||
#ifdef MODEL_TS100
|
||||
const uint16_t mass = 2020 / 20; // divide here so division is compile-time.
|
||||
#endif
|
||||
#ifdef MODEL_TS80
|
||||
const uint16_t mass = 2020 / 50;
|
||||
#endif
|
||||
|
||||
int32_t milliWattsNeeded = tempToMilliWatts(tempError.average(),
|
||||
mass, rawC);
|
||||
int32_t milliWattsOut = tempToMilliWatts(tempError.average(),
|
||||
rawC);
|
||||
// note that milliWattsNeeded is sometimes negative, this counters overshoot
|
||||
// from I term's inertia.
|
||||
milliWattsOut += milliWattsNeeded;
|
||||
|
||||
// I term - energy needed to compensate for heat loss.
|
||||
// We track energy put into the system over some window.
|
||||
@@ -1002,29 +977,29 @@ void startPIDTask(void const *argument __unused) {
|
||||
// (If it isn't, P will dominate).
|
||||
milliWattsOut += milliWattHistory.average();
|
||||
|
||||
// D term - use sudden temp change to counter fast cooling/heating.
|
||||
// In practice, this provides an early boost if temp is dropping
|
||||
// and counters extra power if the iron is no longer losing temp.
|
||||
// basically: temp - lastTemp
|
||||
// Unfortunately, our temp signal is too noisy to really help.
|
||||
// Not Used:
|
||||
// D term - use sudden temp change to counter fast cooling/heating.
|
||||
// In practice, this provides an early boost if temp is dropping
|
||||
// and counters extra power if the iron is no longer losing temp.
|
||||
// basically: temp - lastTemp
|
||||
// Unfortunately, our temp signal is too noisy to really help.
|
||||
|
||||
setTipMilliWatts(milliWattsOut);
|
||||
} else {
|
||||
|
||||
#ifdef MODEL_TS80
|
||||
//If its a TS80, we want to have the option of using an occasional pulse to keep the power bank on
|
||||
//~200ms @ a low wattage
|
||||
//Doesnt keep all power banks awake but helps with some
|
||||
/*if (xTaskGetTickCount() - lastPowerPulse < 20) {
|
||||
// for the first 200mS turn on for a bit
|
||||
setTipMilliWatts(4000); // typically its around 5W to hold the current temp, so this wont raise temp much
|
||||
} else
|
||||
setTipMilliWatts(0);
|
||||
//Then wait until the next second
|
||||
if (xTaskGetTickCount() - lastPowerPulse > 100) {
|
||||
lastPowerPulse = xTaskGetTickCount();
|
||||
}*/
|
||||
setTipMilliWatts(0);
|
||||
// This is purely guesswork :'( as everyone implements stuff differently
|
||||
if (xTaskGetTickCount() - lastPowerPulse < 10) {
|
||||
// for the first 100mS turn on for a bit
|
||||
setTipMilliWatts(2000); // typically its around 5W to hold the current temp, so this wont raise temp much
|
||||
} else {
|
||||
setTipMilliWatts(0);
|
||||
}
|
||||
//Then wait until the next 0.5 seconds
|
||||
if (xTaskGetTickCount() - lastPowerPulse > 50) {
|
||||
lastPowerPulse = xTaskGetTickCount();
|
||||
}
|
||||
#else
|
||||
setTipMilliWatts(0);
|
||||
#endif
|
||||
@@ -1032,7 +1007,6 @@ void startPIDTask(void const *argument __unused) {
|
||||
|
||||
HAL_IWDG_Refresh(&hiwdg);
|
||||
} else {
|
||||
asm("bkpt");
|
||||
|
||||
//ADC interrupt timeout
|
||||
setTipMilliWatts(0);
|
||||
@@ -1048,9 +1022,9 @@ void startMOVTask(void const *argument __unused) {
|
||||
#ifdef MODEL_TS80
|
||||
startQC(systemSettings.voltageDiv);
|
||||
while (pidTaskNotification == 0)
|
||||
osDelay(20); // To ensure we return after idealQCVoltage/tip resistance
|
||||
osDelay(30); // To ensure we return after idealQCVoltage/tip resistance
|
||||
|
||||
seekQC(idealQCVoltage, systemSettings.voltageDiv);// this will move the QC output to the preferred voltage to start with
|
||||
seekQC(idealQCVoltage, systemSettings.voltageDiv); // this will move the QC output to the preferred voltage to start with
|
||||
|
||||
#else
|
||||
osDelay(250); // wait for accelerometer to stabilize
|
||||
@@ -1058,12 +1032,11 @@ void startMOVTask(void const *argument __unused) {
|
||||
|
||||
OLED::setRotation(systemSettings.OrientationMode & 1);
|
||||
lastMovementTime = 0;
|
||||
int16_t datax[MOVFilter] = { 0 };
|
||||
int16_t datay[MOVFilter] = { 0 };
|
||||
int16_t dataz[MOVFilter] = { 0 };
|
||||
uint8_t currentPointer = 0;
|
||||
int16_t tx = 0, ty = 0, tz = 0;
|
||||
int32_t avgx = 0, avgy = 0, avgz = 0;
|
||||
history<int32_t, MOVFilter> datax = { { 0 }, 0, 0 };
|
||||
history<int32_t, MOVFilter> datay = { { 0 }, 0, 0 };
|
||||
history<int32_t, MOVFilter> dataz = { { 0 }, 0, 0 };
|
||||
|
||||
int16_t tempx = 0, tempy = 0, tempz = 0;
|
||||
if (systemSettings.sensitivity > 9)
|
||||
systemSettings.sensitivity = 9;
|
||||
#if ACCELDEBUG
|
||||
@@ -1075,10 +1048,10 @@ void startMOVTask(void const *argument __unused) {
|
||||
threshold -= systemSettings.sensitivity * 200; // 200 is the step size
|
||||
|
||||
if (PCBVersion == 2) {
|
||||
LIS2DH12::getAxisReadings(&tx, &ty, &tz);
|
||||
LIS2DH12::getAxisReadings(&tempx, &tempy, &tempz);
|
||||
rotation = LIS2DH12::getOrientation();
|
||||
} else if (PCBVersion == 1) {
|
||||
MMA8652FC::getAxisReadings(&tx, &ty, &tz);
|
||||
MMA8652FC::getAxisReadings(&tempx, &tempy, &tempz);
|
||||
rotation = MMA8652FC::getOrientation();
|
||||
}
|
||||
if (systemSettings.OrientationMode == 2) {
|
||||
@@ -1086,60 +1059,21 @@ void startMOVTask(void const *argument __unused) {
|
||||
OLED::setRotation(rotation == ORIENTATION_LEFT_HAND); // link the data through
|
||||
}
|
||||
}
|
||||
datax[currentPointer] = (int32_t) tx;
|
||||
datay[currentPointer] = (int32_t) ty;
|
||||
dataz[currentPointer] = (int32_t) tz;
|
||||
currentPointer = (currentPointer + 1) % MOVFilter;
|
||||
avgx = avgy = avgz = 0;
|
||||
// calculate averages
|
||||
for (uint8_t i = 0; i < MOVFilter; i++) {
|
||||
avgx += datax[i];
|
||||
avgy += datay[i];
|
||||
avgz += dataz[i];
|
||||
}
|
||||
avgx /= MOVFilter;
|
||||
avgy /= MOVFilter;
|
||||
avgz /= MOVFilter;
|
||||
|
||||
datax.update(tempx);
|
||||
datay.update(tempx);
|
||||
dataz.update(tempx);
|
||||
|
||||
// Sum the deltas
|
||||
int32_t error = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
|
||||
|
||||
#if ACCELDEBUG
|
||||
// Debug for Accel
|
||||
|
||||
OLED::setFont(1);
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::printNumber(abs(avgx - (int32_t)tx), 5);
|
||||
OLED::print(" ");
|
||||
OLED::printNumber(abs(avgy - (int32_t)ty), 5);
|
||||
if (error > max) {
|
||||
max = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
|
||||
}
|
||||
OLED::setCursor(0, 8);
|
||||
OLED::printNumber(max, 5);
|
||||
OLED::print(" ");
|
||||
|
||||
OLED::printNumber((abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz)), 5);
|
||||
OLED::refresh();
|
||||
if (HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pin) == GPIO_PIN_RESET) {
|
||||
max = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int32_t error = (abs(datax.average() - tempx)
|
||||
+ abs(datay.average() - tempy) + abs(dataz.average() - tempz));
|
||||
// So now we have averages, we want to look if these are different by more
|
||||
// than the threshold
|
||||
|
||||
// If error has occurred then we update the tick timer
|
||||
// If this has occurred then we update the tick timer
|
||||
if (error > threshold) {
|
||||
lastMovementTime = xTaskGetTickCount();
|
||||
}
|
||||
|
||||
osDelay(100); // Slow down update rate
|
||||
#ifdef MODEL_TS80
|
||||
if (currentlyActiveTemperatureTarget) {
|
||||
seekQC(idealQCVoltage, systemSettings.voltageDiv); // Run the QC seek again to try and compensate for cable V drop
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1149,16 +1083,11 @@ void startMOVTask(void const *argument __unused) {
|
||||
bool showBootLogoIfavailable() {
|
||||
// check if the header is there (0xAA,0x55,0xF0,0x0D)
|
||||
// If so display logo
|
||||
// TODO REDUCE STACK ON THIS ONE, USE DRAWING IN THE READ LOOP
|
||||
uint16_t temp[98];
|
||||
|
||||
for (uint8_t i = 0; i < (98); i++) {
|
||||
temp[i] = *(uint16_t *) (FLASH_LOGOADDR + (i * 2));
|
||||
}
|
||||
uint8_t temp8[98 * 2];
|
||||
for (uint8_t i = 0; i < 98; i++) {
|
||||
temp8[i * 2] = temp[i] >> 8;
|
||||
temp8[i * 2 + 1] = temp[i] & 0xFF;
|
||||
uint16_t temp = *(uint16_t *) (FLASH_LOGOADDR + (i * 2));
|
||||
temp8[i * 2] = temp >> 8;
|
||||
temp8[i * 2 + 1] = temp & 0xFF;
|
||||
}
|
||||
|
||||
if (temp8[0] != 0xAA)
|
||||
@@ -1181,14 +1110,13 @@ bool showBootLogoIfavailable() {
|
||||
* runs again
|
||||
*/
|
||||
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) {
|
||||
(void) hadc;
|
||||
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
|
||||
if (hadc == &hadc1) {
|
||||
if (pidTaskNotification) {
|
||||
vTaskNotifyGiveFromISR(pidTaskNotification,
|
||||
&xHigherPriorityTaskWoken);
|
||||
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
|
||||
}
|
||||
if (pidTaskNotification) {
|
||||
vTaskNotifyGiveFromISR(pidTaskNotification, &xHigherPriorityTaskWoken);
|
||||
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
|
||||
}
|
||||
|
||||
}
|
||||
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
|
||||
FRToSI2C::CpltCallback();
|
||||
@@ -1200,13 +1128,9 @@ void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
|
||||
FRToSI2C::CpltCallback();
|
||||
}
|
||||
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c __unused) {
|
||||
asm("bkpt");
|
||||
|
||||
FRToSI2C::CpltCallback();
|
||||
}
|
||||
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
|
||||
//asm("bkpt");
|
||||
|
||||
FRToSI2C::CpltCallback();
|
||||
}
|
||||
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
|
||||
@@ -1214,7 +1138,6 @@ void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) {
|
||||
}
|
||||
void vApplicationStackOverflowHook(xTaskHandle *pxTask __unused,
|
||||
signed portCHAR *pcTaskName __unused) {
|
||||
asm("bkpt");
|
||||
// We dont have a good way to handle a stack overflow at this point in time
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
@@ -9,56 +9,68 @@
|
||||
#include <Settings.h>
|
||||
#include <hardware.h>
|
||||
|
||||
uint8_t tipResistance = 85; //x10 ohms, 8.5 typical for ts100, 4.5 typical for ts80
|
||||
const uint16_t powerPWM = 255;
|
||||
const uint16_t totalPWM = 255 + 60; //htim2.Init.Period, the full PWM cycle
|
||||
const uint16_t totalPWM = 255 + 17; //htim2.Init.Period, the full PWM cycle
|
||||
|
||||
history<uint32_t, oscillationPeriod> milliWattHistory = { { 0 }, 0, 0 };
|
||||
|
||||
void setupPower(uint8_t res) {
|
||||
tipResistance = res;
|
||||
}
|
||||
|
||||
int32_t tempToMilliWatts(int32_t rawTemp, uint16_t mass, uint8_t rawC) {
|
||||
int32_t tempToMilliWatts(int32_t rawTemp, uint8_t rawC) {
|
||||
// mass is in milliJ/*C, rawC is raw per degree C
|
||||
// returns milliWatts needed to raise/lower a mass by rawTemp
|
||||
// degrees in one cycle.
|
||||
int32_t milliJoules = mass * rawTemp / rawC;
|
||||
return milliJoules * hz;
|
||||
int32_t milliJoules = tipMass*10 * (rawTemp / rawC);
|
||||
return milliJoules;
|
||||
}
|
||||
|
||||
void setTipMilliWatts(int32_t mw) {
|
||||
int32_t output = milliWattsToPWM(mw, systemSettings.voltageDiv / 10,1);
|
||||
//Enforce Max Watts Limiter # TODO
|
||||
|
||||
int32_t output = milliWattsToPWM(mw, systemSettings.voltageDiv , 1);
|
||||
setTipPWM(output);
|
||||
uint16_t actualMilliWatts = PWMToMilliWatts(output,
|
||||
systemSettings.voltageDiv / 10);
|
||||
uint32_t actualMilliWatts = PWMToMilliWatts(output,
|
||||
systemSettings.voltageDiv , 0);
|
||||
|
||||
milliWattHistory.update(actualMilliWatts);
|
||||
}
|
||||
|
||||
uint8_t milliWattsToPWM(int32_t milliWatts, uint8_t divisor, uint8_t sample) {
|
||||
int32_t availableW10(uint8_t divisor, uint8_t sample) {
|
||||
//P = V^2 / R, v*v = v^2 * 100
|
||||
// R = R*10
|
||||
// P therefore is in V^2*10/R = W*10.
|
||||
// Scale input milliWatts to the pwm rate
|
||||
if (milliWatts == 0)
|
||||
return 0;
|
||||
// P therefore is in V^2*100/R*10 = W*10.
|
||||
int32_t v = getInputVoltageX10(divisor, sample); // 100 = 10v
|
||||
int32_t availableMilliWatts = v * v / tipResistance;
|
||||
int32_t availableWattsX10 = (v * v) / tipResistance;
|
||||
//However, 100% duty cycle is not possible as there is a dead time while the ADC takes a reading
|
||||
//Therefore need to scale available milliwats by this
|
||||
|
||||
//int32_t pwm = ((powerPWM * totalPWM / powerPWM) * milliWatts) / availableMilliWatts;
|
||||
int32_t pwm = (totalPWM * milliWatts) / availableMilliWatts;
|
||||
// avMw=(AvMw*powerPWM)/totalPWM.
|
||||
availableWattsX10 = availableWattsX10 * powerPWM;
|
||||
availableWattsX10 /= totalPWM;
|
||||
|
||||
//availableMilliWattsX10 is now an accurate representation
|
||||
return availableWattsX10;
|
||||
}
|
||||
|
||||
uint8_t milliWattsToPWM(int32_t milliWatts, uint8_t divisor, uint8_t sample) {
|
||||
|
||||
// Scale input milliWatts to the pwm rate
|
||||
if (milliWatts < 10) // no pint driving tip
|
||||
return 0;
|
||||
|
||||
//Calculate desired milliwatts as a percentage of availableW10
|
||||
int32_t pwm = (powerPWM * milliWatts) / availableW10(divisor, sample);
|
||||
if (pwm > powerPWM) {
|
||||
pwm = powerPWM;
|
||||
} else if (pwm < 0) {
|
||||
pwm = powerPWM; //constrain to max PWM counter, shouldnt be possible, but small cost for safety to avoid wraps
|
||||
} else if (pwm < 0) { //cannot go negative
|
||||
pwm = 0;
|
||||
}
|
||||
|
||||
|
||||
return pwm;
|
||||
}
|
||||
|
||||
int32_t PWMToMilliWatts(uint8_t pwm, uint8_t divisor) {
|
||||
int32_t v = getInputVoltageX10(divisor, 0);
|
||||
return pwm * (v * v / tipResistance) / (powerPWM * totalPWM / powerPWM);
|
||||
int32_t PWMToMilliWatts(uint8_t pwm, uint8_t divisor, uint8_t sample) {
|
||||
int32_t maxMW = availableW10(divisor, sample); //Get the milliwatts for the max pwm period
|
||||
//Then convert pwm into percentage of powerPWM to get the percentage of the max mw
|
||||
int32_t res = (pwm * maxMW) / powerPWM;
|
||||
if (res < 0)
|
||||
res = 0;
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.atollic.truestudio.configuration.release.200032419">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.atollic.truestudio.configuration.release.200032419" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.atollic.truestudio.configuration.release.200032419" moduleId="org.eclipse.cdt.core.settings" name="ReleaseTS100">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
@@ -12,15 +12,15 @@
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="com.atollic.truestudio.configuration.release.200032419" name="Release" parent="com.atollic.truestudio.configuration.release">
|
||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.configuration.release.200032419" name="ReleaseTS100" parent="com.atollic.truestudio.configuration.release" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
|
||||
<folderInfo id="com.atollic.truestudio.configuration.release.200032419." name="/" resourcePath="">
|
||||
<toolChain id="com.atollic.truestudio.exe.release.toolchain.1340188969" name="Atollic ARM Tools" superClass="com.atollic.truestudio.exe.release.toolchain">
|
||||
<option id="com.atollic.truestudio.general.runtimelib.191191414" name="Runtime Library" superClass="com.atollic.truestudio.general.runtimelib" useByScannerDiscovery="false" value="com.atollic.truestudio.ld.general.cclib.CCStandardCStandard" valueType="enumerated"/>
|
||||
<toolChain errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.1340188969" name="Atollic ARM Tools" superClass="com.atollic.truestudio.exe.release.toolchain">
|
||||
<option id="com.atollic.truestudio.general.runtimelib.191191414" name="Runtime Library" superClass="com.atollic.truestudio.general.runtimelib" useByScannerDiscovery="false" value="com.atollic.truestudio.ld.general.cclib.CCSmallCSmall" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.mcu.1436647432" name="Microcontroller" superClass="com.atollic.truestudio.toolchain_options.mcu" useByScannerDiscovery="false" value="STM32F103T8" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.vendor.1169826438" name="Vendor name" superClass="com.atollic.truestudio.toolchain_options.vendor" useByScannerDiscovery="false" value="STMicroelectronics" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.release.toolchain.platform.1125330428" isAbstract="false" name="release platform" superClass="com.atollic.truestudio.exe.release.toolchain.platform"/>
|
||||
<builder autoBuildTarget="" buildPath="${workspace_loc:/TS100A}/Release" cleanBuildTarget="" customBuilderProperties="toolChainpathString=C:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0\\ARMTools\\bin|toolChainpathType=1|com.atollic.truestudio.common_options.target.vendor=STMicroelectronics|com.atollic.truestudio.common_options.target.mcu=STM32F103T8|" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.atollic.truestudio.mbs.builder1.1682214826" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" parallelBuildOn="false" superClass="com.atollic.truestudio.mbs.builder1"/>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.as.5806016" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as">
|
||||
<builder autoBuildTarget="" buildPath="${workspace_loc:/TS100A}/Release" cleanBuildTarget="" customBuilderProperties="toolChainpathString=/opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.3.0/ARMTools/bin|toolChainpathType=1|com.atollic.truestudio.common_options.target.vendor=STMicroelectronics|com.atollic.truestudio.common_options.target.mcu=STM32F103T8|" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" errorParsers="" id="com.atollic.truestudio.mbs.builder1.1682214826" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.atollic.truestudio.mbs.builder1"/>
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.atollic.truestudio.exe.release.toolchain.as.5806016" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1911688133" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1179040963" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.278602993" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
@@ -49,10 +49,10 @@
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.as.debug.flags.1010729648" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.as.debug.flags" useByScannerDiscovery="false" value="com.atollic.truestudio.as.debug.flags.3" valueType="enumerated"/>
|
||||
<inputType id="com.atollic.truestudio.as.input.640267647" name="Input" superClass="com.atollic.truestudio.as.input"/>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.gcc.45651038" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc">
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gcc.45651038" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc">
|
||||
<option id="com.atollic.truestudio.gcc.symbols.defined.1383071182" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS80"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS100"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
@@ -61,14 +61,14 @@
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.gcc.directories.select.1784012793" name="Include path" superClass="com.atollic.truestudio.gcc.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc/Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.995599109" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1774407741" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
@@ -91,11 +91,12 @@
|
||||
<option id="com.atollic.truestudio.ld.general.scriptfile.755006424" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../stm32_flash.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ld.optimization.do_garbage.2103581239" name="Dead code removal " superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.234525005" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork"/>
|
||||
<option id="com.atollic.truestudio.ld.misc.genmapfile.444765358" name="Create map file" superClass="com.atollic.truestudio.ld.misc.genmapfile"/>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.gpp.93636755" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp">
|
||||
<tool command="arm-atollic-eabi-g++ -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gpp.93636755" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp">
|
||||
<option id="com.atollic.truestudio.gpp.symbols.defined.552082963" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS80"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS100"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
@@ -104,14 +105,14 @@
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.gpp.directories.select.1908833089" name="Include path" superClass="com.atollic.truestudio.gpp.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc/Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1156506838" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.260174094" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
@@ -129,7 +130,7 @@
|
||||
<option id="com.atollic.truestudio.gpp.optimization.no_strict_aliasing.1375071191" name="No strict aliasing" superClass="com.atollic.truestudio.gpp.optimization.no_strict_aliasing" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||
<inputType id="com.atollic.truestudio.gpp.input.1156264590" superClass="com.atollic.truestudio.gpp.input"/>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.ldcc.407189665" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc">
|
||||
<tool command="arm-atollic-eabi-g++" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.atollic.truestudio.exe.release.toolchain.ldcc.407189665" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.541299694" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.586012836" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1795137823" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
@@ -140,13 +141,14 @@
|
||||
<option id="com.atollic.truestudio.ldcc.misc.linkerflags.2127852186" name="Other options" superClass="com.atollic.truestudio.ldcc.misc.linkerflags" useByScannerDiscovery="false" value="-Wl,-cref,-u,Reset_Handler,-lm -Os -flto -Wl,--undefined=vTaskSwitchContext" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.malloc_page_size.1711302014" name="Page size allocation for malloc() " superClass="com.atollic.truestudio.ldcc.optimization.malloc_page_size" useByScannerDiscovery="false" value="com.atollic.truestudio.ldcc.optimization.malloc_page_size.128" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1666808603" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.genmapfile.1497893499" name="Create map file" superClass="com.atollic.truestudio.ldcc.misc.genmapfile" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.ldcc.input.1102687442" name="Input" superClass="com.atollic.truestudio.ldcc.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.ar.base.338247844" name="Archiver" superClass="com.atollic.truestudio.ar.base"/>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.secoutput.1639207399" name="Other" superClass="com.atollic.truestudio.exe.release.toolchain.secoutput">
|
||||
<tool command="arm-atollic-reports.jar" commandLinePattern="${COMMAND} ${FLAGS} ${INPUTS}" errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.secoutput.1639207399" name="Other" superClass="com.atollic.truestudio.exe.release.toolchain.secoutput">
|
||||
<option id="com.atollic.truestudio.secoutput.general.convert.1862563224" name="Convert build output" superClass="com.atollic.truestudio.secoutput.general.convert" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
@@ -158,8 +160,8 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.atollic.truestudio.configuration.release.200032419.2005314669">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.atollic.truestudio.configuration.release.200032419.2005314669" moduleId="org.eclipse.cdt.core.settings" name="TS100">
|
||||
<cconfiguration id="com.atollic.truestudio.configuration.release.200032419.567701681">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.atollic.truestudio.configuration.release.200032419.567701681" moduleId="org.eclipse.cdt.core.settings" name="ReleaseTS80">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
@@ -169,21 +171,21 @@
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.configuration.release.200032419.2005314669" name="TS100" parent="com.atollic.truestudio.configuration.release" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
|
||||
<folderInfo id="com.atollic.truestudio.configuration.release.200032419.2005314669." name="/" resourcePath="">
|
||||
<toolChain errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.790179169" name="Atollic ARM Tools" superClass="com.atollic.truestudio.exe.release.toolchain">
|
||||
<option id="com.atollic.truestudio.general.runtimelib.832126625" name="Runtime Library" superClass="com.atollic.truestudio.general.runtimelib" useByScannerDiscovery="false" value="com.atollic.truestudio.ld.general.cclib.CCStandardCStandard" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.mcu.967724944" name="Microcontroller" superClass="com.atollic.truestudio.toolchain_options.mcu" useByScannerDiscovery="false" value="STM32F103T8" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.vendor.1608876733" name="Vendor name" superClass="com.atollic.truestudio.toolchain_options.vendor" useByScannerDiscovery="false" value="STMicroelectronics" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.release.toolchain.platform.2056621458" isAbstract="false" name="release platform" superClass="com.atollic.truestudio.exe.release.toolchain.platform"/>
|
||||
<builder buildPath="${workspace_loc:/TS100A}/Release" customBuilderProperties="toolChainpathString=C:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0\\ARMTools\\bin|toolChainpathType=1|com.atollic.truestudio.common_options.target.vendor=STMicroelectronics|com.atollic.truestudio.common_options.target.mcu=STM32F103T8|" errorParsers="" id="com.atollic.truestudio.mbs.builder1.1970479062" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="com.atollic.truestudio.mbs.builder1"/>
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.atollic.truestudio.exe.release.toolchain.as.1116045031" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.532801301" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1606774976" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.833489345" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.313760852" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.423848100" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.as.symbols.defined.706464592" name="Defined symbols" superClass="com.atollic.truestudio.as.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.configuration.release.200032419.567701681" name="ReleaseTS80" parent="com.atollic.truestudio.configuration.release" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
|
||||
<folderInfo id="com.atollic.truestudio.configuration.release.200032419.567701681." name="/" resourcePath="">
|
||||
<toolChain errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.1370081329" name="Atollic ARM Tools" superClass="com.atollic.truestudio.exe.release.toolchain">
|
||||
<option id="com.atollic.truestudio.general.runtimelib.1144750697" name="Runtime Library" superClass="com.atollic.truestudio.general.runtimelib" useByScannerDiscovery="false" value="com.atollic.truestudio.ld.general.cclib.CCSmallCSmall" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.mcu.1299329923" name="Microcontroller" superClass="com.atollic.truestudio.toolchain_options.mcu" useByScannerDiscovery="false" value="STM32F103T8" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.vendor.360998338" name="Vendor name" superClass="com.atollic.truestudio.toolchain_options.vendor" useByScannerDiscovery="false" value="STMicroelectronics" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.release.toolchain.platform.676659043" isAbstract="false" name="release platform" superClass="com.atollic.truestudio.exe.release.toolchain.platform"/>
|
||||
<builder autoBuildTarget="" buildPath="${workspace_loc:/TS100A}/Release" cleanBuildTarget="" customBuilderProperties="toolChainpathString=/opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.3.0/ARMTools/bin|toolChainpathType=1|com.atollic.truestudio.common_options.target.vendor=STMicroelectronics|com.atollic.truestudio.common_options.target.mcu=STM32F103T8|" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" errorParsers="" id="com.atollic.truestudio.mbs.builder1.643804487" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.atollic.truestudio.mbs.builder1"/>
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.atollic.truestudio.exe.release.toolchain.as.1501061643" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.2023984459" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1319355665" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1692589717" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.326700402" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.335481321" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.as.symbols.defined.1345132644" name="Defined symbols" superClass="com.atollic.truestudio.as.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
@@ -191,7 +193,7 @@
|
||||
<listOptionValue builtIn="false" value="STM32F103xB"/>
|
||||
<listOptionValue builtIn="false" value="USE_RTOS_SYSTICK"/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.as.general.incpath.1165258034" name="Include path" superClass="com.atollic.truestudio.as.general.incpath" useByScannerDiscovery="false" valueType="includePath">
|
||||
<option id="com.atollic.truestudio.as.general.incpath.1237254978" name="Include path" superClass="com.atollic.truestudio.as.general.incpath" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
@@ -202,269 +204,111 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.2098532585" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.as.input.199834741" name="Input" superClass="com.atollic.truestudio.as.input"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1920257013" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.as.debug.flags.2105311850" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.as.debug.flags" useByScannerDiscovery="false" value="com.atollic.truestudio.as.debug.flags.3" valueType="enumerated"/>
|
||||
<inputType id="com.atollic.truestudio.as.input.685367003" name="Input" superClass="com.atollic.truestudio.as.input"/>
|
||||
</tool>
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gcc.1773256937" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc">
|
||||
<option id="com.atollic.truestudio.gcc.symbols.defined.1274040270" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gcc.432309007" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc">
|
||||
<option id="com.atollic.truestudio.gcc.symbols.defined.815038380" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS100"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS80"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
<listOptionValue builtIn="false" value="STM32F103xB"/>
|
||||
<listOptionValue builtIn="false" value="USE_RTOS_SYSTICK"/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.gcc.directories.select.1921628340" name="Include path" superClass="com.atollic.truestudio.gcc.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<option id="com.atollic.truestudio.gcc.directories.select.784651652" name="Include path" superClass="com.atollic.truestudio.gcc.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc/Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1246726436" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.120931966" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1609836877" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.2048530479" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.179253875" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gcc.optimization.prep_garbage.487627031" name="Prepare dead code removal " superClass="com.atollic.truestudio.gcc.optimization.prep_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gcc.optimization.prep_data.732099984" name="Prepare dead data removal" superClass="com.atollic.truestudio.gcc.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info.1305877572" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gcc.debug.info.3" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.gcc.warnings.extra.918502286" name="Enable extra warning flags" superClass="com.atollic.truestudio.gcc.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1430376754" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.gcc.input.1218983433" superClass="com.atollic.truestudio.gcc.input"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.581535424" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.929120351" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.388833854" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.785429959" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.771481133" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gcc.optimization.prep_garbage.1230177354" name="Prepare dead code removal " superClass="com.atollic.truestudio.gcc.optimization.prep_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gcc.optimization.prep_data.900857724" name="Prepare dead data removal" superClass="com.atollic.truestudio.gcc.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info.44800069" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gcc.debug.info.3" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.gcc.warnings.extra.682480079" name="Enable extra warning flags" superClass="com.atollic.truestudio.gcc.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1941407234" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.gcc.input.562764950" superClass="com.atollic.truestudio.gcc.input"/>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.ld.2062140266" name="C Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ld">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.202331070" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1584957200" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.88629340" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.935232041" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.308894529" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||
<option id="com.atollic.truestudio.ld.general.scriptfile.30838865" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../stm32_flash.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ld.optimization.do_garbage.1519904337" name="Dead code removal " superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1876933394" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork"/>
|
||||
<option id="com.atollic.truestudio.ld.misc.genmapfile.1111696661" name="Create map file" superClass="com.atollic.truestudio.ld.misc.genmapfile"/>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.ld.91790850" name="C Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ld">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1380652799" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.884099538" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.588508551" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1611268083" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.1619066040" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||
<option id="com.atollic.truestudio.ld.general.scriptfile.179084119" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../stm32_flash.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ld.optimization.do_garbage.1433560009" name="Dead code removal " superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.46454421" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork"/>
|
||||
<option id="com.atollic.truestudio.ld.misc.genmapfile.2012342834" name="Create map file" superClass="com.atollic.truestudio.ld.misc.genmapfile"/>
|
||||
</tool>
|
||||
<tool command="arm-atollic-eabi-g++ -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gpp.229799678" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp">
|
||||
<option id="com.atollic.truestudio.gpp.symbols.defined.843853133" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<tool command="arm-atollic-eabi-g++ -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gpp.1503164054" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp">
|
||||
<option id="com.atollic.truestudio.gpp.symbols.defined.963192144" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS100"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS80"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
<listOptionValue builtIn="false" value="STM32F103xB"/>
|
||||
<listOptionValue builtIn="false" value="USE_RTOS_SYSTICK"/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.gpp.directories.select.429075052" name="Include path" superClass="com.atollic.truestudio.gpp.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<option id="com.atollic.truestudio.gpp.directories.select.105427562" name="Include path" superClass="com.atollic.truestudio.gpp.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc/Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/HAL_Driver/Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/CMSIS/device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.2125214141" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1535244038" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1844576388" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1536189706" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.1070745777" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.prep_garbage.967740502" name="Prepare dead code removal" superClass="com.atollic.truestudio.gpp.optimization.prep_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.prep_data.1758485333" name="Prepare dead data removal" superClass="com.atollic.truestudio.gpp.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.fno_rtti.1034234085" name="Disable RTTI" superClass="com.atollic.truestudio.gpp.optimization.fno_rtti" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.fno_exceptions.489770809" name="Disable exception handling" superClass="com.atollic.truestudio.gpp.optimization.fno_exceptions" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info.657554017" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.debug.info.3" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.gpp.warnings.extra.1622434843" name="Enable extra warning flags" superClass="com.atollic.truestudio.gpp.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.cppstandard.117433311" name="C++ standard" superClass="com.atollic.truestudio.gpp.cppstandard" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.cppstandard.gnupp14" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.2122034593" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.gpp.input.1134011493" superClass="com.atollic.truestudio.gpp.input"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1128985254" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1586871784" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1699158304" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.799517054" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.1467318023" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.prep_garbage.16661934" name="Prepare dead code removal" superClass="com.atollic.truestudio.gpp.optimization.prep_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.prep_data.847840077" name="Prepare dead data removal" superClass="com.atollic.truestudio.gpp.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.fno_rtti.1986456046" name="Disable RTTI" superClass="com.atollic.truestudio.gpp.optimization.fno_rtti" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.fno_exceptions.1695726889" name="Disable exception handling" superClass="com.atollic.truestudio.gpp.optimization.fno_exceptions" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info.573774049" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.debug.info.3" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.gpp.warnings.extra.1397196398" name="Enable extra warning flags" superClass="com.atollic.truestudio.gpp.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.cppstandard.1578461032" name="C++ standard" superClass="com.atollic.truestudio.gpp.cppstandard" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.cppstandard.gnupp14" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1841019237" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.no_strict_aliasing.140876649" name="No strict aliasing" superClass="com.atollic.truestudio.gpp.optimization.no_strict_aliasing" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||
<inputType id="com.atollic.truestudio.gpp.input.1808551061" superClass="com.atollic.truestudio.gpp.input"/>
|
||||
</tool>
|
||||
<tool command="arm-atollic-eabi-g++" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.atollic.truestudio.exe.release.toolchain.ldcc.1509174742" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1963695768" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1110004424" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1898845686" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1332810361" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.1726742655" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.do_garbage.195654453" name="Dead code removal" superClass="com.atollic.truestudio.ldcc.optimization.do_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.ldcc.general.scriptfile.1795298853" name="Linker script" superClass="com.atollic.truestudio.ldcc.general.scriptfile" useByScannerDiscovery="false" value="${workspace_loc:/${ProjName}}/../TS100/LinkerScript.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.linkerflags.322875797" name="Other options" superClass="com.atollic.truestudio.ldcc.misc.linkerflags" useByScannerDiscovery="false" value="-Wl,-cref,-u,Reset_Handler,-lm -Os -flto -Wl,--undefined=vTaskSwitchContext" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.malloc_page_size.109966334" name="Page size allocation for malloc() " superClass="com.atollic.truestudio.ldcc.optimization.malloc_page_size" useByScannerDiscovery="false" value="com.atollic.truestudio.ldcc.optimization.malloc_page_size.128" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.512584410" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.genmapfile.1748611146" name="Create map file" superClass="com.atollic.truestudio.ldcc.misc.genmapfile" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.ldcc.input.282752612" name="Input" superClass="com.atollic.truestudio.ldcc.input">
|
||||
<tool command="arm-atollic-eabi-g++" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.atollic.truestudio.exe.release.toolchain.ldcc.1013199766" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1775960878" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1518272966" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.894185560" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.475077421" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.447842676" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.do_garbage.66624246" name="Dead code removal" superClass="com.atollic.truestudio.ldcc.optimization.do_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.ldcc.general.scriptfile.2062504590" name="Linker script" superClass="com.atollic.truestudio.ldcc.general.scriptfile" useByScannerDiscovery="false" value="${workspace_loc:/${ProjName}}/../TS100/LinkerScript.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.linkerflags.1610144515" name="Other options" superClass="com.atollic.truestudio.ldcc.misc.linkerflags" useByScannerDiscovery="false" value="-Wl,-cref,-u,Reset_Handler,-lm -Os -flto -Wl,--undefined=vTaskSwitchContext" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.malloc_page_size.1767957270" name="Page size allocation for malloc() " superClass="com.atollic.truestudio.ldcc.optimization.malloc_page_size" useByScannerDiscovery="false" value="com.atollic.truestudio.ldcc.optimization.malloc_page_size.128" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1199042351" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.genmapfile.291052850" name="Create map file" superClass="com.atollic.truestudio.ldcc.misc.genmapfile" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.ldcc.input.1870355596" name="Input" superClass="com.atollic.truestudio.ldcc.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.ar.base.1243768714" name="Archiver" superClass="com.atollic.truestudio.ar.base"/>
|
||||
<tool command="arm-atollic-reports.jar" commandLinePattern="${COMMAND} ${FLAGS} ${INPUTS}" errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.secoutput.2132361708" name="Other" superClass="com.atollic.truestudio.exe.release.toolchain.secoutput">
|
||||
<option id="com.atollic.truestudio.secoutput.general.convert.1699078359" name="Convert build output" superClass="com.atollic.truestudio.secoutput.general.convert" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461" moduleId="org.eclipse.cdt.core.settings" name="TS100_LOCAL">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461" name="TS100_LOCAL" parent="com.atollic.truestudio.configuration.release" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
|
||||
<folderInfo id="com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461." name="/" resourcePath="">
|
||||
<toolChain errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.743607422" name="Atollic ARM Tools" superClass="com.atollic.truestudio.exe.release.toolchain">
|
||||
<option id="com.atollic.truestudio.general.runtimelib.649265794" name="Runtime Library" superClass="com.atollic.truestudio.general.runtimelib" useByScannerDiscovery="false" value="com.atollic.truestudio.ld.general.cclib.CCStandardCStandard" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.mcu.1178686191" name="Microcontroller" superClass="com.atollic.truestudio.toolchain_options.mcu" useByScannerDiscovery="false" value="STM32F103T8" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.toolchain_options.vendor.33572042" name="Vendor name" superClass="com.atollic.truestudio.toolchain_options.vendor" useByScannerDiscovery="false" value="STMicroelectronics" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.release.toolchain.platform.179000850" isAbstract="false" name="release platform" superClass="com.atollic.truestudio.exe.release.toolchain.platform"/>
|
||||
<builder buildPath="${workspace_loc:/TS100A}/Release" customBuilderProperties="toolChainpathString=C:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0\\ARMTools\\bin|toolChainpathType=1|com.atollic.truestudio.common_options.target.vendor=STMicroelectronics|com.atollic.truestudio.common_options.target.mcu=STM32F103T8|" errorParsers="" id="com.atollic.truestudio.mbs.builder1.1206056378" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="com.atollic.truestudio.mbs.builder1"/>
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.atollic.truestudio.exe.release.toolchain.as.450255183" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1980015520" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1917513940" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.656507492" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1067556557" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.909713753" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.as.symbols.defined.1463342746" name="Defined symbols" superClass="com.atollic.truestudio.as.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="LOCAL_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
<listOptionValue builtIn="false" value="STM32F103xB"/>
|
||||
<listOptionValue builtIn="false" value="USE_RTOS_SYSTICK"/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.as.general.incpath.873601990" name="Include path" superClass="com.atollic.truestudio.as.general.incpath" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.936472392" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.as.input.129375893" name="Input" superClass="com.atollic.truestudio.as.input"/>
|
||||
</tool>
|
||||
<tool command="arm-atollic-eabi-gcc -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gcc.1332975164" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc">
|
||||
<option id="com.atollic.truestudio.gcc.symbols.defined.1919402724" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="LOCAL_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS100"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
<listOptionValue builtIn="false" value="STM32F103xB"/>
|
||||
<listOptionValue builtIn="false" value="USE_RTOS_SYSTICK"/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.gcc.directories.select.777721863" name="Include path" superClass="com.atollic.truestudio.gcc.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1398679252" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.216657505" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.517024600" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1295693572" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.513113282" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gcc.optimization.prep_garbage.3269428" name="Prepare dead code removal " superClass="com.atollic.truestudio.gcc.optimization.prep_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gcc.optimization.prep_data.1494329913" name="Prepare dead data removal" superClass="com.atollic.truestudio.gcc.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info.774134544" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gcc.debug.info.3" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.gcc.warnings.extra.923955337" name="Enable extra warning flags" superClass="com.atollic.truestudio.gcc.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.705166935" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.gcc.input.972201280" superClass="com.atollic.truestudio.gcc.input"/>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.exe.release.toolchain.ld.1724584550" name="C Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ld">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1048736100" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.1288284258" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.18065699" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1881059567" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.1491233159" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
|
||||
<option id="com.atollic.truestudio.ld.general.scriptfile.1002254715" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../stm32_flash.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ld.optimization.do_garbage.240611247" name="Dead code removal " superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.450818258" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork"/>
|
||||
<option id="com.atollic.truestudio.ld.misc.genmapfile.824075230" name="Create map file" superClass="com.atollic.truestudio.ld.misc.genmapfile"/>
|
||||
</tool>
|
||||
<tool command="arm-atollic-eabi-g++ -c" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.atollic.truestudio.exe.release.toolchain.gpp.1569179032" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp">
|
||||
<option id="com.atollic.truestudio.gpp.symbols.defined.1174699371" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="STM32F103T8Ux"/>
|
||||
<listOptionValue builtIn="false" value="LOCAL_BUILD"/>
|
||||
<listOptionValue builtIn="false" value="MODEL_TS100"/>
|
||||
<listOptionValue builtIn="false" value="STM32F1"/>
|
||||
<listOptionValue builtIn="false" value="STM32"/>
|
||||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
|
||||
<listOptionValue builtIn="false" value="STM32F103xB"/>
|
||||
<listOptionValue builtIn="false" value="USE_RTOS_SYSTICK"/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.gpp.directories.select.1805913285" name="Include path" superClass="com.atollic.truestudio.gpp.directories.select" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM3""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\Middlewares\Third_Party\FreeRTOS\Source\portable""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc\Legacy""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\HAL_Driver\Inc""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\core""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/../TS100\CMSIS\device""/>
|
||||
</option>
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.180632323" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.226626499" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.332354095" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.411631450" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.2094033204" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.prep_garbage.117526596" name="Prepare dead code removal" superClass="com.atollic.truestudio.gpp.optimization.prep_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.prep_data.1064976160" name="Prepare dead data removal" superClass="com.atollic.truestudio.gpp.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.fno_rtti.605376730" name="Disable RTTI" superClass="com.atollic.truestudio.gpp.optimization.fno_rtti" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.optimization.fno_exceptions.1694893093" name="Disable exception handling" superClass="com.atollic.truestudio.gpp.optimization.fno_exceptions" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info.1750102532" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.debug.info.3" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.gpp.warnings.extra.1904215621" name="Enable extra warning flags" superClass="com.atollic.truestudio.gpp.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.gpp.cppstandard.956269718" name="C++ standard" superClass="com.atollic.truestudio.gpp.cppstandard" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.cppstandard.gnupp14" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.2090493213" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.gpp.input.1570929745" superClass="com.atollic.truestudio.gpp.input"/>
|
||||
</tool>
|
||||
<tool command="arm-atollic-eabi-g++" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.atollic.truestudio.exe.release.toolchain.ldcc.685067687" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc">
|
||||
<option id="com.atollic.truestudio.common_options.target.endianess.1475149192" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.mcpu.883743606" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.instr_set.1437340631" name="Instruction set" superClass="com.atollic.truestudio.common_options.target.instr_set" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.instr_set.thumb2" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpucore.1728249327" name="FPU" superClass="com.atollic.truestudio.common_options.target.fpucore" useByScannerDiscovery="false" value="com.atollic.truestudio.common_options.target.fpucore.None" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.fpu.836905279" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.do_garbage.919153144" name="Dead code removal" superClass="com.atollic.truestudio.ldcc.optimization.do_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.atollic.truestudio.ldcc.general.scriptfile.707909104" name="Linker script" superClass="com.atollic.truestudio.ldcc.general.scriptfile" useByScannerDiscovery="false" value="${workspace_loc:/${ProjName}}/../TS100/LinkerScript.ld" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.linkerflags.2099608034" name="Other options" superClass="com.atollic.truestudio.ldcc.misc.linkerflags" useByScannerDiscovery="false" value="-Wl,-cref,-u,Reset_Handler,-lm -Os -flto -Wl,--undefined=vTaskSwitchContext" valueType="string"/>
|
||||
<option id="com.atollic.truestudio.ldcc.optimization.malloc_page_size.1762509052" name="Page size allocation for malloc() " superClass="com.atollic.truestudio.ldcc.optimization.malloc_page_size" useByScannerDiscovery="false" value="com.atollic.truestudio.ldcc.optimization.malloc_page_size.128" valueType="enumerated"/>
|
||||
<option id="com.atollic.truestudio.common_options.target.interwork.1607969085" name="Mix ARM/Thumb" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
|
||||
<option id="com.atollic.truestudio.ldcc.misc.genmapfile.1321734634" name="Create map file" superClass="com.atollic.truestudio.ldcc.misc.genmapfile" useByScannerDiscovery="false"/>
|
||||
<inputType id="com.atollic.truestudio.ldcc.input.1970565411" name="Input" superClass="com.atollic.truestudio.ldcc.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="com.atollic.truestudio.ar.base.1980044389" name="Archiver" superClass="com.atollic.truestudio.ar.base"/>
|
||||
<tool command="arm-atollic-reports.jar" commandLinePattern="${COMMAND} ${FLAGS} ${INPUTS}" errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.secoutput.1782930068" name="Other" superClass="com.atollic.truestudio.exe.release.toolchain.secoutput">
|
||||
<option id="com.atollic.truestudio.secoutput.general.convert.1196746231" name="Convert build output" superClass="com.atollic.truestudio.secoutput.general.convert" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<tool id="com.atollic.truestudio.ar.base.1675641595" name="Archiver" superClass="com.atollic.truestudio.ar.base"/>
|
||||
<tool command="arm-atollic-reports.jar" commandLinePattern="${COMMAND} ${FLAGS} ${INPUTS}" errorParsers="" id="com.atollic.truestudio.exe.release.toolchain.secoutput.1463971170" name="Other" superClass="com.atollic.truestudio.exe.release.toolchain.secoutput">
|
||||
<option id="com.atollic.truestudio.secoutput.general.convert.1259799538" name="Convert build output" superClass="com.atollic.truestudio.secoutput.general.convert" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
|
||||
2
workspace/TS100A/.gitignore
vendored
2
workspace/TS100A/.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
/Release/
|
||||
/TS100/
|
||||
/TS100_LOCAL/
|
||||
/ReleaseTS80/
|
||||
/ReleaseTS100/
|
||||
|
||||
@@ -221,9 +221,9 @@
|
||||
<locationURI>PARENT-1-PROJECT_LOC/TS100/src/gui.cpp</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/hardware.c</name>
|
||||
<name>src/hardware.cpp</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-1-PROJECT_LOC/TS100/src/hardware.c</locationURI>
|
||||
<locationURI>PARENT-1-PROJECT_LOC/TS100/src/hardware.cpp</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/main.cpp</name>
|
||||
|
||||
@@ -1,30 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="com.atollic.truestudio.configuration.release.200032419" name="Release">
|
||||
<configuration id="com.atollic.truestudio.configuration.release.200032419" name="ReleaseTS100">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-167355215276254258" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-133272683506189437" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="com.atollic.truestudio.configuration.release.200032419.2005314669" name="TS100">
|
||||
<configuration id="com.atollic.truestudio.configuration.release.200032419.567701681" name="ReleaseTS80">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-167355215276254258" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
</extension>
|
||||
</configuration>
|
||||
<configuration id="com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461" name="TS100_LOCAL">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-167355215276254258" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-133272683506189437" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
||||
@@ -11,6 +11,12 @@ environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669/C_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669/append=true
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669/appendContributed=true
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.567701681/CPATH/delimiter=\:
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.567701681/CPATH/operation=remove
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.567701681/C_INCLUDE_PATH/delimiter=\:
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.567701681/C_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.567701681/append=true
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.567701681/appendContributed=true
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419/CPATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419/CPATH/operation=remove
|
||||
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419/C_INCLUDE_PATH/delimiter=;
|
||||
@@ -25,6 +31,10 @@ environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669/LIBRARY_PATH/operation=remove
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669/append=true
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669/appendContributed=true
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.567701681/LIBRARY_PATH/delimiter=\:
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.567701681/LIBRARY_PATH/operation=remove
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.567701681/append=true
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.567701681/appendContributed=true
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419/LIBRARY_PATH/delimiter=;
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419/LIBRARY_PATH/operation=remove
|
||||
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419/append=true
|
||||
|
||||
Reference in New Issue
Block a user