summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dist/default/debug/src.debug.lst0
-rw-r--r--src/dist/default/debug/src.debug.map0
-rw-r--r--src/dist/default/debug/src.debug.objbin0 -> 17132 bytes
-rw-r--r--src/dist/default/debug/src.debug.rlfbin0 -> 140819 bytes
-rw-r--r--src/dist/default/debug/src.debug.sdb520
-rw-r--r--src/dist/default/debug/src.debug.sym342
-rw-r--r--src/dist/default/production/memoryfile.xml8
-rw-r--r--src/dist/default/production/src.production.cmf517
-rw-r--r--src/dist/default/production/src.production.elfbin21303 -> 20182 bytes
-rw-r--r--src/dist/default/production/src.production.hex202
-rw-r--r--src/dist/default/production/src.production.hxl33
-rw-r--r--src/dist/default/production/src.production.lst3945
-rw-r--r--src/dist/default/production/src.production.map837
-rw-r--r--src/dist/default/production/src.production.mum6
-rw-r--r--src/dist/default/production/src.production.objbin18183 -> 18264 bytes
-rw-r--r--src/dist/default/production/src.production.rlfbin149785 -> 152235 bytes
-rw-r--r--src/dist/default/production/src.production.sdb382
-rw-r--r--src/dist/default/production/src.production.sym440
-rw-r--r--src/main.c41
-rw-r--r--src/midi.h17
-rw-r--r--src/nbproject/Makefile-genesis.properties2
-rw-r--r--src/nbproject/private/configurations.xml2
-rw-r--r--src/nbproject/private/private.xml2
-rw-r--r--src/rs232.c3
24 files changed, 4059 insertions, 3240 deletions
diff --git a/src/dist/default/debug/src.debug.lst b/src/dist/default/debug/src.debug.lst
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/dist/default/debug/src.debug.lst
diff --git a/src/dist/default/debug/src.debug.map b/src/dist/default/debug/src.debug.map
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/dist/default/debug/src.debug.map
diff --git a/src/dist/default/debug/src.debug.obj b/src/dist/default/debug/src.debug.obj
new file mode 100644
index 0000000..e391aed
--- /dev/null
+++ b/src/dist/default/debug/src.debug.obj
Binary files differ
diff --git a/src/dist/default/debug/src.debug.rlf b/src/dist/default/debug/src.debug.rlf
new file mode 100644
index 0000000..8586f2a
--- /dev/null
+++ b/src/dist/default/debug/src.debug.rlf
Binary files differ
diff --git a/src/dist/default/debug/src.debug.sdb b/src/dist/default/debug/src.debug.sdb
new file mode 100644
index 0000000..cf91952
--- /dev/null
+++ b/src/dist/default/debug/src.debug.sdb
@@ -0,0 +1,520 @@
+[p LITE_MODE AUTOSTATIC LFSROK EMI_WORD ]
+[d version 1.1 ]
+[d edition pro ]
+[d chip 18F45K22 ]
+[d frameptr 4065 ]
+"237 Z:\SAMB_4\projects\xilofono\src\main.c
+[e E43 . `uc
+C 0
+D 1
+E 2
+F 3
+G 4
+A 5
+B 6
+]
+"41 Z:\SAMB_4\projects\xilofono\src\midi.c
+[e E40 . `uc
+NOTE_ON 8
+NOTE_OFF 9
+POLYPHONIC_KEYPRESS 10
+CONTROLLER 11
+PROGRAM_CHANGE 12
+CHANNEL_PRESSURE 13
+PITCH_BLEND 15
+]
+"63
+[e E31 . `uc
+C 0
+D 1
+E 2
+F 3
+G 4
+A 5
+B 6
+]
+"62 C:\Program Files\Microchip\xc8\v1.44\sources\common\float.c
+[v ___ftpack __ftpack `(f 1 e 3 0 ]
+"86 C:\Program Files\Microchip\xc8\v1.44\sources\common\ftadd.c
+[v ___ftadd __ftadd `(f 1 e 3 0 ]
+"54 C:\Program Files\Microchip\xc8\v1.44\sources\common\ftdiv.c
+[v ___ftdiv __ftdiv `(f 1 e 3 0 ]
+"62 C:\Program Files\Microchip\xc8\v1.44\sources\common\ftmul.c
+[v ___ftmul __ftmul `(f 1 e 3 0 ]
+"20 C:\Program Files\Microchip\xc8\v1.44\sources\common\ftsub.c
+[v ___ftsub __ftsub `(f 1 e 3 0 ]
+"8 C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+[v _memset memset `(*.39v 1 e 2 0 ]
+"10 C:\Program Files\Microchip\xc8\v1.44\sources\common\sprcadd.c
+[v ___fladd __fladd `(d 1 e 3 0 ]
+"245
+[v ___flsub __flsub `(d 1 e 3 0 ]
+"11 C:\Program Files\Microchip\xc8\v1.44\sources\common\sprcdiv.c
+[v ___fldiv __fldiv `(d 1 e 3 0 ]
+"8 C:\Program Files\Microchip\xc8\v1.44\sources\common\sprcmul.c
+[v ___flmul __flmul `(d 1 e 3 0 ]
+"15 C:\Program Files\Microchip\xc8\v1.44\sources\common\Umul32.c
+[v ___lmul __lmul `(ul 1 e 4 0 ]
+"114 Z:\SAMB_4\projects\xilofono\src\main.c
+[v _isr isr `II(v 1 e 1 0 ]
+"155
+[v _init_hw init_hw `T(v 1 e 1 0 ]
+"220
+[v _main main `(v 1 e 1 0 ]
+"266
+[v _eusart_write_midi eusart_write_midi `(i 1 e 2 0 ]
+"40 Z:\SAMB_4\projects\xilofono\src\midi.c
+[v _midi_set_status midi_set_status `(i 1 e 2 0 ]
+"51
+[v _midi_set_channel midi_set_channel `(i 1 e 2 0 ]
+"62
+[v _midi_note_on midi_note_on `(i 1 e 2 0 ]
+"4 Z:\SAMB_4\projects\xilofono\src\rs232.c
+[v _eusart1_init eusart1_init `(v 1 e 1 0 ]
+"25
+[v _eusart2_init eusart2_init `(v 1 e 1 0 ]
+"47
+[v _eusart1_putch eusart1_putch `(v 1 e 1 0 ]
+"53
+[v _eusart2_putch eusart2_putch `(v 1 e 1 0 ]
+"59
+[v _eusart1_getch eusart1_getch `(uc 1 e 1 0 ]
+"50 C:\Program Files\Microchip\xc8\v1.44\include\pic18f45k22.h
+[v _ANSELA ANSELA `VEuc 1 e 1 @3896 ]
+"95
+[v _ANSELB ANSELB `VEuc 1 e 1 @3897 ]
+"145
+[v _ANSELC ANSELC `VEuc 1 e 1 @3898 ]
+"196
+[v _ANSELD ANSELD `VEuc 1 e 1 @3899 ]
+[s S467 . 1 `uc 1 ABDEN 1 0 :1:0
+`uc 1 WUE 1 0 :1:1
+`uc 1 . 1 0 :1:2
+`uc 1 BRG16 1 0 :1:3
+`uc 1 CKTXP 1 0 :1:4
+`uc 1 DTRXP 1 0 :1:5
+`uc 1 RCIDL 1 0 :1:6
+`uc 1 ABDOVF 1 0 :1:7
+]
+"4328
+[s S476 . 1 `uc 1 . 1 0 :4:0
+`uc 1 SCKP 1 0 :1:4
+]
+[s S716 . 1 `uc 1 ABDEN2 1 0 :1:0
+`uc 1 WUE2 1 0 :1:1
+`uc 1 . 1 0 :1:2
+`uc 1 BRG162 1 0 :1:3
+`uc 1 SCKP2 1 0 :1:4
+`uc 1 DTRXP2 1 0 :1:5
+`uc 1 RCIDL2 1 0 :1:6
+`uc 1 ABDOVF2 1 0 :1:7
+]
+[s S725 . 1 `uc 1 . 1 0 :4:0
+`uc 1 TXCKP2 1 0 :1:4
+`uc 1 RXDTP2 1 0 :1:5
+`uc 1 RCMT2 1 0 :1:6
+]
+[u S730 . 1 `S467 1 . 1 0 `S476 1 . 1 0 `S716 1 . 1 0 `S725 1 . 1 0 ]
+[v _BAUDCON2bits BAUDCON2bits `VES730 1 e 1 @3952 ]
+[s S395 . 1 `uc 1 RX9D 1 0 :1:0
+`uc 1 OERR 1 0 :1:1
+`uc 1 FERR 1 0 :1:2
+`uc 1 ADDEN 1 0 :1:3
+`uc 1 CREN 1 0 :1:4
+`uc 1 SREN 1 0 :1:5
+`uc 1 RX9 1 0 :1:6
+`uc 1 SPEN 1 0 :1:7
+]
+"4593
+[s S404 . 1 `uc 1 . 1 0 :3:0
+`uc 1 ADEN 1 0 :1:3
+]
+[s S651 . 1 `uc 1 RX9D2 1 0 :1:0
+`uc 1 OERR2 1 0 :1:1
+`uc 1 FERR2 1 0 :1:2
+`uc 1 ADDEN2 1 0 :1:3
+`uc 1 CREN2 1 0 :1:4
+`uc 1 SREN2 1 0 :1:5
+`uc 1 RX92 1 0 :1:6
+`uc 1 SPEN2 1 0 :1:7
+]
+[s S660 . 1 `uc 1 RCD82 1 0 :1:0
+`uc 1 . 1 0 :5:1
+`uc 1 RC8_92 1 0 :1:6
+]
+[s S664 . 1 `uc 1 . 1 0 :6:0
+`uc 1 RC92 1 0 :1:6
+]
+[u S667 . 1 `S395 1 . 1 0 `S404 1 . 1 0 `S651 1 . 1 0 `S660 1 . 1 0 `S664 1 . 1 0 ]
+[v _RCSTA2bits RCSTA2bits `VES667 1 e 1 @3953 ]
+[s S346 . 1 `uc 1 TX9D 1 0 :1:0
+`uc 1 TRMT 1 0 :1:1
+`uc 1 BRGH 1 0 :1:2
+`uc 1 SENDB 1 0 :1:3
+`uc 1 SYNC 1 0 :1:4
+`uc 1 TXEN 1 0 :1:5
+`uc 1 TX9 1 0 :1:6
+`uc 1 CSRC 1 0 :1:7
+]
+"4873
+[s S599 . 1 `uc 1 TX9D2 1 0 :1:0
+`uc 1 TRMT2 1 0 :1:1
+`uc 1 BRGH2 1 0 :1:2
+`uc 1 SENDB2 1 0 :1:3
+`uc 1 SYNC2 1 0 :1:4
+`uc 1 TXEN2 1 0 :1:5
+`uc 1 TX92 1 0 :1:6
+`uc 1 CSRC2 1 0 :1:7
+]
+[s S608 . 1 `uc 1 TXD82 1 0 :1:0
+`uc 1 . 1 0 :5:1
+`uc 1 TX8_92 1 0 :1:6
+]
+[u S612 . 1 `S346 1 . 1 0 `S599 1 . 1 0 `S608 1 . 1 0 ]
+[v _TXSTA2bits TXSTA2bits `VES612 1 e 1 @3954 ]
+"5093
+[v _TX2REG TX2REG `VEuc 1 e 1 @3955 ]
+"5164
+[v _SPBRG2 SPBRG2 `VEuc 1 e 1 @3957 ]
+"5202
+[v _SPBRGH2 SPBRGH2 `VEuc 1 e 1 @3958 ]
+"6278
+[v _PORTA PORTA `VEuc 1 e 1 @3968 ]
+"6563
+[v _PORTB PORTB `VEuc 1 e 1 @3969 ]
+"8058
+[v _TRISA TRISA `VEuc 1 e 1 @3986 ]
+"8280
+[v _TRISB TRISB `VEuc 1 e 1 @3987 ]
+[s S550 . 1 `uc 1 TRISC0 1 0 :1:0
+`uc 1 TRISC1 1 0 :1:1
+`uc 1 TRISC2 1 0 :1:2
+`uc 1 TRISC3 1 0 :1:3
+`uc 1 TRISC4 1 0 :1:4
+`uc 1 TRISC5 1 0 :1:5
+`uc 1 TRISC6 1 0 :1:6
+`uc 1 TRISC7 1 0 :1:7
+]
+"8534
+[s S559 . 1 `uc 1 RC0 1 0 :1:0
+`uc 1 RC1 1 0 :1:1
+`uc 1 RC2 1 0 :1:2
+`uc 1 RC3 1 0 :1:3
+`uc 1 RC4 1 0 :1:4
+`uc 1 RC5 1 0 :1:5
+`uc 1 RC6 1 0 :1:6
+`uc 1 RC7 1 0 :1:7
+]
+[u S568 . 1 `S550 1 . 1 0 `S559 1 . 1 0 ]
+[v _TRISCbits TRISCbits `VES568 1 e 1 @3988 ]
+[s S762 . 1 `uc 1 TRISD0 1 0 :1:0
+`uc 1 TRISD1 1 0 :1:1
+`uc 1 TRISD2 1 0 :1:2
+`uc 1 TRISD3 1 0 :1:3
+`uc 1 TRISD4 1 0 :1:4
+`uc 1 TRISD5 1 0 :1:5
+`uc 1 TRISD6 1 0 :1:6
+`uc 1 TRISD7 1 0 :1:7
+]
+"8756
+[s S771 . 1 `uc 1 RD0 1 0 :1:0
+`uc 1 RD1 1 0 :1:1
+`uc 1 RD2 1 0 :1:2
+`uc 1 RD3 1 0 :1:3
+`uc 1 RD4 1 0 :1:4
+`uc 1 RD5 1 0 :1:5
+`uc 1 RD6 1 0 :1:6
+`uc 1 RD7 1 0 :1:7
+]
+[u S780 . 1 `S762 1 . 1 0 `S771 1 . 1 0 ]
+[v _TRISDbits TRISDbits `VES780 1 e 1 @3989 ]
+[s S102 . 1 `uc 1 TUN 1 0 :6:0
+`uc 1 PLLEN 1 0 :1:6
+`uc 1 INTSRC 1 0 :1:7
+]
+"9082
+[s S106 . 1 `uc 1 TUN0 1 0 :1:0
+`uc 1 TUN1 1 0 :1:1
+`uc 1 TUN2 1 0 :1:2
+`uc 1 TUN3 1 0 :1:3
+`uc 1 TUN4 1 0 :1:4
+`uc 1 TUN5 1 0 :1:5
+]
+[u S113 . 1 `S102 1 . 1 0 `S106 1 . 1 0 ]
+[v _OSCTUNEbits OSCTUNEbits `VES113 1 e 1 @3995 ]
+[s S195 . 1 `uc 1 TMR1IE 1 0 :1:0
+`uc 1 TMR2IE 1 0 :1:1
+`uc 1 CCP1IE 1 0 :1:2
+`uc 1 SSP1IE 1 0 :1:3
+`uc 1 TX1IE 1 0 :1:4
+`uc 1 RC1IE 1 0 :1:5
+`uc 1 ADIE 1 0 :1:6
+]
+"9434
+[s S203 . 1 `uc 1 . 1 0 :3:0
+`uc 1 SSPIE 1 0 :1:3
+`uc 1 TXIE 1 0 :1:4
+`uc 1 RCIE 1 0 :1:5
+]
+[u S208 . 1 `S195 1 . 1 0 `S203 1 . 1 0 ]
+[v _PIE1bits PIE1bits `VES208 1 e 1 @3997 ]
+[s S21 . 1 `uc 1 TMR1IF 1 0 :1:0
+`uc 1 TMR2IF 1 0 :1:1
+`uc 1 CCP1IF 1 0 :1:2
+`uc 1 SSP1IF 1 0 :1:3
+`uc 1 TX1IF 1 0 :1:4
+`uc 1 RC1IF 1 0 :1:5
+`uc 1 ADIF 1 0 :1:6
+]
+"9511
+[s S29 . 1 `uc 1 . 1 0 :3:0
+`uc 1 SSPIF 1 0 :1:3
+`uc 1 TXIF 1 0 :1:4
+`uc 1 RCIF 1 0 :1:5
+]
+[u S34 . 1 `S21 1 . 1 0 `S29 1 . 1 0 ]
+[v _PIR1bits PIR1bits `VES34 1 e 1 @3998 ]
+"10396
+[s S407 . 1 `uc 1 RX9D1 1 0 :1:0
+`uc 1 OERR1 1 0 :1:1
+`uc 1 FERR1 1 0 :1:2
+`uc 1 ADDEN1 1 0 :1:3
+`uc 1 CREN1 1 0 :1:4
+`uc 1 SREN1 1 0 :1:5
+`uc 1 RX91 1 0 :1:6
+`uc 1 SPEN1 1 0 :1:7
+]
+[s S416 . 1 `uc 1 RCD8 1 0 :1:0
+`uc 1 . 1 0 :5:1
+`uc 1 RC8_9 1 0 :1:6
+]
+[s S420 . 1 `uc 1 . 1 0 :6:0
+`uc 1 RC9 1 0 :1:6
+]
+[s S423 . 1 `uc 1 . 1 0 :5:0
+`uc 1 SRENA 1 0 :1:5
+]
+[u S426 . 1 `S395 1 . 1 0 `S404 1 . 1 0 `S407 1 . 1 0 `S416 1 . 1 0 `S420 1 . 1 0 `S423 1 . 1 0 ]
+[v _RCSTA1bits RCSTA1bits `VES426 1 e 1 @4011 ]
+"10840
+[s S355 . 1 `uc 1 TX9D1 1 0 :1:0
+`uc 1 TRMT1 1 0 :1:1
+`uc 1 BRGH1 1 0 :1:2
+`uc 1 SENDB1 1 0 :1:3
+`uc 1 SYNC1 1 0 :1:4
+`uc 1 TXEN1 1 0 :1:5
+`uc 1 TX91 1 0 :1:6
+`uc 1 CSRC1 1 0 :1:7
+]
+[s S364 . 1 `uc 1 TXD8 1 0 :1:0
+`uc 1 . 1 0 :5:1
+`uc 1 TX8_9 1 0 :1:6
+]
+[u S368 . 1 `S346 1 . 1 0 `S355 1 . 1 0 `S364 1 . 1 0 ]
+[v _TXSTA1bits TXSTA1bits `VES368 1 e 1 @4012 ]
+"11183
+[v _TX1REG TX1REG `VEuc 1 e 1 @4013 ]
+"11261
+[v _RC1REG RC1REG `VEuc 1 e 1 @4014 ]
+"11330
+[v _SPBRG1 SPBRG1 `VEuc 1 e 1 @4015 ]
+"11408
+[v _SPBRGH1 SPBRGH1 `VEuc 1 e 1 @4016 ]
+"12436
+[s S479 . 1 `uc 1 ABDEN1 1 0 :1:0
+`uc 1 WUE1 1 0 :1:1
+`uc 1 . 1 0 :1:2
+`uc 1 BRG161 1 0 :1:3
+`uc 1 SCKP1 1 0 :1:4
+`uc 1 DTRXP1 1 0 :1:5
+`uc 1 RCIDL1 1 0 :1:6
+`uc 1 ABDOVF1 1 0 :1:7
+]
+[s S488 . 1 `uc 1 . 1 0 :4:0
+`uc 1 TXCKP 1 0 :1:4
+`uc 1 RXDTP 1 0 :1:5
+`uc 1 RCMT 1 0 :1:6
+]
+[s S493 . 1 `uc 1 . 1 0 :4:0
+`uc 1 TXCKP1 1 0 :1:4
+`uc 1 RXDTP1 1 0 :1:5
+`uc 1 RCMT1 1 0 :1:6
+]
+[s S498 . 1 `uc 1 . 1 0 :5:0
+`uc 1 RXCKP 1 0 :1:5
+]
+[s S501 . 1 `uc 1 . 1 0 :1:0
+`uc 1 W4E 1 0 :1:1
+]
+[u S504 . 1 `S467 1 . 1 0 `S476 1 . 1 0 `S479 1 . 1 0 `S488 1 . 1 0 `S493 1 . 1 0 `S498 1 . 1 0 `S501 1 . 1 0 ]
+[v _BAUDCON1bits BAUDCON1bits `VES504 1 e 1 @4024 ]
+[s S167 . 1 `uc 1 T2CKPS 1 0 :2:0
+`uc 1 TMR2ON 1 0 :1:2
+`uc 1 T2OUTPS 1 0 :4:3
+]
+"13217
+[s S171 . 1 `uc 1 T2CKPS0 1 0 :1:0
+`uc 1 T2CKPS1 1 0 :1:1
+`uc 1 . 1 0 :1:2
+`uc 1 T2OUTPS0 1 0 :1:3
+`uc 1 T2OUTPS1 1 0 :1:4
+`uc 1 T2OUTPS2 1 0 :1:5
+`uc 1 T2OUTPS3 1 0 :1:6
+]
+[u S179 . 1 `S167 1 . 1 0 `S171 1 . 1 0 ]
+[v _T2CONbits T2CONbits `VES179 1 e 1 @4026 ]
+"13267
+[v _PR2 PR2 `VEuc 1 e 1 @4027 ]
+[s S128 . 1 `uc 1 SCS 1 0 :2:0
+`uc 1 HFIOFS 1 0 :1:2
+`uc 1 OSTS 1 0 :1:3
+`uc 1 IRCF 1 0 :3:4
+`uc 1 IDLEN 1 0 :1:7
+]
+"16033
+[s S134 . 1 `uc 1 SCS0 1 0 :1:0
+`uc 1 SCS1 1 0 :1:1
+`uc 1 IOFS 1 0 :1:2
+`uc 1 . 1 0 :1:3
+`uc 1 IRCF0 1 0 :1:4
+`uc 1 IRCF1 1 0 :1:5
+`uc 1 IRCF2 1 0 :1:6
+]
+[u S142 . 1 `S128 1 . 1 0 `S134 1 . 1 0 ]
+[v _OSCCONbits OSCCONbits `VES142 1 e 1 @4051 ]
+[s S53 . 1 `uc 1 RBIF 1 0 :1:0
+`uc 1 INT0IF 1 0 :1:1
+`uc 1 TMR0IF 1 0 :1:2
+`uc 1 RBIE 1 0 :1:3
+`uc 1 INT0IE 1 0 :1:4
+`uc 1 TMR0IE 1 0 :1:5
+`uc 1 PEIE_GIEL 1 0 :1:6
+`uc 1 GIE_GIEH 1 0 :1:7
+]
+"16922
+[s S62 . 1 `uc 1 . 1 0 :1:0
+`uc 1 INT0F 1 0 :1:1
+`uc 1 T0IF 1 0 :1:2
+`uc 1 . 1 0 :1:3
+`uc 1 INT0E 1 0 :1:4
+`uc 1 T0IE 1 0 :1:5
+`uc 1 PEIE 1 0 :1:6
+`uc 1 GIE 1 0 :1:7
+]
+[s S71 . 1 `uc 1 . 1 0 :6:0
+`uc 1 GIEL 1 0 :1:6
+`uc 1 GIEH 1 0 :1:7
+]
+[u S75 . 1 `S53 1 . 1 0 `S62 1 . 1 0 `S71 1 . 1 0 ]
+[v _INTCONbits INTCONbits `VES75 1 e 1 @4082 ]
+"18736
+[v _RC1IF RC1IF `VEb 1 e 0 @31989 ]
+"19488
+[v _TX1IF TX1IF `VEb 1 e 0 @31988 ]
+"19496
+[v _TX2IF TX2IF `VEb 1 e 0 @32036 ]
+"106 Z:\SAMB_4\projects\xilofono\src\main.c
+[v _keys_data keys_data `VE[16]ul 1 e 64 0 ]
+"108
+[v _keypresses keypresses `VEui 1 e 2 0 ]
+"220
+[v _main main `(v 1 e 1 0 ]
+{
+[s S233 . 7 `uc 1 status 1 0 :4:0
+`uc 1 channel 1 0 :4:4
+`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
+"223
+[v main@message message `S233 1 a 7 7 ]
+"222
+[v main@i i `ui 1 a 2 5 ]
+"263
+} 0
+"62 Z:\SAMB_4\projects\xilofono\src\midi.c
+[v _midi_note_on midi_note_on `(i 1 e 2 0 ]
+{
+[s S233 . 7 `uc 1 status 1 0 :4:0
+`uc 1 channel 1 0 :4:4
+`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
+[v midi_note_on@pkt pkt `*.39S233 1 p 2 46 ]
+[v midi_note_on@channel channel `ui 1 p 2 48 ]
+[v midi_note_on@note note `E31 1 p 1 50 ]
+[v midi_note_on@velocity velocity `uc 1 p 1 51 ]
+"85
+} 0
+"40
+[v _midi_set_status midi_set_status `(i 1 e 2 0 ]
+{
+[s S233 . 7 `uc 1 status 1 0 :4:0
+`uc 1 channel 1 0 :4:4
+`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
+[v midi_set_status@pkt pkt `*.39S233 1 p 2 41 ]
+[v midi_set_status@status status `E40 1 p 1 43 ]
+"49
+} 0
+"51
+[v _midi_set_channel midi_set_channel `(i 1 e 2 0 ]
+{
+[s S233 . 7 `uc 1 status 1 0 :4:0
+`uc 1 channel 1 0 :4:4
+`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
+[v midi_set_channel@pkt pkt `*.39S233 1 p 2 41 ]
+[v midi_set_channel@channel channel `ui 1 p 2 43 ]
+"60
+} 0
+"8 C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+[v _memset memset `(*.39v 1 e 2 0 ]
+{
+"15
+[v memset@p p `*.39uc 1 a 2 47 ]
+"8
+[v memset@p1 p1 `*.39v 1 p 2 41 ]
+[v memset@c c `i 1 p 2 43 ]
+[v memset@n n `ui 1 p 2 45 ]
+"22
+} 0
+"155 Z:\SAMB_4\projects\xilofono\src\main.c
+[v _init_hw init_hw `T(v 1 e 1 0 ]
+{
+"216
+} 0
+"25 Z:\SAMB_4\projects\xilofono\src\rs232.c
+[v _eusart2_init eusart2_init `(v 1 e 1 0 ]
+{
+"45
+} 0
+"4
+[v _eusart1_init eusart1_init `(v 1 e 1 0 ]
+{
+"23
+} 0
+"266 Z:\SAMB_4\projects\xilofono\src\main.c
+[v _eusart_write_midi eusart_write_midi `(i 1 e 2 0 ]
+{
+"269
+[v eusart_write_midi@data data `*.39uc 1 a 2 48 ]
+"268
+[v eusart_write_midi@length length `ui 1 a 2 46 ]
+[s S233 . 7 `uc 1 status 1 0 :4:0
+`uc 1 channel 1 0 :4:4
+`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
+"266
+[v eusart_write_midi@pkt pkt `*.39CS233 1 p 2 42 ]
+"285
+} 0
+"53 Z:\SAMB_4\projects\xilofono\src\rs232.c
+[v _eusart2_putch eusart2_putch `(v 1 e 1 0 ]
+{
+[v eusart2_putch@c c `uc 1 a 1 wreg ]
+[v eusart2_putch@c c `uc 1 a 1 wreg ]
+[v eusart2_putch@c c `uc 1 a 1 41 ]
+"57
+} 0
+"114 Z:\SAMB_4\projects\xilofono\src\main.c
+[v _isr isr `II(v 1 e 1 0 ]
+{
+"116
+[v isr@i i `uc 1 a 1 40 ]
+[v isr@data_b data_b `uc 1 a 1 37 ]
+[v isr@data_a data_a `uc 1 a 1 36 ]
+"152
+} 0
diff --git a/src/dist/default/debug/src.debug.sym b/src/dist/default/debug/src.debug.sym
new file mode 100644
index 0000000..c440798
--- /dev/null
+++ b/src/dist/default/debug/src.debug.sym
@@ -0,0 +1,342 @@
+__end_of_eusart2_putch 7D38 0 CODE 0
+__CFG_XINST$OFF 0 0 ABS 0
+_PR2 FBB 0 ABS 0
+__S0 8000 0 ABS 0
+__S1 B0 0 ABS 0
+__Hintentry 0 0 ABS 0
+__Lintentry 0 0 ABS 0
+midi_set_channel@pkt 2A 0 COMRAM 1
+__end_of_init_hw 7E52 0 CODE 0
+_isr 2 0 CODE 0
+__end_of_eusart_write_midi 7F28 0 CODE 0
+_eusart2_putch 7D2C 0 CODE 0
+isr@i 29 0 COMRAM 1
+_main 7F28 0 CODE 0
+___sp 0 0 STACK 2
+btemp 35 0 COMRAM 1
+start 2FA 0 CODE 0
+__size_of_eusart1_init 0 0 ABS 0
+__size_of_eusart2_init 0 0 ABS 0
+eusart_write_midi@pkt 2B 0 COMRAM 1
+eusart2_putch@c 2A 0 COMRAM 1
+_RC1IF 7CF5 0 ABS 0
+_TX1IF 7CF4 0 ABS 0
+_TX2IF 7D24 0 ABS 0
+isr@data_a 25 0 COMRAM 1
+_TRISA F92 0 ABS 0
+_TRISB F93 0 ABS 0
+_PORTA F80 0 ABS 0
+_PORTB F81 0 ABS 0
+__Hirdata 0 0 CODE 0
+__Lirdata 0 0 CODE 0
+__HRAM 0 0 ABS 0
+__LRAM 1 0 ABS 0
+isr@data_b 26 0 COMRAM 1
+wtemp6 36 0 COMRAM 1
+__CFG_WDTPS$32768 0 0 ABS 0
+__Hconfig 0 0 CONFIG 0
+__Lconfig 0 0 CONFIG 0
+__CFG_FOSC$INTIO67 0 0 ABS 0
+main@i A7 0 BANK0 1
+__Hbigram 0 0 ABS 0
+__Lbigram 0 0 ABS 0
+__Hrparam 0 0 ABS 0
+__Lrparam 0 0 ABS 0
+__Hram 0 0 ABS 0
+__Lram 0 0 ABS 0
+__Hcomram 0 0 ABS 0
+__Lcomram 0 0 ABS 0
+__Hsfr 0 0 ABS 0
+__Lsfr 0 0 ABS 0
+__size_of_isr 0 0 ABS 0
+eusart_write_midi@data 31 0 COMRAM 1
+__Hbss 0 0 RAM 1
+__CFG_STVREN$ON 0 0 ABS 0
+__Lbss 0 0 RAM 1
+___param_bank 0 0 ABS 0
+__Hnvrram 0 0 COMRAM 1
+__Lnvrram 0 0 COMRAM 1
+int$flags 35 0 COMRAM 1
+__size_of_midi_note_on 0 0 ABS 0
+_SPBRG1 FAF 0 ABS 0
+_SPBRG2 F75 0 ABS 0
+_PIE1bits F9D 0 ABS 0
+__Heeprom_data 0 0 EEDATA 0
+__Leeprom_data 0 0 EEDATA 0
+_PIR1bits F9E 0 ABS 0
+__Hintsave_regs 0 0 BIGRAM 1
+__Lintsave_regs 0 0 BIGRAM 1
+_ANSELA F38 0 ABS 0
+_ANSELB F39 0 ABS 0
+_RC1REG FAE 0 ABS 0
+_ANSELC F3A 0 ABS 0
+_TX1REG FAD 0 ABS 0
+_TX2REG F73 0 ABS 0
+_ANSELD F3B 0 ABS 0
+__Hbigbss 0 0 BIGRAM 1
+__Lbigbss 0 0 BIGRAM 1
+__Hintret 0 0 ABS 0
+__Lintret 0 0 ABS 0
+__Hramtop 600 0 RAM 0
+__Lramtop 600 0 RAM 0
+__Hstruct 0 0 COMRAM 1
+__Lstruct 0 0 COMRAM 1
+__Hbigdata 0 0 BIGRAM 1
+__Lbigdata 0 0 BIGRAM 1
+__Hmediumconst 0 0 MEDIUMCONST 0
+__Lmediumconst 0 0 MEDIUMCONST 0
+__Hfarbss 0 0 FARRAM 0
+__Lfarbss 0 0 FARRAM 0
+_keys_data 62 0 BANK0 1
+__Hintcode 2FA 0 CODE 0
+__Lintcode 2 0 CODE 0
+__Hfardata 0 0 FARRAM 0
+__Lfardata 0 0 FARRAM 0
+midi_note_on@velocity 34 0 COMRAM 1
+__pintcode 2 0 CODE 0
+__Habs1 0 0 ABS 0
+__Labs1 0 0 ABS 0
+__CFG_EBTR0$OFF 0 0 ABS 0
+__size_of_eusart2_putch 0 0 ABS 0
+__HnvFARRAM 0 0 FARRAM 0
+__LnvFARRAM 0 0 FARRAM 0
+__CFG_EBTR1$OFF 0 0 ABS 0
+__CFG_CCP2MX$PORTC1 0 0 ABS 0
+__end_of_eusart1_init 7D6E 0 CODE 0
+__CFG_EBTR2$OFF 0 0 ABS 0
+__CFG_CCP3MX$PORTB5 0 0 ABS 0
+__end_of_memset 7E00 0 CODE 0
+__Hdata 0 0 ABS 0
+__Ldata 0 0 ABS 0
+__CFG_EBTR3$OFF 0 0 ABS 0
+stackhi 0 0 ABS 0
+__HcstackBANK0 0 0 ABS 0
+__LcstackBANK0 0 0 ABS 0
+__pcstackBANK0 A2 0 BANK0 1
+__Htemp 36 0 COMRAM 1
+__Ltemp 35 0 COMRAM 1
+stacklo 0 0 ABS 0
+__Hrbit 0 0 COMRAM 1
+__Lrbit 0 0 COMRAM 1
+__Hinit 2FE 0 CODE 0
+__Linit 2FA 0 CODE 0
+__Hintcodelo 2FA 0 CODE 0
+__Lintcodelo 2FA 0 CODE 0
+_memset 7DD4 0 CODE 0
+__Hrbss 0 0 COMRAM 1
+__end_of_main 8000 0 CODE 0
+__Lrbss 0 0 COMRAM 1
+_isr$295 27 0 COMRAM 1
+__Htext 0 0 ABS 0
+__Ltext 0 0 ABS 0
+_isr$296 28 0 COMRAM 1
+__CFG_LVP$ON 0 0 ABS 0
+end_of_initialization 7D44 0 CODE 0
+_midi_set_status 7D8A 0 CODE 0
+_SPBRGH1 FB0 0 ABS 0
+_SPBRGH2 F76 0 ABS 0
+__size_of_init_hw 0 0 ABS 0
+__end_of_midi_set_channel 7DD4 0 CODE 0
+midi_note_on@channel 31 0 COMRAM 1
+_TRISCbits F94 0 ABS 0
+_TRISDbits F95 0 ABS 0
+_T2CONbits FBA 0 ABS 0
+_midi_set_channel 7DAE 0 CODE 0
+__size_of_eusart_write_midi 0 0 ABS 0
+__Hibigdata 0 0 CODE 0
+__Libigdata 0 0 CODE 0
+__Hifardata 0 0 CODE 0
+__Lifardata 0 0 CODE 0
+__Hbank0 0 0 ABS 0
+__Lbank0 0 0 ABS 0
+__Hbank1 0 0 ABS 0
+__Lbank1 0 0 ABS 0
+__Hbank2 0 0 ABS 0
+__Lbank2 0 0 ABS 0
+__Hbank3 0 0 ABS 0
+__Lbank3 0 0 ABS 0
+__Hbank4 0 0 ABS 0
+__Lbank4 0 0 ABS 0
+__Hbank5 0 0 ABS 0
+__Lbank5 0 0 ABS 0
+__Hpowerup 2FA 0 CODE 0
+__Lpowerup 2FA 0 CODE 0
+__Htext0 0 0 ABS 0
+__Ltext0 0 0 ABS 0
+_eusart_write_midi 7EB4 0 CODE 0
+__Htext1 0 0 ABS 0
+__Ltext1 0 0 ABS 0
+__ptext0 7F28 0 CODE 0
+__Htext2 0 0 ABS 0
+__Ltext2 0 0 ABS 0
+__ptext1 7E52 0 CODE 0
+__end_of_midi_note_on 7EB4 0 CODE 0
+__Htext3 0 0 ABS 0
+__Ltext3 0 0 ABS 0
+__ptext2 7D8A 0 CODE 0
+__Htext4 0 0 ABS 0
+__Ltext4 0 0 ABS 0
+__ptext3 7DAE 0 CODE 0
+__Htext5 0 0 ABS 0
+__CFG_P2BMX$PORTD2 0 0 ABS 0
+__Ltext5 0 0 ABS 0
+__ptext4 7DD4 0 CODE 0
+__Htext6 0 0 ABS 0
+__Ltext6 0 0 ABS 0
+__ptext5 7E00 0 CODE 0
+__Htext7 0 0 ABS 0
+__Ltext7 0 0 ABS 0
+__ptext6 7D6E 0 CODE 0
+__Htext8 0 0 ABS 0
+__Ltext8 0 0 ABS 0
+__ptext7 7D52 0 CODE 0
+__Htext9 0 0 ABS 0
+__Ltext9 0 0 ABS 0
+__ptext8 7EB4 0 CODE 0
+__CFG_T3CMX$PORTC0 0 0 ABS 0
+__ptext9 7D2C 0 CODE 0
+__Hclrtext 0 0 ABS 0
+__Lclrtext 0 0 ABS 0
+__CFG_HFOFST$ON 0 0 ABS 0
+_OSCTUNEbits F9B 0 ABS 0
+__end_of__initialization 7D44 0 CODE 0
+__CFG_PRICLKEN$ON 0 0 ABS 0
+memset@c 2C 0 COMRAM 1
+___rparam_used 1 0 ABS 0
+__size_of_memset 0 0 ABS 0
+memset@n 2E 0 COMRAM 1
+memset@p 30 0 COMRAM 1
+__Hidata 0 0 CODE 0
+__Lidata 0 0 CODE 0
+__Hrdata 0 0 COMRAM 1
+__Lrdata 0 0 COMRAM 1
+__Hidloc 0 0 IDLOC 0
+__Lidloc 0 0 IDLOC 0
+__CFG_PWRTEN$OFF 0 0 ABS 0
+__Hstack 0 0 STACK 2
+__Lstack 0 0 STACK 2
+_midi_note_on 7E52 0 CODE 0
+midi_set_channel@channel 2C 0 COMRAM 1
+__Hparam 0 0 ABS 0
+__Lparam 0 0 ABS 0
+__Hspace_0 8000 0 ABS 0
+__HcstackCOMRAM 0 0 ABS 0
+__Lspace_0 0 0 ABS 0
+__LcstackCOMRAM 0 0 ABS 0
+__end_of_isr 2FA 0 CODE 0
+__pcstackCOMRAM 1 0 COMRAM 1
+__Hspace_1 B0 0 ABS 0
+__Lspace_1 0 0 ABS 0
+__Hsmallconst 0 0 SMALLCONST 0
+__Lsmallconst 0 0 SMALLCONST 0
+eusart_write_midi@length 2F 0 COMRAM 1
+__Hspace_2 0 0 ABS 0
+__Lspace_2 0 0 ABS 0
+__Hnvbit 0 0 COMRAM 1
+__Lnvbit 0 0 COMRAM 1
+__Hcinit 0 0 ABS 0
+__Lcinit 0 0 ABS 0
+__pcinit 7D38 0 CODE 0
+__CFG_EBTRB$OFF 0 0 ABS 0
+_init_hw 7E00 0 CODE 0
+__ramtop 600 0 RAM 0
+__mediumconst 0 0 MEDIUMCONST 0
+__size_of_main 0 0 ABS 0
+__Hconst 0 0 CONST 0
+__Lconst 0 0 CONST 0
+__CFG_PLLCFG$ON 0 0 ABS 0
+__CFG_WRT0$OFF 0 0 ABS 0
+__CFG_WRT1$OFF 0 0 ABS 0
+midi_note_on@pkt 2F 0 COMRAM 1
+__HbssBANK0 0 0 ABS 0
+__LbssBANK0 0 0 ABS 0
+__CFG_MCLRE$EXTMCLR 0 0 ABS 0
+__CFG_WRT2$OFF 0 0 ABS 0
+__pbssBANK0 60 0 BANK0 1
+__CFG_WRT3$OFF 0 0 ABS 0
+__CFG_FCMEN$OFF 0 0 ABS 0
+__size_of_midi_set_status 0 0 ABS 0
+midi_note_on@note 33 0 COMRAM 1
+midi_set_status@pkt 2A 0 COMRAM 1
+_RCSTA1bits FAB 0 ABS 0
+_RCSTA2bits F71 0 ABS 0
+_TXSTA1bits FAC 0 ABS 0
+_TXSTA2bits F72 0 ABS 0
+___inthi_sp 0 0 STACK 2
+__size_of_midi_set_channel 0 0 ABS 0
+__CFG_WDTEN$OFF 0 0 ABS 0
+___intlo_sp 0 0 STACK 2
+_OSCCONbits FD3 0 ABS 0
+_INTCONbits FF2 0 ABS 0
+_keypresses 60 0 BANK0 1
+__CFG_CP0$OFF 0 0 ABS 0
+__smallconst 0 0 SMALLCONST 0
+main@message A9 0 BANK0 1
+__CFG_CP1$OFF 0 0 ABS 0
+memset@p1 2A 0 COMRAM 1
+__Hreset_vec 2 0 CODE 0
+__Lreset_vec 0 0 CODE 0
+__CFG_CP2$OFF 0 0 ABS 0
+__CFG_CP3$OFF 0 0 ABS 0
+__CFG_BORV$190 0 0 ABS 0
+__accesstop 60 0 ABS 0
+__end_of_midi_set_status 7DAE 0 CODE 0
+__Hintcode_body 0 0 ABS 0
+__Lintcode_body 0 0 ABS 0
+__CFG_PBADEN$ON 0 0 ABS 0
+intlevel0 0 0 CODE 0
+intlevel1 0 0 CODE 0
+__CFG_WRTB$OFF 0 0 ABS 0
+midi_set_status@status 2C 0 COMRAM 1
+intlevel2 0 0 CODE 0
+intlevel3 0 0 CODE 0
+__CFG_WRTC$OFF 0 0 ABS 0
+_BAUDCON1bits FB8 0 ABS 0
+__CFG_WRTD$OFF 0 0 ABS 0
+_BAUDCON2bits F70 0 ABS 0
+__CFG_CPB$OFF 0 0 ABS 0
+__CFG_CPD$OFF 0 0 ABS 0
+start_initialization 7D38 0 CODE 0
+__CFG_BOREN$SBORDIS 0 0 ABS 0
+__CFG_IESO$OFF 0 0 ABS 0
+_eusart1_init 7D52 0 CODE 0
+_eusart2_init 7D6E 0 CODE 0
+__end_of_eusart2_init 7D8A 0 CODE 0
+__initialization 7D38 0 CODE 0
+__activetblptr 2 0 ABS 0
+%segments
+reset_vec 0 2FD CODE 0 0
+cstackCOMRAM 1 35 COMRAM 1 1
+bssBANK0 60 AF BANK0 60 1
+text0 7F28 7FFF CODE 7F28 0
+text8 7EB4 7F27 CODE 7EB4 0
+text1 7E52 7EB3 CODE 7E52 0
+text5 7E00 7E51 CODE 7E00 0
+text4 7DD4 7DFF CODE 7DD4 0
+text3 7DAE 7DD3 CODE 7DAE 0
+text2 7D8A 7DAD CODE 7D8A 0
+text6 7D6E 7D89 CODE 7D6E 0
+text7 7D52 7D6D CODE 7D52 0
+cinit 7D38 7D51 CODE 7D38 0
+text9 7D2C 7D37 CODE 7D2C 0
+%locals
+dist/default/debug\src.debug.obj
+C:\Program Files\Microchip\xc8\v1.44\include\pic18f45k22.h
+C:\Users\_prossn\AppData\Local\Temp\s5ls.
+1215 7D38 0 CODE 0
+1217 7D38 0 CODE 0
+1220 7D38 0 CODE 0
+1235 7D38 0 CODE 0
+1236 7D3C 0 CODE 0
+1237 7D3E 0 CODE 0
+1238 7D3E 0 CODE 0
+1239 7D40 0 CODE 0
+1240 7D42 0 CODE 0
+1246 7D44 0 CODE 0
+1248 7D44 0 CODE 0
+1249 7D46 0 CODE 0
+1251 7D48 0 CODE 0
+1252 7D4A 0 CODE 0
+1253 7D4C 0 CODE 0
+1254 7D4E 0 CODE 0
+main \ No newline at end of file
diff --git a/src/dist/default/production/memoryfile.xml b/src/dist/default/production/memoryfile.xml
index afd74db..46d5906 100644
--- a/src/dist/default/production/memoryfile.xml
+++ b/src/dist/default/production/memoryfile.xml
@@ -4,14 +4,14 @@
<memory name="program">
<units>bytes</units>
<length>32768</length>
- <used>1598</used>
- <free>31170</free>
+ <used>1630</used>
+ <free>31138</free>
</memory>
<memory name="data">
<units>bytes</units>
<length>1536</length>
- <used>138</used>
- <free>1398</free>
+ <used>140</used>
+ <free>1396</free>
</memory>
</executable>
</project>
diff --git a/src/dist/default/production/src.production.cmf b/src/dist/default/production/src.production.cmf
index fd87445..bb0150d 100644
--- a/src/dist/default/production/src.production.cmf
+++ b/src/dist/default/production/src.production.cmf
@@ -11,53 +11,56 @@
# All addresses and the length are given in unqualified hexadecimal
# in delta units. Any other numeric values are decimal.
%PSECTS
-$C:\Users\_prossn\AppData\Local\Temp\s514.obj
+$C:\Users\_prossn\AppData\Local\Temp\s15k.obj
idloc IDLOC 0 200000 200000 8 1
-init CODE 0 352 352 4 1
+init CODE 0 300 300 4 1
reset_vec CODE 0 0 0 4 1
config CONFIG 0 300000 300000 E 1
$dist/default/production\src.production.obj
-cinit CODE 0 61C 61C 1A 1
-text0 CODE 0 356 356 DC 1
-text1 CODE 0 4A6 4A6 66 1
-text2 CODE 0 5C0 5C0 24 1
-text3 CODE 0 59A 59A 26 1
-text4 CODE 0 56E 56E 2C 1
-text5 CODE 0 50C 50C 62 1
-text6 CODE 0 5E4 5E4 1C 1
-text7 CODE 0 600 600 1C 1
-text8 CODE 0 432 432 74 1
-text9 CODE 0 636 636 C 1
-cstackCOMRAM COMRAM 1 1 1 33 1
-cstackBANK0 BANK0 1 A2 A2 14 1
-temp COMRAM 1 34 34 1 1
+cinit CODE 0 938 938 1A 1
+text0 CODE 0 62C 62C 136 1
+text1 CODE 0 7D6 7D6 62 1
+text2 CODE 0 8DC 8DC 24 1
+text3 CODE 0 8B6 8B6 26 1
+text4 CODE 0 88A 88A 2C 1
+text5 CODE 0 838 838 52 1
+text6 CODE 0 900 900 1C 1
+text7 CODE 0 91C 91C 1C 1
+text8 CODE 0 762 762 74 1
+text9 CODE 0 952 952 C 1
+cstackCOMRAM COMRAM 1 1 1 34 1
+cstackBANK0 BANK0 1 A2 A2 15 1
+temp COMRAM 1 35 35 1 1
bssBANK0 BANK0 1 60 60 42 1
-intcode CODE 0 8 8 34A 1
+intcode CODE 0 8 8 2F8 1
+smallconst SMALLCONST 0 600 600 2C 1
# %UNUSED Section
# This section enumerates the unused ranges of each CLASS. Each entry
# is described on a single line as follows:
# <class name> <range> <delta>
# Addresses given in the range are in hexadecimal and units of delta.
%UNUSED
-RAM B6-5FF 1
+RAM B7-5FF 1
SFR F38-FFF 1
-BANK0 B6-FF 1
+BANK0 B7-FF 1
BANK1 100-1FF 1
BANK2 200-2FF 1
BANK3 300-3FF 1
BANK4 400-4FF 1
BANK5 500-5FF 1
CONST 4-7 1
-CONST 642-7FFF 1
-STACK B6-5FF 1
-SMALLCONST 642-7FFF 1
+CONST 304-5FF 1
+CONST 95E-7FFF 1
+STACK B7-5FF 1
+SMALLCONST 95E-7FFF 1
CODE 4-7 1
-CODE 642-7FFF 1
-BIGRAM 35-5F 1
-BIGRAM B6-5FF 1
-COMRAM 35-5F 1
+CODE 304-5FF 1
+CODE 95E-7FFF 1
+BIGRAM 36-5F 1
+BIGRAM B7-5FF 1
+COMRAM 36-5F 1
EEDATA F00000-F000FF 1
-MEDIUMCONST 642-7FFF 1
+MEDIUMCONST 95E-7FFF 1
# %LINETAB Section
# This section enumerates the file/line to address mappings.
# The beginning of the section is indicated by %LINETAB.
@@ -72,143 +75,136 @@ MEDIUMCONST 642-7FFF 1
# All other numeric values are in decimal.
%LINETAB
$dist/default/production\src.production.obj
-8 intcode CODE >113:Z:\SAMB_4\projects\xilofono\src\main.c
-8 intcode CODE >56:Z:\SAMB_4\projects\xilofono\src\rs232.c
-52 intcode CODE >117:Z:\SAMB_4\projects\xilofono\src\main.c
-54 intcode CODE >119:Z:\SAMB_4\projects\xilofono\src\main.c
-58 intcode CODE >120:Z:\SAMB_4\projects\xilofono\src\main.c
-5C intcode CODE >121:Z:\SAMB_4\projects\xilofono\src\main.c
-60 intcode CODE >122:Z:\SAMB_4\projects\xilofono\src\main.c
-64 intcode CODE >123:Z:\SAMB_4\projects\xilofono\src\main.c
-64 intcode CODE >125:Z:\SAMB_4\projects\xilofono\src\main.c
-E0 intcode CODE >126:Z:\SAMB_4\projects\xilofono\src\main.c
-188 intcode CODE >131:Z:\SAMB_4\projects\xilofono\src\main.c
-202 intcode CODE >132:Z:\SAMB_4\projects\xilofono\src\main.c
-2AC intcode CODE >134:Z:\SAMB_4\projects\xilofono\src\main.c
-2B4 intcode CODE >138:Z:\SAMB_4\projects\xilofono\src\main.c
-2BE intcode CODE >139:Z:\SAMB_4\projects\xilofono\src\main.c
-302 intcode CODE >143:Z:\SAMB_4\projects\xilofono\src\main.c
-304 intcode CODE >144:Z:\SAMB_4\projects\xilofono\src\main.c
-304 intcode CODE >146:Z:\SAMB_4\projects\xilofono\src\main.c
-306 intcode CODE >147:Z:\SAMB_4\projects\xilofono\src\main.c
-636 text9 CODE >52:Z:\SAMB_4\projects\xilofono\src\rs232.c
-638 text9 CODE >54:Z:\SAMB_4\projects\xilofono\src\rs232.c
-63C text9 CODE >55:Z:\SAMB_4\projects\xilofono\src\rs232.c
-640 text9 CODE >56:Z:\SAMB_4\projects\xilofono\src\rs232.c
-432 text8 CODE >261:Z:\SAMB_4\projects\xilofono\src\main.c
-432 text8 CODE >266:Z:\SAMB_4\projects\xilofono\src\main.c
-43A text8 CODE >270:Z:\SAMB_4\projects\xilofono\src\main.c
-44E text8 CODE >271:Z:\SAMB_4\projects\xilofono\src\main.c
-45A text8 CODE >273:Z:\SAMB_4\projects\xilofono\src\main.c
-480 text8 CODE >275:Z:\SAMB_4\projects\xilofono\src\main.c
-482 text8 CODE >276:Z:\SAMB_4\projects\xilofono\src\main.c
-494 text8 CODE >275:Z:\SAMB_4\projects\xilofono\src\main.c
-494 text8 CODE >277:Z:\SAMB_4\projects\xilofono\src\main.c
-600 text7 CODE >4:Z:\SAMB_4\projects\xilofono\src\rs232.c
-600 text7 CODE >7:Z:\SAMB_4\projects\xilofono\src\rs232.c
-602 text7 CODE >8:Z:\SAMB_4\projects\xilofono\src\rs232.c
-604 text7 CODE >11:Z:\SAMB_4\projects\xilofono\src\rs232.c
-606 text7 CODE >12:Z:\SAMB_4\projects\xilofono\src\rs232.c
-60A text7 CODE >13:Z:\SAMB_4\projects\xilofono\src\rs232.c
-60E text7 CODE >14:Z:\SAMB_4\projects\xilofono\src\rs232.c
-610 text7 CODE >15:Z:\SAMB_4\projects\xilofono\src\rs232.c
-612 text7 CODE >18:Z:\SAMB_4\projects\xilofono\src\rs232.c
-614 text7 CODE >19:Z:\SAMB_4\projects\xilofono\src\rs232.c
-616 text7 CODE >21:Z:\SAMB_4\projects\xilofono\src\rs232.c
-618 text7 CODE >22:Z:\SAMB_4\projects\xilofono\src\rs232.c
-61A text7 CODE >23:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5E4 text6 CODE >25:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5E4 text6 CODE >28:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5E6 text6 CODE >29:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5E8 text6 CODE >32:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5EA text6 CODE >33:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5EE text6 CODE >34:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5F2 text6 CODE >35:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5F4 text6 CODE >36:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5F6 text6 CODE >39:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5F8 text6 CODE >40:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5FA text6 CODE >42:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5FC text6 CODE >43:Z:\SAMB_4\projects\xilofono\src\rs232.c
-5FE text6 CODE >44:Z:\SAMB_4\projects\xilofono\src\rs232.c
-50C text5 CODE >150:Z:\SAMB_4\projects\xilofono\src\main.c
-50C text5 CODE >152:Z:\SAMB_4\projects\xilofono\src\main.c
-50E text5 CODE >156:Z:\SAMB_4\projects\xilofono\src\main.c
-510 text5 CODE >158:Z:\SAMB_4\projects\xilofono\src\main.c
-51C text5 CODE >160:Z:\SAMB_4\projects\xilofono\src\main.c
-522 text5 CODE >162:Z:\SAMB_4\projects\xilofono\src\main.c
-526 text5 CODE >166:Z:\SAMB_4\projects\xilofono\src\main.c
-52C text5 CODE >167:Z:\SAMB_4\projects\xilofono\src\main.c
-530 text5 CODE >168:Z:\SAMB_4\projects\xilofono\src\main.c
-534 text5 CODE >169:Z:\SAMB_4\projects\xilofono\src\main.c
-538 text5 CODE >172:Z:\SAMB_4\projects\xilofono\src\main.c
-53A text5 CODE >173:Z:\SAMB_4\projects\xilofono\src\main.c
-53C text5 CODE >176:Z:\SAMB_4\projects\xilofono\src\main.c
-53E text5 CODE >177:Z:\SAMB_4\projects\xilofono\src\main.c
-540 text5 CODE >178:Z:\SAMB_4\projects\xilofono\src\main.c
-542 text5 CODE >179:Z:\SAMB_4\projects\xilofono\src\main.c
-544 text5 CODE >182:Z:\SAMB_4\projects\xilofono\src\main.c
-546 text5 CODE >184:Z:\SAMB_4\projects\xilofono\src\main.c
-548 text5 CODE >186:Z:\SAMB_4\projects\xilofono\src\main.c
-54A text5 CODE >188:Z:\SAMB_4\projects\xilofono\src\main.c
-54C text5 CODE >193:Z:\SAMB_4\projects\xilofono\src\main.c
-550 text5 CODE >195:Z:\SAMB_4\projects\xilofono\src\main.c
-558 text5 CODE >197:Z:\SAMB_4\projects\xilofono\src\main.c
-55C text5 CODE >199:Z:\SAMB_4\projects\xilofono\src\main.c
-55E text5 CODE >202:Z:\SAMB_4\projects\xilofono\src\main.c
-560 text5 CODE >203:Z:\SAMB_4\projects\xilofono\src\main.c
-562 text5 CODE >206:Z:\SAMB_4\projects\xilofono\src\main.c
-564 text5 CODE >209:Z:\SAMB_4\projects\xilofono\src\main.c
-568 text5 CODE >210:Z:\SAMB_4\projects\xilofono\src\main.c
-56C text5 CODE >211:Z:\SAMB_4\projects\xilofono\src\main.c
-56E text4 CODE >8:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
-56E text4 CODE >18:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
-576 text4 CODE >19:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
-578 text4 CODE >20:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
-588 text4 CODE >19:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
-59A text3 CODE >51:Z:\SAMB_4\projects\xilofono\src\midi.c
-59A text3 CODE >53:Z:\SAMB_4\projects\xilofono\src\midi.c
-5A2 text3 CODE >57:Z:\SAMB_4\projects\xilofono\src\midi.c
-5C0 text2 CODE >40:Z:\SAMB_4\projects\xilofono\src\midi.c
-5C0 text2 CODE >42:Z:\SAMB_4\projects\xilofono\src\midi.c
-5C8 text2 CODE >46:Z:\SAMB_4\projects\xilofono\src\midi.c
-4A6 text1 CODE >62:Z:\SAMB_4\projects\xilofono\src\midi.c
-4A6 text1 CODE >64:Z:\SAMB_4\projects\xilofono\src\midi.c
-4B0 text1 CODE >74:Z:\SAMB_4\projects\xilofono\src\midi.c
-4C0 text1 CODE >75:Z:\SAMB_4\projects\xilofono\src\midi.c
-4D4 text1 CODE >77:Z:\SAMB_4\projects\xilofono\src\midi.c
-4E6 text1 CODE >78:Z:\SAMB_4\projects\xilofono\src\midi.c
-4F6 text1 CODE >81:Z:\SAMB_4\projects\xilofono\src\midi.c
-356 text0 CODE >215:Z:\SAMB_4\projects\xilofono\src\main.c
-356 text0 CODE >221:Z:\SAMB_4\projects\xilofono\src\main.c
-35A text0 CODE >224:Z:\SAMB_4\projects\xilofono\src\main.c
-376 text0 CODE >226:Z:\SAMB_4\projects\xilofono\src\main.c
-378 text0 CODE >229:Z:\SAMB_4\projects\xilofono\src\main.c
-37A text0 CODE >232:Z:\SAMB_4\projects\xilofono\src\main.c
-398 text0 CODE >235:Z:\SAMB_4\projects\xilofono\src\main.c
-398 text0 CODE >237:Z:\SAMB_4\projects\xilofono\src\main.c
-3AE text0 CODE >238:Z:\SAMB_4\projects\xilofono\src\main.c
-3DA text0 CODE >241:Z:\SAMB_4\projects\xilofono\src\main.c
-3E0 text0 CODE >244:Z:\SAMB_4\projects\xilofono\src\main.c
-3EC text0 CODE >251:Z:\SAMB_4\projects\xilofono\src\main.c
-3FE text0 CODE >254:Z:\SAMB_4\projects\xilofono\src\main.c
-42C text0 CODE >237:Z:\SAMB_4\projects\xilofono\src\main.c
-42C text0 CODE >255:Z:\SAMB_4\projects\xilofono\src\main.c
-61C cinit CODE >1219:C:\Users\_prossn\AppData\Local\Temp\s514.
-61C cinit CODE >1221:C:\Users\_prossn\AppData\Local\Temp\s514.
-61C cinit CODE >1224:C:\Users\_prossn\AppData\Local\Temp\s514.
-61C cinit CODE >1239:C:\Users\_prossn\AppData\Local\Temp\s514.
-620 cinit CODE >1240:C:\Users\_prossn\AppData\Local\Temp\s514.
-622 cinit CODE >1241:C:\Users\_prossn\AppData\Local\Temp\s514.
-622 cinit CODE >1242:C:\Users\_prossn\AppData\Local\Temp\s514.
-624 cinit CODE >1243:C:\Users\_prossn\AppData\Local\Temp\s514.
-626 cinit CODE >1244:C:\Users\_prossn\AppData\Local\Temp\s514.
-628 cinit CODE >1250:C:\Users\_prossn\AppData\Local\Temp\s514.
-628 cinit CODE >1252:C:\Users\_prossn\AppData\Local\Temp\s514.
-62A cinit CODE >1253:C:\Users\_prossn\AppData\Local\Temp\s514.
-62C cinit CODE >1255:C:\Users\_prossn\AppData\Local\Temp\s514.
-62E cinit CODE >1256:C:\Users\_prossn\AppData\Local\Temp\s514.
-630 cinit CODE >1257:C:\Users\_prossn\AppData\Local\Temp\s514.
-632 cinit CODE >1258:C:\Users\_prossn\AppData\Local\Temp\s514.
+8 intcode CODE >114:Z:\SAMB_4\projects\xilofono\src\main.c
+8 intcode CODE >57:Z:\SAMB_4\projects\xilofono\src\rs232.c
+52 intcode CODE >122:Z:\SAMB_4\projects\xilofono\src\main.c
+56 intcode CODE >123:Z:\SAMB_4\projects\xilofono\src\main.c
+5A intcode CODE >124:Z:\SAMB_4\projects\xilofono\src\main.c
+5E intcode CODE >126:Z:\SAMB_4\projects\xilofono\src\main.c
+62 intcode CODE >127:Z:\SAMB_4\projects\xilofono\src\main.c
+62 intcode CODE >129:Z:\SAMB_4\projects\xilofono\src\main.c
+DE intcode CODE >130:Z:\SAMB_4\projects\xilofono\src\main.c
+186 intcode CODE >135:Z:\SAMB_4\projects\xilofono\src\main.c
+200 intcode CODE >136:Z:\SAMB_4\projects\xilofono\src\main.c
+2AA intcode CODE >138:Z:\SAMB_4\projects\xilofono\src\main.c
+2B2 intcode CODE >147:Z:\SAMB_4\projects\xilofono\src\main.c
+2B4 intcode CODE >148:Z:\SAMB_4\projects\xilofono\src\main.c
+2B4 intcode CODE >153:Z:\SAMB_4\projects\xilofono\src\main.c
+952 text9 CODE >53:Z:\SAMB_4\projects\xilofono\src\rs232.c
+954 text9 CODE >55:Z:\SAMB_4\projects\xilofono\src\rs232.c
+958 text9 CODE >56:Z:\SAMB_4\projects\xilofono\src\rs232.c
+95C text9 CODE >57:Z:\SAMB_4\projects\xilofono\src\rs232.c
+762 text8 CODE >276:Z:\SAMB_4\projects\xilofono\src\main.c
+762 text8 CODE >281:Z:\SAMB_4\projects\xilofono\src\main.c
+76A text8 CODE >285:Z:\SAMB_4\projects\xilofono\src\main.c
+77E text8 CODE >286:Z:\SAMB_4\projects\xilofono\src\main.c
+78A text8 CODE >288:Z:\SAMB_4\projects\xilofono\src\main.c
+7B0 text8 CODE >290:Z:\SAMB_4\projects\xilofono\src\main.c
+7B2 text8 CODE >291:Z:\SAMB_4\projects\xilofono\src\main.c
+7C4 text8 CODE >290:Z:\SAMB_4\projects\xilofono\src\main.c
+7C4 text8 CODE >292:Z:\SAMB_4\projects\xilofono\src\main.c
+91C text7 CODE >4:Z:\SAMB_4\projects\xilofono\src\rs232.c
+91C text7 CODE >7:Z:\SAMB_4\projects\xilofono\src\rs232.c
+91E text7 CODE >8:Z:\SAMB_4\projects\xilofono\src\rs232.c
+920 text7 CODE >11:Z:\SAMB_4\projects\xilofono\src\rs232.c
+922 text7 CODE >12:Z:\SAMB_4\projects\xilofono\src\rs232.c
+926 text7 CODE >13:Z:\SAMB_4\projects\xilofono\src\rs232.c
+92A text7 CODE >14:Z:\SAMB_4\projects\xilofono\src\rs232.c
+92C text7 CODE >15:Z:\SAMB_4\projects\xilofono\src\rs232.c
+92E text7 CODE >18:Z:\SAMB_4\projects\xilofono\src\rs232.c
+930 text7 CODE >19:Z:\SAMB_4\projects\xilofono\src\rs232.c
+932 text7 CODE >21:Z:\SAMB_4\projects\xilofono\src\rs232.c
+934 text7 CODE >22:Z:\SAMB_4\projects\xilofono\src\rs232.c
+936 text7 CODE >23:Z:\SAMB_4\projects\xilofono\src\rs232.c
+900 text6 CODE >25:Z:\SAMB_4\projects\xilofono\src\rs232.c
+900 text6 CODE >28:Z:\SAMB_4\projects\xilofono\src\rs232.c
+902 text6 CODE >29:Z:\SAMB_4\projects\xilofono\src\rs232.c
+904 text6 CODE >32:Z:\SAMB_4\projects\xilofono\src\rs232.c
+906 text6 CODE >33:Z:\SAMB_4\projects\xilofono\src\rs232.c
+90A text6 CODE >35:Z:\SAMB_4\projects\xilofono\src\rs232.c
+90E text6 CODE >36:Z:\SAMB_4\projects\xilofono\src\rs232.c
+910 text6 CODE >37:Z:\SAMB_4\projects\xilofono\src\rs232.c
+912 text6 CODE >40:Z:\SAMB_4\projects\xilofono\src\rs232.c
+914 text6 CODE >41:Z:\SAMB_4\projects\xilofono\src\rs232.c
+916 text6 CODE >43:Z:\SAMB_4\projects\xilofono\src\rs232.c
+918 text6 CODE >44:Z:\SAMB_4\projects\xilofono\src\rs232.c
+91A text6 CODE >45:Z:\SAMB_4\projects\xilofono\src\rs232.c
+838 text5 CODE >156:Z:\SAMB_4\projects\xilofono\src\main.c
+838 text5 CODE >158:Z:\SAMB_4\projects\xilofono\src\main.c
+83A text5 CODE >162:Z:\SAMB_4\projects\xilofono\src\main.c
+83C text5 CODE >164:Z:\SAMB_4\projects\xilofono\src\main.c
+848 text5 CODE >166:Z:\SAMB_4\projects\xilofono\src\main.c
+84E text5 CODE >168:Z:\SAMB_4\projects\xilofono\src\main.c
+852 text5 CODE >172:Z:\SAMB_4\projects\xilofono\src\main.c
+858 text5 CODE >173:Z:\SAMB_4\projects\xilofono\src\main.c
+85C text5 CODE >174:Z:\SAMB_4\projects\xilofono\src\main.c
+860 text5 CODE >175:Z:\SAMB_4\projects\xilofono\src\main.c
+864 text5 CODE >178:Z:\SAMB_4\projects\xilofono\src\main.c
+866 text5 CODE >179:Z:\SAMB_4\projects\xilofono\src\main.c
+868 text5 CODE >199:Z:\SAMB_4\projects\xilofono\src\main.c
+86C text5 CODE >201:Z:\SAMB_4\projects\xilofono\src\main.c
+874 text5 CODE >203:Z:\SAMB_4\projects\xilofono\src\main.c
+878 text5 CODE >205:Z:\SAMB_4\projects\xilofono\src\main.c
+87A text5 CODE >208:Z:\SAMB_4\projects\xilofono\src\main.c
+87C text5 CODE >209:Z:\SAMB_4\projects\xilofono\src\main.c
+87E text5 CODE >212:Z:\SAMB_4\projects\xilofono\src\main.c
+880 text5 CODE >215:Z:\SAMB_4\projects\xilofono\src\main.c
+884 text5 CODE >216:Z:\SAMB_4\projects\xilofono\src\main.c
+888 text5 CODE >217:Z:\SAMB_4\projects\xilofono\src\main.c
+88A text4 CODE >8:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+88A text4 CODE >18:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+892 text4 CODE >19:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+894 text4 CODE >20:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+8A4 text4 CODE >19:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
+8B6 text3 CODE >51:Z:\SAMB_4\projects\xilofono\src\midi.c
+8B6 text3 CODE >53:Z:\SAMB_4\projects\xilofono\src\midi.c
+8BE text3 CODE >57:Z:\SAMB_4\projects\xilofono\src\midi.c
+8DC text2 CODE >40:Z:\SAMB_4\projects\xilofono\src\midi.c
+8DC text2 CODE >42:Z:\SAMB_4\projects\xilofono\src\midi.c
+8E4 text2 CODE >46:Z:\SAMB_4\projects\xilofono\src\midi.c
+7D6 text1 CODE >62:Z:\SAMB_4\projects\xilofono\src\midi.c
+7D6 text1 CODE >64:Z:\SAMB_4\projects\xilofono\src\midi.c
+7DE text1 CODE >74:Z:\SAMB_4\projects\xilofono\src\midi.c
+7EE text1 CODE >75:Z:\SAMB_4\projects\xilofono\src\midi.c
+802 text1 CODE >77:Z:\SAMB_4\projects\xilofono\src\midi.c
+812 text1 CODE >78:Z:\SAMB_4\projects\xilofono\src\midi.c
+822 text1 CODE >81:Z:\SAMB_4\projects\xilofono\src\midi.c
+62C text0 CODE >221:Z:\SAMB_4\projects\xilofono\src\main.c
+62C text0 CODE >227:Z:\SAMB_4\projects\xilofono\src\main.c
+630 text0 CODE >230:Z:\SAMB_4\projects\xilofono\src\main.c
+64C text0 CODE >232:Z:\SAMB_4\projects\xilofono\src\main.c
+64E text0 CODE >239:Z:\SAMB_4\projects\xilofono\src\main.c
+658 text0 CODE >240:Z:\SAMB_4\projects\xilofono\src\main.c
+660 text0 CODE >241:Z:\SAMB_4\projects\xilofono\src\main.c
+664 text0 CODE >242:Z:\SAMB_4\projects\xilofono\src\main.c
+66C text0 CODE >244:Z:\SAMB_4\projects\xilofono\src\main.c
+692 text0 CODE >246:Z:\SAMB_4\projects\xilofono\src\main.c
+6AA text0 CODE >247:Z:\SAMB_4\projects\xilofono\src\main.c
+6B6 text0 CODE >250:Z:\SAMB_4\projects\xilofono\src\main.c
+6B6 text0 CODE >252:Z:\SAMB_4\projects\xilofono\src\main.c
+6CC text0 CODE >253:Z:\SAMB_4\projects\xilofono\src\main.c
+6F8 text0 CODE >256:Z:\SAMB_4\projects\xilofono\src\main.c
+710 text0 CODE >259:Z:\SAMB_4\projects\xilofono\src\main.c
+71C text0 CODE >266:Z:\SAMB_4\projects\xilofono\src\main.c
+72E text0 CODE >269:Z:\SAMB_4\projects\xilofono\src\main.c
+75C text0 CODE >252:Z:\SAMB_4\projects\xilofono\src\main.c
+75C text0 CODE >270:Z:\SAMB_4\projects\xilofono\src\main.c
+938 cinit CODE >1247:C:\Users\_prossn\AppData\Local\Temp\s15k.
+938 cinit CODE >1249:C:\Users\_prossn\AppData\Local\Temp\s15k.
+938 cinit CODE >1252:C:\Users\_prossn\AppData\Local\Temp\s15k.
+938 cinit CODE >1267:C:\Users\_prossn\AppData\Local\Temp\s15k.
+93C cinit CODE >1268:C:\Users\_prossn\AppData\Local\Temp\s15k.
+93E cinit CODE >1269:C:\Users\_prossn\AppData\Local\Temp\s15k.
+93E cinit CODE >1270:C:\Users\_prossn\AppData\Local\Temp\s15k.
+940 cinit CODE >1271:C:\Users\_prossn\AppData\Local\Temp\s15k.
+942 cinit CODE >1272:C:\Users\_prossn\AppData\Local\Temp\s15k.
+944 cinit CODE >1278:C:\Users\_prossn\AppData\Local\Temp\s15k.
+944 cinit CODE >1280:C:\Users\_prossn\AppData\Local\Temp\s15k.
+946 cinit CODE >1281:C:\Users\_prossn\AppData\Local\Temp\s15k.
+948 cinit CODE >1283:C:\Users\_prossn\AppData\Local\Temp\s15k.
+94A cinit CODE >1284:C:\Users\_prossn\AppData\Local\Temp\s15k.
+94C cinit CODE >1285:C:\Users\_prossn\AppData\Local\Temp\s15k.
+94E cinit CODE >1286:C:\Users\_prossn\AppData\Local\Temp\s15k.
# %SYMTAB Section
# An enumeration of all symbols in the program.
# The beginning of the section is indicated by %SYMTAB.
@@ -223,71 +219,75 @@ E0 intcode CODE >126:Z:\SAMB_4\projects\xilofono\src\main.c
%SYMTAB
__Lmediumconst 0 0 MEDIUMCONST 0 mediumconst dist/default/production\src.production.obj
__Hspace_0 30000E 0 ABS 0 - dist/default/production\src.production.obj
-__Hspace_1 B6 0 ABS 0 - dist/default/production\src.production.obj
+__Hspace_1 B7 0 ABS 0 - dist/default/production\src.production.obj
__Hspace_2 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_IESO$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
-_eusart2_putch 636 0 CODE 0 text9 dist/default/production\src.production.obj
-__end_of_midi_set_status 5E4 0 CODE 0 text2 dist/default/production\src.production.obj
+_eusart2_putch 952 0 CODE 0 text9 dist/default/production\src.production.obj
+__end_of_midi_set_status 900 0 CODE 0 text2 dist/default/production\src.production.obj
__Hibigdata 0 0 CODE 0 ibigdata dist/default/production\src.production.obj
-__mediumconst 0 0 MEDIUMCONST 0 mediumconst C:\Users\_prossn\AppData\Local\Temp\s514.obj
+__mediumconst 0 0 MEDIUMCONST 0 mediumconst C:\Users\_prossn\AppData\Local\Temp\s15k.obj
__Heeprom_data 0 0 EEDATA 0 eeprom_data dist/default/production\src.production.obj
-main@i AD 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
-__Lsmallconst 0 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
-___sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s514.obj
-_main 356 0 CODE 0 text0 dist/default/production\src.production.obj
-btemp 34 0 COMRAM 1 temp dist/default/production\src.production.obj
-isr@i 2A 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-start 352 0 CODE 0 init C:\Users\_prossn\AppData\Local\Temp\s514.obj
+main@i AE 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
+__Lsmallconst 600 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
+___sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+_main 62C 0 CODE 0 text0 dist/default/production\src.production.obj
+btemp 35 0 COMRAM 1 temp dist/default/production\src.production.obj
+isr@i 29 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+start 300 0 CODE 0 init C:\Users\_prossn\AppData\Local\Temp\s15k.obj
_keys_data 62 0 BANK0 1 bssBANK0 dist/default/production\src.production.obj
__size_of_main 0 0 ABS 0 - dist/default/production\src.production.obj
-eusart_write_midi@data 32 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+__CFG_WDTEN$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
+eusart_write_midi@data 31 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__CFG_CCP2MX$PORTC1 0 0 ABS 0 - dist/default/production\src.production.obj
-midi_note_on@channel A4 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
-__Hpowerup 352 0 CODE 0 powerup dist/default/production\src.production.obj
+midi_note_on@channel 31 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+__Hpowerup 300 0 CODE 0 powerup dist/default/production\src.production.obj
__CFG_CCP3MX$PORTB5 0 0 ABS 0 - dist/default/production\src.production.obj
__size_of_eusart_write_midi 0 0 ABS 0 - dist/default/production\src.production.obj
-__accesstop 60 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s514.obj
-intlevel0 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s514.obj
-intlevel1 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s514.obj
-intlevel2 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s514.obj
-intlevel3 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s514.obj
-_midi_set_status 5C0 0 CODE 0 text2 dist/default/production\src.production.obj
+__accesstop 60 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+intlevel0 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+intlevel1 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+intlevel2 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+intlevel3 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+_midi_set_status 8DC 0 CODE 0 text2 dist/default/production\src.production.obj
_OSCCONbits FD3 0 ABS 0 - dist/default/production\src.production.obj
__LnvFARRAM 0 0 FARRAM 0 nvFARRAM dist/default/production\src.production.obj
-wtemp6 35 0 COMRAM 1 temp dist/default/production\src.production.obj
+wtemp6 36 0 COMRAM 1 temp dist/default/production\src.production.obj
__CFG_EBTR0$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_EBTR1$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_EBTR2$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_EBTR3$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_EBTRB$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
-eusart_write_midi@pkt 2C 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+eusart_write_midi@pkt 2B 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__CFG_P2BMX$PORTD2 0 0 ABS 0 - dist/default/production\src.production.obj
__Hifardata 0 0 CODE 0 ifardata dist/default/production\src.production.obj
__Hclrtext 0 0 ABS 0 clrtext dist/default/production\src.production.obj
__CFG_PRICLKEN$ON 0 0 ABS 0 - dist/default/production\src.production.obj
-midi_note_on@velocity A7 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
+midi_note_on@velocity 34 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+__CFG_FOSC$INTIO67 0 0 ABS 0 - dist/default/production\src.production.obj
_ANSELA F38 0 ABS 0 - dist/default/production\src.production.obj
_ANSELB F39 0 ABS 0 - dist/default/production\src.production.obj
_ANSELC F3A 0 ABS 0 - dist/default/production\src.production.obj
_ANSELD F3B 0 ABS 0 - dist/default/production\src.production.obj
-___inthi_sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s514.obj
-___intlo_sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s514.obj
+main@conf_message A7 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
+___inthi_sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+___intlo_sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s15k.obj
__size_of_init_hw 0 0 ABS 0 - dist/default/production\src.production.obj
-eusart_write_midi@length 30 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+eusart_write_midi@length 2F 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__Hintcode_body 0 0 ABS 0 intcode_body dist/default/production\src.production.obj
__size_of_eusart2_putch 0 0 ABS 0 - dist/default/production\src.production.obj
-main@message AF 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
+main@message B0 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
__Lintsave_regs 0 0 BIGRAM 1 intsave_regs dist/default/production\src.production.obj
_TXSTA1bits FAC 0 ABS 0 - dist/default/production\src.production.obj
_TXSTA2bits F72 0 ABS 0 - dist/default/production\src.production.obj
__Hmediumconst 0 0 MEDIUMCONST 0 mediumconst dist/default/production\src.production.obj
-__Hintcodelo 352 0 CODE 0 intcodelo dist/default/production\src.production.obj
-midi_note_on@note A6 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
+__Hintcodelo 300 0 CODE 0 intcodelo dist/default/production\src.production.obj
+midi_note_on@note 33 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
_OSCTUNEbits F9B 0 ABS 0 - dist/default/production\src.production.obj
-__end_of_eusart2_putch 642 0 CODE 0 text9 dist/default/production\src.production.obj
-__Lintcodelo 352 0 CODE 0 intcodelo dist/default/production\src.production.obj
+__end_of_eusart2_putch 95E 0 CODE 0 text9 dist/default/production\src.production.obj
+_midi_notes_steps_table 601 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
+__Lintcodelo 300 0 CODE 0 intcodelo dist/default/production\src.production.obj
__CFG_FCMEN$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
-start_initialization 61C 0 CODE 0 cinit dist/default/production\src.production.obj
+start_initialization 938 0 CODE 0 cinit dist/default/production\src.production.obj
__CFG_PBADEN$ON 0 0 ABS 0 - dist/default/production\src.production.obj
__HnvFARRAM 0 0 FARRAM 0 nvFARRAM dist/default/production\src.production.obj
__size_of_midi_set_status 0 0 ABS 0 - dist/default/production\src.production.obj
@@ -295,15 +295,15 @@ _TRISCbits F94 0 ABS 0 - dist/default/production\src.production.obj
_TRISDbits F95 0 ABS 0 - dist/default/production\src.production.obj
___rparam_used 1 0 ABS 0 - dist/default/production\src.production.obj
_RC1REG FAE 0 ABS 0 - dist/default/production\src.production.obj
-__end_of_memset 59A 0 CODE 0 text4 dist/default/production\src.production.obj
-__end_of_eusart_write_midi 4A6 0 CODE 0 text8 dist/default/production\src.production.obj
+__end_of_memset 8B6 0 CODE 0 text4 dist/default/production\src.production.obj
+__end_of_eusart_write_midi 7D6 0 CODE 0 text8 dist/default/production\src.production.obj
__CFG_WDTPS$32768 0 0 ABS 0 - dist/default/production\src.production.obj
_SPBRG1 FAF 0 ABS 0 - dist/default/production\src.production.obj
_SPBRG2 F75 0 ABS 0 - dist/default/production\src.production.obj
__pcstackBANK0 A2 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
_TX1REG FAD 0 ABS 0 - dist/default/production\src.production.obj
_TX2REG F73 0 ABS 0 - dist/default/production\src.production.obj
-__end_of_init_hw 56E 0 CODE 0 text5 dist/default/production\src.production.obj
+__end_of_init_hw 88A 0 CODE 0 text5 dist/default/production\src.production.obj
__Hbank0 0 0 ABS 0 bank0 dist/default/production\src.production.obj
__Hbank1 0 0 ABS 0 bank1 dist/default/production\src.production.obj
__Hbank2 0 0 ABS 0 bank2 dist/default/production\src.production.obj
@@ -330,11 +330,10 @@ __Htext8 0 0 ABS 0 text8 dist/default/production\src.production.obj
__Htext9 0 0 ABS 0 text9 dist/default/production\src.production.obj
__Hbigbss 0 0 BIGRAM 1 bigbss dist/default/production\src.production.obj
__Hbigram 0 0 ABS 0 bigram dist/default/production\src.production.obj
-__smallconst 0 0 SMALLCONST 0 smallconst C:\Users\_prossn\AppData\Local\Temp\s514.obj
-__CFG_FOSC$INTIO7 0 0 ABS 0 - dist/default/production\src.production.obj
+__smallconst 600 0 SMALLCONST 0 smallconst C:\Users\_prossn\AppData\Local\Temp\s15k.obj
__Hcomram 0 0 ABS 0 comram dist/default/production\src.production.obj
__Hconfig 30000E 0 CONFIG 0 config dist/default/production\src.production.obj
-midi_note_on@pkt A2 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj
+midi_note_on@pkt 2F 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__Lbank0 0 0 ABS 0 bank0 dist/default/production\src.production.obj
__Lbank1 0 0 ABS 0 bank1 dist/default/production\src.production.obj
__Lbank2 0 0 ABS 0 bank2 dist/default/production\src.production.obj
@@ -361,48 +360,46 @@ __Ltext8 0 0 ABS 0 text8 dist/default/production\src.production.obj
__Ltext9 0 0 ABS 0 text9 dist/default/production\src.production.obj
__Hfarbss 0 0 FARRAM 0 farbss dist/default/production\src.production.obj
__Lintcode_body 0 0 ABS 0 intcode_body dist/default/production\src.production.obj
-_PORTAbits F80 0 ABS 0 - dist/default/production\src.production.obj
-_PORTDbits F83 0 ABS 0 - dist/default/production\src.production.obj
__CFG_T3CMX$PORTC0 0 0 ABS 0 - dist/default/production\src.production.obj
_INTCONbits FF2 0 ABS 0 - dist/default/production\src.production.obj
__Habs1 0 0 ABS 0 abs1 dist/default/production\src.production.obj
__Hdata 0 0 ABS 0 data dist/default/production\src.production.obj
-__Hinit 356 0 CODE 0 init dist/default/production\src.production.obj
+__Hinit 304 0 CODE 0 init dist/default/production\src.production.obj
__Hrbit 0 0 COMRAM 1 rbit dist/default/production\src.production.obj
__Hrbss 0 0 COMRAM 1 rbss dist/default/production\src.production.obj
-__Htemp 35 0 COMRAM 1 temp dist/default/production\src.production.obj
+__Htemp 36 0 COMRAM 1 temp dist/default/production\src.production.obj
__Htext 0 0 ABS 0 text dist/default/production\src.production.obj
__Labs1 0 0 ABS 0 abs1 dist/default/production\src.production.obj
__Ldata 0 0 ABS 0 data dist/default/production\src.production.obj
-__Linit 352 0 CODE 0 init dist/default/production\src.production.obj
+__Linit 300 0 CODE 0 init dist/default/production\src.production.obj
__Lrbit 0 0 COMRAM 1 rbit dist/default/production\src.production.obj
__Lrbss 0 0 COMRAM 1 rbss dist/default/production\src.production.obj
-__Ltemp 34 0 COMRAM 1 temp dist/default/production\src.production.obj
+__Ltemp 35 0 COMRAM 1 temp dist/default/production\src.production.obj
__Ltext 0 0 ABS 0 text dist/default/production\src.production.obj
__CFG_XINST$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
_keypresses 60 0 BANK0 1 bssBANK0 dist/default/production\src.production.obj
-memset@c 2D 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-memset@n 2F 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-memset@p 31 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+memset@c 2C 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+memset@n 2E 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+memset@p 30 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__LcstackBANK0 0 0 ABS 0 cstackBANK0 dist/default/production\src.production.obj
-int$flags 34 0 COMRAM 1 temp dist/default/production\src.production.obj
+int$flags 35 0 COMRAM 1 temp dist/default/production\src.production.obj
__HcstackCOMRAM 0 0 ABS 0 cstackCOMRAM dist/default/production\src.production.obj
__Hintret 0 0 ABS 0 intret dist/default/production\src.production.obj
__Hirdata 0 0 CODE 0 irdata dist/default/production\src.production.obj
_PR2 FBB 0 ABS 0 - dist/default/production\src.production.obj
__S0 30000E 0 ABS 0 - dist/default/production\src.production.obj
-__S1 B6 0 ABS 0 - dist/default/production\src.production.obj
+__S1 B7 0 ABS 0 - dist/default/production\src.production.obj
__S2 0 0 ABS 0 - dist/default/production\src.production.obj
_isr 8 0 CODE 0 intcode dist/default/production\src.production.obj
__Lbigdata 0 0 BIGRAM 1 bigdata dist/default/production\src.production.obj
__Hnvrram 0 0 COMRAM 1 nvrram dist/default/production\src.production.obj
-_eusart_write_midi 432 0 CODE 0 text8 dist/default/production\src.production.obj
-__end_of_isr 352 0 CODE 0 intcode dist/default/production\src.production.obj
+_eusart_write_midi 762 0 CODE 0 text8 dist/default/production\src.production.obj
+__end_of_isr 300 0 CODE 0 intcode dist/default/production\src.production.obj
__CFG_BORV$190 0 0 ABS 0 - dist/default/production\src.production.obj
__Lintentry 0 0 ABS 0 intentry dist/default/production\src.production.obj
__Hramtop 600 0 RAM 0 ramtop dist/default/production\src.production.obj
__Hrparam 0 0 COMRAM 1 rparam dist/default/production\src.production.obj
-_midi_note_on 4A6 0 CODE 0 text1 dist/default/production\src.production.obj
+_midi_note_on 7D6 0 CODE 0 text1 dist/default/production\src.production.obj
__CFG_PWRTEN$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__activetblptr 2 0 ABS 0 - dist/default/production\src.production.obj
__Hstruct 0 0 COMRAM 1 struct dist/default/production\src.production.obj
@@ -411,28 +408,28 @@ isr@data_a 25 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
isr@data_b 26 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
_PIE1bits F9D 0 ABS 0 - dist/default/production\src.production.obj
__CFG_HFOFST$ON 0 0 ABS 0 - dist/default/production\src.production.obj
-_memset 56E 0 CODE 0 text4 dist/default/production\src.production.obj
-memset@p1 2B 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+_memset 88A 0 CODE 0 text4 dist/default/production\src.production.obj
+memset@p1 2A 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+__end_of_midi_notes_steps_table 62B 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
__Lbigbss 0 0 BIGRAM 1 bigbss dist/default/production\src.production.obj
__Lbigram 0 0 ABS 0 bigram dist/default/production\src.production.obj
-midi_set_channel@pkt 2B 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+midi_set_channel@pkt 2A 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__Lcomram 0 0 ABS 0 comram dist/default/production\src.production.obj
__Lconfig 300000 0 CONFIG 0 config dist/default/production\src.production.obj
-__CFG_WDTEN$ON 0 0 ABS 0 - dist/default/production\src.production.obj
_RCSTA1bits FAB 0 ABS 0 - dist/default/production\src.production.obj
_RCSTA2bits F71 0 ABS 0 - dist/default/production\src.production.obj
__Lfarbss 0 0 FARRAM 0 farbss dist/default/production\src.production.obj
-_eusart1_init 600 0 CODE 0 text7 dist/default/production\src.production.obj
+_eusart1_init 91C 0 CODE 0 text7 dist/default/production\src.production.obj
__Lfardata 0 0 FARRAM 0 fardata dist/default/production\src.production.obj
-midi_set_status@status 2D 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-_eusart2_init 5E4 0 CODE 0 text6 dist/default/production\src.production.obj
+midi_set_status@status 2C 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+_eusart2_init 900 0 CODE 0 text6 dist/default/production\src.production.obj
__size_of_midi_note_on 0 0 ABS 0 - dist/default/production\src.production.obj
-stackhi 5FF 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s514.obj
-stacklo B6 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s514.obj
+stackhi 5FF 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+stacklo B7 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s15k.obj
__Lintcode 8 0 CODE 0 intcode dist/default/production\src.production.obj
__Lintret 0 0 ABS 0 intret dist/default/production\src.production.obj
__Lirdata 0 0 CODE 0 irdata dist/default/production\src.production.obj
-_midi_set_channel 59A 0 CODE 0 text3 dist/default/production\src.production.obj
+_midi_set_channel 8B6 0 CODE 0 text3 dist/default/production\src.production.obj
__Lspace_0 0 0 ABS 0 - dist/default/production\src.production.obj
__Lspace_1 0 0 ABS 0 - dist/default/production\src.production.obj
__Lspace_2 0 0 ABS 0 - dist/default/production\src.production.obj
@@ -440,45 +437,45 @@ __size_of_memset 0 0 ABS 0 - dist/default/production\src.production.obj
__HcstackBANK0 0 0 ABS 0 cstackBANK0 dist/default/production\src.production.obj
_PIR1bits F9E 0 ABS 0 - dist/default/production\src.production.obj
__CFG_LVP$ON 0 0 ABS 0 - dist/default/production\src.production.obj
-eusart2_putch@c 2B 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+eusart2_putch@c 2A 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__LcstackCOMRAM 0 0 ABS 0 cstackCOMRAM dist/default/production\src.production.obj
-end_of_initialization 628 0 CODE 0 cinit dist/default/production\src.production.obj
-__end_of_midi_note_on 50C 0 CODE 0 text1 dist/default/production\src.production.obj
+end_of_initialization 944 0 CODE 0 cinit dist/default/production\src.production.obj
+__end_of_midi_note_on 838 0 CODE 0 text1 dist/default/production\src.production.obj
__Lnvrram 0 0 COMRAM 1 nvrram dist/default/production\src.production.obj
__Hintentry 0 0 ABS 0 intentry dist/default/production\src.production.obj
__CFG_STVREN$ON 0 0 ABS 0 - dist/default/production\src.production.obj
__Hreset_vec 4 0 CODE 0 reset_vec dist/default/production\src.production.obj
__size_of_eusart1_init 0 0 ABS 0 - dist/default/production\src.production.obj
__HbssBANK0 0 0 ABS 0 bssBANK0 dist/default/production\src.production.obj
-_init_hw 50C 0 CODE 0 text5 dist/default/production\src.production.obj
+_init_hw 838 0 CODE 0 text5 dist/default/production\src.production.obj
__size_of_eusart2_init 0 0 ABS 0 - dist/default/production\src.production.obj
__Lramtop 600 0 RAM 0 ramtop dist/default/production\src.production.obj
__Lrparam 0 0 COMRAM 1 rparam dist/default/production\src.production.obj
-__pcinit 61C 0 CODE 0 cinit dist/default/production\src.production.obj
-__ptext0 356 0 CODE 0 text0 dist/default/production\src.production.obj
-__ptext1 4A6 0 CODE 0 text1 dist/default/production\src.production.obj
-__ptext2 5C0 0 CODE 0 text2 dist/default/production\src.production.obj
-__ptext3 59A 0 CODE 0 text3 dist/default/production\src.production.obj
-__ptext4 56E 0 CODE 0 text4 dist/default/production\src.production.obj
-__ptext5 50C 0 CODE 0 text5 dist/default/production\src.production.obj
-__ptext6 5E4 0 CODE 0 text6 dist/default/production\src.production.obj
-__ptext7 600 0 CODE 0 text7 dist/default/production\src.production.obj
-__ptext8 432 0 CODE 0 text8 dist/default/production\src.production.obj
-__ptext9 636 0 CODE 0 text9 dist/default/production\src.production.obj
+__pcinit 938 0 CODE 0 cinit dist/default/production\src.production.obj
+__ptext0 62C 0 CODE 0 text0 dist/default/production\src.production.obj
+__ptext1 7D6 0 CODE 0 text1 dist/default/production\src.production.obj
+__ptext2 8DC 0 CODE 0 text2 dist/default/production\src.production.obj
+__ptext3 8B6 0 CODE 0 text3 dist/default/production\src.production.obj
+__ptext4 88A 0 CODE 0 text4 dist/default/production\src.production.obj
+__ptext5 838 0 CODE 0 text5 dist/default/production\src.production.obj
+__ptext6 900 0 CODE 0 text6 dist/default/production\src.production.obj
+__ptext7 91C 0 CODE 0 text7 dist/default/production\src.production.obj
+__ptext8 762 0 CODE 0 text8 dist/default/production\src.production.obj
+__ptext9 952 0 CODE 0 text9 dist/default/production\src.production.obj
__Lstruct 0 0 COMRAM 1 struct dist/default/production\src.production.obj
-__ramtop 600 0 RAM 0 ramtop C:\Users\_prossn\AppData\Local\Temp\s514.obj
-__Lpowerup 352 0 CODE 0 powerup dist/default/production\src.production.obj
+__ramtop 600 0 RAM 0 ramtop C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+__Lpowerup 300 0 CODE 0 powerup dist/default/production\src.production.obj
__Leeprom_data 0 0 EEDATA 0 eeprom_data dist/default/production\src.production.obj
-_isr$595 27 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-_isr$596 28 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-_isr$605 29 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-midi_set_status@pkt 2B 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+_isr$304 27 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+_isr$305 28 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+__psmallconst 600 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
+midi_set_status@pkt 2A 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__Lreset_vec 0 0 CODE 0 reset_vec dist/default/production\src.production.obj
-__end_of_eusart1_init 61C 0 CODE 0 text7 dist/default/production\src.production.obj
-__end_of_eusart2_init 600 0 CODE 0 text6 dist/default/production\src.production.obj
+__end_of_eusart1_init 938 0 CODE 0 text7 dist/default/production\src.production.obj
+__end_of_eusart2_init 91C 0 CODE 0 text6 dist/default/production\src.production.obj
___param_bank 0 0 ABS 0 - dist/default/production\src.production.obj
__Hbigdata 0 0 BIGRAM 1 bigdata dist/default/production\src.production.obj
-__end_of__initialization 628 0 CODE 0 cinit dist/default/production\src.production.obj
+__end_of__initialization 944 0 CODE 0 cinit dist/default/production\src.production.obj
__CFG_WRT0$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_WRT1$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_WRT2$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
@@ -491,11 +488,11 @@ __CFG_WRTD$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__Lclrtext 0 0 ABS 0 clrtext dist/default/production\src.production.obj
_SPBRGH1 FB0 0 ABS 0 - dist/default/production\src.production.obj
_SPBRGH2 F76 0 ABS 0 - dist/default/production\src.production.obj
-__end_of_midi_set_channel 5C0 0 CODE 0 text3 dist/default/production\src.production.obj
+__end_of_midi_set_channel 8DC 0 CODE 0 text3 dist/default/production\src.production.obj
__pcstackCOMRAM 1 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
__size_of_midi_set_channel 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_BOREN$SBORDIS 0 0 ABS 0 - dist/default/production\src.production.obj
-__end_of_main 432 0 CODE 0 text0 dist/default/production\src.production.obj
+__end_of_main 762 0 CODE 0 text0 dist/default/production\src.production.obj
__pintcode 8 0 CODE 0 intcode dist/default/production\src.production.obj
_PORTA F80 0 ABS 0 - dist/default/production\src.production.obj
_PORTB F81 0 ABS 0 - dist/default/production\src.production.obj
@@ -519,18 +516,18 @@ __CFG_CP3$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_CPB$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__CFG_CPD$OFF 0 0 ABS 0 - dist/default/production\src.production.obj
__size_of_isr 0 0 ABS 0 - dist/default/production\src.production.obj
-__initialization 61C 0 CODE 0 cinit dist/default/production\src.production.obj
+__initialization 938 0 CODE 0 cinit dist/default/production\src.production.obj
_BAUDCON1bits FB8 0 ABS 0 - dist/default/production\src.production.obj
_BAUDCON2bits F70 0 ABS 0 - dist/default/production\src.production.obj
__pbssBANK0 60 0 BANK0 1 bssBANK0 dist/default/production\src.production.obj
_T2CONbits FBA 0 ABS 0 - dist/default/production\src.production.obj
__Hfardata 0 0 FARRAM 0 fardata dist/default/production\src.production.obj
-__Hsmallconst 0 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
+__Hsmallconst 62C 0 SMALLCONST 0 smallconst dist/default/production\src.production.obj
__Lifardata 0 0 CODE 0 ifardata dist/default/production\src.production.obj
__Hintsave_regs 0 0 BIGRAM 1 intsave_regs dist/default/production\src.production.obj
__CFG_MCLRE$EXTMCLR 0 0 ABS 0 - dist/default/production\src.production.obj
-midi_set_channel@channel 2D 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
-__Hintcode 352 0 CODE 0 intcode dist/default/production\src.production.obj
+midi_set_channel@channel 2C 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj
+__Hintcode 300 0 CODE 0 intcode dist/default/production\src.production.obj
# %SPLITSTAB Section
# This section enumerates all the psect splits performed by the assembler.
# The beginning of the section is indicated by %SPLITSTAB.
@@ -556,8 +553,10 @@ __Hintcode 352 0 CODE 0 intcode dist/default/production\src.production.obj
# All other numeric quantities are in decimal.
%SEGMENTS
idloc 0 200000 200000 8 1
-cstackCOMRAM 1 1 1 34 1
+text0 0 62C 62C 332 1
+cstackCOMRAM 1 1 1 35 1
reset_vec 0 0 0 4 1
-bssBANK0 1 60 60 56 1
-intcode 0 8 8 63A 1
+bssBANK0 1 60 60 57 1
+intcode 0 8 8 2FC 1
+smallconst 0 600 600 2C 1
config 0 300000 300000 E 1
diff --git a/src/dist/default/production/src.production.elf b/src/dist/default/production/src.production.elf
index 261e62d..3aeaf38 100644
--- a/src/dist/default/production/src.production.elf
+++ b/src/dist/default/production/src.production.elf
Binary files differ
diff --git a/src/dist/default/production/src.production.hex b/src/dist/default/production/src.production.hex
index 98c8eeb..7dd6f2e 100644
--- a/src/dist/default/production/src.production.hex
+++ b/src/dist/default/production/src.production.hex
@@ -1,106 +1,108 @@
-:04000000A9EF01F073
-:100008003482FACF13F0FBCF14F0E9CF15F0EACF22
+:0400000080EF01F09C
+:100008003582FACF13F0FBCF14F0E9CF15F0EACF21
:1000180016F0E1CF17F0E2CF18F0D9CF19F0DACF08
:100028001AF0F3CF1BF0F4CF1CF0F6CF1DF0F7CF8A
-:100038001EF0F8CF1FF0F5CF20F034C021F035C006
-:1000480022F036C023F037C024F083969EA256D102
-:1000580080CF25F081CF26F0070E2A6E2A50040D96
-:10006800620EF324D96E000EF420DA6EDECF01F0B2
-:10007800DECF02F0DECF03F0DECF04F0D8900134FB
-:10008800056E0234066E0334076E0434086E2AC007
-:1000980009F025C00AF0092A02D0D8900A32092EA0
-:1000A800FCD7010E0A160A5005100B6E06500C6E8E
-:1000B80007500D6E08500E6E2A50040D620EF32480
-:1000C800D96E000EF420DA6E0BC0DEFF0CC0DEFF26
-:1000D8000DC0DEFF0EC0DEFF2A50016E026AD89006
-:1000E80001360236D89001360236200E0126000E5F
-:1000F8000222620E0124D96E000E0220DA6EDECFD3
-:1001080003F0DECF04F0DECF05F0DECF06F0D890A6
-:100118000334076E0434086E0534096E06340A6E1B
-:100128002AC00BF026C00CF00B2A02D0D8900C3253
-:100138000B2EFCD7010E0C160C5007100D6E085034
-:100148000E6E09500F6E0A50106E2A50116E126A08
-:10015800D89011361236D89011361236200E112644
-:10016800000E1222620E1124D96E000E1220DA6ED1
-:100178000DC0DEFF0EC0DEFF0FC0DEFF10C0DEFFC9
-:10018800000E276E2A50040D620EF324D96E000E5D
-:10019800F420DA6EDE50DE10DE10DE10D8B41CD08B
-:1001A8002A50040D620EF324D96E000EF420DA6E84
-:1001B800000EDE14016EFF0EDE14026EFF0EDE145A
-:1001C800036EFF0EDE14046E0150021003100410BB
-:1001D800D8A402D0010E276E2AC001F02750026E63
-:1001E800036A012A03D0D89002360336012EFBD7C2
-:1001F80002500001601303506113000E286E2A504C
-:10020800016E026AD89001360236D890013602365D
-:10021800200E0126000E0222620E0124D96E000E65
-:100228000220DA6EDE50DE10DE10DE10D8B427D0E1
-:100238002A50016E026AD89001360236D8900136EB
-:100248000236200E0126000E0222620E0124D96E0B
-:10025800000E0220DA6E000EDE14036EFF0EDE14AE
-:10026800046EFF0EDE14056EFF0EDE14066E0350DC
-:10027800041005100610D8A402D0010E286E2AC05A
-:1002880001F0080E01262850026E036A012A03D0E5
-:10029800D89002360336012EFBD7025000016013B6
-:1002A800035061132A062A28D8A4D8D680A002D0E1
-:1002B800838801D08398000E296E00016251631172
-:1002C80064116511D8B414D0000E6215016EFF0ECA
-:1002D8006315026EFF0E6415036EFF0E6515046E3E
-:1002E8000150021003100410D8A402D0010E296E88
-:1002F80029B002D0839401D083849E92838624C03F
-:1003080037F023C036F022C035F021C034F020C0C9
-:10031800F5FF1FC0F8FF1EC0F7FF1DC0F6FF1CC089
-:10032800F4FF1BC0F3FF1AC0DAFF19C0D9FF18C0C9
-:10033800E2FF17C0E1FF16C0EAFF15C0E9FF14C0CD
-:10034800FBFF13C0FAFF349211000EEF03F086ECA6
-:1003580002F0620E2B6E000E2C6E000E2E6E000E3A
-:100368002D6E000E306E400E2F6EB7EC02F0F28E3E
-:100378008392AF0E0001A26F000EA36F000EA56F4F
-:10038800000EA46F3C0EA66F7F0EA76F53EC02F011
-:10039800000E0001AE6F000EAD6FAE51F9E1100E08
-:1003A800AD5DD8B0F5D7ADC0A8F0010EA96F000EAD
-:1003B800AA6FA82B03D0D890A937AA37A82FFBD7A4
-:1003C80000016051A9176151AA17A951AA11D8B4FF
-:1003D80029D0AD513C0FB26FAF0E2C6E000E2D6EB2
-:1003E80019EC02F0D00E0001A86FC90EE82EFED756
-:1003F800A82FFCD700D0ADC0A8F0010E0001A96F4E
-:10040800000EAA6FA82B03D0D890A937AA37A82F17
-:10041800FBD70001A91DAB6FAA1DAC6FAB516017CC
-:10042800AC516117AD4BAE2BB8D72C502D10D8B4AA
-:10043800120020EE01F02C50D9262D50DA22DECF02
-:1004480030F0DDCF31F0030E2C24326E000E2D205B
-:10045800336E2CC0D9FF2DC0DAFFDF380F0B2E6E9C
-:100468002CC0D9FF2DC0DAFFDF500F0B2F6E2F38AD
-:10047800F00B2E101BEC03F009D032C0D9FF33C0AB
-:10048800DAFFDF501BEC03F0324A332A3006D8A0DB
-:1004980031063028F2E13128D8B41200EED7000135
-:1004A800A251A311D8B41200A2C02BF0A3C02CF003
-:1004B800080E2D6EE0EC02F0A2C02BF0A3C02CF0C9
-:1004C800A4C02DF0A5C02EF0CDEC02F0000120EE66
-:1004D80003F0A251D926A351DA22A6C0DFFF20EEED
-:1004E80004F0A251D926A351DA22A7C0DFFF20EEDB
-:1004F80001F0A251D926A351DA22020EDE6E000EB7
-:10050800DD6E1200F29E9B8C9B809B829B849B8657
-:100518009B889B9AD388D38AD38CFC0ED316000E63
-:100528000F01386F000E396F000E3A6F000E3B6FE7
-:1005380092689368959295949596959883828394FA
-:1005480083868398800EBB6EBA50870B0809BA6EF3
-:10055800030EBA12BA849D829E92F28C00EC03F0CC
-:10056800F2EC02F012002BC031F02CC032F008D0AF
-:1005780031C0D9FF32C0DAFF2DC0DFFF314A322A3D
-:100588002F06D8A030062F28F3E13028D8B412005F
-:10059800EFD72B502C10D8B412002DC02FF00F0E0F
-:1005A8002F162BC0D9FF2CC0DAFF2F3ADF502F1897
-:1005B8000F0B2F18DF6E12002B502C10D8B412001E
-:1005C8002DC02EF00F0E2E162BC0D9FF2CC0DAFF2F
-:1005D800DF502E18F00B2E18DF6E12007298729CE6
-:1005E800718E1F0E756E000E766E72947096958ED3
-:1005F800958C7188728A1200AC98AC9CAB8E1F0ED9
-:10060800AF6E000EB06EAC94B896948E948CAB8896
-:10061800AC8A120000EE60F0420EEE6AE806FDE1D8
-:1006280034903492000EF86E0001ABEF01F02B6E9F
-:0A063800A4A8FED72BC073FF120028
+:100038001EF0F8CF1FF0F5CF20F035C021F036C004
+:1000480022F037C023F038C024F09EA22FD180CFF1
+:1000580025F081CF26F0070E296E2950040D620E77
+:10006800F324D96E000EF420DA6EDECF01F0DECF75
+:1000780002F0DECF03F0DECF04F0D8900134056E35
+:100088000234066E0334076E0434086E29C009F082
+:1000980025C00AF0092A02D0D8900A32092EFCD7C6
+:1000A800010E0A160A5005100B6E06500C6E07500A
+:1000B8000D6E08500E6E2950040D620EF324D96E91
+:1000C800000EF420DA6E0BC0DEFF0CC0DEFF0DC0A0
+:1000D800DEFF0EC0DEFF2950016E026AD89001369D
+:1000E8000236D89001360236200E0126000E022272
+:1000F800620E0124D96E000E0220DA6EDECF03F004
+:10010800DECF04F0DECF05F0DECF06F0D890033462
+:10011800076E0434086E0534096E06340A6E29C069
+:100128000BF026C00CF00B2A02D0D8900C320B2E04
+:10013800FCD7010E0C160C5007100D6E08500E6EF1
+:1001480009500F6E0A50106E2950116E126AD8901D
+:1001580011361236D89011361236200E1126000E9E
+:100168001222620E1124D96E000E1220DA6E0DC012
+:10017800DEFF0EC0DEFF0FC0DEFF10C0DEFF000E88
+:10018800276E2950040D620EF324D96E000EF42058
+:10019800DA6EDE50DE10DE10DE10D8B41CD0295026
+:1001A800040D620EF324D96E000EF420DA6E000EF0
+:1001B800DE14016EFF0EDE14026EFF0EDE14036EF7
+:1001C800FF0EDE14046E0150021003100410D8A4B0
+:1001D80002D0010E276E29C001F02750026E036A73
+:1001E800012A03D0D89002360336012EFBD70250DD
+:1001F8000001601303506113000E286E2950016E30
+:10020800026AD89001360236D89001360236200E9E
+:100218000126000E0222620E0124D96E000E022071
+:10022800DA6EDE50DE10DE10DE10D8B427D029508A
+:10023800016E026AD89001360236D890013602362D
+:10024800200E0126000E0222620E0124D96E000E35
+:100258000220DA6E000EDE14036EFF0EDE14046E4A
+:10026800FF0EDE14056EFF0EDE14066E035004103A
+:1002780005100610D8A402D0010E286E29C001F07E
+:10028800080E01262850026E036A012A03D0D8906E
+:1002980002360336012EFBD70250000160130350CB
+:1002A800611329062928D8A4D8D69E9224C038F0EC
+:1002B80023C037F022C036F021C035F020C0F5FF4A
+:1002C8001FC0F8FF1EC0F7FF1DC0F6FF1CC0F4FFDB
+:1002D8001BC0F3FF1AC0DAFF19C0D9FF18C0E2FF2C
+:1002E80017C0E1FF16C0EAFF15C0E9FF14C0FBFF05
+:0C02F80013C0FAFF359211009CEF04F0D7
+:100600000024002600280029002B002D002F003098
+:1006100000320034003500370039003E003C003B1A
+:100620000040004100430045004700001CEC04F07E
+:10063000620E2A6E000E2B6E000E2D6E000E2C6EBA
+:10064000000E2F6E400E2E6E45EC04F0F28E00016F
+:10065000A751F00B0C09A76FA799A79BA79DA79F70
+:10066000090EAA6F000EA96F010EA86FB00E2F6EB3
+:10067000000E306E000E326E000E316E010EF66E00
+:10068000060EF76E0800F5CF33F07F0E346EEBECFC
+:1006900003F0290E0001A36F960EA26F7F0EE82EC5
+:1006A000FED7A22FFCD7A32FFAD7A70E2B6E000ED2
+:1006B0002C6EB1EC03F0000E0001AF6F000EAE6FB8
+:1006C000AF51F9E1100EAE5DD8B0F5D7AEC0A2F0D3
+:1006D000010EA36F000EA46FA22B03D0D890A337F6
+:1006E000A437A22FFBD700016051A3176151A417B3
+:1006F000A351A411D8B432D0D890AE35F66EAF3530
+:10070000F76E010EF626060EF7220800F5CFB3F0BD
+:10071000B00E2B6E000E2C6EB1EC03F0D00E00016B
+:10072000A26FC90EE82EFED7A22FFCD700D0AEC014
+:10073000A2F0010E0001A36F000EA46FA22B03D044
+:10074000D890A337A437A22FFBD70001A31DA56F14
+:10075000A41DA66FA5516017A6516117AE4BAF2B14
+:10076000AFD72B502C10D8B4120020EE01F02B5034
+:10077000D9262C50DA22DECF2FF0DDCF30F0030E59
+:100780002B24316E000E2C20326E2BC0D9FF2CC0D2
+:10079000DAFFDF380F0B2D6E2BC0D9FF2CC0DAFF2C
+:1007A000DF500F0B2E6E2E38F00B2D10A9EC04F03D
+:1007B00009D031C0D9FF32C0DAFFDF50A9EC04F014
+:1007C000314A322A2F06D8A030062F28F2E13028ED
+:1007D000D8B41200EED72F503010D8B412002FC06A
+:1007E0002AF030C02BF0090E2C6E6EEC04F02FC0F6
+:1007F0002AF030C02BF031C02CF032C02DF05BEC71
+:1008000004F020EE03F02F50D9263050DA2233C006
+:10081000DFFF20EE04F02F50D9263050DA2234C00A
+:10082000DFFF20EE01F02F50D9263050DA22020EE1
+:10083000DE6E000EDD6E1200F29E9B8C9B809B8212
+:100840009B849B869B889B9AD388D38AD38CFC0EEF
+:10085000D316000E0F01386F000E396F000E3A6F7D
+:10086000000E3B6F92689368800EBB6EBA50870B88
+:100870000809BA6E030EBA12BA849D829E92F28C57
+:100880008EEC04F080EC04F012002AC030F02BC093
+:1008900031F008D030C0D9FF31C0DAFF2CC0DFFF03
+:1008A000304A312A2E06D8A02F062E28F3E12F2811
+:1008B000D8B41200EFD72A502B10D8B412002CC095
+:1008C0002EF00F0E2E162AC0D9FF2BC0DAFF2E3ABB
+:1008D000DF502E180F0B2E18DF6E12002A502B102F
+:1008E000D8B412002CC02DF00F0E2D162AC0D9FF3F
+:1008F0002BC0DAFFDF502D18F00B2D18DF6E120021
+:100900007298729C718E1F0E756E000E766E7294C8
+:100910007096958E958C7188728A1200AC98AC9CFA
+:10092000AB8E1F0EAF6E000EB06EAC94B896948E68
+:10093000948CAB88AC8A120000EE60F0420EEE6A36
+:10094000E806FDE135903592000EF86E000116EFD5
+:0E09500003F02A6EA4A8FED72AC073FF12007F
:020000040020DA
:08000000FFFFFFFFFFFFFFFF00
:020000040030CA
-:0E000000FF391F3FFFBF85FF0FC00FE00F400D
+:0E000000FF381F3CFFBF85FF0FC00FE00F4011
:00000001FF
diff --git a/src/dist/default/production/src.production.hxl b/src/dist/default/production/src.production.hxl
index f1c0046..bb6b90a 100644
--- a/src/dist/default/production/src.production.hxl
+++ b/src/dist/default/production/src.production.hxl
@@ -2,13 +2,15 @@
### Memory Usage ###
Unused memory ranges:
4h - 7h
- 642h - 1FFFFFh
+ 304h - 5FFh
+ 95Eh - 1FFFFFh
200008h - 2FFFFFh
30000Eh - 30003Fh
dist/default/production\src.production.hex ranges:
0h - 3h
- 8h - 641h
+ 8h - 303h
+ 600h - 95Dh
200000h - 200007h
300000h - 30000Dh
@@ -36,19 +38,20 @@
00000240: 1111111111111111111111111111111111111111111111111111111111111111
00000280: 1111111111111111111111111111111111111111111111111111111111111111
000002C0: 1111111111111111111111111111111111111111111111111111111111111111
-00000300: 1111111111111111111111111111111111111111111111111111111111111111
-00000340: 1111111111111111111111111111111111111111111111111111111111111111
-00000380: 1111111111111111111111111111111111111111111111111111111111111111
-000003C0: 1111111111111111111111111111111111111111111111111111111111111111
-00000400: 1111111111111111111111111111111111111111111111111111111111111111
-00000440: 1111111111111111111111111111111111111111111111111111111111111111
-00000480: 1111111111111111111111111111111111111111111111111111111111111111
-000004C0: 1111111111111111111111111111111111111111111111111111111111111111
-00000500: 1111111111111111111111111111111111111111111111111111111111111111
-00000540: 1111111111111111111111111111111111111111111111111111111111111111
-00000580: 1111111111111111111111111111111111111111111111111111111111111111
-000005C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000300: 1111------------------------------------------------------------
00000600: 1111111111111111111111111111111111111111111111111111111111111111
-00000640: 11--------------------------------------------------------------
+00000640: 1111111111111111111111111111111111111111111111111111111111111111
+00000680: 1111111111111111111111111111111111111111111111111111111111111111
+000006C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000700: 1111111111111111111111111111111111111111111111111111111111111111
+00000740: 1111111111111111111111111111111111111111111111111111111111111111
+00000780: 1111111111111111111111111111111111111111111111111111111111111111
+000007C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000800: 1111111111111111111111111111111111111111111111111111111111111111
+00000840: 1111111111111111111111111111111111111111111111111111111111111111
+00000880: 1111111111111111111111111111111111111111111111111111111111111111
+000008C0: 1111111111111111111111111111111111111111111111111111111111111111
+00000900: 1111111111111111111111111111111111111111111111111111111111111111
+00000940: 111111111111111111111111111111----------------------------------
00200000: 11111111--------------------------------------------------------
00300000: 11111111111111--------------------------------------------------
diff --git a/src/dist/default/production/src.production.lst b/src/dist/default/production/src.production.lst
index 95ed93a..e52a54b 100644
--- a/src/dist/default/production/src.production.lst
+++ b/src/dist/default/production/src.production.lst
@@ -1,1918 +1,1935 @@
Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312
- Tue Feb 27 10:27:03 2018
+ Fri Mar 02 09:57:11 2018
Microchip Technology Omniscient Code Generator v1.44 (Free mode) build 201709140600
1 processor 18F45K22
2 fnconf rparam,??,?,0
3 opt pw 120
4 opt lm
- 5 psect cinit,global,reloc=2,class=CODE,delta=1
- 6 psect bssBANK0,global,class=BANK0,space=1,delta=1,lowdata,noexec
- 7 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec
- 8 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
- 9 psect text0,global,reloc=2,class=CODE,delta=1
- 10 psect text1,global,reloc=2,class=CODE,delta=1
- 11 psect text2,global,reloc=2,class=CODE,delta=1
- 12 psect text3,global,reloc=2,class=CODE,delta=1
- 13 psect text4,global,reloc=2,class=CODE,delta=1,group=1
- 14 psect text5,global,reloc=2,class=CODE,delta=1,inline
- 15 psect text6,global,reloc=2,class=CODE,delta=1
- 16 psect text7,global,reloc=2,class=CODE,delta=1
- 17 psect text8,global,reloc=2,class=CODE,delta=1
- 18 psect text9,global,reloc=2,class=CODE,delta=1
- 19 psect intcode,global,reloc=2,class=CODE,delta=1
- 20 psect intsave_regs,global,class=BIGRAM,space=1,delta=1,noexec
- 21 psect rparam,global,class=COMRAM,space=1,delta=1,noexec
- 22 psect temp,global,ovrld,common,class=COMRAM,space=1,delta=1
- 23 0000
- 24 ; Version 1.44
- 25 ; Generated 14/09/2017 GMT
- 26 ;
- 27 ; Copyright © 2017, Microchip Technology Inc. and its subsidiaries ("Microchip")
- 28 ; All rights reserved.
- 29 ;
- 30 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ 5 psect smallconst,global,reloc=2,class=SMALLCONST,delta=1,noexec
+ 6 psect cinit,global,reloc=2,class=CODE,delta=1
+ 7 psect bssBANK0,global,class=BANK0,space=1,delta=1,lowdata,noexec
+ 8 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec
+ 9 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec
+ 10 psect text0,global,reloc=2,class=CODE,delta=1
+ 11 psect text1,global,reloc=2,class=CODE,delta=1
+ 12 psect text2,global,reloc=2,class=CODE,delta=1
+ 13 psect text3,global,reloc=2,class=CODE,delta=1
+ 14 psect text4,global,reloc=2,class=CODE,delta=1,group=1
+ 15 psect text5,global,reloc=2,class=CODE,delta=1,inline
+ 16 psect text6,global,reloc=2,class=CODE,delta=1
+ 17 psect text7,global,reloc=2,class=CODE,delta=1
+ 18 psect text8,global,reloc=2,class=CODE,delta=1
+ 19 psect text9,global,reloc=2,class=CODE,delta=1
+ 20 psect intcode,global,reloc=2,class=CODE,delta=1
+ 21 psect intsave_regs,global,class=BIGRAM,space=1,delta=1,noexec
+ 22 psect rparam,global,class=COMRAM,space=1,delta=1,noexec
+ 23 psect temp,global,ovrld,common,class=COMRAM,space=1,delta=1
+ 24 0000
+ 25 ; Version 1.44
+ 26 ; Generated 14/09/2017 GMT
+ 27 ;
+ 28 ; Copyright © 2017, Microchip Technology Inc. and its subsidiaries ("Microchip")
+ 29 ; All rights reserved.
+ 30 ;
+ 31 ; This software is developed by Microchip Technology Inc. and its subsidiaries ("Microch
+ ip").
- 31 ;
- 32 ; Redistribution and use in source and binary forms, with or without modification, are
- 33 ; permitted provided that the following conditions are met:
- 34 ;
- 35 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ 32 ;
+ 33 ; Redistribution and use in source and binary forms, with or without modification, are
+ 34 ; permitted provided that the following conditions are met:
+ 35 ;
+ 36 ; 1. Redistributions of source code must retain the above copyright notice, this lis
+ t of
- 36 ; conditions and the following disclaimer.
- 37 ;
- 38 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ 37 ; conditions and the following disclaimer.
+ 38 ;
+ 39 ; 2. Redistributions in binary form must reproduce the above copyright notice, this
+ list
- 39 ; of conditions and the following disclaimer in the documentation and/or other
- 40 ; materials provided with the distribution.
- 41 ;
- 42 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ 40 ; of conditions and the following disclaimer in the documentation and/or other
+ 41 ; materials provided with the distribution.
+ 42 ;
+ 43 ; 3. Microchip's name may not be used to endorse or promote products derived from th
+ is
- 43 ; software without specific prior written permission.
- 44 ;
- 45 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- 46 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ 44 ; software without specific prior written permission.
+ 45 ;
+ 46 ; THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ 47 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS F
+ OR
- 47 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ 48 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC
+ T,
- 48 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
- 49 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
- 50 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ 49 ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
+ 50 ; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
+ 51 ; INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST
+ RICT
- 51 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ 52 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U
+ SE OF
- 52 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 53 ;
+ 53 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54 ;
- 55 ; Code-generator required, PIC18F45K22 Definitions
- 56 ;
- 57 ; SFR Addresses
- 58 0000 _ANSELD set 3899
- 59 0000 _ANSELC set 3898
- 60 0000 _ANSELB set 3897
- 61 0000 _ANSELA set 3896
- 62 0000 _RC1REG set 4014
- 63 0000 _TX2REG set 3955
- 64 0000 _TX1REG set 4013
- 65 0000 _BAUDCON2bits set 3952
- 66 0000 _SPBRGH2 set 3958
- 67 0000 _SPBRG2 set 3957
- 68 0000 _RCSTA2bits set 3953
- 69 0000 _TXSTA2bits set 3954
- 70 0000 _TRISCbits set 3988
- 71 0000 _BAUDCON1bits set 4024
- 72 0000 _SPBRGH1 set 4016
- 73 0000 _SPBRG1 set 4015
- 74 0000 _RCSTA1bits set 4011
- 75 0000 _TXSTA1bits set 4012
- 76 0000 _PIE1bits set 3997
- 77 0000 _T2CONbits set 4026
- 78 0000 _PR2 set 4027
- 79 0000 _TRISDbits set 3989
- 80 0000 _TRISB set 3987
- 81 0000 _TRISA set 3986
- 82 0000 _OSCCONbits set 4051
- 83 0000 _OSCTUNEbits set 3995
- 84 0000 _INTCONbits set 4082
- 85 0000 _PORTAbits set 3968
- 86 0000 _PORTB set 3969
- 87 0000 _PORTA set 3968
- 88 0000 _PIR1bits set 3998
- 89 0000 _PORTDbits set 3971
- 90 0000 _RC1IF set 31989
- 91 0000 _TX2IF set 32036
- 92 0000 _TX1IF set 31988
- 93
- 94 ; #config settings
- 95 0000
- 96 psect cinit
- 97 00061C __pcinit:
- 98 opt stack 0
- 99 00061C start_initialization:
- 100 opt stack 0
- 101 00061C __initialization:
- 102 opt stack 0
- 103
- 104 ; Clear objects allocated to BANK0 (66 bytes)
- 105 00061C EE00 F060 lfsr 0,__pbssBANK0
- 106 000620 0E42 movlw 66
- 107 000622 clear_0:
- 108 000622 6AEE clrf postinc0,c
- 109 000624 06E8 decf wreg,f,c
- 110 000626 E1FD bnz clear_0
- 111 000628 end_of_initialization:
- 112 opt stack 0
- 113 000628 __end_of__initialization:
- 114 opt stack 0
- 115 000628 9034 bcf int$flags,0,c ;clear compiler interrupt flag (level 1)
- 116 00062A 9234 bcf int$flags,1,c ;clear compiler interrupt flag (level 2)
- 117 00062C 0E00 movlw low (__Lmediumconst shr (0+16))
- 118 00062E 6EF8 movwf tblptru,c
- 119 000630 0100 movlb 0
- 120 000632 EFAB F001 goto _main ;jump to C main() function
- 121 tblptru equ 0xFF8
- 122 postinc0 equ 0xFEE
- 123 wreg equ 0xFE8
- 124
- 125 psect bssBANK0
- 126 000060 __pbssBANK0:
- 127 opt stack 0
- 128 000060 _keypresses:
- 129 opt stack 0
- 130 000060 ds 2
- 131 000062 _keys_data:
+ 55 ;
+ 56 ; Code-generator required, PIC18F45K22 Definitions
+ 57 ;
+ 58 ; SFR Addresses
+ 59 0000
+ 60 psect smallconst
+ 61 000600 __psmallconst:
+ 62 opt stack 0
+ 63 000600 00 db 0
+ 64 000601 _midi_notes_steps_table:
+ 65 opt stack 0
+ 66 000601 0024 dw 36
+ 67 000603 0026 dw 38
+ 68 000605 0028 dw 40
+ 69 000607 0029 dw 41
+ 70 000609 002B dw 43
+ 71 00060B 002D dw 45
+ 72 00060D 002F dw 47
+ 73 00060F 0030 dw 48
+ 74 000611 0032 dw 50
+ 75 000613 0034 dw 52
+ 76 000615 0035 dw 53
+ 77 000617 0037 dw 55
+ 78 000619 0039 dw 57
+ 79 00061B 003E dw 62
+ 80 00061D 003C dw 60
+ 81 00061F 003B dw 59
+ 82 000621 0040 dw 64
+ 83 000623 0041 dw 65
+ 84 000625 0043 dw 67
+ 85 000627 0045 dw 69
+ 86 000629 0047 dw 71
+ 87 00062B __end_of_midi_notes_steps_table:
+ 88 opt stack 0
+ 89 0000 _ANSELD set 3899
+ 90 0000 _ANSELC set 3898
+ 91 0000 _ANSELB set 3897
+ 92 0000 _ANSELA set 3896
+ 93 0000 _RC1REG set 4014
+ 94 0000 _TX2REG set 3955
+ 95 0000 _TX1REG set 4013
+ 96 0000 _TRISDbits set 3989
+ 97 0000 _BAUDCON2bits set 3952
+ 98 0000 _SPBRGH2 set 3958
+ 99 0000 _SPBRG2 set 3957
+ 100 0000 _RCSTA2bits set 3953
+ 101 0000 _TXSTA2bits set 3954
+ 102 0000 _TRISCbits set 3988
+ 103 0000 _BAUDCON1bits set 4024
+ 104 0000 _SPBRGH1 set 4016
+ 105 0000 _SPBRG1 set 4015
+ 106 0000 _RCSTA1bits set 4011
+ 107 0000 _TXSTA1bits set 4012
+ 108 0000 _PIE1bits set 3997
+ 109 0000 _T2CONbits set 4026
+ 110 0000 _PR2 set 4027
+ 111 0000 _TRISB set 3987
+ 112 0000 _TRISA set 3986
+ 113 0000 _OSCCONbits set 4051
+ 114 0000 _OSCTUNEbits set 3995
+ 115 0000 _INTCONbits set 4082
+ 116 0000 _PORTB set 3969
+ 117 0000 _PORTA set 3968
+ 118 0000 _PIR1bits set 3998
+ 119 0000 _RC1IF set 31989
+ 120 0000 _TX2IF set 32036
+ 121 0000 _TX1IF set 31988
+ 122
+ 123 ; #config settings
+ 124 00062B 00 db 0 ; dummy byte at the end
+ 125 0000
+ 126 psect cinit
+ 127 000938 __pcinit:
+ 128 opt stack 0
+ 129 000938 start_initialization:
+ 130 opt stack 0
+ 131 000938 __initialization:
132 opt stack 0
- 133 000062 ds 64
- 134 tblptru equ 0xFF8
- 135 postinc0 equ 0xFEE
- 136 wreg equ 0xFE8
- 137
- 138 psect cstackBANK0
- 139 0000A2 __pcstackBANK0:
- 140 opt stack 0
- 141 0000A2 midi_note_on@pkt:
+ 133
+ 134 ; Clear objects allocated to BANK0 (66 bytes)
+ 135 000938 EE00 F060 lfsr 0,__pbssBANK0
+ 136 00093C 0E42 movlw 66
+ 137 00093E clear_0:
+ 138 00093E 6AEE clrf postinc0,c
+ 139 000940 06E8 decf wreg,f,c
+ 140 000942 E1FD bnz clear_0
+ 141 000944 end_of_initialization:
142 opt stack 0
- 143
- 144 ; 2 bytes @ 0x0
- 145 0000A2 ds 2
- 146 0000A4 midi_note_on@channel:
- 147 opt stack 0
- 148
- 149 ; 2 bytes @ 0x2
- 150 0000A4 ds 2
- 151 0000A6 midi_note_on@note:
- 152 opt stack 0
- 153
- 154 ; 1 bytes @ 0x4
- 155 0000A6 ds 1
- 156 0000A7 midi_note_on@velocity:
+ 143 000944 __end_of__initialization:
+ 144 opt stack 0
+ 145 000944 9035 bcf int$flags,0,c ;clear compiler interrupt flag (level 1)
+ 146 000946 9235 bcf int$flags,1,c ;clear compiler interrupt flag (level 2)
+ 147 000948 0E00 movlw low (__Lmediumconst shr (0+16))
+ 148 00094A 6EF8 movwf tblptru,c
+ 149 00094C 0100 movlb 0
+ 150 00094E EF16 F003 goto _main ;jump to C main() function
+ 151 tblptru equ 0xFF8
+ 152 postinc0 equ 0xFEE
+ 153 wreg equ 0xFE8
+ 154
+ 155 psect bssBANK0
+ 156 000060 __pbssBANK0:
157 opt stack 0
- 158
- 159 ; 1 bytes @ 0x5
- 160 0000A7 ds 1
- 161 0000A8 ??_main:
- 162
- 163 ; 1 bytes @ 0x6
- 164 0000A8 ds 5
- 165 0000AD main@i:
- 166 opt stack 0
+ 158 000060 _keypresses:
+ 159 opt stack 0
+ 160 000060 ds 2
+ 161 000062 _keys_data:
+ 162 opt stack 0
+ 163 000062 ds 64
+ 164 tblptru equ 0xFF8
+ 165 postinc0 equ 0xFEE
+ 166 wreg equ 0xFE8
167
- 168 ; 2 bytes @ 0xB
- 169 0000AD ds 2
- 170 0000AF main@message:
- 171 opt stack 0
+ 168 psect cstackBANK0
+ 169 0000A2 __pcstackBANK0:
+ 170 opt stack 0
+ 171 0000A2 ??_main:
172
- 173 ; 7 bytes @ 0xD
- 174 0000AF ds 7
- 175 tblptru equ 0xFF8
- 176 postinc0 equ 0xFEE
- 177 wreg equ 0xFE8
- 178
- 179 psect cstackCOMRAM
- 180 000001 __pcstackCOMRAM:
+ 173 ; 1 bytes @ 0x0
+ 174 0000A2 ds 5
+ 175 0000A7 main@conf_message:
+ 176 opt stack 0
+ 177
+ 178 ; 7 bytes @ 0x5
+ 179 0000A7 ds 7
+ 180 0000AE main@i:
181 opt stack 0
- 182 000001 ??_isr:
- 183 000001
- 184 ; 1 bytes @ 0x0
- 185 000001 ds 36
- 186 000025 isr@data_a:
- 187 opt stack 0
- 188
- 189 ; 1 bytes @ 0x24
- 190 000025 ds 1
- 191 000026 isr@data_b:
- 192 opt stack 0
+ 182
+ 183 ; 2 bytes @ 0xC
+ 184 0000AE ds 2
+ 185 0000B0 main@message:
+ 186 opt stack 0
+ 187
+ 188 ; 7 bytes @ 0xE
+ 189 0000B0 ds 7
+ 190 tblptru equ 0xFF8
+ 191 postinc0 equ 0xFEE
+ 192 wreg equ 0xFE8
193
- 194 ; 1 bytes @ 0x25
- 195 000026 ds 1
- 196 000027 _isr$595:
- 197 opt stack 0
- 198
- 199 ; 1 bytes @ 0x26
- 200 000027 ds 1
- 201 000028 _isr$596:
+ 194 psect cstackCOMRAM
+ 195 000001 __pcstackCOMRAM:
+ 196 opt stack 0
+ 197 000001 ??_isr:
+ 198 000001
+ 199 ; 1 bytes @ 0x0
+ 200 000001 ds 36
+ 201 000025 isr@data_a:
202 opt stack 0
203
- 204 ; 1 bytes @ 0x27
- 205 000028 ds 1
- 206 000029 _isr$605:
+ 204 ; 1 bytes @ 0x24
+ 205 000025 ds 1
+ 206 000026 isr@data_b:
207 opt stack 0
208
- 209 ; 1 bytes @ 0x28
- 210 000029 ds 1
- 211 00002A isr@i:
+ 209 ; 1 bytes @ 0x25
+ 210 000026 ds 1
+ 211 000027 _isr$304:
212 opt stack 0
213
- 214 ; 1 bytes @ 0x29
- 215 00002A ds 1
- 216 00002B eusart2_putch@c:
+ 214 ; 1 bytes @ 0x26
+ 215 000027 ds 1
+ 216 000028 _isr$305:
217 opt stack 0
- 218 00002B midi_set_status@pkt:
- 219 opt stack 0
- 220 00002B midi_set_channel@pkt:
- 221 opt stack 0
- 222 00002B memset@p1:
- 223 opt stack 0
- 224
- 225 ; 2 bytes @ 0x2A
- 226 00002B ds 1
- 227 00002C eusart_write_midi@pkt:
- 228 opt stack 0
- 229
- 230 ; 2 bytes @ 0x2B
- 231 00002C ds 1
- 232 00002D midi_set_status@status:
+ 218
+ 219 ; 1 bytes @ 0x27
+ 220 000028 ds 1
+ 221 000029 isr@i:
+ 222 opt stack 0
+ 223
+ 224 ; 1 bytes @ 0x28
+ 225 000029 ds 1
+ 226 00002A eusart2_putch@c:
+ 227 opt stack 0
+ 228 00002A midi_set_status@pkt:
+ 229 opt stack 0
+ 230 00002A midi_set_channel@pkt:
+ 231 opt stack 0
+ 232 00002A memset@p1:
233 opt stack 0
- 234 00002D midi_set_channel@channel:
- 235 opt stack 0
- 236 00002D memset@c:
- 237 opt stack 0
- 238
- 239 ; 2 bytes @ 0x2C
- 240 00002D ds 1
- 241 00002E ??_eusart_write_midi:
- 242 00002E ??_midi_set_status:
- 243
- 244 ; 1 bytes @ 0x2D
- 245 00002E ds 1
- 246 00002F ??_midi_set_channel:
- 247 00002F memset@n:
- 248 opt stack 0
- 249
- 250 ; 2 bytes @ 0x2E
- 251 00002F ds 1
- 252 000030 eusart_write_midi@length:
- 253 opt stack 0
- 254
- 255 ; 2 bytes @ 0x2F
- 256 000030 ds 1
- 257 000031 memset@p:
+ 234
+ 235 ; 2 bytes @ 0x29
+ 236 00002A ds 1
+ 237 00002B eusart_write_midi@pkt:
+ 238 opt stack 0
+ 239
+ 240 ; 2 bytes @ 0x2A
+ 241 00002B ds 1
+ 242 00002C midi_set_status@status:
+ 243 opt stack 0
+ 244 00002C midi_set_channel@channel:
+ 245 opt stack 0
+ 246 00002C memset@c:
+ 247 opt stack 0
+ 248
+ 249 ; 2 bytes @ 0x2B
+ 250 00002C ds 1
+ 251 00002D ??_eusart_write_midi:
+ 252 00002D ??_midi_set_status:
+ 253
+ 254 ; 1 bytes @ 0x2C
+ 255 00002D ds 1
+ 256 00002E ??_midi_set_channel:
+ 257 00002E memset@n:
258 opt stack 0
259
- 260 ; 2 bytes @ 0x30
- 261 000031 ds 1
- 262 000032 eusart_write_midi@data:
+ 260 ; 2 bytes @ 0x2D
+ 261 00002E ds 1
+ 262 00002F eusart_write_midi@length:
263 opt stack 0
- 264
- 265 ; 2 bytes @ 0x31
- 266 000032 ds 2
- 267 tblptru equ 0xFF8
- 268 postinc0 equ 0xFEE
- 269 wreg equ 0xFE8
- 270
- 271 ;;
- 272 ;;Main: autosize = 0, tempsize = 5, incstack = 0, save=0
- 273 ;;
- 274 ;; *************** function _main *****************
- 275 ;; Defined at:
- 276 ;; line 215 in file "main.c"
- 277 ;; Parameters: Size Location Type
- 278 ;; None
- 279 ;; Auto vars: Size Location Type
- 280 ;; message 7 13[BANK0 ] struct .
- 281 ;; i 2 11[BANK0 ] unsigned int
- 282 ;; Return value: Size Location Type
- 283 ;; 1 wreg void
- 284 ;; Registers used:
- 285 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
- 286 ;; Tracked objects:
- 287 ;; On entry : 0/0
- 288 ;; On exit : 0/0
- 289 ;; Unchanged: 0/0
- 290 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 291 ;; Params: 0 0 0 0 0 0 0
- 292 ;; Locals: 0 9 0 0 0 0 0
- 293 ;; Temps: 0 5 0 0 0 0 0
- 294 ;; Totals: 0 14 0 0 0 0 0
- 295 ;;Total ram usage: 14 bytes
- 296 ;; Hardware stack levels required when called: 3
- 297 ;; This function calls:
- 298 ;; _eusart_write_midi
- 299 ;; _init_hw
- 300 ;; _memset
- 301 ;; _midi_note_on
- 302 ;; This function is called by:
- 303 ;; Startup code after reset
- 304 ;; This function uses a non-reentrant model
- 305 ;;
- 306
- 307 psect text0
- 308 000356 __ptext0:
- 309 opt stack 0
- 310 000356 _main:
- 311 opt stack 28
- 312
- 313 ;main.c: 217: unsigned i;
- 314 ;main.c: 218: midi_message_t message;
- 315 ;main.c: 221: init_hw();
- 316
- 317 ;incstack = 0
- 318 000356 EC86 F002 call _init_hw ;wreg free
- 319
- 320 ;main.c: 224: memset(keys_data, 0, sizeof(keys_data));
- 321 00035A 0E62 movlw low _keys_data
- 322 00035C 6E2B movwf memset@p1,c
- 323 00035E 0E00 movlw high _keys_data
- 324 000360 6E2C movwf memset@p1+1,c
- 325 000362 0E00 movlw 0
- 326 000364 6E2E movwf memset@c+1,c
- 327 000366 0E00 movlw 0
- 328 000368 6E2D movwf memset@c,c
- 329 00036A 0E00 movlw 0
- 330 00036C 6E30 movwf memset@n+1,c
- 331 00036E 0E40 movlw 64
- 332 000370 6E2F movwf memset@n,c
- 333 000372 ECB7 F002 call _memset ;wreg free
- 334
- 335 ;main.c: 226: (INTCONbits.GIE = 1);
- 336 000376 8EF2 bsf intcon,7,c ;volatile
- 337
- 338 ;main.c: 229: PORTDbits.RD1 = 0;
- 339 000378 9283 bcf 3971,1,c ;volatile
- 340
- 341 ;main.c: 232: midi_note_on(&message, 0x0, 0x3C, 0x7F);
- 342 00037A 0EAF movlw low main@message
- 343 00037C 0100 movlb 0 ; () banked
- 344 00037E 6FA2 movwf midi_note_on@pkt& (0+255),b
- 345 000380 0E00 movlw high main@message
- 346 000382 6FA3 movwf (midi_note_on@pkt+1)& (0+255),b
- 347 000384 0E00 movlw 0
- 348 000386 6FA5 movwf (midi_note_on@channel+1)& (0+255),b
- 349 000388 0E00 movlw 0
- 350 00038A 6FA4 movwf midi_note_on@channel& (0+255),b
- 351 00038C 0E3C movlw 60
- 352 00038E 6FA6 movwf midi_note_on@note& (0+255),b
- 353 000390 0E7F movlw 127
- 354 000392 6FA7 movwf midi_note_on@velocity& (0+255),b
- 355 000394 EC53 F002 call _midi_note_on ;wreg free
- 356 000398 l1202:
- 357
- 358 ;main.c: 237: for (i = 0; i < 16; i++) {
- 359 000398 0E00 movlw 0
- 360 00039A 0100 movlb 0 ; () banked
- 361 00039C 6FAE movwf (main@i+1)& (0+255),b
- 362 00039E 0E00 movlw 0
- 363 0003A0 6FAD movwf main@i& (0+255),b
- 364 0003A2 l1204:
- 365
- 366 ; BSR set to: 0
- 367 0003A2 51AE movf (main@i+1)& (0+255),w,b
- 368 0003A4 E1F9 bnz l1202
- 369 0003A6 0E10 movlw 16
- 370 0003A8 5DAD subwf main@i& (0+255),w,b
- 371 0003AA B0D8 btfsc status,0,c
- 372 0003AC D7F5 goto l76
- 373
- 374 ; BSR set to: 0
- 375 ;main.c: 238: if (keypresses & (1<<i)) {
- 376
- 377 ; BSR set to: 0
- 378
- 379 ; BSR set to: 0
- 380 0003AE C0AD F0A8 movff main@i,??_main
- 381 0003B2 0E01 movlw 1
- 382 0003B4 6FA9 movwf (??_main+1)& (0+255),b
- 383 0003B6 0E00 movlw 0
- 384 0003B8 6FAA movwf (??_main+2)& (0+255),b
- 385 0003BA 2BA8 incf ??_main& (0+255),f,b
- 386 0003BC D003 goto u524
- 387 0003BE u525:
- 388 0003BE 90D8 bcf status,0,c
- 389 0003C0 37A9 rlcf (??_main+1)& (0+255),f,b
- 390 0003C2 37AA rlcf (??_main+2)& (0+255),f,b
- 391 0003C4 u524:
- 392 0003C4 2FA8 decfsz ??_main& (0+255),f,b
- 393 0003C6 D7FB goto u525
- 394 0003C8 0100 movlb 0 ; () banked
- 395 0003CA 5160 movf _keypresses& (0+255),w,b ;volatile
- 396 0003CC 17A9 andwf (??_main+1)& (0+255),f,b
- 397 0003CE 5161 movf (_keypresses+1)& (0+255),w,b ;volatile
- 398 0003D0 17AA andwf (??_main+2)& (0+255),f,b
- 399 0003D2 51A9 movf (??_main+1)& (0+255),w,b
- 400 0003D4 11AA iorwf (??_main+2)& (0+255),w,b
- 401 0003D6 B4D8 btfsc status,2,c
- 402 0003D8 D029 goto l79
- 403
- 404 ; BSR set to: 0
- 405 ;main.c: 241: message.data[0] = 0x3C + i;
- 406 0003DA 51AD movf main@i& (0+255),w,b
- 407 0003DC 0F3C addlw 60
- 408 0003DE 6FB2 movwf (main@message+3)& (0+255),b
- 409
- 410 ; BSR set to: 0
- 411 ;main.c: 244: eusart_write_midi(&message);
- 412 0003E0 0EAF movlw low main@message
- 413 0003E2 6E2C movwf eusart_write_midi@pkt,c
- 414 0003E4 0E00 movlw high main@message
- 415 0003E6 6E2D movwf eusart_write_midi@pkt+1,c
- 416 0003E8 EC19 F002 call _eusart_write_midi ;wreg free
- 417
- 418 ;main.c: 251: _delay((unsigned long)((10)*(64000000/4000.0)));
- 419 0003EC 0ED0 movlw 208
- 420 0003EE 0100 movlb 0 ; () banked
- 421 0003F0 6FA8 movwf ??_main& (0+255),b
- 422 0003F2 0EC9 movlw 201
- 423 0003F4 u577:
- 424 0003F4 2EE8 decfsz wreg,f,c
- 425 0003F6 D7FE bra u577
- 426 0003F8 2FA8 decfsz ??_main& (0+255),f,b
- 427 0003FA D7FC bra u577
- 428 0003FC D000 nop2
- 429
- 430 ;main.c: 254: keypresses &= ~(1<<i);
- 431 0003FE C0AD F0A8 movff main@i,??_main
- 432 000402 0E01 movlw 1
- 433 000404 0100 movlb 0 ; () banked
- 434 000406 6FA9 movwf (??_main+1)& (0+255),b
- 435 000408 0E00 movlw 0
- 436 00040A 6FAA movwf (??_main+2)& (0+255),b
- 437 00040C 2BA8 incf ??_main& (0+255),f,b
- 438 00040E D003 goto u544
- 439 000410 u545:
- 440 000410 90D8 bcf status,0,c
- 441 000412 37A9 rlcf (??_main+1)& (0+255),f,b
- 442 000414 37AA rlcf (??_main+2)& (0+255),f,b
- 443 000416 u544:
- 444 000416 2FA8 decfsz ??_main& (0+255),f,b
- 445 000418 D7FB goto u545
- 446 00041A 0100 movlb 0 ; () banked
- 447 00041C 1DA9 comf (??_main+1)& (0+255),w,b
- 448 00041E 6FAB movwf (??_main+3)& (0+255),b
- 449 000420 1DAA comf (??_main+2)& (0+255),w,b
- 450 000422 6FAC movwf (??_main+4)& (0+255),b
- 451 000424 51AB movf (??_main+3)& (0+255),w,b
- 452 000426 1760 andwf _keypresses& (0+255),f,b ;volatile
- 453 000428 51AC movf (??_main+4)& (0+255),w,b
- 454 00042A 1761 andwf (_keypresses+1)& (0+255),f,b ;volatile
- 455 00042C l79:
- 456
- 457 ; BSR set to: 0
- 458
- 459 ; BSR set to: 0
- 460 00042C 4BAD infsnz main@i& (0+255),f,b
- 461 00042E 2BAE incf (main@i+1)& (0+255),f,b
- 462 000430 D7B8 goto l1204
- 463 000432 __end_of_main:
- 464 opt stack 0
- 465 tblptru equ 0xFF8
- 466 intcon equ 0xFF2
- 467 postinc0 equ 0xFEE
- 468 wreg equ 0xFE8
- 469 status equ 0xFD8
- 470
- 471 ;; *************** function _midi_note_on *****************
- 472 ;; Defined at:
- 473 ;; line 62 in file "midi.c"
- 474 ;; Parameters: Size Location Type
- 475 ;; pkt 2 0[BANK0 ] PTR struct .
- 476 ;; -> main@message(7),
- 477 ;; channel 2 2[BANK0 ] unsigned int
- 478 ;; note 1 4[BANK0 ] enum E31
- 479 ;; velocity 1 5[BANK0 ] unsigned char
- 480 ;; Auto vars: Size Location Type
- 481 ;; None
- 482 ;; Return value: Size Location Type
- 483 ;; 2 0[BANK0 ] int
- 484 ;; Registers used:
- 485 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
- 486 ;; Tracked objects:
- 487 ;; On entry : 0/0
- 488 ;; On exit : 0/0
- 489 ;; Unchanged: 0/0
- 490 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 491 ;; Params: 0 6 0 0 0 0 0
- 492 ;; Locals: 0 0 0 0 0 0 0
- 493 ;; Temps: 0 0 0 0 0 0 0
- 494 ;; Totals: 0 6 0 0 0 0 0
- 495 ;;Total ram usage: 6 bytes
- 496 ;; Hardware stack levels used: 1
- 497 ;; Hardware stack levels required when called: 2
- 498 ;; This function calls:
- 499 ;; _midi_set_channel
- 500 ;; _midi_set_status
- 501 ;; This function is called by:
- 502 ;; _main
- 503 ;; This function uses a non-reentrant model
- 504 ;;
- 505
- 506 psect text1
- 507 0004A6 __ptext1:
- 508 opt stack 0
- 509 0004A6 _midi_note_on:
- 510 opt stack 28
- 511
- 512 ;midi.c: 64: if (pkt == (0)) {
- 513
- 514 ; BSR set to: 0
- 515 ;incstack = 0
- 516 0004A6 0100 movlb 0 ; () banked
- 517 0004A8 51A2 movf midi_note_on@pkt& (0+255),w,b
- 518 0004AA 11A3 iorwf (midi_note_on@pkt+1)& (0+255),w,b
- 519 0004AC B4D8 btfsc status,2,c
- 520 0004AE 0012 return
- 521
- 522 ; BSR set to: 0
- 523 ;midi.c: 66: }
- 524 ;midi.c: 74: midi_set_status(pkt, NOTE_ON);
- 525
- 526 ; BSR set to: 0
- 527
- 528 ; BSR set to: 0
- 529 ;midi.c: 65: return -1;
- 530 ; Return value of _midi_note_on is never used
- 531 0004B0 C0A2 F02B movff midi_note_on@pkt,midi_set_status@pkt
- 532 0004B4 C0A3 F02C movff midi_note_on@pkt+1,midi_set_status@pkt+1
- 533 0004B8 0E08 movlw 8
- 534 0004BA 6E2D movwf midi_set_status@status,c
- 535 0004BC ECE0 F002 call _midi_set_status ;wreg free
- 536
- 537 ;midi.c: 75: midi_set_channel(pkt, channel);
- 538 0004C0 C0A2 F02B movff midi_note_on@pkt,midi_set_channel@pkt
- 539 0004C4 C0A3 F02C movff midi_note_on@pkt+1,midi_set_channel@pkt+1
- 540 0004C8 C0A4 F02D movff midi_note_on@channel,midi_set_channel@channel
- 541 0004CC C0A5 F02E movff midi_note_on@channel+1,midi_set_channel@channel+1
- 542 0004D0 ECCD F002 call _midi_set_channel ;wreg free
- 543
- 544 ;midi.c: 77: pkt->data[0] = note;
- 545 0004D4 0100 movlb 0 ; () banked
- 546 0004D6 EE20 F003 lfsr 2,3
- 547 0004DA 51A2 movf midi_note_on@pkt& (0+255),w,b
- 548 0004DC 26D9 addwf fsr2l,f,c
- 549 0004DE 51A3 movf (midi_note_on@pkt+1)& (0+255),w,b
- 550 0004E0 22DA addwfc fsr2h,f,c
- 551 0004E2 C0A6 FFDF movff midi_note_on@note,indf2
- 552
- 553 ; BSR set to: 0
- 554 ;midi.c: 78: pkt->data[1] = velocity;
- 555 0004E6 EE20 F004 lfsr 2,4
- 556 0004EA 51A2 movf midi_note_on@pkt& (0+255),w,b
- 557 0004EC 26D9 addwf fsr2l,f,c
- 558 0004EE 51A3 movf (midi_note_on@pkt+1)& (0+255),w,b
- 559 0004F0 22DA addwfc fsr2h,f,c
- 560 0004F2 C0A7 FFDF movff midi_note_on@velocity,indf2
- 561
- 562 ; BSR set to: 0
- 563 ;midi.c: 81: pkt->data_size = 2;
- 564 0004F6 EE20 F001 lfsr 2,1
- 565 0004FA 51A2 movf midi_note_on@pkt& (0+255),w,b
- 566 0004FC 26D9 addwf fsr2l,f,c
- 567 0004FE 51A3 movf (midi_note_on@pkt+1)& (0+255),w,b
- 568 000500 22DA addwfc fsr2h,f,c
- 569 000502 0E02 movlw 2
- 570 000504 6EDE movwf postinc2,c
- 571 000506 0E00 movlw 0
- 572 000508 6EDD movwf postdec2,c
- 573 00050A 0012 return
- 574 00050C __end_of_midi_note_on:
- 575 opt stack 0
- 576 tblptru equ 0xFF8
- 577 intcon equ 0xFF2
- 578 postinc0 equ 0xFEE
- 579 wreg equ 0xFE8
- 580 indf2 equ 0xFDF
- 581 postinc2 equ 0xFDE
- 582 postdec2 equ 0xFDD
- 583 fsr2h equ 0xFDA
- 584 fsr2l equ 0xFD9
- 585 status equ 0xFD8
- 586
- 587 ;; *************** function _midi_set_status *****************
- 588 ;; Defined at:
- 589 ;; line 40 in file "midi.c"
- 590 ;; Parameters: Size Location Type
- 591 ;; pkt 2 42[COMRAM] PTR struct .
- 592 ;; -> main@message(7),
- 593 ;; status 1 44[COMRAM] enum E40
- 594 ;; Auto vars: Size Location Type
- 595 ;; None
- 596 ;; Return value: Size Location Type
- 597 ;; 2 42[COMRAM] int
- 598 ;; Registers used:
- 599 ;; wreg, fsr2l, fsr2h, status,2, status,0
- 600 ;; Tracked objects:
- 601 ;; On entry : 0/0
- 602 ;; On exit : 0/0
- 603 ;; Unchanged: 0/0
- 604 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 605 ;; Params: 3 0 0 0 0 0 0
- 606 ;; Locals: 0 0 0 0 0 0 0
- 607 ;; Temps: 1 0 0 0 0 0 0
- 608 ;; Totals: 4 0 0 0 0 0 0
- 609 ;;Total ram usage: 4 bytes
- 610 ;; Hardware stack levels used: 1
- 611 ;; Hardware stack levels required when called: 1
- 612 ;; This function calls:
- 613 ;; Nothing
- 614 ;; This function is called by:
- 615 ;; _midi_note_on
- 616 ;; _midi_note_off
- 617 ;; This function uses a non-reentrant model
- 618 ;;
- 619
- 620 psect text2
- 621 0005C0 __ptext2:
- 622 opt stack 0
- 623 0005C0 _midi_set_status:
- 624 opt stack 28
- 625
- 626 ;midi.c: 42: if (pkt == (0)) {
- 627
- 628 ; BSR set to: 0
- 629 ;incstack = 0
- 630 0005C0 502B movf midi_set_status@pkt,w,c
- 631 0005C2 102C iorwf midi_set_status@pkt+1,w,c
- 632 0005C4 B4D8 btfsc status,2,c
- 633 0005C6 0012 return
- 634
- 635 ;midi.c: 44: }
- 636 ;midi.c: 46: pkt->status = status & 0x0F;
- 637
- 638 ;midi.c: 43: return -1;
- 639 ; Return value of _midi_set_status is never used
- 640 0005C8 C02D F02E movff midi_set_status@status,??_midi_set_status
- 641 0005CC 0E0F movlw 15
- 642 0005CE 162E andwf ??_midi_set_status,f,c
- 643 0005D0 C02B FFD9 movff midi_set_status@pkt,fsr2l
- 644 0005D4 C02C FFDA movff midi_set_status@pkt+1,fsr2h
- 645 0005D8 50DF movf indf2,w,c
- 646 0005DA 182E xorwf ??_midi_set_status,w,c
- 647 0005DC 0BF0 andlw -16
- 648 0005DE 182E xorwf ??_midi_set_status,w,c
- 649 0005E0 6EDF movwf indf2,c
- 650 0005E2 0012 return
- 651 0005E4 __end_of_midi_set_status:
- 652 opt stack 0
- 653 tblptru equ 0xFF8
- 654 intcon equ 0xFF2
- 655 postinc0 equ 0xFEE
- 656 wreg equ 0xFE8
- 657 indf2 equ 0xFDF
- 658 postinc2 equ 0xFDE
- 659 postdec2 equ 0xFDD
- 660 fsr2h equ 0xFDA
- 661 fsr2l equ 0xFD9
- 662 status equ 0xFD8
- 663
- 664 ;; *************** function _midi_set_channel *****************
- 665 ;; Defined at:
- 666 ;; line 51 in file "midi.c"
- 667 ;; Parameters: Size Location Type
- 668 ;; pkt 2 42[COMRAM] PTR struct .
- 669 ;; -> main@message(7),
- 670 ;; channel 2 44[COMRAM] unsigned int
- 671 ;; Auto vars: Size Location Type
- 672 ;; None
- 673 ;; Return value: Size Location Type
- 674 ;; 2 42[COMRAM] int
- 675 ;; Registers used:
- 676 ;; wreg, fsr2l, fsr2h, status,2, status,0
- 677 ;; Tracked objects:
- 678 ;; On entry : 0/0
- 679 ;; On exit : 0/0
- 680 ;; Unchanged: 0/0
- 681 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 682 ;; Params: 4 0 0 0 0 0 0
- 683 ;; Locals: 0 0 0 0 0 0 0
- 684 ;; Temps: 1 0 0 0 0 0 0
- 685 ;; Totals: 5 0 0 0 0 0 0
- 686 ;;Total ram usage: 5 bytes
- 687 ;; Hardware stack levels used: 1
- 688 ;; Hardware stack levels required when called: 1
- 689 ;; This function calls:
- 690 ;; Nothing
- 691 ;; This function is called by:
- 692 ;; _midi_note_on
- 693 ;; _midi_note_off
- 694 ;; This function uses a non-reentrant model
- 695 ;;
- 696
- 697 psect text3
- 698 00059A __ptext3:
- 699 opt stack 0
- 700 00059A _midi_set_channel:
- 701 opt stack 28
- 702
- 703 ;midi.c: 53: if (pkt == (0)) {
- 704
- 705 ;incstack = 0
- 706 00059A 502B movf midi_set_channel@pkt,w,c
- 707 00059C 102C iorwf midi_set_channel@pkt+1,w,c
- 708 00059E B4D8 btfsc status,2,c
- 709 0005A0 0012 return
- 710
- 711 ;midi.c: 55: }
- 712 ;midi.c: 57: pkt->channel = channel & 0x0F;
- 713
- 714 ;midi.c: 54: return -1;
- 715 ; Return value of _midi_set_channel is never used
- 716 0005A2 C02D F02F movff midi_set_channel@channel,??_midi_set_channel
- 717 0005A6 0E0F movlw 15
- 718 0005A8 162F andwf ??_midi_set_channel,f,c
- 719 0005AA C02B FFD9 movff midi_set_channel@pkt,fsr2l
- 720 0005AE C02C FFDA movff midi_set_channel@pkt+1,fsr2h
- 721 0005B2 3A2F swapf ??_midi_set_channel,f,c
- 722 0005B4 50DF movf indf2,w,c
- 723 0005B6 182F xorwf ??_midi_set_channel,w,c
- 724 0005B8 0B0F andlw -241
- 725 0005BA 182F xorwf ??_midi_set_channel,w,c
- 726 0005BC 6EDF movwf indf2,c
- 727 0005BE 0012 return
- 728 0005C0 __end_of_midi_set_channel:
- 729 opt stack 0
- 730 tblptru equ 0xFF8
- 731 intcon equ 0xFF2
- 732 postinc0 equ 0xFEE
- 733 wreg equ 0xFE8
- 734 indf2 equ 0xFDF
- 735 postinc2 equ 0xFDE
- 736 postdec2 equ 0xFDD
- 737 fsr2h equ 0xFDA
- 738 fsr2l equ 0xFD9
- 739 status equ 0xFD8
- 740
- 741 ;; *************** function _memset *****************
- 742 ;; Defined at:
- 743 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c"
- 744 ;; Parameters: Size Location Type
- 745 ;; p1 2 42[COMRAM] PTR void
- 746 ;; -> keys_data(64),
- 747 ;; c 2 44[COMRAM] int
- 748 ;; n 2 46[COMRAM] unsigned int
- 749 ;; Auto vars: Size Location Type
- 750 ;; p 2 48[COMRAM] PTR unsigned char
- 751 ;; -> keys_data(64),
- 752 ;; Return value: Size Location Type
- 753 ;; 2 42[COMRAM] PTR void
- 754 ;; Registers used:
- 755 ;; wreg, fsr2l, fsr2h, status,2, status,0
- 756 ;; Tracked objects:
- 757 ;; On entry : 0/0
- 758 ;; On exit : 0/0
- 759 ;; Unchanged: 0/0
- 760 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 761 ;; Params: 6 0 0 0 0 0 0
- 762 ;; Locals: 2 0 0 0 0 0 0
- 763 ;; Temps: 0 0 0 0 0 0 0
- 764 ;; Totals: 8 0 0 0 0 0 0
- 765 ;;Total ram usage: 8 bytes
- 766 ;; Hardware stack levels used: 1
- 767 ;; Hardware stack levels required when called: 1
- 768 ;; This function calls:
- 769 ;; Nothing
- 770 ;; This function is called by:
- 771 ;; _main
- 772 ;; This function uses a non-reentrant model
- 773 ;;
- 774
- 775 psect text4
- 776 00056E __ptext4:
- 777 opt stack 0
- 778 00056E _memset:
- 779 opt stack 29
- 780
- 781 ;incstack = 0
- 782 00056E C02B F031 movff memset@p1,memset@p
- 783 000572 C02C F032 movff memset@p1+1,memset@p+1
- 784 000576 D008 goto l596
- 785 000578 l1110:
- 786 000578 C031 FFD9 movff memset@p,fsr2l
- 787 00057C C032 FFDA movff memset@p+1,fsr2h
- 788 000580 C02D FFDF movff memset@c,indf2
- 789 000584 4A31 infsnz memset@p,f,c
- 790 000586 2A32 incf memset@p+1,f,c
- 791 000588 l596:
- 792 000588 062F decf memset@n,f,c
- 793 00058A A0D8 btfss status,0,c
- 794 00058C 0630 decf memset@n+1,f,c
- 795 00058E 282F incf memset@n,w,c
- 796 000590 E1F3 bnz l1110
- 797 000592 2830 incf memset@n+1,w,c
- 798 000594 B4D8 btfsc status,2,c
- 799 000596 0012 return
- 800 000598 D7EF goto l597
- 801 00059A __end_of_memset:
- 802 opt stack 0
- 803 tblptru equ 0xFF8
- 804 intcon equ 0xFF2
- 805 postinc0 equ 0xFEE
- 806 wreg equ 0xFE8
- 807 indf2 equ 0xFDF
- 808 postinc2 equ 0xFDE
- 809 postdec2 equ 0xFDD
- 810 fsr2h equ 0xFDA
- 811 fsr2l equ 0xFD9
- 812 status equ 0xFD8
- 813
- 814 ;; *************** function _init_hw *****************
- 815 ;; Defined at:
- 816 ;; line 150 in file "main.c"
- 817 ;; Parameters: Size Location Type
- 818 ;; None
- 819 ;; Auto vars: Size Location Type
- 820 ;; None
- 821 ;; Return value: Size Location Type
- 822 ;; 1 wreg void
- 823 ;; Registers used:
- 824 ;; wreg, status,2, cstack
- 825 ;; Tracked objects:
- 826 ;; On entry : 0/0
- 827 ;; On exit : 0/0
- 828 ;; Unchanged: 0/0
- 829 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 830 ;; Params: 0 0 0 0 0 0 0
- 831 ;; Locals: 0 0 0 0 0 0 0
- 832 ;; Temps: 0 0 0 0 0 0 0
- 833 ;; Totals: 0 0 0 0 0 0 0
- 834 ;;Total ram usage: 0 bytes
- 835 ;; Hardware stack levels used: 1
- 836 ;; Hardware stack levels required when called: 2
- 837 ;; This function calls:
- 838 ;; _eusart1_init
- 839 ;; _eusart2_init
- 840 ;; This function is called by:
- 841 ;; _main
- 842 ;; This function uses a non-reentrant model
- 843 ;;
- 844
- 845 psect text5
- 846 00050C __ptext5:
- 847 opt stack 0
- 848 00050C _init_hw:
- 849 opt stack 28
- 850
- 851 ;main.c: 152: (INTCONbits.GIE = 0);
- 852
- 853 ;incstack = 0
- 854 00050C 9EF2 bcf intcon,7,c ;volatile
- 855
- 856 ;main.c: 156: OSCTUNEbits.PLLEN = 1;
- 857 00050E 8C9B bsf 3995,6,c ;volatile
- 858
- 859 ;main.c: 158: OSCTUNEbits.TUN = 0b011111;
- 860 000510 809B bsf 3995,0,c ;volatile
- 861 000512 829B bsf 3995,1,c ;volatile
- 862 000514 849B bsf 3995,2,c ;volatile
- 863 000516 869B bsf 3995,3,c ;volatile
- 864 000518 889B bsf 3995,4,c ;volatile
- 865 00051A 9A9B bcf 3995,5,c ;volatile
+ 264 00002F midi_note_on@pkt:
+ 265 opt stack 0
+ 266
+ 267 ; 2 bytes @ 0x2E
+ 268 00002F ds 1
+ 269 000030 memset@p:
+ 270 opt stack 0
+ 271
+ 272 ; 2 bytes @ 0x2F
+ 273 000030 ds 1
+ 274 000031 eusart_write_midi@data:
+ 275 opt stack 0
+ 276 000031 midi_note_on@channel:
+ 277 opt stack 0
+ 278
+ 279 ; 2 bytes @ 0x30
+ 280 000031 ds 2
+ 281 000033 midi_note_on@note:
+ 282 opt stack 0
+ 283
+ 284 ; 1 bytes @ 0x32
+ 285 000033 ds 1
+ 286 000034 midi_note_on@velocity:
+ 287 opt stack 0
+ 288
+ 289 ; 1 bytes @ 0x33
+ 290 000034 ds 1
+ 291 000035 tblptru equ 0xFF8
+ 292 postinc0 equ 0xFEE
+ 293 wreg equ 0xFE8
+ 294
+ 295 ; 1 bytes @ 0x34
+ 296 ;;
+ 297 ;;Main: autosize = 0, tempsize = 5, incstack = 0, save=0
+ 298 ;;
+ 299 ;; *************** function _main *****************
+ 300 ;; Defined at:
+ 301 ;; line 221 in file "main.c"
+ 302 ;; Parameters: Size Location Type
+ 303 ;; None
+ 304 ;; Auto vars: Size Location Type
+ 305 ;; message 7 14[BANK0 ] struct .
+ 306 ;; conf_message 7 5[BANK0 ] struct .
+ 307 ;; i 2 12[BANK0 ] unsigned int
+ 308 ;; Return value: Size Location Type
+ 309 ;; 1 wreg void
+ 310 ;; Registers used:
+ 311 ;; wreg, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack
+ 312 ;; Tracked objects:
+ 313 ;; On entry : 0/0
+ 314 ;; On exit : 0/0
+ 315 ;; Unchanged: 0/0
+ 316 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 317 ;; Params: 0 0 0 0 0 0 0
+ 318 ;; Locals: 0 16 0 0 0 0 0
+ 319 ;; Temps: 0 5 0 0 0 0 0
+ 320 ;; Totals: 0 21 0 0 0 0 0
+ 321 ;;Total ram usage: 21 bytes
+ 322 ;; Hardware stack levels required when called: 3
+ 323 ;; This function calls:
+ 324 ;; _eusart_write_midi
+ 325 ;; _init_hw
+ 326 ;; _memset
+ 327 ;; _midi_note_on
+ 328 ;; This function is called by:
+ 329 ;; Startup code after reset
+ 330 ;; This function uses a non-reentrant model
+ 331 ;;
+ 332
+ 333 psect text0
+ 334 00062C __ptext0:
+ 335 opt stack 0
+ 336 00062C _main:
+ 337 opt stack 28
+ 338
+ 339 ;main.c: 223: unsigned i;
+ 340 ;main.c: 224: midi_message_t conf_message, message;
+ 341 ;main.c: 227: init_hw();
+ 342
+ 343 ;incstack = 0
+ 344 00062C EC1C F004 call _init_hw ;wreg free
+ 345
+ 346 ;main.c: 230: memset(keys_data, 0, sizeof(keys_data));
+ 347 000630 0E62 movlw low _keys_data
+ 348 000632 6E2A movwf memset@p1,c
+ 349 000634 0E00 movlw high _keys_data
+ 350 000636 6E2B movwf memset@p1+1,c
+ 351 000638 0E00 movlw 0
+ 352 00063A 6E2D movwf memset@c+1,c
+ 353 00063C 0E00 movlw 0
+ 354 00063E 6E2C movwf memset@c,c
+ 355 000640 0E00 movlw 0
+ 356 000642 6E2F movwf memset@n+1,c
+ 357 000644 0E40 movlw 64
+ 358 000646 6E2E movwf memset@n,c
+ 359 000648 EC45 F004 call _memset ;wreg free
+ 360
+ 361 ;main.c: 232: (INTCONbits.GIE = 1);
+ 362 00064C 8EF2 bsf intcon,7,c ;volatile
+ 363
+ 364 ;main.c: 239: conf_message.status = PROGRAM_CHANGE;
+ 365 00064E 0100 movlb 0 ; () banked
+ 366 000650 51A7 movf main@conf_message& (0+255),w,b
+ 367 000652 0BF0 andlw -16
+ 368 000654 090C iorlw 12
+ 369 000656 6FA7 movwf main@conf_message& (0+255),b
+ 370
+ 371 ; BSR set to: 0
+ 372 ;main.c: 240: conf_message.channel = 0;
+ 373 000658 99A7 bcf main@conf_message& (0+255),4,b
+ 374 00065A 9BA7 bcf main@conf_message& (0+255),5,b
+ 375 00065C 9DA7 bcf main@conf_message& (0+255),6,b
+ 376 00065E 9FA7 bcf main@conf_message& (0+255),7,b
+ 377
+ 378 ; BSR set to: 0
+ 379 ;main.c: 241: conf_message.data[0] = 9;
+ 380 000660 0E09 movlw 9
+ 381 000662 6FAA movwf (main@conf_message+3)& (0+255),b
+ 382
+ 383 ; BSR set to: 0
+ 384 ;main.c: 242: conf_message.data_size = 1;
+ 385 000664 0E00 movlw 0
+ 386 000666 6FA9 movwf (main@conf_message+2)& (0+255),b
+ 387 000668 0E01 movlw 1
+ 388 00066A 6FA8 movwf (main@conf_message+1)& (0+255),b
+ 389
+ 390 ; BSR set to: 0
+ 391 ;main.c: 244: midi_note_on(&message, 0, midi_notes_steps_table[0], 127);
+ 392 00066C 0EB0 movlw low main@message
+ 393 00066E 6E2F movwf midi_note_on@pkt,c
+ 394 000670 0E00 movlw high main@message
+ 395 000672 6E30 movwf midi_note_on@pkt+1,c
+ 396 000674 0E00 movlw 0
+ 397 000676 6E32 movwf midi_note_on@channel+1,c
+ 398 000678 0E00 movlw 0
+ 399 00067A 6E31 movwf midi_note_on@channel,c
+ 400 00067C 0E01 movlw low _midi_notes_steps_table
+ 401 00067E 6EF6 movwf tblptrl,c
+ 402 000680 if 1 ;There is more than 1 active tblptr byte
+ 403 000680 0E06 movlw high _midi_notes_steps_table
+ 404 000682 6EF7 movwf tblptrh,c
+ 405 000684 endif
+ 406 000684 if 0 ;There are less than 3 active tblptr bytes
+ 407 000684 endif
+ 408 000684 0008 tblrd *
+ 409 000686 CFF5 F033 movff tablat,midi_note_on@note
+ 410 00068A 0E7F movlw 127
+ 411 00068C 6E34 movwf midi_note_on@velocity,c
+ 412 00068E ECEB F003 call _midi_note_on ;wreg free
+ 413
+ 414 ;main.c: 246: _delay((unsigned long)((500)*(64000000/4000.0)));
+ 415 000692 0E29 movlw 41
+ 416 000694 0100 movlb 0 ; () banked
+ 417 000696 6FA3 movwf (??_main+1)& (0+255),b
+ 418 000698 0E96 movlw 150
+ 419 00069A 6FA2 movwf ??_main& (0+255),b
+ 420 00069C 0E7F movlw 127
+ 421 00069E u497:
+ 422 00069E 2EE8 decfsz wreg,f,c
+ 423 0006A0 D7FE bra u497
+ 424 0006A2 2FA2 decfsz ??_main& (0+255),f,b
+ 425 0006A4 D7FC bra u497
+ 426 0006A6 2FA3 decfsz (??_main+1)& (0+255),f,b
+ 427 0006A8 D7FA bra u497
+ 428
+ 429 ;main.c: 247: eusart_write_midi(&conf_message);
+ 430 0006AA 0EA7 movlw low main@conf_message
+ 431 0006AC 6E2B movwf eusart_write_midi@pkt,c
+ 432 0006AE 0E00 movlw high main@conf_message
+ 433 0006B0 6E2C movwf eusart_write_midi@pkt+1,c
+ 434 0006B2 ECB1 F003 call _eusart_write_midi ;wreg free
+ 435 0006B6 l1158:
+ 436
+ 437 ;main.c: 252: for (i = 0; i < 16; i++) {
+ 438 0006B6 0E00 movlw 0
+ 439 0006B8 0100 movlb 0 ; () banked
+ 440 0006BA 6FAF movwf (main@i+1)& (0+255),b
+ 441 0006BC 0E00 movlw 0
+ 442 0006BE 6FAE movwf main@i& (0+255),b
+ 443 0006C0 l1160:
+ 444
+ 445 ; BSR set to: 0
+ 446 0006C0 51AF movf (main@i+1)& (0+255),w,b
+ 447 0006C2 E1F9 bnz l1158
+ 448 0006C4 0E10 movlw 16
+ 449 0006C6 5DAE subwf main@i& (0+255),w,b
+ 450 0006C8 B0D8 btfsc status,0,c
+ 451 0006CA D7F5 goto l70
+ 452
+ 453 ; BSR set to: 0
+ 454 ;main.c: 253: if (keypresses & (1<<i)) {
+ 455
+ 456 ; BSR set to: 0
+ 457
+ 458 ; BSR set to: 0
+ 459 0006CC C0AE F0A2 movff main@i,??_main
+ 460 0006D0 0E01 movlw 1
+ 461 0006D2 6FA3 movwf (??_main+1)& (0+255),b
+ 462 0006D4 0E00 movlw 0
+ 463 0006D6 6FA4 movwf (??_main+2)& (0+255),b
+ 464 0006D8 2BA2 incf ??_main& (0+255),f,b
+ 465 0006DA D003 goto u444
+ 466 0006DC u445:
+ 467 0006DC 90D8 bcf status,0,c
+ 468 0006DE 37A3 rlcf (??_main+1)& (0+255),f,b
+ 469 0006E0 37A4 rlcf (??_main+2)& (0+255),f,b
+ 470 0006E2 u444:
+ 471 0006E2 2FA2 decfsz ??_main& (0+255),f,b
+ 472 0006E4 D7FB goto u445
+ 473 0006E6 0100 movlb 0 ; () banked
+ 474 0006E8 5160 movf _keypresses& (0+255),w,b ;volatile
+ 475 0006EA 17A3 andwf (??_main+1)& (0+255),f,b
+ 476 0006EC 5161 movf (_keypresses+1)& (0+255),w,b ;volatile
+ 477 0006EE 17A4 andwf (??_main+2)& (0+255),f,b
+ 478 0006F0 51A3 movf (??_main+1)& (0+255),w,b
+ 479 0006F2 11A4 iorwf (??_main+2)& (0+255),w,b
+ 480 0006F4 B4D8 btfsc status,2,c
+ 481 0006F6 D032 goto l73
+ 482
+ 483 ; BSR set to: 0
+ 484 ;main.c: 256: message.data[0] = midi_notes_steps_table[i];
+ 485 0006F8 90D8 bcf status,0,c
+ 486 0006FA 35AE rlcf main@i& (0+255),w,b
+ 487 0006FC 6EF6 movwf tblptrl,c
+ 488 0006FE 35AF rlcf (main@i+1)& (0+255),w,b
+ 489 000700 6EF7 movwf tblptrh,c
+ 490 000702 0E01 movlw low _midi_notes_steps_table
+ 491 000704 26F6 addwf tblptrl,f,c
+ 492 000706 0E06 movlw high _midi_notes_steps_table
+ 493 000708 22F7 addwfc tblptrh,f,c
+ 494 00070A if 0 ;There are less than 3 active tblptr bytes
+ 495 00070A endif
+ 496 00070A 0008 tblrd *
+ 497 00070C CFF5 F0B3 movff tablat,main@message+3
+ 498
+ 499 ; BSR set to: 0
+ 500 ;main.c: 259: eusart_write_midi(&message);
+ 501 000710 0EB0 movlw low main@message
+ 502 000712 6E2B movwf eusart_write_midi@pkt,c
+ 503 000714 0E00 movlw high main@message
+ 504 000716 6E2C movwf eusart_write_midi@pkt+1,c
+ 505 000718 ECB1 F003 call _eusart_write_midi ;wreg free
+ 506
+ 507 ;main.c: 266: _delay((unsigned long)((10)*(64000000/4000.0)));
+ 508 00071C 0ED0 movlw 208
+ 509 00071E 0100 movlb 0 ; () banked
+ 510 000720 6FA2 movwf ??_main& (0+255),b
+ 511 000722 0EC9 movlw 201
+ 512 000724 u507:
+ 513 000724 2EE8 decfsz wreg,f,c
+ 514 000726 D7FE bra u507
+ 515 000728 2FA2 decfsz ??_main& (0+255),f,b
+ 516 00072A D7FC bra u507
+ 517 00072C D000 nop2
+ 518
+ 519 ;main.c: 269: keypresses &= ~(1<<i);
+ 520 00072E C0AE F0A2 movff main@i,??_main
+ 521 000732 0E01 movlw 1
+ 522 000734 0100 movlb 0 ; () banked
+ 523 000736 6FA3 movwf (??_main+1)& (0+255),b
+ 524 000738 0E00 movlw 0
+ 525 00073A 6FA4 movwf (??_main+2)& (0+255),b
+ 526 00073C 2BA2 incf ??_main& (0+255),f,b
+ 527 00073E D003 goto u464
+ 528 000740 u465:
+ 529 000740 90D8 bcf status,0,c
+ 530 000742 37A3 rlcf (??_main+1)& (0+255),f,b
+ 531 000744 37A4 rlcf (??_main+2)& (0+255),f,b
+ 532 000746 u464:
+ 533 000746 2FA2 decfsz ??_main& (0+255),f,b
+ 534 000748 D7FB goto u465
+ 535 00074A 0100 movlb 0 ; () banked
+ 536 00074C 1DA3 comf (??_main+1)& (0+255),w,b
+ 537 00074E 6FA5 movwf (??_main+3)& (0+255),b
+ 538 000750 1DA4 comf (??_main+2)& (0+255),w,b
+ 539 000752 6FA6 movwf (??_main+4)& (0+255),b
+ 540 000754 51A5 movf (??_main+3)& (0+255),w,b
+ 541 000756 1760 andwf _keypresses& (0+255),f,b ;volatile
+ 542 000758 51A6 movf (??_main+4)& (0+255),w,b
+ 543 00075A 1761 andwf (_keypresses+1)& (0+255),f,b ;volatile
+ 544 00075C l73:
+ 545
+ 546 ; BSR set to: 0
+ 547
+ 548 ; BSR set to: 0
+ 549 00075C 4BAE infsnz main@i& (0+255),f,b
+ 550 00075E 2BAF incf (main@i+1)& (0+255),f,b
+ 551 000760 D7AF goto l1160
+ 552 000762 __end_of_main:
+ 553 opt stack 0
+ 554 tblptru equ 0xFF8
+ 555 tblptrh equ 0xFF7
+ 556 tblptrl equ 0xFF6
+ 557 tablat equ 0xFF5
+ 558 intcon equ 0xFF2
+ 559 postinc0 equ 0xFEE
+ 560 wreg equ 0xFE8
+ 561 status equ 0xFD8
+ 562
+ 563 ;; *************** function _midi_note_on *****************
+ 564 ;; Defined at:
+ 565 ;; line 62 in file "midi.c"
+ 566 ;; Parameters: Size Location Type
+ 567 ;; pkt 2 46[COMRAM] PTR struct .
+ 568 ;; -> main@message(7),
+ 569 ;; channel 2 48[COMRAM] unsigned int
+ 570 ;; note 1 50[COMRAM] enum E31
+ 571 ;; velocity 1 51[COMRAM] unsigned char
+ 572 ;; Auto vars: Size Location Type
+ 573 ;; None
+ 574 ;; Return value: Size Location Type
+ 575 ;; 2 46[COMRAM] int
+ 576 ;; Registers used:
+ 577 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
+ 578 ;; Tracked objects:
+ 579 ;; On entry : 0/0
+ 580 ;; On exit : 0/0
+ 581 ;; Unchanged: 0/0
+ 582 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 583 ;; Params: 6 0 0 0 0 0 0
+ 584 ;; Locals: 0 0 0 0 0 0 0
+ 585 ;; Temps: 0 0 0 0 0 0 0
+ 586 ;; Totals: 6 0 0 0 0 0 0
+ 587 ;;Total ram usage: 6 bytes
+ 588 ;; Hardware stack levels used: 1
+ 589 ;; Hardware stack levels required when called: 2
+ 590 ;; This function calls:
+ 591 ;; _midi_set_channel
+ 592 ;; _midi_set_status
+ 593 ;; This function is called by:
+ 594 ;; _main
+ 595 ;; This function uses a non-reentrant model
+ 596 ;;
+ 597
+ 598 psect text1
+ 599 0007D6 __ptext1:
+ 600 opt stack 0
+ 601 0007D6 _midi_note_on:
+ 602 opt stack 28
+ 603
+ 604 ;midi.c: 64: if (pkt == (0)) {
+ 605
+ 606 ; BSR set to: 0
+ 607 ;incstack = 0
+ 608 0007D6 502F movf midi_note_on@pkt,w,c
+ 609 0007D8 1030 iorwf midi_note_on@pkt+1,w,c
+ 610 0007DA B4D8 btfsc status,2,c
+ 611 0007DC 0012 return
+ 612
+ 613 ;midi.c: 66: }
+ 614 ;midi.c: 74: midi_set_status(pkt, NOTE_ON);
+ 615
+ 616 ;midi.c: 65: return -1;
+ 617 ; Return value of _midi_note_on is never used
+ 618 0007DE C02F F02A movff midi_note_on@pkt,midi_set_status@pkt
+ 619 0007E2 C030 F02B movff midi_note_on@pkt+1,midi_set_status@pkt+1
+ 620 0007E6 0E09 movlw 9
+ 621 0007E8 6E2C movwf midi_set_status@status,c
+ 622 0007EA EC6E F004 call _midi_set_status ;wreg free
+ 623
+ 624 ;midi.c: 75: midi_set_channel(pkt, channel);
+ 625 0007EE C02F F02A movff midi_note_on@pkt,midi_set_channel@pkt
+ 626 0007F2 C030 F02B movff midi_note_on@pkt+1,midi_set_channel@pkt+1
+ 627 0007F6 C031 F02C movff midi_note_on@channel,midi_set_channel@channel
+ 628 0007FA C032 F02D movff midi_note_on@channel+1,midi_set_channel@channel+1
+ 629 0007FE EC5B F004 call _midi_set_channel ;wreg free
+ 630
+ 631 ;midi.c: 77: pkt->data[0] = note;
+ 632 000802 EE20 F003 lfsr 2,3
+ 633 000806 502F movf midi_note_on@pkt,w,c
+ 634 000808 26D9 addwf fsr2l,f,c
+ 635 00080A 5030 movf midi_note_on@pkt+1,w,c
+ 636 00080C 22DA addwfc fsr2h,f,c
+ 637 00080E C033 FFDF movff midi_note_on@note,indf2
+ 638
+ 639 ;midi.c: 78: pkt->data[1] = velocity;
+ 640 000812 EE20 F004 lfsr 2,4
+ 641 000816 502F movf midi_note_on@pkt,w,c
+ 642 000818 26D9 addwf fsr2l,f,c
+ 643 00081A 5030 movf midi_note_on@pkt+1,w,c
+ 644 00081C 22DA addwfc fsr2h,f,c
+ 645 00081E C034 FFDF movff midi_note_on@velocity,indf2
+ 646
+ 647 ;midi.c: 81: pkt->data_size = 2;
+ 648 000822 EE20 F001 lfsr 2,1
+ 649 000826 502F movf midi_note_on@pkt,w,c
+ 650 000828 26D9 addwf fsr2l,f,c
+ 651 00082A 5030 movf midi_note_on@pkt+1,w,c
+ 652 00082C 22DA addwfc fsr2h,f,c
+ 653 00082E 0E02 movlw 2
+ 654 000830 6EDE movwf postinc2,c
+ 655 000832 0E00 movlw 0
+ 656 000834 6EDD movwf postdec2,c
+ 657 000836 0012 return
+ 658 000838 __end_of_midi_note_on:
+ 659 opt stack 0
+ 660 tblptru equ 0xFF8
+ 661 tblptrh equ 0xFF7
+ 662 tblptrl equ 0xFF6
+ 663 tablat equ 0xFF5
+ 664 intcon equ 0xFF2
+ 665 postinc0 equ 0xFEE
+ 666 wreg equ 0xFE8
+ 667 indf2 equ 0xFDF
+ 668 postinc2 equ 0xFDE
+ 669 postdec2 equ 0xFDD
+ 670 fsr2h equ 0xFDA
+ 671 fsr2l equ 0xFD9
+ 672 status equ 0xFD8
+ 673
+ 674 ;; *************** function _midi_set_status *****************
+ 675 ;; Defined at:
+ 676 ;; line 40 in file "midi.c"
+ 677 ;; Parameters: Size Location Type
+ 678 ;; pkt 2 41[COMRAM] PTR struct .
+ 679 ;; -> main@message(7),
+ 680 ;; status 1 43[COMRAM] enum E40
+ 681 ;; Auto vars: Size Location Type
+ 682 ;; None
+ 683 ;; Return value: Size Location Type
+ 684 ;; 2 41[COMRAM] int
+ 685 ;; Registers used:
+ 686 ;; wreg, fsr2l, fsr2h, status,2, status,0
+ 687 ;; Tracked objects:
+ 688 ;; On entry : 0/0
+ 689 ;; On exit : 0/0
+ 690 ;; Unchanged: 0/0
+ 691 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 692 ;; Params: 3 0 0 0 0 0 0
+ 693 ;; Locals: 0 0 0 0 0 0 0
+ 694 ;; Temps: 1 0 0 0 0 0 0
+ 695 ;; Totals: 4 0 0 0 0 0 0
+ 696 ;;Total ram usage: 4 bytes
+ 697 ;; Hardware stack levels used: 1
+ 698 ;; Hardware stack levels required when called: 1
+ 699 ;; This function calls:
+ 700 ;; Nothing
+ 701 ;; This function is called by:
+ 702 ;; _midi_note_on
+ 703 ;; _midi_note_off
+ 704 ;; This function uses a non-reentrant model
+ 705 ;;
+ 706
+ 707 psect text2
+ 708 0008DC __ptext2:
+ 709 opt stack 0
+ 710 0008DC _midi_set_status:
+ 711 opt stack 28
+ 712
+ 713 ;midi.c: 42: if (pkt == (0)) {
+ 714
+ 715 ;incstack = 0
+ 716 0008DC 502A movf midi_set_status@pkt,w,c
+ 717 0008DE 102B iorwf midi_set_status@pkt+1,w,c
+ 718 0008E0 B4D8 btfsc status,2,c
+ 719 0008E2 0012 return
+ 720
+ 721 ;midi.c: 44: }
+ 722 ;midi.c: 46: pkt->status = status & 0x0F;
+ 723
+ 724 ;midi.c: 43: return -1;
+ 725 ; Return value of _midi_set_status is never used
+ 726 0008E4 C02C F02D movff midi_set_status@status,??_midi_set_status
+ 727 0008E8 0E0F movlw 15
+ 728 0008EA 162D andwf ??_midi_set_status,f,c
+ 729 0008EC C02A FFD9 movff midi_set_status@pkt,fsr2l
+ 730 0008F0 C02B FFDA movff midi_set_status@pkt+1,fsr2h
+ 731 0008F4 50DF movf indf2,w,c
+ 732 0008F6 182D xorwf ??_midi_set_status,w,c
+ 733 0008F8 0BF0 andlw -16
+ 734 0008FA 182D xorwf ??_midi_set_status,w,c
+ 735 0008FC 6EDF movwf indf2,c
+ 736 0008FE 0012 return
+ 737 000900 __end_of_midi_set_status:
+ 738 opt stack 0
+ 739 tblptru equ 0xFF8
+ 740 tblptrh equ 0xFF7
+ 741 tblptrl equ 0xFF6
+ 742 tablat equ 0xFF5
+ 743 intcon equ 0xFF2
+ 744 postinc0 equ 0xFEE
+ 745 wreg equ 0xFE8
+ 746 indf2 equ 0xFDF
+ 747 postinc2 equ 0xFDE
+ 748 postdec2 equ 0xFDD
+ 749 fsr2h equ 0xFDA
+ 750 fsr2l equ 0xFD9
+ 751 status equ 0xFD8
+ 752
+ 753 ;; *************** function _midi_set_channel *****************
+ 754 ;; Defined at:
+ 755 ;; line 51 in file "midi.c"
+ 756 ;; Parameters: Size Location Type
+ 757 ;; pkt 2 41[COMRAM] PTR struct .
+ 758 ;; -> main@message(7),
+ 759 ;; channel 2 43[COMRAM] unsigned int
+ 760 ;; Auto vars: Size Location Type
+ 761 ;; None
+ 762 ;; Return value: Size Location Type
+ 763 ;; 2 41[COMRAM] int
+ 764 ;; Registers used:
+ 765 ;; wreg, fsr2l, fsr2h, status,2, status,0
+ 766 ;; Tracked objects:
+ 767 ;; On entry : 0/0
+ 768 ;; On exit : 0/0
+ 769 ;; Unchanged: 0/0
+ 770 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 771 ;; Params: 4 0 0 0 0 0 0
+ 772 ;; Locals: 0 0 0 0 0 0 0
+ 773 ;; Temps: 1 0 0 0 0 0 0
+ 774 ;; Totals: 5 0 0 0 0 0 0
+ 775 ;;Total ram usage: 5 bytes
+ 776 ;; Hardware stack levels used: 1
+ 777 ;; Hardware stack levels required when called: 1
+ 778 ;; This function calls:
+ 779 ;; Nothing
+ 780 ;; This function is called by:
+ 781 ;; _midi_note_on
+ 782 ;; _midi_note_off
+ 783 ;; This function uses a non-reentrant model
+ 784 ;;
+ 785
+ 786 psect text3
+ 787 0008B6 __ptext3:
+ 788 opt stack 0
+ 789 0008B6 _midi_set_channel:
+ 790 opt stack 28
+ 791
+ 792 ;midi.c: 53: if (pkt == (0)) {
+ 793
+ 794 ;incstack = 0
+ 795 0008B6 502A movf midi_set_channel@pkt,w,c
+ 796 0008B8 102B iorwf midi_set_channel@pkt+1,w,c
+ 797 0008BA B4D8 btfsc status,2,c
+ 798 0008BC 0012 return
+ 799
+ 800 ;midi.c: 55: }
+ 801 ;midi.c: 57: pkt->channel = channel & 0x0F;
+ 802
+ 803 ;midi.c: 54: return -1;
+ 804 ; Return value of _midi_set_channel is never used
+ 805 0008BE C02C F02E movff midi_set_channel@channel,??_midi_set_channel
+ 806 0008C2 0E0F movlw 15
+ 807 0008C4 162E andwf ??_midi_set_channel,f,c
+ 808 0008C6 C02A FFD9 movff midi_set_channel@pkt,fsr2l
+ 809 0008CA C02B FFDA movff midi_set_channel@pkt+1,fsr2h
+ 810 0008CE 3A2E swapf ??_midi_set_channel,f,c
+ 811 0008D0 50DF movf indf2,w,c
+ 812 0008D2 182E xorwf ??_midi_set_channel,w,c
+ 813 0008D4 0B0F andlw -241
+ 814 0008D6 182E xorwf ??_midi_set_channel,w,c
+ 815 0008D8 6EDF movwf indf2,c
+ 816 0008DA 0012 return
+ 817 0008DC __end_of_midi_set_channel:
+ 818 opt stack 0
+ 819 tblptru equ 0xFF8
+ 820 tblptrh equ 0xFF7
+ 821 tblptrl equ 0xFF6
+ 822 tablat equ 0xFF5
+ 823 intcon equ 0xFF2
+ 824 postinc0 equ 0xFEE
+ 825 wreg equ 0xFE8
+ 826 indf2 equ 0xFDF
+ 827 postinc2 equ 0xFDE
+ 828 postdec2 equ 0xFDD
+ 829 fsr2h equ 0xFDA
+ 830 fsr2l equ 0xFD9
+ 831 status equ 0xFD8
+ 832
+ 833 ;; *************** function _memset *****************
+ 834 ;; Defined at:
+ 835 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c"
+ 836 ;; Parameters: Size Location Type
+ 837 ;; p1 2 41[COMRAM] PTR void
+ 838 ;; -> keys_data(64),
+ 839 ;; c 2 43[COMRAM] int
+ 840 ;; n 2 45[COMRAM] unsigned int
+ 841 ;; Auto vars: Size Location Type
+ 842 ;; p 2 47[COMRAM] PTR unsigned char
+ 843 ;; -> keys_data(64),
+ 844 ;; Return value: Size Location Type
+ 845 ;; 2 41[COMRAM] PTR void
+ 846 ;; Registers used:
+ 847 ;; wreg, fsr2l, fsr2h, status,2, status,0
+ 848 ;; Tracked objects:
+ 849 ;; On entry : 0/0
+ 850 ;; On exit : 0/0
+ 851 ;; Unchanged: 0/0
+ 852 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 853 ;; Params: 6 0 0 0 0 0 0
+ 854 ;; Locals: 2 0 0 0 0 0 0
+ 855 ;; Temps: 0 0 0 0 0 0 0
+ 856 ;; Totals: 8 0 0 0 0 0 0
+ 857 ;;Total ram usage: 8 bytes
+ 858 ;; Hardware stack levels used: 1
+ 859 ;; Hardware stack levels required when called: 1
+ 860 ;; This function calls:
+ 861 ;; Nothing
+ 862 ;; This function is called by:
+ 863 ;; _main
+ 864 ;; This function uses a non-reentrant model
+ 865 ;;
866
- 867 ;main.c: 160: OSCCONbits.IRCF = 0b111;
- 868 00051C 88D3 bsf 4051,4,c ;volatile
- 869 00051E 8AD3 bsf 4051,5,c ;volatile
- 870 000520 8CD3 bsf 4051,6,c ;volatile
- 871
- 872 ;main.c: 162: OSCCONbits.SCS = 0b00;
- 873 000522 0EFC movlw -4
- 874 000524 16D3 andwf 4051,f,c ;volatile
- 875
- 876 ;main.c: 166: ANSELA = 0x00;
- 877 000526 0E00 movlw 0
- 878 000528 010F movlb 15 ; () banked
- 879 00052A 6F38 movwf 56,b ;volatile
- 880
- 881 ;main.c: 167: ANSELB = 0x00;
- 882 00052C 0E00 movlw 0
- 883 00052E 6F39 movwf 57,b ;volatile
- 884
- 885 ;main.c: 168: ANSELC = 0x00;
- 886 000530 0E00 movlw 0
- 887 000532 6F3A movwf 58,b ;volatile
- 888
- 889 ;main.c: 169: ANSELD = 0x00;
- 890 000534 0E00 movlw 0
- 891 000536 6F3B movwf 59,b ;volatile
- 892
- 893 ; BSR set to: 15
- 894 ;main.c: 172: TRISA = 0xFF;
- 895 000538 6892 setf 3986,c ;volatile
- 896
- 897 ; BSR set to: 15
- 898 ;main.c: 173: TRISB = 0xFF;
- 899 00053A 6893 setf 3987,c ;volatile
- 900
- 901 ; BSR set to: 15
- 902 ;main.c: 176: TRISDbits.TRISD1 = 0;
- 903 00053C 9295 bcf 3989,1,c ;volatile
- 904
- 905 ; BSR set to: 15
- 906 ;main.c: 177: TRISDbits.TRISD2 = 0;
- 907 00053E 9495 bcf 3989,2,c ;volatile
+ 867 psect text4
+ 868 00088A __ptext4:
+ 869 opt stack 0
+ 870 00088A _memset:
+ 871 opt stack 29
+ 872
+ 873 ;incstack = 0
+ 874 00088A C02A F030 movff memset@p1,memset@p
+ 875 00088E C02B F031 movff memset@p1+1,memset@p+1
+ 876 000892 D008 goto l592
+ 877 000894 l1070:
+ 878 000894 C030 FFD9 movff memset@p,fsr2l
+ 879 000898 C031 FFDA movff memset@p+1,fsr2h
+ 880 00089C C02C FFDF movff memset@c,indf2
+ 881 0008A0 4A30 infsnz memset@p,f,c
+ 882 0008A2 2A31 incf memset@p+1,f,c
+ 883 0008A4 l592:
+ 884 0008A4 062E decf memset@n,f,c
+ 885 0008A6 A0D8 btfss status,0,c
+ 886 0008A8 062F decf memset@n+1,f,c
+ 887 0008AA 282E incf memset@n,w,c
+ 888 0008AC E1F3 bnz l1070
+ 889 0008AE 282F incf memset@n+1,w,c
+ 890 0008B0 B4D8 btfsc status,2,c
+ 891 0008B2 0012 return
+ 892 0008B4 D7EF goto l593
+ 893 0008B6 __end_of_memset:
+ 894 opt stack 0
+ 895 tblptru equ 0xFF8
+ 896 tblptrh equ 0xFF7
+ 897 tblptrl equ 0xFF6
+ 898 tablat equ 0xFF5
+ 899 intcon equ 0xFF2
+ 900 postinc0 equ 0xFEE
+ 901 wreg equ 0xFE8
+ 902 indf2 equ 0xFDF
+ 903 postinc2 equ 0xFDE
+ 904 postdec2 equ 0xFDD
+ 905 fsr2h equ 0xFDA
+ 906 fsr2l equ 0xFD9
+ 907 status equ 0xFD8
908
- 909 ; BSR set to: 15
- 910 ;main.c: 178: TRISDbits.TRISD3 = 0;
- 911 000540 9695 bcf 3989,3,c ;volatile
- 912
- 913 ; BSR set to: 15
- 914 ;main.c: 179: TRISDbits.TRISD4 = 0;
- 915 000542 9895 bcf 3989,4,c ;volatile
- 916
- 917 ; BSR set to: 15
- 918 ;main.c: 182: PORTDbits.RD1 = 1;
- 919 000544 8283 bsf 3971,1,c ;volatile
- 920
- 921 ; BSR set to: 15
- 922 ;main.c: 184: PORTDbits.RD2 = 0;
- 923 000546 9483 bcf 3971,2,c ;volatile
- 924
- 925 ; BSR set to: 15
- 926 ;main.c: 186: PORTDbits.RD3 = 1;
- 927 000548 8683 bsf 3971,3,c ;volatile
- 928
- 929 ; BSR set to: 15
- 930 ;main.c: 188: PORTDbits.RD4 = 0;
- 931 00054A 9883 bcf 3971,4,c ;volatile
- 932
- 933 ;main.c: 193: PR2 = 128;
- 934 00054C 0E80 movlw 128
- 935 00054E 6EBB movwf 4027,c ;volatile
- 936
- 937 ;main.c: 195: T2CONbits.T2OUTPS = 0b0001;
- 938 000550 50BA movf 4026,w,c ;volatile
- 939 000552 0B87 andlw -121
- 940 000554 0908 iorlw 8
- 941 000556 6EBA movwf 4026,c ;volatile
- 942
- 943 ;main.c: 197: T2CONbits.T2CKPS = 0b11;
- 944 000558 0E03 movlw 3
- 945 00055A 12BA iorwf 4026,f,c ;volatile
- 946
- 947 ; BSR set to: 15
- 948 ;main.c: 199: T2CONbits.TMR2ON = 1;
- 949 00055C 84BA bsf 4026,2,c ;volatile
+ 909 ;; *************** function _init_hw *****************
+ 910 ;; Defined at:
+ 911 ;; line 156 in file "main.c"
+ 912 ;; Parameters: Size Location Type
+ 913 ;; None
+ 914 ;; Auto vars: Size Location Type
+ 915 ;; None
+ 916 ;; Return value: Size Location Type
+ 917 ;; 1 wreg void
+ 918 ;; Registers used:
+ 919 ;; wreg, status,2, cstack
+ 920 ;; Tracked objects:
+ 921 ;; On entry : 0/0
+ 922 ;; On exit : 0/0
+ 923 ;; Unchanged: 0/0
+ 924 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 925 ;; Params: 0 0 0 0 0 0 0
+ 926 ;; Locals: 0 0 0 0 0 0 0
+ 927 ;; Temps: 0 0 0 0 0 0 0
+ 928 ;; Totals: 0 0 0 0 0 0 0
+ 929 ;;Total ram usage: 0 bytes
+ 930 ;; Hardware stack levels used: 1
+ 931 ;; Hardware stack levels required when called: 2
+ 932 ;; This function calls:
+ 933 ;; _eusart1_init
+ 934 ;; _eusart2_init
+ 935 ;; This function is called by:
+ 936 ;; _main
+ 937 ;; This function uses a non-reentrant model
+ 938 ;;
+ 939
+ 940 psect text5
+ 941 000838 __ptext5:
+ 942 opt stack 0
+ 943 000838 _init_hw:
+ 944 opt stack 28
+ 945
+ 946 ;main.c: 158: (INTCONbits.GIE = 0);
+ 947
+ 948 ;incstack = 0
+ 949 000838 9EF2 bcf intcon,7,c ;volatile
950
- 951 ; BSR set to: 15
- 952 ;main.c: 202: PIE1bits.TMR2IE = 1;
- 953 00055E 829D bsf 3997,1,c ;volatile
- 954
- 955 ; BSR set to: 15
- 956 ;main.c: 203: PIR1bits.TMR2IF = 0;
- 957 000560 929E bcf 3998,1,c ;volatile
- 958
- 959 ; BSR set to: 15
- 960 ;main.c: 206: INTCONbits.PEIE = 1;
- 961 000562 8CF2 bsf intcon,6,c ;volatile
- 962
- 963 ; BSR set to: 15
- 964 ;main.c: 209: eusart1_init();
- 965 000564 EC00 F003 call _eusart1_init ;wreg free
+ 951 ;main.c: 162: OSCTUNEbits.PLLEN = 1;
+ 952 00083A 8C9B bsf 3995,6,c ;volatile
+ 953
+ 954 ;main.c: 164: OSCTUNEbits.TUN = 0b011111;
+ 955 00083C 809B bsf 3995,0,c ;volatile
+ 956 00083E 829B bsf 3995,1,c ;volatile
+ 957 000840 849B bsf 3995,2,c ;volatile
+ 958 000842 869B bsf 3995,3,c ;volatile
+ 959 000844 889B bsf 3995,4,c ;volatile
+ 960 000846 9A9B bcf 3995,5,c ;volatile
+ 961
+ 962 ;main.c: 166: OSCCONbits.IRCF = 0b111;
+ 963 000848 88D3 bsf 4051,4,c ;volatile
+ 964 00084A 8AD3 bsf 4051,5,c ;volatile
+ 965 00084C 8CD3 bsf 4051,6,c ;volatile
966
- 967 ;main.c: 210: eusart2_init();
- 968 000568 ECF2 F002 call _eusart2_init ;wreg free
- 969 00056C 0012 return ;funcret
- 970 00056E __end_of_init_hw:
- 971 opt stack 0
- 972 tblptru equ 0xFF8
- 973 intcon equ 0xFF2
- 974 postinc0 equ 0xFEE
- 975 wreg equ 0xFE8
- 976 indf2 equ 0xFDF
- 977 postinc2 equ 0xFDE
- 978 postdec2 equ 0xFDD
- 979 fsr2h equ 0xFDA
- 980 fsr2l equ 0xFD9
- 981 status equ 0xFD8
- 982
- 983 ;; *************** function _eusart2_init *****************
- 984 ;; Defined at:
- 985 ;; line 25 in file "rs232.c"
- 986 ;; Parameters: Size Location Type
- 987 ;; None
- 988 ;; Auto vars: Size Location Type
- 989 ;; None
- 990 ;; Return value: Size Location Type
- 991 ;; 1 wreg void
- 992 ;; Registers used:
- 993 ;; wreg, status,2
- 994 ;; Tracked objects:
- 995 ;; On entry : 0/0
- 996 ;; On exit : 0/0
- 997 ;; Unchanged: 0/0
- 998 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 999 ;; Params: 0 0 0 0 0 0 0
- 1000 ;; Locals: 0 0 0 0 0 0 0
- 1001 ;; Temps: 0 0 0 0 0 0 0
- 1002 ;; Totals: 0 0 0 0 0 0 0
- 1003 ;;Total ram usage: 0 bytes
- 1004 ;; Hardware stack levels used: 1
- 1005 ;; Hardware stack levels required when called: 1
- 1006 ;; This function calls:
- 1007 ;; Nothing
- 1008 ;; This function is called by:
- 1009 ;; _init_hw
- 1010 ;; This function uses a non-reentrant model
- 1011 ;;
- 1012
- 1013 psect text6
- 1014 0005E4 __ptext6:
- 1015 opt stack 0
- 1016 0005E4 _eusart2_init:
- 1017 opt stack 28
- 1018
- 1019 ;rs232.c: 28: TXSTA2bits.SYNC = 0;
- 1020
- 1021 ;incstack = 0
- 1022 0005E4 9872 bcf 3954,4,c ;volatile
- 1023
- 1024 ;rs232.c: 29: TXSTA2bits.TX9 = 0;
- 1025 0005E6 9C72 bcf 3954,6,c ;volatile
- 1026
- 1027 ;rs232.c: 32: RCSTA2bits.SPEN = 1;
- 1028 0005E8 8E71 bsf 3953,7,c ;volatile
+ 967 ;main.c: 168: OSCCONbits.SCS = 0b00;
+ 968 00084E 0EFC movlw -4
+ 969 000850 16D3 andwf 4051,f,c ;volatile
+ 970
+ 971 ;main.c: 172: ANSELA = 0x00;
+ 972 000852 0E00 movlw 0
+ 973 000854 010F movlb 15 ; () banked
+ 974 000856 6F38 movwf 56,b ;volatile
+ 975
+ 976 ;main.c: 173: ANSELB = 0x00;
+ 977 000858 0E00 movlw 0
+ 978 00085A 6F39 movwf 57,b ;volatile
+ 979
+ 980 ;main.c: 174: ANSELC = 0x00;
+ 981 00085C 0E00 movlw 0
+ 982 00085E 6F3A movwf 58,b ;volatile
+ 983
+ 984 ;main.c: 175: ANSELD = 0x00;
+ 985 000860 0E00 movlw 0
+ 986 000862 6F3B movwf 59,b ;volatile
+ 987
+ 988 ; BSR set to: 15
+ 989 ;main.c: 178: TRISA = 0xFF;
+ 990 000864 6892 setf 3986,c ;volatile
+ 991
+ 992 ; BSR set to: 15
+ 993 ;main.c: 179: TRISB = 0xFF;
+ 994 000866 6893 setf 3987,c ;volatile
+ 995
+ 996 ;main.c: 199: PR2 = 128;
+ 997 000868 0E80 movlw 128
+ 998 00086A 6EBB movwf 4027,c ;volatile
+ 999
+ 1000 ;main.c: 201: T2CONbits.T2OUTPS = 0b0001;
+ 1001 00086C 50BA movf 4026,w,c ;volatile
+ 1002 00086E 0B87 andlw -121
+ 1003 000870 0908 iorlw 8
+ 1004 000872 6EBA movwf 4026,c ;volatile
+ 1005
+ 1006 ;main.c: 203: T2CONbits.T2CKPS = 0b11;
+ 1007 000874 0E03 movlw 3
+ 1008 000876 12BA iorwf 4026,f,c ;volatile
+ 1009
+ 1010 ; BSR set to: 15
+ 1011 ;main.c: 205: T2CONbits.TMR2ON = 1;
+ 1012 000878 84BA bsf 4026,2,c ;volatile
+ 1013
+ 1014 ; BSR set to: 15
+ 1015 ;main.c: 208: PIE1bits.TMR2IE = 1;
+ 1016 00087A 829D bsf 3997,1,c ;volatile
+ 1017
+ 1018 ; BSR set to: 15
+ 1019 ;main.c: 209: PIR1bits.TMR2IF = 0;
+ 1020 00087C 929E bcf 3998,1,c ;volatile
+ 1021
+ 1022 ; BSR set to: 15
+ 1023 ;main.c: 212: INTCONbits.PEIE = 1;
+ 1024 00087E 8CF2 bsf intcon,6,c ;volatile
+ 1025
+ 1026 ; BSR set to: 15
+ 1027 ;main.c: 215: eusart1_init();
+ 1028 000880 EC8E F004 call _eusart1_init ;wreg free
1029
- 1030 ;rs232.c: 33: SPBRG2 = 31;
- 1031 0005EA 0E1F movlw 31
- 1032 0005EC 6E75 movwf 3957,c ;volatile
- 1033
- 1034 ;rs232.c: 34: SPBRGH2 = 0;
- 1035 0005EE 0E00 movlw 0
- 1036 0005F0 6E76 movwf 3958,c ;volatile
- 1037
- 1038 ;rs232.c: 35: TXSTA2bits.BRGH = 0;
- 1039 0005F2 9472 bcf 3954,2,c ;volatile
- 1040
- 1041 ;rs232.c: 36: BAUDCON2bits.BRG16 = 0;
- 1042 0005F4 9670 bcf 3952,3,c ;volatile
- 1043
- 1044 ;rs232.c: 39: TRISDbits.TRISD7 = 1;
- 1045 0005F6 8E95 bsf 3989,7,c ;volatile
- 1046
- 1047 ;rs232.c: 40: TRISDbits.TRISD6 = 1;
- 1048 0005F8 8C95 bsf 3989,6,c ;volatile
- 1049
- 1050 ;rs232.c: 42: RCSTA2bits.CREN = 1;
- 1051 0005FA 8871 bsf 3953,4,c ;volatile
- 1052
- 1053 ;rs232.c: 43: TXSTA2bits.TXEN = 1;
- 1054 0005FC 8A72 bsf 3954,5,c ;volatile
- 1055 0005FE 0012 return ;funcret
- 1056 000600 __end_of_eusart2_init:
- 1057 opt stack 0
- 1058 tblptru equ 0xFF8
- 1059 intcon equ 0xFF2
- 1060 postinc0 equ 0xFEE
- 1061 wreg equ 0xFE8
- 1062 indf2 equ 0xFDF
- 1063 postinc2 equ 0xFDE
- 1064 postdec2 equ 0xFDD
- 1065 fsr2h equ 0xFDA
- 1066 fsr2l equ 0xFD9
- 1067 status equ 0xFD8
- 1068
- 1069 ;; *************** function _eusart1_init *****************
- 1070 ;; Defined at:
- 1071 ;; line 4 in file "rs232.c"
- 1072 ;; Parameters: Size Location Type
- 1073 ;; None
- 1074 ;; Auto vars: Size Location Type
- 1075 ;; None
- 1076 ;; Return value: Size Location Type
- 1077 ;; 1 wreg void
- 1078 ;; Registers used:
- 1079 ;; wreg, status,2
- 1080 ;; Tracked objects:
- 1081 ;; On entry : 0/0
- 1082 ;; On exit : 0/0
- 1083 ;; Unchanged: 0/0
- 1084 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 1085 ;; Params: 0 0 0 0 0 0 0
- 1086 ;; Locals: 0 0 0 0 0 0 0
- 1087 ;; Temps: 0 0 0 0 0 0 0
- 1088 ;; Totals: 0 0 0 0 0 0 0
- 1089 ;;Total ram usage: 0 bytes
- 1090 ;; Hardware stack levels used: 1
- 1091 ;; Hardware stack levels required when called: 1
- 1092 ;; This function calls:
- 1093 ;; Nothing
- 1094 ;; This function is called by:
- 1095 ;; _init_hw
- 1096 ;; This function uses a non-reentrant model
- 1097 ;;
- 1098
- 1099 psect text7
- 1100 000600 __ptext7:
- 1101 opt stack 0
- 1102 000600 _eusart1_init:
- 1103 opt stack 28
- 1104
- 1105 ;rs232.c: 7: TXSTA1bits.SYNC = 0;
+ 1030 ;main.c: 216: eusart2_init();
+ 1031 000884 EC80 F004 call _eusart2_init ;wreg free
+ 1032 000888 0012 return ;funcret
+ 1033 00088A __end_of_init_hw:
+ 1034 opt stack 0
+ 1035 tblptru equ 0xFF8
+ 1036 tblptrh equ 0xFF7
+ 1037 tblptrl equ 0xFF6
+ 1038 tablat equ 0xFF5
+ 1039 intcon equ 0xFF2
+ 1040 postinc0 equ 0xFEE
+ 1041 wreg equ 0xFE8
+ 1042 indf2 equ 0xFDF
+ 1043 postinc2 equ 0xFDE
+ 1044 postdec2 equ 0xFDD
+ 1045 fsr2h equ 0xFDA
+ 1046 fsr2l equ 0xFD9
+ 1047 status equ 0xFD8
+ 1048
+ 1049 ;; *************** function _eusart2_init *****************
+ 1050 ;; Defined at:
+ 1051 ;; line 25 in file "rs232.c"
+ 1052 ;; Parameters: Size Location Type
+ 1053 ;; None
+ 1054 ;; Auto vars: Size Location Type
+ 1055 ;; None
+ 1056 ;; Return value: Size Location Type
+ 1057 ;; 1 wreg void
+ 1058 ;; Registers used:
+ 1059 ;; wreg, status,2
+ 1060 ;; Tracked objects:
+ 1061 ;; On entry : 0/0
+ 1062 ;; On exit : 0/0
+ 1063 ;; Unchanged: 0/0
+ 1064 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 1065 ;; Params: 0 0 0 0 0 0 0
+ 1066 ;; Locals: 0 0 0 0 0 0 0
+ 1067 ;; Temps: 0 0 0 0 0 0 0
+ 1068 ;; Totals: 0 0 0 0 0 0 0
+ 1069 ;;Total ram usage: 0 bytes
+ 1070 ;; Hardware stack levels used: 1
+ 1071 ;; Hardware stack levels required when called: 1
+ 1072 ;; This function calls:
+ 1073 ;; Nothing
+ 1074 ;; This function is called by:
+ 1075 ;; _init_hw
+ 1076 ;; This function uses a non-reentrant model
+ 1077 ;;
+ 1078
+ 1079 psect text6
+ 1080 000900 __ptext6:
+ 1081 opt stack 0
+ 1082 000900 _eusart2_init:
+ 1083 opt stack 28
+ 1084
+ 1085 ;rs232.c: 28: TXSTA2bits.SYNC = 0;
+ 1086
+ 1087 ;incstack = 0
+ 1088 000900 9872 bcf 3954,4,c ;volatile
+ 1089
+ 1090 ;rs232.c: 29: TXSTA2bits.TX9 = 0;
+ 1091 000902 9C72 bcf 3954,6,c ;volatile
+ 1092
+ 1093 ;rs232.c: 32: RCSTA2bits.SPEN = 1;
+ 1094 000904 8E71 bsf 3953,7,c ;volatile
+ 1095
+ 1096 ;rs232.c: 33: SPBRG2 = 31;
+ 1097 000906 0E1F movlw 31
+ 1098 000908 6E75 movwf 3957,c ;volatile
+ 1099
+ 1100 ;rs232.c: 35: SPBRGH2 = 0;
+ 1101 00090A 0E00 movlw 0
+ 1102 00090C 6E76 movwf 3958,c ;volatile
+ 1103
+ 1104 ;rs232.c: 36: TXSTA2bits.BRGH = 0;
+ 1105 00090E 9472 bcf 3954,2,c ;volatile
1106
- 1107 ;incstack = 0
- 1108 000600 98AC bcf 4012,4,c ;volatile
+ 1107 ;rs232.c: 37: BAUDCON2bits.BRG16 = 0;
+ 1108 000910 9670 bcf 3952,3,c ;volatile
1109
- 1110 ;rs232.c: 8: TXSTA1bits.TX9 = 0;
- 1111 000602 9CAC bcf 4012,6,c ;volatile
+ 1110 ;rs232.c: 40: TRISDbits.TRISD7 = 1;
+ 1111 000912 8E95 bsf 3989,7,c ;volatile
1112
- 1113 ;rs232.c: 11: RCSTA1bits.SPEN = 1;
- 1114 000604 8EAB bsf 4011,7,c ;volatile
+ 1113 ;rs232.c: 41: TRISDbits.TRISD6 = 1;
+ 1114 000914 8C95 bsf 3989,6,c ;volatile
1115
- 1116 ;rs232.c: 12: SPBRG1 = 31;
- 1117 000606 0E1F movlw 31
- 1118 000608 6EAF movwf 4015,c ;volatile
- 1119
- 1120 ;rs232.c: 13: SPBRGH1 = 0;
- 1121 00060A 0E00 movlw 0
- 1122 00060C 6EB0 movwf 4016,c ;volatile
- 1123
- 1124 ;rs232.c: 14: TXSTA1bits.BRGH = 0;
- 1125 00060E 94AC bcf 4012,2,c ;volatile
- 1126
- 1127 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0;
- 1128 000610 96B8 bcf 4024,3,c ;volatile
- 1129
- 1130 ;rs232.c: 18: TRISCbits.TRISC7 = 1;
- 1131 000612 8E94 bsf 3988,7,c ;volatile
- 1132
- 1133 ;rs232.c: 19: TRISCbits.TRISC6 = 1;
- 1134 000614 8C94 bsf 3988,6,c ;volatile
- 1135
- 1136 ;rs232.c: 21: RCSTA1bits.CREN = 1;
- 1137 000616 88AB bsf 4011,4,c ;volatile
- 1138
- 1139 ;rs232.c: 22: TXSTA1bits.TXEN = 1;
- 1140 000618 8AAC bsf 4012,5,c ;volatile
- 1141 00061A 0012 return ;funcret
- 1142 00061C __end_of_eusart1_init:
- 1143 opt stack 0
- 1144 tblptru equ 0xFF8
- 1145 intcon equ 0xFF2
- 1146 postinc0 equ 0xFEE
- 1147 wreg equ 0xFE8
- 1148 indf2 equ 0xFDF
- 1149 postinc2 equ 0xFDE
- 1150 postdec2 equ 0xFDD
- 1151 fsr2h equ 0xFDA
- 1152 fsr2l equ 0xFD9
- 1153 status equ 0xFD8
- 1154
- 1155 ;; *************** function _eusart_write_midi *****************
- 1156 ;; Defined at:
- 1157 ;; line 261 in file "main.c"
- 1158 ;; Parameters: Size Location Type
- 1159 ;; pkt 2 43[COMRAM] PTR const struct .
- 1160 ;; -> main@message(7),
- 1161 ;; Auto vars: Size Location Type
- 1162 ;; data 2 49[COMRAM] PTR unsigned char
- 1163 ;; -> message.data(4), main@message(7),
- 1164 ;; length 2 47[COMRAM] unsigned int
- 1165 ;; Return value: Size Location Type
- 1166 ;; 2 43[COMRAM] int
- 1167 ;; Registers used:
- 1168 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
- 1169 ;; Tracked objects:
- 1170 ;; On entry : 0/0
- 1171 ;; On exit : 0/0
- 1172 ;; Unchanged: 0/0
- 1173 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 1174 ;; Params: 2 0 0 0 0 0 0
- 1175 ;; Locals: 4 0 0 0 0 0 0
- 1176 ;; Temps: 2 0 0 0 0 0 0
- 1177 ;; Totals: 8 0 0 0 0 0 0
- 1178 ;;Total ram usage: 8 bytes
- 1179 ;; Hardware stack levels used: 1
- 1180 ;; Hardware stack levels required when called: 2
- 1181 ;; This function calls:
- 1182 ;; _eusart2_putch
- 1183 ;; This function is called by:
- 1184 ;; _main
- 1185 ;; This function uses a non-reentrant model
- 1186 ;;
- 1187
- 1188 psect text8
- 1189 000432 __ptext8:
- 1190 opt stack 0
- 1191 000432 _eusart_write_midi:
- 1192 opt stack 28
- 1193
- 1194 ;main.c: 263: size_t length;
- 1195 ;main.c: 264: uint8_t *data;
- 1196 ;main.c: 266: if (pkt == (0)) {
- 1197
- 1198 ;incstack = 0
- 1199 000432 502C movf eusart_write_midi@pkt,w,c
- 1200 000434 102D iorwf eusart_write_midi@pkt+1,w,c
- 1201 000436 B4D8 btfsc status,2,c
- 1202 000438 0012 return
- 1203
- 1204 ;main.c: 268: }
- 1205 ;main.c: 270: length = pkt->data_size;
- 1206
- 1207 ;main.c: 267: return -1;
- 1208 ; Return value of _eusart_write_midi is never used
- 1209 00043A EE20 F001 lfsr 2,1
- 1210 00043E 502C movf eusart_write_midi@pkt,w,c
- 1211 000440 26D9 addwf fsr2l,f,c
- 1212 000442 502D movf eusart_write_midi@pkt+1,w,c
- 1213 000444 22DA addwfc fsr2h,f,c
- 1214 000446 CFDE F030 movff postinc2,eusart_write_midi@length
- 1215 00044A CFDD F031 movff postdec2,eusart_write_midi@length+1
- 1216
- 1217 ;main.c: 271: data = (uint8_t *) pkt->data;
- 1218 00044E 0E03 movlw 3
- 1219 000450 242C addwf eusart_write_midi@pkt,w,c
- 1220 000452 6E32 movwf eusart_write_midi@data,c
- 1221 000454 0E00 movlw 0
- 1222 000456 202D addwfc eusart_write_midi@pkt+1,w,c
- 1223 000458 6E33 movwf eusart_write_midi@data+1,c
- 1224
- 1225 ;main.c: 273: eusart2_putch((char)((pkt->status << 4) | pkt->channel));
- 1226 00045A C02C FFD9 movff eusart_write_midi@pkt,fsr2l
- 1227 00045E C02D FFDA movff eusart_write_midi@pkt+1,fsr2h
- 1228 000462 38DF swapf indf2,w,c
- 1229 000464 0B0F andlw 15
- 1230 000466 6E2E movwf ??_eusart_write_midi& (0+255),c
- 1231 000468 C02C FFD9 movff eusart_write_midi@pkt,fsr2l
- 1232 00046C C02D FFDA movff eusart_write_midi@pkt+1,fsr2h
- 1233 000470 50DF movf indf2,w,c
- 1234 000472 0B0F andlw 15
- 1235 000474 6E2F movwf (??_eusart_write_midi+1)& (0+255),c
- 1236 000476 382F swapf ??_eusart_write_midi+1,w,c
- 1237 000478 0BF0 andlw 240
- 1238 00047A 102E iorwf ??_eusart_write_midi,w,c
- 1239 00047C EC1B F003 call _eusart2_putch
- 1240
- 1241 ;main.c: 275: while (length--) {
- 1242 000480 D009 goto l87
- 1243 000482 l1140:
- 1244
- 1245 ;main.c: 276: eusart2_putch((char) *(data++));
- 1246 000482 C032 FFD9 movff eusart_write_midi@data,fsr2l
- 1247 000486 C033 FFDA movff eusart_write_midi@data+1,fsr2h
- 1248 00048A 50DF movf indf2,w,c
- 1249 00048C EC1B F003 call _eusart2_putch
- 1250 000490 4A32 infsnz eusart_write_midi@data,f,c
- 1251 000492 2A33 incf eusart_write_midi@data+1,f,c
- 1252 000494 l87:
- 1253 000494 0630 decf eusart_write_midi@length,f,c
- 1254 000496 A0D8 btfss status,0,c
- 1255 000498 0631 decf eusart_write_midi@length+1,f,c
- 1256 00049A 2830 incf eusart_write_midi@length,w,c
- 1257 00049C E1F2 bnz l1140
- 1258 00049E 2831 incf eusart_write_midi@length+1,w,c
- 1259 0004A0 B4D8 btfsc status,2,c
- 1260 0004A2 0012 return
- 1261 0004A4 D7EE goto l88
- 1262 0004A6 __end_of_eusart_write_midi:
- 1263 opt stack 0
- 1264 tblptru equ 0xFF8
- 1265 intcon equ 0xFF2
- 1266 postinc0 equ 0xFEE
- 1267 wreg equ 0xFE8
- 1268 indf2 equ 0xFDF
- 1269 postinc2 equ 0xFDE
- 1270 postdec2 equ 0xFDD
- 1271 fsr2h equ 0xFDA
- 1272 fsr2l equ 0xFD9
- 1273 status equ 0xFD8
- 1274
- 1275 ;; *************** function _eusart2_putch *****************
- 1276 ;; Defined at:
- 1277 ;; line 52 in file "rs232.c"
- 1278 ;; Parameters: Size Location Type
- 1279 ;; c 1 wreg unsigned char
- 1280 ;; Auto vars: Size Location Type
- 1281 ;; c 1 42[COMRAM] unsigned char
- 1282 ;; Return value: Size Location Type
- 1283 ;; 1 wreg void
- 1284 ;; Registers used:
- 1285 ;; wreg
- 1286 ;; Tracked objects:
- 1287 ;; On entry : 0/0
- 1288 ;; On exit : 0/0
- 1289 ;; Unchanged: 0/0
- 1290 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 1291 ;; Params: 0 0 0 0 0 0 0
- 1292 ;; Locals: 1 0 0 0 0 0 0
- 1293 ;; Temps: 0 0 0 0 0 0 0
- 1294 ;; Totals: 1 0 0 0 0 0 0
- 1295 ;;Total ram usage: 1 bytes
- 1296 ;; Hardware stack levels used: 1
- 1297 ;; Hardware stack levels required when called: 1
- 1298 ;; This function calls:
- 1299 ;; Nothing
- 1300 ;; This function is called by:
- 1301 ;; _eusart_write_midi
- 1302 ;; This function uses a non-reentrant model
- 1303 ;;
- 1304
- 1305 psect text9
- 1306 000636 __ptext9:
- 1307 opt stack 0
- 1308 000636 _eusart2_putch:
- 1309 opt stack 28
- 1310
- 1311 ;incstack = 0
- 1312 ;eusart2_putch@c stored from wreg
- 1313 000636 6E2B movwf eusart2_putch@c,c
- 1314 000638
- 1315 ;rs232.c: 54: while (!TX2IF);
- 1316 000638 A8A4 btfss 4004,4,c ;volatile
- 1317 00063A D7FE goto l1052
- 1318
- 1319 ;rs232.c: 55: TX2REG = c;
- 1320 00063C C02B FF73 movff eusart2_putch@c,3955 ;volatile
- 1321 000640 0012 return ;funcret
- 1322 000642 __end_of_eusart2_putch:
- 1323 opt stack 0
- 1324 tblptru equ 0xFF8
- 1325 intcon equ 0xFF2
- 1326 postinc0 equ 0xFEE
- 1327 wreg equ 0xFE8
- 1328 indf2 equ 0xFDF
- 1329 postinc2 equ 0xFDE
- 1330 postdec2 equ 0xFDD
- 1331 fsr2h equ 0xFDA
- 1332 fsr2l equ 0xFD9
- 1333 status equ 0xFD8
- 1334
- 1335 ;; *************** function _isr *****************
- 1336 ;; Defined at:
- 1337 ;; line 113 in file "main.c"
- 1338 ;; Parameters: Size Location Type
- 1339 ;; None
- 1340 ;; Auto vars: Size Location Type
- 1341 ;; i 1 41[COMRAM] unsigned char
- 1342 ;; data_b 1 37[COMRAM] unsigned char
- 1343 ;; data_a 1 36[COMRAM] unsigned char
- 1344 ;; Return value: Size Location Type
- 1345 ;; 1 wreg void
- 1346 ;; Registers used:
- 1347 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
- 1348 ;; Tracked objects:
- 1349 ;; On entry : 0/0
- 1350 ;; On exit : 0/0
- 1351 ;; Unchanged: 0/0
- 1352 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- 1353 ;; Params: 0 0 0 0 0 0 0
- 1354 ;; Locals: 6 0 0 0 0 0 0
- 1355 ;; Temps: 36 0 0 0 0 0 0
- 1356 ;; Totals: 42 0 0 0 0 0 0
- 1357 ;;Total ram usage: 42 bytes
- 1358 ;; Hardware stack levels used: 1
- 1359 ;; This function calls:
- 1360 ;; Nothing
- 1361 ;; This function is called by:
- 1362 ;; Interrupt level 2
- 1363 ;; This function uses a non-reentrant model
- 1364 ;;
- 1365
- 1366 psect intcode
- 1367 000008 __pintcode:
- 1368 opt stack 0
- 1369 000008 _isr:
- 1370 opt stack 28
- 1371
- 1372 ;incstack = 0
- 1373 000008 8234 bsf btemp,1,c ;set compiler interrupt flag (level 2)
- 1374 00000A CFFA F013 movff pclath,??_isr+18
- 1375 00000E CFFB F014 movff pclatu,??_isr+19
- 1376 000012 CFE9 F015 movff fsr0l,??_isr+20
- 1377 000016 CFEA F016 movff fsr0h,??_isr+21
- 1378 00001A CFE1 F017 movff fsr1l,??_isr+22
- 1379 00001E CFE2 F018 movff fsr1h,??_isr+23
- 1380 000022 CFD9 F019 movff fsr2l,??_isr+24
- 1381 000026 CFDA F01A movff fsr2h,??_isr+25
- 1382 00002A CFF3 F01B movff prodl,??_isr+26
- 1383 00002E CFF4 F01C movff prodh,??_isr+27
- 1384 000032 CFF6 F01D movff tblptrl,??_isr+28
- 1385 000036 CFF7 F01E movff tblptrh,??_isr+29
- 1386 00003A CFF8 F01F movff tblptru,??_isr+30
- 1387 00003E CFF5 F020 movff tablat,??_isr+31
- 1388 000042 C034 F021 movff btemp,??_isr+32
- 1389 000046 C035 F022 movff btemp+1,??_isr+33
- 1390 00004A C036 F023 movff btemp+2,??_isr+34
- 1391 00004E C037 F024 movff btemp+3,??_isr+35
- 1392
- 1393 ;main.c: 115: unsigned char i, data_a, data_b;
- 1394 ;main.c: 117: PORTDbits.RD3 = 0;
- 1395 000052 9683 bcf 3971,3,c ;volatile
- 1396
- 1397 ;main.c: 119: if (PIR1bits.TMR2IF) {
- 1398 000054 A29E btfss 3998,1,c ;volatile
- 1399 000056 D156 goto i2l59
- 1400
- 1401 ;main.c: 120: data_a = PORTA;
- 1402 000058 CF80 F025 movff 3968,isr@data_a ;volatile
- 1403
- 1404 ;main.c: 121: data_b = PORTB;
- 1405 00005C CF81 F026 movff 3969,isr@data_b ;volatile
- 1406
- 1407 ;main.c: 122: i = 7;
- 1408 000060 0E07 movlw 7
- 1409 000062 6E2A movwf isr@i,c
- 1410 000064
- 1411 ;main.c: 125: keys_data[i] = (keys_data[i] << 1) | ((data_a >> i) & 0x01);
- 1412 000064 502A movf isr@i,w,c
- 1413 000066 0D04 mullw 4
- 1414 000068 0E62 movlw low _keys_data
- 1415 00006A 24F3 addwf prodl,w,c
- 1416 00006C 6ED9 movwf fsr2l,c
- 1417 00006E 0E00 movlw high _keys_data
- 1418 000070 20F4 addwfc prodh,w,c
- 1419 000072 6EDA movwf fsr2h,c
- 1420 000074 CFDE F001 movff postinc2,??_isr
- 1421 000078 CFDE F002 movff postinc2,??_isr+1
- 1422 00007C CFDE F003 movff postinc2,??_isr+2
- 1423 000080 CFDE F004 movff postinc2,??_isr+3
- 1424 000084 90D8 bcf status,0,c
- 1425 000086 3401 rlcf ??_isr,w,c
- 1426 000088 6E05 movwf (??_isr+4)& (0+255),c
- 1427 00008A 3402 rlcf ??_isr+1,w,c
- 1428 00008C 6E06 movwf (??_isr+5)& (0+255),c
- 1429 00008E 3403 rlcf ??_isr+2,w,c
- 1430 000090 6E07 movwf (??_isr+6)& (0+255),c
- 1431 000092 3404 rlcf ??_isr+3,w,c
- 1432 000094 6E08 movwf (??_isr+7)& (0+255),c
- 1433 000096 C02A F009 movff isr@i,??_isr+8
- 1434 00009A C025 F00A movff isr@data_a,??_isr+9
- 1435 00009E 2A09 incf ??_isr+8,f,c
- 1436 0000A0 D002 goto i2u38_44
- 1437 0000A2 i2u38_45:
- 1438 0000A2 90D8 bcf status,0,c
- 1439 0000A4 320A rrcf ??_isr+9,f,c
- 1440 0000A6 i2u38_44:
- 1441 0000A6 2E09 decfsz ??_isr+8,f,c
- 1442 0000A8 D7FC goto i2u38_45
- 1443 0000AA 0E01 movlw 1
- 1444 0000AC 160A andwf ??_isr+9,f,c
- 1445 0000AE 500A movf ??_isr+9,w,c
- 1446 0000B0 1005 iorwf ??_isr+4,w,c
- 1447 0000B2 6E0B movwf (??_isr+10)& (0+255),c
- 1448 0000B4 5006 movf ??_isr+5,w,c
- 1449 0000B6 6E0C movwf (??_isr+11)& (0+255),c
- 1450 0000B8 5007 movf ??_isr+6,w,c
- 1451 0000BA 6E0D movwf (??_isr+12)& (0+255),c
- 1452 0000BC 5008 movf ??_isr+7,w,c
- 1453 0000BE 6E0E movwf (??_isr+13)& (0+255),c
- 1454 0000C0 502A movf isr@i,w,c
- 1455 0000C2 0D04 mullw 4
- 1456 0000C4 0E62 movlw low _keys_data
- 1457 0000C6 24F3 addwf prodl,w,c
- 1458 0000C8 6ED9 movwf fsr2l,c
- 1459 0000CA 0E00 movlw high _keys_data
- 1460 0000CC 20F4 addwfc prodh,w,c
- 1461 0000CE 6EDA movwf fsr2h,c
- 1462 0000D0 C00B FFDE movff ??_isr+10,postinc2
- 1463 0000D4 C00C FFDE movff ??_isr+11,postinc2
- 1464 0000D8 C00D FFDE movff ??_isr+12,postinc2
- 1465 0000DC C00E FFDE movff ??_isr+13,postinc2
- 1466
- 1467 ;main.c: 126: keys_data[i + 8] = (keys_data[i + 8] << 1) | ((data_b >> i) & 0x01);
- 1468 0000E0 502A movf isr@i,w,c
- 1469 0000E2 6E01 movwf ??_isr& (0+255),c
- 1470 0000E4 6A02 clrf (??_isr+1)& (0+255),c
- 1471 0000E6 90D8 bcf status,0,c
- 1472 0000E8 3601 rlcf ??_isr,f,c
- 1473 0000EA 3602 rlcf ??_isr+1,f,c
- 1474 0000EC 90D8 bcf status,0,c
- 1475 0000EE 3601 rlcf ??_isr,f,c
- 1476 0000F0 3602 rlcf ??_isr+1,f,c
- 1477 0000F2 0E20 movlw 32
- 1478 0000F4 2601 addwf ??_isr,f,c
- 1479 0000F6 0E00 movlw 0
- 1480 0000F8 2202 addwfc ??_isr+1,f,c
- 1481 0000FA 0E62 movlw low _keys_data
- 1482 0000FC 2401 addwf ??_isr,w,c
- 1483 0000FE 6ED9 movwf fsr2l,c
- 1484 000100 0E00 movlw high _keys_data
- 1485 000102 2002 addwfc ??_isr+1,w,c
- 1486 000104 6EDA movwf fsr2h,c
- 1487 000106 CFDE F003 movff postinc2,??_isr+2
- 1488 00010A CFDE F004 movff postinc2,??_isr+3
- 1489 00010E CFDE F005 movff postinc2,??_isr+4
- 1490 000112 CFDE F006 movff postinc2,??_isr+5
- 1491 000116 90D8 bcf status,0,c
- 1492 000118 3403 rlcf ??_isr+2,w,c
- 1493 00011A 6E07 movwf (??_isr+6)& (0+255),c
- 1494 00011C 3404 rlcf ??_isr+3,w,c
- 1495 00011E 6E08 movwf (??_isr+7)& (0+255),c
- 1496 000120 3405 rlcf ??_isr+4,w,c
- 1497 000122 6E09 movwf (??_isr+8)& (0+255),c
- 1498 000124 3406 rlcf ??_isr+5,w,c
- 1499 000126 6E0A movwf (??_isr+9)& (0+255),c
- 1500 000128 C02A F00B movff isr@i,??_isr+10
- 1501 00012C C026 F00C movff isr@data_b,??_isr+11
- 1502 000130 2A0B incf ??_isr+10,f,c
- 1503 000132 D002 goto i2u39_44
- 1504 000134 i2u39_45:
- 1505 000134 90D8 bcf status,0,c
- 1506 000136 320C rrcf ??_isr+11,f,c
- 1507 000138 i2u39_44:
- 1508 000138 2E0B decfsz ??_isr+10,f,c
- 1509 00013A D7FC goto i2u39_45
- 1510 00013C 0E01 movlw 1
- 1511 00013E 160C andwf ??_isr+11,f,c
- 1512 000140 500C movf ??_isr+11,w,c
- 1513 000142 1007 iorwf ??_isr+6,w,c
- 1514 000144 6E0D movwf (??_isr+12)& (0+255),c
- 1515 000146 5008 movf ??_isr+7,w,c
- 1516 000148 6E0E movwf (??_isr+13)& (0+255),c
- 1517 00014A 5009 movf ??_isr+8,w,c
- 1518 00014C 6E0F movwf (??_isr+14)& (0+255),c
- 1519 00014E 500A movf ??_isr+9,w,c
- 1520 000150 6E10 movwf (??_isr+15)& (0+255),c
- 1521 000152 502A movf isr@i,w,c
- 1522 000154 6E11 movwf (??_isr+16)& (0+255),c
- 1523 000156 6A12 clrf (??_isr+17)& (0+255),c
- 1524 000158 90D8 bcf status,0,c
- 1525 00015A 3611 rlcf ??_isr+16,f,c
- 1526 00015C 3612 rlcf ??_isr+17,f,c
- 1527 00015E 90D8 bcf status,0,c
- 1528 000160 3611 rlcf ??_isr+16,f,c
- 1529 000162 3612 rlcf ??_isr+17,f,c
- 1530 000164 0E20 movlw 32
- 1531 000166 2611 addwf ??_isr+16,f,c
- 1532 000168 0E00 movlw 0
- 1533 00016A 2212 addwfc ??_isr+17,f,c
- 1534 00016C 0E62 movlw low _keys_data
- 1535 00016E 2411 addwf ??_isr+16,w,c
- 1536 000170 6ED9 movwf fsr2l,c
- 1537 000172 0E00 movlw high _keys_data
- 1538 000174 2012 addwfc ??_isr+17,w,c
- 1539 000176 6EDA movwf fsr2h,c
- 1540 000178 C00D FFDE movff ??_isr+12,postinc2
- 1541 00017C C00E FFDE movff ??_isr+13,postinc2
- 1542 000180 C00F FFDE movff ??_isr+14,postinc2
- 1543 000184 C010 FFDE movff ??_isr+15,postinc2
- 1544
- 1545 ;main.c: 131: keypresses |= (keys_data[i] && !(keys_data[i] & 0xFFFFFF00))<<i;
- 1546 000188 0E00 movlw 0
- 1547 00018A 6E27 movwf _isr$595,c
- 1548 00018C 502A movf isr@i,w,c
- 1549 00018E 0D04 mullw 4
- 1550 000190 0E62 movlw low _keys_data
- 1551 000192 24F3 addwf prodl,w,c
- 1552 000194 6ED9 movwf fsr2l,c
- 1553 000196 0E00 movlw high _keys_data
- 1554 000198 20F4 addwfc prodh,w,c
- 1555 00019A 6EDA movwf fsr2h,c
- 1556 00019C 50DE movf postinc2,w,c
- 1557 00019E 10DE iorwf postinc2,w,c
- 1558 0001A0 10DE iorwf postinc2,w,c
- 1559 0001A2 10DE iorwf postinc2,w,c
- 1560 0001A4 B4D8 btfsc status,2,c
- 1561 0001A6 D01C goto i2l62
- 1562 0001A8 502A movf isr@i,w,c
- 1563 0001AA 0D04 mullw 4
- 1564 0001AC 0E62 movlw low _keys_data
- 1565 0001AE 24F3 addwf prodl,w,c
- 1566 0001B0 6ED9 movwf fsr2l,c
- 1567 0001B2 0E00 movlw high _keys_data
- 1568 0001B4 20F4 addwfc prodh,w,c
- 1569 0001B6 6EDA movwf fsr2h,c
- 1570 0001B8 0E00 movlw 0
- 1571 0001BA 14DE andwf postinc2,w,c
- 1572 0001BC 6E01 movwf ??_isr& (0+255),c
- 1573 0001BE 0EFF movlw 255
- 1574 0001C0 14DE andwf postinc2,w,c
- 1575 0001C2 6E02 movwf (??_isr+1)& (0+255),c
- 1576 0001C4 0EFF movlw 255
- 1577 0001C6 14DE andwf postinc2,w,c
- 1578 0001C8 6E03 movwf (??_isr+2)& (0+255),c
- 1579 0001CA 0EFF movlw 255
- 1580 0001CC 14DE andwf postinc2,w,c
- 1581 0001CE 6E04 movwf (??_isr+3)& (0+255),c
- 1582 0001D0 5001 movf ??_isr,w,c
- 1583 0001D2 1002 iorwf ??_isr+1,w,c
- 1584 0001D4 1003 iorwf ??_isr+2,w,c
- 1585 0001D6 1004 iorwf ??_isr+3,w,c
- 1586 0001D8 A4D8 btfss status,2,c
- 1587 0001DA D002 goto i2l62
- 1588 0001DC 0E01 movlw 1
- 1589 0001DE 6E27 movwf _isr$595,c
- 1590 0001E0 i2l62:
- 1591 0001E0 C02A F001 movff isr@i,??_isr
- 1592 0001E4 5027 movf _isr$595,w,c
- 1593 0001E6 6E02 movwf (??_isr+1)& (0+255),c
- 1594 0001E8 6A03 clrf (??_isr+2)& (0+255),c
- 1595 0001EA 2A01 incf ??_isr,f,c
- 1596 0001EC D003 goto i2u42_44
- 1597 0001EE i2u42_45:
- 1598 0001EE 90D8 bcf status,0,c
- 1599 0001F0 3602 rlcf ??_isr+1,f,c
- 1600 0001F2 3603 rlcf ??_isr+2,f,c
- 1601 0001F4 i2u42_44:
- 1602 0001F4 2E01 decfsz ??_isr,f,c
- 1603 0001F6 D7FB goto i2u42_45
- 1604 0001F8 5002 movf ??_isr+1,w,c
- 1605 0001FA 0100 movlb 0 ; () banked
- 1606 0001FC 1360 iorwf _keypresses& (0+255),f,b ;volatile
- 1607 0001FE 5003 movf ??_isr+2,w,c
- 1608 000200 1361 iorwf (_keypresses+1)& (0+255),f,b ;volatile
- 1609
- 1610 ; BSR set to: 0
- 1611 ;main.c: 132: keypresses |= (keys_data[i + 8] && !(keys_data[i + 8] & 0xFFFFFF00))<<(i +
+ 1116 ;rs232.c: 43: RCSTA2bits.CREN = 1;
+ 1117 000916 8871 bsf 3953,4,c ;volatile
+ 1118
+ 1119 ;rs232.c: 44: TXSTA2bits.TXEN = 1;
+ 1120 000918 8A72 bsf 3954,5,c ;volatile
+ 1121 00091A 0012 return ;funcret
+ 1122 00091C __end_of_eusart2_init:
+ 1123 opt stack 0
+ 1124 tblptru equ 0xFF8
+ 1125 tblptrh equ 0xFF7
+ 1126 tblptrl equ 0xFF6
+ 1127 tablat equ 0xFF5
+ 1128 intcon equ 0xFF2
+ 1129 postinc0 equ 0xFEE
+ 1130 wreg equ 0xFE8
+ 1131 indf2 equ 0xFDF
+ 1132 postinc2 equ 0xFDE
+ 1133 postdec2 equ 0xFDD
+ 1134 fsr2h equ 0xFDA
+ 1135 fsr2l equ 0xFD9
+ 1136 status equ 0xFD8
+ 1137
+ 1138 ;; *************** function _eusart1_init *****************
+ 1139 ;; Defined at:
+ 1140 ;; line 4 in file "rs232.c"
+ 1141 ;; Parameters: Size Location Type
+ 1142 ;; None
+ 1143 ;; Auto vars: Size Location Type
+ 1144 ;; None
+ 1145 ;; Return value: Size Location Type
+ 1146 ;; 1 wreg void
+ 1147 ;; Registers used:
+ 1148 ;; wreg, status,2
+ 1149 ;; Tracked objects:
+ 1150 ;; On entry : 0/0
+ 1151 ;; On exit : 0/0
+ 1152 ;; Unchanged: 0/0
+ 1153 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 1154 ;; Params: 0 0 0 0 0 0 0
+ 1155 ;; Locals: 0 0 0 0 0 0 0
+ 1156 ;; Temps: 0 0 0 0 0 0 0
+ 1157 ;; Totals: 0 0 0 0 0 0 0
+ 1158 ;;Total ram usage: 0 bytes
+ 1159 ;; Hardware stack levels used: 1
+ 1160 ;; Hardware stack levels required when called: 1
+ 1161 ;; This function calls:
+ 1162 ;; Nothing
+ 1163 ;; This function is called by:
+ 1164 ;; _init_hw
+ 1165 ;; This function uses a non-reentrant model
+ 1166 ;;
+ 1167
+ 1168 psect text7
+ 1169 00091C __ptext7:
+ 1170 opt stack 0
+ 1171 00091C _eusart1_init:
+ 1172 opt stack 28
+ 1173
+ 1174 ;rs232.c: 7: TXSTA1bits.SYNC = 0;
+ 1175
+ 1176 ;incstack = 0
+ 1177 00091C 98AC bcf 4012,4,c ;volatile
+ 1178
+ 1179 ;rs232.c: 8: TXSTA1bits.TX9 = 0;
+ 1180 00091E 9CAC bcf 4012,6,c ;volatile
+ 1181
+ 1182 ;rs232.c: 11: RCSTA1bits.SPEN = 1;
+ 1183 000920 8EAB bsf 4011,7,c ;volatile
+ 1184
+ 1185 ;rs232.c: 12: SPBRG1 = 31;
+ 1186 000922 0E1F movlw 31
+ 1187 000924 6EAF movwf 4015,c ;volatile
+ 1188
+ 1189 ;rs232.c: 13: SPBRGH1 = 0;
+ 1190 000926 0E00 movlw 0
+ 1191 000928 6EB0 movwf 4016,c ;volatile
+ 1192
+ 1193 ;rs232.c: 14: TXSTA1bits.BRGH = 0;
+ 1194 00092A 94AC bcf 4012,2,c ;volatile
+ 1195
+ 1196 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0;
+ 1197 00092C 96B8 bcf 4024,3,c ;volatile
+ 1198
+ 1199 ;rs232.c: 18: TRISCbits.TRISC7 = 1;
+ 1200 00092E 8E94 bsf 3988,7,c ;volatile
+ 1201
+ 1202 ;rs232.c: 19: TRISCbits.TRISC6 = 1;
+ 1203 000930 8C94 bsf 3988,6,c ;volatile
+ 1204
+ 1205 ;rs232.c: 21: RCSTA1bits.CREN = 1;
+ 1206 000932 88AB bsf 4011,4,c ;volatile
+ 1207
+ 1208 ;rs232.c: 22: TXSTA1bits.TXEN = 1;
+ 1209 000934 8AAC bsf 4012,5,c ;volatile
+ 1210 000936 0012 return ;funcret
+ 1211 000938 __end_of_eusart1_init:
+ 1212 opt stack 0
+ 1213 tblptru equ 0xFF8
+ 1214 tblptrh equ 0xFF7
+ 1215 tblptrl equ 0xFF6
+ 1216 tablat equ 0xFF5
+ 1217 intcon equ 0xFF2
+ 1218 postinc0 equ 0xFEE
+ 1219 wreg equ 0xFE8
+ 1220 indf2 equ 0xFDF
+ 1221 postinc2 equ 0xFDE
+ 1222 postdec2 equ 0xFDD
+ 1223 fsr2h equ 0xFDA
+ 1224 fsr2l equ 0xFD9
+ 1225 status equ 0xFD8
+ 1226
+ 1227 ;; *************** function _eusart_write_midi *****************
+ 1228 ;; Defined at:
+ 1229 ;; line 276 in file "main.c"
+ 1230 ;; Parameters: Size Location Type
+ 1231 ;; pkt 2 42[COMRAM] PTR const struct .
+ 1232 ;; -> main@message(7), main@conf_message(7),
+ 1233 ;; Auto vars: Size Location Type
+ 1234 ;; data 2 48[COMRAM] PTR unsigned char
+ 1235 ;; -> message.data(4), main@message(7), conf_message.data(4), main@conf_message(7),
+ 1236 ;; length 2 46[COMRAM] unsigned int
+ 1237 ;; Return value: Size Location Type
+ 1238 ;; 2 42[COMRAM] int
+ 1239 ;; Registers used:
+ 1240 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack
+ 1241 ;; Tracked objects:
+ 1242 ;; On entry : 0/0
+ 1243 ;; On exit : 0/0
+ 1244 ;; Unchanged: 0/0
+ 1245 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 1246 ;; Params: 2 0 0 0 0 0 0
+ 1247 ;; Locals: 4 0 0 0 0 0 0
+ 1248 ;; Temps: 2 0 0 0 0 0 0
+ 1249 ;; Totals: 8 0 0 0 0 0 0
+ 1250 ;;Total ram usage: 8 bytes
+ 1251 ;; Hardware stack levels used: 1
+ 1252 ;; Hardware stack levels required when called: 2
+ 1253 ;; This function calls:
+ 1254 ;; _eusart2_putch
+ 1255 ;; This function is called by:
+ 1256 ;; _main
+ 1257 ;; This function uses a non-reentrant model
+ 1258 ;;
+ 1259
+ 1260 psect text8
+ 1261 000762 __ptext8:
+ 1262 opt stack 0
+ 1263 000762 _eusart_write_midi:
+ 1264 opt stack 28
+ 1265
+ 1266 ;main.c: 278: size_t length;
+ 1267 ;main.c: 279: uint8_t *data;
+ 1268 ;main.c: 281: if (pkt == (0)) {
+ 1269
+ 1270 ;incstack = 0
+ 1271 000762 502B movf eusart_write_midi@pkt,w,c
+ 1272 000764 102C iorwf eusart_write_midi@pkt+1,w,c
+ 1273 000766 B4D8 btfsc status,2,c
+ 1274 000768 0012 return
+ 1275
+ 1276 ;main.c: 283: }
+ 1277 ;main.c: 285: length = pkt->data_size;
+ 1278
+ 1279 ;main.c: 282: return -1;
+ 1280 ; Return value of _eusart_write_midi is never used
+ 1281 00076A EE20 F001 lfsr 2,1
+ 1282 00076E 502B movf eusart_write_midi@pkt,w,c
+ 1283 000770 26D9 addwf fsr2l,f,c
+ 1284 000772 502C movf eusart_write_midi@pkt+1,w,c
+ 1285 000774 22DA addwfc fsr2h,f,c
+ 1286 000776 CFDE F02F movff postinc2,eusart_write_midi@length
+ 1287 00077A CFDD F030 movff postdec2,eusart_write_midi@length+1
+ 1288
+ 1289 ;main.c: 286: data = (uint8_t *) pkt->data;
+ 1290 00077E 0E03 movlw 3
+ 1291 000780 242B addwf eusart_write_midi@pkt,w,c
+ 1292 000782 6E31 movwf eusart_write_midi@data,c
+ 1293 000784 0E00 movlw 0
+ 1294 000786 202C addwfc eusart_write_midi@pkt+1,w,c
+ 1295 000788 6E32 movwf eusart_write_midi@data+1,c
+ 1296
+ 1297 ;main.c: 288: eusart2_putch((char)((pkt->status << 4) | pkt->channel));
+ 1298 00078A C02B FFD9 movff eusart_write_midi@pkt,fsr2l
+ 1299 00078E C02C FFDA movff eusart_write_midi@pkt+1,fsr2h
+ 1300 000792 38DF swapf indf2,w,c
+ 1301 000794 0B0F andlw 15
+ 1302 000796 6E2D movwf ??_eusart_write_midi& (0+255),c
+ 1303 000798 C02B FFD9 movff eusart_write_midi@pkt,fsr2l
+ 1304 00079C C02C FFDA movff eusart_write_midi@pkt+1,fsr2h
+ 1305 0007A0 50DF movf indf2,w,c
+ 1306 0007A2 0B0F andlw 15
+ 1307 0007A4 6E2E movwf (??_eusart_write_midi+1)& (0+255),c
+ 1308 0007A6 382E swapf ??_eusart_write_midi+1,w,c
+ 1309 0007A8 0BF0 andlw 240
+ 1310 0007AA 102D iorwf ??_eusart_write_midi,w,c
+ 1311 0007AC ECA9 F004 call _eusart2_putch
+ 1312
+ 1313 ;main.c: 290: while (length--) {
+ 1314 0007B0 D009 goto l81
+ 1315 0007B2 l1100:
+ 1316
+ 1317 ;main.c: 291: eusart2_putch((char) *(data++));
+ 1318 0007B2 C031 FFD9 movff eusart_write_midi@data,fsr2l
+ 1319 0007B6 C032 FFDA movff eusart_write_midi@data+1,fsr2h
+ 1320 0007BA 50DF movf indf2,w,c
+ 1321 0007BC ECA9 F004 call _eusart2_putch
+ 1322 0007C0 4A31 infsnz eusart_write_midi@data,f,c
+ 1323 0007C2 2A32 incf eusart_write_midi@data+1,f,c
+ 1324 0007C4 l81:
+ 1325 0007C4 062F decf eusart_write_midi@length,f,c
+ 1326 0007C6 A0D8 btfss status,0,c
+ 1327 0007C8 0630 decf eusart_write_midi@length+1,f,c
+ 1328 0007CA 282F incf eusart_write_midi@length,w,c
+ 1329 0007CC E1F2 bnz l1100
+ 1330 0007CE 2830 incf eusart_write_midi@length+1,w,c
+ 1331 0007D0 B4D8 btfsc status,2,c
+ 1332 0007D2 0012 return
+ 1333 0007D4 D7EE goto l82
+ 1334 0007D6 __end_of_eusart_write_midi:
+ 1335 opt stack 0
+ 1336 tblptru equ 0xFF8
+ 1337 tblptrh equ 0xFF7
+ 1338 tblptrl equ 0xFF6
+ 1339 tablat equ 0xFF5
+ 1340 intcon equ 0xFF2
+ 1341 postinc0 equ 0xFEE
+ 1342 wreg equ 0xFE8
+ 1343 indf2 equ 0xFDF
+ 1344 postinc2 equ 0xFDE
+ 1345 postdec2 equ 0xFDD
+ 1346 fsr2h equ 0xFDA
+ 1347 fsr2l equ 0xFD9
+ 1348 status equ 0xFD8
+ 1349
+ 1350 ;; *************** function _eusart2_putch *****************
+ 1351 ;; Defined at:
+ 1352 ;; line 53 in file "rs232.c"
+ 1353 ;; Parameters: Size Location Type
+ 1354 ;; c 1 wreg unsigned char
+ 1355 ;; Auto vars: Size Location Type
+ 1356 ;; c 1 41[COMRAM] unsigned char
+ 1357 ;; Return value: Size Location Type
+ 1358 ;; 1 wreg void
+ 1359 ;; Registers used:
+ 1360 ;; wreg
+ 1361 ;; Tracked objects:
+ 1362 ;; On entry : 0/0
+ 1363 ;; On exit : 0/0
+ 1364 ;; Unchanged: 0/0
+ 1365 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 1366 ;; Params: 0 0 0 0 0 0 0
+ 1367 ;; Locals: 1 0 0 0 0 0 0
+ 1368 ;; Temps: 0 0 0 0 0 0 0
+ 1369 ;; Totals: 1 0 0 0 0 0 0
+ 1370 ;;Total ram usage: 1 bytes
+ 1371 ;; Hardware stack levels used: 1
+ 1372 ;; Hardware stack levels required when called: 1
+ 1373 ;; This function calls:
+ 1374 ;; Nothing
+ 1375 ;; This function is called by:
+ 1376 ;; _eusart_write_midi
+ 1377 ;; This function uses a non-reentrant model
+ 1378 ;;
+ 1379
+ 1380 psect text9
+ 1381 000952 __ptext9:
+ 1382 opt stack 0
+ 1383 000952 _eusart2_putch:
+ 1384 opt stack 28
+ 1385
+ 1386 ;incstack = 0
+ 1387 ;eusart2_putch@c stored from wreg
+ 1388 000952 6E2A movwf eusart2_putch@c,c
+ 1389 000954
+ 1390 ;rs232.c: 55: while (!TX2IF);
+ 1391 000954 A8A4 btfss 4004,4,c ;volatile
+ 1392 000956 D7FE goto l1028
+ 1393
+ 1394 ;rs232.c: 56: TX2REG = c;
+ 1395 000958 C02A FF73 movff eusart2_putch@c,3955 ;volatile
+ 1396 00095C 0012 return ;funcret
+ 1397 00095E __end_of_eusart2_putch:
+ 1398 opt stack 0
+ 1399 tblptru equ 0xFF8
+ 1400 tblptrh equ 0xFF7
+ 1401 tblptrl equ 0xFF6
+ 1402 tablat equ 0xFF5
+ 1403 intcon equ 0xFF2
+ 1404 postinc0 equ 0xFEE
+ 1405 wreg equ 0xFE8
+ 1406 indf2 equ 0xFDF
+ 1407 postinc2 equ 0xFDE
+ 1408 postdec2 equ 0xFDD
+ 1409 fsr2h equ 0xFDA
+ 1410 fsr2l equ 0xFD9
+ 1411 status equ 0xFD8
+ 1412
+ 1413 ;; *************** function _isr *****************
+ 1414 ;; Defined at:
+ 1415 ;; line 114 in file "main.c"
+ 1416 ;; Parameters: Size Location Type
+ 1417 ;; None
+ 1418 ;; Auto vars: Size Location Type
+ 1419 ;; i 1 40[COMRAM] unsigned char
+ 1420 ;; data_b 1 37[COMRAM] unsigned char
+ 1421 ;; data_a 1 36[COMRAM] unsigned char
+ 1422 ;; Return value: Size Location Type
+ 1423 ;; 1 wreg void
+ 1424 ;; Registers used:
+ 1425 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
+ 1426 ;; Tracked objects:
+ 1427 ;; On entry : 0/0
+ 1428 ;; On exit : 0/0
+ 1429 ;; Unchanged: 0/0
+ 1430 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
+ 1431 ;; Params: 0 0 0 0 0 0 0
+ 1432 ;; Locals: 5 0 0 0 0 0 0
+ 1433 ;; Temps: 36 0 0 0 0 0 0
+ 1434 ;; Totals: 41 0 0 0 0 0 0
+ 1435 ;;Total ram usage: 41 bytes
+ 1436 ;; Hardware stack levels used: 1
+ 1437 ;; This function calls:
+ 1438 ;; Nothing
+ 1439 ;; This function is called by:
+ 1440 ;; Interrupt level 2
+ 1441 ;; This function uses a non-reentrant model
+ 1442 ;;
+ 1443
+ 1444 psect intcode
+ 1445 000008 __pintcode:
+ 1446 opt stack 0
+ 1447 000008 _isr:
+ 1448 opt stack 28
+ 1449
+ 1450 ;incstack = 0
+ 1451 000008 8235 bsf btemp,1,c ;set compiler interrupt flag (level 2)
+ 1452 00000A CFFA F013 movff pclath,??_isr+18
+ 1453 00000E CFFB F014 movff pclatu,??_isr+19
+ 1454 000012 CFE9 F015 movff fsr0l,??_isr+20
+ 1455 000016 CFEA F016 movff fsr0h,??_isr+21
+ 1456 00001A CFE1 F017 movff fsr1l,??_isr+22
+ 1457 00001E CFE2 F018 movff fsr1h,??_isr+23
+ 1458 000022 CFD9 F019 movff fsr2l,??_isr+24
+ 1459 000026 CFDA F01A movff fsr2h,??_isr+25
+ 1460 00002A CFF3 F01B movff prodl,??_isr+26
+ 1461 00002E CFF4 F01C movff prodh,??_isr+27
+ 1462 000032 CFF6 F01D movff tblptrl,??_isr+28
+ 1463 000036 CFF7 F01E movff tblptrh,??_isr+29
+ 1464 00003A CFF8 F01F movff tblptru,??_isr+30
+ 1465 00003E CFF5 F020 movff tablat,??_isr+31
+ 1466 000042 C035 F021 movff btemp,??_isr+32
+ 1467 000046 C036 F022 movff btemp+1,??_isr+33
+ 1468 00004A C037 F023 movff btemp+2,??_isr+34
+ 1469 00004E C038 F024 movff btemp+3,??_isr+35
+ 1470
+ 1471 ;main.c: 116: unsigned char i, data_a, data_b;
+ 1472 ;main.c: 122: if (PIR1bits.TMR2IF) {
+ 1473 000052 A29E btfss 3998,1,c ;volatile
+ 1474 000054 D12F goto i2l55
+ 1475
+ 1476 ;main.c: 123: data_a = PORTA;
+ 1477 000056 CF80 F025 movff 3968,isr@data_a ;volatile
+ 1478
+ 1479 ;main.c: 124: data_b = PORTB;
+ 1480 00005A CF81 F026 movff 3969,isr@data_b ;volatile
+ 1481
+ 1482 ;main.c: 126: i = 7;
+ 1483 00005E 0E07 movlw 7
+ 1484 000060 6E29 movwf isr@i,c
+ 1485 000062
+ 1486 ;main.c: 129: keys_data[i] = (keys_data[i] << 1) | ((data_a >> i) & 0x01);
+ 1487 000062 5029 movf isr@i,w,c
+ 1488 000064 0D04 mullw 4
+ 1489 000066 0E62 movlw low _keys_data
+ 1490 000068 24F3 addwf prodl,w,c
+ 1491 00006A 6ED9 movwf fsr2l,c
+ 1492 00006C 0E00 movlw high _keys_data
+ 1493 00006E 20F4 addwfc prodh,w,c
+ 1494 000070 6EDA movwf fsr2h,c
+ 1495 000072 CFDE F001 movff postinc2,??_isr
+ 1496 000076 CFDE F002 movff postinc2,??_isr+1
+ 1497 00007A CFDE F003 movff postinc2,??_isr+2
+ 1498 00007E CFDE F004 movff postinc2,??_isr+3
+ 1499 000082 90D8 bcf status,0,c
+ 1500 000084 3401 rlcf ??_isr,w,c
+ 1501 000086 6E05 movwf (??_isr+4)& (0+255),c
+ 1502 000088 3402 rlcf ??_isr+1,w,c
+ 1503 00008A 6E06 movwf (??_isr+5)& (0+255),c
+ 1504 00008C 3403 rlcf ??_isr+2,w,c
+ 1505 00008E 6E07 movwf (??_isr+6)& (0+255),c
+ 1506 000090 3404 rlcf ??_isr+3,w,c
+ 1507 000092 6E08 movwf (??_isr+7)& (0+255),c
+ 1508 000094 C029 F009 movff isr@i,??_isr+8
+ 1509 000098 C025 F00A movff isr@data_a,??_isr+9
+ 1510 00009C 2A09 incf ??_isr+8,f,c
+ 1511 00009E D002 goto i2u34_44
+ 1512 0000A0 i2u34_45:
+ 1513 0000A0 90D8 bcf status,0,c
+ 1514 0000A2 320A rrcf ??_isr+9,f,c
+ 1515 0000A4 i2u34_44:
+ 1516 0000A4 2E09 decfsz ??_isr+8,f,c
+ 1517 0000A6 D7FC goto i2u34_45
+ 1518 0000A8 0E01 movlw 1
+ 1519 0000AA 160A andwf ??_isr+9,f,c
+ 1520 0000AC 500A movf ??_isr+9,w,c
+ 1521 0000AE 1005 iorwf ??_isr+4,w,c
+ 1522 0000B0 6E0B movwf (??_isr+10)& (0+255),c
+ 1523 0000B2 5006 movf ??_isr+5,w,c
+ 1524 0000B4 6E0C movwf (??_isr+11)& (0+255),c
+ 1525 0000B6 5007 movf ??_isr+6,w,c
+ 1526 0000B8 6E0D movwf (??_isr+12)& (0+255),c
+ 1527 0000BA 5008 movf ??_isr+7,w,c
+ 1528 0000BC 6E0E movwf (??_isr+13)& (0+255),c
+ 1529 0000BE 5029 movf isr@i,w,c
+ 1530 0000C0 0D04 mullw 4
+ 1531 0000C2 0E62 movlw low _keys_data
+ 1532 0000C4 24F3 addwf prodl,w,c
+ 1533 0000C6 6ED9 movwf fsr2l,c
+ 1534 0000C8 0E00 movlw high _keys_data
+ 1535 0000CA 20F4 addwfc prodh,w,c
+ 1536 0000CC 6EDA movwf fsr2h,c
+ 1537 0000CE C00B FFDE movff ??_isr+10,postinc2
+ 1538 0000D2 C00C FFDE movff ??_isr+11,postinc2
+ 1539 0000D6 C00D FFDE movff ??_isr+12,postinc2
+ 1540 0000DA C00E FFDE movff ??_isr+13,postinc2
+ 1541
+ 1542 ;main.c: 130: keys_data[i + 8] = (keys_data[i + 8] << 1) | ((data_b >> i) & 0x01);
+ 1543 0000DE 5029 movf isr@i,w,c
+ 1544 0000E0 6E01 movwf ??_isr& (0+255),c
+ 1545 0000E2 6A02 clrf (??_isr+1)& (0+255),c
+ 1546 0000E4 90D8 bcf status,0,c
+ 1547 0000E6 3601 rlcf ??_isr,f,c
+ 1548 0000E8 3602 rlcf ??_isr+1,f,c
+ 1549 0000EA 90D8 bcf status,0,c
+ 1550 0000EC 3601 rlcf ??_isr,f,c
+ 1551 0000EE 3602 rlcf ??_isr+1,f,c
+ 1552 0000F0 0E20 movlw 32
+ 1553 0000F2 2601 addwf ??_isr,f,c
+ 1554 0000F4 0E00 movlw 0
+ 1555 0000F6 2202 addwfc ??_isr+1,f,c
+ 1556 0000F8 0E62 movlw low _keys_data
+ 1557 0000FA 2401 addwf ??_isr,w,c
+ 1558 0000FC 6ED9 movwf fsr2l,c
+ 1559 0000FE 0E00 movlw high _keys_data
+ 1560 000100 2002 addwfc ??_isr+1,w,c
+ 1561 000102 6EDA movwf fsr2h,c
+ 1562 000104 CFDE F003 movff postinc2,??_isr+2
+ 1563 000108 CFDE F004 movff postinc2,??_isr+3
+ 1564 00010C CFDE F005 movff postinc2,??_isr+4
+ 1565 000110 CFDE F006 movff postinc2,??_isr+5
+ 1566 000114 90D8 bcf status,0,c
+ 1567 000116 3403 rlcf ??_isr+2,w,c
+ 1568 000118 6E07 movwf (??_isr+6)& (0+255),c
+ 1569 00011A 3404 rlcf ??_isr+3,w,c
+ 1570 00011C 6E08 movwf (??_isr+7)& (0+255),c
+ 1571 00011E 3405 rlcf ??_isr+4,w,c
+ 1572 000120 6E09 movwf (??_isr+8)& (0+255),c
+ 1573 000122 3406 rlcf ??_isr+5,w,c
+ 1574 000124 6E0A movwf (??_isr+9)& (0+255),c
+ 1575 000126 C029 F00B movff isr@i,??_isr+10
+ 1576 00012A C026 F00C movff isr@data_b,??_isr+11
+ 1577 00012E 2A0B incf ??_isr+10,f,c
+ 1578 000130 D002 goto i2u35_44
+ 1579 000132 i2u35_45:
+ 1580 000132 90D8 bcf status,0,c
+ 1581 000134 320C rrcf ??_isr+11,f,c
+ 1582 000136 i2u35_44:
+ 1583 000136 2E0B decfsz ??_isr+10,f,c
+ 1584 000138 D7FC goto i2u35_45
+ 1585 00013A 0E01 movlw 1
+ 1586 00013C 160C andwf ??_isr+11,f,c
+ 1587 00013E 500C movf ??_isr+11,w,c
+ 1588 000140 1007 iorwf ??_isr+6,w,c
+ 1589 000142 6E0D movwf (??_isr+12)& (0+255),c
+ 1590 000144 5008 movf ??_isr+7,w,c
+ 1591 000146 6E0E movwf (??_isr+13)& (0+255),c
+ 1592 000148 5009 movf ??_isr+8,w,c
+ 1593 00014A 6E0F movwf (??_isr+14)& (0+255),c
+ 1594 00014C 500A movf ??_isr+9,w,c
+ 1595 00014E 6E10 movwf (??_isr+15)& (0+255),c
+ 1596 000150 5029 movf isr@i,w,c
+ 1597 000152 6E11 movwf (??_isr+16)& (0+255),c
+ 1598 000154 6A12 clrf (??_isr+17)& (0+255),c
+ 1599 000156 90D8 bcf status,0,c
+ 1600 000158 3611 rlcf ??_isr+16,f,c
+ 1601 00015A 3612 rlcf ??_isr+17,f,c
+ 1602 00015C 90D8 bcf status,0,c
+ 1603 00015E 3611 rlcf ??_isr+16,f,c
+ 1604 000160 3612 rlcf ??_isr+17,f,c
+ 1605 000162 0E20 movlw 32
+ 1606 000164 2611 addwf ??_isr+16,f,c
+ 1607 000166 0E00 movlw 0
+ 1608 000168 2212 addwfc ??_isr+17,f,c
+ 1609 00016A 0E62 movlw low _keys_data
+ 1610 00016C 2411 addwf ??_isr+16,w,c
+ 1611 00016E 6ED9 movwf fsr2l,c
+ 1612 000170 0E00 movlw high _keys_data
+ 1613 000172 2012 addwfc ??_isr+17,w,c
+ 1614 000174 6EDA movwf fsr2h,c
+ 1615 000176 C00D FFDE movff ??_isr+12,postinc2
+ 1616 00017A C00E FFDE movff ??_isr+13,postinc2
+ 1617 00017E C00F FFDE movff ??_isr+14,postinc2
+ 1618 000182 C010 FFDE movff ??_isr+15,postinc2
+ 1619
+ 1620 ;main.c: 135: keypresses |= (keys_data[i] && !(keys_data[i] & 0xFFFFFF00))<<i;
+ 1621 000186 0E00 movlw 0
+ 1622 000188 6E27 movwf _isr$304,c
+ 1623 00018A 5029 movf isr@i,w,c
+ 1624 00018C 0D04 mullw 4
+ 1625 00018E 0E62 movlw low _keys_data
+ 1626 000190 24F3 addwf prodl,w,c
+ 1627 000192 6ED9 movwf fsr2l,c
+ 1628 000194 0E00 movlw high _keys_data
+ 1629 000196 20F4 addwfc prodh,w,c
+ 1630 000198 6EDA movwf fsr2h,c
+ 1631 00019A 50DE movf postinc2,w,c
+ 1632 00019C 10DE iorwf postinc2,w,c
+ 1633 00019E 10DE iorwf postinc2,w,c
+ 1634 0001A0 10DE iorwf postinc2,w,c
+ 1635 0001A2 B4D8 btfsc status,2,c
+ 1636 0001A4 D01C goto i2l58
+ 1637 0001A6 5029 movf isr@i,w,c
+ 1638 0001A8 0D04 mullw 4
+ 1639 0001AA 0E62 movlw low _keys_data
+ 1640 0001AC 24F3 addwf prodl,w,c
+ 1641 0001AE 6ED9 movwf fsr2l,c
+ 1642 0001B0 0E00 movlw high _keys_data
+ 1643 0001B2 20F4 addwfc prodh,w,c
+ 1644 0001B4 6EDA movwf fsr2h,c
+ 1645 0001B6 0E00 movlw 0
+ 1646 0001B8 14DE andwf postinc2,w,c
+ 1647 0001BA 6E01 movwf ??_isr& (0+255),c
+ 1648 0001BC 0EFF movlw 255
+ 1649 0001BE 14DE andwf postinc2,w,c
+ 1650 0001C0 6E02 movwf (??_isr+1)& (0+255),c
+ 1651 0001C2 0EFF movlw 255
+ 1652 0001C4 14DE andwf postinc2,w,c
+ 1653 0001C6 6E03 movwf (??_isr+2)& (0+255),c
+ 1654 0001C8 0EFF movlw 255
+ 1655 0001CA 14DE andwf postinc2,w,c
+ 1656 0001CC 6E04 movwf (??_isr+3)& (0+255),c
+ 1657 0001CE 5001 movf ??_isr,w,c
+ 1658 0001D0 1002 iorwf ??_isr+1,w,c
+ 1659 0001D2 1003 iorwf ??_isr+2,w,c
+ 1660 0001D4 1004 iorwf ??_isr+3,w,c
+ 1661 0001D6 A4D8 btfss status,2,c
+ 1662 0001D8 D002 goto i2l58
+ 1663 0001DA 0E01 movlw 1
+ 1664 0001DC 6E27 movwf _isr$304,c
+ 1665 0001DE i2l58:
+ 1666 0001DE C029 F001 movff isr@i,??_isr
+ 1667 0001E2 5027 movf _isr$304,w,c
+ 1668 0001E4 6E02 movwf (??_isr+1)& (0+255),c
+ 1669 0001E6 6A03 clrf (??_isr+2)& (0+255),c
+ 1670 0001E8 2A01 incf ??_isr,f,c
+ 1671 0001EA D003 goto i2u38_44
+ 1672 0001EC i2u38_45:
+ 1673 0001EC 90D8 bcf status,0,c
+ 1674 0001EE 3602 rlcf ??_isr+1,f,c
+ 1675 0001F0 3603 rlcf ??_isr+2,f,c
+ 1676 0001F2 i2u38_44:
+ 1677 0001F2 2E01 decfsz ??_isr,f,c
+ 1678 0001F4 D7FB goto i2u38_45
+ 1679 0001F6 5002 movf ??_isr+1,w,c
+ 1680 0001F8 0100 movlb 0 ; () banked
+ 1681 0001FA 1360 iorwf _keypresses& (0+255),f,b ;volatile
+ 1682 0001FC 5003 movf ??_isr+2,w,c
+ 1683 0001FE 1361 iorwf (_keypresses+1)& (0+255),f,b ;volatile
+ 1684
+ 1685 ; BSR set to: 0
+ 1686 ;main.c: 136: keypresses |= (keys_data[i + 8] && !(keys_data[i + 8] & 0xFFFFFF00))<<(i +
+ 8);
- 1612 000202 0E00 movlw 0
- 1613 000204 6E28 movwf _isr$596,c
- 1614
- 1615 ; BSR set to: 0
- 1616 000206 502A movf isr@i,w,c
- 1617 000208 6E01 movwf ??_isr& (0+255),c
- 1618 00020A 6A02 clrf (??_isr+1)& (0+255),c
- 1619 00020C 90D8 bcf status,0,c
- 1620 00020E 3601 rlcf ??_isr,f,c
- 1621 000210 3602 rlcf ??_isr+1,f,c
- 1622 000212 90D8 bcf status,0,c
- 1623 000214 3601 rlcf ??_isr,f,c
- 1624 000216 3602 rlcf ??_isr+1,f,c
- 1625 000218 0E20 movlw 32
- 1626 00021A 2601 addwf ??_isr,f,c
- 1627 00021C 0E00 movlw 0
- 1628 00021E 2202 addwfc ??_isr+1,f,c
- 1629 000220 0E62 movlw low _keys_data
- 1630 000222 2401 addwf ??_isr,w,c
- 1631 000224 6ED9 movwf fsr2l,c
- 1632 000226 0E00 movlw high _keys_data
- 1633 000228 2002 addwfc ??_isr+1,w,c
- 1634 00022A 6EDA movwf fsr2h,c
- 1635 00022C 50DE movf postinc2,w,c
- 1636 00022E 10DE iorwf postinc2,w,c
- 1637 000230 10DE iorwf postinc2,w,c
- 1638 000232 10DE iorwf postinc2,w,c
- 1639 000234 B4D8 btfsc status,2,c
- 1640 000236 D027 goto i2l64
- 1641
- 1642 ; BSR set to: 0
- 1643 000238 502A movf isr@i,w,c
- 1644 00023A 6E01 movwf ??_isr& (0+255),c
- 1645 00023C 6A02 clrf (??_isr+1)& (0+255),c
- 1646 00023E 90D8 bcf status,0,c
- 1647 000240 3601 rlcf ??_isr,f,c
- 1648 000242 3602 rlcf ??_isr+1,f,c
- 1649 000244 90D8 bcf status,0,c
- 1650 000246 3601 rlcf ??_isr,f,c
- 1651 000248 3602 rlcf ??_isr+1,f,c
- 1652 00024A 0E20 movlw 32
- 1653 00024C 2601 addwf ??_isr,f,c
- 1654 00024E 0E00 movlw 0
- 1655 000250 2202 addwfc ??_isr+1,f,c
- 1656 000252 0E62 movlw low _keys_data
- 1657 000254 2401 addwf ??_isr,w,c
- 1658 000256 6ED9 movwf fsr2l,c
- 1659 000258 0E00 movlw high _keys_data
- 1660 00025A 2002 addwfc ??_isr+1,w,c
- 1661 00025C 6EDA movwf fsr2h,c
- 1662 00025E 0E00 movlw 0
- 1663 000260 14DE andwf postinc2,w,c
- 1664 000262 6E03 movwf (??_isr+2)& (0+255),c
- 1665 000264 0EFF movlw 255
- 1666 000266 14DE andwf postinc2,w,c
- 1667 000268 6E04 movwf (??_isr+3)& (0+255),c
- 1668 00026A 0EFF movlw 255
- 1669 00026C 14DE andwf postinc2,w,c
- 1670 00026E 6E05 movwf (??_isr+4)& (0+255),c
- 1671 000270 0EFF movlw 255
- 1672 000272 14DE andwf postinc2,w,c
- 1673 000274 6E06 movwf (??_isr+5)& (0+255),c
- 1674 000276 5003 movf ??_isr+2,w,c
- 1675 000278 1004 iorwf ??_isr+3,w,c
- 1676 00027A 1005 iorwf ??_isr+4,w,c
- 1677 00027C 1006 iorwf ??_isr+5,w,c
- 1678 00027E A4D8 btfss status,2,c
- 1679 000280 D002 goto i2l64
- 1680
- 1681 ; BSR set to: 0
- 1682 000282 0E01 movlw 1
- 1683 000284 6E28 movwf _isr$596,c
- 1684 000286 i2l64:
- 1685
- 1686 ; BSR set to: 0
- 1687
- 1688 ; BSR set to: 0
- 1689 000286 C02A F001 movff isr@i,??_isr
- 1690 00028A 0E08 movlw 8
- 1691 00028C 2601 addwf ??_isr,f,c
- 1692 00028E 5028 movf _isr$596,w,c
- 1693 000290 6E02 movwf (??_isr+1)& (0+255),c
- 1694 000292 6A03 clrf (??_isr+2)& (0+255),c
- 1695 000294 2A01 incf ??_isr,f,c
- 1696 000296 D003 goto i2u45_44
- 1697 000298 i2u45_45:
- 1698 000298 90D8 bcf status,0,c
- 1699 00029A 3602 rlcf ??_isr+1,f,c
- 1700 00029C 3603 rlcf ??_isr+2,f,c
- 1701 00029E i2u45_44:
- 1702 00029E 2E01 decfsz ??_isr,f,c
- 1703 0002A0 D7FB goto i2u45_45
- 1704 0002A2 5002 movf ??_isr+1,w,c
- 1705 0002A4 0100 movlb 0 ; () banked
- 1706 0002A6 1360 iorwf _keypresses& (0+255),f,b ;volatile
- 1707 0002A8 5003 movf ??_isr+2,w,c
- 1708 0002AA 1361 iorwf (_keypresses+1)& (0+255),f,b ;volatile
- 1709
- 1710 ; BSR set to: 0
- 1711 ;main.c: 134: } while (i--);
- 1712 0002AC 062A decf isr@i,f,c
- 1713 0002AE 282A incf isr@i,w,c
- 1714 0002B0 A4D8 btfss status,2,c
- 1715 0002B2 D6D8 goto i2l60
+ 1687 000200 0E00 movlw 0
+ 1688 000202 6E28 movwf _isr$305,c
+ 1689
+ 1690 ; BSR set to: 0
+ 1691 000204 5029 movf isr@i,w,c
+ 1692 000206 6E01 movwf ??_isr& (0+255),c
+ 1693 000208 6A02 clrf (??_isr+1)& (0+255),c
+ 1694 00020A 90D8 bcf status,0,c
+ 1695 00020C 3601 rlcf ??_isr,f,c
+ 1696 00020E 3602 rlcf ??_isr+1,f,c
+ 1697 000210 90D8 bcf status,0,c
+ 1698 000212 3601 rlcf ??_isr,f,c
+ 1699 000214 3602 rlcf ??_isr+1,f,c
+ 1700 000216 0E20 movlw 32
+ 1701 000218 2601 addwf ??_isr,f,c
+ 1702 00021A 0E00 movlw 0
+ 1703 00021C 2202 addwfc ??_isr+1,f,c
+ 1704 00021E 0E62 movlw low _keys_data
+ 1705 000220 2401 addwf ??_isr,w,c
+ 1706 000222 6ED9 movwf fsr2l,c
+ 1707 000224 0E00 movlw high _keys_data
+ 1708 000226 2002 addwfc ??_isr+1,w,c
+ 1709 000228 6EDA movwf fsr2h,c
+ 1710 00022A 50DE movf postinc2,w,c
+ 1711 00022C 10DE iorwf postinc2,w,c
+ 1712 00022E 10DE iorwf postinc2,w,c
+ 1713 000230 10DE iorwf postinc2,w,c
+ 1714 000232 B4D8 btfsc status,2,c
+ 1715 000234 D027 goto i2l60
1716
1717 ; BSR set to: 0
- 1718 ;main.c: 138: PORTDbits.RD4 = PORTAbits.RA0;
- 1719 0002B4 A080 btfss 3968,0,c ;volatile
- 1720 0002B6 D002 bra i2u47_45
- 1721 0002B8 8883 bsf 3971,4,c ;volatile
- 1722 0002BA D001 bra i2u47_47
- 1723 0002BC i2u47_45:
- 1724 0002BC 9883 bcf 3971,4,c ;volatile
- 1725 0002BE i2u47_47:
- 1726
- 1727 ;main.c: 139: PORTDbits.RD2 = (keys_data[0] && !(keys_data[0] & 0xFFFFFF00));
- 1728 0002BE 0E00 movlw 0
- 1729 0002C0 6E29 movwf _isr$605,c
- 1730 0002C2 0100 movlb 0 ; () banked
- 1731 0002C4 5162 movf _keys_data& (0+255),w,b ;volatile
- 1732 0002C6 1163 iorwf (_keys_data+1)& (0+255),w,b ;volatile
- 1733 0002C8 1164 iorwf (_keys_data+2)& (0+255),w,b ;volatile
- 1734 0002CA 1165 iorwf (_keys_data+3)& (0+255),w,b ;volatile
- 1735 0002CC B4D8 btfsc status,2,c
- 1736 0002CE D014 goto i2l67
- 1737
- 1738 ; BSR set to: 0
- 1739 0002D0 0E00 movlw 0
- 1740 0002D2 1562 andwf _keys_data& (0+255),w,b ;volatile
- 1741 0002D4 6E01 movwf ??_isr& (0+255),c
- 1742 0002D6 0EFF movlw 255
- 1743 0002D8 1563 andwf (_keys_data+1)& (0+255),w,b ;volatile
- 1744 0002DA 6E02 movwf (??_isr+1)& (0+255),c
- 1745 0002DC 0EFF movlw 255
- 1746 0002DE 1564 andwf (_keys_data+2)& (0+255),w,b ;volatile
- 1747 0002E0 6E03 movwf (??_isr+2)& (0+255),c
- 1748 0002E2 0EFF movlw 255
- 1749 0002E4 1565 andwf (_keys_data+3)& (0+255),w,b ;volatile
- 1750 0002E6 6E04 movwf (??_isr+3)& (0+255),c
- 1751 0002E8 5001 movf ??_isr,w,c
- 1752 0002EA 1002 iorwf ??_isr+1,w,c
- 1753 0002EC 1003 iorwf ??_isr+2,w,c
- 1754 0002EE 1004 iorwf ??_isr+3,w,c
- 1755 0002F0 A4D8 btfss status,2,c
- 1756 0002F2 D002 goto i2l67
- 1757
- 1758 ; BSR set to: 0
- 1759 0002F4 0E01 movlw 1
- 1760 0002F6 6E29 movwf _isr$605,c
- 1761 0002F8 i2l67:
+ 1718 000236 5029 movf isr@i,w,c
+ 1719 000238 6E01 movwf ??_isr& (0+255),c
+ 1720 00023A 6A02 clrf (??_isr+1)& (0+255),c
+ 1721 00023C 90D8 bcf status,0,c
+ 1722 00023E 3601 rlcf ??_isr,f,c
+ 1723 000240 3602 rlcf ??_isr+1,f,c
+ 1724 000242 90D8 bcf status,0,c
+ 1725 000244 3601 rlcf ??_isr,f,c
+ 1726 000246 3602 rlcf ??_isr+1,f,c
+ 1727 000248 0E20 movlw 32
+ 1728 00024A 2601 addwf ??_isr,f,c
+ 1729 00024C 0E00 movlw 0
+ 1730 00024E 2202 addwfc ??_isr+1,f,c
+ 1731 000250 0E62 movlw low _keys_data
+ 1732 000252 2401 addwf ??_isr,w,c
+ 1733 000254 6ED9 movwf fsr2l,c
+ 1734 000256 0E00 movlw high _keys_data
+ 1735 000258 2002 addwfc ??_isr+1,w,c
+ 1736 00025A 6EDA movwf fsr2h,c
+ 1737 00025C 0E00 movlw 0
+ 1738 00025E 14DE andwf postinc2,w,c
+ 1739 000260 6E03 movwf (??_isr+2)& (0+255),c
+ 1740 000262 0EFF movlw 255
+ 1741 000264 14DE andwf postinc2,w,c
+ 1742 000266 6E04 movwf (??_isr+3)& (0+255),c
+ 1743 000268 0EFF movlw 255
+ 1744 00026A 14DE andwf postinc2,w,c
+ 1745 00026C 6E05 movwf (??_isr+4)& (0+255),c
+ 1746 00026E 0EFF movlw 255
+ 1747 000270 14DE andwf postinc2,w,c
+ 1748 000272 6E06 movwf (??_isr+5)& (0+255),c
+ 1749 000274 5003 movf ??_isr+2,w,c
+ 1750 000276 1004 iorwf ??_isr+3,w,c
+ 1751 000278 1005 iorwf ??_isr+4,w,c
+ 1752 00027A 1006 iorwf ??_isr+5,w,c
+ 1753 00027C A4D8 btfss status,2,c
+ 1754 00027E D002 goto i2l60
+ 1755
+ 1756 ; BSR set to: 0
+ 1757 000280 0E01 movlw 1
+ 1758 000282 6E28 movwf _isr$305,c
+ 1759 000284 i2l60:
+ 1760
+ 1761 ; BSR set to: 0
1762
1763 ; BSR set to: 0
- 1764
- 1765 ; BSR set to: 0
- 1766 0002F8 B029 btfsc _isr$605,0,c
- 1767 0002FA D002 bra i2u50_45
- 1768 0002FC 9483 bcf 3971,2,c ;volatile
- 1769 0002FE D001 bra i2u50_46
- 1770 000300 i2u50_45:
- 1771 000300 8483 bsf 3971,2,c ;volatile
- 1772 000302 i2u50_46:
- 1773
- 1774 ;main.c: 143: PIR1bits.TMR2IF = 0;
- 1775 000302 929E bcf 3998,1,c ;volatile
- 1776 000304 i2l59:
- 1777
- 1778 ;main.c: 144: }
- 1779 ;main.c: 146: PORTDbits.RD3 = 1;
- 1780 000304 8683 bsf 3971,3,c ;volatile
- 1781 000306 C024 F037 movff ??_isr+35,btemp+3
- 1782 00030A C023 F036 movff ??_isr+34,btemp+2
- 1783 00030E C022 F035 movff ??_isr+33,btemp+1
- 1784 000312 C021 F034 movff ??_isr+32,btemp
- 1785 000316 C020 FFF5 movff ??_isr+31,tablat
- 1786 00031A C01F FFF8 movff ??_isr+30,tblptru
- 1787 00031E C01E FFF7 movff ??_isr+29,tblptrh
- 1788 000322 C01D FFF6 movff ??_isr+28,tblptrl
- 1789 000326 C01C FFF4 movff ??_isr+27,prodh
- 1790 00032A C01B FFF3 movff ??_isr+26,prodl
- 1791 00032E C01A FFDA movff ??_isr+25,fsr2h
- 1792 000332 C019 FFD9 movff ??_isr+24,fsr2l
- 1793 000336 C018 FFE2 movff ??_isr+23,fsr1h
- 1794 00033A C017 FFE1 movff ??_isr+22,fsr1l
- 1795 00033E C016 FFEA movff ??_isr+21,fsr0h
- 1796 000342 C015 FFE9 movff ??_isr+20,fsr0l
- 1797 000346 C014 FFFB movff ??_isr+19,pclatu
- 1798 00034A C013 FFFA movff ??_isr+18,pclath
- 1799 00034E 9234 bcf btemp,1,c ;clear compiler interrupt flag (level 2)
- 1800 000350 0011 retfie f
- 1801 000352 __end_of_isr:
- 1802 opt stack 0
- 1803 0000 pclatu equ 0xFFB
- 1804 pclath equ 0xFFA
- 1805 tblptru equ 0xFF8
- 1806 tblptrh equ 0xFF7
- 1807 tblptrl equ 0xFF6
- 1808 tablat equ 0xFF5
- 1809 prodh equ 0xFF4
- 1810 prodl equ 0xFF3
- 1811 intcon equ 0xFF2
- 1812 postinc0 equ 0xFEE
- 1813 fsr0h equ 0xFEA
- 1814 fsr0l equ 0xFE9
- 1815 wreg equ 0xFE8
- 1816 fsr1h equ 0xFE2
- 1817 fsr1l equ 0xFE1
- 1818 indf2 equ 0xFDF
- 1819 postinc2 equ 0xFDE
- 1820 postdec2 equ 0xFDD
- 1821 fsr2h equ 0xFDA
- 1822 fsr2l equ 0xFD9
- 1823 status equ 0xFD8
- 1824 pclatu equ 0xFFB
- 1825 pclath equ 0xFFA
- 1826 tblptru equ 0xFF8
- 1827 tblptrh equ 0xFF7
- 1828 tblptrl equ 0xFF6
- 1829 tablat equ 0xFF5
- 1830 prodh equ 0xFF4
- 1831 prodl equ 0xFF3
- 1832 intcon equ 0xFF2
- 1833 postinc0 equ 0xFEE
- 1834 fsr0h equ 0xFEA
- 1835 fsr0l equ 0xFE9
- 1836 wreg equ 0xFE8
- 1837 fsr1h equ 0xFE2
- 1838 fsr1l equ 0xFE1
- 1839 indf2 equ 0xFDF
- 1840 postinc2 equ 0xFDE
- 1841 postdec2 equ 0xFDD
- 1842 fsr2h equ 0xFDA
- 1843 fsr2l equ 0xFD9
- 1844 status equ 0xFD8
- 1845
- 1846 psect rparam
- 1847 0000 pclatu equ 0xFFB
- 1848 pclath equ 0xFFA
- 1849 tblptru equ 0xFF8
- 1850 tblptrh equ 0xFF7
- 1851 tblptrl equ 0xFF6
- 1852 tablat equ 0xFF5
- 1853 prodh equ 0xFF4
- 1854 prodl equ 0xFF3
- 1855 intcon equ 0xFF2
- 1856 postinc0 equ 0xFEE
- 1857 fsr0h equ 0xFEA
- 1858 fsr0l equ 0xFE9
- 1859 wreg equ 0xFE8
- 1860 fsr1h equ 0xFE2
- 1861 fsr1l equ 0xFE1
- 1862 indf2 equ 0xFDF
- 1863 postinc2 equ 0xFDE
- 1864 postdec2 equ 0xFDD
- 1865 fsr2h equ 0xFDA
- 1866 fsr2l equ 0xFD9
- 1867 status equ 0xFD8
- 1868
- 1869 psect temp
- 1870 000034 btemp:
- 1871 opt stack 0
- 1872 000034 ds 1
- 1873 0000 int$flags set btemp
- 1874 0000 wtemp6 set btemp+1
- 1875 pclatu equ 0xFFB
- 1876 pclath equ 0xFFA
- 1877 tblptru equ 0xFF8
- 1878 tblptrh equ 0xFF7
- 1879 tblptrl equ 0xFF6
- 1880 tablat equ 0xFF5
- 1881 prodh equ 0xFF4
- 1882 prodl equ 0xFF3
- 1883 intcon equ 0xFF2
- 1884 postinc0 equ 0xFEE
- 1885 fsr0h equ 0xFEA
- 1886 fsr0l equ 0xFE9
- 1887 wreg equ 0xFE8
- 1888 fsr1h equ 0xFE2
- 1889 fsr1l equ 0xFE1
- 1890 indf2 equ 0xFDF
- 1891 postinc2 equ 0xFDE
- 1892 postdec2 equ 0xFDD
- 1893 fsr2h equ 0xFDA
- 1894 fsr2l equ 0xFD9
- 1895 status equ 0xFD8
+ 1764 000284 C029 F001 movff isr@i,??_isr
+ 1765 000288 0E08 movlw 8
+ 1766 00028A 2601 addwf ??_isr,f,c
+ 1767 00028C 5028 movf _isr$305,w,c
+ 1768 00028E 6E02 movwf (??_isr+1)& (0+255),c
+ 1769 000290 6A03 clrf (??_isr+2)& (0+255),c
+ 1770 000292 2A01 incf ??_isr,f,c
+ 1771 000294 D003 goto i2u41_44
+ 1772 000296 i2u41_45:
+ 1773 000296 90D8 bcf status,0,c
+ 1774 000298 3602 rlcf ??_isr+1,f,c
+ 1775 00029A 3603 rlcf ??_isr+2,f,c
+ 1776 00029C i2u41_44:
+ 1777 00029C 2E01 decfsz ??_isr,f,c
+ 1778 00029E D7FB goto i2u41_45
+ 1779 0002A0 5002 movf ??_isr+1,w,c
+ 1780 0002A2 0100 movlb 0 ; () banked
+ 1781 0002A4 1360 iorwf _keypresses& (0+255),f,b ;volatile
+ 1782 0002A6 5003 movf ??_isr+2,w,c
+ 1783 0002A8 1361 iorwf (_keypresses+1)& (0+255),f,b ;volatile
+ 1784
+ 1785 ; BSR set to: 0
+ 1786 ;main.c: 138: } while (i--);
+ 1787 0002AA 0629 decf isr@i,f,c
+ 1788 0002AC 2829 incf isr@i,w,c
+ 1789 0002AE A4D8 btfss status,2,c
+ 1790 0002B0 D6D8 goto i2l56
+ 1791
+ 1792 ; BSR set to: 0
+ 1793 ;main.c: 147: PIR1bits.TMR2IF = 0;
+ 1794 0002B2 929E bcf 3998,1,c ;volatile
+ 1795 0002B4 i2l55:
+ 1796
+ 1797 ; BSR set to: 0
+ 1798 0002B4 C024 F038 movff ??_isr+35,btemp+3
+ 1799 0002B8 C023 F037 movff ??_isr+34,btemp+2
+ 1800 0002BC C022 F036 movff ??_isr+33,btemp+1
+ 1801 0002C0 C021 F035 movff ??_isr+32,btemp
+ 1802 0002C4 C020 FFF5 movff ??_isr+31,tablat
+ 1803 0002C8 C01F FFF8 movff ??_isr+30,tblptru
+ 1804 0002CC C01E FFF7 movff ??_isr+29,tblptrh
+ 1805 0002D0 C01D FFF6 movff ??_isr+28,tblptrl
+ 1806 0002D4 C01C FFF4 movff ??_isr+27,prodh
+ 1807 0002D8 C01B FFF3 movff ??_isr+26,prodl
+ 1808 0002DC C01A FFDA movff ??_isr+25,fsr2h
+ 1809 0002E0 C019 FFD9 movff ??_isr+24,fsr2l
+ 1810 0002E4 C018 FFE2 movff ??_isr+23,fsr1h
+ 1811 0002E8 C017 FFE1 movff ??_isr+22,fsr1l
+ 1812 0002EC C016 FFEA movff ??_isr+21,fsr0h
+ 1813 0002F0 C015 FFE9 movff ??_isr+20,fsr0l
+ 1814 0002F4 C014 FFFB movff ??_isr+19,pclatu
+ 1815 0002F8 C013 FFFA movff ??_isr+18,pclath
+ 1816 0002FC 9235 bcf btemp,1,c ;clear compiler interrupt flag (level 2)
+ 1817 0002FE 0011 retfie f
+ 1818 000300 __end_of_isr:
+ 1819 opt stack 0
+ 1820 pclatu equ 0xFFB
+ 1821 pclath equ 0xFFA
+ 1822 tblptru equ 0xFF8
+ 1823 tblptrh equ 0xFF7
+ 1824 tblptrl equ 0xFF6
+ 1825 tablat equ 0xFF5
+ 1826 prodh equ 0xFF4
+ 1827 prodl equ 0xFF3
+ 1828 intcon equ 0xFF2
+ 1829 postinc0 equ 0xFEE
+ 1830 fsr0h equ 0xFEA
+ 1831 fsr0l equ 0xFE9
+ 1832 wreg equ 0xFE8
+ 1833 fsr1h equ 0xFE2
+ 1834 fsr1l equ 0xFE1
+ 1835 indf2 equ 0xFDF
+ 1836 postinc2 equ 0xFDE
+ 1837 postdec2 equ 0xFDD
+ 1838 fsr2h equ 0xFDA
+ 1839 fsr2l equ 0xFD9
+ 1840 status equ 0xFD8
+ 1841 pclatu equ 0xFFB
+ 1842 pclath equ 0xFFA
+ 1843 tblptru equ 0xFF8
+ 1844 tblptrh equ 0xFF7
+ 1845 tblptrl equ 0xFF6
+ 1846 tablat equ 0xFF5
+ 1847 prodh equ 0xFF4
+ 1848 prodl equ 0xFF3
+ 1849 intcon equ 0xFF2
+ 1850 postinc0 equ 0xFEE
+ 1851 fsr0h equ 0xFEA
+ 1852 fsr0l equ 0xFE9
+ 1853 wreg equ 0xFE8
+ 1854 fsr1h equ 0xFE2
+ 1855 fsr1l equ 0xFE1
+ 1856 indf2 equ 0xFDF
+ 1857 postinc2 equ 0xFDE
+ 1858 postdec2 equ 0xFDD
+ 1859 fsr2h equ 0xFDA
+ 1860 fsr2l equ 0xFD9
+ 1861 status equ 0xFD8
+ 1862
+ 1863 psect rparam
+ 1864 0000 pclatu equ 0xFFB
+ 1865 pclath equ 0xFFA
+ 1866 tblptru equ 0xFF8
+ 1867 tblptrh equ 0xFF7
+ 1868 tblptrl equ 0xFF6
+ 1869 tablat equ 0xFF5
+ 1870 prodh equ 0xFF4
+ 1871 prodl equ 0xFF3
+ 1872 intcon equ 0xFF2
+ 1873 postinc0 equ 0xFEE
+ 1874 fsr0h equ 0xFEA
+ 1875 fsr0l equ 0xFE9
+ 1876 wreg equ 0xFE8
+ 1877 fsr1h equ 0xFE2
+ 1878 fsr1l equ 0xFE1
+ 1879 indf2 equ 0xFDF
+ 1880 postinc2 equ 0xFDE
+ 1881 postdec2 equ 0xFDD
+ 1882 fsr2h equ 0xFDA
+ 1883 fsr2l equ 0xFD9
+ 1884 status equ 0xFD8
+ 1885
+ 1886 psect temp
+ 1887 000035 btemp:
+ 1888 opt stack 0
+ 1889 000035 ds 1
+ 1890 0000 int$flags set btemp
+ 1891 0000 wtemp6 set btemp+1
+ 1892 pclatu equ 0xFFB
+ 1893 pclath equ 0xFFA
+ 1894 tblptru equ 0xFF8
+ 1895 tblptrh equ 0xFF7
+ 1896 tblptrl equ 0xFF6
+ 1897 tablat equ 0xFF5
+ 1898 prodh equ 0xFF4
+ 1899 prodl equ 0xFF3
+ 1900 intcon equ 0xFF2
+ 1901 postinc0 equ 0xFEE
+ 1902 fsr0h equ 0xFEA
+ 1903 fsr0l equ 0xFE9
+ 1904 wreg equ 0xFE8
+ 1905 fsr1h equ 0xFE2
+ 1906 fsr1l equ 0xFE1
+ 1907 indf2 equ 0xFDF
+ 1908 postinc2 equ 0xFDE
+ 1909 postdec2 equ 0xFDD
+ 1910 fsr2h equ 0xFDA
+ 1911 fsr2l equ 0xFD9
+ 1912 status equ 0xFD8
Data Sizes:
Strings 0
- Constant 0
+ Constant 42
Data 0
BSS 66
Persistent 0
@@ -1920,8 +1937,8 @@ Data Sizes:
Auto Spaces:
Space Size Autos Used
- COMRAM 94 51 51
- BANK0 160 20 86
+ COMRAM 94 52 52
+ BANK0 160 21 87
BANK1 256 0 0
BANK2 256 0 0
BANK3 256 0 0
@@ -1946,10 +1963,10 @@ Pointer List with Targets:
-> main@message(BANK0[7]),
eusart_write_midi@data PTR unsigned char size(2) Largest target is 7
- -> message.data(COMRAM[4]), main@message(BANK0[7]),
+ -> message.data(COMRAM[4]), main@message(BANK0[7]), conf_message.data(COMRAM[4]), main@conf_message(BANK0[7]),
eusart_write_midi@pkt PTR const struct . size(2) Largest target is 7
- -> main@message(BANK0[7]),
+ -> main@message(BANK0[7]), main@conf_message(BANK0[7]),
sp__memset PTR void size(2) Largest target is 64
-> keys_data(BANK0[64]),
@@ -1957,7 +1974,7 @@ Pointer List with Targets:
Critical Paths under _main in COMRAM
- _main->_eusart_write_midi
+ _main->_midi_note_on
_midi_note_on->_midi_set_channel
_eusart_write_midi->_eusart2_putch
@@ -1967,7 +1984,7 @@ Critical Paths under _isr in COMRAM
Critical Paths under _main in BANK0
- _main->_midi_note_on
+ None.
Critical Paths under _isr in BANK0
@@ -2018,26 +2035,26 @@ Call Graph Tables:
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
- (0) _main 14 14 0 2013
- 6 BANK0 14 14 0
+ (0) _main 21 21 0 2165
+ 0 BANK0 21 21 0
_eusart_write_midi
_init_hw
_memset
_midi_note_on
---------------------------------------------------------------------------------
(1) _midi_note_on 6 0 6 1242
- 0 BANK0 6 0 6
+ 46 COMRAM 6 0 6
_midi_set_channel
_midi_set_status
---------------------------------------------------------------------------------
(2) _midi_set_status 4 1 3 370
- 42 COMRAM 4 1 3
+ 41 COMRAM 4 1 3
---------------------------------------------------------------------------------
(2) _midi_set_channel 5 1 4 370
- 42 COMRAM 5 1 4
+ 41 COMRAM 5 1 4
---------------------------------------------------------------------------------
(1) _memset 8 2 6 324
- 42 COMRAM 8 2 6
+ 41 COMRAM 8 2 6
---------------------------------------------------------------------------------
(1) _init_hw 0 0 0 0
_eusart1_init
@@ -2047,19 +2064,19 @@ Call Graph Tables:
---------------------------------------------------------------------------------
(2) _eusart1_init 0 0 0 0
---------------------------------------------------------------------------------
- (1) _eusart_write_midi 8 6 2 255
- 43 COMRAM 8 6 2
+ (1) _eusart_write_midi 8 6 2 331
+ 42 COMRAM 8 6 2
_eusart2_putch
---------------------------------------------------------------------------------
(2) _eusart2_putch 1 1 0 22
- 42 COMRAM 1 1 0
+ 41 COMRAM 1 1 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 2
---------------------------------------------------------------------------------
(Depth) Function Calls Base Space Used Autos Params Refs
---------------------------------------------------------------------------------
- (3) _isr 42 42 0 405
- 0 COMRAM 42 42 0
+ (3) _isr 41 41 0 381
+ 0 COMRAM 41 41 0
---------------------------------------------------------------------------------
Estimated maximum stack depth 3
---------------------------------------------------------------------------------
@@ -2094,101 +2111,101 @@ BANK2 100 0 0 8 0.0%
BITBANK1 100 0 0 5 0.0%
BANK1 100 0 0 6 0.0%
BITBANK0 A0 0 0 3 0.0%
-BANK0 A0 14 56 4 53.8%
+BANK0 A0 15 57 4 54.4%
BITCOMRAM 5E 0 0 0 0.0%
-COMRAM 5E 33 33 1 54.3%
+COMRAM 5E 34 34 1 55.3%
BITSFR_1 0 0 0 200 0.0%
SFR_1 0 0 0 200 0.0%
BITSFR 0 0 0 200 0.0%
SFR 0 0 0 200 0.0%
STACK 0 0 0 2 0.0%
NULL 0 0 0 0 0.0%
-ABS 0 0 89 9 0.0%
-DATA 0 0 89 17 0.0%
+ABS 0 0 8B 9 0.0%
+DATA 0 0 8B 17 0.0%
CODE 0 0 0 0 0.0%
Microchip Technology PIC18 Macro Assembler V1.44 build -154322312
-Symbol Table Tue Feb 27 10:27:03 2018
+Symbol Table Fri Mar 02 09:57:11 2018
- l76 0398 l87 0494 l79 042C
- l88 0482 __CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000
- __CFG_CP2$OFF 000000 __CFG_CP3$OFF 000000 __CFG_LVP$ON 000000
- l596 0588 l597 0578 __CFG_CPB$OFF 000000
- _PR2 000FBB __CFG_CPD$OFF 000000 u524 03C4
- u525 03BE u544 0416 u545 0410
- u577 03F4 _isr 0008 prod 000FF3
- wreg 000FE8 _TXSTA1bits 000FAC _TXSTA2bits 000F72
- l1110 0578 l1202 0398 l1052 0638
- l1140 0482 l1204 03A2 ?_isr 0001
- i2l60 0064 i2l62 01E0 i2l64 0286
- i2l59 0304 i2l67 02F8 main@message 00AF
- _main 0356 midi_note_on@channel 00A4 fsr0h 000FEA
- fsr1h 000FE2 fsr2h 000FDA fsr0l 000FE9
- indf2 000FDF fsr1l 000FE1 fsr2l 000FD9
- btemp 0034 __CFG_BORV$190 000000 isr@i 002A
- prodh 000FF4 prodl 000FF3 start 0352
- __CFG_IESO$OFF 000000 midi_note_on@pkt 00A2 ___param_bank 000000
- ??_isr 0001 _BAUDCON1bits 000FB8 _BAUDCON2bits 000F70
- ?_main 0001 _RC1IF 007CF5 __CFG_WDTEN$ON 000000
- _TX1IF 007CF4 _TX2IF 007D24 _PORTA 000F80
- _PORTB 000F81 _TRISA 000F92 _TRISB 000F93
- __CFG_WRT0$OFF 000000 __CFG_WRT1$OFF 000000 __CFG_WRT2$OFF 000000
- __CFG_WRT3$OFF 000000 __CFG_EBTR0$OFF 000000 __CFG_FCMEN$OFF 000000
- __CFG_EBTR1$OFF 000000 __CFG_EBTR2$OFF 000000 __CFG_EBTR3$OFF 000000
- __CFG_WRTB$OFF 000000 __CFG_WRTC$OFF 000000 __CFG_WRTD$OFF 000000
- __CFG_EBTRB$OFF 000000 __end_of_init_hw 056E __CFG_MCLRE$EXTMCLR 000000
- main@i 00AD pclath 000FFA tablat 000FF5
- _eusart_write_midi 0432 __end_of_midi_set_status 05E4 status 000FD8
- wtemp6 0035 __CFG_HFOFST$ON 000000 ?_eusart_write_midi 002C
- __CFG_PBADEN$ON 000000 eusart_write_midi@length 0030 __initialization 061C
- midi_note_on@note 00A6 __end_of_main 0432 ??_eusart_write_midi 002E
- midi_note_on@velocity 00A7 ??_main 00A8 ?_midi_note_on 00A2
- __activetblptr 000002 __CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 04A6
- _ANSELA 000F38 _ANSELB 000F39 _ANSELC 000F3A
- _ANSELD 000F3B _RC1REG 000FAE _SPBRG1 000FAF
- _SPBRG2 000F75 _TX1REG 000FAD _TX2REG 000F73
- ?_eusart1_init 0001 ?_eusart2_init 0001 __CFG_XINST$OFF 000000
- __CFG_STVREN$ON 000000 __end_of_midi_set_channel 05C0 _memset 056E
- clear_0 0622 midi_set_status@status 002D ??_midi_note_on 0030
- __size_of_eusart2_putch 000C ??_init_hw 002B tblptrh 000FF7
- tblptrl 000FF6 tblptru 000FF8 __accesstop 0060
- __end_of__initialization 0628 ?_midi_set_status 002B ??_eusart1_init 002B
- ??_eusart2_init 002B ___rparam_used 000001 __pcstackCOMRAM 0001
-__size_of_eusart_write_midi 0074 __pbssBANK0 0060 _eusart2_putch 0636
- __CFG_CCP2MX$PORTC1 000000 __CFG_CCP3MX$PORTB5 000000 ?_memset 002B
- i2u42_44 01F4 i2u50_45 0300 i2u42_45 01EE
- i2u50_46 0302 i2u45_44 029E i2u45_45 0298
- i2u38_44 00A6 i2u38_45 00A2 i2u39_44 0138
- i2u47_45 02BC i2u39_45 0134 i2u47_47 02BE
- _SPBRGH1 000FB0 _SPBRGH2 000F76 ?_eusart2_putch 0001
- __end_of_midi_note_on 050C eusart_write_midi@pkt 002C __CFG_PWRTEN$OFF 000000
- __Hparam 0000 __Lparam 0000 __pcinit 061C
- _isr$605 0029 _isr$595 0027 _isr$596 0028
- __size_of_memset 002C __ramtop 0600 __ptext0 0356
- __ptext1 04A6 __ptext2 05C0 __ptext3 059A
- __ptext4 056E __ptext5 050C __ptext6 05E4
- __ptext7 0600 __ptext8 0432 __ptext9 0636
- __end_of_eusart1_init 061C __end_of_eusart2_init 0600 _T2CONbits 000FBA
- _init_hw 050C __size_of_isr 034A _keypresses 0060
- end_of_initialization 0628 memset@c 002D memset@n 002F
- memset@p 0031 __Lmediumconst 0000 postdec2 000FDD
- postinc0 000FEE postinc2 000FDE ?_midi_set_channel 002B
- _PORTAbits 000F80 _PORTDbits 000F83 ??_midi_set_channel 002F
- __CFG_FOSC$INTIO7 000000 _TRISCbits 000F94 _TRISDbits 000F95
- ??_eusart2_putch 002B midi_set_channel@channel 002D __end_of_memset 059A
- start_initialization 061C __end_of_isr 0352 __size_of_midi_note_on 0066
- __size_of_midi_set_status 0024 __size_of_eusart1_init 001C __size_of_eusart2_init 001C
- ??_memset 0031 _midi_note_on 04A6 __pcstackBANK0 00A2
- midi_set_status@pkt 002B _eusart1_init 0600 _eusart2_init 05E4
- __pintcode 0008 __CFG_PRICLKEN$ON 000000 ?_init_hw 0001
- _keys_data 0062 _PIE1bits 000F9D _PIR1bits 000F9E
- __CFG_WDTPS$32768 000000 ??_midi_set_status 002E __size_of_midi_set_channel 0026
- eusart_write_midi@data 0032 isr@data_a 0025 isr@data_b 0026
- __Hrparam 0000 __Lrparam 0000 __CFG_BOREN$SBORDIS 000000
- __CFG_P2BMX$PORTD2 000000 eusart2_putch@c 002B __size_of_init_hw 0062
- __end_of_eusart2_putch 0642 __size_of_main 00DC int$flags 0034
- _OSCTUNEbits 000F9B _INTCONbits 000FF2 memset@p1 002B
- midi_set_channel@pkt 002B intlevel2 0000 _RCSTA1bits 000FAB
- _RCSTA2bits 000F71 _OSCCONbits 000FD3 __CFG_T3CMX$PORTC0 000000
- _midi_set_channel 059A _midi_set_status 05C0
+ l70 06B6 l81 07C4 l73 075C
+ l82 07B2 __CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000
+ __CFG_CP2$OFF 000000 __CFG_CP3$OFF 000000 __CFG_LVP$ON 000000
+ l592 08A4 l593 0894 __CFG_CPB$OFF 000000
+ _PR2 000FBB __CFG_CPD$OFF 000000 u507 0724
+ u444 06E2 u445 06DC u464 0746
+ u465 0740 u497 069E _isr 0008
+ prod 000FF3 wreg 000FE8 _TXSTA1bits 000FAC
+ _TXSTA2bits 000F72 l1100 07B2 l1028 0954
+ l1070 0894 l1160 06C0 l1158 06B6
+ ?_isr 0001 i2l60 0284 i2l55 02B4
+ i2l56 0062 i2l58 01DE main@message 00B0
+ _main 062C midi_note_on@channel 0031 fsr0h 000FEA
+ fsr1h 000FE2 fsr2h 000FDA fsr0l 000FE9
+ indf2 000FDF fsr1l 000FE1 fsr2l 000FD9
+ btemp 0035 __CFG_BORV$190 000000 isr@i 0029
+ prodh 000FF4 prodl 000FF3 start 0300
+ __CFG_IESO$OFF 000000 midi_note_on@pkt 002F ___param_bank 000000
+ ??_isr 0001 _BAUDCON1bits 000FB8 _BAUDCON2bits 000F70
+ ?_main 0001 _RC1IF 007CF5 _TX1IF 007CF4
+ _TX2IF 007D24 _PORTA 000F80 _PORTB 000F81
+ _TRISA 000F92 _TRISB 000F93 __CFG_WRT0$OFF 000000
+ __CFG_WRT1$OFF 000000 __CFG_WRT2$OFF 000000 __CFG_WRT3$OFF 000000
+ __CFG_EBTR0$OFF 000000 __CFG_FCMEN$OFF 000000 __CFG_EBTR1$OFF 000000
+ __CFG_EBTR2$OFF 000000 __CFG_EBTR3$OFF 000000 __CFG_WRTB$OFF 000000
+ __CFG_WRTC$OFF 000000 __CFG_WRTD$OFF 000000 __CFG_EBTRB$OFF 000000
+ __end_of_init_hw 088A __CFG_MCLRE$EXTMCLR 000000 main@i 00AE
+ pclath 000FFA tablat 000FF5 _eusart_write_midi 0762
+ __end_of_midi_set_status 0900 status 000FD8 wtemp6 0036
+ __CFG_HFOFST$ON 000000 ?_eusart_write_midi 002B __CFG_PBADEN$ON 000000
+ eusart_write_midi@length 002F __initialization 0938 midi_note_on@note 0033
+ __end_of_main 0762 ??_eusart_write_midi 002D midi_note_on@velocity 0034
+ ??_main 00A2 ?_midi_note_on 002F __activetblptr 000002
+ __CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 07D6 _ANSELA 000F38
+ _ANSELB 000F39 _ANSELC 000F3A _ANSELD 000F3B
+ _RC1REG 000FAE __CFG_WDTEN$OFF 000000 _SPBRG1 000FAF
+ _SPBRG2 000F75 _TX1REG 000FAD _TX2REG 000F73
+ ?_eusart1_init 0001 ?_eusart2_init 0001 __CFG_XINST$OFF 000000
+ __CFG_STVREN$ON 000000 __end_of_midi_set_channel 08DC _memset 088A
+ clear_0 093E midi_set_status@status 002C ??_midi_note_on 0035
+ __size_of_eusart2_putch 000C ??_init_hw 002A __mediumconst 0000
+ tblptrh 000FF7 tblptrl 000FF6 tblptru 000FF8
+ __accesstop 0060 __end_of__initialization 0944 ?_midi_set_status 002A
+ ??_eusart1_init 002A ??_eusart2_init 002A ___rparam_used 000001
+ __pcstackCOMRAM 0001 __size_of_eusart_write_midi 0074 __pbssBANK0 0060
+ main@conf_message 00A7 _eusart2_putch 0952 __CFG_CCP2MX$PORTC1 000000
+ __CFG_CCP3MX$PORTB5 000000 ?_memset 002A i2u41_44 029C
+ i2u41_45 0296 i2u34_44 00A4 i2u34_45 00A0
+ i2u35_44 0136 i2u35_45 0132 i2u38_44 01F2
+ i2u38_45 01EC _SPBRGH1 000FB0 _SPBRGH2 000F76
+ ?_eusart2_putch 0001 __end_of_midi_note_on 0838 eusart_write_midi@pkt 002B
+ __CFG_PWRTEN$OFF 000000 __Hparam 0000 __Lparam 0000
+ __psmallconst 0600 __pcinit 0938 _isr$304 0027
+ _isr$305 0028 __size_of_memset 002C __ramtop 0600
+ __ptext0 062C __ptext1 07D6 __ptext2 08DC
+ __ptext3 08B6 __ptext4 088A __ptext5 0838
+ __ptext6 0900 __ptext7 091C __ptext8 0762
+ __ptext9 0952 __end_of_eusart1_init 0938 __end_of_eusart2_init 091C
+ _T2CONbits 000FBA _init_hw 0838 __size_of_isr 02F8
+ _keypresses 0060 end_of_initialization 0944 _midi_notes_steps_table 0601
+ memset@c 002C memset@n 002E memset@p 0030
+ __Lmediumconst 0000 postdec2 000FDD postinc0 000FEE
+ postinc2 000FDE ?_midi_set_channel 002A ??_midi_set_channel 002E
+ _TRISCbits 000F94 _TRISDbits 000F95 ??_eusart2_putch 002A
+ midi_set_channel@channel 002C __end_of_memset 08B6 start_initialization 0938
+ __end_of_isr 0300 __size_of_midi_note_on 0062 __size_of_midi_set_status 0024
+ __size_of_eusart1_init 001C __size_of_eusart2_init 001C ??_memset 0030
+ _midi_note_on 07D6 __pcstackBANK0 00A2 midi_set_status@pkt 002A
+ _eusart1_init 091C _eusart2_init 0900 __pintcode 0008
+ __CFG_PRICLKEN$ON 000000 __smallconst 0600 ?_init_hw 0001
+ _keys_data 0062 _PIE1bits 000F9D _PIR1bits 000F9E
+ __CFG_WDTPS$32768 000000 ??_midi_set_status 002D __end_of_midi_notes_steps_table 062B
+ __size_of_midi_set_channel 0026 eusart_write_midi@data 0031 isr@data_a 0025
+ isr@data_b 0026 __Hrparam 0000 __Lrparam 0000
+ __CFG_BOREN$SBORDIS 000000 __CFG_P2BMX$PORTD2 000000 eusart2_putch@c 002A
+ __size_of_init_hw 0052 __end_of_eusart2_putch 095E __size_of_main 0136
+ int$flags 0035 _OSCTUNEbits 000F9B _INTCONbits 000FF2
+ memset@p1 002A midi_set_channel@pkt 002A intlevel2 0000
+ _RCSTA1bits 000FAB _RCSTA2bits 000F71 _OSCCONbits 000FD3
+ __CFG_T3CMX$PORTC0 000000 _midi_set_channel 08B6 __CFG_FOSC$INTIO67 000000
+ _midi_set_status 08DC
diff --git a/src/dist/default/production/src.production.map b/src/dist/default/production/src.production.map
index 8af54a4..84cad4a 100644
--- a/src/dist/default/production/src.production.map
+++ b/src/dist/default/production/src.production.map
@@ -5,9 +5,9 @@ Linker command line:
-W-3 --edf=C:\Program Files\Microchip\xc8\v1.44\dat\en_msgs.txt -cs \
-h+dist/default/production\src.production.sym \
--cmf=dist/default/production\src.production.cmf -z -Q18F45K22 \
- -oC:\Users\_prossn\AppData\Local\Temp\s514.2 \
+ -oC:\Users\_prossn\AppData\Local\Temp\s15k.2 \
-Mdist/default/production/src.production.map -E1 -ver=XC8 \
- -ASTACK=0B6h-05ffh -pstack=STACK -ACODE=00h-07FFFh -ACONST=00h-07FFFh \
+ -ASTACK=0B7h-05ffh -pstack=STACK -ACODE=00h-07FFFh -ACONST=00h-07FFFh \
-ASMALLCONST=0600h-06FFhx122 -AMEDIUMCONST=0600h-07FFFh -ACOMRAM=01h-05Fh \
-AABS1=00h-05FFh -ABIGRAM=01h-05FFh -ARAM=060h-0FFh,0100h-01FFhx5 \
-ABANK0=060h-0FFh -ABANK1=0100h-01FFh -ABANK2=0200h-02FFh \
@@ -22,7 +22,7 @@ Linker command line:
-pfarbss=FARRAM,fardata=FARRAM,nvFARRAM=FARRAM \
-pintsave_regs=BIGRAM,bigbss=BIGRAM,bigdata=BIGRAM -pbss=RAM \
-pidata=CODE,irdata=CODE,ibigdata=CODE,ifardata=CODE -prparam=COMRAM \
- C:\Users\_prossn\AppData\Local\Temp\s514.obj \
+ C:\Users\_prossn\AppData\Local\Temp\s15k.obj \
dist/default/production\src.production.obj
Object code version is 3.11
@@ -35,57 +35,59 @@ Call graph: (short form)
Name Link Load Length Selector Space Scale
-C:\Users\_prossn\AppData\Local\Temp\s514.obj
- init 352 352 4 4 0
+C:\Users\_prossn\AppData\Local\Temp\s15k.obj
+ init 300 300 4 4 0
reset_vec 0 0 4 0 0
idloc 200000 200000 8 200000 0
config 300000 300000 E 300000 0
dist/default/production\src.production.obj
- intcode 8 8 34A 4 0
- temp 34 34 1 1 1
- text9 636 636 C 4 0
- text8 432 432 74 4 0
- text7 600 600 1C 4 0
- text6 5E4 5E4 1C 4 0
- text5 50C 50C 62 4 0
- text4 56E 56E 2C 4 0
- text3 59A 59A 26 4 0
- text2 5C0 5C0 24 4 0
- text1 4A6 4A6 66 4 0
- text0 356 356 DC 4 0
- cstackCOMRAM 1 1 33 1 1
- cstackBANK0 A2 A2 14 60 1
+ intcode 8 8 2F8 4 0
+ temp 35 35 1 1 1
+ smallconst 600 600 2C 300 0
+ text9 952 952 C 316 0
+ text8 762 762 74 316 0
+ text7 91C 91C 1C 316 0
+ text6 900 900 1C 316 0
+ text5 838 838 52 316 0
+ text4 88A 88A 2C 316 0
+ text3 8B6 8B6 26 316 0
+ text2 8DC 8DC 24 316 0
+ text1 7D6 7D6 62 316 0
+ text0 62C 62C 136 316 0
+ cstackCOMRAM 1 1 34 1 1
+ cstackBANK0 A2 A2 15 60 1
bssBANK0 60 60 42 60 1
- cinit 61C 61C 1A 4 0
+ cinit 938 938 1A 316 0
TOTAL Name Link Load Length Space
CLASS STACK
CLASS CODE
- intcode 8 8 34A 0
- init 352 352 4 0
+ intcode 8 8 2F8 0
+ init 300 300 4 0
reset_vec 0 0 4 0
- text9 636 636 C 0
- text8 432 432 74 0
- text7 600 600 1C 0
- text6 5E4 5E4 1C 0
- text5 50C 50C 62 0
- text4 56E 56E 2C 0
- text3 59A 59A 26 0
- text2 5C0 5C0 24 0
- text1 4A6 4A6 66 0
- text0 356 356 DC 0
- cinit 61C 61C 1A 0
+ text9 952 952 C 0
+ text8 762 762 74 0
+ text7 91C 91C 1C 0
+ text6 900 900 1C 0
+ text5 838 838 52 0
+ text4 88A 88A 2C 0
+ text3 8B6 8B6 26 0
+ text2 8DC 8DC 24 0
+ text1 7D6 7D6 62 0
+ text0 62C 62C 136 0
+ cinit 938 938 1A 0
CLASS CONST
CLASS SMALLCONST
+ smallconst 600 600 2C 0
CLASS MEDIUMCONST
CLASS COMRAM
- temp 34 34 1 1
- cstackCOMRAM 1 1 33 1
+ temp 35 35 1 1
+ cstackCOMRAM 1 1 34 1
CLASS ABS1
@@ -94,7 +96,7 @@ TOTAL Name Link Load Length Sp
CLASS RAM
CLASS BANK0
- cstackBANK0 A2 A2 14 1
+ cstackBANK0 A2 A2 15 1
bssBANK0 60 60 42 1
CLASS BANK1
@@ -124,9 +126,11 @@ TOTAL Name Link Load Length Sp
SEGMENTS Name Load Length Top Selector Space Class
reset_vec 000000 000004 000004 0 0 CODE
- cstackCOMRAM 000001 000034 000035 1 1 COMRAM
- intcode 000008 00063A 000642 4 0 CODE
- bssBANK0 000060 000056 0000B6 60 1 BANK0
+ cstackCOMRAM 000001 000035 000036 1 1 COMRAM
+ intcode 000008 0002FC 000304 4 0 CODE
+ bssBANK0 000060 000057 0000B7 60 1 BANK0
+ smallconst 000600 00002C 00062C 300 0 SMALLCON
+ text0 00062C 000332 00095E 316 0 CODE
idloc 200000 000008 200008 200000 0 IDLOC
config 300000 00000E 30000E 300000 0 CONFIG
@@ -134,364 +138,368 @@ SEGMENTS Name Load Length Top Selector
UNUSED ADDRESS RANGES
Name Unused Largest block Delta
- BANK0 0000B6-0000FF 4A
+ BANK0 0000B7-0000FF 49
BANK1 000100-0001FF 100
BANK2 000200-0002FF 100
BANK3 000300-0003FF 100
BANK4 000400-0004FF 100
BANK5 000500-0005FF 100
- BIGRAM 000035-00005F 2B
- 0000B6-0005FF 54A
+ BIGRAM 000036-00005F 2A
+ 0000B7-0005FF 549
CODE 000004-000007 4
- 000642-007FFF 79BE
- COMRAM 000035-00005F 2B
+ 000304-0005FF 2FC
+ 00095E-007FFF 76A2
+ COMRAM 000036-00005F 2A
CONST 000004-000007 4
- 000642-007FFF 79BE
+ 000304-0005FF 2FC
+ 00095E-007FFF 76A2
EEDATA F00000-F000FF 100
- MEDIUMCONST 000642-007FFF 79BE
- RAM 0000B6-0005FF 100
+ MEDIUMCONST 00095E-007FFF 76A2
+ RAM 0000B7-0005FF 100
SFR 000F38-000FFF 28
- SMALLCONST 000642-007FFF 100
- STACK 0000B6-0005FF 54A
+ SMALLCONST 00095E-007FFF 100
+ STACK 0000B7-0005FF 549
Symbol Table
-_ANSELA (abs) 000F38
-_ANSELB (abs) 000F39
-_ANSELC (abs) 000F3A
-_ANSELD (abs) 000F3B
-_BAUDCON1bits (abs) 000FB8
-_BAUDCON2bits (abs) 000F70
-_INTCONbits (abs) 000FF2
-_OSCCONbits (abs) 000FD3
-_OSCTUNEbits (abs) 000F9B
-_PIE1bits (abs) 000F9D
-_PIR1bits (abs) 000F9E
-_PORTA (abs) 000F80
-_PORTAbits (abs) 000F80
-_PORTB (abs) 000F81
-_PORTDbits (abs) 000F83
-_PR2 (abs) 000FBB
-_RC1IF (abs) 007CF5
-_RC1REG (abs) 000FAE
-_RCSTA1bits (abs) 000FAB
-_RCSTA2bits (abs) 000F71
-_SPBRG1 (abs) 000FAF
-_SPBRG2 (abs) 000F75
-_SPBRGH1 (abs) 000FB0
-_SPBRGH2 (abs) 000F76
-_T2CONbits (abs) 000FBA
-_TRISA (abs) 000F92
-_TRISB (abs) 000F93
-_TRISCbits (abs) 000F94
-_TRISDbits (abs) 000F95
-_TX1IF (abs) 007CF4
-_TX1REG (abs) 000FAD
-_TX2IF (abs) 007D24
-_TX2REG (abs) 000F73
-_TXSTA1bits (abs) 000FAC
-_TXSTA2bits (abs) 000F72
-__CFG_BOREN$SBORDIS (abs) 000000
-__CFG_BORV$190 (abs) 000000
-__CFG_CCP2MX$PORTC1 (abs) 000000
-__CFG_CCP3MX$PORTB5 (abs) 000000
-__CFG_CP0$OFF (abs) 000000
-__CFG_CP1$OFF (abs) 000000
-__CFG_CP2$OFF (abs) 000000
-__CFG_CP3$OFF (abs) 000000
-__CFG_CPB$OFF (abs) 000000
-__CFG_CPD$OFF (abs) 000000
-__CFG_EBTR0$OFF (abs) 000000
-__CFG_EBTR1$OFF (abs) 000000
-__CFG_EBTR2$OFF (abs) 000000
-__CFG_EBTR3$OFF (abs) 000000
-__CFG_EBTRB$OFF (abs) 000000
-__CFG_FCMEN$OFF (abs) 000000
-__CFG_FOSC$INTIO7 (abs) 000000
-__CFG_HFOFST$ON (abs) 000000
-__CFG_IESO$OFF (abs) 000000
-__CFG_LVP$ON (abs) 000000
-__CFG_MCLRE$EXTMCLR (abs) 000000
-__CFG_P2BMX$PORTD2 (abs) 000000
-__CFG_PBADEN$ON (abs) 000000
-__CFG_PLLCFG$ON (abs) 000000
-__CFG_PRICLKEN$ON (abs) 000000
-__CFG_PWRTEN$OFF (abs) 000000
-__CFG_STVREN$ON (abs) 000000
-__CFG_T3CMX$PORTC0 (abs) 000000
-__CFG_WDTEN$ON (abs) 000000
-__CFG_WDTPS$32768 (abs) 000000
-__CFG_WRT0$OFF (abs) 000000
-__CFG_WRT1$OFF (abs) 000000
-__CFG_WRT2$OFF (abs) 000000
-__CFG_WRT3$OFF (abs) 000000
-__CFG_WRTB$OFF (abs) 000000
-__CFG_WRTC$OFF (abs) 000000
-__CFG_WRTD$OFF (abs) 000000
-__CFG_XINST$OFF (abs) 000000
-__HRAM (abs) 000000
-__Habs1 abs1 000000
-__Hbank0 bank0 000000
-__Hbank1 bank1 000000
-__Hbank2 bank2 000000
-__Hbank3 bank3 000000
-__Hbank4 bank4 000000
-__Hbank5 bank5 000000
-__Hbigbss bigbss 000000
-__Hbigdata bigdata 000000
-__Hbigram bigram 000000
-__Hbss bss 000000
-__HbssBANK0 bssBANK0 000000
-__Hcinit cinit 000000
-__Hclrtext clrtext 000000
-__Hcomram comram 000000
-__Hconfig config 30000E
-__Hconst const 000000
-__HcstackBANK0 cstackBANK0 000000
-__HcstackCOMRAM cstackCOMRAM 000000
-__Hdata data 000000
-__Heeprom_data eeprom_data 000000
-__Hfarbss farbss 000000
-__Hfardata fardata 000000
-__Hibigdata ibigdata 000000
-__Hidata idata 000000
-__Hidloc idloc 200008
-__Hifardata ifardata 000000
-__Hinit init 000356
-__Hintcode intcode 000352
-__Hintcode_body intcode_body 000000
-__Hintcodelo intcodelo 000352
-__Hintentry intentry 000000
-__Hintret intret 000000
-__Hintsave_regs intsave_regs 000000
-__Hirdata irdata 000000
-__Hmediumconst mediumconst 000000
-__HnvFARRAM nvFARRAM 000000
-__Hnvbit nvbit 000000
-__Hnvrram nvrram 000000
-__Hparam rparam 000000
-__Hpowerup powerup 000352
-__Hram ram 000000
-__Hramtop ramtop 000600
-__Hrbit rbit 000000
-__Hrbss rbss 000000
-__Hrdata rdata 000000
-__Hreset_vec reset_vec 000004
-__Hrparam rparam 000000
-__Hsfr sfr 000000
-__Hsmallconst smallconst 000000
-__Hspace_0 (abs) 30000E
-__Hspace_1 (abs) 0000B6
-__Hspace_2 (abs) 000000
-__Hstack stack 000000
-__Hstruct struct 000000
-__Htemp temp 000035
-__Htext text 000000
-__Htext0 text0 000000
-__Htext1 text1 000000
-__Htext2 text2 000000
-__Htext3 text3 000000
-__Htext4 text4 000000
-__Htext5 text5 000000
-__Htext6 text6 000000
-__Htext7 text7 000000
-__Htext8 text8 000000
-__Htext9 text9 000000
-__LRAM (abs) 000001
-__Labs1 abs1 000000
-__Lbank0 bank0 000000
-__Lbank1 bank1 000000
-__Lbank2 bank2 000000
-__Lbank3 bank3 000000
-__Lbank4 bank4 000000
-__Lbank5 bank5 000000
-__Lbigbss bigbss 000000
-__Lbigdata bigdata 000000
-__Lbigram bigram 000000
-__Lbss bss 000000
-__LbssBANK0 bssBANK0 000000
-__Lcinit cinit 000000
-__Lclrtext clrtext 000000
-__Lcomram comram 000000
-__Lconfig config 300000
-__Lconst const 000000
-__LcstackBANK0 cstackBANK0 000000
-__LcstackCOMRAM cstackCOMRAM 000000
-__Ldata data 000000
-__Leeprom_data eeprom_data 000000
-__Lfarbss farbss 000000
-__Lfardata fardata 000000
-__Libigdata ibigdata 000000
-__Lidata idata 000000
-__Lidloc idloc 200000
-__Lifardata ifardata 000000
-__Linit init 000352
-__Lintcode intcode 000008
-__Lintcode_body intcode_body 000000
-__Lintcodelo intcodelo 000352
-__Lintentry intentry 000000
-__Lintret intret 000000
-__Lintsave_regs intsave_regs 000000
-__Lirdata irdata 000000
-__Lmediumconst mediumconst 000000
-__LnvFARRAM nvFARRAM 000000
-__Lnvbit nvbit 000000
-__Lnvrram nvrram 000000
-__Lparam rparam 000000
-__Lpowerup powerup 000352
-__Lram ram 000000
-__Lramtop ramtop 000600
-__Lrbit rbit 000000
-__Lrbss rbss 000000
-__Lrdata rdata 000000
-__Lreset_vec reset_vec 000000
-__Lrparam rparam 000000
-__Lsfr sfr 000000
-__Lsmallconst smallconst 000000
-__Lspace_0 (abs) 000000
-__Lspace_1 (abs) 000000
-__Lspace_2 (abs) 000000
-__Lstack stack 000000
-__Lstruct struct 000000
-__Ltemp temp 000034
-__Ltext text 000000
-__Ltext0 text0 000000
-__Ltext1 text1 000000
-__Ltext2 text2 000000
-__Ltext3 text3 000000
-__Ltext4 text4 000000
-__Ltext5 text5 000000
-__Ltext6 text6 000000
-__Ltext7 text7 000000
-__Ltext8 text8 000000
-__Ltext9 text9 000000
-__S0 (abs) 30000E
-__S1 (abs) 0000B6
-__S2 (abs) 000000
-___inthi_sp stack 000000
-___intlo_sp stack 000000
-___param_bank (abs) 000000
-___rparam_used (abs) 000001
-___sp stack 000000
-__accesstop (abs) 000060
-__activetblptr (abs) 000002
-__end_of__initialization cinit 000628
-__end_of_eusart1_init text7 00061C
-__end_of_eusart2_init text6 000600
-__end_of_eusart2_putch text9 000642
-__end_of_eusart_write_midi text8 0004A6
-__end_of_init_hw text5 00056E
-__end_of_isr intcode 000352
-__end_of_main text0 000432
-__end_of_memset text4 00059A
-__end_of_midi_note_on text1 00050C
-__end_of_midi_set_channel text3 0005C0
-__end_of_midi_set_status text2 0005E4
-__initialization cinit 00061C
-__mediumconst mediumconst 000000
-__pbssBANK0 bssBANK0 000060
-__pcinit cinit 00061C
-__pcstackBANK0 cstackBANK0 0000A2
-__pcstackCOMRAM cstackCOMRAM 000001
-__pintcode intcode 000008
-__ptext0 text0 000356
-__ptext1 text1 0004A6
-__ptext2 text2 0005C0
-__ptext3 text3 00059A
-__ptext4 text4 00056E
-__ptext5 text5 00050C
-__ptext6 text6 0005E4
-__ptext7 text7 000600
-__ptext8 text8 000432
-__ptext9 text9 000636
-__ramtop ramtop 000600
-__size_of_eusart1_init (abs) 000000
-__size_of_eusart2_init (abs) 000000
-__size_of_eusart2_putch (abs) 000000
-__size_of_eusart_write_midi (abs) 000000
-__size_of_init_hw (abs) 000000
-__size_of_isr (abs) 000000
-__size_of_main (abs) 000000
-__size_of_memset (abs) 000000
-__size_of_midi_note_on (abs) 000000
-__size_of_midi_set_channel (abs) 000000
-__size_of_midi_set_status (abs) 000000
-__smallconst smallconst 000000
-_eusart1_init text7 000600
-_eusart2_init text6 0005E4
-_eusart2_putch text9 000636
-_eusart_write_midi text8 000432
-_init_hw text5 00050C
-_isr intcode 000008
-_isr$595 cstackCOMRAM 000027
-_isr$596 cstackCOMRAM 000028
-_isr$605 cstackCOMRAM 000029
-_keypresses bssBANK0 000060
-_keys_data bssBANK0 000062
-_main text0 000356
-_memset text4 00056E
-_midi_note_on text1 0004A6
-_midi_set_channel text3 00059A
-_midi_set_status text2 0005C0
-btemp temp 000034
-end_of_initialization cinit 000628
-eusart2_putch@c cstackCOMRAM 00002B
-eusart_write_midi@data cstackCOMRAM 000032
-eusart_write_midi@length cstackCOMRAM 000030
-eusart_write_midi@pkt cstackCOMRAM 00002C
-int$flags temp 000034
-intlevel0 text 000000
-intlevel1 text 000000
-intlevel2 text 000000
-intlevel3 text 000000
-isr@data_a cstackCOMRAM 000025
-isr@data_b cstackCOMRAM 000026
-isr@i cstackCOMRAM 00002A
-main@i cstackBANK0 0000AD
-main@message cstackBANK0 0000AF
-memset@c cstackCOMRAM 00002D
-memset@n cstackCOMRAM 00002F
-memset@p cstackCOMRAM 000031
-memset@p1 cstackCOMRAM 00002B
-midi_note_on@channel cstackBANK0 0000A4
-midi_note_on@note cstackBANK0 0000A6
-midi_note_on@pkt cstackBANK0 0000A2
-midi_note_on@velocity cstackBANK0 0000A7
-midi_set_channel@channel cstackCOMRAM 00002D
-midi_set_channel@pkt cstackCOMRAM 00002B
-midi_set_status@pkt cstackCOMRAM 00002B
-midi_set_status@status cstackCOMRAM 00002D
-stackhi (abs) 0005FF
-stacklo (abs) 0000B6
-start init 000352
-start_initialization cinit 00061C
-wtemp6 temp 000035
+_ANSELA (abs) 000F38
+_ANSELB (abs) 000F39
+_ANSELC (abs) 000F3A
+_ANSELD (abs) 000F3B
+_BAUDCON1bits (abs) 000FB8
+_BAUDCON2bits (abs) 000F70
+_INTCONbits (abs) 000FF2
+_OSCCONbits (abs) 000FD3
+_OSCTUNEbits (abs) 000F9B
+_PIE1bits (abs) 000F9D
+_PIR1bits (abs) 000F9E
+_PORTA (abs) 000F80
+_PORTB (abs) 000F81
+_PR2 (abs) 000FBB
+_RC1IF (abs) 007CF5
+_RC1REG (abs) 000FAE
+_RCSTA1bits (abs) 000FAB
+_RCSTA2bits (abs) 000F71
+_SPBRG1 (abs) 000FAF
+_SPBRG2 (abs) 000F75
+_SPBRGH1 (abs) 000FB0
+_SPBRGH2 (abs) 000F76
+_T2CONbits (abs) 000FBA
+_TRISA (abs) 000F92
+_TRISB (abs) 000F93
+_TRISCbits (abs) 000F94
+_TRISDbits (abs) 000F95
+_TX1IF (abs) 007CF4
+_TX1REG (abs) 000FAD
+_TX2IF (abs) 007D24
+_TX2REG (abs) 000F73
+_TXSTA1bits (abs) 000FAC
+_TXSTA2bits (abs) 000F72
+__CFG_BOREN$SBORDIS (abs) 000000
+__CFG_BORV$190 (abs) 000000
+__CFG_CCP2MX$PORTC1 (abs) 000000
+__CFG_CCP3MX$PORTB5 (abs) 000000
+__CFG_CP0$OFF (abs) 000000
+__CFG_CP1$OFF (abs) 000000
+__CFG_CP2$OFF (abs) 000000
+__CFG_CP3$OFF (abs) 000000
+__CFG_CPB$OFF (abs) 000000
+__CFG_CPD$OFF (abs) 000000
+__CFG_EBTR0$OFF (abs) 000000
+__CFG_EBTR1$OFF (abs) 000000
+__CFG_EBTR2$OFF (abs) 000000
+__CFG_EBTR3$OFF (abs) 000000
+__CFG_EBTRB$OFF (abs) 000000
+__CFG_FCMEN$OFF (abs) 000000
+__CFG_FOSC$INTIO67 (abs) 000000
+__CFG_HFOFST$ON (abs) 000000
+__CFG_IESO$OFF (abs) 000000
+__CFG_LVP$ON (abs) 000000
+__CFG_MCLRE$EXTMCLR (abs) 000000
+__CFG_P2BMX$PORTD2 (abs) 000000
+__CFG_PBADEN$ON (abs) 000000
+__CFG_PLLCFG$ON (abs) 000000
+__CFG_PRICLKEN$ON (abs) 000000
+__CFG_PWRTEN$OFF (abs) 000000
+__CFG_STVREN$ON (abs) 000000
+__CFG_T3CMX$PORTC0 (abs) 000000
+__CFG_WDTEN$OFF (abs) 000000
+__CFG_WDTPS$32768 (abs) 000000
+__CFG_WRT0$OFF (abs) 000000
+__CFG_WRT1$OFF (abs) 000000
+__CFG_WRT2$OFF (abs) 000000
+__CFG_WRT3$OFF (abs) 000000
+__CFG_WRTB$OFF (abs) 000000
+__CFG_WRTC$OFF (abs) 000000
+__CFG_WRTD$OFF (abs) 000000
+__CFG_XINST$OFF (abs) 000000
+__HRAM (abs) 000000
+__Habs1 abs1 000000
+__Hbank0 bank0 000000
+__Hbank1 bank1 000000
+__Hbank2 bank2 000000
+__Hbank3 bank3 000000
+__Hbank4 bank4 000000
+__Hbank5 bank5 000000
+__Hbigbss bigbss 000000
+__Hbigdata bigdata 000000
+__Hbigram bigram 000000
+__Hbss bss 000000
+__HbssBANK0 bssBANK0 000000
+__Hcinit cinit 000000
+__Hclrtext clrtext 000000
+__Hcomram comram 000000
+__Hconfig config 30000E
+__Hconst const 000000
+__HcstackBANK0 cstackBANK0 000000
+__HcstackCOMRAM cstackCOMRAM 000000
+__Hdata data 000000
+__Heeprom_data eeprom_data 000000
+__Hfarbss farbss 000000
+__Hfardata fardata 000000
+__Hibigdata ibigdata 000000
+__Hidata idata 000000
+__Hidloc idloc 200008
+__Hifardata ifardata 000000
+__Hinit init 000304
+__Hintcode intcode 000300
+__Hintcode_body intcode_body 000000
+__Hintcodelo intcodelo 000300
+__Hintentry intentry 000000
+__Hintret intret 000000
+__Hintsave_regs intsave_regs 000000
+__Hirdata irdata 000000
+__Hmediumconst mediumconst 000000
+__HnvFARRAM nvFARRAM 000000
+__Hnvbit nvbit 000000
+__Hnvrram nvrram 000000
+__Hparam rparam 000000
+__Hpowerup powerup 000300
+__Hram ram 000000
+__Hramtop ramtop 000600
+__Hrbit rbit 000000
+__Hrbss rbss 000000
+__Hrdata rdata 000000
+__Hreset_vec reset_vec 000004
+__Hrparam rparam 000000
+__Hsfr sfr 000000
+__Hsmallconst smallconst 00062C
+__Hspace_0 (abs) 30000E
+__Hspace_1 (abs) 0000B7
+__Hspace_2 (abs) 000000
+__Hstack stack 000000
+__Hstruct struct 000000
+__Htemp temp 000036
+__Htext text 000000
+__Htext0 text0 000000
+__Htext1 text1 000000
+__Htext2 text2 000000
+__Htext3 text3 000000
+__Htext4 text4 000000
+__Htext5 text5 000000
+__Htext6 text6 000000
+__Htext7 text7 000000
+__Htext8 text8 000000
+__Htext9 text9 000000
+__LRAM (abs) 000001
+__Labs1 abs1 000000
+__Lbank0 bank0 000000
+__Lbank1 bank1 000000
+__Lbank2 bank2 000000
+__Lbank3 bank3 000000
+__Lbank4 bank4 000000
+__Lbank5 bank5 000000
+__Lbigbss bigbss 000000
+__Lbigdata bigdata 000000
+__Lbigram bigram 000000
+__Lbss bss 000000
+__LbssBANK0 bssBANK0 000000
+__Lcinit cinit 000000
+__Lclrtext clrtext 000000
+__Lcomram comram 000000
+__Lconfig config 300000
+__Lconst const 000000
+__LcstackBANK0 cstackBANK0 000000
+__LcstackCOMRAM cstackCOMRAM 000000
+__Ldata data 000000
+__Leeprom_data eeprom_data 000000
+__Lfarbss farbss 000000
+__Lfardata fardata 000000
+__Libigdata ibigdata 000000
+__Lidata idata 000000
+__Lidloc idloc 200000
+__Lifardata ifardata 000000
+__Linit init 000300
+__Lintcode intcode 000008
+__Lintcode_body intcode_body 000000
+__Lintcodelo intcodelo 000300
+__Lintentry intentry 000000
+__Lintret intret 000000
+__Lintsave_regs intsave_regs 000000
+__Lirdata irdata 000000
+__Lmediumconst mediumconst 000000
+__LnvFARRAM nvFARRAM 000000
+__Lnvbit nvbit 000000
+__Lnvrram nvrram 000000
+__Lparam rparam 000000
+__Lpowerup powerup 000300
+__Lram ram 000000
+__Lramtop ramtop 000600
+__Lrbit rbit 000000
+__Lrbss rbss 000000
+__Lrdata rdata 000000
+__Lreset_vec reset_vec 000000
+__Lrparam rparam 000000
+__Lsfr sfr 000000
+__Lsmallconst smallconst 000600
+__Lspace_0 (abs) 000000
+__Lspace_1 (abs) 000000
+__Lspace_2 (abs) 000000
+__Lstack stack 000000
+__Lstruct struct 000000
+__Ltemp temp 000035
+__Ltext text 000000
+__Ltext0 text0 000000
+__Ltext1 text1 000000
+__Ltext2 text2 000000
+__Ltext3 text3 000000
+__Ltext4 text4 000000
+__Ltext5 text5 000000
+__Ltext6 text6 000000
+__Ltext7 text7 000000
+__Ltext8 text8 000000
+__Ltext9 text9 000000
+__S0 (abs) 30000E
+__S1 (abs) 0000B7
+__S2 (abs) 000000
+___inthi_sp stack 000000
+___intlo_sp stack 000000
+___param_bank (abs) 000000
+___rparam_used (abs) 000001
+___sp stack 000000
+__accesstop (abs) 000060
+__activetblptr (abs) 000002
+__end_of__initialization cinit 000944
+__end_of_eusart1_init text7 000938
+__end_of_eusart2_init text6 00091C
+__end_of_eusart2_putch text9 00095E
+__end_of_eusart_write_midi text8 0007D6
+__end_of_init_hw text5 00088A
+__end_of_isr intcode 000300
+__end_of_main text0 000762
+__end_of_memset text4 0008B6
+__end_of_midi_note_on text1 000838
+__end_of_midi_notes_steps_table smallconst 00062B
+__end_of_midi_set_channel text3 0008DC
+__end_of_midi_set_status text2 000900
+__initialization cinit 000938
+__mediumconst mediumconst 000000
+__pbssBANK0 bssBANK0 000060
+__pcinit cinit 000938
+__pcstackBANK0 cstackBANK0 0000A2
+__pcstackCOMRAM cstackCOMRAM 000001
+__pintcode intcode 000008
+__psmallconst smallconst 000600
+__ptext0 text0 00062C
+__ptext1 text1 0007D6
+__ptext2 text2 0008DC
+__ptext3 text3 0008B6
+__ptext4 text4 00088A
+__ptext5 text5 000838
+__ptext6 text6 000900
+__ptext7 text7 00091C
+__ptext8 text8 000762
+__ptext9 text9 000952
+__ramtop ramtop 000600
+__size_of_eusart1_init (abs) 000000
+__size_of_eusart2_init (abs) 000000
+__size_of_eusart2_putch (abs) 000000
+__size_of_eusart_write_midi (abs) 000000
+__size_of_init_hw (abs) 000000
+__size_of_isr (abs) 000000
+__size_of_main (abs) 000000
+__size_of_memset (abs) 000000
+__size_of_midi_note_on (abs) 000000
+__size_of_midi_set_channel (abs) 000000
+__size_of_midi_set_status (abs) 000000
+__smallconst smallconst 000600
+_eusart1_init text7 00091C
+_eusart2_init text6 000900
+_eusart2_putch text9 000952
+_eusart_write_midi text8 000762
+_init_hw text5 000838
+_isr intcode 000008
+_isr$304 cstackCOMRAM 000027
+_isr$305 cstackCOMRAM 000028
+_keypresses bssBANK0 000060
+_keys_data bssBANK0 000062
+_main text0 00062C
+_memset text4 00088A
+_midi_note_on text1 0007D6
+_midi_notes_steps_table smallconst 000601
+_midi_set_channel text3 0008B6
+_midi_set_status text2 0008DC
+btemp temp 000035
+end_of_initialization cinit 000944
+eusart2_putch@c cstackCOMRAM 00002A
+eusart_write_midi@data cstackCOMRAM 000031
+eusart_write_midi@length cstackCOMRAM 00002F
+eusart_write_midi@pkt cstackCOMRAM 00002B
+int$flags temp 000035
+intlevel0 text 000000
+intlevel1 text 000000
+intlevel2 text 000000
+intlevel3 text 000000
+isr@data_a cstackCOMRAM 000025
+isr@data_b cstackCOMRAM 000026
+isr@i cstackCOMRAM 000029
+main@conf_message cstackBANK0 0000A7
+main@i cstackBANK0 0000AE
+main@message cstackBANK0 0000B0
+memset@c cstackCOMRAM 00002C
+memset@n cstackCOMRAM 00002E
+memset@p cstackCOMRAM 000030
+memset@p1 cstackCOMRAM 00002A
+midi_note_on@channel cstackCOMRAM 000031
+midi_note_on@note cstackCOMRAM 000033
+midi_note_on@pkt cstackCOMRAM 00002F
+midi_note_on@velocity cstackCOMRAM 000034
+midi_set_channel@channel cstackCOMRAM 00002C
+midi_set_channel@pkt cstackCOMRAM 00002A
+midi_set_status@pkt cstackCOMRAM 00002A
+midi_set_status@status cstackCOMRAM 00002C
+stackhi (abs) 0005FF
+stacklo (abs) 0000B7
+start init 000300
+start_initialization cinit 000938
+wtemp6 temp 000036
FUNCTION INFORMATION:
*************** function _main *****************
Defined at:
- line 215 in file "main.c"
+ line 221 in file "main.c"
Parameters: Size Location Type
None
Auto vars: Size Location Type
- message 7 13[BANK0 ] struct .
- i 2 11[BANK0 ] unsigned int
+ message 7 14[BANK0 ] struct .
+ conf_message 7 5[BANK0 ] struct .
+ i 2 12[BANK0 ] unsigned int
Return value: Size Location Type
1 wreg void
Registers used:
- wreg, fsr2l, fsr2h, status,2, status,0, cstack
+ wreg, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack
Tracked objects:
On entry :
On exit :
Unchanged:
Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
Params: 0 0 0 0 0 0 0
- Locals: 0 9 0 0 0 0 0
+ Locals: 0 16 0 0 0 0 0
Temps: 0 5 0 0 0 0 0
- Totals: 0 14 0 0 0 0 0
-Total ram usage: 14 bytes
+ Totals: 0 21 0 0 0 0 0
+Total ram usage: 21 bytes
Hardware stack levels required when called: 3
This function calls:
_eusart_write_midi
@@ -507,15 +515,15 @@ Total ram usage: 14 bytes
Defined at:
line 62 in file "midi.c"
Parameters: Size Location Type
- pkt 2 0[BANK0 ] PTR struct .
+ pkt 2 46[COMRAM] PTR struct .
-> main@message(7),
- channel 2 2[BANK0 ] unsigned int
- note 1 4[BANK0 ] enum E31
- velocity 1 5[BANK0 ] unsigned char
+ channel 2 48[COMRAM] unsigned int
+ note 1 50[COMRAM] enum E31
+ velocity 1 51[COMRAM] unsigned char
Auto vars: Size Location Type
None
Return value: Size Location Type
- 2 0[BANK0 ] int
+ 2 46[COMRAM] int
Registers used:
wreg, fsr2l, fsr2h, status,2, status,0, cstack
Tracked objects:
@@ -523,10 +531,10 @@ Total ram usage: 14 bytes
On exit :
Unchanged:
Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
- Params: 0 6 0 0 0 0 0
+ Params: 6 0 0 0 0 0 0
Locals: 0 0 0 0 0 0 0
Temps: 0 0 0 0 0 0 0
- Totals: 0 6 0 0 0 0 0
+ Totals: 6 0 0 0 0 0 0
Total ram usage: 6 bytes
Hardware stack levels used: 1
Hardware stack levels required when called: 2
@@ -542,13 +550,13 @@ Total ram usage: 6 bytes
Defined at:
line 40 in file "midi.c"
Parameters: Size Location Type
- pkt 2 42[COMRAM] PTR struct .
+ pkt 2 41[COMRAM] PTR struct .
-> main@message(7),
- status 1 44[COMRAM] enum E40
+ status 1 43[COMRAM] enum E40
Auto vars: Size Location Type
None
Return value: Size Location Type
- 2 42[COMRAM] int
+ 2 41[COMRAM] int
Registers used:
wreg, fsr2l, fsr2h, status,2, status,0
Tracked objects:
@@ -575,13 +583,13 @@ Total ram usage: 4 bytes
Defined at:
line 51 in file "midi.c"
Parameters: Size Location Type
- pkt 2 42[COMRAM] PTR struct .
+ pkt 2 41[COMRAM] PTR struct .
-> main@message(7),
- channel 2 44[COMRAM] unsigned int
+ channel 2 43[COMRAM] unsigned int
Auto vars: Size Location Type
None
Return value: Size Location Type
- 2 42[COMRAM] int
+ 2 41[COMRAM] int
Registers used:
wreg, fsr2l, fsr2h, status,2, status,0
Tracked objects:
@@ -608,15 +616,15 @@ Total ram usage: 5 bytes
Defined at:
line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c"
Parameters: Size Location Type
- p1 2 42[COMRAM] PTR void
+ p1 2 41[COMRAM] PTR void
-> keys_data(64),
- c 2 44[COMRAM] int
- n 2 46[COMRAM] unsigned int
+ c 2 43[COMRAM] int
+ n 2 45[COMRAM] unsigned int
Auto vars: Size Location Type
- p 2 48[COMRAM] PTR unsigned char
+ p 2 47[COMRAM] PTR unsigned char
-> keys_data(64),
Return value: Size Location Type
- 2 42[COMRAM] PTR void
+ 2 41[COMRAM] PTR void
Registers used:
wreg, fsr2l, fsr2h, status,2, status,0
Tracked objects:
@@ -640,7 +648,7 @@ Total ram usage: 8 bytes
*************** function _init_hw *****************
Defined at:
- line 150 in file "main.c"
+ line 156 in file "main.c"
Parameters: Size Location Type
None
Auto vars: Size Location Type
@@ -731,16 +739,16 @@ Total ram usage: 0 bytes
*************** function _eusart_write_midi *****************
Defined at:
- line 261 in file "main.c"
+ line 276 in file "main.c"
Parameters: Size Location Type
- pkt 2 43[COMRAM] PTR const struct .
- -> main@message(7),
+ pkt 2 42[COMRAM] PTR const struct .
+ -> main@message(7), main@conf_message(7),
Auto vars: Size Location Type
- data 2 49[COMRAM] PTR unsigned char
- -> message.data(4), main@message(7),
- length 2 47[COMRAM] unsigned int
+ data 2 48[COMRAM] PTR unsigned char
+ -> message.data(4), main@message(7), conf_message.data(4), main@conf_message(7),
+ length 2 46[COMRAM] unsigned int
Return value: Size Location Type
- 2 43[COMRAM] int
+ 2 42[COMRAM] int
Registers used:
wreg, fsr2l, fsr2h, status,2, status,0, cstack
Tracked objects:
@@ -764,11 +772,11 @@ Total ram usage: 8 bytes
*************** function _eusart2_putch *****************
Defined at:
- line 52 in file "rs232.c"
+ line 53 in file "rs232.c"
Parameters: Size Location Type
c 1 wreg unsigned char
Auto vars: Size Location Type
- c 1 42[COMRAM] unsigned char
+ c 1 41[COMRAM] unsigned char
Return value: Size Location Type
1 wreg void
Registers used:
@@ -794,11 +802,11 @@ Total ram usage: 1 bytes
*************** function _isr *****************
Defined at:
- line 113 in file "main.c"
+ line 114 in file "main.c"
Parameters: Size Location Type
None
Auto vars: Size Location Type
- i 1 41[COMRAM] unsigned char
+ i 1 40[COMRAM] unsigned char
data_b 1 37[COMRAM] unsigned char
data_a 1 36[COMRAM] unsigned char
Return value: Size Location Type
@@ -811,10 +819,10 @@ Total ram usage: 1 bytes
Unchanged:
Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5
Params: 0 0 0 0 0 0 0
- Locals: 6 0 0 0 0 0 0
+ Locals: 5 0 0 0 0 0 0
Temps: 36 0 0 0 0 0 0
- Totals: 42 0 0 0 0 0 0
-Total ram usage: 42 bytes
+ Totals: 41 0 0 0 0 0 0
+Total ram usage: 41 bytes
Hardware stack levels used: 1
This function calls:
Nothing
@@ -828,34 +836,35 @@ MODULE INFORMATION
Module Function Class Link Load Size
rs232.c
- _eusart2_putch CODE 0636 0000 13
- _eusart1_init CODE 0600 0000 29
- _eusart2_init CODE 05E4 0000 29
+ _eusart2_putch CODE 0952 0000 13
+ _eusart1_init CODE 091C 0000 29
+ _eusart2_init CODE 0900 0000 29
rs232.c estimated size: 71
shared
- __initialization CODE 061C 0000 13
+ _midi_notes_steps_table SMALLCONST 0601 0000 43
+ __initialization CODE 0938 0000 13
-shared estimated size: 13
+shared estimated size: 56
midi.c
- _midi_set_channel CODE 059A 0000 39
- _midi_note_on CODE 04A6 0000 103
- _midi_set_status CODE 05C0 0000 37
+ _midi_set_channel CODE 08B6 0000 39
+ _midi_note_on CODE 07D6 0000 99
+ _midi_set_status CODE 08DC 0000 37
-midi.c estimated size: 179
+midi.c estimated size: 175
C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
- _memset CODE 056E 0000 45
+ _memset CODE 088A 0000 45
C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c estimated size: 45
main.c
- _init_hw CODE 050C 0000 99
- _eusart_write_midi CODE 0432 0000 117
- _main CODE 0356 0000 221
- _isr CODE 0008 0000 843
+ _init_hw CODE 0838 0000 83
+ _eusart_write_midi CODE 0762 0000 117
+ _main CODE 062C 0000 311
+ _isr CODE 0008 0000 761
-main.c estimated size: 1280
+main.c estimated size: 1272
diff --git a/src/dist/default/production/src.production.mum b/src/dist/default/production/src.production.mum
index 0b9440e..9514c62 100644
--- a/src/dist/default/production/src.production.mum
+++ b/src/dist/default/production/src.production.mum
@@ -1,9 +1,9 @@
Memory Summary:
- Program space used 63Eh ( 1598) of 7A00h bytes ( 5.1%)
- Data space used 8Ah ( 138) of 5FFh bytes ( 9.0%)
+ Program space used 65Eh ( 1630) of 7A00h bytes ( 5.2%)
+ Data space used 8Ch ( 140) of 5FFh bytes ( 9.1%)
Configuration bits used 7h ( 7) of 7h words (100.0%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
ID Location space used 8h ( 8) of 8h bytes (100.0%)
- Data stack space used 0h ( 0) of 54Ah bytes ( 0.0%)
+ Data stack space used 0h ( 0) of 549h bytes ( 0.0%)
diff --git a/src/dist/default/production/src.production.obj b/src/dist/default/production/src.production.obj
index 7306705..3c79929 100644
--- a/src/dist/default/production/src.production.obj
+++ b/src/dist/default/production/src.production.obj
Binary files differ
diff --git a/src/dist/default/production/src.production.rlf b/src/dist/default/production/src.production.rlf
index b5a0911..68dcfd8 100644
--- a/src/dist/default/production/src.production.rlf
+++ b/src/dist/default/production/src.production.rlf
Binary files differ
diff --git a/src/dist/default/production/src.production.sdb b/src/dist/default/production/src.production.sdb
index c0c1673..46cff40 100644
--- a/src/dist/default/production/src.production.sdb
+++ b/src/dist/default/production/src.production.sdb
@@ -3,7 +3,17 @@
[d edition pro ]
[d chip 18F45K22 ]
[d frameptr 4065 ]
-"232 Z:\SAMB_4\projects\xilofono\src\main.c
+"239 Z:\SAMB_4\projects\xilofono\src\main.c
+[e E52 . `uc
+NOTE_OFF 8
+NOTE_ON 9
+POLYPHONIC_KEYPRESS 10
+CONTROLLER 11
+PROGRAM_CHANGE 12
+CHANNEL_PRESSURE 13
+PITCH_BLEND 15
+]
+"244
[e E43 . `uc
C 0
D 1
@@ -15,8 +25,8 @@ B 6
]
"41 Z:\SAMB_4\projects\xilofono\src\midi.c
[e E40 . `uc
-NOTE_ON 8
-NOTE_OFF 9
+NOTE_OFF 8
+NOTE_ON 9
POLYPHONIC_KEYPRESS 10
CONTROLLER 11
PROGRAM_CHANGE 12
@@ -55,13 +65,13 @@ B 6
[v ___flmul __flmul `(d 1 e 3 0 ]
"15 C:\Program Files\Microchip\xc8\v1.44\sources\common\Umul32.c
[v ___lmul __lmul `(ul 1 e 4 0 ]
-"113 Z:\SAMB_4\projects\xilofono\src\main.c
+"114 Z:\SAMB_4\projects\xilofono\src\main.c
[v _isr isr `II(v 1 e 1 0 ]
-"150
+"156
[v _init_hw init_hw `T(v 1 e 1 0 ]
-"215
+"221
[v _main main `(v 1 e 1 0 ]
-"261
+"276
[v _eusart_write_midi eusart_write_midi `(i 1 e 2 0 ]
"40 Z:\SAMB_4\projects\xilofono\src\midi.c
[v _midi_set_status midi_set_status `(i 1 e 2 0 ]
@@ -73,11 +83,11 @@ B 6
[v _eusart1_init eusart1_init `(v 1 e 1 0 ]
"25
[v _eusart2_init eusart2_init `(v 1 e 1 0 ]
-"46
+"47
[v _eusart1_putch eusart1_putch `(v 1 e 1 0 ]
-"52
+"53
[v _eusart2_putch eusart2_putch `(v 1 e 1 0 ]
-"58
+"59
[v _eusart1_getch eusart1_getch `(uc 1 e 1 0 ]
"50 C:\Program Files\Microchip\xc8\v1.44\include\pic18f45k22.h
[v _ANSELA ANSELA `VEuc 1 e 1 @3896 ]
@@ -87,7 +97,7 @@ B 6
[v _ANSELC ANSELC `VEuc 1 e 1 @3898 ]
"196
[v _ANSELD ANSELD `VEuc 1 e 1 @3899 ]
-[s S784 . 1 `uc 1 ABDEN 1 0 :1:0
+[s S481 . 1 `uc 1 ABDEN 1 0 :1:0
`uc 1 WUE 1 0 :1:1
`uc 1 . 1 0 :1:2
`uc 1 BRG16 1 0 :1:3
@@ -97,10 +107,10 @@ B 6
`uc 1 ABDOVF 1 0 :1:7
]
"4328
-[s S793 . 1 `uc 1 . 1 0 :4:0
+[s S490 . 1 `uc 1 . 1 0 :4:0
`uc 1 SCKP 1 0 :1:4
]
-[s S1033 . 1 `uc 1 ABDEN2 1 0 :1:0
+[s S730 . 1 `uc 1 ABDEN2 1 0 :1:0
`uc 1 WUE2 1 0 :1:1
`uc 1 . 1 0 :1:2
`uc 1 BRG162 1 0 :1:3
@@ -109,14 +119,14 @@ B 6
`uc 1 RCIDL2 1 0 :1:6
`uc 1 ABDOVF2 1 0 :1:7
]
-[s S1042 . 1 `uc 1 . 1 0 :4:0
+[s S739 . 1 `uc 1 . 1 0 :4:0
`uc 1 TXCKP2 1 0 :1:4
`uc 1 RXDTP2 1 0 :1:5
`uc 1 RCMT2 1 0 :1:6
]
-[u S1047 . 1 `S784 1 . 1 0 `S793 1 . 1 0 `S1033 1 . 1 0 `S1042 1 . 1 0 ]
-[v _BAUDCON2bits BAUDCON2bits `VES1047 1 e 1 @3952 ]
-[s S712 . 1 `uc 1 RX9D 1 0 :1:0
+[u S744 . 1 `S481 1 . 1 0 `S490 1 . 1 0 `S730 1 . 1 0 `S739 1 . 1 0 ]
+[v _BAUDCON2bits BAUDCON2bits `VES744 1 e 1 @3952 ]
+[s S409 . 1 `uc 1 RX9D 1 0 :1:0
`uc 1 OERR 1 0 :1:1
`uc 1 FERR 1 0 :1:2
`uc 1 ADDEN 1 0 :1:3
@@ -126,10 +136,10 @@ B 6
`uc 1 SPEN 1 0 :1:7
]
"4593
-[s S721 . 1 `uc 1 . 1 0 :3:0
+[s S418 . 1 `uc 1 . 1 0 :3:0
`uc 1 ADEN 1 0 :1:3
]
-[s S968 . 1 `uc 1 RX9D2 1 0 :1:0
+[s S665 . 1 `uc 1 RX9D2 1 0 :1:0
`uc 1 OERR2 1 0 :1:1
`uc 1 FERR2 1 0 :1:2
`uc 1 ADDEN2 1 0 :1:3
@@ -138,16 +148,16 @@ B 6
`uc 1 RX92 1 0 :1:6
`uc 1 SPEN2 1 0 :1:7
]
-[s S977 . 1 `uc 1 RCD82 1 0 :1:0
+[s S674 . 1 `uc 1 RCD82 1 0 :1:0
`uc 1 . 1 0 :5:1
`uc 1 RC8_92 1 0 :1:6
]
-[s S981 . 1 `uc 1 . 1 0 :6:0
+[s S678 . 1 `uc 1 . 1 0 :6:0
`uc 1 RC92 1 0 :1:6
]
-[u S984 . 1 `S712 1 . 1 0 `S721 1 . 1 0 `S968 1 . 1 0 `S977 1 . 1 0 `S981 1 . 1 0 ]
-[v _RCSTA2bits RCSTA2bits `VES984 1 e 1 @3953 ]
-[s S663 . 1 `uc 1 TX9D 1 0 :1:0
+[u S681 . 1 `S409 1 . 1 0 `S418 1 . 1 0 `S665 1 . 1 0 `S674 1 . 1 0 `S678 1 . 1 0 ]
+[v _RCSTA2bits RCSTA2bits `VES681 1 e 1 @3953 ]
+[s S360 . 1 `uc 1 TX9D 1 0 :1:0
`uc 1 TRMT 1 0 :1:1
`uc 1 BRGH 1 0 :1:2
`uc 1 SENDB 1 0 :1:3
@@ -157,7 +167,7 @@ B 6
`uc 1 CSRC 1 0 :1:7
]
"4873
-[s S916 . 1 `uc 1 TX9D2 1 0 :1:0
+[s S613 . 1 `uc 1 TX9D2 1 0 :1:0
`uc 1 TRMT2 1 0 :1:1
`uc 1 BRGH2 1 0 :1:2
`uc 1 SENDB2 1 0 :1:3
@@ -166,12 +176,12 @@ B 6
`uc 1 TX92 1 0 :1:6
`uc 1 CSRC2 1 0 :1:7
]
-[s S925 . 1 `uc 1 TXD82 1 0 :1:0
+[s S622 . 1 `uc 1 TXD82 1 0 :1:0
`uc 1 . 1 0 :5:1
`uc 1 TX8_92 1 0 :1:6
]
-[u S929 . 1 `S663 1 . 1 0 `S916 1 . 1 0 `S925 1 . 1 0 ]
-[v _TXSTA2bits TXSTA2bits `VES929 1 e 1 @3954 ]
+[u S626 . 1 `S360 1 . 1 0 `S613 1 . 1 0 `S622 1 . 1 0 ]
+[v _TXSTA2bits TXSTA2bits `VES626 1 e 1 @3954 ]
"5093
[v _TX2REG TX2REG `VEuc 1 e 1 @3955 ]
"5164
@@ -180,133 +190,13 @@ B 6
[v _SPBRGH2 SPBRGH2 `VEuc 1 e 1 @3958 ]
"6278
[v _PORTA PORTA `VEuc 1 e 1 @3968 ]
-[s S160 . 1 `uc 1 RA0 1 0 :1:0
-`uc 1 RA1 1 0 :1:1
-`uc 1 RA2 1 0 :1:2
-`uc 1 RA3 1 0 :1:3
-`uc 1 RA4 1 0 :1:4
-`uc 1 RA5 1 0 :1:5
-`uc 1 RA6 1 0 :1:6
-`uc 1 RA7 1 0 :1:7
-]
-"6363
-[s S169 . 1 `uc 1 AN0 1 0 :1:0
-`uc 1 AN1 1 0 :1:1
-`uc 1 AN2 1 0 :1:2
-`uc 1 AN3 1 0 :1:3
-`uc 1 . 1 0 :1:4
-`uc 1 AN4 1 0 :1:5
-]
-[s S176 . 1 `uc 1 C12IN0M 1 0 :1:0
-`uc 1 C12IN1M 1 0 :1:1
-`uc 1 C2INP 1 0 :1:2
-`uc 1 C1INP 1 0 :1:3
-`uc 1 C1OUT 1 0 :1:4
-`uc 1 C2OUT 1 0 :1:5
-]
-[s S183 . 1 `uc 1 C12IN0N 1 0 :1:0
-`uc 1 C12IN1N 1 0 :1:1
-`uc 1 VREFM 1 0 :1:2
-`uc 1 VREFP 1 0 :1:3
-`uc 1 T0CKI 1 0 :1:4
-`uc 1 SS 1 0 :1:5
-]
-[s S190 . 1 `uc 1 . 1 0 :5:0
-`uc 1 NOT_SS 1 0 :1:5
-]
-[s S193 . 1 `uc 1 . 1 0 :2:0
-`uc 1 VREFN 1 0 :1:2
-`uc 1 . 1 0 :1:3
-`uc 1 SRQ 1 0 :1:4
-`uc 1 nSS 1 0 :1:5
-]
-[s S199 . 1 `uc 1 . 1 0 :2:0
-`uc 1 CVREF 1 0 :1:2
-`uc 1 . 1 0 :2:3
-`uc 1 LVDIN 1 0 :1:5
-]
-[s S204 . 1 `uc 1 . 1 0 :2:0
-`uc 1 DACOUT 1 0 :1:2
-`uc 1 . 1 0 :2:3
-`uc 1 HLVDIN 1 0 :1:5
-]
-[s S209 . 1 `uc 1 . 1 0 :5:0
-`uc 1 SS1 1 0 :1:5
-]
-[s S212 . 1 `uc 1 . 1 0 :5:0
-`uc 1 NOT_SS1 1 0 :1:5
-]
-[s S215 . 1 `uc 1 . 1 0 :5:0
-`uc 1 nSS1 1 0 :1:5
-]
-[s S218 . 1 `uc 1 . 1 0 :5:0
-`uc 1 SRNQ 1 0 :1:5
-]
-[s S221 . 1 `uc 1 ULPWUIN 1 0 :1:0
-`uc 1 . 1 0 :6:1
-`uc 1 RJPU 1 0 :1:7
-]
-[u S225 . 1 `S160 1 . 1 0 `S169 1 . 1 0 `S176 1 . 1 0 `S183 1 . 1 0 `S190 1 . 1 0 `S193 1 . 1 0 `S199 1 . 1 0 `S204 1 . 1 0 `S209 1 . 1 0 `S212 1 . 1 0 `S215 1 . 1 0 `S218 1 . 1 0 `S221 1 . 1 0 ]
-[v _PORTAbits PORTAbits `VES225 1 e 1 @3968 ]
"6563
[v _PORTB PORTB `VEuc 1 e 1 @3969 ]
-[s S21 . 1 `uc 1 RD0 1 0 :1:0
-`uc 1 RD1 1 0 :1:1
-`uc 1 RD2 1 0 :1:2
-`uc 1 RD3 1 0 :1:3
-`uc 1 RD4 1 0 :1:4
-`uc 1 RD5 1 0 :1:5
-`uc 1 RD6 1 0 :1:6
-`uc 1 RD7 1 0 :1:7
-]
-"7203
-[s S30 . 1 `uc 1 . 1 0 :2:0
-`uc 1 P2B 1 0 :1:2
-`uc 1 P2C 1 0 :1:3
-`uc 1 P2D 1 0 :1:4
-`uc 1 P1B 1 0 :1:5
-`uc 1 P1C 1 0 :1:6
-`uc 1 P1D 1 0 :1:7
-]
-[s S38 . 1 `uc 1 . 1 0 :1:0
-`uc 1 CCP4 1 0 :1:1
-`uc 1 . 1 0 :4:2
-`uc 1 TX2 1 0 :1:6
-`uc 1 RX2 1 0 :1:7
-]
-[s S44 . 1 `uc 1 . 1 0 :3:0
-`uc 1 NOT_SS2 1 0 :1:3
-]
-[s S47 . 1 `uc 1 SCK2 1 0 :1:0
-`uc 1 SDI2 1 0 :1:1
-`uc 1 . 1 0 :1:2
-`uc 1 nSS2 1 0 :1:3
-`uc 1 SDO2 1 0 :1:4
-`uc 1 . 1 0 :1:5
-`uc 1 CK2 1 0 :1:6
-`uc 1 DT2 1 0 :1:7
-]
-[s S56 . 1 `uc 1 SCL2 1 0 :1:0
-`uc 1 SDA2 1 0 :1:1
-`uc 1 . 1 0 :1:2
-`uc 1 SS2 1 0 :1:3
-]
-[s S61 . 1 `uc 1 AN20 1 0 :1:0
-`uc 1 AN21 1 0 :1:1
-`uc 1 AN22 1 0 :1:2
-`uc 1 AN23 1 0 :1:3
-`uc 1 AN24 1 0 :1:4
-`uc 1 AN25 1 0 :1:5
-`uc 1 AN26 1 0 :1:6
-`uc 1 AN27 1 0 :1:7
-]
-[u S70 . 1 `S21 1 . 1 0 `S30 1 . 1 0 `S38 1 . 1 0 `S44 1 . 1 0 `S47 1 . 1 0 `S56 1 . 1 0 `S61 1 . 1 0 ]
-[v _PORTDbits PORTDbits `VES70 1 e 1 @3971 ]
"8058
[v _TRISA TRISA `VEuc 1 e 1 @3986 ]
"8280
[v _TRISB TRISB `VEuc 1 e 1 @3987 ]
-[s S867 . 1 `uc 1 TRISC0 1 0 :1:0
+[s S564 . 1 `uc 1 TRISC0 1 0 :1:0
`uc 1 TRISC1 1 0 :1:1
`uc 1 TRISC2 1 0 :1:2
`uc 1 TRISC3 1 0 :1:3
@@ -316,7 +206,7 @@ B 6
`uc 1 TRISC7 1 0 :1:7
]
"8534
-[s S876 . 1 `uc 1 RC0 1 0 :1:0
+[s S573 . 1 `uc 1 RC0 1 0 :1:0
`uc 1 RC1 1 0 :1:1
`uc 1 RC2 1 0 :1:2
`uc 1 RC3 1 0 :1:3
@@ -325,9 +215,9 @@ B 6
`uc 1 RC6 1 0 :1:6
`uc 1 RC7 1 0 :1:7
]
-[u S885 . 1 `S867 1 . 1 0 `S876 1 . 1 0 ]
-[v _TRISCbits TRISCbits `VES885 1 e 1 @3988 ]
-[s S418 . 1 `uc 1 TRISD0 1 0 :1:0
+[u S582 . 1 `S564 1 . 1 0 `S573 1 . 1 0 ]
+[v _TRISCbits TRISCbits `VES582 1 e 1 @3988 ]
+[s S776 . 1 `uc 1 TRISD0 1 0 :1:0
`uc 1 TRISD1 1 0 :1:1
`uc 1 TRISD2 1 0 :1:2
`uc 1 TRISD3 1 0 :1:3
@@ -337,23 +227,32 @@ B 6
`uc 1 TRISD7 1 0 :1:7
]
"8756
-[u S436 . 1 `S418 1 . 1 0 `S21 1 . 1 0 ]
-[v _TRISDbits TRISDbits `VES436 1 e 1 @3989 ]
-[s S354 . 1 `uc 1 TUN 1 0 :6:0
+[s S785 . 1 `uc 1 RD0 1 0 :1:0
+`uc 1 RD1 1 0 :1:1
+`uc 1 RD2 1 0 :1:2
+`uc 1 RD3 1 0 :1:3
+`uc 1 RD4 1 0 :1:4
+`uc 1 RD5 1 0 :1:5
+`uc 1 RD6 1 0 :1:6
+`uc 1 RD7 1 0 :1:7
+]
+[u S794 . 1 `S776 1 . 1 0 `S785 1 . 1 0 ]
+[v _TRISDbits TRISDbits `VES794 1 e 1 @3989 ]
+[s S102 . 1 `uc 1 TUN 1 0 :6:0
`uc 1 PLLEN 1 0 :1:6
`uc 1 INTSRC 1 0 :1:7
]
"9082
-[s S358 . 1 `uc 1 TUN0 1 0 :1:0
+[s S106 . 1 `uc 1 TUN0 1 0 :1:0
`uc 1 TUN1 1 0 :1:1
`uc 1 TUN2 1 0 :1:2
`uc 1 TUN3 1 0 :1:3
`uc 1 TUN4 1 0 :1:4
`uc 1 TUN5 1 0 :1:5
]
-[u S365 . 1 `S354 1 . 1 0 `S358 1 . 1 0 ]
-[v _OSCTUNEbits OSCTUNEbits `VES365 1 e 1 @3995 ]
-[s S487 . 1 `uc 1 TMR1IE 1 0 :1:0
+[u S113 . 1 `S102 1 . 1 0 `S106 1 . 1 0 ]
+[v _OSCTUNEbits OSCTUNEbits `VES113 1 e 1 @3995 ]
+[s S195 . 1 `uc 1 TMR1IE 1 0 :1:0
`uc 1 TMR2IE 1 0 :1:1
`uc 1 CCP1IE 1 0 :1:2
`uc 1 SSP1IE 1 0 :1:3
@@ -362,14 +261,14 @@ B 6
`uc 1 ADIE 1 0 :1:6
]
"9434
-[s S495 . 1 `uc 1 . 1 0 :3:0
+[s S203 . 1 `uc 1 . 1 0 :3:0
`uc 1 SSPIE 1 0 :1:3
`uc 1 TXIE 1 0 :1:4
`uc 1 RCIE 1 0 :1:5
]
-[u S500 . 1 `S487 1 . 1 0 `S495 1 . 1 0 ]
-[v _PIE1bits PIE1bits `VES500 1 e 1 @3997 ]
-[s S128 . 1 `uc 1 TMR1IF 1 0 :1:0
+[u S208 . 1 `S195 1 . 1 0 `S203 1 . 1 0 ]
+[v _PIE1bits PIE1bits `VES208 1 e 1 @3997 ]
+[s S21 . 1 `uc 1 TMR1IF 1 0 :1:0
`uc 1 TMR2IF 1 0 :1:1
`uc 1 CCP1IF 1 0 :1:2
`uc 1 SSP1IF 1 0 :1:3
@@ -378,15 +277,15 @@ B 6
`uc 1 ADIF 1 0 :1:6
]
"9511
-[s S136 . 1 `uc 1 . 1 0 :3:0
+[s S29 . 1 `uc 1 . 1 0 :3:0
`uc 1 SSPIF 1 0 :1:3
`uc 1 TXIF 1 0 :1:4
`uc 1 RCIF 1 0 :1:5
]
-[u S141 . 1 `S128 1 . 1 0 `S136 1 . 1 0 ]
-[v _PIR1bits PIR1bits `VES141 1 e 1 @3998 ]
+[u S34 . 1 `S21 1 . 1 0 `S29 1 . 1 0 ]
+[v _PIR1bits PIR1bits `VES34 1 e 1 @3998 ]
"10396
-[s S724 . 1 `uc 1 RX9D1 1 0 :1:0
+[s S421 . 1 `uc 1 RX9D1 1 0 :1:0
`uc 1 OERR1 1 0 :1:1
`uc 1 FERR1 1 0 :1:2
`uc 1 ADDEN1 1 0 :1:3
@@ -395,20 +294,20 @@ B 6
`uc 1 RX91 1 0 :1:6
`uc 1 SPEN1 1 0 :1:7
]
-[s S733 . 1 `uc 1 RCD8 1 0 :1:0
+[s S430 . 1 `uc 1 RCD8 1 0 :1:0
`uc 1 . 1 0 :5:1
`uc 1 RC8_9 1 0 :1:6
]
-[s S737 . 1 `uc 1 . 1 0 :6:0
+[s S434 . 1 `uc 1 . 1 0 :6:0
`uc 1 RC9 1 0 :1:6
]
-[s S740 . 1 `uc 1 . 1 0 :5:0
+[s S437 . 1 `uc 1 . 1 0 :5:0
`uc 1 SRENA 1 0 :1:5
]
-[u S743 . 1 `S712 1 . 1 0 `S721 1 . 1 0 `S724 1 . 1 0 `S733 1 . 1 0 `S737 1 . 1 0 `S740 1 . 1 0 ]
-[v _RCSTA1bits RCSTA1bits `VES743 1 e 1 @4011 ]
+[u S440 . 1 `S409 1 . 1 0 `S418 1 . 1 0 `S421 1 . 1 0 `S430 1 . 1 0 `S434 1 . 1 0 `S437 1 . 1 0 ]
+[v _RCSTA1bits RCSTA1bits `VES440 1 e 1 @4011 ]
"10840
-[s S672 . 1 `uc 1 TX9D1 1 0 :1:0
+[s S369 . 1 `uc 1 TX9D1 1 0 :1:0
`uc 1 TRMT1 1 0 :1:1
`uc 1 BRGH1 1 0 :1:2
`uc 1 SENDB1 1 0 :1:3
@@ -417,12 +316,12 @@ B 6
`uc 1 TX91 1 0 :1:6
`uc 1 CSRC1 1 0 :1:7
]
-[s S681 . 1 `uc 1 TXD8 1 0 :1:0
+[s S378 . 1 `uc 1 TXD8 1 0 :1:0
`uc 1 . 1 0 :5:1
`uc 1 TX8_9 1 0 :1:6
]
-[u S685 . 1 `S663 1 . 1 0 `S672 1 . 1 0 `S681 1 . 1 0 ]
-[v _TXSTA1bits TXSTA1bits `VES685 1 e 1 @4012 ]
+[u S382 . 1 `S360 1 . 1 0 `S369 1 . 1 0 `S378 1 . 1 0 ]
+[v _TXSTA1bits TXSTA1bits `VES382 1 e 1 @4012 ]
"11183
[v _TX1REG TX1REG `VEuc 1 e 1 @4013 ]
"11261
@@ -432,7 +331,7 @@ B 6
"11408
[v _SPBRGH1 SPBRGH1 `VEuc 1 e 1 @4016 ]
"12436
-[s S796 . 1 `uc 1 ABDEN1 1 0 :1:0
+[s S493 . 1 `uc 1 ABDEN1 1 0 :1:0
`uc 1 WUE1 1 0 :1:1
`uc 1 . 1 0 :1:2
`uc 1 BRG161 1 0 :1:3
@@ -441,30 +340,30 @@ B 6
`uc 1 RCIDL1 1 0 :1:6
`uc 1 ABDOVF1 1 0 :1:7
]
-[s S805 . 1 `uc 1 . 1 0 :4:0
+[s S502 . 1 `uc 1 . 1 0 :4:0
`uc 1 TXCKP 1 0 :1:4
`uc 1 RXDTP 1 0 :1:5
`uc 1 RCMT 1 0 :1:6
]
-[s S810 . 1 `uc 1 . 1 0 :4:0
+[s S507 . 1 `uc 1 . 1 0 :4:0
`uc 1 TXCKP1 1 0 :1:4
`uc 1 RXDTP1 1 0 :1:5
`uc 1 RCMT1 1 0 :1:6
]
-[s S815 . 1 `uc 1 . 1 0 :5:0
+[s S512 . 1 `uc 1 . 1 0 :5:0
`uc 1 RXCKP 1 0 :1:5
]
-[s S818 . 1 `uc 1 . 1 0 :1:0
+[s S515 . 1 `uc 1 . 1 0 :1:0
`uc 1 W4E 1 0 :1:1
]
-[u S821 . 1 `S784 1 . 1 0 `S793 1 . 1 0 `S796 1 . 1 0 `S805 1 . 1 0 `S810 1 . 1 0 `S815 1 . 1 0 `S818 1 . 1 0 ]
-[v _BAUDCON1bits BAUDCON1bits `VES821 1 e 1 @4024 ]
-[s S459 . 1 `uc 1 T2CKPS 1 0 :2:0
+[u S518 . 1 `S481 1 . 1 0 `S490 1 . 1 0 `S493 1 . 1 0 `S502 1 . 1 0 `S507 1 . 1 0 `S512 1 . 1 0 `S515 1 . 1 0 ]
+[v _BAUDCON1bits BAUDCON1bits `VES518 1 e 1 @4024 ]
+[s S167 . 1 `uc 1 T2CKPS 1 0 :2:0
`uc 1 TMR2ON 1 0 :1:2
`uc 1 T2OUTPS 1 0 :4:3
]
"13217
-[s S463 . 1 `uc 1 T2CKPS0 1 0 :1:0
+[s S171 . 1 `uc 1 T2CKPS0 1 0 :1:0
`uc 1 T2CKPS1 1 0 :1:1
`uc 1 . 1 0 :1:2
`uc 1 T2OUTPS0 1 0 :1:3
@@ -472,18 +371,18 @@ B 6
`uc 1 T2OUTPS2 1 0 :1:5
`uc 1 T2OUTPS3 1 0 :1:6
]
-[u S471 . 1 `S459 1 . 1 0 `S463 1 . 1 0 ]
-[v _T2CONbits T2CONbits `VES471 1 e 1 @4026 ]
+[u S179 . 1 `S167 1 . 1 0 `S171 1 . 1 0 ]
+[v _T2CONbits T2CONbits `VES179 1 e 1 @4026 ]
"13267
[v _PR2 PR2 `VEuc 1 e 1 @4027 ]
-[s S380 . 1 `uc 1 SCS 1 0 :2:0
+[s S128 . 1 `uc 1 SCS 1 0 :2:0
`uc 1 HFIOFS 1 0 :1:2
`uc 1 OSTS 1 0 :1:3
`uc 1 IRCF 1 0 :3:4
`uc 1 IDLEN 1 0 :1:7
]
"16033
-[s S386 . 1 `uc 1 SCS0 1 0 :1:0
+[s S134 . 1 `uc 1 SCS0 1 0 :1:0
`uc 1 SCS1 1 0 :1:1
`uc 1 IOFS 1 0 :1:2
`uc 1 . 1 0 :1:3
@@ -491,9 +390,9 @@ B 6
`uc 1 IRCF1 1 0 :1:5
`uc 1 IRCF2 1 0 :1:6
]
-[u S394 . 1 `S380 1 . 1 0 `S386 1 . 1 0 ]
-[v _OSCCONbits OSCCONbits `VES394 1 e 1 @4051 ]
-[s S305 . 1 `uc 1 RBIF 1 0 :1:0
+[u S142 . 1 `S128 1 . 1 0 `S134 1 . 1 0 ]
+[v _OSCCONbits OSCCONbits `VES142 1 e 1 @4051 ]
+[s S53 . 1 `uc 1 RBIF 1 0 :1:0
`uc 1 INT0IF 1 0 :1:1
`uc 1 TMR0IF 1 0 :1:2
`uc 1 RBIE 1 0 :1:3
@@ -503,7 +402,7 @@ B 6
`uc 1 GIE_GIEH 1 0 :1:7
]
"16922
-[s S314 . 1 `uc 1 . 1 0 :1:0
+[s S62 . 1 `uc 1 . 1 0 :1:0
`uc 1 INT0F 1 0 :1:1
`uc 1 T0IF 1 0 :1:2
`uc 1 . 1 0 :1:3
@@ -512,120 +411,123 @@ B 6
`uc 1 PEIE 1 0 :1:6
`uc 1 GIE 1 0 :1:7
]
-[s S323 . 1 `uc 1 . 1 0 :6:0
+[s S71 . 1 `uc 1 . 1 0 :6:0
`uc 1 GIEL 1 0 :1:6
`uc 1 GIEH 1 0 :1:7
]
-[u S327 . 1 `S305 1 . 1 0 `S314 1 . 1 0 `S323 1 . 1 0 ]
-[v _INTCONbits INTCONbits `VES327 1 e 1 @4082 ]
+[u S75 . 1 `S53 1 . 1 0 `S62 1 . 1 0 `S71 1 . 1 0 ]
+[v _INTCONbits INTCONbits `VES75 1 e 1 @4082 ]
"18736
[v _RC1IF RC1IF `VEb 1 e 0 @31989 ]
"19488
[v _TX1IF TX1IF `VEb 1 e 0 @31988 ]
"19496
[v _TX2IF TX2IF `VEb 1 e 0 @32036 ]
-"105 Z:\SAMB_4\projects\xilofono\src\main.c
+"106 Z:\SAMB_4\projects\xilofono\src\main.c
[v _keys_data keys_data `VE[16]ul 1 e 64 0 ]
-"107
+"108
[v _keypresses keypresses `VEui 1 e 2 0 ]
-"215
+"58 Z:\SAMB_4\projects\xilofono\src\midi.h
+[v _midi_notes_steps_table midi_notes_steps_table `C[21]ui 1 e 42 0 ]
+"221 Z:\SAMB_4\projects\xilofono\src\main.c
[v _main main `(v 1 e 1 0 ]
{
-[s S525 . 7 `uc 1 status 1 0 :4:0
+[s S233 . 7 `uc 1 status 1 0 :4:0
`uc 1 channel 1 0 :4:4
`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
-"218
-[v main@message message `S525 1 a 7 13 ]
-"217
-[v main@i i `ui 1 a 2 11 ]
-"258
+"224
+[v main@message message `S233 1 a 7 14 ]
+[v main@conf_message conf_message `S233 1 a 7 5 ]
+"223
+[v main@i i `ui 1 a 2 12 ]
+"273
} 0
"62 Z:\SAMB_4\projects\xilofono\src\midi.c
[v _midi_note_on midi_note_on `(i 1 e 2 0 ]
{
-[s S525 . 7 `uc 1 status 1 0 :4:0
+[s S233 . 7 `uc 1 status 1 0 :4:0
`uc 1 channel 1 0 :4:4
`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
-[v midi_note_on@pkt pkt `*.39S525 1 p 2 0 ]
-[v midi_note_on@channel channel `ui 1 p 2 2 ]
-[v midi_note_on@note note `E31 1 p 1 4 ]
-[v midi_note_on@velocity velocity `uc 1 p 1 5 ]
+[v midi_note_on@pkt pkt `*.39S233 1 p 2 46 ]
+[v midi_note_on@channel channel `ui 1 p 2 48 ]
+[v midi_note_on@note note `E31 1 p 1 50 ]
+[v midi_note_on@velocity velocity `uc 1 p 1 51 ]
"85
} 0
"40
[v _midi_set_status midi_set_status `(i 1 e 2 0 ]
{
-[s S525 . 7 `uc 1 status 1 0 :4:0
+[s S233 . 7 `uc 1 status 1 0 :4:0
`uc 1 channel 1 0 :4:4
`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
-[v midi_set_status@pkt pkt `*.39S525 1 p 2 42 ]
-[v midi_set_status@status status `E40 1 p 1 44 ]
+[v midi_set_status@pkt pkt `*.39S233 1 p 2 41 ]
+[v midi_set_status@status status `E40 1 p 1 43 ]
"49
} 0
"51
[v _midi_set_channel midi_set_channel `(i 1 e 2 0 ]
{
-[s S525 . 7 `uc 1 status 1 0 :4:0
+[s S233 . 7 `uc 1 status 1 0 :4:0
`uc 1 channel 1 0 :4:4
`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
-[v midi_set_channel@pkt pkt `*.39S525 1 p 2 42 ]
-[v midi_set_channel@channel channel `ui 1 p 2 44 ]
+[v midi_set_channel@pkt pkt `*.39S233 1 p 2 41 ]
+[v midi_set_channel@channel channel `ui 1 p 2 43 ]
"60
} 0
"8 C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
[v _memset memset `(*.39v 1 e 2 0 ]
{
"15
-[v memset@p p `*.39uc 1 a 2 48 ]
+[v memset@p p `*.39uc 1 a 2 47 ]
"8
-[v memset@p1 p1 `*.39v 1 p 2 42 ]
-[v memset@c c `i 1 p 2 44 ]
-[v memset@n n `ui 1 p 2 46 ]
+[v memset@p1 p1 `*.39v 1 p 2 41 ]
+[v memset@c c `i 1 p 2 43 ]
+[v memset@n n `ui 1 p 2 45 ]
"22
} 0
-"150 Z:\SAMB_4\projects\xilofono\src\main.c
+"156 Z:\SAMB_4\projects\xilofono\src\main.c
[v _init_hw init_hw `T(v 1 e 1 0 ]
{
-"211
+"217
} 0
"25 Z:\SAMB_4\projects\xilofono\src\rs232.c
[v _eusart2_init eusart2_init `(v 1 e 1 0 ]
{
-"44
+"45
} 0
"4
[v _eusart1_init eusart1_init `(v 1 e 1 0 ]
{
"23
} 0
-"261 Z:\SAMB_4\projects\xilofono\src\main.c
+"276 Z:\SAMB_4\projects\xilofono\src\main.c
[v _eusart_write_midi eusart_write_midi `(i 1 e 2 0 ]
{
-"264
-[v eusart_write_midi@data data `*.39uc 1 a 2 49 ]
-"263
-[v eusart_write_midi@length length `ui 1 a 2 47 ]
-[s S525 . 7 `uc 1 status 1 0 :4:0
+"279
+[v eusart_write_midi@data data `*.39uc 1 a 2 48 ]
+"278
+[v eusart_write_midi@length length `ui 1 a 2 46 ]
+[s S233 . 7 `uc 1 status 1 0 :4:0
`uc 1 channel 1 0 :4:4
`ui 1 data_size 2 1 `[4]uc 1 data 4 3 ]
-"261
-[v eusart_write_midi@pkt pkt `*.39CS525 1 p 2 43 ]
-"280
+"276
+[v eusart_write_midi@pkt pkt `*.39CS233 1 p 2 42 ]
+"295
} 0
-"52 Z:\SAMB_4\projects\xilofono\src\rs232.c
+"53 Z:\SAMB_4\projects\xilofono\src\rs232.c
[v _eusart2_putch eusart2_putch `(v 1 e 1 0 ]
{
[v eusart2_putch@c c `uc 1 a 1 wreg ]
[v eusart2_putch@c c `uc 1 a 1 wreg ]
-[v eusart2_putch@c c `uc 1 a 1 42 ]
-"56
+[v eusart2_putch@c c `uc 1 a 1 41 ]
+"57
} 0
-"113 Z:\SAMB_4\projects\xilofono\src\main.c
+"114 Z:\SAMB_4\projects\xilofono\src\main.c
[v _isr isr `II(v 1 e 1 0 ]
{
-"115
-[v isr@i i `uc 1 a 1 41 ]
+"116
+[v isr@i i `uc 1 a 1 40 ]
[v isr@data_b data_b `uc 1 a 1 37 ]
[v isr@data_a data_a `uc 1 a 1 36 ]
-"147
+"153
} 0
diff --git a/src/dist/default/production/src.production.sym b/src/dist/default/production/src.production.sym
index eb8e1a8..bb06ab6 100644
--- a/src/dist/default/production/src.production.sym
+++ b/src/dist/default/production/src.production.sym
@@ -1,26 +1,26 @@
-__end_of_eusart2_putch 642 0 CODE 0
+__end_of_eusart2_putch 95E 0 CODE 0
__CFG_XINST$OFF 0 0 ABS 0
+__end_of_midi_notes_steps_table 62B 0 SMALLCONST 0
_PR2 FBB 0 ABS 0
__S0 30000E 0 ABS 0
-__S1 B6 0 ABS 0
+__S1 B7 0 ABS 0
__S2 0 0 ABS 0
__Hintentry 0 0 ABS 0
__Lintentry 0 0 ABS 0
-midi_set_channel@pkt 2B 0 COMRAM 1
-__end_of_init_hw 56E 0 CODE 0
+midi_set_channel@pkt 2A 0 COMRAM 1
+__end_of_init_hw 88A 0 CODE 0
_isr 8 0 CODE 0
-__CFG_WDTEN$ON 0 0 ABS 0
-__end_of_eusart_write_midi 4A6 0 CODE 0
-_eusart2_putch 636 0 CODE 0
-isr@i 2A 0 COMRAM 1
-_main 356 0 CODE 0
+__end_of_eusart_write_midi 7D6 0 CODE 0
+_eusart2_putch 952 0 CODE 0
+isr@i 29 0 COMRAM 1
+_main 62C 0 CODE 0
___sp 0 0 STACK 2
-btemp 34 0 COMRAM 1
-start 352 0 CODE 0
+btemp 35 0 COMRAM 1
+start 300 0 CODE 0
__size_of_eusart1_init 0 0 ABS 0
__size_of_eusart2_init 0 0 ABS 0
-eusart_write_midi@pkt 2C 0 COMRAM 1
-eusart2_putch@c 2B 0 COMRAM 1
+eusart_write_midi@pkt 2B 0 COMRAM 1
+eusart2_putch@c 2A 0 COMRAM 1
_RC1IF 7CF5 0 ABS 0
_TX1IF 7CF4 0 ABS 0
_TX2IF 7D24 0 ABS 0
@@ -34,12 +34,12 @@ __Lirdata 0 0 CODE 0
__HRAM 0 0 ABS 0
__LRAM 1 0 ABS 0
isr@data_b 26 0 COMRAM 1
-wtemp6 35 0 COMRAM 1
+wtemp6 36 0 COMRAM 1
__CFG_WDTPS$32768 0 0 ABS 0
__Hconfig 30000E 0 CONFIG 0
__Lconfig 300000 0 CONFIG 0
-__CFG_FOSC$INTIO7 0 0 ABS 0
-main@i AD 0 BANK0 1
+__CFG_FOSC$INTIO67 0 0 ABS 0
+main@i AE 0 BANK0 1
__Hbigram 0 0 ABS 0
__Lbigram 0 0 ABS 0
__Hrparam 0 0 COMRAM 1
@@ -51,14 +51,14 @@ __Lcomram 0 0 ABS 0
__Hsfr 0 0 ABS 0
__Lsfr 0 0 ABS 0
__size_of_isr 0 0 ABS 0
-eusart_write_midi@data 32 0 COMRAM 1
+eusart_write_midi@data 31 0 COMRAM 1
__Hbss 0 0 RAM 1
__CFG_STVREN$ON 0 0 ABS 0
__Lbss 0 0 RAM 1
___param_bank 0 0 ABS 0
__Hnvrram 0 0 COMRAM 1
__Lnvrram 0 0 COMRAM 1
-int$flags 34 0 COMRAM 1
+int$flags 35 0 COMRAM 1
__size_of_midi_note_on 0 0 ABS 0
_SPBRG1 FAF 0 ABS 0
_SPBRG2 F75 0 ABS 0
@@ -90,11 +90,11 @@ __Lmediumconst 0 0 MEDIUMCONST 0
__Hfarbss 0 0 FARRAM 0
__Lfarbss 0 0 FARRAM 0
_keys_data 62 0 BANK0 1
-__Hintcode 352 0 CODE 0
+__Hintcode 300 0 CODE 0
__Lintcode 8 0 CODE 0
__Hfardata 0 0 FARRAM 0
__Lfardata 0 0 FARRAM 0
-midi_note_on@velocity A7 0 BANK0 1
+midi_note_on@velocity 34 0 COMRAM 1
__pintcode 8 0 CODE 0
__Habs1 0 0 ABS 0
__Labs1 0 0 ABS 0
@@ -104,49 +104,46 @@ __HnvFARRAM 0 0 FARRAM 0
__LnvFARRAM 0 0 FARRAM 0
__CFG_EBTR1$OFF 0 0 ABS 0
__CFG_CCP2MX$PORTC1 0 0 ABS 0
-__end_of_eusart1_init 61C 0 CODE 0
+__end_of_eusart1_init 938 0 CODE 0
__CFG_EBTR2$OFF 0 0 ABS 0
__CFG_CCP3MX$PORTB5 0 0 ABS 0
-__end_of_memset 59A 0 CODE 0
+__end_of_memset 8B6 0 CODE 0
__Hdata 0 0 ABS 0
__Ldata 0 0 ABS 0
__CFG_EBTR3$OFF 0 0 ABS 0
stackhi 5FF 0 ABS 0
__HcstackBANK0 0 0 ABS 0
__LcstackBANK0 0 0 ABS 0
+_isr$304 27 0 COMRAM 1
__pcstackBANK0 A2 0 BANK0 1
-__Htemp 35 0 COMRAM 1
-__Ltemp 34 0 COMRAM 1
-stacklo B6 0 ABS 0
-_isr$605 29 0 COMRAM 1
+_isr$305 28 0 COMRAM 1
+__Htemp 36 0 COMRAM 1
+__Ltemp 35 0 COMRAM 1
+stacklo B7 0 ABS 0
__Hrbit 0 0 COMRAM 1
__Lrbit 0 0 COMRAM 1
-__Hinit 356 0 CODE 0
-__Linit 352 0 CODE 0
-__Hintcodelo 352 0 CODE 0
-__Lintcodelo 352 0 CODE 0
-_memset 56E 0 CODE 0
+__Hinit 304 0 CODE 0
+__Linit 300 0 CODE 0
+__Hintcodelo 300 0 CODE 0
+__Lintcodelo 300 0 CODE 0
+_memset 88A 0 CODE 0
__Hrbss 0 0 COMRAM 1
-__end_of_main 432 0 CODE 0
+__end_of_main 762 0 CODE 0
__Lrbss 0 0 COMRAM 1
-_isr$595 27 0 COMRAM 1
__Htext 0 0 ABS 0
__Ltext 0 0 ABS 0
-_isr$596 28 0 COMRAM 1
__CFG_LVP$ON 0 0 ABS 0
-end_of_initialization 628 0 CODE 0
-_midi_set_status 5C0 0 CODE 0
+end_of_initialization 944 0 CODE 0
+_midi_set_status 8DC 0 CODE 0
_SPBRGH1 FB0 0 ABS 0
_SPBRGH2 F76 0 ABS 0
__size_of_init_hw 0 0 ABS 0
-__end_of_midi_set_channel 5C0 0 CODE 0
-midi_note_on@channel A4 0 BANK0 1
+__end_of_midi_set_channel 8DC 0 CODE 0
+midi_note_on@channel 31 0 COMRAM 1
_TRISCbits F94 0 ABS 0
-_PORTAbits F80 0 ABS 0
_TRISDbits F95 0 ABS 0
-_PORTDbits F83 0 ABS 0
_T2CONbits FBA 0 ABS 0
-_midi_set_channel 59A 0 CODE 0
+_midi_set_channel 8B6 0 CODE 0
__size_of_eusart_write_midi 0 0 ABS 0
__Hibigdata 0 0 CODE 0
__Libigdata 0 0 CODE 0
@@ -164,53 +161,53 @@ __Hbank4 0 0 ABS 0
__Lbank4 0 0 ABS 0
__Hbank5 0 0 ABS 0
__Lbank5 0 0 ABS 0
-__Hpowerup 352 0 CODE 0
-__Lpowerup 352 0 CODE 0
+__Hpowerup 300 0 CODE 0
+__Lpowerup 300 0 CODE 0
__Htext0 0 0 ABS 0
__Ltext0 0 0 ABS 0
-_eusart_write_midi 432 0 CODE 0
+_eusart_write_midi 762 0 CODE 0
__Htext1 0 0 ABS 0
__Ltext1 0 0 ABS 0
-__ptext0 356 0 CODE 0
+__ptext0 62C 0 CODE 0
__Htext2 0 0 ABS 0
__Ltext2 0 0 ABS 0
-__ptext1 4A6 0 CODE 0
-__end_of_midi_note_on 50C 0 CODE 0
+__ptext1 7D6 0 CODE 0
+__end_of_midi_note_on 838 0 CODE 0
__Htext3 0 0 ABS 0
__Ltext3 0 0 ABS 0
-__ptext2 5C0 0 CODE 0
+__ptext2 8DC 0 CODE 0
__Htext4 0 0 ABS 0
__Ltext4 0 0 ABS 0
-__ptext3 59A 0 CODE 0
+__ptext3 8B6 0 CODE 0
__Htext5 0 0 ABS 0
__CFG_P2BMX$PORTD2 0 0 ABS 0
__Ltext5 0 0 ABS 0
-__ptext4 56E 0 CODE 0
+__ptext4 88A 0 CODE 0
__Htext6 0 0 ABS 0
__Ltext6 0 0 ABS 0
-__ptext5 50C 0 CODE 0
+__ptext5 838 0 CODE 0
__Htext7 0 0 ABS 0
__Ltext7 0 0 ABS 0
-__ptext6 5E4 0 CODE 0
+__ptext6 900 0 CODE 0
__Htext8 0 0 ABS 0
__Ltext8 0 0 ABS 0
-__ptext7 600 0 CODE 0
+__ptext7 91C 0 CODE 0
__Htext9 0 0 ABS 0
__Ltext9 0 0 ABS 0
-__ptext8 432 0 CODE 0
+__ptext8 762 0 CODE 0
__CFG_T3CMX$PORTC0 0 0 ABS 0
-__ptext9 636 0 CODE 0
+__ptext9 952 0 CODE 0
__Hclrtext 0 0 ABS 0
__Lclrtext 0 0 ABS 0
__CFG_HFOFST$ON 0 0 ABS 0
_OSCTUNEbits F9B 0 ABS 0
-__end_of__initialization 628 0 CODE 0
+__end_of__initialization 944 0 CODE 0
__CFG_PRICLKEN$ON 0 0 ABS 0
-memset@c 2D 0 COMRAM 1
+memset@c 2C 0 COMRAM 1
___rparam_used 1 0 ABS 0
__size_of_memset 0 0 ABS 0
-memset@n 2F 0 COMRAM 1
-memset@p 31 0 COMRAM 1
+memset@n 2E 0 COMRAM 1
+memset@p 30 0 COMRAM 1
__Hidata 0 0 CODE 0
__Lidata 0 0 CODE 0
__Hrdata 0 0 COMRAM 1
@@ -220,30 +217,31 @@ __Lidloc 200000 0 IDLOC 0
__CFG_PWRTEN$OFF 0 0 ABS 0
__Hstack 0 0 STACK 2
__Lstack 0 0 STACK 2
-_midi_note_on 4A6 0 CODE 0
-midi_set_channel@channel 2D 0 COMRAM 1
+_midi_note_on 7D6 0 CODE 0
+midi_set_channel@channel 2C 0 COMRAM 1
__Hparam 0 0 COMRAM 1
__Lparam 0 0 COMRAM 1
__Hspace_0 30000E 0 ABS 0
__HcstackCOMRAM 0 0 ABS 0
__Lspace_0 0 0 ABS 0
__LcstackCOMRAM 0 0 ABS 0
-__end_of_isr 352 0 CODE 0
+__end_of_isr 300 0 CODE 0
__pcstackCOMRAM 1 0 COMRAM 1
-__Hspace_1 B6 0 ABS 0
+__Hspace_1 B7 0 ABS 0
__Lspace_1 0 0 ABS 0
-__Hsmallconst 0 0 SMALLCONST 0
-__Lsmallconst 0 0 SMALLCONST 0
-eusart_write_midi@length 30 0 COMRAM 1
+__Hsmallconst 62C 0 SMALLCONST 0
+__Lsmallconst 600 0 SMALLCONST 0
+eusart_write_midi@length 2F 0 COMRAM 1
+__psmallconst 600 0 SMALLCONST 0
__Hspace_2 0 0 ABS 0
__Lspace_2 0 0 ABS 0
__Hnvbit 0 0 COMRAM 1
__Lnvbit 0 0 COMRAM 1
__Hcinit 0 0 ABS 0
__Lcinit 0 0 ABS 0
-__pcinit 61C 0 CODE 0
+__pcinit 938 0 CODE 0
__CFG_EBTRB$OFF 0 0 ABS 0
-_init_hw 50C 0 CODE 0
+_init_hw 838 0 CODE 0
__ramtop 600 0 RAM 0
__mediumconst 0 0 MEDIUMCONST 0
__size_of_main 0 0 ABS 0
@@ -252,7 +250,7 @@ __Lconst 0 0 CONST 0
__CFG_PLLCFG$ON 0 0 ABS 0
__CFG_WRT0$OFF 0 0 ABS 0
__CFG_WRT1$OFF 0 0 ABS 0
-midi_note_on@pkt A2 0 BANK0 1
+midi_note_on@pkt 2F 0 COMRAM 1
__HbssBANK0 0 0 ABS 0
__LbssBANK0 0 0 ABS 0
__CFG_MCLRE$EXTMCLR 0 0 ABS 0
@@ -261,37 +259,40 @@ __pbssBANK0 60 0 BANK0 1
__CFG_WRT3$OFF 0 0 ABS 0
__CFG_FCMEN$OFF 0 0 ABS 0
__size_of_midi_set_status 0 0 ABS 0
-midi_note_on@note A6 0 BANK0 1
-midi_set_status@pkt 2B 0 COMRAM 1
+midi_note_on@note 33 0 COMRAM 1
+midi_set_status@pkt 2A 0 COMRAM 1
_RCSTA1bits FAB 0 ABS 0
_RCSTA2bits F71 0 ABS 0
_TXSTA1bits FAC 0 ABS 0
_TXSTA2bits F72 0 ABS 0
___inthi_sp 0 0 STACK 2
+main@conf_message A7 0 BANK0 1
__size_of_midi_set_channel 0 0 ABS 0
+__CFG_WDTEN$OFF 0 0 ABS 0
___intlo_sp 0 0 STACK 2
_OSCCONbits FD3 0 ABS 0
_INTCONbits FF2 0 ABS 0
+_midi_notes_steps_table 601 0 SMALLCONST 0
_keypresses 60 0 BANK0 1
__CFG_CP0$OFF 0 0 ABS 0
-__smallconst 0 0 SMALLCONST 0
-main@message AF 0 BANK0 1
+__smallconst 600 0 SMALLCONST 0
+main@message B0 0 BANK0 1
__CFG_CP1$OFF 0 0 ABS 0
-memset@p1 2B 0 COMRAM 1
+memset@p1 2A 0 COMRAM 1
__Hreset_vec 4 0 CODE 0
__Lreset_vec 0 0 CODE 0
__CFG_CP2$OFF 0 0 ABS 0
__CFG_CP3$OFF 0 0 ABS 0
__CFG_BORV$190 0 0 ABS 0
__accesstop 60 0 ABS 0
-__end_of_midi_set_status 5E4 0 CODE 0
+__end_of_midi_set_status 900 0 CODE 0
__Hintcode_body 0 0 ABS 0
__Lintcode_body 0 0 ABS 0
__CFG_PBADEN$ON 0 0 ABS 0
intlevel0 0 0 CODE 0
intlevel1 0 0 CODE 0
__CFG_WRTB$OFF 0 0 ABS 0
-midi_set_status@status 2D 0 COMRAM 1
+midi_set_status@status 2C 0 COMRAM 1
intlevel2 0 0 CODE 0
intlevel3 0 0 CODE 0
__CFG_WRTC$OFF 0 0 ABS 0
@@ -300,171 +301,166 @@ __CFG_WRTD$OFF 0 0 ABS 0
_BAUDCON2bits F70 0 ABS 0
__CFG_CPB$OFF 0 0 ABS 0
__CFG_CPD$OFF 0 0 ABS 0
-start_initialization 61C 0 CODE 0
+start_initialization 938 0 CODE 0
__CFG_BOREN$SBORDIS 0 0 ABS 0
__CFG_IESO$OFF 0 0 ABS 0
-_eusart1_init 600 0 CODE 0
-_eusart2_init 5E4 0 CODE 0
-__end_of_eusart2_init 600 0 CODE 0
-__initialization 61C 0 CODE 0
+_eusart1_init 91C 0 CODE 0
+_eusart2_init 900 0 CODE 0
+__end_of_eusart2_init 91C 0 CODE 0
+__initialization 938 0 CODE 0
__activetblptr 2 0 ABS 0
%segments
reset_vec 0 3 CODE 0 0
-intcode 8 641 CODE 8 0
+intcode 8 303 CODE 8 0
+smallconst 600 62B SMALLCONST 600 0
config 300000 30000D CONFIG 300000 0
idloc 200000 200007 IDLOC 200000 0
-cstackCOMRAM 1 34 COMRAM 1 1
-bssBANK0 60 B5 BANK0 60 1
+cstackCOMRAM 1 35 COMRAM 1 1
+bssBANK0 60 B6 BANK0 60 1
+text0 62C 95D CODE 62C 0
%locals
dist/default/production\src.production.obj
C:\Program Files\Microchip\xc8\v1.44\include\pic18f45k22.h
-C:\Users\_prossn\AppData\Local\Temp\s514.
-1219 61C 0 CODE 0
-1221 61C 0 CODE 0
-1224 61C 0 CODE 0
-1239 61C 0 CODE 0
-1240 620 0 CODE 0
-1241 622 0 CODE 0
-1242 622 0 CODE 0
-1243 624 0 CODE 0
-1244 626 0 CODE 0
-1250 628 0 CODE 0
-1252 628 0 CODE 0
-1253 62A 0 CODE 0
-1255 62C 0 CODE 0
-1256 62E 0 CODE 0
-1257 630 0 CODE 0
-1258 632 0 CODE 0
+C:\Users\_prossn\AppData\Local\Temp\s15k.
+1247 938 0 CODE 0
+1249 938 0 CODE 0
+1252 938 0 CODE 0
+1267 938 0 CODE 0
+1268 93C 0 CODE 0
+1269 93E 0 CODE 0
+1270 93E 0 CODE 0
+1271 940 0 CODE 0
+1272 942 0 CODE 0
+1278 944 0 CODE 0
+1280 944 0 CODE 0
+1281 946 0 CODE 0
+1283 948 0 CODE 0
+1284 94A 0 CODE 0
+1285 94C 0 CODE 0
+1286 94E 0 CODE 0
main.c
-215 356 0 CODE 0
-221 356 0 CODE 0
-224 35A 0 CODE 0
-226 376 0 CODE 0
-229 378 0 CODE 0
-232 37A 0 CODE 0
-235 398 0 CODE 0
-237 398 0 CODE 0
-238 3AE 0 CODE 0
-241 3DA 0 CODE 0
-244 3E0 0 CODE 0
-251 3EC 0 CODE 0
-254 3FE 0 CODE 0
-255 42C 0 CODE 0
-237 42C 0 CODE 0
+221 62C 0 CODE 0
+227 62C 0 CODE 0
+230 630 0 CODE 0
+232 64C 0 CODE 0
+239 64E 0 CODE 0
+240 658 0 CODE 0
+241 660 0 CODE 0
+242 664 0 CODE 0
+244 66C 0 CODE 0
+246 692 0 CODE 0
+247 6AA 0 CODE 0
+250 6B6 0 CODE 0
+252 6B6 0 CODE 0
+253 6CC 0 CODE 0
+256 6F8 0 CODE 0
+259 710 0 CODE 0
+266 71C 0 CODE 0
+269 72E 0 CODE 0
+270 75C 0 CODE 0
+252 75C 0 CODE 0
midi.c
-62 4A6 0 CODE 0
-64 4A6 0 CODE 0
-74 4B0 0 CODE 0
-75 4C0 0 CODE 0
-77 4D4 0 CODE 0
-78 4E6 0 CODE 0
-81 4F6 0 CODE 0
+62 7D6 0 CODE 0
+64 7D6 0 CODE 0
+74 7DE 0 CODE 0
+75 7EE 0 CODE 0
+77 802 0 CODE 0
+78 812 0 CODE 0
+81 822 0 CODE 0
midi.c
-40 5C0 0 CODE 0
-42 5C0 0 CODE 0
-46 5C8 0 CODE 0
+40 8DC 0 CODE 0
+42 8DC 0 CODE 0
+46 8E4 0 CODE 0
midi.c
-51 59A 0 CODE 0
-53 59A 0 CODE 0
-57 5A2 0 CODE 0
+51 8B6 0 CODE 0
+53 8B6 0 CODE 0
+57 8BE 0 CODE 0
C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c
-8 56E 0 CODE 0
-18 56E 0 CODE 0
-19 576 0 CODE 0
-20 578 0 CODE 0
-19 588 0 CODE 0
+8 88A 0 CODE 0
+18 88A 0 CODE 0
+19 892 0 CODE 0
+20 894 0 CODE 0
+19 8A4 0 CODE 0
main.c
-150 50C 0 CODE 0
-152 50C 0 CODE 0
-156 50E 0 CODE 0
-158 510 0 CODE 0
-160 51C 0 CODE 0
-162 522 0 CODE 0
-166 526 0 CODE 0
-167 52C 0 CODE 0
-168 530 0 CODE 0
-169 534 0 CODE 0
-172 538 0 CODE 0
-173 53A 0 CODE 0
-176 53C 0 CODE 0
-177 53E 0 CODE 0
-178 540 0 CODE 0
-179 542 0 CODE 0
-182 544 0 CODE 0
-184 546 0 CODE 0
-186 548 0 CODE 0
-188 54A 0 CODE 0
-193 54C 0 CODE 0
-195 550 0 CODE 0
-197 558 0 CODE 0
-199 55C 0 CODE 0
-202 55E 0 CODE 0
-203 560 0 CODE 0
-206 562 0 CODE 0
-209 564 0 CODE 0
-210 568 0 CODE 0
-211 56C 0 CODE 0
+156 838 0 CODE 0
+158 838 0 CODE 0
+162 83A 0 CODE 0
+164 83C 0 CODE 0
+166 848 0 CODE 0
+168 84E 0 CODE 0
+172 852 0 CODE 0
+173 858 0 CODE 0
+174 85C 0 CODE 0
+175 860 0 CODE 0
+178 864 0 CODE 0
+179 866 0 CODE 0
+199 868 0 CODE 0
+201 86C 0 CODE 0
+203 874 0 CODE 0
+205 878 0 CODE 0
+208 87A 0 CODE 0
+209 87C 0 CODE 0
+212 87E 0 CODE 0
+215 880 0 CODE 0
+216 884 0 CODE 0
+217 888 0 CODE 0
rs232.c
-25 5E4 0 CODE 0
-28 5E4 0 CODE 0
-29 5E6 0 CODE 0
-32 5E8 0 CODE 0
-33 5EA 0 CODE 0
-34 5EE 0 CODE 0
-35 5F2 0 CODE 0
-36 5F4 0 CODE 0
-39 5F6 0 CODE 0
-40 5F8 0 CODE 0
-42 5FA 0 CODE 0
-43 5FC 0 CODE 0
-44 5FE 0 CODE 0
+25 900 0 CODE 0
+28 900 0 CODE 0
+29 902 0 CODE 0
+32 904 0 CODE 0
+33 906 0 CODE 0
+35 90A 0 CODE 0
+36 90E 0 CODE 0
+37 910 0 CODE 0
+40 912 0 CODE 0
+41 914 0 CODE 0
+43 916 0 CODE 0
+44 918 0 CODE 0
+45 91A 0 CODE 0
rs232.c
-4 600 0 CODE 0
-7 600 0 CODE 0
-8 602 0 CODE 0
-11 604 0 CODE 0
-12 606 0 CODE 0
-13 60A 0 CODE 0
-14 60E 0 CODE 0
-15 610 0 CODE 0
-18 612 0 CODE 0
-19 614 0 CODE 0
-21 616 0 CODE 0
-22 618 0 CODE 0
-23 61A 0 CODE 0
+4 91C 0 CODE 0
+7 91C 0 CODE 0
+8 91E 0 CODE 0
+11 920 0 CODE 0
+12 922 0 CODE 0
+13 926 0 CODE 0
+14 92A 0 CODE 0
+15 92C 0 CODE 0
+18 92E 0 CODE 0
+19 930 0 CODE 0
+21 932 0 CODE 0
+22 934 0 CODE 0
+23 936 0 CODE 0
main.c
-261 432 0 CODE 0
-266 432 0 CODE 0
-270 43A 0 CODE 0
-271 44E 0 CODE 0
-273 45A 0 CODE 0
-275 480 0 CODE 0
-276 482 0 CODE 0
-277 494 0 CODE 0
-275 494 0 CODE 0
+276 762 0 CODE 0
+281 762 0 CODE 0
+285 76A 0 CODE 0
+286 77E 0 CODE 0
+288 78A 0 CODE 0
+290 7B0 0 CODE 0
+291 7B2 0 CODE 0
+292 7C4 0 CODE 0
+290 7C4 0 CODE 0
rs232.c
-52 636 0 CODE 0
-54 638 0 CODE 0
-55 63C 0 CODE 0
-56 640 0 CODE 0
+53 952 0 CODE 0
+55 954 0 CODE 0
+56 958 0 CODE 0
+57 95C 0 CODE 0
rs232.c
-56 8 0 CODE 0
+57 8 0 CODE 0
main.c
-113 8 0 CODE 0
-117 52 0 CODE 0
-119 54 0 CODE 0
-120 58 0 CODE 0
-121 5C 0 CODE 0
-122 60 0 CODE 0
-123 64 0 CODE 0
-125 64 0 CODE 0
-126 E0 0 CODE 0
-131 188 0 CODE 0
-132 202 0 CODE 0
-134 2AC 0 CODE 0
-138 2B4 0 CODE 0
-139 2BE 0 CODE 0
-143 302 0 CODE 0
-144 304 0 CODE 0
-146 304 0 CODE 0
-147 306 0 CODE 0
+114 8 0 CODE 0
+122 52 0 CODE 0
+123 56 0 CODE 0
+124 5A 0 CODE 0
+126 5E 0 CODE 0
+127 62 0 CODE 0
+129 62 0 CODE 0
+130 DE 0 CODE 0
+135 186 0 CODE 0
+136 200 0 CODE 0
+138 2AA 0 CODE 0
+147 2B2 0 CODE 0
+148 2B4 0 CODE 0
+153 2B4 0 CODE 0
diff --git a/src/main.c b/src/main.c
index 9a53169..9b5fd28 100644
--- a/src/main.c
+++ b/src/main.c
@@ -14,7 +14,7 @@
// 'C' source line config statements
// CONFIG1H
-#pragma config FOSC = INTIO7 // Oscillator Selection bits (Internal oscillator block)
+#pragma config FOSC = INTIO67 // Oscillator Selection bits (Internal oscillator block)
#pragma config PLLCFG = ON // 4X PLL Enable (Oscillator multiplied by 4)
#pragma config PRICLKEN = ON // Primary clock enable bit (Primary clock is always enabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
@@ -26,7 +26,7 @@
#pragma config BORV = 190 // Brown Out Reset Voltage bits (VBOR set to 1.90 V nominal)
// CONFIG2H
-#pragma config WDTEN = ON // Watchdog Timer Enable bits (WDT is always enabled. SWDTEN bit has no effect)
+#pragma config WDTEN = OFF // Watchdog Timer Enable bits (WDT is always enabled. SWDTEN bit has no effect)
#pragma config WDTPS = 32768 // Watchdog Timer Postscale Select bits (1:32768)
// CONFIG3H
@@ -93,13 +93,16 @@
#define NOTES 16
-#define MIDI_CHANNEL 0x0
-#define MIDI_SCALE_START 0x34 // note C3, C4 is 0x3C
-#define MIDI_NOTE_SPEED 0x0F // max is 0x7F
+// note: when selecting an instrument, subtract 1 (1 - 128 => 0 - 127)
+// see https://www.midi.org/specifications/item/gm-level-1-sound-set
+#define MIDI_INSTRUMENT 9
+// note: when selecting a channel, subtract 1 (1 - 128 => 0 - 127)
+#define MIDI_CHANNEL 0
+#define MIDI_NOTE_SPEED 127 // max is 0x7F
-#define DEBUG
+//#define DEBUG
/* global variables */
@@ -115,11 +118,14 @@ interrupt void isr(void)
{
unsigned char i, data_a, data_b;
+#ifdef DEBUG
PORTDbits.RD3 = 0;
+#endif
if (PIR1bits.TMR2IF) {
data_a = PORTA;
data_b = PORTB;
+
i = 7;
do {
// read the data and append it at the end of keys_data[i]
@@ -143,8 +149,10 @@ interrupt void isr(void)
// reset interrupt flag
PIR1bits.TMR2IF = 0;
}
-
+
+#ifdef DEBUG
PORTDbits.RD3 = 1;
+#endif
}
/* hardware configuration (inlined) */
@@ -216,7 +224,7 @@ inline void init_hw(void)
void main(void)
{
unsigned i;
- midi_message_t message;
+ midi_message_t conf_message, message;
/* setup hardware */
init_hw();
@@ -229,8 +237,17 @@ void main(void)
#ifdef DEBUG
PORTDbits.RD1 = 0;
#endif
+
+ /* midi device configuration */
+ conf_message.status = PROGRAM_CHANGE;
+ conf_message.channel = MIDI_CHANNEL;
+ conf_message.data[0] = MIDI_INSTRUMENT;
+ conf_message.data_size = 1;
+
+ midi_note_on(&message, MIDI_CHANNEL, midi_notes_steps_table[0], MIDI_NOTE_SPEED);
- midi_note_on(&message, MIDI_CHANNEL, MIDI_SCALE_START, MIDI_NOTE_SPEED);
+ __delay_ms(500);
+ eusart_write_midi(&conf_message);
/* main loop */
while (1) {
@@ -239,9 +256,9 @@ void main(void)
if (keypresses & (1<<i)) {
// dirty hack to avoid the slow call stack, correct version commented below
- message.data[0] = MIDI_SCALE_START + i;
- // midi_note_on(&message, MIDI_CHANNEL, MIDI_SCALE_START + i, 0x7F);
-
+ message.data[0] = midi_notes_steps_table[i];
+ //midi_note_on(&message, MIDI_CHANNEL, MIDI_SCALE_START + i, MIDI_NOTE_SPEED);
+
eusart_write_midi(&message);
// wait for the minimum note length
diff --git a/src/midi.h b/src/midi.h
index fb85833..7ee42b7 100644
--- a/src/midi.h
+++ b/src/midi.h
@@ -30,8 +30,8 @@ typedef enum {
} midi_note_t;
typedef enum {
- NOTE_ON = 0x8,
- NOTE_OFF = 0x9,
+ NOTE_OFF = 0x8,
+ NOTE_ON = 0x9,
POLYPHONIC_KEYPRESS = 0xA,
CONTROLLER = 0xB,
PROGRAM_CHANGE = 0xC,
@@ -54,6 +54,19 @@ typedef struct {
} midi_message_t;
+// starts at C2
+const unsigned midi_notes_steps_table[] = {
+ 36, 38, 40, 41, 43, 45, 47, // C2 - B2
+
+// 48, 50, 52, 53, 55, 57, 59, // C3 - B3
+// 60, 62, 64, 65, 67, 69, 71, // C4 - B4
+
+ // hardware bugfix
+ // TODO se a compilation macro
+ 48, 50, 52, 53, 55, 57, 62, // C3 - B3
+ 60, 59, 64, 65, 67, 69, 71, // C4 - B4
+};
+
/* MIDI API */
#ifdef MIDI_DYNAMIC_MEMORY_ALLOC
diff --git a/src/nbproject/Makefile-genesis.properties b/src/nbproject/Makefile-genesis.properties
index 7d48541..42185d8 100644
--- a/src/nbproject/Makefile-genesis.properties
+++ b/src/nbproject/Makefile-genesis.properties
@@ -1,5 +1,5 @@
#
-#Tue Feb 27 08:26:12 CET 2018
+#Fri Mar 02 08:54:47 CET 2018
default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc8\\v1.44\\bin
configurations-xml=b7ce4d9a7385ee4bf81a07319272507b
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5d30ff5128b14865c8a3796a8f0bb8a0
diff --git a/src/nbproject/private/configurations.xml b/src/nbproject/private/configurations.xml
index 04c6d7b..58a3971 100644
--- a/src/nbproject/private/configurations.xml
+++ b/src/nbproject/private/configurations.xml
@@ -4,7 +4,7 @@
<defaultConf>0</defaultConf>
<confs>
<conf name="default" type="2">
- <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>9009:=&lt;rev>0100:=&lt;man>Microchip Technology, Inc. (www.microchip.com):=&lt;prod>MPLAB ICD3 tm (www.microchip.com):=&lt;sn>JIT154810273:=&lt;drv>x:=&lt;xpt>b:=end</platformToolSN>
+ <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>9009:=&lt;rev>0100:=&lt;man>Microchip Technology, Inc. (www.microchip.com):=&lt;prod>MPLAB ICD3 tm (www.microchip.com):=&lt;sn>JIT153520759:=&lt;drv>x:=&lt;xpt>b:=end</platformToolSN>
<languageToolchainDir>C:\Program Files\Microchip\xc8\v1.44\bin</languageToolchainDir>
<mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1>
diff --git a/src/nbproject/private/private.xml b/src/nbproject/private/private.xml
index 83de11c..7d2b417 100644
--- a/src/nbproject/private/private.xml
+++ b/src/nbproject/private/private.xml
@@ -5,8 +5,6 @@
<group name="Corso Kamm">
<file>file:/Z:/SAMB_4/projects/xilofono/src/rs232.h</file>
<file>file:/Z:/SAMB_4/projects/xilofono/src/main.c</file>
- <file>file:/C:/Program%20Files/Microchip/xc8/v1.44/include/pic18f45k22.h</file>
- <file>file:/Z:/SAMB_4/projects/xilofono/src/disassembly/listing.disasm</file>
<file>file:/Z:/SAMB_4/projects/xilofono/src/midi.h</file>
<file>file:/Z:/SAMB_4/projects/xilofono/src/midi.c</file>
<file>file:/Z:/SAMB_4/projects/xilofono/src/rs232.c</file>
diff --git a/src/rs232.c b/src/rs232.c
index 3fba3b4..ab8991f 100644
--- a/src/rs232.c
+++ b/src/rs232.c
@@ -30,7 +30,8 @@ void eusart2_init(void)
// baud prescaler
RCSTA2bits.SPEN = 1;
- SPBRG2 = 31;
+ SPBRG2 = 31; // 31250 bps
+ //SPBRG2 = 103; // 9600 bps
SPBRGH2 = 0;
TXSTA2bits.BRGH = 0;
BAUDCON2bits.BRG16 = 0;