At 2026-02-03T19:33:19+0000, Robin Haberkorn wrote: > On Tue Feb 3, 2026 at 20:10:00 GMT +01, G. Branden Robinson wrote: > > Which VT100 emulator is it, and how good is it known to be? > > https://github.com/larsbrinkhoff/terminal-simulator
Excellent choice, if fidelity is what you're after! I'm familiar with the project. One limitation I'm aware of is that his simulator does not (or did not when last I checked) implement the "advanced video option". https://vt100.net/docs/vt100-ug/chapter4.html This is a significant fact for some users--note the limitation on attributes without the option--since in casual usage and even in the terminfo database, people assume any "VT100" to be one _with the advanced video option installed_. (I think the VT102 came with it stock.) Thus this terminfo entry: $ infocmp vt100-nav # Reconstructed via infocmp from file: /home/branden/ncurses-HEAD/share/terminfo.db vt100-nav|VT100 without advanced video option, am, mc5i, msgr, xenl, xon, cols#80, it#8, lines#24, vt#3, xmc#1, acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, bel=^G, blink@, bold@, clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=\n, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev@, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul@, rs2=\E<\E>\E[?3;4;5l\E[?7;8h\E[r, sc=\E7, sgr@, sgr0@, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, smul@, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c, u9=\EZ, ...which however doesn't cancel the scroll region capability (csr), so maybe this is a red herring. > "This is a software simulation of the VT100 hardware. The original > firmware ROM is built in and executed by an 8080 emulator. Other > components include video display with character generator ROM, settings > NVRAM, Intel 8251 USART, and a keyboard matrix scanner. The Advance > Video Option is not included." > > Brinkhoff is something like a computer historian to my knowledge. > I think he knows what he's doing. I agree. > Regarding idlok() and scrollok(): I know the manpage. > Unfortunately, nowhere it says what to do, so ncurses > will actually set up the scroll region. > After reading the source code, it didn't get much clearer. Yeah, at this point I have to yield to Thomas Dickey. > From my understanding scrollok() shouldn't be necessary > if the terminal has insert/delete_line caps. Well, there's that parenthetical sentence in the man page you know. >>> (To get the physical scrolling effect on the terminal, the >>> application must also enable idlok). > Perhaps I will build against a debug version of ncurses > and step through with GDB, looking for the place actually > preventing configuration of the scroll region. This would seem to be the relevant code: https://github.com/ThomasDickey/ncurses-snapshots/blob/dd63e6cc22ddea3df663b977891aedd5b918e310/ncurses/tty/tty_update.c#L1800 It appears to me that if the terminal description has the change_scroll_region (csr) capability, ncurses will use it. So if that's not happening for you, I have no hypothesis. :( Regards, Branden
signature.asc
Description: PGP signature
