As you do not consume list but produce them, you won't be able to use the usual list-traversing operators (map, filter, fold...).
There is however one common and well-understood combinator for list production, which is
val unfold : ('a -> ('a * 'b) option) -> 'a -> 'b list
Unfortunately, this operator is not available in the basic SML library, so you may have to define it yourself.
fun Dbt (xs, ys) =
let fun Step (nil, _) = NONE
| Step (x::xs, y::ys) = SOME (x::y,(xs,ys))
| Step (x::xs, nil) = SOME ([x], (xs,nil))
in unfold Step (xs, ys)