[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changing the ASCII character



Pim Blokland <pDOTblokland@spcgroup.nl> wrote:

> Rubywand wrote:
> 
> >      If you want to change one or more Text display characters, you need
> > to swap in a custom PROM (or tack on a PROM and supply decoding, which
> > is more bother than just doing a new PROM).
> 
> There were lots of programs that redirected the cin and cout hooks to
> make use of the hires screen. These programs all had character sets in
> RAM. Couldn't that be a solution?

Yes, that would work, as long as you are using software which is able to
work in conjunction with this mechanism.  The only one I'm familiar with
is the character generator that was included with the DOS version of
Apple's Editor/Assembler toolkit (EDASM).  I believe this is the one
used by the game Taipan, for example.

I don't know if this was ever ported to ProDOS, and even if it was, it
would be limited to being used with BASIC programs (or machine code
running under BASIC.SYSTEM).  This may be sufficient for the majority of
custom character set requirements, but isn't a general solution.

One major disadvantage is that your text output is much slower.  The
other is that it doesn't support 80-column mode (i.e. double hi-res
grahpics), though there is probably an alternative product which can do
this (any takers?)

> I also remember when I had a European Apple //e which could switch
> between the british and american character set (i.e. CHR$(35) could look
> a pound or a hash symbol). Since both these character sets were in the
> same ROM, obviously, I wonder if it's not possible to put even more
> different sets in ROM, without much "bother".

The switch on the underside of the computer (below the keyboard) toggles
one bit of the address being fed into the ROM, thus doing a bulk switch
between two halves.  (It also switches the keyboard encoder ROM,
allowing two key layouts.  The two layouts are identical for the English
version, but differ for other languages.)

Another factor is the "primary" and "alternate" character sets, which
are selected with a soft-switch.  This affects another bit of the
address to the ROM.  Most 40-column software uses the primary character
set, and most 80-column software uses the alternate character set.

(The main difference is that the primary set has flashing characters
while the alternate set has inverse lowercase, and mousetext in the
enhanced IIe.)

One semi-popular modification to the IIe character generator ROM in New
Zealand was to replace the otherwise useless "international" half of the
ROM (English, with a pound symbol) with the standard Apple II character
set, disabling MouseText.  This improved the appearance of early IIe
programs such as DOS versions of AppleWriter, which used the "wrong" set
of alternate character set inverse uppercase letters - they got replaced
by MouseText in the enhanced IIe (and IIc and IIgs).


To support more than two character sets via a physical switch, you would
need two things:

1. A ROM with greater capacity, jury rigged into the existing ROM
socket.  For the American IIe, the video ROM is 4KB (24 pins, 2732
equivalent), while the international IIe has an 8KB ROM (28 pins, 2764
equivalent).  You could enlarge the international one without any major
hacks, because the next two sizes (27128 = 16KB and 27C256 = 32KB) are
also 28 pin chips.  The American IIe would require more of a hack to get
a ROM with more pins into the existing socket.

2. A switch of some kind to select the desired character set (possibly
multiple switches, or an n-bit selector).

> You know, like the GS has.

The IIgs video ROM is embedded within the Mega II chip.  It has lots of
character sets that are selected in software by writing to a soft-switch
that sets the high order bits on the appropriate ROM area (within the
Mega II's video circuitry).

> As an alternative, theoretically it would be possible to change the ROMs
> on an Apple II emulator.

Sure - no problem, as long as the emulator actually generates a video
image that matches the Apple II, complete with the character set.  (I
haven't used many emulators, but I imagine some low-end PC ones might
just use the PC's text mode.)

If the emulator has been designed well, the character set may just be a
binary image file of the ROM, or at least parts of it (there probably
isn't much point trying to duplicate the 1:1 mapping of Hi-res graphics
mode, or the patterns used to generate Lo-res graphics).

-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand