Skip to content

Commit

Permalink
set_info, group_info, local_text
Browse files Browse the repository at this point in the history
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)
  • Loading branch information
bbbradsmith committed Apr 22, 2024
1 parent aa32e81 commit 173747b
Show file tree
Hide file tree
Showing 7 changed files with 239 additions and 147 deletions.
37 changes: 35 additions & 2 deletions core/core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,35 @@ sint32 NSFCore::group_enum(const char* key, int len)
return -1;
}

NSFSetInfo NSFCore::set_info(sint32 setenum) const
{
NSFSetInfo info = {0}; info.group = -1;
if (setenum < 0 || setenum > NSFP_SET_COUNT) return info;
const NSFSetData& SD = NSFPD_SET[setenum];
info.group = SD.group;
info.key = SD.key;
info.name = local_text(SD.text+0);
info.desc = local_text(SD.text+1);
info.is_string = (SD.default_str != NULL);
info.default_int = SD.default_int;
info.min_int = SD.min_int;
info.max_int = SD.max_int;
info.list = (SD.list >= 0) ? (local_text(NSFPD_LIST_TEXT[SD.list])) : NULL;
info.default_str = SD.default_str;
return info;
}

NSFSetGroupInfo NSFCore::group_info(sint32 group) const
{
NSFSetGroupInfo info = {0};
if (group < 0 || group > NSFP_GROUP_COUNT) return info;
const NSFSetGroupData& GD = NSFPD_GROUP[group];
info.key = GD.key;
info.name = local_text(GD.text+0);
info.desc = local_text(GD.text+1);
return info;
}

const char* NSFCore::ini_line(sint32 setenum) const
{
if (setenum < 0 || setenum >= NSFP_SET_COUNT) return "";
Expand Down Expand Up @@ -397,6 +426,10 @@ const char* NSFCore::local_text(sint32 textenum) const
const char* NSFCore::local_text(sint32 textenum, sint32 locale)
{
if (locale < 0 || locale >= NSFP_LOCALE_COUNT || textenum < 0 || textenum >= NSFP_TEXT_COUNT)
return "<MISSING TEXT>";
return (const char*)(NSFPD_LOCAL_TEXT_DATA + NSFPD_LOCAL_TEXT[locale][textenum+NSFP_TEXT_INDEX]);
{
// text 0 is a default <MISSING TEXT> value
locale = 0;
textenum = 0;
}
return (const char*)(NSFPD_LOCAL_TEXT_DATA + NSFPD_LOCAL_TEXT[locale][textenum]);
}
4 changes: 2 additions & 2 deletions core/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ typedef struct NSFCore_

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

// TODO after changing settings, they need to be applied at some point, some might be immediate

const char* local_text(sint32 textenum) const; // NSFP_TEXT_x for curent locale
static const char* local_text(sint32 textenum, sint32 locale); // NSFP_TEXT_x for specific locale

Expand Down
149 changes: 75 additions & 74 deletions core/enums_data.h
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
#pragma once
// generated by nsfplayenums.py
// 2024-04-21 23:02:38
// 2024-04-22 00:45:03

#include "../include/nsfplayenums.h"

const int32_t NSFPD_LIST[NSFP_LIST_COUNT] = {
0, 1,
const int32_t NSFPD_LIST_TEXT[NSFP_LIST_COUNT] = {
1, 2,
};

typedef struct {
const char* key;
int32_t text;
} NSFSetGroupData;
const NSFSetGroupData NSFPD_GROUP[NSFP_GROUP_COUNT] = {
{ "MAIN", 2 },
{ "APU0", 4 },
{ "APU1", 6 },
{ "MAIN", 3 },
{ "APU0", 5 },
{ "APU1", 7 },
};

typedef struct {
const char* key;
int32_t unit, text;
} NSFChannelData;
const NSFChannelData NSFPD_CHANNEL[NSFP_CHANNEL_COUNT] = {
{ "SQU0", 0, 8 },
{ "SQU1", 0, 9 },
{ "TRI", 1, 10 },
{ "NSE", 1, 11 },
{ "DPCM", 1, 12 },
{ "SQU0", 0, 9 },
{ "SQU1", 0, 10 },
{ "TRI", 1, 11 },
{ "NSE", 1, 12 },
{ "DPCM", 1, 13 },
};

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

typedef struct {
const char* key;
int32_t type, text;
} NSFPropData;
const NSFPropData NSFPD_PROP[NSFP_PROP_COUNT] = {
{ "SONGCOUNT",1, 53 },
{ "LONG",2, 54 },
{ "TITLE",3, 55 },
{ "INFO",4, 56 },
{ "BLOB",5, 57 },
{ "SONGCOUNT",1, 54 },
{ "LONG",2, 55 },
{ "TITLE",3, 56 },
{ "INFO",4, 57 },
{ "BLOB",5, 58 },
};

typedef struct {
const char* key;
int32_t type, text;
} NSFSongPropData;
const NSFSongPropData NSFPD_SONGPROP[NSFP_SONGPROP_COUNT] = {
{ "INT",1, 58 },
{ "SONGTEST",1, 59 },
{ "LONG",2, 60 },
{ "TITLE",3, 61 },
{ "INFO",4, 62 },
{ "BLOB",5, 63 },
{ "INT",1, 59 },
{ "SONGTEST",1, 60 },
{ "LONG",2, 61 },
{ "TITLE",3, 62 },
{ "INFO",4, 63 },
{ "BLOB",5, 64 },
};

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

const uint8_t NSFPD_LOCAL_TEXT_DATA[0x000279] = {
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
const uint8_t NSFPD_LOCAL_TEXT_DATA[0x000288] = {
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
0x44,0x5F,0x52,0x41,0x4E,0x47,0x45,0x00,
};

// end of file
Loading

0 comments on commit 173747b

Please sign in to comment.