you would need the GRREAD function. Just a simple example :
(defun c:rotdwg ( / inp)
(princ "\nRotate drawing +90 gr. (+ or LMouse) or back -90 gr. (- or RMouse) : ")
(setq inp (grread))
(if (or (equal (car inp) 25) (equal inp (list 2 45))) ; right mousebutton or '-'
(vl-catch-all-apply 'vl-cmdf (list ".move" "all" "" "0,0" "@-285,-1.25" ".rotate" "all" "" "5,5" "-90"))
(vl-catch-all-apply 'vl-cmdf (list ".rotate" "all" "" "5,5" "90" ".move" "p" "" "0,0" "@285,1.25")))
(vl-catch-all-apply 'vl-cmdf (list ".zoom" "all"))
(princ)
)