mikrocontroller.net

Forum: PC-Programmierung Plasma Effekt


Autor: aliendrummer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe bei Youtube folgendes Video entdeckt:

Youtube-Video "AVR32 Plasma Display Animation"


Wollte schon immer wissen wie man so "Plasma" programmiert. Vor ein paar 
Jahren hatte ich mal ein Assembler Sourcecode für 80x86 der solche 
Grafiken erzeugen konnte. Hat jemand von euch sowas oder ähliches 
programmiert und kann erklären wie es geht?

Viele Grüße
CHRiS

Autor: Nico Erfurth (masta79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das sieht mir eigentlich nach der ganz einfachen Variante aus. Hier 
wird einfach nur eine Farbpalette entsprechend berechnet das man sie 
durchschieben kann. Danach erstellt man das Startbild, welches 
normalesweise mit Hilfe einer Sinus-Funktion die einzelnen Farben schön 
aneinander reiht. Danach wird die Palette nur noch durchrotiert. Ist ein 
einfacher aber ganz netter Effekt.

Hier gibts ein Tutorial zu dem Thema:
http://student.kuleuven.be/~m0216922/CG/plasma.html

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So einfach wie sich das nach Nico anhoert isses auch nicht... vor allem 
bei so nem Display in Verbindung mit nem AVR.

Autor: Nico Erfurth (masta79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael G. wrote:
> So einfach wie sich das nach Nico anhoert isses auch nicht... vor allem
> bei so nem Display in Verbindung mit nem AVR.

Kommt darauf an, das Plasma selbst kann man vorher berechnen, das ist 
nicht zwingend von der benutzen Palette abhängig, nur von der Struktur 
der Palette. Solange man auf dem Display die Palette direkt manipulieren 
kann ist der Rest einfach. Ansonsten ist nur die Frage ob man die Daten 
schnell genug zum Display kriegt, man die Palette also auf dem AVR 
selbst hat.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ganz einfach ist das Plasmademo dann aber doch nicht. Schaut man
sich das Video an, so sieht man einen Phasenverlauf, d.h. die
Sinus/Cosinus-Landschaft wandert nach schräg oben. Mit einfacher
Farbtabelle ist das nicht zu machen. Wie in alten C64-Demos wird
hier wahrscheinlich mit Sin/Cos-Tabellen gearbeitet. Der AVR dürfte
für die Pixelberechnung sicherlich schnell genug sein (be 16MHz
mindestens 16 mal schneller als ein C64!)

Gruss

Jörg

Autor: aliendrummer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon einmal für die vielen Antworten.
Ich würde erstmal versuchen das ganze auf einem PC zu realisieren bevor 
ich mich an einen Controller wagen würde - aber jetzt erstmal das 
Tutorial durchlesen :)

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Info:

Es wird ein AVR32 verwendet, höchst wahrscheinlich mit Embedded Linux. 
Da ist genug Power vorhanden.

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht mit Farbtabellen, selber schon gemacht. Ist aber schon recht 
lang her (außerhalb von Dos macht es keinen Sinn an der Farbtabelle 
herumzuspielen).

Autor: aliendrummer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Es geht mit Farbtabellen, selber schon gemacht. Ist aber schon recht
>>lang her (außerhalb von Dos macht es keinen Sinn an der Farbtabelle
>>herumzuspielen).

Könntest du mir den Quelltext zur Verfügung stellen - zur Orientierung?

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aliendrummer wrote:
>>>Es geht mit Farbtabellen, selber schon gemacht. Ist aber schon recht
>>>lang her (außerhalb von Dos macht es keinen Sinn an der Farbtabelle
>>>herumzuspielen).
>
> Könntest du mir den Quelltext zur Verfügung stellen - zur Orientierung?

Das funktioniert bei den heutigen Displays und Displaycontrollern 
gewöhnlich nicht, da nicht mehr bzw. sehr selten mit Farbpaletten 
gearbeitet wird.
Bleiben eigentlich nur zwei Varianten:
1. In Echtzeit alles berechnen und darstellen
2. Passende, aneinanderreihbare Blöcke vorberechnen und zum Display 
schieben

Autor: Nico Erfurth (masta79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc Net wrote:

> Das funktioniert bei den heutigen Displays und Displaycontrollern
> gewöhnlich nicht, da nicht mehr bzw. sehr selten mit Farbpaletten
> gearbeitet wird.
> Bleiben eigentlich nur zwei Varianten:
> 1. In Echtzeit alles berechnen und darstellen

Wenn man intern mit Paletten arbeitet ist hier aber auch nur die 
Anbindung an das Display das "Problem".

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nico Erfurth wrote:
> Arc Net wrote:
>
>> Das funktioniert bei den heutigen Displays und Displaycontrollern
>> gewöhnlich nicht, da nicht mehr bzw. sehr selten mit Farbpaletten
>> gearbeitet wird.
>> Bleiben eigentlich nur zwei Varianten:
>> 1. In Echtzeit alles berechnen und darstellen
>
> Wenn man intern mit Paletten arbeitet ist hier aber auch nur die
> Anbindung an das Display das "Problem".

Wäre dann eine Art Kombination von 1. und 2.:
Fertige Blöcke im Controller, Palette rotieren, Block pixelweise 
auslesen, Farbe aus Palette holen, zum Display schieben.

Autor: Der Albi (der-albi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hihi. Also leute.. das Video is von mir :-D

Das Video wurde von nem Kumpel online gestellt, mit dem ich manchmal 
chatte.. ich konnte das video einfach nicht uploaden und auch sein 
versuch war beim ersten mal kläglich gescheitert (Video war zwar oben, 
lief aber viel zu schnell) Er arbeitet auch mit AVR32, aber UC3A.
Die Demo hatte ich entwickelt um unsere Rechenleistung und den 
Display-Datendurchsatz zu vergleichen.

Ich kann den Effekt gerne online stellen... müsste mal schauen, obs den 
Code noch gibt.. war eigentlich nur ne dumme spielerei :-D
Ist ein wenig mehr als nur eine durchrotierte Sinusfunktion. Vorallem, 
was die optimierung angeht.. das Bild is jeden Frame live berechnet.. 
ich hab ja fast keinen Speicher ;-)

Das ist ein AVR32 UC3B mit 32k Ram. Das Display habe ich mit 8bit 
parallel Interface angeschlossen. Die Demo läuft im 16-bit Modus. 
Ausgebremst wird das ganze durch die GPIOs die verdammt lange brauchen. 
(6 takte pro Änderung dank Rev.B) Mein Kollege ausm ICQ hatte ein 
SPI-Dispay und der schaffte deutlich mehr FPS durch DMA.

Mit Linux is hier gar nix am start :-/. Quark.

Das Ganze arbeitet aber tatsächlich mit einer Sinustabelle. Diese hatte 
ich zur Verfügung, weil ich eigentlich einen DAC-Sinus-test 
implementiert haben wollte ;-) Zusätzlich gibt es pro Durchlauf einen X 
und y versatz, wobei y verzerrt wird. Außerdem wird noch eine weitere 
Variable hochgezählt, die langsam die farben durchrolen lässt.
Dann wird mit hilfe diesen Wertes in die Sinustabelle geschaut.
Den Sinus konnte ich dann dan nochmal mit sich selbst oder beliebig 
verwursteln... naja.

Fakt ist, dass zum Schluss das Ergebnis aus dem Sinus zum interpolieren 
der Farben genutzt wird. 0 bis 0.33 is eine farbe usw ;-) und dann 
blendet das immer langsam über.
Das ganze Interpolieren läuft in Fixkomma 32bit oder 16bit.

Da das ganze recht rechenintensiv ist und die GPIOs bremsen habe ich pro 
Frame nur jede zweite Zeile gefüllt. Somit ist der Bildaufbau insgesamt 
fließender. Das war aber fürs Video aber egal :-D

Naja beim Overclocking test war der UC3A besser als mein UC3B. Ich 
schaffte die Demo bis 78Mhz stabil 84Mhz ausm Kühlschank. Der UC3A 
konnte konstant 96Mhz wenn ich mich recht entsinne. Meine 90Mhz hier war 
ein Glück, das kurzzeitig funktionierte. Nach änderung des Codes war es 
dahin mit der Funktionstüchtigkeit :-(
Aber das kann man ja auch nicht erwarten, wenn man außerhalb der Specs 
arbeitet.  hehe.

Das Ganze is übrigens ein Testboard für meinen Mp3-Player gewesen. Auf 
dem hab ich ein wenig die Grundsätzlichen Sachen etwichelt.
Daraus geworden ist:

www.der-albi.de/bunt.jpg

Die Hardware habe ich jetzt komplett überarbeitet.. eine neue Version 
kommt mit Touchscreen und insgesamt größerem Display :-)

MFG

Achso.. wer fragen hat.. gerne stellen ;-)
Albi


UND nochmas :-D
Schaut mal das Video an und macht mal ein wenig lauter. Im 
hintergrundläuft Placebo und ich Pfeife einmal ziemlich peinlich mit :-F
Ist mal was zum schmunzeln.. hehe rotwerd
Und das "A O" in dne letzen Sekunden is vom ICQ.. die Message war vom 
UC3Aler, ich solle das Video schicken ;-)

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo (der) Albi,

kannst du ein wenig mehr über das Display sagen, falls möglich (z.B.
Marke,Preis)?

Ich habe ein wenig Erfahrung mit einem Text-LCD (2-zeilig, inklusive
Std.TreiberChip). Der Chip hat einen internen Font- und Char-Buffer,
der per SPI gelesen und beschrieben werden kann. Die Möglichkeiten sind
also schnell ausgereizt, schaue mich also schon mal nach einem
Graphikdisplay (mögl. mit Farbe) um, habe auch schon an OLED gedacht.

Ist dein Display mit internem Buffer ausgestattet, evtl. mit
Lesezugriff, Oder werden die Pixel in Realzeit vom AVR berechnet?
Und wie sieht es mit der winkelabh. Lesbarkeit aus?



Gruss

Jörg

Autor: aliendrummer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Ich kann den Effekt gerne online stellen... müsste mal schauen, obs den
>>Code noch gibt.. war eigentlich nur ne dumme spielerei :-D
>>Ist ein wenig mehr als nur eine durchrotierte Sinusfunktion. Vorallem,
>>was die optimierung angeht.. das Bild is jeden Frame live berechnet..
>>ich hab ja fast keinen Speicher ;-)

das wäre sehr nett. ich hab vor einigen jahren schon versucht sowas hin 
zu bekommen.... aber das war zu realschul zeiten....
ein wenig source zum rumspielen wäre echt gut!

Autor: Der Albi (der-albi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zum Display: Das Ding hab ich aus China direkt aus ner 
Herstellerfirma. Eigentlich ist da kein rankommen für den Privatmann.. 
außer man gibt sich für mehr aus, als man ist ;-)
Die Firma scheint das Display aber nicht mehr im Sortiment zu haben...
http://www.yaoyu-lcm.com/english/Products_03.asp
Es sollte eigentlich ein YM200T-002A sein. Datenblätter hätte ich da.. 
aber das interessiert wahrscheinlich nicht ohne Hardware ;-)

Das Display hat intern einen Bildspeicher den man schreiben und lesen 
kann. Ich habe immer auf das auslesen verzichtet - das ist zwecklos, 
weil grottenlahm.
In meiner Demo wird jeder Pixel aufs Neue live berechnet und in den 
Bildspeicher geschrieben. Aber wie gesagt: immer nur jede zweite Zeile.

Was den Code angeht: leider habe ich ihn nicht mehr :-( Ich hätte nie 
gedacht das sich jemand für den Schmodder interessiert ;-)
Kern ist wirklich dass man aus dem Zahlenwerten [0.0..1.0] eine Farbe 
errechnet. Das ist simples interpolieren ala
"Wenn Wert zwischen 0 und 0.33, belnde rot ein und grün aus."
"Wenn Wert zwischen 0.33 und 0.66, belnde rot aus und blau ein."
usw. man kann auch die farbgrenzen enger setzten und erhält damit mehr 
interpolationsmöglichkeiten.

Den Wert mit Hilfe einer Sinusfunktion ortsabhängig zu machen ist nicht 
weiter schwer. Das ganze zu verzerren usw ist dann die Krativität des 
Programmierers. Ich weiß noch, dass dieses Muster eigentlich ungewollt 
entstanden ist. Einfach irgendwas mit den Sinüssen anstellen und es wird 
bunt :-) Fertig. hehe.

Mein Code wäre aber für die PC-Programmierung herzlich ungeeignet und 
sicherlich auch nicht sonderlich toll verständlich. Im PC verwendet man 
für sowas einen FrameBuffer den man auf dem Monitor ausgibt.. und man 
kann mit floats arbeiten. Das ist insgesamt viel sinnvoller als ein 
AVR32 UC3B.

MFG

Autor: Arc Net (arc)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Plasma-Test in C# (ab Net Framework 2.0)
Der Code verwendet intern eine Bitmap im RGB555-Pixelformat, um ein LCD 
zu "simulieren".
Bis auf das Erzeugen der Cos-Tabelle werden nur Integer verwendet.

Autor: UC3Aler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi at all!!!

Ich misch mich dann auch mal ein. Bin der typ der das video hochgeladen 
hat. Und das andere video mit dem raumschiff ist von meinem board.

Hab hier erstmal den code für euch von der Farbanimation.

Habe ihn selber für mein board in gut 10min überarbeitet, wie Der Albi 
schon gesagt hatte. Dabei habe ich ein Siemens S65 Display in verbindung 
mit UC3A benutzt.
const short Sine[] = {                        //Sinus Tabelle
0x0000, 0x002E, 0x005D, 0x008C, 0x00BA, 0x00E9, 0x0118, 0x0146, 0x0175, 0x01A4, 0x01D2, 0x0201, 
0x0230, 0x025E, 0x028D, 0x02BC, 0x02EA, 0x0319, 0x0348, 0x0376, 0x03A5, 0x03D4, 0x0402, 0x0431, 
0x0460, 0x048E, 0x04BD, 0x04EC, 0x051A, 0x0549, 0x0578, 0x05A6, 0x05D5, 0x0604, 0x0632, 0x0661, 
0x068F, 0x06BE, 0x06ED, 0x071B, 0x074A, 0x0779, 0x07A7, 0x07D6, 0x0804, 0x0833, 0x0862, 0x0890, 
0x08BF, 0x08ED, 0x091C, 0x094A, 0x0979, 0x09A7, 0x09D6, 0x0A05, 0x0A33, 0x0A62, 0x0A90, 0x0ABF, 
0x0AED, 0x0B1C, 0x0B4A, 0x0B79, 0x0BA7, 0x0BD6, 0x0C04, 0x0C33, 0x0C61, 0x0C90, 0x0CBE, 0x0CED, 
0x0D1B, 0x0D49, 0x0D78, 0x0DA6, 0x0DD5, 0x0E03, 0x0E31, 0x0E60, 0x0E8E, 0x0EBD, 0x0EEB, 0x0F19, 
0x0F48, 0x0F76, 0x0FA4, 0x0FD3, 0x1001, 0x102F, 0x105E, 0x108C, 0x10BA, 0x10E9, 0x1117, 0x1145, 
0x1173, 0x11A2, 0x11D0, 0x11FE, 0x122C, 0x125B, 0x1289, 0x12B7, 0x12E5, 0x1313, 0x1341, 0x1370, 
0x139E, 0x13CC, 0x13FA, 0x1428, 0x1456, 0x1484, 0x14B2, 0x14E0, 0x150E, 0x153C, 0x156B, 0x1599, 
0x15C7, 0x15F5, 0x1623, 0x1651, 0x167E, 0x16AC, 0x16DA, 0x1708, 0x1736, 0x1764, 0x1792, 0x17C0, 
0x17EE, 0x181C, 0x1849, 0x1877, 0x18A5, 0x18D3, 0x1901, 0x192E, 0x195C, 0x198A, 0x19B8, 0x19E5, 
0x1A13, 0x1A41, 0x1A6F, 0x1A9C, 0x1ACA, 0x1AF8, 0x1B25, 0x1B53, 0x1B80, 0x1BAE, 0x1BDC, 0x1C09, 
0x1C37, 0x1C64, 0x1C92, 0x1CBF, 0x1CED, 0x1D1A, 0x1D48, 0x1D75, 0x1DA2, 0x1DD0, 0x1DFD, 0x1E2B, 
0x1E58, 0x1E85, 0x1EB3, 0x1EE0, 0x1F0D, 0x1F3B, 0x1F68, 0x1F95, 0x1FC2, 0x1FF0, 0x201D, 0x204A, 
0x2077, 0x20A4, 0x20D1, 0x20FF, 0x212C, 0x2159, 0x2186, 0x21B3, 0x21E0, 0x220D, 0x223A, 0x2267, 
0x2294, 0x22C1, 0x22EE, 0x231B, 0x2347, 0x2374, 0x23A1, 0x23CE, 0x23FB, 0x2428, 0x2454, 0x2481, 
0x24AE, 0x24DB, 0x2507, 0x2534, 0x2561, 0x258D, 0x25BA, 0x25E6, 0x2613, 0x2640, 0x266C, 0x2699, 
0x26C5, 0x26F2, 0x271E, 0x274B, 0x2777, 0x27A3, 0x27D0, 0x27FC, 0x2828, 0x2855, 0x2881, 0x28AD, 
0x28DA, 0x2906, 0x2932, 0x295E, 0x298A, 0x29B7, 0x29E3, 0x2A0F, 0x2A3B, 0x2A67, 0x2A93, 0x2ABF, 
0x2AEB, 0x2B17, 0x2B43, 0x2B6F, 0x2B9B, 0x2BC7, 0x2BF3, 0x2C1E, 0x2C4A, 0x2C76, 0x2CA2, 0x2CCD, 
0x2CF9, 0x2D25, 0x2D51, 0x2D7C, 0x2DA8, 0x2DD3, 0x2DFF, 0x2E2B, 0x2E56, 0x2E82, 0x2EAD, 0x2ED9, 
0x2F04, 0x2F2F, 0x2F5B, 0x2F86, 0x2FB1, 0x2FDD, 0x3008, 0x3033, 0x305F, 0x308A, 0x30B5, 0x30E0, 
0x310B, 0x3136, 0x3161, 0x318D, 0x31B8, 0x31E3, 0x320E, 0x3238, 0x3263, 0x328E, 0x32B9, 0x32E4, 
0x330F, 0x333A, 0x3364, 0x338F, 0x33BA, 0x33E5, 0x340F, 0x343A, 0x3464, 0x348F, 0x34BA, 0x34E4, 
0x350F, 0x3539, 0x3564, 0x358E, 0x35B8, 0x35E3, 0x360D, 0x3637, 0x3662, 0x368C, 0x36B6, 0x36E0, 
0x370A, 0x3735, 0x375F, 0x3789, 0x37B3, 0x37DD, 0x3807, 0x3831, 0x385B, 0x3885, 0x38AF, 0x38D8, 
0x3902, 0x392C, 0x3956, 0x397F, 0x39A9, 0x39D3, 0x39FC, 0x3A26, 0x3A50, 0x3A79, 0x3AA3, 0x3ACC, 
0x3AF6, 0x3B1F, 0x3B48, 0x3B72, 0x3B9B, 0x3BC4, 0x3BEE, 0x3C17, 0x3C40, 0x3C69, 0x3C92, 0x3CBC, 
0x3CE5, 0x3D0E, 0x3D37, 0x3D60, 0x3D89, 0x3DB2, 0x3DDA, 0x3E03, 0x3E2C, 0x3E55, 0x3E7E, 0x3EA6, 
0x3ECF, 0x3EF8, 0x3F20, 0x3F49, 0x3F72, 0x3F9A, 0x3FC3, 0x3FEB, 0x4013, 0x403C, 0x4064, 0x408D, 
0x40B5, 0x40DD, 0x4105, 0x412E, 0x4156, 0x417E, 0x41A6, 0x41CE, 0x41F6, 0x421E, 0x4246, 0x426E, 
0x4296, 0x42BE, 0x42E5, 0x430D, 0x4335, 0x435D, 0x4384, 0x43AC, 0x43D4, 0x43FB, 0x4423, 0x444A, 
0x4472, 0x4499, 0x44C1, 0x44E8, 0x450F, 0x4537, 0x455E, 0x4585, 0x45AC, 0x45D3, 0x45FA, 0x4621, 
0x4649, 0x4670, 0x4696, 0x46BD, 0x46E4, 0x470B, 0x4732, 0x4759, 0x477F, 0x47A6, 0x47CD, 0x47F3, 
0x481A, 0x4841, 0x4867, 0x488E, 0x48B4, 0x48DA, 0x4901, 0x4927, 0x494D, 0x4974, 0x499A, 0x49C0, 
0x49E6, 0x4A0C, 0x4A32, 0x4A58, 0x4A7E, 0x4AA4, 0x4ACA, 0x4AF0, 0x4B16, 0x4B3C, 0x4B62, 0x4B87, 
0x4BAD, 0x4BD3, 0x4BF8, 0x4C1E, 0x4C43, 0x4C69, 0x4C8E, 0x4CB3, 0x4CD9, 0x4CFE, 0x4D23, 0x4D49, 
0x4D6E, 0x4D93, 0x4DB8, 0x4DDD, 0x4E02, 0x4E27, 0x4E4C, 0x4E71, 0x4E96, 0x4EBB, 0x4EE0, 0x4F04, 
0x4F29, 0x4F4E, 0x4F72, 0x4F97, 0x4FBB, 0x4FE0, 0x5004, 0x5029, 0x504D, 0x5072, 0x5096, 0x50BA, 
0x50DE, 0x5102, 0x5127, 0x514B, 0x516F, 0x5193, 0x51B7, 0x51DB, 0x51FE, 0x5222, 0x5246, 0x526A, 
0x528D, 0x52B1, 0x52D5, 0x52F8, 0x531C, 0x533F, 0x5363, 0x5386, 0x53AA, 0x53CD, 0x53F0, 0x5413, 
0x5437, 0x545A, 0x547D, 0x54A0, 0x54C3, 0x54E6, 0x5509, 0x552C, 0x554E, 0x5571, 0x5594, 0x55B7, 
0x55D9, 0x55FC, 0x561E, 0x5641, 0x5663, 0x5686, 0x56A8, 0x56CB, 0x56ED, 0x570F, 0x5731, 0x5753, 
0x5776, 0x5798, 0x57BA, 0x57DC, 0x57FE, 0x581F, 0x5841, 0x5863, 0x5885, 0x58A6, 0x58C8, 0x58EA, 
0x590B, 0x592D, 0x594E, 0x5970, 0x5991, 0x59B2, 0x59D4, 0x59F5, 0x5A16, 0x5A37, 0x5A58, 0x5A79, 
0x5A9A, 0x5ABB, 0x5ADC, 0x5AFD, 0x5B1E, 0x5B3F, 0x5B5F, 0x5B80, 0x5BA1, 0x5BC1, 0x5BE2, 0x5C02, 
0x5C23, 0x5C43, 0x5C63, 0x5C84, 0x5CA4, 0x5CC4, 0x5CE4, 0x5D04, 0x5D24, 0x5D44, 0x5D64, 0x5D84, 
0x5DA4, 0x5DC4, 0x5DE4, 0x5E03, 0x5E23, 0x5E43, 0x5E62, 0x5E82, 0x5EA1, 0x5EC1, 0x5EE0, 0x5EFF, 
0x5F1E, 0x5F3E, 0x5F5D, 0x5F7C, 0x5F9B, 0x5FBA, 0x5FD9, 0x5FF8, 0x6017, 0x6036, 0x6054, 0x6073, 
0x6092, 0x60B0, 0x60CF, 0x60ED, 0x610C, 0x612A, 0x6149, 0x6167, 0x6185, 0x61A4, 0x61C2, 0x61E0, 
0x61FE, 0x621C, 0x623A, 0x6258, 0x6276, 0x6293, 0x62B1, 0x62CF, 0x62EC, 0x630A, 0x6328, 0x6345, 
0x6363, 0x6380, 0x639D, 0x63BB, 0x63D8, 0x63F5, 0x6412, 0x642F, 0x644C, 0x6469, 0x6486, 0x64A3, 
0x64C0, 0x64DD, 0x64F9, 0x6516, 0x6533, 0x654F, 0x656C, 0x6588, 0x65A5, 0x65C1, 0x65DD, 0x65F9, 
0x6616, 0x6632, 0x664E, 0x666A, 0x6686, 0x66A2, 0x66BE, 0x66D9, 0x66F5, 0x6711, 0x672D, 0x6748, 
0x6764, 0x677F, 0x679B, 0x67B6, 0x67D1, 0x67ED, 0x6808, 0x6823, 0x683E, 0x6859, 0x6874, 0x688F, 
0x68AA, 0x68C5, 0x68E0, 0x68FA, 0x6915, 0x6930, 0x694A, 0x6965, 0x697F, 0x699A, 0x69B4, 0x69CE, 
0x69E9, 0x6A03, 0x6A1D, 0x6A37, 0x6A51, 0x6A6B, 0x6A85, 0x6A9F, 0x6AB9, 0x6AD2, 0x6AEC, 0x6B06, 
0x6B1F, 0x6B39, 0x6B52, 0x6B6C, 0x6B85, 0x6B9E, 0x6BB8, 0x6BD1, 0x6BEA, 0x6C03, 0x6C1C, 0x6C35, 
0x6C4E, 0x6C67, 0x6C80, 0x6C98, 0x6CB1, 0x6CCA, 0x6CE2, 0x6CFB, 0x6D13, 0x6D2C, 0x6D44, 0x6D5C, 
0x6D74, 0x6D8D, 0x6DA5, 0x6DBD, 0x6DD5, 0x6DED, 0x6E05, 0x6E1C, 0x6E34, 0x6E4C, 0x6E64, 0x6E7B, 
0x6E93, 0x6EAA, 0x6EC2, 0x6ED9, 0x6EF0, 0x6F08, 0x6F1F, 0x6F36, 0x6F4D, 0x6F64, 0x6F7B, 0x6F92, 
0x6FA9, 0x6FC0, 0x6FD6, 0x6FED, 0x7004, 0x701A, 0x7031, 0x7047, 0x705D, 0x7074, 0x708A, 0x70A0, 
0x70B6, 0x70CD, 0x70E3, 0x70F9, 0x710E, 0x7124, 0x713A, 0x7150, 0x7166, 0x717B, 0x7191, 0x71A6, 
0x71BC, 0x71D1, 0x71E6, 0x71FC, 0x7211, 0x7226, 0x723B, 0x7250, 0x7265, 0x727A, 0x728F, 0x72A4, 
0x72B8, 0x72CD, 0x72E2, 0x72F6, 0x730B, 0x731F, 0x7334, 0x7348, 0x735C, 0x7370, 0x7384, 0x7399, 
0x73AD, 0x73C0, 0x73D4, 0x73E8, 0x73FC, 0x7410, 0x7423, 0x7437, 0x744B, 0x745E, 0x7471, 0x7485, 
0x7498, 0x74AB, 0x74BE, 0x74D2, 0x74E5, 0x74F8, 0x750B, 0x751D, 0x7530, 0x7543, 0x7556, 0x7568, 
0x757B, 0x758D, 0x75A0, 0x75B2, 0x75C4, 0x75D7, 0x75E9, 0x75FB, 0x760D, 0x761F, 0x7631, 0x7643, 
0x7655, 0x7667, 0x7678, 0x768A, 0x769B, 0x76AD, 0x76BE, 0x76D0, 0x76E1, 0x76F2, 0x7704, 0x7715, 
0x7726, 0x7737, 0x7748, 0x7759, 0x776A, 0x777A, 0x778B, 0x779C, 0x77AC, 0x77BD, 0x77CD, 0x77DE, 
0x77EE, 0x77FE, 0x780F, 0x781F, 0x782F, 0x783F, 0x784F, 0x785F, 0x786F, 0x787E, 0x788E, 0x789E, 
0x78AD, 0x78BD, 0x78CC, 0x78DC, 0x78EB, 0x78FA, 0x790A, 0x7919, 0x7928, 0x7937, 0x7946, 0x7955, 
0x7964, 0x7972, 0x7981, 0x7990, 0x799E, 0x79AD, 0x79BB, 0x79CA, 0x79D8, 0x79E6, 0x79F4, 0x7A03, 
0x7A11, 0x7A1F, 0x7A2D, 0x7A3B, 0x7A48, 0x7A56, 0x7A64, 0x7A71, 0x7A7F, 0x7A8D, 0x7A9A, 0x7AA7, 
0x7AB5, 0x7AC2, 0x7ACF, 0x7ADC, 0x7AE9, 0x7AF6, 0x7B03, 0x7B10, 0x7B1D, 0x7B2A, 0x7B36, 0x7B43, 
0x7B4F, 0x7B5C, 0x7B68, 0x7B75, 0x7B81, 0x7B8D, 0x7B99, 0x7BA5, 0x7BB2, 0x7BBD, 0x7BC9, 0x7BD5, 
0x7BE1, 0x7BED, 0x7BF8, 0x7C04, 0x7C0F, 0x7C1B, 0x7C26, 0x7C32, 0x7C3D, 0x7C48, 0x7C53, 0x7C5E, 
0x7C69, 0x7C74, 0x7C7F, 0x7C8A, 0x7C95, 0x7C9F, 0x7CAA, 0x7CB5, 0x7CBF, 0x7CC9, 0x7CD4, 0x7CDE, 
0x7CE8, 0x7CF2, 0x7CFD, 0x7D07, 0x7D11, 0x7D1A, 0x7D24, 0x7D2E, 0x7D38, 0x7D41, 0x7D4B, 0x7D55, 
0x7D5E, 0x7D67, 0x7D71, 0x7D7A, 0x7D83, 0x7D8C, 0x7D95, 0x7D9E, 0x7DA7, 0x7DB0, 0x7DB9, 0x7DC2, 
0x7DCA, 0x7DD3, 0x7DDB, 0x7DE4, 0x7DEC, 0x7DF5, 0x7DFD, 0x7E05, 0x7E0D, 0x7E15, 0x7E1D, 0x7E25, 
0x7E2D, 0x7E35, 0x7E3D, 0x7E44, 0x7E4C, 0x7E53, 0x7E5B, 0x7E62, 0x7E6A, 0x7E71, 0x7E78, 0x7E7F, 
0x7E87, 0x7E8E, 0x7E94, 0x7E9B, 0x7EA2, 0x7EA9, 0x7EB0, 0x7EB6, 0x7EBD, 0x7EC3, 0x7ECA, 0x7ED0, 
0x7ED6, 0x7EDD, 0x7EE3, 0x7EE9, 0x7EEF, 0x7EF5, 0x7EFB, 0x7F01, 0x7F06, 0x7F0C, 0x7F12, 0x7F17, 
0x7F1D, 0x7F22, 0x7F28, 0x7F2D, 0x7F32, 0x7F37, 0x7F3D, 0x7F42, 0x7F47, 0x7F4B, 0x7F50, 0x7F55, 
0x7F5A, 0x7F5E, 0x7F63, 0x7F68, 0x7F6C, 0x7F70, 0x7F75, 0x7F79, 0x7F7D, 0x7F81, 0x7F85, 0x7F89, 
0x7F8D, 0x7F91, 0x7F95, 0x7F99, 0x7F9C, 0x7FA0, 0x7FA3, 0x7FA7, 0x7FAA, 0x7FAE, 0x7FB1, 0x7FB4, 
0x7FB7, 0x7FBA, 0x7FBD, 0x7FC0, 0x7FC3, 0x7FC6, 0x7FC8, 0x7FCB, 0x7FCE, 0x7FD0, 0x7FD3, 0x7FD5, 
0x7FD7, 0x7FDA, 0x7FDC, 0x7FDE, 0x7FE0, 0x7FE2, 0x7FE4, 0x7FE6, 0x7FE8, 0x7FE9, 0x7FEB, 0x7FED, 
0x7FEE, 0x7FF0, 0x7FF1, 0x7FF2, 0x7FF4, 0x7FF5, 0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9, 0x7FFA, 0x7FFB, 
0x7FFB, 0x7FFC, 0x7FFD, 0x7FFD, 0x7FFE, 0x7FFE, 0x7FFE, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFE, 0x7FFE, 0x7FFE, 0x7FFD, 0x7FFD, 0x7FFC, 0x7FFB, 0x7FFB, 0x7FFA, 
0x7FF9, 0x7FF8, 0x7FF7, 0x7FF6, 0x7FF5, 0x7FF4, 0x7FF2, 0x7FF1, 0x7FF0, 0x7FEE, 0x7FED, 0x7FEB, 
0x7FE9, 0x7FE8, 0x7FE6, 0x7FE4, 0x7FE2, 0x7FE0, 0x7FDE, 0x7FDC, 0x7FDA, 0x7FD7, 0x7FD5, 0x7FD3, 
0x7FD0, 0x7FCE, 0x7FCB, 0x7FC8, 0x7FC6, 0x7FC3, 0x7FC0, 0x7FBD, 0x7FBA, 0x7FB7, 0x7FB4, 0x7FB1, 
0x7FAE, 0x7FAA, 0x7FA7, 0x7FA3, 0x7FA0, 0x7F9C, 0x7F99, 0x7F95, 0x7F91, 0x7F8D, 0x7F89, 0x7F85, 
0x7F81, 0x7F7D, 0x7F79, 0x7F75, 0x7F70, 0x7F6C, 0x7F68, 0x7F63, 0x7F5E, 0x7F5A, 0x7F55, 0x7F50, 
0x7F4B, 0x7F47, 0x7F42, 0x7F3D, 0x7F37, 0x7F32, 0x7F2D, 0x7F28, 0x7F22, 0x7F1D, 0x7F17, 0x7F12, 
0x7F0C, 0x7F06, 0x7F01, 0x7EFB, 0x7EF5, 0x7EEF, 0x7EE9, 0x7EE3, 0x7EDD, 0x7ED6, 0x7ED0, 0x7ECA, 
0x7EC3, 0x7EBD, 0x7EB6, 0x7EB0, 0x7EA9, 0x7EA2, 0x7E9B, 0x7E94, 0x7E8E, 0x7E87, 0x7E7F, 0x7E78, 
0x7E71, 0x7E6A, 0x7E62, 0x7E5B, 0x7E53, 0x7E4C, 0x7E44, 0x7E3D, 0x7E35, 0x7E2D, 0x7E25, 0x7E1D, 
0x7E15, 0x7E0D, 0x7E05, 0x7DFD, 0x7DF5, 0x7DEC, 0x7DE4, 0x7DDB, 0x7DD3, 0x7DCA, 0x7DC2, 0x7DB9, 
0x7DB0, 0x7DA7, 0x7D9E, 0x7D95, 0x7D8C, 0x7D83, 0x7D7A, 0x7D71, 0x7D67, 0x7D5E, 0x7D55, 0x7D4B, 
0x7D41, 0x7D38, 0x7D2E, 0x7D24, 0x7D1A, 0x7D11, 0x7D07, 0x7CFD, 0x7CF2, 0x7CE8, 0x7CDE, 0x7CD4, 
0x7CC9, 0x7CBF, 0x7CB5, 0x7CAA, 0x7C9F, 0x7C95, 0x7C8A, 0x7C7F, 0x7C74, 0x7C69, 0x7C5E, 0x7C53, 
0x7C48, 0x7C3D, 0x7C32, 0x7C26, 0x7C1B, 0x7C0F, 0x7C04, 0x7BF8, 0x7BED, 0x7BE1, 0x7BD5, 0x7BC9, 
0x7BBD, 0x7BB2, 0x7BA5, 0x7B99, 0x7B8D, 0x7B81, 0x7B75, 0x7B68, 0x7B5C, 0x7B4F, 0x7B43, 0x7B36, 
0x7B2A, 0x7B1D, 0x7B10, 0x7B03, 0x7AF6, 0x7AE9, 0x7ADC, 0x7ACF, 0x7AC2, 0x7AB5, 0x7AA7, 0x7A9A, 
0x7A8D, 0x7A7F, 0x7A71, 0x7A64, 0x7A56, 0x7A48, 0x7A3B, 0x7A2D, 0x7A1F, 0x7A11, 0x7A03, 0x79F4, 
0x79E6, 0x79D8, 0x79CA, 0x79BB, 0x79AD, 0x799E, 0x7990, 0x7981, 0x7972, 0x7964, 0x7955, 0x7946, 
0x7937, 0x7928, 0x7919, 0x790A, 0x78FA, 0x78EB, 0x78DC, 0x78CC, 0x78BD, 0x78AD, 0x789E, 0x788E, 
0x787E, 0x786F, 0x785F, 0x784F, 0x783F, 0x782F, 0x781F, 0x780F, 0x77FE, 0x77EE, 0x77DE, 0x77CD, 
0x77BD, 0x77AC, 0x779C, 0x778B, 0x777A, 0x776A, 0x7759, 0x7748, 0x7737, 0x7726, 0x7715, 0x7704, 
0x76F2, 0x76E1, 0x76D0, 0x76BE, 0x76AD, 0x769B, 0x768A, 0x7678, 0x7667, 0x7655, 0x7643, 0x7631, 
0x761F, 0x760D, 0x75FB, 0x75E9, 0x75D7, 0x75C4, 0x75B2, 0x75A0, 0x758D, 0x757B, 0x7568, 0x7556, 
0x7543, 0x7530, 0x751D, 0x750B, 0x74F8, 0x74E5, 0x74D2, 0x74BE, 0x74AB, 0x7498, 0x7485, 0x7471, 
0x745E, 0x744B, 0x7437, 0x7423, 0x7410, 0x73FC, 0x73E8, 0x73D4, 0x73C0, 0x73AD, 0x7399, 0x7384, 
0x7370, 0x735C, 0x7348, 0x7334, 0x731F, 0x730B, 0x72F6, 0x72E2, 0x72CD, 0x72B8, 0x72A4, 0x728F, 
0x727A, 0x7265, 0x7250, 0x723B, 0x7226, 0x7211, 0x71FC, 0x71E6, 0x71D1, 0x71BC, 0x71A6, 0x7191, 
0x717B, 0x7166, 0x7150, 0x713A, 0x7124, 0x710E, 0x70F9, 0x70E3, 0x70CD, 0x70B6, 0x70A0, 0x708A, 
0x7074, 0x705D, 0x7047, 0x7031, 0x701A, 0x7004, 0x6FED, 0x6FD6, 0x6FC0, 0x6FA9, 0x6F92, 0x6F7B, 
0x6F64, 0x6F4D, 0x6F36, 0x6F1F, 0x6F08, 0x6EF0, 0x6ED9, 0x6EC2, 0x6EAA, 0x6E93, 0x6E7B, 0x6E64, 
0x6E4C, 0x6E34, 0x6E1C, 0x6E05, 0x6DED, 0x6DD5, 0x6DBD, 0x6DA5, 0x6D8D, 0x6D74, 0x6D5C, 0x6D44, 
0x6D2C, 0x6D13, 0x6CFB, 0x6CE2, 0x6CCA, 0x6CB1, 0x6C98, 0x6C80, 0x6C67, 0x6C4E, 0x6C35, 0x6C1C, 
0x6C03, 0x6BEA, 0x6BD1, 0x6BB8, 0x6B9E, 0x6B85, 0x6B6C, 0x6B52, 0x6B39, 0x6B1F, 0x6B06, 0x6AEC, 
0x6AD2, 0x6AB9, 0x6A9F, 0x6A85, 0x6A6B, 0x6A51, 0x6A37, 0x6A1D, 0x6A03, 0x69E9, 0x69CE, 0x69B4, 
0x699A, 0x697F, 0x6965, 0x694A, 0x6930, 0x6915, 0x68FA, 0x68E0, 0x68C5, 0x68AA, 0x688F, 0x6874, 
0x6859, 0x683E, 0x6823, 0x6808, 0x67ED, 0x67D1, 0x67B6, 0x679B, 0x677F, 0x6764, 0x6748, 0x672D, 
0x6711, 0x66F5, 0x66D9, 0x66BE, 0x66A2, 0x6686, 0x666A, 0x664E, 0x6632, 0x6616, 0x65F9, 0x65DD, 
0x65C1, 0x65A5, 0x6588, 0x656C, 0x654F, 0x6533, 0x6516, 0x64F9, 0x64DD, 0x64C0, 0x64A3, 0x6486, 
0x6469, 0x644C, 0x642F, 0x6412, 0x63F5, 0x63D8, 0x63BB, 0x639D, 0x6380, 0x6363, 0x6345, 0x6328, 
0x630A, 0x62EC, 0x62CF, 0x62B1, 0x6293, 0x6276, 0x6258, 0x623A, 0x621C, 0x61FE, 0x61E0, 0x61C2, 
0x61A4, 0x6185, 0x6167, 0x6149, 0x612A, 0x610C, 0x60ED, 0x60CF, 0x60B0, 0x6092, 0x6073, 0x6054, 
0x6036, 0x6017, 0x5FF8, 0x5FD9, 0x5FBA, 0x5F9B, 0x5F7C, 0x5F5D, 0x5F3E, 0x5F1E, 0x5EFF, 0x5EE0, 
0x5EC1, 0x5EA1, 0x5E82, 0x5E62, 0x5E43, 0x5E23, 0x5E03, 0x5DE4, 0x5DC4, 0x5DA4, 0x5D84, 0x5D64, 
0x5D44, 0x5D24, 0x5D04, 0x5CE4, 0x5CC4, 0x5CA4, 0x5C84, 0x5C63, 0x5C43, 0x5C23, 0x5C02, 0x5BE2, 
0x5BC1, 0x5BA1, 0x5B80, 0x5B5F, 0x5B3F, 0x5B1E, 0x5AFD, 0x5ADC, 0x5ABB, 0x5A9A, 0x5A79, 0x5A58, 
0x5A37, 0x5A16, 0x59F5, 0x59D4, 0x59B2, 0x5991, 0x5970, 0x594E, 0x592D, 0x590B, 0x58EA, 0x58C8, 
0x58A6, 0x5885, 0x5863, 0x5841, 0x581F, 0x57FE, 0x57DC, 0x57BA, 0x5798, 0x5776, 0x5753, 0x5731, 
0x570F, 0x56ED, 0x56CB, 0x56A8, 0x5686, 0x5663, 0x5641, 0x561E, 0x55FC, 0x55D9, 0x55B7, 0x5594, 
0x5571, 0x554E, 0x552C, 0x5509, 0x54E6, 0x54C3, 0x54A0, 0x547D, 0x545A, 0x5437, 0x5413, 0x53F0, 
0x53CD, 0x53AA, 0x5386, 0x5363, 0x533F, 0x531C, 0x52F8, 0x52D5, 0x52B1, 0x528D, 0x526A, 0x5246, 
0x5222, 0x51FE, 0x51DB, 0x51B7, 0x5193, 0x516F, 0x514B, 0x5127, 0x5102, 0x50DE, 0x50BA, 0x5096, 
0x5072, 0x504D, 0x5029, 0x5004, 0x4FE0, 0x4FBB, 0x4F97, 0x4F72, 0x4F4E, 0x4F29, 0x4F04, 0x4EE0, 
0x4EBB, 0x4E96, 0x4E71, 0x4E4C, 0x4E27, 0x4E02, 0x4DDD, 0x4DB8, 0x4D93, 0x4D6E, 0x4D49, 0x4D23, 
0x4CFE, 0x4CD9, 0x4CB3, 0x4C8E, 0x4C69, 0x4C43, 0x4C1E, 0x4BF8, 0x4BD3, 0x4BAD, 0x4B87, 0x4B62, 
0x4B3C, 0x4B16, 0x4AF0, 0x4ACA, 0x4AA4, 0x4A7E, 0x4A58, 0x4A32, 0x4A0C, 0x49E6, 0x49C0, 0x499A, 
0x4974, 0x494D, 0x4927, 0x4901, 0x48DA, 0x48B4, 0x488E, 0x4867, 0x4841, 0x481A, 0x47F3, 0x47CD, 
0x47A6, 0x477F, 0x4759, 0x4732, 0x470B, 0x46E4, 0x46BD, 0x4696, 0x4670, 0x4649, 0x4621, 0x45FA, 
0x45D3, 0x45AC, 0x4585, 0x455E, 0x4537, 0x450F, 0x44E8, 0x44C1, 0x4499, 0x4472, 0x444A, 0x4423, 
0x43FB, 0x43D4, 0x43AC, 0x4384, 0x435D, 0x4335, 0x430D, 0x42E5, 0x42BE, 0x4296, 0x426E, 0x4246, 
0x421E, 0x41F6, 0x41CE, 0x41A6, 0x417E, 0x4156, 0x412E, 0x4105, 0x40DD, 0x40B5, 0x408D, 0x4064, 
0x403C, 0x4013, 0x3FEB, 0x3FC3, 0x3F9A, 0x3F72, 0x3F49, 0x3F20, 0x3EF8, 0x3ECF, 0x3EA6, 0x3E7E, 
0x3E55, 0x3E2C, 0x3E03, 0x3DDA, 0x3DB2, 0x3D89, 0x3D60, 0x3D37, 0x3D0E, 0x3CE5, 0x3CBC, 0x3C92, 
0x3C69, 0x3C40, 0x3C17, 0x3BEE, 0x3BC4, 0x3B9B, 0x3B72, 0x3B48, 0x3B1F, 0x3AF6, 0x3ACC, 0x3AA3, 
0x3A79, 0x3A50, 0x3A26, 0x39FC, 0x39D3, 0x39A9, 0x397F, 0x3956, 0x392C, 0x3902, 0x38D8, 0x38AF, 
0x3885, 0x385B, 0x3831, 0x3807, 0x37DD, 0x37B3, 0x3789, 0x375F, 0x3735, 0x370A, 0x36E0, 0x36B6, 
0x368C, 0x3662, 0x3637, 0x360D, 0x35E3, 0x35B8, 0x358E, 0x3564, 0x3539, 0x350F, 0x34E4, 0x34BA, 
0x348F, 0x3464, 0x343A, 0x340F, 0x33E5, 0x33BA, 0x338F, 0x3364, 0x333A, 0x330F, 0x32E4, 0x32B9, 
0x328E, 0x3263, 0x3238, 0x320E, 0x31E3, 0x31B8, 0x318D, 0x3161, 0x3136, 0x310B, 0x30E0, 0x30B5, 
0x308A, 0x305F, 0x3033, 0x3008, 0x2FDD, 0x2FB1, 0x2F86, 0x2F5B, 0x2F2F, 0x2F04, 0x2ED9, 0x2EAD, 
0x2E82, 0x2E56, 0x2E2B, 0x2DFF, 0x2DD3, 0x2DA8, 0x2D7C, 0x2D51, 0x2D25, 0x2CF9, 0x2CCD, 0x2CA2, 
0x2C76, 0x2C4A, 0x2C1E, 0x2BF3, 0x2BC7, 0x2B9B, 0x2B6F, 0x2B43, 0x2B17, 0x2AEB, 0x2ABF, 0x2A93, 
0x2A67, 0x2A3B, 0x2A0F, 0x29E3, 0x29B7, 0x298A, 0x295E, 0x2932, 0x2906, 0x28DA, 0x28AD, 0x2881, 
0x2855, 0x2828, 0x27FC, 0x27D0, 0x27A3, 0x2777, 0x274B, 0x271E, 0x26F2, 0x26C5, 0x2699, 0x266C, 
0x2640, 0x2613, 0x25E6, 0x25BA, 0x258D, 0x2561, 0x2534, 0x2507, 0x24DB, 0x24AE, 0x2481, 0x2454, 
0x2428, 0x23FB, 0x23CE, 0x23A1, 0x2374, 0x2347, 0x231B, 0x22EE, 0x22C1, 0x2294, 0x2267, 0x223A, 
0x220D, 0x21E0, 0x21B3, 0x2186, 0x2159, 0x212C, 0x20FF, 0x20D1, 0x20A4, 0x2077, 0x204A, 0x201D, 
0x1FF0, 0x1FC2, 0x1F95, 0x1F68, 0x1F3B, 0x1F0D, 0x1EE0, 0x1EB3, 0x1E85, 0x1E58, 0x1E2B, 0x1DFD, 
0x1DD0, 0x1DA2, 0x1D75, 0x1D48, 0x1D1A, 0x1CED, 0x1CBF, 0x1C92, 0x1C64, 0x1C37, 0x1C09, 0x1BDC, 
0x1BAE, 0x1B80, 0x1B53, 0x1B25, 0x1AF8, 0x1ACA, 0x1A9C, 0x1A6F, 0x1A41, 0x1A13, 0x19E5, 0x19B8, 
0x198A, 0x195C, 0x192E, 0x1901, 0x18D3, 0x18A5, 0x1877, 0x1849, 0x181C, 0x17EE, 0x17C0, 0x1792, 
0x1764, 0x1736, 0x1708, 0x16DA, 0x16AC, 0x167E, 0x1651, 0x1623, 0x15F5, 0x15C7, 0x1599, 0x156B, 
0x153C, 0x150E, 0x14E0, 0x14B2, 0x1484, 0x1456, 0x1428, 0x13FA, 0x13CC, 0x139E, 0x1370, 0x1341, 
0x1313, 0x12E5, 0x12B7, 0x1289, 0x125B, 0x122C, 0x11FE, 0x11D0, 0x11A2, 0x1173, 0x1145, 0x1117, 
0x10E9, 0x10BA, 0x108C, 0x105E, 0x102F, 0x1001, 0x0FD3, 0x0FA4, 0x0F76, 0x0F48, 0x0F19, 0x0EEB, 
0x0EBD, 0x0E8E, 0x0E60, 0x0E31, 0x0E03, 0x0DD5, 0x0DA6, 0x0D78, 0x0D49, 0x0D1B, 0x0CED, 0x0CBE, 
0x0C90, 0x0C61, 0x0C33, 0x0C04, 0x0BD6, 0x0BA7, 0x0B79, 0x0B4A, 0x0B1C, 0x0AED, 0x0ABF, 0x0A90, 
0x0A62, 0x0A33, 0x0A05, 0x09D6, 0x09A7, 0x0979, 0x094A, 0x091C, 0x08ED, 0x08BF, 0x0890, 0x0862, 
0x0833, 0x0804, 0x07D6, 0x07A7, 0x0779, 0x074A, 0x071B, 0x06ED, 0x06BE, 0x068F, 0x0661, 0x0632, 
0x0604, 0x05D5, 0x05A6, 0x0578, 0x0549, 0x051A, 0x04EC, 0x04BD, 0x048E, 0x0460, 0x0431, 0x0402, 
0x03D4, 0x03A5, 0x0376, 0x0348, 0x0319, 0x02EA, 0x02BC, 0x028D, 0x025E, 0x0230, 0x0201, 0x01D2, 
0x01A4, 0x0175, 0x0146, 0x0118, 0x00E9, 0x00BA, 0x008C, 0x005D, 0x002E, 0x0000, 0xFFD2, 0xFFA3, 
0xFF74, 0xFF46, 0xFF17, 0xFEE8, 0xFEBA, 0xFE8B, 0xFE5C, 0xFE2E, 0xFDFF, 0xFDD0, 0xFDA2, 0xFD73, 
0xFD44, 0xFD16, 0xFCE7, 0xFCB8, 0xFC8A, 0xFC5B, 0xFC2C, 0xFBFE, 0xFBCF, 0xFBA0, 0xFB72, 0xFB43, 
0xFB14, 0xFAE6, 0xFAB7, 0xFA88, 0xFA5A, 0xFA2B, 0xF9FC, 0xF9CE, 0xF99F, 0xF971, 0xF942, 0xF913, 
0xF8E5, 0xF8B6, 0xF887, 0xF859, 0xF82A, 0xF7FC, 0xF7CD, 0xF79E, 0xF770, 0xF741, 0xF713, 0xF6E4, 
0xF6B6, 0xF687, 0xF659, 0xF62A, 0xF5FB, 0xF5CD, 0xF59E, 0xF570, 0xF541, 0xF513, 0xF4E4, 0xF4B6, 
0xF487, 0xF459, 0xF42A, 0xF3FC, 0xF3CD, 0xF39F, 0xF370, 0xF342, 0xF313, 0xF2E5, 0xF2B7, 0xF288, 
0xF25A, 0xF22B, 0xF1FD, 0xF1CE, 0xF1A0, 0xF172, 0xF143, 0xF115, 0xF0E7, 0xF0B8, 0xF08A, 0xF05C, 
0xF02D, 0xEFFF, 0xEFD1, 0xEFA2, 0xEF74, 0xEF46, 0xEF17, 0xEEE9, 0xEEBB, 0xEE8D, 0xEE5E, 0xEE30, 
0xEE02, 0xEDD4, 0xEDA5, 0xED77, 0xED49, 0xED1B, 0xECED, 0xECBF, 0xEC90, 0xEC62, 0xEC34, 0xEC06, 
0xEBD8, 0xEBAA, 0xEB7C, 0xEB4E, 0xEB20, 0xEAF2, 0xEAC4, 0xEA95, 0xEA67, 0xEA39, 0xEA0B, 0xE9DD, 
0xE9AF, 0xE982, 0xE954, 0xE926, 0xE8F8, 0xE8CA, 0xE89C, 0xE86E, 0xE840, 0xE812, 0xE7E4, 0xE7B7, 
0xE789, 0xE75B, 0xE72D, 0xE6FF, 0xE6D2, 0xE6A4, 0xE676, 0xE648, 0xE61B, 0xE5ED, 0xE5BF, 0xE591, 
0xE564, 0xE536, 0xE508, 0xE4DB, 0xE4AD, 0xE480, 0xE452, 0xE424, 0xE3F7, 0xE3C9, 0xE39C, 0xE36E, 
0xE341, 0xE313, 0xE2E6, 0xE2B8, 0xE28B, 0xE25E, 0xE230, 0xE203, 0xE1D5, 0xE1A8, 0xE17B, 0xE14D, 
0xE120, 0xE0F3, 0xE0C5, 0xE098, 0xE06B, 0xE03E, 0xE010, 0xDFE3, 0xDFB6, 0xDF89, 0xDF5C, 0xDF2F, 
0xDF01, 0xDED4, 0xDEA7, 0xDE7A, 0xDE4D, 0xDE20, 0xDDF3, 0xDDC6, 0xDD99, 0xDD6C, 0xDD3F, 0xDD12, 
0xDCE5, 0xDCB9, 0xDC8C, 0xDC5F, 0xDC32, 0xDC05, 0xDBD8, 0xDBAC, 0xDB7F, 0xDB52, 0xDB25, 0xDAF9, 
0xDACC, 0xDA9F, 0xDA73, 0xDA46, 0xDA1A, 0xD9ED, 0xD9C0, 0xD994, 0xD967, 0xD93B, 0xD90E, 0xD8E2, 
0xD8B5, 0xD889, 0xD85D, 0xD830, 0xD804, 0xD7D8, 0xD7AB, 0xD77F, 0xD753, 0xD726, 0xD6FA, 0xD6CE, 
0xD6A2, 0xD676, 0xD649, 0xD61D, 0xD5F1, 0xD5C5, 0xD599, 0xD56D, 0xD541, 0xD515, 0xD4E9, 0xD4BD, 
0xD491, 0xD465, 0xD439, 0xD40D, 0xD3E2, 0xD3B6, 0xD38A, 0xD35E, 0xD333, 0xD307, 0xD2DB, 0xD2AF, 
0xD284, 0xD258, 0xD22D, 0xD201, 0xD1D5, 0xD1AA, 0xD17E, 0xD153, 0xD127, 0xD0FC, 0xD0D1, 0xD0A5, 
0xD07A, 0xD04F, 0xD023, 0xCFF8, 0xCFCD, 0xCFA1, 0xCF76, 0xCF4B, 0xCF20, 0xCEF5, 0xCECA, 0xCE9F, 
0xCE73, 0xCE48, 0xCE1D, 0xCDF2, 0xCDC8, 0xCD9D, 0xCD72, 0xCD47, 0xCD1C, 0xCCF1, 0xCCC6, 0xCC9C, 
0xCC71, 0xCC46, 0xCC1B, 0xCBF1, 0xCBC6, 0xCB9C, 0xCB71, 0xCB46, 0xCB1C, 0xCAF1, 0xCAC7, 0xCA9C, 
0xCA72, 0xCA48, 0xCA1D, 0xC9F3, 0xC9C9, 0xC99E, 0xC974, 0xC94A, 0xC920, 0xC8F6, 0xC8CB, 0xC8A1, 
0xC877, 0xC84D, 0xC823, 0xC7F9, 0xC7CF, 0xC7A5, 0xC77B, 0xC751, 0xC728, 0xC6FE, 0xC6D4, 0xC6AA, 
0xC681, 0xC657, 0xC62D, 0xC604, 0xC5DA, 0xC5B0, 0xC587, 0xC55D, 0xC534, 0xC50A, 0xC4E1, 0xC4B8, 
0xC48E, 0xC465, 0xC43C, 0xC412, 0xC3E9, 0xC3C0, 0xC397, 0xC36E, 0xC344, 0xC31B, 0xC2F2, 0xC2C9, 
0xC2A0, 0xC277, 0xC24E, 0xC226, 0xC1FD, 0xC1D4, 0xC1AB, 0xC182, 0xC15A, 0xC131, 0xC108, 0xC0E0, 
0xC0B7, 0xC08E, 0xC066, 0xC03D, 0xC015, 0xBFED, 0xBFC4, 0xBF9C, 0xBF73, 0xBF4B, 0xBF23, 0xBEFB, 
0xBED2, 0xBEAA, 0xBE82, 0xBE5A, 0xBE32, 0xBE0A, 0xBDE2, 0xBDBA, 0xBD92, 0xBD6A, 0xBD42, 0xBD1B, 
0xBCF3, 0xBCCB, 0xBCA3, 0xBC7C, 0xBC54, 0xBC2C, 0xBC05, 0xBBDD, 0xBBB6, 0xBB8E, 0xBB67, 0xBB3F, 
0xBB18, 0xBAF1, 0xBAC9, 0xBAA2, 0xBA7B, 0xBA54, 0xBA2D, 0xBA06, 0xB9DF, 0xB9B7, 0xB990, 0xB96A, 
0xB943, 0xB91C, 0xB8F5, 0xB8CE, 0xB8A7, 0xB881, 0xB85A, 0xB833, 0xB80C, 0xB7E6, 0xB7BF, 0xB799, 
0xB772, 0xB74C, 0xB726, 0xB6FF, 0xB6D9, 0xB6B3, 0xB68C, 0xB666, 0xB640, 0xB61A, 0xB5F4, 0xB5CE, 
0xB5A8, 0xB582, 0xB55C, 0xB536, 0xB510, 0xB4EA, 0xB4C4, 0xB49E, 0xB479, 0xB453, 0xB42D, 0xB408, 
0xB3E2, 0xB3BD, 0xB397, 0xB372, 0xB34D, 0xB327, 0xB302, 0xB2DD, 0xB2B7, 0xB292, 0xB26D, 0xB248, 
0xB223, 0xB1FE, 0xB1D9, 0xB1B4, 0xB18F, 0xB16A, 0xB145, 0xB120, 0xB0FC, 0xB0D7, 0xB0B2, 0xB08E, 
0xB069, 0xB045, 0xB020, 0xAFFC, 0xAFD7, 0xAFB3, 0xAF8E, 0xAF6A, 0xAF46, 0xAF22, 0xAEFE, 0xAED9, 
0xAEB5, 0xAE91, 0xAE6D, 0xAE49, 0xAE25, 0xAE02, 0xADDE, 0xADBA, 0xAD96, 0xAD73, 0xAD4F, 0xAD2B, 
0xAD08, 0xACE4, 0xACC1, 0xAC9D, 0xAC7A, 0xAC56, 0xAC33, 0xAC10, 0xABED, 0xABC9, 0xABA6, 0xAB83, 
0xAB60, 0xAB3D, 0xAB1A, 0xAAF7, 0xAAD4, 0xAAB2, 0xAA8F, 0xAA6C, 0xAA49, 0xAA27, 0xAA04, 0xA9E2, 
0xA9BF, 0xA99D, 0xA97A, 0xA958, 0xA935, 0xA913, 0xA8F1, 0xA8CF, 0xA8AD, 0xA88A, 0xA868, 0xA846, 
0xA824, 0xA802, 0xA7E1, 0xA7BF, 0xA79D, 0xA77B, 0xA75A, 0xA738, 0xA716, 0xA6F5, 0xA6D3, 0xA6B2, 
0xA690, 0xA66F, 0xA64E, 0xA62C, 0xA60B, 0xA5EA, 0xA5C9, 0xA5A8, 0xA587, 0xA566, 0xA545, 0xA524, 
0xA503, 0xA4E2, 0xA4C1, 0xA4A1, 0xA480, 0xA45F, 0xA43F, 0xA41E, 0xA3FE, 0xA3DD, 0xA3BD, 0xA39D, 
0xA37C, 0xA35C, 0xA33C, 0xA31C, 0xA2FC, 0xA2DC, 0xA2BC, 0xA29C, 0xA27C, 0xA25C, 0xA23C, 0xA21C, 
0xA1FD, 0xA1DD, 0xA1BD, 0xA19E, 0xA17E, 0xA15F, 0xA13F, 0xA120, 0xA101, 0xA0E2, 0xA0C2, 0xA0A3, 
0xA084, 0xA065, 0xA046, 0xA027, 0xA008, 0x9FE9, 0x9FCA, 0x9FAC, 0x9F8D, 0x9F6E, 0x9F50, 0x9F31, 
0x9F13, 0x9EF4, 0x9ED6, 0x9EB7, 0x9E99, 0x9E7B, 0x9E5C, 0x9E3E, 0x9E20, 0x9E02, 0x9DE4, 0x9DC6, 
0x9DA8, 0x9D8A, 0x9D6D, 0x9D4F, 0x9D31, 0x9D13, 0x9CF6, 0x9CD8, 0x9CBB, 0x9C9D, 0x9C80, 0x9C63, 
0x9C45, 0x9C28, 0x9C0B, 0x9BEE, 0x9BD1, 0x9BB4, 0x9B97, 0x9B7A, 0x9B5D, 0x9B40, 0x9B23, 0x9B07, 
0x9AEA, 0x9ACD, 0x9AB1, 0x9A94, 0x9A78, 0x9A5B, 0x9A3F, 0x9A23, 0x9A07, 0x99EA, 0x99CE, 0x99B2, 
0x9996, 0x997A, 0x995E, 0x9942, 0x9927, 0x990B, 0x98EF, 0x98D3, 0x98B8, 0x989C, 0x9881, 0x9865, 
0x984A, 0x982F, 0x9813, 0x97F8, 0x97DD, 0x97C2, 0x97A7, 0x978C, 0x9771, 0x9756, 0x973B, 0x9720, 
0x9706, 0x96EB, 0x96D0, 0x96B6, 0x969B, 0x9681, 0x9666, 0x964C, 0x9632, 0x9617, 0x95FD, 0x95E3, 
0x95C9, 0x95AF, 0x9595, 0x957B, 0x9561, 0x9547, 0x952E, 0x9514, 0x94FA, 0x94E1, 0x94C7, 0x94AE, 
0x9494, 0x947B, 0x9462, 0x9448, 0x942F, 0x9416, 0x93FD, 0x93E4, 0x93CB, 0x93B2, 0x9399, 0x9380, 
0x9368, 0x934F, 0x9336, 0x931E, 0x9305, 0x92ED, 0x92D4, 0x92BC, 0x92A4, 0x928C, 0x9273, 0x925B, 
0x9243, 0x922B, 0x9213, 0x91FB, 0x91E4, 0x91CC, 0x91B4, 0x919C, 0x9185, 0x916D, 0x9156, 0x913E, 
0x9127, 0x9110, 0x90F8, 0x90E1, 0x90CA, 0x90B3, 0x909C, 0x9085, 0x906E, 0x9057, 0x9040, 0x902A, 
0x9013, 0x8FFC, 0x8FE6, 0x8FCF, 0x8FB9, 0x8FA3, 0x8F8C, 0x8F76, 0x8F60, 0x8F4A, 0x8F33, 0x8F1D, 
0x8F07, 0x8EF2, 0x8EDC, 0x8EC6, 0x8EB0, 0x8E9A, 0x8E85, 0x8E6F, 0x8E5A, 0x8E44, 0x8E2F, 0x8E1A, 
0x8E04, 0x8DEF, 0x8DDA, 0x8DC5, 0x8DB0, 0x8D9B, 0x8D86, 0x8D71, 0x8D5C, 0x8D48, 0x8D33, 0x8D1E, 
0x8D0A, 0x8CF5, 0x8CE1, 0x8CCC, 0x8CB8, 0x8CA4, 0x8C90, 0x8C7C, 0x8C67, 0x8C53, 0x8C40, 0x8C2C, 
0x8C18, 0x8C04, 0x8BF0, 0x8BDD, 0x8BC9, 0x8BB5, 0x8BA2, 0x8B8F, 0x8B7B, 0x8B68, 0x8B55, 0x8B42, 
0x8B2E, 0x8B1B, 0x8B08, 0x8AF5, 0x8AE3, 0x8AD0, 0x8ABD, 0x8AAA, 0x8A98, 0x8A85, 0x8A73, 0x8A60, 
0x8A4E, 0x8A3C, 0x8A29, 0x8A17, 0x8A05, 0x89F3, 0x89E1, 0x89CF, 0x89BD, 0x89AB, 0x8999, 0x8988, 
0x8976, 0x8965, 0x8953, 0x8942, 0x8930, 0x891F, 0x890E, 0x88FC, 0x88EB, 0x88DA, 0x88C9, 0x88B8, 
0x88A7, 0x8896, 0x8886, 0x8875, 0x8864, 0x8854, 0x8843, 0x8833, 0x8822, 0x8812, 0x8802, 0x87F1, 
0x87E1, 0x87D1, 0x87C1, 0x87B1, 0x87A1, 0x8791, 0x8782, 0x8772, 0x8762, 0x8753, 0x8743, 0x8734, 
0x8724, 0x8715, 0x8706, 0x86F6, 0x86E7, 0x86D8, 0x86C9, 0x86BA, 0x86AB, 0x869C, 0x868E, 0x867F, 
0x8670, 0x8662, 0x8653, 0x8645, 0x8636, 0x8628, 0x861A, 0x860C, 0x85FD, 0x85EF, 0x85E1, 0x85D3, 
0x85C5, 0x85B8, 0x85AA, 0x859C, 0x858F, 0x8581, 0x8573, 0x8566, 0x8559, 0x854B, 0x853E, 0x8531, 
0x8524, 0x8517, 0x850A, 0x84FD, 0x84F0, 0x84E3, 0x84D6, 0x84CA, 0x84BD, 0x84B1, 0x84A4, 0x8498, 
0x848B, 0x847F, 0x8473, 0x8467, 0x845B, 0x844E, 0x8442, 0x8437, 0x842B, 0x841F, 0x8413, 0x8408, 
0x83FC, 0x83F1, 0x83E5, 0x83DA, 0x83CE, 0x83C3, 0x83B8, 0x83AD, 0x83A2, 0x8397, 0x838C, 0x8381, 
0x8376, 0x836B, 0x8361, 0x8356, 0x834B, 0x8341, 0x8337, 0x832C, 0x8322, 0x8318, 0x830E, 0x8303, 
0x82F9, 0x82EF, 0x82E6, 0x82DC, 0x82D2, 0x82C8, 0x82BF, 0x82B5, 0x82AB, 0x82A2, 0x8299, 0x828F, 
0x8286, 0x827D, 0x8274, 0x826B, 0x8262, 0x8259, 0x8250, 0x8247, 0x823E, 0x8236, 0x822D, 0x8225, 
0x821C, 0x8214, 0x820B, 0x8203, 0x81FB, 0x81F3, 0x81EB, 0x81E3, 0x81DB, 0x81D3, 0x81CB, 0x81C3, 
0x81BC, 0x81B4, 0x81AD, 0x81A5, 0x819E, 0x8196, 0x818F, 0x8188, 0x8181, 0x8179, 0x8172, 0x816C, 
0x8165, 0x815E, 0x8157, 0x8150, 0x814A, 0x8143, 0x813D, 0x8136, 0x8130, 0x812A, 0x8123, 0x811D, 
0x8117, 0x8111, 0x810B, 0x8105, 0x80FF, 0x80FA, 0x80F4, 0x80EE, 0x80E9, 0x80E3, 0x80DE, 0x80D8, 
0x80D3, 0x80CE, 0x80C9, 0x80C3, 0x80BE, 0x80B9, 0x80B5, 0x80B0, 0x80AB, 0x80A6, 0x80A2, 0x809D, 
0x8098, 0x8094, 0x8090, 0x808B, 0x8087, 0x8083, 0x807F, 0x807B, 0x8077, 0x8073, 0x806F, 0x806B, 
0x8067, 0x8064, 0x8060, 0x805D, 0x8059, 0x8056, 0x8052, 0x804F, 0x804C, 0x8049, 0x8046, 0x8043, 
0x8040, 0x803D, 0x803A, 0x8038, 0x8035, 0x8032, 0x8030, 0x802D, 0x802B, 0x8029, 0x8026, 0x8024, 
0x8022, 0x8020, 0x801E, 0x801C, 0x801A, 0x8018, 0x8017, 0x8015, 0x8013, 0x8012, 0x8010, 0x800F, 
0x800E, 0x800C, 0x800B, 0x800A, 0x8009, 0x8008, 0x8007, 0x8006, 0x8005, 0x8005, 0x8004, 0x8003, 
0x8003, 0x8002, 0x8002, 0x8002, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 
0x8002, 0x8002, 0x8002, 0x8003, 0x8003, 0x8004, 0x8005, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 
0x800A, 0x800B, 0x800C, 0x800E, 0x800F, 0x8010, 0x8012, 0x8013, 0x8015, 0x8017, 0x8018, 0x801A, 
0x801C, 0x801E, 0x8020, 0x8022, 0x8024, 0x8026, 0x8029, 0x802B, 0x802D, 0x8030, 0x8032, 0x8035, 
0x8038, 0x803A, 0x803D, 0x8040, 0x8043, 0x8046, 0x8049, 0x804C, 0x804F, 0x8052, 0x8056, 0x8059, 
0x805D, 0x8060, 0x8064, 0x8067, 0x806B, 0x806F, 0x8073, 0x8077, 0x807B, 0x807F, 0x8083, 0x8087, 
0x808B, 0x8090, 0x8094, 0x8098, 0x809D, 0x80A2, 0x80A6, 0x80AB, 0x80B0, 0x80B5, 0x80B9, 0x80BE, 
0x80C3, 0x80C9, 0x80CE, 0x80D3, 0x80D8, 0x80DE, 0x80E3, 0x80E9, 0x80EE, 0x80F4, 0x80FA, 0x80FF, 
0x8105, 0x810B, 0x8111, 0x8117, 0x811D, 0x8123, 0x812A, 0x8130, 0x8136, 0x813D, 0x8143, 0x814A, 
0x8150, 0x8157, 0x815E, 0x8165, 0x816C, 0x8172, 0x8179, 0x8181, 0x8188, 0x818F, 0x8196, 0x819E, 
0x81A5, 0x81AD, 0x81B4, 0x81BC, 0x81C3, 0x81CB, 0x81D3, 0x81DB, 0x81E3, 0x81EB, 0x81F3, 0x81FB, 
0x8203, 0x820B, 0x8214, 0x821C, 0x8225, 0x822D, 0x8236, 0x823E, 0x8247, 0x8250, 0x8259, 0x8262, 
0x826B, 0x8274, 0x827D, 0x8286, 0x828F, 0x8299, 0x82A2, 0x82AB, 0x82B5, 0x82BF, 0x82C8, 0x82D2, 
0x82DC, 0x82E6, 0x82EF, 0x82F9, 0x8303, 0x830E, 0x8318, 0x8322, 0x832C, 0x8337, 0x8341, 0x834B, 
0x8356, 0x8361, 0x836B, 0x8376, 0x8381, 0x838C, 0x8397, 0x83A2, 0x83AD, 0x83B8, 0x83C3, 0x83CE, 
0x83DA, 0x83E5, 0x83F1, 0x83FC, 0x8408, 0x8413, 0x841F, 0x842B, 0x8437, 0x8443, 0x844E, 0x845B, 
0x8467, 0x8473, 0x847F, 0x848B, 0x8498, 0x84A4, 0x84B1, 0x84BD, 0x84CA, 0x84D6, 0x84E3, 0x84F0, 
0x84FD, 0x850A, 0x8517, 0x8524, 0x8531, 0x853E, 0x854B, 0x8559, 0x8566, 0x8573, 0x8581, 0x858F, 
0x859C, 0x85AA, 0x85B8, 0x85C5, 0x85D3, 0x85E1, 0x85EF, 0x85FD, 0x860C, 0x861A, 0x8628, 0x8636, 
0x8645, 0x8653, 0x8662, 0x8670, 0x867F, 0x868E, 0x869C, 0x86AB, 0x86BA, 0x86C9, 0x86D8, 0x86E7, 
0x86F6, 0x8706, 0x8715, 0x8724, 0x8734, 0x8743, 0x8753, 0x8762, 0x8772, 0x8782, 0x8791, 0x87A1, 
0x87B1, 0x87C1, 0x87D1, 0x87E1, 0x87F1, 0x8802, 0x8812, 0x8822, 0x8833, 0x8843, 0x8854, 0x8864, 
0x8875, 0x8886, 0x8896, 0x88A7, 0x88B8, 0x88C9, 0x88DA, 0x88EB, 0x88FC, 0x890E, 0x891F, 0x8930, 
0x8942, 0x8953, 0x8965, 0x8976, 0x8988, 0x8999, 0x89AB, 0x89BD, 0x89CF, 0x89E1, 0x89F3, 0x8A05, 
0x8A17, 0x8A29, 0x8A3C, 0x8A4E, 0x8A60, 0x8A73, 0x8A85, 0x8A98, 0x8AAA, 0x8ABD, 0x8AD0, 0x8AE3, 
0x8AF5, 0x8B08, 0x8B1B, 0x8B2E, 0x8B42, 0x8B55, 0x8B68, 0x8B7B, 0x8B8F, 0x8BA2, 0x8BB5, 0x8BC9, 
0x8BDD, 0x8BF0, 0x8C04, 0x8C18, 0x8C2C, 0x8C40, 0x8C53, 0x8C67, 0x8C7C, 0x8C90, 0x8CA4, 0x8CB8, 
0x8CCC, 0x8CE1, 0x8CF5, 0x8D0A, 0x8D1E, 0x8D33, 0x8D48, 0x8D5C, 0x8D71, 0x8D86, 0x8D9B, 0x8DB0, 
0x8DC5, 0x8DDA, 0x8DEF, 0x8E04, 0x8E1A, 0x8E2F, 0x8E44, 0x8E5A, 0x8E6F, 0x8E85, 0x8E9A, 0x8EB0, 
0x8EC6, 0x8EDC, 0x8EF2, 0x8F07, 0x8F1D, 0x8F33, 0x8F4A, 0x8F60, 0x8F76, 0x8F8C, 0x8FA3, 0x8FB9, 
0x8FCF, 0x8FE6, 0x8FFC, 0x9013, 0x902A, 0x9040, 0x9057, 0x906E, 0x9085, 0x909C, 0x90B3, 0x90CA, 
0x90E1, 0x90F8, 0x9110, 0x9127, 0x913E, 0x9156, 0x916D, 0x9185, 0x919C, 0x91B4, 0x91CC, 0x91E4, 
0x91FB, 0x9213, 0x922B, 0x9243, 0x925B, 0x9273, 0x928C, 0x92A4, 0x92BC, 0x92D4, 0x92ED, 0x9305, 
0x931E, 0x9336, 0x934F, 0x9368, 0x9380, 0x9399, 0x93B2, 0x93CB, 0x93E4, 0x93FD, 0x9416, 0x942F, 
0x9448, 0x9462, 0x947B, 0x9494, 0x94AE, 0x94C7, 0x94E1, 0x94FA, 0x9514, 0x952E, 0x9547, 0x9561, 
0x957B, 0x9595, 0x95AF, 0x95C9, 0x95E3, 0x95FD, 0x9617, 0x9632, 0x964C, 0x9666, 0x9681, 0x969B, 
0x96B6, 0x96D0, 0x96EB, 0x9706, 0x9720, 0x973B, 0x9756, 0x9771, 0x978C, 0x97A7, 0x97C2, 0x97DD, 
0x97F8, 0x9813, 0x982F, 0x984A, 0x9865, 0x9881, 0x989C, 0x98B8, 0x98D3, 0x98EF, 0x990B, 0x9927, 
0x9942, 0x995E, 0x997A, 0x9996, 0x99B2, 0x99CE, 0x99EA, 0x9A07, 0x9A23, 0x9A3F, 0x9A5B, 0x9A78, 
0x9A94, 0x9AB1, 0x9ACD, 0x9AEA, 0x9B07, 0x9B23, 0x9B40, 0x9B5D, 0x9B7A, 0x9B97, 0x9BB4, 0x9BD1, 
0x9BEE, 0x9C0B, 0x9C28, 0x9C45, 0x9C63, 0x9C80, 0x9C9D, 0x9CBB, 0x9CD8, 0x9CF6, 0x9D14, 0x9D31, 
0x9D4F, 0x9D6D, 0x9D8A, 0x9DA8, 0x9DC6, 0x9DE4, 0x9E02, 0x9E20, 0x9E3E, 0x9E5C, 0x9E7B, 0x9E99, 
0x9EB7, 0x9ED6, 0x9EF4, 0x9F13, 0x9F31, 0x9F50, 0x9F6E, 0x9F8D, 0x9FAC, 0x9FCA, 0x9FE9, 0xA008, 
0xA027, 0xA046, 0xA065, 0xA084, 0xA0A3, 0xA0C2, 0xA0E2, 0xA101, 0xA120, 0xA13F, 0xA15F, 0xA17E, 
0xA19E, 0xA1BD, 0xA1DD, 0xA1FD, 0xA21C, 0xA23C, 0xA25C, 0xA27C, 0xA29C, 0xA2BC, 0xA2DC, 0xA2FC, 
0xA31C, 0xA33C, 0xA35C, 0xA37C, 0xA39D, 0xA3BD, 0xA3DD, 0xA3FE, 0xA41E, 0xA43F, 0xA45F, 0xA480, 
0xA4A1, 0xA4C1, 0xA4E2, 0xA503, 0xA524, 0xA545, 0xA566, 0xA587, 0xA5A8, 0xA5C9, 0xA5EA, 0xA60B, 
0xA62C, 0xA64E, 0xA66F, 0xA690, 0xA6B2, 0xA6D3, 0xA6F5, 0xA716, 0xA738, 0xA75A, 0xA77B, 0xA79D, 
0xA7BF, 0xA7E1, 0xA802, 0xA824, 0xA846, 0xA868, 0xA88A, 0xA8AD, 0xA8CF, 0xA8F1, 0xA913, 0xA935, 
0xA958, 0xA97A, 0xA99D, 0xA9BF, 0xA9E2, 0xAA04, 0xAA27, 0xAA49, 0xAA6C, 0xAA8F, 0xAAB2, 0xAAD4, 
0xAAF7, 0xAB1A, 0xAB3D, 0xAB60, 0xAB83, 0xABA6, 0xABC9, 0xABED, 0xAC10, 0xAC33, 0xAC56, 0xAC7A, 
0xAC9D, 0xACC1, 0xACE4, 0xAD08, 0xAD2B, 0xAD4F, 0xAD73, 0xAD96, 0xADBA, 0xADDE, 0xAE02, 0xAE25, 
0xAE49, 0xAE6D, 0xAE91, 0xAEB5, 0xAED9, 0xAEFE, 0xAF22, 0xAF46, 0xAF6A, 0xAF8E, 0xAFB3, 0xAFD7, 
0xAFFC, 0xB020, 0xB045, 0xB069, 0xB08E, 0xB0B2, 0xB0D7, 0xB0FC, 0xB120, 0xB145, 0xB16A, 0xB18F, 
0xB1B4, 0xB1D9, 0xB1FE, 0xB223, 0xB248, 0xB26D, 0xB292, 0xB2B7, 0xB2DD, 0xB302, 0xB327, 0xB34D, 
0xB372, 0xB397, 0xB3BD, 0xB3E2, 0xB408, 0xB42D, 0xB453, 0xB479, 0xB49E, 0xB4C4, 0xB4EA, 0xB510, 
0xB536, 0xB55C, 0xB582, 0xB5A8, 0xB5CE, 0xB5F4, 0xB61A, 0xB640, 0xB666, 0xB68C, 0xB6B3, 0xB6D9, 
0xB6FF, 0xB726, 0xB74C, 0xB772, 0xB799, 0xB7BF, 0xB7E6, 0xB80D, 0xB833, 0xB85A, 0xB880, 0xB8A7, 
0xB8CE, 0xB8F5, 0xB91C, 0xB943, 0xB96A, 0xB990, 0xB9B7, 0xB9DF, 0xBA06, 0xBA2D, 0xBA54, 0xBA7B, 
0xBAA2, 0xBAC9, 0xBAF1, 0xBB18, 0xBB3F, 0xBB67, 0xBB8E, 0xBBB6, 0xBBDD, 0xBC05, 0xBC2C, 0xBC54, 
0xBC7C, 0xBCA3, 0xBCCB, 0xBCF3, 0xBD1B, 0xBD42, 0xBD6A, 0xBD92, 0xBDBA, 0xBDE2, 0xBE0A, 0xBE32, 
0xBE5A, 0xBE82, 0xBEAA, 0xBED2, 0xBEFB, 0xBF23, 0xBF4B, 0xBF73, 0xBF9C, 0xBFC4, 0xBFED, 0xC015, 
0xC03D, 0xC066, 0xC08E, 0xC0B7, 0xC0E0, 0xC108, 0xC131, 0xC15A, 0xC182, 0xC1AB, 0xC1D4, 0xC1FD, 
0xC226, 0xC24E, 0xC277, 0xC2A0, 0xC2C9, 0xC2F2, 0xC31B, 0xC344, 0xC36E, 0xC397, 0xC3C0, 0xC3E9, 
0xC412, 0xC43C, 0xC465, 0xC48E, 0xC4B8, 0xC4E1, 0xC50A, 0xC534, 0xC55D, 0xC587, 0xC5B0, 0xC5DA, 
0xC604, 0xC62D, 0xC657, 0xC681, 0xC6AA, 0xC6D4, 0xC6FE, 0xC728, 0xC751, 0xC77B, 0xC7A5, 0xC7CF, 
0xC7F9, 0xC823, 0xC84D, 0xC877, 0xC8A1, 0xC8CB, 0xC8F6, 0xC920, 0xC94A, 0xC974, 0xC99E, 0xC9C9, 
0xC9F3, 0xCA1D, 0xCA48, 0xCA72, 0xCA9C, 0xCAC7, 0xCAF1, 0xCB1C, 0xCB46, 0xCB71, 0xCB9C, 0xCBC6, 
0xCBF1, 0xCC1B, 0xCC46, 0xCC71, 0xCC9C, 0xCCC6, 0xCCF1, 0xCD1C, 0xCD47, 0xCD72, 0xCD9D, 0xCDC8, 
0xCDF2, 0xCE1D, 0xCE48, 0xCE73, 0xCE9F, 0xCECA, 0xCEF5, 0xCF20, 0xCF4B, 0xCF76, 0xCFA1, 0xCFCD, 
0xCFF8, 0xD023, 0xD04F, 0xD07A, 0xD0A5, 0xD0D1, 0xD0FC, 0xD127, 0xD153, 0xD17E, 0xD1AA, 0xD1D5, 
0xD201, 0xD22D, 0xD258, 0xD284, 0xD2AF, 0xD2DB, 0xD307, 0xD333, 0xD35E, 0xD38A, 0xD3B6, 0xD3E2, 
0xD40D, 0xD439, 0xD465, 0xD491, 0xD4BD, 0xD4E9, 0xD515, 0xD541, 0xD56D, 0xD599, 0xD5C5, 0xD5F1, 
0xD61D, 0xD649, 0xD676, 0xD6A2, 0xD6CE, 0xD6FA, 0xD726, 0xD753, 0xD77F, 0xD7AB, 0xD7D8, 0xD804, 
0xD830, 0xD85D, 0xD889, 0xD8B5, 0xD8E2, 0xD90E, 0xD93B, 0xD967, 0xD994, 0xD9C0, 0xD9ED, 0xDA1A, 
0xDA46, 0xDA73, 0xDA9F, 0xDACC, 0xDAF9, 0xDB25, 0xDB52, 0xDB7F, 0xDBAC, 0xDBD8, 0xDC05, 0xDC32, 
0xDC5F, 0xDC8C, 0xDCB9, 0xDCE5, 0xDD12, 0xDD3F, 0xDD6C, 0xDD99, 0xDDC6, 0xDDF3, 0xDE20, 0xDE4D, 
0xDE7A, 0xDEA7, 0xDED4, 0xDF01, 0xDF2F, 0xDF5C, 0xDF89, 0xDFB6, 0xDFE3, 0xE010, 0xE03E, 0xE06B, 
0xE098, 0xE0C5, 0xE0F3, 0xE120, 0xE14D, 0xE17B, 0xE1A8, 0xE1D5, 0xE203, 0xE230, 0xE25E, 0xE28B, 
0xE2B8, 0xE2E6, 0xE313, 0xE341, 0xE36E, 0xE39C, 0xE3C9, 0xE3F7, 0xE424, 0xE452, 0xE480, 0xE4AD, 
0xE4DB, 0xE508, 0xE536, 0xE564, 0xE591, 0xE5BF, 0xE5ED, 0xE61B, 0xE648, 0xE676, 0xE6A4, 0xE6D2, 
0xE6FF, 0xE72D, 0xE75B, 0xE789, 0xE7B7, 0xE7E4, 0xE812, 0xE840, 0xE86E, 0xE89C, 0xE8CA, 0xE8F8, 
0xE926, 0xE954, 0xE982, 0xE9B0, 0xE9DD, 0xEA0B, 0xEA39, 0xEA67, 0xEA95, 0xEAC4, 0xEAF2, 0xEB20, 
0xEB4E, 0xEB7C, 0xEBAA, 0xEBD8, 0xEC06, 0xEC34, 0xEC62, 0xEC90, 0xECBF, 0xECED, 0xED1B, 0xED49, 
0xED77, 0xEDA5, 0xEDD4, 0xEE02, 0xEE30, 0xEE5E, 0xEE8D, 0xEEBB, 0xEEE9, 0xEF17, 0xEF46, 0xEF74, 
0xEFA2, 0xEFD1, 0xEFFF, 0xF02D, 0xF05C, 0xF08A, 0xF0B8, 0xF0E7, 0xF115, 0xF143, 0xF172, 0xF1A0, 
0xF1CF, 0xF1FD, 0xF22B, 0xF25A, 0xF288, 0xF2B7, 0xF2E5, 0xF313, 0xF342, 0xF370, 0xF39F, 0xF3CD, 
0xF3FC, 0xF42A, 0xF459, 0xF487, 0xF4B6, 0xF4E4, 0xF513, 0xF541, 0xF570, 0xF59E, 0xF5CD, 0xF5FB, 
0xF62A, 0xF659, 0xF687, 0xF6B6, 0xF6E4, 0xF713, 0xF741, 0xF770, 0xF79E, 0xF7CD, 0xF7FC, 0xF82A, 
0xF859, 0xF887, 0xF8B6, 0xF8E5, 0xF913, 0xF942, 0xF971, 0xF99F, 0xF9CE, 0xF9FC, 0xFA2B, 0xFA5A, 
0xFA88, 0xFAB7, 0xFAE6, 0xFB14, 0xFB43, 0xFB72, 0xFBA0, 0xFBCF, 0xFBFE, 0xFC2C, 0xFC5B, 0xFC8A, 
0xFCB8, 0xFCE7, 0xFD16, 0xFD44, 0xFD73, 0xFDA2, 0xFDD0, 0xFDFF, 0xFE2E, 0xFE5C, 0xFE8B, 0xFEBA, 
0xFEE8, 0xFF17, 0xFF46, 0xFF74, 0xFFA3, 0xFFD2, 0};
const int NumSteps = 4410;





while(a++)
  {            
      
      
      for(int g = 0; g < 2000; g++, a++)              
        {
          for(int y = 0; y < 220; y++)
            {                  
            int yFac =  (y<<16) / 220;                  
        int yIndex = ((yFac)*(NumSteps))>>16;
        yIndex += a* 50;
        yIndex *= 3;
        yIndex = yIndex % NumSteps;
                                    
            for(int x = 0; x < 176; x++)
              {
                int xFac =  (x<<16) / 176;                
            int xIndex = ((xFac)*(NumSteps))>>16;
            xIndex += a* 70;
            xIndex *= 3;
            xIndex = xIndex % NumSteps;

            
            int f = Sine[xIndex] + Sine[yIndex];
            f  /= 2; f += 65536/2;
            f *= 2;
            f += a*1000 + y*1000;
            f %= 65536;                  
            const int _15 = 65536/5;
            const int _25 = _15 * 2;
            const int _35 = _15 * 3;
            const int _45 = _15 * 4;                                    
            int R = 0, G = 0, B = 0;
            
            if (f < _15)
              {
                  f *= 5;
                  R = 63 - ((f*63)>>16);
                  G =  0 +  ((f*32)>>16);
                  B = 0;
              }
            else if (f < _25)
              {
                  f -= _15; f *= 5;
                  R = 0;
                  G =  32 + ((f*31)>>16);
                  B = 0 +  ((f*32)>>16);
              }
            else if (f < _35)
              {
                  f -= _25; f *= 5;
                  R = 0;
                  G =  63 - ((f*63)>>16);
                  B = 31 + ((f*32)>>16);
              }
            else if (f < _45)
              {
                  f -= _35; f *= 5;
                  R = 0 +  ((f*32)>>16);
                  G =  0;
                  B = 63 - ((f*63)>>16); 
              }
            else
              {
                  f -= _45; f *= 5;
                  R = 32 + ((f*31)>>16);
                  G =  0;
                  B = 0;
              }
                ColorLine[x] = RGB(R, G, B);                            
              }                    
            TFT.SetArea(0, y, 176, y+1, ColorLine, true);                        //überträgt eine Zeile der Animation
          }
          Wait(20);
        }
                   
                    
  }

