2001/10/02
CHAPTER 2 "PCL" - 32
100 REM --- MOVING CURSOR 1 INCH TO THE RIGHT ---
110 LPRINT ESC$+"*p+300X";
120 LPRINT "C";
130 REM --- PAPER EJECT ---
140 LPRINT CHR$(12);
150 END
<Sample file 4>
Horizontal cursor positioning - decipoints
Esc&a#H
(27)(38)(97)#(72)
<1Bh><26h><61h>#<48h>
# = number of decipoints 1/720"
•
A plus or minus sign preceding the number of decipoints parameter indicates that the cursor is to be
positioned relative to its current position. A signed positive parameter value signifies that the cursor is to be
repositioned to the right on the page, a negative value means that it will be moved to the left.
•
An unsigned number as the parameter signifies that the horizontal repositioning is absolute - the cursor will
be repositioned the specified number of decipoints to the right of the left edge of the logical page, the PCL
coordinate system’s y -axis.
•
The cursor’s vertical position remains unchanged.
•
If you attempt to move the cursor to a position that is outside the boundaries of the logical page, the cursor
will be positioned at either the left or right edge of the logical page as appropriate.
10 REM ***** HORIZONTAL CURSOR POSITIONING *****
20 ESC$=CHR$(27)
30 REM
40 REM --- POSITIONING CURSOR AT 1 INCH ---
50 LPRINT ESC$+"&a720H";
60 LPRINT "A";
70 REM --- MOVING CURSOR 0.5 INCHES TO THE LEFT ---
80 LPRINT ESC$+"&a-360H";
90 LPRINT "B";
100 REM --- MOVING CURSOR 1 INCH TO THE RIGHT ---
110 LPRINT ESC$+"&a+720H";
120 LPRINT "C";
130 REM --- PAPER EJECT ---
140 LPRINT CHR$(12);
150 END
<Sample file 5>
4.2.23. Positioning the cursor using control codes
The carriage return, space, horizontal tab and backspace control codes can also be used to reposition the cursor
using the current VMI and HMI settings.
4.2.24. Using the cursor position stack
You can save and retrieve up to 20 cursor positions using the cursor position stack.
Esc&f#S
(27)(38)(102)#(115)
<1Bh><26h><66h>#<73h>
# = 0 or 1
•
Setting # to 0 stores the current cursor position on the stack.
•
Setting # to 1 retrieves the cursor position currently on the top of the stack and makes it the current cursor
position.
•
Resetting the printer deletes all the positions from the stack.