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

📄 bookmark.lst

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

   \   0000                    NAME    bookmark(17)
   \   0000                    RSEG    CODE_1(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    BOOKMARK_D(0)
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FCreate
   \   0000                    EXTERN  FS_FOpen
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FWrite
   \   0000                    EXTERN  FS_GetFileLen
   \   0000                    EXTERN  FS_GetUnalignedLen
   \   0000                    PUBLIC  add_bookmark
   \   0000                    PUBLIC  bkmarks
   \   0000                    PUBLIC  buf
   \   0000                    PUBLIC  close_bookmark
   \   0000                    PUBLIC  del_bookmark_id
   \   0000                    EXTERN  fileName
   \   0000                    PUBLIC  g_bookmark_handle
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_reader_vars
   \   0000                    PUBLIC  get_bookmark
   \   0000                    PUBLIC  get_num_bookmarks
   \   0000                    PUBLIC  initBuf
   \   0000                    PUBLIC  init_bookmark
   \   0000                    PUBLIC  result
   \   0000                    EXTERN  ui_err_msg
   \   0000                    PUBLIC  whitespace
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?UL_RSH_L03
   \   0000                    EXTERN  ?L_ORASG_L03
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?STRCPY_L11
   \   0000                    RSEG    CODE_1
   \   0000            whitespace:
      1          /*
      2          *******************************************************************************
      3          *                        e Document Reader
      4          *                (c) Copyright 2003-2004, ACTION Co,Ltd.
      5          *                        All Right Reserved
      6          *
      7          * File   : bookmark.c
      8          * By     : ruanyong
      9          * Version: v1.00     first version     2004-11-16 17:28
     10          ********************************************************************************
     11          */
     12          #pragma codeseg(CODE_1)
     13          #include <stdlib.h>
     14          #include <stdio.h>                                           
     15          #include <string.h>
     16          
     17          #include "ap_reader.h"
     18          #include "bookmark.h"
     19          #include "filesys.h" 
     20          #include "ui_res.h"    
     21          void initBuf(void);  
     22          bool result;
     23          UInt g_bookmark_handle;  
     24          bkmark_node bkmarks[MAX_BKMARK_NUM];  
     25          extern char  fileName[50];  //存放书签头部信息的buffer
     26          #pragma memory=dataseg(BOOKMARK_D)     
     27          UChar buf[FILESIZE];         
     28          #pragma memory=default 
     29          //#pragma codeseg(BOOKMARK_D)
     30          //UChar buf[FILESIZE];
     31          //#pragma memory=default
     32          /*
     33           * 判断字符是否是空格意义符号
     34           */
     35          int
     36          whitespace(char ch)
     37          {
     38                switch (ch)
   \   0000  7B                LD      A,E
   \   0001  FE09              CP      9
   \   0003  3811              JR      C,?0004
   \   0005  FE0B              CP      11
   \   0007  3808              JR      C,?0003
   \   0009  FE0D              CP      13
   \   000B  2804              JR      Z,?0003
   \   000D  FE20              CP      32
   \   000F  2005              JR      NZ,?0004
   \   0011            ?0003:
     39                {
     40                    case ' ':
     41                    case '\t':
     42                    case '\n':
     43                    case '\r':
     44                      return 1;
   \   0011  210100            LD      HL,1
     45                    default:
   \   0014  1803              JR      ?0005
   \   0016            ?0004:
     46                      return 0;
   \   0016  210000            LD      HL,0
     47                }
   \   0019            ?0005:
   \   0019  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   001C            ?0002:
     48          }
   \   001C            strip_spaces:
     49          
     50          
     51          /*
     52           * 删除一个字符串开头和串尾的空格,参数str被修改
     53           * 空格符号包括' ','\n','\r','\t'。
     54           */
     55          static char *
     56          strip_spaces(char *str)
     57          {
   \   001C  C5                PUSH    BC
   \   001D  D5                PUSH    DE
     58          /*
     59                int   x;
     60                
     61                if (!str)
     62                  return NULL;
     63                
     64                x = 0;
     65                while ( whitespace(str[x]) && (str[x] != '\0') )
     66                  x++;
     67                
     68                if (x != 0)                // 前移x个字符
     69                  memmove(str, str+x, strlen(str)-x+1);
     70                
     71                x = strlen(str)-1;
     72                while (whitespace(str[x]) && (x != 0))
     73                  x--;
     74                
     75                str[x+1] = '\0';            // 截断后面的空字符
     76          */      
     77                return str;
   \   001E  6B                LD      L,E
   \   001F  62                LD      H,D
     78          }
   \   0020  F1                POP     AF
   \   0021  C1                POP     BC
   \   0022  C9                RET
   \   0023            trim_string:
     79          
     80          
     81          /*
     82           * 去掉不可打印的字符,并以空格替代,参数str被修改
     83           */
     84          static char *
     85          trim_string(char *str)
     86          {
   \   0023  C5                PUSH    BC
   \   0024  D5                PUSH    DE
     87            
     88                return str;
   \   0025  6B                LD      L,E
   \   0026  62                LD      H,D
     89          }
   \   0027  F1                POP     AF
   \   0028  C1                POP     BC
   \   0029  C9                RET
   \   002A            fileLength:
     90          
     91          static UInt32
     92          fileLength(UInt32 file)
     93          {
   \   002A  DDE5              PUSH    IX
   \   002C  DD210000          LD      IX,0
   \   0030  DD39              ADD     IX,SP
   \   0032  C5                PUSH    BC
   \   0033  D5                PUSH    DE
   \   0034  F5                PUSH    AF
   \   0035  F5                PUSH    AF
   \   0036  F5                PUSH    AF
   \   0037  F5                PUSH    AF
     94                UInt32     LastPgSize = FS_GetUnalignedLen(file); //取最后一个PAGE的BYTE数 (只有一个扇区)              
   \   0038  CD0000            CALL    LWRD FS_GetUnalignedLen
   \   003B  7C                LD      A,H
   \   003C  07                RLCA
   \   003D  9F                SBC     A,A
   \   003E  4F                LD      C,A
   \   003F  41                LD      B,C
   \   0040  DD75F8            LD      (IX-8),L
   \   0043  DD74F9            LD      (IX-7),H
   \   0046  DD71FA            LD      (IX-6),C
   \   0049  DD70FB            LD      (IX-5),B
     95                UInt32  PageNum    = FS_GetFileLen(file);
   \   004C  DD5EFC            LD      E,(IX-4)
   \   004F  DD56FD            LD      D,(IX-3)
   \   0052  CD0000            CALL    LWRD FS_GetFileLen
     96                return ( (PageNum-1 )* BUFSIZE + LastPgSize);   
   \   0055  C5                PUSH    BC
   \   0056  E5                PUSH    HL
   \   0057  21FFFF            LD      HL,65535
   \   005A  C1                POP     BC
   \   005B  09                ADD     HL,BC
   \   005C  EB                EX      DE,HL
   \   005D  21FFFF            LD      HL,65535
   \   0060  C1                POP     BC
   \   0061  ED4A              ADC     HL,BC
   \   0063  4D                LD      C,L
   \   0064  44                LD      B,H
   \   0065  EB                EX      DE,HL
   \   0066  3E09              LD      A,9
   \   0068  CD0000            CALL    LWRD ?L_LSH_L03
   \   006B  C5                PUSH    BC
   \   006C  E5                PUSH    HL
   \   006D  DD6EF8            LD      L,(IX-8)
   \   0070  DD66F9            LD      H,(IX-7)
   \   0073  C1                POP     BC
   \   0074  09                ADD     HL,BC
   \   0075  EB                EX      DE,HL
   \   0076  DD6EFA            LD      L,(IX-6)
   \   0079  DD66FB            LD      H,(IX-5)
   \   007C  C1                POP     BC
   \   007D  ED4A              ADC     HL,BC
   \   007F  4D                LD      C,L
   \   0080  44                LD      B,H
   \   0081  EB                EX      DE,HL
     97          } 
   \   0082  DDF9              LD      SP,IX
   \   0084  DDE1              POP     IX
   \   0086  C9                RET
   \   0087            hex2str:
     98          
     99          static char*  
    100          hex2str(char* b, UInt32 hex)
    101          {
   \   0087  C5                PUSH    BC
   \   0088  DDE5              PUSH    IX
   \   008A  F5                PUSH    AF
   \   008B  D5                PUSH    DE
   \   008C  DDE1              POP     IX
    102                  byte i = 0;
   \   008E  210000            LD      HL,0
   \   0091  39                ADD     HL,SP
   \   0092  3600              LD      (HL),0
   \   0094            ?0007:
    103                  
    104                  for ( ; i < sizeof(UInt32); i++ ) {
   \   0094  7E                LD      A,(HL)
   \   0095  FE04              CP      4
   \   0097  3024              JR      NC,?0006
   \   0099            ?0008:
    105                      b[i] = (hex>>i*8) & 0xFF;
   \   0099  4F                LD      C,A
   \   009A  0600              LD      B,0
   \   009C  DDE5              PUSH    IX
   \   009E  E1                POP     HL
   \   009F  09                ADD     HL,BC
   \   00A0  E5                PUSH    HL
   \   00A1  87                ADD     A,A
   \   00A2  87                ADD     A,A
   \   00A3  87                ADD     A,A
   \   00A4  210A00            LD      HL,10
   \   00A7  39                ADD     HL,SP
   \   00A8  5E                LD      E,(HL)
   \   00A9  23                INC     HL
   \   00AA  56                LD      D,(HL)
   \   00AB  23                INC     HL
   \   00AC  4E                LD      C,(HL)
   \   00AD  23                INC     HL
   \   00AE  46                LD      B,(HL)
   \   00AF  EB                EX      DE,HL
   \   00B0  CD0000            CALL    LWRD ?UL_RSH_L03
   \   00B3  45                LD      B,L
   \   00B4  E1                POP     HL
   \   00B5  70                LD      (HL),B
   \   00B6  210000            LD      HL,0
   \   00B9  39                ADD     HL,SP

⌨️ 快捷键说明

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