Autor: Arc Net (arc)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Bessere Voreinstellungen + ein Regler mehr zum Spielen...

Aufs wesentliche reduziert sieht das ganze etwa so aus:
(draw müsste z.B. für SPI-Displays entsprechend angepasst werden)
void init() {
    for (int i = 0; i < 240; i++) {
        // cos, sin, exp...
        mPlasmaTable[i] = (ushort)(Math.Cos(i * 360.0 / 240.0 * Math.PI / 180.0) * 256.0);
     }
     // color palette, RGB555 format
     for (int i = 0; i < 64; i++) {
         mPalette[i] = (ushort)((31 - i / 2) << 10 | 0 << 5 | (i / 2));
     }
     for (int i = 0; i < 64; i++) {
         mPalette[i + 64] = (ushort)(0 << 10 | (i / 2) << 5 | (31 - i / 2));
     }
     for (int i = 128; i < 256; i++) {
         mPalette[i] = mPalette[255 - i];
     }
}

void draw() {
    for (int y = 0; y < 320; y++) {
        for (int x = 0; x < 240; x++) {
            color = (uint)(mPlasmaTable[pos1 % 240] 
                + mPlasmaTable[pos2 % 240] 
                + mPlasmaTable[pos3 % 240] 
                + mPlasmaTable[pos4 % 240]);            
            lcd[x + y * rtData.Width] = mPalette[(color / div) & 0xff];
            pos3 += inc3;
            pos4 += inc4;
        }         
        pos1 += inc1;
        pos2 += inc2;
    }
    pos1 = (pos1 + inc5) % 240;
    pos2 = (pos2 + inc5) % 240;
    pos3 = (pos3 + inc5) % 240;
    pos4 = (pos4 + inc5) % 240;
}

Autor: Der Albi (der-albi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
solange da ein math.cos drinne steckt ist das weder aufs wesentliche 
reduziert noch SPI-Display fähig, da es dafür auf einen µC laufen muss 
;-)

Dafür bräuchte man wirklich mal ne sinnvolle und schnelle lösung. Auch 
meine tabelle is eher mist. Viel zu aufwendig sowas. Auch wenn ich für 
deren generierung ein programm geschrieben habe...

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Albi wrote:
> solange da ein math.cos drinne steckt ist das weder aufs wesentliche
> reduziert noch SPI-Display fähig, da es dafür auf einen µC laufen muss
> ;-)
>
> Dafür bräuchte man wirklich mal ne sinnvolle und schnelle lösung. Auch
> meine tabelle is eher mist. Viel zu aufwendig sowas. Auch wenn ich für
> deren generierung ein programm geschrieben habe...

Irgendwie hatte ich so eine ähnliche Antwort erwartet...
1. Auf viel weniger kann man's eigentlich nicht reduzieren, wenn man das 
Prinzip zeigen will: Initialisierung der nötigen Tabellen und eine 
einfache Zeichenroutine
2. Die Cosinus-Tabelle hat gerade einmal 240 Einträge (480 Bytes) und 
wird beim Programmstart berechnet, ob die Generierung der Tabelle mit 
allen Funktionen in 480 Bytes passt, eher nicht (oder doch?)
3. Sinus/Cosinus-Tabellen kann man auch ohne math.h berechnen, 
insbesondere wenn - wie hier - keine hohe Genauigkeit gefordert ist 
(Stichworte: harmonische Schwingung oder Einheitskreis)
4. Die Farbtabelle hat 256 Einträge (512 Bytes)
5. "SPI-Display fähig"
   statt lcd[x + y * rtData.Width] = ...
   nimmt man eben
   lcdBuffer[x] = ...
   und schiebt die Daten ausserhalb der x-Schleife zum Display
