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
> 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