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

📄 bookmark_menu.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:36:33 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_reader\bookmark_menu.c        #
#       List file     =  d:\case_i_d913f\ap\ap_reader\list\bookmark_menu.lst #
#       Object file   =  d:\case_i_d913f\ap\ap_reader\obj\bookmark_menu.r01  #
#       ASM file      =  d:\case_i_d913f\ap\ap_reader\list\bookmark_menu.s01 #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_reader\Obj\ -e -K   #
#                        -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT      #
#                        -LD:\case_i_d913f\ap\ap_reader\List\ -q -t8         #
#                        -AD:\case_i_d913f\ap\ap_reader\List\                #
#                        -ND:\case_i_d913f\ap\ap_reader\List\ -X             #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\AP\AP_READER\bookmark_menu.c        #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    bookmark_menu(17)
   \   0000                    RSEG    CODE_1(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  add_bookmark
   \   0000                    PUBLIC  bookmark_op
   \   0000                    EXTERN  close_bookmark
   \   0000                    EXTERN  del_bookmark_id
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_reader_vars
   \   0000                    EXTERN  get_bookmark
   \   0000                    EXTERN  get_num_bookmarks
   \   0000                    EXTERN  init_bookmark
   \   0000                    EXTERN  list
   \   0000                    PUBLIC  menuStr
   \   0000                    EXTERN  sub_list
   \   0000                    EXTERN  ui_bookmark_list
   \   0000                    EXTERN  ui_err_msg
   \   0000                    EXTERN  ui_popup_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    CODE_1
   \   0000            bookmark_op:
      1          #include "actos.h"
      2          #include "ap_common.h"
      3          #include "display.h"
      4          #include "ap_reader.h"
      5          #include "bookmark.h"
      6          
      7          WORD  menuStr[4]={MEB2,MEB4,MEB3,MSTOP5};
      8          extern pop_up_list_t list;
      9          extern pop_up_list_t sub_list;
     10          #pragma codeseg(CODE_1)              
     11          
     12          int bookmark_op(void)                // interface to call
     13          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  FDE5              PUSH    IY
   \   0004  DDE5              PUSH    IX
   \   0006  DD210000          LD      IX,0
   \   000A  DD39              ADD     IX,SP
   \   000C  21DAFF            LD      HL,65498
   \   000F  39                ADD     HL,SP
   \   0010  F9                LD      SP,HL
     14              int result,active; 
     15              byte i;                                                                                 
     16          //    pop_up_list_t list;  
     17          //    function_menu_t  Menu;      // bookmark op menu     
     18              list.headid = PLAYMENU;                                                                                                      
   \   0011  21A001            LD      HL,416
   \   0014  220600            LD      (list+6),HL
     19              list.total  = 4;                                                                                        
   \   0017  210400            LD      HL,4
   \   001A  220200            LD      (list+2),HL
     20              list.active = 0;                                                                                       
   \   001D  6C                LD      L,H
   \   001E  220400            LD      (list+4),HL
     21              list.strid  = menuStr;                                                                                
   \   0021  210000            LD      HL,menuStr
   \   0024  220000            LD      (list),HL
     22              list.string_id = g_comval.langid;                                                                                                                                                                        
   \   0027  3A0C00            LD      A,(g_comval+12)
   \   002A  320800            LD      (list+8),A
     23              result = ui_popup_list(&list, NULL);                                                                         
   \   002D  0E00              LD      C,0
   \   002F  C5                PUSH    BC
   \   0030  69                LD      L,C
   \   0031  61                LD      H,C
   \   0032  E5                PUSH    HL
   \   0033  110000            LD      DE,list
   \   0036  3E00              LD      A,BYTE3 ui_popup_list
   \   0038  210000            LD      HL,LWRD ui_popup_list
   \   003B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   003E  F1                POP     AF
   \   003F  F1                POP     AF
   \   0040  E5                PUSH    HL
   \   0041  FDE1              POP     IY
     24              if (result != 0)
   \   0043  7D                LD      A,L
   \   0044  B4                OR      H
   \   0045  C26801            JP      NZ,?0038
   \   0048            ?0002:
     25                 return result;   
   \   0048            ?0003:
     26              if(list.active == 3)    // return straightly
   \   0048  2A0400            LD      HL,(list+4)
   \   004B  3E03              LD      A,3
   \   004D  AD                XOR     L
   \   004E  B4                OR      H
   \   004F  CA2802            JP      Z,?0031
   \   0052            ?0004:
     27                  return RESULT_IGNORE; 
   \   0052            ?0005:
     28                  
     29              /* we need to init bookmark data and prepare for op */
     30              if( init_bookmark() )
   \   0052  3E00              LD      A,BYTE3 init_bookmark
   \   0054  210000            LD      HL,LWRD init_bookmark
   \   0057  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   005A  2C                INC     L
   \   005B  2D                DEC     L
   \   005C  280B              JR      Z,?0007
   \   005E            ?0006:
     31              {
     32                  // FIXME: please change to open bookmark error
     33                  ui_err_msg(EBOKMSG2,EBOKMSG2,g_comval.langid);
   \   005E  ED4B0C00          LD      BC,(g_comval+12)
   \   0062  0600              LD      B,0
   \   0064  C5                PUSH    BC
   \   0065  CD3602            CALL    LWRD ?0044
   \   0068  F1                POP     AF
   \   0069            ?0007:
     34              }
     35             
     36              i = get_num_bookmarks();    // get bookmarks number
   \   0069  3E00              LD      A,BYTE3 get_num_bookmarks
   \   006B  210000            LD      HL,LWRD get_num_bookmarks
   \   006E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0071  DD75DE            LD      (IX-34),L
     37          
     38              if(list.active == 0 )
   \   0074  2A0400            LD      HL,(list+4)
   \   0077  7D                LD      A,L
   \   0078  B4                OR      H
   \   0079  C20C01            JP      NZ,?0009
   \   007C            ?0008:
     39              {
     40                  /* select bookmark and view content according bookmark */
     41                  if( i == 0 ) 
   \   007C  DDB6DE            OR      (IX-34)
   \   007F  200D              JR      NZ,?0011
   \   0081            ?0010:
     42                  { 
     43                     ui_err_msg(EBOKMSG2,EBOKMSG2,g_comval.langid);
   \   0081  ED4B0C00          LD      BC,(g_comval+12)
   \   0085  47                LD      B,A
   \   0086  C5                PUSH    BC
   \   0087  CD3602            CALL    LWRD ?0044
   \   008A  F1                POP     AF
     44                     close_bookmark();     
   \   008B  C37E01            JP      LWRD ?0043
     45                     return RESULT_IGNORE; 
     46                  }
   \   008E            ?0011:
     47                  else
     48                  {
     49                      bkmark_node tmp;            
     50                      // FIXME:
     51                      //list.strid  = play_text;                                                                              
     52                      sub_list.total  = i;                                                                                      
   \   008E  4F                LD      C,A
   \   008F  0600              LD      B,0
   \   0091  ED430200          LD      (sub_list+2),BC
     53                      sub_list.active = 0;                                                                
   \   0095  68                LD      L,B
   \   0096  60                LD      H,B
   \   0097  220400            LD      (sub_list+4),HL
     54                      sub_list.string_id = g_comval.langid;                                                                    
   \   009A  3A0C00            LD      A,(g_comval+12)
   \   009D  320800            LD      (sub_list+8),A
     55                      sub_list.headid = menuStr[list.active];                                                                
   \   00A0  2A0400            LD      HL,(list+4)
   \   00A3  29                ADD     HL,HL
   \   00A4  010000            LD      BC,menuStr
   \   00A7  09                ADD     HL,BC
   \   00A8  46                LD      B,(HL)
   \   00A9  23                INC     HL
   \   00AA  66                LD      H,(HL)
   \   00AB  68                LD      L,B
   \   00AC  220600            LD      (sub_list+6),HL
     56                      result = ui_bookmark_list(&sub_list, NULL); 
   \   00AF  0E00              LD      C,0
   \   00B1  C5                PUSH    BC
   \   00B2  69                LD      L,C
   \   00B3  61                LD      H,C
   \   00B4  E5                PUSH    HL
   \   00B5  110000            LD      DE,sub_list
   \   00B8  3E00              LD      A,BYTE3 ui_bookmark_list
   \   00BA  210000            LD      HL,LWRD ui_bookmark_list
   \   00BD  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00C0  F1                POP     AF
   \   00C1  F1                POP     AF
   \   00C2  E5                PUSH    HL
   \   00C3  FDE1              POP     IY
     57                      
     58                      if( result != 0 )
   \   00C5  7D                LD      A,L
   \   00C6  B4                OR      H
   \   00C7  C26001            JP      NZ,?0039
   \   00CA            ?0012:
     59                      {  
     60                          close_bookmark();
     61                          return result;
     62                      }
   \   00CA            ?0013:
     63                      
     64                      active = sub_list.active;
   \   00CA  2A0400            LD      HL,(sub_list+4)
   \   00CD  DD75DC            LD      (IX-36),L
     65                      if( active >= MAX_BKMARK_NUM )
   \   00D0  011080            LD      BC,32784
   \   00D3  78                LD      A,B
   \   00D4  AC                XOR     H
   \   00D5  67                LD      H,A
   \   00D6  ED42              SBC     HL,BC
   \   00D8  D27E01            JP      NC,?0043
   \   00DB            ?0014:
     66                      { 
     67                          close_bookmark();
     68                          return RESULT_IGNORE;
     69                      }
   \   00DB            ?0015:
     70                      
     71                      /* jump to offset of the bookmark */
     72                      tmp =  get_bookmark(active);
   \   00DB  210500            LD      HL,5
   \   00DE  39                ADD     HL,SP
   \   00DF  E5                PUSH    HL
   \   00E0  DD4EDC            LD      C,(IX-36)
   \   00E3  211700            LD      HL,23
   \   00E6  39                ADD     HL,SP
   \   00E7  EB                EX      DE,HL
   \   00E8  3E00              LD      A,BYTE3 get_bookmark
   \   00EA  210000            LD      HL,LWRD get_bookmark
   \   00ED  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00F0  D1                POP     DE
   \   00F1  011000            LD      BC,16
   \   00F4  EDB0              LDIR
     73                      g_reader_vars.g_txt.CurrentSeek = tmp.offset;   
   \   00F6  DD4EE1            LD      C,(IX-31)
   \   00F9  DD46E2            LD      B,(IX-30)
   \   00FC  DD6EDF            LD      L,(IX-33)
   \   00FF  DD66E0            LD      H,(IX-32)
   \   0102  223B00            LD      (g_reader_vars+59),HL
   \   0105  ED433D00          LD      (g_reader_vars+61),BC
   \   0109  C31502            JP      LWRD ?0029
   \   010C            ?0009:
     74                      // FIXME:

⌨️ 快捷键说明

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