Repository navigation
BBS terminals: RIPscrip, Avatar, Amiga ANSI, Atari ST (Phase 7) - #43
Merged
Merged
Conversation
The Atari ST's TOS VT52 in medium resolution (80x25, four colours) and low (40x25, sixteen): ESC b and ESC c pens, reverse, wrap, the cursor saved and hidden, the extra erases, line insert and delete, and the ST's character set. Vt52Interpreter gains a character hook and an argument hook for it; the machine size and palette set-up is shared with the byte-oriented machines (useMachine, releaseMachine). colorOverride's "none" was -1, which is also opaque white, so a machine's pure white (the ST's screen, Viewdata's and the Minitel's white) fell back to the theme's colour. "None" is now NO_COLOR (transparent black), and overrides are kept opaque. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B82eRSyCmXjaURxSYoHxCY
FidoNet's compact codes taken in ANSI-BBS's intercept hook: ^L, ^Y's repeat, ^V's PC attributes (DLE-quoted too), blink, cursor moves and place, clear to the line's end, and AVT/0+'s insert mode, area scrolls, clears and fills (through Rectangles), character delete and pattern repeat. ANSI, music and the rest of ANSI-BBS work underneath. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B82eRSyCmXjaURxSYoHxCY
ANSI-BBS in Latin-1, drawn 8x8 (Unscii's glyphs, Topaz's size; the generator now adds Latin-1's to the 8x8 set) in colours from the Amiga's 12-bit palette. An ANSI-BBS profile can now carry its own sixteen colours (AnsiBbsProfile.colors), which its interpreter puts over the theme's and takes back off when another profile takes over. The per-profile render test now uses the profile's character set, as connecting does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B82eRSyCmXjaURxSYoHxCY
ANSI-BBS whose lines starting !| (or ^A|, ^B|) are RIP's commands on a 640x350 EGA screen over an 80x43 text window: lines in their styles and thickness, rectangles, bars, circles, ellipses, arcs, pies, Beziers, polygons and polylines, flood fills, BGI's fill patterns and the host's, text, the palette, the viewport and text window, the clipboard, text blocks, and mouse regions and buttons. ESC [ ! answers RIP's version, and ESC [ 1 ! and 2 ! turn it off and on. Line continuation and the CR LF ending a RIP line are the line's own. Raster gains ellipses, patterned fills, flood fill, a clip rectangle and grab and put, and draws shrunk glyphs with their rows merged (a thin stroke was lost). Taps: an interpreter can take a tap at a point on the screen (TerminalEmulator.tap); Android's view and the iOS screen (through TerminalBridge.tap) send what it gives, so RIP's buttons work. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B82eRSyCmXjaURxSYoHxCY
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Sydney · project thread
The rest of Phase 7 of the terminal emulation plan. With this, every terminal type in the plan is built.
Terminal types
Atari ST (
atari-st: 80x25 in 4 colours;atari-st-low: 40x25 in 16). This is TOS's VT52 with its additions:It subclasses
Vt52Interpreterthrough two new hooks: one for each character, and one for an escape command's argument.Avatar (
avatar): AVT/0 and AVT/0+ codes, taken in ANSI-BBS'sintercepthook so that ANSI and music keep working underneath. The area commands reuseRectangles.Amiga ANSI (
amiga): ANSI-BBS in Latin-1, drawn with 8x8 glyphs (Topaz's size), in Amiga colours.AnsiBbsProfile.colors).RIPscrip 1.54 (
rip):!|lines draw on a 640x350 EGA screen over an 80x43 text window.ESC [ !gets RIP's version as the reply.Shared changes
Rastergains ellipses, patterned fills, flood fill, a clip rectangle, and grab/put.TerminalEmulator.taplets an interpreter take a tap. Android's view and the iOS screen (throughTerminalBridge.tap) send what it returns.useMachineandreleaseMachineare now shared between the byte-oriented machines and the Atari ST.Fix: pure white machine colours were dropped
colorOverrideused-1to mean "none", but-1is also opaque white (0xFFFFFFFF). So any machine colour of pure white fell back to the theme's colour. That covered the ST's screen and Viewdata's and the Minitel's white text."None" is now
TerminalEmulator.NO_COLOR(transparent black), and stored overrides are always opaque. All callers and tests are updated.Checks
AtariStTest,AvatarTest,AmigaAnsiTest,RipTest.ProfileRenderTestcovers the new types.:shared:jvmTest,:shared:linuxX64Test, the Android terminal tests anddoc_checkall pass.Generated by Claude Code