找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 709|回复: 0

[软硬件讨论] 关于程序流程的修改--打造更加好用的ZDic!

  [复制链接]
发表于 2004-12-13 22:14 | 显示全部楼层 |阅读模式
今年最棒的国产软件一定非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
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2025-4-18 19:07 , Processed in 0.223409 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表