Skip to content
Snippets Groups Projects
  1. Jan 23, 2025
  2. Jan 22, 2025
    • Deucе's avatar
      Mention the new font for Prestel · ffa6a703
      Deucе authored
      ffa6a703
    • Deucе's avatar
      Attempt to silence false positive warning. · 09b21573
      Deucе authored
      The warning suggests that x1 and y1 may be uninitialized in the i > 0
      block, but that's not really possible...
      
      It's too bad the warning doesn't clarify.  It's also weird that the
      warning was in the draw_line() call and not in the lines above that
      (incorrectly) compared them with -1.
      
      Fix that check while we're here.
      09b21573
    • Deucе's avatar
      Fix possibly undefined value in ellipse. · a97b1ada
      Deucе authored
      Top-right quadrant doesn't need a quadrant angle, the angle is what
      we want already.
      a97b1ada
    • Deucе's avatar
      Adjust Prestel cursor flash. · 64f32518
      Deucе authored
      It appears that it flashes at 1.5Hz with the off period synchronized
      to the blinking text off period.
      
      Still no idea what generates it though.
      64f32518
    • Rob Swindell's avatar
      API change: long->int · 3d68720d
      Rob Swindell authored
      No functional change
      3d68720d
    • Rob Swindell's avatar
      Read/write the new sbbs.ini [Mail] PostTo setting · 1fb16776
      Rob Swindell authored
      Whoops, missed this from the previous commit.
      
      But testing the pipes for jsexec crashes too, so that's not a bad thing.
      1fb16776
    • Rob Swindell's avatar
      Add new "PostTo" setting to (optionally) change the recipient of SMTP-posts · b8f2df8a
      Rob Swindell authored
      Messages posted to sub-boards via SMTP normally will have the recipient
      name/address as the "To" (RECIPIENT) value of the posted message. If the sysop
      wishes to replace this string (for all SMTP-posted messages) with a different
      string (e.g. "All") this is the setting to allow that.
      
      I do want web-scrapping spammers to collect the 'to' fields for my TLDR and
      Coverity-scan posts and post their own spam messages via email (any more).
      
      Also accommodate the new link list API (long -> int).
      b8f2df8a
    • Rob Swindell's avatar
      0eee85fc
    • Rob Swindell's avatar
      Change 'long' to 'int' in link list API · a147f9ee
      Rob Swindell authored
      so the sizes of these elements are the same across all our current target
      platforms
      a147f9ee
    • Rob Swindell's avatar
      Add/use new function: listAddNodeWithFlags() · 31c01008
      Rob Swindell authored
      Fixes race condition/possible crash in listAddNodeData(), listAddNodeString()
      and listAddNodeList(). These functions were modifying the node->flags *after*
      a node was added to the list and list lock released.
      
      This is most likely the cause of the issue caught by valgrind when running the
      jsexec-testsuite:
      https://gitlab.synchro.net/main/sbbs/-/jobs/498286
      
      Thank you Deuce and valgrind, nice catch!
      31c01008
    • Deucе's avatar
      Regenerate Prestel font from decapped ROM image · d83ae02b
      Deucе authored
      The only difference appears to be the column the 1 is in the ¼ character.
      d83ae02b
    • Deucе's avatar
      Add my Prestel test "stuff" · 4ce11e59
      Deucе authored
      4ce11e59
    • Deucе's avatar
      Update comments for closer reading of the spec. · 1817c363
      Deucе authored
      Section 2.3.1 is the C0 set, which "is not stored or displayed"
      Section 2.3.2 is the C1 set, so interpret "all control characters"
      in this context as meaning "all C1 characters".
      1817c363
    • Deucе's avatar
      Switch back to ignoring unhandled C0 bytes. · 7982c3cf
      Deucе authored
      This "feels" more like what the spec means.
      7982c3cf
    • Deucе's avatar
      bf58917b
    • Deucе's avatar
      Ignore invalid ESC sequences in Prestel mode · 1eb4ec04
      Deucе authored
      1eb4ec04
    • Deucе's avatar
      Support the "Replacement Character" in Prestel mode · b2b88684
      Deucе authored
      This is the unicode replacement character, now displayed whenever
      a G1 byte is received (byte values 160-255).
      
      Prestel terminals are 7-bit devices, and use special escape
      sequences to select alternate glyphs.  The Videotex standards
      define a default G1 set though, which I am not supporting in the
      1.x versions.  So that sysops and users know "something weird
      happened", this weird glyph will clearly indicate that.
      
      The C1 characters (128-159) I am supporting though simply because
      it's easy to do, and I saw at least one BBS using them.  These BBSs
      won't actually work with a real Prestel terminal though... they may
      end up as parity errors, or they may end up as C0 bytes, or they
      may be replaced with a '?'... I've seen all three now. SyncTERM can
      at least do the right thing since it's well defined.
      
      This may also fix held mosaic display for unhandled C0 bytes... it
      looks like previously they were ignored, but the Prestel Terminal
      Specification clearly states that "Generally all control characters
      are displayed as spaces"... it doesn't limit them to supported
      control characters.
      b2b88684
    • Deucе's avatar
      Fix handling of C1 control characters · ac92a69b
      Deucе authored
      At the same time, fix an old error in prestel_handle_escaped() that
      didn't pass the ctrl to prestel_apply_ctrl_after() properly, and
      always flush the print buffer before calling prestel_handle_escaped()
      
      We still shouldn't actually get C1 characters on a Prestel connection,
      but if we do, at least we're doing the right thing now.
      
      As for G1 characters, the default repetoire for these terminals per
      ITU-T REC. T0101 is the mosaic character set with smoothed moasics,
      something there's no evidence of a Prestel terminal ever supporting.
      In order to implement those properly, I would need special handling
      of "separated" in the renderer, and would need to fiddle with the
      font to include the contiguous smoothed mosaics (and exclide the
      separated ones).  Since this would end up allowing wildly un-Pretel
      behaviour (ie: mosaics without a mosaic escape) I'm inclined to
      just treat them all as spaces and move on util/unless I do full
      support for all the Videotex standards.  Nobody has asked me to
      open this can of worms, so I'm just going to leave it on the shelf.
      ac92a69b
    • Deucе's avatar
    • Deucе's avatar
      f8f00d18
    • Deucе's avatar
      Atari doesn't blink? · 4837ce25
      Deucе authored
      4837ce25
    • Deucе's avatar
      Fix previous commit. · 7079932a
      Deucе authored
      7079932a
    • Deucе's avatar
      Add C64/C128 blinking... 1.5Hz · 7ae2f1b1
      Deucе authored
      Blinking text is opposite of the cursor
      7ae2f1b1
    • Deucе's avatar
      Fix up cursor and blinking rates, step 1... · 0524805a
      Deucе authored
      For "PC" modes, cursor blinked at 1/16th of the VSYNC rate, so use
      the CGA timings, where were generally the slowest of the bunch...
      This means cursor blink at 3.745Hz, and character blink at 1.8725Hz.
      
      For Prestel, character blink was 0.75Hz with a 3:1 On:Off ratio.
      The cursor on the other hand was 1/32th the VSYNC and was generally
      PAL, so 1.5625Hz.
      
      I still need to dig into C64 and Atari modes, because they're likely
      way off now (assuming either supports blinking).
      0524805a
Loading