===================== ORTHOGONAL SOLID LINES ==============================

Three types of orthogonal solid line types are provided by Unicode:
thin, thick and double.
- Thin: 2x2 line
  - 2x2 line is used by C-64, Amstrad and Atari8. 2x1 is used by PC.
- Thick: 4x4 line.
- Double: two 2x1 lines, 1 pixel in between.
  - PC is the only major system with these.

Most of the characters will be constructed from end-of-line pieces:

U+2574
VEC rect(0,midy-lh/2,48,midy+lh/2)

8x8
........
........
........
####....	previously we had 5/8 to fix the corner pieces
####....
........
........
........

8x16
........
........
........
........
........
........
........
####....
####....
........
........
........
........
........
........
........

U+2575
VEC rect(0,24-lw/2,midy,24+lw/2)

8x8
...##...
...##...
...##...
...##...
........
........
........
........

U+2576 FLIPX 2574
U+2577 FLIPY 2575

U+2578
VEC rect(0,midy-tlh/2,48,midy+tlh/2)

8x8
........
........
####....
####....
####....
####....
........
........

8x16
........
........
........
........
........
........
####....
####....
####....
####....
........
........
........
........
........
........

U+2579
VEC rect(48-tlw/2,0,48+tlw/2,midy)

8x8
..####..
..####..
..####..
..####..
........
........
........
........

U+257A FLIPX 2578
U+257B FLIPY 2579

U+DBLL
VEC rect(0,midy-gh/2,48,midy-gh/2-lh)
VEC rect(0,midy+gh/2,48,midy+gh/2+lh)

8x8
........
........ 
#####... 
........ 
#####... 
........ 
........ 
........ 

8x16
........
........ 
........
........ 
........
........ 
#####... 
........ 
#####... 
........ 
........ 
........ 
........ 
........ 
........ 
........ 

U+DBLU
VEC rect(48-gw/2,0, 48-gw/2-slw,48)
VEC rect(48+gw/2,0, 48+gw/2+slw,48)

8x8
.##.##..
.##.##..
.##.##..
.##.##..
........
........
........
........

U+DBLR FLIPX DBLL
U+DBLD FLIPY DBLU

Straight lines:

U+2500 = 2574+2576
U+2501 = 2578+257A
U+2502 = 2575+2577
U+2503 = 2579+257B
U+2550 = DBLL+DBLR
U+2551 = DBLU+DBLD

Arrow extension lines are the same as the two "thin" straight lines:

U+23AF = 2500
U+23D0 = 2502

Corners:

U+2518
8x8
...##...
...##...
...##...
#####...
#####...
........
........
........

8x16
...##...
...##...
...##...
...##...
...##...
...##...
...##...
#####...
#####...
........
........
........
........
........
........
........

U+2510 FLIPY 2518
U+250C FLIPX 2510
U+2514 FLIPY 250C

U+251B
8x8
..####..
..####..
######..
######..
######..
######..
........
........

8x16
..####..
..####..
..####..
..####..
..####..
..####..
######..
######..
######..
######..
........
........
........
........
........
........

U+2513 FLIPY 251B
U+250F FLIPX 2513
U+2517 FLIPY 250F


U+251A
8x8
..####..
..####..
..####..
######..
######..
........
........
........

8x16
..####..
..####..
..####..
..####..
..####..
..####..
..####..
######..
######..
........
........
........
........
........
........
........

U+2512 FLIPY 251A
U+250E FLIPX 2512
U+2516 FLIPY 250E

U+2519
8x8
...##...
...##...
#####...
#####...
#####...
#####...
........
........

8x16
...##...
...##...
...##...
...##...
...##...
...##...
#####...
#####...
#####...
#####...
........
........
........
........
........
........

U+2511 FLIPY 2519
U+250D FLIPX 2511
U+2515 FLIPY 250D

U+2554
8x8
........
........ 
.####### 
.##..... 
.##.#### 
.##.##.. 
.##.##.. 
.##.##..

8x16
........
........ 
........
........ 
........ 
........ 
.#######
.##..... 
.##.#### 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

U+2557
8x8
........ 
........ 
######..
....##.. 
###.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

8x16
........
........ 
........
........ 
........ 
........ 
######..
....##.. 
###.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

U+255A
8x8
.##.##.. 
.##.##.. 
.##.#### 
.##.....
.#######
........ 
........ 
........ 

8x16
.##.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.#### 
.##..... 
.#######
........ 
........ 
........ 
........ 
........ 
........ 
........ 


U+255D
8x8
.##.##..
.##.##..
###.##.. 
....##.. 
######.. 
........ 
........ 
........ 

8x16
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
###.##.. 
....##..
######..
........ 
........ 
........ 
........ 
........ 
........ 
........ 

Junctions:

U+251C = 2577+2575+2576
U+251D = 2577+2575+257A
U+251E = 2577+2579+2576
U+251F = 257B+2575+257A
U+2520 = 257B+2579+2576
U+2521 = 2577+2579+257A
U+2522 = 257B+2575+2576
U+2523 = 257B+2579+257A

U+2524 = 2577+2575+2574
U+2525 = 2577+2575+2578
U+2526 = 2577+2579+2574
U+2527 = 257B+2575+2578
U+2528 = 257B+2579+2574
U+2529 = 2577+2579+2578
U+252A = 257B+2575+2574
U+252B = 257B+2579+2578

U+252C = 2574+2576+2577
U+252D = 2578+2576+2577
U+252E = 2574+257A+2577
U+252F = 2578+257A+2577
U+2530 = 2574+2576+257B
U+2531 = 2578+2576+257B
U+2532 = 2574+257A+257B
U+2533 = 2578+257A+257B

U+2534 = 2574+2576+2575
U+2535 = 2578+2576+2575
U+2536 = 2574+257A+2575
U+2537 = 2578+257A+2575
U+2538 = 2574+2576+2579
U+2539 = 2578+2576+2579
U+253A = 2574+257A+2579
U+253B = 2578+257A+2579

U+253C = 2574+2577+2575+2576
U+253D = 2578+2577+2575+2576
U+253E = 2574+2577+2575+257A
U+253F = 2578+2577+2575+257A
U+2540 = 2574+2577+2579+2576
U+2541 = 2574+257B+2575+2576
U+2542 = 2574+257B+2579+2576
U+2543 = 2578+2577+2579+2576
U+2544 = 2574+2577+2579+257A
U+2545 = 2578+257B+2575+2576
U+2546 = 2574+257B+2575+257A
U+2547 = 2578+2577+2579+257A
U+2548 = 2578+257B+2575+257A
U+2549 = 2578+257B+2579+2576
U+254A = 2574+257B+2579+257A
U+254B = 2578+257B+2579+257A

U+257C = 2574+257A
U+257D = 2575+257B
U+257E = 2578+2576
U+257F = 2579+2577

Junctions involving double lines need separate considerations:

U+2560
8x8
.##.##..
.##.##.. 
.##.#### 
.##..... 
.##.#### 
.##.##..
.##.##.. 
.##.##.. 

8x16
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.#### 
.##..... 
.##.####
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 


U+2563
8x8
.##.##.. 
.##.##.. 
###.##.. 
....##.. 
###.##.. 
.##.##..
.##.##.. 
.##.##.. 

8x16
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
###.##.. 
....##.. 
###.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

U+2566
8x8
........ 
........ 
######## 
........ 
###.#### 
.##.##.. 
.##.##.. 
.##.##.. 

8x16
........ 
........ 
........ 
........ 
........ 
........ 
######## 
........ 
###.#### 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

U+2569
8x8
.##.##.. 
.##.##.. 
###.####
........ 
########
........
........
........

8x16
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
###.#### 
........ 
########
........
........
........
........
........
........
........

U+256C
8x8
.##.##.. 
.##.##.. 
###.#### 
........ 
###.####
.##.##..
.##.##..
.##.##..

8x16
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
###.#### 
........ 
###.####
.##.##..
.##.##..
.##.##..
.##.##..
.##.##..
.##.##..
.##.##..

U+2552
8x8
........
........ 
...##### 
...##... 
...##### 
...##... 
...##... 
...##... 

8x16
........
........ 
........
........ 
........
........ 
...##### 
...##... 
...##### 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 

U+2553
8x8
........
........ 
........ 
.#######
.####### 
.##.##.. 
.##.##.. 
.##.##.. 

8x16
........
........ 
........ 
........ 
........ 
........ 
........ 
.#######
.####### 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

U+2555
8x8
........
........ 
#####... 
...##... 
#####...
...##... 
...##... 
...##... 

8x16
........
........ 
........
........ 
........
........ 
#####... 
...##... 
#####...
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 


U+2556
8x8
........
........ 
........ 
######..
######.. 
.##.##.. 
.##.##.. 
.##.##.. 

8x16
........
........ 
........ 
........ 
........ 
........ 
........ 
######..
######.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 

U+2558
8x8
...##...
...##... 
...##### 
...##... 
...##### 
........ 
........ 
........ 

8x16
...##...
...##... 
...##...
...##... 
...##...
...##... 
...##### 
...##... 
...##### 
........ 
........ 
........ 
........ 
........ 
........ 
........ 

U+2559		
8x8
.##.##..
.##.##.. 
.##.##.. 
.#######
.#######
........ 
........ 
........ 

8x16
.##.##..
.##.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.####### 
.#######
........ 
........ 
........ 
........ 
........ 
........ 
........

U+255B
8x8
...##...
...##... 
#####... 
...##... 
#####...
........ 
........ 
........ 

8x16
...##...
...##... 
...##...
...##... 
...##...
...##... 
#####... 
...##... 
#####...
........ 
........ 
........ 
........ 
........ 
........ 
........ 

U+255C
8x8
.##.##..
.##.##.. 
.##.##.. 
######.. 
######..
........ 
........ 
........ 

8x16
.##.##..
.##.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
######.. 
######..
........ 
........ 
........ 
........ 
........ 
........ 
........ 

U+255E = 2502+2552

U+255F
8x8
.##.##..
.##.##.. 
.##.##.. 
.##.#### 
.##.#### 
.##.##.. 
.##.##.. 
.##.##..

8x16
.##.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.#### 
.##.#### 
.##.##.. 
.##.##.. 
.##.##..
.##.##..
.##.##..
.##.##..
.##.##..

U+2561 = 2502+2555

U+2562
8x8
.##.##..
.##.##.. 
.##.##.. 
###.##.. 
###.##.. 
.##.##.. 
.##.##.. 
.##.##..

8x16
.##.##..
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
.##.##.. 
###.##.. 
###.##.. 
.##.##.. 
.##.##.. 
.##.##..
.##.##..
.##.##..
.##.##..
.##.##..

U+2564
8x8
........
........ 
######## 
........ 
######## 
...##... 
...##... 
...##... 

8x16
........
........ 
........
........ 
........
........ 
######## 
........ 
######## 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 

U+2565 = 2500+2556

U+2567
8x8
...##...
...##... 
######## 
........ 
######## 
........ 
........ 
........ 

8x16
...##...
...##... 
...##...
...##... 
...##...
...##... 
######## 
........ 
######## 
........ 
........ 
........ 
........ 
........ 
........ 
........ 

U+2568 = 2500+DBLU
U+256A = 2502+2550
U+256B = 2551+2500

There are rounded corners in Unicode, as in C-64 and Amstrad.
We take the C-64 blocks as basis but fix them for 2/1 line width variation.

U+256E
8x8
........ 
........ 
........ 
###..... 
####.... 
..###... 
...##... 
...##... 

8x16
........ 
........ 
........ 
........ 
........ 
........ 
........ 
###..... 
####.... 
..###... 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 

U+256D
8x8
........ 
........ 
........ 
.....###
....####
...###.. 
...##... 
...##... 

8x16
........ 
........ 
........ 
........ 
........ 
........ 
........ 
.....###
....####
...###.. 
...##... 
...##... 
...##... 
...##... 
...##... 
...##... 

U+2570
8x8
...##...
...##...
...###..
....####
.....###
........
........
........

8x16
...##...
...##...
...##...
...##...
...##...
...##...
...###..
....####
.....###
........
........
........
........
........
........
........

U+256F
8x8
...##...
...##...
..###...
####....
###.....
........
........
........

8x16
...##...
...##...
...##...
...##...
...##...
...##...
..###...
####....
###.....
........
........
........
........
........
........
........

The full corner blocks present in PETSCII and Amstrad were not in Unicode
before version 13.

Line sizes: 1x1 (VIC/PET), 2x1 (CPC), 2x2 (C-64/Unscii).
Unicode 13 defines the line width as "one eight", but we reinterpret this
as our usual line thickness.

Due to the lack of reliable "top line" and "bottom line" characters in
Unicode, the full-cell corners need to combine well with the "top eighth"
and "bottom eighth" division blocks. Thus, the top and bottom lines follow
the "one eighth" prescription.

U+E16C	BOX DRAWINGS FULL CELL DOWN AND RIGHT
8x8
########
##......
##...... 
##...... 
##...... 
##...... 
##...... 
##...... 

U+E16D FLIPX E16C
U+E16E FLIPY E16D
U+E16F FLIPY E16C

U+1FB7C = E16F
U+1FB7D = E16C
U+1FB7E = E16D
U+1FB7F = E16E

U+1FB80	UPPER AND LOWER ONE EIGHTH BLOCK
8x8
########	From Apple IIc
........
........
........
........
........
........
########
U+XTND = 1FB80

U+1FBBC	RIGHT OPEN SQUARED DOT
8x8
########	From Apple IIc where graphically combines with 1FBB0.
......##
......##
..##..##
..##..##
......##
......##
########
U+XTND = 1FBBC

U+XTND2
8x8
##....##
##....##
##....##
##....##
##....##
##....##
##....##
##....##

U+XTND2
8x8
##....##
##....##
##....##
##....##
##....##
##....##
##....##
########

U+XTND2
8x8
########
##....##
##....##
##....##
##....##
##....##
##....##
##....##

U+XTND2
8x8
########
##......
##......
##......
##......
##......
##......
########

U+XTND2
8x8
########
......##
......##
......##
......##
......##
......##
########

Amstrad also has junctions between border and centered lines.
(Only 2 of these, here extended to full series)

U+E800	LEFT BORDER AND HORIZONTAL MIDDLE LINE (no unicode)
8x8
##......
##......
##......
########
########
##......
##......
##......

8x16
##......
##......
##......
##......
##......
##......
##......
########
########
##......
##......
##......
##......
##......
##......
##......

U+E801	UPPER BORDER AND VERTICAL MIDDLE LINE (no unicode)
8x8
########
########
...##...
...##...
...##...
...##...
...##...
...##...

8x16
########
########
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...

U+E802	RIGHT BORDER AND HORIZONTAL MIDDLE LINE (no unicode)
8x8
......##
......##
......##
########
########
......##
......##
......##

8x16
......##
......##
......##
......##
......##
......##
......##
########
########
......##
......##
......##
......##
......##
......##
......##

U+E803 LOWER BORDER AND VERTICAL MIDDLE LINE (no unicode)
8x8
...##...
...##...
...##...
...##...
...##...
...##...
########
########

8x16
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
########
########

Sharp MZ has some more. Here, generalized into full series by basing on
corner and T pieces.

U+E804	UPPER BORDER AND UPPER LEFT CORNER (no unicode)
8x8
######## 
##......
##...... 
##...... 
........ 
........ 
........ 
........ 

U+E805	LEFT BORDER AND UPPER LEFT CORNER (no unicode)
8x8
####....
##......
##...... 
##...... 
##...... 
##...... 
##...... 
##...... 

U+E806	UPPER BORDER AND UPPER RIGHT CORNER (no unicode)
8x8
########
......##
......## 
......##
........ 
........ 
........ 
........ 

U+E807	RIGHT BORDER AND UPPER RIGHT CORNER (no unicode)
8x8
....####
......##
......## 
......##
......## 
......## 
......## 
......## 

U+E808	LOWER BORDER AND LOWER RIGHT CORNER (no unicode)
8x8
........
........ 
........
........ 
......## 
......## 
......## 
########

U+E809	RIGHT BORDER AND LOWER RIGHT CORNER (no unicode)
8x8
......##
......## 
......##
......## 
......## 
......## 
......## 
....####

U+E80A	LOWER BORDER AND LOWER LEFT CORNER (no unicode)
8x8
........
........ 
........ 
........ 
##...... 
##...... 
##......
########

U+E851	LEFT BORDER AND LOWER LEFT CORNER (no unicode)
8x8
##......	I previously forgot this, therefore anomalous charcode
##...... 
##...... 
##...... 
##...... 
##...... 
##......
####....

Amstrad also has junctions between border and centered lines.

U+E80B	HORIZONTAL LINE AND UPPER LEFT CORNER JUNCTION (no unicode)
8x8
##......
##......
##......
########
########
........
........
........

U+E80C	HORIZONTAL LINE AND LOWER LEFT CORNER JUNCTION (no unicode)
8x8
........
........
........
########
########
##......
##......
##......

U+E80D	VERTICAL LINE AND UPPER RIGHT CORNER JUNCTION (no unicode)
8x8
...#####
...##...
...##...
...##...
...##...
...##...
...##...
...##...

U+E80E	VERTICAL LINE AND UPPER LEFT CORNER JUNCTION (no unicode)
8x8
#####...
...##...
...##...
...##...
...##...
...##...
...##...
...##...

U+E80F	HORIZONTAL LINE AND LOWER RIGHT CORNER JUNCTION (no unicode)
8x8
........
........
........
########
########
......##
......##
......##

U+E810	HORIZONTAL LINE AND UPPER RIGHT CORNER JUNCTION (no unicode)
8x8
......##
......##
......##
########
########
........
........
........

U+E811
8x8
...##...
...##...
...##...
...##...
...##...
...##...
...##...
#####...

U+E812
8x8
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...#####

===================== ORTHOGONAL DASHED LINES ==============================

Unicode has double, triple and quadruple dashed orthogonal lines.
The glyphs here are derived from solid lines of similar thickness.

In order to emphasize graphical use, the dashings have been reinterpreted as
follows:

		x8		x16
	double	#..##..#	##....####....##
	triple	##.###.#	##.###.###.###.#
	quad	#.#.#.#.	#..##..##..##..#

U+2504
8x8
........
........
........
##.###.#
##.###.#
........
........
........

8x16
........
........
........
........
........
........
........
##.###.#
##.###.#
........
........
........
........
........
........
........

U+2505
8x8
........
........ 
##.###.# 
##.###.# 
##.###.#
##.###.# 
........ 
........ 

8x16
........
........
........
........
........
........
##.###.#
##.###.#
##.###.#
##.###.#
........
........
........
........
........
........


U+2506
8x8
...##...
...##... 
........ 
...##... 
...##... 
...##... 
........ 
...##... 

8x16
...##...
...##... 
........ 
...##... 
...##... 
...##... 
........ 
...##... 
...##...
...##...
........ 
...##... 
...##... 
...##... 
........ 
...##... 

U+2507
8x8
..####..
..####..
........
..####..
..####..
..####..
........
..####..

8x16
..####..
..####..
........
..####..
..####..
..####..
........
..####..
..####..
..####..
........
..####..
..####..
..####..
........
..####..

U+2508
8x8
........
........
........
#.#.#.#.
#.#.#.#.
........
........
........

8x16
........
........
........
........
........
........
........
#.#.#.#.
#.#.#.#.
........
........
........
........
........
........
........

U+2509
8x8
........
........ 
........ 
#.#.#.#. 
#.#.#.#.
........ 
........ 
........ 

8x16
........
........
........
........
........
........
#.#.#.#.
#.#.#.#.
#.#.#.#.
#.#.#.#.
........
........
........
........
........
........

U+250A
8x8
...##...
........ 
...##... 
........ 
...##... 
........ 
...##... 
........ 

8x16
...##... 
........ 
........ 
...##... 
...##... 
........ 
........
...##... 
...##... 
........ 
........ 
...##... 
...##... 
........ 
........
...##... 

U+250B
8x8
..####..
........
..####..
........
..####..
........
..####..
........

8x16
..####..
........
........
..####..
..####..
........
........
..####..
..####..
........
........
..####..
..####..
........
........
..####..

U+254C
8x8
........
........
........
#..##..#
#..##..#
........
........
........

8x16
........
........
........
........
........
........
........
#..##..#
#..##..#
........
........
........
........
........
........
........

U+254D
8x8
........
........
#..##..#
#..##..#
#..##..#
#..##..#
........
........

8x16
........
........
........
........
........
........
#..##..#
#..##..#
#..##..#
#..##..#
........
........
........
........
........
........

U+254E
8x8
...##...
........
........
...##...
...##...
........
........
...##...

U+254F
8x8
..####..
........
........
..####..
..####..
........
........
..####..

======================= POSITIONED LINES ==============================

VT100 has horizontal scanline characters at 5 positions (scanline 1, 3, 5, 7
and 9, where 1 is the top scanline, 10 is the bottom scanline, and 5 is the
graphical middle line). Unicode maps the 1/3/7/9 glyphs to 23AA..23AD.
However, in existing Unicode fonts, even "scanline 9" is not very low, and
even ASCII underscore goes below it. Also, U+2594 usually goes above
"scanline 1" even though "scanline 1" is supposed to be the top one.

PETSCII has both the horizontal and vertical lines in 8 possible positions
(although some become identical in the C-64 font because of the 2-pixel line
thickness). Unicode 13 implements these as "one eighth blocks", thus
prescribing a 1/8-cell ("1-pixel") line thickness. However, we will stick to
the 2-pixel thickness for consistency.

Mapping of VT100 scanlines to 8x8 and 8x16:

 0 1 2  3 4 5 6 7  <- 8x8 scanline
 0123456789ABCDEF  <- 8x16 scanline
 1 2 3  5 6 78 910 <- VT100 scanline

PETSCII horizontals:
		PET	C64
	$63	1-1	1-1
	$77	1-2	1-2
	$45	2-2	2-3
	$44	3-3	3-4
	$43	4-4	4-5
	$40	5-5	4-5	middle line
	$46	6-6	5-6
	$52	7-7	6-7
	$6F	7-8	7-8
	$64	8-8	8-8
PETSCII verticals:
		PET	C64
	$65	1-1	1-2
	$54	2-2	2-3
	$47	3-3	3-4
	$42	4-4	4-5
	$5D	5-5	4-5	middle line
	$48	6-6	5-6
	$59	7-7	6-7
	$67	8-8	7-8

U+23BA	HORIZONTAL SCAN LINE-1[/10]
########
########
........
........
........
........
........
........

8x16
########
########
........
........
........
........
........
........
........
........
........
........
........
........
........
........

U+E170	HORIZONTAL LINE AT SCANLINE 2/8 (2/10)
8x8
........
########
########
........
........
........
........
........

8x16
........
........
########
########
........
........
........
........
........
........
........
........
........
........
........
........
U+1FB76 = E170

U+E171	HORIZONTAL LINE AT SCANLINE 3/8 (3/10)
8x8
........
........
########
########
........
........
........
........

8x16
........
........
........
........
########
########
........
........
........
........
........
........
........
........
........
........
U+23BB = E171
U+1FB77 = E171

U+1FB78
8x8
........
........
........
########
########
........
........
........

