PEN - DualBrain/bsharp GitHub Wiki
To read the light pen.
Syntax:
As a statement:
PEN ON
PEN OFF
PEN STOP
As a function:
x = PEN(n)
Comments
PEN ON
enables the PEN
read function.
PEN OFF
disables the PEN
read function.
PEN STOP
disables trapping. It remembers the event so immediate trapping occurs when PEN ON
is executed.
The PEN
function is initially off. A PEN ON
statement must be executed before any PEN
read function calls can be made, or a PEN
read function call results in an "Illegal function call" error.
x = PEN(n)
reads the light pen coordinates.
x is the numeric variable receiving the PEN
value.
n is an integer within the range of 0 to 9.
Light pen coordinates:
n = 0
IfPEN
was down since last poll, returns -1; if not, returns 0.n = 1
Returns the x-pixel coordinate whenPEN
was last activated. The range is within 0 to 319 for medium resolution; 0 to 639, for high resolution.n = 2
Returns the y-pixel coordinate whenPEN
was last activated. The range is within 0 to 199.n = 3
Returns the currentPEN
switch value. Returns -1 if down; 0 if up.n = 4
Returns the last known valid x-pixel coordinate. The range is within 0 to 319 for medium resolution; or 0 to 639 for high resolution.n = 5
Returns the last known valid y-pixel coordinate. The range is within 0 to 199.n = 6
Returns the character row position whenPEN
was last activated. The range is within 1 to 24.n = 7
Returns the character column position whenPEN
was last activated. The range is within 1 to 40, or 1 to 80, depending on the screen width.n = 8
Returns the last known valid character row. The range is within 1 to 24.n = 9
Returns the last known valid character column position. The range is within 1 to 40, or 1 to 80, depending on the screen width.
For execution speed improvements, turn the pen off with a PEN OFF
statement for those programs not using the light pen.
When the pen is in the border area of the screen, the values returned will be inaccurate.
Example
50 PEN ON
60 FOR I=1 to 500
70 X=PEN(0): X1=PEN(3)
80 PRINT X, X1
90 NEXT
100 PEN OFF
This example prints the pen value since the last poll and the current value.