Showing posts with label Apple II. Show all posts
Showing posts with label Apple II. Show all posts

Friday, August 13, 2021

Digital Joysticks and the Apple II

The Apple II had thousands of games released during its long life-span, and from its first game, Breakout (later known as "Brick Out" and "Little Brick Out"), many of them used analog controllers like paddles and joysticks.  Other home computers and consoles used digital joysticks, which were often better for single-screen games than analog devices.  During the Apple II's commercial life, there were a few attempts to bring digital joystick support to the computer.  When it became a retro-computing machine, there have been a few more homebrew hardware efforts to bring digital input to older games.  This article will give an overview of attempts both old and new.

Monday, May 31, 2021

The Computer in Monochrome - Practical Advice for Using for a Macintosh SE


The Graphical User Interface is something computer users have taken for granted for twenty-five years since Windows 95 computers became ubiquitous.  Of course, to owners of any Macintosh computer, the GUI was something they had experienced since day one.  The original Macintosh was designed to be a low-cost productivity computer.  It eventually evolved into a fully general purpose computer, but the systems were sufficiently popular even in the earliest days to enjoy a wide variety of software, including games.  I recently acquired an earlier example of the line, a Macintosh SE, and decided it was worth getting it up and running.  In that process I will be sharing some of the issues I have encountered and solutions.

Saturday, April 17, 2021

Floppy Drives - Single Density and Double Density, FM, MFM & GCR

In the IBM PC world, there is no such thing as "single density" floppy drives.  Floppy drives started out as double density and later matured into high density and even extra high density.  Those of us who grew up in a PC world had no need to know about "single density".  But where did single density come from and which systems used it?  Moreover, what happens when system builders try to stretch single density reading into double-density capacities?  The truth is a bit more complex than you might think.

Monday, February 15, 2021

The .woz Format - Accurate Preservation of Apple II Floppy Disks

The need for proper preservation of floppy-based software cannot be understated.  Floppy disks were not designed to store data for forty plus years, but for the oldest home computer systems like the Apple II, most of its software is at least thirty years old.  But it is not preservation merely to dump a copy of a game which was pirated in the day.  Those games usually have "cracktros" which do not represent the developer's intended presentation of the game, may have cut out elements of the original game to save space or may include corrupt data in them.  Ideally one should have a proper image of original disks with all data preserved.  Of course, from almost the earliest days of the Apple II's Disk II drive, copy protection schemes were implemented on commercial software to prevent casual disk copying.  True preservation requires preserving them as well, and that requires emulation to become more accurate than it needed to be for just sector based .dsk images.  In this blog article I will describe in as much detail as I can how the Disk II Floppy Drive works, how it is different from floppy drives for other systems, how data is stored on disk, the benefits of the .woz format and how .woz images are made.

Friday, January 22, 2021

wDrive v. Floppy Emu - Comparison of the Best Apple II Disk Emulators

The 5.25" floppy disk was the principal medium of program storage for the Apple II series of computers.  Thousands of software titles were written specifically for the Apple II's Disk II drive and its successors and clones.  Using floppy disks, and more specifically disk images, is essential to using an Apple II computer.  To use a disk image is to either write the image back to a disk, a cumbersome and sometimes unreliable process, or use a disk emulator.  In a recent past blog article, I have written about the Floppy Emu, a very capable Disk II drive emulator.  I have recently acquired the wDrive, another emulator device which can simulate a Disk II drive.  While similar to the Floppy Emu in many ways, the wDrive has its own benefits and quirks, and here I will compare the two hardware floppy emulators.  

Sunday, November 8, 2020

Review of Products Three for my Apple //e

A minimally-functional Apple //e requires very little in the form of upgrades.  Add an 64KiB memory expansion, a floppy disk controller card and a disk drive or two and you should be all set.  But a few upgrades can really improve the experience, and to allow my Apple //e to be the best Apple //e it can be, I purchased three modern upgrades for my newest vintage computer.  Here I will review each product, describe its features and caveats and indicate whether I recommend it.

Friday, November 6, 2020

Apple II - Classic Games and Resources

When I re-started my Apple II journey I wanted to share some of the knowledge I had acquired over the years and put into full service when I began to build my Apple //e system in October.  For me, an Apple //e is a gaming machine, and there are lots of great games for the system.  I will discuss some of them first, then give links to more information which I have found helpful for Apple II users.

Thursday, October 15, 2020

Running the Apple //e - Intermediate Topics

In the last blog entry I focused on the basics of how to get an Apple //e up and running.  In this entry I am going to focus on some of the more advanced issues that users may encounter with running software, programs and hardware on an Apple //e.

Monday, October 12, 2020

The Beginner's Guide to Running an Apple //e

The Apple II platform lasted a very long time.  The first Apple IIs were released in June of 1977 and the last Apple //e systems were last sold by Apple in November of 1993. No other non-PC compatible home computer had as long an official lifespan.  Unlike its early home computer competitors, Apple is still in business, still independent and still highly relevant to the consumer today.  Apple first entered the public consciousness with the Apple II and II Plus computers, and its Apple //e computers were many, many schoolchildren's first encounter with a computer. The Apple II was the first computer with some attention given to playing games, and over a fifteen year period thousands of games were released for it. There are several emulators for the system and some emulate the system to a very advanced degree, but the hardware is also fairly easy to use.  Here I am going to give a beginner's guide into using Apple //e hardware.

Saturday, September 12, 2020

Speak to Me! - Speech Synthesis with Early Home Video Games

When considering the evolution of video game audio, of the three components of audio, sound effects, music and speech, those components were introduced into video games in that order.  The earliest video games generated simple tones and noise to produce simple sound effects.  Music chips were well developed by the late 1970s, bringing a slightly more sophisticated method of sound generation to video game players.  Speech, which requires the utilization of more complex sounds to be intelligible, tended to be brought to home consoles and computers in the form of specialized speech chips.  In this article we will trace some of the lineages of speech in early video games.  

Sunday, October 16, 2016

Video Potpourri II

Sometimes, one needs to discuss related subjects that do not by themselves warrant a full blog entry.  Hence the video potpourri series, in which I can talk about aspects of display technology.

I.  Composite Artifact Color Emulation