6. Die ganzen % kann man auch wegoptimieren
7. Eigentlich ging's aliendrummer wohl um die generelle Vorgehensweise 
und nicht um handoptimierten Assemblercode

Autor: Der Albi (der-albi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey hey.. das war doch kein Angriff... ;-) Ich hab das schon erkannt, wo 
und wie oft du den Cosinus benutzt usw..
Mich stört bloß die Benutzung selbst auch manchmal und wollt nur mal in 
die Runde werfen, obs denn ne halbwegs gute Alternative zur LUT gibt...
..schon alleine das einbindes von floats braucht nicht nur 
Flash-Programmspeicher, sondern auch erstaunlicher weiße mehr ram. 
Zumindest beim AVR32.. wo anders habe ichs nicht probiert...

Es wäre cool, wenn du mal ein Bild von deinem Output postest.. ich hab 
zwar ein C# hier.. aber keine ahnung, wie das geht.. bin dumm ;-)

MFG

Autor: Arc Net (arc)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Der Albi wrote:
> Hey hey.. das war doch kein Angriff... ;-)

Bei dem ..., ... Wetter hier...

> Ich hab das schon erkannt, wo
> und wie oft du den Cosinus benutzt usw..

> Mich stört bloß die Benutzung selbst auch manchmal und wollt nur mal in
> die Runde werfen, obs denn ne halbwegs gute Alternative zur LUT gibt...
> ..schon alleine das einbindes von floats braucht nicht nur
> Flash-Programmspeicher, sondern auch erstaunlicher weiße mehr ram.
> Zumindest beim AVR32.. wo anders habe ichs nicht probiert...
>
> Es wäre cool, wenn du mal ein Bild von deinem Output postest.. ich hab
> zwar ein C# hier.. aber keine ahnung, wie das geht.. bin dumm ;-)
>
> MFG

p.s. in dem Zip ist ein auch Unterorder bin\release mit der Exe
p.p.s. das Gif ist von 240x320 auf 120x160 herunterskaliert
p.p.p.s. sollte das Gif nicht laufen, gibt's auch noch ein PNG

Autor: Der Albi (der-albi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Exe läuft ni ohne .Net ;-) Ich nicht haben. Ich nicht will ;-)

Aber die animation is ok :-P
Hihi.. meine sieht aber schöner aus :-D ätsch ;-)

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Code hab ich leider nicht mehr, das Ding lief übrigens sogar unter 
QBasic flüssig (wegen Farbtabelle). Waren nur etwas über 100 Zeilen.

Hat das Bild dabei anfangs per Zufall erzeugt, also ganz ohne Vorgaben 
gearbeitet.


Auf die schnelle per Google: 
http://www.tek-tips.com/viewthread.cfm?qid=709175&page=8

Wahrscheinlich ist das unter Basicern so beliebt, weil eine der ganz 
wenigen Sachen die damit flüssig laufen ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.