⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui_clock.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   04D2  DD46DE            LD      B,(IX-34)
   \   04D5  DD70D7            LD      (IX-41),B
   \   04D8            ?0099:
    288                              break;
   \   04D8  1837              JR      ?0083
   \   04DA            ?0100:
    289                          case 4:    //hour
    290                              if(time.hour > 0) time.hour--;
   \   04DA  AF                XOR     A
   \   04DB  DDB6D8            OR      (IX-40)
   \   04DE  2805              JR      Z,?0102
   \   04E0            ?0101:
   \   04E0  DD35D8            DEC     (IX-40)
   \   04E3  182C              JR      ?0083
   \   04E5            ?0102:
    291                              else time.hour = 23;
   \   04E5  DD36D817          LD      (IX-40),23
   \   04E9            ?0103:
    292                              break;
   \   04E9  1826              JR      ?0083
   \   04EB            ?0104:
    293                          case 5:    //min
    294                              if(time.minute > 0) time.minute--;
   \   04EB  DD7ED9            LD      A,(IX-39)
   \   04EE  B7                OR      A
   \   04EF  2805              JR      Z,?0106
   \   04F1            ?0105:
   \   04F1  DD35D9            DEC     (IX-39)
   \   04F4  181B              JR      ?0083
   \   04F6            ?0106:
    295                              else time.minute = 59;
   \   04F6  DD36D93B          LD      (IX-39),59
   \   04FA            ?0107:
    296                              break;
   \   04FA  1815              JR      ?0083
   \   04FC            ?0108:
    297                          case 6:    //sec
    298                              if(time.second> 0) time.second--;
   \   04FC  DD7EDA            LD      A,(IX-38)
   \   04FF  B7                OR      A
   \   0500  2805              JR      Z,?0110
   \   0502            ?0109:
   \   0502  DD35DA            DEC     (IX-38)
   \   0505  180A              JR      ?0083
   \   0507            ?0110:
    299                              else time.second = 59;
   \   0507  DD36DA3B          LD      (IX-38),59
   \   050B            ?0111:
    300                              break;
   \   050B  1804              JR      ?0083
   \   050D            ?0112:
    301                          default:    //no in setting
    302                              bSettime=0;
   \   050D  DD36E000          LD      (IX-32),0
    303                              break;
   \   0511            ?0083:
   \   0511            ?0115:
    304                          }    //set_what
    305          
    306                      //clear the key buffer
    307                      do
    308                      {
    309                          key = ap_get_message();
   \   0511  CD0000            CALL    LWRD ap_get_message
   \   0514  DD77DD            LD      (IX-35),A
    310                          if(key == (AP_KEY_PREV | AP_KEY_UP))
   \   0517  FE25              CP      37
   \   0519  2006              JR      NZ,?0117
   \   051B            ?0116:
    311                          {
    312                              adjusting = FALSE;
   \   051B  DD36E100          LD      (IX-31),0
    313                              break;
   \   051F  1806              JR      ?0113
   \   0521            ?0117:
    314                          }
    315                      }
    316                      while(key != 0);
   \   0521  AF                XOR     A
   \   0522  DDB6DD            OR      (IX-35)
   \   0525  20EA              JR      NZ,?0083
   \   0527            ?0113:
    317          
    318                      need_draw = TRUE;
   \   0527  DD36DF01          LD      (IX-33),1
    319          
    320                      break;
   \   052B  1835              JR      ?0126
   \   052D            ?0118:
    321          
    322          
    323                  case AP_KEY_NEXT | AP_KEY_UP:
    324                  case AP_KEY_PREV| AP_KEY_UP:
    325                      adjusting = FALSE;
   \   052D  DD36E100          LD      (IX-31),0
    326          
    327                      break;
   \   0531  182F              JR      ?0126
   \   0533            ?0119:
    328                  case AP_MSG_WAIT_TIMEOUT:        //子菜单界面在8秒后返回系统功能菜单, add by ccm 2004/07/15
    329                  //case AP_KEY_PLAY | AP_KEY_UP:
    330                      bSettime=0;
   \   0533  DD36E000          LD      (IX-32),0
   \   0537            ?0120:
    331                  case AP_KEY_MODE | AP_KEY_UP:
    332                      //return 0;        //退出
    333          
    334                      key = 0;
   \   0537  DD36DD00          LD      (IX-35),0
    335                      set_ok = TRUE;
   \   053B  DD36E401          LD      (IX-28),1
    336          
    337                      break;
   \   053F  1821              JR      ?0126
   \   0541            ?0121:
    338                  default:
    339                      key = ap_handle_hotkey(key);
   \   0541  DD5EDD            LD      E,(IX-35)
   \   0544  CD0000            CALL    LWRD ap_handle_hotkey
   \   0547  DD77DD            LD      (IX-35),A
    340                      if(key == RESULT_REDRAW)
   \   054A  FE32              CP      50
   \   054C  200A              JR      NZ,?0123
   \   054E            ?0122:
    341                      {
    342                          need_draw_backgroud = TRUE;
   \   054E  DD36E501          LD      (IX-27),1
    343                          need_draw = TRUE;
   \   0552  DD36DF01          LD      (IX-33),1
   \   0556  180A              JR      ?0126
   \   0558            ?0123:
    344                      }
    345                      else if(key != 0)
   \   0558  AF                XOR     A
   \   0559  DDB6DD            OR      (IX-35)
   \   055C  2804              JR      Z,?0126
   \   055E            ?0125:
    346                      {
    347                          set_ok = TRUE;
   \   055E  DD36E401          LD      (IX-28),1
   \   0562            ?0126:
   \   0562            ?0124:
   \   0562            ?0033:
    348                      }
    349                  } //switch(key)
    350          
    351                  //set ok?
    352                  if(set_ok) break;
   \   0562  AF                XOR     A
   \   0563  DDB6E4            OR      (IX-28)
   \   0566  CA6D00            JP      Z,?0005
   \   0569            ?0127:
   \   0569  1803              JR      ?0004
   \   056B            ?0128:
   \   056B  C36D00            JP      LWRD ?0005
   \   056E            ?0004:
    353              }//while(1)
    354              if(bSettime==0)
   \   056E  AF                XOR     A
   \   056F  DDB6E0            OR      (IX-32)
   \   0572  2008              JR      NZ,?0130
   \   0574            ?0129:
    355              {
    356                  return key;
   \   0574  DD6EDD            LD      L,(IX-35)
   \   0577  2600              LD      H,0
    357              }
   \   0579  C32106            JP      LWRD ?0139
   \   057C            ?0130:
    358              else if ( key != 0 )    //不是按mode退出的都不保存设置,如USB线插上等
   \   057C  AF                XOR     A
   \   057D  DDB6DD            OR      (IX-35)
   \   0580  2808              JR      Z,?0132
   \   0582            ?0131:
    359              {
    360                  return key;
   \   0582  DD6EDD            LD      L,(IX-35)
   \   0585  2600              LD      H,0
    361              }
   \   0587  C32106            JP      LWRD ?0139
   \   058A            ?0132:
    362          
    363          //    SetAsciiFont(FONT_TYPE_DEFAULT);
    364          
    365              //re-check the date/time format
    366              days =  month_days[date.month - 1];
   \   058A  DD4ED6            LD      C,(IX-42)
   \   058D  0600              LD      B,0
   \   058F  210300            LD      HL,month_days-1
   \   0592  09                ADD     HL,BC
   \   0593  46                LD      B,(HL)
   \   0594  DD70DE            LD      (IX-34),B
    367              if((date.year % 4 == 0) && (date.month == 2)) days++;    //润年
   \   0597  DD6ED4            LD      L,(IX-44)
   \   059A  DD66D5            LD      H,(IX-43)
   \   059D  7D                LD      A,L
   \   059E  E603              AND     3
   \   05A0  6F                LD      L,A
   \   05A1  2600              LD      H,0
   \   05A3  7D                LD      A,L
   \   05A4  B4                OR      H
   \   05A5  200A              JR      NZ,?0134
   \   05A7  DD46D6            LD      B,(IX-42)
   \   05AA  05                DEC     B
   \   05AB  05                DEC     B
   \   05AC  2003              JR      NZ,?0134
   \   05AE            ?0136:
   \   05AE            ?0135:
   \   05AE            ?0133:
   \   05AE  DD34DE            INC     (IX-34)
   \   05B1            ?0134:
    368              if(date.day > days) date.day =  days;
   \   05B1  DD7EDE            LD      A,(IX-34)
   \   05B4  DDBED7            CP      (IX-41)
   \   05B7  3006              JR      NC,?0138
   \   05B9            ?0137:
   \   05B9  DD46DE            LD      B,(IX-34)
   \   05BC  DD70D7            LD      (IX-41),B
   \   05BF            ?0138:
    369          
    370              //save date & time
    371              result = TM_SetDate(&date, 0);
   \   05BF  0E00              LD      C,0
   \   05C1  210000            LD      HL,0
   \   05C4  39                ADD     HL,SP
   \   05C5  5D                LD      E,L
   \   05C6  54                LD      D,H
   \   05C7  CD0000            CALL    LWRD TM_SetDate
   \   05CA  DD77E2            LD      (IX-30),A
    372              //DUMP("set date", 0);
    373              ASSERT(result);
    374              result = TM_SetTime(&time);
   \   05CD  210400            LD      HL,4
   \   05D0  39                ADD     HL,SP
   \   05D1  5D                LD      E,L
   \   05D2  54                LD      D,H
   \   05D3  CD0000            CALL    LWRD TM_SetTime
   \   05D6  DD77E2            LD      (IX-30),A
    375              //DUMP("set time", 0);
    376              ASSERT(result);
    377          
    378              //将systemtime 和 gwtime写回到VRAM中
    379              VMRead(&kval, VM_KERNEL, sizeof(kval_t));
   \   05D9  210B00            LD      HL,11
   \   05DC  E5                PUSH    HL
   \   05DD  010000            LD      BC,0
   \   05E0  212200            LD      HL,34
   \   05E3  39                ADD     HL,SP
   \   05E4  5D                LD      E,L
   \   05E5  54                LD      D,H
   \   05E6  CD0000            CALL    LWRD VMRead
   \   05E9  E1                POP     HL
    380              kval.systemtime = systemtime;   //全局变量
   \   05EA  ED4B0200          LD      BC,(systemtime+2)
   \   05EE  2A0000            LD      HL,(systemtime)
   \   05F1  DD75F6            LD      (IX-10),L
   \   05F4  DD74F7            LD      (IX-9),H
   \   05F7  DD71F8            LD      (IX-8),C
   \   05FA  DD70F9            LD      (IX-7),B
    381              kval.gwtime = gwtime;           //全局变量
   \   05FD  ED4B0200          LD      BC,(gwtime+2)
   \   0601  2A0000            LD      HL,(gwtime)
   \   0604  DD75FA            LD      (IX-6),L
   \   0607  DD74FB            LD      (IX-5),H
   \   060A  DD71FC            LD      (IX-4),C
   \   060D  DD70FD            LD      (IX-3),B
    382              VMWrite(&kval, VM_KERNEL);
   \   0610  010000            LD      BC,0
   \   0613  212000            LD      HL,32
   \   0616  39                ADD     HL,SP
   \   0617  5D                LD      E,L
   \   0618  54                LD      D,H
   \   0619  CD0000            CALL    LWRD VMWrite
    383          
    384              return key;
   \   061C  DD6EDD            LD      L,(IX-35)
   \   061F  2600              LD      H,0
    385          }
   \   0621            ?0139:
   \   0621  DDF9              LD      SP,IX
   \   0623  DDE1              POP     IX
   \   0625  D1                POP     DE
   \   0626  C1                POP     BC
   \   0627  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    386          
   \   0000                    RSEG    CONST
   \   0000            clock_region:
   \   0000  22                DEFB    '"'
   \   0001  28                DEFB    '('
   \   0002  3C                DEFB    '<'
   \   0003  10                DEFB    16
   \   0004            month_days:
   \   0004  1F                DEFB    31
   \   0005  1C                DEFB    28
   \   0006  1F                DEFB    31
   \   0007  1E                DEFB    30
   \   0008  1F                DEFB    31
   \   0009  1E                DEFB    30
   \   000A  1F                DEFB    31
   \   000B  1F                DEFB    31
   \   000C  1E                DEFB    30
   \   000D  1F                DEFB    31
   \   000E  1E                DEFB    30
   \   000F  1F                DEFB    31
   \   0010            ?0002:
   \   0010  D707              DEFW    2007
   \   0012  01                DEFB    1
   \   0013  01                DEFB    1
   \   0014            ?0003:
   \   0014  0C                DEFB    12
   \   0015  00                DEFB    0
   \   0016  00                DEFB    0
   \   0017                    END

Errors: none
Warnings: none
Code size: 1578
Constant size: 23
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -