CUR [#channel,] boolean



Every Window channel has a cursor which flashes when it is switched on and appears solid when it is inactive.

The command CUR with boolean=1 activates the cursor of a window, and it is de-activated with boolean=0. The default channel is #1.


Multitasking programs should use INKEY$ to read keystrokes from the keyboard if no other job is to be similarly affected by the keys pressed. KEYROW could be used, but this does not care which job/channel/window was active when a key was pressed (this could be used to give a background job a command without leaving the current job).

The following function imitates the getchar() function of the C language, and is used for non-interactive keyboard input. Arcade games should not engage the cursor!

100 DEFine FuNction GETCHAR% (channel,timeout)
110  LOCal char$
120  CUR#channel,1
130  char$=INKEY$(#channel,timeout)
140  CUR#channel,0
150  RETurn CODE(char$)


Although the cursor was activated, it will not flash until the channel is made into the current keyboard input queue (ie. when it can use PEND, EOF, INKEY$). This may therefore mean that the keys <CTRL><C> will need to be pressed to make this program the active (current) task.

Non-console windows (scr_) cannot be used for input operations (ie. INPUT and INKEY$ cannot be used), nevertheless, the cursor may still be enabled.

INPUT will activate and de-activate the cursor itself.


See FORCE_TYPE concerning current input queue activation, INKEY$, INPUT and KEYROW for general information.

CURSEN and CURDIS are both combined by the CUR command. CURSOR%.