Same as asm_line() but with clipping.
Note that this routine doesn't recalculate the coordinates, for example, {-10,30} will become {0,30}.