Since you don't want to scroll in increments of 1 in 65535 (because it's too slow), you don't need to use a range of 0 to 65535, as you said. Just use a smaller range (eg N) and /vol -v $calc($did(name,id).sel *65535/
N)
If you need to be able to scroll either accurately or quickly (not both), though, you may want to try something like this:
dialog scr {
title "Hold down Ctrl to scroll slowly"
size -1 -1 112 52
option dbu
scroll "", 1, 4 13 104 8, horizontal bottom range 0 65535
button "ok", 2, 38 32 37 12, ok
}
on *:dialog:scr:scroll:1:{
if $mouse.key !& 2 {
did -c scr 1 $iif($calc($iif($did(1).sel < $did(1),$v1 -,$v1 +) [color:red]1000[/color]) > 0,$v1,0)
did -a scr 1 $did(1).sel
}
; rest of your code here
}
/dialog -m scr scr
Whenever you hold down Ctrl while scrolling, it scrolls normally (slowly, in increments of 1), otherwise it scrolls in increments of 1000.