forked from jackhumbert/pinebook-pro-keyboard-updater
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fw_ansi.a51
8874 lines (8150 loc) · 224 KB
/
fw_ansi.a51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
CSEG AT 0000h
; ====================================
; System Reset
RESET_VEC:
0000 023800 LJMP L0001
; ====================================
; P4.6 Falling Edge
EXT0_IRQVEC:
0003 020026 LJMP L0610
L0642:
0006 53A9FB ANL 0A9h, #0FBh ; 0A9h = IE2
0009 32 RETI
L0611:
000A 32 RETI
; ====================================
; Base Timer0 Interrupt
T0_IRQVEC:
000B 02000A LJMP L0611
L0658:
000E 53A9DF ANL 0A9h, #0DFh ; 0A9h = IE2
0011 32 RETI
CSEG AT 0013h
; ====================================
; Reserved
RESERVED_VEC_0013:
0013 02002E LJMP L0612
L0672:
0016 53A97F ANL 0A9h, #7Fh ; 0A9h = IE2
0019 32 RETI
CSEG AT 001Bh
; ====================================
; Base Timer1 Interrupt
T1_IRQVEC:
001B 0224B4 LJMP L0613
L0861:
001E 023F00 LJMP L0865
0021 22 DB 022h ; '"'
CSEG AT 0023h
; ====================================
; Time Capture0 Interrupt
TC0_IRQVEC:
0023 020046 LJMP L0622
L0610:
0026 C2A8 CLR EX0
0028 32 RETI
CSEG AT 002Bh
; ====================================
; Reserved
RESERVED_VEC_002B:
002B 02004E LJMP L0623
L0612:
002E C2AA CLR EX1
0030 32 RETI
CSEG AT 0033h
; ====================================
; Reserved
RESERVED_VEC_0033:
0033 020056 LJMP L0624
L0220:
0036 00 NOP
0037 00 NOP
0038 00 NOP
0039 00 NOP
003A 00 NOP
003B 00 NOP
003C 00 NOP
003D 00 NOP
003E 00 NOP
003F 00 NOP
0040 00 NOP
0041 00 NOP
0042 22 RET
; ====================================
; SETUP Token Interrupt
STUP_IRQVEC:
0043 0224CF LJMP L0625
L0622:
0046 C2AC CLR ES
0048 32 RETI
CSEG AT 004Bh
; ====================================
; OWSTUP_Interrupt
OWSTUP_IRQVEC_004B:
004B 0224EA LJMP L0641
L0623:
004E C2AD CLR 0ADh ; bit.0ADh = 0
0050 32 RETI
CSEG AT 0053h
; ====================================
; OT0ERR_Interrupt
OT0ERR_IRQVEC_0053:
0053 020006 LJMP L0642
L0624:
0056 C2AE CLR 0AEh ; bit.0AEh = 0
0058 32 RETI
CSEG AT 005Bh
; ====================================
; IN0 Token Interrupt
IN0_IRQVEC:
005B 022505 LJMP L0643
L0483:
005E 8FF3 MOV 0F3h, R7 ; 0F3h = DFC
0060 22 RET
CSEG AT 0063h
; ====================================
; OUT0 Token Interrupt
OUT0_IRQVEC:
0063 022520 LJMP L0648
0066 0227B6 LJMP L0656
CSEG AT 006Bh
; ====================================
; NAKT0, NAKR0, T0STL, R0STL, NAK1, NAK2, IN1, IN2
SIE_IRQVEC:
006B 02000E LJMP L0658
006E 0227B6 LJMP L0656
CSEG AT 0073h
; ====================================
; SUSP/OVL Interrupt
FUN_IRQVEC:
0073 02253B LJMP L0659
CSEG AT 007Bh
; ====================================
; Reserved
RESERVED_VEC_007B:
007B 020016 LJMP L0672
007E 18 DB 018h ; length of string
007F 03 DB 003h ; string type
0080 53 DB 053h ; 'S'
0081 00 DB 000h
0082 49 DB 049h ; 'I'
0083 00 DB 000h
0084 4E DB 04Eh ; 'N'
0085 00 DB 000h
0086 4F DB 04Fh ; 'O'
0087 00 DB 000h
0088 20 DB 020h ; ' '
0089 00 DB 000h
008A 57 DB 057h ; 'W'
008B 00 DB 000h
008C 45 DB 045h ; 'E'
008D 00 DB 000h
008E 41 DB 041h ; 'A'
008F 00 DB 000h
0090 4C DB 04Ch ; 'L'
0091 00 DB 000h
0092 54 DB 054h ; 'T'
0093 00 DB 000h
0094 48 DB 048h ; 'H'
0095 00 DB 000h
0096 00 DB 000h
; this looks like the USB string table
; string index 0 is the language ID list
0097 04 DB 004h ; 4 bytes
0098 03 DB 003h ; string descriptor
0099 09 DB 009h ; 0x0409 = US English
009A 04 DB 004h
; other string indices are whatever the mfr chooses
; based on the USB descriptor, index 1 is mfr name
009B 20 DB 020h ; length of string
009C 03 DB 003h ; string type
009D 48 DB 048h ; 'H'
009E 00 DB 000h
009F 41 DB 041h ; 'A'
00A0 00 DB 000h
00A1 49 DB 049h ; 'I'
00A2 00 DB 000h
00A3 4C DB 04Ch ; 'L'
00A4 00 DB 000h
00A5 55 DB 055h ; 'U'
00A6 00 DB 000h
00A7 43 DB 043h ; 'C'
00A8 00 DB 000h
00A9 4B DB 04Bh ; 'K'
00AA 00 DB 000h
00AB 20 DB 020h ; ' '
00AC 00 DB 000h
00AD 43 DB 043h ; 'C'
00AE 00 DB 000h
00AF 4F DB 04Fh ; 'O'
00B0 00 DB 000h
00B1 2E DB 02Eh ; '.'
00B2 00 DB 000h
00B3 2C DB 02Ch ; ','
00B4 00 DB 000h
00B5 4C DB 04Ch ; 'L'
00B6 00 DB 000h
00B7 54 DB 054h ; 'T'
00B8 00 DB 000h
00B9 44 DB 044h ; 'D'
00BA 00 DB 000h
00BB 00 DB 000h
; based on the USB descriptor, index 2 is product name
00BC 1A DB 01Ah ; length of string
00BD 03 DB 003h ; string type
00BE 55 DB 055h ; 'U'
00BF 00 DB 000h
00C0 53 DB 053h ; 'S'
00C1 00 DB 000h
00C2 42 DB 042h ; 'B'
00C3 00 DB 000h
00C4 20 DB 020h ; ' '
00C5 00 DB 000h
00C6 4B DB 04Bh ; 'K'
00C7 00 DB 000h
00C8 45 DB 045h ; 'E'
00C9 00 DB 000h
00CA 59 DB 059h ; 'Y'
00CB 00 DB 000h
00CC 42 DB 042h ; 'B'
00CD 00 DB 000h
00CE 4F DB 04Fh ; 'O'
00CF 00 DB 000h
00D0 41 DB 041h ; 'A'
00D1 00 DB 000h
00D2 52 DB 052h ; 'R'
00D3 00 DB 000h
00D4 44 DB 044h ; 'D'
00D5 00 DB 000h
00D6 00 DB 000h
; this isn't actually a valid USB string
00D7 58 DB 058h ; 'X' serial number
00D8 57 DB 057h ; 'W'
00D9 2D DB 02Dh ; '-'
00DA 4E DB 04Eh ; 'N'
00DB 31 DB 031h ; '1'
00DC 34 DB 034h ; '4'
00DD 30 DB 030h ; '0'
00DE 31 DB 031h ; '1'
00DF 5F DB 05Fh ; '_'
00E0 41 DB 041h ; 'A'
00E1 4E DB 04Eh ; 'N'
00E2 5F DB 05Fh ; '_'
00E3 50 DB 050h ; 'P'
00E4 54 DB 054h ; 'T'
00E5 50 DB 050h ; 'P'
00E6 5F DB 05Fh ; '_'
00E7 4D DB 04Dh ; 'M'
00E8 42 DB 042h ; 'B'
00E9 32 DB 032h ; '2'
00EA 37 DB 037h ; '7'
00EB 37 DB 037h ; '7'
00EC 5F DB 05Fh ; '_'
00ED 54 DB 054h ; 'T'
00EE 56 DB 056h ; 'V'
00EF 33 DB 033h ; '3'
00F0 2D DB 02Dh ; '-'
00F1 55 DB 055h ; 'U'
00F2 53 DB 053h ; 'S'
00F3 2D DB 02Dh ; '-'
00F4 48 DB 048h ; 'H'
00F5 31 DB 031h ; '1'
00F6 2D DB 02Dh ; '-'
00F7 30 DB 030h ; '0'
00F8 31 DB 031h ; '1'
00F9 2D DB 02Dh ; '-'
00FA 30 DB 030h ; '0'
00FB 30 DB 030h ; '0'
00FC 00 DB 000h
; device descriptor
00FD 12 DB 012h ; bLength -- start device descriptor
00FE 01 DB 001h ; bDescriptorType
00FF 10 DB 010h ; bcdHID
0100 01 DB 001h ; *
0101 00 DB 000h ; class
0102 00 DB 000h ; subclass
0103 00 DB 000h ; protocol
0104 08 DB 008h ; max packet size
0105 8A DB 08Ah ; vendor id
0106 25 DB 025h ; *
0107 1E DB 01Eh ; product id
0108 00 DB 000h ; *
0109 00 DB 000h ; bcd device version
010A 01 DB 001h ; *
010B 01 DB 001h ; manf string i
010C 02 DB 002h ; product string i
010D 00 DB 000h ; serial number
010E 01 DB 001h ; configurations
010F 05 DB 005h ; usage page (usb hid report descriptor start)
0110 01 DB 001h ; generic desktop
0111 09 DB 009h ; usage
0112 06 DB 006h ; keyboard
0113 A1 DB 0A1h ; start collection
0114 01 DB 001h ; application
0115 05 DB 005h ; usage page
0116 07 DB 007h ; keypad
0117 19 DB 019h ; usage min
0118 E0 DB 0E0h ; left control
0119 29 DB 029h ; usage max
011A E7 DB 0E7h ; right gui
011B 15 DB 015h ; logical min
011C 00 DB 000h ; 0
011D 25 DB 025h ; logical max
011E 01 DB 001h ; 1
011F 75 DB 075h ; report size
0120 01 DB 001h ; 1
0121 95 DB 095h ; report count
0122 08 DB 008h ; 8
0123 81 DB 081h ; input
0124 02 DB 002h ; data, variable, absolute
0125 95 DB 095h ; report count
0126 01 DB 001h ; 1
0127 75 DB 075h ; report size
0128 08 DB 008h ; 8
0129 81 DB 081h ; input
012A 01 DB 001h ; constant, array, absolute
012B 95 DB 095h ; report count
012C 03 DB 003h ; 3
012D 75 DB 075h ; report size
012E 01 DB 001h ; 1
012F 05 DB 005h ; usage page
0130 08 DB 008h ; leds
0131 19 DB 019h ; usage min
0132 01 DB 001h ; num lock
0133 29 DB 029h ; usage max
0134 03 DB 003h ; scroll lock
0135 91 DB 091h ; output
0136 02 DB 002h ; data, variable, absolute
0137 95 DB 095h ; report count
0138 05 DB 005h ; 5
0139 75 DB 075h ; report size
013A 01 DB 001h ; 1
013B 91 DB 091h ; output
013C 01 DB 001h ; constant, array, absolute
013D 95 DB 095h ; report count
013E 06 DB 006h ; 6
013F 75 DB 075h ; report size
0140 08 DB 008h ; 8
0141 15 DB 015h ; logical min
0142 00 DB 000h ; 0
0143 26 DB 026h ; logical max
0144 FF DB 0FFh ; 0x00FF
0145 00 DB 000h ;
0146 05 DB 005h ; usage page
0147 07 DB 007h ; keyboard
0148 19 DB 019h ; usage min
0149 00 DB 000h ; 0
014A 2A DB 02Ah ; usage max
014B FF DB 0FFh ; 0x00FF
014C 00 DB 000h ;
014D 81 DB 081h ; input
014E 00 DB 000h ; data, array, absolute
014F C0 DB 0C0h ; end collection
0150 05 DB 005h ; usage page
0151 01 DB 001h ; generic desktop
0152 09 DB 009h ; usage
0153 02 DB 002h ; mouse
0154 A1 DB 0A1h ; start collection
0155 01 DB 001h ; application
0156 85 DB 085h ; report id
0157 01 DB 001h ; 1
0158 09 DB 009h ; usage
0159 01 DB 001h ; pointer
015A A1 DB 0A1h ; start collection
015B 00 DB 000h ; physical
015C 05 DB 005h ; usage page
015D 09 DB 009h ; button
015E 19 DB 019h ; usage min
015F 01 DB 001h ; 1
0160 29 DB 029h ; usage max
0161 03 DB 003h ; 3
0162 15 DB 015h ; logical min
0163 00 DB 000h ; 0
0164 25 DB 025h ; logical max
0165 01 DB 001h ; 1
0166 95 DB 095h ; report count
0167 03 DB 003h ; 3
0168 75 DB 075h ; report size
0169 01 DB 001h ; 1
016A 81 DB 081h ; input
016B 02 DB 002h ; data, variable, absolute
016C 95 DB 095h ; report count
016D 01 DB 001h ; 1
016E 75 DB 075h ; report size
016F 05 DB 005h ; 5
0170 81 DB 081h ; input
0171 03 DB 003h ; constant, variable, absolute
0172 05 DB 005h ; usage page
0173 01 DB 001h ; generic desktop
0174 09 DB 009h ; usage
0175 30 DB 030h ; x
0176 09 DB 009h ; usage
0177 31 DB 031h ; y
0178 15 DB 015h ; logical min
0179 81 DB 081h ; 0x81
017A 25 DB 025h ; logical max
017B 7F DB 07Fh ; 0x7F
017C 75 DB 075h ; report size
017D 08 DB 008h ; 8
017E 95 DB 095h ; report count
017F 02 DB 002h ; 2
0180 81 DB 081h ; input
0181 06 DB 006h ; data, variable, relative
0182 C0 DB 0C0h ; end collection
0183 C0 DB 0C0h ; end collection
0184 05 DB 005h ; usage page
0185 0D DB 00Dh ; digitizers
0186 09 DB 009h ; usage
0187 05 DB 005h ; touch pad
0188 A1 DB 0A1h ; start collection
0189 01 DB 001h ; application
018A 85 DB 085h ; report id
018B 1E DB 01Eh ; 0x1E
018C 09 DB 009h ; usage
018D 22 DB 022h ; finger
018E A1 DB 0A1h ; start collection
018F 02 DB 002h ; logical
0190 15 DB 015h ; logical min
0191 00 DB 000h ; 0
0192 25 DB 025h ; logical max
0193 01 DB 001h ; 1
0194 09 DB 009h ; usage
0195 47 DB 047h ; feature notification? or reserved
0196 09 DB 009h ; usage
0197 42 DB 042h ; tip switch?
0198 95 DB 095h ; report count
0199 02 DB 002h ; 2
019A 75 DB 075h ; report size
019B 01 DB 001h ; 1
019C 81 DB 081h ; input
019D 02 DB 002h ; data, variable, absolute
019E 95 DB 095h ; report count
019F 01 DB 001h ; 1
01A0 75 DB 075h ; report size
01A1 02 DB 002h ; 2
01A2 25 DB 025h ; logical max
01A3 03 DB 003h ; 3
01A4 09 DB 009h ; usage
01A5 51 DB 051h ; reserved?
01A6 81 DB 081h ; input
01A7 02 DB 002h ; data, variable, absolute
01A8 09 DB 009h ; usage
01A9 54 DB 054h ; reserved?
01AA 25 DB 025h ; logical max
01AB 07 DB 007h ; 7
01AC 95 DB 095h ; report count
01AD 01 DB 001h ; 1
01AE 75 DB 075h ; report size
01AF 03 DB 003h ; 3
01B0 81 DB 081h ; input
01B1 02 DB 002h ; data, variable, absolute
01B2 05 DB 005h ; usage page
01B3 09 DB 009h ; button
01B4 09 DB 009h ; usage
01B5 01 DB 001h ; button 1
01B6 25 DB 025h ; logical max
01B7 01 DB 001h ; 1
01B8 75 DB 075h ; report size
01B9 01 DB 001h ; 1
01BA 95 DB 095h ; report count
01BB 01 DB 001h ; 1
01BC 81 DB 081h ; input
01BD 02 DB 002h ; data, variable, absolute
01BE 05 DB 005h ; usage page
01BF 01 DB 001h ; generic desktop
01C0 15 DB 015h ; logical min
01C1 00 DB 000h ; 0
01C2 26 DB 026h ; logical max
01C3 78 DB 078h ; 0x0578
01C4 05 DB 005h ; *
01C5 75 DB 075h ; report size
01C6 10 DB 010h ; 0x10
01C7 55 DB 055h ; unit exponent
01C8 0E DB 00Eh ; 0
01C9 65 DB 065h ; unit
01CA 11 DB 011h ; SI Lin:Distance
01CB 09 DB 009h ; usage
01CC 30 DB 030h ; reserved
01CD 35 DB 035h ; physical minimum
01CE 00 DB 000h ; 0
01CF 46 DB 046h ; physical maximum
01D0 E0 DB 0E0h ; 0x1E0
01D1 01 DB 001h ; *
01D2 95 DB 095h ; report count
01D3 01 DB 001h ; 1
01D4 81 DB 081h ; input
01D5 02 DB 002h ; data, variable, absolute
01D6 26 DB 026h ; logical max
01D7 92 DB 092h ; 0x0392
01D8 03 DB 003h ; *
01D9 46 DB 046h ; physical maximum
01DA 40 DB 040h ; 0x0140
01DB 01 DB 001h ; *
01DC 09 DB 009h ; usage
01DD 31 DB 031h ; 0x31
01DE 81 DB 081h ; input
01DF 02 DB 002h ; data, variable, absolute
01E0 C0 DB 0C0h ; end collection
01E1 A1 DB 0A1h ; collection
01E2 02 DB 002h ; logical
01E3 55 DB 055h ; unit exp
01E4 0C DB 00Ch ; -4
01E5 66 DB 066h ; uint
01E6 01 DB 001h ; time
01E7 10 DB 010h ; seconds
01E8 47 DB 047h ; physical max
01E9 FF DB 0FFh ; 0x0000FFFF
01EA FF DB 0FFh ; *
01EB 00 DB 000h ; *
01EC 00 DB 000h ; *
01ED 27 DB 027h ; logical max
01EE FF DB 0FFh ; 0x0000FFFF
01EF FF DB 0FFh ; *
01F0 00 DB 000h ; *
01F1 00 DB 000h ; *
01F2 75 DB 075h ; report size
01F3 10 DB 010h ; 0x10
01F4 95 DB 095h ; report count
01F5 01 DB 001h ; 1
01F6 05 DB 005h ; usage page
01F7 0D DB 00Dh ; digitizer
01F8 09 DB 009h ; usage
01F9 56 DB 056h ; 0x56
01FA 81 DB 081h ; input
01FB 02 DB 002h ; data, variable, absolute
01FC 05 DB 005h ; usage page
01FD 0D DB 00Dh ; digitizer
01FE 85 DB 085h ; report id
01FF 1F DB 01Fh ; 0x1F (31)
0200 09 DB 009h ; usage
0201 55 DB 055h ; 0x55
0202 09 DB 009h ; usage
0203 59 DB 059h ; 0x59
0204 75 DB 075h ; report size
0205 04 DB 004h ; 4
0206 95 DB 095h ; report count
0207 02 DB 002h ; 2
0208 25 DB 025h ; logical max
0209 0F DB 00Fh ; 15
020A B1 DB 0B1h ; feature
020B 02 DB 002h ; data, variable, absolute
020C 05 DB 005h ; usage page
020D 0D DB 00Dh ; digitizer
020E 85 DB 085h ; report id
020F 25 DB 025h ; 0x25 (37)
0210 09 DB 009h ; usage
0211 60 DB 060h ; 0x60
0212 75 DB 075h ; report size
0213 01 DB 001h ; 1
0214 95 DB 095h ; report count
0215 01 DB 001h ; 1
0216 15 DB 015h ; logical min
0217 00 DB 000h ; 0
0218 25 DB 025h ; '%'
0219 01 DB 001h
021A B1 DB 0B1h ; feature
021B 02 DB 002h
021C 95 DB 095h ; report count
021D 07 DB 007h
021E B1 DB 0B1h ; feature
021F 03 DB 003h
0220 06 DB 006h ; I stopped decoding it here - see the usb_hid_ansi.txt
0221 00 DB 000h ; for all of the info contained in this block
0222 FF DB 0FFh
0223 85 DB 085h
0224 20 DB 020h ; ' '
0225 09 DB 009h ; usage
0226 C5 DB 0C5h
0227 15 DB 015h ; logical min
0228 00 DB 000h
0229 26 DB 026h ; logical max
022A FF DB 0FFh
022B 00 DB 000h
022C 75 DB 075h ; report size
022D 08 DB 008h
022E 96 DB 096h
022F 00 DB 000h
0230 01 DB 001h
0231 B1 DB 0B1h ; feature
0232 02 DB 002h
0233 C0 DB 0C0h ; end collection
0234 C0 DB 0C0h ; end collection
0235 05 DB 005h
0236 0D DB 00Dh
0237 09 DB 009h ; usage
0238 0E DB 00Eh
0239 A1 DB 0A1h ; start collection
023A 01 DB 001h
023B 85 DB 085h
023C 22 DB 022h ; '"'
023D 09 DB 009h ; usage
023E 22 DB 022h ; '"'
023F A1 DB 0A1h ; start collection
0240 02 DB 002h
0241 09 DB 009h ; usage
0242 52 DB 052h ; 'R'
0243 15 DB 015h ; logical min
0244 00 DB 000h
0245 25 DB 025h ; '%'
0246 0A DB 00Ah
0247 75 DB 075h ; report size
0248 08 DB 008h
0249 95 DB 095h ; report count
024A 01 DB 001h
024B B1 DB 0B1h ; feature
024C 02 DB 002h
024D C0 DB 0C0h ; end collection
024E 09 DB 009h ; usage
024F 22 DB 022h ; '"'
0250 A1 DB 0A1h ; start collection
0251 00 DB 000h
0252 85 DB 085h
0253 23 DB 023h ; '#'
0254 09 DB 009h ; usage
0255 57 DB 057h ; 'W'
0256 09 DB 009h ; usage
0257 58 DB 058h ; 'X'
0258 75 DB 075h ; report size
0259 01 DB 001h
025A 95 DB 095h ; report count
025B 02 DB 002h
025C 25 DB 025h ; '%'
025D 01 DB 001h
025E B1 DB 0B1h ; feature
025F 02 DB 002h
0260 95 DB 095h ; report count
0261 06 DB 006h
0262 B1 DB 0B1h ; feature
0263 03 DB 003h
0264 C0 DB 0C0h ; end collection
0265 C0 DB 0C0h ; end collection
0266 06 DB 006h
0267 01 DB 001h
0268 00 DB 000h
0269 09 DB 009h ; usage
026A 80 DB 080h
026B A1 DB 0A1h ; start collection
026C 01 DB 001h ; application
026D 85 DB 085h ; report id
026E 02 DB 002h ; 2
026F 25 DB 025h ; '%'
0270 01 DB 001h
0271 15 DB 015h ; logical min
0272 00 DB 000h
0273 75 DB 075h ; report size
0274 01 DB 001h
0275 0A DB 00Ah
0276 81 DB 081h
0277 00 DB 000h
0278 0A DB 00Ah
0279 82 DB 082h
027A 00 DB 000h
027B 0A DB 00Ah
027C 83 DB 083h
027D 00 DB 000h
027E 95 DB 095h ; report count
027F 03 DB 003h
0280 81 DB 081h
0281 06 DB 006h
0282 95 DB 095h ; report count
0283 05 DB 005h
0284 81 DB 081h
0285 01 DB 001h
0286 C0 DB 0C0h ; end collection
0287 06 DB 006h
0288 0C DB 00Ch
0289 00 DB 000h
028A 09 DB 009h ; usage
028B 01 DB 001h ;
028C A1 DB 0A1h ; start collection
028D 01 DB 001h ; application
028E 85 DB 085h ; report id
028F 03 DB 003h ; 3
0290 25 DB 025h ; '%'
0291 01 DB 001h
0292 15 DB 015h ; logical min
0293 00 DB 000h
0294 75 DB 075h ; report size
0295 01 DB 001h
0296 0A DB 00Ah
0297 B5 DB 0B5h
0298 00 DB 000h
0299 0A DB 00Ah
029A B6 DB 0B6h
029B 00 DB 000h
029C 0A DB 00Ah
029D 6F DB 06Fh ; 'o'
029E 00 DB 000h
029F 0A DB 00Ah
02A0 70 DB 070h ; 'p'
02A1 00 DB 000h
02A2 0A DB 00Ah
02A3 E2 DB 0E2h
02A4 00 DB 000h
02A5 0A DB 00Ah
02A6 A2 DB 0A2h
02A7 00 DB 000h
02A8 0A DB 00Ah
02A9 E9 DB 0E9h
02AA 00 DB 000h
02AB 0A DB 00Ah
02AC EA DB 0EAh
02AD 00 DB 000h
02AE 95 DB 095h ; report count
02AF 08 DB 008h
02B0 81 DB 081h
02B1 02 DB 002h
02B2 0A DB 00Ah
02B3 83 DB 083h
02B4 01 DB 001h
02B5 0A DB 00Ah
02B6 94 DB 094h
02B7 01 DB 001h
02B8 0A DB 00Ah
02B9 86 DB 086h
02BA 01 DB 001h
02BB 0A DB 00Ah
02BC 88 DB 088h
02BD 01 DB 001h
02BE 0A DB 00Ah
02BF 8A DB 08Ah
02C0 01 DB 001h
02C1 0A DB 00Ah
02C2 92 DB 092h
02C3 01 DB 001h
02C4 0A DB 00Ah
02C5 B7 DB 0B7h
02C6 00 DB 000h
02C7 0A DB 00Ah
02C8 CD DB 0CDh
02C9 00 DB 000h
02CA 95 DB 095h ; report count
02CB 08 DB 008h
02CC 81 DB 081h
02CD 02 DB 002h
02CE 0A DB 00Ah
02CF 21 DB 021h ; '!'
02D0 02 DB 002h
02D1 0A DB 00Ah
02D2 23 DB 023h ; '#'
02D3 02 DB 002h
02D4 0A DB 00Ah
02D5 24 DB 024h ; '$'
02D6 02 DB 002h
02D7 0A DB 00Ah
02D8 25 DB 025h ; '%'
02D9 02 DB 002h
02DA 0A DB 00Ah
02DB 26 DB 026h ; logical max
02DC 02 DB 002h
02DD 0A DB 00Ah
02DE 27 DB 027h ; '''
02DF 02 DB 002h
02E0 0A DB 00Ah
02E1 2A DB 02Ah ; usage max
02E2 02 DB 002h
02E3 0A DB 00Ah
02E4 B1 DB 0B1h ; feature
02E5 02 DB 002h
02E6 95 DB 095h ; report count
02E7 08 DB 008h
02E8 81 DB 081h
02E9 02 DB 002h
02EA C0 DB 0C0h ; end collection
02EB 05 DB 005h
02EC 01 DB 001h
02ED 09 DB 009h
02EE 0C DB 00Ch
02EF A1 DB 0A1h ; start collection
02F0 01 DB 001h
02F1 85 DB 085h
02F2 09 DB 009h
02F3 15 DB 015h ; logical min
02F4 00 DB 000h
02F5 25 DB 025h ; '%'
02F6 01 DB 001h
02F7 09 DB 009h
02F8 C6 DB 0C6h
02F9 95 DB 095h ; report count
02FA 01 DB 001h
02FB 75 DB 075h ; report size
02FC 01 DB 001h
02FD 81 DB 081h
02FE 06 DB 006h
02FF 75 DB 075h ; report size
0300 07 DB 007h
0301 81 DB 081h
0302 03 DB 003h
0303 C0 DB 0C0h ; end collection
0304 06 DB 006h
0305 00 DB 000h
0306 FF DB 0FFh
0307 09 DB 009h
0308 01 DB 001h
0309 A1 DB 0A1h ; start collection
030A 01 DB 001h
030B 85 DB 085h
030C 06 DB 006h
030D 15 DB 015h ; logical min
030E 00 DB 000h
030F 25 DB 025h ; '%'
0310 FF DB 0FFh
0311 1A DB 01Ah ; start collection
0312 01 DB 001h
0313 00 DB 000h
0314 2A DB 02Ah ; usage max
0315 0F DB 00Fh
0316 04 DB 004h
0317 75 DB 075h ; report size
0318 08 DB 008h
0319 96 DB 096h
031A 0F DB 00Fh
031B 04 DB 004h
031C B1 DB 0B1h ; feature
031D 02 DB 002h
031E C0 DB 0C0h ; end collection
031F 06 DB 006h
0320 00 DB 000h
0321 FF DB 0FFh
0322 09 DB 009h
0323 01 DB 001h
0324 A1 DB 0A1h
0325 01 DB 001h
0326 85 DB 085h
0327 05 DB 005h
0328 15 DB 015h ; logical min
0329 00 DB 000h
032A 25 DB 025h ; '%'
032B FF DB 0FFh
032C 19 DB 019h ; usage min
032D 01 DB 001h
032E 29 DB 029h ; ')'
032F 05 DB 005h
0330 75 DB 075h ; report size
0331 08 DB 008h
0332 95 DB 095h ; report count
0333 05 DB 005h
0334 B1 DB 0B1h ; feature
0335 02 DB 002h
0336 C0 DB 0C0h ; end collection
0337 20 DB 020h ; something else referenced in L0781
0338 FC DB 0FCh
0339 28 DB 028h ; '('
033A FE DB 0FEh
033B 84 DB 084h
033C 40 DB 040h ; '@'
033D CB DB 0CBh
033E 9A DB 09Ah
033F 87 DB 087h
0340 0D DB 00Dh
0341 BE DB 0BEh ; KC_BRIGHTNESS_DOWN
0342 57 DB 057h ; 'W'
0343 3C DB 03Ch ; KC_F3
0344 B6 DB 0B6h
0345 70 DB 070h ; 'p'
0346 09 DB 009h
0347 88 DB 088h
0348 07 DB 007h
0349 97 DB 097h
034A 2D DB 02Dh ; '-'
034B 2B DB 02Bh ; '+'
034C E3 DB 0E3h
034D 38 DB 038h ; '8'
034E 34 DB 034h ; '4'
034F B6 DB 0B6h
0350 6C DB 06Ch ; 'l'
0351 ED DB 0EDh
0352 B0 DB 0B0h
0353 F7 DB 0F7h
0354 E5 DB 0E5h
0355 9C DB 09Ch
0356 F6 DB 0F6h
0357 C2 DB 0C2h
0358 2E DB 02Eh ; '.'
0359 84 DB 084h
035A 1B DB 01Bh
035B E8 DB 0E8h
035C B4 DB 0B4h
035D 51 DB 051h ; 'Q'
035E 78 DB 078h ; 'x'
035F 43 DB 043h ; 'C'
0360 1F DB 01Fh
0361 28 DB 028h ; '('
0362 4B DB 04Bh ; 'K'
0363 7C DB 07Ch ; '|'
0364 2D DB 02Dh ; '-'
0365 53 DB 053h ; 'S'
0366 AF DB 0AFh
0367 FC DB 0FCh
0368 47 DB 047h ; 'G'
0369 70 DB 070h ; 'p'
036A 1B DB 01Bh
036B 59 DB 059h ; 'Y'
036C 6F DB 06Fh ; 'o'
036D 74 DB 074h ; 't'
036E 43 DB 043h ; 'C'
036F C4 DB 0C4h
0370 F3 DB 0F3h
0371 47 DB 047h ; 'G'
0372 18 DB 018h
0373 53 DB 053h ; 'S'
0374 1A DB 01Ah
0375 A2 DB 0A2h
0376 A1 DB 0A1h
0377 71 DB 071h ; 'q'
0378 C7 DB 0C7h
0379 95 DB 095h ; report count
037A 0E DB 00Eh
037B 31 DB 031h ; '1'
037C 55 DB 055h ; 'U'
037D 21 DB 021h ; '!'
037E D3 DB 0D3h
037F B5 DB 0B5h
0380 1E DB 01Eh
0381 E9 DB 0E9h
0382 0C DB 00Ch
0383 BA DB 0BAh
0384 EC DB 0ECh