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

📄 navi_read.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:58:36 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\navi_read.c             #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\navi_read.lst      #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\navi_read.r01       #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\navi_read.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_read.c             #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    navi_read(17)
   \   0000                    RSEG    APC_NAVI_UI_READ(0)
   \   0000                    RSEG    APD_NAVI_READ(0)
   \   0000                    EXTERN  CurListoffset
   \   0000                    EXTERN  CurTotalNum
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FSeek
   \   0000                    EXTERN  Navfileoffset
   \   0000                    PUBLIC  Navi_read
   \   0000                    PUBLIC  Navi_read_head
   \   0000                    EXTERN  Navifp
   \   0000                    EXTERN  buffer
   \   0000                    PUBLIC  file_info
   \   0000                    PUBLIC  g_path_info
   \   0000                    EXTERN  navi_buff
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_LSH_L02
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?SL_DIV_L03
   \   0000                    EXTERN  ?SL_MOD_L03
   \   0000                    EXTERN  ?SL_CMP_L03
   \   0000                    EXTERN  ?L_ADDASG_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                    RSEG    APC_NAVI_UI_READ
   \   0000            Navi_read:
      1          #include "ap_music.h"
      2          extern handle Navifp; 
      3          extern long  CurListoffset; //每个表的偏移量
      4          extern long  CurTotalNum;
      5          extern long  Navfileoffset;    //当前表的已经读的偏移量
      6          extern BOOL Navi_read(long fileoffset);
      7          #pragma memory=dataseg(APD_NAVI)
      8          extern char navi_buff[NAVI_GROUP*30];
      9          extern char buffer[512];
     10          #pragma memory=default
     11          
     12          #pragma memory=dataseg(APD_NAVI_READ)
     13            
     14           file_info_t file_info; 
     15           Location_Path_t g_path_info;
     16          #pragma memory=default
     17          
     18          
     19          #pragma codeseg(APC_NAVI_UI_READ)
     20          
     21          
     22          
     23          
     24          BOOL Navi_read(long fileoffset)
     25          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  F5                PUSH    AF
     26              BOOL result=TRUE; 
     27             char IO27Bak = input8(0x27);
   \   0003  DB27              IN      A,(39)
   \   0005  210100            LD      HL,1
   \   0008  39                ADD     HL,SP
   \   0009  77                LD      (HL),A
     28              output8(0x27,0);            //关DSP中断
   \   000A  AF                XOR     A
   \   000B  D327              OUT     (39),A
     29             if(FS_FSeek(fileoffset/512,FS_SEEK_FFROMSTART,Navifp))
   \   000D  2B                DEC     HL
   \   000E  3601              LD      (HL),1
   \   0010  2A0000            LD      HL,(Navifp)
   \   0013  E5                PUSH    HL
   \   0014  6F                LD      L,A
   \   0015  E5                PUSH    HL
   \   0016  65                LD      H,L
   \   0017  E5                PUSH    HL
   \   0018  2602              LD      H,2
   \   001A  E5                PUSH    HL
   \   001B  EB                EX      DE,HL
   \   001C  CD0000            CALL    LWRD ?SL_DIV_L03
   \   001F  EB                EX      DE,HL
   \   0020  CD0000            CALL    LWRD FS_FSeek
   \   0023  E1                POP     HL
   \   0024  E1                POP     HL
   \   0025  B7                OR      A
   \   0026  2810              JR      Z,?0003
   \   0028            ?0002:
     30              {
     31                  if(!FS_FRead(buffer,1,Navifp))
   \   0028  2A0000            LD      HL,(Navifp)
   \   002B  E5                PUSH    HL
   \   002C  0E01              LD      C,1
   \   002E  110000            LD      DE,buffer
   \   0031  CD0000            CALL    LWRD FS_FRead
   \   0034  E1                POP     HL
   \   0035  B7                OR      A
   \   0036  2004              JR      NZ,?0006
   \   0038            ?0004:
     32                     result= FALSE;
   \   0038            ?0005:
     33              }
     34              else
   \   0038            ?0003:
     35                 result= FALSE;
   \   0038  6F                LD      L,A
   \   0039  67                LD      H,A
   \   003A  39                ADD     HL,SP
   \   003B  77                LD      (HL),A
   \   003C            ?0006:
     36             output8(0x27,IO27Bak);
   \   003C  210100            LD      HL,1
   \   003F  39                ADD     HL,SP
   \   0040  7E                LD      A,(HL)
   \   0041  D327              OUT     (39),A
     37             return result;
   \   0043  2B                DEC     HL
   \   0044  6E                LD      L,(HL)
     38          }
   \   0045  F1                POP     AF
   \   0046  F1                POP     AF
   \   0047  F1                POP     AF
   \   0048  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   004B            Navi_read_head:
     39          
     40          BOOL Navi_read_head(long fileoffset,char direct,WORD *DelNum)
     41          {
   \   004B  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   004E  EEFF              DEFW    65518
     42               
     43              
     44              BOOL result=TRUE; 
     45              char msz_temp[12];
     46              char count=0;
     47              long End;
     48              
     49               memset(msz_temp,0,11);
   \   0050  010B00            LD      BC,11
   \   0053  210600            LD      HL,6
   \   0056  39                ADD     HL,SP
   \   0057  EB                EX      DE,HL
   \   0058  68                LD      L,B
   \   0059  60                LD      H,B
   \   005A  CD0000            CALL    LWRD ?MEMSET_L11
     50               memset(&file_info,0,sizeof(file_info_t));
   \   005D  014000            LD      BC,64
   \   0060  110000            LD      DE,file_info
   \   0063  CD0000            CALL    LWRD ?MEMSET_L11
     51               if(fileoffset==0)
   \   0066  DD7E02            LD      A,(IX+2)
   \   0069  DDB603            OR      (IX+3)
   \   006C  DDB604            OR      (IX+4)
   \   006F  DDB605            OR      (IX+5)
   \   0072  2015              JR      NZ,?0008
   \   0074            ?0007:
     52               {
     53                  msz_temp[0]='R';
   \   0074  DD36F452          LD      (IX-12),82
     54                  msz_temp[1]='O';
   \   0078  DD36F54F          LD      (IX-11),79
     55                  msz_temp[2]='O';
   \   007C  DD36F64F          LD      (IX-10),79
     56                  msz_temp[3]='T';
   \   0080  DD36F754          LD      (IX-9),84
     57                  msz_temp[4]=0;
   \   0084  DD74F8            LD      (IX-8),H
     58                  file_info.PathorFile =1 ;  //root
   \   0087  1807              JR      ?0037
     59               }
     60               else
   \   0089            ?0008:
     61               {
     62                   msz_temp[0]='\\';
   \   0089  DD36F45C          LD      (IX-12),92
     63                   msz_temp[1]=0;
   \   008D  DD74F5            LD      (IX-11),H
     64                   file_info.PathorFile =1 ; //parent
   \   0090            ?0037:
   \   0090  3E01              LD      A,1
   \   0092  320000            LD      (file_info),A
   \   0095            ?0009:
     65               }
     66                  
     67              
     68               
     69              result= Navi_read(fileoffset);
   \   0095  DD4E04            LD      C,(IX+4)
   \   0098  DD4605            LD      B,(IX+5)
   \   009B  DD5E02            LD      E,(IX+2)
   \   009E  DD5603            LD      D,(IX+3)
   \   00A1  CD9D03            CALL    LWRD ?0039
   \   00A4  DD75EF            LD      (IX-17),L
     70               
     71              if(direct==0)
   \   00A7  AF                XOR     A
   \   00A8  DDB60A            OR      (IX+10)
   \   00AB  C2F801            JP      NZ,?0011
   \   00AE            ?0010:
     72              {
     73                  CurListoffset=fileoffset;
   \   00AE  DD4E04            LD      C,(IX+4)
   \   00B1  DD4605            LD      B,(IX+5)
   \   00B4  DD6E02            LD      L,(IX+2)
   \   00B7  DD6603            LD      H,(IX+3)
   \   00BA  220000            LD      (CurListoffset),HL
   \   00BD  ED430200          LD      (CurListoffset+2),BC
     74                  if(fileoffset%512+sizeof(Location_Path_t)<512)
   \   00C1  6F                LD      L,A
   \   00C2  67                LD      H,A
   \   00C3  E5                PUSH    HL
   \   00C4  2602              LD      H,2
   \   00C6  E5                PUSH    HL
   \   00C7  65                LD      H,L
   \   00C8  E5                PUSH    HL
   \   00C9  2602              LD      H,2
   \   00CB  E5                PUSH    HL
   \   00CC  CDAB03            CALL    LWRD ?0040
   \   00CF  C5                PUSH    BC
   \   00D0  E5                PUSH    HL
   \   00D1  214000            LD      HL,64
   \   00D4  C1                POP     BC
   \   00D5  09                ADD     HL,BC
   \   00D6  EB                EX      DE,HL
   \   00D7  6F                LD      L,A
   \   00D8  67                LD      H,A
   \   00D9  C1                POP     BC

⌨️ 快捷键说明

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