📄 ap_common.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 23/Feb/109 09:16:18 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d95f\ap\common\ap_common.c #
# List file = d:\case_i_d95f\ap\ap_radio\list\ap_common.lst #
# Object file = d:\case_i_d95f\ap\ap_radio\obj\ap_common.r01 #
# ASM file = d:\case_i_d95f\ap\ap_radio\list\ap_common.s01 #
# Command line = -v0 -mb -OD:\case_i_d95f\ap\ap_radio\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d95f\ap\ap_radio\List\ -q -t8 #
# -AD:\case_i_d95f\ap\ap_radio\List\ #
# -Id:\sdk_i_95f\inc\ -Id:\case_i_d95f\inc\ #
# d:\case_i_d95f\ap\common\ap_common.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ap_common(17)
\ 0000 RSEG COM_RES(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN PutSDImage
\ 0000 PUBLIC ResClose
\ 0000 PUBLIC ResOpen
\ 0000 PUBLIC ResShowPic
\ 0000 EXTERN SD_FClose
\ 0000 EXTERN SD_FOpen
\ 0000 EXTERN SD_FRead
\ 0000 EXTERN SD_FSeek
\ 0000 EXTERN UpdateScreen
\ 0000 PUBLIC res_entry
\ 0000 PUBLIC res_fp
\ 0000 PUBLIC res_head
\ 0000 PUBLIC res_region
\ 0000 PUBLIC ui_auto_select
\ 0000 PUBLIC ui_auto_update
\ 0000 PUBLIC ui_run_realtime
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?L_LSH_L03
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG COM_RES
\ 0000 ResOpen:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib file, udisk use this file too
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 *******************************************************************************
10 */
11 #pragma codeseg(COM_RES)
12
13 #ifdef USB_DISK_USING
14
15 /* usb disk 不使用调试宏*/
16 #define NAPDEBUG
17
18 /* usb disk 使用 non_bankl 方式call 这些函数*/
19 #pragma function=non_banked
20
21 #endif /* USB_DISK_USING*/
22
23 #include "ap_common.h"
24
25 //========== global field ===============
26
27 //操作这些资源时不能被中断, 这些变量应该放在所有ap可见的地方
28 SD_FILE *res_fp;
29 res_head_t res_head;
30 res_entry_t res_entry;
31 region_t res_region;
32
33 //请不要把这个变量定义在非IDATA0 段,否则不能初始化
34 BOOL ui_auto_update=TRUE; //是否自动刷新屏幕
35 BOOL ui_auto_select=TRUE; //是否自动确认
36 BOOL ui_run_realtime=FALSE; //控件跑实时模式
37
38 /*
39 ********************************************************************************
40 * Description : 打开资源文件
41 *
42 * Arguments : filename, 资源文件名字
43 *
44 * Returns : 成功,文件指针
45 失败, NULL
46 *
47 * Notes :
48 *
49 ********************************************************************************
50 */
51 SD_FILE *ResOpen(const char * filename)
52 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
53 //open res file
54 res_fp = SD_FOpen(filename, 0);
\ 0002 0E00 LD C,0
\ 0004 CD0000 CALL LWRD SD_FOpen
\ 0007 220000 LD (res_fp),HL
55 if(res_fp == NULL ) return NULL;
\ 000A 7D LD A,L
\ 000B B4 OR H
\ 000C 2832 JR Z,?0015
\ 000E ?0002:
\ 000E ?0003:
56
57 //check magic "RES 0x19"
58 SD_FRead(res_fp, &res_head, sizeof(res_head));
\ 000E 211000 LD HL,16
\ 0011 E5 PUSH HL
\ 0012 010200 LD BC,res_head
\ 0015 ED5B0000 LD DE,(res_fp)
\ 0019 CD0000 CALL LWRD SD_FRead
\ 001C F1 POP AF
59 if( res_head.magic[0] != 'R' ||
60 res_head.magic[1] != 'E' ||
61 res_head.magic[2] != 'S' ||
62 res_head.magic[3] != 0x19 )
\ 001D 3A0200 LD A,(res_head)
\ 0020 FE52 CP 82
\ 0022 2015 JR NZ,?0006
\ 0024 3A0300 LD A,(res_head+1)
\ 0027 FE45 CP 69
\ 0029 200E JR NZ,?0006
\ 002B 3A0400 LD A,(res_head+2)
\ 002E FE53 CP 83
\ 0030 2007 JR NZ,?0006
\ 0032 3A0500 LD A,(res_head+3)
\ 0035 FE19 CP 25
\ 0037 280C JR Z,?0005
\ 0039 ?0006:
\ 0039 ?0007:
\ 0039 ?0004:
63 {
64 SD_FClose(res_fp);
\ 0039 ED5B0000 LD DE,(res_fp)
\ 003D CD0000 CALL LWRD SD_FClose
65 return NULL;
\ 0040 ?0015:
\ 0040 210000 LD HL,0
66 }
\ 0043 1803 JR ?0008
\ 0045 ?0005:
67
68 //check count
69 ASSERT(res_head.counts == UIID_MAX);
70
71 //return ok
72 return res_fp;
\ 0045 2A0000 LD HL,(res_fp)
73 }
\ 0048 ?0008:
\ 0048 F1 POP AF
\ 0049 C1 POP BC
\ 004A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 004D ResClose:
74
75 /*
76 ********************************************************************************
77 * Description : 关闭资源文件
78 *
79 * Arguments :
80 *
81 * Returns :
82 *
83 * Notes :
84 *
85 ********************************************************************************
86 */
87 void ResClose(const SD_FILE *fp)
88 {
\ 004D D5 PUSH DE
89 SD_FClose(fp);
\ 004E CD0000 CALL LWRD SD_FClose
90 }
\ 0051 E1 POP HL
\ 0052 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0055 ResShowPic:
91
92 /*
93 ********************************************************************************
94 * Description : 显示128*32 的图形
95 *
96 * Arguments : id, 资源代号
97 *
98 * Returns : 成功,1 失败,0
99 *
100 * Notes :
101 *
102 ********************************************************************************
103 */
104 //int ResShowLogo(WORD id)
105 //{
106 // ASSERT(id <= UIID_MAX);
107 //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -