📄 sub_display.s01
字号:
NAME sub_display(17)
RSEG AP_SUB_DIS(0)
RSEG IDATA0(0)
RSEG CDATA0(0)
RSEG APC_SUB_DIS(0)
EXTERN ClearScreen
PUBLIC DisplayErrMsg
PUBLIC EQ_PIC
EXTERN GetBattery
EXTERN GetDCStatus
PUBLIC LOOP_PIC
PUBLIC PALYLIST_PIC
EXTERN PutS
EXTERN RePlayStatus
PUBLIC RefreshMainScreen
EXTERN ResShowMultiString
EXTERN ResShowPic
PUBLIC SRSModeFlag
EXTERN Scroll
EXTERN SetBackgdColor
EXTERN SetPenColor
EXTERN SetTextOutMode
EXTERN SetTextPos
EXTERN ShowNowTime
EXTERN Show_Bitrate
PUBLIC Show_MusicType
EXTERN UpDisplayFlag
EXTERN ap_get_message
EXTERN ap_sleep
EXTERN dir_name
EXTERN g_TagInfoBuf
EXTERN g_TagInfoBuf1
EXTERN g_comval
EXTERN g_currentMusicType
EXTERN g_lyricflag
EXTERN g_music_vars
EXTERN g_musicamount
EXTERN g_musicsequence
EXTERN itoa_2
EXTERN itoa_3
EXTERN main_ResShowPic
EXTERN need_draw
PUBLIC num_id
PUBLIC songnum_id
EXTERN temp_buffer
EXTERN ui_show_a
EXTERN ui_show_b
EXTERN ui_show_batt
EXTERN ui_show_c
PUBLIC ui_show_h
PUBLIC ui_show_vol
EXTERN wmapSendCommand
EXTERN ?CLZ80B_4_04_L00
EXTERN ?C_S_SWITCH_L06
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG AP_SUB_DIS
RefreshMainScreen:
; 1. /*
; 2. *******************************************************************************
; 3. * ACTOS AP
; 4. * This program demostrates how to build an AP
; 5. *
; 6. * (c) Copyright Actions Co,Ld.
; 7. *
; 8. * $Id: sub_display.c,v 1.2 2006/06/26 01:14:24 tangwh Exp $
; 9. *******************************************************************************
; 10. */
; 11. #include "ap_music.h"
; 12. byte SRSModeFlag=0;
; 13. #pragma codeseg(AP_SUB_DIS)
; 14.
; 15. #pragma memory=constseg(APC_SUB_DIS)
; 16. const WORD EQ_PIC[] =
; 17. {
; 18. MEQICON1, MEQICON2, MEQICON3, MEQICON4, MEQICON5, MEQICON6, MEQICON7, MEQICON1
; 19.
; 20.
; 21. };
; 22.
; 23. const WORD LOOP_PIC[7] =
; 24. {
; 25. MLOOP1, MLOOP2, MLOOP3, MLOOP4, MLOOP5, MLOOP6, MLOOP7
; 26. };
; 27.
; 28. const WORD PALYLIST_PIC[6] =
; 29. {//Playlist 模式图标
; 30. PLAYLIST,ARTIST,ALBUM,GENRE,COMPOSE,DIRBG
; 31. };
; 32.
; 33. const WORD num_id[10] = {TVNUM0,TVNUM1,TVNUM2,TVNUM3,TVNUM4,TVNUM5,TVNUM6,TVNUM7,TVNUM8,TVNUM9}; //系统时间&音量显示
; 34. const WORD songnum_id[10]= {MNUM0,MNUM1,MNUM2,MNUM3,MNUM4,MNUM5,
; 35. MNUM6,MNUM7,MNUM8,MNUM9}; //音乐曲目
; 36. #pragma memory=default
; 37.
; 38. int main_ResShowPic( WORD id, uchar x, uchar y );
; 39. void ui_show_vol(BYTE volume);
; 40. void ui_show_h(const char *string);
; 41. /*
; 42. ********************************************************************************
; 43. * void RefreshMainScreen( void )
; 44. *
; 45. * Description : 主显示的刷新函数,只有有需要时,才调用此函数
; 46. *
; 47. * Arguments : void
; 48. *
; 49. * Returns : void
; 50. *
; 51. * Notes :
; 52. *
; 53. ********************************************************************************
; 54. */
; 55. void RefreshMainScreen( void )
; 56. {
PUSH BC
PUSH DE
; 57. wma_play_status_t status_buf;
; 58. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 59. if (UpDisplayFlag & up_musicBackGDPic)
LD A,(UpDisplayFlag)
BIT 0,A
JR Z,?0003
?0002:
; 60. {
; 61. ResShowPic(BACKDROP, POS_BG, POSY_BG);
LD C,0
PUSH BC
LD DE,16
CALL LWRD ?0129
POP AF
; 62. ui_show_vol(g_music_vars.volume);
CALL LWRD ?0130
?0003:
; 63. }
; 64.
; 65. if (UpDisplayFlag & up_musictypeflag)
LD HL,(UpDisplayFlag)
BIT 7,H
JR Z,?0005
?0004:
; 66. {
; 67. Show_MusicType();
LD A,BYTE3 Show_MusicType
LD HL,LWRD Show_MusicType
CALL LWRD ?BANK_CALL_DIRECT_L08
?0005:
; 68. }
; 69.
; 70. if ((UpDisplayFlag & up_musicbitrate)&&(RePlayStatus == NormalPlay))
LD HL,(UpDisplayFlag)
BIT 5,H
JR Z,?0007
LD A,(RePlayStatus)
OR A
JR NZ,?0007
?0009:
?0008:
?0006:
; 71. {
; 72. main_ResShowPic(BBCK2,0,0);//复读切回播放时显示比特率
LD C,A
PUSH BC
LD DE,29
CALL LWRD ?0126
POP AF
; 73. Show_Bitrate();
LD A,BYTE3 Show_Bitrate
LD HL,LWRD Show_Bitrate
CALL LWRD ?BANK_CALL_DIRECT_L08
?0007:
; 74. }
; 75.
; 76. if (UpDisplayFlag & up_musicloopmode)
LD HL,(UpDisplayFlag)
BIT 4,H
JR Z,?0011
?0010:
; 77. {
; 78. if (g_music_vars.fselmod == FSEL_TYPE_COMMONDIR)
LD A,(g_music_vars+79)
OR A
JR NZ,?0013
?0012:
; 79. {
; 80. g_music_vars.play_listmod = mlistnor;//改为普通目录模式
LD A,5
LD (g_music_vars+78),A
?0013:
; 81. }
; 82. ui_show_b(LOOP_PIC[g_music_vars.repeat_mode]); //zxs change
LD HL,(g_music_vars+1)
LD H,0
ADD HL,HL
LD BC,LOOP_PIC
ADD HL,BC
LD E,(HL)
INC HL
LD D,(HL)
LD A,BYTE3 ui_show_b
LD HL,LWRD ui_show_b
CALL LWRD ?BANK_CALL_DIRECT_L08
; 83. main_ResShowPic(PALYLIST_PIC[g_music_vars.play_listmod],0,136);
LD C,136
PUSH BC
LD C,0
LD HL,(g_music_vars+78)
LD H,C
ADD HL,HL
LD DE,PALYLIST_PIC
CALL LWRD ?0127
POP AF
?0011:
; 84. }
; 85.
; 86. if (UpDisplayFlag & up_musicsequence)
LD HL,(UpDisplayFlag)
BIT 3,H
JP Z,?0016
?0014:
; 87. {
; 88. itoa_3(g_musicsequence, & temp_buffer[0]);
LD BC,temp_buffer
LD DE,(g_musicsequence)
LD A,BYTE3 itoa_3
LD HL,LWRD itoa_3
CALL LWRD ?BANK_CALL_DIRECT_L08
; 89. itoa_3(g_musicamount, & temp_buffer[3]);
LD BC,temp_buffer+3
LD DE,(g_musicamount)
LD A,BYTE3 itoa_3
LD HL,LWRD itoa_3
CALL LWRD ?BANK_CALL_DIRECT_L08
; 90. ui_show_h(& temp_buffer[0]);
LD DE,temp_buffer
LD A,BYTE3 ui_show_h
LD HL,LWRD ui_show_h
CALL LWRD ?BANK_CALL_DIRECT_L08
; 91.
; 92. switch (RePlayStatus)
LD DE,(RePlayStatus)
CALL LWRD ?C_S_SWITCH_L06
DEFB 0
DEFW 8
DEFW ?0016
DEFW ?0016
DEFW ?0018
DEFW ?0019
DEFW ?0020
DEFW ?0021
DEFW ?0022
DEFW ?0024
DEFW ?0023
?0017:
; 93. {
; 94. case NormalPlay:
; 95. //itoa_3(g_musicsequence, & temp_buffer[0]);
; 96. //ui_show_h(& temp_buffer[0], 0);
; 97. // strcat(temp_buffer,";");
; 98. //itoa_3(g_musicamount, & temp_buffer[3]);
; 99. //ui_show_h(& temp_buffer[0]);
; 100. break;
?0018:
; 101.
; 102. case WaitSetAPointForAB:
; 103. main_ResShowPic(BBCK1,0,0);//播放到复读切换时显示
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 104. main_ResShowPic(MRPLNOA,0,0);
LD C,0
PUSH BC
LD DE,154
JR ?0100
; 105. break;
?0019:
; 106.
; 107. case WaitSetBPointForAB:
; 108. main_ResShowPic(BBCK1,0,0);
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 109. main_ResShowPic(MRPLNOB,0,0);
LD C,0
PUSH BC
LD DE,155
JR ?0103
; 110. //ui_show_a(MRPLNOB);
; 111. break;
?0020:
; 112.
; 113. case ABLoopPlay:
; 114. main_ResShowPic(BBCK1,0,0);
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 115. main_ResShowPic(MRPLAB,0,0);
LD C,0
PUSH BC
LD DE,149
JR ?0103
; 116. break;
?0021:
; 117.
; 118. case FollowRec:
; 119. main_ResShowPic(BBCK1,0,0);
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 120. main_ResShowPic(MRPLMIC,0,0);
LD C,0
PUSH BC
LD DE,153
?0100:
JR ?0103
; 121. break;
?0022:
; 122.
; 123. case FollowAB:
; 124. main_ResShowPic(BBCK1,0,0);
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 125. main_ResShowPic(MRPLFL,0,0);
LD C,0
PUSH BC
LD DE,150
JR ?0103
; 126. break;
?0023:
; 127.
; 128. case CompareAB:
; 129. main_ResShowPic(BBCK1,0,0);
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 130. main_ResShowPic(MRPLFPK,0,0);
LD C,0
PUSH BC
LD DE,151
JR ?0103
; 131. break;
?0024:
; 132.
; 133. case ComparePlay:
; 134. main_ResShowPic(BBCK1,0,0);
LD C,0
PUSH BC
LD DE,28
CALL LWRD ?0126
POP AF
; 135. main_ResShowPic(MRPLFSPK,0,0);
LD C,0
PUSH BC
LD DE,152
?0103:
CALL LWRD ?0126
POP AF
; 136. break;
?0025:
; 137.
; 138. default:
; 139. break;
?0016:
?0015:
; 140. } //switch(RePlayStatus)
; 141. }
; 142.
; 143. if (UpDisplayFlag & up_musiceqmode)
LD HL,(UpDisplayFlag)
BIT 2,H
JR Z,?0038
?0026:
; 144. {
; 145. if(g_music_vars.eq_type <8)
LD A,(g_music_vars+2)
CP 8
JR NC,?0029
?0028:
; 146. {
; 147. ui_show_c(EQ_PIC[g_music_vars.eq_type]);
LD L,A
LD H,0
ADD HL,HL
LD BC,EQ_PIC
ADD HL,BC
LD E,(HL)
INC HL
LD D,(HL)
JR ?0097
; 148. }
; 149. else
?0029:
; 150. {
; 151. if( g_currentMusicType==Music_MP3 ||g_currentMusicType==Music_WMA)
LD A,(g_currentMusicType)
DEC A
JR Z,?0033
LD A,(g_currentMusicType)
DEC A
DEC A
JR NZ,?0032
?0033:
?0034:
?0031:
; 152. {
; 153. if(!SRSModeFlag)
LD A,(SRSModeFlag)
OR A
JR NZ,?0036
?0035:
; 154. ui_show_c(MEQSRS);
LD DE,117
JR ?0097
; 155. else
?0036:
; 156. ui_show_c(MEQUSER);
LD DE,119
JR ?0097
?0037:
; 157. }
; 158. else
?0032:
; 159. ui_show_c(EQ_PIC[0]) ;
LD DE,(EQ_PIC)
?0097:
LD A,BYTE3 ui_show_c
LD HL,LWRD ui_show_c
CALL LWRD ?BANK_CALL_DIRECT_L08
?0038:
?0030:
?0027:
; 160. // ui_show_c(EQWOW);
; 161. }
; 162. }
; 163.
; 164. if (UpDisplayFlag & up_musiccurrenttime)
LD HL,(UpDisplayFlag)
BIT 1,H
JR Z,?0042
?0039:
; 165. { //注:进入时要恢复上次播放到的时间
; 166. if ((RePlayStatus != FollowRec) && (RePlayStatus != ComparePlay))
LD A,(RePlayStatus)
CP 4
JR Z,?0042
CP 6
JR Z,?0042
?0044:
?0043:
?0041:
; 167. {
; 168. ShowNowTime(FALSE);
LD E,0
LD A,BYTE3 ShowNowTime
LD HL,LWRD ShowNowTime
CALL LWRD ?BANK_CALL_DIRECT_L08
?0042:
?0040:
; 169. }
; 170. }
; 171. CLEAR_WATCHDOG();
IN A,(78)
SET 3,A
OUT (78),A
; 172. if (UpDisplayFlag & up_musictotaltime)
LD HL,(UpDisplayFlag)
BIT 0,H
JR Z,?0046
?0045:
; 173. {
; 174. ui_show_vol(g_music_vars.volume);
CALL LWRD ?0130
?0046:
; 175. }
; 176.
; 177. if (UpDisplayFlag & up_musicbattery)
LD A,(UpDisplayFlag)
BIT 7,A
JR Z,?0048
?0047:
; 178. {
; 179. ui_show_batt( GetBattery(), g_comval.BatteryType,0);
LD C,0
PUSH BC
LD BC,(g_comval+15)
CALL LWRD GetBattery
LD E,A
LD D,0
LD A,BYTE3 ui_show_batt
LD HL,LWRD ui_show_batt
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
?0048:
; 180. }
; 181.
; 182. if (UpDisplayFlag & up_musicinformation)
LD A,(UpDisplayFlag)
BIT 6,A
JP Z,?0057
?0049:
; 183. {
; 184. main_ResShowPic(DIRBCK,25,139);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -