[HOME]  [全部表示 会議室風]  [全部表示 保存用]  [HOME]  [リストへもどる] [リストへもどる]

一括表示


  行番号取得ルーチンの解析お願い - konno 20/11/18-00:35 No.9919
 ┗ Re: 行番号取得ルーチンの解析 - konno 20/11/19-23:03 No.9920

(9919) 9919行番号取得ルーチンの解析お願い  投稿者:konno   2020/11/18(水) 00:35
   コメント数 1

VIEW.ASM 1010行目にそれらしきところを見つけたので弄ってみました。
★印が追加した部分です。
アセンブラをほとんど忘れているので全く読めていません。
迷える子羊に愛の手を。m(__)m


;--- Set line numbler ---
;-->
; AX :current line
; CX :target line
;<--
; DX :line count

public setnum
setnum proc
; pushm <ax,cx,di,es> ;
pushm <ax,bx,cx,di,es> ;★
clr bx ;★
clr dx
cmp ax,cx
je slnum8
mov di,ax
movseg es,[bp].ttops ; ##1.5 18 ttops dw ? ; text area top seg tz
cmp di,[bp].ttop ;★これはどう?
; call istop ;★これは違う?
je slnum1 ;★
inc bl ;★
slnum1: ;★
clr ah
cmp di,cx
je slnum8
_ifn b
xchg di,cx
not ah
_endif
sub cx,di
mov al,LF ;改行の数を数える
_repeat
repne scasb
_break nz
inc dx
tst cx
_until z
tst ah
jz slnum8
neg dx
slnum8:
; call istop ;★
; je slnum9 ;★
; inc bl ;★
; dec di ;★
; jmps slnum1 ;★
slnum9: ;★
mov [bp].atrtxt1,bl ;★ Vn に bl 入れる
popm <es,di,cx,bx,ax> ;★
; popm <es,di,cx,ax> ;
ret
setnum endp


      - No.9919 -    このTreeへ           [リストへもどる] pre

(9919) 9920Re: 行番号取得ルーチンの解析  投稿者:konno   2020/11/19(木) 23:03
    9919 番 konno さんへのコメント

> VIEW.ASM 1010行目にそれらしきところを見つけたので弄ってみました。

ごめんなさい。ここは違っていました。m(__)m

色々調べていたら、めざら資源で、高橋版の拡張関数を見つけました。

&Ln(p,str) 十進数(ロング)の取得
&Lh(p,str) 十六進数(ロング)の取得

この関数のソースの該当箇所も見つけました。
うちの(miyataさんの)STKHELP.SHD には載っていなかったのです。
そのうち追加して公開したいと思います。(^^;

何故こういう話をしたかと言うと、ロング行番号を得るのに必要な気がしたからです。

DC15の03889番で、Emmettさん が要望した関数でした。97/01/08ですね。
そして、DC15の13454 の高橋さんの発言 99/04/08

>  &n &h のロング版。&Ln(p,str) &Lh(p,str) が入ってます。
>  将来、行のロング化の下準備。(^^;

なんと、高橋さんは行のロング化を考えていたようでした。
道半ばで終わってしまったのは残念です。m(__)m


      - No.9920 -    このTreeへ    コメント元:9919 へ [リストへもどる] pre