8x16
........
........
........
........
........
........
########  The position differs from the middle line (6-7 rather than 7-8)
########
........
........
........
........
........
........
........
........
U+XTND = 1FB78

U+E172	HORIZONTAL LINE AT SCANLINE 5/8 (6/10)
8x8
........
........
........
########
########
........
........
........

8x16
........
........
........
........
........
........
........
........
########
########
........
........
........
........
........
........
U+1FB79 = E172


U+E173	HORIZONTAL LINE AT SCANLINE 6/8 (7/10)
8x8
........
........
........
........
########
########
........
........

8x16
........
........
........
........
........
........
........
........
........
........
########
########
........
........
........
........
U+23BC = E173
U+1FB7A = E173


U+E174	HORIZONTAL LINE AT SCANLINE 7/8 (9/10)
8x8
........
........
........
........
........
########
########
........

8x16
........
........
........
........
........
........
........
........
........
........
........
........
########
########
........
........
U+23BD = E174
U+1FB7B = E174

Vertical lines. Unicode offers
- Left and right "vertical box lines" (U+23B8 and U+23B9). These are quite
  consistent in existing fonts and can therefore be trusted as leftmost
  and rightmost vertical lines.
- Left one-eighth and one-quarter blocks (U+258F and U+258E)
  and right one-eighth block (U+2595).
- Middle vertical line in two thicknesses.
- From Unicode 13 on, "vertical one eighth blocks" at positions 2..7
  (U+1FB70..U+1FB75) and right one-quarter block.

For consistency, Unscii implements all the vertical lines as two pixels
thick.

U+23B8	LEFT VERTICAL BOX LINE
8x8
##......	
##......
##......
##......
##......
##......
##......
##......

U+E175	VERTICAL LINE AT POSITION 2/8
8x8
.##.....
.##.....
.##.....
.##.....
.##.....
.##.....
.##.....
.##.....
U+1FB70 = E175

U+E176	VERTICAL LINE AT POSITION 3/8
8x8
..##....
..##....
..##....
..##....
..##....
..##....
..##....
..##....
U+1FB71 = E176

U+1FB72	4/8
8x8
...##...
...##...
...##...
...##...
...##...
...##...
...##...
...##...
U+XTND = 1FB72

U+1FB73	5/8
8x8
...##...	Identical to 4/8 (as in C64).
...##...	In PET, the middle line is at 5/8.
...##...
...##...
...##...
...##...
...##...
...##...
U+XTND = 1FB73

U+E177	VERTICAL LINE AT POSITION 6/8
8x8
....##..
....##..
....##..
....##..
....##..
....##..
....##..
....##..
U+1FB74 = E177

U+E178	VERTICAL LINE AT POSITION 7/8
8x8
.....##.
.....##.
.....##.
.....##.
.....##.
.....##.
.....##.
.....##.
U+1FB75 = E178

U+23B9	RIGHT VERTICAL BOX LINE
8x8
......##
......##
......##
......##
......##
......##
......##
......##

======================== FULL-CELL DIAGONAL LINES ============================

U+2572
8x8
##...... 	Graphical connecting version of \
.##..... 	C-64 / Amstrad / Atari8 have a 3-pixel-wide line.
..##.... 	We use a 2-pixel compromise because most Unicode fonts
...##... 	have a 1-pixel line and a 2-pixel line matches better
....##.. 	with the existing line drawing characters.
.....##. 	Also, diagonal lines are the most common in Amiga ascii
......## 	and the lines are typically 2-pixel-wide there.
.......# 

U+SHARPIRRDIAG1
8x8
##...... 	Sharp has two irregular versions of both diagonal lines.
.###....	We take the shapes but thicken the line to 2 pixels.
...###.. 
.....##. 
.....##. 
......## 
......## 
.......# 

U+SHARPIRRDIAG2
8x8
#.......
##...... 
##...... 
.##..... 
.##..... 
..###... 
....###. 
......## 

U+E813 = SHARPIRRDIAG1
U+E814 = SHARPIRRDIAG2

U+2571 FLIPX 2572

U+E815 FLIPX SHARPIRRDIAG1
U+E816 FLIPX SHARPIRRDIAG2

The graphically connecting X (U+2573) is found in C-64, Amstrad and Atari8
in 3-pixel thickness. Atari ST has a 2-pixel-thick non-fullblock inverted
version. We'll continue with our 2-pixel width here.

U+2573 = 2571+2572
U+1FBBD INV 2573
U+XTND = 1FBBD

======================= HALF-CELL DIAGONAL LINES ==========================

Diagonal lines are graphically important, so we'll provide half-cell
versions of them as well. These are also useful for aspect conversion.

Sharp MZ has all of these (albeit with a 1-pixel line)

U+DIAGXDB0
8x8
###..... 
..###... 
....###. 
......## 
........ 
........ 
........ 
........ 

