[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