navi.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 963 行 · 第 1/4 页
LST
963 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:58:31 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\navi.c #
# List file = d:\case_i_d913f\ap\ap_music\list\navi.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\navi.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\navi.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K #
# -w -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_music\List\ #
# -ND:\case_i_d913f\ap\ap_music\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# D:\CASE_I_D913F\AP\AP_MUSIC\navi.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME navi(17)
\ 0000 RSEG APC_NAVI(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG APD_NAVI(0)
\ 0000 PUBLIC CurListoffset
\ 0000 PUBLIC CurTotalNum
\ 0000 PUBLIC Navfileoffset
\ 0000 EXTERN Navi_read_head
\ 0000 EXTERN ScrollFlag
\ 0000 PUBLIC UI_play_Navi
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 PUBLIC buffer
\ 0000 EXTERN check_file_type
\ 0000 PUBLIC navi_buff
\ 0000 EXTERN ui_Navi_list
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?UC_MOD_L01
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?L_LSH_L03
\ 0000 EXTERN ?L_MUL_L03
\ 0000 EXTERN ?SL_DIV_L03
\ 0000 EXTERN ?SL_MOD_L03
\ 0000 EXTERN ?SL_CMP_L03
\ 0000 EXTERN ?L_INC_L03
\ 0000 EXTERN ?L_DEC_L03
\ 0000 EXTERN ?L_ADDASG_L03
\ 0000 EXTERN ?L_SUBASG_L03
\ 0000 EXTERN ?L_LSHASG_L03
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG APC_NAVI
\ 0000 UI_play_Navi:
1 #include "ap_music.h"
2 //extern BOOL Navi_read_data(long fileoffset,char direct);
3 //extern BOOL GetFilePath(file_location_t *location);
4 //extern BOOL Navi_read(long fileoffset);
5 extern BOOL Navi_read_head(long fileoffset,char direct,WORD *DelNum);
6 extern BOOL GetFilePath(file_location_t *location);
7 extern void ui_Navi_list(BYTE active,BYTE old_active,long file_active,char direct,bool scroll_flag);
8 extern int check_file_type(long active);
9 extern char ScrollFlag; //滚动标志位
10
11 long CurListoffset; //每个表的偏移量
12 long Navfileoffset; //当前表的已经读的偏移量
13 long CurTotalNum;
14
15 #pragma memory=dataseg(APD_NAVI)
16 //char msz_temp[12];
17 char navi_buff[NAVI_GROUP*30];
18 char buffer[512];
19 #pragma memory=default
20
21 #pragma codeseg(APC_NAVI)
22
23
24 int UI_play_Navi()
25 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 EEFF DEFW -18
\ 0005 FDE5 PUSH IY
26
27 BOOL need_read=FALSE;
28 BOOL need_draw=TRUE;
29 BYTE active_list = 0;
30 BYTE old_list =0;
31 char direct=0;
32 char key;
33 long g_active_list ;
34 WORD DelNum=0 ;
\ 0007 AF XOR A
\ 0008 DD77F6 LD (IX-10),A
\ 000B DD77F7 LD (IX-9),A
35 char head;
36 long save_list=0;
37 char save_active=0;
38
39
40 int result=0;
41
42 if(!Navi_read_head(0,0,&DelNum))
\ 000E DD77FD LD (IX-3),A
\ 0011 DD36FB01 LD (IX-5),1
\ 0015 DD77F8 LD (IX-8),A
\ 0018 DD77FC LD (IX-4),A
\ 001B DD77F2 LD (IX-14),A
\ 001E DD77F3 LD (IX-13),A
\ 0021 DD77F4 LD (IX-12),A
\ 0024 DD77F5 LD (IX-11),A
\ 0027 DD77FF LD (IX-1),A
\ 002A FD210000 LD IY,0
\ 002E 210A00 LD HL,10
\ 0031 39 ADD HL,SP
\ 0032 E5 PUSH HL
\ 0033 4F LD C,A
\ 0034 C5 PUSH BC
\ 0035 41 LD B,C
\ 0036 50 LD D,B
\ 0037 59 LD E,C
\ 0038 CDCD04 CALL LWRD ?0067
\ 003B F1 POP AF
\ 003C F1 POP AF
\ 003D 2C INC L
\ 003E 2D DEC L
\ 003F 2006 JR NZ,?0003
\ 0041 ?0002:
43 {
44 return RESULT_IGNORE;
\ 0041 213400 LD HL,52
45 }
\ 0044 C3BD04 JP LWRD ?0064
\ 0047 ?0003:
46 g_active_list =0;
47 head =1;
\ 0047 AF XOR A
\ 0048 DD77EE LD (IX-18),A
\ 004B DD77EF LD (IX-17),A
\ 004E DD77F0 LD (IX-16),A
\ 0051 DD77F1 LD (IX-15),A
\ 0054 DD36F901 LD (IX-7),1
\ 0058 ?0005:
48 while(1)
49 {
50 if(need_read)
\ 0058 AF XOR A
\ 0059 DDB6FD OR (IX-3)
\ 005C 2812 JR Z,?0008
\ 005E ?0007:
51 {
52 Navi_read_head(Navfileoffset,head,&DelNum);
\ 005E 210A00 LD HL,10
\ 0061 39 ADD HL,SP
\ 0062 E5 PUSH HL
\ 0063 DD6EF9 LD L,(IX-7)
\ 0066 E5 PUSH HL
\ 0067 CDC504 CALL LWRD ?0068
\ 006A F1 POP AF
\ 006B F1 POP AF
53 need_read=FALSE;
\ 006C DD36FD00 LD (IX-3),0
\ 0070 ?0008:
54 }
55 if(need_draw)
\ 0070 AF XOR A
\ 0071 DDB6FB OR (IX-5)
\ 0074 2824 JR Z,?0010
\ 0076 ?0009:
56 {
57
58 ui_Navi_list(active_list,active_list,g_active_list, direct,0);
\ 0076 0E00 LD C,0
\ 0078 C5 PUSH BC
\ 0079 DD6EFC LD L,(IX-4)
\ 007C E5 PUSH HL
\ 007D DD6EF0 LD L,(IX-16)
\ 0080 DD66F1 LD H,(IX-15)
\ 0083 E5 PUSH HL
\ 0084 DD6EEE LD L,(IX-18)
\ 0087 DD66EF LD H,(IX-17)
\ 008A E5 PUSH HL
\ 008B DD4EF8 LD C,(IX-8)
\ 008E 59 LD E,C
\ 008F CDDB04 CALL LWRD ?0069
\ 0092 E1 POP HL
\ 0093 E1 POP HL
\ 0094 E1 POP HL
\ 0095 E1 POP HL
59 need_draw = FALSE;
\ 0096 DD36FB00 LD (IX-5),0
\ 009A ?0010:
60 }
61 key = ap_get_message();
\ 009A CD0000 CALL LWRD ap_get_message
62 old_list = active_list;
\ 009D DD46F8 LD B,(IX-8)
\ 00A0 DD70FA LD (IX-6),B
63 switch( key)
\ 00A3 5F LD E,A
\ 00A4 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 00A7 0800 DEFW 8
\ 00A9 05 DEFB 5
\ 00AA 06 DEFB 6
\ 00AB 1E DEFB 30
\ 00AC 21 DEFB 33
\ 00AD 30 DEFB 48
\ 00AE 45 DEFB 69
\ 00AF 46 DEFB 70
\ 00B0 90 DEFB 144
\ 00B1 7804 DEFW ?0054
\ 00B3 B604 DEFW ?0061
\ 00B5 C300 DEFW ?0012
\ 00B7 6A01 DEFW ?0021
\ 00B9 3803 DEFW ?0043
\ 00BB 7204 DEFW ?0053
\ 00BD 7204 DEFW ?0053
\ 00BF C300 DEFW ?0012
\ 00C1 6A01 DEFW ?0021
\ 00C3 ?0012:
64 {
65 case AP_KEY_NEXT:
66 case AP_KEY_NEXT | AP_KEY_HOLD:
67 if(g_active_list< CurTotalNum-1)
\ 00C3 21FFFF LD HL,65535
\ 00C6 E5 PUSH HL
\ 00C7 E5 PUSH HL
\ 00C8 2A0800 LD HL,(CurTotalNum)
\ 00CB C1 POP BC
\ 00CC 09 ADD HL,BC
\ 00CD EB EX DE,HL
\ 00CE 2A0A00 LD HL,(CurTotalNum+2)
\ 00D1 C1 POP BC
\ 00D2 ED4A ADC HL,BC
\ 00D4 E5 PUSH HL
\ 00D5 D5 PUSH DE
\ 00D6 DD4EF0 LD C,(IX-16)
\ 00D9 DD46F1 LD B,(IX-15)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?