📄 bookmark_menu.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:36:33 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_reader\bookmark_menu.c #
# List file = d:\case_i_d913f\ap\ap_reader\list\bookmark_menu.lst #
# Object file = d:\case_i_d913f\ap\ap_reader\obj\bookmark_menu.r01 #
# ASM file = d:\case_i_d913f\ap\ap_reader\list\bookmark_menu.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_reader\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d913f\ap\ap_reader\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_reader\List\ #
# -ND:\case_i_d913f\ap\ap_reader\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\AP_READER\bookmark_menu.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME bookmark_menu(17)
\ 0000 RSEG CODE_1(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN add_bookmark
\ 0000 PUBLIC bookmark_op
\ 0000 EXTERN close_bookmark
\ 0000 EXTERN del_bookmark_id
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_reader_vars
\ 0000 EXTERN get_bookmark
\ 0000 EXTERN get_num_bookmarks
\ 0000 EXTERN init_bookmark
\ 0000 EXTERN list
\ 0000 PUBLIC menuStr
\ 0000 EXTERN sub_list
\ 0000 EXTERN ui_bookmark_list
\ 0000 EXTERN ui_err_msg
\ 0000 EXTERN ui_popup_list
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CODE_1
\ 0000 bookmark_op:
1 #include "actos.h"
2 #include "ap_common.h"
3 #include "display.h"
4 #include "ap_reader.h"
5 #include "bookmark.h"
6
7 WORD menuStr[4]={MEB2,MEB4,MEB3,MSTOP5};
8 extern pop_up_list_t list;
9 extern pop_up_list_t sub_list;
10 #pragma codeseg(CODE_1)
11
12 int bookmark_op(void) // interface to call
13 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 FDE5 PUSH IY
\ 0004 DDE5 PUSH IX
\ 0006 DD210000 LD IX,0
\ 000A DD39 ADD IX,SP
\ 000C 21DAFF LD HL,65498
\ 000F 39 ADD HL,SP
\ 0010 F9 LD SP,HL
14 int result,active;
15 byte i;
16 // pop_up_list_t list;
17 // function_menu_t Menu; // bookmark op menu
18 list.headid = PLAYMENU;
\ 0011 21A001 LD HL,416
\ 0014 220600 LD (list+6),HL
19 list.total = 4;
\ 0017 210400 LD HL,4
\ 001A 220200 LD (list+2),HL
20 list.active = 0;
\ 001D 6C LD L,H
\ 001E 220400 LD (list+4),HL
21 list.strid = menuStr;
\ 0021 210000 LD HL,menuStr
\ 0024 220000 LD (list),HL
22 list.string_id = g_comval.langid;
\ 0027 3A0C00 LD A,(g_comval+12)
\ 002A 320800 LD (list+8),A
23 result = ui_popup_list(&list, NULL);
\ 002D 0E00 LD C,0
\ 002F C5 PUSH BC
\ 0030 69 LD L,C
\ 0031 61 LD H,C
\ 0032 E5 PUSH HL
\ 0033 110000 LD DE,list
\ 0036 3E00 LD A,BYTE3 ui_popup_list
\ 0038 210000 LD HL,LWRD ui_popup_list
\ 003B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 003E F1 POP AF
\ 003F F1 POP AF
\ 0040 E5 PUSH HL
\ 0041 FDE1 POP IY
24 if (result != 0)
\ 0043 7D LD A,L
\ 0044 B4 OR H
\ 0045 C26801 JP NZ,?0038
\ 0048 ?0002:
25 return result;
\ 0048 ?0003:
26 if(list.active == 3) // return straightly
\ 0048 2A0400 LD HL,(list+4)
\ 004B 3E03 LD A,3
\ 004D AD XOR L
\ 004E B4 OR H
\ 004F CA2802 JP Z,?0031
\ 0052 ?0004:
27 return RESULT_IGNORE;
\ 0052 ?0005:
28
29 /* we need to init bookmark data and prepare for op */
30 if( init_bookmark() )
\ 0052 3E00 LD A,BYTE3 init_bookmark
\ 0054 210000 LD HL,LWRD init_bookmark
\ 0057 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 005A 2C INC L
\ 005B 2D DEC L
\ 005C 280B JR Z,?0007
\ 005E ?0006:
31 {
32 // FIXME: please change to open bookmark error
33 ui_err_msg(EBOKMSG2,EBOKMSG2,g_comval.langid);
\ 005E ED4B0C00 LD BC,(g_comval+12)
\ 0062 0600 LD B,0
\ 0064 C5 PUSH BC
\ 0065 CD3602 CALL LWRD ?0044
\ 0068 F1 POP AF
\ 0069 ?0007:
34 }
35
36 i = get_num_bookmarks(); // get bookmarks number
\ 0069 3E00 LD A,BYTE3 get_num_bookmarks
\ 006B 210000 LD HL,LWRD get_num_bookmarks
\ 006E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0071 DD75DE LD (IX-34),L
37
38 if(list.active == 0 )
\ 0074 2A0400 LD HL,(list+4)
\ 0077 7D LD A,L
\ 0078 B4 OR H
\ 0079 C20C01 JP NZ,?0009
\ 007C ?0008:
39 {
40 /* select bookmark and view content according bookmark */
41 if( i == 0 )
\ 007C DDB6DE OR (IX-34)
\ 007F 200D JR NZ,?0011
\ 0081 ?0010:
42 {
43 ui_err_msg(EBOKMSG2,EBOKMSG2,g_comval.langid);
\ 0081 ED4B0C00 LD BC,(g_comval+12)
\ 0085 47 LD B,A
\ 0086 C5 PUSH BC
\ 0087 CD3602 CALL LWRD ?0044
\ 008A F1 POP AF
44 close_bookmark();
\ 008B C37E01 JP LWRD ?0043
45 return RESULT_IGNORE;
46 }
\ 008E ?0011:
47 else
48 {
49 bkmark_node tmp;
50 // FIXME:
51 //list.strid = play_text;
52 sub_list.total = i;
\ 008E 4F LD C,A
\ 008F 0600 LD B,0
\ 0091 ED430200 LD (sub_list+2),BC
53 sub_list.active = 0;
\ 0095 68 LD L,B
\ 0096 60 LD H,B
\ 0097 220400 LD (sub_list+4),HL
54 sub_list.string_id = g_comval.langid;
\ 009A 3A0C00 LD A,(g_comval+12)
\ 009D 320800 LD (sub_list+8),A
55 sub_list.headid = menuStr[list.active];
\ 00A0 2A0400 LD HL,(list+4)
\ 00A3 29 ADD HL,HL
\ 00A4 010000 LD BC,menuStr
\ 00A7 09 ADD HL,BC
\ 00A8 46 LD B,(HL)
\ 00A9 23 INC HL
\ 00AA 66 LD H,(HL)
\ 00AB 68 LD L,B
\ 00AC 220600 LD (sub_list+6),HL
56 result = ui_bookmark_list(&sub_list, NULL);
\ 00AF 0E00 LD C,0
\ 00B1 C5 PUSH BC
\ 00B2 69 LD L,C
\ 00B3 61 LD H,C
\ 00B4 E5 PUSH HL
\ 00B5 110000 LD DE,sub_list
\ 00B8 3E00 LD A,BYTE3 ui_bookmark_list
\ 00BA 210000 LD HL,LWRD ui_bookmark_list
\ 00BD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00C0 F1 POP AF
\ 00C1 F1 POP AF
\ 00C2 E5 PUSH HL
\ 00C3 FDE1 POP IY
57
58 if( result != 0 )
\ 00C5 7D LD A,L
\ 00C6 B4 OR H
\ 00C7 C26001 JP NZ,?0039
\ 00CA ?0012:
59 {
60 close_bookmark();
61 return result;
62 }
\ 00CA ?0013:
63
64 active = sub_list.active;
\ 00CA 2A0400 LD HL,(sub_list+4)
\ 00CD DD75DC LD (IX-36),L
65 if( active >= MAX_BKMARK_NUM )
\ 00D0 011080 LD BC,32784
\ 00D3 78 LD A,B
\ 00D4 AC XOR H
\ 00D5 67 LD H,A
\ 00D6 ED42 SBC HL,BC
\ 00D8 D27E01 JP NC,?0043
\ 00DB ?0014:
66 {
67 close_bookmark();
68 return RESULT_IGNORE;
69 }
\ 00DB ?0015:
70
71 /* jump to offset of the bookmark */
72 tmp = get_bookmark(active);
\ 00DB 210500 LD HL,5
\ 00DE 39 ADD HL,SP
\ 00DF E5 PUSH HL
\ 00E0 DD4EDC LD C,(IX-36)
\ 00E3 211700 LD HL,23
\ 00E6 39 ADD HL,SP
\ 00E7 EB EX DE,HL
\ 00E8 3E00 LD A,BYTE3 get_bookmark
\ 00EA 210000 LD HL,LWRD get_bookmark
\ 00ED CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00F0 D1 POP DE
\ 00F1 011000 LD BC,16
\ 00F4 EDB0 LDIR
73 g_reader_vars.g_txt.CurrentSeek = tmp.offset;
\ 00F6 DD4EE1 LD C,(IX-31)
\ 00F9 DD46E2 LD B,(IX-30)
\ 00FC DD6EDF LD L,(IX-33)
\ 00FF DD66E0 LD H,(IX-32)
\ 0102 223B00 LD (g_reader_vars+59),HL
\ 0105 ED433D00 LD (g_reader_vars+61),BC
\ 0109 C31502 JP LWRD ?0029
\ 010C ?0009:
74 // FIXME:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -