📄 pbap_server.xap
字号:
ld X,@$XAP_AH?LBB10: ld AH,@(H'0008,X); bsr $_SourceMap DC ((256*68)+9) st AH,@(H'0002,Y) ld AL,#H'0000 st AL,@(H'0003,Y) ld AL,@(H'0001,Y) bsr $_findFields ld AL,@$XAP_AH ld X,@(0,Y) ld AH,@(H'0008,X); bsr $_SourceDrop DC ((256*67)+9) ld X,@(0,Y) ld AL,@(H'0009,X) add AL,#H'0001 st AL,@(H'0009,X) ld AH,@(H'0008,X); bsr $_SourceSize DC ((256*66)+9) cmp AH,#H'0000 beq ?L47 ld AH,@(H'0001,Y) bsr $_zeroSearch ld AH,@(H'0002,Y) ld AL,@(H'0001,Y) bsr $_findFields ld AL,#H'0001 st AL,@(H'0003,Y)?L47:?LBE10: ld AH,@(H'0003,Y)?LBE_pbaGotoNextEntry: leave #5;.stabn 192,0,0,?LBB10;.stabn 224,0,0,?LBE10$_pbaGetNumberElements: enter #13?LBB_pbaGetNumberElements: st AH,@(H'0009,Y)?LBB11: ld AH,#H'0000 st AH,@(H'000B,Y) ld AH,@(H'0009,Y) bsr $_pbaOpenPhonebook ld X,@(H'0009,Y) ld AH,@(H'0008,X); bsr $_SourceMap DC ((256*68)+9) st AH,@(H'000A,Y) bra (?L49)?L52: ld AH,@(H'000A,Y) ld AL,@$XAP_UY bsr $_findFields ld AL,@$XAP_AH ld X,@(H'0009,Y) ld AH,@(H'0008,X); bsr $_SourceDrop DC ((256*67)+9) ld AH,@(H'000B,Y) add AH,#H'0001 st AH,@(H'000B,Y)?L49: ld X,@(H'0009,Y) ld AH,@(H'0008,X); bsr $_SourceSize DC ((256*66)+9) cmp AH,#H'0000 bne ?L52 ld AH,@(H'0009,Y) bsr $_pbaClosePhonebook?LBE11: ld AH,@(H'000B,Y)?LBE_pbaGetNumberElements: leave #13;.stabn 192,0,0,?LBB11;.stabn 224,0,0,?LBE11$_zeroSearch: enter #1?LBB_zeroSearch: ld X,@$XAP_AH ld AL,#H'0000 st AL,@(0,X) st AL,@(H'0001,X) st AL,@(H'0002,X) st AL,@(H'0003,X) st AL,@(H'0004,X) st AL,@(H'0005,X) st AL,@(H'0006,X) st AL,@(H'0007,X) st AL,@(H'0008,X)?LBE_zeroSearch: leave #1$_findFields: enter #4?LBB_findFields: st AH,@(0,Y) st AL,@(H'0001,Y)?LBB12: st AH,@(H'0002,Y) st AH,@H'fff8 ld X,@$XAP_AH ld AL,@(0,X) cmp AL,#H'000A beq ?L72?L70: ld X,@(H'0002,Y) ld AL,@(0,X) cmp AL,#H'000A beq ?L74?L61: ld AL,@(H'0002,Y) add AL,#H'0001 st AL,@(H'0002,Y) ld X,@$XAP_AL ld AL,@(0,X) cmp AL,#H'000A bne ?L61?L74: ld AH,@(H'0002,Y) sub AH,@H'fff8 add AH,#-H'0001 ld X,@H'fff8 ld AL,@(0,X) cmp AL,#H'004D beq ?L65 cmp AL,#(H'0001+H'004D) bcc ?L69 cmp AL,#H'0042 beq ?L66 bra (?L67)?L69: cmp AL,#H'004E beq ?L63 cmp AL,#H'0050 beq ?L64 bra (?L67)?L63: ld AL,#H'0001 add AL,@H'fff8 ld X,@(H'0001,Y) st AL,@(0,X) st AH,@(H'0004,X) bra (?L62)?L64: ld AL,#H'0001 add AL,@H'fff8 ld X,@(H'0001,Y) st AL,@(H'0001,X) st AH,@(H'0005,X) bra (?L62)?L65: ld AL,#H'0001 add AL,@H'fff8 ld X,@(H'0001,Y) st AL,@(H'0002,X) st AH,@(H'0006,X) bra (?L62)?L66: ld AL,#H'0001 add AL,@H'fff8 ld X,@(H'0001,Y) st AL,@(H'0003,X) st AH,@(H'0007,X) bra (?L62)?L67:; bsr $_Panic DC ((256*14)+9)?L62: ld AL,@(H'0002,Y) add AL,#H'0001 st AL,@(H'0002,Y) st AL,@H'fff8 ld X,@$XAP_AL ld AL,@(0,X) cmp AL,#H'000A bne ?L70?L72: ld AH,@(H'0002,Y) sub AH,@(0,Y) add AH,#H'0001?LBE12:?LBE_findFields: leave #4;.stabn 192,0,0,?LBB12;.stabn 224,0,0,?LBE12_pbaSearchEntry: enter #4?LBB_pbaSearchEntry: st AH,@(0,Y) st AL,@(H'0001,Y)?LBB13: ld AL,#H'0000 st AL,@(H'0002,Y) ld X,@$XAP_AH tst @(H'0010,X) beq ?L84 ld AL,@(H'000F,X) cmp AL,#H'0001 beq ?L89 cmp AL,#H'0001 bcs ?L87 cmp AL,#H'0002 bne ?L93?L87: ld X,@(H'0001,Y) tst @(0,X) beq ?L95 ld AH,@(0,X) bra (?L96)?L89: ld X,@(H'0001,Y) tst @(H'0001,X) beq ?L90 ld AH,@(H'0001,X) ld X,@(0,Y) ld AL,@(H'0010,X) bsr _pbaSearchStr st AH,@(H'0002,Y)?L90: ld X,@(H'0001,Y) tst @(H'0002,X) beq ?L91 tst @(H'0002,Y) bne ?L91 ld AH,@(H'0002,X) ld X,@(0,Y) ld AL,@(H'0010,X) bsr _pbaSearchStr st AH,@(H'0002,Y)?L91: ld X,@(H'0001,Y) tst @(H'0003,X) beq ?L95 tst @(H'0002,Y) bne ?L95 ld AH,@(H'0003,X)?L96: ld X,@(0,Y) ld AL,@(H'0010,X) bsr _pbaSearchStr st AH,@(H'0002,Y) bra (?L95)?L93:; bsr $_Panic DC ((256*14)+9) bra (?L95)?L84: ld AL,#H'0001 st AL,@(H'0002,Y)?L95:?LBE13: ld AH,@(H'0002,Y)?LBE_pbaSearchEntry: leave #4;.stabn 192,0,0,?LBB13;.stabn 224,0,0,?LBE13_pbaSearchStr: enter #1?LBB_pbaSearchStr: st AL,@H'fffa?LBB14: st AH,@H'fff9 ld AH,#H'0000 ld X,@$XAP_AL tst @(0,X) beq ?L101 ld X,@H'fff9 ld AL,@(0,X) cmp AL,#H'000A beq ?L101?L112: ld AL,@H'fff9 st AL,@H'fff8 ld X,@H'fffa st X,@H'fffb ld X,@H'fff9 ld AL,@(0,X) cmp AL,#H'000A beq ?L107 ld X,@H'fffa tst @(0,X) beq ?L107 cmp AL,@(0,X) bne ?L107?L110: ld AL,#H'0001 add AL,@H'fff8 st AL,@H'fff8 ld X,#H'0001 add X,@H'fffb st X,@H'fffb ld X,@$XAP_AL ld AL,@(0,X) cmp AL,#H'000A beq ?L107 ld X,@H'fffb tst @(0,X) beq ?L107 cmp AL,@(0,X) beq ?L110?L107: ld X,@H'fffb tst @(0,X) bne ?L111 ld AH,#H'0001?L111: ld AL,#H'0001 add AL,@H'fff9 st AL,@H'fff9 ld X,@$XAP_AL ld AL,@(0,X) cmp AL,#H'000A beq ?L101 cmp AH,#H'0000 beq ?L112?L101:?LBE14:?LBE_pbaSearchStr: leave #1;.stabn 192,0,0,?LBB14;.stabn 224,0,0,?LBE14 ENDMOD;# Function pattern *movqi2 used[0] = 104 used[1] = 32 total = 136;# Function pattern *movqi3 used[0] = 101 total = 101;# Function pattern *movqi8 used[0] = 22 total = 22;# Function pattern *addqi2 used[0] = 10 used[2] = 9 total = 19;# Function pattern *andqi3 used[0] = 4 total = 4;# Function pattern *iorqi3 used[0] = 2 total = 2;# Function pattern *subqi3 used[0] = 2 total = 2;# Function pattern *lshrqi3 used[0] = 4 total = 4;# Function pattern jump used[0] = 14 total = 14;# Function pattern *call1 used[0] = 11 total = 11;# Function pattern *call_value1 used[0] = 26 total = 26;# Function pattern movstrqi+3 used[0] = 14 used[1] = 12 total = 26;# Function pattern movstrqi+4 used[1] = 3 total = 3;# Function pattern movstrqi+5 used[0] = 21 total = 21 MODULE state .LARGE ; really small mode but we need space for debug symbols; GNU C version 3.3.3 (CSR version 29 for xap); compiled by GNU C version 3.2.3 (mingw special 20030504-1).;# options passed: -IC:/BlueLab41/tools/include/firmware;# -IC:/BlueLab41/tools/include/standard;# -IC:/BlueLab41/tools/include/profiles/BlueLab4.1-Release -iprefix;# -isystem -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3;# -DNO_DEBUG -MD -MQ -mno-leaf-optim -ansi -auxbase-strip -g -O -pedantic;# -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare;# -Wredundant-decls -Werror -ansi -fno-builtin-memcpy;# options enabled: -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse;# -fkeep-static-consts -fpcc-struct-return -fgcse-lm -fgcse-sm;# -floop-optimize -fcrossjumping -fif-conversion -fif-conversion2;# -fsched-interblock -fsched-spec -fbranch-count-reg -fcprop-registers;# -fcommon -fgnu-linker -fargument-alias -fmerge-constants;# -fzero-initialized-in-bss -fleading-underscore -fident -fpeephole2;# -fguess-branch-probability -fmath-errno -ftrapping-math -mpeephole;# -mquiet-mode -minline-block-copy-mode -menhanced-mode -mload-cache-mode;# -mbitfield-mode -mtest4 .ENHANCED .CODE$_setState: enter #1?LBB_setState: ld X,@$XAP_AH cmp AL,#(H'0001+H'0008) bcc ?L2 st AL,@(0,X) bra (?L1)?L2:; bsr $_Panic DC ((256*14)+9)?L1:?LBE_setState: leave #1 ENDMOD;# Function pattern *movqi2 used[0] = 2 total = 2;# Function pattern jump used[0] = 1 total = 1;# Function pattern *call1 used[0] = 1 total = 1;# Function pattern movstrqi+4 used[1] = 1 total = 1 MODULE vcard_gen .LARGE ; really small mode but we need space for debug symbols; GNU C version 3.3.3 (CSR version 29 for xap); compiled by GNU C version 3.2.3 (mingw special 20030504-1).;# options passed: -IC:/BlueLab41/tools/include/firmware;# -IC:/BlueLab41/tools/include/standard;# -IC:/BlueLab41/tools/include/profiles/BlueLab4.1-Release -iprefix;# -isystem -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3;# -DNO_DEBUG -MD -MQ -mno-leaf-optim -ansi -auxbase-strip -g -O -pedantic;# -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare;# -Wredundant-decls -Werror -ansi -fno-builtin-memcpy;# options enabled: -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse;# -fkeep-static-consts -fpcc-struct-return -fgcse-lm -fgcse-sm;# -floop-optimize -fcrossjumping -fif-conversion -fif-conversion2;# -fsched-interblock -fsched-spec -fbranch-count-reg -fcprop-registers;# -fcommon -fgnu-linker -fargument-alias -fmerge-constants;# -fzero-initialized-in-bss -fleading-underscore -fident -fpeephole2;# -fguess-branch-probability -fmath-errno -ftrapping-math -mpeephole;# -mquiet-mode -minline-block-copy-mode -menhanced-mode -mload-cache-mode;# -mbitfield-mode -mtest4 .ENHANCED .SEG CONST_gVCardEntryHeader: dc H'0042 dc H'0045 dc H'0047 dc H'0049 dc H'004E dc H'003A dc H'0056 dc H'0043 dc H'0041 dc H'0052 dc H'0044 dc H'000A dc H'0056 dc H'0045 dc H'0052 dc H'0053 dc H'0049 dc H'004F dc H'004E dc H'003A_gVCardEntryVersion21: dc H'0032 dc H'002E dc H'0031 dc H'000A_gVCardEntryVersion30: dc H'0033 dc H'002E dc H'0030 dc H'000A_gVCardEntryName21: dc H'004E dc H'003A_gVCardEntryName30: dc H'0046 dc H'004E dc H'003A_gVCardEntryTel: dc H'0054 dc H'0045 dc H'004C dc H'003A_gVCardEntryTelMobile: dc H'0054 dc H'0045 dc H'004C dc H'003B dc H'004D dc H'004F dc H'0042 dc H'0049 dc H'004C dc H'0045 dc H'003A_gVCardEntryTelBusiness: dc H'0054 dc H'0045 dc H'004C dc H'003B dc H'0057 dc H'004F dc H'0052 dc H'004B dc H'003A_gVCardEntryFooter: dc H'0045 dc H'004E dc H'0044 dc H'003A dc H'0056 dc H'0043 dc H'0041 dc H'0052 dc H'0044 dc H'000A_gVCardEntryNewline: dc H'000A .CODE$_vcgGetFirstEntryBuffer: enter #14?LBB_vcgGetFirstEntryBuffer: st AH,@(H'0009,Y) st AL,@(H'000A,Y)?LBB2: ld AL,#H'0001 st AL,@(H'000B,Y) bsr $_folderCurrentFolder st AH,@(H'000C,Y) ld AH,@(H'0009,Y) ld AL,#H'003C bsr $_allocBuffer cmp AH,#H'0000 bne ?L2; bsr $_Panic DC ((256*14)+9)?L2: ld AH,@(H'0009,Y) ld AL,@(H'000C,Y) bsr $_pbaOpenPhonebook cmp AH,#H'0000 beq ?L3 ld AH,@(H'0009,Y) ld AL,@(H'000A,Y) bsr $_pbaGotoEntry cmp AH,#H'0000 beq ?L3?LBB3: ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr $_pbaGetCurrentEntry ld AH,@(H'0009,Y) bsr _vcgResetState ld AL,@(H'000E,Y) ld X,@(H'0009,Y) st AL,@(H'0012,X) ld AH,@$XAP_UXL ld AL,@$XAP_UY bsr _vcgFillBuffer st AH,@(H'000B,Y)?L3:?LBE3: tst @(H'000B,Y) beq ?L5 ld AH,@(H'0009,Y) bsr $_pbaClosePhonebook?L5:?LBE2: ld AH,@(H'000B,Y)?LBE_vcgGetFirstEntryBuffer: leave #14;.stabn 192,0,0,?LBB2;.stabn 192,0,0,?LBB3;.stabn 224,0,0,?LBE3;.stabn 224,0,0,?LBE2$_vcgGetNextEntryBuffer: enter #12?LBB_vcgGetNextEntryBuffer: st AH,@(H'0009,Y)?LBB4: bsr $_resetBuffer ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr $_pbaGetCurrentEntry ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr _vcgFillBuffer st AH,@(H'000A,Y) cmp AH,#H'0000 beq ?L7 ld AH,@(H'0009,Y) bsr $_pbaClosePhonebook?L7:?LBE4: ld AH,@(H'000A,Y)?LBE_vcgGetNextEntryBuffer: leave #12;.stabn 192,0,0,?LBB4;.stabn 224,0,0,?LBE4$_vcgCleanupListBuffer: enter #2?LBB_vcgCleanupListBuffer: st AH,@(0,Y) bsr $_freeBuffer ld AH,@(0,Y) bsr $_pbaClosePhonebook?LBE_vcgCleanupListBuffer: leave #2$_vcgGetFirstPhonebookBuffer: enter #15?LBB_vcgGetFirstPhonebookBuffer: st AH,@(H'0009,Y) st AL,@(H'000A,Y)?LBB5: ld AL,#H'0001 st AL,@(H'000B,Y) ld AL,#H'003C bsr $_allocBuffer cmp AH,#H'0000 bne ?L10; bsr $_Panic DC ((256*14)+9)?L10: ld AH,@(H'0009,Y) ld AL,@(H'000A,Y) bsr $_pbaOpenPhonebook cmp AH,#H'0000 beq ?L11 ld AH,@(H'0009,Y) ld AL,@(H'000F,Y) bsr $_pbaGotoEntry cmp AH,#H'0000 beq ?L11?LBB6: ld AL,#H'0001 st AL,@(H'000C,Y) ld AL,@(H'0010,Y) ld X,@(H'0009,Y) st AL,@(H'0012,X) ld AL,@(H'0011,Y) st AL,@(H'0013,X) ld AH,@$XAP_UXL ld AL,@$XAP_UY bsr $_pbaGetCurrentEntry ld X,@(H'0009,Y) tst @(H'0013,X) beq ?L14?L18: ld AH,@(H'0009,Y) bsr _vcgResetState ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr _vcgFillBuffer st AH,@(H'000D,Y) cmp AH,#H'0000 beq ?L13 ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr $_pbaGotoNextEntry st AH,@(H'000C,Y) ld X,@(H'0009,Y) ld AL,@(H'0013,X) add AL,#-H'0001 st AL,@(H'0013,X)?L13: tst @(H'000C,Y) beq ?L14 tst @(H'000D,Y) beq ?L14 ld X,@(H'0009,Y) tst @(H'0013,X) bne ?L18?L14: ld AL,#H'0000 st AL,@(H'000B,Y) tst @(H'000C,Y) beq ?L20 ld X,@(H'0009,Y) tst @(H'0013,X) bne ?L11?L20: ld AL,#H'0001 st AL,@(H'000B,Y)?L11:?LBE6:?LBE5: ld AH,@(H'000B,Y)?LBE_vcgGetFirstPhonebookBuffer: leave #15;.stabn 192,0,0,?LBB5;.stabn 192,0,0,?LBB6;.stabn 224,0,0,?LBE6;.stabn 224,0,0,?LBE5$_vcgGetNextPhonebookBuffer: enter #13?LBB_vcgGetNextPhonebookBuffer: st AH,@(H'0009,Y)?LBB7: ld AL,#H'0001 st AL,@(H'000A,Y) bsr $_resetBuffer ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr $_pbaGetCurrentEntry ld X,@(H'0009,Y) tst @(H'0013,X) beq ?L24?L28: ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr _vcgFillBuffer st AH,@(H'000B,Y) cmp AH,#H'0000 beq ?L23 ld AH,@(H'0009,Y) ld AL,@$XAP_UY bsr $_pbaGotoNextEntry st AH,@(H'000A,Y) ld AH,@(H'0009,Y) bsr _vcgResetState ld X,@(H'0009,Y) ld AL,@(H'0013,X) add AL,#-H'0001 st AL,@(H'0013,X)?L23: tst @(H'000A,Y) beq ?L24 tst @(H'000B,Y) beq ?L24 ld X,@(H'0009,Y) tst @(H'0013,X) bne ?L28?L24: ld AH,#H'0000 tst @(H'000A,Y) beq ?L30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -