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

📄 basal_reader_de.lst

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

   \   0000                    NAME    basal_reader_de(17)
   \   0000                    RSEG    MO_BS_TXT(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    PUBLIC  CheckLangID
   \   0000                    EXTERN  ClearScreen
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FSeek
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  SetTextPos
   \   0000                    PUBLIC  ToPrevScreenPosition
   \   0000                    EXTERN  fileName
   \   0000                    EXTERN  g_reader_vars
   \   0000                    PUBLIC  lBakSeek
   \   0000                    PUBLIC  read_buff
   \   0000                    PUBLIC  read_text
   \   0000                    PUBLIC  view_page_down
   \   0000                    PUBLIC  view_page_up
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SL_DIV_L03
   \   0000                    EXTERN  ?SL_MOD_L03
   \   0000                    EXTERN  ?SL_CMP_L03
   \   0000                    EXTERN  ?L_ADDASG_L03
   \   0000                    EXTERN  ?L_SUBASG_L03
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    RSEG    MO_BS_TXT
   \   0000            ToPrevScreenPosition:
      1          /*
      2          ********************************************************************************
      3          *                       ACTOS
      4          *                 Reader basal module
      5          *                                                                         
      6          *                (c) Copyright 2002-2003, Actions Co,Ld.                       
      7          *                        All Right Reserved                               
      8          *
      9          * File   : basal_reader_de.c
     10          * By     : 
     11          * Version: 1> v1.00     first version     2006-4-13 15:49
     12          ********************************************************************************
     13          ********************************************************************************
     14          */
     15          #pragma codeseg(MO_BS_TXT)  
     16          #include "actos.h" 
     17          #include "basal.h"
     18          #include "ap_reader.h"  
     19          #include "filesys.h"    
     20          #include  "TxtDec.h"   
     21          
     22          #include "ap_common.h"
     23          #include  "display.h"
     24          #include <Intrz80.h>
     25          #include "bookmark.h"
     26          #pragma memory=default
     27          extern char  fileName[50]; //存放书签头部信息的buffer
     28          long lBakSeek[SCR_ROW+1]; 
     29          #define CLEAR_WATCHDOG() output8(REG4E_RTC_WATCH_DOG, (input8(REG4E_RTC_WATCH_DOG) | 0x08))
     30          
     31          //////////////////////////////////////////////////
     32          //恢复前一屏在文件中的位置
     33          void ToPrevScreenPosition( STRUCT_VIEW_FILE *ViewFileStructPoint )
     34          {
   \   0000  C5                PUSH    BC
   \   0001  DDE5              PUSH    IX
   \   0003  D5                PUSH    DE
   \   0004  DDE1              POP     IX
     35              // CurrentSeek指向当前屏的起始位置
     36              ViewFileStructPoint->CurrentSeek = ViewFileStructPoint->PrevSeek;
   \   0006  210600            LD      HL,6
   \   0009  19                ADD     HL,DE
   \   000A  5E                LD      E,(HL)
   \   000B  23                INC     HL
   \   000C  56                LD      D,(HL)
   \   000D  23                INC     HL
   \   000E  4E                LD      C,(HL)
   \   000F  23                INC     HL
   \   0010  46                LD      B,(HL)
   \   0011  EB                EX      DE,HL
   \   0012  DD750A            LD      (IX+10),L
   \   0015  DD740B            LD      (IX+11),H
   \   0018  DD710C            LD      (IX+12),C
   \   001B  DD700D            LD      (IX+13),B
     37          }
   \   001E  DDE1              POP     IX
   \   0020  C1                POP     BC
   \   0021  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0024            CheckLangID:
     38          
     39          //////////////////////////////////////////////////
     40          //检查是否为双字节字 返回TRUE表示双字节字,FALSE表示单字节字
     41          BOOL CheckLangID( byte LangID )
     42          {
   \   0024  C5                PUSH    BC
   \   0025  D5                PUSH    DE
     43              
     44              return ( LangID != LAN_ID_ENGLISH && LangID < 5 );
   \   0026  43                LD      B,E
   \   0027  05                DEC     B
   \   0028  280D              JR      Z,?0002
   \   002A  210000            LD      HL,0
   \   002D  39                ADD     HL,SP
   \   002E  7E                LD      A,(HL)
   \   002F  FE05              CP      5
   \   0031  3004              JR      NC,?0002
   \   0033  2E01              LD      L,1
   \   0035  1802              JR      ?0004
   \   0037            ?0002:
   \   0037  2E00              LD      L,0
   \   0039            ?0004:
     45          }
   \   0039  F1                POP     AF
   \   003A  C1                POP     BC
   \   003B  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   003E            read_text:
     46          //////////////////////////////////////////////////
     47          //根据扇区号的值读数据到bufFile[],同时将之前的扇区数据保存头尾
     48          BOOL read_text(STRUCT_VIEW_FILE *ViewFileStructPoint, uint nFileSector )
     49          {
   \   003E  FDE5              PUSH    IY
   \   0040  DDE5              PUSH    IX
   \   0042  DD210000          LD      IX,0
   \   0046  DD39              ADD     IX,SP
   \   0048  C5                PUSH    BC
   \   0049  F5                PUSH    AF
   \   004A  D5                PUSH    DE
   \   004B  FDE1              POP     IY
     50              byte i;
     51          
     52              if( nFileSector >= g_reader_vars.g_txt.SectorTotal )
   \   004D  ED5B4100          LD      DE,(g_reader_vars+65)
   \   0051  69                LD      L,C
   \   0052  60                LD      H,B
   \   0053  A7                AND     A
   \   0054  ED52              SBC     HL,DE
   \   0056  3805              JR      C,?0006
   \   0058            ?0005:
     53                  return FALSE;
   \   0058  2E00              LD      L,0
   \   005A  C3E700            JP      LWRD ?0015
   \   005D            ?0006:
     54          
     55              if( (nFileSector != ViewFileStructPoint->BufSector)||(nFileSector==0) )
   \   005D  FD6E0E            LD      L,(IY+14)
   \   0060  FD660F            LD      H,(IY+15)
   \   0063  A7                AND     A
   \   0064  ED42              SBC     HL,BC
   \   0066  2004              JR      NZ,?0009
   \   0068  79                LD      A,C
   \   0069  B0                OR      B
   \   006A  2079              JR      NZ,?0008
   \   006C            ?0009:
   \   006C            ?0010:
   \   006C            ?0007:
     56              {
     57                  ViewFileStructPoint->BufSector = nFileSector;
   \   006C  FD710E            LD      (IY+14),C
   \   006F  FD700F            LD      (IY+15),B
     58          
     59                  for( i=0; i<(BUFF_ONE_ROW); i++ )
   \   0072  DD36FC00          LD      (IX-4),0
   \   0076            ?0012:
   \   0076  DD7EFC            LD      A,(IX-4)
   \   0079  FE14              CP      20
   \   007B  3037              JR      NC,?0011
   \   007D            ?0013:
     60                  {
     61                      // 保留尾部数据到 bufPrev, 保留头部数据到 bufNext
     62                      ViewFileStructPoint->bufPrev[i] = ViewFileStructPoint->bufFile[ FILE_SECTOR-(BUFF_ONE_ROW)+i ];
   \   007D  4F                LD      C,A
   \   007E  0600              LD      B,0
   \   0080  FDE5              PUSH    IY
   \   0082  E1                POP     HL
   \   0083  09                ADD     HL,BC
   \   0084  011302            LD      BC,531
   \   0087  09                ADD     HL,BC
   \   0088  46                LD      B,(HL)
   \   0089  C5                PUSH    BC
   \   008A  4F                LD      C,A
   \   008B  0600              LD      B,0
   \   008D  FDE5              PUSH    IY
   \   008F  E1                POP     HL
   \   0090  09                ADD     HL,BC
   \   0091  0E13              LD      C,19
   \   0093  09                ADD     HL,BC
   \   0094  C1                POP     BC
   \   0095  70                LD      (HL),B
     63                      ViewFileStructPoint->bufNext[i] = ViewFileStructPoint->bufFile[ i ];
   \   0096  4F                LD      C,A
   \   0097  0600              LD      B,0
   \   0099  FDE5              PUSH    IY
   \   009B  E1                POP     HL
   \   009C  09                ADD     HL,BC
   \   009D  0E27              LD      C,39
   \   009F  09                ADD     HL,BC
   \   00A0  46                LD      B,(HL)
   \   00A1  C5                PUSH    BC
   \   00A2  4F                LD      C,A
   \   00A3  0600              LD      B,0
   \   00A5  FDE5              PUSH    IY
   \   00A7  E1                POP     HL
   \   00A8  09                ADD     HL,BC
   \   00A9  012702            LD      BC,551
   \   00AC  09                ADD     HL,BC
   \   00AD  C1                POP     BC
   \   00AE  70                LD      (HL),B
   \   00AF  DD34FC            INC     (IX-4)
   \   00B2  18C2              JR      ?0012
   \   00B4            ?0011:
     64                  }
     65                  // 读一个扇区到 ViewFileStructPoint->bufFile
     66                  CLEAR_WATCHDOG();   //清WATCH DOG
   \   00B4  DB4E              IN      A,(78)
   \   00B6  CBDF              SET     3,A
   \   00B8  D34E              OUT     (78),A
     67                  FS_FSeek( ViewFileStructPoint->BufSector, SEEK_SET, ViewFileStructPoint->FileHandle );
   \   00BA  FD6E00            LD      L,(IY+0)
   \   00BD  FD6601            LD      H,(IY+1)
   \   00C0  E5                PUSH    HL
   \   00C1  0E00              LD      C,0
   \   00C3  C5                PUSH    BC
   \   00C4  FD5E0E            LD      E,(IY+14)
   \   00C7  FD560F            LD      D,(IY+15)
   \   00CA  41                LD      B,C
   \   00CB  CD0000            CALL    LWRD FS_FSeek
   \   00CE  E1                POP     HL
   \   00CF  E1                POP     HL
     68                  FS_FRead( (byte*)ViewFileStructPoint->bufFile, 1, ViewFileStructPoint->FileHandle );
   \   00D0  FD6E00            LD      L,(IY+0)
   \   00D3  FD6601            LD      H,(IY+1)
   \   00D6  E5                PUSH    HL
   \   00D7  0E01              LD      C,1
   \   00D9  212700            LD      HL,39
   \   00DC  FDE5              PUSH    IY
   \   00DE  D1                POP     DE
   \   00DF  19                ADD     HL,DE
   \   00E0  EB                EX      DE,HL
   \   00E1  CD0000            CALL    LWRD FS_FRead
   \   00E4  E1                POP     HL
   \   00E5            ?0008:
     69              }
     70              return TRUE;
   \   00E5  2E01              LD      L,1
     71          }
   \   00E7            ?0015:
   \   00E7  DDF9              LD      SP,IX
   \   00E9  DDE1              POP     IX
   \   00EB  FDE1              POP     IY
   \   00ED  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00F0            read_buff:
     72          
     73          //////////////////////////////////////////////////
     74          //根据给定的文件内地址读数据到bufPrev,bufFile和bufPrev中,并返回当前显示数据在buffer中的位置
     75          byte* read_buff(STRUCT_VIEW_FILE *ViewFileStructPoint, long OA_LongAddr, unsigned short ReadDataLength )

⌨️ 快捷键说明

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