# 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.htm.md#tcrt-in-terminology) code 23 prior to executing the following codes and, after using these codes, disabled with [TCRT](terminology.htm.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.htm.md)