On Wed, 28 Jan 2004, Jan Willem Stumpel wrote: > Bart Oldeman wrote: > > >> Display of IBM "control characters" like ↑ (up arrow), ↓ > >> (down arrow) [..] Or is there a trick to get these chars also > >> while being a user? > > > no you can't get them as a user without significant coding > > effort, ie. utf-8 support [..] /dev/vcsa [..] > > [head spins] Just to make certain: I wasn't asking about UTF-8 > support in old DOS, which of course no one would expect. I´m just > talking about the display of the up-arrow character, and similar > IBM chars with values below 0x20, in very old DOS programs (like > IBM Fixed Disk Organizer), which is OK for root but not for user. > Sorry if I misunderstood you...
ok. I was talking about utf-8 support in dosemu, not dos. The fundamental issue is that DOSEMU in the non-root console, just like in an xterm or via an ssh or telnet connection thinks it talks to a terminal. DOS programs or the BIOS write to video memory. DOSEMU in a terminal, if it's not in "dumb" mode, scans the video memory for updates and writes those updates to the terminal via a translation table character->character. If you write 0x7 to a terminal you hear a beep, so you don't get the IBM character associated with 0x7. Similar for all other values under 0x20: these are all control characters. The current DOSEMU implementation for terminals uses a 256->256 table (constructed via unicode mappings and $_internal, $_external charset). On the Linux console this is often a translation from cp437 to cp437, in an xterm commonly from cp437 to iso8859-1. Except, those characters < 0x20 cannot be mapped to terminal characters < 0x20, or you'd get beeps and all sorts of crazy things happening in your screen. For the same reasons, with cp437->iso8859-1, line drawing characters can't be drawn in xterms and they are approximated. Here (unlike the console in cp437 mode) the characters 0x80 to 0x9f are also forbidden. With a 256->utf8, or partially with a 256->256+acs table that problem could be avoided, even remotely via telnet and so on. This simply isn't implemented and that was what I was trying to explain. Only with root it does directly address the *real* video memory, so then DOSEMU doesn't worry about terminals at all. In xdosemu terminals aren't used either, just like writing to /dev/vcsa (see "man vcsa", also not implemented in dosemu) would avoid the terminal control codes. Bart - To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html