Bad Apple as MS-DOS Escape Sequences

92 points by andy_herbert 1 year ago | 12 comments
  • pimlottc 1 year ago
    Also know as ANSI art, which has a long and rich history. [0] There’s nothing particularly difficult or noteworthy about this as a technical accomplishment.

    EDIT: Usually the point of converting Bad Apple to an outdated or unusual formats/systems is as a creative or technical hack, but converting it to ANSI can literally be done with a ffmpeg one-liner.

    0: https://en.m.wikipedia.org/wiki/ANSI_art

    • cf100clunk 1 year ago
      I think it might be more MS-DOS specific than the broader ANSI Art:

        DOS 2.0 introduced the ability to add a device driver for the ANSI escape sequences: ANSI.SYS. Slowness, and the fact that it was not installed by default, made software rarely take advantage of it; instead, applications continued to directly manipulate the hardware to get the text display needed.
      
      https://en.m.wikipedia.org/wiki/ANSI_escape_code

      Anyway, rhetorically, art (the payload) is art, regardless of the technical means or difficulty.

      • pimlottc 1 year ago
        ANSI art was almost always published as sequences of text and MS-DOS compatible escape codes. That's what an .ANS file is, and how it was transferred over the modem in an interactive session.

        And sure, this is art, but it's basically just a file conversion. ffmpeg has been able to output ANSI since at least 2010 [1]

        1: https://ffmpeg.org/doxygen/trunk/ansi_8c_source.html

        • capitainenemo 1 year ago
          It's also possible to output libchafa's nicer rendering with a broader set of characters using ffmpeg.
    • deater 1 year ago
      it pains me to have an ANSI animation called "MS-DOS Escape Sequences"
      • dspillett 1 year ago
        Were the options available via ANSI.SYS a mix of a subset of the standard ones and a few non-standard? If I'm remembering rightly there, this may be a more accurate description if it targets that exact set of control sequences rather than any other.
        • fsckboy 1 year ago
          ANSI.SYS was a subset of maybe the most advanced terminals, but it was more or less complete in terms of cursor positioning and character attributes so you could implement a (unix)curses style spreadsheet or something, but it would be much slower and less capable than capturing the keyboard and shoving characters directly into screen memory so there was not much software written to use ANSI via CON: (standard in/out).

          The bigger problem was that very few users would have had ANSI.SYS loaded and that's out of the already small pool of users who knew that device driver could be loaded (in a hidden system file, CONFIG.SYS) or what garbled escape sequences would look like. Memory was precious, ANSI.SYS used some. In a certain sense, writing directly to screen memory was much more portable.

          my brain is itching now, there was something missing from ANSI.SYS... can't quite remember, maybe it couldn't remember a cursor position and jump back to it--it couldn't read the cursor position... it's hazy, something like, as a result, to use it you had to clear the screen of what had been up before and use it in full screen mode with some redraws every now and then

          • stevekemp 1 year ago
            I think calling CONFIG.SYS a hidden file is a bit harsh - 99% of MS-DOS users back in the day would have known about it, and the AUTOEXEC.BAT file.

            People used MENU, and similar, to build up different config files and device-drive setups for launching different applications.

            Even into the early Windows days people would still tweak their config.sys files.

            • dspillett 1 year ago
              I definitely remember there being a significant something missing. It may have been the cursor control thing from your memory that caused full redraws to be needed more than otherwise.

              > The bigger problem was that very few users would have had ANSI.SYS loaded

              This is true. I had it loaded on a couple of my configs, but not my primary one.

        • nope96 1 year ago
          As a kid I always admired AVATAR ( https://en.wikipedia.org/wiki/Advanced_Video_Attribute_Termi... ) and wondered why more people didn't use it for art. It was far more efficient. I'd use it wherever I could, and it would feel like my modem got a 2x speed boost. But I'd never seen any BBS software convert ANSI art into AVATAR on the fly...

          Also, displaying ANSI with ANSI.SYS was completely unsafe, as there were codes to redefine keyboard input (i.e. turn F1 into Format C:)

          • Dwedit 1 year ago
            It looks a little bit like the animation seen in the "8088 Domination" demo in how you can see the screen get redrawn incrementally. But 8088 Domination syncs up with the music.

            This one does not sync with the music.

            I think it needs to consider how long each frame takes to draw, and skip frames when behind. (Or render a partially finished frame, as done in the 8088 domination demo)

            • fsckboy 1 year ago
              pre MS-DOS, there was a piece of humorous, very low resolution pr0n, ANSI/ASCII video art that was distributed on DECUS tapes. (Digital Equipment Computer Users' Society) It was contained in a file named JACK.OFF, nudge nudge wink wink say-no-more.

              I've been searching for a copy of this for a long long time but I can't find it in any of the DECUS archives I've found. Anybody have it?

              it's tuned for about 2400 baud, iirc. The DEC users society was a pre-internet sort of open source, data tapes with a ton of useful tools, utilities, source, tons of useful stuff.

              • entelechy0 1 year ago
                [dead]