[Question]
  [
Print or return the following string:
```
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
*....... .*...... ..*..... ...*.... ....*... .....*.. ......*. .......*
R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
```
This represents all the possible positions of a rook on an 8x8 chessboard and for each the possible moves it can make.
* Standard I/O methods apply, you can output as a string, list of lines, matrix of characters, etc.
* The characters used must be exactly as shown, you cannot substitute them for others.
* Trailing whitespace is permitted on each line, and trailing newlines are permitted, but otherwise the output and spacing must be exactly as shown.
* This is code golf, the shortest code in bytes wins.
  
[Answer]
# [J](http://jsoftware.com/), 29 27 24 23 bytes
```
' .*xR'{~*/~,0,.~1+=i.8
```
[Try it online!](https://tio.run/##VYwxC8IwFAb3/oqXDD6bPL80BMQEuyg4iUN2J2lRF1ehkL8eo5vDTXfcs0aV/HWrUmTuNHimMRGT0ECpsQEd8/lUmWDemZdiXJFBULwdH9jVvrscQAyTqcm1IKwEvdPBOu1d@TZ/RdjDtkOkuEAh/Px0u79orh8 "J ‚Äì Try It Online")
My initial observation was that the output is essentially a row-wise function table of the 8x8 identity matrix with itself, where each evaluation is simply an ordinary addition table: `row_i +/ row_j`.
This can be simplified further by flattening the identity matrix first, as follows:
* `1+=i.8` 8 by 8 identity table, plus 1:
```
2 1 1 1 1 1 1 1
1 2 1 1 1 1 1 1
1 1 2 1 1 1 1 1
1 1 1 2 1 1 1 1
1 1 1 1 2 1 1 1
1 1 1 1 1 2 1 1
1 1 1 1 1 1 2 1
1 1 1 1 1 1 1 2
```
* `0,.~` Add a column of zeros
```
2 1 1 1 1 1 1 1 0
1 2 1 1 1 1 1 1 0
1 1 2 1 1 1 1 1 0
1 1 1 2 1 1 1 1 0
1 1 1 1 2 1 1 1 0
1 1 1 1 1 2 1 1 0
1 1 1 1 1 1 2 1 0
1 1 1 1 1 1 1 2 0
```
* `,` Flatten:
```
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
```
* `*/~` Multiplication table with self:
```
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
2 1 1 1 1 1 1 1 0 1 2 1 1 1 1 1 1 0 1 1 2 1 1 1 1 1 0 1 1 1 2 1 1 1 1 0 1 1 1 1 2 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 1 0 1 1 1 1 1 1 1 2 0
4 2 2 2 2 2 2 2 0 2 4 2 2 2 2 2 2 0 2 2 4 2 2 2 2 2 0 2 2 2 4 2 2 2 2 0 2 2 2 2 4 2 2 2 0 2 2 2 2 2 4 2 2 0 2 2 2 2 2 2 4 2 0 2 2 2 2 2 2 2 4 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
```
* `' .*xR'{~` Convert to ascii. This returns the required pattern.
[Answer]
# [Ruby](https://www.ruby-lang.org/), ~~67~~ 66 bytes
*-1 byte thanks to @G B*
A function that returns a list of lists.
```
->{(a=0..70).map{|x|a.map{'.*R '[x%9|_1%9<8?1[x%10]+1[_1%10]:3]}}}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72kqDSpcsGiNNulpSVpuhY3nXTtqjUSbQ309MwNNPVyEwuqaypqEsEMdT2tIAX16ApVy5p4Q1VLGwt7QyDH0CBW2zAaKABkWBnH1tbWQkzanhYdC9amUFBaUqwQb6igpaCurgCVXbAAQgMA)
### [Ruby](https://www.ruby-lang.org/), 69 bytes
Alternatively, outputting the string to STDOUT takes two extra bytes.
```
71.times{|x|71.times{$><<'.*R '[x%9|_1%9<8?1[x%10]+1[_1%10]:3]};puts}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72kqDSpcsGCpaUlaboWN13NDfVKMnNTi6trKmrgbBU7Gxt1Pa0gBfXoClXLmnhDVUsbC3tDIMfQIFbbMBooAGRYGcfWWheUlhTXQgyDmgkzGwA)
[Answer]
# [Python](https://www.python.org), 77 bytes (@xnor)
```
f=lambda*_:[[" ",I[i%10<1]][i%9<8]for i in range(71)]
I=f(I:='.*'),f(I:='*R')
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72soLIkIz9vwYKlpSVpuhY3fdNscxJzk1ISteKtoqOVFJR0PKMzVQ0NbAxjY4EMSxuL2LT8IoVMhcw8haLEvPRUDXNDzVguT9s0DU8rW3U9LXVNHQhTK0hdE2qoYkFRZl6JhlZuYoGGkpJeVn5mHlCRpqZOcWqBrXpMHkwhzBUA)
### Previous [Python](https://www.python.org), 79 bytes
```
J=[]
f=lambda I=J:[" "[~i%9:]or I[i%10<1]for i in range(71)]
J+=f('.*'),f('*R')
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72soLIkIz9vwYKlpSVpuhY3_b1so2O50mxzEnOTUhIVPG29rKKVFJSi6zJVLa1i84sUPKMzVQ0NbAxj04CcTIXMPIWixLz0VA1zQ81YLi9t2zQNdT0tdU0dIK0VpK4JNVaxoCgzr0RDKzexQENJSS8rPzMPqEJTU6c4tcBWPSYPphDmDgA)
### Previous [Python](https://www.python.org), 80 bytes
```
J=[]
f=lambda I=J:sum(zip(*8*[iter(8*(I+7*I[1:]))],8*' '),())
J+=f('R*'),f('*.')
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72soLIkIz9vwYKlpSVpuhY3A7xso2O50mxzEnOTUhIVPG29rIpLczWqMgs0tCy0ojNLUos0LLQ0PLXNtTyjDa1iNTVjdSy01BXUNXU0NDW5vLRt0zTUg7SAXCCtpaeuCTVXsaAoM69EQys3sUBDSUkvKz8zD6hCU1OnOLXAVj0mD6YQ5hAA)
This uses the good old grouper to create lots of 8 and to mix in the separators.
[Answer]
# [Python](https://www.python.org), ~~86~~ ~~83~~ ~~82~~ 81 bytes
```
lambda r=range(71):[[" .*R"[i%9|j%9<8and(i%10<1)-~(j%10<1)]for i in r]for j in r]
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72soLIkIz9vwdI0BVuFmKWlJWm6FjcDcxJzk1ISFYpsixLz0lM1zA01raKjlRT0tIKUojNVLWuyVC1tLBLzUjQyVQ0NbAw1des0siCs2LT8IoVMhcw8hSIwMwvChBqsXFCUmVeioZWbWKChpKSXlZ-Zp6OQpqGpqaNQnFpgqx6Tp64JUbpgAYQGAA)
-1 byte thanks to [@loopy walt](https://codegolf.stackexchange.com/users/107561/loopy-walt)
[Answer]
# [K (ngn/k)](https://codeberg.org/ngn/k), ~~34 32 30 24~~ 20 bytes
```
".*R"a+\:a:,/|+|3,=8
```
[Try it online!](https://ngn.codeberg.page/k#eJxT0tMKUkrUjrFKtNLRr9GuMdaxtQAAMmAE/g==)
idea from [jonah's solution](https://codegolf.stackexchange.com/a/251105/24908)
`=8` identity matrix
`3,` prepend a 3
`|` reverse
`+` transpose (this will extend the 3 to eight copies)
`|` reverse again
`,/` raze
`a:` assign to `a`
`a+\:` add-each-right, i.e. make a matrix in which element i,j is `a[i]+a[j]`
`".*R"` index into this string. out-of-bounds indices generate `" "`-s in the result.
[Answer]
# [MATL](https://github.com/lmendo/MATL), ~~26~~ ~~25~~ ~~24~~ ~~21~~ 20 bytes
```
'.*xR '8XyQO9Y(le&*)
```
[Try it online!](https://tio.run/##y00syfn/X11PqyJIQd0iojLQ3zJSIydVTUvz/38A "MATL ‚Äì Try It Online")
-3 bytes thanks to [@Luis Mendo](https://codegolf.stackexchange.com/users/36398/luis-mendo)
### Explanation
Port of [@Jonah answer](https://codegolf.stackexchange.com/a/251105/91267) to MATL
```
'.*xR '8XyQO9Y(le&*)
       8Xy              % 8 x 8 identity matrix
          Q             % add one
           O9Y(         % add a row of zeros to the end
               le       % flatten
                 &*     % multiply with itself
'.*xR '            )    % convert numbers to required codepoints
```
[Answer]
# [sed](https://www.gnu.org/software/sed/) `-E`, 125 bytes
```
s/^/Rssssssss/
s/.*/&&&&&&&&/
s/.{8}$//
s/.{8}/& /g
y/s/*/
h
y/R*/*./
H;H;H;H;H;H;H;H
g;H;H;H;G;G
s/.{584}/&\n/g
s/.{1244}$//
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m724ODVlWbSSrqtS7IKlpSVpuhY3a4v14_SDiqFAn6tYX09LXw0KwNxqi1oVfRhLX01BP52rUr9YX0ufKwPICNLS19LT5_KwRoFc6VCWu7U7WKephQlQb0weUDOIa2hkYgIyFeIIqFsWLOSCMAA)
[Answer]
# [C (GCC)](https://gcc.gnu.org), 102 bytes
```
main(i,k){for(i=9;++i<82;puts(""))for(k=9;++k<82;)putchar(k%9&&i%9?i%10|k%10?i%10&&k%10?46:42:82:32);}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m700OT49OXnBgqWlJWm6FjfTchMz8zQydbI1q9PyizQybS2ttbUzbSyMrAtKS4o1lJQ0NUHi2WDxbJC4JlAiOSMRKKZqqaaWqWppn6lqaFCTDSTALDU1MNPEzMrEyMrCyMrYSNO6FmIb1FKY5QA)
# [C (GCC)](https://gcc.gnu.org), ~~111~~ ~~109~~ 107 bytes
```
#define F(X,c)for(X=0;++X<9;putchar(c))
main(i,j,k,l){F(i,10)F(j,10)F(k,32)F(l,i-j|k-l?i-j&&k-l?46:42:82);}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m700OT49OXnBgqWlJWm6FjezlVNS0zLzUhXcNCJ0kjXT8os0ImwNrLW1I2wsrQtKS5IzEos0kjU1uXITM_M0MnWydLJ1cjSr3YBMQwNNN40sCJWtY2wEpHJ0MnWzarJ1c-yBtJoaiGFiZmViZGVhpGldC7ESajPMBQA)
[Answer]
# [Knight](https://github.com/knight-lang/knight-lang), 80 bytes
```
;=i~1W>8=i+1i;=j~1;W>8=j+1j;=x~1;W>8=x+1xO+I?j iS*'*'8xT'R'S*'.'8xT'*'' \'O''O''
```
[Try It Online!](https://tio.run/##lVj7U9vGFv69f4XQTbHWEsLOdHobC8EklHSYNiY30GZubSderda2iCw5eoBTW/nX23NWr5VfpAzDSNpvz2u/81ju6QONWeQtkpMgdPnfzKdxrPwaeNNZchVFYaTwZcIDN1bE2yrLAW9pFPPmurSnRL1Lg8SbP427TSJO5ysWBnESpSwJI42SVTLzYjMO04hxm2aw4i3ez7yExwvKuFasz2nCZtrpB20wHA0Hwxi@Z72Rvv7P4MMwGLW1YbB@Rkj7lGQLzj/BasSTNAoUSfigM1qvg9T3s1yYYzC7Q1Y@TxRqOyZfcqZJcGIVInCLbdv0Ah96MsSWns04dcB2jYIa0@fBNJkRgw7YiGRJCI57wXSnVVkmwqHc/f/t1a09GFl5qP6gfspXcUITjykLPAXNISvH3AqPNYEoPtAIfOhY9EyIKfRbVNdz/5gtvg/oyCxlWd5EY6Swh2WSr1mUBiLsUfioBPwxZ0Tmcied7vi@xzshxKwXAddP5w6P9uDKRcC9CkOf02APsFrNClb9BsGIqF8RLw/dBsnidIHSDSHqo0sTClzLHZWU7HCmeK/37fKkeG@CttwoP8gw/tlH8woEVTywmgaMh5Pca8mN42PJeOBj/lRGAYVXIShCssWfkut1Nt29HpHBy5M/R@1To1tRnh4f4wGjTE29U1Ebydx0vqicGZfOPBP5mZFx5iez2pWj2tbjY9o4tqmMU2TcUROY5WRepPFMw6/EylPlqv/H9bub/pur/p29yoqEuXZ5kGxw4Cn3B/Tkr48j/Ns5efERQrAZACEUjM0OsclDELCpGR@x1Zt4gMtDlOMwUGCuNw1QjuTJoMaMKmrmBu9BYQY/hJ6rdI7wfErLrTpB5bqsjX8PPgXhY6B4lWVKq2Faa9yMuXCBlPGVovut9Bq6@nZIIaBFulCySapioeYUdV2JK@X@mjM6lUoHyaAGH4SfNOHz1D8Ibzfhrvcge1kv4Uk0DqEU9YYmMxN4EzBJ6in4ve@Q1EsaBGGigCo4E8X5ovzFo1AFU0P3X@quFX5Pn9QH4lM/lPQtwsfD@mrx6/WRRs865Jucb7e/wXu@XIQBkpQmXBikJCHUxoBPgW8PXAHjeARG@nsqyZl8bnvrzXkD1SB@Tfs@NMTDvJeqd0X8flFSSc55FNIoIWUFwXa7kQMqgjWiHuoMQl7h/BOhZOEczORii6lWwfiXu@Tg4LcyOtAcnwwOUsixqdRz1NaIwBwXD29H7Qsy7J4azwWtMBrALEcmEmjAYSUfYqiZD3cIVlvYlth63VJb@EBql@qhFYseWDX3AmCSq3xOQyAUD1iY4mfu9pRnK5qNd7V0YX8zj4xuh6zXnY2aVQwIh2oWOjEuAIXC7dKDoFqXGfEFp9B75Ar0BOOrUesg4yuUfKjwseiusIu6t18C1qOZHfHPqRdxTZ3EKjFWOCKLJUdaYjPPdz8uopDxGFGvf@9f3l3f9G/r3vwaasCh1iyxJD9gmMwrMQNH6nTipKVZ1ZJ4ddETWaevTXKaM4bjPI3zMb64MB@7Z6ycjd1yNp7YwiKzNAWVHU320OmNB707mCo0mqZzHDierVy9mymgRJmgl9BRHWykFs8DOyGZdMYYCI0ZjsE3Rgr4xDbGChRn0/w5oHNuO/kzqI5ttj27ig2aaZoVqqoseRVXUXvihYGm6pXUKjyOUo6cYivVbdVQVN0xcxlVF9fVrdp049xzlpheLPhrwLiUTQpVSsSnXpxw4SJZQWi72KvKC9LGXUJT@2CSMk9hyHMgUZeUJf4XBXqBwmY0gjeYWfwwmEJNsmqC0JHtSBohMFXnko@2SDK4gWqOlAdErj31GJXfN6ydNFD7ofKAkqFQpr6LtgoV7hHUSimrMODEqEKgvlUNjdjnxZVMVQ3HfpVOJjwyqe@HTIMB3A0xSFTrACM6MJEbQHkHrpTEAcM/WUwHVx8h47jWhS4sVsRNzsTceu9B4qvDQCWE2cyMfQ9uiB1DOakn@7LSMJLJlr3LLWu07okfgq8/PH/xw4sf//v8xY9t8TWigRvOMWzy/ivVoPY5how2QltDWi9bCKkSPQ9vYZUjdzcw4KI0M5dkTqJwfgkMuAxdGDSLuxPplebKx2myAvcywZlNNvKVMJLKny7zT8XlUvyVl8diuepDTef2OKr@T2wqCqLJl95mFZewR5UCcddqXoAayN8qJHosG1Imk4z@Gbl1Xo1vjWCXlsWJG6aJ@RhB4waBeZ4TgzZidtMUVGstpKnDobgeFmQDpl3skV@yESCktxMzxt743ZgY1cwkW6IDRbGI1MeFjbbwreH8yRYS7wW7kO0tJPblXcjTLaS4DexAfr8tM9xt54ctpJi6dyDPKmRFlXILTgTVFnnP@f490317LvbvwZK/c89xtUejZV43/k9zUWzrNTJv/eQ22nO2M9KStuWrxq6A2RKsUVvwSrteg0rpet9MZGoW93PHrvQ7DeHvK@Er7J5WI2ktspFuO8l8nYuApm@f053BYtu@/yJtEkGr7TacxiXNwPIvvZYVjJb/pUQh67WqNqN2WyhwhYpy0xOqXNvd1lyBy1aPY/0F1WGqLE2ADkd0ptcm6S724rphfG3JFa95dQccRKesIjCxPAyeQyf8G34s2/vafX/@k@3pXc@y7792LXy717v3lr0s3pZ6d3mjX1/cK95tu9Vu/bS8a71rwaMpHtutljJs3bTw9x8)
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 17 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
```
8‚Åº√æj-‚Äò√ó√æ`·ªã‚Äú.* R ‚Äù
```
A niladic Link that yields a list of the lines of characters. The empty lines have trailing spaces.
**[Try it online!](https://tio.run/##ASoA1f9qZWxsef//OOKBvMO@ai3igJjDl8O@YOG7i@KAnC4qIFIg4oCd/8KiWf8 "Jelly ‚Äì Try It Online")** (Footer joins with newlines)
### How?
Implements [Jonah's brilliant method](https://codegolf.stackexchange.com/a/251105/53748).
```
8‚Åº√æj-‚Äò√ó√æ`·ªã‚Äú.* R ‚Äù - Link: no arguments
8                 - 8
  √æ               - ([1..8]) table ([1..8]) with:
 ‚Åº                -   is equal?
    -             - -1
   j              - join
     ‚Äò            - increment all values
        `         - use as both arguments of:
       √æ          -   table with:
      √ó           -     multiply
          ‚Äú.* R ‚Äù - ".* R "
         ·ªã        - index into (1-indexed and modular, so 0 gives ' ')
```
[Answer]
# [gbz80](https://rgbds.gbdev.io/docs/v0.5.2/gbz80.7) [machine code](https://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html), 73 72 70 bytes
```
21 00 C0 06 00 0E 00 16 00 1E 00 36 00 78 B9 20
01 34 7A BB 20 01 34 AF BE 28 08 3C BE 28 08 3E
52 18 06 3E 2E 18 02 3E 2A 22 3E 08 1C BB 20 DB
36 20 23 14 BA 20 D2 36 0A 23 0C B9 20 C9 36 0A
23 04 B8 20 C0 76
```
As an ASM rookie, I gladly accept.
The string is returned in $C000-$D247 ($1248 long, nice). You may check it by copying that range using an emulator debugger (it finishes very quickly, you'll know it's done if the program counter is on or after the halt) into a text file and opening it with a text editor that supports LF. The emulator I used is BGB.
This code can be placed anywhere in a ROM and jumped to from the entrypoint, or called as a routine if the $76 (halt) at the end is replaced with a $C9 (ret).
Source, which may be assembled with [RGBDS](https://rgbds.gbdev.io):
```
section "Header", ROM0[$100]
    jr GenerateMetaTable    ; the generated binary could be placed anywhere because of the lack of calls and jps
    ds $150 - @, 0          ; Make room for the header
GenerateMetaTable:
    ld hl, LotsaSpace
    ld b, 0                 ; meta-line tracker. each of these hardcoded zeroes is necessary because all of these registers change
.outermost:
    ld c, 0                 ; sub-line tracker
.mediumOuter:
    ld d, 0                 ; meta-row tracker
.mediumInner:
    ld e, 0                 ; sub-row tracker
.innermost:
    ld [hl], 0              ; we're out of registers (besides a which is used for comparing), but we have this convenient value we're pointing to that will get overwritten anyway.
    ld a, b
    cp a, c                 ; meta-line == sub-line -> rook move or rook position
    jr nz, .skipFirstInc
    inc [hl]
    .skipFirstInc:
    ld a, d
    cp a, e                 ; meta-row == sub-row -> rook move or rook position
    jr nz, .skipSecondInc
    inc [hl]
    .skipSecondInc:
    xor a, a
    cp a, [hl]
    jr z, .period           ; [hl] == 0 -> neither rook position nor rook move
    inc a
    cp a, [hl]
    jr z, .star             ; [hl] == 1 -> rook move
    ld a, "R"               ; [hl] == 2 -> rook position
    jr .write
.period:
    ld a, "."
    jr .write
.star:
    ld a, "*"
.write:
    ld [hl+], a
.innermostEnd:
    ld a, 8
    inc e
    cp a, e
    jr nz, .innermost
    ld [hl], " "
    inc hl
.mediumInnerEnd:
    inc d
    cp a, d
    jr nz, .mediumInner
    ld [hl], "\n"
    inc hl
.mediumOuterEnd:
    inc c
    cp a, c
    jr nz, .mediumOuter
    ld [hl], "\n"
    inc hl
.outermostEnd:
    inc b
    cp a, b
    jr nz, .outermost
HangMachine:
    db $76                  ; directly encoded halt, saves one byte over "halt", which automatically adds a nop
                            ; this is here to prevent the program from repeating endlessly. that may not seem problematic, but if a tester stops it while [hl] is being used to hold the match count, they'll copy a bad output.
                            ; to make GenerateMetaTable a function, just replace this with "ret"
section "Memory", WRAM0
LotsaSpace:
    ; we need $1248 of space, but we can't just ds it because WRAM0 is $1000 long. no formalism for you. we don't bank-switch ever, so it's not a problem.
```
Edit 1: "ld a, 0" -> "xor a, a", -1 byte
Edit 2: rearranging character loading jumps allowed removal of one, -2 bytes
[Answer]
# [Retina](https://github.com/m-ender/retina/wiki/The-Language), 64 bytes
```
R7*$(9*$*R)7*$(¬∂9*$($*7*$(9*.$*)¬∂)R7*$(9*$*R
%8,9,`.
 
8,9,`.+
```
[Try it online!](https://tio.run/##K0otycxLNPz/nyvIXEtFw1JLRStIE8Q6tA3I1lDRgojqqWhpHtqmiVDDpWqhY6mToMelwAVhaHP9/w8A "Retina ‚Äì Try It Online") Explanation:
```
R7*$(9*$*R)7*$(¬∂9*$($*7*$(9*.$*)¬∂)R7*$(9*$*R
```
Replace the empty input with the pattern of `R`s, `*`s and `.`s. Note that `*` is Retina 1's string repetition operator so actual `*`s have to be quoted as `$*`.
```
%8,9,`.
 
```
Clear out every ninth column.
```
8,9,`.+
```
Clear out every ninth row.
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 31 bytes
```
Ôº•‚Å∑¬π‚≠Ü‚Å∑¬π¬ß .*R‚àßÔπ™‚äïŒπ‚Åπ‚àßÔπ™‚äïŒª‚Åπ‚äï‚Å∫¬¨Ôπ™Œπœá¬¨Ôπ™Œªœá
```
[Try it online!](https://tio.run/##S85ILErOT8z5/z@gKDOvRMM3sUDD3FBHIbgEyE2H8RxLPPNSUis0lBT0tIKUgPy8FA3f/JTSnHwNz7zkotTc1LyS1BSNTE0dBUtNnNI5UGlksYCc0mINv/wSmPpMHQVDA02gIiSxHIgYDFj///9ftywHAA "Charcoal ‚Äì Try It Online") Link is to verbose version of code. Explanation:
```
 ‚Å∑¬π                             Literal integer `71`
Ôº•                               Map over implicit range
    ‚Å∑¬π                          Literal integer `71`
   ‚≠Ü                            Map over implicit range and join
        .*R                     Literal string ` .*R`
      ¬ß                         Indexed by
              Œπ                 Current row
             ‚äï                  Incremented
            Ôπ™                   Modulo
               ‚Åπ                Literal integer `9`
           ‚àß                    Logical And
                   Œª            Current column
                  ‚äï             Incremented
                 Ôπ™              Modulo
                    ‚Åπ           Literal integer `9`
                ‚àß               Logical And
                         Œπ      Current row
                        Ôπ™       Modulo
                          œá     Predefined variable `10`
                       ¬¨        Logical Not
                      ‚Å∫         Plus
                             Œª  Current column
                            Ôπ™   Modulo
                              œá Predefined variable `10`
                           ¬¨    Logical Not
                     ‚äï          Incremented
                                Implicitly print
```
Actually using ASCII art drawing commands seems to take 51 bytes: [Try it online!](https://tio.run/##jY7BDoIwEETP8BWbPbWmGnoi6o1w0RNRfoCUqg3QmgJqYvj2igjBxIunzUxm3qy4ZFaYrHTuKJsoE8XZmlbnBFdIt/7JWCAhhek@fW/fVtfUkFRVsiaKAQ8og48qBtXXvMg8COcMkrKtCR5wSqwZ4ALpO9P5v9CAQSyFlZXUjczHjZ2eHdVvrYe6l1ilmzGC0C@EfPBH1F8cBsGM2sTmrqdHv4idc255K18 "Charcoal ‚Äì Try It Online") Link is to verbose version of code.
[Answer]
# [PARI/GP](https://pari.math.u-bordeaux.fr), 69 bytes
```
f()=matrix(71,,i,j,Vec(".*R ")[if(i%9&&j%9,(i%10==1)+(j%10==1)+1,4)])
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m728ILEoMz69YMGCpaUlaboWN13TNDRtcxNLijIrNMwNdXQydbJ0wlKTNZT0tIIUlDSjM9M0MlUt1dSyVC11gCxDA1tbQ01tjSwYy1DHRDNWE2LYvuiCosy8Eo3ikqKs_Mw8jSJNTYUahSIFG10FoC2xEEUwmwE)
[Answer]
# Rust, 171 bytes
```
||(0..71).any(|x|(0..72).map(|y|(x/9,y/9,x%9,y%9,y/71+1)).any(|(x,y,a,b,l)|print!("{:
<1$}",if a>7||b>7{' '}else if x==a&&y==b{'R'}else if x==a||y==b{'*'}else{'.'},l)>()))
```
[Playground Link](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=a188ba240a058efcb579ddd6aab4447c)
[Answer]
# [C#](http://www.mono-project.com/docs/about-mono/releases/5.0.0/#csc), 131 bytes
```
_=>{T[]F<T>(T x,T y,T z)=>new T[72].Select((_,i)=>i%10<1?x:i%9<8?y:z).ToArray();return F(F("R","*"," "),F("*","."," "),new[]{""});}
```
[Try it online!](https://tio.run/##7ZhPa4MwGIfvfoqXQCERl667bKt/ujHmYYwdnLCDSBGbjkAbR7SttfSzu2js2HnboYMEgk@i78@gz@nNy4u85G24EblXVpKLdwf0NUmTNFj67dwPDnGShl4c4BhqJ4a9mg3xA8F2ECfXVyl9ZSuWVxjPHa72@Why6U1m9ZSPbr2b2X7aEBoX91Jme0xcyaqNFBDiEKMIOchWExBx1LJDOixVeJIeEDoS99i6lj4TsPpDvYgtwLfuUGTrAXZ0goEUaOqgpx460qBoADuybKoHUPsEAynQ1EFPPXSkQdEA1DY5/yznz4KMiEagsziQEdEIZEQ0ApkPZEQ0AhkRjUAm59xFND/MiPgrEZFrWdtMQgM@LDFC5NSOqsEPhmYWfShEnqktQmPJ15gQVTQeq92yWDH6JnnFnrlgeHj8qeACP4otl4VYM1HRF7br7jvQdKU/qgPf/@pffcuIWLboI4jbfgI "C# (Visual C# Interactive Compiler) ‚Äì Try It Online")
---
Makes use of an inline generic function:
```
_ => {
    /* both the characters within each row and the rows in the whole string follow the same pattern
     a default string, a different string at every 10th string,
     and a space string at every 9th string, starting at 8
    e.g. R******* *R****** **R***** ***R**** ****R*** *****R** ******R* *******R
    the default string is "*", the special character is "R" and the space is " "
    for the whole result string, the default string is "*....... .*...... [...]"
    the special string is "R******* *R****** [...]" and the space is either "" or " " (both work)
    */
    // generic function (defines T as the generic type), inputs of type T
    T[] F<T> (T specialChar, T defaultChar, T space) => 
    // create a new T[] of length 72, and set each element according to its index
    new T[72]
        .Select((_, i) => 
            // special char every 10th element
            i % 10 < 1 ? specialChar : 
                // space every 9 starting at 8, otherwise default
                i % 9 < 8 ? defaultChar : space
        ).ToArray();
    // construct rook (special) row string
    var a = F("R", "*", " ");
    // construct default row string
    var b = F("*", ".", " ");
    // correctly typed space for next func call
    var c = new string[] { "" };
    // construct whole string using default, special and space strings
    return F(a, b, c);
};
```
[Answer]
# [Haskell](https://www.haskell.org), ~~99~~ ~~90~~ 89 bytes
```
[[" R*."!!((f(i%10)+f(k%10)+1)*f(k%9*i%9))|k<-r]|i<-r]
(%)=mod
f=fromEnum.(>0)
r=[10..81]
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m708I7E4OzUnZ8HOal1lBR9HP_dQR3dXBeeAAAVl3VquRAXbmKWlJWm6Fjcjo6OVFIK09JQUFTU00jQyVQ0NNLXTNLLBtKGmFohpqZWpaqmpWZNto1sUW5MJIrk0VDVtc_NTuNJs04ryc13zSnP1NOwMNLmKbKMNDfT0LAxjIRbszE3MzFOwVSgoLQkuKVJQUSjNy8nMSy1WSITIL1gAoQE)
[Answer]
# [Haskell](https://www.haskell.org/), 63 bytes
```
q["",q" .*",q" *R"]
q l=[l!!(0^m 10-0^m 9+1)|m<-mod<$>[10..80]]
```
[Try it online!](https://tio.run/##y0gszk7NyflflFpsG/O/MFpJSadQSUFPC0xpBSnFchUq5NhG5ygqahjE5SoYGuiCKEttQ82aXBvd3PwUGxW7aEMDPT0Lg9jY/7mJmXkKtgq5iQW@CgWlJcElRT55CkCj//9LTstJTC/@r5tcUAAA "Haskell ‚Äì Try It Online")
[Answer]
# [C (gcc)](https://gcc.gnu.org/), ~~140~~ 102 bytes
```
#define a(z,y)for(int z=8;z--;putchar(y+10))
main(){a(i,)a(j,)a(k,22)a(l,i-j|l-k?i==j|l==k?42:46:72);}
```
[Try it online!](https://tio.run/##S9ZNT07@/185JTUtMy9VIVGjSqdSMy2/SCMzr0ShytbCukpX17qgtCQ5I7FIo1Lb0EBTkys3MTNPQ7M6USNTRzNRIwtEZOsYGQGpHJ1M3ayaHN1s@0xbWyDD1jbb3sTIysTMytxI07r2/38A "C (gcc) ‚Äì Try It Online")
```
#define a(z,y) for (int z=8; z--; putchar(y+10))
main() {
  a(i,) // 10 = space
    a(j,)
      a(k, 22) // 22+10 = 32, space
        a(l,
          (i - j) | (l - k) ? // subtract is quicker than != here
            i == j | l == k ? 42 : // if the x matches xor the y matches, print asterisk
              46 : // if neither match, print dot
                72); // if both match, print R, only the last number has 10 added in the macro, so 82
}
```
[Answer]
# [Uiua](https://uiua.org), 24 [bytes](https://codegolf.stackexchange.com/a/265917/97916)
```
‚äè‚äû√ó.‚áå‚ô≠‚â°'‚äÇ0+1‚äû=.‚á°8" .*xR"
```
[Try it!](https://uiua.org/pad?src=ZiDihpAg4oqP4oqew5cu4oeM4pmt4omhJ-KKgjArMeKKnj0u4oehOCIgLip4UiIKCuKJoSZwIGY=)
Port of @Jonah's [J answer](https://codegolf.stackexchange.com/a/251105/97916). Tip: when looking at the output on the Uiua pad, set the font size to the smallest by clicking the gear in the upper right so you can see the output without line wrapping.
```
‚äè‚äû√ó.‚áå‚ô≠‚â°'‚äÇ0+1‚äû=.‚á°8" .*xR"
                 " .*xR"  # place ascii replacements on the stack
            ‚äû=.‚á°8         # 8x8 identity matrix
          +1              # increment
      ‚â°'‚äÇ0                # add column of zeros
     ‚ô≠                    # deshape
    ‚áå                     # reverse
 ‚äû√ó.                      # outer product
‚äè                         # select
```
[Answer]
# [Factor](https://factorcode.org/) + `math.matrices`, 97 bytes
```
[ 8 identity-matrix 1 m+n [ 0 suffix ] map
concat dup outer [ "\0"" .*R"zip substitute ] map ]
```
[Try it online!](https://tio.run/##LYy/CsIwGMRRnHyKI6NiqZvoA4iLg@JUO8T0Kw1Nk5o/oL58/Coux3F3v2ulis7n2/V0Pu4xyNgVLF4rCgj0TGQn15O3ZCBDcCpAOxxyhR10Qzbq@N78kBe2GNYWFUqE1LYc1Pw4QjmrZFw2aYRLkTwvxL2czRdCoFhdxEePDDwCX3H9h@qspDHTVMDonjB6bSOXJFWXvw "Factor ‚Äì Try It Online")
A straight translation of @Jonah's excellent [J answer](https://codegolf.stackexchange.com/a/251105/97916).
* `8 identity-matrix` Make an 8x8 identity matrix.
* `1 m+n` Add 1 to each element of the matrix.
* `[ 0 suffix ] map` Add a column of 0s to the far right end of the matrix.
* `concat` Flatten the matrix into a list.
* `dup outer` Take the outer product with itself.
* `[ "\0"" .*R"zip substitute ] map` Convert the resulting matrix to the required code points.
[Answer]
# [V (vim)](https://github.com/DJMcMayhem/V), 42 bytes
```
iR¬∑* 7o*¬∑. {7√±√§}$FR7jdpb√±G√Ø{7√±√§GGkdd{p
```
[Try it online!](https://tio.run/##K/v/PzPo0HYtBWnzfK1D2/UUpKvND288vESsVsUtSMw8K6Ug6fBG98PrIaLu7tkpKdUF//8DAA "V (vim) ‚Äì Try It Online")
Hexdump:
```
00000000: 6952 b72a 201b 376f 2ab7 2e20 1b7b 37f1  iR.* .7o*.. .{7.
00000010: e416 7d24 4652 1637 6a64 7062 f147 ef7b  ..}$FR.7jdpb.G.{
00000020: 37f1 e447 476b 6464 7b70                 7..GGkdd{p
```
[Answer]
# [BQN](https://mlochbaum.github.io/BQN/) (REPL), 24 bytes
```
" .*xR"‚äèÀú√ó‚åúÀú‚•ä‚àæ‚üú0Àò1+=‚åúÀú‚Üï8
```
Outputs a 2D array of characters. [Try it at BQN online!](https://mlochbaum.github.io/BQN/try.html#code=IiAuKnhSIuKKj8ucw5fijJzLnOKliuKIvuKfnDDLmDErPeKMnMuc4oaVOA==)
### Explanation
Ports [Jonah's J solution](https://codegolf.stackexchange.com/a/251105/16766), which you should upvote.
```
" .*xR"‚äèÀú√ó‚åúÀú‚•ä‚àæ‚üú0Àò1+=‚åúÀú‚Üï8
                        ‚Üï8  Range(8)
                     =‚åúÀú    Equality table with self (8x8 identity matrix)
                   1+       Add 1 to each (main diagonal is 2s, rest is 1s)
               ‚àæ‚üú0Àò        Append 0 to each row
             ‚•ä              Deshape into a flat list
          √ó‚åúÀú               Multiplication table with self
       ‚äèÀú                   Use each element of that 2D array to index into
" .*xR"                     this string
```
---
Just for fun, here's a different solution (27 bytes) that outputs a 2D array of 2D arrays of characters (feels appropriate, but goes against the challenge's I/O requirements and also is longer):
```
{".*R"‚äèÀúr(+¬¥ùï®‚Äøùï©=‚ãà)‚åúr}‚åúÀúr‚Üê‚Üï8
```
[Try it at BQN online!](https://mlochbaum.github.io/BQN/try.html#code=eyIuKlIi4oqPy5xyKCvCtPCdlajigL/wnZWpPeKLiCnijJxyfeKMnMuccuKGkOKGlTg=)
[Answer]
# [Vyxal](https://github.com/Vyxal/Vyxal), 16 bytes
```
8√û‚ñ°‚Ä∫0j:v*` ‚Ç¨xR`ƒ∞
```
[Try it Online!](https://vyxal.pythonanywhere.com/#WyIiLCIiLCI4w57ilqHigLowajp2KmAg4oKseFJgxLAiLCLhuaDigYsiLCIiXQ==)
Another port of Jonah's answer.
[Answer]
# [Pyth](https://github.com/isaacg1/pyth), 36 bytes
```
VJU71sm@>".*R "+!%NT!%dT_<7.|%d9%N9J
```
[Try it online!](https://tio.run/##K6gsyfj/P8wr1NywONfBTklPK0hBSVtR1S9EUTUlJN7GXK9GNcVS1c/S6///f/kFJZn5ecX/dVMA "Pyth ‚Äì Try It Online")
[Answer]
# [JShell](https://docs.oracle.com/javase/9/jshell/introduction-jshell.htm#JSHEL-GUID-630F27C8-1195-4989-9F6B-2C51D46F52C8) (Java), ~~191~~ 188 bytes
```
void f(String x){System.out.print(x);}int i,j,x,y;for(j=0;j<8;j++){for(y=0;y<8;y++){for(i=0;i<8;i++){for(x=0;x<8;x++){int X=i^x,Y=j^y;f(X*Y<1?X+Y<1?"R":"x":".");}f(" ");}f("\n");}f("\n");}
```
Or, expanded:
```
void f(String x) {
    System.out.print(x);
}
int i, j, x, y;
for (j = 0; j < 8; j++) {
    for (y = 0; y < 8; y++) {
        for (i = 0; i < 8; i++) {
            for (x = 0; x < 8; x++) {
                int X = i ^ x;
                int Y = j ^ y;
                f(X * Y < 1 ? X + Y < 1 ? "R" : "x" : ".");
            }
            f(" ");
        }
        f("\n");
    }
    f("\n");
}
```
[Answer]
# Dart, 173 bytes
```
main(){var l=[0,1,2,3,4,5,6,7],s="R"+"*"*7+"*......."*7,p=" "*7+"\n",i,j,k,m;print([for(i in l)...[for(j in l)for(k in l)...[for(m in l)s[(k^m)*8+i^j],p[k]],"\n"]].join());}
//       1         2         3         4         5         6         7         8         9         0         1         2         3         4         5         6         7            
//345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
```
Pretty-printed:
```
main() {
  var l = [0, 1, 2, 3, 4, 5, 6, 7],
      s = "R" + "*" * 7 + "*......." * 7,
      p = " " * 7 + "\n",
      i, j, k, m;
  print([
    for (i in l) ...[
      for (j in l)
        for (k in l) ...[for (m in l) s[(k ^ m) * 8 + i ^ j], p[k]],
      "\n"
    ]
  ].join());
}
```
[Answer]
# [Perl 5](https://www.perl.org/), 100 bytes
```
print$_%72?$_/72%9?$_%9?($v=1==$_%72%10)&($h=1==$_/72%9-$_/648)?R:$v|$h?'*':'.':$":'':$/for 73..5184
```
[Try it online!](https://tio.run/##K0gtyjH9/7@gKDOvRCVe1dzIXiVe39xI1RJIAwkNlTJbQ1tbsIyqoYGmmoZKBkQArEgXSJuZWGjaB1mplNWoZNira6lbqeupW6koWakDSf20/CIFc2M9PVNDC5P////lF5Rk5ucV/9f1BVqXmp5aBAA "Perl 5 ‚Äì Try It Online")
[Answer]
# [Java](https://en.wikipedia.org/wiki/Java_(programming_language)), 151 145 137 bytes
```
for(int y=0,x,a,b;++y<72;){var s="";for(x=1;x<72;s+=x++%9*(y%9)<1?' ':a+b<1?'R':a*b<1?'*':'.'){a=~-x%10;b=~-y%10;}System.out.println(s);}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=Lc5NroIwFAXguau4MSGlFIm8iT-lcQVOnkPj4OJfahAMLaQN4c1dgxMSdVHuxvJ0dL6cewfn9jhhjd0ruVRpJrewzVApWKLMoRl8O6VRu6gLuYOzu_grXcr8uN4AlkdFoXlW-jCavq6HovRlrsGKcWhCDFPOmE0mP5w2NZagxHDI-x8jYm76XjFhGPNmgW-9GU3iBQEyR5b2-nUK_hWQOYkIbVD8jYwXj3nqYHu0K6v0_hwVlY4ubpPOcl9R3n4G3dvBV133yTc) Link is to a "normal" Java version, as I don't know if the link to the online JShell will stay valid.
[Jeffrey's answer](https://codegolf.stackexchange.com/a/251116/92572) made me aware of JShell, which saves a couple of bytes compared to a lambda function or an interface. **EDIT** It also reminded me that ternary `if`s don't always need parentheses. Thanks!
-8 bytes thanks to @ceilingcat!
[Answer]
# [Uiua](https://uiua.org), 21 [bytes](https://codegolf.stackexchange.com/a/265917/97916)
```
‚¨ö@ ‚äè‚äû+.‚ô≠‚ä†‚äÇ‚äû=.‚á°.8".*R"
```
[Try it online!](https://www.uiua.org/pad?src=YSDihpAg4oqP4oi2IiAuKnhSIuKKnsOXLuKHjOKZreKJoSfiioIwKzHiip49LuKHoTgKYiDihpAg4qyaQCDiio_iip4rLuKZreKKoOKKguKKnj0u4oehLjgiLipSIiAjIDIxCuKJhSBhIGI=)
A port of ngn's [K answer](https://codegolf.stackexchange.com/a/251115/78410), which is also based on Jonah's J but adds a deliberate out-of-bounds indexing trick. With size 4 instead of 8, the following vector is generated:
```
[1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4]
```
and its self outer product by addition gives
```
‚ï≠‚îÄ                                         
‚ï∑ 2 1 1 1 5 1 2 1 1 5 1 1 2 1 5 1 1 1 2 5  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  5 4 4 4 8 4 5 4 4 8 4 4 5 4 8 4 4 4 5 8  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  2 1 1 1 5 1 2 1 1 5 1 1 2 1 5 1 1 1 2 5  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  5 4 4 4 8 4 5 4 4 8 4 4 5 4 8 4 4 4 5 8  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  2 1 1 1 5 1 2 1 1 5 1 1 2 1 5 1 1 1 2 5  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  5 4 4 4 8 4 5 4 4 8 4 4 5 4 8 4 4 4 5 8  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  1 0 0 0 4 0 1 0 0 4 0 0 1 0 4 0 0 0 1 4  
  2 1 1 1 5 1 2 1 1 5 1 1 2 1 5 1 1 1 2 5  
  5 4 4 4 8 4 5 4 4 8 4 4 5 4 8 4 4 4 5 8  
                                          ‚ïØ
```
In this matrix, 0, 1, 2 correspond to `.*R` respectively, and anything larger is a space, so "index into `".*R"` with any out-of-bounds indexes mapped to spaces" gives the correct matrix of characters. Any number >= 3 works for the padding; reusing 8 saves a byte over hardcoding any other number (which requires a space between the two numbers).
```
‚¨ö@ ‚äè‚äû+.‚ô≠‚ä†‚äÇ‚äû=.‚á°.8".*R"
              ‚äû=.‚á° 8        identity matrix of size 8
        ‚ô≠‚ä†‚äÇ     .         append 8 to each row and flatten
     ‚äû+.                    self outer product by addition
    ‚äè               ".*R"    select; convert 0, 1, 2 into ".*R"...
‚¨ö@                           and all others to spaces
```
]