Announcement

Collapse

Forum etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


"PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

ANSI.SYS Escape Code Resolution, Mode 6 on Olivetti M24(SP)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    ANSI.SYS Escape Code Resolution, Mode 6 on Olivetti M24(SP)

    According to the MS-DOS manual of my M24 there is an ANSI.SYS support for 640x200b/w mode when switching to mode 6h (ESC[6h).
    This works for the command prompt itself, however it does not work for applications like the MS-DOS editor, which then cause only garbage on the screen.
    Is there any explanation for this? Shouldn't the DOS 5.00 Editor work in graphics mode like TopView does? Or automatically switch to 80x25 mode (that's what is done on my 486)?
    The outcome is the same regardless of if I use the original Olivetti DOS ANSI.SYS or the one provided by MS-DOS 4.01. Or other applications like mTCP ftpsrv.

    (Pictures say x400, but it's in fact x200. I am too used to write x400 when writing something about this PC...)
    Last edited by freakedenough; September 12, 2020, 09:12 AM.

    First own PC in 2003: AMD K6-2 500MHz, 320MB RAM, 40GB IBM HDD, 50x CD-ROM, 8x4x24 CD/RW, 100MBit LAN, 32MB ATi Rage 128 Pro, Windows XP

    #2
    Doesn't EDIT use direct-to-screen buffer writing?

    Comment


      #3
      For laughs I tried this with the version of ANSI.SYS included with PC-DOS 7 on my Tandy 1000 with a VGA video card plugged in. On that machine if I set a graphics mode with an ANSI code (I tried a number of different modes from 640x200 CGA up through 16 color 640x480) before entering EDIT/QBASIC (same thing) I don't get the same response; the machine resets the video mode to 80x25 text. Upon exiting, though, it seems to *try* to set the graphics mode back up the way it was, but in every case the palette/attribute set was screwed up.

      Looking at the screenshot of what's displayed on your machine it looks to me like EDIT isn't detecting it's in graphics mode and, like Chuck says, it's just writing directly to the screen buffer thinking it's already in 80x25 text mode. If it wasn't a hassle (I put my CGA monitor up for now) I'd pull out the VGA card and see if the same thing happens with the built-in CGA graphics.

      That said, I'm kind of puzzled *why* you'd want to use ANSI to set 640x200 graphics as your DOS prompt text mode. It's just going to be slower than the character based text mode.
      My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

      Comment


        #4
        Scrolling is a real larf in graphics mode.

        Comment


          #5
          Originally posted by freakedenough View Post
          Shouldn't the DOS 5.00 Editor work in graphics mode like TopView does?
          The DOS 5 editor writes directly to screen memory and assumes a textmode arrangement.
          Offering a bounty for:
          - A working Sanyo MBC-775 or Logabax 1600
          - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

          Comment


            #6
            Okay! What eas the purpose/use of these ANSI modes? For BASIC apps only?

            First own PC in 2003: AMD K6-2 500MHz, 320MB RAM, 40GB IBM HDD, 50x CD-ROM, 8x4x24 CD/RW, 100MBit LAN, 32MB ATi Rage 128 Pro, Windows XP

            Comment


              #7
              BASIC has had its own SCREEN statement for setting video modes, before ANSI.SYS existed. I don't think I've ever seen these escape codes used anywhere, and I can't imagine what the intended use case would be... maybe vestiges of a plan for more extensive graphics support which never materialized?

              EDIT: actually... one possible use-case would be allowing multi-lingual text in some programs that didn't support it out of the box. The first implementations of ANSI.SYS were done in the days of CGA, where fonts could be modified *only* in graphics mode. (DOS code page support came later, and targeted at least EGA).
              If an application was "well-behaved" (i.e.: didn't set its own video modes and didn't write directly to the screen), you could use this sort of trick to force it into graphics mode, and load your own character set/language driver before launch. For example, I have here a Hebrew language TSR from IBM dated 1983, which only works in (CGA) graphics modes, so it can only be used with such "well-behaved" software.
              Last edited by VileR; September 13, 2020, 03:00 AM.
              int10h.org :: :: :: blog

              Comment


                #8
                Support for color is marginal at best with DOS.

                The most pressing use for ANSI.SYS was so that preference for foreground and background screen color can be set once and the system "remembers" it.

                Comment


                  #9
                  Zork was one of the few applications that used ANSI.SYS.

                  Comment


                    #10
                    I tryed once ansi.sys on my M24, but it was tooo confusing, so I disabled it again. That was with Olivetti branded MS-DOS 5.
                    <album>

                    Comment


                      #11
                      Originally posted by freakedenough View Post
                      Okay! What eas the purpose/use of these ANSI modes? For BASIC apps only?
                      ANSI color codes and cursor positioning make sense, but setting the graphics modes was just done for completeness, and it was a mistake.

                      Once in one of the color modes you can't draw lines or really set colors, so there it just no point to doing it. Nothing that I know if uses the ANSI escape codes to move to a graphics mode because it's just pointless.

                      Comment


                        #12
                        Originally posted by freakedenough View Post
                        Okay! What was the purpose/use of these ANSI modes? For BASIC apps only?
                        For CPM programs ported to DOS, for color and positioning in terminal applications, and for MS-DOS compatible programs that were not necessarily IBM PC-compatible. (In the first few years, MS-DOS ran on more systems than just the IBM PC.)

                        Actually there's a 4th reason: Some programs used ANSI codes for I/O because the idea was that ANSI.SYS was an "API" you could use to "write once, support many". In an ideal world, ANSI drivers could be written for anything, and/or better ones could come out at a later date and support more hardware, but the original program wouldn't have to be modified to run in such situations. In practice, this never really took off, since programs writing directly to textmode memory could run way faster than outputting ANSI codes.
                        Offering a bounty for:
                        - A working Sanyo MBC-775 or Logabax 1600
                        - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

                        Comment


                          #13
                          Originally posted by Trixter View Post
                          Actually there's a 4th reason: Some programs used ANSI codes for I/O because the idea was that ANSI.SYS was an "API" you could use to "write once, support many".
                          I had forgotten about that.

                          Search the web for ansi art...

                          Comment


                            #14
                            You're also forgetting BBS culture. Quite a number of them required that you use a terminal program that supported ANSI/VT100 protocol. With ANSI.SYS, a dumb terminal program could display the stuff. Back in the day, when you wanted to create a multi-user PC system, those secondary serial consoles usually supported ANSI as the obvious choice.

                            I seem to remember that there were several "improved" ANSI.SYS programs over the stock one distributed with MSDOS, ZANSI and NANSI come to mind. They were also faster than the standard MS-DOS character interface based on INT 10H.

                            Even today, when I'm writing code that interfaces a microcontroller via USB to a PC, I use ANSI escape sequences to produce good looking displays. Linux utilities such as minicom and screen support those codes as well as several Windows terminal programs such as REALTERM. Most telnet and ssh clients also support ANSI sequences.

                            Comment


                              #15
                              "You're also forgetting BBS culture."

                              Yes, true. But not in the era of the early XTs. Using ANSI in BBS was later and those terminal programs had ANSI support build in, they did not rely on ansi.sys.
                              <album>

                              Comment

                              Working...
                              X