[comp.sys.apple] Lower case keyboard

brianw@microsoft.UUCP (Brian Willoughby) (05/22/89)

In article <621@greens.UUCP> matthew@sunpix.UUCP ( Sun Visualization Products) writes:
[details of Lower Case hack (adaptable to Dvorak) deleted]
>
>Now what did I use this for?  To add lowercase and shift-lock capabilities to the
>Apple ][plus keyboard.
>-- 
>Matthew Lee Stier                         |
>Sun Microsystems ---  RTP, NC  27709-3447 |        "Wisconsin   Escapee"
>uucp: { sun, mcnc!rti }!sunpix!matthew    |

I assume that you had the older keyboard for the Apple II Plus? I made a
modification to a friend's II Plus which added Lower Case by only adding
a DPDT switch. On the newer (relatively) II Plus units, the keyboard
actually had a dotted outline (screen printed on the circuit board) of a
DPDT switch which could be soldered directly to the keyboard pcboard.
Then, by cutting two bow-tie options, and solder-bridging two additional
normally open options, the Apple supplied keyboard generated Lower Case
and used the added DPDT switch as a caps lock key. I was hard to find a
right angle PC mount DPDT switch to fit, however. I made this mod after
adding a new Video ROM to his Plus which allowed lower case characters on
the Text screen.

Being a late-comer to the II Plus world, I've always wondered why the
famed "shift-key mod" was so universally popular, when this mod adds
lower case without running special code to check the state of Button 3.

The drawbacks of this are:
1) You might not have this version of the keyboard.
2) There are still some awkwardly placed characters (i.e. M & [)
3) You probably will want to modify the Monitor ROM so that it doesn't
	convert all lower case characters to upper (this can be 
	accomplished by burning a new 2716 with only one byte changed.
	The "AND #$DF" in the GETLIN routine must be changed to
	"AND #$FF" to defeat the up-shift). Any program which directly
	reads the keyboard will work without the custom Monitor ROM.

Brian Willoughby                        ...!uw-beaver!microsoft!brianw
                or                      microsoft!brianw@uunet.UU.NET
                or just                 brianw@microsoft.UUCP

paul@athertn.Atherton.COM (Paul Sander) (05/23/89)

In article <5773@microsoft.UUCP>, brianw@microsoft.UUCP (Brian Willoughby) writes:
> In article <621@greens.UUCP> matthew@sunpix.UUCP ( Sun Visualization Products) writes:
> I assume that you had the older keyboard for the Apple II Plus? I made a
> modification to a friend's II Plus which added Lower Case by only adding
> a DPDT switch. On the newer (relatively) II Plus units, the keyboard
> actually had a dotted outline (screen printed on the circuit board) of a
> DPDT switch which could be soldered directly to the keyboard pcboard.
> Then, by cutting two bow-tie options, and solder-bridging two additional
> normally open options, the Apple supplied keyboard generated Lower Case
> and used the added DPDT switch as a caps lock key. I was hard to find a
> right angle PC mount DPDT switch to fit, however. I made this mod after
> adding a new Video ROM to his Plus which allowed lower case characters on
> the Text screen.

So THAT's what that stuff is for...  Neat trick.

> Being a late-comer to the II Plus world, I've always wondered why the
> famed "shift-key mod" was so universally popular, when this mod adds
> lower case without running special code to check the state of Button 3.

The reason for this was because the pre-Rev 7 keyboards had a keyboard
encoder that could not generate lower-case (and many other) characters.
The shift-key mod was a relatively easy patch that most hackers of the
day could manage, and it was widely supported.  Before 1980, this was
the only way of getting lower-case characters without replacing the
keyboard or buying or building a peripheral card of some sort that could
get the characters in.

> The drawbacks of this are:
> 1) You might not have this version of the keyboard.
> 2) There are still some awkwardly placed characters (i.e. M & [)
> 3) You probably will want to modify the Monitor ROM so that it doesn't
> 	convert all lower case characters to upper (this can be 
> 	accomplished by burning a new 2716 with only one byte changed.
> 	The "AND #$DF" in the GETLIN routine must be changed to
> 	"AND #$FF" to defeat the up-shift). Any program which directly
> 	reads the keyboard will work without the custom Monitor ROM.

