sinfonia: Move all parameter definitions into common header

Document all known-unknowns for S6145, S2245, EK8810, and EK7000.

As always, S6245 remains unknown!
This commit is contained in:
Solomon Peachy 2021-05-15 12:38:37 -04:00
parent 126a667d94
commit 4e8949b288
4 changed files with 243 additions and 182 deletions

View file

@ -77,55 +77,55 @@ struct kodak605_status {
static const struct sinfonia_param ek7000_params[] =
{
{ 0x01, "Unknown_01" }, // 00000001
{ 0x11, "Unknown_11" }, // 00000001
{ 0x12, "Matte Gloss" }, // 00000069
{ 0x13, "Matte Degloss Black" }, // 000000c3
{ 0x14, "Matte Degloss White" }, // 000000cd
{ 0x21, "Exit Speed With Sorter 4x6" }, // 000003e8
{ 0x22, "Exit Speed With Sorter 8x6" }, // 0000041a
{ 0x23, "Exit Speed With Backprinting" }, // 00000152
{ 0x24, "Exit Speed Without PPAC 4x6" }, // 0000044c
{ 0x25, "Exit Speed Without PPAC 8x6" }, // 0000044c
{ PARAM_UNK_01, "Unknown_01" },
{ PARAM_UNK_11, "Unknown_11" },
{ PARAM_UNK_12, "Matte Gloss" },
{ PARAM_UNK_13, "Matte Degloss Black" },
{ PARAM_UNK_14, "Matte Degloss White" },
{ PARAM_UNK_21, "Exit Speed With Sorter 4x6" },
{ PARAM_UNK_22, "Exit Speed With Sorter 8x6" },
{ PARAM_UNK_23, "Exit Speed With Backprinting" },
{ PARAM_UNK_24, "Exit Speed Without PPAC 4x6" },
{ PARAM_UNK_25, "Exit Speed Without PPAC 8x6" },
{ 0x2f, "Unknown_2f" }, // 00000320
{ 0x41, "Unknown_41" }, // 0000006d
{ 0x42, "Unknown_42" }, // 00000051
{ 0x43, "Unknown_43" }, // 0000003b
{ 0x44, "Unknown_44" }, // 00000082
{ 0x45, "Unknown_45" }, // 00000000
{ 0x46, "Unknown_46" }, // 00000000
{ 0x47, "Unknown_47" }, // 00000028
{ 0x48, "Unknown_48" }, // 00000002
{ 0x81, "Unknown_81" }, // ffffffff
{ PARAM_UNK_2F, "Unknown_2f" },
{ PARAM_UNK_41, "Unknown_41" },
{ PARAM_UNK_42, "Unknown_42" },
{ PARAM_UNK_43, "Unknown_43" },
{ PARAM_UNK_44, "Unknown_44" },
{ PARAM_UNK_45, "Unknown_45" },
{ PARAM_UNK_46, "Unknown_46" },
{ PARAM_UNK_47, "Unknown_47" },
{ PARAM_UNK_48, "Unknown_48" },
{ PARAM_UNK_81, "Unknown_81" },
{ 0x82, "Unknown_82" }, // fffffffe
{ 0x83, "Unknown_83" }, // ffffffee
{ 0x84, "Unknown_84" }, // 00000001
{ 0x91, "Unknown_91" }, // 0000006c
{ 0x92, "Unknown_92" }, // 00000077
{ 0x93, "Unknown_93" }, // 00000067
{ 0x94, "Unknown_94" }, // 00000076
{ 0xa0, "Unknown_a0" }, // 00000005
{ 0xa1, "Unknown_a1" }, // 00000000
{ 0xa2, "Unknown_a2" }, // 00000010
{ PARAM_UNK_82, "Unknown_82" },
{ PARAM_UNK_83, "Unknown_83" },
{ PARAM_UNK_84, "Unknown_84" },
{ PARAM_UNK_91, "Unknown_91" },
{ PARAM_UNK_92, "Unknown_92" },
{ PARAM_UNK_93, "Unknown_93" },
{ PARAM_UNK_94, "Unknown_94" },
{ PARAM_UNK_A0, "Unknown_a0" },
{ PARAM_UNK_A1, "Unknown_a1" },
{ PARAM_UNK_A2, "Unknown_a2" },
{ 0xa3, "Unknown_a3" }, // 0000003b
{ 0xa4, "Unknown_a4" }, // 0000003b
{ 0xa5, "Thermal Protect Lamination" }, // 0000003e
{ 0xa6, "Unknown_a6" }, // 00000001
{ 0xa7, "Unknown_a7" }, // 00000014
{ 0xa8, "Unknown_a8" }, // 00000001
{ 0xa9, "Unknown_a9" }, // ffffffff
{ 0xc1, "Unknown_c1" }, // 00000002
{ 0xc2, "Unknown_c2" }, // 000000c8
{ 0xc3, "Unknown_c3" }, // 000000c8
{ PARAM_UNK_A3, "Unknown_a3" },
{ PARAM_UNK_A4, "Unknown_a4" },
{ PARAM_UNK_A5, "Thermal Protect Lamination" },
{ PARAM_UNK_A6, "Unknown_a6" },
{ PARAM_UNK_A7, "Unknown_a7" },
{ PARAM_UNK_A8, "Unknown_a8" },
{ PARAM_UNK_A9, "Unknown_a9" },
{ PARAM_UNK_C1, "Unknown_c1" },
{ PARAM_UNK_C2, "Unknown_c2" },
{ PARAM_UNK_C3, "Unknown_c3" },
{ 0xc4, "Unknown_c4" }, // 00000200
{ 0xf1, "Unknown_f1" }, // 00000068
{ 0xf2, "Unknown_f2" }, // 00000068
{ 0xf3, "Unknown_f3" }, // 00000094
{ 0xf4, "Unknown_f4" }, // 00000068
{ PARAM_UNK_C4, "Unknown_c4" },
{ PARAM_UNK_F1, "Unknown_f1" },
{ PARAM_UNK_F2, "Unknown_f2" },
{ PARAM_UNK_F3, "Unknown_f3" },
{ PARAM_UNK_F4, "Unknown_f4" },
};
#define ek7000_params_num (sizeof(ek7000_params) / sizeof(struct sinfonia_param))

View file

@ -131,55 +131,6 @@ struct s6245_errorlog_resp {
STATIC_ASSERT(sizeof(struct s6245_errorlog_resp) == 74);
enum {
PARAM_UNK_10 = 0x10, // 2245 = 0x7b
PARAM_UNK_11 = 0x11, // 2245 = 0x72
PARAM_OC_PRINT = 0x20, // 6145
PARAM_UNK_31 = 0x31, // 2245 = 0x64
PARAM_UNK_32 = 0x32, // 2245 = 0x64
PARAM_UNK_33 = 0x33, // 2245 = 0x64
PARAM_UNK_34 = 0x34, // 2245 = 0x00
PARAM_UNK_35 = 0x35, // 2245 = 0x00
PARAM_UNK_36 = 0x36, // 2245 = 0x00
PARAM_PAPER_PRESV = 0x3d, // 6145
PARAM_DRIVER_MODE = 0x3e,
PARAM_PAPER_MODE = 0x3f,
PARAM_UNK_40 = 0x40, // 2245 = 0xff
PARAM_UNK_41 = 0x41, // 2245 = 0x00
PARAM_REGION_CODE = 0x53, // 6145
PARAM_SLEEP_TIME = 0x54, // 6145
PARAM_UNK_70 = 0x70, // 2245 = 0x22f8
PARAM_UNK_71 = 0x71, // 2245 = 0x01
PARAM_UNK_91 = 0x91, // 2245 = 0xfffffffc
PARAM_UNK_92 = 0x92, // 2245 = 0x00
PARAM_UNK_93 = 0x93, // 2245 = 0x06
PARAM_UNK_A0 = 0xa0, // 2245 = 0x01
PARAM_UNK_A1 = 0xa1, // 2245 = 0xffffffff
PARAM_UNK_A2 = 0xa2, // 2245 = 0xffffffff
PARAM_UNK_A3 = 0xa3, // 2245 = 0xffffffff
PARAM_UNK_A4 = 0xa4, // 2245 = 0xffffffff
PARAM_UNK_A5 = 0xa5, // 2245 = 0x42
PARAM_UNK_A6 = 0xa6, // 2245 = 0x00
PARAM_UNK_A7 = 0xa7, // 2245 = 0x01
PARAM_UNK_A8 = 0xa8, // 2245 = 0x01
PARAM_UNK_B0 = 0xb0, // 2245 = 0x1a
PARAM_UNK_B1 = 0xb1, // 2245 = 0x70
PARAM_UNK_DC = 0xdc, // 2245 = 0x00
PARAM_UNK_DD = 0xdd, // 2245 = 0x0c
PARAM_UNK_DE = 0xde, // 2245 = 0x32
PARAM_UNK_DF = 0xdf, // 2245 = 0x00
PARAM_UNK_E1 = 0xe1, // 2245 = 0x33
PARAM_UNK_E2 = 0xe2, // 2245 = 0x33
PARAM_UNK_E4 = 0xe4, // 2245 = 0x78
PARAM_UNK_E5 = 0xe5, // 2245 = 0x33
PARAM_UNK_E6 = 0xe6, // 2245 = 0x0194
PARAM_UNK_E7 = 0xe7, // 2245 = 0x0194
PARAM_UNK_E8 = 0xe8, // 2245 = 0x00
PARAM_UNK_E9 = 0xe9, // 2245 = 0x00
PARAM_UNK_EA = 0xea, // 2245 = 0x33
PARAM_UNK_EB = 0xeb, // 2245 = 0x0194
};
static const struct sinfonia_param s6145_params[] =
{
{ PARAM_OC_PRINT, "Overcoat Mode" },
@ -211,25 +162,10 @@ static const struct sinfonia_param s2245_params[] =
#define PARAM_PRINTM_FINE 0x00000004
#define PARAM_PRINTM_FAST 0x00000008
// S6145 (ALL)
// S6145
#define PARAM_PAPER_PRESV_OFF 0x00000000
#define PARAM_PAPER_PRESV_ON 0x00000001
// S6145 (ALL), S2245
#define PARAM_DRIVER_WIZOFF 0x00000000
#define PARAM_DRIVER_WIZON 0x00000001
#define PARAM_PAPER_NOCUT 0x00000000
#define PARAM_PAPER_CUTLOAD 0x00000001
// S6145
#define PARAM_SLEEP_5MIN 0x00000000
#define PARAM_SLEEP_15MIN 0x00000001
#define PARAM_SLEEP_30MIN 0x00000002
#define PARAM_SLEEP_60MIN 0x00000003
#define PARAM_SLEEP_120MIN 0x00000004
#define PARAM_SLEEP_240MIN 0x00000005
static const char *s6145_error_codes(uint8_t major, uint8_t minor)
{
switch(major) {
@ -1144,7 +1080,7 @@ static void shinkos6145_cmdline(void)
DEBUG("\t\t[ -R ] # Reset printer to factory defaults\n");
DEBUG("\t\t[ -s ] # Query status\n");
DEBUG("\t\t[ -X jobid ] # Abort a printjob\n");
// DEBUG("\t\t[ -Z ] # Dump all parameters\n");
// DEBUG("\t\t[ -Z 0 | 1 ] # Dump all parameters\n");
}
static int shinkos6145_cmdline_arg(void *vctx, int argc, char **argv)

View file

@ -57,70 +57,66 @@ struct s6245_print_cmd {
static const struct sinfonia_param ek8810_params[] =
{
{ 0x01, "Unknown_01" }, // 00000001
{ 0x11, "Unknown_11" }, // 00000001
{ 0x12, "? Matte Gloss" }, // 00000069
{ 0x13, "? Matte Degloss Black" }, // 000000c3
{ 0x14, "? Matte Degloss White" }, // 000000cd
{ 0x21, "Unknown_21" }, // 000003e8
{ 0x22, "Unknown_22" }, // 0000041a
{ 0x23, "Unknown_23" }, // 00000152
{ 0x24, "Unknown_24" }, // 0000044c
{ 0x25, "Unknown_25" }, // 0000044c
{ PARAM_UNK_01, "Unknown_01" },
{ PARAM_UNK_11, "Unknown_11" },
{ PARAM_UNK_12, "? Matte Gloss" },
{ PARAM_UNK_13, "? Matte Degloss Black" },
{ PARAM_UNK_14, "? Matte Degloss White" },
{ PARAM_UNK_21, "Unknown_21" },
{ PARAM_UNK_22, "Unknown_22" },
{ PARAM_UNK_23, "Unknown_23" },
{ PARAM_UNK_24, "Unknown_24" },
{ PARAM_UNK_25, "Unknown_25" },
{ 0x2f, "Unknown_2f" }, // 00000320
{ 0x41, "Unknown_41" }, // 0000005d
{ 0x42, "Unknown_42" }, // 00000048
{ 0x43, "Unknown_43" }, // 0000007c
{ 0x44, "Unknown_44" }, // 00000088
{ 0x45, "Unknown_45" }, // 00000000
{ 0x46, "Unknown_46" }, // 00000002
{ 0x47, "Unknown_47" }, // 00000063
{ 0x48, "Unknown_48" }, // 00000008
{ 0x61, "Unknown_61" }, // 00000050
{ PARAM_UNK_2F, "Unknown_2f" },
{ PARAM_UNK_41, "Unknown_41" },
{ PARAM_UNK_42, "Unknown_42" },
{ PARAM_UNK_43, "Unknown_43" },
{ PARAM_UNK_44, "Unknown_44" },
{ PARAM_UNK_45, "Unknown_45" },
{ PARAM_UNK_46, "Unknown_46" },
{ PARAM_UNK_47, "Unknown_47" },
{ PARAM_UNK_48, "Unknown_48" },
{ PARAM_UNK_61, "Unknown_61" },
{ 0x62, "Unknown_62" }, // 00000031
{ 0x63, "Unknown_63" }, // 00000030
{ 0x64, "Unknown_64" }, // 00000030
{ 0x81, "Unknown_81" }, // ffffffff
{ 0x82, "Unknown_82" }, // fffffff9
{ 0x83, "Unknown_83" }, // fffffffc
{ 0x84, "Unknown_84" }, // 00000002
{ 0x8a, "Unknown_8a" }, // 00000005
{ 0x8b, "Unknown_8b" }, // 00000005
{ 0x8c, "Unknown_8c" }, // 00000000
{ PARAM_UNK_62, "Unknown_62" },
{ PARAM_UNK_63, "Unknown_63" },
{ PARAM_UNK_64, "Unknown_64" },
{ PARAM_UNK_81, "Unknown_81" },
{ PARAM_UNK_82, "Unknown_82" },
{ PARAM_UNK_83, "Unknown_83" },
{ PARAM_UNK_84, "Unknown_84" },
{ PARAM_UNK_8A, "Unknown_8a" },
{ PARAM_UNK_8B, "Unknown_8b" },
{ PARAM_UNK_8C, "Unknown_8c" },
{ 0x8d, "Unknown_8d" }, // 00000000
{ 0x91, "Unknown_91" }, // 0000007e
{ 0x92, "Unknown_92" }, // 0000007d
{ 0x93, "Unknown_93" }, // 00000077
{ 0xa0, "Unknown_a0" }, // 00000005
{ 0xa1, "Unknown_a1" }, // 00000000
{ 0xa2, "Unknown_a2" }, // 00000008
{ 0xa3, "Unknown_a3" }, // 00000030
{ 0xa4, "Unknown_a4" }, // 00000030
{ 0xa5, "? Thermal Protect Lamination" }, // 00000046
{ PARAM_UNK_8D, "Unknown_8d" },
{ PARAM_UNK_91, "Unknown_91" },
{ PARAM_UNK_92, "Unknown_92" },
{ PARAM_UNK_93, "Unknown_93" },
{ PARAM_UNK_A0, "Unknown_a0" },
{ PARAM_UNK_A1, "Unknown_a1" },
{ PARAM_UNK_A2, "Unknown_a2" },
{ PARAM_UNK_A3, "Unknown_a3" },
{ PARAM_UNK_A4, "Unknown_a4" },
{ PARAM_UNK_A5, "? Thermal Protect Lamination" },
{ 0xa6, "Unknown_a6" }, // 00000001
{ 0xa7, "Unknown_a7" }, // 00000014
{ 0xa8, "Unknown_a8" }, // 00000001
{ 0xa9, "Unknown_a9" }, // ffffffff
{ 0xc1, "Unknown_c1" }, // 00000002
{ 0xc2, "Unknown_c2" }, // 000000c8
{ 0xc3, "Unknown_c3" }, // 000000c8
{ 0xc4, "Unknown_c4" }, // 000004d0
{ 0xf1, "Unknown_f1" }, // 00000022
{ 0xf2, "Unknown_f2" }, // 00000022
{ PARAM_UNK_A6, "Unknown_a6" },
{ PARAM_UNK_A7, "Unknown_a7" },
{ PARAM_UNK_A8, "Unknown_a8" },
{ PARAM_UNK_A9, "Unknown_a9" },
{ PARAM_UNK_C1, "Unknown_c1" },
{ PARAM_UNK_C2, "Unknown_c2" },
{ PARAM_UNK_C3, "Unknown_c3" },
{ PARAM_UNK_C4, "Unknown_c4" },
{ PARAM_UNK_F1, "Unknown_f1" },
{ PARAM_UNK_F2, "Unknown_f2" },
{ 0xf3, "Unknown_f3" }, // 00000047
{ 0xf4, "Unknown_f4" }, // 00000022
{ PARAM_UNK_F3, "Unknown_f3" },
{ PARAM_UNK_F4, "Unknown_f4" },
};
#define ek8810_params_num (sizeof(ek8810_params) / sizeof(struct sinfonia_param))
#define PARAM_DRIVER_MODE 0x3e
#define PARAM_PAPER_MODE 0x3f
#define PARAM_SLEEP_TIME 0x54
static const struct sinfonia_param s6245_params[] =
{
{ PARAM_DRIVER_MODE, "Driver Mode/Wizard" },
@ -129,19 +125,6 @@ static const struct sinfonia_param s6245_params[] =
};
#define s6245_params_num (sizeof(s6245_params) / sizeof(struct sinfonia_param))
#define PARAM_DRIVER_WIZOFF 0x00000000
#define PARAM_DRIVER_WIZON 0x00000001
#define PARAM_PAPER_NOCUT 0x00000000
#define PARAM_PAPER_CUTLOAD 0x00000001
#define PARAM_SLEEP_5MIN 0x00000000
#define PARAM_SLEEP_15MIN 0x00000001
#define PARAM_SLEEP_30MIN 0x00000002
#define PARAM_SLEEP_60MIN 0x00000003
#define PARAM_SLEEP_120MIN 0x00000004
#define PARAM_SLEEP_240MIN 0x00000005
static const char *s6245_error_codes(uint8_t major, uint8_t minor)
{
switch(major) {
@ -814,7 +797,7 @@ static void shinkos6245_cmdline(void)
DEBUG("\t\t[ -R ] # Reset printer to factory defaults\n");
DEBUG("\t\t[ -s ] # Query status\n");
DEBUG("\t\t[ -X jobid ] # Abort a printjob\n");
// DEBUG("\t\t[ -Z ] # Dump all parameters\n");
// DEBUG("\t\t[ -Z 0 | 1 ] # Dump all parameters\n");
}
static int shinkos6245_cmdline_arg(void *vctx, int argc, char **argv)
@ -825,7 +808,7 @@ static int shinkos6245_cmdline_arg(void *vctx, int argc, char **argv)
if (!ctx)
return -1;
while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "b:c:C:eFik:l:L:mrR:sX:Z:")) >= 0) {
while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "b:c:C:eFik:l:L:mrR:sX:Z")) >= 0) {
switch(i) {
GETOPT_PROCESS_GLOBAL
case 'b':

View file

@ -77,6 +77,148 @@ struct sinfonia_param {
const char *descr;
};
/* Known param IDs */
enum {
PARAM_UNK_01 = 0x01, // 6145 = 0x32, 8810 = 0x01, 7000 = 0x01
PARAM_UNK_02 = 0x02, // 6145 = 0xffffffff
PARAM_UNK_03 = 0x02, // 6145 = 0xffffffff
PARAM_UNK_04 = 0x04, // 6145 = 0xffffffff
PARAM_UNK_05 = 0x05, // 6145 = 0xffffffff
PARAM_UNK_10 = 0x10, // 2245 = 0x7b
PARAM_UNK_11 = 0x11, // 2245 = 0x72, 8810 = 0x01, 7000 = 0x01
PARAM_UNK_12 = 0x12, // 6145 = 0xffffffc4, 8810 = 0x69, 7000 = 0x69
PARAM_UNK_13 = 0x13, // 6145 = 0xffffffe2, 8810 = 0xc3, 7000 = 0xc3
PARAM_UNK_14 = 0x14, // 6145 = 0xffffffc7, 8810 = 0xcd, 7000 = 0xcd
PARAM_UNK_15 = 0x15, // 6145 = 0xffffffec
PARAM_UNK_16 = 0x16, // 6145 = 0x00
PARAM_OC_PRINT = 0x20, // 6145 ONLY
PARAM_UNK_21 = 0x21, // 6145 = 0x69, 8810 = 0x3e8, 7000 = 0xe39
PARAM_UNK_22 = 0x22, // 6145 = 0xc3, 8810 = 0x41a, 7000 = 0x41a
PARAM_UNK_23 = 0x23, // 6145 = 0xc3, 8810 = 0x152, 7000 = 0x152
PARAM_UNK_24 = 0x24, // 8810 = 0x44c, 7000 = 0x44c
PARAM_UNK_25 = 0x25, // 8810 = 0x44c, 7000 = 0x44c
PARAM_UNK_2F = 0x2f, // 8810 = 0x320, 7000 = 0x320
PARAM_UNK_31 = 0x31, // 2245 = 0x64. 6145 = 0x68
PARAM_UNK_32 = 0x32, // 2245 = 0x64
PARAM_UNK_33 = 0x33, // 2245 = 0x64
PARAM_UNK_34 = 0x34, // 2245 = 0x00
PARAM_UNK_35 = 0x35, // 2245 = 0x00
PARAM_UNK_36 = 0x36, // 2245 = 0x00
PARAM_PAPER_PRESV = 0x3d, // 6145 ONLY
PARAM_DRIVER_MODE = 0x3e, // 6145, 2245, 6245 ONLY
PARAM_PAPER_MODE = 0x3f, // 2245, 6245 ONLY
PARAM_UNK_40 = 0x40, // 2245 = 0xff
PARAM_UNK_41 = 0x41, // 2245 = 0x00, 8810 = 0x5d, 7000 = 0x6d
PARAM_UNK_42 = 0x42, // 8810 = 0x48, 7000 = 0x02, 7000 = 0x51
PARAM_UNK_43 = 0x43, // 8810 = 0x7c, 7000 = 0x3b
PARAM_UNK_44 = 0x44, // 8810 = 0x88, 7000 = 0x82
PARAM_UNK_45 = 0x45, // 8810 = 0x00, 7000 = 0x00
PARAM_UNK_46 = 0x46, // 8810 = 0x02, 7000 = 0x00
PARAM_UNK_47 = 0x47, // 8810 = 0x03, 7000 = 0x28
PARAM_UNK_48 = 0x48, // 8810 = 0x08, 7000 = 0x02
PARAM_REGION_CODE = 0x53, // 6145 ONLY
PARAM_SLEEP_TIME = 0x54, // 6145, 2245, 6245 ONLY
PARAM_UNK_55 = 0x55, // 6145 = 0xff
PARAM_UNK_56 = 0x56, // 6145 = 0xff
PARAM_UNK_57 = 0x57, // 6145 = 0x00
PARAM_UNK_58 = 0x58, // 6145 = 0xff
PARAM_UNK_60 = 0x60, // 6145 = 0xa2
PARAM_UNK_61 = 0x61, // 6145 = 0xa7, 8810 = 0x50
PARAM_UNK_62 = 0x62, // 8810 = 0x31
PARAM_UNK_63 = 0x63, // 8810 = 0x30
PARAM_UNK_64 = 0x64, // 8810 = 0x30
PARAM_UNK_70 = 0x70, // 2245 = 0x22f8, 6145 = 0x24ba
PARAM_UNK_71 = 0x71, // 2245 = 0x01
PARAM_UNK_72 = 0x72, // 6145 = 0x84
PARAM_UNK_73 = 0x73, // 6145 = 0x8b
PARAM_UNK_74 = 0x74, // 6145 = 0x89
PARAM_UNK_75 = 0x75, // 6145 = 0x80
PARAM_UNK_81 = 0x81, // 8810 = 0xffffffff, 7000 = 0xffffffff
PARAM_UNK_82 = 0x82, // 8810 = 0xfffffff9, 7000 = 0xfffffffe
PARAM_UNK_83 = 0x83, // 8810 = 0xfffffffc, 7000 = 0xffffffee
PARAM_UNK_84 = 0x84, // 8810 = 0x02, 7000 = 0x01
PARAM_UNK_8A = 0x8a, // 8810 = 0x05
PARAM_UNK_8B = 0x8b, // 8810 = 0x05
PARAM_UNK_8C = 0x8c, // 8810 = 0x00
PARAM_UNK_8D = 0x8d, // 8810 = 0x00
PARAM_UNK_91 = 0x91, // 2245 = 0xfffffffc, 6145 = 0xfffffffa, 8810 = 0x7e, 7000 = 0x6c
PARAM_UNK_92 = 0x92, // 2245 = 0x00, 6145 = 0x06, 8810 = 0x7d, 7000 = 0x87
PARAM_UNK_93 = 0x93, // 2245 = 0x06, 6145 = 0x06, 8810 = 0x77, 7000 = 0x67
PARAM_UNK_94 = 0x94, // 7000 = 0x76
PARAM_UNK_A0 = 0xa0, // 2245 = 0x01, 8810 = 0x05, 7000 = 0x05
PARAM_UNK_A1 = 0xa1, // 2245 = 0xffffffff, 8810 = 0x00, 7000 = 0x00
PARAM_UNK_A2 = 0xa2, // 2245 = 0xffffffff, 8810 = 0x08, 7000 = 0x10
PARAM_UNK_A3 = 0xa3, // 2245 = 0xffffffff, 8810 = 0x30, 7000 = 0x3b
PARAM_UNK_A4 = 0xa4, // 2245 = 0xffffffff, 8810 = 0x30, 7000 = 0x3b
PARAM_UNK_A5 = 0xa5, // 2245 = 0x42, 6145 = 0x4d, 8810 = 0x46, 7000 = 0x3e
PARAM_UNK_A6 = 0xa6, // 2245 = 0x00, 6145 = 0x01, 8810 = 0x01, 7000 = 0x01
PARAM_UNK_A7 = 0xa7, // 2245 = 0x01, 8810 = 0x14, 7000 = 0x14
PARAM_UNK_A8 = 0xa8, // 2245 = 0x01, 6145 = 0x01, 8810 = 0x01, 7000 = 0x01
PARAM_UNK_A9 = 0xa9, // 6145 = 0xffffffff, 8810 = 0xffffffff, 7000 = 0xffffffff
PARAM_UNK_B0 = 0xb0, // 2245 = 0x1a
PARAM_UNK_B1 = 0xb1, // 2245 = 0x70
PARAM_UNK_C1 = 0xc1, // 8810 = 0x02, 7000 = 0x02
PARAM_UNK_C2 = 0xc2, // 8810 = 0xc8, 7000 = 0xc8
PARAM_UNK_C3 = 0xc3, // 8810 = 0xc8, 7000 = 0xc8
PARAM_UNK_C4 = 0xc4, // 8810 = 0x4d0, 7000 = 0x200
PARAM_UNK_D3 = 0xd3, // 6145 = 0x00
PARAM_UNK_D4 = 0xd3, // 6145 = 0x00
PARAM_UNK_D5 = 0xd3, // 6145 = 0xff
PARAM_UNK_D6 = 0xd3, // 6145 = 0xff
PARAM_UNK_D7 = 0xd3, // 6145 = 0x00
PARAM_UNK_D8 = 0xd3, // 6145 = 0xff
PARAM_UNK_DC = 0xdc, // 2245 = 0x00
PARAM_UNK_DD = 0xdd, // 2245 = 0x0c
PARAM_UNK_DE = 0xde, // 2245 = 0x32
PARAM_UNK_DF = 0xdf, // 2245 = 0x00
PARAM_UNK_E1 = 0xe1, // 2245 = 0x33, 6145 = 0x213e
PARAM_UNK_E2 = 0xe2, // 2245 = 0x33, 6145 = 0x213e
PARAM_UNK_E3 = 0xe3, // 6145 = 0x00
PARAM_UNK_E4 = 0xe4, // 2245 = 0x78, 6145 = 0x43ab
PARAM_UNK_E5 = 0xe5, // 2245 = 0x33, 6145 = 0x213e
PARAM_UNK_E6 = 0xe6, // 2245 = 0x0194, 6145 = 0x00
PARAM_UNK_E7 = 0xe7, // 2245 = 0x0194, 6145 = 0x84f8
PARAM_UNK_E8 = 0xe8, // 2245 = 0x00, 6145 = 0x84f8
PARAM_UNK_E9 = 0xe9, // 2245 = 0x00, 6145 = 0x84f8
PARAM_UNK_EA = 0xea, // 2245 = 0x33, 6145 = 0x00
PARAM_UNK_EB = 0xeb, // 2245 = 0x0194
PARAM_UNK_F1 = 0xf1, // 8810 = 0x22, 7000 = 0x68
PARAM_UNK_F2 = 0xf2, // 8810 = 0x22, 7000 = 0x68
PARAM_UNK_F3 = 0xf3, // 8810 = 0x47, 7000 = 0x94
PARAM_UNK_F4 = 0xf4, // 8810 = 0x22, 7000 = 0x68
};
// S6145, S2245, S6245
#define PARAM_DRIVER_WIZOFF 0x00000000
#define PARAM_DRIVER_WIZON 0x00000001
// S6145, S2245, S6245
#define PARAM_PAPER_NOCUT 0x00000000
#define PARAM_PAPER_CUTLOAD 0x00000001
// S6145, S6245
#define PARAM_SLEEP_5MIN 0x00000000
#define PARAM_SLEEP_15MIN 0x00000001
#define PARAM_SLEEP_30MIN 0x00000002
#define PARAM_SLEEP_60MIN 0x00000003
#define PARAM_SLEEP_120MIN 0x00000004
#define PARAM_SLEEP_240MIN 0x00000005
/* Common usb functions */
struct sinfonia_usbdev {
struct dyesub_connection *conn;