I decided to look into this a bit myself.  It seems like the acs_map
characters originate with the stock VT100, and are documented in the
technical manual.  The latest version of that PDF is in the bitsavers
archive.  There are a few mirrors of it around.  For example:
http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-TM-003_VT100_Technical_Manual_Jul82.pdf

The character ROM contents is on pages 128 and 129 of the PDF, so you can
see what they available characters look like*.  I believe the mapping for
the acs_map is on page 391 - Table A-5.  To me, it looks like the acs_map
is supposed to cover the mode where the "mostly graphics characters" from
the front part of the ROM replace the "mostly lower-case" ascii range.  acs
might be a bit of a misnomer - because they call it the alternate graphics
set.

There is also the possibility of having and alternate character set ROM,
and I think this is what A_ALTCHARSET is meant for.  I haven't found a good
reference for what those are supposed to look like beyond that NCURSES
reference, but it doesn't seem to be important to the core pdcurses code.

I even went so far as to get the VT100 charset ROM images from archive.org,
and it's contents match the PDF.  Unfortunately, I haven't found a ROM
image yet containing the ALTCHARSET characters from the NCURSES table yet.

-Frank

*The rendering of the charrom contents doesn't exactly represent the way
the characters look on screen.  The dot_stretch circuit section (which is
described a few pages before the table) shows how the characters were
formed by making the each dot stretch for two horizontal pixels.


On Sun, Apr 12, 2015 at 10:35 AM, <wmcbr...@gmail.com> wrote:

>  The ACS_ characters are for box drawing, mainly. The division
> into “main” and “alternate” character sets is just for historical reasons,
> like a lot of things in curses. On an old VT100 terminal, you'd send a
> special code to switch between the modes. So now, when you want curses to
> draw the upper left corner of a box -- on any terminal -- you can just
> addch ACS_ULCORNER, instead of worrying about the terminal-specific way to
> get that. And yes, this whole thing is semi-obsolete in the Unicode era.
> But as an implementer, you still need to make that map, so old code will
> work.
>
> I hope this helps. I must admit I'm not entirely sure what you're asking
> for.
>
> *From:* anatoly techtonik <techto...@gmail.com>
> *Sent:* ‎Sunday‎, ‎April‎ ‎12‎, ‎2015 ‎4‎:‎35‎ ‎AM
> *To:* pdcurses-l@lightlink.com
>
> To make it more clear, I am trying to decouple the logic in port
> implementation from C semantics to understand how PDCurses work, and so far
> the mapping of ACS_ macros and its purpose is not very clear. The guide say
> what should be done in ports, but it is still not clear why it is needed
> and what should happen between PDCurses and Operating System.
>

Reply via email to