A problem with this third point is that 2716s do not fit the Apple ][
Plus' ROM sockets.  (Well, they physically fit, but Apple's pinout is
non-standard.)  In order to pull this off, you need to build a special
jig that maps the signals properly.  There is the additional problem that
the location of the ROMs makes such a jig interfere with any expansion cards
plugged into slots 0 and 1 (which are usually filled).  The old ROM cards
(remember when Applesoft could be bought in ROM on a plug-in card?) could
be configured to work with 2716s, and those who still own them could
duplicate their ROMs with this patch, but Apple might take exception to
that.
-- 
Paul Sander        (408) 734-9822       | Do YOU get nervous when a
paul@Atherton.COM                       | sys{op,adm,prg,engr} says
{decwrl,sun,hplabs!hpda}!athertn!paul   | "oops..." ?

tomk@pro-grouch.UUCP (Tom Kelly) (05/23/89)

Network Comment: to #666 by pnet01!crash!uunet.uu.net!microsoft!brianw

Where can I get specific details about how to install the shift key mod as
described using a DPDT switch rather than the wire mod?

brianw@microsoft.UUCP (Brian Willoughby) (05/25/89)

>In article <5773@microsoft.UUCP>, brianw@microsoft.UUCP (Brian Willoughby) writes:
>> In article <621@greens.UUCP> matthew@sunpix.UUCP ( Sun Visualization Products) writes:
>> 3) You probably will want to modify the Monitor ROM so that it doesn't
>> 	convert all lower case characters to upper (this can be 
>> 	accomplished by burning a new 2716 with only one byte changed.
>> 	The "AND #$DF" in the GETLIN routine must be changed to
>> 	"AND #$FF" to defeat the up-shift). Any program which directly
>> 	reads the keyboard will work without the custom Monitor ROM.
>
>A problem with this third point is that 2716s do not fit the Apple ][
>Plus' ROM sockets.  (Well, they physically fit, but Apple's pinout is
>non-standard.)  In order to pull this off, you need to build a special
>jig that maps the signals properly.  There is the additional problem that
>the location of the ROMs makes such a jig interfere with any expansion cards
>plugged into slots 0 and 1 (which are usually filled).  The old ROM cards
>(remember when Applesoft could be bought in ROM on a plug-in card?) could
>be configured to work with 2716s, and those who still own them could
>duplicate their ROMs with this patch, but Apple might take exception to
>that.
>-- 
>Paul Sander        (408) 734-9822       | Do YOU get nervous when a
>paul@Atherton.COM                       | sys{op,adm,prg,engr} says
>{decwrl,sun,hplabs!hpda}!athertn!paul   | "oops..." ?

My clone was designed with a 2716, so nothing stopped me from using a
customized font editor to make several different character sets and
burn them into ROMs. In fact, the friend who I made the keyboard and
Video ROM mods for owned a genuine Apple II Plus! and I plugged a
standard 2716 into it! No jig, no problems. I had some reservations since
the Apple II Reference Manual schematics showed the 2315 Character ROM
pinouts were different. But when I checked the wiring on his II Plus, it
seems that Apple decided to follow more modern standards when they layed
out the Rev. 7 II Plus boards. I have a revision document for the
Reference Manual which shows the schematic changes (this was found in the
dusty corners of a used book store). My clone board required cutting the
grounded traces to A9 and A10 for my EPROM mod (see explaination below),
but the Apple II Plus board I looked at actually had option jumpers to
allow those two addresses to be sent to the existing ROM socket. I wonder
where these Text Video options (and the keyboard lower-case shift-lock
options) are documented?

