📄 pbap_server.xap
字号:
MODULE crt0 .LARGE ; Not really, but we need the space for DEBUG; Define the segment layout .SEG VAREND .PACK {INIT, VAR, VAREND}, {H'400, H'800} .PACK {CONST, INITC}, {H'7400, H'D400}; This segment holds stabs debug info and doesn't make it onto bluecore .CSEG DEBUG ORG H'10000; Put labels at selected positions so; we can deduce segment size and placement .SEG INITINIT: .SEG VARVAR: .SEG VARENDVAREND: .SEG CONSTCONST: .SEG INITCINITC:$XAP_AH EQU H'ffe0$XAP_AL EQU H'ffe1$XAP_UXL EQU H'ffe2$XAP_UY EQU H'ffe3; Put the version number at the start of the CONST segment .SEG CONST DC 1541 ; updated by Makefile from syscalls; ****************************************************************************; Startup code; **************************************************************************** .CODE ORG H'0000 ld al,#VAR-INIT ; Size of INIT segment ld ah,#INIT ld x,#INITC bc2 ; AL is now zero ld ah,#VAREND-VAR ; Size of BSS segment beq skip_zero ld x,#VARloop_zero: st al,@(0,x) add x,#1 sub ah,#1 bne loop_zeroskip_zero: ; call init code, normally empty bsr $__init ld ah,#0 ld al,#0 bsr $_main ; Main may exit by returning or by explicitly calling $exit. ; In either case exit code will be in AH ; Note 'real' programs are unlikely to exit. bra $_exit$_abort: ; Exit abnormally ld ah,#1 bra $_exit_exit EQU $_exit ENDMOD MODULE malloc .ENHANCED .CSEG CODE .LARGE$_malloc: DC ((256*3)+9) rtstrapset_1 EQU $trapset_1 ENDMOD malloc MODULE free .ENHANCED .CSEG CODE .LARGE$_free: DC ((256*4)+9) rtstrapset_1 EQU $trapset_1 ENDMOD free MODULE realloc .ENHANCED .CSEG CODE .LARGE$_realloc: DC ((256*5)+9) rtstrapset_1 EQU $trapset_1 ENDMOD realloc MODULE memmove .ENHANCED .CSEG CODE .LARGE$_memmove: DC ((256*6)+9) rtstrapset_1 EQU $trapset_1 ENDMOD memmove MODULE exit .ENHANCED .CSEG CODE .LARGE$_exit: DC ((256*7)+9) rtstrapset_1 EQU $trapset_1 ENDMOD exit MODULE MessageSendLater .ENHANCED .CSEG CODE .LARGE$_MessageSendLater: DC ((256*9)+9) rtstrapset_1 EQU $trapset_1 ENDMOD MessageSendLater MODULE MessageCancelFirst .ENHANCED .CSEG CODE .LARGE$_MessageCancelFirst: DC ((256*10)+9) rtstrapset_1 EQU $trapset_1 ENDMOD MessageCancelFirst MODULE Panic .ENHANCED .CSEG CODE .LARGE$_Panic: DC ((256*14)+9) rtstrapset_1 EQU $trapset_1 ENDMOD Panic MODULE PanicNull .ENHANCED .CSEG CODE .LARGE$_PanicNull: DC ((256*15)+9) rtstrapset_1 EQU $trapset_1 ENDMOD PanicNull MODULE PsStore .ENHANCED .CSEG CODE .LARGE$_PsStore: DC ((256*17)+9) rtstrapset_1 EQU $trapset_1 ENDMOD PsStore MODULE PsRetrieve .ENHANCED .CSEG CODE .LARGE$_PsRetrieve: DC ((256*18)+9) rtstrapset_1 EQU $trapset_1 ENDMOD PsRetrieve MODULE PsFullRetrieve .ENHANCED .CSEG CODE .LARGE$_PsFullRetrieve: DC ((256*21)+9) rtstrapset_1 EQU $trapset_1 ENDMOD PsFullRetrieve MODULE VmGetClock .ENHANCED .CSEG CODE .LARGE$_VmGetClock: DC ((256*28)+9) rtstrapset_1 EQU $trapset_1 ENDMOD VmGetClock MODULE PanicUnlessMalloc .ENHANCED .CSEG CODE .LARGE$_PanicUnlessMalloc: DC ((256*47)+9) rtstrapset_1 EQU $trapset_1 ENDMOD PanicUnlessMalloc MODULE StreamMove .ENHANCED .CSEG CODE .LARGE$_StreamMove: DC ((256*61)+9) rtstrapset_11 EQU $trapset_11 ENDMOD StreamMove MODULE SinkClaim .ENHANCED .CSEG CODE .LARGE$_SinkClaim: DC ((256*63)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SinkClaim MODULE SinkMap .ENHANCED .CSEG CODE .LARGE$_SinkMap: DC ((256*64)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SinkMap MODULE SinkFlush .ENHANCED .CSEG CODE .LARGE$_SinkFlush: DC ((256*65)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SinkFlush MODULE SourceSize .ENHANCED .CSEG CODE .LARGE$_SourceSize: DC ((256*66)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SourceSize MODULE SourceDrop .ENHANCED .CSEG CODE .LARGE$_SourceDrop: DC ((256*67)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SourceDrop MODULE SourceMap .ENHANCED .CSEG CODE .LARGE$_SourceMap: DC ((256*68)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SourceMap MODULE SourceBoundary .ENHANCED .CSEG CODE .LARGE$_SourceBoundary: DC ((256*69)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SourceBoundary MODULE StreamConfigure .ENHANCED .CSEG CODE .LARGE$_StreamConfigure: DC ((256*70)+9) rtstrapset_11 EQU $trapset_11 ENDMOD StreamConfigure MODULE StreamRegionSource .ENHANCED .CSEG CODE .LARGE$_StreamRegionSource: DC ((256*73)+9) rtstrapset_11 EQU $trapset_11 ENDMOD StreamRegionSource MODULE StreamSourceFromSink .ENHANCED .CSEG CODE .LARGE$_StreamSourceFromSink: DC ((256*74)+9) rtstrapset_11 EQU $trapset_11 ENDMOD StreamSourceFromSink MODULE SinkGetBdAddr .ENHANCED .CSEG CODE .LARGE$_SinkGetBdAddr: DC ((256*84)+9) rtstrapset_11 EQU $trapset_11 ENDMOD SinkGetBdAddr MODULE MessageSinkTask .ENHANCED .CSEG CODE .LARGE$_MessageSinkTask: DC ((256*85)+9) rtstrapset_11 EQU $trapset_11 ENDMOD MessageSinkTask MODULE MessageSinkGetTask .ENHANCED .CSEG CODE .LARGE$_MessageSinkGetTask: DC ((256*86)+9) rtstrapset_11 EQU $trapset_11 ENDMOD MessageSinkGetTask MODULE StreamSinksFromBdAddr .ENHANCED .CSEG CODE .LARGE$_StreamSinksFromBdAddr: DC ((256*87)+9) rtstrapset_11 EQU $trapset_11 ENDMOD StreamSinksFromBdAddr MODULE VmSendRfcommPrim .ENHANCED .CSEG CODE .LARGE$_VmSendRfcommPrim: DC ((256*102)+9) rtstrapset_14 EQU $trapset_14 ENDMOD VmSendRfcommPrim MODULE StreamRfcommSink .ENHANCED .CSEG CODE .LARGE$_StreamRfcommSink: DC ((256*103)+9) rtstrapset_14 EQU $trapset_14 ENDMOD StreamRfcommSink MODULE VmSendL2capPrim .ENHANCED .CSEG CODE .LARGE$_VmSendL2capPrim: DC ((256*106)+9) rtstrapset_16 EQU $trapset_16 ENDMOD VmSendL2capPrim MODULE VmSendDmPrim .ENHANCED .CSEG CODE .LARGE$_VmSendDmPrim: DC ((256*107)+9) rtstrapset_16 EQU $trapset_16 ENDMOD VmSendDmPrim MODULE VmSendSdpPrim .ENHANCED .CSEG CODE .LARGE$_VmSendSdpPrim: DC ((256*108)+9) rtstrapset_16 EQU $trapset_16 ENDMOD VmSendSdpPrim MODULE VmGetHandleFromPointer .ENHANCED .CSEG CODE .LARGE$_VmGetHandleFromPointer: DC ((256*109)+9) rtstrapset_16 EQU $trapset_16 ENDMOD VmGetHandleFromPointer MODULE VmGetPointerFromHandle .ENHANCED .CSEG CODE .LARGE$_VmGetPointerFromHandle: DC ((256*110)+9) rtstrapset_16 EQU $trapset_16 ENDMOD VmGetPointerFromHandle MODULE MessageBlueStackTask .ENHANCED .CSEG CODE .LARGE$_MessageBlueStackTask: DC ((256*111)+9) rtstrapset_16 EQU $trapset_16 ENDMOD MessageBlueStackTask MODULE StreamL2capSink .ENHANCED .CSEG CODE .LARGE$_StreamL2capSink: DC ((256*112)+9) rtstrapset_16 EQU $trapset_16 ENDMOD StreamL2capSink MODULE StreamFileSource .ENHANCED .CSEG CODE .LARGE$_StreamFileSource: DC ((256*124)+9) rtstrapset_18 EQU $trapset_18 ENDMOD StreamFileSource MODULE FileFind .ENHANCED .CSEG CODE .LARGE$_FileFind: DC ((256*125)+9) rtstrapset_18 EQU $trapset_18 ENDMOD FileFind MODULE VmUseExtendedBluestackPrimitives .ENHANCED .CSEG CODE .LARGE$_VmUseExtendedBluestackPrimitives: DC ((256*148)+9) rtstrapset_16 EQU $trapset_16 ENDMOD VmUseExtendedBluestackPrimitives MODULE putchar .ENHANCED .CSEG CODE .LARGE$_putchar: DC ((256*8)+9) rtstrapset_1 EQU $trapset_1 ENDMOD putchar MODULE MessageWait .ENHANCED .CSEG CODE .LARGE$_MessageWait: DC ((256*11)+9) rtstrapset_1 EQU $trapset_1 ENDMOD MessageWait MODULE MessageSendConditionally .ENHANCED .CSEG CODE .LARGE$_MessageSendConditionally: DC ((256*12)+9) rtstrapset_1 EQU $trapset_1 ENDMOD MessageSendConditionally MODULE MessageFree .ENHANCED .CSEG CODE .LARGE$_MessageFree: DC ((256*13)+9) rtstrapset_1 EQU $trapset_1 ENDMOD MessageFree MODULE trapset_1 .CSEG CODE .LARGE .ENHANCED$trapset_1: ENDMOD trapset_1 MODULE trapset_18 .CSEG CODE .LARGE .ENHANCED$trapset_18: ENDMOD trapset_18 MODULE trapset_16 .CSEG CODE .LARGE .ENHANCED$trapset_16: ENDMOD trapset_16 MODULE trapset_14 .CSEG CODE .LARGE .ENHANCED$trapset_14: ENDMOD trapset_14 MODULE trapset_11 .CSEG CODE .LARGE .ENHANCED$trapset_11: ENDMOD trapset_11 MODULE VmPutChar .ENHANCED .CSEG CODE .LARGE$_VmPutChar: DC ((256*27)+9) rtstrapset_1 EQU $trapset_1 ENDMOD VmPutChar MODULE e_t_c .ALLe_t_c: ENDMOD MODULE buffer .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$_allocBuffer: enter #5?LBB_allocBuffer: st AH,@(0,Y) st AL,@(H'0001,Y)?LBB2: ld AL,#H'0000 st AL,@(H'0002,Y) ld X,@$XAP_AH tst @(H'000A,X) bne ?L12?LBB3: ld AL,#H'006C st AL,@(H'0003,Y) ld AH,#H'006C; bsr $_malloc DC ((256*3)+9) cmp AH,#H'0000 bne ?L4 ld X,@(H'0003,Y) cmp X,@(H'0001,Y) bcz ?L4?L7: ld AL,@(H'0003,Y) add AL,#-H'0005 st AL,@(H'0003,Y) ld AH,@$XAP_AL; bsr $_malloc DC ((256*3)+9) cmp AH,#H'0000 bne ?L4 ld X,@(H'0003,Y) cmp X,@(H'0001,Y) beq ?L15 bcc ?L7?L15:?L4: cmp AH,#H'0000 beq ?L12 ld AL,@(H'0003,Y) cmp AL,@(H'0001,Y) bcs ?L9 ld X,@(0,Y) st AH,@(H'000A,X) st AL,@(H'000B,X) st AL,@(H'000C,X) ld AL,#H'0000 st AL,@(H'000D,X) st AL,@(H'000E,X) ld AL,#H'0001 st AL,@(H'0002,Y) bra (?L12)?L9:; bsr $_free DC ((256*4)+9)?L12:?LBE3:?LBE2: ld AH,@(H'0002,Y)?LBE_allocBuffer: leave #5;.stabn 192,0,0,?LBB2;.stabn 192,0,0,?LBB3;.stabn 224,0,0,?LBE3;.stabn 224,0,0,?LBE2$_freeBuffer: enter #2?LBB_freeBuffer: st AH,@(0,Y) ld X,@$XAP_AH tst @(H'000A,X) beq ?L17 ld AH,@(H'000A,X); bsr $_free DC ((256*4)+9) ld AL,#H'0000 ld X,@(0,Y) st AL,@(H'000A,X) st AL,@(H'000B,X) st AL,@(H'000C,X) st AL,@(H'000D,X) st AL,@(H'000E,X)?L17:?LBE_freeBuffer: leave #2$_resetBuffer: enter #1?LBB_resetBuffer: ld X,@$XAP_AH ld AL,@(H'000B,X) st AL,@(H'000C,X) ld AL,#H'0000 st AL,@(H'000D,X) st AL,@(H'000E,X)?LBE_resetBuffer: leave #1 ENDMOD;# Function pattern *movqi2 used[0] = 24 used[1] = 1 total = 25;# Function pattern *movqi3 used[0] = 15 total = 15;# Function pattern *addqi2 used[0] = 1 total = 1;# Function pattern jump used[0] = 1 total = 1;# Function pattern *call1 used[0] = 2 total = 2;# Function pattern *call_value1 used[0] = 2 total = 2;# Function pattern movstrqi+3 used[0] = 3 used[1] = 2 total = 5;# Function pattern movstrqi+4 used[2] = 1 total = 1;# Function pattern movstrqi+5 used[0] = 2 total = 2 MODULE folder .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_gVCardListHeader: dc H'003C dc H'003F dc H'0078 dc H'006D dc H'006C dc H'0020 dc H'0076 dc H'0065 dc H'0072 dc H'0073 dc H'0069 dc H'006F dc H'006E dc H'003D dc H'0022 dc H'0031 dc H'002E dc H'0030 dc H'0022 dc H'003F dc H'003E dc H'000A dc H'003C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -