📄 ui_stop.s01
字号:
NAME ui_stop(17)
RSEG AP_UI_STP(0)
RSEG CONST(0)
RSEG UDATA0(0)
EXTERN DRV_DetectUD
PUBLIC MenuStrID
PUBLIC MenuStrIDWithCard
EXTERN ap_get_message
EXTERN ap_message_init
EXTERN fselGetLocation
EXTERN fselGetNextFile
EXTERN fselInit
EXTERN fselSetLocation
EXTERN g_browser_vars
EXTERN g_comval
EXTERN g_langid
PUBLIC list
EXTERN ui_directory
EXTERN ui_err_msg
EXTERN ui_popup_list
EXTERN ui_show_msg
PUBLIC ui_stop
EXTERN ?CLZ80B_4_04_L00
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
RSEG AP_UI_STP
ui_stop:
; 1. /*
; 2. *******************************************************************************
; 3. * ACTOS AP
; 4. * This program demostrates how to build an AP
; 5. *
; 6. * (c) Copyright Actions Co,Ld.
; 7. *
; 8. * $Id: ui_stop.c,v 1.1.1.1 2006/04/21 08:22:43 selina Exp $
; 9. *******************************************************************************
; 10. */
; 11. #include "ap_browser.h"
; 12. extern comval_t g_comval; //系统变量,ap不能更改
; 13. extern bool ActiveDriveOK;
; 14. const WORD MenuStrID[2]={MSTOP1,MSTOP5};//,VSTOPM4};
; 15. const WORD MenuStrIDWithCard[3]={MSTOP1,MSTOP2,MSTOP5};
; 16. pop_up_list_t list; //define menu
; 17.
; 18. //======================================================================================
; 19. //RESULT_CURR_UI: 还要处在当前界面
; 20. //RESULT_UI_STOP: 到UI_STOP界面(因现在就是UI_STOP界面,所以同上)
; 21. //RESULT_LAST_UI: 到上一级界面
; 22. //--------------------------------------------------------------------------------------
; 23. #pragma codeseg(AP_UI_STP)
; 24.
; 25. int ui_stop(void)
; 26. {
PUSH BC
PUSH DE
PUSH IY
PUSH IX
LD IX,0
ADD IX,SP
PUSH AF
PUSH AF
; 27. int result,card_init;
; 28. bool g_card_ok=FALSE;
; 29. bool g_card_out=FALSE;
LD (IX-4),0
LD (IX-3),0
?0003:
; 30. while(1)
; 31. {
; 32. ap_message_init(NULL);//开始算STANDBY 时间
LD DE,0
LD A,BYTE3 ap_message_init
LD HL,LWRD ap_message_init
CALL LWRD ?BANK_CALL_DIRECT_L08
; 33. //result = DRV_DetectUD(1); //检查是否有卡
; 34. if(DRV_DetectUD(1) == 0x20)
LD E,1
CALL LWRD DRV_DetectUD
CP 32
JR NZ,?0006
?0005:
; 35. g_card_ok = TRUE;
LD (IX-4),1
?0006:
; 36.
; 37. list.active=0;
LD HL,0
LD (list+4),HL
; 38. if(g_card_ok)
XOR A
OR (IX-4)
JR Z,?0008
?0007:
; 39. {
; 40. list.total = 3;
LD L,3
LD (list+2),HL
; 41. list.strid = MenuStrIDWithCard;
LD HL,MenuStrIDWithCard
JR ?0041
; 42. }
; 43.
; 44. else
?0008:
; 45. {
; 46. list.total=2;
INC HL
INC HL
LD (list+2),HL
; 47. list.strid=MenuStrID;
LD HL,MenuStrID
?0041:
LD (list),HL
?0009:
; 48. }
; 49.
; 50. list.string_id = g_comval.langid;
LD A,(g_comval+12)
LD (list+8),A
; 51. list.headid=BROWSER;
LD HL,396
LD (list+6),HL
; 52.
; 53. result=ui_popup_list(&list, NULL);
LD C,0
PUSH BC
LD L,C
LD H,C
PUSH HL
LD DE,list
LD A,BYTE3 ui_popup_list
LD HL,LWRD ui_popup_list
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
PUSH HL
POP IY
; 54.
; 55. if (g_card_ok && list.active==1)
XOR A
OR (IX-4)
JR Z,?0015
LD HL,(list+4)
LD A,1
XOR L
OR H
JR NZ,?0015
?0013:
?0012:
?0010:
; 56. {
; 57. if (DRV_DetectUD(1) != 0x20)
LD E,1
CALL LWRD DRV_DetectUD
CP 32
JR Z,?0015
?0014:
; 58. {
; 59. g_card_out=TRUE;
; 60. ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
LD BC,(g_comval+12)
LD B,0
PUSH BC
LD BC,394
LD E,C
LD D,B
LD A,BYTE3 ui_err_msg
LD HL,LWRD ui_err_msg
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
LD (IX-3),1
?0015:
?0011:
; 61. //g_browser_vars.location.disk = 'C';
; 62. }
; 63. }
; 64.
; 65.
; 66. if (result != 0)
PUSH IY
POP HL
LD A,L
OR H
JP NZ,?0040
?0016:
; 67. return result;
?0017:
; 68. if(list.active == 0)
LD HL,(list+4)
LD A,L
OR H
JR NZ,?0019
?0018:
; 69. {
; 70. if(g_browser_vars.location.disk == 'H')
LD A,(g_browser_vars+2)
CP 72
JR NZ,?0036
?0020:
; 71. {
; 72. g_browser_vars.location.disk = 'C';
JR ?0043
; 73. // g_browser_vars.location.filename[0]='\0';
; 74. FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk);
?0021:
?0019:
; 75. }
; 76. }
; 77. else if((list.active == 1) && (g_card_ok == TRUE))
LD A,1
XOR L
OR H
JR NZ,?0024
LD B,(IX-4)
DEC B
JR NZ,?0024
?0026:
?0025:
?0023:
; 78. {
; 79. if(g_browser_vars.location.disk == 'C')
LD A,(g_browser_vars+2)
CP 67
JR NZ,?0028
?0027:
; 80. {
; 81. g_browser_vars.location.disk = 'H';
LD A,72
LD (g_browser_vars+2),A
; 82. // g_browser_vars.location.filename[0]='\0';
; 83. card_init = FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk);
LD C,A
PUSH BC
LD C,B
PUSH BC
LD C,4
LD E,6
LD A,BYTE3 fselInit
LD HL,LWRD fselInit
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
LD H,0
LD (IX-2),L
LD (IX-1),H
?0028:
; 84. }
; 85. if((card_init==0) || (g_card_out==TRUE)) //卡初始化不成功或者卡被拔出
LD A,(IX-2)
OR (IX-1)
JR Z,?0031
LD B,(IX-3)
DEC B
JR NZ,?0036
?0031:
?0032:
?0029:
; 86. {
; 87. ui_show_msg (CREADERR, CREADERR, g_comval.langid); //temp ybfu
LD BC,(g_comval+12)
LD B,0
PUSH BC
LD BC,630
LD E,C
LD D,B
LD A,BYTE3 ui_show_msg
LD HL,LWRD ui_show_msg
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
?0034:
; 88. while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
CALL LWRD ap_get_message
OR A
JR NZ,?0034
?0035:
?0033:
; 89. g_browser_vars.location.disk = 'C';
?0043:
LD A,67
LD (g_browser_vars+2),A
; 90. // g_browser_vars.location.filename[0]='\0';
; 91. FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk);
LD C,A
PUSH BC
LD C,0
PUSH BC
LD C,4
LD E,6
LD A,BYTE3 fselInit
LD HL,LWRD fselInit
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
?0030:
; 92. }
; 93. }
; 94. else
JR ?0036
?0024:
; 95. return RESULT_MAIN;
LD HL,10
JR ?0040
?0036:
?0022:
; 96. //如是初始化到根目录下时要调用 FSELGetNext() 来选中第一首
; 97. if (g_browser_vars.location.path[0]==':')
LD A,(g_browser_vars+16)
CP 58
JR NZ,?0038
?0037:
; 98. {
; 99. FSELGetNext(g_browser_vars.location.filename);
LD DE,g_browser_vars+28
LD A,BYTE3 fselGetNextFile
LD HL,LWRD fselGetNextFile
JR ?0042
; 100. }
; 101. else
?0038:
; 102. fselSetLocation(& g_browser_vars.location);
LD DE,g_browser_vars+2
LD A,BYTE3 fselSetLocation
LD HL,LWRD fselSetLocation
?0042:
CALL LWRD ?BANK_CALL_DIRECT_L08
?0039:
; 103. fselGetLocation(& g_browser_vars.location);
LD DE,g_browser_vars+2
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 104. result = ui_directory(&g_browser_vars.location, FSEL_TYPE_ALL, g_langid);
LD A,(g_langid)
LD C,A
PUSH BC
LD C,6
LD DE,g_browser_vars+2
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 105. return result;
; 106. }
?0040:
LD SP,IX
POP IX
POP IY
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
; 107. }
; 108.
; 109.
; 110.
; 111.
RSEG CONST
MenuStrID:
DEFW 461
DEFW 465
MenuStrIDWithCard:
DEFW 461
DEFW 462
DEFW 465
RSEG UDATA0
list:
DEFS 9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -