/* sample routine to get the current cursor position with plain REXX */ /* and ANSI commands */ /* Original code is from the ANSICD package from Jamie Hoglund */ parse value GetCursorPos() with col row say "At program start the cursor was at " || , "Column " || col || ", Row " || row || "." exit 0 /* ------------------------------------------------------------------ */ /* function: Get the current cursor position */ /* */ /* call: GetCursorPos */ /* */ /* returns: col row */ /* */ /* note: This function works only for display sizes up to 200 for */ /* columns or rows. The upper left corner is 1,1. */ /* The REXXUTIL function SysCurPos uses zero based values */ /* (the upper left corner is 0,0). */ /* Caution: v2.90*/ /* The REXX Queue must be empty for this code to work! */ /* If the REXX Queue is not empty, you can use code */ /* like */ /* - create a new */ /* - make the new queue the default queue */ /* - call GetCursorPos */ /* - make the old queue the default queue again */ /* - delete the new queue */ /* */ GetCursorPos: PROCEDURE usedChars = ":;<=>?@ABCD" Rc = Charout(,D2C(27) || "[6n") Pull Q /* v2.30 */ parse var q 3 y1 +1 y2 +1 3 row +2 6 x1 +1 x2 +1 6 col +2 . if pos( y1, usedChars ) <> 0 then row = 10 || y2 if pos( x1, usedChars ) <> 0 then col = 10 || x2 return col row