Skip to content

DECLRMM - Left/Right Margins#523

Draft
davidrg wants to merge 67 commits intomasterfrom
DECLRMM
Draft

DECLRMM - Left/Right Margins#523
davidrg wants to merge 67 commits intomasterfrom
DECLRMM

Conversation

@davidrg
Copy link
Copy Markdown
Owner

@davidrg davidrg commented Mar 31, 2026

This is the initial implementation of DECLRMM. It passes all relevant vttests, but hasn't received much in the way of testing outside of vttest yet aside from a few ad-hoc tests at the shell.

Still to be done:

  • Check L/R margins are always reset on window size change
  • Double-check implementation against DEC STD 070
  • Update terminfo file
  • Review all the changes
  • Find some apps that actually use DECLRMM to see if it works in the real world

…details verified against DEC STD-070 or some other reference implementation.
…nt. This reduces the amount of copy&paste a bit.
…that reset it.

There is further work to do get K95 to implement this correctly - having a bit of documentation should make that slightly easier.
…s doc to indicate the mode is supported.

At this time turning the mode on only clears double height/double wide attributes and blocks setting of these attributes, and also renders SCOSC inaccessible.
The margins don't really *do* much yet, but they are set!
VPR is only supposed to be constrained by the margins when DECOM is set.
…ea within the margins, and attempting to scroll anything at all when outside the margins. That is to say, DECBI now works correctly.
This was causing all sorts of breakage outside of vttest!
…as supplied.

This commit also mostly fixes wrapping in general when in the presence of L/R margins.
…cursor should move to within the margins when the position is below the top margin.
…RA to erase the entire rectangle, not just unerased lines.
@davidrg davidrg linked an issue Mar 31, 2026 that may be closed by this pull request
davidrg added 28 commits March 31, 2026 21:05
Both the Cursor Information Report and Tabstop Report are implemented.
They wreak havoc on subsequent tests as K95 doesn't actually implement DECRSPS.

 Before resorting to just disabling DECRSPS I did actually have a go at implementing DECRSPS and got it *mostly* working, but it was really too much yak shaving for now so I'll revisit it some other day.
…/off as most terminal emulators today operate effectively with the setting turned on (screen not cleared on resize)
…switching to 80 or 132 columns. And move the cursor if its past the last column.
…Fix DECERA not updating the background colour of already erased cells.
…d direction.

Not entirely sure why checksums changed, but the test screens are correct - perhaps erased lines are more correct now?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DECLRMM and DECSLRM - set left/right margins

1 participant