*drag はドラッグを始めた最初の1回だけ実行されます。
以後、ドラッグが終わるまで repeat〜loop(無限ループ)は実行されません。
つまり、ドラッグ終了と同時に無限ループが再開されるわけですね。
これを利用し、*drag にジャンプしたときにフラグ(dragflag)を立てておいて、
ループ内でフラグを判定します。フラグが立っている(1)ならば
直前までドラッグしていたんだなと判定します。同時にフラグを解除します。
oncmd gosub *drag, 0x0112 // メッセージ割り込み
repeat
redraw 0
color 0,0,128: boxf // 青で全体塗り潰し
color 255,255,255: pos 270,220: mes "Count = "+cnt
if dragflag=1 { dialog "ドラッグ終了": dragflag=0 }
redraw 1
await 17-(cnt\3=0) // 1/60秒ウエイト
loop
*drag
dragflag=1
color 0,0,0: boxf
color 255,255,255: pos 250,220: mes "ドラッグされている"
return