1. Re: ASCII and ANSI
- Posted by Jacques Deschenes <desja at GLOBETROTTER.QC.CA>
Aug 09, 1997
-
Last edited Aug 10, 1997
answer to Wallace,
It's true that at the beginning ASCII was a 7 bits code and it's why most
unix system are still communicating in 7 bits.
ANSI stand for American Natonial Standard Institute and like IEEE it's
purpose is to
define standard for the industrie. The so called ANSI character table has been
defined by this institute based the original ASCII table and extended to 8
bits which is sometimes called extended ASCII.
There is some confusion about ANSI (institute), ANSI (character table which
is only
one standard define by this institute) and ANSI driver.
ANSI TABLE
the ANSI character table not only define a character table it also define
control sequences which begin by ESC ] {27, 93}
ANSI DRIVER
The ANSI driver that comes with DOS is a substitute for CON which is the
standard console driver used by DOS. This ANSI driver only implement a
subset of the
ANSI control sequences.
ASCII BELL = 7
Either original ASCII or extended ASCII (ANSI standard) define 7 as BELL.
The fact that Euphoria doesn't sound beep when character 7 is put on screen
only mean
that euphoria doesn't use DOS to put on screen (or maybe Causeway does it
itself). for the character ROM on the video card all codes (0 to 255) are
displayable so if
puts() send character to video memory instead of using DOS call you get
those funny
characters.
You can still sound a beep by using dos_interrupt call.
procedure dos_beep()
sequence r
r = repeat(0,10)
r[REG_AX] = #200 -- output character to console AH = 2
r[REG_DX] = 7 -- character to output DL = 7 -> beep
r = dos_interrupt(#21,r) -- #21 is dos multiplex function call.
end procedure
or try this from debug
mov ah, 2 ; write character to console
mov dl, 7 ; character 7 BELL
int 21 ; dos function call
int 3 ; debug end execution
for more information about ANSI standards consult http://www.ansi.org
Jacques Deschenes
Baie-Comeau, Quebec
Canada
desja at globetrotter.qc.ca