8x16
##......
.##.....
..##....
...##...
....##..
.....##.
......##
.......#
........
........
........
........
........
........
........
........

U+DIAGXDB1
8x8
........
........
........
#.......
###.....
..###...
....###.
......##

8x16
........
........
........
........
........
........
........
#.......
##......
.##.....
..##....
...##...
....##..
.....##.
......##
.......#

U+E179 = DIAGXDB0
U+E17A = DIAGXDB1
U+E17B FLIPX DIAGXDB1
U+E17C FLIPX DIAGXDB0

U+DIAGYDB0
8x8
#....... 	upper half of \
##...... 	Sharp MZ has a 1-pixel-thick version of these.
##...... 
.##..... 
.##..... 
..##.... 
..##.... 
...##... 

U+DIAGYDB1
8x8
...##... 	Lower half of \
....##.. 
....##.. 
.....##. 
.....##. 
......## 
......## 
.......# 

U+E17D = DIAGYDB0
U+E17E = DIAGYDB1
U+E17F FLIPX DIAGYDB1
U+E180 FLIPX DIAGYDB0

Diagonal cross also needs X- and Y-doubling:

U+E181	LEFT HALF OF DOUBLE WIDTH FULL-SIZE CROSS
8x8
###..... 
..###... 
....###. 
......## 
....###. 
..###... 
###..... 
........ 

8x16
#.......
##......
.##.....
..##....
...##...
....##..
.....##.
......##
......##
.....##.
....##..
...##...
..##....
.##.....
##......
#.......

U+E182	RIGHT HALF OF DOUBLE WIDTH FULL-SIZE CROSS
8x8
.....###
...###..
.###....
##......
..##....
...###..
.....###
........

8x16
.......#
......##
.....##.
....##..
...##...
..##....
.##.....
##......
##......
.##.....
..##....
...##...
....##..
.....##.
......##
.......#

U+E183	UPPER HALF OF DOUBLE HEIGHT FULL-SIZE CROSS
8x8
##....##
##....##
.##..##.
.##..##.
..####..
..####..
...##...
...##...

U+E184	LOWER HALF OF DOUBLE HEIGHT FULL-SIZE CROSS
...##...
...##...
..####..
..####..
.##..##.
.##..##.
##....##
##....##

U+269E
8x8
###..... 
..###... 
........ 
#######. 
#######. 
........
..###... 
###..... 

8x16
#.......
##......
.##.....
..##....
...##...
....##..
........
#######.
#######.
........
....##..
...##...
..##....
.##.....
##......
#.......

U+269F FLIPX 269E

====================== DIAGONAL LINE DRAWING EXTRAS ====================

Amstrad and Enhanced Teletext have some more diagonal line drawing shapes.

U+DIAMUL
8x8
...##...	Amstrad. 
..##.... 	Similar block also found in Sharp MZ and Enhanced Teletext (48).
.##..... 
##...... 
#....... 
........ 
........ 
........ 

U+DIAMUR FLIPX DIAMUL
U+DIAMLR FLIPY DIAMUR
U+DIAMLL FLIPY DIAMUL

Amstrad also combines these in various ways. The full diamond-shaped
combination is mapped to U+25C7 and therefore defined in shapes.txt

Unicode 13 supports these in a more complete manner (including the
full diamond):

U+1FBA0 = DIAMUL
U+1FBA1 = DIAMUR
U+1FBA2 = DIAMLL
U+1FBA3 = DIAMLR
U+1FBA4 = DIAMUL+DIAMLL
U+1FBA5 = DIAMUR+DIAMLR
U+1FBA6 = DIAMLL+DIAMLR
U+1FBA7 = DIAMUL+DIAMUR
U+1FBA8 = DIAMUL+DIAMLR
U+1FBA9 = DIAMUR+DIAMLL
U+1FBAA = DIAMUR+DIAMLL+DIAMLR	
U+1FBAB = DIAMUL+DIAMLL+DIAMLR
U+1FBAC = DIAMLR+DIAMUL+DIAMUR
U+1FBAD = DIAMLL+DIAMUL+DIAMUR
U+1FBAE = DIAMUL+DIAMUR+DIAMLL+DIAMLR
U+1FBBE INV DIAMLR
U+1FBBF INV 1FBAE

U+XTND2 = 1FBA4
U+XTND2 = 1FBA9
U+XTND2 = 1FBAD
U+XTND2 = 1FBAE
U+XTND2 = 1FBBE
U+XTND2 = 1FBBF

U+E817 = 1FBA0
U+E818 = 1FBA1
U+E819 = 1FBA7
U+E81A = 1FBA3
U+E81B = 1FBA8
U+E81C = 1FBA5
U+E81D = 1FBAC
U+E81E = 1FBA2
U+E81F = 1FBA6
U+E820 = 1FBAB
U+E821 = 1FBAA

For symmetry with orthogonal line drawing characters, we're doing the same
kind of segmentation to the graphical X as well.

U+CROSSUL
8x8
##......
.##.....
..##....
...##...
........
........
........
........

U+CROSSUR FLIPX CROSSUL

U+CROSSLL
8x8
........
........
........
........
..##....
.##.....
##......
#.......

U+CROSSLR FLIPX CROSSLL

U+E822 = CROSSUL
U+E823 = CROSSUR
U+E824 = CROSSUR+CROSSUL
U+E825 = CROSSLR
U+E826 = CROSSLR+CROSSUL
U+E827 = CROSSLR+CROSSUR
U+E828 = CROSSLR+CROSSUL+CROSSUR
U+E829 = CROSSLL
U+E82A = CROSSLL+CROSSLR
U+E82B = CROSSLL+CROSSLR+CROSSUL
U+E82C = CROSSLL+CROSSLR+CROSSUR


======================= ORTHOGONAL-DIAGONAL JUNCTIONS ===================

In Amiga ascii, 'Y' is commonly used as an orthogonal-diagonal junction.
However, there's no graphical counterpart for it in Unicode (unlike most
other Ascii characters commonly used in art).

Here, we provide eight Y-like junctions and eight 45-degree corners.

U+E82D = 2574+CROSSUL+CROSSLL
U+E82E = 2574+2575+CROSSLR
U+E82F = 2575+CROSSLL+CROSSLR
U+E830 = 2575+2576+CROSSUR
U+E831 = 2576+CROSSLR+CROSSUR
U+E832 = 2576+2577+CROSSUL
U+E833 = 2577+CROSSUR+CROSSUL
U+E834 = 2577+2574+CROSSLL

U+E835 = 2574+CROSSUL
U+E836 = 2574+CROSSLL
U+E837 = 2575+CROSSLL
U+E838 = 2575+CROSSLR
U+E839 = 2576+CROSSLR
U+E83A = 2576+CROSSUR
U+E83B = 2577+CROSSUR
U+E83C = 2577+CROSSUL

============================ OTHER LINES ==================================

U+1FB81	HORIZONTAL ONE EIGHTH BLOCK-1358
8x8
########	Unicode 13 defines this. From Apple IIc.
........
########
........
########
........
........
########
U+XTND = 1FB81

U+1FBAF	LIGHT HORIZONTAL WITH VERTICAL STROKE
8x8
........ 	MSX character thickened. Usable as a horizontal ruler.
...##... 	Sharp MZ has both horizontal and vertical ruler,
...##... 	but they have been aligned differently.
######## 
######## 
...##... 
...##... 
........ 

8x16
........
........
........
...##...
...##...
...##...
...##...
######## 
######## 
...##... 
...##... 
...##... 
...##... 
........ 
........ 
........ 

U+XTND = 1FBAF

U+XTND
8x8
...##...	Vertical version (because MZ has this)
...##...
...##...
.######.
.######.
...##...
...##...
...##...

8x16
...##...
...##...
...##...
...##...
...##...
...##...
...##...
.######.
.######.
...##...
...##...
...##...
...##...
...##...
...##...
...##...

Stepped ruler lines exist in Sharp MZ (we thicken the line):

U+XTND2
8x8
..####..
...##...
..####..
...##...
..####..
...##...
..####..
...##...

U+XTND2
8x8
........
........
#.#.#.#.
########
########
#.#.#.#.
........
........

Some more strange lines from MZ:

U+XTND2
8x8
........ 	Sharp MZ
....###. 
...#...# 
..#...#. 
##...#.. 
.....#.. 
......#. 
.......# 

U+XTND2
8x8
........ 
.###.... 
#...#... 
.#...#.. 
..#...## 
..#..... 
.#...... 
#....... 

U+XTND2
........ 3880 	Sharp MZ
######## 3881 
........ 3882 
#......# 3883 
.#....#. 3884 
.#....#. 3885 
#......# 3886 
........ 3887 

U+XTND2
......## 1256 
...###.. 1257 
.##..... 1258 
#....... 1259 
........ 1260 
........ 1261 
........ 1262 
........ 1263 

U+XTND2
##...... 1264 
..###... 1265 
.....##. 1266 
.......# 1267 
........ 1268 
........ 1269 
........ 1270 
........ 1271 

U+XTND2
.....#.. 2992 
....#... 2993 
...#...# 2994 
..#...#. 2995 
.#...#.. 2996 
#...#... 2997 
...#.... 2998 
..#..... 2999 

U+XTND2
..#..... 3000 
...#.... 3001 
#...#... 3002 
.#...#.. 3003 
..#...#. 3004 
...#...# 3005 
....#... 3006 
.....#.. 3007 
