> MS-DOS Playerでも、INT 2Fh, AH=17hを一部サポートしてみました。
武田さん、ありがとうございます。
古い版の MS-DOS Player は INT2F 1700h 不可でしたが、CLPPST.EXEが使えるので問題ありませんでした。
新しい版を VZマクロで試してみました。
=== INT2F_17.DEF ===
* M
80 ^\ "INT2F 1700"
?.
ax=$1700, &i($2F) ;IDENTIFY WinOldAp VERSION
&m("1700 ax:%x dx:%x",ax,dx)
(ax==$1700)?. ; ax$1700 なら未サポート
*
このマクロでは、ax101h とか出るのでインストチェックはOKです。
次に文太さんのコピーチェックマクロでは
=== Macrotmp by B ===;
* M
50 ^\ "Macrotmp"
; p="0123456789",
p="あいうえおかきくけこ",
&Sn(p) cx=r, si-, ;size etc for SET func
ax=gz, bx=p, ;ptr (ax->es)
dx=1, ;type
&> a=r,
&m("finished %d %s",a,p).
0: &i(3+$)."$
$(50,B8,01,17,CD,2F,B8,02,17,CD,2F,07,B8,03,17,CD)$
$(2F,B8,08,17,CD,2F,C3)$"
; push ax
; mov ax,1701h ;open
; int 2Fh
; mov ax,1702h ;clear
; int 2Fh
; pop es
; mov ax,1703h ;set
; int 2Fh
; mov ax,1708h ;close
; int 2Fh
; ret
*
これは MSDOS.EXE 起動直後に実行するとコピー出来ていないようです。
下のマクロを実行後はキチンとコピー出来たようです。
テストマクロでは何か初期化かパラメータが足りないのでしょうか。
次に H岡さんのマクロでは
=== cliput.def ===
*m
89 ^\ "ブロック箇所をテキストスタックとクリップボードへコピー"
?. (mb)??{ #> #b #< } ; ★ 非ブロックモードは1行コピー 追加
#k dz[=kz, cx=kp..-1, bx=kp-3-cx, dz],
; cx++, ; ★ 1バイト補完
;-- テキストスタック格納データをクリップボードへコピー
ax$1701, &i($2F) ;Open Clipboard
ax$1702, &i($2F) ;Empty Clipboard
ax$1703, dx+, si-, di=kz, &i("$(8E,C7,CD,2F,C3)") ;Set Clipboard Data
;E8FF:0000 8EC7 MOV ES,DI
;E8FF:0002 CD2F INT 2F
;E8FF:0004 C3 RET
;DX=1:text
;ES:BX = data source ->di:bx
;SI:CX = data size ->00:cx
ax$1708, &i($2F) ;Close Clipboard
*
コピーは出来ますが、文字列の最後に 02h+12h の文字コードが出ています。
これらのマクロは VTDOSや DOSVAXJ3テスト版では正常に動作しています。
よろしくお願いします。
コピーは出来たのですが、ペーストで躓いています。
ペーストのアセンブラプログラムなど教えてもらえないでしょうか。
今の私は頭が働かなくて、(;_;)
※ これは DOSVAXJ3 でコピーしてみました。あれ?最後に全角文字がある??
と思ったら、01h が出ていました。
cx++, の1バイト補完したままが原因でした。m(__)m