CCS PCM C Compiler, Version 3.245, 27853               11-V-08 12:42

               Filename: D:\MLAB_E\projekty\rotacni_display\SW\infra\infra.lst

               ROM used: 526 words (6%)
                         Largest free fragment is 2048
               RAM used: 28 (16%) at main() level
                         37 (21%) worst case
               Stack:    3 worst case (2 in main + 1 for interrupts)

*
0000:  MOVLW  00
0001:  MOVWF  0A
0002:  GOTO   181
0003:  NOP
0004:  MOVWF  7F
0005:  SWAPF  03,W
0006:  CLRF   03
0007:  MOVWF  21
0008:  MOVF   0A,W
0009:  MOVWF  20
000A:  CLRF   0A
000B:  MOVF   04,W
000C:  MOVWF  22
000D:  MOVF   77,W
000E:  MOVWF  23
000F:  MOVF   78,W
0010:  MOVWF  24
0011:  MOVF   79,W
0012:  MOVWF  25
0013:  MOVF   7A,W
0014:  MOVWF  26
0015:  MOVF   7B,W
0016:  MOVWF  27
0017:  BCF    03.7
0018:  BCF    03.5
0019:  MOVLW  8C
001A:  MOVWF  04
001B:  BTFSS  00.5
001C:  GOTO   01F
001D:  BTFSC  0C.5
001E:  GOTO   032
001F:  MOVF   22,W
0020:  MOVWF  04
0021:  MOVF   23,W
0022:  MOVWF  77
0023:  MOVF   24,W
0024:  MOVWF  78
0025:  MOVF   25,W
0026:  MOVWF  79
0027:  MOVF   26,W
0028:  MOVWF  7A
0029:  MOVF   27,W
002A:  MOVWF  7B
002B:  MOVF   20,W
002C:  MOVWF  0A
002D:  SWAPF  21,W
002E:  MOVWF  03
002F:  SWAPF  7F,F
0030:  SWAPF  7F,W
0031:  RETFIE
0032:  BCF    0A.3
0033:  BCF    0A.4
0034:  GOTO   0ED
.................... #include ".\infra.h" 
.................... #include <16F877A.h> 
.................... //////// Standard Header file for the PIC16F877A device //////////////// 
.................... #device PIC16F877A 
.................... #list 
....................  
.................... #device adc=8 
....................  
.................... #FUSES WDT                      //Watch Dog Timer 
.................... #FUSES XT                       //Crystal osc <= 4mhz 
.................... #FUSES NOPUT                    //No Power Up Timer 
.................... #FUSES NOPROTECT                //Code not protected from reading 
.................... #FUSES NODEBUG                  //No Debug mode for ICD 
.................... #FUSES NOBROWNOUT               //No brownout reset 
.................... #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O 
.................... #FUSES NOCPD                    //No EE protection 
.................... #FUSES NOWRT                    //Program memory not write protected 
....................  
.................... #use delay(clock=4000000,RESTART_WDT) 
*
0104:  MOVLW  39
0105:  MOVWF  04
0106:  MOVF   00,W
0107:  BTFSC  03.2
0108:  GOTO   11A
0109:  MOVLW  01
010A:  MOVWF  78
010B:  MOVLW  BF
010C:  MOVWF  77
010D:  CLRWDT
010E:  DECFSZ 77,F
010F:  GOTO   10D
0110:  DECFSZ 78,F
0111:  GOTO   10B
0112:  MOVLW  4A
0113:  MOVWF  77
0114:  DECFSZ 77,F
0115:  GOTO   114
0116:  NOP
0117:  CLRWDT
0118:  DECFSZ 00,F
0119:  GOTO   109
011A:  BCF    0A.3
011B:  BCF    0A.4
011C:  GOTO   14E (RETURN)
.................... #use rs232(baud=600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) 
....................  
....................  
....................  
.................... #define MAX_SLOVO 10   // Maximalni pocet znaku ve slovu 
....................  
.................... int8 napis[MAX_SLOVO+1]; 
.................... int8 otacky; 
....................  
.................... const int8 logo[MAX_SLOVO+1]={'[','^','_','_',']',96,'^','_','_','a',0}; // [blesk] E4A [blesk] 
.................... const int8 rok[MAX_SLOVO+1]={'[','[',92,'[','E',']','A','[',92,'[',0}; // 2004-2008 
....................  
.................... #int_RDA 
.................... void  RDA_isr(void) 
.................... { 
....................    int n; 
....................    output_B(0x55); 
*
00ED:  BSF    03.5
00EE:  CLRF   06
00EF:  MOVLW  55
00F0:  BCF    03.5
00F1:  MOVWF  06
....................    for(n=0;n<MAX_SLOVO;n++) 
00F2:  CLRF   3E
00F3:  MOVF   3E,W
00F4:  SUBLW  09
00F5:  BTFSS  03.0
00F6:  GOTO   100
....................    { 
....................      napis[n]=getc(); 
00F7:  MOVLW  28
00F8:  ADDWF  3E,W
00F9:  MOVWF  04
00FA:  BTFSS  0C.5
00FB:  GOTO   0FA
00FC:  MOVF   1A,W
00FD:  MOVWF  00
....................    } 
00FE:  INCF   3E,F
00FF:  GOTO   0F3
.................... } 
....................  
0100:  BCF    0C.5
0101:  BCF    0A.3
0102:  BCF    0A.4
0103:  GOTO   01F
.................... void LED_print() 
.................... { 
.................... unsigned int slovo,pismeno,sloupec,j; 
....................  
....................    const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A 
....................                         0b00000000,0b01110110,0b01110110,0b01110110,0b10001001,  //B 
....................                         0b10000001,0b01111110,0b01111110,0b01111110,0b10111101,  //C 
....................                         0b00000000,0b01111110,0b01111110,0b01111110,0b10000001,  //D 
....................                         0b00000000,0b01110110,0b01110110,0b01111110,0b01111110,  //E 
....................                         0b00000000,0b11110110,0b11110110,0b11111110,0b11111110,  //F 
....................                         0b10000001,0b01111110,0b01110110,0b01110110,0b10000101,  //G 
....................                         0b00000000,0b11110111,0b11110111,0b11110111,0b00000000,  //H 
....................                         0b01111110,0b01111110,0b00000000,0b01111110,0b01111110,  //I 
....................                         0b10111110,0b01111110,0b01111110,0b01111110,0b10000000,  //J 
....................                         0b00000000,0b11110111,0b11110111,0b11101011,0b00011100,  //K 
....................                         0b00000000,0b01111111,0b01111111,0b01111111,0b01111111,  //L 
....................                         0b00000000,0b11111110,0b11110000,0b11111110,0b00000000,  //M 
....................                         0b00000000,0b11101111,0b11011111,0b10111111,0b00000000,  //N 
....................                         0b10000001,0b01111110,0b01111110,0b01111110,0b10000001,  //O 
....................                         0b00000000,0b11110110,0b11110110,0b11110110,0b11111001,  //P 
....................                         0b10000001,0b01111110,0b01111110,0b01111110,0b00000001,  //Q 
....................                         0b00000000,0b11110110,0b11110110,0b11110110,0b00001001,  //R 
....................                         0b10111001,0b01110110,0b01110110,0b01110110,0b10001101,  //S 
....................                         0b11111110,0b11111110,0b00000000,0b11111110,0b11111110,  //T 
....................                         0b10000000,0b01111111,0b01111111,0b01111111,0b10000000,  //U 
....................                         0b11000000,0b10111111,0b01111111,0b10111111,0b11000000,  //V 
....................                         0b10000000,0b01111111,0b10000000,0b01111111,0b10000000,  //W 
....................                         0b00011100,0b11101011,0b11110111,0b11101011,0b00011100,  //X 
....................                         0b11111000,0b11110111,0b00000111,0b11110111,0b11111000,  //Y 
....................                         0b00011110,0b01101110,0b01110110,0b01111010,0b01111100,  //Z 
....................                         0b11111111,0b11111111,0b11111111,0b11111111,0b11111111,  //mezera 
....................                         0b00010111,0b00110011,0b01010101,0b11100110,0b11110111,  //blesk 
....................                         0b11110000,0b11110111,0b11110111,0b00000001,0b11110111,  //4 
....................                         0b00111101,0b01011110,0b01101110,0b01110110,0b01111001,  //2 
....................                         0b00000000,0b01111110,0b01111110,0b01111110,0b00000000,  //0 
....................                         0b11110111,0b11110111,0b11110111,0b11110111,0b11110111,  //pomlka 
....................                         0b10001001,0b01110110,0b01110110,0b01110110,0b10001001,  //8 
....................                         }; 
....................    while(read_adc()<9);       // Cekani na magnet 
*
0144:  BSF    1F.2
0145:  BTFSC  1F.2
0146:  GOTO   145
0147:  MOVF   1E,W
0148:  SUBLW  08
0149:  BTFSC  03.0
014A:  GOTO   144
....................    delay_ms(10); 
014B:  MOVLW  0A
014C:  MOVWF  39
014D:  GOTO   104
....................  
....................    for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) 
014E:  CLRF   36
014F:  MOVF   36,W
0150:  SUBLW  09
0151:  BTFSS  03.0
0152:  GOTO   17E
....................    { 
....................       for(sloupec=0;sloupec<5;sloupec++) 
0153:  CLRF   37
0154:  MOVF   37,W
0155:  SUBLW  04
0156:  BTFSS  03.0
0157:  GOTO   172
....................       { 
....................          output_B(pis[(napis[pismeno]-0x41)*5+sloupec]); 
0158:  MOVLW  28
0159:  ADDWF  36,W
015A:  MOVWF  04
015B:  MOVLW  41
015C:  SUBWF  00,W
015D:  MOVWF  3B
015E:  MOVWF  3C
015F:  MOVLW  05
0160:  MOVWF  3D
0161:  GOTO   11D
0162:  MOVF   37,W
0163:  ADDWF  78,W
0164:  CALL   044
0165:  MOVWF  39
0166:  BSF    03.5
0167:  CLRF   06
0168:  BCF    03.5
0169:  MOVF   39,W
016A:  MOVWF  06
....................          delay_us(500); 
016B:  CLRWDT
016C:  MOVLW  A6
016D:  MOVWF  77
016E:  DECFSZ 77,F
016F:  GOTO   16E
....................       } 
0170:  INCF   37,F
0171:  GOTO   154
....................       output_B(0xFF); 
0172:  BSF    03.5
0173:  CLRF   06
0174:  MOVLW  FF
0175:  BCF    03.5
0176:  MOVWF  06
....................       delay_us(500); 
0177:  CLRWDT
0178:  MOVLW  A6
0179:  MOVWF  77
017A:  DECFSZ 77,F
017B:  GOTO   17A
....................    } 
017C:  INCF   36,F
017D:  GOTO   14F
.................... } 
017E:  BCF    0A.3
017F:  BCF    0A.4
0180:  GOTO   1FC (RETURN)
....................  
.................... void main() 
.................... { 
0181:  CLRF   04
0182:  MOVLW  1F
0183:  ANDWF  03,F
0184:  MOVLW  67
0185:  BSF    03.5
0186:  MOVWF  19
0187:  MOVLW  22
0188:  MOVWF  18
0189:  MOVLW  90
018A:  BCF    03.5
018B:  MOVWF  18
018C:  BSF    03.5
018D:  BSF    1F.0
018E:  BSF    1F.1
018F:  BSF    1F.2
0190:  BCF    1F.3
0191:  MOVLW  07
0192:  MOVWF  1C
....................  
....................  
....................    setup_adc_ports(AN0); 
*
0196:  BSF    03.5
0197:  BCF    1F.0
0198:  BSF    1F.1
0199:  BSF    1F.2
019A:  BSF    1F.3
....................    setup_adc(ADC_CLOCK_INTERNAL); 
019B:  BCF    1F.6
019C:  BCF    03.5
019D:  BSF    1F.6
019E:  BSF    1F.7
019F:  BSF    03.5
01A0:  BCF    1F.7
01A1:  BCF    03.5
01A2:  BSF    1F.0
....................    setup_psp(PSP_DISABLED); 
01A3:  BSF    03.5
01A4:  BCF    09.4
....................    setup_spi(SPI_SS_DISABLED); 
*
0193:  MOVLW  FF
0194:  BCF    03.5
0195:  MOVWF  34
*
01A5:  BCF    03.5
01A6:  BCF    14.5
01A7:  BCF    34.5
01A8:  MOVF   34,W
01A9:  BSF    03.5
01AA:  MOVWF  07
01AB:  BCF    03.5
01AC:  BSF    34.4
01AD:  MOVF   34,W
01AE:  BSF    03.5
01AF:  MOVWF  07
01B0:  BCF    03.5
01B1:  BCF    34.3
01B2:  MOVF   34,W
01B3:  BSF    03.5
01B4:  MOVWF  07
01B5:  MOVLW  01
01B6:  BCF    03.5
01B7:  MOVWF  14
01B8:  MOVLW  00
01B9:  BSF    03.5
01BA:  MOVWF  14
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
01BB:  MOVF   01,W
01BC:  ANDLW  C7
01BD:  IORLW  08
01BE:  MOVWF  01
....................    setup_wdt(WDT_2304MS); 
01BF:  MOVLW  0F
01C0:  MOVWF  77
01C1:  MOVLW  07
01C2:  BCF    03.5
01C3:  CLRF   01
01C4:  MOVLW  81
01C5:  MOVWF  04
01C6:  MOVF   00,W
01C7:  ANDLW  F0
01C8:  IORLW  07
01C9:  MOVWF  00
01CA:  CLRWDT
01CB:  MOVF   00,W
01CC:  ANDLW  F7
01CD:  BTFSC  77.3
01CE:  ANDLW  F0
01CF:  IORWF  77,W
01D0:  MOVWF  00
....................    setup_timer_1(T1_DISABLED); 
01D1:  CLRF   10
....................    setup_timer_2(T2_DISABLED,0,1); 
01D2:  MOVLW  00
01D3:  MOVWF  78
01D4:  MOVWF  12
01D5:  MOVLW  00
01D6:  BSF    03.5
01D7:  MOVWF  12
....................    setup_comparator(NC_NC_NC_NC); 
01D8:  MOVLW  07
01D9:  MOVWF  1C
01DA:  MOVF   05,W
01DB:  CLRWDT
01DC:  MOVLW  02
01DD:  MOVWF  77
01DE:  DECFSZ 77,F
01DF:  GOTO   1DE
01E0:  NOP
01E1:  NOP
01E2:  MOVF   1C,W
01E3:  BCF    03.5
01E4:  BCF    0D.6
....................    setup_vref(FALSE); 
01E5:  BSF    03.5
01E6:  CLRF   1D
....................  
....................    enable_interrupts(INT_RDA); 
01E7:  BSF    0C.5
....................    enable_interrupts(GLOBAL); 
01E8:  MOVLW  C0
01E9:  BCF    03.5
01EA:  IORWF  0B,F
....................  
....................    set_adc_channel(0);     // Prevodnik pro Hall 
01EB:  MOVLW  00
01EC:  MOVWF  78
01ED:  MOVF   1F,W
01EE:  ANDLW  C7
01EF:  IORWF  78,W
01F0:  MOVWF  1F
....................    output_B(0xFF);         // Zhasneme 
01F1:  BSF    03.5
01F2:  CLRF   06
01F3:  MOVLW  FF
01F4:  BCF    03.5
01F5:  MOVWF  06
....................  
....................    otacky=0; 
01F6:  CLRF   33
....................    napis[0]=0; 
01F7:  CLRF   28
....................  
....................    while(TRUE) 
....................    { 
....................       if (napis[0]!=0) 
01F8:  MOVF   28,F
01F9:  BTFSC  03.2
01FA:  GOTO   1FD
....................       { 
....................          LED_print(); 
01FB:  GOTO   144
....................       } 
....................       else 
01FC:  GOTO   20C
....................       { 
....................          strcpy(napis,logo); 
01FD:  CLRF   35
01FE:  CLRF   36
01FF:  MOVLW  28
0200:  MOVWF  04
0201:  MOVF   35,W
0202:  ADDWF  04,F
0203:  MOVF   36,W
0204:  CALL   035
0205:  MOVWF  00
0206:  IORLW  00
0207:  BTFSC  03.2
0208:  GOTO   20C
0209:  INCF   36,F
020A:  INCF   35,F
020B:  GOTO   1FF
....................       } 
....................    } 
020C:  GOTO   1F8
.................... } 
020D:  SLEEP

Configuration Fuses:
   Word  1: 3F3D   XT WDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT