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

一括表示


  ClpPst.def DOSVAXJ3対応 10/10版 - konno 24/10/10-23:17 No.11537
 ┣ ClpPst.def DOSVAXJ3対応 10/11版 - konno 24/10/11-23:53 No.11539
 ┃ ┗ Re: ClpPst.def DOSVAXJ3対応 10/11版 - shadow 24/10/15-08:28 No.11540
 ┃ ┗ Re^2: ClpPst.def DOSVAXJ3対応 10/11版 - konno 24/10/15-15:52 No.11541
 ┃  ┣ ClpPst.def DOSVAXJ3対応 10/15版 - konno 24/10/15-17:27 No.11542
 ┃  ┃ ┗ Re: ClpPst.def DOSVAXJ3対応 10/15版 - shadow 24/10/16-08:23 No.11544
 ┃  ┃ ┗ Re^2: ClpPst.def DOSVAXJ3対応 10/15版 - konno 24/10/16-16:27 No.11545
 ┃  ┗ Re^3: ClpPst.def DOSVAXJ3対応 10/11版 - shadow 24/10/15-19:08 No.11543
 ┗ ClpPst.def v05e7 24-10-17版 - konno 24/10/17-20:09 No.11546
  ┗ Re: ClpPst.def v05e7 24-10-17版 - shadow 24/10/18-08:37 No.11547

(11537) 11537ClpPst.def DOSVAXJ3対応 10/10版  投稿者:konno   2024/10/10(木) 23:17
   コメント数 2

ClpPst.def DOSVAXJ3対応 10/10版です。
クリップボードへのコピー、ペーストに仮対応しました。

  ClpPst.def v05e4 24-10-10 new!
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。あまりテストしてません。
・DOSVAXJ3は INT2F のFコール使用、それ以外は 従来どおりCLPPST.EXE 使用します。
・INT2F 使用時は、コピー64k以内、ペーストBL(8192)以内の制限があります。
・VZ1.6用 オリジナルVZでも動くと思います。

※ DOSVAXJ3以外で INT2F モードを試す時は、★印の行2か所をコメントにします。

#txt:ClpPst.def

INT2F 使用時は、コピー64k以内、ペーストBL(8192)以内の制限があります。
特にペーストは私の脳力不足でラインバッファ使用が精いっぱいでした。(;_;)
以下にペーストのソースを張りますのでどなたか64k対応とかお願いします。m(__)m

=== paste.def ===
*m
62 ^V	"ペースト"
	?. 
;	&02	;-------------------------------------	;機種チェック  #05e
;	(c<2)?>A					;★ DOSVAXJ3以外なら >a
	&s &04 #^ #< #b #_ #> ux[+, 			;CLPPST.TMP open
:b	#y (mb)?>b ux], d-,				;内容をクリア
	ax$1701, &i($2F)				;Open Clipboard
	ax$1704, dx+, &i($2F)				;GET Clipboard DATA SIZE
	&m(" ax:%x dx:%x ",ax,dx) 
	(dx)?{ #C (s)? 'n' &m("%x:%d   buf over!",dx,cx) .} ;65535 over!
	cx=ax, &s
	(cx>=bl)?{ #C (s)? 'n' &m("%d   buf over!",cx) .}   ;bl 8192 over!
	&m(" ax:%x dx:%x ",ax,dx) 
	(ax>4096 && d==0)?{&s (4096){" "}  #] &d #b #^ #k ax=ax-4096, d+, } ;4096埋める
	&s
:d 	&m(" ax:%x ",ax) 
	(ax<0 && d>0)?{#p ax=ax-4096, >d }		;4096分スペースで埋める
	(ax>4096 && d>0)?{#p ax=ax-4096, >d }		;4096分スペースで埋める
:e	(ax)?{ &?(" ") ax--, >e }			;残り分スペースで埋める
	&m(" ax:%x ",ax) 
	#^ #< #28 bx=cp,
	ax$1705, dx+, si-, di=gz,    ;8ec7 mov es,di	;Set Clipboard Data
	&i("$(8E,C7,CD,2F,C3)")      ;cd2f int 2fh	;Set Clipboard Data
	ax$1708, &i($2F)	     ;c3   ret		;Close Clipboard
	#] &d #^ #<
	ps[=pa, #F &o(0) #m #c ps], (r)?>K		;ヌルがあれば検索
	#b #_ #> ux[+, #y ux],				;ヌル以降削除
	(mb)?#b
:K	#_ #> #b #^ #< #k 
	#C (s)? 'y' 					;クローズ
	#i &d &m("INT2F: ClipBoard >> Text!")
	.

02:	c-,					;--- int2f frag  check ---
	ax=$1700, &i($2F)			;IDENTIFY WinOldAp VERSIO
	( ax == $1700 )??c++,			; WinOldAp サポートなら c+1
	ax=$7476,bx=$0000,cx=$6F64,		;VTDOS:0  MSP:1  DOSVAXJ3:7476
	&i($2F)					;VTDOS check $7476なら DOSVAXJ3
	( ax == $7476 )? c=c+2,			;DOSVAXJ3なら c+2
;	&m("7476   ax:%x c:%d",ax,c)		;ax=7476 なら未サポート 

04:	a-, mx[+, sn[-, #O &?("%sCLPPST.TMP",pi) #m	;--- CLPPST.TMP ---
		(s)?{ #[ #[ a+, } sn], mx],
	(a)?{ &m("クリップボードがカラかテキスト以外です") &d . }

*
; a,b,c,d,f,p 使用
;8ec7	mov	ES,BX
;cd2f	int	2Fh
;c3	ret

追記 
DOSVAXJ3は新版がまだ正式公開されていませんでした。
旧版用に ★★印の cx+, を活かしてあります。
メールでいただいたテスト版のURLを張り付けておきます。

>  1 バイト欠けですが、修正してみました。
>  下記よりテスト版をダウンロードしてください。64bit 版です。
> https://www.nanshiki.co.jp/test/dosboxj_test.zip

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


(11537) 11539ClpPst.def DOSVAXJ3対応 10/11版  投稿者:konno   2024/10/11(金) 23:53
    11537 番 konno さんへのコメント    コメント数 1

ClpPst.def DOSVAXJ3対応 10/11版です。

  ClpPst.def v05e5 24-10-11 new!
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。あまりテストしてません。
・DOSVAXJ3は INT2F のFコール使用、それ以外は 従来どおりCLPPST.EXE 使用します。
・INT2F 使用時は、コピー64k以内、ペーストBL(8192)以内の制限があります。
・若干のバグ修正と一時ファイルでペースト速度アップ
・VZ1.6用 オリジナルVZでも動くと思います。

※ DOSVAXJ3以外で INT2F モードを試す時は、★印の行2か所をコメントにします。

#txt:ClpPst.def

      - No.11539 -    このTreeへ    コメント元:11537 へ [リストへもどる] soft


(11537) 11540Re: ClpPst.def DOSVAXJ3対応 10/11版  投稿者:shadow   2024/10/15(火) 08:28
    11539 番 konno さんへのコメント    コメント数 1

コピーは問題ないですがペーストでclip.tmp、clppest.tmpを開いたところで止まります。
内容は空だったりスペースだったりテンポラリーファイルエラーだったりさまざまです。

      - No.11540 -    このTreeへ    コメント元:11539 へ [リストへもどる] soft


(11537) 11541Re^2: ClpPst.def DOSVAXJ3対応 10/11版  投稿者:konno   2024/10/15(火) 15:52
    11540 番 shadow さんへのコメント    コメント数 2

> コピーは問題ないですがペーストでclip.tmp、clppest.tmpを開いたところで止まります。
> 内容は空だったりスペースだったりテンポラリーファイルエラーだったりさまざまです。

うちの環境では問題なく動いているので、環境の違いでしょうか。
Sn+ 新規ファイルの確認かと思いましたが違うみたいですね。
環境変数 TMP は設定してますよね。 \user\TMP\ など長すぎると誤動作するかも。
うちは C:\TMP\ にしています。

OPT_LST.DEF の結果を教えてもらえますか。
ちなみにこの文章は DOSVAXJ3 でコピペして書いています。

      - No.11541 -    このTreeへ    コメント元:11540 へ [リストへもどる] soft


(11537) 11542ClpPst.def DOSVAXJ3対応 10/15版  投稿者:konno   2024/10/15(火) 17:27
    11541 番 konno さんへのコメント    コメント数 1

BLの半分ほどでも失敗する場合がありました。原因は不明です。
その場合ヌルが出力されないので buf err!! 3  で終了するようにしました。

;	(r)?{#] &d #b ps], #W sn[+, #C (s)? 'n' &m("buf err!! 3") sn], .}	;err! ★★★

このコメント行を有効にすれば、TMPの内容を残して終了します。

これで確認してもらえるでしょうか。

#txt:ClpPst.def  2024/10/15版

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


(11537) 11544Re: ClpPst.def DOSVAXJ3対応 10/15版  投稿者:shadow   2024/10/16(水) 08:23
    11542 番 konno さんへのコメント    コメント数 1

環境変数TMPはE:\TMP¥に設定してます
buf err!! 3で終了してます
      - No.11544 -    このTreeへ    コメント元:11542 へ [リストへもどる] soft


(11537) 11545Re^2: ClpPst.def DOSVAXJ3対応 10/15版  投稿者:konno   2024/10/16(水) 16:27
    11544 番 shadow さんへのコメント

> buf err!! 3で終了してます

やはりこれが原因のようですね。ラインバッファ使用はBLの半分が限界かもしれません。
掲示板の記事のコピペ程度なら問題ないと思いますが、ちょっと大きなファイルは厳しいようです。
スタックを使えば良さそうですが私はその辺の知識が無いのです。

マクロは難しいのでアセンブラでやってみたら出来ました。
32k程度ですが一応動くようになったので動作チェックしてみます。
64kまで出来ると思ったのですが、どうもINT2Fでは半分しか使えないような感じですね。

      - No.11545 -    このTreeへ    コメント元:11544 へ [リストへもどる] soft


(11537) 11543Re^3: ClpPst.def DOSVAXJ3対応 10/11版  投稿者:shadow   2024/10/15(火) 19:08
    11541 番 konno さんへのコメント

> OPT_LST.DEF の結果を教えてもらえますか。
いろいろ試して純正vzibmj.defに組み込んでも同じでした。
10/15版はこれから試します。
      - No.11543 -    このTreeへ    コメント元:11541 へ [リストへもどる] soft


(11537) 11546ClpPst.def v05e7 24-10-17版  投稿者:konno   2024/10/17(木) 20:09
    11537 番 konno さんへのコメント    コメント数 1

ClpPst.def v05e7 24-10-17版を VZマクロの部屋にUPしました。

paste.zip 24-10-17 new!
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。あまりテストしてません。
・DOSVAXJ3は INT2F のFコール使用、それ以外は 従来どおりCLPPST.EXE 使用します。
・INT2F 使用時は、コピー64k以内、ペースト32k以内の制限があります。v05e7
・若干のバグ修正と一時ファイルでペースト速度アップ
・VZ1.6用 オリジナルVZでも動くと思います。
・paste.com 使用で 32kまでペースト出来るようになりました。 v05e7


以下 同梱の paste.txt の内容です。

paste.com   2024-10-17版

paste.com はクリップボードから C:\TMP\PASTE.TMP に内容をペーストするプログラムです。
ペーストできる容量は32k程度までです。それ以上ではエラー終了します。
PASTE.TMP の内容はデータの最後にヌルがあり、その後ろはゴミがあります。
データがあふれるとヌルが無くなるのでそれでエラー判定します。
同梱の改造した ClpPst.def で必要なデータを取り出して ClpPst.tmp とテキストに書き出します。


■ 使い方
 paste.com をパスの通ったフォルダに置きます。
 あとは ClpPst.def のペーストモードで自動的に呼び出されます。


■ paste.com を単独で使う場合

paste.com >nul

 このように NUL にリダイレクトさせないと コマンドラインにクリップボードの内容を吐き出してしまいます。


■ PASTE.TMP が生成されるフォルダは C:\TMP\ に固定されています。
 ファルダを変更したい時は paste.com を VZで開いて 該当箇所を直接変更してください。
 ファイルサイズが変わらないように、後ろのヌルを削除します。


#txt:paste.zip  ここから落とせるかな?

少し前に一旦UPしましたが 19時40分マクロを差し替えたので、よろしくね。(^^;


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


(11537) 11547Re: ClpPst.def v05e7 24-10-17版  投稿者:shadow   2024/10/18(金) 08:37
    11546 番 konno さんへのコメント

コピー&ペーストをくり返してpaste.tmpのサイズが50306の時にペースト
できない時がありましたがそれ以外は問題なさそうです。
カットはクリップボードにコピーできますがカットできずに残ります。
今のところそれぐらいです。
      - No.11547 -    このTreeへ    コメント元:11546 へ [リストへもどる] soft