Add d868uv address map.

This commit is contained in:
Serge Vakulenko 2018-10-15 12:49:23 -07:00
parent 0326291227
commit 100cdc3a13
2 changed files with 646 additions and 19 deletions

580
d868uv-map.h Normal file
View File

@ -0,0 +1,580 @@
/*
* Address map of D868UV memory space.
*/
{ 0x02fa0010, 0x40 }, // Radio name and timestamp
{ 0x00800000, 0x2000 }, // Channels 1-128
{ 0x00840000, 0x2000 }, // Channels 129-256
{ 0x00880000, 0x2000 }, // Channels 257-384
{ 0x008c0000, 0x2000 }, // Channels 385-512
{ 0x00900000, 0x2000 }, // Channels 513-640
{ 0x00940000, 0x2000 }, // Channels 641-768
{ 0x00980000, 0x2000 }, // Channels 769-896
{ 0x009c0000, 0x2000 }, // Channels 897-1024
{ 0x00a00000, 0x2000 }, // Channels 1025-1152
{ 0x00a40000, 0x2000 }, // Channels 1153-1280
{ 0x00a80000, 0x2000 }, // Channels 1281-1408
{ 0x00ac0000, 0x2000 }, // Channels 1409-1536
{ 0x00b00000, 0x2000 }, // Channels 1537-1664
{ 0x00b40000, 0x2000 }, // Channels 1665-1792
{ 0x00b80000, 0x2000 }, // Channels 1793-1920
{ 0x00bc0000, 0x2000 }, // Channels 1921-2048
{ 0x00c00000, 0x2000 }, // Channels 2049-2176
{ 0x00c40000, 0x2000 }, // Channels 2177-2304
{ 0x00c80000, 0x2000 }, // Channels 2305-2432
{ 0x00cc0000, 0x2000 }, // Channels 2433-2560
{ 0x00d00000, 0x2000 }, // Channels 2561-2688
{ 0x00d40000, 0x2000 }, // Channels 2689-2816
{ 0x00d80000, 0x2000 }, // Channels 2817-2944
{ 0x00dc0000, 0x2000 }, // Channels 2945-3072
{ 0x00e00000, 0x2000 }, // Channels 3073-3200
{ 0x00e40000, 0x2000 }, // Channels 3201-3328
{ 0x00e80000, 0x2000 }, // Channels 3329-3456
{ 0x00ec0000, 0x2000 }, // Channels 3457-3584
{ 0x00f00000, 0x2000 }, // Channels 3585-3712
{ 0x00f40000, 0x2000 }, // Channels 3713-3840
{ 0x00f80000, 0x2000 }, // Channels 3841-3968
{ 0x00fc0000, 0x0880 }, // Channels 3969-4000, VFO A, VFO B
{ 0x01000000, 0x1f400 }, // Channel bitmaps?
{ 0x01080000, 0xc0 }, // Scanlist 1
{ 0x01080200, 0xc0 }, // Scanlist 2
{ 0x01080400, 0xc0 }, // Scanlist 3
{ 0x01080600, 0xc0 }, // Scanlist 4
{ 0x01080800, 0xc0 }, // Scanlist 5
{ 0x01080a00, 0xc0 }, // Scanlist 6
{ 0x01080c00, 0xc0 }, // Scanlist 7
{ 0x01080e00, 0xc0 }, // Scanlist 8
{ 0x01081000, 0xc0 }, // Scanlist 9
{ 0x01081200, 0xc0 }, // Scanlist 10
{ 0x01081400, 0xc0 }, // Scanlist 11
{ 0x01081600, 0xc0 }, // Scanlist 12
{ 0x01081800, 0xc0 }, // Scanlist 13
{ 0x01081a00, 0xc0 }, // Scanlist 14
{ 0x01081c00, 0xc0 }, // Scanlist 15
{ 0x01081e00, 0xc0 }, // Scanlist 16
{ 0x010c0000, 0xc0 }, // Scanlist 17
{ 0x010c0200, 0xc0 }, // Scanlist 18
{ 0x010c0400, 0xc0 }, // Scanlist 19
{ 0x010c0600, 0xc0 }, // Scanlist 20
{ 0x010c0800, 0xc0 }, // Scanlist 21
{ 0x010c0a00, 0xc0 }, // Scanlist 22
{ 0x010c0c00, 0xc0 }, // Scanlist 23
{ 0x010c0e00, 0xc0 }, // Scanlist 24
{ 0x010c1000, 0xc0 }, // Scanlist 25
{ 0x010c1200, 0xc0 }, // Scanlist 26
{ 0x010c1400, 0xc0 }, // Scanlist 27
{ 0x010c1600, 0xc0 }, // Scanlist 28
{ 0x010c1800, 0xc0 }, // Scanlist 29
{ 0x010c1a00, 0xc0 }, // Scanlist 30
{ 0x010c1c00, 0xc0 }, // Scanlist 31
{ 0x010c1e00, 0xc0 }, // Scanlist 32
{ 0x01100000, 0xc0 }, // Scanlist 33
{ 0x01100200, 0xc0 }, // Scanlist 34
{ 0x01100400, 0xc0 }, // Scanlist 35
{ 0x01100600, 0xc0 }, // Scanlist 36
{ 0x01100800, 0xc0 }, // Scanlist 37
{ 0x01100a00, 0xc0 }, // Scanlist 38
{ 0x01100c00, 0xc0 }, // Scanlist 39
{ 0x01100e00, 0xc0 }, // Scanlist 40
{ 0x01101000, 0xc0 }, // Scanlist 41
{ 0x01101200, 0xc0 }, // Scanlist 42
{ 0x01101400, 0xc0 }, // Scanlist 43
{ 0x01101600, 0xc0 }, // Scanlist 44
{ 0x01101800, 0xc0 }, // Scanlist 45
{ 0x01101a00, 0xc0 }, // Scanlist 46
{ 0x01101c00, 0xc0 }, // Scanlist 47
{ 0x01101e00, 0xc0 }, // Scanlist 48
{ 0x01140000, 0xc0 }, // Scanlist 49
{ 0x01140200, 0xc0 }, // Scanlist 50
{ 0x01140400, 0xc0 }, // Scanlist 51
{ 0x01140600, 0xc0 }, // Scanlist 52
{ 0x01140800, 0xc0 }, // Scanlist 53
{ 0x01140a00, 0xc0 }, // Scanlist 54
{ 0x01140c00, 0xc0 }, // Scanlist 55
{ 0x01140e00, 0xc0 }, // Scanlist 56
{ 0x01141000, 0xc0 }, // Scanlist 57
{ 0x01141200, 0xc0 }, // Scanlist 58
{ 0x01141400, 0xc0 }, // Scanlist 59
{ 0x01141600, 0xc0 }, // Scanlist 60
{ 0x01141800, 0xc0 }, // Scanlist 61
{ 0x01141a00, 0xc0 }, // Scanlist 62
{ 0x01141c00, 0xc0 }, // Scanlist 63
{ 0x01141e00, 0xc0 }, // Scanlist 64
{ 0x01180000, 0xc0 }, // Scanlist 65
{ 0x01180200, 0xc0 }, // Scanlist 66
{ 0x01180400, 0xc0 }, // Scanlist 67
{ 0x01180600, 0xc0 }, // Scanlist 68
{ 0x01180800, 0xc0 }, // Scanlist 69
{ 0x01180a00, 0xc0 }, // Scanlist 70
{ 0x01180c00, 0xc0 }, // Scanlist 71
{ 0x01180e00, 0xc0 }, // Scanlist 72
{ 0x01181000, 0xc0 }, // Scanlist 73
{ 0x01181200, 0xc0 }, // Scanlist 74
{ 0x01181400, 0xc0 }, // Scanlist 75
{ 0x01181600, 0xc0 }, // Scanlist 76
{ 0x01181800, 0xc0 }, // Scanlist 77
{ 0x01181a00, 0xc0 }, // Scanlist 78
{ 0x01181c00, 0xc0 }, // Scanlist 79
{ 0x01181e00, 0xc0 }, // Scanlist 80
{ 0x011c0000, 0xc0 }, // Scanlist 81
{ 0x011c0200, 0xc0 }, // Scanlist 82
{ 0x011c0400, 0xc0 }, // Scanlist 83
{ 0x011c0600, 0xc0 }, // Scanlist 84
{ 0x011c0800, 0xc0 }, // Scanlist 85
{ 0x011c0a00, 0xc0 }, // Scanlist 86
{ 0x011c0c00, 0xc0 }, // Scanlist 87
{ 0x011c0e00, 0xc0 }, // Scanlist 88
{ 0x011c1000, 0xc0 }, // Scanlist 89
{ 0x011c1200, 0xc0 }, // Scanlist 90
{ 0x011c1400, 0xc0 }, // Scanlist 91
{ 0x011c1600, 0xc0 }, // Scanlist 92
{ 0x011c1800, 0xc0 }, // Scanlist 93
{ 0x011c1a00, 0xc0 }, // Scanlist 94
{ 0x011c1c00, 0xc0 }, // Scanlist 95
{ 0x011c1e00, 0xc0 }, // Scanlist 96
{ 0x01200000, 0xc0 }, // Scanlist 97
{ 0x01200200, 0xc0 }, // Scanlist 98
{ 0x01200400, 0xc0 }, // Scanlist 99
{ 0x01200600, 0xc0 }, // Scanlist 100
{ 0x01200800, 0xc0 }, // Scanlist 101
{ 0x01200a00, 0xc0 }, // Scanlist 102
{ 0x01200c00, 0xc0 }, // Scanlist 103
{ 0x01200e00, 0xc0 }, // Scanlist 104
{ 0x01201000, 0xc0 }, // Scanlist 105
{ 0x01201200, 0xc0 }, // Scanlist 106
{ 0x01201400, 0xc0 }, // Scanlist 107
{ 0x01201600, 0xc0 }, // Scanlist 108
{ 0x01201800, 0xc0 }, // Scanlist 109
{ 0x01201a00, 0xc0 }, // Scanlist 110
{ 0x01201c00, 0xc0 }, // Scanlist 111
{ 0x01201e00, 0xc0 }, // Scanlist 112
{ 0x01240000, 0xc0 }, // Scanlist 113
{ 0x01240200, 0xc0 }, // Scanlist 114
{ 0x01240400, 0xc0 }, // Scanlist 115
{ 0x01240600, 0xc0 }, // Scanlist 116
{ 0x01240800, 0xc0 }, // Scanlist 117
{ 0x01240a00, 0xc0 }, // Scanlist 118
{ 0x01240c00, 0xc0 }, // Scanlist 119
{ 0x01240e00, 0xc0 }, // Scanlist 120
{ 0x01241000, 0xc0 }, // Scanlist 121
{ 0x01241200, 0xc0 }, // Scanlist 122
{ 0x01241400, 0xc0 }, // Scanlist 123
{ 0x01241600, 0xc0 }, // Scanlist 124
{ 0x01241800, 0xc0 }, // Scanlist 125
{ 0x01241a00, 0xc0 }, // Scanlist 126
{ 0x01241c00, 0xc0 }, // Scanlist 127
{ 0x01241e00, 0xc0 }, // Scanlist 128
{ 0x01280000, 0xc0 }, // Scanlist 129
{ 0x01280200, 0xc0 }, // Scanlist 130
{ 0x01280400, 0xc0 }, // Scanlist 131
{ 0x01280600, 0xc0 }, // Scanlist 132
{ 0x01280800, 0xc0 }, // Scanlist 133
{ 0x01280a00, 0xc0 }, // Scanlist 134
{ 0x01280c00, 0xc0 }, // Scanlist 135
{ 0x01280e00, 0xc0 }, // Scanlist 136
{ 0x01281000, 0xc0 }, // Scanlist 137
{ 0x01281200, 0xc0 }, // Scanlist 138
{ 0x01281400, 0xc0 }, // Scanlist 139
{ 0x01281600, 0xc0 }, // Scanlist 140
{ 0x01281800, 0xc0 }, // Scanlist 141
{ 0x01281a00, 0xc0 }, // Scanlist 142
{ 0x01281c00, 0xc0 }, // Scanlist 143
{ 0x01281e00, 0xc0 }, // Scanlist 144
{ 0x012c0000, 0xc0 }, // Scanlist 145
{ 0x012c0200, 0xc0 }, // Scanlist 146
{ 0x012c0400, 0xc0 }, // Scanlist 147
{ 0x012c0600, 0xc0 }, // Scanlist 148
{ 0x012c0800, 0xc0 }, // Scanlist 149
{ 0x012c0a00, 0xc0 }, // Scanlist 150
{ 0x012c0c00, 0xc0 }, // Scanlist 151
{ 0x012c0e00, 0xc0 }, // Scanlist 152
{ 0x012c1000, 0xc0 }, // Scanlist 153
{ 0x012c1200, 0xc0 }, // Scanlist 154
{ 0x012c1400, 0xc0 }, // Scanlist 155
{ 0x012c1600, 0xc0 }, // Scanlist 156
{ 0x012c1800, 0xc0 }, // Scanlist 157
{ 0x012c1a00, 0xc0 }, // Scanlist 158
{ 0x012c1c00, 0xc0 }, // Scanlist 159
{ 0x012c1e00, 0xc0 }, // Scanlist 160
{ 0x01300000, 0xc0 }, // Scanlist 161
{ 0x01300200, 0xc0 }, // Scanlist 162
{ 0x01300400, 0xc0 }, // Scanlist 163
{ 0x01300600, 0xc0 }, // Scanlist 164
{ 0x01300800, 0xc0 }, // Scanlist 165
{ 0x01300a00, 0xc0 }, // Scanlist 166
{ 0x01300c00, 0xc0 }, // Scanlist 167
{ 0x01300e00, 0xc0 }, // Scanlist 168
{ 0x01301000, 0xc0 }, // Scanlist 169
{ 0x01301200, 0xc0 }, // Scanlist 170
{ 0x01301400, 0xc0 }, // Scanlist 171
{ 0x01301600, 0xc0 }, // Scanlist 172
{ 0x01301800, 0xc0 }, // Scanlist 173
{ 0x01301a00, 0xc0 }, // Scanlist 174
{ 0x01301c00, 0xc0 }, // Scanlist 175
{ 0x01301e00, 0xc0 }, // Scanlist 176
{ 0x01340000, 0xc0 }, // Scanlist 177
{ 0x01340200, 0xc0 }, // Scanlist 178
{ 0x01340400, 0xc0 }, // Scanlist 179
{ 0x01340600, 0xc0 }, // Scanlist 180
{ 0x01340800, 0xc0 }, // Scanlist 181
{ 0x01340a00, 0xc0 }, // Scanlist 182
{ 0x01340c00, 0xc0 }, // Scanlist 183
{ 0x01340e00, 0xc0 }, // Scanlist 184
{ 0x01341000, 0xc0 }, // Scanlist 185
{ 0x01341200, 0xc0 }, // Scanlist 186
{ 0x01341400, 0xc0 }, // Scanlist 187
{ 0x01341600, 0xc0 }, // Scanlist 188
{ 0x01341800, 0xc0 }, // Scanlist 189
{ 0x01341a00, 0xc0 }, // Scanlist 190
{ 0x01341c00, 0xc0 }, // Scanlist 191
{ 0x01341e00, 0xc0 }, // Scanlist 192
{ 0x01380000, 0xc0 }, // Scanlist 193
{ 0x01380200, 0xc0 }, // Scanlist 194
{ 0x01380400, 0xc0 }, // Scanlist 195
{ 0x01380600, 0xc0 }, // Scanlist 196
{ 0x01380800, 0xc0 }, // Scanlist 197
{ 0x01380a00, 0xc0 }, // Scanlist 198
{ 0x01380c00, 0xc0 }, // Scanlist 199
{ 0x01380e00, 0xc0 }, // Scanlist 200
{ 0x01381000, 0xc0 }, // Scanlist 201
{ 0x01381200, 0xc0 }, // Scanlist 202
{ 0x01381400, 0xc0 }, // Scanlist 203
{ 0x01381600, 0xc0 }, // Scanlist 204
{ 0x01381800, 0xc0 }, // Scanlist 205
{ 0x01381a00, 0xc0 }, // Scanlist 206
{ 0x01381c00, 0xc0 }, // Scanlist 207
{ 0x01381e00, 0xc0 }, // Scanlist 208
{ 0x013c0000, 0xc0 }, // Scanlist 209
{ 0x013c0200, 0xc0 }, // Scanlist 210
{ 0x013c0400, 0xc0 }, // Scanlist 211
{ 0x013c0600, 0xc0 }, // Scanlist 212
{ 0x013c0800, 0xc0 }, // Scanlist 213
{ 0x013c0a00, 0xc0 }, // Scanlist 214
{ 0x013c0c00, 0xc0 }, // Scanlist 215
{ 0x013c0e00, 0xc0 }, // Scanlist 216
{ 0x013c1000, 0xc0 }, // Scanlist 217
{ 0x013c1200, 0xc0 }, // Scanlist 218
{ 0x013c1400, 0xc0 }, // Scanlist 219
{ 0x013c1600, 0xc0 }, // Scanlist 220
{ 0x013c1800, 0xc0 }, // Scanlist 221
{ 0x013c1a00, 0xc0 }, // Scanlist 222
{ 0x013c1c00, 0xc0 }, // Scanlist 223
{ 0x013c1e00, 0xc0 }, // Scanlist 224
{ 0x01400000, 0xc0 }, // Scanlist 225
{ 0x01400200, 0xc0 }, // Scanlist 226
{ 0x01400400, 0xc0 }, // Scanlist 227
{ 0x01400600, 0xc0 }, // Scanlist 228
{ 0x01400800, 0xc0 }, // Scanlist 229
{ 0x01400a00, 0xc0 }, // Scanlist 230
{ 0x01400c00, 0xc0 }, // Scanlist 231
{ 0x01400e00, 0xc0 }, // Scanlist 232
{ 0x01401000, 0xc0 }, // Scanlist 233
{ 0x01401200, 0xc0 }, // Scanlist 234
{ 0x01401400, 0xc0 }, // Scanlist 235
{ 0x01401600, 0xc0 }, // Scanlist 236
{ 0x01401800, 0xc0 }, // Scanlist 237
{ 0x01401a00, 0xc0 }, // Scanlist 238
{ 0x01401c00, 0xc0 }, // Scanlist 239
{ 0x01401e00, 0xc0 }, // Scanlist 240
{ 0x01440000, 0xc0 }, // Scanlist 241
{ 0x01440200, 0xc0 }, // Scanlist 242
{ 0x01440400, 0xc0 }, // Scanlist 243
{ 0x01440600, 0xc0 }, // Scanlist 244
{ 0x01440800, 0xc0 }, // Scanlist 245
{ 0x01440a00, 0xc0 }, // Scanlist 246
{ 0x01440c00, 0xc0 }, // Scanlist 247
{ 0x01440e00, 0xc0 }, // Scanlist 248
{ 0x01441000, 0xc0 }, // Scanlist 249
{ 0x01441200, 0xc0 }, // Scanlist 250
{ 0x01640000, 0x640 }, // Unknown index
{ 0x01640800, 0xc0 }, // Zeroes?
{ 0x02140000, 0x800 }, // Messages 1-8
{ 0x02180000, 0x800 }, // Messages 9-16
{ 0x021c0000, 0x800 }, // Messages 17-24
{ 0x02200000, 0x800 }, // Messages 25-32
{ 0x02240000, 0x800 }, // Messages 33-40
{ 0x02280000, 0x800 }, // Messages 41-48
{ 0x022c0000, 0x800 }, // Messages 49-56
{ 0x02300000, 0x800 }, // Messages 57-64
{ 0x02340000, 0x800 }, // Messages 65-72
{ 0x02380000, 0x800 }, // Messages 73-80
{ 0x023c0000, 0x800 }, // Messages 81-88
{ 0x02400000, 0x800 }, // Messages 89-96
{ 0x02440000, 0x400 }, // Messages 97-100
{ 0x02480000, 0x1c0 }, // Unknown index
{ 0x02480200, 0x40 }, // Unknown bitmap
{ 0x024c0000, 0x40 }, // Unknown data
{ 0x024c0c80, 0x40 }, // Unknown data
{ 0x024c0d00, 0x200 }, // Zeroes?
{ 0x024c1000, 0x140 }, // Unknown data
{ 0x024c1280, 0x40 }, // Unknown data
{ 0x024c1300, 0x80 }, // Unknown data
{ 0x024c1400, 0x80 }, // Unknown data
{ 0x024c1500, 0x240 }, // Unknown data
{ 0x024c1800, 0x500 }, // Zeroes?
{ 0x024c2000, 0x440 }, // Unknown data
{ 0x024c2600, 0x40 }, // Unknown data
{ 0x02500000, 0x640 }, // Unknown data
{ 0x02501000, 0x40 }, // Unknown data
{ 0x02501100, 0x140 }, // GPS message
{ 0x02540000, 0x1f40 }, // Zones 1-250
{ 0x02580000, 0x1f40 }, // Radio ID 1-250
{ 0x025c0000, 0x880 }, // Unknown data, status message
{ 0x025c0b00, 0x40 }, // Unknown data
{ 0x02600000, 0x9c40 }, // Unknown data, bitmap
{ 0x02640000, 0x500 }, // Unknown data, bitmap
{ 0x02680000, 0xf4240 }, // Contacts 1-10000
{ 0x02900000, 0x80 }, // Unknown index
{ 0x02900100, 0x80 }, // Unknown index
{ 0x02940000, 0x180 }, // AnalogContacts 1-128
{ 0x02980000, 0x140 }, // Grouplist 1
{ 0x02980200, 0x140 }, // Grouplist 2
{ 0x02980400, 0x140 }, // Grouplist 3
{ 0x02980600, 0x140 }, // Grouplist 4
{ 0x02980800, 0x140 }, // Grouplist 5
{ 0x02980a00, 0x140 }, // Grouplist 6
{ 0x02980c00, 0x140 }, // Grouplist 7
{ 0x02980e00, 0x140 }, // Grouplist 8
{ 0x02981000, 0x140 }, // Grouplist 9
{ 0x02981200, 0x140 }, // Grouplist 10
{ 0x02981400, 0x140 }, // Grouplist 11
{ 0x02981600, 0x140 }, // Grouplist 12
{ 0x02981800, 0x140 }, // Grouplist 13
{ 0x02981a00, 0x140 }, // Grouplist 14
{ 0x02981c00, 0x140 }, // Grouplist 15
{ 0x02981e00, 0x140 }, // Grouplist 16
{ 0x02982000, 0x140 }, // Grouplist 17
{ 0x02982200, 0x140 }, // Grouplist 18
{ 0x02982400, 0x140 }, // Grouplist 19
{ 0x02982600, 0x140 }, // Grouplist 20
{ 0x02982800, 0x140 }, // Grouplist 21
{ 0x02982a00, 0x140 }, // Grouplist 22
{ 0x02982c00, 0x140 }, // Grouplist 23
{ 0x02982e00, 0x140 }, // Grouplist 24
{ 0x02983000, 0x140 }, // Grouplist 25
{ 0x02983200, 0x140 }, // Grouplist 26
{ 0x02983400, 0x140 }, // Grouplist 27
{ 0x02983600, 0x140 }, // Grouplist 28
{ 0x02983800, 0x140 }, // Grouplist 29
{ 0x02983a00, 0x140 }, // Grouplist 30
{ 0x02983c00, 0x140 }, // Grouplist 31
{ 0x02983e00, 0x140 }, // Grouplist 32
{ 0x02984000, 0x140 }, // Grouplist 33
{ 0x02984200, 0x140 }, // Grouplist 34
{ 0x02984400, 0x140 }, // Grouplist 35
{ 0x02984600, 0x140 }, // Grouplist 36
{ 0x02984800, 0x140 }, // Grouplist 37
{ 0x02984a00, 0x140 }, // Grouplist 38
{ 0x02984c00, 0x140 }, // Grouplist 39
{ 0x02984e00, 0x140 }, // Grouplist 40
{ 0x02985000, 0x140 }, // Grouplist 41
{ 0x02985200, 0x140 }, // Grouplist 42
{ 0x02985400, 0x140 }, // Grouplist 43
{ 0x02985600, 0x140 }, // Grouplist 44
{ 0x02985800, 0x140 }, // Grouplist 45
{ 0x02985a00, 0x140 }, // Grouplist 46
{ 0x02985c00, 0x140 }, // Grouplist 47
{ 0x02985e00, 0x140 }, // Grouplist 48
{ 0x02986000, 0x140 }, // Grouplist 49
{ 0x02986200, 0x140 }, // Grouplist 50
{ 0x02986400, 0x140 }, // Grouplist 51
{ 0x02986600, 0x140 }, // Grouplist 52
{ 0x02986800, 0x140 }, // Grouplist 53
{ 0x02986a00, 0x140 }, // Grouplist 54
{ 0x02986c00, 0x140 }, // Grouplist 55
{ 0x02986e00, 0x140 }, // Grouplist 56
{ 0x02987000, 0x140 }, // Grouplist 57
{ 0x02987200, 0x140 }, // Grouplist 58
{ 0x02987400, 0x140 }, // Grouplist 59
{ 0x02987600, 0x140 }, // Grouplist 60
{ 0x02987800, 0x140 }, // Grouplist 61
{ 0x02987a00, 0x140 }, // Grouplist 62
{ 0x02987c00, 0x140 }, // Grouplist 63
{ 0x02987e00, 0x140 }, // Grouplist 64
{ 0x02988000, 0x140 }, // Grouplist 65
{ 0x02988200, 0x140 }, // Grouplist 66
{ 0x02988400, 0x140 }, // Grouplist 67
{ 0x02988600, 0x140 }, // Grouplist 68
{ 0x02988800, 0x140 }, // Grouplist 69
{ 0x02988a00, 0x140 }, // Grouplist 70
{ 0x02988c00, 0x140 }, // Grouplist 71
{ 0x02988e00, 0x140 }, // Grouplist 72
{ 0x02989000, 0x140 }, // Grouplist 73
{ 0x02989200, 0x140 }, // Grouplist 74
{ 0x02989400, 0x140 }, // Grouplist 75
{ 0x02989600, 0x140 }, // Grouplist 76
{ 0x02989800, 0x140 }, // Grouplist 77
{ 0x02989a00, 0x140 }, // Grouplist 78
{ 0x02989c00, 0x140 }, // Grouplist 79
{ 0x02989e00, 0x140 }, // Grouplist 80
{ 0x0298a000, 0x140 }, // Grouplist 81
{ 0x0298a200, 0x140 }, // Grouplist 82
{ 0x0298a400, 0x140 }, // Grouplist 83
{ 0x0298a600, 0x140 }, // Grouplist 84
{ 0x0298a800, 0x140 }, // Grouplist 85
{ 0x0298aa00, 0x140 }, // Grouplist 86
{ 0x0298ac00, 0x140 }, // Grouplist 87
{ 0x0298ae00, 0x140 }, // Grouplist 88
{ 0x0298b000, 0x140 }, // Grouplist 89
{ 0x0298b200, 0x140 }, // Grouplist 90
{ 0x0298b400, 0x140 }, // Grouplist 91
{ 0x0298b600, 0x140 }, // Grouplist 92
{ 0x0298b800, 0x140 }, // Grouplist 93
{ 0x0298ba00, 0x140 }, // Grouplist 94
{ 0x0298bc00, 0x140 }, // Grouplist 95
{ 0x0298be00, 0x140 }, // Grouplist 96
{ 0x0298c000, 0x140 }, // Grouplist 97
{ 0x0298c200, 0x140 }, // Grouplist 98
{ 0x0298c400, 0x140 }, // Grouplist 99
{ 0x0298c600, 0x140 }, // Grouplist 100
{ 0x0298c800, 0x140 }, // Grouplist 101
{ 0x0298ca00, 0x140 }, // Grouplist 102
{ 0x0298cc00, 0x140 }, // Grouplist 103
{ 0x0298ce00, 0x140 }, // Grouplist 104
{ 0x0298d000, 0x140 }, // Grouplist 105
{ 0x0298d200, 0x140 }, // Grouplist 106
{ 0x0298d400, 0x140 }, // Grouplist 107
{ 0x0298d600, 0x140 }, // Grouplist 108
{ 0x0298d800, 0x140 }, // Grouplist 109
{ 0x0298da00, 0x140 }, // Grouplist 110
{ 0x0298dc00, 0x140 }, // Grouplist 111
{ 0x0298de00, 0x140 }, // Grouplist 112
{ 0x0298e000, 0x140 }, // Grouplist 113
{ 0x0298e200, 0x140 }, // Grouplist 114
{ 0x0298e400, 0x140 }, // Grouplist 115
{ 0x0298e600, 0x140 }, // Grouplist 116
{ 0x0298e800, 0x140 }, // Grouplist 117
{ 0x0298ea00, 0x140 }, // Grouplist 118
{ 0x0298ec00, 0x140 }, // Grouplist 119
{ 0x0298ee00, 0x140 }, // Grouplist 120
{ 0x0298f000, 0x140 }, // Grouplist 121
{ 0x0298f200, 0x140 }, // Grouplist 122
{ 0x0298f400, 0x140 }, // Grouplist 123
{ 0x0298f600, 0x140 }, // Grouplist 124
{ 0x0298f800, 0x140 }, // Grouplist 125
{ 0x0298fa00, 0x140 }, // Grouplist 126
{ 0x0298fc00, 0x140 }, // Grouplist 127
{ 0x0298fe00, 0x140 }, // Grouplist 128
{ 0x02990000, 0x140 }, // Grouplist 129
{ 0x02990200, 0x140 }, // Grouplist 130
{ 0x02990400, 0x140 }, // Grouplist 131
{ 0x02990600, 0x140 }, // Grouplist 132
{ 0x02990800, 0x140 }, // Grouplist 133
{ 0x02990a00, 0x140 }, // Grouplist 134
{ 0x02990c00, 0x140 }, // Grouplist 135
{ 0x02990e00, 0x140 }, // Grouplist 136
{ 0x02991000, 0x140 }, // Grouplist 137
{ 0x02991200, 0x140 }, // Grouplist 138
{ 0x02991400, 0x140 }, // Grouplist 139
{ 0x02991600, 0x140 }, // Grouplist 140
{ 0x02991800, 0x140 }, // Grouplist 141
{ 0x02991a00, 0x140 }, // Grouplist 142
{ 0x02991c00, 0x140 }, // Grouplist 143
{ 0x02991e00, 0x140 }, // Grouplist 144
{ 0x02992000, 0x140 }, // Grouplist 145
{ 0x02992200, 0x140 }, // Grouplist 146
{ 0x02992400, 0x140 }, // Grouplist 147
{ 0x02992600, 0x140 }, // Grouplist 148
{ 0x02992800, 0x140 }, // Grouplist 149
{ 0x02992a00, 0x140 }, // Grouplist 150
{ 0x02992c00, 0x140 }, // Grouplist 151
{ 0x02992e00, 0x140 }, // Grouplist 152
{ 0x02993000, 0x140 }, // Grouplist 153
{ 0x02993200, 0x140 }, // Grouplist 154
{ 0x02993400, 0x140 }, // Grouplist 155
{ 0x02993600, 0x140 }, // Grouplist 156
{ 0x02993800, 0x140 }, // Grouplist 157
{ 0x02993a00, 0x140 }, // Grouplist 158
{ 0x02993c00, 0x140 }, // Grouplist 159
{ 0x02993e00, 0x140 }, // Grouplist 160
{ 0x02994000, 0x140 }, // Grouplist 161
{ 0x02994200, 0x140 }, // Grouplist 162
{ 0x02994400, 0x140 }, // Grouplist 163
{ 0x02994600, 0x140 }, // Grouplist 164
{ 0x02994800, 0x140 }, // Grouplist 165
{ 0x02994a00, 0x140 }, // Grouplist 166
{ 0x02994c00, 0x140 }, // Grouplist 167
{ 0x02994e00, 0x140 }, // Grouplist 168
{ 0x02995000, 0x140 }, // Grouplist 169
{ 0x02995200, 0x140 }, // Grouplist 170
{ 0x02995400, 0x140 }, // Grouplist 171
{ 0x02995600, 0x140 }, // Grouplist 172
{ 0x02995800, 0x140 }, // Grouplist 173
{ 0x02995a00, 0x140 }, // Grouplist 174
{ 0x02995c00, 0x140 }, // Grouplist 175
{ 0x02995e00, 0x140 }, // Grouplist 176
{ 0x02996000, 0x140 }, // Grouplist 177
{ 0x02996200, 0x140 }, // Grouplist 178
{ 0x02996400, 0x140 }, // Grouplist 179
{ 0x02996600, 0x140 }, // Grouplist 180
{ 0x02996800, 0x140 }, // Grouplist 181
{ 0x02996a00, 0x140 }, // Grouplist 182
{ 0x02996c00, 0x140 }, // Grouplist 183
{ 0x02996e00, 0x140 }, // Grouplist 184
{ 0x02997000, 0x140 }, // Grouplist 185
{ 0x02997200, 0x140 }, // Grouplist 186
{ 0x02997400, 0x140 }, // Grouplist 187
{ 0x02997600, 0x140 }, // Grouplist 188
{ 0x02997800, 0x140 }, // Grouplist 189
{ 0x02997a00, 0x140 }, // Grouplist 190
{ 0x02997c00, 0x140 }, // Grouplist 191
{ 0x02997e00, 0x140 }, // Grouplist 192
{ 0x02998000, 0x140 }, // Grouplist 193
{ 0x02998200, 0x140 }, // Grouplist 194
{ 0x02998400, 0x140 }, // Grouplist 195
{ 0x02998600, 0x140 }, // Grouplist 196
{ 0x02998800, 0x140 }, // Grouplist 197
{ 0x02998a00, 0x140 }, // Grouplist 198
{ 0x02998c00, 0x140 }, // Grouplist 199
{ 0x02998e00, 0x140 }, // Grouplist 200
{ 0x02999000, 0x140 }, // Grouplist 201
{ 0x02999200, 0x140 }, // Grouplist 202
{ 0x02999400, 0x140 }, // Grouplist 203
{ 0x02999600, 0x140 }, // Grouplist 204
{ 0x02999800, 0x140 }, // Grouplist 205
{ 0x02999a00, 0x140 }, // Grouplist 206
{ 0x02999c00, 0x140 }, // Grouplist 207
{ 0x02999e00, 0x140 }, // Grouplist 208
{ 0x0299a000, 0x140 }, // Grouplist 209
{ 0x0299a200, 0x140 }, // Grouplist 210
{ 0x0299a400, 0x140 }, // Grouplist 211
{ 0x0299a600, 0x140 }, // Grouplist 212
{ 0x0299a800, 0x140 }, // Grouplist 213
{ 0x0299aa00, 0x140 }, // Grouplist 214
{ 0x0299ac00, 0x140 }, // Grouplist 215
{ 0x0299ae00, 0x140 }, // Grouplist 216
{ 0x0299b000, 0x140 }, // Grouplist 217
{ 0x0299b200, 0x140 }, // Grouplist 218
{ 0x0299b400, 0x140 }, // Grouplist 219
{ 0x0299b600, 0x140 }, // Grouplist 220
{ 0x0299b800, 0x140 }, // Grouplist 221
{ 0x0299ba00, 0x140 }, // Grouplist 222
{ 0x0299bc00, 0x140 }, // Grouplist 223
{ 0x0299be00, 0x140 }, // Grouplist 224
{ 0x0299c000, 0x140 }, // Grouplist 225
{ 0x0299c200, 0x140 }, // Grouplist 226
{ 0x0299c400, 0x140 }, // Grouplist 227
{ 0x0299c600, 0x140 }, // Grouplist 228
{ 0x0299c800, 0x140 }, // Grouplist 229
{ 0x0299ca00, 0x140 }, // Grouplist 230
{ 0x0299cc00, 0x140 }, // Grouplist 231
{ 0x0299ce00, 0x140 }, // Grouplist 232
{ 0x0299d000, 0x140 }, // Grouplist 233
{ 0x0299d200, 0x140 }, // Grouplist 234
{ 0x0299d400, 0x140 }, // Grouplist 235
{ 0x0299d600, 0x140 }, // Grouplist 236
{ 0x0299d800, 0x140 }, // Grouplist 237
{ 0x0299da00, 0x140 }, // Grouplist 238
{ 0x0299dc00, 0x140 }, // Grouplist 239
{ 0x0299de00, 0x140 }, // Grouplist 240
{ 0x0299e000, 0x140 }, // Grouplist 241
{ 0x0299e200, 0x140 }, // Grouplist 242
{ 0x0299e400, 0x140 }, // Grouplist 243
{ 0x0299e600, 0x140 }, // Grouplist 244
{ 0x0299e800, 0x140 }, // Grouplist 245
{ 0x0299ea00, 0x140 }, // Grouplist 246
{ 0x0299ec00, 0x140 }, // Grouplist 247
{ 0x0299ee00, 0x140 }, // Grouplist 248
{ 0x0299f000, 0x140 }, // Grouplist 249
{ 0x0299f200, 0x140 }, // Grouplist 250
{ 0x04280000, 0x300 }, // Unknown index
{ 0, 0 },

View File

@ -41,8 +41,26 @@
#define NSCANL 250
#define NMESSAGES 100
#define MEMSZ 0x10000
//#define MEMSZ 0x4300000
//
// Size of memory image.
// Essentialy a sum of all fragments defined ind868um-map.h.
//
#define MEMSZ 1607296
//
// D868UV radio has a huge internal address space, more than 64 Mbytes.
// The configuration data are dispersed over this space.
// Here is a table of fragments: starting address and length.
// We read these fragments and save them into a file continuously.
//
typedef struct {
unsigned address;
unsigned length;
} fragment_t;
static fragment_t region_map[] = {
#include "d868uv-map.h"
};
//
// Print a generic information about the device.
@ -73,17 +91,33 @@ static void d868uv_print_version(radio_device_t *radio, FILE *out)
//
static void d868uv_download(radio_device_t *radio)
{
int addr;
fragment_t *f;
unsigned file_offset = 0;
unsigned last_printed = 0;
for (addr = 0x00000000; addr < MEMSZ; addr += 1024) {
serial_read_region(addr, &radio_mem[addr], 1024);
for (f=region_map; f->length; f++) {
unsigned addr = f->address;
unsigned nbytes = f->length;
++radio_progress;
if (radio_progress % 32 == 0) {
while (nbytes > 0) {
unsigned n = (nbytes > 32*1024) ? 32*1024 : nbytes;
serial_read_region(addr, &radio_mem[file_offset], n);
file_offset += n;
addr += n;
nbytes -= n;
if (file_offset / (32*1024) != last_printed) {
fprintf(stderr, "#");
fflush(stderr);
last_printed = file_offset / (32*1024);
}
}
}
if (file_offset != MEMSZ) {
fprintf(stderr, "\nWrong MEMSZ=%u for D868UV!\n", MEMSZ);
fprintf(stderr, "Should be %u; check d868uv-map.h!\n", file_offset);
exit(-1);
}
}
//
@ -91,20 +125,33 @@ static void d868uv_download(radio_device_t *radio)
//
static void d868uv_upload(radio_device_t *radio, int cont_flag)
{
//TODO
#if 0
int bno;
fragment_t *f;
unsigned file_offset = 0;
unsigned last_printed = 0;
for (bno=0; bno<MEMSZ/1024; bno++) {
serial_write_region(addr, &radio_mem[bno*1024], 1024);
for (f=region_map; f->length; f++) {
unsigned addr = f->address;
unsigned nbytes = f->length;
++radio_progress;
if (radio_progress % 32 == 0) {
while (nbytes > 0) {
unsigned n = (nbytes > 32*1024) ? 32*1024 : nbytes;
serial_write_region(addr, &radio_mem[file_offset], n);
file_offset += n;
addr += n;
nbytes -= n;
if (file_offset / (32*1024) != last_printed) {
fprintf(stderr, "#");
fflush(stderr);
last_printed = file_offset / (32*1024);
}
}
#endif
}
if (file_offset != MEMSZ) {
fprintf(stderr, "\nWrong MEMSZ=%u for D868UV!\n", MEMSZ);
fprintf(stderr, "Should be %u; check d868uv-map.h!\n", file_offset);
exit(-1);
}
}
//