📄 ui_scroll2.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:39:05 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\common\ui_scroll2.c #
# List file = d:\case_i_d913f\ap\ap_voice\list\ui_scroll2.lst #
# Object file = d:\case_i_d913f\ap\ap_voice\obj\ui_scroll2.r01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_voice\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_voice\List\ -q -t8 #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# D:\CASE_I_D913F\AP\COMMON\ui_scroll2.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_scroll2(17)
\ 0000 RSEG CODE(0)
\ 0000 EXTERN CharOutRect
\ 0000 EXTERN GetOutPutErr
\ 0000 EXTERN GetTextPos
\ 0000 EXTERN PutS
\ 0000 PUBLIC ReadCode_sub
\ 0000 PUBLIC ScrollInit
\ 0000 PUBLIC ScrollInit_sub
\ 0000 EXTERN SetAsciiFont
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetTextPos
\ 0000 EXTERN TextOutRect
\ 0000 EXTERN scroll_cnt
\ 0000 EXTERN str_pt
\ 0000 EXTERN strhead_pt
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CODE
\ 0000 ScrollInit:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * wma player basal module implementation
5 *
6 * (c) Copyright Actions Co,Ld.
7 *
8 * $Id: ui_scroll.c,v 1.3 2004/12/30 09:22:32 ybfu Exp $
9 *******************************************************************************
10 */
11 /*
12 这个函数的作用是在汇编程序外包一层 C ,这样汇编在C中用BANK方式CALL
13 */
14 #include "actos.h"
15 #include "ap_common.h"
16
17 ///-extern char *str_pt;//字符串当前指针
18 ///-extern char *strhead_pt;//字串首址记录
19 ///-extern BYTE scroll_cnt;
20
21 void ScrollInit_sub(char *str,char language);
22
23 /* (字符串首址,是否初始化true为要初始化) */
24 void ScrollInit( char * scrollstr, char language)
25 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 F5 PUSH AF
\ 0003 F5 PUSH AF
26 region_t tregion;
27
28 tregion.x = scrollregionx_def;
\ 0004 210000 LD HL,0
\ 0007 39 ADD HL,SP
\ 0008 3630 LD (HL),48
29 tregion.y = scrollregiony_def;
\ 000A 23 INC HL
\ 000B 362D LD (HL),45
30 tregion.width = scrollregionw_def;
\ 000D 23 INC HL
\ 000E 3680 LD (HL),128
31 tregion.height = scrollregionh_def;
\ 0010 23 INC HL
\ 0011 3610 LD (HL),16
32
33 SetAsciiFont(FONT_TYPE_LARGE);
\ 0013 1E04 LD E,4
\ 0015 CD0000 CALL LWRD SetAsciiFont
34 SetBackgdColor(Color_MENU_def);
\ 0018 010000 LD BC,0
\ 001B 11FFFF LD DE,65535
\ 001E CD0000 CALL LWRD SetBackgdColor
35
36 TextOutRect(&tregion ,1);
\ 0021 0E01 LD C,1
\ 0023 210000 LD HL,0
\ 0026 39 ADD HL,SP
\ 0027 EB EX DE,HL
\ 0028 CD0000 CALL LWRD TextOutRect
37 ScrollInit_sub(scrollstr,language);
\ 002B 210600 LD HL,6
\ 002E 39 ADD HL,SP
\ 002F 4E LD C,(HL)
\ 0030 2B DEC HL
\ 0031 2B DEC HL
\ 0032 5E LD E,(HL)
\ 0033 23 INC HL
\ 0034 56 LD D,(HL)
\ 0035 3E00 LD A,BYTE3 ScrollInit_sub
\ 0037 219700 LD HL,LWRD ScrollInit_sub
\ 003A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
38 TextOutRect(&tregion ,0);
\ 003D 0E00 LD C,0
\ 003F 69 LD L,C
\ 0040 61 LD H,C
\ 0041 39 ADD HL,SP
\ 0042 EB EX DE,HL
\ 0043 CD0000 CALL LWRD TextOutRect
39
40 ///-SetBackgdColor(Color_MENU_def);
41 SetAsciiFont(FONT_TYPE_DEFAULT);
\ 0046 1E04 LD E,4
\ 0048 CD0000 CALL LWRD SetAsciiFont
42 return;
43 }
\ 004B E1 POP HL
\ 004C E1 POP HL
\ 004D E1 POP HL
\ 004E E1 POP HL
\ 004F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0052 ReadCode_sub:
44
45 int ReadCode_sub(char *tmpstrpt1,char language)
46 {
\ 0052 FDE5 PUSH IY
\ 0054 DDE5 PUSH IX
\ 0056 C5 PUSH BC
\ 0057 D5 PUSH DE
\ 0058 DDE1 POP IX
47 int code;
48
49 if((language>4)||(language==1))
\ 005A 3E04 LD A,4
\ 005C B9 CP C
\ 005D 3825 JR C,?0014
\ 005F 41 LD B,C
\ 0060 05 DEC B
\ 0061 2821 JR Z,?0014
\ 0063 ?0004:
\ 0063 ?0005:
\ 0063 ?0002:
50 {//ASCII
51 code = *tmpstrpt1;
\ 0063 ?0003:
52 }
53 else if(language==3)
\ 0063 210000 LD HL,0
\ 0066 39 ADD HL,SP
\ 0067 7E LD A,(HL)
\ 0068 FE03 CP 3
\ 006A DD7E00 LD A,(IX+0)
\ 006D 2006 JR NZ,?0008
\ 006F ?0007:
54 {//jap
55 if (*tmpstrpt1 >= 0x81)
\ 006F FE81 CP 129
\ 0071 3811 JR C,?0014
\ 0073 ?0009:
56 {
57 code = *(int *)tmpstrpt1;
\ 0073 1804 JR ?0023
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -