Driver:Apple II: Difference between revisions

From MAMEDEV Wiki
Line 62: Line 62:




Slots 1-7 on the II, II Plus, IIe, and IIgs (plus slots 5 and 7 on the Laser 128, EX, and EX2) generally support all of these cards.
Slots 1-7 on the II, II Plus, IIe, and IIgs (plus slots 5 and 7 on the Laser 128, EX, and EX2) generally support all of these cards:
 
===Floppy Disk Controller Cards===
===Floppy Disk Controller Cards===
* '''diskii''' is the standard Apple 2-drive floppy controller.  This is the old-style not-very-accurate version but it may work with some marginal disk images that the default '''diskiing''' controller does not.
* '''diskii''' is the standard Apple 2-drive floppy controller.  This is the old-style not-very-accurate version but it may work with some marginal disk images that the default '''diskiing''' controller does not.

Revision as of 23:21, 8 November 2020

Apple II series

Originally designed by Steve Wozniak, the Apple II series was both one of the first mass-market 8-bit microcomputers and the longest-lived. The machines exemplified Wozniak's design sensibilities of not including hardware when software can perform the same function, and of being wide open for expansion. Elements of the II's design influenced many later computers; PCs today have expansion slots in part because the Apple II did, for instance.

Quickstart

Assuming you don't have the Software List library, you can use MAME like any other Apple II emulator with the disk images you already have. For the II, II Plus, IIe, IIc, and IIGS, you can boot a 5.25" disk by using the command line switch -flop1. For example, "mame64 apple2e -flop1 Dung_Beetles.dsk". For the IIc Plus and IIGS, you can boot a 3.5" disk image by using the switch -flop3. For example, mame64 apple2gs -flop3 FTA_Nucleus.2mg. For the II, II Plus, IIe and IIgs, you can boot a hard drive image after inserting an expansion card that supports one by using the command line switch -hard1. For example, to boot Total Replay with the CFFA2 card emulation, use mame64 apple2ee -sl7 cffa2 -hard1 "Total Replay v3.0.2mg".

Models and Clones

  • Apple II (1977 - driver name apple2)
- The original machine. Includes a 6502 CPU, 8 expansion slots, up to 48KiB of RAM on the motherboard, cassette and game controller I/O, a 1-bit speaker clicker, and video modes including 40x24 text, 40x48 16-color "lo-res" graphics, and 6 color (8 but there's two blacks and two whites) 280x192 "hi-res" graphics. In addition, lo or hi-res graphics could be displayed along with 4 lines of text at the bottom.
  • Apple II Plus (1979 - driver name apple2p)
- Mostly a ROM change; Wozniak's Integer BASIC was replaced with a licensed version of Microsoft BASIC, and the system's firmware was extended to be able to auto-boot from cards with a certain set of signature bytes in their firmware ROM.
  • Apple IIe (1983 - driver names apple2e, apple2ee, apple2ep)
- Condensed a large portion of the previous systems (which were primarily off-the-shelf 74-series TTL chips) into two custom ICs, "IOU" and "MMU". Slot 0, which on the II and II Plus normally contained a 16K "language card" to expand the system to 64 KiB, was eliminated and 64 KiB is on board in a configuration compatible with the language card. The system also supports a second 64 KiB of RAM for a total of 128 KiB, and brings in a series of double-resolution video modes inspired by the ill-fated Apple ///. These include 80x24 text, 80x48 16-color "double-lo-res" graphics, and 560x192 16-color "double-hi-res" graphics.
The IIe was later "enhanced"; this replaced the 6502 CPU with a WDC 65C02 that included additional instructions, and added GUI-drawing characters to the built-in text font. Finally, a "platinum" IIe was released that came in a revised gray case (instead of the previous beige) and had the keyboard expanded to include a numeric keypad.
  • Apple IIc (1984 - driver names apple2c, apple2c0, apple2c3, apple2c4)
- This was an enhanced IIe with 128 KiB of RAM packed into a small "pizza box" style form factor. Because there was no room for slots, the IIc included hardware equivalent to two serial cards, a mouse card, and a floppy disk controller and drive.
Later versions of the IIc included support for external 3.5" disk drives and a memory expansion slot which provided the equivalent of the 1 MiB Apple II Memory Expansion Card. MAME fully supports all functions of this machine, including the mouse and the Dvorak keyboard layout switch.
  • Apple IIGS (1986 - driver names apple2gs, apple2gsr0, apple2gsr1)
- The 16-bit Apple II. Built around a WDC 65C816 CPU (which had a full 65C02 emulation mode) running 3 times faster than earlier machines, the IIGS is 99% compatible with the enhanced IIe but was also capable of running new 16-bit software that could directly access up to 8 MiB of RAM. The ROMs included a full optimized 65C816 port of the Macintosh's Toolbox APIs and Mac apps written in Pascal or C could be ported over with almost no code changes. The IIGS introduced the concept of switchable slots, where each of the 7 slots could be switched between a built-in function and using a card plugged into the slot. This provided the integration of the IIc combined with the expandability of the IIe.
Built-in hardware included two serial ports, a detachable keyboard and mouse supported by the then-new Apple Desktop Bus (ADB), 5.25" and 3.5" floppy support, a 32-oscillator Ensoniq sample-playback synthesizer chip, and new video modes: 320x200 "Super Hi-Res" with 16 unique colors per horizontal line, and 640x200 "Super Hi-Res" with 4 unique colors per scanline. Unlike previous Apple IIs, these new modes were not built on NTSC trickery and provided real full-color images with no bleeding or other artifacts.
  • Apple IIc Plus (1988 - driver name apple2cp)
- This was a final-configuration IIc (with the memory expansion slot) with the internal 5.25" disk drive swapped for a 3.5" one and a licensed copy of the 4 MHz Zip Chip accelerator included. MAME 0.222 and later support the built-in accelerator.
  • Laser 128 (1986, by VTech - driver name "laser128")
- This was an inexpensive Apple IIc clone with additional built-in peripherals and the ability to use an expansion slot card. It was not fully compatible with all software but most worked.
  • Laser 128 EX (1988, by VTech - driver name "las128ex")
- This was an enhanced Laser 128 with better compatibility and a built-in accelerator. MAME 0.222 and later support the accelerator.
  • Laser 128EX2 (1988, by VTech - driver name "las128e2")
- This was an Apple IIc Plus clone, available with either a 3.5" or 5.25" internal floppy drive. An accelerator was standard, like on the IIc Plus. MAME 0.222 and later support the accelerator.

The default configurations

MAME defaults to configuring these systems to run the widest variety of software "out of the box".

  • Apple II and II Plus: 16K Language Card in slot 0, Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
  • Apple IIe: 128 KiB RAM installed (extended 80 column card in the aux slot), Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
  • Apple IIc: Mockingboard 4C (third-party add-on which gives a Mockingboard in slot 4) is installed. -ramsize may be used to include up to 1 MiB of expansion RAM on the later models.
  • Apple IIGS: 1 MiB of expansion RAM is installed, which allows running all known software. Stereo output is included (it was optional on the real system). 2 each of 3.5" and 5.25" drives are included.
  • Apple IIc Plus: -ramsize may be used to include up to 1 MiB of expansion RAM.

The configuration switches

If you switch MAME to "Partial Keyboard" emulation mode so that MAME keys work and press Tab, MAME's menu will appear. The Machine Configuration option will differ by Apple II model, but contains useful things:

  • All Apple II models except the IIGS have a Composite Monitor Type selection. "Color" gives simulated NTSC color, "B&W" gives black and white (and can be made into color using MAME's CRT simulation filter), "Green" simulates a green monochrome monitor, and "Orange" simulates an orange/amber monochrome monitor. New in MAME 0.224 is the "Video-7 RGB" setting, which gives some additional video modes and special features supported by the 8-bit versions of the Sierra AGI games, Dazzle Draw, and Apple II DeskTop.
  • Apple IIe and IIc models in MAME 0.222 and later have a CPU Type selection. "Standard" is the normal 6502 or 65C02 CPU for that system. "4 MHz Zip Chip" emulates a 4 MHz Zip Chip, as the name implies.
  • IIe and IIc models in MAME 0.222 and later also have a Bootup speed option. This only does something when CPU Type is set to "4 MHz Zip Chip". The "Standard" setting here enables the Zip but starts at normal Apple II speed. Software that can control the Zip can be used after this to change the speed. The "4 MHz" setting starts right away at 4 MHz.
  • Apple IIgs models in MAME 0.227 and later also have a CPU Type selection. "Standard" is the normal 65C816 CPU, and there are 4 ZipGS speeds available: 7 MHz, 8 MHz, 12 MHz, and 16 MHz.

These configuration settings are saved to the system's .cfg file and will persist across MAME runs.

Configuring slots

To find out what a version of MAME supports for configurable slot and port devices, run MAME with the -listslots parameter on the commandline. The Apple II and II Plus have 8 slots, which are "sl0" through "sl7" plus a game port. The IIe has 8 slots, "sl1" through "sl7" plus the "aux" slot and the game port. The IIgs has "sl1" through "sl7", while the memory slot is handled through the "ramsize" switch. For instance, "-ramsize 4M" on the IIgs gives you 4 megabytes of RAM.

To empty a slot which has a card in it by default, use the -sl switch for the slot followed by two double quotes. For instance, to remove the Mockingboard in slot 4 on a IIe, you'd type -sl4 "" or to remove the language card from slot 0 on the II Plus for very old ill-behaved software, you'd use -sl0 "".

Slot 0 on the II and II Plus can have the following cards:

  • lang is the standard 16K Apple Language Card. This is installed by default, giving you a 64K system.
  • ssram is the Saturn Systems 128K card, which is compatible with the language card and has additional RAM for programs which can use it.


Slots 1-7 on the II, II Plus, IIe, and IIgs (plus slots 5 and 7 on the Laser 128, EX, and EX2) generally support all of these cards:

Floppy Disk Controller Cards

  • diskii is the standard Apple 2-drive floppy controller. This is the old-style not-very-accurate version but it may work with some marginal disk images that the default diskiing controller does not.
  • diskiing is the new cycle-perfect Disk II controller. This one supports .WOZ images, including copy-protected ones. This is in slot 6 by default on the II, II Plus, and IIe.
  • diskiing13 is the cycle-perfect Disk II controller with the old 13-sector PROMs installed, so it can boot DOS 3.2 13-sector disks without running BOOT13 from the DOS 3.3 System Master or qkumba's Anti-M.
  • applesurance is the Applesurance Floppy Disk Controller, a Disk II clone with diagnostics built into the card's ROM. Holding down the M key on startup will bring up the menu. (added in MAME 0.219)

Sound and Audio Cards

  • mockingboard is the Mockingboard music/sound card supported by some games. This is in slot 4 by default on the II, II Plus, and IIe.
  • phasor is the Applied Engineering Phasor music/sound card, which is back compatible with the Mockingboard but has extended capabilities supported by e.g. Ultima V.
  • alfam2 is the ALF Apple Music II 9-voice music/sound card. I don't believe any games supported it, but I could be wrong.
  • aesms is the Applied Engineering Super Music Synthesizer. It's not compatible with any other cards, but if you can find the software for it it can be fun for a few minutes.
  • sam is the optional card for the S.A.M. Software Automated Mouth software speech synthesizer. It gives a higher-quality voice than the normal Apple II speaker output.
  • echoiiplus is the Street Electronics Echo II Plus hardware speech synthesizer. This works with a lot of accessibility software for the Apple II and some games.
  • mcms1 and mcms2 are the 2 cards of the Mountain Computer Music System. They must be placed in adjacent slots or MAME will not start up. These cards give the Apple II wavetable synthesis capability, which was used as part of the Alpha Syntauri system.
  • dx1 is the Decillonix DX-1 sampler card. Currently this doesn't do much because MAME doesn't have audio input support.

Hard Disk Controller Cards

  • cffa2 is the CFFA2 SD/IDE card for the Apple II. This version has 65C02 firmware so it will only work properly on the enhanced IIe and IIgs. This works with most standard Apple II hard disk images.
  • cffa202 is the CFFA2 SD/IDE card with plain 6502 firmware which works on the II, II Plus, and unenhanced IIe.
  • zipdrive is the Zip Technologies Zip Drive, an IDE card from the ZipChip accelerator company. No relation to the later Iomega Zip Drive. This card requires a custom partitioned/formatted hard disk image and so is mostly of interest to people who owned such a card and want to image their old drive and use it under emulation.
  • focusdrive is Focus Technologies' version of the zipdrive IDE card. The same caveat about custom hard disk images applies.
  • scsi is the Apple II Revision C SCSI Card. It supports standard hard disk and CD-ROM ISO and BIN/CUE images as well as MAME's CHD format.
  • cmsscsi is the CMS SCSI II Card. It supports standard hard disk images as well as MAME's CHD format. To see more than the first two partitions on a disk, you'll need to use the GS/OS driver rather than relying on the firmware. (added in MAME 0.224)
  • corvus is the Corvus Systems "flat cable" hard disk interface. This is very difficult to set up on the Apple II; I've gotten it to boot DOS 3.3 off the hard disk, but unless you were an expert on these things back in the day it's for curiosity only.
  • vulcan is the Applied Engineering Vulcan IDE card. This requires a custom partitioned/formatted hard disk image; the software to set that up is reasonably easy to find, but it's intended primarily for users who had the card in their real Apple II.
  • vulcangold is the Gold version of the Vulcan IDE card. The firmware we have for it currently only works on 65816 CPUs and so this card is only an option on the IIgs.

Memory Expansion Cards

  • memexp is the Apple II Memory Expansion Card, sometimes called "Slinky". It has 1 megabyte populated, and is automatically recognized by most versions of AppleWorks.
  • ramfactor is the Applied Engineering RamFactor card, which is mostly a clone of the memexp card but has 8 megabytes instead of 1.

Clock/Calendar Cards

  • thclock is the ThunderWare ThunderClock Plus, which is automatically recognized and used by ProDOS.
  • tm2ho is the Applied Engineering TimeMaster II H.O. clock/calendar card. The optional X-10 home control feature is not supported in MAME.

Co-Processor Cards

  • softcard is the Microsoft Z80 SoftCard, which lets you run CP/M.
  • applicard is the PCPI AppliCard, which also runs CP/M but at a much faster speed since it uses on-card RAM instead of sharing the Apple's. The AppliCard also works on the Apple /// driver. It does require the specific AppliCard startup disk.
  • themill is the Stellation Two The Mill card, which adds a 6809 processor and enables running Microware OS-9.

80-Column Cards

  • videoterm is the Videx VideoTerm 80-column card for the II and II Plus.
  • aevm80 is the Applied Engineering ViewMaster 80 80-column card. This is their enhanced clone of the Videx VideoTerm.
  • ap16 is a German clone of the Videx VideoTerm 80-column card.
  • ap16alt is the same German clone of the Videx VideoTerm with a different firmware version.
  • vtc1 is yet another VideoTerm clone, this one of unknown origin.
  • ultraterm is the Videx UltraTerm 80 and 132-column card for the II, II Plus, and unenhanced IIe.
  • ultratermenh is the Videx UltraTerm 80 and 132-column card with special firmware to work on the enhanced IIe.

Serial Interface Cards

  • ssc is the Apple Super Serial Card.
  • byte8251 is an 8251-based serial card published in BYTE Magazine, April 1979, in an article called "Cross-Pollinating the Apple II". (added in MAME 0.219)

Misc. Cards

  • swyft is the IAI SwyftCard, which works only on the IIe and turns it into Jef Raskin's original dream for the Macintosh. By modern standards it's quite weird to use.

Graphics Cards

  • arcbd is the Third Millenium Engineering Arcade Board, which added ColecoVision-like graphics and sound capability to the Apple II.
  • ezcgi is a graphics/sprites card from a design published in BYTE Magazine.
  • ezcgi9938 and ezcgi9958 are extended versions of the ezcgi card with the TMS9938 and TMS9958 GPUs.
  • ssprite is the Synetix SuperSprite graphics and sound card, which has similar capabilities to the Arcade Board and the EZ-CGI.
  • ssbapple is the SSB Apple speech card. This only works with its own software to my knowledge, it wasn't as widely supported as the Echo II line.

MIDI Interface Cards

  • midi is the standard Passport/Yamaha style MIDI card supported by most 8-bit MIDI software and GS/OS (with the "Card 6850 MIDI" driver).

Input Device Cards

  • mouse is the Apple II Mouse Card for the II, II Plus, and IIe. This is useful for mouse-compatible software like Dazzle Draw, Apple II DeskTop, and MousePaint.
  • 4play is the 4 Play Joystick Card, which gives you 4 players in compatible software (primarily NinjaForce's Bomberman clone for the IIgs).

Parallel/Centronics Interface Cards

  • parallel is the Apple II Parallel Card. This card was rewritten for MAME 0.226 and now handshakes properly with the 'ap2000' printer.
  • grapplerplus is the Orange Micro Grappler Plus parallel printer interface. This has functionality in its firmware to dump hi-res screens and other useful stuff. (Added in MAME 0.226).

Things to connect to a parallel card

MAME currently emulates the Epson ActionPrinter 2000. This printer came out in 1991 but is fully compatible with previous Epson printers. In most cases you configure the software for an "Epson LX" or "FX" printer; the major exception is The Print Shop, which works better if you use "OLD EPSON" instead of "EPSON". The Print Shop also works better with the Grappler Plus emulation if you tell it the card is a plain Grappler rather than a Plus. In order to use it, you use the following switches:

-slX:CARDNAME:prn ap2000, where X is the slot and CARDNAME is the card's name. For a Grappler Plus in slot 1 (which is pretty standard), that's -sl1 grapplerplus -sl1:grapplerplus:prn ap2000. For the Apple II Parallel Card in slot 1, that becomes -sl1 parallel -sl1:parallel:prn ap2000.

The printer's output will appear as a second screen, complete with a visible animated print head. Note that there is not yet a way to get printed output out of MAME, but we have plans to do so in the future.

This also works with the GS/OS Epson driver so GUI programs can print too. Use the Control Panel Slots to set slot 1 to Your Card, and Direct Connect Printer to Epson and Parallel Card. Then reboot the system and the Page Setup / Print dialogs will work in all standard GS desktop apps.

Accelerator Cards

  • twarp is the Applied Engineering TransWarp accelerator card. This works to run e.g. AppleWorks at faster speeds without unthrottling MAME and making typing difficult. Total Replay v3.0 and later supports controlling this card to accelerate loading and decompressing games while still playing them at normal speed.

Video Digitizer Cards

  • ceyes2 is the ComputerEyes/2 video digitizer (added in MAME 0.214), which gives higher-quality digitization results than the game port version. When this is connected MAME accepts a -pic option with the path of a .PNG image to digitize. The PNG can be any size and any color depth, and you can enter the File Manager in the Tab menu to change images without restarting the emulated Apple.

The IIe Auxiliary Slot

The IIe's auxiliary slot, named -aux on the command line, currently can support these cards:

  • ext80, the Apple IIe Extended 80-Column Card. This gives the IIe 128K of RAM and enables double-hi-res and double-low-res video modes. This is in the IIe auxiliary slot by default.
  • std80 is the Apple IIe 80-Column Card. This gives 80-column text, but will not work with software that requires 128K of RAM or uses the double-hi-res or double-low-res video modes.
  • rw3 is the Applied Engineering RamWorks III, which gives the IIe 128K of RAM, double-hi and -low res video modes, plus 8 megabytes of expansion RAM which later versions of AppleWorks can use, in addition to some newer software like EDIT.SYSTEM and John Brooks' /RAM3 RAMdisk.

More configuration

The -ramsize switch controls the amount of RAM on many machines. This defaults to 48K on the II and II Plus, 64K on the IIe, 128K on the IIc and IIc Plus, 1.25 MB on the ROM 0 and 1 IIgs, and 2 MB on the ROM 3 IIgs.

  • The Apple II can be set to 4K, 8K, 12K, 16K, 20K, 24K, 32K, 36K, or 48K.
  • The II Plus can be set to 16K, 32K, or 48K.
  • The IIe only can be set to 64K.
  • The original IIc only can be set to 128K, but the memory expandable IIc can be set to 128K, 384K, 640K, 896K, or 1152K. The additional RAM is usable by AppleWorks.
  • The IIc Plus, Laser 128, and Laser 128 EX2 all can be set to 128K, 384K, 640K, 896K, or 1152K, just like the memory expandable IIc.
  • The ROM 0 and 1 IIgs can be set to 256K, 512K, 768K, 1M, 2M, 3M, 4M, 5M, 6M, 7M, or 8M.
  • The ROM 3 IIgs can be set to 1M, 3M, 4M, 5M, 6M, 7M, or 8M.

To see what kinds of disk and other images are accepted for a given configuration, use the -listmedia option alongside whatever slot cards you want to use. IDE and SCSI cards will typically add at least one -hard / -harddisk option, the Apple II Rev. C SCSI card adds a -cdrom option as well, and of course the various diskii cards add -flop1 and -flop2. The wildcard is the two ComputerEyes devices, which add a -pic option for a .PNG file to use as the source image.

Note that some cards, like the Super Serial and Parallel, add configurable slots or ports of their own. You can see those by adding the card and appending -listslots to the end of the command line.

Game Controllers

Most Apple IIs and clones have a special slot called "gameio" which emulates the 9 or 16 pin game I/O connector. You can connect the following devices to the game port:

  • joy gives you a pair of classic Apple II analog joysticks with 2 buttons each
  • paddles (added in MAME 0.217) gives you 4 classic Apple II paddle controllers with 1 button each (used in, for instance, Woz's Little Brick Out game on the DOS 3.3 System Master)
  • joyport gives you the Sirius Joyport, with 2 digital Atari-style controllers with 1 button each. Many games supported this; some called the option "Atari joystick" rather than "Sirius Joyport"
  • gizmo (added in MAME 0.224) gives you one digital Atari-style controller with 1 button. This is supported by the HAL Labs games "Vindicator" and "Super Taxman 2".
  • compeyes (only available on the II and II Plus; the real hardware is not compatible with the IIe or IIGS) is the original game I/O port ComputerEyes video digitizer. When this is connected MAME accepts a -pic option with the path of a .PNG image to digitize. The PNG can be any size and any color depth, and you can enter the File Manager in the Tab menu to change images without restarting the emulated Apple.

A note about hard drive and CD-ROM images

MAME versions before 0.214 were only able to use images that had been converted to MAME's own CHD format.

To convert an Apple II hard drive image in 2MG format into CHD format, strip the first 64 bytes which contains the .2MG header:

chdman createhd -c none -isb 64 -i <input_image_name>.2mg -o <output_image_name>.chd -f

To convert an Apple II hard drive image in PO or raw HDV format into CHD format:

chdman createhd -c none -i <input_image_name>.[po|hdv] -o <output_image_name>.chd -f

MAME versions 0.214 and later can use images in 2MG, HDV or CHD format. If you want to use a hard drive image with a .RAW or .PO extension, then rename them to have a .HDV extension instead.

For CD-ROM, all MAME versions which fully support the Revision C SCSI card will accept .ISO, .BIN/.CUE, or .CHD CD-ROM images. Note that ISO images must be named to end in .iso for MAME to recognize them properly, it may crash otherwise.