Lichtkrant Sigma ASC 333: Difference between revisions
mNo edit summary |
mNo edit summary |
||
(18 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Project | ||
|Name= Lichtkrant Sigma ASC 333 | |||
|Picture=20cfd30e10c772ea31ace5881e51c2aa.jpg | |||
|Omschrijving=Lichtkrant voor het restaurant | |||
|Status= Completed | |||
}} | |Contact=Sebastius | ||
}} | |||
==Inleiding== | |||
De Sigma ASC 333 die op de gratis weggeeftafel lag is door [[benadski]] gerepareerd. De voeding is zo aangepast dat deze ook op gelijkstroom kan werken, en is dus meteen geschikt gemaakt voor zijn [http://altpwr.net/ ALTPWR 42V gelijkstroomnet]. | |||
Hierna heeft Sebastius de lichtkrant verder in onderzoek genomen om het ding makkelijk over MQTT te voorzien van informatie. | |||
[[File: | ==Huidige staat== | ||
9 oktober 2016 - MQTT werkt, NTP werkt. Lichtkrant start en laat nu de 24uurs-klok zien in drie kleuren. Voeding netter gemaakt (Wago-klemmen zijn weg). | |||
September 2016 - Spaceloop bordje geschikt gemaakt (twee weerstandjes erbij gehackt, 5v regulator gebypasst). Protocol uitgelezen met hulp van antieke PC. | |||
23 oktober 2016 - Als klok neergezet in restaurant. Momenteel weinig zin om verder met de code te gaan. | |||
==Plan== | |||
Een ESP aan MQTT moet dit ding gaan voeden met teksten. Daarna mag hij in het restaurant voor allerhande informatievoorzieningen. | |||
==Reverse Engineering== | |||
De software draait niet op moderne systemen. Hierom is een oud beestje van stal gehaald om het protocol (zie onder) te achterhalen: | |||
[[File:Lichtkrant_IMG_2340.JPG|300px]] [[File:Lichtkrant_IMG_2341.JPG|300px]] | |||
Toegevoegd nog om het feest compleet te maken: een ESP (met een MAX232 bordje op een soft-serial pin) die het signaal van de PC ontvangt, inverteert en in een leesbaar formaat weer naar de reguliere USB-serial overzet. | |||
==Hardware== | |||
[[File:Lichtkrant_IMG_2338.JPG|300px]] | |||
Dit was de eerste 'level shifter'. Een transistor en twee weerstanden aan elkaar gehackt met WAGO klemmen. | |||
[[File:Lichtkrang_IMG_2342.JPG|300px]] | |||
Nu is er een licht aangepast SpaceLoop 3 bordje. De lichtkrant voedt de ESP via de terminal-kabel (5v, GND, RX zijn aangesloten). Vier modificaties: | |||
* Buzzer NPN transistor ESP-basisweerstand is nu 10k | |||
* Pullup 300ohm tussen 5v en de collector van de Buzzer NPN (er past precies een 0805 SMD weerstand tussen de pinnetjes van de RJ45 | |||
* 5v regulator weggelaten en de 5v met de VCC lijn verbonden | |||
* Dikke condensator (100uF) op de VCC rails, in plaats van de printkroonsteen aldaar. | |||
==Informatie over de Sigma ASC 333== | |||
Manual / software: [http://elektrotanya.com/sigma_asc_333,as226_fenyujsag_software.zip/download.html] | |||
Prococol: [http://www.hetlab.tk/artikelen/lichtkrant-protocol] | |||
[[Media:Lichtkrant_protocol.pdf]] Bovenstaande website als PDF aangezien hij vaak niet bereikbaar is. | |||
==Protocol== | |||
Een heleboel nageplozen en uitgevogeld hoe het werkt | |||
'''Sync''' | |||
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, | |||
'''Tekstoverdracht starten''' | |||
0xBB, | |||
'''Programmakeuze''' | |||
0xAF, 0x41, | |||
Parameter is de letter A (0x41) voor programma A (A-Z is beschikbaar, alleen A kan GoSubs doen) | |||
'''Einde tekstoverdracht''' | |||
0xBF, 0xB1, | |||
dit stuur je als laatste mee om de boel af te sluiten. | |||
'''Letters oversturen''' | |||
kleur, letter | |||
0x01 = zwarte achtergrond, rode letter | |||
Letter gewoon in Ascii | |||
'''Spatie / dubbele punt''' | |||
Deze moet je omwisselen, dus spatie geeft een dubbelepunt, en andersom | |||
'''Custom Char aanvragen''' | |||
Kleur zit IN het character, is dus niet on the fly te wisselen | |||
0x10, 0x0, | |||
0x10, 0x8, | |||
0x10, 0x10 | |||
2e is de code uit de tabel (zie onder) | |||
'''Speed''' | |||
0xA0, 0x31, | |||
0xA0, 0x32, | |||
0xA0, 0x38, | |||
0xA0, 0x39, | |||
0xA0 is commando, daarna in Ascii de waarde 1-9 | |||
'''Wait''' | |||
0xA1, 0x31, | |||
0xA1, 0x32, | |||
0xA1, 0x38, | |||
0xA1, 0x39, | |||
0xA1 is commando, daarna in Ascii de waarde 1-9 | |||
'''Gosub''' | |||
0xA2, 0x42, | |||
0xA2 = GoSub | |||
0x42 = B (programma B) | |||
'''Klok''' | |||
Klok blijft 3 seconden in beeld bij een aanroep | |||
24uursklok rood | |||
0x8F, 0x05, | |||
24uursklok groen | |||
0x8F, 0x06, | |||
24uursklok geel | |||
0x8F, 0x07, | |||
12uurs klok rood | |||
0x8F, 0x01, | |||
12uurs klok groen | |||
0x8F, 0x02, | |||
12uurs klok geel | |||
0x8F, 0x03, | |||
'''Left''' | |||
0x80, 0x02, | |||
'''Right''' | |||
0x81, 0x02, | |||
'''Up''' | |||
0x82, 0x02, | |||
'''Down''' | |||
0x83, 0x02, | |||
'''Open <>''' | |||
0x84, 0x02, | |||
'''Closed ><''' | |||
0x85, 0x02, | |||
'''Open>''' | |||
0x86, 0x02, | |||
'''Close> (haalt tekst weg, dus na tekst plaatsen)''' | |||
0x87, 0x02, | |||
'''Brede letters''' | |||
Ascii code +128 (dec) / +80 (hex) | |||
'''Tijd instellen''' | |||
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, '''0xBE, 0x33''', | |||
0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, | |||
yy/mm/dd hh:mm:ss | |||
'''0xBF, 0xB1''', | |||
'''Custom Font Tabel''' | |||
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, '''0xBD''', | |||
eerste byte is letternummer, 6 bytes voor rood, 6 bytes voor groen, | |||
verticaal van onder naar boven geteld, eerste bit 0 laten, MSB onderaan | |||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, | |||
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x8, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xC, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xD, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x10, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, | |||
0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x15, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x1A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x1B, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x1C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x1D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x1E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x25, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x27, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2B, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0x2F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | |||
0xBF, '''0xB3''', |
Latest revision as of 14:04, 23 October 2016
Project Lichtkrant Sigma ASC 333 | |
---|---|
Lichtkrant voor het restaurant | |
Status | Completed |
Contact | Sebastius |
Last Update | 2016-10-23 |
Inleiding
De Sigma ASC 333 die op de gratis weggeeftafel lag is door benadski gerepareerd. De voeding is zo aangepast dat deze ook op gelijkstroom kan werken, en is dus meteen geschikt gemaakt voor zijn ALTPWR 42V gelijkstroomnet.
Hierna heeft Sebastius de lichtkrant verder in onderzoek genomen om het ding makkelijk over MQTT te voorzien van informatie.
Huidige staat
9 oktober 2016 - MQTT werkt, NTP werkt. Lichtkrant start en laat nu de 24uurs-klok zien in drie kleuren. Voeding netter gemaakt (Wago-klemmen zijn weg). September 2016 - Spaceloop bordje geschikt gemaakt (twee weerstandjes erbij gehackt, 5v regulator gebypasst). Protocol uitgelezen met hulp van antieke PC.
23 oktober 2016 - Als klok neergezet in restaurant. Momenteel weinig zin om verder met de code te gaan.
Plan
Een ESP aan MQTT moet dit ding gaan voeden met teksten. Daarna mag hij in het restaurant voor allerhande informatievoorzieningen.
Reverse Engineering
De software draait niet op moderne systemen. Hierom is een oud beestje van stal gehaald om het protocol (zie onder) te achterhalen:
Toegevoegd nog om het feest compleet te maken: een ESP (met een MAX232 bordje op een soft-serial pin) die het signaal van de PC ontvangt, inverteert en in een leesbaar formaat weer naar de reguliere USB-serial overzet.
Hardware
Dit was de eerste 'level shifter'. Een transistor en twee weerstanden aan elkaar gehackt met WAGO klemmen.
Nu is er een licht aangepast SpaceLoop 3 bordje. De lichtkrant voedt de ESP via de terminal-kabel (5v, GND, RX zijn aangesloten). Vier modificaties:
- Buzzer NPN transistor ESP-basisweerstand is nu 10k
- Pullup 300ohm tussen 5v en de collector van de Buzzer NPN (er past precies een 0805 SMD weerstand tussen de pinnetjes van de RJ45
- 5v regulator weggelaten en de 5v met de VCC lijn verbonden
- Dikke condensator (100uF) op de VCC rails, in plaats van de printkroonsteen aldaar.
Informatie over de Sigma ASC 333
Manual / software: [1]
Prococol: [2]
Media:Lichtkrant_protocol.pdf Bovenstaande website als PDF aangezien hij vaak niet bereikbaar is.
Protocol
Een heleboel nageplozen en uitgevogeld hoe het werkt
Sync 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, Tekstoverdracht starten 0xBB, Programmakeuze 0xAF, 0x41, Parameter is de letter A (0x41) voor programma A (A-Z is beschikbaar, alleen A kan GoSubs doen) Einde tekstoverdracht 0xBF, 0xB1, dit stuur je als laatste mee om de boel af te sluiten. Letters oversturen kleur, letter 0x01 = zwarte achtergrond, rode letter Letter gewoon in Ascii Spatie / dubbele punt Deze moet je omwisselen, dus spatie geeft een dubbelepunt, en andersom Custom Char aanvragen Kleur zit IN het character, is dus niet on the fly te wisselen 0x10, 0x0, 0x10, 0x8, 0x10, 0x10 2e is de code uit de tabel (zie onder) Speed 0xA0, 0x31, 0xA0, 0x32, 0xA0, 0x38, 0xA0, 0x39, 0xA0 is commando, daarna in Ascii de waarde 1-9 Wait 0xA1, 0x31, 0xA1, 0x32, 0xA1, 0x38, 0xA1, 0x39, 0xA1 is commando, daarna in Ascii de waarde 1-9 Gosub 0xA2, 0x42, 0xA2 = GoSub 0x42 = B (programma B) Klok Klok blijft 3 seconden in beeld bij een aanroep 24uursklok rood 0x8F, 0x05, 24uursklok groen 0x8F, 0x06, 24uursklok geel 0x8F, 0x07, 12uurs klok rood 0x8F, 0x01, 12uurs klok groen 0x8F, 0x02, 12uurs klok geel 0x8F, 0x03, Left 0x80, 0x02, Right 0x81, 0x02, Up 0x82, 0x02, Down 0x83, 0x02, Open <> 0x84, 0x02, Closed >< 0x85, 0x02, Open> 0x86, 0x02, Close> (haalt tekst weg, dus na tekst plaatsen) 0x87, 0x02, Brede letters Ascii code +128 (dec) / +80 (hex) Tijd instellen 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBE, 0x33, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, yy/mm/dd hh:mm:ss 0xBF, 0xB1, Custom Font Tabel 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBD, eerste byte is letternummer, 6 bytes voor rood, 6 bytes voor groen, verticaal van onder naar boven geteld, eerste bit 0 laten, MSB onderaan 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x7F, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1B, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x25, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x27, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2B, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xBF, 0xB3,