There are two types of predefined registers:  read-only and read-write. These are all accessed via the \n escape sequence, even though some of them actually return string values.
.$ | Number of arguments available at the current macro level.  | 
$$ | Process ID of troff process (ditroff only). | 
.A | Set to 1 in troff, if   | 
.F | Name of the current input file (recent ditroff only).  | 
.H | Available horizontal resolution in basic units. | 
.L | Current line spacing (set by   | 
.R | Number of unused number registers (recent ditroff only).  | 
.T | Set to 1 in nroff, if   | 
.V | Available vertical resolution in basic units. | 
.a | Post-line extra line space most recently utilized using    | 
.b | Emboldening level (recent ditroff only).  | 
.c | Number of lines read from current input file. | 
.d | Current vertical place in current diversion; equal to register   | 
.f | Current font as number (1 to 4 in otroff; 1 to 99 in ditroff).  | 
.h | Text baseline high-water mark on current page or diversion. | 
.i | Current indent. | 
.j | Current adjustment mode. | 
.k | Current output horizontal position.  | 
.l | Current line length. | 
.n | Length of text portion on previous output line. | 
.o | Current page offset. | 
.p | Current page length. | 
.s | Current point size. | 
.t | Distance to the next trap. | 
.u | Equal to 1 in fill mode and 0 in no-fill mode. | 
.v | Current vertical line spacing. | 
.w | Width of previous character. | 
.x | Reserved version-dependent register. | 
.y | Reserved version-dependent register. | 
.z | Name of current diversion. | 
% | Current page number. | 
ct | Character type (set by   | 
dl | Width (maximum) of last completed diversion. | 
dn | Height (vertical size) of last completed diversion. | 
dw | Current day of the week (1 to 7). | 
dy | Current day of the month (1 to 31). | 
hp | Current horizontal place on input line.  | 
ln | Output line number. | 
mo | Current month (1 to 12). | 
nl | Vertical position of last printed text baseline. | 
sb | Depth of string below baseline (generated by   | 
st | Height of string above baseline (generated by   | 
yr | Years since 1900.[2]  | 
[2] Yes, there's a potential Y2K problem here. This will be
100in 2000.