|
今年最棒的国产软件一定非ZDic莫属,还记得当年几乎一天一个版本的“日更”时光,但是个人很不喜欢2.21以后的版本,去掉了方便切换字典的窗口,而且我经常要导出到MEMO,又是tt所以无论是用菜单还是用命令都不好实现,所以一直想有一个按钮可以直接实现导出到MEMO 的功能,经过几天的努力,终于实现了,贴出来与同道中人分享, 1 M% j# A9 A2 U, U
( I8 ]7 S9 A# C( ~1 m; M" j
* _9 Z# C# P0 |7 d' k& }

' }% R; Q L2 g/ l# d
, M8 X# K7 s# j/ _. v; U/ F修改后文件下载
# [2 ~" G. I Y: q; z% h1 P1 ghttp://www.palmstamp.com/forum/download.php?id=62458
2 q5 S( S9 Q6 c/ j* h3 X) a8 t+ w9 A- w9 c* g/ s" y4 g. v# B
主要修改: @- G& w- L* j& S( k0 y8 v7 S
这里将1088(就是DA里面解释的界面)压入,
! `0 J+ [! I. N i9 fMOVE.W #1088!$3ff,-(A7)( g( [4 Q% n, L- `
JSR L1018
' B7 C; X1 N; z- J
( k4 \2 Y& q& T |* |( F a
2 v/ M' x8 Q! Q* ]9 b
Q5 s; F' Z; I, y. ]0 [这里将1023(就是主程序里面解释的界面)压入,
/ Y/ w2 q: \2 k Z/ h' a% gMOVE.W #1023!$3ff,-(A7)7 g+ j ?, k; N o' f
JSR L1018( u# W5 B0 r1 T) t# }" ?& Y
- S( G, ^( I8 X( T* E- ?1 x8 f
$ G8 M2 Q) Z1 u% n5 M5 ~ d2 q
把上面两个分别绑定到两个按钮上,2 n/ t* n7 C: l$ s$ ?6 N+ a: k
绑定到主程序里面的按钮1025上( ~( C( `3 L2 l" _
00004256 0c6a04010008 L563 CMPI.W #1025!$401,8(A2) -->判断是不是按了1025按钮
% J$ F& o' K4 v" n5 X0000425c 6622 BNE L564. K! O% P+ v* ^+ ^4 k) q! N
0000425e 3f3c03ff MOVE.W #1023!$3ff,-(A7)
/ r# ]5 u( x$ Z/ I00004262 4eba2fc8 JSR L1017; g' Z2 M+ E/ `' m3 f
00004266 7601 MOVEQ #1,D3* h; h# M1 |" `! U8 X
00004268 544f ADDQ.W #2,A7 -->平衡堆饯0 U; b# ^6 z1 l
/ v" m! r+ i& |0 V4 W同样绑到DA的按钮1092上7 r9 M. Q6 D; a: z$ j4 }/ Q, n
0000331e 0c6a04440008 L452 CMPI.W #1092!$444,8(A2) -->判断是不是按了1092按钮" ]. C1 e, G5 O6 S9 @, d" ^; B
00003324 660a BNE L453
A8 t, l2 b. j3 e. L00003326 3f3c0441 MOVE.W #1089!$441,-(A7)
. T! w8 C5 G/ w5 v1 G( r5 V h5 [0000332a 4eba3f00 JSR L1017
0 }- T, g6 x0 q% ?9 L0000332e 544f ADDQ.W #2,A7 -->平衡堆饯
$ @8 `5 p$ Q! L& z( }8 \8 P7 j( @5 _ q, K
. s* }! M% }6 ~& M _/ y5 @
导出到MEMO的实现代码:
" \* E/ ~2 s9 ]
) t R! s3 V, s( y: K8 S; y# |; f$ s0000722c 4e56fff6 L1018 LINK A6,#-10, \. k1 g1 B! w$ t' {; u9 t" v
00007230 48e71f38 MOVEM.L D3-D7/A2-A4,-(A7)
; D+ X; B. @: g$ m9 H00007234 4ebaa5c8 JSR L241
: ]7 M1 M8 f; W1 z" i8 E00007238 2848 MOVEA.L A0,A4
7 Q/ V: B" N8 C# W1 g; ]0000723a 426efffe CLR.W -2(A6)! l* B* J) M$ [& T L
0000723e 422efff7 CLR.B -9(A6)5 R2 P* T0 t# B* j
00007242 7800 MOVEQ #0,D4. ` [6 E5 i. M$ F1 r7 e
00007244 95ca SUBA.L A2,A2
" \* l- w# l& M9 e- x00007246 3f3c0003 MOVE.W #3,-(A7)9 x2 J( F* C$ V& L7 y! L& g
0000724a 2f3c6d656d6f MOVE.L #1835363695!$6d656d6f,-(A7)% A# }8 w3 I, z9 K
00007250 2f3c44415441 MOVE.L #1145132097!$44415441,-(A7)
; W7 ]8 ^- _& V) {) |00007256 4e4fa075 TRAP #15
0 x1 K, Z& p% ?& r. N0000725a DC.W sysTrapDmOpenDatabaseByTypeCreator1 {- o/ W" ]3 A
0000725a 2448 MOVEA.L A0,A2; n8 Q1 w( K! k; R8 F
0000725c 200a MOVE.L A2,D0
! q; \( O. G% K, g0000725e 4fef000a LEA 10(A7),A7
D6 Q* O4 g0 v( N0 c6 @" [, n/ ~00007262 660a BNE L10193 W+ y0 P% n7 u
00007264 4e4fa04e TRAP #152 q) R1 y1 P' ^
00007268 DC.W sysTrapDmGetLastErr* o" W! L8 S" a9 O( U" j
00007268 3800 MOVE.W D0,D4
% `5 T3 q% v7 D8 E. N+ @% o0000726a 6000012a BRA L1025
5 }7 q0 m4 }. L- n% C) b: ?: }0000726e 3f2e0008 L1019 MOVE.W 8(A6),-(A7)
( L( X1 ?- {# Z/ ?6 ^00007272 4ebafd2a JSR L998
" o! h7 e7 x( L* D00007276 2c08 MOVE.L A0,D6
2 X/ x2 R/ I. c8 ~* u; F! x" p }00007278 544f ADDQ.W #2,A7
4 i j" a; D4 }& q# M" f0000727a 6700011a BEQ L1025
2 u r& K9 y& K0000727e 2f06 MOVE.L D6,-(A7)
, O \5 _+ b. t) _4 f* |00007280 4e4fa139 TRAP #15
! B4 ^4 S, s7 T1 s; F. h" b00007284 DC.W sysTrapFldGetTextPtr8 {8 D8 }1 m! s$ {( m3 e4 R8 K+ R
00007284 2648 MOVEA.L A0,A3
' Y! e! m% {2 r6 h" O00007286 200b MOVE.L A3,D0/ W( P+ ~0 S8 b, X+ b' U
00007288 584f ADDQ.W #4,A71 _4 V$ \5 c7 l C# I* }! I) O& D
0000728a 6700010a BEQ L10254 f! Z/ A( ?" m2 S$ e! d+ T
0000728e 4a13 TST.B (A3)
7 B. |% H) M, z" e9 L, ]" g* F00007290 67000104 BEQ L1025
( B S: F- J% F; h7 L( O% c( H00007294 486efff8 PEA -8(A6)/ }' H0 T2 G9 k* X& h8 Y- B
00007298 486efffa PEA -6(A6). O& B4 |. {' J5 R4 j% s! e( z& K
0000729c 2f06 MOVE.L D6,-(A7)
o2 ?. u. ~$ F4 }7 u0000729e 4e4fa13a TRAP #15
& Y3 R4 P) L3 f0 q, y/ k, z0 X000072a2 DC.W sysTrapFldGetSelection/ T0 `. k. E" C9 N" F
000072a2 302efffa MOVE.W -6(A6),D0* w4 h' T5 \' s% ]% n# m
000072a6 b06efff8 CMP.W -8(A6),D0+ C/ a9 b6 X- F) e- e6 c2 M* d2 g! v: r
000072aa 4fef000c LEA 12(A7),A7) h: a% u+ j% G Z9 |; Z
000072ae 6610 BNE L1020
1 f% q: P; T5 H/ W) S8 M000072b0 426efffa CLR.W -6(A6)
$ W/ l/ m! d# v+ w/ B& w2 r7 I( z000072b4 2f0b MOVE.L A3,-(A7)! t. F5 s5 m2 r( P1 b+ j7 C
000072b6 4e4fa0c7 TRAP #15
5 z h r0 {% o/ O3 C000072ba DC.W sysTrapStrLen7 W9 v" X" @$ Q
000072ba 3600 MOVE.W D0,D3# O" I6 l3 j4 \' `& P
000072bc 584f ADDQ.W #4,A7
& L: q; K! Q( i* y000072be 6008 BRA L10218 M8 M" z" E0 n1 M4 B
000072c0 362efff8 L1020 MOVE.W -8(A6),D3+ X3 Y8 I) J5 b& W; l% [- Y5 H
000072c4 966efffa SUB.W -6(A6),D3
. O/ a% e( v( Q* L' ]% W8 h6 T000072c8 2f0a L1021 MOVE.L A2,-(A7)
: ]! C4 e3 E, Q3 \! G( m9 l( A000072ca 4e4fa04f TRAP #15+ K3 o0 n, N, l7 e
000072ce DC.W sysTrapDmNumRecords
" _% V! N3 x, k( ~3 m2 V000072ce 3d40fffc MOVE.W D0,-4(A6)
: \( g* g( l# [- }% J000072d2 3003 MOVE.W D3,D0: C9 T% X8 v$ ?" G: @6 o' K+ z
000072d4 5240 ADDQ.W #1,D0
- B7 c4 s- }3 P, O5 _000072d6 48c0 EXT.L D0. n3 P$ Q% r( K* R7 R
000072d8 2f00 MOVE.L D0,-(A7)! q* E* ]" Z, c4 O& |& O! L( d6 A
000072da 486efffc PEA -4(A6)2 {1 J/ ]- Q* P1 q6 S
000072de 2f0a MOVE.L A2,-(A7)3 z, h9 f+ {1 H* o5 c) A- U$ o
000072e0 4e4fa055 TRAP #15! |! a# c, m* h/ S) N
000072e4 DC.W sysTrapDmNewRecord
; h! {- W! ]( ~! T# R1 K2 ~" m000072e4 2e08 MOVE.L A0,D7# R% X% A* _: w4 ^) `& N
000072e6 4fef0010 LEA 16(A7),A7/ K; Q$ E) I4 g; G
000072ea 6612 BNE L10229 \# X% W7 k* G2 U
000072ec 3f3c271d MOVE.W #10013!$271d,-(A7)
5 H+ K3 _% c0 E( Y" W: M000072f0 4e4fa192 TRAP #15
; C" ]5 D$ x, l! w+ X000072f4 DC.W sysTrapFrmAlert
$ k) W1 F8 G; c000072f4 383cffff MOVE.W #-1,D4, @& i" B, K9 J) h8 M d0 T
000072f8 544f ADDQ.W #2,A7
; s6 J3 {: g& w/ { x000072fa 6000009a BRA L1025
# x x# U$ C+ i( ]0 V0 ~000072fe 2f07 L1022 MOVE.L D7,-(A7)) \' I' n7 A. i7 b
00007300 4e4fa021 TRAP #15
# C) M* B6 D1 r00007304 DC.W sysTrapMemHandleLock$ H5 j2 n1 f. ~: Z* H- X
00007304 2a08 MOVE.L A0,D5
9 t. b: w: ~5 x X2 l: _00007306 3043 MOVEA.W D3,A0! P$ |# X; a; C2 w# r
00007308 2f08 MOVE.L A0,-(A7)* s* s6 J! c( W! r
0000730a 7000 MOVEQ #0,D0
' ^" U% J, J3 q7 ^3 S9 g" S0000730c 302efffa MOVE.W -6(A6),D08 G5 e( P; ^, ~, }! Q5 D
00007310 41f30800 LEA 0(A3,D0.L),A0
6 Y( P3 B# v2 z: ?# b, s" G4 Q00007314 2f08 MOVE.L A0,-(A7)6 L6 S# E+ u% \. x
00007316 42a7 CLR.L -(A7)
4 V& B# ]7 ?: r; k" g% F00007318 2f05 MOVE.L D5,-(A7)
) _9 S2 ^ w* f7 L) l0000731a 4e4fa076 TRAP #15
2 U, \: d8 d3 B# ]* y' N0000731e DC.W sysTrapDmWrite+ _8 }+ {$ i1 n/ A
0000731e 48780001 PEA $0001.W
3 b- P0 z. @; Q00007322 486efff7 PEA -9(A6)
, S' X& f/ u4 q$ J' K* ]00007326 3043 MOVEA.W D3,A0 f: e! e4 F8 a7 Y6 G7 V
00007328 2f08 MOVE.L A0,-(A7)6 p( |% G/ J. x" C7 H8 d0 S) ]- H
0000732a 2f05 MOVE.L D5,-(A7), _% w* {% w# }$ M0 P2 s
0000732c 4e4fa076 TRAP #15+ m' x7 H3 W. x
00007330 DC.W sysTrapDmWrite4 l2 Z1 a" c' M; c) G
00007330 2f05 MOVE.L D5,-(A7)
; {, h; r/ ]7 y e" M6 C0 h00007332 4e4fa035 TRAP #15, D% k y4 ^; f. `+ h8 k/ J
00007336 DC.W sysTrapMemPtrUnlock
2 J6 X# e3 d2 `1 t+ J00007336 48780000 PEA $0000.W
$ T& o9 ~' c. g/ E/ X. T" m0000733a 48780000 PEA $0000.W
$ `% V$ m* O, B4 {& U- ] s0000733e 486efffe PEA -2(A6)4 o' p6 h! C7 c5 R' Y! h
00007342 3f2efffc MOVE.W -4(A6),-(A7)8 n7 E$ o! A y3 N
00007346 2f0a MOVE.L A2,-(A7)
; P) ?- U. r/ [) T# H4 ^2 m; \+ r1 i00007348 4e4fa050 TRAP #15
" E5 ^, E) L# x6 b+ U& i0000734c DC.W sysTrapDmRecordInfo. w4 @: [9 z/ K1 ?. E# M( R
0000734c 026efff0fffe ANDI.W #-16!-$10,-2(A6)
0 u2 a- Y1 j j- I. v5 L/ R1 s00007352 302c2968 MOVE.W 10600(A4),D0! z6 h7 o; C! J9 d+ y# j' n1 q
00007356 816efffe OR.W D0,-2(A6)
* j) N: H, p/ {* O$ g/ a0000735a 4a2c296a TST.B 10602(A4)" b" W1 ^) |2 W9 M/ }$ [
0000735e 4fef003a LEA 58(A7),A7
2 p$ f- V! Z/ q/ L00007362 6708 BEQ L1023
3 {7 U3 _ g. G* d ]8 F/ S, R& D# v00007364 006e0010fffe ORI.W #16!$10,-2(A6)) O a* t# j- J% c/ m* [
0000736a 6006 BRA L1024
+ c+ d" C9 s5 @0 P" z7 v8 S0000736c 026effeffffe L1023 ANDI.W #-17!-$11,-2(A6); o! H8 n( v z
00007372 48780000 L1024 PEA $0000.W, o0 f* }8 O0 \5 O# A U! S
00007376 486efffe PEA -2(A6)0 p1 y$ {9 O- ^6 b
0000737a 3f2efffc MOVE.W -4(A6),-(A7)$ W5 I& b6 q# `" s3 o, I% g+ L
0000737e 2f0a MOVE.L A2,-(A7)
/ i2 e- U* H( R# Q* Q6 u$ s7 _00007380 4e4fa051 TRAP #15
1 R% u" h+ c, c4 C) n00007384 DC.W sysTrapDmSetRecordInfo7 S! E1 n; h7 d3 j" Y. G) w* f* P, G
00007384 1f3c0001 MOVE.B #1,-(A7)
3 |* Y% J3 @0 D! b/ @' W3 ?; o00007388 3f2efffc MOVE.W -4(A6),-(A7)+ Q, W3 E8 @$ o% C7 z2 J
0000738c 2f0a MOVE.L A2,-(A7) D& u7 t9 Y8 @: `. ?8 ~
0000738e 4e4fa05e TRAP #15 g! T- K( Y i- ]+ ?
00007392 DC.W sysTrapDmReleaseRecord
5 P) @; c0 l7 P" E6 b00007392 4fef0016 LEA 22(A7),A7/ J8 U# g C5 O! P# R0 Q7 S
00007396 200a L1025 MOVE.L A2,D0* c% E( P* {$ N$ q1 G) d# }3 a
00007398 6708 BEQ L1026
- U7 r3 E8 g. v1 C, W0000739a 2f0a MOVE.L A2,-(A7)7 d; ]; @: E0 ^- n4 z+ S' f
0000739c 4e4fa04a TRAP #15
% O6 v) ~( l/ b& A0 m000073a0 DC.W sysTrapDmCloseDatabase
& _) K1 E: a: e8 ?8 g, r6 f# p6 x000073a0 584f ADDQ.W #4,A7
3 e' ?0 G* b% @4 q# |000073a2 3004 L1026 MOVE.W D4,D0
' m" H% C) W& s9 H: H% E000073a4 4cdf1cf8 MOVEM.L (A7)+,D3-D7/A2-A4+ u* l% L% a3 |4 g
000073a8 4e5e UNLK A6+ l6 u, c, T! U2 {
000073aa 4e75 RTS |
|