Forum: PC-Programmierung Plasma Effekt


von aliendrummer (Gast)


Lesenswert?

Hallo!

Ich habe bei Youtube folgendes Video entdeckt:

http://www.youtube.com/watch?v=_9LWfa2Kt7o&NR=1


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

von Nico E. (masta79)


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

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

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

von Nico E. (masta79)


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.

von Jörg (Gast)


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

von aliendrummer (Gast)


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 :)

von Frank E. (erdi-soft)


Lesenswert?

Zur Info:

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

von I_ H. (i_h)


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).

von aliendrummer (Gast)


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?

von Arc N. (arc)


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

von Nico E. (masta79)


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".

von Arc N. (arc)


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.

von Der A. (der-albi)


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 ;-)

von Jörg (Gast)


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

von aliendrummer (Gast)


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!

von Der A. (der-albi)


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

von Arc N. (arc)


Angehängte Dateien:

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.

von UC3Aler (Gast)


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

von Arc N. (arc)


Angehängte Dateien:

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)
1
void init() {
2
    for (int i = 0; i < 240; i++) {
3
        // cos, sin, exp...
4
        mPlasmaTable[i] = (ushort)(Math.Cos(i * 360.0 / 240.0 * Math.PI / 180.0) * 256.0);
5
     }
6
     // color palette, RGB555 format
7
     for (int i = 0; i < 64; i++) {
8
         mPalette[i] = (ushort)((31 - i / 2) << 10 | 0 << 5 | (i / 2));
9
     }
10
     for (int i = 0; i < 64; i++) {
11
         mPalette[i + 64] = (ushort)(0 << 10 | (i / 2) << 5 | (31 - i / 2));
12
     }
13
     for (int i = 128; i < 256; i++) {
14
         mPalette[i] = mPalette[255 - i];
15
     }
16
}
17
18
void draw() {
19
    for (int y = 0; y < 320; y++) {
20
        for (int x = 0; x < 240; x++) {
21
            color = (uint)(mPlasmaTable[pos1 % 240] 
22
                + mPlasmaTable[pos2 % 240] 
23
                + mPlasmaTable[pos3 % 240] 
24
                + mPlasmaTable[pos4 % 240]);            
25
            lcd[x + y * rtData.Width] = mPalette[(color / div) & 0xff];
26
            pos3 += inc3;
27
            pos4 += inc4;
28
        }         
29
        pos1 += inc1;
30
        pos2 += inc2;
31
    }
32
    pos1 = (pos1 + inc5) % 240;
33
    pos2 = (pos2 + inc5) % 240;
34
    pos3 = (pos3 + inc5) % 240;
35
    pos4 = (pos4 + inc5) % 240;
36
}

von Der A. (der-albi)


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...

von Arc N. (arc)


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

von Der A. (der-albi)


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

von Arc N. (arc)


Angehängte Dateien:

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

von Der A. (der-albi)


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 ;-)

von I_ H. (i_h)


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 ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.