📄 sdrv_putsdimage.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/May/107 10:53:28 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = large #
# Source file = d:\case_i_d913f\drv\ui_ssd1332\sdrv\sdrv_putsdimage.c#
# List file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_tk\list\sdrv_putsdimage.lst#
# Object file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_tk\obj\sdrv_putsdimage.r01#
# ASM file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_tk\list\sdrv_putsdimage.s01#
# Command line = -v0 -ml -uu #
# -OD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_tk\Obj\ #
# -e -K -w -gA -s9 -RCODE -r0 -DIC3951 -DNAPDEBUG #
# -LD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_tk\List\ #
# -q -t8 #
# -AD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_tk\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\Sdrv_putsdimage.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sdrv_putsdimage(16)
\ 0000 RSEG BAC_PSDI(0)
\ 0000 RSEG BAD_PSDI(0)
\ 0000 EXTERN DisplayBuffer
\ 0000 EXTERN Hdrv_BuffDataTrans
\ 0000 EXTERN Hdrv_SetDrawMode
\ 0000 EXTERN Hdrv_SetWindow
\ 0000 EXTERN SD_Read
\ 0000 PUBLIC Sdrv_PutSDImage
\ 0000 PUBLIC sdrw
\ 0000 EXTERN ?CLZ80L_4_04_L00
\ 0000 EXTERN ?L_MUL_L03
\ 0000 EXTERN ?SL_MOD_L03
\ 0000 EXTERN ?L_ADDASG_L03
\ 0000 EXTERN ?L_SUBASG_L03
\ 0000 RSEG BAC_PSDI
\ 0000 Sdrv_PutSDImage:
1 /*
2 ********************************************************************************
3 * ACTOS
4 * ui dirver show picture
5 *
6 * (c) Copyright 2002-2003, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * File : UI_PutSDImage.msa
10 * By : Rcmai
11 * Version: 1> v1.00 first version 10/17/2003 10:46PM
12 ********************************************************************************
13 */
14 #include "display.h"
15 #include "Intrz80.h" //用到input8();
16 #include "Drv_S6B33B0A.h"
17
18 //SD_RW sdrw;
19 //#pragma codeseg(UI_RCODE)
20
21 #pragma memory=constseg(BAS_PSDI)
22 #pragma memory=default
23
24 #pragma memory=dataseg(BAD_PSDI)
25 SD_RW sdrw;
26 //extern unsigned char BufPage;
27 #pragma memory=default
28
29 #pragma codeseg(BAC_PSDI)
30
31
32 void Sdrv_PutSDImage(region_t *pic,long int imgddr)
33 {
\ 0000 C5 PUSH BC
\ 0001 FDE5 PUSH IY
\ 0003 DDE5 PUSH IX
\ 0005 F5 PUSH AF
\ 0006 F5 PUSH AF
\ 0007 D5 PUSH DE
\ 0008 DDE1 POP IX
34 unsigned long cnt;
35 WORD cnt1;
36
37
38 //坐标出了屏幕,则退出
39 if(pic->x>Displaylength-1 || pic->y >Displayhight-1 )
\ 000A 1A LD A,(DE)
\ 000B 47 LD B,A
\ 000C 3E9F LD A,159
\ 000E B8 CP B
\ 000F DA8501 JP C,?0015
\ 0012 3E7F LD A,127
\ 0014 DDBE01 CP (IX+1)
\ 0017 DA8501 JP C,?0015
\ 001A ?0002:
\ 001A ?0003:
\ 001A ?0000:
40 {
41 return;
42 }
\ 001A ?0001:
43
44 //显示出屏幕的处理
45 if ((pic->height + pic->y) > Displayhight)
\ 001A DD6E01 LD L,(IX+1)
\ 001D 0600 LD B,0
\ 001F 50 LD D,B
\ 0020 DD5E03 LD E,(IX+3)
\ 0023 60 LD H,B
\ 0024 19 ADD HL,DE
\ 0025 4D LD C,L
\ 0026 44 LD B,H
\ 0027 218000 LD HL,128
\ 002A B5 OR L
\ 002B ED42 SBC HL,BC
\ 002D E23100 JP PO,?0018
\ 0030 AC XOR H
\ 0031 ?0018:
\ 0031 FA8501 JP M,?0015
\ 0034 ?0004:
46 {
47 return;
48 }
\ 0034 ?0005:
49 if (pic->width > Displaylength-pic->x)
\ 0034 DD4E02 LD C,(IX+2)
\ 0037 42 LD B,D
\ 0038 DD5E00 LD E,(IX+0)
\ 003B 21A000 LD HL,160
\ 003E A7 AND A
\ 003F ED52 SBC HL,DE
\ 0041 F680 OR 128
\ 0043 ED42 SBC HL,BC
\ 0045 E24900 JP PO,?0019
\ 0048 AC XOR H
\ 0049 ?0019:
\ 0049 FA8501 JP M,?0015
\ 004C ?0006:
50 {
51 return;
52 }
\ 004C ?0007:
53
54 Hdrv_SetDrawMode(DrawModeH_def);
\ 004C 58 LD E,B
\ 004D CD0000 CALL Hdrv_SetDrawMode
55
56 Hdrv_SetWindow(pic); //设定要填入 的 图片的 行、列起始地址,就从这里开始填数据
\ 0050 DDE5 PUSH IX
\ 0052 D1 POP DE
\ 0053 CD0000 CALL Hdrv_SetWindow
57
58 cnt = (unsigned long)pic->width * (unsigned long)pic->height * 2;
\ 0056 DD6E02 LD L,(IX+2)
\ 0059 48 LD C,B
\ 005A 61 LD H,C
\ 005B C5 PUSH BC
\ 005C E5 PUSH HL
\ 005D DD6E03 LD L,(IX+3)
\ 0060 61 LD H,C
\ 0061 CD0000 CALL ?L_MUL_L03
\ 0064 29 ADD HL,HL
\ 0065 CB11 RL C
\ 0067 CB10 RL B
\ 0069 E5 PUSH HL
\ 006A 210200 LD HL,2
\ 006D 39 ADD HL,SP
\ 006E D1 POP DE
\ 006F 73 LD (HL),E
\ 0070 23 INC HL
\ 0071 72 LD (HL),D
\ 0072 23 INC HL
\ 0073 71 LD (HL),C
\ 0074 23 INC HL
\ 0075 70 LD (HL),B
59 cnt1 = 512 - (imgddr%512);//如不是页的开始,先读前面的不整页部分
\ 0076 210000 LD HL,0
\ 0079 E5 PUSH HL
\ 007A 2602 LD H,2
\ 007C E5 PUSH HL
\ 007D 211000 LD HL,16
\ 0080 39 ADD HL,SP
\ 0081 5E LD E,(HL)
\ 0082 23 INC HL
\ 0083 56 LD D,(HL)
\ 0084 23 INC HL
\ 0085 4E LD C,(HL)
\ 0086 23 INC HL
\ 0087 46 LD B,(HL)
\ 0088 EB EX DE,HL
\ 0089 CD0000 CALL ?SL_MOD_L03
\ 008C EB EX DE,HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -