diff options
author | Nao Pross <naopross@thearcway.org> | 2018-02-23 16:31:32 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2018-02-23 16:31:32 +0100 |
commit | a588c9f6e6f0946844ed27e618d792cd025d4362 (patch) | |
tree | d16bbb2b5d99ec50036cc78884abde5a67fab798 /src | |
parent | Fix rs232 interface for MIDI serial (diff) | |
download | Xilofono-a588c9f6e6f0946844ed27e618d792cd025d4362.tar.gz Xilofono-a588c9f6e6f0946844ed27e618d792cd025d4362.zip |
No time for commit msg
Diffstat (limited to 'src')
-rw-r--r-- | src/disassembly/listing.disasm | 931 | ||||
-rw-r--r-- | src/dist/default/production/memoryfile.xml | 17 | ||||
-rw-r--r-- | src/dist/default/production/src.production.cmf | 545 | ||||
-rw-r--r-- | src/dist/default/production/src.production.elf | bin | 0 -> 19102 bytes | |||
-rw-r--r-- | src/dist/default/production/src.production.hex | 72 | ||||
-rw-r--r-- | src/dist/default/production/src.production.hxl | 45 | ||||
-rw-r--r-- | src/dist/default/production/src.production.lst | 1813 | ||||
-rw-r--r-- | src/dist/default/production/src.production.map | 821 | ||||
-rw-r--r-- | src/dist/default/production/src.production.mum | 9 | ||||
-rw-r--r-- | src/dist/default/production/src.production.obj | bin | 0 -> 13299 bytes | |||
-rw-r--r-- | src/dist/default/production/src.production.rlf | bin | 0 -> 116932 bytes | |||
-rw-r--r-- | src/dist/default/production/src.production.sdb | 557 | ||||
-rw-r--r-- | src/dist/default/production/src.production.sym | 450 | ||||
-rw-r--r-- | src/main.c | 141 | ||||
-rw-r--r-- | src/nbproject/Makefile-genesis.properties | 4 | ||||
-rw-r--r-- | src/nbproject/configurations.xml | 2 | ||||
-rw-r--r-- | src/nbproject/private/private.xml | 4 |
17 files changed, 5385 insertions, 26 deletions
diff --git a/src/disassembly/listing.disasm b/src/disassembly/listing.disasm new file mode 100644 index 0000000..e830f54 --- /dev/null +++ b/src/disassembly/listing.disasm @@ -0,0 +1,931 @@ +Disassembly Listing for Xilofono +Generated From: +Z:/SAMB_4/projects/xilofono/src/dist/default/production/src.production.elf +23-feb-2018 16:30:03 + +--- Z:/SAMB_4/projects/xilofono/src/rs232.c ----------------------------------------------------------- +1: #include "rs232.h" +2: #include <xc.h> +3: +4: void eusart1_init(void) +5: { +6: // set Async and 8 bits frame +7: TXSTA1bits.SYNC = 0; +03FC 98AC BCF TXSTA1, 4, ACCESS +8: TXSTA1bits.TX9 = 0; +03FE 9CAC BCF TXSTA1, 6, ACCESS +9: +10: // baud prescaler +11: RCSTA1bits.SPEN = 1; +0400 8EAB BSF RCSTA1, 7, ACCESS +12: SPBRG1 = 31; +0402 0E1F MOVLW 0x1F +0404 6EAF MOVWF SPBRG1, ACCESS +13: SPBRGH1 = 0; +0406 0E00 MOVLW 0x0 +0408 6EB0 MOVWF SPBRGH1, ACCESS +14: TXSTA1bits.BRGH = 0; +040A 94AC BCF TXSTA1, 2, ACCESS +15: BAUDCON1bits.BRG16 = 0; +040C 96B8 BCF BAUDCON1, 3, ACCESS +16: +17: // set up TX / RX pins +18: TRISCbits.TRISC7 = 1; +040E 8E94 BSF TRISC, 7, ACCESS +19: TRISCbits.TRISC6 = 1; +0410 8C94 BSF TRISC, 6, ACCESS +20: RCSTA1bits.CREN = 1; // enable continuous reception +0412 88AB BSF RCSTA1, 4, ACCESS +21: TXSTA1bits.TXEN = 1; +0414 8AAC BSF TXSTA1, 5, ACCESS +22: } +0416 0012 RETURN 0 +23: +24: void eusart2_init(void) +25: { +26: // TODO +27: } +28: +29: void putch(char c) +0418 6E1A MOVWF p1, ACCESS +30: { +31: while (!TX1IF); +041A A89E BTFSS PIR1, 4, ACCESS +041C D7FE BRA 0x41A +32: TX1REG = c; +041E C01A MOVFF p1, TXREG1 +0420 FFAD NOP +33: } +0008 8245 BSF btemp, 1, ACCESS +000A CFFA MOVFF PCLATH, 0x5 +000C F005 NOP +000E CFFB MOVFF PCLATU, 0x6 +0010 F006 NOP +0012 CFE9 MOVFF FSR0, 0x7 +0014 F007 NOP +0016 CFEA MOVFF FSR0H, 0x8 +0018 F008 NOP +001A CFE1 MOVFF FSR1, 0x9 +001C F009 NOP +001E CFE2 MOVFF FSR1H, 0xA +0020 F00A NOP +0022 CFD9 MOVFF FSR2, 0xB +0024 F00B NOP +0026 CFDA MOVFF FSR2H, 0xC +0028 F00C NOP +002A CFF3 MOVFF PROD, 0xD +002C F00D NOP +002E CFF4 MOVFF PRODH, 0xE +0030 F00E NOP +0032 CFF6 MOVFF TBLPTR, 0xF +0034 F00F NOP +0036 CFF7 MOVFF TBLPTRH, 0x10 +0038 F010 NOP +003A CFF8 MOVFF TBLPTRU, 0x11 +003C F011 NOP +003E CFF5 MOVFF TABLAT, 0x12 +0040 F012 NOP +0042 C045 MOVFF btemp, 0x13 +0044 F013 NOP +0046 C046 MOVFF 0x46, 0x14 +0048 F014 NOP +004A C047 MOVFF 0x47, 0x15 +004C F015 NOP +004E C048 MOVFF 0x48, 0x16 +0050 F016 NOP +0422 0012 RETURN 0 +34: +35: char getch(void) +36: { +37: while (!RC1IF); +38: return RC1REG; +39: } +40: +41: char getche(void) +42: { +43: char c = getch(); +44: putch(c); // echo +45: +46: return c; +47: } +--- Z:/SAMB_4/projects/xilofono/src/midi.c ------------------------------------------------------------ +1: #include "midi.h" +2: +3: #include <stdint.h> +4: #include <stddef.h> +5: #include <stdio.h> +6: #include <stdlib.h> +7: +8: +9: #ifdef MIDI_DYNAMIC_MEMORY_ALLOC +10: midi_message_t *midi_alloc_message(size_t data_size) +11: { +12: return (midi_message_t *) malloc(sizeof(midi_message_t) + data_size); +13: } +14: +15: void midi_free_message(midi_message_t *pkt) +16: { +17: if (pkt == NULL) { +18: return; +19: } +20: +21: free(pkt); +22: pkt = NULL; +23: } +24: +25: size_t midi_message_size(const midi_message_t *pkt) +26: { +27: if (pkt == NULL) { +28: return 0; +29: } +30: +31: switch (pkt->status) { +32: case NOTE_ON: return sizeof(midi_message_t) + 2; +33: case NOTE_OFF: return sizeof(midi_message_t) + 1; +34: default: return sizeof(midi_message_t); +35: } +36: } +37: #endif +38: +39: +40: int midi_set_status(midi_message_t *pkt, midi_status_t status) +41: { +42: if (pkt == NULL) { +03D8 501A MOVF p1, W, ACCESS +03DA 101B IORWF pkt, W, ACCESS +03DC B4D8 BTFSC STATUS, 2, ACCESS +03DE 0012 RETURN 0 +43: return -1; +44: } +45: +46: pkt->status = status & 0x0F; +03E0 C01C MOVFF c, 0x1D +03E2 F01D NOP +03E4 0E0F MOVLW 0xF +03E6 161D ANDWF 0x1D, F, ACCESS +03E8 C01A MOVFF p1, FSR2 +03EA FFD9 NOP +03EC C01B MOVFF pkt, FSR2H +03EE FFDA NOP +03F0 50DF MOVF INDF2, W, ACCESS +03F2 181D XORWF 0x1D, W, ACCESS +03F4 0BF0 ANDLW 0xF0 +03F6 181D XORWF 0x1D, W, ACCESS +03F8 6EDF MOVWF INDF2, ACCESS +03FA 0012 RETURN 0 +47: +48: return 0; +49: } +50: +51: int midi_set_channel(midi_message_t *pkt, unsigned channel) +52: { +53: if (pkt == NULL) { +03B2 501A MOVF p1, W, ACCESS +03B4 101B IORWF pkt, W, ACCESS +03B6 B4D8 BTFSC STATUS, 2, ACCESS +03B8 0012 RETURN 0 +54: return -1; +55: } +56: +57: pkt->channel = channel & 0x0F; +03BA C01C MOVFF c, n +03BC F01E NOP +03BE 0E0F MOVLW 0xF +03C0 161E ANDWF n, F, ACCESS +03C2 C01A MOVFF p1, FSR2 +03C4 FFD9 NOP +03C6 C01B MOVFF pkt, FSR2H +03C8 FFDA NOP +03CA 3A1E SWAPF n, F, ACCESS +03CC 50DF MOVF INDF2, W, ACCESS +03CE 181E XORWF n, W, ACCESS +03D0 0B0F ANDLW 0xF +03D2 181E XORWF n, W, ACCESS +03D4 6EDF MOVWF INDF2, ACCESS +03D6 0012 RETURN 0 +58: +59: return 0; +60: } +61: +62: int midi_note_on(midi_message_t *pkt, unsigned channel, midi_note_t note, uint8_t velocity) +63: { +64: if (pkt == NULL) { +01BC 501F MOVF pkt, W, ACCESS +01BE 1020 IORWF p, W, ACCESS +01C0 B4D8 BTFSC STATUS, 2, ACCESS +01C2 0012 RETURN 0 +65: return -1; +66: } +67: +68: if (pkt->data == NULL) { +01C4 0E03 MOVLW 0x3 +01C6 241F ADDWF pkt, W, ACCESS +01C8 0100 MOVLB 0x0 +01CA 6F60 MOVWF __pcstackBANK0, BANKED +01CC 0E00 MOVLW 0x0 +01CE 2020 ADDWFC p, W, ACCESS +01D0 6F61 MOVWF 0x61, BANKED +01D2 5160 MOVF __pcstackBANK0, W, BANKED +01D4 1161 IORWF 0x61, W, BANKED +01D6 B4D8 BTFSC STATUS, 2, ACCESS +01D8 0012 RETURN 0 +69: return -2; +70: } +71: +72: midi_set_status(pkt, NOTE_ON); +01DA C01F MOVFF pkt, p1 +01DC F01A NOP +01DE C020 MOVFF p, pkt +01E0 F01B NOP +01E2 0E08 MOVLW 0x8 +01E4 6E1C MOVWF c, ACCESS +01E6 ECEC CALL 0x3D8, 0 +01E8 F001 NOP +73: midi_set_channel(pkt, channel); +01EA C01F MOVFF pkt, p1 +01EC F01A NOP +01EE C020 MOVFF p, pkt +01F0 F01B NOP +01F2 C021 MOVFF channel, c +01F4 F01C NOP +01F6 C022 MOVFF 0x22, 0x1D +01F8 F01D NOP +01FA ECD9 CALL 0x3B2, 0 +01FC F001 NOP +74: +75: pkt->data[0] = note; +01FE EE20 LFSR 2, 0x3 +0200 F003 NOP +0202 501F MOVF pkt, W, ACCESS +0204 26D9 ADDWF FSR2, F, ACCESS +0206 5020 MOVF p, W, ACCESS +0208 22DA ADDWFC FSR2H, F, ACCESS +020A C023 MOVFF note, INDF2 +020C FFDF NOP +76: pkt->data[1] = velocity; +020E EE20 LFSR 2, 0x4 +0210 F004 NOP +0212 501F MOVF pkt, W, ACCESS +0214 26D9 ADDWF FSR2, F, ACCESS +0216 5020 MOVF p, W, ACCESS +0218 22DA ADDWFC FSR2H, F, ACCESS +021A C024 MOVFF velocity, INDF2 +021C FFDF NOP +77: +78: #ifndef MIDI_DYNAMIC_MEMORY_ALLOC +79: pkt->data_size = 2; +021E EE20 LFSR 2, 0x1 +0220 F001 NOP +0222 501F MOVF pkt, W, ACCESS +0224 26D9 ADDWF FSR2, F, ACCESS +0226 5020 MOVF p, W, ACCESS +0228 22DA ADDWFC FSR2H, F, ACCESS +022A 0E02 MOVLW 0x2 +022C 6EDE MOVWF POSTINC2, ACCESS +022E 0E00 MOVLW 0x0 +0230 6EDD MOVWF POSTDEC2, ACCESS +0232 0012 RETURN 0 +80: #endif +81: +82: return 0; +83: } +84: +85: int midi_note_off(midi_message_t *pkt, unsigned channel, midi_note_t note, uint8_t velocity) +86: { +87: if (pkt == NULL) { +88: return -1; +89: } +90: +91: if (pkt->data == NULL) { +92: return -2; +93: } +94: +95: midi_set_status(pkt, NOTE_OFF); +96: midi_set_channel(pkt, channel); +97: +98: pkt->data[0] = note; +99: pkt->data[1] = velocity; +100: +101: #ifndef MIDI_DYNAMIC_MEMORY_ALLOC +102: pkt->data_size = 2; +103: #endif +104: +105: return 0; +106: } +--- Z:/SAMB_4/projects/xilofono/src/main.c ------------------------------------------------------------ +1: /* +2: * File: main.c +3: * Author: Naoki Pross 4E +4: * Date: 08.01.2018 +5: * Target: PIC18F44K22 +6: * Version 1.0 +7: * +8: * Description: +9: * +10: * Main program for the Xylophone project. +11: */ +12: +13: // PIC18F44K22 Configuration Bit Settings +14: // 'C' source line config statements +15: +16: // CONFIG1H +17: #pragma config FOSC = INTIO7 // Oscillator Selection bits (Internal oscillator block) +18: #pragma config PLLCFG = ON // 4X PLL Enable (Oscillator multiplied by 4) +19: #pragma config PRICLKEN = ON // Primary clock enable bit (Primary clock is always enabled) +20: #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled) +21: #pragma config IESO = OFF // Internal/External Oscillator Switchover bit (Oscillator Switchover mode disabled) +22: +23: // CONFIG2L +24: #pragma config PWRTEN = OFF // Power-up Timer Enable bit (Power up timer disabled) +25: #pragma config BOREN = SBORDIS // Brown-out Reset Enable bits (Brown-out Reset enabled in hardware only (SBOREN is disabled)) +26: #pragma config BORV = 190 // Brown Out Reset Voltage bits (VBOR set to 1.90 V nominal) +27: +28: // CONFIG2H +29: #pragma config WDTEN = ON // Watchdog Timer Enable bits (WDT is always enabled. SWDTEN bit has no effect) +30: #pragma config WDTPS = 32768 // Watchdog Timer Postscale Select bits (1:32768) +31: +32: // CONFIG3H +33: #pragma config CCP2MX = PORTC1 // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1) +34: #pragma config PBADEN = ON // PORTB A/D Enable bit (PORTB<5:0> pins are configured as analog input channels on Reset) +35: #pragma config CCP3MX = PORTB5 // P3A/CCP3 Mux bit (P3A/CCP3 input/output is multiplexed with RB5) +36: #pragma config HFOFST = ON // HFINTOSC Fast Start-up (HFINTOSC output and ready status are not delayed by the oscillator stable status) +37: #pragma config T3CMX = PORTC0 // Timer3 Clock input mux bit (T3CKI is on RC0) +38: #pragma config P2BMX = PORTD2 // ECCP2 B output mux bit (P2B is on RD2) +39: #pragma config MCLRE = EXTMCLR // MCLR Pin Enable bit (MCLR pin enabled, RE3 input pin disabled) +40: +41: // CONFIG4L +42: #pragma config STVREN = ON // Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset) +43: #pragma config LVP = ON // Single-Supply ICSP Enable bit (Single-Supply ICSP enabled if MCLRE is also 1) +44: #pragma config XINST = OFF // Extended Instruction Set Enable bit (Instruction set extension and Indexed Addressing mode disabled (Legacy mode)) +45: +46: // CONFIG5L +47: #pragma config CP0 = OFF // Code Protection Block 0 (Block 0 (000800-001FFFh) not code-protected) +48: #pragma config CP1 = OFF // Code Protection Block 1 (Block 1 (002000-003FFFh) not code-protected) +49: #pragma config CP2 = OFF // Code Protection Block 2 (Block 2 (004000-005FFFh) not code-protected) +50: #pragma config CP3 = OFF // Code Protection Block 3 (Block 3 (006000-007FFFh) not code-protected) +51: +52: // CONFIG5H +53: #pragma config CPB = OFF // Boot Block Code Protection bit (Boot block (000000-0007FFh) not code-protected) +54: #pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code-protected) +55: +56: // CONFIG6L +57: #pragma config WRT0 = OFF // Write Protection Block 0 (Block 0 (000800-001FFFh) not write-protected) +58: #pragma config WRT1 = OFF // Write Protection Block 1 (Block 1 (002000-003FFFh) not write-protected) +59: #pragma config WRT2 = OFF // Write Protection Block 2 (Block 2 (004000-005FFFh) not write-protected) +60: #pragma config WRT3 = OFF // Write Protection Block 3 (Block 3 (006000-007FFFh) not write-protected) +61: +62: // CONFIG6H +63: #pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write-protected) +64: #pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0007FFh) not write-protected) +65: #pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write-protected) +66: +67: // CONFIG7L +68: #pragma config EBTR0 = OFF // Table Read Protection Block 0 (Block 0 (000800-001FFFh) not protected from table reads executed in other blocks) +69: #pragma config EBTR1 = OFF // Table Read Protection Block 1 (Block 1 (002000-003FFFh) not protected from table reads executed in other blocks) +70: #pragma config EBTR2 = OFF // Table Read Protection Block 2 (Block 2 (004000-005FFFh) not protected from table reads executed in other blocks) +71: #pragma config EBTR3 = OFF // Table Read Protection Block 3 (Block 3 (006000-007FFFh) not protected from table reads executed in other blocks) +72: +73: // CONFIG7H +74: #pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0007FFh) not protected from table reads executed in other blocks) +75: +76: // #pragma config statements should precede project file includes. +77: // Use project enums instead of #define for ON and OFF. +78: +79: #define _XTAL_FREQ 64000000 +80: +81: #include "rs232.h" +82: #include "midi.h" +83: +84: #include <xc.h> +85: #include <stdio.h> +86: #include <stdlib.h> +87: #include <stdint.h> +88: #include <string.h> +89: +90: #define NOTES 15 +91: #define NOTE_MASK 0xFF00 +92: +93: +94: /* global variables */ +95: volatile uint16_t keypresses[NOTES]; +96: +97: /* function prototypes */ +98: int eusart_write_midi(const midi_message_t *pkt); +99: +100: /* interrupt service routine */ +101: interrupt void isr(void) +0008 8245 BSF btemp, 1, ACCESS +102: { +103: unsigned char i, data; +104: +105: PORTDbits.RD3 = 0; +0052 9683 BCF PORTD, 3, ACCESS +106: +107: if (PIR1bits.TMR2IF) { +0054 A29E BTFSS PIR1, 1, ACCESS +0056 D089 BRA 0x16A +108: // PORTA +109: data = PORTA; +0058 CF80 MOVFF PORTA, data +005A F018 NOP +110: i = 7; +005C 0E07 MOVLW 0x7 +005E 6E19 MOVWF i, ACCESS +111: do { +112: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); +0060 5019 MOVF i, W, ACCESS +0062 0D02 MULLW 0x2 +0064 0E25 MOVLW 0x25 +0066 24F3 ADDWF PROD, W, ACCESS +0068 6ED9 MOVWF FSR2, ACCESS +006A 0E00 MOVLW 0x0 +006C 20F4 ADDWFC PRODH, W, ACCESS +006E 6EDA MOVWF FSR2H, ACCESS +0070 CFDE MOVFF POSTINC2, __pcstackCOMRAM +0072 F001 NOP +0074 CFDD MOVFF POSTDEC2, 0x2 +0076 F002 NOP +0078 90D8 BCF STATUS, 0, ACCESS +007A 3601 RLCF __pcstackCOMRAM, F, ACCESS +007C 3602 RLCF 0x2, F, ACCESS +007E C019 MOVFF i, 0x3 +0080 F003 NOP +0082 C018 MOVFF data, 0x4 +0084 F004 NOP +0086 2A03 INCF 0x3, F, ACCESS +0088 D002 BRA 0x8E +008A 90D8 BCF STATUS, 0, ACCESS +008C 3204 RRCF 0x4, F, ACCESS +008E 2E03 DECFSZ 0x3, F, ACCESS +0090 D7FC BRA 0x8A +0092 0E01 MOVLW 0x1 +0094 1604 ANDWF 0x4, F, ACCESS +0096 5004 MOVF 0x4, W, ACCESS +0098 1201 IORWF __pcstackCOMRAM, F, ACCESS +009A 0E00 MOVLW 0x0 +009C 1202 IORWF 0x2, F, ACCESS +009E 5019 MOVF i, W, ACCESS +00A0 0D02 MULLW 0x2 +00A2 0E25 MOVLW 0x25 +00A4 24F3 ADDWF PROD, W, ACCESS +00A6 6ED9 MOVWF FSR2, ACCESS +00A8 0E00 MOVLW 0x0 +00AA 20F4 ADDWFC PRODH, W, ACCESS +00AC 6EDA MOVWF FSR2H, ACCESS +00AE C001 MOVFF __pcstackCOMRAM, POSTINC2 +00B0 FFDE NOP +00B2 C002 MOVFF 0x2, POSTDEC2 +00B4 FFDD NOP +113: } while (i--); +00B6 0619 DECF i, F, ACCESS +00B8 2819 INCF i, W, ACCESS +00BA A4D8 BTFSS STATUS, 2, ACCESS +00BC D7D1 BRA 0x60 +114: +115: data = PORTB; +00BE CF81 MOVFF PORTB, data +00C0 F018 NOP +116: i = 7; +00C2 0E07 MOVLW 0x7 +00C4 6E19 MOVWF i, ACCESS +117: do { +118: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); +00C6 5019 MOVF i, W, ACCESS +00C8 0D02 MULLW 0x2 +00CA 0E25 MOVLW 0x25 +00CC 24F3 ADDWF PROD, W, ACCESS +00CE 6ED9 MOVWF FSR2, ACCESS +00D0 0E00 MOVLW 0x0 +00D2 20F4 ADDWFC PRODH, W, ACCESS +00D4 6EDA MOVWF FSR2H, ACCESS +00D6 CFDE MOVFF POSTINC2, __pcstackCOMRAM +00D8 F001 NOP +00DA CFDD MOVFF POSTDEC2, 0x2 +00DC F002 NOP +00DE 90D8 BCF STATUS, 0, ACCESS +00E0 3601 RLCF __pcstackCOMRAM, F, ACCESS +00E2 3602 RLCF 0x2, F, ACCESS +00E4 C019 MOVFF i, 0x3 +00E6 F003 NOP +00E8 C018 MOVFF data, 0x4 +00EA F004 NOP +00EC 2A03 INCF 0x3, F, ACCESS +00EE D002 BRA 0xF4 +00F0 90D8 BCF STATUS, 0, ACCESS +00F2 3204 RRCF 0x4, F, ACCESS +00F4 2E03 DECFSZ 0x3, F, ACCESS +00F6 D7FC BRA 0xF0 +00F8 0E01 MOVLW 0x1 +00FA 1604 ANDWF 0x4, F, ACCESS +00FC 5004 MOVF 0x4, W, ACCESS +00FE 1201 IORWF __pcstackCOMRAM, F, ACCESS +0100 0E00 MOVLW 0x0 +0102 1202 IORWF 0x2, F, ACCESS +0104 5019 MOVF i, W, ACCESS +0106 0D02 MULLW 0x2 +0108 0E25 MOVLW 0x25 +010A 24F3 ADDWF PROD, W, ACCESS +010C 6ED9 MOVWF FSR2, ACCESS +010E 0E00 MOVLW 0x0 +0110 20F4 ADDWFC PRODH, W, ACCESS +0112 6EDA MOVWF FSR2H, ACCESS +0114 C001 MOVFF __pcstackCOMRAM, POSTINC2 +0116 FFDE NOP +0118 C002 MOVFF 0x2, POSTDEC2 +011A FFDD NOP +119: } while (i-- - 8); +011C 0EF8 MOVLW 0xF8 +011E 6E01 MOVWF __pcstackCOMRAM, ACCESS +0120 0EFF MOVLW 0xFF +0122 6E02 MOVWF 0x2, ACCESS +0124 0619 DECF i, F, ACCESS +0126 2819 INCF i, W, ACCESS +0128 6E03 MOVWF 0x3, ACCESS +012A 6A04 CLRF 0x4, ACCESS +012C 5001 MOVF __pcstackCOMRAM, W, ACCESS +012E 2603 ADDWF 0x3, F, ACCESS +0130 5002 MOVF 0x2, W, ACCESS +0132 2204 ADDWFC 0x4, F, ACCESS +0134 5003 MOVF 0x3, W, ACCESS +0136 1004 IORWF 0x4, W, ACCESS +0138 A4D8 BTFSS STATUS, 2, ACCESS +013A D7C5 BRA 0xC6 +120: +121: // PORTB +122: // for (i = 8; i < NOTES; i++) { +123: // keypresses[i] = (keypresses[i] << 1) | ((PORTB & (1 << i)) >> i); +124: // } +125: +126: // TODO same for PORTD when the steps board is printed +127: +128: // debug stuff +129: PORTDbits.RD4 = PORTAbits.RA0; +013C A080 BTFSS PORTA, 0, ACCESS +013E D002 BRA 0x144 +0140 8883 BSF PORTD, 4, ACCESS +0142 D001 BRA 0x146 +0144 9883 BCF PORTD, 4, ACCESS +130: PORTDbits.RD2 = (keypresses[0] && !(keypresses[0] & NOTE_MASK)); +0146 0E00 MOVLW 0x0 +0148 6E17 MOVWF 0x17, ACCESS +014A 5025 MOVF keypresses, W, ACCESS +014C 1026 IORWF 0x26, W, ACCESS +014E B4D8 BTFSC STATUS, 2, ACCESS +0150 D006 BRA 0x15E +0152 0EFF MOVLW 0xFF +0154 1426 ANDWF 0x26, W, ACCESS +0156 A4D8 BTFSS STATUS, 2, ACCESS +0158 D002 BRA 0x15E +015A 0E01 MOVLW 0x1 +015C 6E17 MOVWF 0x17, ACCESS +015E B017 BTFSC 0x17, 0, ACCESS +0160 D002 BRA 0x166 +0162 9483 BCF PORTD, 2, ACCESS +0164 D001 BRA 0x168 +0166 8483 BSF PORTD, 2, ACCESS +131: +132: // reset interrupt flag +133: PIR1bits.TMR2IF = 0; +0168 929E BCF PIR1, 1, ACCESS +134: } +135: +136: PORTDbits.RD3 = 1; +016A 8683 BSF PORTD, 3, ACCESS +137: } +016C C016 MOVFF 0x16, 0x48 +016E F048 NOP +0170 C015 MOVFF 0x15, 0x47 +0172 F047 NOP +0174 C014 MOVFF 0x14, 0x46 +0176 F046 NOP +0178 C013 MOVFF 0x13, btemp +017A F045 NOP +017C C012 MOVFF 0x12, TABLAT +017E FFF5 NOP +0180 C011 MOVFF 0x11, TBLPTRU +0182 FFF8 NOP +0184 C010 MOVFF 0x10, TBLPTRH +0186 FFF7 NOP +0188 C00F MOVFF 0xF, TBLPTR +018A FFF6 NOP +018C C00E MOVFF 0xE, PRODH +018E FFF4 NOP +0190 C00D MOVFF 0xD, PROD +0192 FFF3 NOP +0194 C00C MOVFF 0xC, FSR2H +0196 FFDA NOP +0198 C00B MOVFF 0xB, FSR2 +019A FFD9 NOP +019C C00A MOVFF 0xA, FSR1H +019E FFE2 NOP +01A0 C009 MOVFF 0x9, FSR1 +01A2 FFE1 NOP +01A4 C008 MOVFF 0x8, FSR0H +01A6 FFEA NOP +01A8 C007 MOVFF 0x7, FSR0 +01AA FFE9 NOP +01AC C006 MOVFF 0x6, PCLATU +01AE FFFB NOP +01B0 C005 MOVFF 0x5, PCLATH +01B2 FFFA NOP +01B4 9245 BCF btemp, 1, ACCESS +01B6 0011 RETFIE 1 +138: +139: /* hardware configuration (inlined) */ +140: inline void init_hw(void) +141: { +142: di(); +02A8 9EF2 BCF INTCON, 7, ACCESS +143: +144: /* PLL / FOSC configuration */ +145: // enable PLL +146: OSCTUNEbits.PLLEN = 1; +02AA 8C9B BSF OSCTUNE, 6, ACCESS +147: // set FOSC to HFINTOSC (max frequency) +148: OSCTUNEbits.TUN = 0b011111; +02AC 809B BSF OSCTUNE, 0, ACCESS +02AE 829B BSF OSCTUNE, 1, ACCESS +02B0 849B BSF OSCTUNE, 2, ACCESS +02B2 869B BSF OSCTUNE, 3, ACCESS +02B4 889B BSF OSCTUNE, 4, ACCESS +02B6 9A9B BCF OSCTUNE, 5, ACCESS +149: // set 16 MHz oscillator, datasheet p.30 +150: OSCCONbits.IRCF = 0b111; +02B8 88D3 BSF OSCCON, 4, ACCESS +02BA 8AD3 BSF OSCCON, 5, ACCESS +02BC 8CD3 BSF OSCCON, 6, ACCESS +151: // select primary clock (with PLL) +152: OSCCONbits.SCS = 0b00; +02BE 0EFC MOVLW 0xFC +02C0 16D3 ANDWF OSCCON, F, ACCESS +153: +154: /* i/o initializazion */ +155: // disable all ADCs +156: ANSELA = 0x00; +02C2 0E00 MOVLW 0x0 +02C4 010F MOVLB 0xF +02C6 6F38 MOVWF 0x38, BANKED +157: ANSELB = 0x00; +02C8 0E00 MOVLW 0x0 +02CA 6F39 MOVWF 0x39, BANKED +158: ANSELC = 0x00; +02CC 0E00 MOVLW 0x0 +02CE 6F3A MOVWF 0x3A, BANKED +159: ANSELD = 0x00; +02D0 0E00 MOVLW 0x0 +02D2 6F3B MOVWF 0x3B, BANKED +160: +161: // TODO: remove demo +162: TRISA = 0xFF; +02D4 6892 SETF TRISA, ACCESS +163: TRISB = 0xFF; +02D6 6893 SETF TRISB, ACCESS +164: +165: TRISDbits.TRISD1 = 0; +02D8 9295 BCF TRISD, 1, ACCESS +166: TRISDbits.TRISD2 = 0; +02DA 9495 BCF TRISD, 2, ACCESS +167: TRISDbits.TRISD3 = 0; +02DC 9695 BCF TRISD, 3, ACCESS +168: TRISDbits.TRISD4 = 0; +02DE 9895 BCF TRISD, 4, ACCESS +169: +170: // LED +171: PORTDbits.RD1 = 1; +02E0 8283 BSF PORTD, 1, ACCESS +172: // TEST OUTPUT 1 +173: PORTDbits.RD2 = 0; +02E2 9483 BCF PORTD, 2, ACCESS +174: // TEST OUTPUT 2 +175: PORTDbits.RD3 = 1; +02E4 8683 BSF PORTD, 3, ACCESS +176: // TEST OUTPUT 3 +177: PORTDbits.RD4 = 0; +02E6 9883 BCF PORTD, 4, ACCESS +178: +179: /* timer configuration */ +180: // timer 2 comp value +181: PR2 = 128; +02E8 0E80 MOVLW 0x80 +02EA 6EBB MOVWF PR2, ACCESS +182: // postscaler 1:4 +183: T2CONbits.T2OUTPS = 0b0011; +02EC 50BA MOVF T2CON, W, ACCESS +02EE 0B87 ANDLW 0x87 +02F0 0918 IORLW 0x18 +02F2 6EBA MOVWF T2CON, ACCESS +184: // prescaler 1:16 +185: T2CONbits.T2CKPS = 0b11; +02F4 0E03 MOVLW 0x3 +02F6 12BA IORWF T2CON, F, ACCESS +186: // start timer +187: T2CONbits.TMR2ON = 1; +02F8 84BA BSF T2CON, 2, ACCESS +188: +189: // timer 2 interrupts +190: PIE1bits.TMR2IE = 1; +02FA 829D BSF PIE1, 1, ACCESS +191: PIR1bits.TMR2IF = 0; +02FC 929E BCF PIR1, 1, ACCESS +192: +193: // enable peripheral interrupts +194: INTCONbits.PEIE = 1; +02FE 8CF2 BSF INTCON, 6, ACCESS +195: +196: /* serial configuration */ +197: eusart1_init(); +0300 ECFE CALL 0x3FC, 0 +0302 F001 NOP +198: +199: ei(); +0304 8EF2 BSF INTCON, 7, ACCESS +200: } +0306 0012 RETURN 0 +201: +202: +203: /* main program */ +204: void main(void) +205: { +206: unsigned char i, data; +207: midi_message_t sample_message; +208: +209: /* setup hardware */ +210: init_hw(); +0308 EC54 CALL 0x2A8, 0 +030A F001 NOP +211: +212: /* setup software */ +213: memset(keypresses, 0, sizeof(keypresses)); +030C 0E25 MOVLW 0x25 +030E 6E1A MOVWF p1, ACCESS +0310 0E00 MOVLW 0x0 +0312 6E1B MOVWF pkt, ACCESS +0314 0E00 MOVLW 0x0 +0316 6E1D MOVWF 0x1D, ACCESS +0318 0E00 MOVLW 0x0 +031A 6E1C MOVWF c, ACCESS +031C 0E00 MOVLW 0x0 +031E 6E1F MOVWF pkt, ACCESS +0320 0E1E MOVLW 0x1E +0322 6E1E MOVWF n, ACCESS +0324 ECC3 CALL 0x386, 0 +0326 F001 NOP +214: +215: /* TODO remove demo code */ +216: midi_note_on(&sample_message, 0x0, 0x3C, 0x7F); +0328 0E62 MOVLW 0x62 +032A 6E1F MOVWF pkt, ACCESS +032C 0E00 MOVLW 0x0 +032E 6E20 MOVWF p, ACCESS +0330 0E00 MOVLW 0x0 +0332 6E22 MOVWF 0x22, ACCESS +0334 0E00 MOVLW 0x0 +0336 6E21 MOVWF channel, ACCESS +0338 0E3C MOVLW 0x3C +033A 6E23 MOVWF note, ACCESS +033C 0E7F MOVLW 0x7F +033E 6E24 MOVWF velocity, ACCESS +0340 ECDE CALL 0x1BC, 0 +0342 F000 NOP +217: PORTDbits.RD1 = 0; +0344 9283 BCF PORTD, 1, ACCESS +218: +219: /* main loop */ +220: while (1) { +0352 D7F9 BRA 0x346 +221: eusart_write_midi(&sample_message); +0346 0E62 MOVLW 0x62 +0348 6E1B MOVWF pkt, ACCESS +034A 0E00 MOVLW 0x0 +034C 6E1C MOVWF c, ACCESS +034E EC1A CALL 0x234, 0 +0350 F001 NOP +0352 D7F9 BRA 0x346 +222: } +223: } +224: +225: +226: int eusart_write_midi(const midi_message_t *pkt) +227: { +228: size_t length; +229: uint8_t *data; +230: +231: if (pkt == NULL) { +0234 501B MOVF pkt, W, ACCESS +0236 101C IORWF c, W, ACCESS +0238 B4D8 BTFSC STATUS, 2, ACCESS +023A 0012 RETURN 0 +232: return -1; +233: } +234: +235: length = pkt->data_size; +023C EE20 LFSR 2, 0x1 +023E F001 NOP +0240 501B MOVF pkt, W, ACCESS +0242 26D9 ADDWF FSR2, F, ACCESS +0244 501C MOVF c, W, ACCESS +0246 22DA ADDWFC FSR2H, F, ACCESS +0248 CFDE MOVFF POSTINC2, pkt +024A F01F NOP +024C CFDD MOVFF POSTDEC2, p +024E F020 NOP +236: data = (uint8_t *) pkt->data; +0250 0E03 MOVLW 0x3 +0252 241B ADDWF pkt, W, ACCESS +0254 6E21 MOVWF channel, ACCESS +0256 0E00 MOVLW 0x0 +0258 201C ADDWFC c, W, ACCESS +025A 6E22 MOVWF 0x22, ACCESS +237: +238: putch((char)((pkt->status << 4) | pkt->channel)); +025C C01B MOVFF pkt, FSR2 +025E FFD9 NOP +0260 C01C MOVFF c, FSR2H +0262 FFDA NOP +0264 38DF SWAPF INDF2, W, ACCESS +0266 0B0F ANDLW 0xF +0268 6E1D MOVWF 0x1D, ACCESS +026A C01B MOVFF pkt, FSR2 +026C FFD9 NOP +026E C01C MOVFF c, FSR2H +0270 FFDA NOP +0272 50DF MOVF INDF2, W, ACCESS +0274 0B0F ANDLW 0xF +0276 6E1E MOVWF n, ACCESS +0278 381E SWAPF n, W, ACCESS +027A 0BF0 ANDLW 0xF0 +027C 101D IORWF 0x1D, W, ACCESS +027E EC0C CALL 0x418, 0 +0280 F002 NOP +239: +240: while (length--) { +0282 D009 BRA 0x296 +241: putch((char) *(data++)); +0284 C021 MOVFF channel, FSR2 +0286 FFD9 NOP +0288 C022 MOVFF 0x22, FSR2H +028A FFDA NOP +028C 50DF MOVF INDF2, W, ACCESS +028E EC0C CALL 0x418, 0 +0290 F002 NOP +0292 4A21 INFSNZ channel, F, ACCESS +0294 2A22 INCF 0x22, F, ACCESS +242: } +0296 061F DECF pkt, F, ACCESS +0298 A0D8 BTFSS STATUS, 0, ACCESS +029A 0620 DECF p, F, ACCESS +029C 281F INCF pkt, W, ACCESS +029E E1F2 BNZ 0x284 +02A0 2820 INCF p, W, ACCESS +02A2 B4D8 BTFSC STATUS, 2, ACCESS +02A4 0012 RETURN 0 +02A6 D7EE BRA 0x284 +243: +244: return 0; +245: } +--- C:/Program Files/Microchip/xc8/v1.44/sources/common/memset.c -------------------------------------- +1: #include <string.h> +2: +3: #ifdef _PIC16 +4: far void * +5: memset(far void * p1, int c, register size_t n) +6: #else /* _PIC16 */ +7: void * +8: memset(void * p1, int c, register size_t n) +9: #endif /* _PIC16 */ +10: { +11: +12: #ifdef _PIC16 +13: register far char * p; +14: #else /* _PIC16 */ +15: register char * p; +16: #endif /* _PIC16 */ +17: +18: p = p1; +0386 C01A MOVFF p1, p +0388 F020 NOP +038A C01B MOVFF pkt, channel +038C F021 NOP +19: while(n--) +038E D008 BRA 0x3A0 +03A0 061E DECF n, F, ACCESS +20: *p++ = c; +0390 C020 MOVFF p, FSR2 +0392 FFD9 NOP +0394 C021 MOVFF channel, FSR2H +0396 FFDA NOP +0398 C01C MOVFF c, INDF2 +039A FFDF NOP +039C 4A20 INFSNZ p, F, ACCESS +039E 2A21 INCF channel, F, ACCESS +03A0 061E DECF n, F, ACCESS +03A2 A0D8 BTFSS STATUS, 0, ACCESS +03A4 061F DECF pkt, F, ACCESS +03A6 281E INCF n, W, ACCESS +03A8 E1F3 BNZ 0x390 +03AA 281F INCF pkt, W, ACCESS +03AC B4D8 BTFSC STATUS, 2, ACCESS +03AE 0012 RETURN 0 +03B0 D7EF BRA 0x390 +21: return p1; +22: } diff --git a/src/dist/default/production/memoryfile.xml b/src/dist/default/production/memoryfile.xml new file mode 100644 index 0000000..6f5f082 --- /dev/null +++ b/src/dist/default/production/memoryfile.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project> + <executable name="dist/default/production\src.production.hex"> + <memory name="program"> + <units>bytes</units> + <length>32768</length> + <used>1058</used> + <free>31710</free> + </memory> + <memory name="data"> + <units>bytes</units> + <length>1536</length> + <used>78</used> + <free>1458</free> + </memory> + </executable> +</project> diff --git a/src/dist/default/production/src.production.cmf b/src/dist/default/production/src.production.cmf new file mode 100644 index 0000000..53d83bb --- /dev/null +++ b/src/dist/default/production/src.production.cmf @@ -0,0 +1,545 @@ +%CMF +# %PSECTS Section +# For each object file, details of its psects are enumerated here. +# The begining of the section is indicated by %PSECTS. The first +# line indicates the name of the first object file, e.g. +# $foo.obj +# Each line that follows describes a psect in that object file, until +# the next object file. The lines that describe a psect have the +# format: +# <psect name> <class name> <space> <link address> <load addresses> <length> <delta> +# 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\s5hg.obj +idloc IDLOC 0 200000 200000 8 1 +init CODE 0 1B8 1B8 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 354 354 32 1 +text0 CODE 0 308 308 4C 1 +text1 CODE 0 1BC 1BC 78 1 +text2 CODE 0 3D8 3D8 24 1 +text3 CODE 0 3B2 3B2 26 1 +text4 CODE 0 386 386 2C 1 +text5 CODE 0 2A8 2A8 60 1 +text6 CODE 0 3FC 3FC 1C 1 +text7 CODE 0 234 234 74 1 +text8 CODE 0 418 418 C 1 +idataCOMRAM CODE 0 424 424 2 1 +cstackCOMRAM COMRAM 1 1 1 24 1 +cstackBANK0 BANK0 1 60 60 9 1 +temp COMRAM 1 45 45 1 1 +intcode CODE 0 8 8 1B0 1 +dataCOMRAM COMRAM 1 43 43 2 1 +bssCOMRAM COMRAM 1 25 25 1E 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 69-5FF 1 +SFR F38-FFF 1 +BANK0 69-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 426-7FFF 1 +STACK 69-5FF 1 +SMALLCONST 600-7FFF 1 +CODE 4-7 1 +CODE 426-7FFF 1 +BIGRAM 46-5F 1 +BIGRAM 69-5FF 1 +COMRAM 46-5F 1 +EEDATA F00000-F000FF 1 +MEDIUMCONST 600-7FFF 1 +# %LINETAB Section +# This section enumerates the file/line to address mappings. +# The beginning of the section is indicated by %LINETAB. +# The first line indicates the name of the first object file, e.g. +# $foo.obj +# Each line that follows describes a single mapping until the next +# object file. Mappings have the following format: +# <address> <psect name> <class name> ><line number>:<file name> +# The address is absolute and given given in unqualified hex +# in delta units of the psect. All mappings within an object file +# are in ascending order of addresses. +# All other numeric values are in decimal. +%LINETAB +$dist/default/production\src.production.obj +8 intcode CODE >101:Z:\SAMB_4\projects\xilofono\src\main.c +8 intcode CODE >33:Z:\SAMB_4\projects\xilofono\src\rs232.c +52 intcode CODE >105:Z:\SAMB_4\projects\xilofono\src\main.c +54 intcode CODE >107:Z:\SAMB_4\projects\xilofono\src\main.c +58 intcode CODE >109:Z:\SAMB_4\projects\xilofono\src\main.c +5C intcode CODE >110:Z:\SAMB_4\projects\xilofono\src\main.c +60 intcode CODE >111:Z:\SAMB_4\projects\xilofono\src\main.c +60 intcode CODE >112:Z:\SAMB_4\projects\xilofono\src\main.c +B6 intcode CODE >113:Z:\SAMB_4\projects\xilofono\src\main.c +BE intcode CODE >115:Z:\SAMB_4\projects\xilofono\src\main.c +C2 intcode CODE >116:Z:\SAMB_4\projects\xilofono\src\main.c +C6 intcode CODE >117:Z:\SAMB_4\projects\xilofono\src\main.c +C6 intcode CODE >118:Z:\SAMB_4\projects\xilofono\src\main.c +11C intcode CODE >119:Z:\SAMB_4\projects\xilofono\src\main.c +13C intcode CODE >129:Z:\SAMB_4\projects\xilofono\src\main.c +146 intcode CODE >130:Z:\SAMB_4\projects\xilofono\src\main.c +168 intcode CODE >133:Z:\SAMB_4\projects\xilofono\src\main.c +16A intcode CODE >134:Z:\SAMB_4\projects\xilofono\src\main.c +16A intcode CODE >136:Z:\SAMB_4\projects\xilofono\src\main.c +16C intcode CODE >137:Z:\SAMB_4\projects\xilofono\src\main.c +418 text8 CODE >29:Z:\SAMB_4\projects\xilofono\src\rs232.c +41A text8 CODE >31:Z:\SAMB_4\projects\xilofono\src\rs232.c +41E text8 CODE >32:Z:\SAMB_4\projects\xilofono\src\rs232.c +422 text8 CODE >33:Z:\SAMB_4\projects\xilofono\src\rs232.c +234 text7 CODE >226:Z:\SAMB_4\projects\xilofono\src\main.c +234 text7 CODE >231:Z:\SAMB_4\projects\xilofono\src\main.c +23C text7 CODE >235:Z:\SAMB_4\projects\xilofono\src\main.c +250 text7 CODE >236:Z:\SAMB_4\projects\xilofono\src\main.c +25C text7 CODE >238:Z:\SAMB_4\projects\xilofono\src\main.c +282 text7 CODE >240:Z:\SAMB_4\projects\xilofono\src\main.c +284 text7 CODE >241:Z:\SAMB_4\projects\xilofono\src\main.c +296 text7 CODE >240:Z:\SAMB_4\projects\xilofono\src\main.c +296 text7 CODE >242:Z:\SAMB_4\projects\xilofono\src\main.c +3FC text6 CODE >4:Z:\SAMB_4\projects\xilofono\src\rs232.c +3FC text6 CODE >7:Z:\SAMB_4\projects\xilofono\src\rs232.c +3FE text6 CODE >8:Z:\SAMB_4\projects\xilofono\src\rs232.c +400 text6 CODE >11:Z:\SAMB_4\projects\xilofono\src\rs232.c +402 text6 CODE >12:Z:\SAMB_4\projects\xilofono\src\rs232.c +406 text6 CODE >13:Z:\SAMB_4\projects\xilofono\src\rs232.c +40A text6 CODE >14:Z:\SAMB_4\projects\xilofono\src\rs232.c +40C text6 CODE >15:Z:\SAMB_4\projects\xilofono\src\rs232.c +40E text6 CODE >18:Z:\SAMB_4\projects\xilofono\src\rs232.c +410 text6 CODE >19:Z:\SAMB_4\projects\xilofono\src\rs232.c +412 text6 CODE >20:Z:\SAMB_4\projects\xilofono\src\rs232.c +414 text6 CODE >21:Z:\SAMB_4\projects\xilofono\src\rs232.c +416 text6 CODE >22:Z:\SAMB_4\projects\xilofono\src\rs232.c +2A8 text5 CODE >140:Z:\SAMB_4\projects\xilofono\src\main.c +2A8 text5 CODE >142:Z:\SAMB_4\projects\xilofono\src\main.c +2AA text5 CODE >146:Z:\SAMB_4\projects\xilofono\src\main.c +2AC text5 CODE >148:Z:\SAMB_4\projects\xilofono\src\main.c +2B8 text5 CODE >150:Z:\SAMB_4\projects\xilofono\src\main.c +2BE text5 CODE >152:Z:\SAMB_4\projects\xilofono\src\main.c +2C2 text5 CODE >156:Z:\SAMB_4\projects\xilofono\src\main.c +2C8 text5 CODE >157:Z:\SAMB_4\projects\xilofono\src\main.c +2CC text5 CODE >158:Z:\SAMB_4\projects\xilofono\src\main.c +2D0 text5 CODE >159:Z:\SAMB_4\projects\xilofono\src\main.c +2D4 text5 CODE >162:Z:\SAMB_4\projects\xilofono\src\main.c +2D6 text5 CODE >163:Z:\SAMB_4\projects\xilofono\src\main.c +2D8 text5 CODE >165:Z:\SAMB_4\projects\xilofono\src\main.c +2DA text5 CODE >166:Z:\SAMB_4\projects\xilofono\src\main.c +2DC text5 CODE >167:Z:\SAMB_4\projects\xilofono\src\main.c +2DE text5 CODE >168:Z:\SAMB_4\projects\xilofono\src\main.c +2E0 text5 CODE >171:Z:\SAMB_4\projects\xilofono\src\main.c +2E2 text5 CODE >173:Z:\SAMB_4\projects\xilofono\src\main.c +2E4 text5 CODE >175:Z:\SAMB_4\projects\xilofono\src\main.c +2E6 text5 CODE >177:Z:\SAMB_4\projects\xilofono\src\main.c +2E8 text5 CODE >181:Z:\SAMB_4\projects\xilofono\src\main.c +2EC text5 CODE >183:Z:\SAMB_4\projects\xilofono\src\main.c +2F4 text5 CODE >185:Z:\SAMB_4\projects\xilofono\src\main.c +2F8 text5 CODE >187:Z:\SAMB_4\projects\xilofono\src\main.c +2FA text5 CODE >190:Z:\SAMB_4\projects\xilofono\src\main.c +2FC text5 CODE >191:Z:\SAMB_4\projects\xilofono\src\main.c +2FE text5 CODE >194:Z:\SAMB_4\projects\xilofono\src\main.c +300 text5 CODE >197:Z:\SAMB_4\projects\xilofono\src\main.c +304 text5 CODE >199:Z:\SAMB_4\projects\xilofono\src\main.c +306 text5 CODE >200:Z:\SAMB_4\projects\xilofono\src\main.c +386 text4 CODE >8:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c +386 text4 CODE >18:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c +38E text4 CODE >19:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c +390 text4 CODE >20:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c +3A0 text4 CODE >19:C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c +3B2 text3 CODE >51:Z:\SAMB_4\projects\xilofono\src\midi.c +3B2 text3 CODE >53:Z:\SAMB_4\projects\xilofono\src\midi.c +3BA text3 CODE >57:Z:\SAMB_4\projects\xilofono\src\midi.c +3D8 text2 CODE >40:Z:\SAMB_4\projects\xilofono\src\midi.c +3D8 text2 CODE >42:Z:\SAMB_4\projects\xilofono\src\midi.c +3E0 text2 CODE >46:Z:\SAMB_4\projects\xilofono\src\midi.c +1BC text1 CODE >62:Z:\SAMB_4\projects\xilofono\src\midi.c +1BC text1 CODE >64:Z:\SAMB_4\projects\xilofono\src\midi.c +1C4 text1 CODE >68:Z:\SAMB_4\projects\xilofono\src\midi.c +1DA text1 CODE >72:Z:\SAMB_4\projects\xilofono\src\midi.c +1EA text1 CODE >73:Z:\SAMB_4\projects\xilofono\src\midi.c +1FE text1 CODE >75:Z:\SAMB_4\projects\xilofono\src\midi.c +20E text1 CODE >76:Z:\SAMB_4\projects\xilofono\src\midi.c +21E text1 CODE >79:Z:\SAMB_4\projects\xilofono\src\midi.c +308 text0 CODE >204:Z:\SAMB_4\projects\xilofono\src\main.c +308 text0 CODE >210:Z:\SAMB_4\projects\xilofono\src\main.c +30C text0 CODE >213:Z:\SAMB_4\projects\xilofono\src\main.c +328 text0 CODE >216:Z:\SAMB_4\projects\xilofono\src\main.c +344 text0 CODE >217:Z:\SAMB_4\projects\xilofono\src\main.c +346 text0 CODE >220:Z:\SAMB_4\projects\xilofono\src\main.c +346 text0 CODE >221:Z:\SAMB_4\projects\xilofono\src\main.c +352 text0 CODE >220:Z:\SAMB_4\projects\xilofono\src\main.c +354 cinit CODE >1211:C:\Users\_prossn\AppData\Local\Temp\s5hg. +354 cinit CODE >1213:C:\Users\_prossn\AppData\Local\Temp\s5hg. +354 cinit CODE >1216:C:\Users\_prossn\AppData\Local\Temp\s5hg. +354 cinit CODE >1238:C:\Users\_prossn\AppData\Local\Temp\s5hg. +356 cinit CODE >1239:C:\Users\_prossn\AppData\Local\Temp\s5hg. +358 cinit CODE >1240:C:\Users\_prossn\AppData\Local\Temp\s5hg. +35A cinit CODE >1241:C:\Users\_prossn\AppData\Local\Temp\s5hg. +35C cinit CODE >1242:C:\Users\_prossn\AppData\Local\Temp\s5hg. +35E cinit CODE >1243:C:\Users\_prossn\AppData\Local\Temp\s5hg. +360 cinit CODE >1244:C:\Users\_prossn\AppData\Local\Temp\s5hg. +362 cinit CODE >1245:C:\Users\_prossn\AppData\Local\Temp\s5hg. +366 cinit CODE >1246:C:\Users\_prossn\AppData\Local\Temp\s5hg. +368 cinit CODE >1247:C:\Users\_prossn\AppData\Local\Temp\s5hg. +36C cinit CODE >1251:C:\Users\_prossn\AppData\Local\Temp\s5hg. +370 cinit CODE >1252:C:\Users\_prossn\AppData\Local\Temp\s5hg. +372 cinit CODE >1253:C:\Users\_prossn\AppData\Local\Temp\s5hg. +372 cinit CODE >1254:C:\Users\_prossn\AppData\Local\Temp\s5hg. +374 cinit CODE >1255:C:\Users\_prossn\AppData\Local\Temp\s5hg. +376 cinit CODE >1256:C:\Users\_prossn\AppData\Local\Temp\s5hg. +378 cinit CODE >1262:C:\Users\_prossn\AppData\Local\Temp\s5hg. +378 cinit CODE >1264:C:\Users\_prossn\AppData\Local\Temp\s5hg. +37A cinit CODE >1265:C:\Users\_prossn\AppData\Local\Temp\s5hg. +37C cinit CODE >1267:C:\Users\_prossn\AppData\Local\Temp\s5hg. +37E cinit CODE >1268:C:\Users\_prossn\AppData\Local\Temp\s5hg. +380 cinit CODE >1269:C:\Users\_prossn\AppData\Local\Temp\s5hg. +382 cinit CODE >1270:C:\Users\_prossn\AppData\Local\Temp\s5hg. +# %SYMTAB Section +# An enumeration of all symbols in the program. +# The beginning of the section is indicated by %SYMTAB. +# Each line describes a single symbol as follows: +# <label> <value> [-]<load-adj> <class> <space> <psect> <file-name> +# The value and load-adj are both in unqualified hexadecimal. +# All other numeric values are in decimal. The load-adj is the +# quantity one needs to add to the symbol value in order to obtain the load +# address of the symbol. This value may be signed. If the symbol +# was defined in a psect then <psect> will be "-". File-name +# is the name of the object file in which the symbol was defined. +%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 69 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 +isr@data 18 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +__end_of_midi_set_status 3FC 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\s5hg.obj +__Heeprom_data 0 0 EEDATA 0 eeprom_data 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\s5hg.obj +_main 308 0 CODE 0 text0 dist/default/production\src.production.obj +btemp 45 0 COMRAM 1 temp dist/default/production\src.production.obj +isr@i 19 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +start 1B8 0 CODE 0 init C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +__size_of_main 0 0 ABS 0 - dist/default/production\src.production.obj +__HbssCOMRAM 0 0 ABS 0 bssCOMRAM dist/default/production\src.production.obj +eusart_write_midi@data 21 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 21 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +__Hpowerup 1B8 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 +__HdataCOMRAM 0 0 ABS 0 dataCOMRAM dist/default/production\src.production.obj +__accesstop 60 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +intlevel0 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +intlevel1 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +intlevel2 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +intlevel3 0 0 CODE 0 text C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +__LbssCOMRAM 0 0 ABS 0 bssCOMRAM dist/default/production\src.production.obj +_midi_set_status 3D8 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 46 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 1B 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 +__pidataCOMRAM 424 0 CODE 0 idataCOMRAM dist/default/production\src.production.obj +__CFG_PRICLKEN$ON 0 0 ABS 0 - dist/default/production\src.production.obj +midi_note_on@velocity 24 0 COMRAM 1 cstackCOMRAM 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\s5hg.obj +___intlo_sp 0 0 STACK 2 stack C:\Users\_prossn\AppData\Local\Temp\s5hg.obj +__LdataCOMRAM 0 0 ABS 0 dataCOMRAM dist/default/production\src.production.obj +__size_of_init_hw 0 0 ABS 0 - dist/default/production\src.production.obj +eusart_write_midi@length 1F 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +__Hintcode_body 0 0 ABS 0 intcode_body 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 +__Hmediumconst 0 0 MEDIUMCONST 0 mediumconst dist/default/production\src.production.obj +__Hintcodelo 1B8 0 CODE 0 intcodelo dist/default/production\src.production.obj +midi_note_on@note 23 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +_OSCTUNEbits F9B 0 ABS 0 - dist/default/production\src.production.obj +__LidataCOMRAM 0 0 ABS 0 idataCOMRAM dist/default/production\src.production.obj +__size_of_putch 0 0 ABS 0 - dist/default/production\src.production.obj +__Lintcodelo 1B8 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 354 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 +_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 3B2 0 CODE 0 text4 dist/default/production\src.production.obj +__end_of_eusart_write_midi 2A8 0 CODE 0 text7 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 +__pcstackBANK0 60 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj +_TX1REG FAD 0 ABS 0 - dist/default/production\src.production.obj +__end_of_init_hw 308 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 +__Hbank3 0 0 ABS 0 bank3 dist/default/production\src.production.obj +__Hbank4 0 0 ABS 0 bank4 dist/default/production\src.production.obj +__Hbank5 0 0 ABS 0 bank5 dist/default/production\src.production.obj +__Hcinit 0 0 ABS 0 cinit dist/default/production\src.production.obj +__Hconst 0 0 CONST 0 const dist/default/production\src.production.obj +__Hidata 0 0 CODE 0 idata dist/default/production\src.production.obj +__Hidloc 200008 0 IDLOC 0 idloc dist/default/production\src.production.obj +__Hnvbit 0 0 COMRAM 1 nvbit dist/default/production\src.production.obj +__Hparam 0 0 COMRAM 1 rparam dist/default/production\src.production.obj +__Hrdata 0 0 COMRAM 1 rdata dist/default/production\src.production.obj +__Hstack 0 0 STACK 2 stack dist/default/production\src.production.obj +__Htext0 0 0 ABS 0 text0 dist/default/production\src.production.obj +__Htext1 0 0 ABS 0 text1 dist/default/production\src.production.obj +__Htext2 0 0 ABS 0 text2 dist/default/production\src.production.obj +__Htext3 0 0 ABS 0 text3 dist/default/production\src.production.obj +__Htext4 0 0 ABS 0 text4 dist/default/production\src.production.obj +__Htext5 0 0 ABS 0 text5 dist/default/production\src.production.obj +__Htext6 0 0 ABS 0 text6 dist/default/production\src.production.obj +__Htext7 0 0 ABS 0 text7 dist/default/production\src.production.obj +__Htext8 0 0 ABS 0 text8 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\s5hg.obj +__CFG_FOSC$INTIO7 0 0 ABS 0 - dist/default/production\src.production.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 1F 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 +__Lbank3 0 0 ABS 0 bank3 dist/default/production\src.production.obj +__Lbank4 0 0 ABS 0 bank4 dist/default/production\src.production.obj +__Lbank5 0 0 ABS 0 bank5 dist/default/production\src.production.obj +__Lcinit 0 0 ABS 0 cinit dist/default/production\src.production.obj +__Lconst 0 0 CONST 0 const dist/default/production\src.production.obj +__Lidata 0 0 CODE 0 idata dist/default/production\src.production.obj +__Lidloc 200000 0 IDLOC 0 idloc dist/default/production\src.production.obj +__Lnvbit 0 0 COMRAM 1 nvbit dist/default/production\src.production.obj +__Lparam 0 0 COMRAM 1 rparam dist/default/production\src.production.obj +__Lrdata 0 0 COMRAM 1 rdata dist/default/production\src.production.obj +__Lstack 0 0 STACK 2 stack dist/default/production\src.production.obj +__Ltext0 0 0 ABS 0 text0 dist/default/production\src.production.obj +__Ltext1 0 0 ABS 0 text1 dist/default/production\src.production.obj +__Ltext2 0 0 ABS 0 text2 dist/default/production\src.production.obj +__Ltext3 0 0 ABS 0 text3 dist/default/production\src.production.obj +__Ltext4 0 0 ABS 0 text4 dist/default/production\src.production.obj +__Ltext5 0 0 ABS 0 text5 dist/default/production\src.production.obj +__Ltext6 0 0 ABS 0 text6 dist/default/production\src.production.obj +__Ltext7 0 0 ABS 0 text7 dist/default/production\src.production.obj +__Ltext8 0 0 ABS 0 text8 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 1BC 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 46 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 1B8 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 45 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 25 0 COMRAM 1 bssCOMRAM dist/default/production\src.production.obj +memset@c 1C 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +memset@n 1E 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +memset@p 20 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +__LcstackBANK0 0 0 ABS 0 cstackBANK0 dist/default/production\src.production.obj +int$flags 45 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 69 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 +__HidataCOMRAM 0 0 ABS 0 idataCOMRAM 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 234 0 CODE 0 text7 dist/default/production\src.production.obj +__end_of_isr 1B8 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 1BC 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 +_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 386 0 CODE 0 text4 dist/default/production\src.production.obj +memset@p1 1A 0 COMRAM 1 cstackCOMRAM 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 1A 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 +__Lfarbss 0 0 FARRAM 0 farbss dist/default/production\src.production.obj +_eusart1_init 3FC 0 CODE 0 text6 dist/default/production\src.production.obj +__Lfardata 0 0 FARRAM 0 fardata dist/default/production\src.production.obj +midi_set_status@status 1C 0 COMRAM 1 cstackCOMRAM 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\s5hg.obj +stacklo 69 0 ABS 0 - C:\Users\_prossn\AppData\Local\Temp\s5hg.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 3B2 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 +__pbssCOMRAM 25 0 COMRAM 1 bssCOMRAM dist/default/production\src.production.obj +__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 +__LcstackCOMRAM 0 0 ABS 0 cstackCOMRAM dist/default/production\src.production.obj +end_of_initialization 378 0 CODE 0 cinit dist/default/production\src.production.obj +__end_of_midi_note_on 234 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 +_midi_base_scale 43 0 COMRAM 1 dataCOMRAM 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 +_init_hw 2A8 0 CODE 0 text5 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 354 0 CODE 0 cinit dist/default/production\src.production.obj +__ptext0 308 0 CODE 0 text0 dist/default/production\src.production.obj +__ptext1 1BC 0 CODE 0 text1 dist/default/production\src.production.obj +__ptext2 3D8 0 CODE 0 text2 dist/default/production\src.production.obj +__ptext3 3B2 0 CODE 0 text3 dist/default/production\src.production.obj +__ptext4 386 0 CODE 0 text4 dist/default/production\src.production.obj +__ptext5 2A8 0 CODE 0 text5 dist/default/production\src.production.obj +__ptext6 3FC 0 CODE 0 text6 dist/default/production\src.production.obj +__ptext7 234 0 CODE 0 text7 dist/default/production\src.production.obj +__ptext8 418 0 CODE 0 text8 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\s5hg.obj +putch@c 1A 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +__Lpowerup 1B8 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$592 17 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +midi_set_status@pkt 1A 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 418 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 378 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 +__CFG_WRT3$OFF 0 0 ABS 0 - dist/default/production\src.production.obj +__CFG_PLLCFG$ON 0 0 ABS 0 - dist/default/production\src.production.obj +__CFG_WRTB$OFF 0 0 ABS 0 - dist/default/production\src.production.obj +__Libigdata 0 0 CODE 0 ibigdata dist/default/production\src.production.obj +__CFG_WRTC$OFF 0 0 ABS 0 - dist/default/production\src.production.obj +__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 +__end_of_midi_set_channel 3D8 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 354 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 +_RC1IF 7CF5 0 ABS 0 - dist/default/production\src.production.obj +_TRISA F92 0 ABS 0 - dist/default/production\src.production.obj +_TRISB F93 0 ABS 0 - dist/default/production\src.production.obj +_TX1IF 7CF4 0 ABS 0 - dist/default/production\src.production.obj +__end_of_putch 424 0 CODE 0 text8 dist/default/production\src.production.obj +__CFG_CP0$OFF 0 0 ABS 0 - dist/default/production\src.production.obj +__CFG_CP1$OFF 0 0 ABS 0 - dist/default/production\src.production.obj +__HRAM 0 0 ABS 0 - dist/default/production\src.production.obj +__Hbss 0 0 RAM 1 bss dist/default/production\src.production.obj +__Hram 0 0 ABS 0 ram dist/default/production\src.production.obj +__Hsfr 0 0 ABS 0 sfr dist/default/production\src.production.obj +__LRAM 1 0 ABS 0 - dist/default/production\src.production.obj +__Lbss 0 0 RAM 1 bss dist/default/production\src.production.obj +__Lram 0 0 ABS 0 ram dist/default/production\src.production.obj +__Lsfr 0 0 ABS 0 sfr dist/default/production\src.production.obj +__CFG_CP2$OFF 0 0 ABS 0 - dist/default/production\src.production.obj +__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 +_putch 418 0 CODE 0 text8 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 +main@sample_message 62 0 BANK0 1 cstackBANK0 dist/default/production\src.production.obj +__initialization 354 0 CODE 0 cinit dist/default/production\src.production.obj +_BAUDCON1bits FB8 0 ABS 0 - dist/default/production\src.production.obj +__pdataCOMRAM 43 0 COMRAM 1 dataCOMRAM 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 +__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 1C 0 COMRAM 1 cstackCOMRAM dist/default/production\src.production.obj +__Hintcode 1B8 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. +# Each line is a record a particular split, where the parent psect is on +# the left and the child on the right. Note that a child psect is always +# split form the top of the parent psect. All splits from a given parent +# are listed in the order in which they occurred. +%SPLITSTAB +# %DABS Section +# This section contains a table of all usuage of the assember +# directive DABS in the program. Each line has the following format: +# <name> <space> <address> <size> +# If the DABS was originally labelled then that shall be <name>, +# otherwise name will be "-". The <space> number is in decimal. +# <address> and <size> are in byte units as unqaulified hexadecimal +%DABS +# %SEGMENTS Section +# This sections enumerates the segments of the program. Each segment +# is described on a single line as follows: +# <name> <space> <link address> <file address> <size> <delta> +# Addresses and size are in unqualified hexadecimal. The link address +# and size are in units of delta. The file address is in units of bytes. +# All other numeric quantities are in decimal. +%SEGMENTS +idloc 0 200000 200000 8 1 +cstackCOMRAM 1 1 1 45 1 +cstackBANK0 1 60 60 9 1 +reset_vec 0 0 0 4 1 +intcode 0 8 8 41E 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 Binary files differnew file mode 100644 index 0000000..8220677 --- /dev/null +++ b/src/dist/default/production/src.production.elf diff --git a/src/dist/default/production/src.production.hex b/src/dist/default/production/src.production.hex new file mode 100644 index 0000000..579dfa8 --- /dev/null +++ b/src/dist/default/production/src.production.hex @@ -0,0 +1,72 @@ +:04000000DCEF00F041 +:100008004582FACF05F0FBCF06F0E9CF07F0EACF3B +:1000180008F0E1CF09F0E2CF0AF0D9CF0BF0DACF40 +:100028000CF0F3CF0DF0F4CF0EF0F6CF0FF0F7CFC2 +:1000380010F0F8CF11F0F5CF12F045C013F046C01C +:1000480014F047C015F048C016F083969EA289D0D8 +:1000580080CF18F0070E196E1950020D250EF324E3 +:10006800D96E000EF420DA6EDECF01F0DDCF02F09B +:10007800D8900136023619C003F018C004F0032ADC +:1000880002D0D8900432032EFCD7010E0416045077 +:100098000112000E02121950020D250EF324D96E1A +:1000A800000EF420DA6E01C0DEFF02C0DDFF190683 +:1000B8001928D8A4D1D781CF18F0070E196E195076 +:1000C800020D250EF324D96E000EF420DA6EDECF71 +:1000D80001F0DDCF02F0D8900136023619C003F0E6 +:1000E80018C004F0032A02D0D8900432032EFCD79B +:1000F800010E041604500112000E02121950020DCE +:10010800250EF324D96E000EF420DA6E01C0DEFF4E +:1001180002C0DDFFF80E016EFF0E026E19061928E7 +:10012800036E046A0150032602500422035004108F +:10013800D8A4C5D780A002D0838801D08398000EA8 +:10014800176E25502610D8B406D0FF0E2614D8A452 +:1001580002D0010E176E17B002D0839401D08384A9 +:100168009E92838616C048F015C047F014C046F02A +:1001780013C045F012C0F5FF11C0F8FF10C0F7FF1B +:100188000FC0F6FF0EC0F4FF0DC0F3FF0CC0DAFF7E +:100198000BC0D9FF0AC0E2FF09C0E1FF08C0EAFFAF +:1001A80007C0E9FF06C0FBFF05C0FAFF4592110032 +:1001B800AAEF01F01F502010D8B41200030E1F241C +:1001C8000001606F000E2020616F60516111D8B48A +:1001D80012001FC01AF020C01BF0080E1C6EECECB9 +:1001E80001F01FC01AF020C01BF021C01CF022C073 +:1001F8001DF0D9EC01F020EE03F01F50D926205055 +:10020800DA2223C0DFFF20EE04F01F50D926205049 +:10021800DA2224C0DFFF20EE01F01F50D92620503B +:10022800DA22020EDE6E000EDD6E12001B501C106C +:10023800D8B4120020EE01F01B50D9261C50DA2247 +:10024800DECF1FF0DDCF20F0030E1B24216E000E41 +:100258001C20226E1BC0D9FF1CC0DAFFDF380F0B31 +:100268001D6E1BC0D9FF1CC0DAFFDF500F0B1E6EBE +:100278001E38F00B1D100CEC02F009D021C0D9FF7C +:1002880022C0DAFFDF500CEC02F0214A222A1F06B6 +:10029800D8A020061F28F2E12028D8B41200EED7F3 +:1002A800F29E9B8C9B809B829B849B869B889B9ABF +:1002B800D388D38AD38CFC0ED316000E0F01386F67 +:1002C800000E396F000E3A6F000E3B6F926893680C +:1002D800959295949596959883828394838683982E +:1002E800800EBB6EBA50870B1809BA6E030EBA128D +:1002F800BA849D829E92F28CFEEC01F0F28E12007E +:1003080054EC01F0250E1A6E000E1B6E000E1D6EC9 +:10031800000E1C6E000E1F6E1E0E1E6EC3EC01F04A +:10032800620E1F6E000E206E000E226E000E216EF1 +:100338003C0E236E7F0E246EDEEC00F08392620E7C +:100348001B6E000E1C6E1AEC01F0F9D7240EF66E27 +:10035800040EF76E000EF86E0900F5CF43F00900A1 +:10036800F5CF44F000EE25F01E0EEE6AE806FDE13A +:1003780045904592000EF86E000184EF01F01AC016 +:1003880020F01BC021F008D020C0D9FF21C0DAFF1F +:100398001CC0DFFF204A212A1E06D8A01F061E28DF +:1003A800F3E11F28D8B41200EFD71A501B10D8B4A5 +:1003B80012001CC01EF00F0E1E161AC0D9FF1BC05B +:1003C800DAFF1E3ADF501E180F0B1E18DF6E1200E0 +:1003D8001A501B10D8B412001CC01DF00F0E1D16A9 +:1003E8001AC0D9FF1BC0DAFFDF501D18F00B1D180B +:1003F800DF6E1200AC98AC9CAB8E1F0EAF6E000E79 +:10040800B06EAC94B896948E948CAB88AC8A12007B +:0E0418001A6E9EA8FED71AC0ADFF12003C005F +:020000040020DA +:08000000FFFFFFFFFFFFFFFF00 +:020000040030CA +:0E000000FF391F3FFFBF85FF0FC00FE00F400D +:00000001FF diff --git a/src/dist/default/production/src.production.hxl b/src/dist/default/production/src.production.hxl new file mode 100644 index 0000000..848925e --- /dev/null +++ b/src/dist/default/production/src.production.hxl @@ -0,0 +1,45 @@ +### HEXMate logfile and output summary ### +### Memory Usage ### + Unused memory ranges: + 4h - 7h + 426h - 1FFFFFh + 200008h - 2FFFFFh + 30000Eh - 30003Fh + + dist/default/production\src.production.hex ranges: + 0h - 3h + 8h - 425h + 200000h - 200007h + 300000h - 30000Dh + +### Hex Memory Map ### + Legend: + - = Unused memory + F = Filled ROM + S = Stored serial code + A = Stored ASCII string + R = Reserved for checksum + C = Stored checksum result + T = Trailing code + & = Find & replace opcode + X = Find & delete opcode + 1 = dist/default/production\src.production.hex +00000000: 1111----11111111111111111111111111111111111111111111111111111111 +00000040: 1111111111111111111111111111111111111111111111111111111111111111 +00000080: 1111111111111111111111111111111111111111111111111111111111111111 +000000C0: 1111111111111111111111111111111111111111111111111111111111111111 +00000100: 1111111111111111111111111111111111111111111111111111111111111111 +00000140: 1111111111111111111111111111111111111111111111111111111111111111 +00000180: 1111111111111111111111111111111111111111111111111111111111111111 +000001C0: 1111111111111111111111111111111111111111111111111111111111111111 +00000200: 1111111111111111111111111111111111111111111111111111111111111111 +00000240: 1111111111111111111111111111111111111111111111111111111111111111 +00000280: 1111111111111111111111111111111111111111111111111111111111111111 +000002C0: 1111111111111111111111111111111111111111111111111111111111111111 +00000300: 1111111111111111111111111111111111111111111111111111111111111111 +00000340: 1111111111111111111111111111111111111111111111111111111111111111 +00000380: 1111111111111111111111111111111111111111111111111111111111111111 +000003C0: 1111111111111111111111111111111111111111111111111111111111111111 +00000400: 11111111111111111111111111111111111111-------------------------- +00200000: 11111111-------------------------------------------------------- +00300000: 11111111111111-------------------------------------------------- diff --git a/src/dist/default/production/src.production.lst b/src/dist/default/production/src.production.lst new file mode 100644 index 0000000..a97f5cc --- /dev/null +++ b/src/dist/default/production/src.production.lst @@ -0,0 +1,1813 @@ + + +Microchip Technology PIC18 LITE Macro Assembler V1.44 build -154322312 + Fri Feb 23 16:30:02 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 idataCOMRAM,global,class=CODE,delta=1,noexec + 6 psect cinit,global,reloc=2,class=CODE,delta=1 + 7 psect bssCOMRAM,global,class=COMRAM,space=1,delta=1,noexec + 8 psect dataCOMRAM,global,class=COMRAM,space=1,delta=1,noexec + 9 psect cstackBANK0,global,class=BANK0,space=1,delta=1,noexec + 10 psect cstackCOMRAM,global,class=COMRAM,space=1,delta=1,noexec + 11 psect text0,global,reloc=2,class=CODE,delta=1 + 12 psect text1,global,reloc=2,class=CODE,delta=1 + 13 psect text2,global,reloc=2,class=CODE,delta=1 + 14 psect text3,global,reloc=2,class=CODE,delta=1 + 15 psect text4,global,reloc=2,class=CODE,delta=1,group=1 + 16 psect text5,global,reloc=2,class=CODE,delta=1,inline + 17 psect text6,global,reloc=2,class=CODE,delta=1 + 18 psect text7,global,reloc=2,class=CODE,delta=1 + 19 psect text8,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"). + 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 + 37 ; conditions and the following disclaimer. + 38 ; + 39 ; 2. Redistributions in binary form must reproduce the above copyright notice, this + + list + 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 + 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 + 48 ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIREC + + T, + 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 + 52 ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE U + + SE OF + 53 ; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + 54 ; + 55 ; + 56 ; Code-generator required, PIC18F45K22 Definitions + 57 ; + 58 ; SFR Addresses + 59 0000 + 60 psect idataCOMRAM + 61 000424 __pidataCOMRAM: + 62 opt stack 0 + 63 + 64 ;initializer for _midi_base_scale + 65 000424 003C dw 60 + 66 0000 _ANSELD set 3899 + 67 0000 _ANSELC set 3898 + 68 0000 _ANSELB set 3897 + 69 0000 _ANSELA set 3896 + 70 0000 _RC1REG set 4014 + 71 0000 _TX1REG set 4013 + 72 0000 _TRISCbits set 3988 + 73 0000 _BAUDCON1bits set 4024 + 74 0000 _SPBRGH1 set 4016 + 75 0000 _SPBRG1 set 4015 + 76 0000 _RCSTA1bits set 4011 + 77 0000 _TXSTA1bits set 4012 + 78 0000 _PIE1bits set 3997 + 79 0000 _T2CONbits set 4026 + 80 0000 _PR2 set 4027 + 81 0000 _TRISDbits set 3989 + 82 0000 _TRISB set 3987 + 83 0000 _TRISA set 3986 + 84 0000 _OSCCONbits set 4051 + 85 0000 _OSCTUNEbits set 3995 + 86 0000 _INTCONbits set 4082 + 87 0000 _PORTAbits set 3968 + 88 0000 _PORTB set 3969 + 89 0000 _PORTA set 3968 + 90 0000 _PIR1bits set 3998 + 91 0000 _PORTDbits set 3971 + 92 0000 _RC1IF set 31989 + 93 0000 _TX1IF set 31988 + 94 + 95 ; #config settings + 96 0000 + 97 psect cinit + 98 000354 __pcinit: + 99 opt stack 0 + 100 000354 start_initialization: + 101 opt stack 0 + 102 000354 __initialization: + 103 opt stack 0 + 104 + 105 ; Initialize objects allocated to COMRAM (2 bytes) + 106 ; load TBLPTR registers with __pidataCOMRAM + 107 000354 0E24 movlw low __pidataCOMRAM + 108 000356 6EF6 movwf tblptrl,c + 109 000358 0E04 movlw high __pidataCOMRAM + 110 00035A 6EF7 movwf tblptrh,c + 111 00035C 0E00 movlw low (__pidataCOMRAM shr (0+16)) + 112 00035E 6EF8 movwf tblptru,c + 113 000360 0009 tblrd *+ ;fetch initializer + 114 000362 CFF5 F043 movff tablat,__pdataCOMRAM + 115 000366 0009 tblrd *+ ;fetch initializer + 116 000368 CFF5 F044 movff tablat,__pdataCOMRAM+1 + 117 + 118 ; Clear objects allocated to COMRAM (30 bytes) + 119 00036C EE00 F025 lfsr 0,__pbssCOMRAM + 120 000370 0E1E movlw 30 + 121 000372 clear_0: + 122 000372 6AEE clrf postinc0,c + 123 000374 06E8 decf wreg,f,c + 124 000376 E1FD bnz clear_0 + 125 000378 end_of_initialization: + 126 opt stack 0 + 127 000378 __end_of__initialization: + 128 opt stack 0 + 129 000378 9045 bcf int$flags,0,c ;clear compiler interrupt flag (level 1) + 130 00037A 9245 bcf int$flags,1,c ;clear compiler interrupt flag (level 2) + 131 00037C 0E00 movlw low (__Lmediumconst shr (0+16)) + 132 00037E 6EF8 movwf tblptru,c + 133 000380 0100 movlb 0 + 134 000382 EF84 F001 goto _main ;jump to C main() function + 135 tblptru equ 0xFF8 + 136 tblptrh equ 0xFF7 + 137 tblptrl equ 0xFF6 + 138 tablat equ 0xFF5 + 139 postinc0 equ 0xFEE + 140 wreg equ 0xFE8 + 141 + 142 psect bssCOMRAM + 143 000025 __pbssCOMRAM: + 144 opt stack 0 + 145 000025 _keypresses: + 146 opt stack 0 + 147 000025 ds 30 + 148 tblptru equ 0xFF8 + 149 tblptrh equ 0xFF7 + 150 tblptrl equ 0xFF6 + 151 tablat equ 0xFF5 + 152 postinc0 equ 0xFEE + 153 wreg equ 0xFE8 + 154 + 155 psect dataCOMRAM + 156 000043 __pdataCOMRAM: + 157 opt stack 0 + 158 000043 _midi_base_scale: + 159 opt stack 0 + 160 000043 ds 2 + 161 tblptru equ 0xFF8 + 162 tblptrh equ 0xFF7 + 163 tblptrl equ 0xFF6 + 164 tablat equ 0xFF5 + 165 postinc0 equ 0xFEE + 166 wreg equ 0xFE8 + 167 + 168 psect cstackBANK0 + 169 000060 __pcstackBANK0: + 170 opt stack 0 + 171 000060 ??_midi_note_on: + 172 + 173 ; 1 bytes @ 0x0 + 174 000060 ds 2 + 175 000062 main@sample_message: + 176 opt stack 0 + 177 + 178 ; 7 bytes @ 0x2 + 179 000062 ds 7 + 180 tblptru equ 0xFF8 + 181 tblptrh equ 0xFF7 + 182 tblptrl equ 0xFF6 + 183 tablat equ 0xFF5 + 184 postinc0 equ 0xFEE + 185 wreg equ 0xFE8 + 186 + 187 psect cstackCOMRAM + 188 000001 __pcstackCOMRAM: + 189 opt stack 0 + 190 000001 ??_isr: + 191 000001 + 192 ; 1 bytes @ 0x0 + 193 000001 ds 22 + 194 000017 _isr$592: + 195 opt stack 0 + 196 + 197 ; 1 bytes @ 0x16 + 198 000017 ds 1 + 199 000018 isr@data: + 200 opt stack 0 + 201 + 202 ; 1 bytes @ 0x17 + 203 000018 ds 1 + 204 000019 isr@i: + 205 opt stack 0 + 206 + 207 ; 1 bytes @ 0x18 + 208 000019 ds 1 + 209 00001A putch@c: + 210 opt stack 0 + 211 00001A midi_set_status@pkt: + 212 opt stack 0 + 213 00001A midi_set_channel@pkt: + 214 opt stack 0 + 215 00001A memset@p1: + 216 opt stack 0 + 217 + 218 ; 2 bytes @ 0x19 + 219 00001A ds 1 + 220 00001B eusart_write_midi@pkt: + 221 opt stack 0 + 222 + 223 ; 2 bytes @ 0x1A + 224 00001B ds 1 + 225 00001C midi_set_status@status: + 226 opt stack 0 + 227 00001C midi_set_channel@channel: + 228 opt stack 0 + 229 00001C memset@c: + 230 opt stack 0 + 231 + 232 ; 2 bytes @ 0x1B + 233 00001C ds 1 + 234 00001D ??_eusart_write_midi: + 235 00001D ??_midi_set_status: + 236 + 237 ; 1 bytes @ 0x1C + 238 00001D ds 1 + 239 00001E ??_midi_set_channel: + 240 00001E memset@n: + 241 opt stack 0 + 242 + 243 ; 2 bytes @ 0x1D + 244 00001E ds 1 + 245 00001F eusart_write_midi@length: + 246 opt stack 0 + 247 00001F midi_note_on@pkt: + 248 opt stack 0 + 249 + 250 ; 2 bytes @ 0x1E + 251 00001F ds 1 + 252 000020 memset@p: + 253 opt stack 0 + 254 + 255 ; 2 bytes @ 0x1F + 256 000020 ds 1 + 257 000021 eusart_write_midi@data: + 258 opt stack 0 + 259 000021 midi_note_on@channel: + 260 opt stack 0 + 261 + 262 ; 2 bytes @ 0x20 + 263 000021 ds 2 + 264 000023 midi_note_on@note: + 265 opt stack 0 + 266 + 267 ; 1 bytes @ 0x22 + 268 000023 ds 1 + 269 000024 midi_note_on@velocity: + 270 opt stack 0 + 271 + 272 ; 1 bytes @ 0x23 + 273 000024 ds 1 + 274 000025 tblptru equ 0xFF8 + 275 tblptrh equ 0xFF7 + 276 tblptrl equ 0xFF6 + 277 tablat equ 0xFF5 + 278 postinc0 equ 0xFEE + 279 wreg equ 0xFE8 + 280 + 281 ; 1 bytes @ 0x24 + 282 ;; + 283 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0 + 284 ;; + 285 ;; *************** function _main ***************** + 286 ;; Defined at: + 287 ;; line 204 in file "main.c" + 288 ;; Parameters: Size Location Type + 289 ;; None + 290 ;; Auto vars: Size Location Type + 291 ;; sample_messa 7 2[BANK0 ] struct . + 292 ;; data 1 0 unsigned char + 293 ;; i 1 0 unsigned char + 294 ;; Return value: Size Location Type + 295 ;; 1 wreg void + 296 ;; Registers used: + 297 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack + 298 ;; Tracked objects: + 299 ;; On entry : 0/0 + 300 ;; On exit : 0/0 + 301 ;; Unchanged: 0/0 + 302 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 303 ;; Params: 0 0 0 0 0 0 0 + 304 ;; Locals: 0 7 0 0 0 0 0 + 305 ;; Temps: 0 0 0 0 0 0 0 + 306 ;; Totals: 0 7 0 0 0 0 0 + 307 ;;Total ram usage: 7 bytes + 308 ;; Hardware stack levels required when called: 3 + 309 ;; This function calls: + 310 ;; _eusart_write_midi + 311 ;; _init_hw + 312 ;; _memset + 313 ;; _midi_note_on + 314 ;; This function is called by: + 315 ;; Startup code after reset + 316 ;; This function uses a non-reentrant model + 317 ;; + 318 + 319 psect text0 + 320 000308 __ptext0: + 321 opt stack 0 + 322 000308 _main: + 323 opt stack 28 + 324 + 325 ;main.c: 206: unsigned char i, data; + 326 ;main.c: 207: midi_message_t sample_message; + 327 ;main.c: 210: init_hw(); + 328 + 329 ;incstack = 0 + 330 000308 EC54 F001 call _init_hw ;wreg free + 331 + 332 ;main.c: 213: memset(keypresses, 0, sizeof(keypresses)); + 333 00030C 0E25 movlw low _keypresses + 334 00030E 6E1A movwf memset@p1,c + 335 000310 0E00 movlw high _keypresses + 336 000312 6E1B movwf memset@p1+1,c + 337 000314 0E00 movlw 0 + 338 000316 6E1D movwf memset@c+1,c + 339 000318 0E00 movlw 0 + 340 00031A 6E1C movwf memset@c,c + 341 00031C 0E00 movlw 0 + 342 00031E 6E1F movwf memset@n+1,c + 343 000320 0E1E movlw 30 + 344 000322 6E1E movwf memset@n,c + 345 000324 ECC3 F001 call _memset ;wreg free + 346 + 347 ;main.c: 216: midi_note_on(&sample_message, 0x0, 0x3C, 0x7F); + 348 000328 0E62 movlw low main@sample_message + 349 00032A 6E1F movwf midi_note_on@pkt,c + 350 00032C 0E00 movlw high main@sample_message + 351 00032E 6E20 movwf midi_note_on@pkt+1,c + 352 000330 0E00 movlw 0 + 353 000332 6E22 movwf midi_note_on@channel+1,c + 354 000334 0E00 movlw 0 + 355 000336 6E21 movwf midi_note_on@channel,c + 356 000338 0E3C movlw 60 + 357 00033A 6E23 movwf midi_note_on@note,c + 358 00033C 0E7F movlw 127 + 359 00033E 6E24 movwf midi_note_on@velocity,c + 360 000340 ECDE F000 call _midi_note_on ;wreg free + 361 + 362 ;main.c: 217: PORTDbits.RD1 = 0; + 363 000344 9283 bcf 3971,1,c ;volatile + 364 000346 + 365 ;main.c: 221: eusart_write_midi(&sample_message); + 366 000346 0E62 movlw low main@sample_message + 367 000348 6E1B movwf eusart_write_midi@pkt,c + 368 00034A 0E00 movlw high main@sample_message + 369 00034C 6E1C movwf eusart_write_midi@pkt+1,c + 370 00034E EC1A F001 call _eusart_write_midi ;wreg free + 371 000352 D7F9 goto l70 + 372 000354 __end_of_main: + 373 opt stack 0 + 374 tblptru equ 0xFF8 + 375 tblptrh equ 0xFF7 + 376 tblptrl equ 0xFF6 + 377 tablat equ 0xFF5 + 378 postinc0 equ 0xFEE + 379 wreg equ 0xFE8 + 380 + 381 ;; *************** function _midi_note_on ***************** + 382 ;; Defined at: + 383 ;; line 62 in file "midi.c" + 384 ;; Parameters: Size Location Type + 385 ;; pkt 2 30[COMRAM] PTR struct . + 386 ;; -> main@sample_message(7), + 387 ;; channel 2 32[COMRAM] unsigned int + 388 ;; note 1 34[COMRAM] enum E31 + 389 ;; velocity 1 35[COMRAM] unsigned char + 390 ;; Auto vars: Size Location Type + 391 ;; None + 392 ;; Return value: Size Location Type + 393 ;; 2 30[COMRAM] int + 394 ;; Registers used: + 395 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack + 396 ;; Tracked objects: + 397 ;; On entry : 0/0 + 398 ;; On exit : 0/0 + 399 ;; Unchanged: 0/0 + 400 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 401 ;; Params: 6 0 0 0 0 0 0 + 402 ;; Locals: 0 0 0 0 0 0 0 + 403 ;; Temps: 0 2 0 0 0 0 0 + 404 ;; Totals: 6 2 0 0 0 0 0 + 405 ;;Total ram usage: 8 bytes + 406 ;; Hardware stack levels used: 1 + 407 ;; Hardware stack levels required when called: 2 + 408 ;; This function calls: + 409 ;; _midi_set_channel + 410 ;; _midi_set_status + 411 ;; This function is called by: + 412 ;; _main + 413 ;; This function uses a non-reentrant model + 414 ;; + 415 + 416 psect text1 + 417 0001BC __ptext1: + 418 opt stack 0 + 419 0001BC _midi_note_on: + 420 opt stack 28 + 421 + 422 ;midi.c: 64: if (pkt == (0)) { + 423 + 424 ;incstack = 0 + 425 0001BC 501F movf midi_note_on@pkt,w,c + 426 0001BE 1020 iorwf midi_note_on@pkt+1,w,c + 427 0001C0 B4D8 btfsc status,2,c + 428 0001C2 0012 return + 429 + 430 ;midi.c: 66: } + 431 ;midi.c: 68: if (pkt->data == (0)) { + 432 + 433 ;midi.c: 65: return -1; + 434 ; Return value of _midi_note_on is never used + 435 0001C4 0E03 movlw 3 + 436 0001C6 241F addwf midi_note_on@pkt,w,c + 437 0001C8 0100 movlb 0 ; () banked + 438 0001CA 6F60 movwf ??_midi_note_on& (0+255),b + 439 0001CC 0E00 movlw 0 + 440 0001CE 2020 addwfc midi_note_on@pkt+1,w,c + 441 0001D0 6F61 movwf (??_midi_note_on+1)& (0+255),b + 442 0001D2 5160 movf ??_midi_note_on& (0+255),w,b + 443 0001D4 1161 iorwf (??_midi_note_on+1)& (0+255),w,b + 444 0001D6 B4D8 btfsc status,2,c + 445 0001D8 0012 return + 446 + 447 ; BSR set to: 0 + 448 ;midi.c: 70: } + 449 ;midi.c: 72: midi_set_status(pkt, NOTE_ON); + 450 + 451 ; BSR set to: 0 + 452 + 453 ; BSR set to: 0 + 454 ;midi.c: 69: return -2; + 455 ; Return value of _midi_note_on is never used + 456 0001DA C01F F01A movff midi_note_on@pkt,midi_set_status@pkt + 457 0001DE C020 F01B movff midi_note_on@pkt+1,midi_set_status@pkt+1 + 458 0001E2 0E08 movlw 8 + 459 0001E4 6E1C movwf midi_set_status@status,c + 460 0001E6 ECEC F001 call _midi_set_status ;wreg free + 461 + 462 ;midi.c: 73: midi_set_channel(pkt, channel); + 463 0001EA C01F F01A movff midi_note_on@pkt,midi_set_channel@pkt + 464 0001EE C020 F01B movff midi_note_on@pkt+1,midi_set_channel@pkt+1 + 465 0001F2 C021 F01C movff midi_note_on@channel,midi_set_channel@channel + 466 0001F6 C022 F01D movff midi_note_on@channel+1,midi_set_channel@channel+1 + 467 0001FA ECD9 F001 call _midi_set_channel ;wreg free + 468 + 469 ;midi.c: 75: pkt->data[0] = note; + 470 0001FE EE20 F003 lfsr 2,3 + 471 000202 501F movf midi_note_on@pkt,w,c + 472 000204 26D9 addwf fsr2l,f,c + 473 000206 5020 movf midi_note_on@pkt+1,w,c + 474 000208 22DA addwfc fsr2h,f,c + 475 00020A C023 FFDF movff midi_note_on@note,indf2 + 476 + 477 ;midi.c: 76: pkt->data[1] = velocity; + 478 00020E EE20 F004 lfsr 2,4 + 479 000212 501F movf midi_note_on@pkt,w,c + 480 000214 26D9 addwf fsr2l,f,c + 481 000216 5020 movf midi_note_on@pkt+1,w,c + 482 000218 22DA addwfc fsr2h,f,c + 483 00021A C024 FFDF movff midi_note_on@velocity,indf2 + 484 + 485 ;midi.c: 79: pkt->data_size = 2; + 486 00021E EE20 F001 lfsr 2,1 + 487 000222 501F movf midi_note_on@pkt,w,c + 488 000224 26D9 addwf fsr2l,f,c + 489 000226 5020 movf midi_note_on@pkt+1,w,c + 490 000228 22DA addwfc fsr2h,f,c + 491 00022A 0E02 movlw 2 + 492 00022C 6EDE movwf postinc2,c + 493 00022E 0E00 movlw 0 + 494 000230 6EDD movwf postdec2,c + 495 000232 0012 return + 496 000234 __end_of_midi_note_on: + 497 opt stack 0 + 498 tblptru equ 0xFF8 + 499 tblptrh equ 0xFF7 + 500 tblptrl equ 0xFF6 + 501 tablat equ 0xFF5 + 502 postinc0 equ 0xFEE + 503 wreg equ 0xFE8 + 504 indf2 equ 0xFDF + 505 postinc2 equ 0xFDE + 506 postdec2 equ 0xFDD + 507 fsr2h equ 0xFDA + 508 fsr2l equ 0xFD9 + 509 status equ 0xFD8 + 510 + 511 ;; *************** function _midi_set_status ***************** + 512 ;; Defined at: + 513 ;; line 40 in file "midi.c" + 514 ;; Parameters: Size Location Type + 515 ;; pkt 2 25[COMRAM] PTR struct . + 516 ;; -> main@sample_message(7), + 517 ;; status 1 27[COMRAM] enum E40 + 518 ;; Auto vars: Size Location Type + 519 ;; None + 520 ;; Return value: Size Location Type + 521 ;; 2 25[COMRAM] int + 522 ;; Registers used: + 523 ;; wreg, fsr2l, fsr2h, status,2, status,0 + 524 ;; Tracked objects: + 525 ;; On entry : 0/0 + 526 ;; On exit : 0/0 + 527 ;; Unchanged: 0/0 + 528 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 529 ;; Params: 3 0 0 0 0 0 0 + 530 ;; Locals: 0 0 0 0 0 0 0 + 531 ;; Temps: 1 0 0 0 0 0 0 + 532 ;; Totals: 4 0 0 0 0 0 0 + 533 ;;Total ram usage: 4 bytes + 534 ;; Hardware stack levels used: 1 + 535 ;; Hardware stack levels required when called: 1 + 536 ;; This function calls: + 537 ;; Nothing + 538 ;; This function is called by: + 539 ;; _midi_note_on + 540 ;; _midi_note_off + 541 ;; This function uses a non-reentrant model + 542 ;; + 543 + 544 psect text2 + 545 0003D8 __ptext2: + 546 opt stack 0 + 547 0003D8 _midi_set_status: + 548 opt stack 28 + 549 + 550 ;midi.c: 42: if (pkt == (0)) { + 551 + 552 ;incstack = 0 + 553 0003D8 501A movf midi_set_status@pkt,w,c + 554 0003DA 101B iorwf midi_set_status@pkt+1,w,c + 555 0003DC B4D8 btfsc status,2,c + 556 0003DE 0012 return + 557 + 558 ;midi.c: 44: } + 559 ;midi.c: 46: pkt->status = status & 0x0F; + 560 + 561 ;midi.c: 43: return -1; + 562 ; Return value of _midi_set_status is never used + 563 0003E0 C01C F01D movff midi_set_status@status,??_midi_set_status + 564 0003E4 0E0F movlw 15 + 565 0003E6 161D andwf ??_midi_set_status,f,c + 566 0003E8 C01A FFD9 movff midi_set_status@pkt,fsr2l + 567 0003EC C01B FFDA movff midi_set_status@pkt+1,fsr2h + 568 0003F0 50DF movf indf2,w,c + 569 0003F2 181D xorwf ??_midi_set_status,w,c + 570 0003F4 0BF0 andlw -16 + 571 0003F6 181D xorwf ??_midi_set_status,w,c + 572 0003F8 6EDF movwf indf2,c + 573 0003FA 0012 return + 574 0003FC __end_of_midi_set_status: + 575 opt stack 0 + 576 tblptru equ 0xFF8 + 577 tblptrh equ 0xFF7 + 578 tblptrl equ 0xFF6 + 579 tablat equ 0xFF5 + 580 postinc0 equ 0xFEE + 581 wreg equ 0xFE8 + 582 indf2 equ 0xFDF + 583 postinc2 equ 0xFDE + 584 postdec2 equ 0xFDD + 585 fsr2h equ 0xFDA + 586 fsr2l equ 0xFD9 + 587 status equ 0xFD8 + 588 + 589 ;; *************** function _midi_set_channel ***************** + 590 ;; Defined at: + 591 ;; line 51 in file "midi.c" + 592 ;; Parameters: Size Location Type + 593 ;; pkt 2 25[COMRAM] PTR struct . + 594 ;; -> main@sample_message(7), + 595 ;; channel 2 27[COMRAM] unsigned int + 596 ;; Auto vars: Size Location Type + 597 ;; None + 598 ;; Return value: Size Location Type + 599 ;; 2 25[COMRAM] int + 600 ;; Registers used: + 601 ;; wreg, fsr2l, fsr2h, status,2, status,0 + 602 ;; Tracked objects: + 603 ;; On entry : 0/0 + 604 ;; On exit : 0/0 + 605 ;; Unchanged: 0/0 + 606 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 607 ;; Params: 4 0 0 0 0 0 0 + 608 ;; Locals: 0 0 0 0 0 0 0 + 609 ;; Temps: 1 0 0 0 0 0 0 + 610 ;; Totals: 5 0 0 0 0 0 0 + 611 ;;Total ram usage: 5 bytes + 612 ;; Hardware stack levels used: 1 + 613 ;; Hardware stack levels required when called: 1 + 614 ;; This function calls: + 615 ;; Nothing + 616 ;; This function is called by: + 617 ;; _midi_note_on + 618 ;; _midi_note_off + 619 ;; This function uses a non-reentrant model + 620 ;; + 621 + 622 psect text3 + 623 0003B2 __ptext3: + 624 opt stack 0 + 625 0003B2 _midi_set_channel: + 626 opt stack 28 + 627 + 628 ;midi.c: 53: if (pkt == (0)) { + 629 + 630 ;incstack = 0 + 631 0003B2 501A movf midi_set_channel@pkt,w,c + 632 0003B4 101B iorwf midi_set_channel@pkt+1,w,c + 633 0003B6 B4D8 btfsc status,2,c + 634 0003B8 0012 return + 635 + 636 ;midi.c: 55: } + 637 ;midi.c: 57: pkt->channel = channel & 0x0F; + 638 + 639 ;midi.c: 54: return -1; + 640 ; Return value of _midi_set_channel is never used + 641 0003BA C01C F01E movff midi_set_channel@channel,??_midi_set_channel + 642 0003BE 0E0F movlw 15 + 643 0003C0 161E andwf ??_midi_set_channel,f,c + 644 0003C2 C01A FFD9 movff midi_set_channel@pkt,fsr2l + 645 0003C6 C01B FFDA movff midi_set_channel@pkt+1,fsr2h + 646 0003CA 3A1E swapf ??_midi_set_channel,f,c + 647 0003CC 50DF movf indf2,w,c + 648 0003CE 181E xorwf ??_midi_set_channel,w,c + 649 0003D0 0B0F andlw -241 + 650 0003D2 181E xorwf ??_midi_set_channel,w,c + 651 0003D4 6EDF movwf indf2,c + 652 0003D6 0012 return + 653 0003D8 __end_of_midi_set_channel: + 654 opt stack 0 + 655 tblptru equ 0xFF8 + 656 tblptrh equ 0xFF7 + 657 tblptrl equ 0xFF6 + 658 tablat equ 0xFF5 + 659 postinc0 equ 0xFEE + 660 wreg equ 0xFE8 + 661 indf2 equ 0xFDF + 662 postinc2 equ 0xFDE + 663 postdec2 equ 0xFDD + 664 fsr2h equ 0xFDA + 665 fsr2l equ 0xFD9 + 666 status equ 0xFD8 + 667 + 668 ;; *************** function _memset ***************** + 669 ;; Defined at: + 670 ;; line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c" + 671 ;; Parameters: Size Location Type + 672 ;; p1 2 25[COMRAM] PTR void + 673 ;; -> keypresses(30), + 674 ;; c 2 27[COMRAM] int + 675 ;; n 2 29[COMRAM] unsigned int + 676 ;; Auto vars: Size Location Type + 677 ;; p 2 31[COMRAM] PTR unsigned char + 678 ;; -> keypresses(30), + 679 ;; Return value: Size Location Type + 680 ;; 2 25[COMRAM] PTR void + 681 ;; Registers used: + 682 ;; wreg, fsr2l, fsr2h, status,2, status,0 + 683 ;; Tracked objects: + 684 ;; On entry : 0/0 + 685 ;; On exit : 0/0 + 686 ;; Unchanged: 0/0 + 687 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 688 ;; Params: 6 0 0 0 0 0 0 + 689 ;; Locals: 2 0 0 0 0 0 0 + 690 ;; Temps: 0 0 0 0 0 0 0 + 691 ;; Totals: 8 0 0 0 0 0 0 + 692 ;;Total ram usage: 8 bytes + 693 ;; Hardware stack levels used: 1 + 694 ;; Hardware stack levels required when called: 1 + 695 ;; This function calls: + 696 ;; Nothing + 697 ;; This function is called by: + 698 ;; _main + 699 ;; This function uses a non-reentrant model + 700 ;; + 701 + 702 psect text4 + 703 000386 __ptext4: + 704 opt stack 0 + 705 000386 _memset: + 706 opt stack 29 + 707 + 708 ;incstack = 0 + 709 000386 C01A F020 movff memset@p1,memset@p + 710 00038A C01B F021 movff memset@p1+1,memset@p+1 + 711 00038E D008 goto l569 + 712 000390 l1129: + 713 000390 C020 FFD9 movff memset@p,fsr2l + 714 000394 C021 FFDA movff memset@p+1,fsr2h + 715 000398 C01C FFDF movff memset@c,indf2 + 716 00039C 4A20 infsnz memset@p,f,c + 717 00039E 2A21 incf memset@p+1,f,c + 718 0003A0 l569: + 719 0003A0 061E decf memset@n,f,c + 720 0003A2 A0D8 btfss status,0,c + 721 0003A4 061F decf memset@n+1,f,c + 722 0003A6 281E incf memset@n,w,c + 723 0003A8 E1F3 bnz l1129 + 724 0003AA 281F incf memset@n+1,w,c + 725 0003AC B4D8 btfsc status,2,c + 726 0003AE 0012 return + 727 0003B0 D7EF goto l570 + 728 0003B2 __end_of_memset: + 729 opt stack 0 + 730 tblptru equ 0xFF8 + 731 tblptrh equ 0xFF7 + 732 tblptrl equ 0xFF6 + 733 tablat equ 0xFF5 + 734 postinc0 equ 0xFEE + 735 wreg equ 0xFE8 + 736 indf2 equ 0xFDF + 737 postinc2 equ 0xFDE + 738 postdec2 equ 0xFDD + 739 fsr2h equ 0xFDA + 740 fsr2l equ 0xFD9 + 741 status equ 0xFD8 + 742 + 743 ;; *************** function _init_hw ***************** + 744 ;; Defined at: + 745 ;; line 140 in file "main.c" + 746 ;; Parameters: Size Location Type + 747 ;; None + 748 ;; Auto vars: Size Location Type + 749 ;; None + 750 ;; Return value: Size Location Type + 751 ;; 1 wreg void + 752 ;; Registers used: + 753 ;; wreg, status,2, cstack + 754 ;; Tracked objects: + 755 ;; On entry : 0/0 + 756 ;; On exit : 0/0 + 757 ;; Unchanged: 0/0 + 758 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 759 ;; Params: 0 0 0 0 0 0 0 + 760 ;; Locals: 0 0 0 0 0 0 0 + 761 ;; Temps: 0 0 0 0 0 0 0 + 762 ;; Totals: 0 0 0 0 0 0 0 + 763 ;;Total ram usage: 0 bytes + 764 ;; Hardware stack levels used: 1 + 765 ;; Hardware stack levels required when called: 2 + 766 ;; This function calls: + 767 ;; _eusart1_init + 768 ;; This function is called by: + 769 ;; _main + 770 ;; This function uses a non-reentrant model + 771 ;; + 772 + 773 psect text5 + 774 0002A8 __ptext5: + 775 opt stack 0 + 776 0002A8 _init_hw: + 777 opt stack 28 + 778 + 779 ;main.c: 142: (INTCONbits.GIE = 0); + 780 + 781 ;incstack = 0 + 782 0002A8 9EF2 bcf intcon,7,c ;volatile + 783 + 784 ;main.c: 146: OSCTUNEbits.PLLEN = 1; + 785 0002AA 8C9B bsf 3995,6,c ;volatile + 786 + 787 ;main.c: 148: OSCTUNEbits.TUN = 0b011111; + 788 0002AC 809B bsf 3995,0,c ;volatile + 789 0002AE 829B bsf 3995,1,c ;volatile + 790 0002B0 849B bsf 3995,2,c ;volatile + 791 0002B2 869B bsf 3995,3,c ;volatile + 792 0002B4 889B bsf 3995,4,c ;volatile + 793 0002B6 9A9B bcf 3995,5,c ;volatile + 794 + 795 ;main.c: 150: OSCCONbits.IRCF = 0b111; + 796 0002B8 88D3 bsf 4051,4,c ;volatile + 797 0002BA 8AD3 bsf 4051,5,c ;volatile + 798 0002BC 8CD3 bsf 4051,6,c ;volatile + 799 + 800 ;main.c: 152: OSCCONbits.SCS = 0b00; + 801 0002BE 0EFC movlw -4 + 802 0002C0 16D3 andwf 4051,f,c ;volatile + 803 + 804 ;main.c: 156: ANSELA = 0x00; + 805 0002C2 0E00 movlw 0 + 806 0002C4 010F movlb 15 ; () banked + 807 0002C6 6F38 movwf 56,b ;volatile + 808 + 809 ;main.c: 157: ANSELB = 0x00; + 810 0002C8 0E00 movlw 0 + 811 0002CA 6F39 movwf 57,b ;volatile + 812 + 813 ;main.c: 158: ANSELC = 0x00; + 814 0002CC 0E00 movlw 0 + 815 0002CE 6F3A movwf 58,b ;volatile + 816 + 817 ;main.c: 159: ANSELD = 0x00; + 818 0002D0 0E00 movlw 0 + 819 0002D2 6F3B movwf 59,b ;volatile + 820 + 821 ; BSR set to: 15 + 822 ;main.c: 162: TRISA = 0xFF; + 823 0002D4 6892 setf 3986,c ;volatile + 824 + 825 ; BSR set to: 15 + 826 ;main.c: 163: TRISB = 0xFF; + 827 0002D6 6893 setf 3987,c ;volatile + 828 + 829 ; BSR set to: 15 + 830 ;main.c: 165: TRISDbits.TRISD1 = 0; + 831 0002D8 9295 bcf 3989,1,c ;volatile + 832 + 833 ; BSR set to: 15 + 834 ;main.c: 166: TRISDbits.TRISD2 = 0; + 835 0002DA 9495 bcf 3989,2,c ;volatile + 836 + 837 ; BSR set to: 15 + 838 ;main.c: 167: TRISDbits.TRISD3 = 0; + 839 0002DC 9695 bcf 3989,3,c ;volatile + 840 + 841 ; BSR set to: 15 + 842 ;main.c: 168: TRISDbits.TRISD4 = 0; + 843 0002DE 9895 bcf 3989,4,c ;volatile + 844 + 845 ; BSR set to: 15 + 846 ;main.c: 171: PORTDbits.RD1 = 1; + 847 0002E0 8283 bsf 3971,1,c ;volatile + 848 + 849 ; BSR set to: 15 + 850 ;main.c: 173: PORTDbits.RD2 = 0; + 851 0002E2 9483 bcf 3971,2,c ;volatile + 852 + 853 ; BSR set to: 15 + 854 ;main.c: 175: PORTDbits.RD3 = 1; + 855 0002E4 8683 bsf 3971,3,c ;volatile + 856 + 857 ; BSR set to: 15 + 858 ;main.c: 177: PORTDbits.RD4 = 0; + 859 0002E6 9883 bcf 3971,4,c ;volatile + 860 + 861 ;main.c: 181: PR2 = 128; + 862 0002E8 0E80 movlw 128 + 863 0002EA 6EBB movwf 4027,c ;volatile + 864 + 865 ;main.c: 183: T2CONbits.T2OUTPS = 0b0011; + 866 0002EC 50BA movf 4026,w,c ;volatile + 867 0002EE 0B87 andlw -121 + 868 0002F0 0918 iorlw 24 + 869 0002F2 6EBA movwf 4026,c ;volatile + 870 + 871 ;main.c: 185: T2CONbits.T2CKPS = 0b11; + 872 0002F4 0E03 movlw 3 + 873 0002F6 12BA iorwf 4026,f,c ;volatile + 874 + 875 ; BSR set to: 15 + 876 ;main.c: 187: T2CONbits.TMR2ON = 1; + 877 0002F8 84BA bsf 4026,2,c ;volatile + 878 + 879 ; BSR set to: 15 + 880 ;main.c: 190: PIE1bits.TMR2IE = 1; + 881 0002FA 829D bsf 3997,1,c ;volatile + 882 + 883 ; BSR set to: 15 + 884 ;main.c: 191: PIR1bits.TMR2IF = 0; + 885 0002FC 929E bcf 3998,1,c ;volatile + 886 + 887 ; BSR set to: 15 + 888 ;main.c: 194: INTCONbits.PEIE = 1; + 889 0002FE 8CF2 bsf intcon,6,c ;volatile + 890 + 891 ; BSR set to: 15 + 892 ;main.c: 197: eusart1_init(); + 893 000300 ECFE F001 call _eusart1_init ;wreg free + 894 + 895 ;main.c: 199: (INTCONbits.GIE = 1); + 896 000304 8EF2 bsf intcon,7,c ;volatile + 897 000306 0012 return ;funcret + 898 000308 __end_of_init_hw: + 899 opt stack 0 + 900 tblptru equ 0xFF8 + 901 tblptrh equ 0xFF7 + 902 tblptrl equ 0xFF6 + 903 tablat equ 0xFF5 + 904 intcon equ 0xFF2 + 905 postinc0 equ 0xFEE + 906 wreg equ 0xFE8 + 907 indf2 equ 0xFDF + 908 postinc2 equ 0xFDE + 909 postdec2 equ 0xFDD + 910 fsr2h equ 0xFDA + 911 fsr2l equ 0xFD9 + 912 status equ 0xFD8 + 913 + 914 ;; *************** function _eusart1_init ***************** + 915 ;; Defined at: + 916 ;; line 4 in file "rs232.c" + 917 ;; Parameters: Size Location Type + 918 ;; None + 919 ;; Auto vars: Size Location Type + 920 ;; None + 921 ;; Return value: Size Location Type + 922 ;; 1 wreg void + 923 ;; Registers used: + 924 ;; wreg, status,2 + 925 ;; Tracked objects: + 926 ;; On entry : 0/0 + 927 ;; On exit : 0/0 + 928 ;; Unchanged: 0/0 + 929 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 930 ;; Params: 0 0 0 0 0 0 0 + 931 ;; Locals: 0 0 0 0 0 0 0 + 932 ;; Temps: 0 0 0 0 0 0 0 + 933 ;; Totals: 0 0 0 0 0 0 0 + 934 ;;Total ram usage: 0 bytes + 935 ;; Hardware stack levels used: 1 + 936 ;; Hardware stack levels required when called: 1 + 937 ;; This function calls: + 938 ;; Nothing + 939 ;; This function is called by: + 940 ;; _init_hw + 941 ;; This function uses a non-reentrant model + 942 ;; + 943 + 944 psect text6 + 945 0003FC __ptext6: + 946 opt stack 0 + 947 0003FC _eusart1_init: + 948 opt stack 28 + 949 + 950 ;rs232.c: 7: TXSTA1bits.SYNC = 0; + 951 + 952 ;incstack = 0 + 953 0003FC 98AC bcf 4012,4,c ;volatile + 954 + 955 ;rs232.c: 8: TXSTA1bits.TX9 = 0; + 956 0003FE 9CAC bcf 4012,6,c ;volatile + 957 + 958 ;rs232.c: 11: RCSTA1bits.SPEN = 1; + 959 000400 8EAB bsf 4011,7,c ;volatile + 960 + 961 ;rs232.c: 12: SPBRG1 = 31; + 962 000402 0E1F movlw 31 + 963 000404 6EAF movwf 4015,c ;volatile + 964 + 965 ;rs232.c: 13: SPBRGH1 = 0; + 966 000406 0E00 movlw 0 + 967 000408 6EB0 movwf 4016,c ;volatile + 968 + 969 ;rs232.c: 14: TXSTA1bits.BRGH = 0; + 970 00040A 94AC bcf 4012,2,c ;volatile + 971 + 972 ;rs232.c: 15: BAUDCON1bits.BRG16 = 0; + 973 00040C 96B8 bcf 4024,3,c ;volatile + 974 + 975 ;rs232.c: 18: TRISCbits.TRISC7 = 1; + 976 00040E 8E94 bsf 3988,7,c ;volatile + 977 + 978 ;rs232.c: 19: TRISCbits.TRISC6 = 1; + 979 000410 8C94 bsf 3988,6,c ;volatile + 980 + 981 ;rs232.c: 20: RCSTA1bits.CREN = 1; + 982 000412 88AB bsf 4011,4,c ;volatile + 983 + 984 ;rs232.c: 21: TXSTA1bits.TXEN = 1; + 985 000414 8AAC bsf 4012,5,c ;volatile + 986 000416 0012 return ;funcret + 987 000418 __end_of_eusart1_init: + 988 opt stack 0 + 989 tblptru equ 0xFF8 + 990 tblptrh equ 0xFF7 + 991 tblptrl equ 0xFF6 + 992 tablat equ 0xFF5 + 993 intcon equ 0xFF2 + 994 postinc0 equ 0xFEE + 995 wreg equ 0xFE8 + 996 indf2 equ 0xFDF + 997 postinc2 equ 0xFDE + 998 postdec2 equ 0xFDD + 999 fsr2h equ 0xFDA + 1000 fsr2l equ 0xFD9 + 1001 status equ 0xFD8 + 1002 + 1003 ;; *************** function _eusart_write_midi ***************** + 1004 ;; Defined at: + 1005 ;; line 226 in file "main.c" + 1006 ;; Parameters: Size Location Type + 1007 ;; pkt 2 26[COMRAM] PTR const struct . + 1008 ;; -> main@sample_message(7), + 1009 ;; Auto vars: Size Location Type + 1010 ;; data 2 32[COMRAM] PTR unsigned char + 1011 ;; -> sample_message.data(4), main@sample_message(7), + 1012 ;; length 2 30[COMRAM] unsigned int + 1013 ;; Return value: Size Location Type + 1014 ;; 2 26[COMRAM] int + 1015 ;; Registers used: + 1016 ;; wreg, fsr2l, fsr2h, status,2, status,0, cstack + 1017 ;; Tracked objects: + 1018 ;; On entry : 0/0 + 1019 ;; On exit : 0/0 + 1020 ;; Unchanged: 0/0 + 1021 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 1022 ;; Params: 2 0 0 0 0 0 0 + 1023 ;; Locals: 4 0 0 0 0 0 0 + 1024 ;; Temps: 2 0 0 0 0 0 0 + 1025 ;; Totals: 8 0 0 0 0 0 0 + 1026 ;;Total ram usage: 8 bytes + 1027 ;; Hardware stack levels used: 1 + 1028 ;; Hardware stack levels required when called: 2 + 1029 ;; This function calls: + 1030 ;; _putch + 1031 ;; This function is called by: + 1032 ;; _main + 1033 ;; This function uses a non-reentrant model + 1034 ;; + 1035 + 1036 psect text7 + 1037 000234 __ptext7: + 1038 opt stack 0 + 1039 000234 _eusart_write_midi: + 1040 opt stack 28 + 1041 + 1042 ;main.c: 228: size_t length; + 1043 ;main.c: 229: uint8_t *data; + 1044 ;main.c: 231: if (pkt == (0)) { + 1045 + 1046 ;incstack = 0 + 1047 000234 501B movf eusart_write_midi@pkt,w,c + 1048 000236 101C iorwf eusart_write_midi@pkt+1,w,c + 1049 000238 B4D8 btfsc status,2,c + 1050 00023A 0012 return + 1051 + 1052 ;main.c: 233: } + 1053 ;main.c: 235: length = pkt->data_size; + 1054 + 1055 ;main.c: 232: return -1; + 1056 ; Return value of _eusart_write_midi is never used + 1057 00023C EE20 F001 lfsr 2,1 + 1058 000240 501B movf eusart_write_midi@pkt,w,c + 1059 000242 26D9 addwf fsr2l,f,c + 1060 000244 501C movf eusart_write_midi@pkt+1,w,c + 1061 000246 22DA addwfc fsr2h,f,c + 1062 000248 CFDE F01F movff postinc2,eusart_write_midi@length + 1063 00024C CFDD F020 movff postdec2,eusart_write_midi@length+1 + 1064 + 1065 ;main.c: 236: data = (uint8_t *) pkt->data; + 1066 000250 0E03 movlw 3 + 1067 000252 241B addwf eusart_write_midi@pkt,w,c + 1068 000254 6E21 movwf eusart_write_midi@data,c + 1069 000256 0E00 movlw 0 + 1070 000258 201C addwfc eusart_write_midi@pkt+1,w,c + 1071 00025A 6E22 movwf eusart_write_midi@data+1,c + 1072 + 1073 ;main.c: 238: putch((char)((pkt->status << 4) | pkt->channel)); + 1074 00025C C01B FFD9 movff eusart_write_midi@pkt,fsr2l + 1075 000260 C01C FFDA movff eusart_write_midi@pkt+1,fsr2h + 1076 000264 38DF swapf indf2,w,c + 1077 000266 0B0F andlw 15 + 1078 000268 6E1D movwf ??_eusart_write_midi& (0+255),c + 1079 00026A C01B FFD9 movff eusart_write_midi@pkt,fsr2l + 1080 00026E C01C FFDA movff eusart_write_midi@pkt+1,fsr2h + 1081 000272 50DF movf indf2,w,c + 1082 000274 0B0F andlw 15 + 1083 000276 6E1E movwf (??_eusart_write_midi+1)& (0+255),c + 1084 000278 381E swapf ??_eusart_write_midi+1,w,c + 1085 00027A 0BF0 andlw 240 + 1086 00027C 101D iorwf ??_eusart_write_midi,w,c + 1087 00027E EC0C F002 call _putch + 1088 + 1089 ;main.c: 240: while (length--) { + 1090 000282 D009 goto l78 + 1091 000284 l1163: + 1092 + 1093 ;main.c: 241: putch((char) *(data++)); + 1094 000284 C021 FFD9 movff eusart_write_midi@data,fsr2l + 1095 000288 C022 FFDA movff eusart_write_midi@data+1,fsr2h + 1096 00028C 50DF movf indf2,w,c + 1097 00028E EC0C F002 call _putch + 1098 000292 4A21 infsnz eusart_write_midi@data,f,c + 1099 000294 2A22 incf eusart_write_midi@data+1,f,c + 1100 000296 l78: + 1101 000296 061F decf eusart_write_midi@length,f,c + 1102 000298 A0D8 btfss status,0,c + 1103 00029A 0620 decf eusart_write_midi@length+1,f,c + 1104 00029C 281F incf eusart_write_midi@length,w,c + 1105 00029E E1F2 bnz l1163 + 1106 0002A0 2820 incf eusart_write_midi@length+1,w,c + 1107 0002A2 B4D8 btfsc status,2,c + 1108 0002A4 0012 return + 1109 0002A6 D7EE goto l79 + 1110 0002A8 __end_of_eusart_write_midi: + 1111 opt stack 0 + 1112 tblptru equ 0xFF8 + 1113 tblptrh equ 0xFF7 + 1114 tblptrl equ 0xFF6 + 1115 tablat equ 0xFF5 + 1116 intcon equ 0xFF2 + 1117 postinc0 equ 0xFEE + 1118 wreg equ 0xFE8 + 1119 indf2 equ 0xFDF + 1120 postinc2 equ 0xFDE + 1121 postdec2 equ 0xFDD + 1122 fsr2h equ 0xFDA + 1123 fsr2l equ 0xFD9 + 1124 status equ 0xFD8 + 1125 + 1126 ;; *************** function _putch ***************** + 1127 ;; Defined at: + 1128 ;; line 29 in file "rs232.c" + 1129 ;; Parameters: Size Location Type + 1130 ;; c 1 wreg unsigned char + 1131 ;; Auto vars: Size Location Type + 1132 ;; c 1 25[COMRAM] unsigned char + 1133 ;; Return value: Size Location Type + 1134 ;; 1 wreg void + 1135 ;; Registers used: + 1136 ;; wreg + 1137 ;; Tracked objects: + 1138 ;; On entry : 0/0 + 1139 ;; On exit : 0/0 + 1140 ;; Unchanged: 0/0 + 1141 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 1142 ;; Params: 0 0 0 0 0 0 0 + 1143 ;; Locals: 1 0 0 0 0 0 0 + 1144 ;; Temps: 0 0 0 0 0 0 0 + 1145 ;; Totals: 1 0 0 0 0 0 0 + 1146 ;;Total ram usage: 1 bytes + 1147 ;; Hardware stack levels used: 1 + 1148 ;; Hardware stack levels required when called: 1 + 1149 ;; This function calls: + 1150 ;; Nothing + 1151 ;; This function is called by: + 1152 ;; _eusart_write_midi + 1153 ;; _getche + 1154 ;; This function uses a non-reentrant model + 1155 ;; + 1156 + 1157 psect text8 + 1158 000418 __ptext8: + 1159 opt stack 0 + 1160 000418 _putch: + 1161 opt stack 28 + 1162 + 1163 ;incstack = 0 + 1164 ;putch@c stored from wreg + 1165 000418 6E1A movwf putch@c,c + 1166 00041A + 1167 ;rs232.c: 31: while (!TX1IF); + 1168 00041A A89E btfss 3998,4,c ;volatile + 1169 00041C D7FE goto l1071 + 1170 + 1171 ;rs232.c: 32: TX1REG = c; + 1172 00041E C01A FFAD movff putch@c,4013 ;volatile + 1173 000422 0012 return ;funcret + 1174 000424 __end_of_putch: + 1175 opt stack 0 + 1176 tblptru equ 0xFF8 + 1177 tblptrh equ 0xFF7 + 1178 tblptrl equ 0xFF6 + 1179 tablat equ 0xFF5 + 1180 intcon equ 0xFF2 + 1181 postinc0 equ 0xFEE + 1182 wreg equ 0xFE8 + 1183 indf2 equ 0xFDF + 1184 postinc2 equ 0xFDE + 1185 postdec2 equ 0xFDD + 1186 fsr2h equ 0xFDA + 1187 fsr2l equ 0xFD9 + 1188 status equ 0xFD8 + 1189 + 1190 ;; *************** function _isr ***************** + 1191 ;; Defined at: + 1192 ;; line 101 in file "main.c" + 1193 ;; Parameters: Size Location Type + 1194 ;; None + 1195 ;; Auto vars: Size Location Type + 1196 ;; i 1 24[COMRAM] unsigned char + 1197 ;; data 1 23[COMRAM] unsigned char + 1198 ;; Return value: Size Location Type + 1199 ;; 1 wreg void + 1200 ;; Registers used: + 1201 ;; wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh + 1202 ;; Tracked objects: + 1203 ;; On entry : 0/0 + 1204 ;; On exit : 0/0 + 1205 ;; Unchanged: 0/0 + 1206 ;; Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + 1207 ;; Params: 0 0 0 0 0 0 0 + 1208 ;; Locals: 3 0 0 0 0 0 0 + 1209 ;; Temps: 22 0 0 0 0 0 0 + 1210 ;; Totals: 25 0 0 0 0 0 0 + 1211 ;;Total ram usage: 25 bytes + 1212 ;; Hardware stack levels used: 1 + 1213 ;; This function calls: + 1214 ;; Nothing + 1215 ;; This function is called by: + 1216 ;; Interrupt level 2 + 1217 ;; This function uses a non-reentrant model + 1218 ;; + 1219 + 1220 psect intcode + 1221 000008 __pintcode: + 1222 opt stack 0 + 1223 000008 _isr: + 1224 opt stack 28 + 1225 + 1226 ;incstack = 0 + 1227 000008 8245 bsf btemp,1,c ;set compiler interrupt flag (level 2) + 1228 00000A CFFA F005 movff pclath,??_isr+4 + 1229 00000E CFFB F006 movff pclatu,??_isr+5 + 1230 000012 CFE9 F007 movff fsr0l,??_isr+6 + 1231 000016 CFEA F008 movff fsr0h,??_isr+7 + 1232 00001A CFE1 F009 movff fsr1l,??_isr+8 + 1233 00001E CFE2 F00A movff fsr1h,??_isr+9 + 1234 000022 CFD9 F00B movff fsr2l,??_isr+10 + 1235 000026 CFDA F00C movff fsr2h,??_isr+11 + 1236 00002A CFF3 F00D movff prodl,??_isr+12 + 1237 00002E CFF4 F00E movff prodh,??_isr+13 + 1238 000032 CFF6 F00F movff tblptrl,??_isr+14 + 1239 000036 CFF7 F010 movff tblptrh,??_isr+15 + 1240 00003A CFF8 F011 movff tblptru,??_isr+16 + 1241 00003E CFF5 F012 movff tablat,??_isr+17 + 1242 000042 C045 F013 movff btemp,??_isr+18 + 1243 000046 C046 F014 movff btemp+1,??_isr+19 + 1244 00004A C047 F015 movff btemp+2,??_isr+20 + 1245 00004E C048 F016 movff btemp+3,??_isr+21 + 1246 + 1247 ;main.c: 103: unsigned char i, data; + 1248 ;main.c: 105: PORTDbits.RD3 = 0; + 1249 000052 9683 bcf 3971,3,c ;volatile + 1250 + 1251 ;main.c: 107: if (PIR1bits.TMR2IF) { + 1252 000054 A29E btfss 3998,1,c ;volatile + 1253 000056 D089 goto i2l55 + 1254 + 1255 ;main.c: 109: data = PORTA; + 1256 000058 CF80 F018 movff 3968,isr@data ;volatile + 1257 + 1258 ;main.c: 110: i = 7; + 1259 00005C 0E07 movlw 7 + 1260 00005E 6E19 movwf isr@i,c + 1261 000060 + 1262 ;main.c: 112: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); + 1263 000060 5019 movf isr@i,w,c + 1264 000062 0D02 mullw 2 + 1265 000064 0E25 movlw low _keypresses + 1266 000066 24F3 addwf prodl,w,c + 1267 000068 6ED9 movwf fsr2l,c + 1268 00006A 0E00 movlw high _keypresses + 1269 00006C 20F4 addwfc prodh,w,c + 1270 00006E 6EDA movwf fsr2h,c + 1271 000070 CFDE F001 movff postinc2,??_isr + 1272 000074 CFDD F002 movff postdec2,??_isr+1 + 1273 000078 90D8 bcf status,0,c + 1274 00007A 3601 rlcf ??_isr,f,c + 1275 00007C 3602 rlcf ??_isr+1,f,c + 1276 00007E C019 F003 movff isr@i,??_isr+2 + 1277 000082 C018 F004 movff isr@data,??_isr+3 + 1278 000086 2A03 incf ??_isr+2,f,c + 1279 000088 D002 goto i2u29_44 + 1280 00008A i2u29_45: + 1281 00008A 90D8 bcf status,0,c + 1282 00008C 3204 rrcf ??_isr+3,f,c + 1283 00008E i2u29_44: + 1284 00008E 2E03 decfsz ??_isr+2,f,c + 1285 000090 D7FC goto i2u29_45 + 1286 000092 0E01 movlw 1 + 1287 000094 1604 andwf ??_isr+3,f,c + 1288 000096 5004 movf ??_isr+3,w,c + 1289 000098 1201 iorwf ??_isr,f,c + 1290 00009A 0E00 movlw 0 + 1291 00009C 1202 iorwf ??_isr+1,f,c + 1292 00009E 5019 movf isr@i,w,c + 1293 0000A0 0D02 mullw 2 + 1294 0000A2 0E25 movlw low _keypresses + 1295 0000A4 24F3 addwf prodl,w,c + 1296 0000A6 6ED9 movwf fsr2l,c + 1297 0000A8 0E00 movlw high _keypresses + 1298 0000AA 20F4 addwfc prodh,w,c + 1299 0000AC 6EDA movwf fsr2h,c + 1300 0000AE C001 FFDE movff ??_isr,postinc2 + 1301 0000B2 C002 FFDD movff ??_isr+1,postdec2 + 1302 + 1303 ;main.c: 113: } while (i--); + 1304 0000B6 0619 decf isr@i,f,c + 1305 0000B8 2819 incf isr@i,w,c + 1306 0000BA A4D8 btfss status,2,c + 1307 0000BC D7D1 goto i2l56 + 1308 + 1309 ;main.c: 115: data = PORTB; + 1310 0000BE CF81 F018 movff 3969,isr@data ;volatile + 1311 + 1312 ;main.c: 116: i = 7; + 1313 0000C2 0E07 movlw 7 + 1314 0000C4 6E19 movwf isr@i,c + 1315 0000C6 + 1316 ;main.c: 118: keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); + 1317 0000C6 5019 movf isr@i,w,c + 1318 0000C8 0D02 mullw 2 + 1319 0000CA 0E25 movlw low _keypresses + 1320 0000CC 24F3 addwf prodl,w,c + 1321 0000CE 6ED9 movwf fsr2l,c + 1322 0000D0 0E00 movlw high _keypresses + 1323 0000D2 20F4 addwfc prodh,w,c + 1324 0000D4 6EDA movwf fsr2h,c + 1325 0000D6 CFDE F001 movff postinc2,??_isr + 1326 0000DA CFDD F002 movff postdec2,??_isr+1 + 1327 0000DE 90D8 bcf status,0,c + 1328 0000E0 3601 rlcf ??_isr,f,c + 1329 0000E2 3602 rlcf ??_isr+1,f,c + 1330 0000E4 C019 F003 movff isr@i,??_isr+2 + 1331 0000E8 C018 F004 movff isr@data,??_isr+3 + 1332 0000EC 2A03 incf ??_isr+2,f,c + 1333 0000EE D002 goto i2u31_44 + 1334 0000F0 i2u31_45: + 1335 0000F0 90D8 bcf status,0,c + 1336 0000F2 3204 rrcf ??_isr+3,f,c + 1337 0000F4 i2u31_44: + 1338 0000F4 2E03 decfsz ??_isr+2,f,c + 1339 0000F6 D7FC goto i2u31_45 + 1340 0000F8 0E01 movlw 1 + 1341 0000FA 1604 andwf ??_isr+3,f,c + 1342 0000FC 5004 movf ??_isr+3,w,c + 1343 0000FE 1201 iorwf ??_isr,f,c + 1344 000100 0E00 movlw 0 + 1345 000102 1202 iorwf ??_isr+1,f,c + 1346 000104 5019 movf isr@i,w,c + 1347 000106 0D02 mullw 2 + 1348 000108 0E25 movlw low _keypresses + 1349 00010A 24F3 addwf prodl,w,c + 1350 00010C 6ED9 movwf fsr2l,c + 1351 00010E 0E00 movlw high _keypresses + 1352 000110 20F4 addwfc prodh,w,c + 1353 000112 6EDA movwf fsr2h,c + 1354 000114 C001 FFDE movff ??_isr,postinc2 + 1355 000118 C002 FFDD movff ??_isr+1,postdec2 + 1356 + 1357 ;main.c: 119: } while (i-- - 8); + 1358 00011C 0EF8 movlw 248 + 1359 00011E 6E01 movwf ??_isr& (0+255),c + 1360 000120 0EFF movlw 255 + 1361 000122 6E02 movwf (??_isr+1)& (0+255),c + 1362 000124 0619 decf isr@i,f,c + 1363 000126 2819 incf isr@i,w,c + 1364 000128 6E03 movwf (??_isr+2)& (0+255),c + 1365 00012A 6A04 clrf (??_isr+3)& (0+255),c + 1366 00012C 5001 movf ??_isr,w,c + 1367 00012E 2603 addwf ??_isr+2,f,c + 1368 000130 5002 movf ??_isr+1,w,c + 1369 000132 2204 addwfc ??_isr+3,f,c + 1370 000134 5003 movf ??_isr+2,w,c + 1371 000136 1004 iorwf ??_isr+3,w,c + 1372 000138 A4D8 btfss status,2,c + 1373 00013A D7C5 goto i2l58 + 1374 + 1375 ;main.c: 129: PORTDbits.RD4 = PORTAbits.RA0; + 1376 00013C A080 btfss 3968,0,c ;volatile + 1377 00013E D002 bra i2u33_45 + 1378 000140 8883 bsf 3971,4,c ;volatile + 1379 000142 D001 bra i2u33_47 + 1380 000144 i2u33_45: + 1381 000144 9883 bcf 3971,4,c ;volatile + 1382 000146 i2u33_47: + 1383 + 1384 ;main.c: 130: PORTDbits.RD2 = (keypresses[0] && !(keypresses[0] & 0xFF00)); + 1385 000146 0E00 movlw 0 + 1386 000148 6E17 movwf _isr$592,c + 1387 00014A 5025 movf _keypresses,w,c ;volatile + 1388 00014C 1026 iorwf _keypresses+1,w,c ;volatile + 1389 00014E B4D8 btfsc status,2,c + 1390 000150 D006 goto i2l61 + 1391 000152 0EFF movlw 255 + 1392 000154 1426 andwf _keypresses+1,w,c ;volatile + 1393 000156 A4D8 btfss status,2,c + 1394 000158 D002 goto i2l61 + 1395 00015A 0E01 movlw 1 + 1396 00015C 6E17 movwf _isr$592,c + 1397 00015E i2l61: + 1398 00015E B017 btfsc _isr$592,0,c + 1399 000160 D002 bra i2u36_45 + 1400 000162 9483 bcf 3971,2,c ;volatile + 1401 000164 D001 bra i2u36_46 + 1402 000166 i2u36_45: + 1403 000166 8483 bsf 3971,2,c ;volatile + 1404 000168 i2u36_46: + 1405 + 1406 ;main.c: 133: PIR1bits.TMR2IF = 0; + 1407 000168 929E bcf 3998,1,c ;volatile + 1408 00016A i2l55: + 1409 + 1410 ;main.c: 134: } + 1411 ;main.c: 136: PORTDbits.RD3 = 1; + 1412 00016A 8683 bsf 3971,3,c ;volatile + 1413 00016C C016 F048 movff ??_isr+21,btemp+3 + 1414 000170 C015 F047 movff ??_isr+20,btemp+2 + 1415 000174 C014 F046 movff ??_isr+19,btemp+1 + 1416 000178 C013 F045 movff ??_isr+18,btemp + 1417 00017C C012 FFF5 movff ??_isr+17,tablat + 1418 000180 C011 FFF8 movff ??_isr+16,tblptru + 1419 000184 C010 FFF7 movff ??_isr+15,tblptrh + 1420 000188 C00F FFF6 movff ??_isr+14,tblptrl + 1421 00018C C00E FFF4 movff ??_isr+13,prodh + 1422 000190 C00D FFF3 movff ??_isr+12,prodl + 1423 000194 C00C FFDA movff ??_isr+11,fsr2h + 1424 000198 C00B FFD9 movff ??_isr+10,fsr2l + 1425 00019C C00A FFE2 movff ??_isr+9,fsr1h + 1426 0001A0 C009 FFE1 movff ??_isr+8,fsr1l + 1427 0001A4 C008 FFEA movff ??_isr+7,fsr0h + 1428 0001A8 C007 FFE9 movff ??_isr+6,fsr0l + 1429 0001AC C006 FFFB movff ??_isr+5,pclatu + 1430 0001B0 C005 FFFA movff ??_isr+4,pclath + 1431 0001B4 9245 bcf btemp,1,c ;clear compiler interrupt flag (level 2) + 1432 0001B6 0011 retfie f + 1433 0001B8 __end_of_isr: + 1434 opt stack 0 + 1435 0000 pclatu equ 0xFFB + 1436 pclath equ 0xFFA + 1437 tblptru equ 0xFF8 + 1438 tblptrh equ 0xFF7 + 1439 tblptrl equ 0xFF6 + 1440 tablat equ 0xFF5 + 1441 prodh equ 0xFF4 + 1442 prodl equ 0xFF3 + 1443 intcon equ 0xFF2 + 1444 postinc0 equ 0xFEE + 1445 fsr0h equ 0xFEA + 1446 fsr0l equ 0xFE9 + 1447 wreg equ 0xFE8 + 1448 fsr1h equ 0xFE2 + 1449 fsr1l equ 0xFE1 + 1450 indf2 equ 0xFDF + 1451 postinc2 equ 0xFDE + 1452 postdec2 equ 0xFDD + 1453 fsr2h equ 0xFDA + 1454 fsr2l equ 0xFD9 + 1455 status equ 0xFD8 + 1456 pclatu equ 0xFFB + 1457 pclath equ 0xFFA + 1458 tblptru equ 0xFF8 + 1459 tblptrh equ 0xFF7 + 1460 tblptrl equ 0xFF6 + 1461 tablat equ 0xFF5 + 1462 prodh equ 0xFF4 + 1463 prodl equ 0xFF3 + 1464 intcon equ 0xFF2 + 1465 postinc0 equ 0xFEE + 1466 fsr0h equ 0xFEA + 1467 fsr0l equ 0xFE9 + 1468 wreg equ 0xFE8 + 1469 fsr1h equ 0xFE2 + 1470 fsr1l equ 0xFE1 + 1471 indf2 equ 0xFDF + 1472 postinc2 equ 0xFDE + 1473 postdec2 equ 0xFDD + 1474 fsr2h equ 0xFDA + 1475 fsr2l equ 0xFD9 + 1476 status equ 0xFD8 + 1477 + 1478 psect rparam + 1479 0000 pclatu equ 0xFFB + 1480 pclath equ 0xFFA + 1481 tblptru equ 0xFF8 + 1482 tblptrh equ 0xFF7 + 1483 tblptrl equ 0xFF6 + 1484 tablat equ 0xFF5 + 1485 prodh equ 0xFF4 + 1486 prodl equ 0xFF3 + 1487 intcon equ 0xFF2 + 1488 postinc0 equ 0xFEE + 1489 fsr0h equ 0xFEA + 1490 fsr0l equ 0xFE9 + 1491 wreg equ 0xFE8 + 1492 fsr1h equ 0xFE2 + 1493 fsr1l equ 0xFE1 + 1494 indf2 equ 0xFDF + 1495 postinc2 equ 0xFDE + 1496 postdec2 equ 0xFDD + 1497 fsr2h equ 0xFDA + 1498 fsr2l equ 0xFD9 + 1499 status equ 0xFD8 + 1500 + 1501 psect temp + 1502 000045 btemp: + 1503 opt stack 0 + 1504 000045 ds 1 + 1505 0000 int$flags set btemp + 1506 0000 wtemp6 set btemp+1 + 1507 pclatu equ 0xFFB + 1508 pclath equ 0xFFA + 1509 tblptru equ 0xFF8 + 1510 tblptrh equ 0xFF7 + 1511 tblptrl equ 0xFF6 + 1512 tablat equ 0xFF5 + 1513 prodh equ 0xFF4 + 1514 prodl equ 0xFF3 + 1515 intcon equ 0xFF2 + 1516 postinc0 equ 0xFEE + 1517 fsr0h equ 0xFEA + 1518 fsr0l equ 0xFE9 + 1519 wreg equ 0xFE8 + 1520 fsr1h equ 0xFE2 + 1521 fsr1l equ 0xFE1 + 1522 indf2 equ 0xFDF + 1523 postinc2 equ 0xFDE + 1524 postdec2 equ 0xFDD + 1525 fsr2h equ 0xFDA + 1526 fsr2l equ 0xFD9 + 1527 status equ 0xFD8 + + +Data Sizes: + Strings 0 + Constant 0 + Data 2 + BSS 30 + Persistent 0 + Stack 0 + +Auto Spaces: + Space Size Autos Used + COMRAM 94 36 68 + BANK0 160 9 9 + BANK1 256 0 0 + BANK2 256 0 0 + BANK3 256 0 0 + BANK4 256 0 0 + BANK5 256 0 0 + +Pointer List with Targets: + + memset@p1 PTR void size(2) Largest target is 30 + -> keypresses(COMRAM[30]), + + memset@p PTR unsigned char size(2) Largest target is 30 + -> keypresses(COMRAM[30]), + + midi_note_on@pkt PTR struct . size(2) Largest target is 7 + -> main@sample_message(BANK0[7]), + + midi_set_channel@pkt PTR struct . size(2) Largest target is 7 + -> main@sample_message(BANK0[7]), + + midi_set_status@pkt PTR struct . size(2) Largest target is 7 + -> main@sample_message(BANK0[7]), + + eusart_write_midi@data PTR unsigned char size(2) Largest target is 7 + -> sample_message.data(COMRAM[4]), main@sample_message(BANK0[7]), + + eusart_write_midi@pkt PTR const struct . size(2) Largest target is 7 + -> main@sample_message(BANK0[7]), + + sp__memset PTR void size(2) Largest target is 30 + -> keypresses(COMRAM[30]), + + +Critical Paths under _main in COMRAM + + _main->_midi_note_on + _midi_note_on->_midi_set_channel + _eusart_write_midi->_putch + +Critical Paths under _isr in COMRAM + + None. + +Critical Paths under _main in BANK0 + + _main->_midi_note_on + +Critical Paths under _isr in BANK0 + + None. + +Critical Paths under _main in BANK1 + + None. + +Critical Paths under _isr in BANK1 + + None. + +Critical Paths under _main in BANK2 + + None. + +Critical Paths under _isr in BANK2 + + None. + +Critical Paths under _main in BANK3 + + None. + +Critical Paths under _isr in BANK3 + + None. + +Critical Paths under _main in BANK4 + + None. + +Critical Paths under _isr in BANK4 + + None. + +Critical Paths under _main in BANK5 + + None. + +Critical Paths under _isr in BANK5 + + None. + +Call Graph Tables: + + --------------------------------------------------------------------------------- + (Depth) Function Calls Base Space Used Autos Params Refs + --------------------------------------------------------------------------------- + (0) _main 9 9 0 2419 + 2 BANK0 7 7 0 + _eusart_write_midi + _init_hw + _memset + _midi_note_on + --------------------------------------------------------------------------------- + (1) _midi_note_on 8 2 6 1576 + 30 COMRAM 6 0 6 + 0 BANK0 2 2 0 + _midi_set_channel + _midi_set_status + --------------------------------------------------------------------------------- + (2) _midi_set_status 4 1 3 453 + 25 COMRAM 4 1 3 + --------------------------------------------------------------------------------- + (2) _midi_set_channel 5 1 4 453 + 25 COMRAM 5 1 4 + --------------------------------------------------------------------------------- + (1) _memset 8 2 6 407 + 25 COMRAM 8 2 6 + --------------------------------------------------------------------------------- + (1) _init_hw 0 0 0 0 + _eusart1_init + --------------------------------------------------------------------------------- + (2) _eusart1_init 0 0 0 0 + --------------------------------------------------------------------------------- + (1) _eusart_write_midi 8 6 2 338 + 26 COMRAM 8 6 2 + _putch + --------------------------------------------------------------------------------- + (2) _putch 1 1 0 22 + 25 COMRAM 1 1 0 + --------------------------------------------------------------------------------- + Estimated maximum stack depth 2 + --------------------------------------------------------------------------------- + (Depth) Function Calls Base Space Used Autos Params Refs + --------------------------------------------------------------------------------- + (3) _isr 25 25 0 248 + 0 COMRAM 25 25 0 + --------------------------------------------------------------------------------- + Estimated maximum stack depth 3 + --------------------------------------------------------------------------------- + + Call Graph Graphs: + + _main (ROOT) + _eusart_write_midi + _putch + _init_hw + _eusart1_init + _memset + _midi_note_on + _midi_set_channel + _midi_set_status + + _isr (ROOT) + + Address spaces: +Name Size Autos Total Cost Usage +BIGRAM 5FF 0 0 16 0.0% +EEDATA 100 0 0 0 0.0% +BITBANK5 100 0 0 14 0.0% +BANK5 100 0 0 15 0.0% +BITBANK4 100 0 0 12 0.0% +BANK4 100 0 0 13 0.0% +BITBANK3 100 0 0 10 0.0% +BANK3 100 0 0 11 0.0% +BITBANK2 100 0 0 7 0.0% +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 9 9 4 5.6% +BITCOMRAM 5E 0 0 0 0.0% +COMRAM 5E 24 44 1 72.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 4D 9 0.0% +DATA 0 0 4D 17 0.0% +CODE 0 0 0 0 0.0% + + +Microchip Technology PIC18 Macro Assembler V1.44 build -154322312 +Symbol Table Fri Feb 23 16:30:02 2018 + + l70 0346 l78 0296 l79 0284 + __CFG_CP0$OFF 000000 __CFG_CP1$OFF 000000 __CFG_CP2$OFF 000000 + __CFG_CP3$OFF 000000 __CFG_LVP$ON 000000 l570 0390 + l569 03A0 __CFG_CPB$OFF 000000 _PR2 000FBB + __CFG_CPD$OFF 000000 _isr 0008 prod 000FF3 + wreg 000FE8 _TXSTA1bits 000FAC l1071 041A + l1129 0390 l1163 0284 ?_isr 0001 + i2l61 015E i2l55 016A i2l56 0060 + i2l58 00C6 _main 0308 midi_note_on@channel 0021 + fsr0h 000FEA fsr1h 000FE2 fsr2h 000FDA + fsr0l 000FE9 indf2 000FDF fsr1l 000FE1 + fsr2l 000FD9 btemp 0045 __CFG_BORV$190 000000 + isr@i 0019 prodh 000FF4 prodl 000FF3 + start 01B8 __CFG_IESO$OFF 000000 midi_note_on@pkt 001F + ___param_bank 000000 ??_isr 0001 _BAUDCON1bits 000FB8 + ?_main 0001 _RC1IF 007CF5 __CFG_WDTEN$ON 000000 + _TX1IF 007CF4 _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 0308 __CFG_MCLRE$EXTMCLR 000000 _putch 0418 + pclath 000FFA tablat 000FF5 _eusart_write_midi 0234 + __end_of_midi_set_status 03FC status 000FD8 wtemp6 0046 + __CFG_HFOFST$ON 000000 ?_eusart_write_midi 001B __CFG_PBADEN$ON 000000 + eusart_write_midi@length 001F __initialization 0354 midi_note_on@note 0023 + __end_of_main 0354 ??_eusart_write_midi 001D midi_note_on@velocity 0024 + ??_main 0025 ?_midi_note_on 001F __activetblptr 000002 + __CFG_PLLCFG$ON 000000 __end_of_eusart_write_midi 02A8 _ANSELA 000F38 + ?_putch 0001 _ANSELB 000F39 _ANSELC 000F3A + _ANSELD 000F3B _RC1REG 000FAE _SPBRG1 000FAF + _TX1REG 000FAD ?_eusart1_init 0001 __CFG_XINST$OFF 000000 + __CFG_STVREN$ON 000000 __end_of_midi_set_channel 03D8 _memset 0386 + clear_0 0372 midi_set_status@status 001C ??_midi_note_on 0060 + ??_init_hw 001A __pdataCOMRAM 0043 tblptrh 000FF7 + tblptrl 000FF6 tblptru 000FF8 putch@c 001A + __accesstop 0060 __end_of__initialization 0378 ?_midi_set_status 001A + ??_eusart1_init 001A ___rparam_used 000001 __pcstackCOMRAM 0001 + __end_of_putch 0424 __size_of_eusart_write_midi 0074 ??_putch 001A + __CFG_CCP2MX$PORTC1 000000 __CFG_CCP3MX$PORTB5 000000 ?_memset 001A + i2u31_44 00F4 i2u31_45 00F0 i2u33_45 0144 + i2u33_47 0146 i2u36_45 0166 i2u36_46 0168 + i2u29_44 008E i2u29_45 008A _SPBRGH1 000FB0 + __end_of_midi_note_on 0234 eusart_write_midi@pkt 001B __CFG_PWRTEN$OFF 000000 + __Hparam 0000 __Lparam 0000 __pcinit 0354 + _isr$592 0017 __size_of_memset 002C __ramtop 0600 + __ptext0 0308 __ptext1 01BC __ptext2 03D8 + __ptext3 03B2 __ptext4 0386 __ptext5 02A8 + __ptext6 03FC __ptext7 0234 __ptext8 0418 + __end_of_eusart1_init 0418 _T2CONbits 000FBA _init_hw 02A8 + __size_of_isr 01B0 _keypresses 0025 end_of_initialization 0378 + isr@data 0018 memset@c 001C memset@n 001E + memset@p 0020 __Lmediumconst 0000 postdec2 000FDD + postinc0 000FEE postinc2 000FDE ?_midi_set_channel 001A + _PORTAbits 000F80 _PORTDbits 000F83 ??_midi_set_channel 001E + __CFG_FOSC$INTIO7 000000 _TRISCbits 000F94 _TRISDbits 000F95 + midi_set_channel@channel 001C __pidataCOMRAM 0424 __end_of_memset 03B2 + start_initialization 0354 __end_of_isr 01B8 __size_of_midi_note_on 0078 + __size_of_midi_set_status 0024 __size_of_eusart1_init 001C ??_memset 0020 + _midi_note_on 01BC __pbssCOMRAM 0025 __pcstackBANK0 0060 + midi_set_status@pkt 001A _eusart1_init 03FC __pintcode 0008 + __CFG_PRICLKEN$ON 000000 main@sample_message 0062 ?_init_hw 0001 + __size_of_putch 000C _PIE1bits 000F9D _PIR1bits 000F9E + __CFG_WDTPS$32768 000000 ??_midi_set_status 001D __size_of_midi_set_channel 0026 + eusart_write_midi@data 0021 __Hrparam 0000 __Lrparam 0000 + __CFG_BOREN$SBORDIS 000000 __CFG_P2BMX$PORTD2 000000 __size_of_init_hw 0060 + _midi_base_scale 0043 __size_of_main 004C int$flags 0045 + _OSCTUNEbits 000F9B _INTCONbits 000FF2 memset@p1 001A + midi_set_channel@pkt 001A intlevel2 0000 _RCSTA1bits 000FAB + _OSCCONbits 000FD3 __CFG_T3CMX$PORTC0 000000 _midi_set_channel 03B2 + _midi_set_status 03D8 diff --git a/src/dist/default/production/src.production.map b/src/dist/default/production/src.production.map new file mode 100644 index 0000000..f4c46fc --- /dev/null +++ b/src/dist/default/production/src.production.map @@ -0,0 +1,821 @@ +Microchip MPLAB XC8 Compiler V1.44 () + +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\s5hg.2 \ + -Mdist/default/production/src.production.map -E1 -ver=XC8 \ + -ASTACK=069h-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 \ + -ABANK3=0300h-03FFh -ABANK4=0400h-04FFh -ABANK5=0500h-05FFh \ + -ASFR=0F38h-0F5Fh,0F60h-0FFFh \ + -preset_vec=00h,intcode=08h,intcodelo,powerup,init -pramtop=0600h \ + -psmallconst=SMALLCONST -pmediumconst=MEDIUMCONST -pconst=CONST \ + -AFARRAM=00h-00h -ACONFIG=0300000h-030000Dh -pconfig=CONFIG \ + -AIDLOC=0200000h-0200007h -pidloc=IDLOC -AEEDATA=0F00000h-0F000FFh \ + -peeprom_data=EEDATA \ + -prdata=COMRAM,nvrram=COMRAM,nvbit=COMRAM,rbss=COMRAM,rbit=COMRAM \ + -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\s5hg.obj \ + dist/default/production\src.production.obj + +Object code version is 3.11 + +Machine type is 18F45K22 + +Call graph: (short form) + + + + + Name Link Load Length Selector Space Scale +C:\Users\_prossn\AppData\Local\Temp\s5hg.obj + init 1B8 1B8 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 1B0 4 0 + temp 45 45 1 1 1 + text8 418 418 C 4 0 + text7 234 234 74 4 0 + text6 3FC 3FC 1C 4 0 + text5 2A8 2A8 60 4 0 + text4 386 386 2C 4 0 + text3 3B2 3B2 26 4 0 + text2 3D8 3D8 24 4 0 + text1 1BC 1BC 78 4 0 + text0 308 308 4C 4 0 + cstackCOMRAM 1 1 24 1 1 + cstackBANK0 60 60 9 60 1 + dataCOMRAM 43 43 2 1 1 + bssCOMRAM 25 25 1E 1 1 + cinit 354 354 32 4 0 + idataCOMRAM 424 424 2 4 0 + +TOTAL Name Link Load Length Space + CLASS STACK + + CLASS CODE + intcode 8 8 1B0 0 + init 1B8 1B8 4 0 + reset_vec 0 0 4 0 + text8 418 418 C 0 + text7 234 234 74 0 + text6 3FC 3FC 1C 0 + text5 2A8 2A8 60 0 + text4 386 386 2C 0 + text3 3B2 3B2 26 0 + text2 3D8 3D8 24 0 + text1 1BC 1BC 78 0 + text0 308 308 4C 0 + cinit 354 354 32 0 + idataCOMRAM 424 424 2 0 + + CLASS CONST + + CLASS SMALLCONST + + CLASS MEDIUMCONST + + CLASS COMRAM + temp 45 45 1 1 + cstackCOMRAM 1 1 24 1 + dataCOMRAM 43 43 2 1 + bssCOMRAM 25 25 1E 1 + + CLASS ABS1 + + CLASS BIGRAM + + CLASS RAM + + CLASS BANK0 + cstackBANK0 60 60 9 1 + + CLASS BANK1 + + CLASS BANK2 + + CLASS BANK3 + + CLASS BANK4 + + CLASS BANK5 + + CLASS SFR + + CLASS FARRAM + + CLASS CONFIG + config 300000 300000 E 0 + + CLASS IDLOC + idloc 200000 200000 8 0 + + CLASS EEDATA + + + +SEGMENTS Name Load Length Top Selector Space Class + + reset_vec 000000 000004 000004 0 0 CODE + cstackCOMRAM 000001 000045 000046 1 1 COMRAM + intcode 000008 00041E 000426 4 0 CODE + cstackBANK0 000060 000009 000069 60 1 BANK0 + idloc 200000 000008 200008 200000 0 IDLOC + config 300000 00000E 30000E 300000 0 CONFIG + + +UNUSED ADDRESS RANGES + + Name Unused Largest block Delta + BANK0 000069-0000FF 97 + BANK1 000100-0001FF 100 + BANK2 000200-0002FF 100 + BANK3 000300-0003FF 100 + BANK4 000400-0004FF 100 + BANK5 000500-0005FF 100 + BIGRAM 000046-00005F 1A + 000069-0005FF 597 + CODE 000004-000007 4 + 000426-007FFF 7BDA + COMRAM 000046-00005F 1A + CONST 000004-000007 4 + 000426-007FFF 7BDA + EEDATA F00000-F000FF 100 + MEDIUMCONST 000600-007FFF 7A00 + RAM 000069-0005FF 100 + SFR 000F38-000FFF 28 + SMALLCONST 000600-007FFF 100 + STACK 000069-0005FF 597 + + Symbol Table + +_ANSELA (abs) 000F38 +_ANSELB (abs) 000F39 +_ANSELC (abs) 000F3A +_ANSELD (abs) 000F3B +_BAUDCON1bits (abs) 000FB8 +_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 +_SPBRG1 (abs) 000FAF +_SPBRGH1 (abs) 000FB0 +_T2CONbits (abs) 000FBA +_TRISA (abs) 000F92 +_TRISB (abs) 000F93 +_TRISCbits (abs) 000F94 +_TRISDbits (abs) 000F95 +_TX1IF (abs) 007CF4 +_TX1REG (abs) 000FAD +_TXSTA1bits (abs) 000FAC +__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 +__HbssCOMRAM bssCOMRAM 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 +__HdataCOMRAM dataCOMRAM 000000 +__Heeprom_data eeprom_data 000000 +__Hfarbss farbss 000000 +__Hfardata fardata 000000 +__Hibigdata ibigdata 000000 +__Hidata idata 000000 +__HidataCOMRAM idataCOMRAM 000000 +__Hidloc idloc 200008 +__Hifardata ifardata 000000 +__Hinit init 0001BC +__Hintcode intcode 0001B8 +__Hintcode_body intcode_body 000000 +__Hintcodelo intcodelo 0001B8 +__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 0001B8 +__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) 000069 +__Hspace_2 (abs) 000000 +__Hstack stack 000000 +__Hstruct struct 000000 +__Htemp temp 000046 +__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 +__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 +__LbssCOMRAM bssCOMRAM 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 +__LdataCOMRAM dataCOMRAM 000000 +__Leeprom_data eeprom_data 000000 +__Lfarbss farbss 000000 +__Lfardata fardata 000000 +__Libigdata ibigdata 000000 +__Lidata idata 000000 +__LidataCOMRAM idataCOMRAM 000000 +__Lidloc idloc 200000 +__Lifardata ifardata 000000 +__Linit init 0001B8 +__Lintcode intcode 000008 +__Lintcode_body intcode_body 000000 +__Lintcodelo intcodelo 0001B8 +__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 0001B8 +__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 000045 +__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 +__S0 (abs) 30000E +__S1 (abs) 000069 +__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 000378 +__end_of_eusart1_init text6 000418 +__end_of_eusart_write_midi text7 0002A8 +__end_of_init_hw text5 000308 +__end_of_isr intcode 0001B8 +__end_of_main text0 000354 +__end_of_memset text4 0003B2 +__end_of_midi_note_on text1 000234 +__end_of_midi_set_channel text3 0003D8 +__end_of_midi_set_status text2 0003FC +__end_of_putch text8 000424 +__initialization cinit 000354 +__mediumconst mediumconst 000000 +__pbssCOMRAM bssCOMRAM 000025 +__pcinit cinit 000354 +__pcstackBANK0 cstackBANK0 000060 +__pcstackCOMRAM cstackCOMRAM 000001 +__pdataCOMRAM dataCOMRAM 000043 +__pidataCOMRAM idataCOMRAM 000424 +__pintcode intcode 000008 +__ptext0 text0 000308 +__ptext1 text1 0001BC +__ptext2 text2 0003D8 +__ptext3 text3 0003B2 +__ptext4 text4 000386 +__ptext5 text5 0002A8 +__ptext6 text6 0003FC +__ptext7 text7 000234 +__ptext8 text8 000418 +__ramtop ramtop 000600 +__size_of_eusart1_init (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 +__size_of_putch (abs) 000000 +__smallconst smallconst 000000 +_eusart1_init text6 0003FC +_eusart_write_midi text7 000234 +_init_hw text5 0002A8 +_isr intcode 000008 +_isr$592 cstackCOMRAM 000017 +_keypresses bssCOMRAM 000025 +_main text0 000308 +_memset text4 000386 +_midi_base_scale dataCOMRAM 000043 +_midi_note_on text1 0001BC +_midi_set_channel text3 0003B2 +_midi_set_status text2 0003D8 +_putch text8 000418 +btemp temp 000045 +end_of_initialization cinit 000378 +eusart_write_midi@data cstackCOMRAM 000021 +eusart_write_midi@length cstackCOMRAM 00001F +eusart_write_midi@pkt cstackCOMRAM 00001B +int$flags temp 000045 +intlevel0 text 000000 +intlevel1 text 000000 +intlevel2 text 000000 +intlevel3 text 000000 +isr@data cstackCOMRAM 000018 +isr@i cstackCOMRAM 000019 +main@sample_message cstackBANK0 000062 +memset@c cstackCOMRAM 00001C +memset@n cstackCOMRAM 00001E +memset@p cstackCOMRAM 000020 +memset@p1 cstackCOMRAM 00001A +midi_note_on@channel cstackCOMRAM 000021 +midi_note_on@note cstackCOMRAM 000023 +midi_note_on@pkt cstackCOMRAM 00001F +midi_note_on@velocity cstackCOMRAM 000024 +midi_set_channel@channel cstackCOMRAM 00001C +midi_set_channel@pkt cstackCOMRAM 00001A +midi_set_status@pkt cstackCOMRAM 00001A +midi_set_status@status cstackCOMRAM 00001C +putch@c cstackCOMRAM 00001A +stackhi (abs) 0005FF +stacklo (abs) 000069 +start init 0001B8 +start_initialization cinit 000354 +wtemp6 temp 000046 + + +FUNCTION INFORMATION: + + *************** function _main ***************** + Defined at: + line 204 in file "main.c" + Parameters: Size Location Type + None + Auto vars: Size Location Type + sample_messa 7 2[BANK0 ] struct . + data 1 0 unsigned char + i 1 0 unsigned char + Return value: Size Location Type + 1 wreg void + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0, 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 7 0 0 0 0 0 + Temps: 0 0 0 0 0 0 0 + Totals: 0 7 0 0 0 0 0 +Total ram usage: 7 bytes + Hardware stack levels required when called: 3 + This function calls: + _eusart_write_midi + _init_hw + _memset + _midi_note_on + This function is called by: + Startup code after reset + This function uses a non-reentrant model + + + *************** function _midi_note_on ***************** + Defined at: + line 62 in file "midi.c" + Parameters: Size Location Type + pkt 2 30[COMRAM] PTR struct . + -> main@sample_message(7), + channel 2 32[COMRAM] unsigned int + note 1 34[COMRAM] enum E31 + velocity 1 35[COMRAM] unsigned char + Auto vars: Size Location Type + None + Return value: Size Location Type + 2 30[COMRAM] int + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0, cstack + Tracked objects: + On entry : + On exit : + Unchanged: + Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + Params: 6 0 0 0 0 0 0 + Locals: 0 0 0 0 0 0 0 + Temps: 0 2 0 0 0 0 0 + Totals: 6 2 0 0 0 0 0 +Total ram usage: 8 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 2 + This function calls: + _midi_set_channel + _midi_set_status + This function is called by: + _main + This function uses a non-reentrant model + + + *************** function _midi_set_status ***************** + Defined at: + line 40 in file "midi.c" + Parameters: Size Location Type + pkt 2 25[COMRAM] PTR struct . + -> main@sample_message(7), + status 1 27[COMRAM] enum E40 + Auto vars: Size Location Type + None + Return value: Size Location Type + 2 25[COMRAM] int + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0 + Tracked objects: + On entry : + On exit : + Unchanged: + Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + Params: 3 0 0 0 0 0 0 + Locals: 0 0 0 0 0 0 0 + Temps: 1 0 0 0 0 0 0 + Totals: 4 0 0 0 0 0 0 +Total ram usage: 4 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 1 + This function calls: + Nothing + This function is called by: + _midi_note_on + _midi_note_off + This function uses a non-reentrant model + + + *************** function _midi_set_channel ***************** + Defined at: + line 51 in file "midi.c" + Parameters: Size Location Type + pkt 2 25[COMRAM] PTR struct . + -> main@sample_message(7), + channel 2 27[COMRAM] unsigned int + Auto vars: Size Location Type + None + Return value: Size Location Type + 2 25[COMRAM] int + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0 + Tracked objects: + On entry : + On exit : + Unchanged: + Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + Params: 4 0 0 0 0 0 0 + Locals: 0 0 0 0 0 0 0 + Temps: 1 0 0 0 0 0 0 + Totals: 5 0 0 0 0 0 0 +Total ram usage: 5 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 1 + This function calls: + Nothing + This function is called by: + _midi_note_on + _midi_note_off + This function uses a non-reentrant model + + + *************** function _memset ***************** + Defined at: + line 8 in file "C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c" + Parameters: Size Location Type + p1 2 25[COMRAM] PTR void + -> keypresses(30), + c 2 27[COMRAM] int + n 2 29[COMRAM] unsigned int + Auto vars: Size Location Type + p 2 31[COMRAM] PTR unsigned char + -> keypresses(30), + Return value: Size Location Type + 2 25[COMRAM] PTR void + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0 + Tracked objects: + On entry : + On exit : + Unchanged: + Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + Params: 6 0 0 0 0 0 0 + Locals: 2 0 0 0 0 0 0 + Temps: 0 0 0 0 0 0 0 + Totals: 8 0 0 0 0 0 0 +Total ram usage: 8 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 1 + This function calls: + Nothing + This function is called by: + _main + This function uses a non-reentrant model + + + *************** function _init_hw ***************** + Defined at: + line 140 in file "main.c" + Parameters: Size Location Type + None + Auto vars: Size Location Type + None + Return value: Size Location Type + 1 wreg void + Registers used: + wreg, status,2, 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 0 0 0 0 0 0 + Temps: 0 0 0 0 0 0 0 + Totals: 0 0 0 0 0 0 0 +Total ram usage: 0 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 2 + This function calls: + _eusart1_init + This function is called by: + _main + This function uses a non-reentrant model + + + *************** function _eusart1_init ***************** + Defined at: + line 4 in file "rs232.c" + Parameters: Size Location Type + None + Auto vars: Size Location Type + None + Return value: Size Location Type + 1 wreg void + Registers used: + wreg, status,2 + 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 0 0 0 0 0 0 + Temps: 0 0 0 0 0 0 0 + Totals: 0 0 0 0 0 0 0 +Total ram usage: 0 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 1 + This function calls: + Nothing + This function is called by: + _init_hw + This function uses a non-reentrant model + + + *************** function _eusart_write_midi ***************** + Defined at: + line 226 in file "main.c" + Parameters: Size Location Type + pkt 2 26[COMRAM] PTR const struct . + -> main@sample_message(7), + Auto vars: Size Location Type + data 2 32[COMRAM] PTR unsigned char + -> sample_message.data(4), main@sample_message(7), + length 2 30[COMRAM] unsigned int + Return value: Size Location Type + 2 26[COMRAM] int + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0, cstack + Tracked objects: + On entry : + On exit : + Unchanged: + Data sizes: COMRAM BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 + Params: 2 0 0 0 0 0 0 + Locals: 4 0 0 0 0 0 0 + Temps: 2 0 0 0 0 0 0 + Totals: 8 0 0 0 0 0 0 +Total ram usage: 8 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 2 + This function calls: + _putch + This function is called by: + _main + This function uses a non-reentrant model + + + *************** function _putch ***************** + Defined at: + line 29 in file "rs232.c" + Parameters: Size Location Type + c 1 wreg unsigned char + Auto vars: Size Location Type + c 1 25[COMRAM] unsigned char + Return value: Size Location Type + 1 wreg void + Registers used: + wreg + 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: 1 0 0 0 0 0 0 + Temps: 0 0 0 0 0 0 0 + Totals: 1 0 0 0 0 0 0 +Total ram usage: 1 bytes + Hardware stack levels used: 1 + Hardware stack levels required when called: 1 + This function calls: + Nothing + This function is called by: + _eusart_write_midi + _getche + This function uses a non-reentrant model + + + *************** function _isr ***************** + Defined at: + line 101 in file "main.c" + Parameters: Size Location Type + None + Auto vars: Size Location Type + i 1 24[COMRAM] unsigned char + data 1 23[COMRAM] unsigned char + Return value: Size Location Type + 1 wreg void + Registers used: + wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh + 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: 3 0 0 0 0 0 0 + Temps: 22 0 0 0 0 0 0 + Totals: 25 0 0 0 0 0 0 +Total ram usage: 25 bytes + Hardware stack levels used: 1 + This function calls: + Nothing + This function is called by: + Interrupt level 2 + This function uses a non-reentrant model + + + +MODULE INFORMATION + +Module Function Class Link Load Size +rs232.c + _putch CODE 0418 0000 13 + _eusart1_init CODE 03FC 0000 29 + +rs232.c estimated size: 42 + +shared + __initialization CODE 0354 0000 37 + +shared estimated size: 37 + +midi.c + _midi_set_channel CODE 03B2 0000 39 + _midi_note_on CODE 01BC 0000 121 + _midi_set_status CODE 03D8 0000 37 + +midi.c estimated size: 197 + +C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c + _memset CODE 0386 0000 45 + +C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c estimated size: 45 + +main.c + _init_hw CODE 02A8 0000 97 + _eusart_write_midi CODE 0234 0000 117 + _main CODE 0308 0000 77 + _isr CODE 0008 0000 433 + +main.c estimated size: 724 + diff --git a/src/dist/default/production/src.production.mum b/src/dist/default/production/src.production.mum new file mode 100644 index 0000000..c14afe5 --- /dev/null +++ b/src/dist/default/production/src.production.mum @@ -0,0 +1,9 @@ + +Memory Summary: + Program space used 422h ( 1058) of 7A00h bytes ( 3.4%) + Data space used 4Eh ( 78) of 5FFh bytes ( 5.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 597h bytes ( 0.0%) + diff --git a/src/dist/default/production/src.production.obj b/src/dist/default/production/src.production.obj Binary files differnew file mode 100644 index 0000000..2f7bc81 --- /dev/null +++ b/src/dist/default/production/src.production.obj diff --git a/src/dist/default/production/src.production.rlf b/src/dist/default/production/src.production.rlf Binary files differnew file mode 100644 index 0000000..2d46de5 --- /dev/null +++ b/src/dist/default/production/src.production.rlf diff --git a/src/dist/default/production/src.production.sdb b/src/dist/default/production/src.production.sdb new file mode 100644 index 0000000..f9bbdf0 --- /dev/null +++ b/src/dist/default/production/src.production.sdb @@ -0,0 +1,557 @@ +[p LITE_MODE AUTOSTATIC LFSROK EMI_WORD ] +[d version 1.1 ] +[d edition pro ] +[d chip 18F45K22 ] +[d frameptr 4065 ] +"216 Z:\SAMB_4\projects\xilofono\src\main.c +[e E41 . `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 ] +"101 Z:\SAMB_4\projects\xilofono\src\main.c +[v _isr isr `II(v 1 e 1 0 ] +"140 +[v _init_hw init_hw `T(v 1 e 1 0 ] +"204 +[v _main main `(v 1 e 1 0 ] +"226 +[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 ] +"29 +[v _putch putch `(v 1 e 1 0 ] +"35 +[v _getch 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 ] +"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 S855 . 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 S864 . 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 S873 . 1 `S855 1 . 1 0 `S864 1 . 1 0 ] +[v _TRISCbits TRISCbits `VES873 1 e 1 @3988 ] +[s S418 . 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 +[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 +`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 +`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 +`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 S495 . 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 +`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 S136 . 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 ] +[s S700 . 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 +] +"10396 +[s S709 . 1 `uc 1 . 1 0 :3:0 +`uc 1 ADEN 1 0 :1:3 +] +[s S712 . 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 S721 . 1 `uc 1 RCD8 1 0 :1:0 +`uc 1 . 1 0 :5:1 +`uc 1 RC8_9 1 0 :1:6 +] +[s S725 . 1 `uc 1 . 1 0 :6:0 +`uc 1 RC9 1 0 :1:6 +] +[s S728 . 1 `uc 1 . 1 0 :5:0 +`uc 1 SRENA 1 0 :1:5 +] +[u S731 . 1 `S700 1 . 1 0 `S709 1 . 1 0 `S712 1 . 1 0 `S721 1 . 1 0 `S725 1 . 1 0 `S728 1 . 1 0 ] +[v _RCSTA1bits RCSTA1bits `VES731 1 e 1 @4011 ] +[s S651 . 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 +] +"10840 +[s S660 . 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 S669 . 1 `uc 1 TXD8 1 0 :1:0 +`uc 1 . 1 0 :5:1 +`uc 1 TX8_9 1 0 :1:6 +] +[u S673 . 1 `S651 1 . 1 0 `S660 1 . 1 0 `S669 1 . 1 0 ] +[v _TXSTA1bits TXSTA1bits `VES673 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 ] +[s S772 . 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 +] +"12436 +[s S781 . 1 `uc 1 . 1 0 :4:0 +`uc 1 SCKP 1 0 :1:4 +] +[s S784 . 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 S793 . 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 S798 . 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 S803 . 1 `uc 1 . 1 0 :5:0 +`uc 1 RXCKP 1 0 :1:5 +] +[s S806 . 1 `uc 1 . 1 0 :1:0 +`uc 1 W4E 1 0 :1:1 +] +[u S809 . 1 `S772 1 . 1 0 `S781 1 . 1 0 `S784 1 . 1 0 `S793 1 . 1 0 `S798 1 . 1 0 `S803 1 . 1 0 `S806 1 . 1 0 ] +[v _BAUDCON1bits BAUDCON1bits `VES809 1 e 1 @4024 ] +[s S459 . 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 +`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 S471 . 1 `S459 1 . 1 0 `S463 1 . 1 0 ] +[v _T2CONbits T2CONbits `VES471 1 e 1 @4026 ] +"13267 +[v _PR2 PR2 `VEuc 1 e 1 @4027 ] +[s S380 . 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 +`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 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 +`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 S314 . 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 S323 . 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 ] +"18736 +[v _RC1IF RC1IF `VEb 1 e 0 @31989 ] +"19488 +[v _TX1IF TX1IF `VEb 1 e 0 @31988 ] +"95 Z:\SAMB_4\projects\xilofono\src\main.c +[v _keypresses keypresses `VE[15]ui 1 e 30 0 ] +"204 +[v _main main `(v 1 e 1 0 ] +{ +[s S521 . 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 ] +"207 +[v main@sample_message sample_message `S521 1 a 7 2 ] +"223 +} 0 +"62 Z:\SAMB_4\projects\xilofono\src\midi.c +[v _midi_note_on midi_note_on `(i 1 e 2 0 ] +{ +[s S521 . 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 `*.39S521 1 p 2 30 ] +[v midi_note_on@channel channel `ui 1 p 2 32 ] +[v midi_note_on@note note `E31 1 p 1 34 ] +[v midi_note_on@velocity velocity `uc 1 p 1 35 ] +"83 +} 0 +"40 +[v _midi_set_status midi_set_status `(i 1 e 2 0 ] +{ +[s S521 . 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 `*.39S521 1 p 2 25 ] +[v midi_set_status@status status `E40 1 p 1 27 ] +"49 +} 0 +"51 +[v _midi_set_channel midi_set_channel `(i 1 e 2 0 ] +{ +[s S521 . 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 `*.39S521 1 p 2 25 ] +[v midi_set_channel@channel channel `ui 1 p 2 27 ] +"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 31 ] +"8 +[v memset@p1 p1 `*.39v 1 p 2 25 ] +[v memset@c c `i 1 p 2 27 ] +[v memset@n n `ui 1 p 2 29 ] +"22 +} 0 +"140 Z:\SAMB_4\projects\xilofono\src\main.c +[v _init_hw init_hw `T(v 1 e 1 0 ] +{ +"200 +} 0 +"4 Z:\SAMB_4\projects\xilofono\src\rs232.c +[v _eusart1_init eusart1_init `(v 1 e 1 0 ] +{ +"22 +} 0 +"226 Z:\SAMB_4\projects\xilofono\src\main.c +[v _eusart_write_midi eusart_write_midi `(i 1 e 2 0 ] +{ +"229 +[v eusart_write_midi@data data `*.39uc 1 a 2 32 ] +"228 +[v eusart_write_midi@length length `ui 1 a 2 30 ] +[s S521 . 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 ] +"226 +[v eusart_write_midi@pkt pkt `*.39CS521 1 p 2 26 ] +"245 +} 0 +"29 Z:\SAMB_4\projects\xilofono\src\rs232.c +[v _putch putch `(v 1 e 1 0 ] +{ +[v putch@c c `uc 1 a 1 wreg ] +[v putch@c c `uc 1 a 1 wreg ] +[v putch@c c `uc 1 a 1 25 ] +"33 +} 0 +"101 Z:\SAMB_4\projects\xilofono\src\main.c +[v _isr isr `II(v 1 e 1 0 ] +{ +"103 +[v isr@i i `uc 1 a 1 24 ] +[v isr@data data `uc 1 a 1 23 ] +"137 +} 0 diff --git a/src/dist/default/production/src.production.sym b/src/dist/default/production/src.production.sym new file mode 100644 index 0000000..4a8ee88 --- /dev/null +++ b/src/dist/default/production/src.production.sym @@ -0,0 +1,450 @@ +__CFG_XINST$OFF 0 0 ABS 0 +main@sample_message 62 0 BANK0 1 +_PR2 FBB 0 ABS 0 +__S0 30000E 0 ABS 0 +__S1 69 0 ABS 0 +__S2 0 0 ABS 0 +__Hintentry 0 0 ABS 0 +__Lintentry 0 0 ABS 0 +midi_set_channel@pkt 1A 0 COMRAM 1 +__end_of_init_hw 308 0 CODE 0 +_isr 8 0 CODE 0 +__CFG_WDTEN$ON 0 0 ABS 0 +__end_of_eusart_write_midi 2A8 0 CODE 0 +_midi_base_scale 43 0 COMRAM 1 +isr@i 19 0 COMRAM 1 +_main 308 0 CODE 0 +___sp 0 0 STACK 2 +btemp 45 0 COMRAM 1 +start 1B8 0 CODE 0 +__size_of_eusart1_init 0 0 ABS 0 +eusart_write_midi@pkt 1B 0 COMRAM 1 +_RC1IF 7CF5 0 ABS 0 +_TX1IF 7CF4 0 ABS 0 +_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 +wtemp6 46 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 +__Hbigram 0 0 ABS 0 +__Lbigram 0 0 ABS 0 +__Hrparam 0 0 COMRAM 1 +__Lrparam 0 0 COMRAM 1 +__Hram 0 0 ABS 0 +__Lram 0 0 ABS 0 +__Hcomram 0 0 ABS 0 +_putch 418 0 CODE 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 21 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 45 0 COMRAM 1 +__size_of_midi_note_on 0 0 ABS 0 +_SPBRG1 FAF 0 ABS 0 +__end_of_putch 424 0 CODE 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 +_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 +__Hintcode 1B8 0 CODE 0 +__Lintcode 8 0 CODE 0 +__Hfardata 0 0 FARRAM 0 +__Lfardata 0 0 FARRAM 0 +midi_note_on@velocity 24 0 COMRAM 1 +__pintcode 8 0 CODE 0 +__Habs1 0 0 ABS 0 +__Labs1 0 0 ABS 0 +__CFG_EBTR0$OFF 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 +putch@c 1A 0 COMRAM 1 +__end_of_eusart1_init 418 0 CODE 0 +__CFG_EBTR2$OFF 0 0 ABS 0 +__CFG_CCP3MX$PORTB5 0 0 ABS 0 +__end_of_memset 3B2 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 +__pcstackBANK0 60 0 BANK0 1 +__Htemp 46 0 COMRAM 1 +__Ltemp 45 0 COMRAM 1 +stacklo 69 0 ABS 0 +__Hrbit 0 0 COMRAM 1 +__Lrbit 0 0 COMRAM 1 +__Hinit 1BC 0 CODE 0 +__Linit 1B8 0 CODE 0 +_isr$592 17 0 COMRAM 1 +__Hintcodelo 1B8 0 CODE 0 +__Lintcodelo 1B8 0 CODE 0 +_memset 386 0 CODE 0 +__Hrbss 0 0 COMRAM 1 +__end_of_main 354 0 CODE 0 +__Lrbss 0 0 COMRAM 1 +__Htext 0 0 ABS 0 +__Ltext 0 0 ABS 0 +__CFG_LVP$ON 0 0 ABS 0 +end_of_initialization 378 0 CODE 0 +_midi_set_status 3D8 0 CODE 0 +_SPBRGH1 FB0 0 ABS 0 +__size_of_init_hw 0 0 ABS 0 +__end_of_midi_set_channel 3D8 0 CODE 0 +midi_note_on@channel 21 0 COMRAM 1 +__size_of_putch 0 0 ABS 0 +_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 3B2 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 1B8 0 CODE 0 +__Lpowerup 1B8 0 CODE 0 +__Htext0 0 0 ABS 0 +__Ltext0 0 0 ABS 0 +_eusart_write_midi 234 0 CODE 0 +__Htext1 0 0 ABS 0 +__Ltext1 0 0 ABS 0 +__ptext0 308 0 CODE 0 +__Htext2 0 0 ABS 0 +__Ltext2 0 0 ABS 0 +__ptext1 1BC 0 CODE 0 +__end_of_midi_note_on 234 0 CODE 0 +__Htext3 0 0 ABS 0 +__Ltext3 0 0 ABS 0 +__ptext2 3D8 0 CODE 0 +__Htext4 0 0 ABS 0 +__Ltext4 0 0 ABS 0 +__ptext3 3B2 0 CODE 0 +__Htext5 0 0 ABS 0 +__CFG_P2BMX$PORTD2 0 0 ABS 0 +__Ltext5 0 0 ABS 0 +__ptext4 386 0 CODE 0 +__Htext6 0 0 ABS 0 +__Ltext6 0 0 ABS 0 +__ptext5 2A8 0 CODE 0 +__Htext7 0 0 ABS 0 +__Ltext7 0 0 ABS 0 +__ptext6 3FC 0 CODE 0 +__HbssCOMRAM 0 0 ABS 0 +__LbssCOMRAM 0 0 ABS 0 +__Htext8 0 0 ABS 0 +__Ltext8 0 0 ABS 0 +__ptext7 234 0 CODE 0 +__pbssCOMRAM 25 0 COMRAM 1 +__ptext8 418 0 CODE 0 +__CFG_T3CMX$PORTC0 0 0 ABS 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 378 0 CODE 0 +__CFG_PRICLKEN$ON 0 0 ABS 0 +memset@c 1C 0 COMRAM 1 +___rparam_used 1 0 ABS 0 +__size_of_memset 0 0 ABS 0 +memset@n 1E 0 COMRAM 1 +memset@p 20 0 COMRAM 1 +isr@data 18 0 COMRAM 1 +__Hidata 0 0 CODE 0 +__Lidata 0 0 CODE 0 +__Hrdata 0 0 COMRAM 1 +__Lrdata 0 0 COMRAM 1 +__Hidloc 200008 0 IDLOC 0 +__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 1BC 0 CODE 0 +midi_set_channel@channel 1C 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 1B8 0 CODE 0 +__pcstackCOMRAM 1 0 COMRAM 1 +__Hspace_1 69 0 ABS 0 +__Lspace_1 0 0 ABS 0 +__Hsmallconst 0 0 SMALLCONST 0 +__Lsmallconst 0 0 SMALLCONST 0 +eusart_write_midi@length 1F 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 354 0 CODE 0 +__CFG_EBTRB$OFF 0 0 ABS 0 +_init_hw 2A8 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 1F 0 COMRAM 1 +__CFG_MCLRE$EXTMCLR 0 0 ABS 0 +__CFG_WRT2$OFF 0 0 ABS 0 +__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 23 0 COMRAM 1 +midi_set_status@pkt 1A 0 COMRAM 1 +_RCSTA1bits FAB 0 ABS 0 +_TXSTA1bits FAC 0 ABS 0 +___inthi_sp 0 0 STACK 2 +__size_of_midi_set_channel 0 0 ABS 0 +___intlo_sp 0 0 STACK 2 +_OSCCONbits FD3 0 ABS 0 +_INTCONbits FF2 0 ABS 0 +__HidataCOMRAM 0 0 ABS 0 +__LidataCOMRAM 0 0 ABS 0 +_keypresses 25 0 COMRAM 1 +__pidataCOMRAM 424 0 CODE 0 +__CFG_CP0$OFF 0 0 ABS 0 +__smallconst 0 0 SMALLCONST 0 +__CFG_CP1$OFF 0 0 ABS 0 +memset@p1 1A 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 3FC 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 1C 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 +__HdataCOMRAM 0 0 ABS 0 +__LdataCOMRAM 0 0 ABS 0 +__pdataCOMRAM 43 0 COMRAM 1 +__CFG_CPB$OFF 0 0 ABS 0 +__CFG_CPD$OFF 0 0 ABS 0 +start_initialization 354 0 CODE 0 +__CFG_BOREN$SBORDIS 0 0 ABS 0 +__CFG_IESO$OFF 0 0 ABS 0 +_eusart1_init 3FC 0 CODE 0 +__initialization 354 0 CODE 0 +__activetblptr 2 0 ABS 0 +%segments +reset_vec 0 3 CODE 0 0 +intcode 8 425 CODE 8 0 +config 300000 30000D CONFIG 300000 0 +idloc 200000 200007 IDLOC 200000 0 +cstackCOMRAM 1 45 COMRAM 1 1 +cstackBANK0 60 68 BANK0 60 1 +%locals +dist/default/production\src.production.obj +C:\Program Files\Microchip\xc8\v1.44\include\pic18f45k22.h +C:\Users\_prossn\AppData\Local\Temp\s5hg. +1211 354 0 CODE 0 +1213 354 0 CODE 0 +1216 354 0 CODE 0 +1238 354 0 CODE 0 +1239 356 0 CODE 0 +1240 358 0 CODE 0 +1241 35A 0 CODE 0 +1242 35C 0 CODE 0 +1243 35E 0 CODE 0 +1244 360 0 CODE 0 +1245 362 0 CODE 0 +1246 366 0 CODE 0 +1247 368 0 CODE 0 +1251 36C 0 CODE 0 +1252 370 0 CODE 0 +1253 372 0 CODE 0 +1254 372 0 CODE 0 +1255 374 0 CODE 0 +1256 376 0 CODE 0 +1262 378 0 CODE 0 +1264 378 0 CODE 0 +1265 37A 0 CODE 0 +1267 37C 0 CODE 0 +1268 37E 0 CODE 0 +1269 380 0 CODE 0 +1270 382 0 CODE 0 +main.c +204 308 0 CODE 0 +210 308 0 CODE 0 +213 30C 0 CODE 0 +216 328 0 CODE 0 +217 344 0 CODE 0 +220 346 0 CODE 0 +221 346 0 CODE 0 +220 352 0 CODE 0 +midi.c +62 1BC 0 CODE 0 +64 1BC 0 CODE 0 +68 1C4 0 CODE 0 +72 1DA 0 CODE 0 +73 1EA 0 CODE 0 +75 1FE 0 CODE 0 +76 20E 0 CODE 0 +79 21E 0 CODE 0 +midi.c +40 3D8 0 CODE 0 +42 3D8 0 CODE 0 +46 3E0 0 CODE 0 +midi.c +51 3B2 0 CODE 0 +53 3B2 0 CODE 0 +57 3BA 0 CODE 0 +C:\Program Files\Microchip\xc8\v1.44\sources\common\memset.c +8 386 0 CODE 0 +18 386 0 CODE 0 +19 38E 0 CODE 0 +20 390 0 CODE 0 +19 3A0 0 CODE 0 +main.c +140 2A8 0 CODE 0 +142 2A8 0 CODE 0 +146 2AA 0 CODE 0 +148 2AC 0 CODE 0 +150 2B8 0 CODE 0 +152 2BE 0 CODE 0 +156 2C2 0 CODE 0 +157 2C8 0 CODE 0 +158 2CC 0 CODE 0 +159 2D0 0 CODE 0 +162 2D4 0 CODE 0 +163 2D6 0 CODE 0 +165 2D8 0 CODE 0 +166 2DA 0 CODE 0 +167 2DC 0 CODE 0 +168 2DE 0 CODE 0 +171 2E0 0 CODE 0 +173 2E2 0 CODE 0 +175 2E4 0 CODE 0 +177 2E6 0 CODE 0 +181 2E8 0 CODE 0 +183 2EC 0 CODE 0 +185 2F4 0 CODE 0 +187 2F8 0 CODE 0 +190 2FA 0 CODE 0 +191 2FC 0 CODE 0 +194 2FE 0 CODE 0 +197 300 0 CODE 0 +199 304 0 CODE 0 +200 306 0 CODE 0 +rs232.c +4 3FC 0 CODE 0 +7 3FC 0 CODE 0 +8 3FE 0 CODE 0 +11 400 0 CODE 0 +12 402 0 CODE 0 +13 406 0 CODE 0 +14 40A 0 CODE 0 +15 40C 0 CODE 0 +18 40E 0 CODE 0 +19 410 0 CODE 0 +20 412 0 CODE 0 +21 414 0 CODE 0 +22 416 0 CODE 0 +main.c +226 234 0 CODE 0 +231 234 0 CODE 0 +235 23C 0 CODE 0 +236 250 0 CODE 0 +238 25C 0 CODE 0 +240 282 0 CODE 0 +241 284 0 CODE 0 +242 296 0 CODE 0 +240 296 0 CODE 0 +rs232.c +29 418 0 CODE 0 +31 41A 0 CODE 0 +32 41E 0 CODE 0 +33 422 0 CODE 0 +rs232.c +33 8 0 CODE 0 +main.c +101 8 0 CODE 0 +105 52 0 CODE 0 +107 54 0 CODE 0 +109 58 0 CODE 0 +110 5C 0 CODE 0 +111 60 0 CODE 0 +112 60 0 CODE 0 +113 B6 0 CODE 0 +115 BE 0 CODE 0 +116 C2 0 CODE 0 +117 C6 0 CODE 0 +118 C6 0 CODE 0 +119 11C 0 CODE 0 +129 13C 0 CODE 0 +130 146 0 CODE 0 +133 168 0 CODE 0 +134 16A 0 CODE 0 +136 16A 0 CODE 0 +137 16C 0 CODE 0 @@ -84,34 +84,62 @@ #include <xc.h> #include <stdio.h> #include <stdlib.h> +#include <stdint.h> #include <string.h> -int eusart_write_midi(const midi_message_t *pkt) +#define NOTES 15 +#define NOTE_MASK 0xFF00 + + +/* global variables */ +volatile uint16_t keypresses[NOTES]; + +/* function prototypes */ +int eusart_write_midi(const midi_message_t *pkt); + +/* interrupt service routine */ +interrupt void isr(void) { - size_t length; - uint8_t *data; - - if (pkt == NULL) { - return -1; - } - - length = pkt->data_size; - data = (uint8_t *) pkt->data; - - putch((char)((pkt->status << 4) | pkt->channel)); + unsigned char i, data; + + PORTDbits.RD3 = 0; - while (length--) { - putch((char) *(data++)); + if (PIR1bits.TMR2IF) { + // PORTA + data = PORTA; + i = 7; + do { + keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); + } while (i--); + + data = PORTB; + i = 7; + do { + keypresses[i] = (keypresses[i] << 1) | ((data >> i) & 0x01); + } while (i-- - 8); + + // PORTB + // for (i = 8; i < NOTES; i++) { + // keypresses[i] = (keypresses[i] << 1) | ((PORTB & (1 << i)) >> i); + // } + + // TODO same for PORTD when the steps board is printed + + // debug stuff + PORTDbits.RD4 = PORTAbits.RA0; + PORTDbits.RD2 = (keypresses[0] && !(keypresses[0] & NOTE_MASK)); + + // reset interrupt flag + PIR1bits.TMR2IF = 0; } - return 0; + PORTDbits.RD3 = 1; } - -/* main program */ -void main(void) +/* hardware configuration (inlined) */ +inline void init_hw(void) { - midi_message_t sample_message; + di(); /* PLL / FOSC configuration */ // enable PLL @@ -130,14 +158,62 @@ void main(void) ANSELC = 0x00; ANSELD = 0x00; + // TODO: remove demo + TRISA = 0xFF; + TRISB = 0xFF; + + TRISDbits.TRISD1 = 0; + TRISDbits.TRISD2 = 0; + TRISDbits.TRISD3 = 0; + TRISDbits.TRISD4 = 0; + + // LED + PORTDbits.RD1 = 1; + // TEST OUTPUT 1 + PORTDbits.RD2 = 0; + // TEST OUTPUT 2 + PORTDbits.RD3 = 1; + // TEST OUTPUT 3 + PORTDbits.RD4 = 0; + + /* timer configuration */ + // timer 2 comp value + PR2 = 128; + // postscaler 1:4 + T2CONbits.T2OUTPS = 0b0011; + // prescaler 1:16 + T2CONbits.T2CKPS = 0b11; + // start timer + T2CONbits.TMR2ON = 1; + + // timer 2 interrupts + PIE1bits.TMR2IE = 1; + PIR1bits.TMR2IF = 0; + + // enable peripheral interrupts + INTCONbits.PEIE = 1; /* serial configuration */ eusart1_init(); - /* demo code */ - midi_note_on(&sample_message, 0x0, 0x3C, 0x7F); + ei(); +} - TRISDbits.TRISD1 = 0; + +/* main program */ +void main(void) +{ + unsigned char i, data; + midi_message_t sample_message; + + /* setup hardware */ + init_hw(); + + /* setup software */ + memset(keypresses, 0, sizeof(keypresses)); + + /* TODO remove demo code */ + midi_note_on(&sample_message, 0x0, 0x3C, 0x7F); PORTDbits.RD1 = 0; /* main loop */ @@ -146,3 +222,24 @@ void main(void) } } + +int eusart_write_midi(const midi_message_t *pkt) +{ + size_t length; + uint8_t *data; + + if (pkt == NULL) { + return -1; + } + + length = pkt->data_size; + data = (uint8_t *) pkt->data; + + putch((char)((pkt->status << 4) | pkt->channel)); + + while (length--) { + putch((char) *(data++)); + } + + return 0; +}
\ No newline at end of file diff --git a/src/nbproject/Makefile-genesis.properties b/src/nbproject/Makefile-genesis.properties index 8bab016..7e799cd 100644 --- a/src/nbproject/Makefile-genesis.properties +++ b/src/nbproject/Makefile-genesis.properties @@ -1,7 +1,7 @@ # -#Fri Feb 23 08:35:30 CET 2018 +#Fri Feb 23 16:05:02 CET 2018 default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc8\\v1.44\\bin -configurations-xml=af2f7bf849f43cec780e74f66603aaa1 +configurations-xml=b7ce4d9a7385ee4bf81a07319272507b com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5d30ff5128b14865c8a3796a8f0bb8a0 default.languagetoolchain.version=1.44 host.platform=windows diff --git a/src/nbproject/configurations.xml b/src/nbproject/configurations.xml index fd080e3..6671167 100644 --- a/src/nbproject/configurations.xml +++ b/src/nbproject/configurations.xml @@ -46,7 +46,7 @@ </archiverTool> <loading> <useAlternateLoadableFile>false</useAlternateLoadableFile> - <parseOnProdLoad>false</parseOnProdLoad> + <parseOnProdLoad>true</parseOnProdLoad> <alternateLoadableFile></alternateLoadableFile> </loading> <subordinates> diff --git a/src/nbproject/private/private.xml b/src/nbproject/private/private.xml index eac6246..83de11c 100644 --- a/src/nbproject/private/private.xml +++ b/src/nbproject/private/private.xml @@ -3,8 +3,10 @@ <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> <group name="Corso Kamm"> - <file>file:/Z:/SAMB_4/projects/xilofono/src/main.c</file> <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> |