This repository has been archived by the owner on Jan 27, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
openKeyboard.lst
2797 lines (2787 loc) · 85.4 KB
/
openKeyboard.lst
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
; ASM code generated by mikroVirtualMachine for PIC - V. 8.0.0.0
; Date/Time: 23/08/2008 13.42.24
; Info: http://www.mikroe.com
; ADDRESS OPCODE ASM
; ----------------------------------------------
$0000 $158A BSF PCLATH, 3
$0001 $286B GOTO _main
$0020 $ _exitPowerSave:
;openKeyboard.c,123 :: void exitPowerSave(){
;openKeyboard.c,124 :: INTCON.RBIE = 0; // disables PORTB on-change interrupt
$0020 $118B BCF INTCON, 3
;openKeyboard.c,125 :: }
$0021 $0008 RETURN
$0004 $ _interrupt:
$0004 $00FF MOVWF STACK_15
$0005 $0E03 SWAPF STATUS, 0
$0006 $0183 CLRF STATUS
$0007 $00D9 MOVWF ?saveSTATUS
$0008 $0804 MOVF FSR, 0
$0009 $00D8 MOVWF ?saveFSR
$000A $080A MOVF PCLATH, 0
$000B $00DA MOVWF ?savePCLATH
$000C $018A CLRF PCLATH
$000D $0870 MOVF STACK_0, 0
$000E $00E5 MOVWF STSAVED_0
;openKeyboard.c,442 :: void interrupt() {
;openKeyboard.c,443 :: if (INTCON.RBIF) { // SOMETHING CHANGED ON PORTB...
$000F $1C0B BTFSS INTCON, 0
$0010 $2813 GOTO L_interrupt_85
;openKeyboard.c,444 :: exitPowerSave(); // just wakeup and so some scanning...
$0011 $2020 CALL _exitPowerSave
;openKeyboard.c,445 :: INTCON.RBIF = 0; // clear intr flag
$0012 $100B BCF INTCON, 0
;openKeyboard.c,446 :: }
$0013 $ L_interrupt_85:
;openKeyboard.c,451 :: }
$0013 $ L_Interrupt_end:
$0013 $1303 BCF STATUS, RP1
$0014 $1283 BCF STATUS, RP0
$0015 $0865 MOVF STSAVED_0, 0
$0016 $00F0 MOVWF STACK_0
$0017 $085A MOVF ?savePCLATH, 0
$0018 $008A MOVWF PCLATH
$0019 $0858 MOVF ?saveFSR, 0
$001A $0084 MOVWF FSR
$001B $0E59 SWAPF ?saveSTATUS, 0
$001C $0083 MOVWF STATUS
$001D $0EFF SWAPF STACK_15, 1
$001E $0E7F SWAPF STACK_15, 0
$001F $0009 RETFIE
$0022 $ _Mul_16x16_S:
$0022 $1303 BCF STATUS, RP1
$0023 $1283 BCF STATUS, RP0
$0024 $01FB CLRF STACK_11
$0025 $01FA CLRF STACK_10
$0026 $01F9 CLRF STACK_9
$0027 $3080 MOVLW 128
$0028 $00F8 MOVWF STACK_8
$0029 $01FD CLRF STACK_13
$002A $1FF1 BTFSS STACK_1, 7
$002B $2832 GOTO $+7
$002C $09F1 COMF STACK_1, F
$002D $09F0 COMF STACK_0, F
$002E $0AF0 INCF STACK_0, F
$002F $1903 BTFSC STATUS, Z
$0030 $0AF1 INCF STACK_1, F
$0031 $0AFD INCF STACK_13, F
$0032 $1FF5 BTFSS STACK_5, 7
$0033 $283A GOTO $+7
$0034 $09F5 COMF STACK_5, F
$0035 $09F4 COMF STACK_4, F
$0036 $0AF4 INCF STACK_4, F
$0037 $1903 BTFSC STATUS, Z
$0038 $0AF5 INCF STACK_5, F
$0039 $0AFD INCF STACK_13, F
$003A $0CF1 RRF STACK_1, F
$003B $0CF0 RRF STACK_0, F
$003C $1C03 BTFSS STATUS, C
$003D $2847 GOTO $+10
$003E $0874 MOVF STACK_4, W
$003F $07F9 ADDWF STACK_9, F
$0040 $0875 MOVF STACK_5, W
$0041 $1803 BTFSC STATUS, C
$0042 $0F75 INCFSZ STACK_5, W
$0043 $07FA ADDWF STACK_10, F
$0044 $1803 BTFSC STATUS, C
$0045 $0AFB INCF STACK_11, F
$0046 $1003 BCF STATUS, C
$0047 $1FF0 BTFSS STACK_0, 7
$0048 $284F GOTO $+7
$0049 $0874 MOVF STACK_4, W
$004A $07FA ADDWF STACK_10, F
$004B $1803 BTFSC STATUS, C
$004C $0AFB INCF STACK_11, F
$004D $0875 MOVF STACK_5, W
$004E $07FB ADDWF STACK_11, F
$004F $0CFB RRF STACK_11, F
$0050 $0CFA RRF STACK_10, F
$0051 $0CF9 RRF STACK_9, F
$0052 $0CF8 RRF STACK_8, F
$0053 $1C03 BTFSS STATUS, C
$0054 $283A GOTO $-26
$0055 $1C7D BTFSS STACK_13, 0
$0056 $2862 GOTO $+12
$0057 $09FB COMF STACK_11, F
$0058 $09FA COMF STACK_10, F
$0059 $09F9 COMF STACK_9, F
$005A $09F8 COMF STACK_8, F
$005B $0AF8 INCF STACK_8, F
$005C $1903 BTFSC STATUS, Z
$005D $0AF9 INCF STACK_9, F
$005E $1903 BTFSC STATUS, Z
$005F $0AFA INCF STACK_10, F
$0060 $1903 BTFSC STATUS, Z
$0061 $0AFB INCF STACK_11, F
$0062 $087B MOVF STACK_11, W
$0063 $00F3 MOVWF STACK_3
$0064 $087A MOVF STACK_10, W
$0065 $00F2 MOVWF STACK_2
$0066 $0879 MOVF STACK_9, W
$0067 $00F1 MOVWF STACK_1
$0068 $0878 MOVF STACK_8, W
$0069 $00F0 MOVWF STACK_0
$006A $0000 NOP
$006B $0008 RETURN
$006C $ _PWM1_Start:
$006C $1303 BCF STATUS, RP1
$006D $1683 BSF STATUS, RP0
$006E $1107 BCF TRISC, 2
$006F $1283 BCF STATUS, RP0
$0070 $1512 BSF T2CON, 2
$0071 $300C MOVLW 12
$0072 $0497 IORWF CCP1CON, 1
$0073 $0008 RETURN
$0074 $ _PWM2_Start:
$0074 $1303 BCF STATUS, RP1
$0075 $1683 BSF STATUS, RP0
$0076 $1087 BCF TRISC, 1
$0077 $1283 BCF STATUS, RP0
$0078 $1512 BSF T2CON, 2
$0079 $300C MOVLW 12
$007A $049D IORWF CCP2CON, 1
$007B $0008 RETURN
$007C $ _PWM1_Change_Duty:
$007C $1303 BCF STATUS, RP1
$007D $1683 BSF STATUS, RP0
$007E $0812 MOVF PR2, 0
$007F $3F01 ADDLW 1
$0080 $00F0 MOVWF STACK_0
$0081 $01F1 CLRF STACK_0+1
$0082 $1803 BTFSC STATUS, C
$0083 $0AF1 INCF STACK_0+1, 1
$0084 $1283 BCF STATUS, RP0
$0085 $0864 MOVF FARG_PWM1_Change_Duty+0, 0
$0086 $00F4 MOVWF STACK_4
$0087 $01F5 CLRF STACK_4+1
$0088 $2022 CALL _mul_16x16_s
$0089 $3006 MOVLW 6
$008A $00F2 MOVWF STACK_2
$008B $0870 MOVF STACK_0, 0
$008C $00F4 MOVWF STACK_4
$008D $0871 MOVF STACK_0+1, 0
$008E $00F5 MOVWF STACK_4+1
$008F $0872 MOVF STACK_2, 0
$0090 $ L_PWM1_Change_Duty_2:
$0090 $1903 BTFSC STATUS, Z
$0091 $2899 GOTO L_PWM1_Change_Duty_3
$0092 $1303 BCF STATUS, RP1
$0093 $1283 BCF STATUS, RP0
$0094 $0CF5 RRF STACK_4+1, 1
$0095 $0CF4 RRF STACK_4, 1
$0096 $13F5 BCF STACK_4+1, 7
$0097 $3FFF ADDLW 255
$0098 $2890 GOTO L_PWM1_Change_Duty_2
$0099 $ L_PWM1_Change_Duty_3:
$0099 $1303 BCF STATUS, RP1
$009A $1283 BCF STATUS, RP0
$009B $0874 MOVF STACK_4, 0
$009C $00F0 MOVWF STACK_0
$009D $0DF0 RLF STACK_0, 1
$009E $1070 BCF STACK_0, 0
$009F $0DF0 RLF STACK_0, 1
$00A0 $1070 BCF STACK_0, 0
$00A1 $0DF0 RLF STACK_0, 1
$00A2 $1070 BCF STACK_0, 0
$00A3 $0DF0 RLF STACK_0, 1
$00A4 $1070 BCF STACK_0, 0
$00A5 $3030 MOVLW 48
$00A6 $0570 ANDWF STACK_0, 0
$00A7 $00F3 MOVWF STACK_3
$00A8 $0874 MOVF STACK_4, 0
$00A9 $00F0 MOVWF STACK_0
$00AA $0875 MOVF STACK_4+1, 0
$00AB $00F1 MOVWF STACK_0+1
$00AC $0CF1 RRF STACK_0+1, 1
$00AD $0CF0 RRF STACK_0, 1
$00AE $13F1 BCF STACK_0+1, 7
$00AF $0CF1 RRF STACK_0+1, 1
$00B0 $0CF0 RRF STACK_0, 1
$00B1 $13F1 BCF STACK_0+1, 7
$00B2 $0870 MOVF STACK_0, 0
$00B3 $0095 MOVWF CCPR1L
$00B4 $300F MOVLW 15
$00B5 $0597 ANDWF CCP1CON, 1
$00B6 $0873 MOVF STACK_3, 0
$00B7 $0497 IORWF CCP1CON, 1
$00B8 $0008 RETURN
$00B9 $ _PWM2_Change_Duty:
$00B9 $1303 BCF STATUS, RP1
$00BA $1683 BSF STATUS, RP0
$00BB $0812 MOVF PR2, 0
$00BC $3F01 ADDLW 1
$00BD $00F0 MOVWF STACK_0
$00BE $01F1 CLRF STACK_0+1
$00BF $1803 BTFSC STATUS, C
$00C0 $0AF1 INCF STACK_0+1, 1
$00C1 $1283 BCF STATUS, RP0
$00C2 $0864 MOVF FARG_PWM2_Change_Duty+0, 0
$00C3 $00F4 MOVWF STACK_4
$00C4 $01F5 CLRF STACK_4+1
$00C5 $2022 CALL _mul_16x16_s
$00C6 $3006 MOVLW 6
$00C7 $00F2 MOVWF STACK_2
$00C8 $0870 MOVF STACK_0, 0
$00C9 $00F4 MOVWF STACK_4
$00CA $0871 MOVF STACK_0+1, 0
$00CB $00F5 MOVWF STACK_4+1
$00CC $0872 MOVF STACK_2, 0
$00CD $ L_PWM2_Change_Duty_0:
$00CD $1903 BTFSC STATUS, Z
$00CE $28D6 GOTO L_PWM2_Change_Duty_1
$00CF $1303 BCF STATUS, RP1
$00D0 $1283 BCF STATUS, RP0
$00D1 $0CF5 RRF STACK_4+1, 1
$00D2 $0CF4 RRF STACK_4, 1
$00D3 $13F5 BCF STACK_4+1, 7
$00D4 $3FFF ADDLW 255
$00D5 $28CD GOTO L_PWM2_Change_Duty_0
$00D6 $ L_PWM2_Change_Duty_1:
$00D6 $1303 BCF STATUS, RP1
$00D7 $1283 BCF STATUS, RP0
$00D8 $0874 MOVF STACK_4, 0
$00D9 $00F0 MOVWF STACK_0
$00DA $0DF0 RLF STACK_0, 1
$00DB $1070 BCF STACK_0, 0
$00DC $0DF0 RLF STACK_0, 1
$00DD $1070 BCF STACK_0, 0
$00DE $0DF0 RLF STACK_0, 1
$00DF $1070 BCF STACK_0, 0
$00E0 $0DF0 RLF STACK_0, 1
$00E1 $1070 BCF STACK_0, 0
$00E2 $3030 MOVLW 48
$00E3 $0570 ANDWF STACK_0, 0
$00E4 $00F3 MOVWF STACK_3
$00E5 $0874 MOVF STACK_4, 0
$00E6 $00F0 MOVWF STACK_0
$00E7 $0875 MOVF STACK_4+1, 0
$00E8 $00F1 MOVWF STACK_0+1
$00E9 $0CF1 RRF STACK_0+1, 1
$00EA $0CF0 RRF STACK_0, 1
$00EB $13F1 BCF STACK_0+1, 7
$00EC $0CF1 RRF STACK_0+1, 1
$00ED $0CF0 RRF STACK_0, 1
$00EE $13F1 BCF STACK_0+1, 7
$00EF $0870 MOVF STACK_0, 0
$00F0 $009B MOVWF CCPR2L
$00F1 $300F MOVLW 15
$00F2 $059D ANDWF CCP2CON, 1
$00F3 $0873 MOVF STACK_3, 0
$00F4 $049D IORWF CCP2CON, 1
$00F5 $0008 RETURN
$00F6 $ _PWM1_Stop:
$00F6 $1303 BCF STATUS, RP1
$00F7 $1683 BSF STATUS, RP0
$00F8 $1507 BSF TRISC, 2
$00F9 $1283 BCF STATUS, RP0
$00FA $1112 BCF T2CON, 2
$00FB $30F0 MOVLW 240
$00FC $0597 ANDWF CCP1CON, 1
$00FD $0008 RETURN
$00FE $ _PWM2_Stop:
$00FE $1303 BCF STATUS, RP1
$00FF $1683 BSF STATUS, RP0
$0100 $1487 BSF TRISC, 1
$0101 $1283 BCF STATUS, RP0
$0102 $1112 BCF T2CON, 2
$0103 $30F0 MOVLW 240
$0104 $059D ANDWF CCP2CON, 1
$0105 $0008 RETURN
$0106 $ _turnBacklightOn:
;openKeyboard.c,154 :: void turnBacklightOn(){
;openKeyboard.c,155 :: timer = lightFadeOffTime;
$0106 $1303 BCF STATUS, RP1
$0107 $1283 BCF STATUS, RP0
$0108 $0824 MOVF _lightFadeOffTime, 0
$0109 $00A0 MOVWF _timer
$010A $0825 MOVF _lightFadeOffTime+1, 0
$010B $00A1 MOVWF _timer+1
$010C $0826 MOVF _lightFadeOffTime+2, 0
$010D $00A2 MOVWF _timer+2
$010E $0827 MOVF _lightFadeOffTime+3, 0
$010F $00A3 MOVWF _timer+3
;openKeyboard.c,156 :: if (!pwmRunning) {
$0110 $0828 MOVF _pwmRunning, 0
$0111 $1D03 BTFSS STATUS, Z
$0112 $2917 GOTO L_turnBacklightOn_12
;openKeyboard.c,157 :: PWM1_Start();
$0113 $206C CALL _PWM1_Start
;openKeyboard.c,158 :: PWM2_Start();
$0114 $2074 CALL _PWM2_Start
;openKeyboard.c,159 :: pwmRunning = 1;
$0115 $3001 MOVLW 1
$0116 $00A8 MOVWF _pwmRunning
;openKeyboard.c,160 :: }
$0117 $ L_turnBacklightOn_12:
;openKeyboard.c,161 :: PWM1_Change_Duty(lightStrenght);
$0117 $1303 BCF STATUS, RP1
$0118 $1283 BCF STATUS, RP0
$0119 $0829 MOVF _lightStrenght, 0
$011A $00E4 MOVWF FARG_PWM1_Change_Duty+0
$011B $207C CALL _PWM1_Change_Duty
;openKeyboard.c,162 :: PWM2_Change_Duty(lightStrenght);
$011C $0829 MOVF _lightStrenght, 0
$011D $00E4 MOVWF FARG_PWM2_Change_Duty+0
$011E $20B9 CALL _PWM2_Change_Duty
;openKeyboard.c,163 :: }
$011F $0008 RETURN
$0120 $ _EEprom_write:
$0120 $0000 NOP
$0121 $ L_EEprom_write_0:
$0121 $1703 BSF STATUS, RP1
$0122 $1683 BSF STATUS, RP0
$0123 $1C8C BTFSS EECON1, 1
$0124 $2927 GOTO L_EEprom_write_1
$0125 $0000 NOP
$0126 $2921 GOTO L_EEprom_write_0
$0127 $ L_EEprom_write_1:
$0127 $1303 BCF STATUS, RP1
$0128 $1283 BCF STATUS, RP0
$0129 $085F MOVF FARG_EEprom_write+0, 0
$012A $1703 BSF STATUS, RP1
$012B $008D MOVWF EEADR
$012C $1303 BCF STATUS, RP1
$012D $0860 MOVF FARG_EEprom_write+1, 0
$012E $1703 BSF STATUS, RP1
$012F $008C MOVWF EEDATA
$0130 $1683 BSF STATUS, RP0
$0131 $138C BCF EECON1, 7
$0132 $150C BSF EECON1, 2
$0133 $138B BCF INTCON, 7
$0134 $3055 MOVLW 85
$0135 $008D MOVWF EECON2
$0136 $30AA MOVLW 170
$0137 $008D MOVWF EECON2
$0138 $148C BSF EECON1, 1
$0139 $178B BSF INTCON, 7
$013A $110C BCF EECON1, 2
$013B $0008 RETURN
$013C $ _PWM1_Init:
$013C $1303 BCF STATUS, RP1
$013D $1283 BCF STATUS, RP0
$013E $0195 CLRF CCPR1L, 1
$013F $1217 BCF CCP1CON, 4
$0140 $1297 BCF CCP1CON, 5
$0141 $0008 RETURN
$0142 $ _PWM2_Init:
$0142 $1303 BCF STATUS, RP1
$0143 $1283 BCF STATUS, RP0
$0144 $019B CLRF CCPR2L, 1
$0145 $121D BCF CCP2CON, 4
$0146 $129D BCF CCP2CON, 5
$0147 $0008 RETURN
$0148 $ _Usart_Init:
$0148 $1303 BCF STATUS, RP1
$0149 $1683 BSF STATUS, RP0
$014A $1698 BSF TXSTA, 5
$014B $3090 MOVLW 144
$014C $1283 BCF STATUS, RP0
$014D $0098 MOVWF RCSTA
$014E $1683 BSF STATUS, RP0
$014F $1787 BSF TRISC, 7
$0150 $1307 BCF TRISC, 6
$0151 $ L_Usart_Init_0:
$0151 $1303 BCF STATUS, RP1
$0152 $1283 BCF STATUS, RP0
$0153 $1E8C BTFSS PIR1, 5
$0154 $2958 GOTO L_Usart_Init_1
$0155 $081A MOVF RCREG, 0
$0156 $00E3 MOVWF Usart_Init_tmp_L0
$0157 $2951 GOTO L_Usart_Init_0
$0158 $ L_Usart_Init_1:
$0158 $0008 RETURN
$0159 $ _setupLightMode:
;openKeyboard.c,192 :: void setupLightMode(unsigned char lm){
;openKeyboard.c,194 :: if (pwmRunning){
$0159 $1303 BCF STATUS, RP1
$015A $1283 BCF STATUS, RP0
$015B $0828 MOVF _pwmRunning, 0
$015C $1903 BTFSC STATUS, Z
$015D $2960 GOTO L_setupLightMode_17
;openKeyboard.c,195 :: PWM1_Stop();
$015E $20F6 CALL _PWM1_Stop
;openKeyboard.c,196 :: PWM2_Stop();
$015F $20FE CALL _PWM2_Stop
;openKeyboard.c,197 :: }
$0160 $ L_setupLightMode_17:
;openKeyboard.c,199 :: switch (lm){
$0160 $299D GOTO L_setupLightMode_18
;openKeyboard.c,200 :: case LIGHTMODE_ALWAYSOFF: lightHandler = &nop;
$0161 $ L_setupLightMode_20:
$0161 $307D MOVLW #_nop
$0162 $1303 BCF STATUS, RP1
$0163 $1283 BCF STATUS, RP0
$0164 $00AA MOVWF _lightHandler
$0165 $3005 MOVLW @#_nop
$0166 $00AB MOVWF _lightHandler+1
$0167 $3000 MOVLW 0
$0168 $00AC MOVWF _lightHandler+2
$0169 $3000 MOVLW 0
;openKeyboard.c,201 :: lightStrenght = 0xFF;
$016A $30FF MOVLW 255
$016B $00A9 MOVWF _lightStrenght
;openKeyboard.c,202 :: lightMode = LIGHTMODE_ALWAYSOFF;
$016C $01AD CLRF _lightMode, 1
;openKeyboard.c,203 :: break;
$016D $29AC GOTO L_setupLightMode_19
;openKeyboard.c,205 :: case LIGHTMODE_ALWAYSON: lightHandler = &nop;
$016E $ L_setupLightMode_21:
$016E $307D MOVLW #_nop
$016F $1303 BCF STATUS, RP1
$0170 $1283 BCF STATUS, RP0
$0171 $00AA MOVWF _lightHandler
$0172 $3005 MOVLW @#_nop
$0173 $00AB MOVWF _lightHandler+1
$0174 $3000 MOVLW 0
$0175 $00AC MOVWF _lightHandler+2
$0176 $3000 MOVLW 0
;openKeyboard.c,206 :: turnBacklightOn();
$0177 $2106 CALL _turnBacklightOn
;openKeyboard.c,207 :: lightMode = LIGHTMODE_ALWAYSON;
$0178 $3001 MOVLW 1
$0179 $00AD MOVWF _lightMode
;openKeyboard.c,208 :: break;
$017A $29AC GOTO L_setupLightMode_19
;openKeyboard.c,210 :: case LIGHTMODE_FADE: lightHandler = &lightFade;
$017B $ L_setupLightMode_22:
$017B $307E MOVLW #_lightFade
$017C $1303 BCF STATUS, RP1
$017D $1283 BCF STATUS, RP0
$017E $00AA MOVWF _lightHandler
$017F $3005 MOVLW @#_lightFade
$0180 $00AB MOVWF _lightHandler+1
$0181 $3000 MOVLW 0
$0182 $00AC MOVWF _lightHandler+2
$0183 $3000 MOVLW 0
;openKeyboard.c,211 :: turnBacklightOn();
$0184 $2106 CALL _turnBacklightOn
;openKeyboard.c,212 :: lightStrenght = 0x80; // restore middle luminosity
$0185 $3080 MOVLW 128
$0186 $00A9 MOVWF _lightStrenght
;openKeyboard.c,213 :: lightMode = LIGHTMODE_FADE;
$0187 $3002 MOVLW 2
$0188 $00AD MOVWF _lightMode
;openKeyboard.c,214 :: break;
$0189 $29AC GOTO L_setupLightMode_19
;openKeyboard.c,216 :: default : EEprom_write(CONFIG_LIGHTMODE, LIGHTMODE_ALWAYSOFF);
$018A $ L_setupLightMode_23:
$018A $3003 MOVLW 3
$018B $1303 BCF STATUS, RP1
$018C $1283 BCF STATUS, RP0
$018D $00DF MOVWF FARG_EEprom_write+0
$018E $01E0 CLRF FARG_EEprom_write+1, 1
$018F $2120 CALL _EEprom_write
;openKeyboard.c,217 :: lightMode = LIGHTMODE_ALWAYSOFF;
$0190 $1303 BCF STATUS, RP1
$0191 $1283 BCF STATUS, RP0
$0192 $01AD CLRF _lightMode, 1
;openKeyboard.c,218 :: lightHandler = &nop;
$0193 $307D MOVLW #_nop
$0194 $00AA MOVWF _lightHandler
$0195 $3005 MOVLW @#_nop
$0196 $00AB MOVWF _lightHandler+1
$0197 $3000 MOVLW 0
$0198 $00AC MOVWF _lightHandler+2
$0199 $3000 MOVLW 0
;openKeyboard.c,219 :: lightStrenght = 0xFF;
$019A $30FF MOVLW 255
$019B $00A9 MOVWF _lightStrenght
;openKeyboard.c,220 :: }
$019C $29AC GOTO L_setupLightMode_19
$019D $ L_setupLightMode_18:
$019D $1303 BCF STATUS, RP1
$019E $1283 BCF STATUS, RP0
$019F $085E MOVF FARG_setupLightMode+0, 0
$01A0 $3A00 XORLW 0
$01A1 $1903 BTFSC STATUS, Z
$01A2 $2961 GOTO L_setupLightMode_20
$01A3 $085E MOVF FARG_setupLightMode+0, 0
$01A4 $3A01 XORLW 1
$01A5 $1903 BTFSC STATUS, Z
$01A6 $296E GOTO L_setupLightMode_21
$01A7 $085E MOVF FARG_setupLightMode+0, 0
$01A8 $3A02 XORLW 2
$01A9 $1903 BTFSC STATUS, Z
$01AA $297B GOTO L_setupLightMode_22
$01AB $298A GOTO L_setupLightMode_23
$01AC $ L_setupLightMode_19:
;openKeyboard.c,222 :: PORTC = 255;
$01AC $30FF MOVLW 255
$01AD $1303 BCF STATUS, RP1
$01AE $1283 BCF STATUS, RP0
$01AF $0087 MOVWF PORTC
;openKeyboard.c,225 :: if (lightMode != LIGHTMODE_ALWAYSOFF) {
$01B0 $082D MOVF _lightMode, 0
$01B1 $3A00 XORLW 0
$01B2 $1903 BTFSC STATUS, Z
$01B3 $29C6 GOTO L_setupLightMode_24
;openKeyboard.c,226 :: PWM1_Init(40000);
$01B4 $3018 MOVLW 24
$01B5 $1683 BSF STATUS, RP0
$01B6 $0092 MOVWF PR2
$01B7 $213C CALL _PWM1_Init
;openKeyboard.c,227 :: PWM1_Change_Duty(lightStrenght);
$01B8 $0829 MOVF _lightStrenght, 0
$01B9 $00E4 MOVWF FARG_PWM1_Change_Duty+0
$01BA $207C CALL _PWM1_Change_Duty
;openKeyboard.c,228 :: PWM1_Start();
$01BB $206C CALL _PWM1_Start
;openKeyboard.c,230 :: PWM2_Init(40000);
$01BC $3018 MOVLW 24
$01BD $1683 BSF STATUS, RP0
$01BE $0092 MOVWF PR2
$01BF $2142 CALL _PWM2_Init
;openKeyboard.c,231 :: PWM2_Change_Duty(lightStrenght);
$01C0 $0829 MOVF _lightStrenght, 0
$01C1 $00E4 MOVWF FARG_PWM2_Change_Duty+0
$01C2 $20B9 CALL _PWM2_Change_Duty
;openKeyboard.c,232 :: PWM2_Start();
$01C3 $2074 CALL _PWM2_Start
;openKeyboard.c,234 :: pwmRunning = 1;
$01C4 $3001 MOVLW 1
$01C5 $00A8 MOVWF _pwmRunning
;openKeyboard.c,235 :: }
$01C6 $ L_setupLightMode_24:
;openKeyboard.c,236 :: }
$01C6 $0008 RETURN
$01C7 $ _setupUsart:
;openKeyboard.c,127 :: void setupUsart(unsigned char br){
;openKeyboard.c,128 :: switch(br){ // done so, because you can't call USART_Init(variable); but only USART_Init(literal);
$01C7 $2A1A GOTO L_setupUsart_0
;openKeyboard.c,129 :: case BAUDRATE_300: USART_Init(300);
$01C8 $ L_setupUsart_2:
$01C8 $1303 BCF STATUS, RP1
$01C9 $1683 BSF STATUS, RP0
$01CA $30CF MOVLW 207
$01CB $1303 BCF STATUS, RP1
$01CC $1683 BSF STATUS, RP0
$01CD $0099 MOVWF SPBRG
$01CE $1118 BCF TXSTA, BRGH
$01CF $2148 CALL _Usart_Init
;openKeyboard.c,130 :: break;
$01D0 $2A43 GOTO L_setupUsart_1
;openKeyboard.c,131 :: case BAUDRATE_1200: USART_Init(1200);
$01D1 $ L_setupUsart_3:
$01D1 $30CF MOVLW 207
$01D2 $1303 BCF STATUS, RP1
$01D3 $1683 BSF STATUS, RP0
$01D4 $0099 MOVWF SPBRG
$01D5 $1518 BSF TXSTA, BRGH
$01D6 $2148 CALL _Usart_Init
;openKeyboard.c,132 :: break;
$01D7 $2A43 GOTO L_setupUsart_1
;openKeyboard.c,133 :: case BAUDRATE_2400: USART_Init(2400);
$01D8 $ L_setupUsart_4:
$01D8 $3067 MOVLW 103
$01D9 $1303 BCF STATUS, RP1
$01DA $1683 BSF STATUS, RP0
$01DB $0099 MOVWF SPBRG
$01DC $1518 BSF TXSTA, BRGH
$01DD $2148 CALL _Usart_Init
;openKeyboard.c,134 :: break;
$01DE $2A43 GOTO L_setupUsart_1
;openKeyboard.c,135 :: case BAUDRATE_4800: USART_Init(4800);
$01DF $ L_setupUsart_5:
$01DF $3033 MOVLW 51
$01E0 $1303 BCF STATUS, RP1
$01E1 $1683 BSF STATUS, RP0
$01E2 $0099 MOVWF SPBRG
$01E3 $1518 BSF TXSTA, BRGH
$01E4 $2148 CALL _Usart_Init
;openKeyboard.c,136 :: break;
$01E5 $2A43 GOTO L_setupUsart_1
;openKeyboard.c,137 :: case BAUDRATE_9600: USART_Init(9600);
$01E6 $ L_setupUsart_6:
$01E6 $3019 MOVLW 25
$01E7 $1303 BCF STATUS, RP1
$01E8 $1683 BSF STATUS, RP0
$01E9 $0099 MOVWF SPBRG
$01EA $1518 BSF TXSTA, BRGH
$01EB $2148 CALL _Usart_Init
;openKeyboard.c,138 :: break;
$01EC $2A43 GOTO L_setupUsart_1
;openKeyboard.c,139 :: case BAUDRATE_19200: USART_Init(19200);
$01ED $ L_setupUsart_7:
$01ED $300C MOVLW 12
$01EE $1303 BCF STATUS, RP1
$01EF $1683 BSF STATUS, RP0
$01F0 $0099 MOVWF SPBRG
$01F1 $1518 BSF TXSTA, BRGH
$01F2 $2148 CALL _Usart_Init
;openKeyboard.c,140 :: break;
$01F3 $2A43 GOTO L_setupUsart_1
;openKeyboard.c,141 :: case BAUDRATE_38400: USART_Init(38400);
$01F4 $ L_setupUsart_8:
$01F4 $3006 MOVLW 6
$01F5 $1303 BCF STATUS, RP1
$01F6 $1683 BSF STATUS, RP0
$01F7 $0099 MOVWF SPBRG
$01F8 $1518 BSF TXSTA, BRGH
$01F9 $2148 CALL _Usart_Init
;openKeyboard.c,142 :: break;
$01FA $2A43 GOTO L_setupUsart_1
;openKeyboard.c,143 :: case BAUDRATE_57600: USART_Init(57600);
$01FB $ L_setupUsart_9:
$01FB $3003 MOVLW 3
$01FC $1303 BCF STATUS, RP1
$01FD $1683 BSF STATUS, RP0
$01FE $0099 MOVWF SPBRG
$01FF $1518 BSF TXSTA, BRGH
$0200 $2148 CALL _Usart_Init
;openKeyboard.c,144 :: break;
$0201 $2A43 GOTO L_setupUsart_1
;openKeyboard.c,145 :: case BAUDRATE_115200: USART_Init(115200);
$0202 $ L_setupUsart_10:
$0202 $3001 MOVLW 1
$0203 $1303 BCF STATUS, RP1
$0204 $1683 BSF STATUS, RP0
$0205 $0099 MOVWF SPBRG
$0206 $1518 BSF TXSTA, BRGH
$0207 $2148 CALL _Usart_Init
;openKeyboard.c,146 :: break;
$0208 $2A43 GOTO L_setupUsart_1
;openKeyboard.c,147 :: default: EEprom_write(CONFIG_BAUDRATE, BAUDRATE_4800); // if no config found, set a default 4800
$0209 $ L_setupUsart_11:
$0209 $3001 MOVLW 1
$020A $1303 BCF STATUS, RP1
$020B $1283 BCF STATUS, RP0
$020C $00DF MOVWF FARG_EEprom_write+0
$020D $3004 MOVLW 4
$020E $00E0 MOVWF FARG_EEprom_write+1
$020F $2120 CALL _EEprom_write
;openKeyboard.c,148 :: br = BAUDRATE_4800;
$0210 $3004 MOVLW 4
$0211 $1303 BCF STATUS, RP1
$0212 $1283 BCF STATUS, RP0
$0213 $00DE MOVWF FARG_setupUsart+0
;openKeyboard.c,149 :: USART_Init(4800);
$0214 $3033 MOVLW 51
$0215 $1683 BSF STATUS, RP0
$0216 $0099 MOVWF SPBRG
$0217 $1518 BSF TXSTA, BRGH
$0218 $2148 CALL _Usart_Init
;openKeyboard.c,150 :: }
$0219 $2A43 GOTO L_setupUsart_1
$021A $ L_setupUsart_0:
$021A $1303 BCF STATUS, RP1
$021B $1283 BCF STATUS, RP0
$021C $1303 BCF STATUS, RP1
$021D $1283 BCF STATUS, RP0
$021E $085E MOVF FARG_setupUsart+0, 0
$021F $3A01 XORLW 1
$0220 $1903 BTFSC STATUS, Z
$0221 $29C8 GOTO L_setupUsart_2
$0222 $085E MOVF FARG_setupUsart+0, 0
$0223 $3A02 XORLW 2
$0224 $1903 BTFSC STATUS, Z
$0225 $29D1 GOTO L_setupUsart_3
$0226 $085E MOVF FARG_setupUsart+0, 0
$0227 $3A03 XORLW 3
$0228 $1903 BTFSC STATUS, Z
$0229 $29D8 GOTO L_setupUsart_4
$022A $085E MOVF FARG_setupUsart+0, 0
$022B $3A04 XORLW 4
$022C $1903 BTFSC STATUS, Z
$022D $29DF GOTO L_setupUsart_5
$022E $085E MOVF FARG_setupUsart+0, 0
$022F $3A05 XORLW 5
$0230 $1903 BTFSC STATUS, Z
$0231 $29E6 GOTO L_setupUsart_6
$0232 $085E MOVF FARG_setupUsart+0, 0
$0233 $3A06 XORLW 6
$0234 $1903 BTFSC STATUS, Z
$0235 $29ED GOTO L_setupUsart_7
$0236 $085E MOVF FARG_setupUsart+0, 0
$0237 $3A07 XORLW 7
$0238 $1903 BTFSC STATUS, Z
$0239 $29F4 GOTO L_setupUsart_8
$023A $085E MOVF FARG_setupUsart+0, 0
$023B $3A08 XORLW 8
$023C $1903 BTFSC STATUS, Z
$023D $29FB GOTO L_setupUsart_9
$023E $085E MOVF FARG_setupUsart+0, 0
$023F $3A09 XORLW 9
$0240 $1903 BTFSC STATUS, Z
$0241 $2A02 GOTO L_setupUsart_10
$0242 $2A09 GOTO L_setupUsart_11
$0243 $ L_setupUsart_1:
;openKeyboard.c,151 :: baudrate = br;
$0243 $1303 BCF STATUS, RP1
$0244 $1283 BCF STATUS, RP0
$0245 $085E MOVF FARG_setupUsart+0, 0
$0246 $00AE MOVWF _baudrate
;openKeyboard.c,152 :: }
$0247 $0008 RETURN
$0248 $ _setupSendMode:
;openKeyboard.c,298 :: void setupSendMode(unsigned char sm){
;openKeyboard.c,299 :: switch (sm){
$0248 $2A71 GOTO L_setupSendMode_42
;openKeyboard.c,300 :: case SENDMODE_SCAN : send = &scanSend;
$0249 $ L_setupSendMode_44:
$0249 $30C5 MOVLW #_scanSend
$024A $1303 BCF STATUS, RP1
$024B $1283 BCF STATUS, RP0
$024C $00AF MOVWF _send
$024D $3005 MOVLW @#_scanSend
$024E $00B0 MOVWF _send+1
$024F $3000 MOVLW 0
$0250 $00B1 MOVWF _send+2
$0251 $3000 MOVLW 0
;openKeyboard.c,301 :: sendMode = SENDMODE_SCAN;
$0252 $3001 MOVLW 1
$0253 $00B2 MOVWF _sendMode
;openKeyboard.c,302 :: break;
$0254 $2A7E GOTO L_setupSendMode_43
;openKeyboard.c,304 :: case SENDMODE_SERIAL: send = &serialSend;
$0255 $ L_setupSendMode_45:
$0255 $3038 MOVLW #_serialSend
$0256 $1303 BCF STATUS, RP1
$0257 $1283 BCF STATUS, RP0
$0258 $00AF MOVWF _send
$0259 $3006 MOVLW @#_serialSend
$025A $00B0 MOVWF _send+1
$025B $3000 MOVLW 0
$025C $00B1 MOVWF _send+2
$025D $3000 MOVLW 0
;openKeyboard.c,305 :: sendMode = SENDMODE_SERIAL;
$025E $01B2 CLRF _sendMode, 1
;openKeyboard.c,306 :: break;
$025F $2A7E GOTO L_setupSendMode_43
;openKeyboard.c,312 :: default : send = &serialSend;
$0260 $ L_setupSendMode_46:
$0260 $3038 MOVLW #_serialSend
$0261 $1303 BCF STATUS, RP1
$0262 $1283 BCF STATUS, RP0
$0263 $00AF MOVWF _send
$0264 $3006 MOVLW @#_serialSend
$0265 $00B0 MOVWF _send+1
$0266 $3000 MOVLW 0
$0267 $00B1 MOVWF _send+2
$0268 $3000 MOVLW 0
;openKeyboard.c,313 :: EEprom_write(CONFIG_SENDMODE, SENDMODE_SERIAL);
$0269 $3002 MOVLW 2
$026A $00DF MOVWF FARG_EEprom_write+0
$026B $01E0 CLRF FARG_EEprom_write+1, 1
$026C $2120 CALL _EEprom_write
;openKeyboard.c,314 :: sendMode = SENDMODE_SERIAL;
$026D $1303 BCF STATUS, RP1
$026E $1283 BCF STATUS, RP0
$026F $01B2 CLRF _sendMode, 1
;openKeyboard.c,315 :: }
$0270 $2A7E GOTO L_setupSendMode_43
$0271 $ L_setupSendMode_42:
$0271 $1303 BCF STATUS, RP1
$0272 $1283 BCF STATUS, RP0
$0273 $1303 BCF STATUS, RP1
$0274 $1283 BCF STATUS, RP0
$0275 $085E MOVF FARG_setupSendMode+0, 0
$0276 $3A01 XORLW 1
$0277 $1903 BTFSC STATUS, Z
$0278 $2A49 GOTO L_setupSendMode_44
$0279 $085E MOVF FARG_setupSendMode+0, 0
$027A $3A00 XORLW 0
$027B $1903 BTFSC STATUS, Z
$027C $2A55 GOTO L_setupSendMode_45
$027D $2A60 GOTO L_setupSendMode_46
$027E $ L_setupSendMode_43:
;openKeyboard.c,316 :: }
$027E $0008 RETURN
$027F $ _Delay_5ms:
;delays.c,39 :: void Delay_5ms() {
;delays.c,40 :: Delay_ms(5);
$027F $3007 MOVLW 7
$0280 $1303 BCF STATUS, RP1
$0281 $1283 BCF STATUS, RP0
$0282 $00FB MOVWF STACK_11
$0283 $30FF MOVLW 255
$0284 $00FA MOVWF STACK_10
$0285 $0BFB DECFSZ STACK_11, F
$0286 $2A88 GOTO $+2
$0287 $2A8B GOTO $+4
$0288 $0BFA DECFSZ STACK_10, F
$0289 $2A88 GOTO $-1
$028A $2A85 GOTO $-5
$028B $3078 MOVLW 120
$028C $00FA MOVWF STACK_10
$028D $0BFA DECFSZ STACK_10, F
$028E $2A8D GOTO $-1
$028F $0000 NOP
$0290 $0000 NOP
;delays.c,41 :: }
$0291 $0008 RETURN
$0292 $ _enterPowerSave:
;openKeyboard.c,115 :: void enterPowerSave(){
;openKeyboard.c,116 :: PORTA = 0;
$0292 $1303 BCF STATUS, RP1
$0293 $1283 BCF STATUS, RP0
$0294 $0185 CLRF PORTA, 1
;openKeyboard.c,117 :: INTCON.RBIE = 1; // enables PORTB on-change interrupt
$0295 $158B BSF INTCON, 3
;openKeyboard.c,119 :: sleep;
$0296 $0063 SLEEP
;openKeyboard.c,121 :: }
$0297 $0008 RETURN
$0298 $ _Usart_Write:
$0298 $ L_Usart_Write_3:
$0298 $3000 MOVLW 0
$0299 $1303 BCF STATUS, RP1
$029A $1683 BSF STATUS, RP0
$029B $1898 BTFSC TXSTA, 1
$029C $3001 MOVLW 1
$029D $00F1 MOVWF STACK_1
$029E $0871 MOVF STACK_1, 0
$029F $3A00 XORLW 0
$02A0 $1D03 BTFSS STATUS, Z
$02A1 $2AA4 GOTO L_Usart_Write_4
$02A2 $0000 NOP
$02A3 $2A98 GOTO L_Usart_Write_3
$02A4 $ L_Usart_Write_4:
$02A4 $1303 BCF STATUS, RP1
$02A5 $1283 BCF STATUS, RP0
$02A6 $085E MOVF FARG_Usart_Write+0, 0
$02A7 $0099 MOVWF TXREG
$02A8 $0008 RETURN
$02A9 $ table___scanMap:
;openKeyboard.c,39 :: const char scanMap[50] = { // i could output directly idx,
$02A9 $3408 RETLW 8
$02AA $3409 RETLW 9
$02AB $340A RETLW 10
$02AC $3428 RETLW 40
$02AD $3414 RETLW 20
$02AE $341E RETLW 30
$02AF $342F RETLW 47
$02B0 $3429 RETLW 41
$02B1 $342A RETLW 42
$02B2 $342B RETLW 43
$02B3 $3427 RETLW 39
$02B4 $342C RETLW 44
$02B5 $3426 RETLW 38
$02B6 $342D RETLW 45
$02B7 $341F RETLW 31
$02B8 $3420 RETLW 32
$02B9 $3421 RETLW 33
$02BA $3423 RETLW 35
$02BB $3422 RETLW 34
$02BC $3424 RETLW 36
$02BD $3425 RETLW 37
$02BE $3415 RETLW 21
$02BF $3416 RETLW 22
$02C0 $3417 RETLW 23
$02C1 $3419 RETLW 25
$02C2 $3418 RETLW 24
$02C3 $341A RETLW 26
$02C4 $341B RETLW 27
$02C5 $340B RETLW 11
$02C6 $340C RETLW 12
$02C7 $340D RETLW 13
$02C8 $340F RETLW 15
$02C9 $340E RETLW 14
$02CA $3410 RETLW 16
$02CB $3411 RETLW 17
$02CC $3401 RETLW 1
$02CD $3402 RETLW 2
$02CE $3403 RETLW 3
$02CF $3405 RETLW 5
$02D0 $3404 RETLW 4
$02D1 $3406 RETLW 6
$02D2 $3407 RETLW 7
$02D3 $341C RETLW 28
$02D4 $3412 RETLW 18
$02D5 $3413 RETLW 19
$02D6 $3400 RETLW 0
$02D7 $3400 RETLW 0
$02D8 $341D RETLW 29
$02D9 $342E RETLW 46
$02DA $3400 RETLW 0
$02DB $0008 RETURN
$02DC $ _____DoICP:
$02DC $1303 BCF STATUS, RP1
$02DD $1283 BCF STATUS, RP0
$02DE $0834 MOVF ___DoICPHiAddr, 0
$02DF $008A MOVWF PCLATH
$02E0 $0835 MOVF ___DoICPLoAddr, 0
$02E1 $0082 MOVWF PCL
$02E2 $0008 RETURN
$02E3 $ table___serialMap:
;openKeyboard.c,48 :: const char serialMap[4][49] = { // CHARACTER MAPPING MATRIX for "pure serial mode"
$02E3 $3438 RETLW 56
$02E4 $3439 RETLW 57
$02E5 $3430 RETLW 48
$02E6 $340D RETLW 13
$02E7 $3470 RETLW 112
$02E8 $342C RETLW 44
$02E9 $3400 RETLW 0
$02EA $3400 RETLW 0
$02EB $3400 RETLW 0
$02EC $3400 RETLW 0
$02ED $342E RETLW 46
$02EE $3420 RETLW 32
$02EF $346D RETLW 109
$02F0 $3400 RETLW 0
$02F1 $3400 RETLW 0
$02F2 $347A RETLW 122
$02F3 $3478 RETLW 120
$02F4 $3476 RETLW 118
$02F5 $3463 RETLW 99
$02F6 $3462 RETLW 98
$02F7 $346E RETLW 110
$02F8 $3461 RETLW 97
$02F9 $3473 RETLW 115
$02FA $3464 RETLW 100
$02FB $3467 RETLW 103
$02FC $3466 RETLW 102
$02FD $3468 RETLW 104
$02FE $346A RETLW 106
$02FF $3471 RETLW 113
$0300 $3477 RETLW 119
$0301 $3465 RETLW 101
$0302 $3474 RETLW 116
$0303 $3472 RETLW 114
$0304 $3479 RETLW 121
$0305 $3475 RETLW 117
$0306 $3431 RETLW 49
$0307 $3432 RETLW 50
$0308 $3433 RETLW 51
$0309 $3435 RETLW 53
$030A $3434 RETLW 52
$030B $3436 RETLW 54
$030C $3437 RETLW 55
$030D $346B RETLW 107
$030E $3469 RETLW 105
$030F $346F RETLW 111
$0310 $3400 RETLW 0
$0311 $3400 RETLW 0
$0312 $346C RETLW 108
$0313 $3408 RETLW 8
$0314 $3438 RETLW 56
$0315 $3439 RETLW 57
$0316 $3430 RETLW 48
$0317 $340D RETLW 13
$0318 $3450 RETLW 80
$0319 $342C RETLW 44
$031A $3400 RETLW 0
$031B $3400 RETLW 0
$031C $3400 RETLW 0
$031D $3400 RETLW 0
$031E $342E RETLW 46
$031F $3420 RETLW 32
$0320 $344D RETLW 77
$0321 $3400 RETLW 0
$0322 $3400 RETLW 0
$0323 $345A RETLW 90
$0324 $3458 RETLW 88
$0325 $3456 RETLW 86
$0326 $3443 RETLW 67
$0327 $3442 RETLW 66
$0328 $344E RETLW 78
$0329 $3441 RETLW 65
$032A $3453 RETLW 83
$032B $3444 RETLW 68
$032C $3447 RETLW 71
$032D $3446 RETLW 70
$032E $3448 RETLW 72
$032F $344A RETLW 74
$0330 $3451 RETLW 81
$0331 $3457 RETLW 87
$0332 $3445 RETLW 69
$0333 $3454 RETLW 84
$0334 $3452 RETLW 82
$0335 $3459 RETLW 89
$0336 $3455 RETLW 85
$0337 $3431 RETLW 49
$0338 $3432 RETLW 50
$0339 $3433 RETLW 51
$033A $3435 RETLW 53
$033B $3434 RETLW 52
$033C $3436 RETLW 54
$033D $3437 RETLW 55
$033E $344B RETLW 75