KeyScan.lst
上传用户:xhjmsc
上传日期:2019-09-13
资源大小:389k
文件大小:23k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. ##############################################################################
  2. #                                                                            #
  3. # IAR MSP430 C/EC++ Compiler V2.10A/W32                23/Apr/2007  18:04:11 #
  4. # Copyright 1996-2003 IAR Systems. All rights reserved.                      #
  5. #                                                                            #
  6. #    __rt_version  =  1                                                      #
  7. #    __double_size =  32                                                     #
  8. #    __reg_r4      =  free                                                   #
  9. #    __reg_r5      =  free                                                   #
  10. #    __pic         =  no                                                     #
  11. #    Source file   =  E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
  12. #                     filesKeyScan.c                                        #
  13. #    Command line  =  -I "C:Program FilesIAR SystemsEmbedded Workbench    #
  14. #                     3.2430INC" -I "C:Program FilesIAR                 #
  15. #                     SystemsEmbedded Workbench 3.2430INCCLIB" -lCN     #
  16. #                     E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
  17. #                     DebugList -lA E:projectFaxProgramVson_Bryan_Fax_ #
  18. #                     Conexant_070423DebugList -o                         #
  19. #                     E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
  20. #                     DebugObj -z2 --no_cse --no_unroll --no_inline        #
  21. #                     --no_code_motion --debug -e                            #
  22. #                     E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
  23. #                     filesKeyScan.c                                        #
  24. #    List file     =  E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
  25. #                     DebugListKeyScan.lst                                 #
  26. #    Object file   =  E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
  27. #                     DebugObjKeyScan.r43                                  #
  28. #                                                                            #
  29. #                                                                            #
  30. ##############################################################################
  31. E:projectFaxProgramVson_Bryan_Fax_Conexant_070423filesKeyScan.c
  32.       1          /***************************************
  33.       2          Program:     Key Scan
  34.       3          Author:      Bryan Cai
  35.       4          Date:        2007.04.11
  36.       5          ***************************************/
  37.       6          
  38.       7          #include "includeH.h"
  39.                                     In segment DATA16_AN, at 0x20
  40.       unsigned char const volatile __data P1IN
  41.                         P1IN:
  42.       000000                        DS8 1
  43.       8          
  44.                                     In segment CODE, align 2, keep-with-next
  45.       9          void KeyScan(void)
  46.                         KeyScan:
  47.      10          {
  48.       000000   0A12                 PUSH.W  R10
  49.      11               unsigned char ucKeyValue=0xff;
  50.       000002   7A43                 MOV.B   #0xff, R10
  51.      12               //unsigned char ucBlockCnt=0;
  52.      13               //unsigned char ucRxIndex=0;
  53.      14               //unsigned int wPageAddress=0;
  54.      15             //Ring Number+-
  55.      16                if (((KEY_PORT_IN & bitKeyRingNumDec) != bitKeyRingNumDec) ||
  56.      17                   ((KEY_PORT_IN & bitKeyRingNumAdd) != bitKeyRingNumAdd) ||
  57.      18                   ((KEY_PORT_IN & bitKeyAutoMode) != bitKeyAutoMode) ||
  58.      19                   ((KEY_PORT_IN & bitKeyManualMode) != bitKeyManualMode) )//||
  59.       000004   D2B32000             BIT.B   #0x1, &0x20
  60.       000008   0928                 JNC     ??KeyScan_1
  61.       00000A   E2B32000             BIT.B   #0x2, &0x20
  62.       00000E   0628                 JNC     ??KeyScan_1
  63.       000010   E2B22000             BIT.B   #0x4, &0x20
  64.       000014   0328                 JNC     ??KeyScan_1
  65.       000016   F2B22000             BIT.B   #0x8, &0x20
  66.       00001A   8F2C                 JC      ??KeyScan_2
  67.      20                   //((KEY_PORT_IN & bitKeySendFaxSignal) != bitKeySendFaxSignal))
  68.      21                {
  69.      22                  //VIEWLEDPORT |= bitViewLED;
  70.      23                  if ((KEY_PORT_IN & bitKeyRingNumDec) != bitKeyRingNumDec) ucKeyValue=0;
  71.                         ??KeyScan_1:
  72.       00001C   D2B32000             BIT.B   #0x1, &0x20
  73.       000020   012C                 JC      ??KeyScan_3
  74.       000022   4A43                 MOV.B   #0x0, R10
  75.      24                  if ((KEY_PORT_IN & bitKeyRingNumAdd) != bitKeyRingNumAdd) ucKeyValue=1;
  76.                         ??KeyScan_3:
  77.       000024   E2B32000             BIT.B   #0x2, &0x20
  78.       000028   012C                 JC      ??KeyScan_4
  79.       00002A   5A43                 MOV.B   #0x1, R10
  80.      25                  if ((KEY_PORT_IN & bitKeyAutoMode) != bitKeyAutoMode)     ucKeyValue=2;
  81.                         ??KeyScan_4:
  82.       00002C   E2B22000             BIT.B   #0x4, &0x20
  83.       000030   012C                 JC      ??KeyScan_5
  84.       000032   6A43                 MOV.B   #0x2, R10
  85.      26                  if ((KEY_PORT_IN & bitKeyManualMode) != bitKeyManualMode) ucKeyValue=3;
  86.                         ??KeyScan_5:
  87.       000034   F2B22000             BIT.B   #0x8, &0x20
  88.       000038   022C                 JC      ??KeyScan_6
  89.       00003A   7A400300             MOV.B   #0x3, R10
  90.      27                  //if ((KEY_PORT_IN & bitKeySendFaxSignal) != bitKeySendFaxSignal) ucKeyValue=4;
  91.      28                  
  92.      29                  switch (ucKeyValue)
  93.                         ??KeyScan_6:
  94.       00003E   4A83                 SUB.B   #0x0, R10
  95.       000040   0724                 JEQ     ??KeyScan_7
  96.       000042   5A83                 SUB.B   #0x1, R10
  97.       000044   1224                 JEQ     ??KeyScan_8
  98.       000046   5A83                 SUB.B   #0x1, R10
  99.       000048   1E24                 JEQ     ??KeyScan_9
  100.       00004A   5A83                 SUB.B   #0x1, R10
  101.       00004C   2D24                 JEQ     ??KeyScan_10
  102.       00004E   3C3C                 JMP     ??KeyScan_11
  103.      30                  {
  104.      31                //if ((KEY_PORT_IN & bitKeyRingNumDec) != bitKeyRingNumDec)
  105.      32                 case 0:
  106.      33                 {
  107.      34                   delay1us(0x0530);//300000);
  108.                         ??KeyScan_7:
  109.       000050   3C403005             MOV.W   #0x530, R12
  110.       000054   B012....             CALL    #delay1us
  111.      35                   if ((KEY_PORT_IN & bitKeyRingNumDec) != bitKeyRingNumDec)
  112.       000058   D2B32000             BIT.B   #0x1, &0x20
  113.       00005C   352C                 JC      ??KeyScan_11
  114.      36                   {
  115.      37                    if (gucViewRingNum>0)--gucViewRingNum;//RingNumMax--
  116.       00005E   D293....             CMP.B   #0x1, &aucViewData + 0x6
  117.       000062   3228                 JNC     ??KeyScan_11
  118.       000064   F253....             ADD.B   #0xff, &aucViewData + 0x6
  119.       000068   2F3C                 JMP     ??KeyScan_11
  120.      38                    //ViewCommunicationTX(0x01);
  121.      39                    //ViewCommunicationRX();
  122.      40                   }
  123.      41                    break;
  124.      42                 }//case 0
  125.      43                
  126.      44                  
  127.      45                //if ((KEY_PORT_IN & bitKeyRingNumAdd) != bitKeyRingNumAdd)
  128.      46                  case 1:
  129.      47                  {
  130.      48                   delay1us(0x0530);
  131.                         ??KeyScan_8:
  132.       00006A   3C403005             MOV.W   #0x530, R12
  133.       00006E   B012....             CALL    #delay1us
  134.      49                   if ((KEY_PORT_IN & bitKeyRingNumAdd) != bitKeyRingNumAdd)
  135.       000072   E2B32000             BIT.B   #0x2, &0x20
  136.       000076   282C                 JC      ??KeyScan_11
  137.      50                    { 
  138.      51                      if (gucViewRingNum<9)++gucViewRingNum;//RingNumMax++
  139.       000078   F2900900....         CMP.B   #0x9, &aucViewData + 0x6
  140.       00007E   242C                 JC      ??KeyScan_11
  141.       000080   D253....             ADD.B   #0x1, &aucViewData + 0x6
  142.       000084   213C                 JMP     ??KeyScan_11
  143.      52                      //ViewCommunicationTX(0x01);
  144.      53                      //ViewCommunicationRX();
  145.      54                    }
  146.      55                    break;
  147.      56                   }//case 1
  148.      57                
  149.      58                //ModeSel Key scan: auto or manual send fax signal
  150.      59                //if ((KEY_PORT_IN & bitKeyAutoMode) != bitKeyAutoMode)//bitKeyAutoMode==0
  151.      60                  case 2:
  152.      61                  {
  153.      62                     delay1us(0x0530);
  154.                         ??KeyScan_9:
  155.       000086   3C403005             MOV.W   #0x530, R12
  156.       00008A   B012....             CALL    #delay1us
  157.      63                     if ((KEY_PORT_IN & bitKeyAutoMode) != bitKeyAutoMode)
  158.       00008E   E2B22000             BIT.B   #0x4, &0x20
  159.       000092   1A2C                 JC      ??KeyScan_11
  160.      64                      {
  161.      65                       gucViewStaticStatus |= bitViewAutoMode;//Auto Mode
  162.       000094   F2D01000....         BIS.B   #0x10, &aucViewData + 0x7
  163.      66                       gucViewStaticStatus &= ~bitViewManualMode;//
  164.       00009A   F2C02000....         BIC.B   #0x20, &aucViewData + 0x7
  165.      67                       gucViewStaticStatus |= bitViewRingNum;
  166.       0000A0   F2D04000....         BIS.B   #0x40, &aucViewData + 0x7
  167.       0000A6   103C                 JMP     ??KeyScan_11
  168.      68                      
  169.      69                       //ViewCommunicationTX(0x01);
  170.      70                       //ViewCommunicationRX();
  171.      71                      }
  172.      72                      break;
  173.      73                  }//case 2
  174.      74                //if ((KEY_PORT_IN & bitKeyManualMode) != bitKeyManualMode)
  175.      75                  case 3:
  176.      76                  {
  177.      77                     
  178.      78                     delay1us(0x0530);
  179.                         ??KeyScan_10:
  180.       0000A8   3C403005             MOV.W   #0x530, R12
  181.       0000AC   B012....             CALL    #delay1us
  182.      79                     if ((KEY_PORT_IN & bitKeyManualMode) != bitKeyManualMode)
  183.       0000B0   F2B22000             BIT.B   #0x8, &0x20
  184.       0000B4   092C                 JC      ??KeyScan_11
  185.      80                      {
  186.      81                       gucViewStaticStatus |= bitViewManualMode;//Manual Mode
  187.       0000B6   F2D02000....         BIS.B   #0x20, &aucViewData + 0x7
  188.      82                       gucViewStaticStatus &= ~bitViewAutoMode; //off atuo
  189.       0000BC   F2C01000....         BIC.B   #0x10, &aucViewData + 0x7
  190.      83                       gucViewStaticStatus &= ~bitViewRingNum;//off ring num
  191.       0000C2   F2C04000....         BIC.B   #0x40, &aucViewData + 0x7
  192.      84                      
  193.      85                       //ViewCommunicationTX(0x01);
  194.      86                       //ViewCommunicationRX();
  195.      87                      }
  196.      88                      break;
  197.      89                  }//case 3
  198.      90                  
  199.      91                  }//switch
  200.      92                //Driver LCD screen
  201.      93                if (((KEY_PORT_IN & bitKeyRingNumDec) != bitKeyRingNumDec) ||
  202.      94                   ((KEY_PORT_IN & bitKeyRingNumAdd) != bitKeyRingNumAdd) ||
  203.      95                   ((KEY_PORT_IN & bitKeyAutoMode) != bitKeyAutoMode) ||
  204.      96                   ((KEY_PORT_IN & bitKeyManualMode) != bitKeyManualMode) )
  205.                         ??KeyScan_11:
  206.       0000C8   D2B32000             BIT.B   #0x1, &0x20
  207.       0000CC   0928                 JNC     ??KeyScan_12
  208.       0000CE   E2B32000             BIT.B   #0x2, &0x20
  209.       0000D2   0628                 JNC     ??KeyScan_12
  210.       0000D4   E2B22000             BIT.B   #0x4, &0x20
  211.       0000D8   0328                 JNC     ??KeyScan_12
  212.       0000DA   F2B22000             BIT.B   #0x8, &0x20
  213.       0000DE   052C                 JC      ??KeyScan_13
  214.      97                   //|| ((KEY_PORT_IN & bitKeySendFaxSignal) != bitKeySendFaxSignal))
  215.      98                 {
  216.      99                    ViewCommunicationTX(0x01);
  217.                         ??KeyScan_12:
  218.       0000E0   5C43                 MOV.B   #0x1, R12
  219.       0000E2   B012....             CALL    #ViewCommunicationTX
  220.     100                    
  221.     101                    ReadAndWriteViewDataMemory();
  222.       0000E6   B012....             CALL    #ReadAndWriteViewDataMemory
  223.     102                  }   
  224.     103                
  225.     104                if (((KEY_PORT_IN & bitKeyRingNumDec) != bitKeyRingNumDec) ||
  226.     105                   ((KEY_PORT_IN & bitKeyRingNumAdd) != bitKeyRingNumAdd) ||
  227.     106                   ((KEY_PORT_IN & bitKeyAutoMode) != bitKeyAutoMode) ||
  228.     107                   ((KEY_PORT_IN & bitKeyManualMode) != bitKeyManualMode))
  229.                         ??KeyScan_13:
  230.       0000EA   D2B32000             BIT.B   #0x1, &0x20
  231.       0000EE   0928                 JNC     ??KeyScan_0
  232.       0000F0   E2B32000             BIT.B   #0x2, &0x20
  233.       0000F4   0628                 JNC     ??KeyScan_0
  234.       0000F6   E2B22000             BIT.B   #0x4, &0x20
  235.       0000FA   0328                 JNC     ??KeyScan_0
  236.       0000FC   F2B22000             BIT.B   #0x8, &0x20
  237.       000100   1C2C                 JC      ??KeyScan_2
  238.     108                   //|| ((KEY_PORT_IN & bitKeySendFaxSignal) != bitKeySendFaxSignal))
  239.     109                { 
  240.     110                while (1)
  241.     111                {
  242.     112                 if (((KEY_PORT_IN & bitKeyRingNumDec) == bitKeyRingNumDec) &&
  243.     113                   ((KEY_PORT_IN & bitKeyRingNumAdd) == bitKeyRingNumAdd) &&
  244.     114                   ((KEY_PORT_IN & bitKeyAutoMode) == bitKeyAutoMode) &&
  245.     115                   ((KEY_PORT_IN & bitKeyManualMode) == bitKeyManualMode)) //&&
  246.                         ??KeyScan_0:
  247.       000102   D2B32000             BIT.B   #0x1, &0x20
  248.       000106   FD2B                 JNC     ??KeyScan_0
  249.       000108   E2B32000             BIT.B   #0x2, &0x20
  250.       00010C   FA2B                 JNC     ??KeyScan_0
  251.       00010E   E2B22000             BIT.B   #0x4, &0x20
  252.       000112   F72B                 JNC     ??KeyScan_0
  253.       000114   F2B22000             BIT.B   #0x8, &0x20
  254.       000118   F42B                 JNC     ??KeyScan_0
  255.     116                   //((KEY_PORT_IN & bitKeySendFaxSignal) == bitKeySendFaxSignal))
  256.     117                   {
  257.     118                     delay1us(0x7530);
  258.       00011A   3C403075             MOV.W   #0x7530, R12
  259.       00011E   B012....             CALL    #delay1us
  260.     119                     if (((KEY_PORT_IN & bitKeyRingNumDec) == bitKeyRingNumDec) &&
  261.     120                         ((KEY_PORT_IN & bitKeyRingNumAdd) == bitKeyRingNumAdd) &&
  262.     121                         ((KEY_PORT_IN & bitKeyAutoMode) == bitKeyAutoMode) &&
  263.     122                         ((KEY_PORT_IN & bitKeyManualMode) == bitKeyManualMode))// &&
  264.       000122   D2B32000             BIT.B   #0x1, &0x20
  265.       000126   ED2B                 JNC     ??KeyScan_0
  266.       000128   E2B32000             BIT.B   #0x2, &0x20
  267.       00012C   EA2B                 JNC     ??KeyScan_0
  268.       00012E   E2B22000             BIT.B   #0x4, &0x20
  269.       000132   E72B                 JNC     ??KeyScan_0
  270.       000134   F2B22000             BIT.B   #0x8, &0x20
  271.       000138   E42B                 JNC     ??KeyScan_0
  272.     123                         //((KEY_PORT_IN & bitKeySendFaxSignal) == bitKeySendFaxSignal))
  273.     124                         break;
  274.     125                   } 
  275.     126                }
  276.     127                //VIEWLEDPORT &= ~bitViewLED;
  277.     128                }
  278.     129                
  279.     130                }
  280.     131          }
  281.                         ??KeyScan_2:
  282.       00013A   3A41                 POP.W   R10
  283.       00013C   3041                 RET
  284.     132          
  285.                                     In segment CODE, align 2, keep-with-next
  286.     133          void ReadAndWriteViewDataMemory(void)
  287.                         ReadAndWriteViewDataMemory:
  288.     134          {
  289.       000000   0A12                 PUSH.W  R10
  290.       000002   0B12                 PUSH.W  R11
  291.       000004   0812                 PUSH.W  R8
  292.     135                    unsigned char ucBlockCnt=0;
  293.       000006   4843                 MOV.B   #0x0, R8
  294.     136                   unsigned char ucRxIndex=0;
  295.       000008   4A43                 MOV.B   #0x0, R10
  296.     137                   unsigned int wPageAddress=0;
  297.       00000A   0B43                 MOV.W   #0x0, R11
  298.     138                   //ReadLast16BytesFromFlashMemoryArea(cstViewDataAreaStartBlockNum,cstViewDataAreaOverBlockNum);
  299.     139                    ReadLastViewData();
  300.       00000C   7E402900             MOV.B   #0x29, R14
  301.       000010   7C402800             MOV.B   #0x28, R12
  302.       000014   B012....             CALL    #ReadLast16BytesFromFlashMemoryArea
  303.     140                    if ((gwGeneralPageAddress>>6) > cstViewDataAreaOverBlockNum)
  304.       000018   1C42....             MOV.W   &gwGeneralPageAddress, R12
  305.       00001C   B012....             CALL    #?ShiftRight16u_6
  306.       000020   3C902A00             CMP.W   #0x2a, R12
  307.       000024   1C28                 JNC     ??ReadAndWriteViewDataMemory_2
  308.     141                   {
  309.     142                    for (ucBlockCnt=0;ucBlockCnt<2;ucBlockCnt++)
  310.       000026   4843                 MOV.B   #0x0, R8
  311.                         ??ReadAndWriteViewDataMemory_0:
  312.       000028   6893                 CMP.B   #0x2, R8
  313.       00002A   142C                 JC      ??ReadAndWriteViewDataMemory_3
  314.     143                      {
  315.     144                         wPageAddress=(cstViewDataAreaStartBlockNum+ucBlockCnt)<<6;
  316.       00002C   4C48                 MOV.B   R8, R12
  317.       00002E   3CF0FF00             AND.W   #0xff, R12
  318.       000032   3C502800             ADD.W   #0x28, R12
  319.       000036   B012....             CALL    #?ShiftLeft16_6
  320.       00003A   0B4C                 MOV.W   R12, R11
  321.     145                         ROW_ADDRESS_LOW=wPageAddress & 0XFF;
  322.       00003C   C24B....             MOV.B   R11, &ROW_ADDRESS_LOW
  323.     146                         ROW_ADDRESS_HIGH=(wPageAddress>>8) & 0XFF; 
  324.       000040   0E4B                 MOV.W   R11, R14
  325.       000042   8E10                 SWPB    R14
  326.       000044   3EF0FF00             AND.W   #0xff, R14
  327.       000048   C24E....             MOV.B   R14, &ROW_ADDRESS_HIGH
  328.     147                         ERASE_ONE_BLOCK();
  329.       00004C   B012....             CALL    #ERASE_ONE_BLOCK
  330.     148                      }
  331.       000050   5853                 ADD.B   #0x1, R8
  332.       000052   EA3F                 JMP     ??ReadAndWriteViewDataMemory_0
  333.     149                      gwGeneralPageAddress=cstViewDataAreaStartPage;
  334.                         ??ReadAndWriteViewDataMemory_3:
  335.       000054   B240000A....         MOV.W   #0xa00, &gwGeneralPageAddress
  336.     150                      gwColumnAddress=0;
  337.       00005A   8243....             MOV.W   #0x0, &gwColumnAddress
  338.     151                    }
  339.     152                     ucRxIndex=0; //write view data
  340.                         ??ReadAndWriteViewDataMemory_2:
  341.       00005E   4A43                 MOV.B   #0x0, R10
  342.     153                     aucUartRxBuf[ucRxIndex++]=gucViewRingNum;
  343.       000060   4E4A                 MOV.B   R10, R14
  344.       000062   3EF0FF00             AND.W   #0xff, R14
  345.       000066   DE42........         MOV.B   &aucViewData + 0x6, aucUartRxBuf(R14)
  346.       00006C   5A53                 ADD.B   #0x1, R10
  347.     154                     aucUartRxBuf[ucRxIndex++]=gucViewStaticStatus;
  348.       00006E   4E4A                 MOV.B   R10, R14
  349.       000070   3EF0FF00             AND.W   #0xff, R14
  350.       000074   DE42........         MOV.B   &aucViewData + 0x7, aucUartRxBuf(R14)
  351.       00007A   5A53                 ADD.B   #0x1, R10
  352.     155                     aucUartRxBuf[ucRxIndex++]=gucViewDynamicStatus;
  353.       00007C   4E4A                 MOV.B   R10, R14
  354.       00007E   3EF0FF00             AND.W   #0xff, R14
  355.       000082   DE42........         MOV.B   &aucViewData + 0x8, aucUartRxBuf(R14)
  356.       000088   5A53                 ADD.B   #0x1, R10
  357.     156                     aucUartRxBuf[ucRxIndex++]=gucViewDceNewFaxNum;//gucIcon2;
  358.       00008A   4E4A                 MOV.B   R10, R14
  359.       00008C   3EF0FF00             AND.W   #0xff, R14
  360.       000090   DE42........         MOV.B   &aucViewData + 0x9, aucUartRxBuf(R14)
  361.       000096   5A53                 ADD.B   #0x1, R10
  362.     157                     for (ucBlockCnt=0; ucBlockCnt<12; ucBlockCnt++)
  363.       000098   4843                 MOV.B   #0x0, R8
  364.                         ??ReadAndWriteViewDataMemory_1:
  365.       00009A   78900C00             CMP.B   #0xc, R8
  366.       00009E   092C                 JC      ??ReadAndWriteViewDataMemory_4
  367.     158                      {
  368.     159                       aucUartRxBuf[ucRxIndex++]=0x55;
  369.       0000A0   4E4A                 MOV.B   R10, R14
  370.       0000A2   3EF0FF00             AND.W   #0xff, R14
  371.       0000A6   FE405500....         MOV.B   #0x55, aucUartRxBuf(R14)
  372.       0000AC   5A53                 ADD.B   #0x1, R10
  373.     160                      }
  374.       0000AE   5853                 ADD.B   #0x1, R8
  375.       0000B0   F43F                 JMP     ??ReadAndWriteViewDataMemory_1
  376.     161                     Write16Bytes2FlashMemoryArea();
  377.                         ??ReadAndWriteViewDataMemory_4:
  378.       0000B2   B012....             CALL    #Write16Bytes2FlashMemoryArea
  379.     162          } 
  380.       0000B6   3841                 POP.W   R8
  381.       0000B8   3B41                 POP.W   R11
  382.       0000BA   3A41                 POP.W   R10
  383.       0000BC   3041                 RET
  384.    Maximum stack usage in bytes:
  385.      Function                       CSTACK
  386.      --------                       ------
  387.      KeyScan                            4
  388.        -> delay1us                      4
  389.        -> delay1us                      4
  390.        -> delay1us                      4
  391.        -> delay1us                      4
  392.        -> ViewCommunicationTX           4
  393.        -> ReadAndWriteViewDataMemory
  394.                                         4
  395.        -> delay1us                      4
  396.      ReadAndWriteViewDataMemory         8
  397.        -> ReadLast16BytesFromFlashMemoryArea
  398.                                         8
  399.        -> ERASE_ONE_BLOCK               8
  400.        -> Write16Bytes2FlashMemoryArea
  401.                                         8
  402.    Segment part sizes:
  403.      Function/Label             Bytes
  404.      --------------             -----
  405.      P1IN                          1
  406.      KeyScan                     318
  407.      ReadAndWriteViewDataMemory  190
  408.  
  409.  508 bytes in segment CODE
  410.    1 byte  in segment DATA16_AN
  411.  
  412.  508 bytes of CODE memory
  413.    0 bytes of DATA memory (+ 1 byte shared)
  414. Errors: none
  415. Warnings: none