For those of you who may have never examined the Video Character ROM
circuit, the standard Apple ROM generates 64 characters which make up
256 combinations after INVERSE and FLASH are added. i.e. D0 through D6 of
the Video bus are sent to A3 - A8 of the Video ROM, and D7 and D8
activate gates which enable INVERSE (00), FLASH (01) or NORMAL (1x) by
inverting ROM outputs. The same character (modulo 64) is always output by
the ROM. On the II Plus, you could optionally connect D7,8 to A9,10 to
get *different* characters for each of the 256 text screen values.
Commonly, $E0-FF are replaced by lower case (NORMAL). The early //e's
added inverse lower case at $60-7F, but had two versions (alternate
charset) of the Video ROM to support FLASHing numbers for old Apple
programs. The //c introduced Mouse Characters at $40-5F, since they
didn't need to be compatible when using the alternate character set
anyway. Here's where I invented a neat trick - since $80-9F are valid
byte values which can be stored in Text Screen memory (but usually aren't
since COUT doesn't print control characters), I decided that I would use
$80-9F on my II+ for my own custom characters. I have one Video ROM which
displays inverse lower case for these character codes, but can only be
used from my custom software. Now, get this: would you believe that
Wizardry, a popular Pascal-based role-playing game, actually stored
$80-9F into text memory instead of $C0-DF? This means that the writers
expected that $80 would generate the same upper-case normal character as
$C0 (remember the modulo 64). It was so annoying (I played Wizardry a
lot), that I decided to make a //e style alternate character set. Now I
have a 2732 with AN1 connected to A11 to select which character set I
see (AN1 is conveniently preset by the AutoStart ROM to the proper logic
level I needed during power-up).

BTW, Thanks Matthew for your post, it reminded me of the good old days
when I was souping up everybodies II Plus. I'd almost forgotten that
I've made these mods on three Apples, and learned a lot in the process.

Brian Willoughby                        ...!uw-beaver!microsoft!brianw
                or                      microsoft!brianw@uunet.UU.NET
                or just                 brianw@microsoft.UUCP

tomk@pro-grouch.UUCP (Tom Kelly) (05/25/89)

Network Comment: to #717 by pnet01!crash!hplabs.hp.com!pyramid!athertn!paul

One can just use IC sockets as the required jig.  You cut a few pins and
jumper others togather.
The process is described in Hardcore Computist no. 6 pages 14 through 16 
and 28.

paul@athertn.Atherton.COM (Paul Sander) (05/26/89)

In article <5810@microsoft.UUCP>, brianw@microsoft.UUCP (Brian Willoughby) writes:
> >I write
> >> In article <621@greens.UUCP> matthew@sunpix.UUCP ( Sun Visualization Products) writes:
> >> 3) You probably will want to modify the Monitor ROM so that it doesn't
> >> 	convert all lower case characters to upper (this can be 
> >> 	accomplished by burning a new 2716 with only one byte changed.
> >> 	The "AND #$DF" in the GETLIN routine must be changed to
> >> 	"AND #$FF" to defeat the up-shift). Any program which directly
> >> 	reads the keyboard will work without the custom Monitor ROM.
> >
> >A problem with this third point is that 2716s do not fit the Apple ][
> >Plus' ROM sockets.  (Well, they physically fit, but Apple's pinout is
> >non-standard.)  In order to pull this off, you need to build a special
> >jig that maps the signals properly.  There is the additional problem that
> >the location of the ROMs makes such a jig interfere with any expansion cards
> >plugged into slots 0 and 1 (which are usually filled).  The old ROM cards
> >(remember when Applesoft could be bought in ROM on a plug-in card?) could
> >be configured to work with 2716s, and those who still own them could
> >duplicate their ROMs with this patch, but Apple might take exception to
> >that.
> >-- 
> My clone was designed with a 2716, so nothing stopped me from using a
> customized font editor to make several different character sets and
> burn them into ROMs. In fact, the friend who I made the keyboard and
> Video ROM mods for owned a genuine Apple II Plus! and I plugged a
> standard 2716 into it! No jig, no problems. I had some reservations since
> the Apple II Reference Manual schematics showed the 2315 Character ROM
> pinouts were different. But when I checked the wiring on his II Plus, it
> seems that Apple decided to follow more modern standards when they layed
> out the Rev. 7 II Plus boards.
> [continues on about how to wire the character generator to produce
>  nifty lower-case]

You bring up a good point, which is that the character generator ROM can
be swapped out of Rev 7 motherboards and replaced with 2716s without
any sort of magic.  However, my statement about the monitor ROMs is still
correct; their pinouts never changed throughout the entire lifetime of
the (original) Apple ][ and ][ Plus.  To replace them with 2716 does
require the use of a special jig.  Take my word for it, I've done it.
-- 
Paul Sander        (408) 734-9822       | Do YOU get nervous when a
paul@Atherton.COM                       | sys{op,adm,prg,engr} says
{decwrl,sun,pyramid}!athertn!paul       | "oops..." ?