Composite artifact color emulation has been around for a long time.  Unfortunately, in many cases it just isn't very good at trying to replicate the look of a composite monitor.  Simple schemes just assign a color arbitrarily to a group of two or four monochrome pixels.  Mainline SVN DOSBox tries to simulate CGA composite color as if it were a VGA mode.  The colors are reasonably accurate to the real IBM CGA cards, but the text color fringing is rather blocky.  There are custom builds that use filtering and 16-bit color to give a more subtle impression of the composite color, but it still looks much, much cleaner than the real image.  You can obtain a custom build with better composite color emulation here : http://www.vogons.org/viewtopic.php?f=41&t=12319&start=660#p501453


Sunday, September 18, 2016

Two Late Classic Apple II to PC Ports, Unalike in Dignity

Even though the Apple II was very long in its lifespan by the end of the 1980s, there was a fair bit of software still being released for it.  The Apple II was very strong in the educational market, computer labs across the United States had yet to upgrade to the PC platform.  The Apple II had many, many classic games.  Most of them were ported to the PC at some point, but by the end of the 1980s the number of A2-to-PC ports (that did not have the name Carmen Sandiego in the title) was dwindling.

Even so, two classics of the Apple II did make their way to the PC platform in the late 1980s and they are the subject of this blog entry.  The first is MECC's 1985 update of The Oregon Trail.  The second is Jordan Mechner's Prince of Persia, programmed on and released for the Apple IIe, IIc and IIgs in 1989.  MECC ported the Apple II version of The Oregon Trail to the IBM PC in 1988.  Mechner and Broderbund ported the Apple II version of Prince of Persia to the PC compatibles in 1990.

The Oregon Trail is the simpler game, in fact it was an update of an earlier version MECC made for the Apple II in 1980.  That version was mostly text-based and occasionally displayed simple wire-frame graphics and a little music.  Before personal computing, Oregon Trail was played on mainframes on a time-share basis.  But the 1985 Apple II version is undoubtedly the most popular version of the game.  The 1985 version requires 64KB of RAM on an Apple II.  This version was ported to the PC by MECC in 1988.  The PC port requires 512KB of RAM and at least a CGA card.

Prince of Persia is a spiritual successor to Mechner's Karateka, another big hit.  Both were published by Broderbund.  Prince of Persia takes the rotoscoped graphics and one on one combat of Karateka and combines them with running and jumping mechanics, obstacles, traps and triggers.  It requires 128KB of RAM and an Apple IIe capable of displaying double high resolution graphics, a IIc or a IIgs.  It only uses double high res graphics on the title screen and story text screens (four screens).  Mechner supervised the ports of the game to the IBM PC compatibles and the Amiga in 1990.  It supports CGA, Hercules, Tandy, EGA and VGA and a variety of sound cards and 512KB-640KB depending on the graphics mode.

When it came to porting these games to the PC, MECC did an outstanding job.  Broderbund and Mechner, not so much.


Monday, April 18, 2016

The Early Game Jukebox - Ultima III through Ultima VI

Did you know that you can play all music from Ultimas III-VI on their native platforms without creating a character?  Origin pioneered the use of a sound card add-on for music in its games, and for its early games it always had a method to play all the music in a game without having to get into it.  However, these methods are not always intuitive, so I will reveal how to listen to the music in each game.

First, I must discuss the Sweet Micro Systems Mockingboard.  The original Mockingboard was released in four varieties in 1982 :

Mockingboard Sound I - One AY-3-8910 chip
Mockingboard Speech I - One Votrax SC-01 Speech Chip
Mockingboard Sound/Speech I - One AY-3-8910 chip and one SC-01 Speech Chip
Mockingboard Sound II - Two AY-3-8910 chips

You must have a board with at least one AY chip to hear music in any Ultima game. The Ultima games do not use speech chips. Each AY chip gives you three voices.

Later Sweet Micro Systems re-released the Mockingboard line in 1984-85 as :

Mockingboard A - Two AY-3-8913 chips and and two sockets for Votrax SC-02/SSI-263 Speech Chips
Mockingboard C - Two AY-3-8913 chips and one SSI-263 Speech Chip and a socket for a second SSI-263.  The board is the same as the Mockingboard A.
Mockingboard D - An external box containing two AY-3-8913 chips and one SSI-263 Speech Chip controlled by an Apple //c serial port.  Not compatible with any games.
Mockingboard M - Two AY-3-8913 chips and one SSI-263 Speech Chip, no second socket but does include a mini-jack for audio, bundled with the Bank Street Music Writer.

They also released the "Mockingboard B", but that is not a card but a SSI-263 Speech Chip to upgrade a Mockingboard A.  

Musically, the Sound II is equivalent to the later Mockingboards, but the stereo may be reversed.


Wednesday, December 16, 2015

Analog Controllers in Consoles and Computers

A digital joystick is just four contact switches activated by pressing a directional instead of a button.  This includes the Intellivision's controller, which has sixteen discrete positions, and most console "joysticks".  An analog control allows for smoother movement instead of relying solely on the amount of time a directional has been pressed.  Originally, analog knobs or paddles were used with Pong and other ball and paddle games. Eventually the combination of two of these "paddles" with a common control became a joystick and achieved some popularity for racing and flight simulators.  Outside these pigeonholes, most of the popular games of the 70s and 80s used digital joysticks, trackballs and rotary spinners (the latter are used in the Breakout-derived Arkanoid).  Only in the mid-90s with the rise of first and third person 3D games did a compelling need for a general analog controller present itself.  In the blog post, I will discuss how analog controllers used to be used and how they are used today.

True analog controllers in the video game world use variable resistors.  The humble variable resistor, also called a potentiometer, has had a wide variety of applications.  You will see them at work in light switches, to change volume or temperature.  They were often used in video game controllers.

There are two ways in which analog control was implemented at the hardware level, and both involve potentiometers.  The most common way is to use the potentiometer as a variable resistor in a resistor/capacitor discharge network.  In this method, a capacitor is discharged then a port is read until the capacitor indicated it was recharged.  The time it took for the capacitor to charge gave the position of the potentiometer.  More resistance equals a longer charging time.  Only two wires are connected to the potentiometer in this case, one of the end terminals (to +5v) and the middle terminal is connected to the console.

The second method is to use the potentiometer as a voltage divider with a comparator.  In this method, the potentiometer's output voltage is compared to a voltage ramp, which is reset, and the time it takes for the voltages to become equal indicates the stick's position.  In this case, all three terminals of the potentiometer, one end to +5v, one end to GND and the middle terminal gives the signal to the console or computer.

Atari 2600 & 7800

The Atari 2600 usually came with a pair of paddle controllers.  Each paddle had a potentiometer connected to two terminals, making it function like a variable resistor.  Each controller port could support a pair of paddles but only one of any other type of controller.  Paddle games were the only official solution for four-player gaming.  The output line of these potentiometers is connected to the TIA chip.  The rating of these potentiometers is 1MOhm.  Each paddle had a single button, which shared the same line as the left or right joystick directional.  Button inputs are connected to the 6532 RIOT chip.

Interestingly, while not an analog controller the Keypad Controllers and their clones also make use of the potentiometer lines.  There are insufficient digital inputs on the 2600 controller port to read a 4x3 matrix.  What the 2600 does is to set the joystick inputs as outputs and send a signal through each of the four lines.  These correspond to each horizontal row of keypad keys.  One column is read via the joystick fire button input on the TIA and the other two columns are read through one of the paddle input lines with the assistance of a 4.7KOhm resistor.

The Atari 7800 is backwards compatible with the Atari 2600 and includes a TIA and 6532, but no 7800 games support analog controllers.

Apple II

The Apple II and II+ came with a 16-pin socket which could accept four paddle inputs.  These systems came with a pair of paddles with the Apple logo branded on them.  Like the Atari paddles, these operate as variable resistors.  They use 150KOhm potentiometers.   Soon someone figured out that you can pair two paddle inputs to make a joystick input.  Unfortunately, there were only three button inputs, making the use of two joysticks rare.  Typically a single joystick would only use the first two button inputs.

The Apple IIe kept the joystick socket but also added an external DE-9 port containing the lines necessary to support the four analog inputs and three digital inputs.  This port uses the same lines at the 16-pin socket, but it is easier to plug in and remove peripherals from the external port than the internal socket.  The Apple IIc removed the internal socket and required the joystick to share the port with a mouse, limiting the joystick to two analog and digital inputs.  For the IIe and IIc Apple released a joystick and paddles separately that use the DE-9 connector.  The Apple IIgs has the capabilities and connectors of the IIe but also supports a fourth digital input for four buttons.

Tandy Color Computer, IBM PC & Tandy 1000

The IBM PC uses a DA-15 gameport supporting four axes and four buttons.  The Tandy Color Computer and 1000 uses a pair of DIN-6 connectors, each supporting two axes and two buttons.  All of these computers use 100KOhm potentiometers, but the IBM standard wires them as variable resistors and the Tandy machines wire them as voltage dividers.  Like the Apple II, these interfaces use discrete circuitry instead of a custom chip.

Tandy's regular CoCo joystick uses one button and are non-self centering.  They are not regarded highly.  The Tandy Deluxe Joystick is self-centering, has two buttons and can be set to free-floating mode.  The IBM PCjr. joystick has the same features and look identical to the Tandy Deluxe Joystick, but has a different connector and is wired as a variable resistor.  Both joysticks hail from Kraft-designed joysticks, which were pretty much the standard for the early to mid 80s for the Apple II and IBM/Tandy.

See here for more discussion of issues relating to the IBM PC joystick : http://nerdlypleasures.blogspot.com/2014/03/wheres-my-digital-joystick.html

The Apple II usually runs at one speed and unless an accelerator is being used, the constant speed eliminates issues with reading from the joystick port.

Commodore VIC-20 & Commodore 64

The VIC-20 has one joystick port, so only one pair of paddles is supported.  The paddles are connected to the 6560 VIC chip, which provides video and audio.  Because the paddles are wired to the Atari standard, the buttons are handled by one of the 6522 VIA chips.

The C64 has two joystick ports, so two pairs of paddles are supported.  The paddles are connected to the 6581 SID chip, which also handles the audio for the computer.  The SID chip only has two analog potentiometer inputs, so the inputs from two pairs of paddles are multiplexed and read with the assistance of one of the 6526 CIA chips.  The CIA chip also handles button reading.

Commodore's paddles can be used with either system and they use a resistance value of 470KOhms.  Atari 2600 paddles are more common and usually work OK, indicating that Commodore's paddles are wired as variable resistors.

Atari 8-bit Computers and 5200

The Atari 400 and 800 computers could support four pairs of paddles using its four controller ports.  These are connected to the POKEY chip inside the system, which has eight analog input pins.   Super Breakout for the Atari 8-bit computers supports eight paddles used in a sequential fashion.  POKEY is also used for audio generation and other system functions including scanning the keyboard for pressed keys. The buttons are read by the 6520 PIA chip.  The 2600 paddles are used in these computers.

The Atari 5200 was noted for being the first system to come with an analog joystick.  The Atari 5200's joysticks manipulates a pair of potentiometers (not smaller than those found in paddles) and use a resistance value of 500KOhms.  The 4-port system could, as its name implies, support for of these joysticks.  The 2-port system could only support two joysticks.  No paddles were specifically made for the 5200.  There is no PIA chip in the 5200, so the joystick buttons are read by the GTIA chip.  The keypad buttons are read similarly to the keyboard keys in the 8-bit machines by the POKEY, but multiplexers are used.

The later Atari 8-bit machines, from the 1200XL, 600XL, 800XL, 65XE, 130XE and XE Game System eliminate two of the controller ports, so you can only use two pairs of paddles with these machines.

Vectrex

The Vectrex controller may not have had quite as many buttons as the 5200 controller, but four independent fire buttons was a rarity.  Its joystick was smaller than the 5200's and apparently less brittle.  Also, far more importantly, the joystick is self-centering.  The innards of the joystick look very similar to those of the Sony Dual Shocks to come in the following decade.

Not only does the Vectrex controllers contain a pair of potentiometers attached directly to the joystick, but there are also a separate pair of trimmer potentiometers located elsewhere on the PCB.  Apparently these can be adjusted without opening the joystick and serve to fine tune the joystick's centering, not too dissimilar to how Apple and PC joysticks work.  These trimmer potentimeters are 10KOhms.

Unlike the Tandy sticks, which have one end terminal of the potentiometer connected to +5v and the other end terminal connected to GND, the Vectrex stick has one end terminal connected to +5v and the other end terminal connected to -5v.  The resistance value for these potentiometers also appears to be 10KOhms.

Because Vectrex controllers are rare and only two commercial Vectex games use the analog function, Sega Genesis 3-button controllers have been converted to work with them.

NES & Famicom

NES Controllers are primarily digital, they send out a bit for a pressed button.  However, the NES and Famicom versions of Arkanoid were released with a paddle controller.  This controller, called the VAUS Controller in the US, could be used instead of the gamepad.  The Famicom controller plugged into the expansion port and the NES controller plugged into Controller Port 2.  The paddle had one button.  The NES and Famicom controllers are not compatible with each other, they function identically but use different bits to send their data.  No other NES game used its Arkanoid controller, but the Famicom games Chase HQ and Arkanoid 2 could use the Famicom Arkanoid controller.  The NES controller has a small screw that could be used to adjust the sensitivity of the controller via a trimpot.  The Famicom controller does not have a trimpot.

The interior of the Arkanoid controller shows a 556 timer and potentiometer wired only to two terminals.  This means that it works just like in the Apple II or IBM PC.

Thumbsticks - Sony PlayStation Dual Shock controllers and their successors

Outside the classic consoles, most systems of the third and fourth generation of video games did not support analog controllers.  In the fifth generation, things began to change.  The Nintendo 64 was released with an "analog" thumbstick, but the thumbstick uses optical sensors and is not really an analog controller for the purposes of this article.

The basic principle of how the analog thumbsticks operate on a PlayStation Dual Shock controller is similar to how the Tandy CoCo joysticks work.  Although its successors may offer more analog controls, the basic functionality is unchanged.  Essentially each thumbstick manipulates a pair of potentiomers, one for each axis of the stick.  These potentiometers are wired in the three pin style, making them voltage dividers.  When the stick is in the neutral position, the sticks should be outputting half the maximum voltage (2.5V).  The controller chip of the controller reads these values and converts them into a digital 8-bit value which is sent with other stick and button information as a multi-byte serial packet to the console.

I have read that using a voltage divider is more precise than using a resistor/capacitor network as used in PCs and Atari consoles and computers.  However, potentiometers are notoriously loose with their tolerances (20% seems to be the norm).  I imagine Sony and its competitors may have higher quality parts and the lower resistance ranges (0-40KOhms seems to be about right) and the shorter travel distances may tighten the tolerance a bit (10% seems reasonable)

Every PlayStation game that supports the thumbsticks should use a standard routine to calibrate the thumbsticks when the game is bootup.  Even with tighter tolerances and more compact form factors, the dead center position may not reflect the midpoint voltage reading.

Tuesday, February 17, 2015

The Apple II's Influences on the IBM PC's Design

CPU & RAM

The Apple II uses a 6502 CPU running at 1,022,727Hz.  The IBM PC uses a 8088 CPU running at 4,772,726MHz.  Both systems use the same master clock, 14,318,180Hz, principally because both systems need an even multiple of 3,579,545Hz, the NTSC color burst frequency.  IBM could boast its clock speed advantage over the Apple, but the comparison was not strictly fair because the CPU architectures were quite different.

With RAM, IBM was on a more solid footing.  The Apple II and II+ were designed to be upgraded to a maximum of 48KB on the system board and an extra 16KB on the Language Card could be installed in slot 0.  That was the limit for the official expansions.  IBM's system could be upgraded to 64KB on the system board with only the memory chips.  It also used planar memory to test for single bit memory errors, ultimately giving a fair boast that its system was more reliable.  It also could (eventually) be upgraded officially to 10 times the amount of RAM as the Apple II.  Like the Apple IIe, the PC could not access all this memory at once but had to shift memory in 64KB segments.  The PC's CPU could do all this via its instruction set, the Apple II had to use multiple "softswitches" to bankswitch memory.  Eventually both computers were able to address megabytes of additional RAM, but using extended bankswitching methods for the Apple II and Expanded Memory boards for the IBM PC.

Graphics

The Apple II's built in graphics could display 15 unique colors in a 40x48 column low resolution graphics mode and 6 unique colors in a 280x192 high resolution graphics mode.  The Apple II's color was based on NTSC decoding, it required an NTSC color monitor to produce any color.  Typical monochrome monitors would often use green phosphors.  The human eye is most sensitive to green light and green on black produced excellent contrast for the time.  White text on a black background was seen as inducing more eye strain.

The Apple II by default only produced capital letters in its 40 column by 24 line text mode.  The keyboard's shift keys only would modify the upper row of keys.  In order to produce lower case letters, the character generator ROM would need to be replaced or a third party 80-column card would need to be installed.  Additionally, users would have to run a wire from the keyboard connector to the third joystick push button input for the shift-key mod, which allowed the Apple II to determine the state of the shift key directly.

IBM made improvements to both the text and graphics display, but the inspiration is obvious.  IBM released two display adapters, the Monochrome Display and Printer Adaper (MDA) and the Color/Graphics Display Adapter (CGA).  Both could show lowercase text and supported an 80 column mode. The MDA used a green screen with a digital connection for lossless output quality.  However, like the Monitor III, frequently used with Apple IIs, it had a slow refresh rate and long persistent phosphors to compensate.  Also, IBM added an extra row of text in its text modes, thus it displays 40 columns or 80 columns by 25 rows.

The MDA did not support color or bitmap graphics, but the CGA did.  IBM ensured that color would be supported on high quality digital color monitors (although they did not release one at first) and composite color monitors.  By using a half-filled ASCII character and different colors for the foreground and background attributes for each character cell, IBM could perform the equivalent of the Apple II's low resolution graphics mode with an extra line.  IBM's 320x200 composite color mode corresponded fairly closely to Apple's II's high resolution graphics mode, as seen in early PC ports of Apple II games like Adventure in Serenia and Ultima II.  The color choices were a bit limited, but you could still get a decent red/orange in addition to a cyan/green and a magenta.

IBM also supported a 640x200 composite color mode, and here the color choices had a much wider range. For old CGA, there were black, white, two identical grays, three blues, yellow, orange, three greens, brown, one maroon, one magenta and one pink.  In the Apple IIe with a revision B motherboard and 128KB of RAM, Apple added a similar double high resolution 560x192 mode with fifteen unique available colors. Unlike the Apple, IBM supported direct color on the high resolution mode, the foreground color was selectable.

While IBM did not have the split text/graphics modes of the Apple II, invaluable for programmers, it did allow an MDA and CGA to coexist in the same system.  Thus the programmer could see the text of his program on one screen and the output on another.  However, this was a very expensive option.

Sound

Neither the IBM nor the Apple have dedicated sound hardware.  The Apple II must use the CPU to generate all sound by sending data to the speaker output at regular intervals.  Timing is left to the CPU, keeping the CPU from working on other program routines.  That is why music is rarely heard during gameplay.  However, Pulse Width Modulation came naturally by this method to produce more complex sounds than was typically expected at the time.

IBM improved on the Apple II design because it had a timer chip connected to the speaker output.  All the CPU had to do was to set the frequency of the timer and a square wave would be output to the speaker until a new frequency value was sent to the timer.  This freed the CPU to do other tasks, making music possible during gameplay.  The PC speaker could also be controlled via direct writes like the Apple, and eventually gaming companies and other programmers used it to produce digitized sound.  Like the Apple, this sound would seldom be heard during any kind of animation or interactivity.

Input - Joystick

IBM virtually copied Apple's design here.  Their improvements were minor, IBM used more commonly available potentiometers for the directionals, four pushbuttons compared to three (one of which was taken over for the shift key mod on the Apple II), and a proper D-sub connector instead of a DIP socket.  However, it was not built in, unlike Apple's interface, and expansion slots were precious on a 5-slot IBM PC.

Input - Keyboard

IBM went their own way here, their keyboard was influenced by their Selectric typewriters and their previous mini-computers.  Apple played catch up here, as its keyboards for the Apple IIe and //c closely hew to IBM's in terms of key placement and not to its earlier ASCII keyboards found on the II and II+

Input - Mice

Mice were not yet readily available in 1981, but Apple released its Lisa computer with one in 1983 and Microsoft soon followed.  The Lisa had a built-in port for its mouse, and Microsoft released a version of its mouse for a serial port, which was often found in a PC.  Microsoft added a second button and a more ergonomic form factor compared to the Lisa mouse.  Apple released a Mouse Card for its IIe and Microsoft and other companies released bus mice, which required an interface card, throughout the 1980s and early 1990s.

Serial Communications

The Apple II had its Super Serial Card, IBM had its Asynchronous Communications Card.  The SSC was based around the 6551 and the ASC around the 8250.  Both were companion chips to their respective CPUs.  The SSC was a combination of two previous cards, one for modem use, one for printing.  The ASC could work with either.  Maximum speed for the 8250 was 9,600 bps and 19,200 or 115,200 for the 6551.  However, that 9,600 bps was reliable with the CPU doing other things thanks to interrupts, Speeds above 9,600 bps required almost all the Apple II's time.

Printers

While parallel printer cards existed for the Apple II, typically slower serial printers were used.  The Grappler 3rd party parallel interface cards were popular purchases, but a Super Serial Card was almost ubiquitous with Apple II systems.  With IBM systems, the situation was reversed.  Often people think that the PC supported only parallel printers, but this is far from the truth.

Expansion Bus

Here is another example where IBM took a great deal of inspiration from Apple II's bus design.  The Apple II has eight 50-pin connectors for expansion cards, the IBM PC has five 62-pin connectors for expansion cards.  Physically the connectors are very similar.  IBM wisely decided to give its cards extra support by designing brackets that would screw into the back of the chassis and plastic stablizers to keep the long cards in place.  The Apple II keeps cards held in only by the friction of the connector and only had a few v-shaped cut outs in the back of its case for wires and connectors.

IBM decided to make its slots generic, unlike the Apple II which mapped address space to each particular card.  While this could be overcome in the Apple II, in practice certain types of peripherals began to lay claim to each slot, SSCs in slots 1 & 2, 80 column cards in slot 3, Disk II in slot 6, mouse cards in slot 4, fixed disk storage in slot 7 and 3.5" drive controllers in slot 5.  It got worse for the IIe and //c.  IBM also gave its expansion bus IRQ and DMA controllers, allowing peripherals to assert IRQs and DMAs without monopolizing the system.  Apple II's IRQs and DMAs were implemented very simply, slot 1 got priority, then slot 2 and so forth.  Eventually, cards began to hog the limited number of IRQs available in the PC, which IBM did not fully alleviate with extra IRQs in the AT because not all systems had them.

Finally, while Apple II devoted one expansion slot, slot 0, for memory expansion, every slot in the IBM PC could be used for memory expansion.  The PC ISA bus allowed total access to the I/O and Memory Bus, making memory expansion flexible for the IBM PC, XT, Portable, AT and XT/286 and their clones.

Floppy Drives

IBM used the same floppy disks as Apple (and Atari) did, the 5.25" flexible disk.  Initially IBM's drives were single sided and held 160KB, only 17KB more than Apple's drives.  However, IBM's scheme had more flexibility than Apple's. as it soon was able to use double sided drives and expand each side of the disk to 180KB.  It also had a true floppy disk controller chip on its card, the NEC uDP765.  The Apple II Disk II controller card was made up of a small number of standard logic chips and 256 bytes of firmware and provided the bare minimum to interface with the floppy drive.

IBM and Apple disk formatting were quite different.  Apple used 35 tracks and 16 256 byte sectors.  IBM used 40 tracks and 8 or 9 512 byte sectors and 1 or 2 sides.  Apple also used Group Code Recording while IBM used Modified Frequency Modulation encoding for their disks.  That truly made the disks unreadable in the other machine without extra hardware.

Each Apple II's Disk II interface card supported two drives.  IBM's controller supported two internal disk drives, but also could support two external disk drives as well.  Rarely did an average user ever use more than two floppy drives with either system.  Both systems only booted from the first drive.

System Board and Chassis

Apple had a very open design philosophy regarding its Apple II.  There are no custom or proprietary or security chips on its board and it published full schematics and BIOS listings for just about everything outside of Applesoft BASIC.  Similarly, IBM had no custom or proprietary or security chips on its PC system board.  It did have 808x off-the-shelf support chips on its motherboard, whereas Apple relied strictly on TTL logic for the Apple II.  It also published full schematics and BIOS listings (except for the BASIC), but you had to purchase it separately.

Both Apple and IBM used switching power supplies instead of linear power supplies.  Instead of having large power bricks to cutter up your wall socket, you only need a generic grounded plug wire.  The plug will fit in an Apple or IBM machine.  IBM added a fan directly to its power supply, while Apple II users often added a fan via a "system saver".  Their supplies provided the usual voltages, +5, -5, +12 and -12.  They plugged into a connector on the board rather than being part of the circuitry.

Apple also had a totally open access policy to its computer.  The case cover had no screws, only plastic friction and whatever was on it held it in place.  IBM was also very generous here.  While its case had screws (2 then 5), this was not intended to hinder the user but to keep its industrial-strength chassis secure.  Just like the Apple II, the system board and the power supply could be easily removed.  The RAM could be upgraded on the motherboard just by inserting chips into the sockets.

Sunday, May 18, 2014

Apple //c vs. IBM PCjr. - Clash of the Computer Titans, 1984

Two compact machines, with limited or very limited expansion were released by two titans of the Industry in 1984.  The IBM PCjr. and the Apple //c were both heralded with great fanfare and greeted with great initial enthusiasm.  However, the PCjr. failed within a year and the Apple //c was generally seen as a poor man's Apple IIe.

Input

The Apple //c has a built-in keyboard, but it contained all the keys of the Apple IIe, plus an 80/40 column switch.  The PCjr. supported a wireless keyboard with 21 fewer keys than an IBM PC keyboard.  There were substantial compatibility problems with the PCjr. keyboard interface when programs were intended to run on a PC.  There were some minor compatibility issues with programs expecting the older keyboard.  The PCjr. keyboard uses rubber domes, while the //c uses scissor-keyswitches like a laptop.  While expensive, it is possible to replace the PCjr. keyboard with a nicer keyboard with more keys.

The PCjr. supported two joysticks with two axes and two buttons each.  The Apple //c only had one joystick port, which supported one joystick with two axes and two buttons.  The joystick port was also used for the mouse.  A PCjr. required a serial mouse or a bus mouse.  The PCjr. also supported a light pen.

Advantage : Apple //c (out of the box)

Storage

The PCjr. was only designed for one floppy drive, but that drive was a doubled sided drive supporting 360KB disks.  A second drive required an expensive expansion.  The Apple //c used the standard Apple II single sided disk drive supporting 143KB per side.  However, there was a port in the back of the machine for a second drive, no extras required.  The PCjr. Diskette Controller and BIOS relieved much of the burden from the programmer and CPU of reading and writing to the disk.  The Apple //c's drive controller (for 5.25" drives) is an integrated version of the TTL-logic based Disk II controller, so pretty much all reading and writing is done via software.  Even without factoring in the disk flipping, the PCjr.'s diskette drive was easier to use.

The Apple //c, with a ROM upgrade, could also support a UniDisk 3.5" drive for 800KB 3.5" disks.  The UniDisk was an intelligent drive to compensate for the slow CPU of the Apple IIe/IIc and is a pricey upgrade these days.  The IBM PCjr can use a 720KB drive or most common 1.44MB drives (with 720KB read/write capabilities) if you use DOS 3.2 or better.

The PCjr. supported a cassette interface for saving and loading programs from BASIC.  Even though all previous Apple II models supported the cassette interface for saving and loading in BASIC, the Apple //c dropped the cassette jacks.  The cassette interface was intended for the basic model PCjr., which didn't come with a disk drive and only 64KB of RAM, and most people bought the enhanced model.

Neither system was intended for a hard disk, and both machines required special drives and interfaces, which were extremely pricey.  Today there is jrIDE for the PCjr. and SmartPortVHD for the //c.  Both are hobbyist projects and tend to be available only at certain times and command relatively high prices.  The jrIDE is connected by the PCjr. sidecar bus while the SmartPort has to go through the much slower floppy interface (its like a big UniDisk drive).

The PCjr. also had a pair of cartridge ports for loading games and instant loading of programs.  There were eight games released and about as many application programs.  Lotus 1-2-3 required both cartridge ports.

Advantage : PCjr.

Memory & CPU

The PCjr. was sold in 64KB and 128KB models, and that was it for memory expansion.  Most people bought the 128KB model, since the 64KB didn't come with a hard drive.  Before the end of its life, it could be expanded to 640KB and 736KB with some work.

The original Apple //c had 128KB and was not intended to be expandable.  Apple released the Memory Expansion Apple //c in 1986 with a memory expansion slot.  The maximum RAM supported was 1MB. Nonetheless, even the pre-Memory Expansion Apple //c can be upgraded to 1MB of RAM, thanks to products from Applied Engineering.  That AE upgrade could also support a Z80 CPU for CP/M compatibility.  Few games ever supported more than 128KB on the //c, but there are many games that require 256KB or more to run on the PCjr.

The PCjr. used an 8088 CPU running at 4.77MHz.  The Apple //c used a 65C02 CPU running at 1.02MHz. The comparison is not quite apples to apples.  The 65C02 can execute many instructions in fewer clock cycles than the comparative 8088 instruction.  The 8088 had many more instructions and registers and could utilize up to 1MB through memory segmentation.  The 8088 uses 16-bit registers or can split them into 8-bit registers, only the external data bus is 8-bit.  The 65C02 only has 8-bit registers, but its access to the first 256 bytes of RAM is almost as fast as access to registers.  The 65C02 could only address 64KB of RAM and Apple //c implemented a complex bankswitching scheme inherited from its predecessors.  A complex game like Microsoft Flight Simulator would show marked improvements on the 8088.

The PCjr. could be upgraded to an NEC V20 for a modest speed boost, and a board could allow the CPU to be run at a 7.3MHz clock rate.  The Apple //c could have its CPU replaced with a 4MHz or 8MHz Zip Chip, turning it into something very much like an Apple //c+

Advantage : PCjr. (stock)

Output

The Apple //c supported all the graphics modes of the 128KB Apple IIe with a revision B motherboard.  This includes 40 column by 24 line text, 80 column by 24 line text, 40x48 low-resolution graphics, 280x192 high resolution graphics and 560x192 double high resolution graphics.  The low and high resolution graphics modes could also support four lines of text.  All Apple IIs, except for the IIgs, produce color by NTSC color composite artifacts.  For text they look best on small monochrome monitors.

There was a DA-15 pin external video connector on the //c, this was used mainly for the LCD attachment.

The IBM PCjr. supported the graphics modes of the IBM CGA card and more.  The PCjr. was only BIOS-level compatible with CGA, unlike the Apple //c, which was hardware compatible with the graphic modes of the earlier machines.  The PCjr. supported 40 column by 25 line text, 80 column by 25 line text, 320x200 4 color graphics, 640x200 2 color graphics, 160x200 16 color graphics, 320x200 4 color graphics and 640x200 4 color graphics.  The PCjr. supported RGBI monitors for sharp images and composite video for color composite artifact color.  It also had a port for an RF modulator.

The Apple //c had a built in speaker, but it was still the same software driven 1-bit device inside all Apple IIs.  There was a volume and headphone jack.  The Apple //c did not have standard expansion slots, so it could not support sound and music boards like the Mockingboard in the ordinary game-compatible way.  The Mockingboard D was made for the //c, but it used the serial port, not the internal bus.

The PCjr. could act like the PC speaker with its timer driven sound, but also had a 3-voice Texas Instruments sound chip.  This chip could produce square waves or noise, but did not use the internal piezo tweeter.  There also was a Speech Attachment available to record and playback digitized sounds and speech.  There was something similar for the Apple //c, the Echo IIC.

Advantage : PCjr.

Communications

The PCjr. had one serial port built in and also could support an internal modem.  The Apple //c had two serial ports.  One was intended for a modem, the other for a serial printer.

The PCjr.'s built-in serial port was capable of 4,800 baud and the official modem was a 300 baud model.  There was a third-party modem built for the slot that supported 1200 baud.  The Apple //c's Super Serial Card-derived serial ports could support a 19,200 baud rate.

The PCjr. had an add-on parallel port that was very a common purchase.  Parallel printers are much faster than serial printers and nowadays are more common.  Moreover, there are PC compatible Parallel Port Ethernet adapters that can enable very fast (comparatively speaking) transfers to the PCjr.

Advantage : PCjr.

Software

The Apple //c was designed to be as compatible with software as possible, as it is essentially a condensed version of the Apple IIe.  Virtually all Apple II disk software is compatible with it.  Very minor incompatibilities exist due to the updated keyboard, the 65C02 not supporting the illegal opcodes of the 6502, DOS 3.2 disks and untransfered cassette programs.  The PCjr. could not make the same boast, as its IBM PC compatibility was hit or miss.  Its issues with PC compatibility are legion and well known.

Advantage and Conclusion : While the PCjr. beat the Apple //c hands-down in almost every comparison, the Apple //c just has a far more expansive library than the PCjr.  That library, which came on 5.25" floppies, is far better preserved and accessible than the software released for the IBM PC and PCjr. of the 1980s.

Sunday, August 4, 2013

Apple II Gaming and Hardware

Gaming on the Apple II and useful hardware is mostly straightforward.  In this post I intend to identify hardware upgrades and their usefulness to Apple II games.  We start with the original Apple II of 1977 :

Paddles and Joystick - Apple II and II+ machines included a pair of paddle controllers.  They are black in color and each has a pushbutton and a knob.  The cable is plugged into the 16-pin Game I/O socket on the motherboard.  Apple did not release a joystick until the Apple IIe and //c machines.  Apple II Joysticks operated like a pair of paddles, but usually supported two buttons.  Rival machines from Commodore and Atari only supported one button on their controllers.  Apple IIe and //c did not come with paddle controllers when bought from Apple, one had to purchase the Apple II Hand Controllers.

RAM - The Apple II and Apple II+ can support up to 48KB on the motherboard.  The Apple II has three rows of RAM sockets and can support 4KB or 16KB in each row.  Except on the last Apple II+ machines, there were configuration blocks which the user would use to inform the system whether he had 4KB or 16KB in each bank.  While some commercial games could work with 16KB or 32KB, most required 48KB.

Revision 1 and later Motherboards - Adds the blue and orange colors to the High Resolution Graphics (HGR) mode. Absolutely essential for games, thousands of which use the HGR mode.  Without this functionality, only purple and green colors are displayed in HGR mode.  Also useful in eliminating color fringing in text modes on color monitors, making it easier to load and save onto cassettes and turning the system on. Usually not an issue, since Apple IIs with revision 0 motherboards command the highest prices and most people probably would want to keep those in pristine condition.  With some user modifications, the revision 0 boards can have the features of a revision 1 board.

Disk II - Another essential upgrade, cassette tapes were seen as too slow and unreliable for most commercial software after it was released.  Most Apple II games come on 5.25" floppy disks.  The Disk II Interface Card is needed to connect the drives to the system, and each card can support up to two drives.  I know of no game that supports more than two disk drives.  The card is installed into one of the expansion slots in the Apple II, and eventually slot #6 was settled upon as the de facto standard installation slot.

When the Disk II was first released in 1978, it had two 4-bit PROMs on the card that supported 13 sectors per track (256 bytes per sector) on each of the 35 tracks of a single sided drive.  The earliest public releases of the Disk Operating System, DOS, only supported 13 sector disks.  This encompasses DOS 3.1, 3.2 and 3.21. Apple later found that using 16 sectors was within the tolerance of the drives, and updated the PROMs in the Disk II Controller Card and released DOS 3.3 to support 16 sector disks.  DOS 3.3 had three releases, the first in 1980 and two bugfix releases in 1983, and the vast majority of games were released on 16-sector disks.  Some early games were intended for 13-sector disks, but most have been converted to 16-sector.

Games will often require DOS 3.3 to format blank disks for save games.  ProDOS will not work for these games.  Some really early versions of Sierra's Mystery House and other early text adventures may require DOS 3.2 13-sector formatted disks for saves.  Later versions of these games include a utility to format the disk for the appropriate geometry needed for the game.

The Apple II+ is an Apple II with Applesoft BASIC ROMs instead of Integer BASIC ROMs.  Many games and programs require Applesoft in ROM.  I cannot think of any that cannot get by by having Integer BASIC loaded into the RAM of the Language Card.

Language Card - The Language Card was released with the Apple PASCAL system and added 16KB of bankswitched memory to the Apple II or II+.  It was installed in slot 0, which was specially made for RAM or ROM upgrades.  Many, many games require 64KB, especially after the Apple IIe was released.

When DOS is booted, it loads a copy of the BASIC version not found in the ROM.  So when DOS is booted on an Apple II, Applesoft BASIC is loaded into RAM.  Conversely, when DOS is booted on an Apple II+ or IIe, Integer BASIC is loaded into RAM.  The version of BASIC currently in use can be selected with a simple command.  This way, older programs written for Integer BASIC can still be run on newer Apple II+ and IIe machines.

Apple released a Firmware Card that was inserted into slot 0 and contained the ROMs not found on the system board.  The ROM used could be changed with the flip of a switch.  However, this did not allow for the Language Card to be used, since both used slot 0.  The Language Card is more flexible and adds that extra crucial 16KB.

Mockingboard - In the early 1980s, Sweet Micro Systems released a sound card for the Apple II/II+ in four varieties: the Sound I, Speech I, Sound/Speech and Sound II.  The Sound I came with one AY-3-8910 three voice programmable sound synthesizer, the Speech I came with one Vortrax SC-01 speech synthesizer chip, the Sound/Speech come with one AY-3-8910 and one SC-01 chip, and the Sound II came with two AY-3-8910 chips.  Many games assume that the board would be located in slot 4 of an Apple II, II+, IIe or IIgs.

Eventually, Sweet Micro Systems refreshed their line and released the Mockingboard A, B, C and D.  The Mockingboard A has two pin reduced AY-3-8913 chips and two sockets for SSI-263 speech chips.  The Mockingboard B was a SSI-263 speech chip.  The Mockingboard C included two AY-3-8913s and one SSI-263.  There was a Mockingboard M that had identical capabilities to the C that was bundled with the Bank Street Music Writer.  The Mockingboard D was an external unit that connected to the Apple //c's serial port.  The Mockingboard D is utterly incompatible with games.

Games typically only supported one AY chip.  Ultima IV supported two AY chips and Ultima V three AY chips, requiring two Mockingboard Sound II, A, C or M.  A few games like Crypt of Medea and Crime Wave supported the speech chip.

Applied Engineering released the Phasor sound card, which could emulate a two AY chip Mockingboard.  It had four AY-3-8913 chips, one SSI-263 speech chip and a socket for a second speech chip.  Ultima V could take full advantage of it.

Super Serial Card - One of the most popular expansion cards for the Apple II, II+ and IIe is the Super Serial Card.  This was typically used to connect to printers like the Apple ImageWriter II and Modems like the Hayes Smartmodem line.  They typically go into slots 1 & 2.  A few games supported printer output, like Wasteland, which could use a serial or parallel printer.

Apple IIe - This is an Apple II+ with a Language Card built in, far fewer chips integrated on the motherboard and added DE-9 port for game controllers.  The official Apple II Joystick and Hand Controllers plug into this port, which is much easier than plugging older joysticks into the Game I/O socket.  The Apple II Joystick could operate in self-centering or free-form mode by a switch for each axis on the base of the joystick.

The Apple IIe has a newer keyboard with a much more IBM-like layout.  Gone is the REPT key, its function is contained in the ROM.  Added keys include Up and Down cursor keys, Open and Closed Apple keys (corresponding to joystick buttons 0 and 1) and a Caps Lock key.  The Apple IIe has true lowercase support and fully functional shift keys.  Initially, BASIC commands could not be entered in lowercase.  The IIe machines also have a socket to connect the Apple IIe Numeric Keypad, except for the Platinum, which has most of the previously-separate keypad built-in.  The Numeric Keypad, whether attached or detached, functions as duplicate keys, they do not report their own scancodes.

The Apple IIe has an AUX slot for memory expansion.  This could house the 1K 80-Column Memory Expansion Card, which allowed 80-column text.  Later releases of Infocom text adventures supported 80-column text.  Wizardry does not intentionally support 80-column text, but will display its text in an 80-column mode with each character separated by a space if there is an 80-column card in the system.  The other option was the 64KB Extended 80-Column Memory Card, which added 64KB of Bankswitched Memory and the 80-Column Text Mode.

Revision B Motherboard - Changes in this motherboard allowed Apple IIe machines to use Double High Resolution Graphics Mode with an Extended 80-Column Memory Card.  While an Apple IIe Revision A Motherboard could use the extra 64KB, it could not display DHGR graphics.  A user modification exists to fix the Revision A boards.

Third party boards like the Applied Engineering RAM Works exist to expand the Apple IIe to well beyond the extra 64KB of the Extended 80-Column Memory Card, but it relies on an extension of the bankswitching memory scheme and it is unknown whether any game ever used more than 128KB of RAM.  There is also an Apple-branded Apple II Memory Expansion that fit in one of the seven slots of an Apple II=//e can could provided more memory, but the memory addressing is utterly incompatible with the addressing of the 80-Column Memory Card, which is what games used.

Apple //c - The Apple //c was a portable version of the IIe with 128KB and contains the equivalent of two Super Serial Cards, a Disk II Interface.  Its DE-9 port also supports a one-button mouse.  One floppy drive is built-in, a second external drive can be added.  First versions of this system did not allow RAM to be expanded beyond 128KB, later versions did.  It supports DHGR graphics.

Apple Mouse - The mouse was supported in approximately fifteen or so games, so it is not a major peripheral.  Balance of Power was one such game.  The Apple IIe required a Mouse Interface Card to be installed, while the Apple //c's mouse connected to its joystick port.  The IIe can use standard Macintosh mice from the time period, but the //c requires its own mice.  However, its de facto slot is slot 4, which is where many games expect to find the Mocking Board.

ProDOS - This is Apple's successor operating system to DOS 3.3, and it came with the Apple //c.  Several later games have obvious ProDOS derived boot loaders, and they often load far more quickly than older games based of DOS 3.3.  Unless a game informs you it needs ProDOS, stick with DOS 3.3 as needed.  Several games will require the user to format save game disks, but they will insist on the DOS 3.3 format.

Apple //e Enhanced & Platinum - This exchanged the original 6502 for the slightly more advanced 65C02 and new character and firmware ROMs.  I have never seen any box state that the game requires an enhanced Apple //e, only that it requires an Apple IIe with 128KB of RAM.  This would suggest that no game uses the extra features of the Enhanced model.  Except for some minor backward compatibility issues regarding games that used illegal opcodes of the 6502 (the original Ultima's space battles are an example), the Enhanced //e is just as good as the IIe with a numeric keypad.

Apple //c+ and Accelerator cards -  The Apple //c+ is an Apple II running at 4 MHz.  Many accelerators for the II-//e run at 3.58MHz.  While rare, these accelerators can really help with games that use double high resolution graphics like Rampage or King's Quest.  However, most games assume that the Apple will be running at 1.02MHz and time everything by that speed.  Moreover, transfers from and to the 5.25" floppy drives will occur at the 1.02MHz speed.

Upgrades Not Useful for Gaming :

Apple II/II+ 80-Column Cards - Games would simply not support 80-column text prior to Apple standardizing it with the IIe.  Earlier cards had no particular standard, but the Videx Vidterm was a popular choice.  Games also do not like lowercase characters until the Apple IIe became popular, so there is no immediate need for a shift-key modification or a character ROM replacement.

Microsoft Z-80 Softcard - This card enabled Apple II users to run the CP/M operating system.  CP/M games are generally text-based and platform agnostic.

Apple IIe Video Upgrade Cards - No game is known to use one.

3.5" Floppy Drive - The Unidisk 3.5" drive required its own special controller because the Apple IIe could not quite keep up with the drive.  The 3.5" drives on the Apple //c+ provides the same functionality.  Very, very few games were released on the 3.5" disk format, and all have more common 5.25" versions.

Modem - Only two games I know of, The American Challenge: A Sailing Simulation and Battle Chess, support modem play, and the latter game is too slow to be enjoyable on an unaccelerated Apple II.

This blog entry does not cover the Apple //gs, which deserves its own discussion.