[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: II+ vs IIe Char Gen PROMs and Shift-key mods-- LC $F8 PROM mod
David Wilson writes ...
>
> Rubywand <rubywand@swbell.net> writes:
> >Not as far as I know. What you do is $EA out the code which does the checking.
> >The code starts at address $FD7E in both the old and Autostart Apple II+'s
> >(which should be address $57E in a 2K $F8 PROM) ...
>
> >FD7E- C9 E0 compare the byte to the lowest ASCII value for a lower case char
> >FD80- 90 02 if the byte is less (not lower case) hop over the next two inst bytes
> >FD82- 29 DF if the byte is lower case AND it with #$DF to force upper case
>
> The only problem with this change is that the ROMs in a ][ or ][+ are not
> pin-compatible with EPROMs of the same size. Thus, to make this change you
> would need to wire an adapter between the EPROM and the ROM socket to sort out
> the chip select polarities.
....
True. The 2516 and 2716 2k x 8 PROMs come close.
One problem is that the ROMs have three enable/select pins; the PROM has two.
Another problem is that one of the enables (pin 18) is Select= Hi. Both of the
PROM enables are Select= Lo.
Fortunately, the Apple II uses only two select lines; so, the main thing you
need to add to an adaptor is an inverter-- like a 74LS04 or any other inverting
gate.
Something like this should work ...
ROM socket (top view)
__ _____
|__| |--24--- to PROM socket pins 24 & 21, and 74LS04 pin 14
|
|--23--- to PROM socket pin 23
|
|--22--- to PROM socket pin 22
|
|--21--- (no connect)
|
|--20--- to PROM socket pin 20
|
|--19--- to PROM socket pin 19
|
|--18--- to 74LS04 pin 1 <74LS04 pin 2 goes to PROM socket pin 18>
|
|--17--- 17 and other pins go to corresponding pins on PROM socket
|
...
___________|
------------------ pin 12 goes to PROM socket pin 12 and 74LS04 pin 7
74LS04 (top view)
__ __
| |_| |
--1--| o |--14--
| |
--2--| |--
... ...
--7--| |--
|_______|
Probably, a II+ will have the Language Card plugged into Slot 0. With the LC
plugged in the $F8 ROM used is going to be the one on the LC; so, this is where you
would swap in the adaptor with the PROM.
An alternative to an adaptor would be to mod the ROM socket connections on the
LC:
o- a 74LS04 IC would be dead-bug mounted to the LC
near the ROM socket using epoxy.
o- 74LS04 pin 14 goes to ROM socket pin 24
o- 74LS04 pin 7 goes to ROM socket pin 12
o- any trace to ROM socket pin 21 would be cut and
ROM socket pin 21 would be jumpered to ROM socket pin 24
o- any trace to ROM socket pin 18 would be cut and
ROM socket pin 18 would be connected to 74LS04 pin 2
o- pin 1 of the 74LS04 goes to the trace which used to go to ROM socket pin 18
After these mods, the PROM would be swapped in for the ROM.
Let me know if you see any screw-ups in the above.
Our setup is different because we did several mods early (before getting a
Language Card) and ended up with the PROM on the main board with an option to switch
to the ROM on the LC.
The reason for being able to swap in the regular ROM is that we made many
changes to the $F8 ROM code and wanted to get around ROM checks which a few old copy
protected programs do upon booting. (I don't know if the minor mod to enable lower
case input will get past all such ROM checks-- it certainly would not pass a check
sum test.) Anyway, the checks are fairly rare.
Hmmm-- what about this code substituttion instead of just NOPing everything:
FD7E- C9 C0
FD80- 90 02
FD82- 29 FF
It diddles things around so that the checksum is right and the AND #$FF leaves
the input alone whatever the branch at $FD80 decides. (According to the ROM code
listing, there are no branches which go into the middle of this code and flags
status doesn't matter because the code quickly does another compare operation after
saving the input.)
Rubywand