ui_licensinf.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,103 行 · 第 1/4 页

LST
1,103
字号
   \   00BE  CE00              DEFW    ?0018
   \   00C0  E300              DEFW    ?0019
   \   00C2  E300              DEFW    ?0019
   \   00C4  E300              DEFW    ?0019
   \   00C6  8200              DEFW    ?0087
   \   00C8  CE00              DEFW    ?0018
   \   00CA  8200              DEFW    ?0087
   \   00CC  CE00              DEFW    ?0018
   \   00CE            ?0017:
    113                  {
    114                  case AP_KEY_NEXT:
    115                  case AP_KEY_NEXT | AP_KEY_HOLD:
    116                  case AP_KEY_VOLADD:
    117                   case AP_KEY_VOLADD | AP_KEY_HOLD:
    118                           itemcnt = NextItem(&licensinfbuf.drminf, itemcnt, string_id);
    119                          break;
   \   00CE            ?0018:
    120          
    121                  case AP_KEY_PREV:
    122                  case AP_KEY_PREV | AP_KEY_HOLD:
    123                  case AP_KEY_VOLSUB:
    124                  case AP_KEY_VOLSUB | AP_KEY_HOLD:       
    125                           itemcnt = PrevItem(&licensinfbuf.drminf, itemcnt, string_id);                    
   \   00CE  FDE5              PUSH    IY
   \   00D0  DD4EE2            LD      C,(IX-30)
   \   00D3  210800            LD      HL,8
   \   00D6  39                ADD     HL,SP
   \   00D7  110100            LD      DE,1
   \   00DA  19                ADD     HL,DE
   \   00DB  EB                EX      DE,HL
   \   00DC  3E00              LD      A,BYTE3 PrevItem
   \   00DE  215101            LD      HL,LWRD PrevItem
   \   00E1  18B2              JR      ?0086
    126                          break;
   \   00E3            ?0019:
    127                  
    128                  case AP_KEY_MODE | AP_KEY_UP:                
    129                  case AP_MSG_WAIT_TIMEOUT://8秒退出    
    130                  case AP_KEY_PLAY | AP_KEY_UP:
    131                           return RESULT_IGNORE;
   \   00E3  213400            LD      HL,52
    132                          
    133                  default:
   \   00E6  1813              JR      ?0026
   \   00E8            ?0020:
    134                      key=ap_handle_hotkey(key);//热键处理
   \   00E8  CD0000            CALL    LWRD ap_handle_hotkey
   \   00EB  DD77E3            LD      (IX-29),A
    135                      if(key == RESULT_REDRAW)
   \   00EE  FE32              CP      50
   \   00F0  28AA              JR      Z,?0012
   \   00F2            ?0021:
    136                      {
    137                          need_draw=TRUE;
   \   00F2            ?0022:
    138                      }
    139                      else if(key!=0)
   \   00F2  AF                XOR     A
   \   00F3  DDB6E3            OR      (IX-29)
   \   00F6  28A4              JR      Z,?0012
   \   00F8            ?0024:
    140                      {
    141                          return key;                                              
   \   00F8  6F                LD      L,A
   \   00F9  2600              LD      H,0
    142                      }
   \   00FB            ?0026:
   \   00FB  FDE1              POP     IY
   \   00FD  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0100            ?0107:
   \   0100  3E00              LD      A,BYTE3 ResShowMultiString
   \   0102  210000            LD      HL,LWRD ResShowMultiString
   \   0105  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0108            ?0109:
   \   0108  DD5E02            LD      E,(IX+2)
   \   010B  DD5603            LD      D,(IX+3)
   \   010E            ?0108:
   \   010E  3E00              LD      A,BYTE3 displaycase
   \   0110  218701            LD      HL,LWRD displaycase
   \   0113  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0116            ?0025:
   \   0116            ?0023:
   \   0116            ?0016:
    143                  }//switch(key)            
    144              }//while(1)
    145          }
   \   0116            NextItem:
    146          
    147          /*
    148          output: 输出最后选中的项目的号                    
    149          */
    150          
    151          char NextItem(licensinf_t *infbuf, char cnt,  int  lan_id)
    152          {
   \   0116  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0119  FEFF              DEFW    65534
    153              bool result;
    154              char i;
    155              
    156              if (cnt>=lincensinf_maxitem_def)
   \   011B  79                LD      A,C
   \   011C  FE06              CP      6
   \   011E  3804              JR      C,?0028
   \   0120            ?0027:
    157              {
    158                  return lincensinf_maxitem_def;            
   \   0120  2E06              LD      L,6
    159              }
   \   0122  182A              JR      ?0034
   \   0124            ?0028:
    160              
    161              i = cnt + 1;
   \   0124  41                LD      B,C
   \   0125  04                INC     B
   \   0126  DD70FE            LD      (IX-2),B
   \   0129            ?0030:
    162              
    163              for (; i<=lincensinf_maxitem_def;)
   \   0129  3E06              LD      A,6
   \   012B  DDBEFE            CP      (IX-2)
   \   012E  381B              JR      C,?0029
   \   0130            ?0031:
    164              {
    165                  result = displaycase(infbuf, i, 0,lan_id);
   \   0130  DD6E0A            LD      L,(IX+10)
   \   0133  DD660B            LD      H,(IX+11)
   \   0136  E5                PUSH    HL
   \   0137  0E00              LD      C,0
   \   0139  C5                PUSH    BC
   \   013A  DD4EFE            LD      C,(IX-2)
   \   013D  CD0801            CALL    LWRD ?0109
   \   0140  F1                POP     AF
   \   0141  F1                POP     AF
    166                  if (result)            
   \   0142  2C                INC     L
   \   0143  2D                DEC     L
   \   0144  2005              JR      NZ,?0029
   \   0146            ?0032:
    167                  {
    168                      return i;
    169                  }
   \   0146            ?0033:
    170                  i++;
   \   0146  DD34FE            INC     (IX-2)
   \   0149  18DE              JR      ?0030
   \   014B            ?0029:
    171              }
    172              return i;
   \   014B  DD6EFE            LD      L,(IX-2)
    173          }
   \   014E            ?0034:
   \   014E  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0151            PrevItem:
    174          
    175          char PrevItem(licensinf_t *infbuf, char cnt,  int lan_id)
    176          {
   \   0151  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0154  FEFF              DEFW    65534
    177              bool result;
    178              char i;
    179              
    180              if (cnt == 0)
   \   0156  0C                INC     C
   \   0157  0D                DEC     C
   \   0158  2003              JR      NZ,?0036
   \   015A            ?0035:
    181              {
    182                  return 0;
   \   015A  69                LD      L,C
    183              }
   \   015B  1827              JR      ?0042
   \   015D            ?0036:
    184          
    185              i = cnt - 1;
   \   015D  79                LD      A,C
   \   015E  C6FF              ADD     A,255
   \   0160  DD77FE            LD      (IX-2),A
   \   0163            ?0038:
    186              
    187              for (; i>=0;)
   \   0163  DD7EFE            LD      A,(IX-2)
   \   0166            ?0039:
    188              {
    189                  result = displaycase(infbuf, i, 0,lan_id);
   \   0166  DD6E0A            LD      L,(IX+10)
   \   0169  DD660B            LD      H,(IX+11)
   \   016C  E5                PUSH    HL
   \   016D  0E00              LD      C,0
   \   016F  C5                PUSH    BC
   \   0170  4F                LD      C,A
   \   0171  CD0801            CALL    LWRD ?0109
   \   0174  F1                POP     AF
   \   0175  F1                POP     AF
    190                  if (result)            
   \   0176  2C                INC     L
   \   0177  2D                DEC     L
   \   0178  2805              JR      Z,?0041
   \   017A            ?0040:
    191                  {
    192                      return i;
   \   017A  DD6EFE            LD      L,(IX-2)
    193                  }
   \   017D  1805              JR      ?0042
   \   017F            ?0041:
    194                  i--;
   \   017F  DD35FE            DEC     (IX-2)
   \   0182  18DF              JR      ?0038
   \   0184            ?0037:
    195              }
    196              return i;
    197          }
   \   0184            ?0042:
   \   0184  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0187            displaycase:
    198          
    199          
    200          
    201          
    202          //=============================================
    203          //显示的项目
    204          /*
    205          如当前项目不要显示,则跳到下一个项目,
    206          如已到最后一个或最前一个,则不动
    207          
    208          input:
    209              要显示的项目
    210          
    211          output:
    212              返回是否能显示T: 已显示; 
    213                                                          F: 没有显示
    214          */
    215          
    216          //=============================================
    217          bool displaycase(licensinf_t *infbuf, char cnt, char subcnt, int lan_id)
    218          {
   \   0187  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   018A  FAFF              DEFW    65530
   \   018C  FDE5              PUSH    IY
   \   018E  DD6E02            LD      L,(IX+2)
   \   0191  DD6603            LD      H,(IX+3)
   \   0194  E5                PUSH    HL
   \   0195  FDE1              POP     IY
    219              switch(cnt)
   \   0197  59                LD      E,C
   \   0198  CD0000            CALL    LWRD ?C_S_SWITCH_L06
   \   019B  00                DEFB    0
   \   019C  0700              DEFW    7
   \   019E  1E03              DEFW    ?0068
   \   01A0  AE01              DEFW    ?0044
   \   01A2  D501              DEFW    ?0047
   \   01A4  1902              DEFW    ?0050
   \   01A6  3602              DEFW    ?0053
   \   01A8  5D02              DEFW    ?0056
   \   01AA  A102              DEFW    ?0059
   \   01AC  E402              DEFW    ?0062
   \   01AE            ?0044:
    220              {        
    221              case RemainPlayCntDisp_def:
    222                  if ((infbuf->switchflag & on_PLAYCNT_def) == 0)
   \   01AE  FDCB006E          BIT     5,(IY+0)
   \   01B2  CA1E03            JP      Z,?0068
   \   01B5            ?0045:
    223                  {
    224                      return FALSE;    
    225                  }
   \   01B5            ?0046:
    226                  else
    227                  {
    228                          char tmpbuf[5];
    229                          //显示标题
    230                          ClearScreen(NULL);
   \   01B5  CD2503            CALL    LWRD ?0106
    231                          ResShowMultiString(PLAYCNT, lan_id, 255, 90);
   \   01B8  C5                PUSH    BC
   \   01B9  0EFF              LD      C,255
   \   01BB  C5                PUSH    BC

⌨️ 快捷键说明

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