navi_select.lst

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

LST
528
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:58:40 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\navi_select.c           #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\navi_select.lst    #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\navi_select.r01     #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\navi_select.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_select.c           #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    navi_select(17)
   \   0000                    RSEG    APC_NAVI_UI_SELECT(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    APD_NAVI_SELECT(0)
   \   0000                    RSEG    AP_NAVI_UI_SELECT(0)
   \   0000                    EXTERN  CurListoffset
   \   0000                    PUBLIC  Deal_play_Navi
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FOpen
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FSeek
   \   0000                    EXTERN  FS_GetCurDir
   \   0000                    EXTERN  FS_SetCurDir
   \   0000                    PUBLIC  Navi_ext
   \   0000                    PUBLIC  Navi_read_S
   \   0000                    EXTERN  Navifp
   \   0000                    EXTERN  UI_play_Navi
   \   0000                    EXTERN  VMWrite
   \   0000                    EXTERN  buffer
   \   0000                    PUBLIC  check_file_type
   \   0000                    PUBLIC  ext
   \   0000                    EXTERN  g_music_vars
   \   0000                    PUBLIC  location
   \   0000                    PUBLIC  msz_temp
   \   0000                    PUBLIC  navi_offset
   \   0000                    PUBLIC  temp_browser_vars
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?SL_DIV_L03
   \   0000                    EXTERN  ?SL_MOD_L03
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    EXTERN  ?STRCMP_L11
   \   0000                    RSEG    APC_NAVI_UI_SELECT
   \   0000            Navi_read_S:
      1          #include "ap_music.h"                       
      2          const char msz_temp[12]="NAVI    0   " ;  
      3          extern handle Navifp; 
      4          extern long  CurListoffset; //每个表的偏移量
      5          extern long  CurTotalNum;
      6          extern long  Navfileoffset;    //当前表的已经读的偏移量
      7          extern BOOL Navi_read(long fileoffset);
      8          #pragma memory=dataseg(APD_NAVI)
      9          extern char navi_buff[NAVI_GROUP*30];
     10          extern char buffer[512];                   
     11            
     12          #pragma memory=default
     13          #pragma memory=dataseg(APD_NAVI_SELECT)
     14           BYTE ext[4];  
     15           file_location_t  location;   
     16           browser_vars_t temp_browser_vars;
     17           long navi_offset;      
     18          #pragma memory=default
     19          #pragma memory=constseg(AP_NAVI_UI_SELECT)
     20           const char Navi_ext[][4] = {"MP3", "WMA", "ASF", "WMV", "OGG","APE","WAV","ACT","JPG","BMP","GIF","TXT","AMV"};  
     21          #pragma memory=default
     22          
     23          #pragma codeseg(APC_NAVI_UI_SELECT)
     24          void Navi_read_S(long fileoffset)
     25          { 
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  F5                PUSH    AF
     26              char IO27Bak = input8(0x27);
   \   0003  DB27              IN      A,(39)
   \   0005  210000            LD      HL,0
   \   0008  39                ADD     HL,SP
   \   0009  77                LD      (HL),A
     27              output8(0x27,0);            //关DSP中断
   \   000A  AF                XOR     A
   \   000B  D327              OUT     (39),A
     28              FS_FSeek(fileoffset/512,FS_SEEK_FFROMSTART,Navifp);
   \   000D  2A0000            LD      HL,(Navifp)
   \   0010  E5                PUSH    HL
   \   0011  6F                LD      L,A
   \   0012  E5                PUSH    HL
   \   0013  65                LD      H,L
   \   0014  E5                PUSH    HL
   \   0015  2602              LD      H,2
   \   0017  E5                PUSH    HL
   \   0018  EB                EX      DE,HL
   \   0019  CD0000            CALL    LWRD ?SL_DIV_L03
   \   001C  EB                EX      DE,HL
   \   001D  CD0000            CALL    LWRD FS_FSeek
   \   0020  E1                POP     HL
   \   0021  E1                POP     HL
     29              FS_FRead(buffer,1,Navifp);
   \   0022  2A0000            LD      HL,(Navifp)
   \   0025  E5                PUSH    HL
   \   0026  0E01              LD      C,1
   \   0028  110000            LD      DE,buffer
   \   002B  CD0000            CALL    LWRD FS_FRead
   \   002E  E1                POP     HL
     30              output8(0x27,IO27Bak);
   \   002F  210000            LD      HL,0
   \   0032  39                ADD     HL,SP
   \   0033  7E                LD      A,(HL)
   \   0034  D327              OUT     (39),A
     31          }
   \   0036  E1                POP     HL
   \   0037  E1                POP     HL
   \   0038  E1                POP     HL
   \   0039  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   003C            check_file_type:
     32          
     33          int check_file_type(long active)
     34          {
   \   003C  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   003F  FEFF              DEFW    65534
     35              char i;     
     36              char IO27Bak = input8(0x27); 
   \   0041  DB27              IN      A,(39)
   \   0043  DD77FF            LD      (IX-1),A
     37              navi_offset = (active-1)*sizeof(file_info_t)+CurListoffset+sizeof(Location_Path_t);
   \   0046  21FFFF            LD      HL,65535
   \   0049  E5                PUSH    HL
   \   004A  E5                PUSH    HL
   \   004B  DD6E02            LD      L,(IX+2)
   \   004E  DD6603            LD      H,(IX+3)
   \   0051  C1                POP     BC
   \   0052  09                ADD     HL,BC
   \   0053  EB                EX      DE,HL
   \   0054  DD6E04            LD      L,(IX+4)
   \   0057  DD6605            LD      H,(IX+5)
   \   005A  C1                POP     BC
   \   005B  ED4A              ADC     HL,BC
   \   005D  4D                LD      C,L
   \   005E  44                LD      B,H
   \   005F  EB                EX      DE,HL
   \   0060  3E06              LD      A,6
   \   0062  CD0000            CALL    LWRD ?L_LSH_L03
   \   0065  C5                PUSH    BC
   \   0066  E5                PUSH    HL
   \   0067  2A0000            LD      HL,(CurListoffset)
   \   006A  C1                POP     BC
   \   006B  09                ADD     HL,BC
   \   006C  EB                EX      DE,HL
   \   006D  2A0200            LD      HL,(CurListoffset+2)
   \   0070  C1                POP     BC
   \   0071  ED4A              ADC     HL,BC
   \   0073  E5                PUSH    HL
   \   0074  D5                PUSH    DE
   \   0075  214000            LD      HL,64
   \   0078  C1                POP     BC
   \   0079  09                ADD     HL,BC
   \   007A  EB                EX      DE,HL
   \   007B  210000            LD      HL,0
   \   007E  C1                POP     BC
   \   007F  ED4A              ADC     HL,BC
   \   0081  4D                LD      C,L
   \   0082  44                LD      B,H
   \   0083  EB                EX      DE,HL
   \   0084  225C00            LD      (navi_offset),HL
   \   0087  ED435E00          LD      (navi_offset+2),BC
     38              memset(&location,0,sizeof(file_location_t));
   \   008B  012B00            LD      BC,43
   \   008E  110400            LD      DE,location
   \   0091  68                LD      L,B
   \   0092  CD0000            CALL    LWRD ?MEMSET_L11
     39              Navi_read_S(CurListoffset);
   \   0095  ED4B0200          LD      BC,(CurListoffset+2)
   \   0099  ED5B0000          LD      DE,(CurListoffset)
   \   009D  3E00              LD      A,BYTE3 Navi_read_S
   \   009F  210000            LD      HL,LWRD Navi_read_S
   \   00A2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     40              memcpy(&location,buffer+CurListoffset%512+1,sizeof(file_location_t)-2); 
   \   00A5  012900            LD      BC,41
   \   00A8  48                LD      C,B
   \   00A9  C5                PUSH    BC
   \   00AA  0602              LD      B,2
   \   00AC  C5                PUSH    BC
   \   00AD  ED4B0200          LD      BC,(CurListoffset+2)
   \   00B1  2A0000            LD      HL,(CurListoffset)
   \   00B4  CD0000            CALL    LWRD ?SL_MOD_L03
   \   00B7  EB                EX      DE,HL
   \   00B8  210100            LD      HL,buffer+1
   \   00BB  19                ADD     HL,DE
   \   00BC  110400            LD      DE,location
   \   00BF  012900            LD      BC,41
   \   00C2  EDB0              LDIR
     41              Navi_read_S(navi_offset);
   \   00C4  ED4B5E00          LD      BC,(navi_offset+2)
   \   00C8  ED5B5C00          LD      DE,(navi_offset)
   \   00CC  3E00              LD      A,BYTE3 Navi_read_S
   \   00CE  210000            LD      HL,LWRD Navi_read_S
   \   00D1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     42              memcpy(location.filename,buffer+navi_offset%512+1,11);
   \   00D4  010B00            LD      BC,11
   \   00D7  48                LD      C,B
   \   00D8  C5                PUSH    BC
   \   00D9  0602              LD      B,2
   \   00DB  C5                PUSH    BC
   \   00DC  ED4B5E00          LD      BC,(navi_offset+2)
   \   00E0  2A5C00            LD      HL,(navi_offset)
   \   00E3  CD0000            CALL    LWRD ?SL_MOD_L03
   \   00E6  EB                EX      DE,HL
   \   00E7  210100            LD      HL,buffer+1
   \   00EA  19                ADD     HL,DE
   \   00EB  111E00            LD      DE,location+26
   \   00EE  010B00            LD      BC,11
   \   00F1  EDB0              LDIR
     43              memcpy(ext, buffer+navi_offset%512+1+8, 3);
   \   00F3  C5                PUSH    BC
   \   00F4  0602              LD      B,2
   \   00F6  C5                PUSH    BC
   \   00F7  ED4B5E00          LD      BC,(navi_offset+2)
   \   00FB  2A5C00            LD      HL,(navi_offset)
   \   00FE  CD0000            CALL    LWRD ?SL_MOD_L03
   \   0101  EB                EX      DE,HL
   \   0102  210900            LD      HL,buffer+9
   \   0105  19                ADD     HL,DE
   \   0106  110000            LD      DE,ext
   \   0109  010300            LD      BC,3
   \   010C  EDB0              LDIR
     44              ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
   \   010E  3A0000            LD      A,(ext)
   \   0111  FE61              CP      97
   \   0113  3810              JR      C,?0005
   \   0115  3A0000            LD      A,(ext)
   \   0118  47                LD      B,A
   \   0119  3E7A              LD      A,122
   \   011B  B8                CP      B
   \   011C  3807              JR      C,?0005
   \   011E  3A0000            LD      A,(ext)
   \   0121  C6E0              ADD     A,224
   \   0123  1803              JR      ?0006
   \   0125            ?0005:
   \   0125  3A0000            LD      A,(ext)
   \   0128            ?0006:
   \   0128  320000            LD      (ext),A
     45              ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
   \   012B  3A0100            LD      A,(ext+1)
   \   012E  FE61              CP      97
   \   0130  3810              JR      C,?0011
   \   0132  3A0100            LD      A,(ext+1)
   \   0135  47                LD      B,A

⌨️ 快捷键说明

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