# Line Draw Characters

> [HTML Version](linedrawcharacters.htm)



| | |
|------|------|
| **? TAB(-1,23);** | **\! enable alternate character set** |
| **? TAB(-1,code); ... TAB(-1,code);** | **\! output alternate character(s)** |
| **? TAB(-1,24);** | **\! return to normal character set** |


As shown in syntax lines above, line draw / alternate character mode must be enabled with [TCRT](terminology.md#tcrt-in-terminology) code 23 prior to executing the following codes and, after using these codes, disabled with [TCRT](terminology.md#tcrt-in-terminology) code 24.

| **Code** | **Action** | **** | **Code** | **Action** |
|------|------|------|------|------|
| 38 | Top left corner  |  | 46 | Horizontal line  |
| 39 | Top right corner |  | 47 | Vertical line |
| 40 | Bottom left corner |  | 48 | Intersection |
| 41 | Bottom right corner |  | 49 | Solid block  |
| 42 | Top intersection |  | 50 | Cross-hatch block |
| 43 | Right intersection |  | 51 | Slanted cross-hatch block |
| 44 | Left intersection |  | 52 | Double horizontal line\* |
| 45 | Bottom intersection |  | 53 | Double vertical line\* |




\* Note that double lines are only supported when using the OEM character set; the more typical ANSI character set doesn't support them.



**Example**

\! draw a box from srow,scol to erow,ecol

? tab(-1,23);                  \! enable alternate character set

? tab(srow,scol); tab(-1,38);  \! top left corner

? tab(srow,ecol); tab(-1,39);  \! top right corner

? tab(erow,scol); tab(-1,40);  \! bottom left corner

? tab(erow,ecol); tab(-1,41);  \! bottom right corner   

for c = scol+1 to ecol-1

    ? tab(srow,c);tab(-1,46);  \! top line

    ? tab(erow,c);tab(-1,46);  \! bottom line

next c

for r = srow+1 to erow-1

    ? tab(r,scol);tab(-1,47);  \! left side

    ? tab(r,ecol);tab(-1,47);  \! right side

next r

? tab(-1,24);                  \! back to normal character set



**See Also**

•	[MSBOXX](msboxxsbr.md)

