Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!princeton!allegra!ulysses!gatech!gitpyr!jkg From: jkg@gitpyr.UUCP Newsgroups: comp.sys.ibm.pc Subject: Re: changing character sets Message-ID: <3139@gitpyr.gatech.EDU> Date: Tue, 24-Feb-87 20:09:44 EST Article-I.D.: gitpyr.3139 Posted: Tue Feb 24 20:09:44 1987 Date-Received: Fri, 27-Feb-87 05:08:58 EST References: <1303@erix.UUCP> Reply-To: jkg@gitpyr.UUCP (Jim Greenlee) Distribution: world Organization: Georgia Institute of Technology Lines: 51 OK, I'm going to stick my neck WAAAAYYYY out and answer this one. This applies to the MDA or CGA in character modes ONLY. I have no experience whatever with Hercules cards or the EGA. In article <1303@erix.UUCP> joe@erix.UUCP (Joe Armstrong) writes: > Dynamically (i.e. not at boot time) Change the system character >sets to my own character sets - at any time I'd like to be able to poke a >new character definition into the machine. > 1) Are the characters sets in RAM No, there is a mask-programmed ROM on both the monochrome and color graphics adaptors which cannot be changed (except by removal and replacement with a different character ROM). It is usually a MOSTEK series 36000 8K x 8 ROM which handles ASCII character to pixel translation. > 2) If so at what address The ROM is not even in the CPU address space! The address lines of the ROM are driven by the data outputs of the video RAM plus the row address lines of the 6845 CRT controller. You couldn't access the ROM directly if you wanted to. > 3) How are the characters packed Interesting question. IBM used some goofball addressing scheme that makes the raster rows non-contiguous. I think the reason is so they could support all the character modes on the CGA without duplicating pixel data. I had quite a bit of fun figuring this out (luckily, I had a Technical Reference Manual handy). > 4) If I change the RAM character set (I assume it is in RAM) > can I use bios calls to output the characters or what? Don't know about this one. It should be possible to do define your own characters in graphics mode (this is how programs like PC-Paint and PC StoryBoard get away with it), but it would require a fair amount of CPU overhead to manage the whole thing - in other words it would be really ssllloooooowwwwww. My guess is that you would have to do direct screen writes to make it work. Any MDA or CGA compatible card should use this same method for character formation. All bets are off for the EGA - I don't know anything about how it handles character formation. Jim Greenlee -- The Shadow...!{akgua,allegra,amd,hplabs,ihnp4,seismo,ut-ngp}!gatech!gitpyr!jkg Jryy, abj lbh'ir tbar naq qbar vg! Whfg unq gb xrrc svqqyvat jvgu vg hagvy lbh oebxr vg, qvqa'g lbh?!