I've always wondered what the lowercase/shiftkey modification is. Obviously it adds lowercase characters to the otherwise uppercase Apple II, but how does it relate to my II+ clone? Let me explain.
My clone keyboard (partly pictured below) has a lockable pushbutton switch with a red LED in place of the regular "Power" light. In normal 40 column mode nothing happens when you press it, but in 80-column mode (Videx Videoterm card) I get lowercase letters when it's pressed down, and to get uppercase you use the SHIFT key.
Do I in essence already have that lowercase modification, or is it something different ?
You don't need the Apple II and II+ Shift-Key Modification because it appears that your Apple II+ clone already has a keyboard capable of generating lower case characters. You also don't need special software to handle the shift-key modification because your keyboard generates lower case characters directly. The ROM in the clone may also have a patch to allow lower case to be typed in Applesoft BASIC. I also assume that your clone can display lower case characters in text mode which the Apple II and Apple II+ cannot without more modifications.
That's great to hear about my clone keyboard! I always wanted a real II+, but then this clone keyboard appears to be more useful in this regard!
I read the link you posted above and think I understand a bit more now together with your explanation. So the ROM you're referring to -is it the A5 position 2513 (2716 in my clone) character generator ROM on the motherboard, or a ROM that goes on the keyboard's PCB?
I've never seen any lower case characters in 40-character mode except for programs which display them as graphic characters (obvious to see as they scroll very slowly). I faintly recall some 40-column word processing software back in the day which used this, but can't remember how I accessed upper/lower characters. Perhaps it was the same way as with 80-column characters (pressing down the red LED "POWER" button, then using SHIFT for uppercase and everything else as lower-case). It all got me curious and I will have to try this out.
I believe my A5 character generator ROM is standard, but will replacing/reprogramming it with one of the lowercase ROMs give me lower/uppercase characters in normal 40-column mode (in conjunction with the shift-key modification Iapparently already have) or can it only be accessed in specific software? I found a PDF instructions file for the Videx lowercase chip over at Asimov, and that seems to be the way it works, but it would be interesting to try out. Obviously these are no longer purchaseable, but have the ROMs been uploaded anywhere? I believe AE also had a similar ROM chip for sale. I have an EPROM programmer which can handle 2716 EPROMs fine, and I understand the use of a 2513 vs. my 2716 is just a matter of different pinouts (I recall some DIY adapters for this at the time) and not the actual ROM content data which should be compatible with either, right?
The F8 ROM (F800.FFFF) in the Apple II and Apple II+ has a bit of code at address FD7E (CAPST) that converts lower case input from the keyboard to upper case. So even with a keyboard that has lower case capability, the routines in original Apple II and II+ ROMs convert lower case to upper case. Some clones changed the F8 ROM routine slightly so that lower case does not get converted to upper case.
I believe that the A5 character generator ROM is mostly how you describe it for outputting lower case characters in TEXT screen mode. To test this, on an unmodified Apple II and Apple II+, the following AppleSoft BASIC code should output an exclamation point: !
?CHR$(97)
On later model Apple IIs, and maybe your clone it should output a lower case A: a
I've tested the code and it outputs an exclamantion mark (!), so apparently it's an unmodified F8 ROM.
But I'm still wondering what the deal is with that "lowercase ROM" from Videx, AE (and probably others as well). I assume it was designed for original Apple II computers, so without that modified F8 ROM, what exactly does it do?
So it appears like it won't display lowercase characters while in BASIC (or machine code); at least not in a standard Apple II/II+, but does it then perhaps become enabled when called upon in software, so that for instance 40-column word processing software which originally used a (slow to display) graphic upper/lowercase font then instead used the ROM-font which would give a much faster display response?
Has anyone reading ever installed a lowercase ROM in their II/II+ and can give a firsthand explanation on how it's used?
.... trying to find more info on the subject I read (among many places) what Wikipedia has to say on lowercase text on the Apple II+, but it only refers to 80 column mode. And as far as I remember, those characters are all contained within one of the three EPROMs (at least on my Videx Videoterm clone) 80-column card itself.
So it puzzles me as to when the 40-column lowercase character are accessed (being a replacement for the motherboard character generator ROM), or have I completely misunderstood and the lowercase ROM has never been for replacing the motherboard character generator ROM as I first assumed?
Let me try to clarify, there are two different ROMs:
1. the character ROM is the TEXT mode bit patterns for characters on the display: the font!
The test ?CHR$(97) is for the character ROM (TEXT display.) You were posting about the A5 (position of ROM on the motherboard) of the character ROM -- this is not 6502 code, it is the bit patterns for putting the characters on the TEXT mode screen. So, on an unmodifed Apple II and II+, lower case in TEXT mode is displayed as symbol characters, (ie. a is displayed as !) -- repeated bit patterns from the character ROM. There are postings about swapping out the character ROM for other "fonts" of which some have lower case.
2. the monitor ROM is mostly programs/routines: 6502 code that makes the Apple II operate: the code!
The F800.FFFF ROM ("F8" is NOT the position on the motherboard, it is the high byte of the memory address where the monitor program starts: F8xx.) You can easily test the CAPST code by typing from the monitor or in AppleSoft BASIC. The code converts lower case typed from the keyboard to upper case. Try with the CAPS lock on and off with your clone keyboard. On an unmodified Apple F8 ROM, all letters that you type should be output in upper case -- for compatability this is good, but for typing lower case from AppleSoft BASIC this is annoying. Word processoring programs shouldn't have this problem becauase they use their own keyboard input routine for typing and avoid the monitor's CAPST code.
One thing I haven't seen on this thread is a mention of the "one wire shift key mod". Some older Apple II software depends on this for lower case input, as it was written for the stock Apple ][ or ][+ which did not have provision in the keyboard for lower case input. The one wire mod runs a wire from the shift key(s) to PB0 on the game port. Note that this is contrary to the way a //e is built (or //c) which one of the Apple keys is wired to PB0.
Also I don't think I saw mention any comments about the monitor ROM input routines on the "Enhanced" //e or //c allowing for lower case. The only real downside to modifying the ROM routies for some older II software is that there are a few copy protection routines which do a checksum of the ROM and will refuse to run if it has been modified because they are trying to avoid someone using something like The Freeze's modified F8 ROM for breaking software. That software often wouldn't run on clones or newer Apple II models due to that. Sometimes cracked versions would fix that, although they often introduced their own bugs.
Thanks for clearing things up the myths and mysteries surrounding the Apple II lowercase modifications and abilities.
The confusion (at least for me) arises out of the 80's magazine ads such as AE's lowercase chip and likewise Videx' lowercase chip replacements where it appears you instantly see (standard 40-column mode) lowercase characters on the screen by replacing the A5 position ROM on the motherboard next to the keyboard connector, but not so from what I've learnt here.
The exception being in 80-column mode where you indeed see lowercase characters all the time, and it acts like a modern computer (with the shift-key modification, or in my case with the clone keyboard, the "Power" key pressed down to initiate lower case mode).
OK, so reading your replies and other similar discussions in this forum I conclude that:
a) replacing the standard A5 "character generator" EPROM with a lowercase EPROM won't make any noticeable difference (at first). Typing something in Applesoft BASIC (or Integer as well I assume; mine is the Autostart ROM) or in the monitor (CALL-151) will still show everything in UPPERCASE, regardless of my lowercase "Power" key pressed down or not
b) however, certain software was made to actually take advantage of the lowercase characters now available in the new ROM. I'm guessing that without the replacement lowercase character generator ROM they would display everything in uppercase, or a software generated font would be used instead?
c) you can get lowercase characters in Applesoft/Integer BASIC and monitor modes, but that demands some modified code in one of the motherboard ROMs (the leftmost ROM in my II+ clone).
Is that a correct summary?
I did a little test with my II+ clone, entering and running the following code found in this forum discussion:
10 FOR X=1 TO 25520 PRINT CHR$(X);30 NEXT X
On my II+ clone I was presented with just uppercase letters.
I should probably just try to burn an EPROM with one of the "lowercase ROM" binaries found somewhere and see what happens if I use a word-processer such as Apple Writer which has been mentioned in conjuction with those ads.
If a modified F8-ROM (position F3) is installed as you describe above (and of course a lowercase character generator (position A5) and the lowercase modification/clone keyboard lowercase "power" key pressed down), when do the lower case characters have any practical use? Will commands in BASIC/monitor/DOS only be accepted in UPPERCASE (i.e. "CATALOG" and not "catalog" or "Catalog") or can they be used in programming for display purposes, such as:
10 PRINT "Hello, I can display both UPPERCASE and lowercase characters."
20 END
If so I'm guessing it would be great for the person writing those program listings, but not if given to someone else (without a lowercase ROM replacement)?
If you burn a 2716 type EPROM with one of the lower case images such as the Dan Paymar or other similar ones you should be able to see lower case on your ][+ clone.
One thing though, the //e uses a different size EPROM, one twice as large, so for the //e you need a 2732 type EPROM. And another weird thing is the bits are backwards between a ][+ and //e how they are stored in the image. I wrote a utility (in Perl using Perl-Gtk, runs on modern OSes like Linux, probably MacOS and maybe even Windows, although I have no way to try that since I don't have Windows) to display the ROM images so you can see what they will look like.
I've been planning on writing an editor to allow making different fonts. The code is on my github (see the github thread here for the link or ask me and I will send it to you). I also am planning on building a mod for a //e using a higher density EPROM (like a 27512 type) to allow switchable fonts. The switching would be done by the annunciator AN0-AN3 outputs on the game port. Something similar could be done for a ][+. One of these days I will get around to finishing those up.
https://www.applefritter.com/comment/56141#comment-56141
Print all 256 characters ...
10 TEXT : HOME : VTAB 8:T = 4020 FOR Y = 1 TO 8: PRINT30 LET A = PEEK (41) * 25640 LET A = PEEK (T) + A - 550 FOR I = 9 TO T: POKE A + I,C60 LET C = C + 1: NEXT I,Y
RUN
I wanted to give this a go with my II+ clone, so I burnt an empty 2716 with the Videx lowercase chip BIN file, but look at how it came out on the screen! Looks like the left side vertical line of each character is missing! This surely can't be right, can it? Does it look familiar to anyone else using it ?
20200129-140754_IMG_4560.jpg
Putting the original character generator ROM back in gave me back the normal font, so it must be the ROM contents and not a hardware issue with my machine.
I see the Dan Paymar lowercase ROM is available there as well (same directory as the link above) but read somewhere about various issues with it, so I decided to try the Videx out first. There's also the AE lowercase ROM, but there's no BIN file available for it (EDIT: just found out there's no BIN file available for the Dan Paymar EPROM either).
Suggestions/comments?
I think that Videx image is for use in their 80 column card, it may not be in the right format for the ][+ CHARGEN ROM.
I guess if worst comes to worst I can yank the chip out of one of my ][+ units and read it with my Minipro TL866CS burner and make a .bin image. Before I do that I need to look and see if I can find an image already on disk somewhere. And maybe this is the impetus I need to get around to creating the font editor program I've been planning to create.
Hmmm... yes, perhaps whoever uploaded it mixed it up with one of their 80-column ROMs (although the documentation in the same folder refers to a char-gen ROM replacement (40 columns). I see various "lowercase ROM" BIN files in the different "Apple 2 ROM" downloads in the usual FTP locations but I have no idea which ROMs these are: AE, Videx, Dan Paymar, Pigfont or something else.
Thanks. That's nice of you. Is that the Videx 40-column lowercase ROM you have?
You've got the same EPROM programmer as me! From what I hear the replacement model can't handle the 21.5V programming voltages that 2716 chips need, so we better keep this one!
I also have an Ap-64 EPROM programmer card for my II+. I haven't tried it since I recently took my II+ clone out of storage (more than 20 years), but the "PR#slot" command brings up its menu, so at appears to work.
UPDATE: So I've just burnt another lower case EPROM to try out, the Apple II+ Lowercase character generator -2716 over at Reactive Micro. Alas with the exact same result as previously (the Videx lower case ROM) mangled font so I assume these are the same files. And no lower case characters to see when running one of the BASIC program listings for displaying all characters. And yes -I also tried to see if it made any difference when pressing down my upper/lower case "Power button" key on my clone keyboard, but the result was exactly the same.
I see the same directory at Reactive micro has a "Pig font character generator -2716" file which I haven't tried yet, so I'll see if I can erase an EPROM and give that a go as well.
UPDATE 2: I went ahead with the aboev (Pig font) and like the Videx lowercase ROM this too is a disaster and there's no sign of any lowercase characters at all with that character test program. Here's what it looks like :
pigfont 40 column lowercase test.jpg
I displayed the above (and my previous screenshot -using the Videx lowercase generator ROM) using the following BASIC listing:
10 FOR X=1 TO 25520 PRINT CHR$(X);30 NEXT X
I'll give the BASIC listing in posting #11 above a go as well, but can't say I expect any new findings (although I'm curious and could be wrong ;-) ).
What does all this mean?
Are some II+ computers not compatible with a 40-column lowercase ROM replacement? Or are the downloaded BIN files somehow messed up ?
I don't know where the image for the lower case EPROMs I have came from. I've been using the same one for, well since 1981 or 1982.
Yeah, the TL866CS I have works great. Other people complain that they can't get it to do a lot of chips that I've sucessfully programmed. I'm not sure why, but apparently some of the Windows software that comes with it has issues. Some people report that after they updated the firmware or the software they can't burn some older chips anymore. I don't know about all that, as I don't have Windows to try it with. I did have to update my firmware once to get it to work. I used the Open Source software to do that, and I also use the Open Source software to burn chips. So far it has worked well for me.
Is that with a II+ as well? Does it display (in 40 column mode) the usual UPPERCASE characters as before, and in addition you get new lowercase characters?
I've only programmed 80s/90s era chips (2716, 2732, 2764 etc.) with it on my Mac (booting into Windows using Bootcamp) and I've had no issues with it, unlike others apparently have. But I think that might be with larger, more modern chips.
In any case the TL-866CS works for me and my use, and without costing a fortune!
I've done some more research into the lowercase ROM subject and added some more info to my previous posting since you replied (as it's possible to edit postings now), but here's some additional info as well:
I ran the character display listing from posting #11 by Mmphosis, with first the standard character generator ROM, then the Pig font lowercase ROM....
First, the standard character generator ROM:
Standard CHAR-GEN ROM.jpg
Next is the Pig-font lowercase character ROM :
Pigfont lower case CHAR-GEN ROM.jpg
From a few online searches, it looks like the ROM chip at location A5 on the motherboard, the 2513 character generator, has only 6 bits of input. I believe this means that it only generates 5 x 7 bit patterns for sixty four characters: symbol characters (punctuation and number) and upper case letters only. The 64 characters get repeated for control characters, lower case, inverse, and flashing modes. From page 96 of the reference manual:
If the current area on the screen is to be a text character, then the video generator will route the lower six bits of the data to a type 2513 character generator at location A5. The seven rows in each character are scanned by the VA, VB, and VC signals, and the output of the character generator is serialized into a stream of dots by a 74166 at location A3. This bit stream is routed to an exclusive-OR gate, where it is inverted if the high bit of the data byte is off and either the sixth bit is low or the 555 timer at location B3 is high. The produces inverse and flashing character. The text bit stream is then sent to the video selector/multiplexer.
I also found this PDF which may be of interest:
https://tinaja.com/glib/Kilobaud-Lower_Case_Apple_pt1.pdf
If I Remember Correctly, some Apple II plus clones had modifications, but your clone may not which is fine -- it means your clone works like an original Apple II plus. Although, I think your clone keyboard can do lower case -- you just need a way to display lower case. Here is a test program to show the key codes, it reads the keyboard directly from memory...
100 PRINT "KEY CODES"110 FOR I = 0 TO 1 STEP 0120 LET K = PEEK (49152)130 IF K < 127 THEN NEXT140 LET I = PEEK (49168) * 0150 LET K = K - 128160 LET I = K = 27 OR K = 13170 PRINT K" ";180 IF K < 32 THEN PRINT "^";190 IF K < 32 THEN K = K + 64200 PRINT CHR$ (K)" ";210 IF K < 96 THEN NEXT : END220 PRINT "(LOWER CASE ";230 PRINT CHR$ (K - 32)") ";240 NEXT
I put together a quick and dirty project on GitHub to easily create and edit the character sets in an Apple ][ character generator ROM - later Rev MB only . Doesn't work with the 2513 ROM equipped MBs. There is also a pre-made ROM image that matches the lower-case characters from the //e (with proper descenders). I never liked the lower case characters in the Dan Paymar ROM.
https://github.com/dschmenk/Apple2CharGen
Dave...
Very interesting! I've got to try this (although at the moment my II+ clone is partly in pieces awaiting some components for a final repair attempt in order to get colour back). I haven't gotten round to trying out the BASIC program for testing out lower-/uppercase keys either, which was posted in one of the replies a while back. It should be interesting to see if I can get to use lowercase characters in 40 column mode.
I had a look at the Github link above but am left a little confused. Is the file named "chargen-lc.bin" the one to burn into a blank 2716 EPROM and replace with the existing character generator EPROM on the main board?
I'm still a little confused about why both those previous EPROM files I tried earlier (see above postings' photos) both looked terrible and in my opinion are useless. Are they supposed to look that bad, are they intended for some other setups than mine, or have I just misunderstood the whole thing? I expected uppercase characters to look as before, but with the addition of lowercase being available.
So I'm curious about the EPROM data you uploaded, and will hopefully get to it in the not too distant future :-)
I've burnt a 2716 EPROM with the Apple2CharGen upload at Github by Resman (using the "chargen-lc.bin" file within the downloa) but the results were very similar to the screenshots I've posted earlier in this thread. Not very pretty in other words.
While at it I also tried pressing the upper/lowercase switch on my Japanese clone keyboard (a 2-position switch with an LED in place of the "power" light) but it made no difference. No sign of lowercase characters. I also tried holding down the SHIFT key alongside normal characters, with and without the lower/upper button switched on.
So the conclusion must be that this II+ clone won't work with 40 column lowercase ROMs, so I'll stick to lower/uppercase in 80 column mode where it works great. Does this ROM work as intended with an original Apple II/II+?
I've not investigated the Apple II character ROMs in any detail, but according to the Apple II Reference Manual it (or at least the earlier models) uses a 2513, just like the Apple I. This is only 5 bits wide, a ""64×8×5 Character Generator." I've verified on the schematics from that reference manual that the pinout looks right: 5 bits of output, 6 bits of character address input from the video RAM, and 3 bits of character row address input from the video logic. I used a paper copy; this may be hard to see in the online version.
However, all the "dumps" of this ROM I've seen are in a format rather different from what one might expect (and much larger than the contents of the actual ROM): an array of 128 8-byte values. My guess is that these are designed for use in emulators and this format makes them much easier to use there.
I've documented what I know about this in my personal notes here., along with a link to a Signetics 2513 data sheet.
Oh, and here's an easy program to display all the screen codes, to help determine the size and contents of your character ROM. It pokes the codes directly into screen memory to avoid any issues with BASIC's interpretation of ASCII codes.
The 5th and 6th lines will be the entire character ROM on an unmodified Apple II or II+, and the 7th and 8th lines will be a repeat of that. On a IIe or IIc, or (I assume) a II+ with a lower-case modification for video output, the 8th line will contain lower-case characters instead.