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

📄 ui_menu.lst

📁 action mp3 devo,eki e,eikf, kdife l
💻 LST
📖 第 1 页 / 共 2 页
字号:
     85                                          //show icon
     86                                          for(i=0; i<menu->total; i++)
     87                                          {
     88                                                  ResShowPic(menu->pic_inactive[i], menu_pos[i], 0);
     89                                          }
     90                                          //show active, 2 frame movie effect!!
     91                                          ResShowPic(menu->pic_active[menu->active], menu_pos[menu->active]-2, 0);
     92                                      
     93                                  }
     94                                  else    //>5, to show arrow
     95                                  {
     96                                          //active item on middle
     97                                          if(menu->active < 5)        /* iiaii >*/
     98                                          {
     99                                                  //show icon
    100                                                  for(i=0; i<5; i++)
    101                                                  {
    102                                                          ResShowPic(menu->pic_inactive[i], menu_pos[i], 0);
    103                                                  }
    104                                                  //show active, 2 frame movie effect!!
    105                                                  ResShowPic(menu->pic_active[menu->active], menu_pos[menu->active]-2, 0);    
    106                                                  //show right arrow
    107                                                  ResShowPic(CARROWR, POSITION_MENUR, 0);
    108                                                  //clear left arrow
    109                                                  ResShowPic(CARROWN, POSITION_MENUL, 0);                
    110                                          } /* iiaii >*/
    111                                          //active item on right
    112                                          else        /* < iiiia >*/
    113                                          {
    114                                                  for(i=menu->active-4; i<= menu->active; i++)
    115                                                  {
    116                                                          ResShowPic(menu->pic_inactive[i], menu_pos[i-(menu->active-4)], 0);
    117                                                  }
    118                                                          
    119                                                  //show active, 2 frame movie effect!!
    120                                                  ResShowPic(menu->pic_active[menu->active], menu_pos[4]-2, 0);    
    121          
    122                                                  //show arrow
    123                                                  if(menu->active == menu->total-1)
    124                                                  {
    125                                                          //clear right arrow
    126                                                          ResShowPic(CARROWN, POSITION_MENUR, 0);
    127                                                  }
    128                                                  else
    129                                                  {
    130                                                          //show right arrow
    131                                                          ResShowPic(CARROWR, POSITION_MENUR, 0);
    132                                                  }
    133                                                  //show left arrow
    134                                                  ResShowPic(CARROWL, POSITION_MENUL, 0);            
    135                                          }  /* < iiiia >*/
    136                                  }// >5
    137          #endif
    138                                  //show text in middle of screen
    139                                  ResShowMultiString(menu->string[menu->active], menu->string_id, 255, 16);
   \   0145  0E10              LD      C,16
   \   0147  C5                PUSH    BC
   \   0148  0EFF              LD      C,255
   \   014A  C5                PUSH    BC
   \   014B  FD4E0A            LD      C,(IY+10)
   \   014E  FD6E02            LD      L,(IY+2)
   \   0151  FD6603            LD      H,(IY+3)
   \   0154  29                ADD     HL,HL
   \   0155  FD5E08            LD      E,(IY+8)
   \   0158  FD5609            LD      D,(IY+9)
   \   015B  19                ADD     HL,DE
   \   015C  5E                LD      E,(HL)
   \   015D  23                INC     HL
   \   015E  56                LD      D,(HL)
   \   015F  3E00              LD      A,BYTE3 ResShowMultiString
   \   0161  210000            LD      HL,LWRD ResShowMultiString
   \   0164  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0167  F1                POP     AF
   \   0168  F1                POP     AF
    140          
    141                                  //check auto_update
    142                                  if(!ui_auto_update) UpdateScreen(NULL);
   \   0169  3A0000            LD      A,(ui_auto_update)
   \   016C  B7                OR      A
   \   016D  2005              JR      NZ,?0022
   \   016F            ?0021:
   \   016F  5F                LD      E,A
   \   0170  57                LD      D,A
   \   0171  CD0000            CALL    LWRD UpdateScreen
   \   0174            ?0022:
    143          
    144                                  need_draw = FALSE;
   \   0174  DD36F500          LD      (IX-11),0
   \   0178            ?0024:
    145                                  while (ap_get_message() != 0);
   \   0178  CD0000            CALL    LWRD ap_get_message
   \   017B  B7                OR      A
   \   017C  20FA              JR      NZ,?0024
   \   017E            ?0025:
    146                          }//need draw
   \   017E            ?0023:
   \   017E            ?0008:
    147                          
    148                          //handle message
    149                          key = ap_get_message();
   \   017E  CD0000            CALL    LWRD ap_get_message
    150                          switch( key)
   \   0181  5F                LD      E,A
   \   0182  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   0185  0700              DEFW    7
   \   0187  05                DEFB    5
   \   0188  06                DEFB    6
   \   0189  1E                DEFB    30
   \   018A  21                DEFB    33
   \   018B  30                DEFB    48
   \   018C  45                DEFB    69
   \   018D  46                DEFB    70
   \   018E  F701              DEFW    ?0038
   \   0190  9E01              DEFW    ?0027
   \   0192  C001              DEFW    ?0030
   \   0194  E701              DEFW    ?0034
   \   0196  F201              DEFW    ?0058
   \   0198  EC01              DEFW    ?0035
   \   019A  9E01              DEFW    ?0027
   \   019C  C001              DEFW    ?0030
   \   019E            ?0027:
    151                          {
    152                          case AP_KEY_NEXT:
    153                          case AP_KEY_NEXT | AP_KEY_HOLD:
    154                                  if(menu->active < menu->total-1)
   \   019E  FD4E00            LD      C,(IY+0)
   \   01A1  FD4601            LD      B,(IY+1)
   \   01A4  0B                DEC     BC
   \   01A5  FD6E02            LD      L,(IY+2)
   \   01A8  FD6603            LD      H,(IY+3)
   \   01AB  F680              OR      128
   \   01AD  ED42              SBC     HL,BC
   \   01AF  E2B301            JP      PO,?0053
   \   01B2  AC                XOR     H
   \   01B3            ?0053:
   \   01B3  F21A02            JP      P,?0043
   \   01B6            ?0028:
    155                                  {
    156                                          menu->active++;
   \   01B6  FD3402            INC     (IY+2)
   \   01B9  2026              JR      NZ,?0059
   \   01BB  FD3403            INC     (IY+3)
    157                                          value_changed = TRUE;
    158                                          need_draw = TRUE;
   \   01BE  1821              JR      ?0059
   \   01C0            ?0029:
    159                                  }
    160                                  break;
   \   01C0            ?0030:
    161                          case AP_KEY_PREV:
    162                          case AP_KEY_PREV | AP_KEY_HOLD:                 
    163                                  if(menu->active > 0)
   \   01C0  FD4E02            LD      C,(IY+2)
   \   01C3  FD4603            LD      B,(IY+3)
   \   01C6  210000            LD      HL,0
   \   01C9  F680              OR      128
   \   01CB  ED42              SBC     HL,BC
   \   01CD  E2D101            JP      PO,?0055
   \   01D0  AC                XOR     H
   \   01D1            ?0055:
   \   01D1  F21A02            JP      P,?0043
   \   01D4            ?0031:
    164                                  {
    165                                          menu->active--;
   \   01D4  FD6E02            LD      L,(IY+2)
   \   01D7  FD6603            LD      H,(IY+3)
   \   01DA  2B                DEC     HL
   \   01DB  FD7502            LD      (IY+2),L
   \   01DE  FD7403            LD      (IY+3),H
    166                                          value_changed = TRUE;
    167                                          need_draw = TRUE;
   \   01E1            ?0059:
   \   01E1  DD36FE01          LD      (IX-2),1
   \   01E5  181A              JR      ?0060
   \   01E7            ?0032:
    168                                  }
    169                                  break;
   \   01E7            ?0033:
    170                          case AP_KEY_PLAY | AP_KEY_UP:   //取消退出
    171                                  return RESULT_IGNORE;
    172                                  
    173                          case AP_KEY_MODE | AP_KEY_UP:   //确认退出
   \   01E7            ?0034:
    174                                  return 0;
   \   01E7  210000            LD      HL,0
    175                                  //break;
    176                          case AP_MSG_WAIT_TIMEOUT:
   \   01EA  1824              JR      ?0048
   \   01EC            ?0035:
    177                                  //if(ui_auto_select)  return 0;
    178          
    179                                  //this is recommoned by johnlee, 2004/03/02
    180                                  if(ui_auto_select)  return RESULT_IGNORE;
   \   01EC  3A0000            LD      A,(ui_auto_select)
   \   01EF  B7                OR      A
   \   01F0  2828              JR      Z,?0043
   \   01F2            ?0036:
   \   01F2            ?0058:
   \   01F2  213400            LD      HL,52
    181                                  
    182                                  break;                  
   \   01F5  1819              JR      ?0048
   \   01F7            ?0037:
   \   01F7            ?0038:
    183                          default:
    184                                  key = ap_handle_hotkey(key);
   \   01F7  CD0000            CALL    LWRD ap_handle_hotkey
   \   01FA  DD77F4            LD      (IX-12),A
    185                                  if(key == RESULT_REDRAW) need_draw = TRUE;
   \   01FD  FE32              CP      50
   \   01FF  2006              JR      NZ,?0040
   \   0201            ?0039:
   \   0201            ?0060:
   \   0201  DD36F501          LD      (IX-11),1
   \   0205  1813              JR      ?0043
   \   0207            ?0040:
    186                                  else if(key != 0) return key;
   \   0207  AF                XOR     A
   \   0208  DDB6F4            OR      (IX-12)
   \   020B  280D              JR      Z,?0043
   \   020D            ?0042:
   \   020D  6F                LD      L,A
   \   020E  2600              LD      H,0
    187                          }
   \   0210            ?0048:
   \   0210  DDF9              LD      SP,IX
   \   0212  DDE1              POP     IX
   \   0214  FDE1              POP     IY
   \   0216  C1                POP     BC
   \   0217  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   021A            ?0043:
   \   021A            ?0041:
   \   021A            ?0026:
    188                          ASSERT( menu->active < menu->total);
    189          
    190                          //handle callback
    191                          if(callback != NULL && value_changed)
   \   021A  DD7E0A            LD      A,(IX+10)
   \   021D  DDB60B            OR      (IX+11)
   \   0220  DDB60C            OR      (IX+12)
   \   0223  CA4500            JP      Z,?0003
   \   0226  AF                XOR     A
   \   0227  DDB6FE            OR      (IX-2)
   \   022A  CA4500            JP      Z,?0003
   \   022D            ?0047:
   \   022D            ?0046:
   \   022D            ?0044:
    192                          {
    193                                  callback(menu->active);
   \   022D  FD5E02            LD      E,(IY+2)
   \   0230  FD5603            LD      D,(IY+3)
   \   0233  DD7E0C            LD      A,(IX+12)
   \   0236  DD6E0A            LD      L,(IX+10)
   \   0239  DD660B            LD      H,(IX+11)
   \   023C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    194                                  value_changed = FALSE;
   \   023F  DD36FE00          LD      (IX-2),0
   \   0243            ?0045:
    195                          }
    196                  
    197                  }//while (1)
    198                  //return 0;
    199                  
    200          }
   \   0243  C34500            JP      LWRD ?0003
   \   0246            ?0061:
   \   0246  19                ADD     HL,DE
   \   0247  5E                LD      E,(HL)
   \   0248  23                INC     HL
   \   0249  56                LD      D,(HL)
   \   024A            ?0062:
   \   024A  3E00              LD      A,BYTE3 ResShowPic
   \   024C  210000            LD      HL,LWRD ResShowPic
   \   024F  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
    201          
   \   0000                    RSEG    CONST
   \   0000            menu_pos:
   \   0000  13                DEFB    19
   \   0001  26                DEFB    '&'
   \   0002  39                DEFB    '9'
   \   0003  4C                DEFB    'L'
   \   0004  5F                DEFB    '_'
   \   0005                    END

Errors: none
Warnings: none
Code size: 594
Constant size: 5
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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