import VTSequence from "@/components/VTSequence";

# Scroll Down (SD)

<VTSequence sequence={["CSI", "Pn", "T"]} />

Inserts `n` lines at the top of the scroll region and shift existing
lines down.

This sequence is functionally identical to
[Insert Line (IL)](/vt/il) with the cursor position set to the top of
the scroll region. The cursor position after the operation must be unchanged
from when SD was invoked.

This sequence unsets the pending wrap state.

## Validation

### SD V-1: Outside of Top/Bottom Scroll Region

```bash
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC\n"
printf "DEF\n"
printf "GHI\n"
printf "\033[3;4r" # scroll region top/bottom
printf "\033[2;2H"
printf "\033[T"
```

```
|ABC_____|
|DEF_____|
|________|
|GHI_____|
```
