Skip to content

Commit 173747b

Browse files
committed
set_info, group_info, local_text
create <MISSING TEXT> fallback at local text 0 add TODO to every core stub that is unwritten rename prop_song to songprop, add "exists" for convenience rename NSFPD_LIST to NSFPD_LIST_TEXT to make it easier to understand fix local_text offset by making their enums directly reference the locale table instead (allows info and other access)
1 parent aa32e81 commit 173747b

File tree

7 files changed

+239
-147
lines changed

7 files changed

+239
-147
lines changed

core/core.cpp

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,35 @@ sint32 NSFCore::group_enum(const char* key, int len)
313313
return -1;
314314
}
315315

316+
NSFSetInfo NSFCore::set_info(sint32 setenum) const
317+
{
318+
NSFSetInfo info = {0}; info.group = -1;
319+
if (setenum < 0 || setenum > NSFP_SET_COUNT) return info;
320+
const NSFSetData& SD = NSFPD_SET[setenum];
321+
info.group = SD.group;
322+
info.key = SD.key;
323+
info.name = local_text(SD.text+0);
324+
info.desc = local_text(SD.text+1);
325+
info.is_string = (SD.default_str != NULL);
326+
info.default_int = SD.default_int;
327+
info.min_int = SD.min_int;
328+
info.max_int = SD.max_int;
329+
info.list = (SD.list >= 0) ? (local_text(NSFPD_LIST_TEXT[SD.list])) : NULL;
330+
info.default_str = SD.default_str;
331+
return info;
332+
}
333+
334+
NSFSetGroupInfo NSFCore::group_info(sint32 group) const
335+
{
336+
NSFSetGroupInfo info = {0};
337+
if (group < 0 || group > NSFP_GROUP_COUNT) return info;
338+
const NSFSetGroupData& GD = NSFPD_GROUP[group];
339+
info.key = GD.key;
340+
info.name = local_text(GD.text+0);
341+
info.desc = local_text(GD.text+1);
342+
return info;
343+
}
344+
316345
const char* NSFCore::ini_line(sint32 setenum) const
317346
{
318347
if (setenum < 0 || setenum >= NSFP_SET_COUNT) return "";
@@ -397,6 +426,10 @@ const char* NSFCore::local_text(sint32 textenum) const
397426
const char* NSFCore::local_text(sint32 textenum, sint32 locale)
398427
{
399428
if (locale < 0 || locale >= NSFP_LOCALE_COUNT || textenum < 0 || textenum >= NSFP_TEXT_COUNT)
400-
return "<MISSING TEXT>";
401-
return (const char*)(NSFPD_LOCAL_TEXT_DATA + NSFPD_LOCAL_TEXT[locale][textenum+NSFP_TEXT_INDEX]);
429+
{
430+
// text 0 is a default <MISSING TEXT> value
431+
locale = 0;
432+
textenum = 0;
433+
}
434+
return (const char*)(NSFPD_LOCAL_TEXT_DATA + NSFPD_LOCAL_TEXT[locale][textenum]);
402435
}

core/core.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ typedef struct NSFCore_
6161

6262
static sint32 set_enum(const char* key, int len=-1); // len truncates, len<0 uses strlen
6363
static sint32 group_enum(const char* key, int len=-1);
64+
NSFSetInfo set_info(sint32 setenum) const;
65+
NSFSetGroupInfo group_info(sint32 group) const;
6466
const char* ini_line(sint32 setenum) const;
6567
bool parse_ini_line(const char* line, int len, int linenum); // used by set_ini
6668

67-
// TODO after changing settings, they need to be applied at some point, some might be immediate
68-
6969
const char* local_text(sint32 textenum) const; // NSFP_TEXT_x for curent locale
7070
static const char* local_text(sint32 textenum, sint32 locale); // NSFP_TEXT_x for specific locale
7171

core/enums_data.h

Lines changed: 75 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
#pragma once
22
// generated by nsfplayenums.py
3-
// 2024-04-21 23:02:38
3+
// 2024-04-22 00:45:03
44

55
#include "../include/nsfplayenums.h"
66

7-
const int32_t NSFPD_LIST[NSFP_LIST_COUNT] = {
8-
0, 1,
7+
const int32_t NSFPD_LIST_TEXT[NSFP_LIST_COUNT] = {
8+
1, 2,
99
};
1010

1111
typedef struct {
1212
const char* key;
1313
int32_t text;
1414
} NSFSetGroupData;
1515
const NSFSetGroupData NSFPD_GROUP[NSFP_GROUP_COUNT] = {
16-
{ "MAIN", 2 },
17-
{ "APU0", 4 },
18-
{ "APU1", 6 },
16+
{ "MAIN", 3 },
17+
{ "APU0", 5 },
18+
{ "APU1", 7 },
1919
};
2020

2121
typedef struct {
2222
const char* key;
2323
int32_t unit, text;
2424
} NSFChannelData;
2525
const NSFChannelData NSFPD_CHANNEL[NSFP_CHANNEL_COUNT] = {
26-
{ "SQU0", 0, 8 },
27-
{ "SQU1", 0, 9 },
28-
{ "TRI", 1, 10 },
29-
{ "NSE", 1, 11 },
30-
{ "DPCM", 1, 12 },
26+
{ "SQU0", 0, 9 },
27+
{ "SQU1", 0, 10 },
28+
{ "TRI", 1, 11 },
29+
{ "NSE", 1, 12 },
30+
{ "DPCM", 1, 13 },
3131
};
3232

3333
typedef struct {
@@ -37,91 +37,92 @@ typedef struct {
3737
const char* default_str;
3838
} NSFSetData;
3939
const NSFSetData NSFPD_SET[NSFP_SET_COUNT] = {
40-
{ "VOLUME", 0, 13, 500, 0, 1000, -1,NULL },
41-
{ "SAMPLERATE", 0, 15, 48000, 1000,4000000, -1,NULL },
42-
{ "STEREO", 0, 17, 1, 0, 1, 0,NULL },
43-
{ "TITLE_FORMAT", 0, 19, 0, 0, 0, -1,"%L (%n/%e) %T - %A" },
44-
{ "LOCALE", 0, 21, 0, 0, 1, 1,NULL },
45-
{ "SQU0_ON", 1, 23, 1, 0, 1, 0,NULL },
46-
{ "SQU0_VOL", 1, 25, 500, 0, 1000, -1,NULL },
47-
{ "SQU0_PAN", 1, 27, 500, 0, 1000, -1,NULL },
48-
{ "SQU1_ON", 1, 29, 1, 0, 1, 0,NULL },
49-
{ "SQU1_VOL", 1, 31, 500, 0, 1000, -1,NULL },
50-
{ "SQU1_PAN", 1, 33, 500, 0, 1000, -1,NULL },
51-
{ "TRI_ON", 2, 35, 1, 0, 1, 0,NULL },
52-
{ "TRI_VOL", 2, 37, 500, 0, 1000, -1,NULL },
53-
{ "TRI_PAN", 2, 39, 500, 0, 1000, -1,NULL },
54-
{ "NSE_ON", 2, 41, 1, 0, 1, 0,NULL },
55-
{ "NSE_VOL", 2, 43, 500, 0, 1000, -1,NULL },
56-
{ "NSE_PAN", 2, 45, 500, 0, 1000, -1,NULL },
57-
{ "DPCM_ON", 2, 47, 1, 0, 1, 0,NULL },
58-
{ "DPCM_VOL", 2, 49, 500, 0, 1000, -1,NULL },
59-
{ "DPCM_PAN", 2, 51, 500, 0, 1000, -1,NULL },
40+
{ "VOLUME", 0, 14, 500, 0, 1000, -1,NULL },
41+
{ "SAMPLERATE", 0, 16, 48000, 1000,4000000, -1,NULL },
42+
{ "STEREO", 0, 18, 1, 0, 1, 0,NULL },
43+
{ "TITLE_FORMAT", 0, 20, 0, 0, 0, -1,"%L (%n/%e) %T - %A" },
44+
{ "LOCALE", 0, 22, 0, 0, 1, 1,NULL },
45+
{ "SQU0_ON", 1, 24, 1, 0, 1, 0,NULL },
46+
{ "SQU0_VOL", 1, 26, 500, 0, 1000, -1,NULL },
47+
{ "SQU0_PAN", 1, 28, 500, 0, 1000, -1,NULL },
48+
{ "SQU1_ON", 1, 30, 1, 0, 1, 0,NULL },
49+
{ "SQU1_VOL", 1, 32, 500, 0, 1000, -1,NULL },
50+
{ "SQU1_PAN", 1, 34, 500, 0, 1000, -1,NULL },
51+
{ "TRI_ON", 2, 36, 1, 0, 1, 0,NULL },
52+
{ "TRI_VOL", 2, 38, 500, 0, 1000, -1,NULL },
53+
{ "TRI_PAN", 2, 40, 500, 0, 1000, -1,NULL },
54+
{ "NSE_ON", 2, 42, 1, 0, 1, 0,NULL },
55+
{ "NSE_VOL", 2, 44, 500, 0, 1000, -1,NULL },
56+
{ "NSE_PAN", 2, 46, 500, 0, 1000, -1,NULL },
57+
{ "DPCM_ON", 2, 48, 1, 0, 1, 0,NULL },
58+
{ "DPCM_VOL", 2, 50, 500, 0, 1000, -1,NULL },
59+
{ "DPCM_PAN", 2, 52, 500, 0, 1000, -1,NULL },
6060
};
6161

6262
typedef struct {
6363
const char* key;
6464
int32_t type, text;
6565
} NSFPropData;
6666
const NSFPropData NSFPD_PROP[NSFP_PROP_COUNT] = {
67-
{ "SONGCOUNT",1, 53 },
68-
{ "LONG",2, 54 },
69-
{ "TITLE",3, 55 },
70-
{ "INFO",4, 56 },
71-
{ "BLOB",5, 57 },
67+
{ "SONGCOUNT",1, 54 },
68+
{ "LONG",2, 55 },
69+
{ "TITLE",3, 56 },
70+
{ "INFO",4, 57 },
71+
{ "BLOB",5, 58 },
7272
};
7373

7474
typedef struct {
7575
const char* key;
7676
int32_t type, text;
7777
} NSFSongPropData;
7878
const NSFSongPropData NSFPD_SONGPROP[NSFP_SONGPROP_COUNT] = {
79-
{ "INT",1, 58 },
80-
{ "SONGTEST",1, 59 },
81-
{ "LONG",2, 60 },
82-
{ "TITLE",3, 61 },
83-
{ "INFO",4, 62 },
84-
{ "BLOB",5, 63 },
79+
{ "INT",1, 59 },
80+
{ "SONGTEST",1, 60 },
81+
{ "LONG",2, 61 },
82+
{ "TITLE",3, 62 },
83+
{ "INFO",4, 63 },
84+
{ "BLOB",5, 64 },
8585
};
8686

87-
const int32_t NSFPD_LOCAL_TEXT[NSFP_LOCALE_COUNT][72] = {
87+
const int32_t NSFPD_LOCAL_TEXT[NSFP_LOCALE_COUNT][73] = {
8888
{
89-
0x000000,0x000008,0x00001B,0x000020,0x00002E,0x000033,0x00002E,0x00002E,0x000057,0x00005C,0x000061,0x000065,0x000069,0x00006E,0x000075,0x00007C,
90-
0x000087,0x000092,0x000099,0x0000A0,0x0000AD,0x0000C3,0x0000C3,0x0000CA,0x0000CA,0x0000CA,0x0000CA,0x0000CA,0x0000CA,0x0000D1,0x0000D1,0x0000D1,
91-
0x0000D1,0x0000D1,0x0000D1,0x0000D8,0x0000D8,0x0000D8,0x0000D8,0x0000D8,0x0000D8,0x0000DE,0x0000DE,0x0000DE,0x0000DE,0x0000DE,0x0000DE,0x0000E4,
92-
0x0000E4,0x0000E4,0x0000E4,0x0000E4,0x0000E4,0x0000EB,0x0000F6,0x0000FB,0x000101,0x000106,0x00010B,0x00010F,0x0000F6,0x000119,0x000101,0x000106,
93-
0x000124,0x000136,0x000158,0x00017A,0x0001AE,0x0001DA,0x000208,0x000238,
89+
0x000000,0x00000F,0x000017,0x00002A,0x00002F,0x00003D,0x000042,0x00003D,0x00003D,0x000066,0x00006B,0x000070,0x000074,0x000078,0x00007D,0x000084,
90+
0x00008B,0x000096,0x0000A1,0x0000A8,0x0000AF,0x0000BC,0x0000D2,0x0000D2,0x0000D9,0x0000D9,0x0000D9,0x0000D9,0x0000D9,0x0000D9,0x0000E0,0x0000E0,
91+
0x0000E0,0x0000E0,0x0000E0,0x0000E0,0x0000E7,0x0000E7,0x0000E7,0x0000E7,0x0000E7,0x0000E7,0x0000ED,0x0000ED,0x0000ED,0x0000ED,0x0000ED,0x0000ED,
92+
0x0000F3,0x0000F3,0x0000F3,0x0000F3,0x0000F3,0x0000F3,0x0000FA,0x000105,0x00010A,0x000110,0x000115,0x00011A,0x00011E,0x000105,0x000128,0x000110,
93+
0x000115,0x000133,0x000145,0x000167,0x000189,0x0001BD,0x0001E9,0x000217,0x000247,
9494
},
9595
{
96-
0x000000,0x000008,0x00001B,0x000020,0x00002E,0x000033,0x00002E,0x00002E,0x000057,0x00005C,0x000061,0x000065,0x000069,0x00006E,0x000075,0x00007C,
97-
0x000087,0x000092,0x000099,0x0000A0,0x0000AD,0x0000C3,0x0000C3,0x0000CA,0x0000CA,0x0000CA,0x0000CA,0x0000CA,0x0000CA,0x0000D1,0x0000D1,0x0000D1,
98-
0x0000D1,0x0000D1,0x0000D1,0x0000D8,0x0000D8,0x0000D8,0x0000D8,0x0000D8,0x0000D8,0x0000DE,0x0000DE,0x0000DE,0x0000DE,0x0000DE,0x0000DE,0x0000E4,
99-
0x0000E4,0x0000E4,0x0000E4,0x0000E4,0x0000E4,0x0000EB,0x0000F6,0x0000FB,0x000101,0x000106,0x00010B,0x00010F,0x0000F6,0x000119,0x000101,0x000106,
100-
0x00012E,0x000146,0x00016B,0x00019B,0x0001C6,0x0001F6,0x000226,0x000265,
96+
0x000000,0x00000F,0x000017,0x00002A,0x00002F,0x00003D,0x000042,0x00003D,0x00003D,0x000066,0x00006B,0x000070,0x000074,0x000078,0x00007D,0x000084,
97+
0x00008B,0x000096,0x0000A1,0x0000A8,0x0000AF,0x0000BC,0x0000D2,0x0000D2,0x0000D9,0x0000D9,0x0000D9,0x0000D9,0x0000D9,0x0000D9,0x0000E0,0x0000E0,
98+
0x0000E0,0x0000E0,0x0000E0,0x0000E0,0x0000E7,0x0000E7,0x0000E7,0x0000E7,0x0000E7,0x0000E7,0x0000ED,0x0000ED,0x0000ED,0x0000ED,0x0000ED,0x0000ED,
99+
0x0000F3,0x0000F3,0x0000F3,0x0000F3,0x0000F3,0x0000F3,0x0000FA,0x000105,0x00010A,0x000110,0x000115,0x00011A,0x00011E,0x000105,0x000128,0x000110,
100+
0x000115,0x00013D,0x000155,0x00017A,0x0001AA,0x0001D5,0x000205,0x000235,0x000274,
101101
},
102102
};
103103

104-
const uint8_t NSFPD_LOCAL_TEXT_DATA[0x000279] = {
105-
0x4F,0x66,0x66,0x00,0x4F,0x6E,0x00,0x00,0x45,0x6E,0x67,0x6C,0x69,0x73,0x68,0x00,0xE6,0x97,0xA5,0xE6,0x9C,0xAC,0xE8,0xAA,0x9E,0x00,0x00,0x4D,0x61,0x69,0x6E,0x00,
106-
0x4D,0x61,0x69,0x6E,0x20,0x53,0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x00,0x41,0x50,0x55,0x31,0x00,0x42,0x75,0x69,0x6C,0x74,0x2D,0x69,0x6E,0x20,0x74,0x72,0x69,0x61,
107-
0x6E,0x67,0x6C,0x65,0x2C,0x20,0x6E,0x6F,0x69,0x73,0x65,0x2C,0x20,0x61,0x6E,0x64,0x20,0x44,0x50,0x43,0x4D,0x2E,0x00,0x53,0x51,0x55,0x30,0x00,0x53,0x51,0x55,0x31,
108-
0x00,0x54,0x52,0x49,0x00,0x4E,0x53,0x45,0x00,0x44,0x50,0x43,0x4D,0x00,0x56,0x4F,0x4C,0x55,0x4D,0x45,0x00,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x53,0x41,0x4D,0x50,
109-
0x4C,0x45,0x52,0x41,0x54,0x45,0x00,0x53,0x61,0x6D,0x70,0x6C,0x65,0x72,0x61,0x74,0x65,0x00,0x53,0x54,0x45,0x52,0x45,0x4F,0x00,0x53,0x74,0x65,0x72,0x65,0x6F,0x00,
110-
0x54,0x49,0x54,0x4C,0x45,0x5F,0x46,0x4F,0x52,0x4D,0x41,0x54,0x00,0x4E,0x53,0x46,0x20,0x73,0x6F,0x6E,0x67,0x20,0x74,0x69,0x74,0x6C,0x65,0x20,0x66,0x6F,0x72,0x6D,
111-
0x61,0x74,0x00,0x4C,0x4F,0x43,0x41,0x4C,0x45,0x00,0x53,0x51,0x55,0x30,0x4F,0x4E,0x00,0x53,0x51,0x55,0x31,0x4F,0x4E,0x00,0x54,0x52,0x49,0x4F,0x4E,0x00,0x4E,0x53,
112-
0x45,0x4F,0x4E,0x00,0x44,0x50,0x43,0x4D,0x4F,0x4E,0x00,0x53,0x6F,0x6E,0x67,0x20,0x63,0x6F,0x75,0x6E,0x74,0x00,0x4C,0x4F,0x4E,0x47,0x00,0x54,0x49,0x54,0x4C,0x45,
113-
0x00,0x49,0x4E,0x46,0x4F,0x00,0x42,0x4C,0x4F,0x42,0x00,0x49,0x4E,0x54,0x00,0x53,0x6F,0x6E,0x67,0x20,0x74,0x65,0x73,0x74,0x00,0x53,0x6F,0x6E,0x67,0x20,0x74,0x69,
114-
0x74,0x6C,0x65,0x00,0x54,0x65,0x73,0x74,0x20,0x54,0x65,0x78,0x74,0x00,0x67,0x6F,0x6F,0x64,0x62,0x79,0x65,0x00,0x49,0x6E,0x76,0x61,0x6C,0x69,0x64,0x20,0x73,0x65,
115-
0x74,0x74,0x69,0x6E,0x67,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x53,0x45,0x54,0x5F,0x49,0x4E,0x56,0x41,0x4C,0x49,0x44,0x00,0x57,0x72,0x6F,0x6E,0x67,0x20,0x73,0x65,
116-
0x74,0x74,0x69,0x6E,0x67,0x20,0x74,0x79,0x70,0x65,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x53,0x45,0x54,0x5F,0x54,0x59,0x50,0x45,0x00,0x53,0x65,0x74,0x74,0x69,0x6E,
117-
0x67,0x20,0x6F,0x75,0x74,0x20,0x6F,0x66,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x20,0x25,0x64,0x20,0x28,0x25,0x64,0x2D,0x25,0x64,0x29,0x00,0x45,0x52,0x52,0x4F,0x52,
118-
0x5F,0x53,0x45,0x54,0x49,0x4E,0x54,0x5F,0x52,0x41,0x4E,0x47,0x45,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,0x6E,0x65,0x20,0x25,0x64,0x20,0x6D,0x69,0x73,0x73,0x69,0x6E,
119-
0x67,0x20,0x27,0x3D,0x27,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x4E,0x4F,0x5F,0x45,0x51,0x55,0x41,0x4C,0x53,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,
120-
0x6E,0x65,0x20,0x25,0x64,0x20,0x75,0x6E,0x6B,0x6E,0x6F,0x77,0x6E,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,
121-
0x42,0x41,0x44,0x5F,0x4B,0x45,0x59,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,0x6E,0x65,0x20,0x25,0x64,0x20,0x62,0x61,0x64,0x20,0x69,0x6E,0x74,0x65,0x67,0x65,0x72,0x20,
122-
0x76,0x61,0x6C,0x75,0x65,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x42,0x41,0x44,0x5F,0x49,0x4E,0x54,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,0x6E,0x65,
123-
0x20,0x25,0x64,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x6F,0x75,0x74,0x20,0x6F,0x66,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x20,0x25,0x64,0x20,0x28,0x25,0x64,
124-
0x2D,0x25,0x64,0x29,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x42,0x41,0x44,0x5F,0x52,0x41,0x4E,0x47,0x45,0x00,
104+
const uint8_t NSFPD_LOCAL_TEXT_DATA[0x000288] = {
105+
0x3C,0x4D,0x49,0x53,0x53,0x49,0x4E,0x47,0x20,0x54,0x45,0x58,0x54,0x3E,0x00,0x4F,0x66,0x66,0x00,0x4F,0x6E,0x00,0x00,0x45,0x6E,0x67,0x6C,0x69,0x73,0x68,0x00,0xE6,
106+
0x97,0xA5,0xE6,0x9C,0xAC,0xE8,0xAA,0x9E,0x00,0x00,0x4D,0x61,0x69,0x6E,0x00,0x4D,0x61,0x69,0x6E,0x20,0x53,0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x00,0x41,0x50,0x55,
107+
0x31,0x00,0x42,0x75,0x69,0x6C,0x74,0x2D,0x69,0x6E,0x20,0x74,0x72,0x69,0x61,0x6E,0x67,0x6C,0x65,0x2C,0x20,0x6E,0x6F,0x69,0x73,0x65,0x2C,0x20,0x61,0x6E,0x64,0x20,
108+
0x44,0x50,0x43,0x4D,0x2E,0x00,0x53,0x51,0x55,0x30,0x00,0x53,0x51,0x55,0x31,0x00,0x54,0x52,0x49,0x00,0x4E,0x53,0x45,0x00,0x44,0x50,0x43,0x4D,0x00,0x56,0x4F,0x4C,
109+
0x55,0x4D,0x45,0x00,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x53,0x41,0x4D,0x50,0x4C,0x45,0x52,0x41,0x54,0x45,0x00,0x53,0x61,0x6D,0x70,0x6C,0x65,0x72,0x61,0x74,0x65,
110+
0x00,0x53,0x54,0x45,0x52,0x45,0x4F,0x00,0x53,0x74,0x65,0x72,0x65,0x6F,0x00,0x54,0x49,0x54,0x4C,0x45,0x5F,0x46,0x4F,0x52,0x4D,0x41,0x54,0x00,0x4E,0x53,0x46,0x20,
111+
0x73,0x6F,0x6E,0x67,0x20,0x74,0x69,0x74,0x6C,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x00,0x4C,0x4F,0x43,0x41,0x4C,0x45,0x00,0x53,0x51,0x55,0x30,0x4F,0x4E,0x00,
112+
0x53,0x51,0x55,0x31,0x4F,0x4E,0x00,0x54,0x52,0x49,0x4F,0x4E,0x00,0x4E,0x53,0x45,0x4F,0x4E,0x00,0x44,0x50,0x43,0x4D,0x4F,0x4E,0x00,0x53,0x6F,0x6E,0x67,0x20,0x63,
113+
0x6F,0x75,0x6E,0x74,0x00,0x4C,0x4F,0x4E,0x47,0x00,0x54,0x49,0x54,0x4C,0x45,0x00,0x49,0x4E,0x46,0x4F,0x00,0x42,0x4C,0x4F,0x42,0x00,0x49,0x4E,0x54,0x00,0x53,0x6F,
114+
0x6E,0x67,0x20,0x74,0x65,0x73,0x74,0x00,0x53,0x6F,0x6E,0x67,0x20,0x74,0x69,0x74,0x6C,0x65,0x00,0x54,0x65,0x73,0x74,0x20,0x54,0x65,0x78,0x74,0x00,0x67,0x6F,0x6F,
115+
0x64,0x62,0x79,0x65,0x00,0x49,0x6E,0x76,0x61,0x6C,0x69,0x64,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x53,0x45,0x54,0x5F,0x49,
116+
0x4E,0x56,0x41,0x4C,0x49,0x44,0x00,0x57,0x72,0x6F,0x6E,0x67,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x74,0x79,0x70,0x65,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,
117+
0x53,0x45,0x54,0x5F,0x54,0x59,0x50,0x45,0x00,0x53,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x6F,0x75,0x74,0x20,0x6F,0x66,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x20,0x25,
118+
0x64,0x20,0x28,0x25,0x64,0x2D,0x25,0x64,0x29,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x53,0x45,0x54,0x49,0x4E,0x54,0x5F,0x52,0x41,0x4E,0x47,0x45,0x00,0x49,0x4E,0x49,
119+
0x20,0x6C,0x69,0x6E,0x65,0x20,0x25,0x64,0x20,0x6D,0x69,0x73,0x73,0x69,0x6E,0x67,0x20,0x27,0x3D,0x27,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x4E,
120+
0x4F,0x5F,0x45,0x51,0x55,0x41,0x4C,0x53,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,0x6E,0x65,0x20,0x25,0x64,0x20,0x75,0x6E,0x6B,0x6E,0x6F,0x77,0x6E,0x20,0x73,0x65,0x74,
121+
0x74,0x69,0x6E,0x67,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x42,0x41,0x44,0x5F,0x4B,0x45,0x59,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,0x6E,0x65,0x20,
122+
0x25,0x64,0x20,0x62,0x61,0x64,0x20,0x69,0x6E,0x74,0x65,0x67,0x65,0x72,0x20,0x76,0x61,0x6C,0x75,0x65,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x42,
123+
0x41,0x44,0x5F,0x49,0x4E,0x54,0x00,0x49,0x4E,0x49,0x20,0x6C,0x69,0x6E,0x65,0x20,0x25,0x64,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x6F,0x75,0x74,0x20,0x6F,
124+
0x66,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x20,0x25,0x64,0x20,0x28,0x25,0x64,0x2D,0x25,0x64,0x29,0x00,0x45,0x52,0x52,0x4F,0x52,0x5F,0x49,0x4E,0x49,0x5F,0x42,0x41,
125+
0x44,0x5F,0x52,0x41,0x4E,0x47,0x45,0x00,
125126
};
126127

127128
// end of file

0 commit comments

Comments
 (0)