navi_ui.lst

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

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

   \   0000                    NAME    navi_ui(17)
   \   0000                    RSEG    APC_NAVI_UI(0)
   \   0000                    RSEG    APD_NAVI_UI(0)
   \   0000                    EXTERN  Count_Byte
   \   0000                    EXTERN  CurTotalNum
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  ScrollFlag
   \   0000                    EXTERN  ScrollString
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  SetTextOutMode
   \   0000                    EXTERN  SetTextPos
   \   0000                    EXTERN  g_comval
   \   0000                    PUBLIC  i
   \   0000                    PUBLIC  list_num
   \   0000                    EXTERN  menu_pos_list
   \   0000                    EXTERN  menulist_bck_pic
   \   0000                    EXTERN  navi_buff
   \   0000                    EXTERN  region_scroll
   \   0000                    EXTERN  scroll_buf
   \   0000                    PUBLIC  ui_Navi_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?UC_MOD_L01
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?SS_CMP_L02
   \   0000                    EXTERN  ?SL_MOD_L03
   \   0000                    EXTERN  ?SL_CMP_L03
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    EXTERN  ?STRLEN_L11
   \   0000                    RSEG    APC_NAVI_UI
   \   0000            ui_Navi_list:
      1          #include "ap_music.h"      
      2          #define Color_BULE_Scroll_def  0x0000001f//深蓝 
      3          extern handle Navifp; 
      4          extern long  CurListoffset; //每个表的偏移量
      5          extern long  CurTotalNum;
      6          extern long  Navfileoffset;    //当前表的已经读的偏移量
      7          extern BOOL Navi_read(long fileoffset);  
      8          
      9          #pragma memory=dataseg(APD_NAVI)
     10          extern char navi_buff[NAVI_GROUP*30];
     11          extern char buffer[512];
     12          
     13          
     14          
     15          #pragma memory=default
     16          #pragma memory=dataseg(APD_NAVI_UI)
     17          
     18          int i;
     19          BYTE list_num;
     20          
     21          #pragma memory=default
     22          extern const char menu_pos_list[];
     23          extern const WORD menulist_bck_pic[];     
     24          extern  char     ScrollFlag;   //滚动标志位   
     25          extern char      scroll_buf[];     //滚屏buffer区 
     26          extern region_t region_scroll;  //滚屏区域 
     27          
     28          #pragma codeseg(APC_NAVI_UI)
     29          void ui_Navi_list(BYTE active,BYTE  old_active,long file_active,char direct,bool scroll_flag)
     30          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  FEFF              DEFW    65534
     31             
     32              BYTE DisplayBytes;       
     33               
     34              region_scroll.x=explorer_str_x_def;
   \   0005  3E20              LD      A,32
   \   0007  320000            LD      (region_scroll),A
     35              region_scroll.width=160;
   \   000A  3EA0              LD      A,160
   \   000C  320200            LD      (region_scroll+2),A
     36              region_scroll.height=16; 
   \   000F  3E10              LD      A,16
   \   0011  320300            LD      (region_scroll+3),A
     37              if(scroll_flag)   
   \   0014  AF                XOR     A
   \   0015  DDB610            OR      (IX+16)
   \   0018  2826              JR      Z,?0003
   \   001A            ?0002:
     38              {
     39                  SetTextOutMode(0);
   \   001A  1E00              LD      E,0
   \   001C  CD0000            CALL    LWRD SetTextOutMode
     40                  SetBackgdColor(Color_BULE_Scroll_def);        
   \   001F  010000            LD      BC,0
   \   0022  111F00            LD      DE,31
   \   0025  CD0000            CALL    LWRD SetBackgdColor
     41                  ScrollString(scroll_buf, FALSE,g_comval.langid,&region_scroll);
   \   0028  210000            LD      HL,region_scroll
   \   002B  E5                PUSH    HL
   \   002C  210C00            LD      HL,g_comval+12
   \   002F  4E                LD      C,(HL)
   \   0030  C5                PUSH    BC
   \   0031  0E00              LD      C,0
   \   0033  CD2303            CALL    LWRD ?0058
   \   0036  E1                POP     HL
   \   0037  E1                POP     HL
     42                  SetTextOutMode(1);  
   \   0038  1E01              LD      E,1
   \   003A  CD0000            CALL    LWRD SetTextOutMode
     43              } 
     44             else
   \   003D  C31E03            JP      LWRD ?0043
   \   0040            ?0003:
     45             {       
     46              SetTextOutMode(1);
   \   0040  1E01              LD      E,1
   \   0042  CD0000            CALL    LWRD SetTextOutMode
     47              SetPenColor(Color_WHITE_def);
   \   0045  010000            LD      BC,0
   \   0048  11FFFF            LD      DE,65535
   \   004B  CD0000            CALL    LWRD SetPenColor
     48              if(old_active!=active)
   \   004E  DD7E04            LD      A,(IX+4)
   \   0051  DDBE02            CP      (IX+2)
   \   0054  CA7801            JP      Z,?0006
   \   0057            ?0005:
     49              {
     50                   //清除旧的活动列表项
     51               ResShowPic(menulist_bck_pic[old_active%NAVI_GROUP], menu_bck_x_def, menu_pos_list[old_active%7]-4);
   \   0057  0607              LD      B,7
   \   0059  CD4703            CALL    LWRD ?0061
   \   005C  C5                PUSH    BC
   \   005D  0E09              LD      C,9
   \   005F  0606              LD      B,6
   \   0061  DD7E04            LD      A,(IX+4)
   \   0064  CD0000            CALL    LWRD ?UC_MOD_L01
   \   0067  6F                LD      L,A
   \   0068  2600              LD      H,0
   \   006A  29                ADD     HL,HL
   \   006B  110000            LD      DE,menulist_bck_pic
   \   006E  19                ADD     HL,DE
   \   006F  5E                LD      E,(HL)
   \   0070  23                INC     HL
   \   0071  56                LD      D,(HL)
   \   0072  CD5B03            CALL    LWRD ?0062
   \   0075  F1                POP     AF
     52               ResShowPic(DHT,194,8); 
   \   0076  0E08              LD      C,8
   \   0078  C5                PUSH    BC
   \   0079  CD5603            CALL    LWRD ?0063
   \   007C  F1                POP     AF
     53               if(*(navi_buff+(old_active)*30)==1)
   \   007D  DD4E04            LD      C,(IX+4)
   \   0080  CD8C03            CALL    LWRD ?0066
   \   0083  200B              JR      NZ,?0008
   \   0085            ?0007:
     54                    ResShowPic(MDIR,10,menu_pos_list[old_active%NAVI_GROUP]-4);
   \   0085  CD4703            CALL    LWRD ?0061
   \   0088  C5                PUSH    BC
   \   0089  0E0A              LD      C,10
   \   008B  11AF00            LD      DE,175
   \   008E  1814              JR      ?0044
     55               else
   \   0090            ?0008:
     56                    ResShowPic(MFILE,13,menu_pos_list[old_active%NAVI_GROUP]-1);
   \   0090  CD0000            CALL    LWRD ?UC_MOD_L01
   \   0093  4F                LD      C,A
   \   0094  0600              LD      B,0
   \   0096  210000            LD      HL,menu_pos_list
   \   0099  09                ADD     HL,BC
   \   009A  7E                LD      A,(HL)
   \   009B  C6FF              ADD     A,255
   \   009D  4F                LD      C,A
   \   009E  C5                PUSH    BC
   \   009F  0E0D              LD      C,13
   \   00A1  11C600            LD      DE,198
   \   00A4            ?0044:
   \   00A4  CD5B03            CALL    LWRD ?0062
   \   00A7  F1                POP     AF
   \   00A8            ?0009:
     57               SetTextPos(explorer_str_x_def, menu_pos_list[old_active%NAVI_GROUP]-2);
   \   00A8  0606              LD      B,6
   \   00AA  DD7E04            LD      A,(IX+4)
   \   00AD  CD0000            CALL    LWRD ?UC_MOD_L01
   \   00B0  4F                LD      C,A
   \   00B1  0600              LD      B,0
   \   00B3  210000            LD      HL,menu_pos_list
   \   00B6  09                ADD     HL,BC
   \   00B7  7E                LD      A,(HL)
   \   00B8  C6FE              ADD     A,254
   \   00BA  4F                LD      C,A
   \   00BB  1E20              LD      E,32
   \   00BD  CD0000            CALL    LWRD SetTextPos
     58               SetPenColor(Color_WHITE_def);                          //取列表名
   \   00C0  010000            LD      BC,0
   \   00C3  11FFFF            LD      DE,65535
   \   00C6  CD0000            CALL    LWRD SetPenColor
     59               DisplayBytes = Count_Byte(&(navi_buff+old_active*30+1),g_comval.langid);
   \   00C9  ED4B0C00          LD      BC,(g_comval+12)
   \   00CD  C5                PUSH    BC
   \   00CE  210100            LD      HL,navi_buff+1
   \   00D1  DD5E04            LD      E,(IX+4)
   \   00D4  1600              LD      D,0
   \   00D6  011E00            LD      BC,30
   \   00D9  CD0000            CALL    LWRD ?S_MUL_L02
   \   00DC  19                ADD     HL,DE
   \   00DD  EB                EX      DE,HL
   \   00DE  3E00              LD      A,BYTE3 Count_Byte
   \   00E0  210000            LD      HL,LWRD Count_Byte
   \   00E3  C1                POP     BC
   \   00E4  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     60               PutS(&(navi_buff+old_active*30+1), DisplayBytes);
   \   00E7  4D                LD      C,L
   \   00E8  C5                PUSH    BC
   \   00E9  210100            LD      HL,navi_buff+1
   \   00EC  DD5E04            LD      E,(IX+4)
   \   00EF  1600              LD      D,0
   \   00F1  011E00            LD      BC,30
   \   00F4  CD0000            CALL    LWRD ?S_MUL_L02
   \   00F7  19                ADD     HL,DE
   \   00F8  EB                EX      DE,HL

⌨️ 快捷键说明

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