今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル Bl3072 の大穴が塞がったかも
投稿日: 2022/10/11(火) 21:59
投稿者konno
 番 号 10322    10291 番 konno さんへのコメント    コメント数 1

Bl3072 では 3700bytes を超えるところで改行が入っていました。
ソースに改行を挿入するところがあるはずだと当たりをつけて
「,LF」で検索すると、それらしいところが TEXT.ASM にありました。

fread	proc
中略 410行目
	cmp	si,di
	jne	read3
	mov	byte ptr [si-1],LF
  _break
read3:	cmp	byte ptr [si-1],LF
_until e
	clz
	ret
read9:	stz
read_x:	ret


ここの
	mov	byte ptr [si-1],LF
があやしいと思い、色々試したところ 

	cmp	si,di
	jne	read3
	stc					;★##k 221011 キャリーをセット
	jmps	read9x				;★ ゼロフラグをクリアしてリターン
;	mov	byte ptr [si-1],LF		;★ Bl3072 の時 3700bytesで強制改行(実行しない)
  _break
read3:	cmp	byte ptr [si-1],LF
_until e
read9x:	clz					;★ ゼロフラグをクリアしてリターン
	ret
read9:	stz
read_x:	ret


このように変更したら、Bl3072 で改行文字化けが無くなりました。
大穴と思っていたところが塞がったのです。
もちろんこの変更で他の所に穴が開いた可能性もあります。
しばらく Bl3072 で運用してみようと思います。


あと、CORE.ASM の 276行目

endlin	proc
	pushm	<cx,di,es>
	movseg	es,ds
	mov	di,si
;	mov	cx,-1			;★ VTDOS でラップアラウンドエラーの原因?
	mov	cx,3000h		;★##k 221009 ラインバッファ+アルファ
	mov	al,LF
  repne	scasb

このようにしたら、Bl3072 で起きていた VTDOS でのラップアラウンドエラーが無くなりました。
ここが原因だったのでしょうか?


これで Bl8192 と Bl3072 の蟲の居所がわかりましたが
まだ他にもポインタズレという蟲が残っているようです。

 0007.CGI (170335bytes) を後ろから削っていって
 66882bytes にしたテストファイル
 66882.CGI (66882bytes) に
 0007.CG (132553bytes) を挿入するテストでは
ポインタズレによる行の入れ替えが起こっています。
今回の修正で、他のVZよりは改善したようですが。


# 深淵の大穴は無限に続くのか?

    - No.10322 一括表示へ   -   コメント元:10291 一括表示へ  -    [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
10291.VZ1.6のバグが直った? - konno 22/09/14-01:09
  ┣10292.Re: VZ1.6のバグが直った? - konno 22/09/16-00:50
  ┣10293.Libretto を復活させ検証してみた - konno 22/09/17-01:56
  ┗10297.BL1024*3 は危険、使用禁止に - konno 22/09/20-22:44
   ┗10298.Re: BL1024*3 は危険、使用禁止に - としき 22/09/20-23:28
    ┗10299.Re^2: BL1024*3 は危険、使用禁止に - konno 22/09/21-02:33
  ┣10303.VZ1.6のバグ修正版検証中 - konno 22/09/28-21:26
  ┗10322.Bl3072 の大穴が塞がったかも - konno 22/10/11-21:59
   ┗10323.Re: Bl3072 の大穴が塞がったかも - konno 22/10/12-22:17
    ┗10324.Re^2: Bl3072 の大穴が塞がったかも - としき 22/10/13-13:25
     ┗10327.Re^3: Bl3072 の大穴が塞がったかも - konno 22/10/13-20:47
      ┗10340.Re^4: Bl3072 の大穴が塞がったかも - としき 22/10/16-14:27
       ┗10341.Re^5: Bl3072 の大穴が塞がったかも - konno 22/10/16-22:46
  ┗10334.公開版VZの修正ができました。 - konno 22/10/15-02:03
   ┗10379.Re: 公開版VZの修正ができました。 - konno 22/11/10-00:44
    ┗10381.Re^2: 公開版VZの修正ができました。 - 文太 22/11/10-01:08
     ┗10382.Re^3: 公開版VZの修正ができました。 - konno 22/11/10-19:52

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]