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 + -
显示快捷键?