navi.lst

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

LST
963
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:58:31 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\navi.c                  #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\navi.lst           #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\navi.r01            #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\navi.s01           #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K    #
#                        -w -gA -z9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_music\List\ -q -t8          #
#                        -AD:\case_i_d913f\ap\ap_music\List\                 #
#                        -ND:\case_i_d913f\ap\ap_music\List\ -X              #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        D:\CASE_I_D913F\AP\AP_MUSIC\navi.c                  #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    navi(17)
   \   0000                    RSEG    APC_NAVI(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    APD_NAVI(0)
   \   0000                    PUBLIC  CurListoffset
   \   0000                    PUBLIC  CurTotalNum
   \   0000                    PUBLIC  Navfileoffset
   \   0000                    EXTERN  Navi_read_head
   \   0000                    EXTERN  ScrollFlag
   \   0000                    PUBLIC  UI_play_Navi
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    PUBLIC  buffer
   \   0000                    EXTERN  check_file_type
   \   0000                    PUBLIC  navi_buff
   \   0000                    EXTERN  ui_Navi_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?UC_MOD_L01
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?L_MUL_L03
   \   0000                    EXTERN  ?SL_DIV_L03
   \   0000                    EXTERN  ?SL_MOD_L03
   \   0000                    EXTERN  ?SL_CMP_L03
   \   0000                    EXTERN  ?L_INC_L03
   \   0000                    EXTERN  ?L_DEC_L03
   \   0000                    EXTERN  ?L_ADDASG_L03
   \   0000                    EXTERN  ?L_SUBASG_L03
   \   0000                    EXTERN  ?L_LSHASG_L03
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    RSEG    APC_NAVI
   \   0000            UI_play_Navi:
      1          #include "ap_music.h"
      2          //extern BOOL Navi_read_data(long fileoffset,char direct);
      3          //extern BOOL GetFilePath(file_location_t  *location);
      4          //extern BOOL Navi_read(long fileoffset);
      5          extern BOOL Navi_read_head(long fileoffset,char direct,WORD *DelNum);
      6          extern BOOL GetFilePath(file_location_t  *location);
      7          extern void ui_Navi_list(BYTE active,BYTE old_active,long file_active,char direct,bool scroll_flag);
      8          extern int check_file_type(long active);
      9          extern  char     ScrollFlag;   //滚动标志位  
     10          
     11          long  CurListoffset; //每个表的偏移量
     12          long  Navfileoffset;    //当前表的已经读的偏移量
     13          long  CurTotalNum;
     14          
     15          #pragma memory=dataseg(APD_NAVI)
     16          //char msz_temp[12];
     17          char navi_buff[NAVI_GROUP*30];
     18          char buffer[512];
     19          #pragma memory=default
     20          
     21          #pragma codeseg(APC_NAVI)
     22          
     23          
     24          int UI_play_Navi()
     25          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  EEFF              DEFW    -18
   \   0005  FDE5              PUSH    IY
     26              
     27              BOOL  need_read=FALSE;
     28              BOOL  need_draw=TRUE;
     29              BYTE  active_list = 0;
     30              BYTE  old_list =0;
     31              char  direct=0;
     32              char  key;
     33              long  g_active_list ;
     34              WORD  DelNum=0 ;
   \   0007  AF                XOR     A
   \   0008  DD77F6            LD      (IX-10),A
   \   000B  DD77F7            LD      (IX-9),A
     35              char  head;
     36              long  save_list=0;
     37              char  save_active=0;
     38              
     39              
     40              int result=0;
     41          
     42              if(!Navi_read_head(0,0,&DelNum))
   \   000E  DD77FD            LD      (IX-3),A
   \   0011  DD36FB01          LD      (IX-5),1
   \   0015  DD77F8            LD      (IX-8),A
   \   0018  DD77FC            LD      (IX-4),A
   \   001B  DD77F2            LD      (IX-14),A
   \   001E  DD77F3            LD      (IX-13),A
   \   0021  DD77F4            LD      (IX-12),A
   \   0024  DD77F5            LD      (IX-11),A
   \   0027  DD77FF            LD      (IX-1),A
   \   002A  FD210000          LD      IY,0
   \   002E  210A00            LD      HL,10
   \   0031  39                ADD     HL,SP
   \   0032  E5                PUSH    HL
   \   0033  4F                LD      C,A
   \   0034  C5                PUSH    BC
   \   0035  41                LD      B,C
   \   0036  50                LD      D,B
   \   0037  59                LD      E,C
   \   0038  CDCD04            CALL    LWRD ?0067
   \   003B  F1                POP     AF
   \   003C  F1                POP     AF
   \   003D  2C                INC     L
   \   003E  2D                DEC     L
   \   003F  2006              JR      NZ,?0003
   \   0041            ?0002:
     43              {
     44                  return RESULT_IGNORE;
   \   0041  213400            LD      HL,52
     45              }
   \   0044  C3BD04            JP      LWRD ?0064
   \   0047            ?0003:
     46              g_active_list =0;
     47              head =1;
   \   0047  AF                XOR     A
   \   0048  DD77EE            LD      (IX-18),A
   \   004B  DD77EF            LD      (IX-17),A
   \   004E  DD77F0            LD      (IX-16),A
   \   0051  DD77F1            LD      (IX-15),A
   \   0054  DD36F901          LD      (IX-7),1
   \   0058            ?0005:
     48              while(1)
     49              {
     50                  if(need_read)
   \   0058  AF                XOR     A
   \   0059  DDB6FD            OR      (IX-3)
   \   005C  2812              JR      Z,?0008
   \   005E            ?0007:
     51                  {
     52                      Navi_read_head(Navfileoffset,head,&DelNum);
   \   005E  210A00            LD      HL,10
   \   0061  39                ADD     HL,SP
   \   0062  E5                PUSH    HL
   \   0063  DD6EF9            LD      L,(IX-7)
   \   0066  E5                PUSH    HL
   \   0067  CDC504            CALL    LWRD ?0068
   \   006A  F1                POP     AF
   \   006B  F1                POP     AF
     53                      need_read=FALSE;
   \   006C  DD36FD00          LD      (IX-3),0
   \   0070            ?0008:
     54                  }
     55                  if(need_draw)
   \   0070  AF                XOR     A
   \   0071  DDB6FB            OR      (IX-5)
   \   0074  2824              JR      Z,?0010
   \   0076            ?0009:
     56                  {
     57                      
     58                      ui_Navi_list(active_list,active_list,g_active_list, direct,0);
   \   0076  0E00              LD      C,0
   \   0078  C5                PUSH    BC
   \   0079  DD6EFC            LD      L,(IX-4)
   \   007C  E5                PUSH    HL
   \   007D  DD6EF0            LD      L,(IX-16)
   \   0080  DD66F1            LD      H,(IX-15)
   \   0083  E5                PUSH    HL
   \   0084  DD6EEE            LD      L,(IX-18)
   \   0087  DD66EF            LD      H,(IX-17)
   \   008A  E5                PUSH    HL
   \   008B  DD4EF8            LD      C,(IX-8)
   \   008E  59                LD      E,C
   \   008F  CDDB04            CALL    LWRD ?0069
   \   0092  E1                POP     HL
   \   0093  E1                POP     HL
   \   0094  E1                POP     HL
   \   0095  E1                POP     HL
     59                      need_draw = FALSE;  
   \   0096  DD36FB00          LD      (IX-5),0
   \   009A            ?0010:
     60                  }
     61                  key = ap_get_message(); 
   \   009A  CD0000            CALL    LWRD ap_get_message
     62                  old_list = active_list; 
   \   009D  DD46F8            LD      B,(IX-8)
   \   00A0  DD70FA            LD      (IX-6),B
     63                  switch( key)  
   \   00A3  5F                LD      E,A
   \   00A4  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   00A7  0800              DEFW    8
   \   00A9  05                DEFB    5
   \   00AA  06                DEFB    6
   \   00AB  1E                DEFB    30
   \   00AC  21                DEFB    33
   \   00AD  30                DEFB    48
   \   00AE  45                DEFB    69
   \   00AF  46                DEFB    70
   \   00B0  90                DEFB    144
   \   00B1  7804              DEFW    ?0054
   \   00B3  B604              DEFW    ?0061
   \   00B5  C300              DEFW    ?0012
   \   00B7  6A01              DEFW    ?0021
   \   00B9  3803              DEFW    ?0043
   \   00BB  7204              DEFW    ?0053
   \   00BD  7204              DEFW    ?0053
   \   00BF  C300              DEFW    ?0012
   \   00C1  6A01              DEFW    ?0021
   \   00C3            ?0012:
     64                  {    
     65                   case AP_KEY_NEXT:
     66                   case AP_KEY_NEXT | AP_KEY_HOLD:                    
     67                    if(g_active_list< CurTotalNum-1)
   \   00C3  21FFFF            LD      HL,65535
   \   00C6  E5                PUSH    HL
   \   00C7  E5                PUSH    HL
   \   00C8  2A0800            LD      HL,(CurTotalNum)
   \   00CB  C1                POP     BC
   \   00CC  09                ADD     HL,BC
   \   00CD  EB                EX      DE,HL
   \   00CE  2A0A00            LD      HL,(CurTotalNum+2)
   \   00D1  C1                POP     BC
   \   00D2  ED4A              ADC     HL,BC
   \   00D4  E5                PUSH    HL
   \   00D5  D5                PUSH    DE
   \   00D6  DD4EF0            LD      C,(IX-16)
   \   00D9  DD46F1            LD      B,(IX-15)

⌨️ 快捷键说明

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