📄 main.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:31:05 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_browser\main.c #
# List file = d:\case_i_d913f\ap\ap_browser\list\main.lst #
# Object file = d:\case_i_d913f\ap\ap_browser\obj\main.r01 #
# ASM file = d:\case_i_d913f\ap\ap_browser\list\main.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_browser\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d913f\ap\ap_browser\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_browser\List\ #
# -ND:\case_i_d913f\ap\ap_browser\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\ap\ap_browser\main.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME main(17)
\ 0000 RSEG CODE(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG CONST(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 PUBLIC ActiveDriveOK
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN ClearScreen
\ 0000 EXTERN DRV_ActiveDrive
\ 0000 EXTERN DRV_ActiveUD
\ 0000 EXTERN DRV_DetectUD
\ 0000 PUBLIC File_Type
\ 0000 EXTERN GetDefaultComval
\ 0000 EXTERN ResClose
\ 0000 EXTERN ResOpen
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN VMRead
\ 0000 EXTERN VMWrite
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselInit
\ 0000 PUBLIC g_DiskStateFlag
\ 0000 PUBLIC g_Resfp_Sav
\ 0000 PUBLIC g_browser_vars
\ 0000 PUBLIC g_comval
\ 0000 PUBLIC g_langid
\ 0000 PUBLIC g_menu_active
\ 0000 PUBLIC g_result
\ 0000 PUBLIC main
\ 0000 PUBLIC menu
\ 0000 PUBLIC need_draw
\ 0000 PUBLIC read_var
\ 0000 EXTERN ui_show_a
\ 0000 EXTERN ui_show_msg
\ 0000 EXTERN ui_stop
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCPY_L11
\ 0000 EXTERN ?STRCMP_L11
\ 0000 RSEG CODE
\ 0000 main:
1 /*
2 *******************************************************************************
3 * SDK30F_D1
4 * music player main sub
5 *
6 * (c) Copyright 2002, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * File: main.c
10 * By : rcmai
11 * Version: 1> v1.00 first version 2004-3-19 8:28
12 *******************************************************************************
13 * $Id: main.c,v 1.1.1.1 2006/04/21 08:22:43 selina Exp $
14 *******************************************************************************
15 */
16 #include "ap_browser.h"
17 comval_t g_comval; //系统变量,ap不能更改
18 BYTE g_langid ;//记录系统语言
19 bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
20 BYTE g_DiskStateFlag = 0;
21 browser_vars_t g_browser_vars;//本AP的公共变量
22 bool need_draw;
23 function_menu_t menu;
24 SD_FILE* g_Resfp_Sav;
25 bool ActiveDriveOK;//磁盘可用标志
26 int g_result;//表示16位变量
27
28 char File_Type( char * filename );
29
30 int main( void )
31 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 DDE5 PUSH IX
\ 0004 F5 PUSH AF
\ 0005 F5 PUSH AF
32 int mainresult;
33 int result;
34 BYTE status;
35 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0006 DB4E IN A,(78)
\ 0008 CBDF SET 3,A
\ 000A D34E OUT (78),A
36 //-------安装ud驱动------------
37 g_Resfp_Sav = ResOpen("ui30.res");
\ 000C 110000 LD DE,?0002
\ 000F 3E00 LD A,BYTE3 ResOpen
\ 0011 210000 LD HL,LWRD ResOpen
\ 0014 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0017 225A00 LD (g_Resfp_Sav),HL
38 if(!g_Resfp_Sav)
\ 001A 7D LD A,L
\ 001B B4 OR H
\ 001C 200C JR NZ,?0004
\ 001E ?0003:
39 {
40 ResClose(g_Resfp_Sav);
\ 001E EB EX DE,HL
\ 001F 3E00 LD A,BYTE3 ResClose
\ 0021 210000 LD HL,LWRD ResClose
\ 0024 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
41 return RESULT_MAIN;
\ 0027 C38301 JP LWRD ?0081
42 }
\ 002A ?0004:
43
44 DRV_ActiveUD(0,MODE_SLOW);
\ 002A 0E01 LD C,1
\ 002C 1E00 LD E,0
\ 002E CD0000 CALL LWRD DRV_ActiveUD
45 /* 读入公共变量 */
46 read_var();
\ 0031 3E00 LD A,BYTE3 read_var
\ 0033 211803 LD HL,LWRD read_var
\ 0036 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
47 ActiveDriveOK = DRV_ActiveDrive('C', MODE_SLOW); //04-2-28 16:29
\ 0039 0E01 LD C,1
\ 003B 1E43 LD E,67
\ 003D CD0000 CALL LWRD DRV_ActiveDrive
\ 0040 325C00 LD (ActiveDriveOK),A
48 if (!ActiveDriveOK)
\ 0043 B7 OR A
\ 0044 202A JR NZ,?0006
\ 0046 ?0005:
49 {
50 ui_show_msg (MREADERR, MREADERR, g_langid); //temp ybfu
\ 0046 ED4B2000 LD BC,(g_langid)
\ 004A 47 LD B,A
\ 004B C5 PUSH BC
\ 004C 01FC01 LD BC,508
\ 004F 59 LD E,C
\ 0050 50 LD D,B
\ 0051 3E00 LD A,BYTE3 ui_show_msg
\ 0053 210000 LD HL,LWRD ui_show_msg
\ 0056 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0059 F1 POP AF
\ 005A ?0008:
51 while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
\ 005A CD0000 CALL LWRD ap_get_message
\ 005D B7 OR A
\ 005E 20FA JR NZ,?0008
\ 0060 ?0009:
\ 0060 ?0007:
52 ap_sleep(4);
\ 0060 110400 LD DE,4
\ 0063 3E00 LD A,BYTE3 ap_sleep
\ 0065 210000 LD HL,LWRD ap_sleep
\ 0068 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
53 g_browser_vars.location.disk='H'; //磁盘出错 从卡上读文件 zxs add
\ 006B 3E48 LD A,72
\ 006D 322400 LD (g_browser_vars+2),A
\ 0070 ?0006:
54 }
55 g_DiskStateFlag |= SetDiskOKFlag_def;//标志 flash 已格式化
\ 0070 210000 LD HL,g_DiskStateFlag
\ 0073 CBFE SET 7,(HL)
56
57 if (DRV_DetectUD(1) == 0x20)
\ 0075 1E01 LD E,1
\ 0077 CD0000 CALL LWRD DRV_DetectUD
\ 007A FE20 CP 32
\ 007C 2049 JR NZ,?0011
\ 007E ?0010:
58 { //有卡
59 DRV_ActiveUD(1,MODE_SLOW);
\ 007E 0E01 LD C,1
\ 0080 59 LD E,C
\ 0081 CD0000 CALL LWRD DRV_ActiveUD
60 if (!DRV_ActiveDrive('H', MODE_SLOW))
\ 0084 0E01 LD C,1
\ 0086 1E48 LD E,72
\ 0088 CD0000 CALL LWRD DRV_ActiveDrive
\ 008B B7 OR A
\ 008C 2032 JR NZ,?0013
\ 008E ?0012:
61 {
62 ui_show_msg (CREADERR, CREADERR, g_comval.langid); //temp ybfu
\ 008E ED4B0C00 LD BC,(g_comval+12)
\ 0092 47 LD B,A
\ 0093 C5 PUSH BC
\ 0094 017602 LD BC,630
\ 0097 59 LD E,C
\ 0098 50 LD D,B
\ 0099 3E00 LD A,BYTE3 ui_show_msg
\ 009B 210000 LD HL,LWRD ui_show_msg
\ 009E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A1 F1 POP AF
\ 00A2 ?0015:
63 while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
\ 00A2 CD0000 CALL LWRD ap_get_message
\ 00A5 B7 OR A
\ 00A6 20FA JR NZ,?0015
\ 00A8 ?0016:
\ 00A8 ?0014:
64 ap_sleep(4);
\ 00A8 110400 LD DE,4
\ 00AB 3E00 LD A,BYTE3 ap_sleep
\ 00AD 210000 LD HL,LWRD ap_sleep
\ 00B0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
65 g_browser_vars.location.disk='C'; //卡出错从Flash磁盘读文件
\ 00B3 3E43 LD A,67
\ 00B5 322400 LD (g_browser_vars+2),A
66 if (!ActiveDriveOK)
\ 00B8 3A5C00 LD A,(ActiveDriveOK)
\ 00BB B7 OR A
\ 00BC 2026 JR NZ,?0022
\ 00BE ?0017:
67 {
68 ResClose(g_Resfp_Sav);
\ 00BE 1812 JR ?0082
69 return 0;
70 }
\ 00C0 ?0018:
71 }
72 else
\ 00C0 ?0013:
73 g_DiskStateFlag |= SetCardOKFlag_def;//标志 卡 已格式化
\ 00C0 210000 LD HL,g_DiskStateFlag
\ 00C3 CBDE SET 3,(HL)
\ 00C5 ?0019:
74 }
75 else
\ 00C5 181D JR ?0022
\ 00C7 ?0011:
76 { //没卡
77 g_browser_vars.location.disk='C'; //卡出错从Flash磁盘读文件
\ 00C7 3E43 LD A,67
\ 00C9 322400 LD (g_browser_vars+2),A
78 if (!ActiveDriveOK)
\ 00CC 3A5C00 LD A,(ActiveDriveOK)
\ 00CF B7 OR A
\ 00D0 2012 JR NZ,?0022
\ 00D2 ?0021:
79 {
80 ResClose(g_Resfp_Sav);
\ 00D2 ?0082:
\ 00D2 ED5B5A00 LD DE,(g_Resfp_Sav)
\ 00D6 3E00 LD A,BYTE3 ResClose
\ 00D8 210000 LD HL,LWRD ResClose
\ 00DB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
81 return 0;
\ 00DE 210000 LD HL,0
82 }
\ 00E1 C39801 JP LWRD ?0027
\ 00E4 ?0022:
\ 00E4 ?0020:
83 }
84
85 SetPenColor(Color_WHITE_def);
\ 00E4 010000 LD BC,0
\ 00E7 11FFFF LD DE,65535
\ 00EA CD0000 CALL LWRD SetPenColor
86 SetBackgdColor(Color_BLACK_def);
\ 00ED 010000 LD BC,0
\ 00F0 59 LD E,C
\ 00F1 50 LD D,B
\ 00F2 CD0000 CALL LWRD SetBackgdColor
87 //show initializing...
88 ClearScreen(NULL);
\ 00F5 110000 LD DE,0
\ 00F8 CD0000 CALL LWRD ClearScreen
89 ResShowMultiString(WAITPASS, g_langid, 255, 56);
\ 00FB 0E38 LD C,56
\ 00FD C5 PUSH BC
\ 00FE 0EFF LD C,255
\ 0100 C5 PUSH BC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -