📄 sub_function1.lst
字号:
68 {
69 case FSEL_ALL_REPEATONE:
70 case FSEL_ALL_SEQUENCE:
71 case FSEL_DIR_SEQUENCE:
72 case FSEL_DIR_INTRO:
73 FSELSetMode( FSEL_ALL_REPEATALL );//PLAY 时按键
\ 0083 1804 JR ?0051
74 break;
\ 0085 ?0023:
75
76
77 default:
78 FSELSetMode(g_amv_vars.repeat_mode);//
79 break;
\ 0085 ?0021:
\ 0085 ?0020:
80 }
81 }
82 else if (mod == Stop_key)
\ 0085 AF XOR A
\ 0086 B6 OR (HL)
\ 0087 2004 JR NZ,?0026
\ 0089 ?0025:
83 {//
84 FSELSetMode(FSEL_ALL_REPEATALL);//STOP时按键
\ 0089 ?0051:
\ 0089 1E04 LD E,4
\ 008B 1804 JR ?0047
85 }
86 else
\ 008D ?0026:
87 {//正常播放的情况
88 FSELSetMode(g_amv_vars.repeat_mode);
\ 008D ED5B0300 LD DE,(g_amv_vars+3)
\ 0091 ?0047:
\ 0091 3E00 LD A,BYTE3 fselSetMode
\ 0093 210000 LD HL,LWRD fselSetMode
\ 0096 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0099 ?0027:
\ 0099 ?0024:
89 }
90
91 switch (Direct)
\ 0099 210200 LD HL,2
\ 009C 39 ADD HL,SP
\ 009D 5E LD E,(HL)
\ 009E CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 00A1 00 DEFB 0
\ 00A2 0500 DEFW 5
\ 00A4 D400 DEFW ?0034
\ 00A6 D700 DEFW ?0028
\ 00A8 D700 DEFW ?0028
\ 00AA B000 DEFW ?0031
\ 00AC B600 DEFW ?0032
\ 00AE C000 DEFW ?0033
\ 00B0 ?0029:
92 {
93 case Music_Reset_Head:
94 break;
\ 00B0 ?0030:
95
96 case Music_Reset_End:
97 break;
\ 00B0 ?0031:
98
99 case Music_Cur:
100 result = TRUE;
\ 00B0 2B DEC HL
\ 00B1 2B DEC HL
\ 00B2 3601 LD (HL),1
101 break;
\ 00B4 1821 JR ?0028
\ 00B6 ?0032:
102
103 case Music_Next:
104 result = FSELGetNext(g_amv_vars.location.filename);
\ 00B6 111F00 LD DE,g_amv_vars+31
\ 00B9 3E00 LD A,BYTE3 fselGetNextFile
\ 00BB 210000 LD HL,LWRD fselGetNextFile
\ 00BE 1808 JR ?0048
105 break;
\ 00C0 ?0033:
106
107 case Music_Prev:
108 result = FSELGetPrev(g_amv_vars.location.filename);
\ 00C0 111F00 LD DE,g_amv_vars+31
\ 00C3 3E00 LD A,BYTE3 fselGetPrevFile
\ 00C5 210000 LD HL,LWRD fselGetPrevFile
\ 00C8 ?0048:
\ 00C8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00CB E5 PUSH HL
\ 00CC 210200 LD HL,2
\ 00CF 39 ADD HL,SP
\ 00D0 C1 POP BC
\ 00D1 71 LD (HL),C
109 break;
\ 00D2 1803 JR ?0028
\ 00D4 ?0034:
110
111 default:
112 return FALSE;
\ 00D4 69 LD L,C
113 }
\ 00D5 1859 JR ?0037
\ 00D7 ?0028:
114
115 if (!result)
\ 00D7 210000 LD HL,0
\ 00DA 39 ADD HL,SP
\ 00DB AF XOR A
\ 00DC B6 OR (HL)
\ 00DD 2003 JR NZ,?0036
\ 00DF ?0035:
116 {
117 return result;
\ 00DF 6F LD L,A
118 }
\ 00E0 184E JR ?0037
\ 00E2 ?0036:
119 //取当前歌曲数状态
120 g_musicamount = (WORD)FSELGetTotal();
\ 00E2 3E00 LD A,BYTE3 fselGetTotal
\ 00E4 210000 LD HL,LWRD fselGetTotal
\ 00E7 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00EA 7D LD A,L
\ 00EB 320000 LD (g_musicamount),A
121 g_musicsequence = (WORD)FSELGetNo();
\ 00EE 3E00 LD A,BYTE3 fselGetNo
\ 00F0 210000 LD HL,LWRD fselGetNo
\ 00F3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00F6 7D LD A,L
\ 00F7 320000 LD (g_musicsequence),A
122 FSELSetMode(g_amv_vars.repeat_mode);
\ 00FA ED5B0300 LD DE,(g_amv_vars+3)
\ 00FE 3E00 LD A,BYTE3 fselSetMode
\ 0100 210000 LD HL,LWRD fselSetMode
\ 0103 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
123
124 //确保选择器与AP的目录对应
125 fselGetLocation(& g_amv_vars.location);
\ 0106 110500 LD DE,g_amv_vars+5
\ 0109 3E00 LD A,BYTE3 fselGetLocation
\ 010B 210000 LD HL,LWRD fselGetLocation
\ 010E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
126 //获取目录的长名
127 make_dirname();
\ 0111 3E00 LD A,BYTE3 make_dirname
\ 0113 210000 LD HL,LWRD make_dirname
\ 0116 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
128
129 //检测Music的类型
130 g_currentMusicType = CheckMusicType(g_amv_vars.location.filename);
\ 0119 111F00 LD DE,g_amv_vars+31
\ 011C 3E00 LD A,BYTE3 CheckMusicType
\ 011E 210000 LD HL,LWRD CheckMusicType
\ 0121 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0124 7D LD A,L
\ 0125 320000 LD (g_currentMusicType),A
131 //找歌词文件并打开
132
133 //清 WATCH_DOG
134 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0128 DB4E IN A,(78)
\ 012A CBDF SET 3,A
\ 012C D34E OUT (78),A
135
136 return TRUE;
\ 012E 2E01 LD L,1
137 }
\ 0130 ?0037:
\ 0130 F1 POP AF
\ 0131 F1 POP AF
\ 0132 F1 POP AF
\ 0133 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0136 SelectCurMusic:
138
139 //===================重选当前歌曲=========================
140 void SelectCurMusic(void)
141 {
\ 0136 C5 PUSH BC
\ 0137 D5 PUSH DE
142 ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
\ 0138 0E01 LD C,1
\ 013A 1E02 LD E,2
\ 013C 3E00 LD A,BYTE3 ChangeMusic
\ 013E 215300 LD HL,LWRD ChangeMusic
\ 0141 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
143 GetInformation(); //取文件信息
\ 0144 3E00 LD A,BYTE3 GetInformation
\ 0146 210000 LD HL,LWRD GetInformation
\ 0149 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
144 }
\ 014C D1 POP DE
\ 014D C1 POP BC
\ 014E C30000 JP LWRD ?BANK_FAST_LEAVE_L08
145 //========================================================
\ 0151 END
Errors: none
Warnings: none
Code size: 337
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -