sdrv_init_thai.lst

来自「一种彩屏驱动以及画点,填充图片和填充数据的一些程序」· LST 代码 · 共 260 行

LST
260
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/May/107  10:53:26 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  large                                               #
#       Source file   =  d:\case_i_d913f\drv\ui_ssd1332\sdrv_thai\sdrv_init_thai.c#
#       List file     =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_th\list\sdrv_init_thai.lst#
#       Object file   =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_th\obj\sdrv_init_thai.r01#
#       ASM file      =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_th\list\sdrv_init_thai.s01#
#       Command line  =  -v0 -ml -uu                                         #
#                        -OD:\case_i_d913f\drv\Ui_SSD1332\ui_ssd13_th\Obj\   #
#                        -e -K -w -gA -s9 -RCODE -r0 -DIC3951 -DNAPDEBUG     #
#                        -LD:\case_i_d913f\drv\Ui_SSD1332\ui_ssd13_th\List\  #
#                        -q -t8                                              #
#                        -AD:\case_i_d913f\drv\Ui_SSD1332\ui_ssd13_th\List\  #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        -Id:\case_i_d913f\drv\ui_ssd1332\inc\               #
#                        D:\CASE_I_D913F\DRV\UI_SSD1332\SDRV_THAI\sdrv_init_thai.c #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sdrv_init_thai(16)
   \   0000                    RSEG    BBC_IE(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    BBD_IE(0)
   \   0000                    RSEG    BBS_IE(0)
   \   0000                    EXTERN  AsciiFontLibAddr
   \   0000                    PUBLIC  AsciiFontName
   \   0000                    EXTERN  BufPage
   \   0000                    EXTERN  Drv_Entrance
   \   0000                    EXTERN  FontLibAddr
   \   0000                    PUBLIC  FontLibName
   \   0000                    EXTERN  Hdrv_HardInit
   \   0000                    EXTERN  SD_FClose
   \   0000                    EXTERN  SD_FOpen
   \   0000                    PUBLIC  Sdrv_Exit
   \   0000                    PUBLIC  Sdrv_Init
   \   0000                    PUBLIC  fp
   \   0000                    PUBLIC  test
   \   0000                    EXTERN  ?CLZ80L_4_04_L00
   \   0000                    RSEG    BBC_IE
   \   0000            Sdrv_Init:
      1          /*
      2          ********************************************************************************
      3          *                       ACTOS
      4          *                  UI Init function
      5          *
      6          *                (c) Copyright 2002-2003, Actions Co,Ld.
      7          *                        All Right Reserved
      8          *
      9          * File   : UI_Init.msa
     10          * By     : Gongee
     11          * Version: 1> v1.00     first version     10/17/2003 9:47PM
     12          ********************************************************************************
     13          */
     14          
     15          #include "display.h"
     16          #include "Drv_S6B33B0A.h"
     17          
     18          //#define DEBUG
     19          #ifdef DEBUG
     20          #define ERR(x) x
     21          #define MSG(x) x
     22          #else
     23          #define ERR(x)
     24          #define MSG(x)
     25          #endif
     26          
     27          char test;
     28          
     29          #pragma memory=dataseg(BBD_IE)
     30          SD_FILE *fp;
     31          #pragma memory=default
     32          
     33          #pragma memory=constseg(BBS_IE)
     34          char AsciiFontName[] = "ASCII.BIN";
     35          char FontLibName[] = "FONT_TH.$$$";
     36          #pragma memory=default
     37          
     38          #pragma codeseg(BBC_IE)
     39          bool    Sdrv_Init(char mode)
     40          {
   \   0000  C5                PUSH    BC
   \   0001  FDE5              PUSH    IY
   \   0003  DDE5              PUSH    IX
   \   0005  D5                PUSH    DE
   \   0006  F5                PUSH    AF
   \   0007  F5                PUSH    AF
     41                  test=0xff;
   \   0008  3EFF              LD      A,255
   \   000A  320000            LD      (test),A
     42                  fp = SD_FOpen(AsciiFontName,MODE_READ);
   \   000D  0E00              LD      C,0
   \   000F  110000            LD      DE,AsciiFontName
   \   0012  CD0000            CALL    SD_FOpen
   \   0015  220000            LD      (fp),HL
     43                  if (fp == NULL)
   \   0018  7D                LD      A,L
   \   0019  B4                OR      H
   \   001A  282D              JR      Z,?0012
   \   001C            ?0000:
     44                  {
     45                          ERR(printf("Cannot open Fontlib\n"));
     46                          return 0;
     47                  }
   \   001C            ?0001:
     48                  AsciiFontLibAddr = fp->startaddr;
   \   001C  210C00            LD      HL,12
   \   001F  ED4B0000          LD      BC,(fp)
   \   0023  09                ADD     HL,BC
   \   0024  4E                LD      C,(HL)
   \   0025  23                INC     HL
   \   0026  46                LD      B,(HL)
   \   0027  23                INC     HL
   \   0028  5E                LD      E,(HL)
   \   0029  23                INC     HL
   \   002A  56                LD      D,(HL)
   \   002B  ED430000          LD      (AsciiFontLibAddr),BC
   \   002F  ED530200          LD      (AsciiFontLibAddr+2),DE
     49                  SD_FClose(fp);
   \   0033  ED5B0000          LD      DE,(fp)
   \   0037  CD0000            CALL    SD_FClose
     50          
     51                  fp = SD_FOpen(FontLibName,MODE_READ);
   \   003A  0E00              LD      C,0
   \   003C  110A00            LD      DE,FontLibName
   \   003F  CD0000            CALL    SD_FOpen
   \   0042  220000            LD      (fp),HL
     52                  if (fp == NULL)
   \   0045  7D                LD      A,L
   \   0046  B4                OR      H
   \   0047  2003              JR      NZ,?0003
   \   0049            ?0002:
     53                  {
     54                          ERR(printf("Cannot open Fontlib\n"));
     55                          return 0;
   \   0049            ?0012:
   \   0049  AF                XOR     A
     56                  }
   \   004A  1853              JR      ?0007
   \   004C            ?0003:
     57                  FontLibAddr = fp->startaddr;
   \   004C  210C00            LD      HL,12
   \   004F  ED4B0000          LD      BC,(fp)
   \   0053  09                ADD     HL,BC
   \   0054  4E                LD      C,(HL)
   \   0055  23                INC     HL
   \   0056  46                LD      B,(HL)
   \   0057  23                INC     HL
   \   0058  5E                LD      E,(HL)
   \   0059  23                INC     HL
   \   005A  56                LD      D,(HL)
   \   005B  ED430000          LD      (FontLibAddr),BC
   \   005F  ED530200          LD      (FontLibAddr+2),DE
     58                  SD_FClose(fp);
   \   0063  ED5B0000          LD      DE,(fp)
   \   0067  CD0000            CALL    SD_FClose
     59          
     60                  BufPage=0x07;           //Buffer默认位于Zram2
   \   006A  3E07              LD      A,7
   \   006C  320000            LD      (BufPage),A
     61          
     62                  if(mode==0)
   \   006F  210400            LD      HL,4
   \   0072  39                ADD     HL,SP
   \   0073  AF                XOR     A
   \   0074  B6                OR      (HL)
   \   0075  2012              JR      NZ,?0005
   \   0077            ?0004:
     63                  //change by ybfu 2005-10-11 10:31
     64                  {
     65                  //********** 显示中断向量的赋值 ******** 必须
     66                  char *i;
     67              int  *j;
     68              Hdrv_HardInit();           
   \   0077  CD0000            CALL    Hdrv_HardInit
     69              i = (char *)RSTDisplayAPI;
   \   007A  DD212000          LD      IX,32
     70              *i = 0xc3;
   \   007E  DD3600C3          LD      (IX+0),195
     71              i++;
     72              j = (int *)i;
   \   0082  DD23              INC     IX
   \   0084  DDE5              PUSH    IX
   \   0086  C1                POP     BC
     73              *j = (int)Drv_Entrance;
   \   0087  180D              JR      ?0013
     74              }
     75                  else
   \   0089            ?0005:
     76                  { 
     77                  char *i;
     78              int  *j;
     79              i = (char *)RSTDisplayAPI;
   \   0089  FD212000          LD      IY,32
     80              *i = 0xc3;
   \   008D  FD3600C3          LD      (IY+0),195
     81              i++;
     82              j = (int *)i;
   \   0091  FD23              INC     IY
   \   0093  FDE5              PUSH    IY
   \   0095  C1                POP     BC
     83              *j = (int)Drv_Entrance;
   \   0096            ?0013:
   \   0096  69                LD      L,C
   \   0097  60                LD      H,B
   \   0098  3600              LD      (HL),LOW(Drv_Entrance)
   \   009A  23                INC     HL
   \   009B  3600              LD      (HL),HIGH(Drv_Entrance)
   \   009D            ?0006:
     84                  }
     85                  
     86                  return 1;
   \   009D  3E01              LD      A,1
     87          }
   \   009F            ?0007:
   \   009F  E1                POP     HL
   \   00A0  E1                POP     HL
   \   00A1  E1                POP     HL
   \   00A2  DDE1              POP     IX
   \   00A4  FDE1              POP     IY
   \   00A6  C1                POP     BC
   \   00A7  C9                RET
   \   00A8            Sdrv_Exit:
     88          
     89          void Sdrv_Exit(void)
     90          {
     91              return;
     92          }
   \   00A8  C9                RET
   \   0000                    RSEG    UDATA0
   \   0000            test:
   \   0001                    DEFS    1
   \   0000                    RSEG    BBD_IE
   \   0000            fp:
   \   0002                    DEFS    2
   \   0000                    RSEG    BBS_IE
   \   0000            AsciiFontName:
   \   0000  41534349          DEFB    'ASCII.BIN'
   \   0004  492E4249
   \   0008  4E
   \   0009  00                DEFB    0
   \   000A            FontLibName:
   \   000A  464F4E54          DEFB    'FONT_TH.$$$'
   \   000E  5F54482E
   \   0012  242424
   \   0015  00                DEFB    0
   \   0016                    END

Errors: none
Warnings: none
Code size: 169
Constant size: 22
Static variable size: Data(3) Iram(0)

⌨️ 快捷键说明

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