                        .module AT24C02.C
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑé¶þ~3\AT24C02.C
 0000                   .dbfile E:\²©¿Æ²úÆ·ÅäÌ×ÎÄ¼þ\BK-AVR~1\BK-AVR128ÅäÌ×ÊµÑé³ÌÐò\ÊµÑé¶þ~3\AT24C02.C
 0000                   .dbfunc e main _main fV
 0000           ;              c -> R22
 0000           ;              b -> R10
 0000           ;              a -> R20
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 29
 0000           ; 
 0000           ; /********************************************************
 0000           ; ÊµÑé¶þÊ®Ò»:  I2C EEPROM¶ÁÐ´ÊµÑé  (AT24C02)
 0000           ; ËµÃ÷:        ½«¸Ã³ÌÐòÏÂÔØµ½¿ª·¢°åÔËÐÐ£¬¿ÉÒÔ¿´µ½°åÉÏµÄLED
 0000           ;              ¼ä¸ôÏÔÊ¾
 0000           ;                
 0000           ;  
 0000           ; ÊµÑéÄ¿µÄ:    ÊìÏ¤I2CÍ¨Ñ¸·½·¨¼°Ô­Àí          
 0000           ;           
 0000           ; CPUÐÍºÅ:     ATMEGA128A
 0000           ; Ê±ÖÓ:        Íâ²¿8MHZ
 0000           ; ¸üÐÂÈÕÆÚ£º   2011-7-13
 0000           ; ÁªÏµ·½·¨:    MCU.2000@163.com 
 0000           ;  ********************************************************/
 0000           ; 
 0000           ; #include <iom128v.h> 
 0000           ; #include <macros.h> 
 0000           ; #include"TWI.H" 
 0000           ; #define rd_device_add 0xA1 
 0000           ; #define wr_device_add 0xA0  
 0000           ;  
 0000           ; void i2cini(void) ; 
 0000           ; unsigned char i2c_Write(unsigned char Wdata,unsigned char RomAddress) ;  
 0000           ; unsigned char i2c_Read(unsigned char RomAddress)  ;   
 0000           ; void delay_nus(unsigned int n);       //N usÑÓÊ±º¯Êý   
 0000           ; void delay_nms(unsigned int n);       //N msÑÓÊ±º¯Êý
 0000           ; 
 0000           ; void main(void) 
 0000           ; {     
 0000                   .dbline 30
 0000           ;      unsigned char a=0x55,b = 0x0,c = 0x22; 
 0000 45E5              ldi R20,85
 0002                   .dbline 30
 0002 AA24              clr R10
 0004                   .dbline 30
 0004 62E2              ldi R22,34
 0006                   .dbline 31
 0006           ;      DDRA=0XFF;                     //LED IO¿ÚÉèÎªÊä³ö
 0006 8FEF              ldi R24,255
 0008 8ABB              out 0x1a,R24
 000A                   .dbline 32
 000A           ;        DDRC=0XFF;                     //ÊýÂë¹Ü¶ÎÑ¡ÉèÎªÊä³ö
 000A 84BB              out 0x14,R24
 000C                   .dbline 33
 000C           ;        DDRF |=0X03;                   //LED¼°ÊýÂë¹ÜËø´æIO¿ÚÉèÎªÊä³ö
 000C 80916100          lds R24,97
 0010 8360              ori R24,3
 0012 80936100          sts 97,R24
 0016                   .dbline 34
 0016           ;        PORTF|=0X0E;           
 0016 80916200          lds R24,98
 001A 8E60              ori R24,14
 001C 80936200          sts 98,R24
 0020                   .dbline 35
 0020           ;        PORTA=0XFF;
 0020 8FEF              ldi R24,255
 0022 8BBB              out 0x1b,R24
 0024                   .dbline 36
 0024           ;        PORTC=0XFF;            
 0024 85BB              out 0x15,R24
 0026                   .dbline 37
 0026           ;        PORTF&=0xF9;                   //Ëø´æÊý¾Ý¹Ø±ÕÊýÂë¹Ü 
 0026 80916200          lds R24,98
 002A 897F              andi R24,249
 002C 80936200          sts 98,R24
 0030                   .dbline 39
 0030           ;        
 0030           ;        DDRB |=0X10;                   //PB4ÉèÎªÊä³ö
 0030 BC9A              sbi 0x17,4
 0032                   .dbline 40
 0032           ;        PORTB|=0X10;                   //¹Ø±ÕPB4Íâ½ÓµÄLED
 0032 C49A              sbi 0x18,4
 0034                   .dbline 42
 0034           ;         
 0034           ;      DDRD=0xFF; 
 0034 8FEF              ldi R24,255
 0036 81BB              out 0x11,R24
 0038                   .dbline 43
 0038           ;      PORTD=0X00; 
 0038 2224              clr R2
 003A 22BA              out 0x12,R2
 003C                   .dbline 45
 003C           ; 
 003C           ;      i2cini(); 
 003C 12D0              xcall _i2cini
 003E 0FC0              xjmp L3
 0040           L2:
 0040                   .dbline 48
 0040           ; 
 0040           ;      while(1)
 0040           ;        {
 0040                   .dbline 49
 0040           ;                c = i2c_Write(a,0x03);     //½«aÖÐµÄÊý¾ÝÐ´ÈëAT24C02
 0040 23E0              ldi R18,3
 0042 042F              mov R16,R20
 0044 15D0              xcall _i2c_Write
 0046 602F              mov R22,R16
 0048                   .dbline 50
 0048           ;          delay_nms(10) ;
 0048 0AE0              ldi R16,10
 004A 10E0              ldi R17,0
 004C CFD0              xcall _delay_nms
 004E                   .dbline 51
 004E           ;            b = i2c_Read(0x03);        //´ÓAT24C02¶ÁÈ¡Êý¾Ý
 004E 03E0              ldi R16,3
 0050 5AD0              xcall _i2c_Read
 0052 A02E              mov R10,R16
 0054                   .dbline 52
 0054           ;            PORTA = b;                 //½«¶ÁÈ¡µÄÊý¾Ý¾ÝËÍLEDÏÔÊ¾
 0054 0BBB              out 0x1b,R16
 0056                   .dbline 53
 0056           ;                a=~a;                      //½«aµÄÖµ°´Î»È¡·´
 0056 4095              com R20
 0058                   .dbline 54
 0058           ;                delay_nms(1000) ;          //ÊÊµ±ÑÓÊ±·½±ã¹Û¿´ÊµÑéÐ§¹û
 0058 08EE              ldi R16,1000
 005A 13E0              ldi R17,3
 005C C7D0              xcall _delay_nms
 005E                   .dbline 55
 005E           ;        }  
 005E           L3:
 005E                   .dbline 47
 005E F0CF              xjmp L2
 0060           X0:
 0060                   .dbline -2
 0060           L1:
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r c 22 c
 0062                   .dbsym r b 10 c
 0062                   .dbsym r a 20 c
 0062                   .dbend
 0062                   .dbfunc e i2cini _i2cini fV
                        .even
 0062           _i2cini::
 0062                   .dbline -1
 0062                   .dbline 59
 0062           ; } 
 0062           ; 
 0062           ; void i2cini(void) 
 0062           ; { 
 0062                   .dbline 60
 0062           ;      TWBR=163; 
 0062 83EA              ldi R24,163
 0064 80937000          sts 112,R24
 0068                   .dbline 61
 0068           ;      TWSR=00; 
 0068 2224              clr R2
 006A 20927100          sts 113,R2
 006E                   .dbline -2
 006E           L5:
 006E                   .dbline 0 ; func end
 006E 0895              ret
 0070                   .dbend
 0070                   .dbfunc e i2c_Write _i2c_Write fc
 0070           ;              i -> R20
 0070           ;     RomAddress -> R18
 0070           ;          Wdata -> R16
                        .even
 0070           _i2c_Write::
 0070 4A93              st -y,R20
 0072                   .dbline -1
 0072                   .dbline 65
 0072           ; } 
 0072           ; 
 0072           ; unsigned char i2c_Write(unsigned char Wdata,unsigned char RomAddress)  
 0072           ; { 
 0072                   .dbline 67
 0072           ;           unsigned char i; 
 0072           ;           Start();//I2CÆô¶¯ 
 0072 84EA              ldi R24,164
 0074 80937400          sts 116,R24
 0078                   .dbline 68
 0078           ;           Wait(); 
 0078           L7:
 0078                   .dbline 68
 0078           L8:
 0078                   .dbline 68
 0078 20907400          lds R2,116
 007C 27FE              sbrs R2,7
 007E FCCF              rjmp L7
 0080           X1:
 0080                   .dbline 68
 0080                   .dbline 68
 0080                   .dbline 69
 0080           ;           if(TestAck()!=START) return 1;//ACK 
 0080 80917100          lds R24,113
 0084 887F              andi R24,248
 0086 8830              cpi R24,8
 0088 11F0              breq L10
 008A           X2:
 008A                   .dbline 69
 008A 01E0              ldi R16,1
 008C 3AC0              xjmp L6
 008E           L10:
 008E                   .dbline 71
 008E           ;                 
 008E           ;           Write8Bit(wr_device_add);//Ð´I2C´ÓÆ÷¼þµØÖ·ºÍÐ´·½Ê½ 
 008E                   .dbline 71
 008E 80EA              ldi R24,160
 0090 80937300          sts 115,R24
 0094                   .dbline 71
 0094 84E8              ldi R24,132
 0096 80937400          sts 116,R24
 009A                   .dbline 71
 009A                   .dbline 71
 009A                   .dbline 72
 009A           ;           Wait(); 
 009A           L12:
 009A                   .dbline 72
 009A           L13:
 009A                   .dbline 72
 009A 20907400          lds R2,116
 009E 27FE              sbrs R2,7
 00A0 FCCF              rjmp L12
 00A2           X3:
 00A2                   .dbline 72
 00A2                   .dbline 72
 00A2                   .dbline 73
 00A2           ;           if(TestAck()!=MT_SLA_ACK) return 1;//ACK 
 00A2 80917100          lds R24,113
 00A6 887F              andi R24,248
 00A8 8831              cpi R24,24
 00AA 11F0              breq L15
 00AC           X4:
 00AC                   .dbline 73
 00AC 01E0              ldi R16,1
 00AE 29C0              xjmp L6
 00B0           L15:
 00B0                   .dbline 75
 00B0           ;                 
 00B0           ;           Write8Bit(RomAddress);//Ð´24C02µÄROMµØÖ· 
 00B0                   .dbline 75
 00B0 20937300          sts 115,R18
 00B4                   .dbline 75
 00B4 84E8              ldi R24,132
 00B6 80937400          sts 116,R24
 00BA                   .dbline 75
 00BA                   .dbline 75
 00BA                   .dbline 76
 00BA           ;           Wait(); 
 00BA           L17:
 00BA                   .dbline 76
 00BA           L18:
 00BA                   .dbline 76
 00BA 20907400          lds R2,116
 00BE 27FE              sbrs R2,7
 00C0 FCCF              rjmp L17
 00C2           X5:
 00C2                   .dbline 76
 00C2                   .dbline 76
 00C2                   .dbline 77
 00C2           ;           if(TestAck()!=MT_DATA_ACK) return 1;//ACK 
 00C2 80917100          lds R24,113
 00C6 887F              andi R24,248
 00C8 8832              cpi R24,40
 00CA 11F0              breq L20
 00CC           X6:
 00CC                   .dbline 77
 00CC 01E0              ldi R16,1
 00CE 19C0              xjmp L6
 00D0           L20:
 00D0                   .dbline 79
 00D0           ;                 
 00D0           ;           Write8Bit(Wdata);//Ð´Êý¾Ýµ½24C02µÄROM 
 00D0                   .dbline 79
 00D0 00937300          sts 115,R16
 00D4                   .dbline 79
 00D4 84E8              ldi R24,132
 00D6 80937400          sts 116,R24
 00DA                   .dbline 79
 00DA                   .dbline 79
 00DA                   .dbline 80
 00DA           ;           Wait(); 
 00DA           L22:
 00DA                   .dbline 80
 00DA           L23:
 00DA                   .dbline 80
 00DA 20907400          lds R2,116
 00DE 27FE              sbrs R2,7
 00E0 FCCF              rjmp L22
 00E2           X7:
 00E2                   .dbline 80
 00E2                   .dbline 80
 00E2                   .dbline 81
 00E2           ;           if(TestAck()!=MT_DATA_ACK) return 1;//ACK
 00E2 80917100          lds R24,113
 00E6 887F              andi R24,248
 00E8 8832              cpi R24,40
 00EA 11F0              breq L25
 00EC           X8:
 00EC                   .dbline 81
 00EC 01E0              ldi R16,1
 00EE 09C0              xjmp L6
 00F0           L25:
 00F0                   .dbline 83
 00F0           ;                          
 00F0           ;           Stop();//I2CÍ£Ö¹ 
 00F0 84E9              ldi R24,148
 00F2 80937400          sts 116,R24
 00F6                   .dbline 84
 00F6           ;             for(i=0;i<250;i++); 
 00F6 4427              clr R20
 00F8 01C0              xjmp L30
 00FA           L27:
 00FA                   .dbline 84
 00FA           L28:
 00FA                   .dbline 84
 00FA 4395              inc R20
 00FC           L30:
 00FC                   .dbline 84
 00FC 4A3F              cpi R20,250
 00FE E8F3              brlo L27
 0100           X9:
 0100                   .dbline 85
 0100           ;           return 0; 
 0100 0027              clr R16
 0102                   .dbline -2
 0102           L6:
 0102                   .dbline 0 ; func end
 0102 4991              ld R20,y+
 0104 0895              ret
 0106                   .dbsym r i 20 c
 0106                   .dbsym r RomAddress 18 c
 0106                   .dbsym r Wdata 16 c
 0106                   .dbend
 0106                   .dbfunc e i2c_Read _i2c_Read fc
 0106           ;           temp -> R10
 0106           ;     RomAddress -> R16
                        .even
 0106           _i2c_Read::
 0106 AA92              st -y,R10
 0108                   .dbline -1
 0108                   .dbline 92
 0108           ; } 
 0108           ; /****************************************** 
 0108           ;                I2C×ÜÏß¶ÁÒ»¸ö×Ö½Ú 
 0108           ;                            Èç¹û¶ÁÊ§°ÜÒ²·µ»Ø0 
 0108           ; *******************************************/ 
 0108           ; unsigned char i2c_Read(unsigned char RomAddress)  
 0108           ;  { 
 0108                   .dbline 94
 0108           ;            unsigned char temp; 
 0108           ;            Start();//I2CÆô¶¯ 
 0108 84EA              ldi R24,164
 010A 80937400          sts 116,R24
 010E                   .dbline 95
 010E           ;            Wait(); 
 010E           L32:
 010E                   .dbline 95
 010E           L33:
 010E                   .dbline 95
 010E 20907400          lds R2,116
 0112 27FE              sbrs R2,7
 0114 FCCF              rjmp L32
 0116           X10:
 0116                   .dbline 95
 0116                   .dbline 95
 0116                   .dbline 96
 0116           ;            if (TestAck()!=START) return 0;//ACK  
 0116 80917100          lds R24,113
 011A 887F              andi R24,248
 011C 8830              cpi R24,8
 011E 11F0              breq L35
 0120           X11:
 0120                   .dbline 96
 0120 0027              clr R16
 0122 54C0              xjmp L31
 0124           L35:
 0124                   .dbline 98
 0124           ;                           
 0124           ;            Write8Bit(wr_device_add);//Ð´I2C´ÓÆ÷¼þµØÖ·ºÍÐ´·½Ê½ 
 0124                   .dbline 98
 0124 80EA              ldi R24,160
 0126 80937300          sts 115,R24
 012A                   .dbline 98
 012A 84E8              ldi R24,132
 012C 80937400          sts 116,R24
 0130                   .dbline 98
 0130                   .dbline 98
 0130                   .dbline 99
 0130           ;            Wait();  
 0130           L37:
 0130                   .dbline 99
 0130           L38:
 0130                   .dbline 99
 0130 20907400          lds R2,116
 0134 27FE              sbrs R2,7
 0136 FCCF              rjmp L37
 0138           X12:
 0138                   .dbline 99
 0138                   .dbline 99
 0138                   .dbline 100
 0138           ;            if (TestAck()!=MT_SLA_ACK) return 0;//ACK //
 0138 80917100          lds R24,113
 013C 887F              andi R24,248
 013E 8831              cpi R24,24
 0140 11F0              breq L40
 0142           X13:
 0142                   .dbline 100
 0142 0027              clr R16
 0144 43C0              xjmp L31
 0146           L40:
 0146                   .dbline 102
 0146           ;                  // 
 0146           ;            Write8Bit(RomAddress);//Ð´24C02µÄROMµØÖ· 
 0146                   .dbline 102
 0146 00937300          sts 115,R16
 014A                   .dbline 102
 014A 84E8              ldi R24,132
 014C 80937400          sts 116,R24
 0150                   .dbline 102
 0150                   .dbline 102
 0150                   .dbline 103
 0150           ;            Wait(); 
 0150           L42:
 0150                   .dbline 103
 0150           L43:
 0150                   .dbline 103
 0150 20907400          lds R2,116
 0154 27FE              sbrs R2,7
 0156 FCCF              rjmp L42
 0158           X14:
 0158                   .dbline 103
 0158                   .dbline 103
 0158                   .dbline 104
 0158           ;            if (TestAck()!=MT_DATA_ACK) return 0; //?
 0158 80917100          lds R24,113
 015C 887F              andi R24,248
 015E 8832              cpi R24,40
 0160 11F0              breq L45
 0162           X15:
 0162                   .dbline 104
 0162 0027              clr R16
 0164 33C0              xjmp L31
 0166           L45:
 0166                   .dbline 106
 0166           ;                 //data1=TestAck();
 0166           ;            Start();//I2CÖØÐÂÆô¶¯ 
 0166 84EA              ldi R24,164
 0168 80937400          sts 116,R24
 016C                   .dbline 107
 016C           ;            Wait(); 
 016C           L47:
 016C                   .dbline 107
 016C           L48:
 016C                   .dbline 107
 016C 20907400          lds R2,116
 0170 27FE              sbrs R2,7
 0172 FCCF              rjmp L47
 0174           X16:
 0174                   .dbline 107
 0174                   .dbline 107
 0174                   .dbline 108
 0174           ;            if (TestAck()!=RE_START)  return 0; 
 0174 80917100          lds R24,113
 0178 887F              andi R24,248
 017A 8031              cpi R24,16
 017C 11F0              breq L50
 017E           X17:
 017E                   .dbline 108
 017E 0027              clr R16
 0180 25C0              xjmp L31
 0182           L50:
 0182                   .dbline 110
 0182           ;                  
 0182           ;            Write8Bit(rd_device_add);//Ð´I2C´ÓÆ÷¼þµØÖ·ºÍ¶Á·½Ê½ 
 0182                   .dbline 110
 0182 81EA              ldi R24,161
 0184 80937300          sts 115,R24
 0188                   .dbline 110
 0188 84E8              ldi R24,132
 018A 80937400          sts 116,R24
 018E                   .dbline 110
 018E                   .dbline 110
 018E                   .dbline 111
 018E           ;            Wait(); 
 018E           L52:
 018E                   .dbline 111
 018E           L53:
 018E                   .dbline 111
 018E 20907400          lds R2,116
 0192 27FE              sbrs R2,7
 0194 FCCF              rjmp L52
 0196           X18:
 0196                   .dbline 111
 0196                   .dbline 111
 0196                   .dbline 112
 0196           ;            if(TestAck()!=MR_SLA_ACK)  return 0;//ACK 
 0196 80917100          lds R24,113
 019A 887F              andi R24,248
 019C 8034              cpi R24,64
 019E 11F0              breq L55
 01A0           X19:
 01A0                   .dbline 112
 01A0 0027              clr R16
 01A2 14C0              xjmp L31
 01A4           L55:
 01A4                   .dbline 114
 01A4           ;                   
 01A4           ;            Twi();//Æô¶¯Ö÷I2C¶Á·½Ê½ 
 01A4 84E8              ldi R24,132
 01A6 80937400          sts 116,R24
 01AA                   .dbline 115
 01AA           ;            Wait(); 
 01AA           L57:
 01AA                   .dbline 115
 01AA           L58:
 01AA                   .dbline 115
 01AA 20907400          lds R2,116
 01AE 27FE              sbrs R2,7
 01B0 FCCF              rjmp L57
 01B2           X20:
 01B2                   .dbline 115
 01B2                   .dbline 115
 01B2                   .dbline 116
 01B2           ;            if(TestAck()!=MR_DATA_NOACK) return 0;//ACK         
 01B2 80917100          lds R24,113
 01B6 887F              andi R24,248
 01B8 8835              cpi R24,88
 01BA 11F0              breq L60
 01BC           X21:
 01BC                   .dbline 116
 01BC 0027              clr R16
 01BE 06C0              xjmp L31
 01C0           L60:
 01C0                   .dbline 117
 01C0           ;            temp=TWDR;//¶ÁÈ¡I2C½ÓÊÕÊý¾Ý 
 01C0 A0907300          lds R10,115
 01C4                   .dbline 118
 01C4           ;        Stop();//I2CÍ£Ö¹ 
 01C4 84E9              ldi R24,148
 01C6 80937400          sts 116,R24
 01CA                   .dbline 119
 01CA           ;            return temp; 
 01CA 0A2D              mov R16,R10
 01CC                   .dbline -2
 01CC           L31:
 01CC                   .dbline 0 ; func end
 01CC A990              ld R10,y+
 01CE 0895              ret
 01D0                   .dbsym r temp 10 c
 01D0                   .dbsym r RomAddress 16 c
 01D0                   .dbend
 01D0                   .dbfunc e delay_nus _delay_nus fV
 01D0           ;              i -> R20,R21
 01D0           ;              n -> R16,R17
                        .even
 01D0           _delay_nus::
 01D0 4A93              st -y,R20
 01D2 5A93              st -y,R21
 01D4                   .dbline -1
 01D4                   .dbline 130
 01D4           ;  } 
 01D4           ; 
 01D4           ; /*-----------------------------------------------------------------------
 01D4           ; ÑÓÊ±º¯Êý
 01D4           ; ±àÒëÆ÷£ºICC-AVR v6.31A 
 01D4           ; ÈÕÆÚ: 2009-7-30 
 01D4           ; Ä¿±êÐ¾Æ¬ : M128
 01D4           ; Ê±ÖÓ:7.3728Mhz
 01D4           ; -----------------------------------------------------------------------*/
 01D4           ; void delay_nus(unsigned int n)       //N usÑÓÊ±º¯Êý
 01D4           ; {
 01D4                   .dbline 131
 01D4           ;    unsigned int i=0;
 01D4                   .dbline 132
 01D4           ;    for (i=0;i<n;i++)
 01D4 4427              clr R20
 01D6 5527              clr R21
 01D8 03C0              xjmp L66
 01DA           L63:
 01DA                   .dbline 133
 01DA           ;    asm("nop");
 01DA 0000              nop
 01DC           L64:
 01DC                   .dbline 132
 01DC 4F5F              subi R20,255  ; offset = 1
 01DE 5F4F              sbci R21,255
 01E0           L66:
 01E0                   .dbline 132
 01E0 4017              cp R20,R16
 01E2 5107              cpc R21,R17
 01E4 D0F3              brlo L63
 01E6           X22:
 01E6                   .dbline -2
 01E6           L62:
 01E6                   .dbline 0 ; func end
 01E6 5991              ld R21,y+
 01E8 4991              ld R20,y+
 01EA 0895              ret
 01EC                   .dbsym r i 20 i
 01EC                   .dbsym r n 16 i
 01EC                   .dbend
 01EC                   .dbfunc e delay_nms _delay_nms fV
 01EC           ;              i -> R20,R21
 01EC           ;              j -> R22,R23
 01EC           ;              n -> R16,R17
                        .even
 01EC           _delay_nms::
 01EC 0E940000          xcall push_xgsetF000
 01F0                   .dbline -1
 01F0                   .dbline 137
 01F0           ; }
 01F0           ;   
 01F0           ; void delay_nms(unsigned int n)       //N msÑÓÊ±º¯Êý
 01F0           ; {
 01F0                   .dbline 138
 01F0           ;    unsigned int i=0,j=0;
 01F0                   .dbline 138
 01F0 6627              clr R22
 01F2 7727              clr R23
 01F4                   .dbline 139
 01F4           ;    for (i=0;i<n;i++)
 01F4 4427              clr R20
 01F6 5527              clr R21
 01F8 0BC0              xjmp L71
 01FA           L68:
 01FA                   .dbline 140
 01FA           ;    for (j=0;j<1140;j++);
 01FA 6627              clr R22
 01FC 7727              clr R23
 01FE 02C0              xjmp L75
 0200           L72:
 0200                   .dbline 140
 0200           L73:
 0200                   .dbline 140
 0200 6F5F              subi R22,255  ; offset = 1
 0202 7F4F              sbci R23,255
 0204           L75:
 0204                   .dbline 140
 0204 6437              cpi R22,116
 0206 E4E0              ldi R30,4
 0208 7E07              cpc R23,R30
 020A D0F3              brlo L72
 020C           X23:
 020C           L69:
 020C                   .dbline 139
 020C 4F5F              subi R20,255  ; offset = 1
 020E 5F4F              sbci R21,255
 0210           L71:
 0210                   .dbline 139
 0210 4017              cp R20,R16
 0212 5107              cpc R21,R17
 0214 90F3              brlo L68
 0216           X24:
 0216                   .dbline -2
 0216           L67:
 0216                   .dbline 0 ; func end
 0216 0C940000          xjmp pop_xgsetF000
 021A                   .dbsym r i 20 i
 021A                   .dbsym r j 22 i
 021A                   .dbsym r n 16 i
 021A                   .dbend
 021A           ; }
 021A           ;   
