This file describes types of cartridge images supported by the Atari800
emulator.

There are:
- raw images - files that contain only dump of cartridge memory
- CART files - images with additional 16-byte header, which contains type
  of the cartridge

For raw images you usually have to select the cartridge type each time
you insert an image. To make it easier, you only select from types of same
image size. If there's only one supported type that matches file's length
(currently only for 2 KB cartridges), that type is selected automatically.

The advantage of using CART files is that you don't have to select
the cartridge type, because it is stored inside the file.

The CART format has been introduced in Atari800 0.8.0, when there were
only 4 supported cartridge types. The format has not changed, only new types
have been added.

The format is:
 first 4 bytes containing 'C' 'A' 'R' 'T'.
 next 4 bytes containing cartridge type in MSB format (see the table below).
 next 4 bytes containing cartridge checksum in MSB format (ROM only).
 next 4 bytes are currently unused (zero).
 followed immediately with the ROM data: 2, 4, 8, 16, 32, 40, etc. kilobytes.

The recommended file name extension for CART files is CAR.

Currently supported cartridge types:

+----+-----------+------+-----------------------------------------------+---+
| Id |  Machine  | Size | Name                                          | E |
|----+-----------+------+-----------------------------------------------+---+
|  1 | 800/XL/XE |    8 | Standard 8 KB cartridge                       |   |
|  2 | 800/XL/XE |   16 | Standard 16 KB cartridge                      |   |
|  3 | 800/XL/XE |   16 | OSS two chip 16 KB cartridge (034M)           |   |
|  4 |   5200    |   32 | Standard 32 KB 5200 cartridge                 |   |
|  5 | 800/XL/XE |   32 | DB 32 KB cartridge                            |   |
|  6 |   5200    |   16 | Two chip 16 KB 5200 cartridge                 |   |
|  7 |   5200    |   40 | Bounty Bob Strikes Back 40 KB 5200 cartridge  |   |
|  8 | 800/XL/XE |   64 | 64 KB Williams cartridge                      |   |
|  9 | 800/XL/XE |   64 | Express 64 KB cartridge                       |   |
| 10 | 800/XL/XE |   64 | Diamond 64 KB cartridge                       |   |
| 11 | 800/XL/XE |   64 | SpartaDOS X 64 KB cartridge                   |   |
| 12 | 800/XL/XE |   32 | XEGS 32 KB cartridge                          |   |
| 13 | 800/XL/XE |   64 | XEGS 64 KB cartridge (banks 0-7)              |   |
| 14 | 800/XL/XE |  128 | XEGS 128 KB cartridge                         |   |
| 15 | 800/XL/XE |   16 | OSS one chip 16 KB cartridge                  |   |
| 16 |   5200    |   16 | One chip 16 KB 5200 cartridge                 |   |
| 17 | 800/XL/XE |  128 | Decoded Atrax 128 KB cartridge                |   |
| 18 | 800/XL/XE |   40 | Bounty Bob Strikes Back 40 KB cartridge       |   |
| 19 |   5200    |    8 | Standard 8 KB 5200 cartridge                  |   |
| 20 |   5200    |    4 | Standard 4 KB 5200 cartridge                  |   |
| 21 |    800    |    8 | Right slot 8 KB cartridge                     |   |
| 22 | 800/XL/XE |   32 | 32 KB Williams cartridge                      |   |
| 23 | 800/XL/XE |  256 | XEGS 256 KB cartridge                         |   |
| 24 | 800/XL/XE |  512 | XEGS 512 KB cartridge                         |   |
| 25 | 800/XL/XE | 1024 | XEGS 1 MB cartridge                           |   |
| 26 | 800/XL/XE |   16 | MegaCart 16 KB cartridge                      |   |
| 27 | 800/XL/XE |   32 | MegaCart 32 KB cartridge                      |   |
| 28 | 800/XL/XE |   64 | MegaCart 64 KB cartridge                      |   |
| 29 | 800/XL/XE |  128 | MegaCart 128 KB cartridge                     |   |
| 30 | 800/XL/XE |  256 | MegaCart 256 KB cartridge                     |   |
| 31 | 800/XL/XE |  512 | MegaCart 512 KB cartridge                     |   |
| 32 | 800/XL/XE | 1024 | MegaCart 1 MB cartridge                       |   |
| 33 | 800/XL/XE |   32 | Switchable XEGS 32 KB cartridge               |   |
| 34 | 800/XL/XE |   64 | Switchable XEGS 64 KB cartridge               |   |
| 35 | 800/XL/XE |  128 | Switchable XEGS 128 KB cartridge              |   |
| 36 | 800/XL/XE |  256 | Switchable XEGS 256 KB cartridge              |   |
| 37 | 800/XL/XE |  512 | Switchable XEGS 512 KB cartridge              |   |
| 38 | 800/XL/XE | 1024 | Switchable XEGS 1 MB cartridge                |   |
| 39 | 800/XL/XE |    8 | Phoenix 8 KB cartridge                        |   |
| 40 | 800/XL/XE |   16 | Blizzard 16 KB cartridge                      |   |
| 41 | 800/XL/XE |  128 | Atarimax 128 KB Flash cartridge               | p |
| 42 | 800/XL/XE | 1024 | Atarimax 1 MB Flash cartridge (old)           | p |
| 43 | 800/XL/XE |  128 | SpartaDOS X 128 KB cartridge                  |   |
| 44 | 800/XL/XE |    8 | OSS 8 KB cartridge                            |   |
| 45 | 800/XL/XE |   16 | OSS two chip 16 KB cartridge (043M)           |   |
| 46 | 800/XL/XE |    4 | Blizzard 4 KB cartridge                       |   |
| 47 | 800/XL/XE |   32 | AST 32 KB cartridge                           |   |
| 48 | 800/XL/XE |   64 | Atrax SDX 64 KB cartridge                     |   |
| 49 | 800/XL/XE |  128 | Atrax SDX 128 KB cartridge                    |   |
| 50 | 800/XL/XE |   64 | Turbosoft 64 KB cartridge                     |   |
| 51 | 800/XL/XE |  128 | Turbosoft 128 KB cartridge                    |   |
| 52 | 800/XL/XE |   32 | Ultracart 32 KB cartridge                     |   |
| 53 | 800/XL/XE |    8 | Low bank 8 KB cartridge                       |   |
| 54 | 800/XL/XE |  128 | SIC! 128 KB cartridge                         | p |
| 55 | 800/XL/XE |  256 | SIC! 256 KB cartridge                         | p |
| 56 | 800/XL/XE |  512 | SIC! 512 KB cartridge                         | p |
| 57 | 800/XL/XE |    2 | Standard 2 KB cartridge                       |   |
| 58 | 800/XL/XE |    4 | Standard 4 KB cartridge                       |   |
| 59 |    800    |    4 | Right slot 4 KB cartridge                     |   |
| 60 | 800/XL/XE |   32 | Blizzard 32 KB cartridge                      |   |
| 61 | 800/XL/XE | 2048 | MegaMax 2 MB cartridge                        |   |
| 62 | 800/XL/XE | 128M | The!Cart 128 MB cartridge                     | p |
| 63 | 800/XL/XE | 4096 | Flash MegaCart 4 MB cartridge                 | p |
| 64 | 800/XL/XE | 2048 | MegaCart 2 MB cartridge                       |   |
| 65 | 800/XL/XE |  32M | The!Cart 32 MB cartridge                      | p |
| 66 | 800/XL/XE |  64M | The!Cart 64 MB cartridge                      | p |
| 67 | 800/XL/XE |   64 | XEGS 64 KB cartridge (banks 8-15)             |   |
| 68 | 800/XL/XE |  128 | Atrax 128 KB cartridge                        |   |
| 69 | 800/XL/XE |   32 | aDawliah 32 KB cartridge                      |   |
| 70 | 800/XL/XE |   64 | aDawliah 64 KB cartridge                      |   |
| 71 |   5200    |   64 | Super Cart 64 KB 5200 cartridge (32K banks)   |   |
| 72 |   5200    |  128 | Super Cart 128 KB 5200 cartridge (32K banks)  |   |
| 73 |   5200    |  256 | Super Cart 256 KB 5200 cartridge (32K banks)  |   |
| 74 |   5200    |  512 | Super Cart 512 KB 5200 cartridge (32K banks)  |   |
| 75 | 800/XL/XE | 1024 | Atarimax 1 MB Flash cartridge (new)           | p |
| 76 | 800/XL/XE |   16 | 16 KB Williams cartridge                      | x |
| 77 | 800/XL/XE |    8 | MIO diagnostics 8KB cartridge                 | x |
| 78 | 800/XL/XE |    8 | Telelink II cartridge                         | x |
| 79 | 800/XL/XE |   16 | Pronto cartridge                              | x |
| 80 | 800/XL/XE |   64 | JRC64 cartridge (linear)                      | x |
| 81 | 800/XL/XE |   64 | MDDOS cartridge                               | x |
| 82 | 800/XL/XE |   32 | COS32 cartridge                               | x |
| 83 | 800/XL/XE | 1024 | SIC+ 1024 KB cartridge                        | x |
| 84 | 800/XL/XE | 1032 | Corina 1M+8K EEPROM                           | x |
| 85 | 800/XL/XE |  520 | Corina 512K + 512K SRAM + 8K EEPROM           | x |
| 86 | 800/XL/XE |    8 | XE Multicart (8KB)                            | x |
| 87 | 800/XL/XE |   16 | XE Multicart (16KB)                           | x |
| 88 | 800/XL/XE |   32 | XE Multicart (32KB)                           | x |
| 89 | 800/XL/XE |   64 | XE Multicart (64KB)                           | x |
| 90 | 800/XL/XE |  128 | XE Multicart (128KB)                          | x |
| 91 | 800/XL/XE |  256 | XE Multicart (256KB)                          | x |
| 92 | 800/XL/XE |  512 | XE Multicart (512KB)                          | x |
| 93 | 800/XL/XE | 1024 | XE Multicart (1024KB)                         | x |
| 94 | 800/XL/XE |   64 | Ram-Cart 64 KB cartridge                      |   |
| 95 | 800/XL/XE |  128 | Ram-Cart 128 KB cartridge                     |   |
| 96 | 800/XL/XE |  256 | Double Ram-Cart 2x128/256 KB cartridge        |   |
| 97 | 800/XL/XE |   1M | Ram-Cart 1 MB cartridge                       |   |
| 98 | 800/XL/XE |   2M | Ram-Cart 2 MB cartridge                       |   |
| 99 | 800/XL/XE |   4M | Ram-Cart 4 MB cartridge                       |   |
|100 | 800/XL/XE |   8M | Ram-Cart 8 MB cartridge                       |   |
|101 | 800/XL/XE |  16M | Ram-Cart 16 MB cartridge                      |   |
|102 | 800/XL/XE |  32M | Ram-Cart 32 MB cartridge                      |   |
|103 | 800/XL/XE |   32 | SiDiCar 32 KB cartridge                       |   |
|104 | 800/XL/XE |    8 | J(atari)Cart8(kB)                             |   |
|105 | 800/XL/XE |   16 | J(atari)Cart16(kB)                            |   |
|106 | 800/XL/XE |   32 | J(atari)Cart32(kB)                            |   |
|107 | 800/XL/XE |   64 | J(atari)Cart64(kB)                            |   |
|108 | 800/XL/XE |  128 | J(atari)Cart128(kB)                           |   |
|109 | 800/XL/XE |  256 | J(atari)Cart256(kB)                           |   |
|110 | 800/XL/XE |  512 | J(atari)Cart512(kB)                           |   |
|111 | 800/XL/XE | 1024 | J(atari)Cart1024(kB)                          |   |
|112 | 800/XL/XE |  512 | DCart 512 KB                                  |   |        
|159 |   5200    |   40 | Bounty Bob Strikes Back 40 KB 5200 alt.       |   | 
|160 | 800/XL/XE |   64 |JRC64 cartridge (interleaved)                  | x |
+----+-----------+------+-----------------------------------------------+---+

Id is the cartridge type code stored in the CART file.

Machine indicates if the cartridge is for Atari 8-bit Home Computers
(400/800 and XL/XE) or the Atari 5200 Game System.

Size is length of image in kilobytes, unless the value ends with "M", which
means it is in megabytes.

E (for Emulation) describes state of emulation support of the cartridge in
Atari800. "p" means the cartridge is emulated partially (some features
missing), no value means emulation of all features.

Below are descriptions of all types. For bank-switched cartridges banks
are numbered in the order they appear in the image file, starting with 0.

+---------------------------------------------------------------------------+
| Type 1: Standard 8 KB cartridge                                           |
+---------------------------------------------------------------------------+

 Standard 8 KB cartridge, that occupies 8 KB of address space between $A000
 and $BFFF.

+---------------------------------------------------------------------------+
| Type 2: Standard 16 KB cartridge                                          |
+---------------------------------------------------------------------------+

 Standard 16 KB cartridge, that occupies 16 KB of address space between
 $8000 and $BFFF.

+---------------------------------------------------------------------------+
| Type 3: OSS two chip 16 KB cartridge (034M)                               |
+---------------------------------------------------------------------------+

 NOTE: This cartridge image format has been obsoleted by Type 45 because its
 order of banks is incorrect (i.e. the order in a physical cartridge's ROM
 chips is different). This format is still supported by the CART file format
 for backward compatibility.

 The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
 memory is divided into 4 banks, 4 KB each. Bank number 3 (the last one) is
 always mapped to $B000-$BFFF. Bank in $A000-$AFFF is selected by an access to
 $D500-$D5FF. Only 4 lowest bits of address are significant:
 - $D5x0 selects bank 0.
 - $D5x1 is not useful - it selects banks 0 and 1 (the bytes are binary AND of
   the corresponding bytes from banks 0 and 1).
 - $D5x3 or $D5x7 selects bank 1.
 - $D5x4 selects bank 2.
 - $D5x5 is not useful - it selects banks 1 and 2 (the bytes are binary AND of
   the corresponding bytes from banks 1 and 2).
 - $D5x2 or $D5x6 is not useful. It disables ROM (there are $FF bytes in
   $A000-$AFFF).
 - $D5x8-$D5xF disables whole cartridge (enables computer's memory in address
   space between $A000 and $BFFF).

+---------------------------------------------------------------------------+
| Type 4: Standard 32 KB 5200 cartridge                                     |
+---------------------------------------------------------------------------+

 Standard 32 KB cartridge for Atari 5200, that occupies 32 KB of address
 space between $4000 and $BFFF.

+---------------------------------------------------------------------------+
| Type 5: DB 32 KB cartridge                                                |
+---------------------------------------------------------------------------+

 A 32 KB bank-switched cartridge. There are 4 banks. Bank 3 is mapped to
 $A000-$BFFF. Bank in $8000-$9FFF is selected by an access to $D500-$D5FF.
 Two lowest bits of address select bank 0, 1, 2 or 3.

+---------------------------------------------------------------------------+
| Type 6: Two chip 16 KB 5200 cartridge                                     |
+---------------------------------------------------------------------------+

 In Atari 5200 there's 32 KB of address space reserved for the cartridge
 ($4000-$BFFF). A two chip 16 KB cartridge is mapped that way:
 - First 8 KB are mapped into lower 16 KB. Since an address line is not
   connected, $4000-$5FFF and $6000-$7FFF contain same data, which is first
   half of the cartridge image.
 - Similarly, second 8 KB are mapped into upper 16 KB.

+---------------------------------------------------------------------------+
| Type 7: Bounty Bob Strikes Back 40 KB 5200 cartridge                      |
+---------------------------------------------------------------------------+

 The cartridge with "Bounty Bob Strikes Back" game uses very strange
 bank switching method:
 - Four 4 KB banks (0,1,2,3) are mapped into $4000-$4FFF. An access to $4FF6
   selects bank 0, $4FF7 - bank 1, $4FF8 - bank 2, $4FF9 - bank 3.
 - Four 4 KB banks (4,5,6,7) are mapped into $5000-$5FFF. An access to $5FF6
   selects bank 4, $5FF7 - bank 5, $5FF8 - bank 6, $5FF9 - bank 7.
 - The remaining 8 KB is mapped to upper 16 KB of cartridge address space
   in Atari 5200. That is, $8000-$9FFF and $A000-$BFFF contain same data.

+---------------------------------------------------------------------------+
| Type 8: 64 KB Williams cartridge                                          |
+---------------------------------------------------------------------------+

 The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D500 selects
 bank 0, $D501 - bank 1, etc. An access to $D508-$D50F disables
 the cartridge.

+---------------------------------------------------------------------------+
| Type 9: Express 64 KB cartridge                                           |
+---------------------------------------------------------------------------+

 The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D577 selects
 bank 0, $D576 - bank 1, etc. An access to $D578-$D57F disables
 the cartridge.

+---------------------------------------------------------------------------+
| Type 10: Diamond 64 KB cartridge                                          |
+---------------------------------------------------------------------------+

 The cartridge has 8 banks mapped to $A000-$BFFF. An access to $D5D7 selects
 bank 0, $D5D6 - bank 1, etc. An access to $D5D8-$D5DF disables
 the cartridge.

+---------------------------------------------------------------------------+
| Type 11: SpartaDOS X 64 KB cartridge                                      |
+---------------------------------------------------------------------------+

 The cartridge has 8 banks mapped to $A000-$BFFF. It also contains an
 additional cartridge slot which allows to plug a second cartridge in.
 An access to $D5E7 selects bank 0, $D5E6 - bank 1, etc. down to $D5E0. An
 access to $D5E8-$D5EB disables the SDX cartridge and enables the second
 cartridge. An access to $D5EC-$D5EF disables both cartridges.
 Accesses to all addresses on page D5 always reaches the second cartridge,
 even if it is disabled by SpartaDOS or if the SpartaDOS cartridge itself is
 enabled.

+---------------------------------------------------------------------------+
| Type 12: XEGS 32 KB cartridge                                             |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each.
 Bank 3 (the last one) is always mapped to $A000-$BFFF. Two lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 The initially selected bank is random, although it seems that 0 gets chosen
 the most often. Atari800 always selects bank 0 initially.
 
 Reference:
 http://www.atarimax.com/jindroush.atari.org/acarts.html#xegs

+---------------------------------------------------------------------------+
| Type 13: XEGS 64 KB cartridge (banks 0-7)                                 |
+---------------------------------------------------------------------------+

 One of the two variants of the 64 KB XEGS cartridge, that's built on either
 a C100649 board with the W1 solder point not connected, or a C026449 board
 with pin 9 of the 74LS374 chip unconnected.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each.
 Bank 7 (the last one) is always mapped to $A000-$BFFF. Three lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 The initially selected bank is random, although it seems that 0 gets chosen
 the most often. Atari800 always selects bank 0 initially.

 Reference:
 http://www.atarimax.com/jindroush.atari.org/acarts.html#xegs

+---------------------------------------------------------------------------+
| Type 14: XEGS 128 KB cartridge                                            |
+---------------------------------------------------------------------------+

 Built on either a C100649 board with the W1 solder point connected, or a
 C026449 board.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each.
 Bank 15 (the last one) is always mapped to $A000-$BFFF. Four lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 The initially selected bank is random, although it seems that 0 gets chosen
 the most often. Atari800 always selects bank 0 initially.

 Reference:
 http://www.atarimax.com/jindroush.atari.org/acarts.html#xegs

+---------------------------------------------------------------------------+
| Type 15: OSS one chip 16 KB cartridge                                     |
+---------------------------------------------------------------------------+

 There are two types of OSS 16KB cartridges; this is the later, simpler one.
 Used by BASIC XL 1.03, Action! 3.6, MAC/65 1.1 and BASIC XE 4.1 (and possibly
 also by later versions of the above software).
 It consists of one 16 KB ROM chip.
 The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
 memory is divided into 4 banks, 4 KB each. Bank number 0 (the first one) is
 always mapped to $B000-$BFFF. Bank in $A000-$AFFF is selected by an access to
 $D500-$D5FF. Only bits 0 and 3 of address are significant:
 - A3=0, A0=0 - selects bank 1
 - A3=0, A0=1 - selects bank 3
 - A3=1, A0=0 - disables cartridge (enables computer's memory in address space
   between $A000 and $BFFF)
 - A3=1, A0=1 - selects bank 2

+---------------------------------------------------------------------------+
| Type 16: One chip 16 KB 5200 cartridge                                    |
+---------------------------------------------------------------------------+

 16 KB cartridge for Atari 5200, that occupies 16 KB of address space
 between $8000 and $BFFF.

+---------------------------------------------------------------------------+
| Type 17: Decoded Atrax 128 KB cartridge                                   |
+---------------------------------------------------------------------------+

 The Atrax cartridge has its address and data lines intermixed as a kind of
 copy protection - dumping a ROM chip directly would result in a dump that
 would need decoding before reading data. This cartridge type represents
 a decoded ROM dump, for example as a result of dumping by reading the
 cartridge using an Atari computer. The original, non-decoded dump is
 represented by Type 68: Atrax 128 KB cartridge.

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each.
 If a byte written to $D500-$D5FF has highest bit set, the cartridge is
 disabled. Otherwise four lowest bits select the bank mapped to $A000-$BFFF.

 Reference:
 http://atarionline.pl/forum/comments.php?DiscussionID=2861&page=11#CommentBody_91383

+---------------------------------------------------------------------------+
| Type 18: Bounty Bob Strikes Back 40 KB cartridge                          |
+---------------------------------------------------------------------------+

 The cartridge with "Bounty Bob Strikes Back" game uses very strange
 bank switching method:
 - Four 4 KB banks (0,1,2,3) are mapped into $8000-$8FFF. An access to $8FF6
   selects bank 0, $8FF7 - bank 1, $8FF8 - bank 2, $8FF9 - bank 3.
 - Four 4 KB banks (4,5,6,7) are mapped into $9000-$9FFF. An access to $9FF6
   selects bank 4, $9FF7 - bank 5, $9FF8 - bank 6, $9FF9 - bank 7.
 - The remaining 8 KB is mapped to $A000-$BFFF.

+---------------------------------------------------------------------------+
| Type 19: Standard 8 KB 5200 cartridge                                     |
+---------------------------------------------------------------------------+

 Standard 8 KB cartridge for Atari 5200, mapped into $8000-$9FFF
 and $A000-$BFFF.

+---------------------------------------------------------------------------+
| Type 20: Standard 4 KB 5200 cartridge                                     |
+---------------------------------------------------------------------------+

 Standard 4 KB cartridge for Atari 5200, mapped into $8000-$8FFF,
 $9000-$9FFF, $A000-$AFFF and $B000-$BFFF.

+---------------------------------------------------------------------------+
| Type 21: Right slot 8 KB cartridge                                        |
+---------------------------------------------------------------------------+

 8 KB cartridge for Atari 800, mapped into $8000-$9FFF. Atari 800 was
 the only 8-bit Atari with a Right Cartridge slot, in addition
 to the Left Cartridge slot as present on all 8-bit Ataris.

+---------------------------------------------------------------------------+
| Type 22: 32 KB Williams cartridge                                         |
+---------------------------------------------------------------------------+

 The cartridge has 4 banks mapped to $A000-$BFFF. An access to $D500 selects
 bank 0, $D501 - bank 1, etc. An access to $D508-$D50F disables
 the cartridge.

+---------------------------------------------------------------------------+
| Type 23: XEGS 256 KB cartridge                                            |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 32 banks, 8 KB each.
 The last bank is always mapped to $A000-BFFF. Five lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 24: XEGS 512 KB cartridge                                            |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 64 banks, 8 KB each.
 The last bank is always mapped to $A000-$BFFF. Six lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 25: XEGS 1 MB cartridge                                              |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each.
 The last bank is always mapped to $A000-$BFFF. Seven lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 26: MegaCart 16 KB cartridge                                         |
+---------------------------------------------------------------------------+

 A 16 KB cartridge, that occupies 16 KB of address space between $8000
 and $BFFF, and can be disabled by writing a byte with bit 7 set to
 $D500-$D5FF.

+---------------------------------------------------------------------------+
| Type 27: MegaCart 32 KB cartridge                                         |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bit 0
 selects one of two available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 28: MegaCart 64 KB cartridge                                         |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-1
 select one of four available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 29: MegaCart 128 KB cartridge                                        |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-2
 select one of 8 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 30: MegaCart 256 KB cartridge                                        |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-3
 select one of 16 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 31: MegaCart 512 KB cartridge                                        |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-4
 select one of 32 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 32: MegaCart 1 MB cartridge                                          |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-5
 select one of 64 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 33: Switchable XEGS 32 KB cartridge                                  |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each.
 Bank 3 (the last one) is always mapped to $A000-$BFFF. Two lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF,
 bit 7 disables the cartridge.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 34: Switchable XEGS 64 KB cartridge                                  |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each.
 Bank 7 (the last one) is always mapped to $A000-$BFFF. Three lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF,
 bit 7 disables the cartridge.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 35: Switchable XEGS 128 KB cartridge                                 |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each.
 Bank 15 (the last one) is always mapped to $A000-$BFFF. Four lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF,
 bit 7 disables the cartridge.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 36: Switchable XEGS 256 KB cartridge                                 |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 32 banks, 8 KB each.
 The last bank is always mapped to $A000-$BFFF. Five lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF,
 bit 7 disables the cartridge.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 37: Switchable XEGS 512 KB cartridge                                 |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 64 banks, 8 KB each.
 The last bank is always mapped to $A000-$BFFF. Six lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF,
 bit 7 disables the cartridge.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 38: Switchable XEGS 1 MB cartridge                                   |
+---------------------------------------------------------------------------+

 An extension to the standard XEGS cartridge, apparently sold by Nir Dary
 in the 1990s/2000s.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each.
 The last bank is always mapped to $A000-$BFFF. Seven lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF,
 bit 7 disables the cartridge.
 The initially selected bank is currently not known, although it's probable
 that it's the same as in standard XEGS cartridges, ie. random. Atari800
 always selects bank 0 initially.

+---------------------------------------------------------------------------+
| Type 39: Phoenix 8 KB cartridge                                           |
+---------------------------------------------------------------------------+

 A 8 KB cartridge, that occupies 8 KB of address space between $A000
 and $BFFF. It starts in enabled state and can be disabled by an access to
 $D500-$D5FF. Re-enabling is possible only by turning the computer off and on.
 Some units contain a RESET button that allows to enable the cartridge without
 touching the power button.

+---------------------------------------------------------------------------+
| Type 40: Blizzard 16 KB cartridge                                         |
+---------------------------------------------------------------------------+

 A 16 KB cartridge, that occupies 16 KB of address space between $8000
 and $BFFF. It starts in enabled state and can be disabled by an access to
 $D500-$D5FF. Re-enabling is possible only by turning the computer off and on.
 Some units contain a RESET button that allows to enable the cartridge without
 touching the power button.

+---------------------------------------------------------------------------+
| Type 41: Atarimax 128 KB Flash cartridge                                  |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each.
 The 4 lowest bits of the address written to $D500-$D50F select the bank
 mapped to $A000-$BFFF. Writing to $D510-$D51F disables the cartridge
 and any write to $D520-$D5FF is ignored.

 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 42: Atarimax 1 MB Flash cartridge (old)                              |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each.
 The seven lowest bits of the address written to $D500-$D57F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank $7F is selected. There is also another version of the
 Atarimax cartridge that selects bank 0 on power up; see Type 75 for details.

 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 43: SpartaDOS X 128 KB cartridge                                     |
+---------------------------------------------------------------------------+

 The cartridge has 16 banks mapped to $A000-$BFFF. It also contains an
 additional cartridge slot which allows to plug a second cartridge in. First
 8 banks are selected by an access to $D5F7-$D5F0, the other 8 banks by an
 access to $D5E7-$D5E0. An access to $D5E8-$D5EB or $D5F8-$D5FB disables the
 SDX cartridge and enables the second cartridge. An access to $D5EC-$D5EF or
 $D5FC-$D5FF disables both cartriges.
 Accesses to all addresses on page D5 always reaches the second cartridge,
 even if it is disabled by SpartaDOS or if the SpartaDOS cartridge itself is
 enabled.

+---------------------------------------------------------------------------+
| Type 44: OSS 8 KB cartridge                                               |
+---------------------------------------------------------------------------+

 Used in The Writer's Tool cartridge, it is actually an OSS one chip cartridge
 board (see Type 15) with an 8 KB ROM chip instead of a normal 16 KB one.
 The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
 memory is divided into 2 banks, 4 KB each. Bank number 0 (the first one) is
 always mapped to $B000-$BFFF. Bank in $A000-$AFFF is selected by an access to
 $D500-$D5FF. Only bits 0 and 3 of address are significant:
 - A3=0, A0=0 or 1 - selects bank 1
 - A3=1, A0=0 - disables cartridge (enables computer's memory in address space
   between $A000 and $BFFF)
 - A3=1, A0=1 - selects bank 0

Reference: http://www.retrobits.net/atari/osshack.shtml

+---------------------------------------------------------------------------+
| Type 45: OSS two chip 16 KB cartridge (043M)                              |
+---------------------------------------------------------------------------+

 There are two types of OSS 16KB cartridges; this is the earlier, more
 complicated one. Used by BASIC XL 1.02 and earlier, Action! 3.5 and earlier,
 and MAC/65 1.0. It consists of two 8 KB ROM chips.
 The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
 memory is divided into 4 banks, 4 KB each. Bank number 3 (the last one) is
 always mapped to $B000-$BFFF. Bank in $A000-$AFFF is selected by an access to
 $D500-$D5FF. Only 4 lowest bits of address are significant:
 - $D5x0 selects bank 0.
 - $D5x1 is not useful - it selects banks 0 and 2 (the bytes are binary AND of
   the corresponding bytes from banks 0 and 2).
 - $D5x3 or $D5x7 selects bank 2.
 - $D5x4 selects bank 1.
 - $D5x5 is not useful - it selects banks 1 and 2 (the bytes are binary AND of
   the corresponding bytes from banks 1 and 2).
 - $D5x2 or $D5x6 is not useful. It disables ROM (there are $FF bytes in
   $A000-$AFFF).
 - $D5x8-$D5xF disables whole cartridge (enables computer's memory in address
   space between $A000 and $BFFF).

 Reference: http://www.retrobits.net/atari/osscarts.shtml

+---------------------------------------------------------------------------+
| Type 46: Blizzard 4 KB cartridge                                          |
+---------------------------------------------------------------------------+

 A 4 KB cartridge, that occupies 8 KB of address space between $A000
 and $BFFF. Line A12 is unconnected, so the cartridge's memory is duplicated
 in $A000-$AFFF and $B000-$BFFF. The cartridge starts in enabled state and can
 be disabled by an access to $D500-$D5FF. Re-enabling is possible only by
 turning the computer off and on. Some units contain a RESET button that
 allows to enable the cartridge without touching the power button.

 Reference: http://www.serious-dial.atari.pl/Serious/S13/A18.html

+---------------------------------------------------------------------------+
| Type 47: AST 32 KB cartridge                                              |
+---------------------------------------------------------------------------+

 This cartridge occupies 8 KB of address space between $A000 and $BFFF. The
 cartridge memory is divided into 128 banks, 256 B each. On power on, bank 0
 is visible in $A000-$BFFF (repeated 32 times) and also in $D500-$D5FF. A
 write operation to $D500-$D5FF disables the cartridge (freeing the
 $A000-$BFFF area) and selects the next 256-byte bank visible at $D500-$D5FF.
 After bank 31 the write operation selects bank 0 again.

 Reference: http://www.atari.org.pl/forum/viewtopic.php?pid=134014#p134014

+---------------------------------------------------------------------------+
| Type 48: Atrax SDX 64 KB cartridge                                        |
+---------------------------------------------------------------------------+

 A variant of Type 11: SpartaDOS X 64 KB cartridge. The banking scheme is
 identical, but the address and data lines between the cartridge port and the
 ROM chip are interleaved as follows:
   (Left - cartridge port + bank select lines, right - EPROM pins)
    A0 -  A6
    A1 -  A7
    A2 - A12
    A3 - A15
    A4 - A14
    A5 - A13
    A6 -  A8
    A7 -  A5
    A8 -  A4
    A9 -  A3
   A10 -  A0
   A11 -  A1
   A12 -  A2
   A13 -  A9  \
   A14 - A11   > bank select
   A15 - A10  /
    D0 -  Q4
    D1 -  Q0
    D2 -  Q5
    D3 -  Q1
    D4 -  Q7
    D5 -  Q6
    D6 -  Q3
    D7 -  Q2
 By deinterleaving a ROM image, one would get a normal image of type 11.
 See Type 11 for details on the banking scheme.

 Reference: http://www.dereatari.republika.pl/atarisch/sparta.zip

+---------------------------------------------------------------------------+
| Type 49: Atrax SDX 128 KB cartridge                                       |
+---------------------------------------------------------------------------+

 A variant of Type 43: SpartaDOS X 128 KB cartridge. The banking scheme is
 identical, but the address and data lines between the cartridge port and the
 ROM chip are interleaved. The interleaving is similar to that of Type 48,
 but with added A16 line, so it looks as follows:
   (Left - cartridge port + bank select lines, right - EPROM pins)
    A0 -  A6
    A1 -  A7
    A2 - A12
    A3 - A15
    A4 - A14
    A5 - A13
    A6 -  A8
    A7 -  A5
    A8 -  A4
    A9 -  A3
   A10 -  A0
   A11 -  A1
   A12 -  A2
   A13 -  A9   \
   A14 - A11    > bank select
   A15 - A10   /
   A16 - A16  /
    D0 -  Q4
    D1 -  Q0
    D2 -  Q5
    D3 -  Q1
    D4 -  Q7
    D5 -  Q6
    D6 -  Q3
    D7 -  Q2
 By deinterleaving a ROM image, one would get a normal image of type 43.
 See Type 43 for details on the banking scheme.

 Reference: http://www.dereatari.republika.pl/atarisch/sparta.zip
            http://trub.atari8.info/index.php?ref=atrax_128

+---------------------------------------------------------------------------+
| Type 50: Turbosoft 64 KB cartridge                                        |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each. Banks
 are selected by an access to an address at $D500-$D5FF. Bits 0-2 of the
 address select the bank mapped to $A000-$BFFF. Bit 4 disables the cartridge
 and enables RAM. Bits 3 and 5-7 are ignored. The cartridge starts with bank 0
 enabled.

 Reference: http://www.retrogames.cl/turbosoft.html

+---------------------------------------------------------------------------+
| Type 51: Turbosoft 128 KB cartridge                                       |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each. Banks
 are selected by an access to an address at $D500-D5FF. Bits 0-3 of the
 address select the bank mapped to $A000-$BFFF. Bit 4 disables the cartridge
 and enables RAM. Bits 5-7 are ignored. The cartridge starts with bank 0
 enabled.

 Reference: http://www.retrogames.cl/turbosoft.html

+---------------------------------------------------------------------------+
| Type 52: Ultracart 32 KB cartridge                                        |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each. On power
 on, bank 0 is visible. Each access to $D500-$D5FF switches another bank in
 the sequence as follows: 0->1->2->3->cartridge disabled->0 etc.

 Reference: Altirra source code, ver. 2.10-test20
 http://www.atarimania.com/utility-atari-400-800-xl-xe-microcalc_28241.html

+---------------------------------------------------------------------------+
| Type 53: Low bank 8 KB cartridge                                          |
+---------------------------------------------------------------------------+

 This cartridge, destined for the left cartridge slot, occupies 8 KB of
 address space between $8000 and $9FFF. It achieves that by asserting the RD4
 line and not asserting the RD5 line.

 Reference: http://www.atariage.com/forums/topic/161828-hooked-on-8-bit-carts/page__view__findpost__p__2338297

+---------------------------------------------------------------------------+
| Type 54: SIC! 128 KB cartridge                                            |
+---------------------------------------------------------------------------+

 Cartridge memory is divided into 8 banks, each 16KB long and consisting of
 two 8KB subbanks. Each subbank can be mapped to Atari memory or switched
 off. The lower subbank always maps to $8000-$9FFF, while the upper one always
 maps to $A000-$BFFF.
 Control register address is $D500-$D51F mirrored, read/write (written value
 can be read at any time).
 Bit 7 = 0 - flash write-protection is on
 Bit 6 = 0 - odd 8k block (upper subbank) present in $A000-$BFFF
 Bit 5 = 0 - even 8k block (lower subbank) not present in $8000-$9FFF 
 Bits 4..3 - unused
 Bits 2..0 - 16KB bank number (0..7)
 Default value = 0 which means 0 bank upper subbank in address $A000-$BFFF
 To switch cart off - poke $40 info $D500-$D51F

 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

 Reference: http://sic.pigwa.net/files/specyfikacja_pl_eng.zip

+---------------------------------------------------------------------------+
| Type 55: SIC! 256 KB cartridge                                            |
+---------------------------------------------------------------------------+

 Same as Type 54, but with cartridge memory being divided into 16 banks.
 Bit 4 is unused
 Bits 3..0 - 16KB bank number (0..15)

+---------------------------------------------------------------------------+
| Type 56: SIC! 512 KB cartridge                                            |
+---------------------------------------------------------------------------+

 Same as Type 54, but with cartridge memory being divided into 32 banks.
 Bits 4..0 - 16KB bank number (0..31)

+---------------------------------------------------------------------------+
| Type 57: Standard 2 KB cartridge                                          |
+---------------------------------------------------------------------------+

 A 2 KB cartridge, that occupies 8 KB of address space between $A000 and
 $BFFF. The ROM chip is active only when lines A11 and A12 are high. In
 effect, the cartridge's memory appears at $B800-$BFFF while the $A000-B7FF
 area is unavailable and returns $FF when read.

+---------------------------------------------------------------------------+
| Type 58: Standard 4 KB cartridge                                          |
+---------------------------------------------------------------------------+

 A 4 KB cartridge, that occupies 8 KB of address space between $A000 and
 $BFFF. The ROM chip is active only when line A12 is high. In effect, the
 cartridge's memory appears at $B000-$BFFF while the $A000-AFFF area is
 unavailable and returns $FF when read.

+---------------------------------------------------------------------------+
| Type 59: Right slot 4 KB cartridge                                        |
+---------------------------------------------------------------------------+

 A 4 KB cartridge for Atari 800, mapped into $8000-$9FFF. The ROM chip is
 active only when line A12 is high. In effect, the cartridge's memory appears
 at $9000-$9FFF while the $8000-8FFF area is unavailable and returns $FF when
 read.

+---------------------------------------------------------------------------+
| Type 60: Blizzard 32 KB cartridge                                         |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each. On power
 on, bank 0 is visible. Each access to $D500-$D5FF switches another bank in
 the sequence as follows: 0->1->2->3->cartridge disabled. Re-enabling is
 possible only by turning the computer off and on. Some units contain a RESET
 button that allows to enable the cartridge without touching the power button.

 Reference:
 http://www.atari.org.pl/forum/viewtopic.php?id=7292

+---------------------------------------------------------------------------+
| Type 61: MegaMax 2 MB cartridge                                           |
+---------------------------------------------------------------------------+

 A variant of the MegaMax cartridge with 2MB ROM. The cartridge has a switch
 to toggle between the 1 MB Atarimax-compatible mode and the 2MB mode;
 this type describes the latter one.

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by access to an address at $D500-$D5FF.
 Bits 0-6 of the address select one of 128 available banks, bit 7 disables the
 cartridge. The cartridge starts with bank 0 enabled.

 Reference:
 http://www.mega-hz.de/Angebote/MEGAMAX/en/MegaMAX%20Cart%20en%20V1.htm

+---------------------------------------------------------------------------+
| Type 62: The!Cart 128 MB cartridge                                        |
+---------------------------------------------------------------------------+

 Only a small subset, as described below, of this cartridge's features is
 currently emulated.

 The cartridge occupies 8 KB of address space between $A000 and $BFFF, and
 consists of 16384 banks. Byte written to $D5A2 turns the cartridge on/off:
 bit 0 = 1 enables the cartridge, 0 disables it and enables RAM. The enabled
 bank is controlled by bytes written to $D5A0 (LSB) and $D5A1 (MSB, only 6
 lowest bytes matter). Any write do $D5A0-$D5A1 also automatically enables the
 cartridge.

 The cartridge starts with bank 0 enabled.

 The $D5A0-$D5A2 registers are read/write; one can read the cartridge's current
 state from them. Unused bits are always read as 0.

 Reference:
 http://www.mega-hz.de/Angebote/THE!CART/THE!CART_EN.htm

+---------------------------------------------------------------------------+
| Type 63: Flash MegaCart 4 MB cartridge                                    |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D51F. Values
 0-254 select one of the first 255 banks, and the value 255 disables the
 cartridge. Bank 255 is not available. The cartridge starts with bank 254
 enabled.

 A read from $D500-$D51F returns the last value written (initially 254).
 
 The cartridge also has ROM flashing functionality, which is currently not
 emulated.

 Reference:
 http://herale.org/4MB_FLASH_MEGACART

+---------------------------------------------------------------------------+
| Type 64: MegaCart 2 MB cartridge                                          |
+---------------------------------------------------------------------------+

 A bank-switched cartridge that occupies 16 KB of address space between
 $8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-6
 select one of 128 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 65: The!Cart 32 MB cartridge                                         |
+---------------------------------------------------------------------------+

 Only a small subset, as described below, of this cartridge's features is
 currently emulated.

 The cartridge occupies 8 KB of address space between $A000 and $BFFF, and
 consists of 4096 banks. Byte written to $D5A2 turns the cartridge on/off:
 bit 0 = 1 enables the cartridge, 0 disables it and enables RAM. The enabled
 bank is controlled by bytes written to $D5A0 (LSB) and $D5A1 (MSB, only 6
 lowest bytes are stored in the internal register, and only 4 lowest bytes
 matter in choosing the enabled bank). Any write do $D5A0-$D5A1 also
 automatically enables the cartridge.

 The cartridge starts with bank 0 enabled.

 The $D5A0-$D5A2 registers are read/write; one can read the cartridge's current
 state from them. Unused bits are always read as 0.

+---------------------------------------------------------------------------+
| Type 66: The!Cart 64 MB cartridge                                         |
+---------------------------------------------------------------------------+

 Only a small subset, as described below, of this cartridge's features is
 currently emulated.

 The cartridge occupies 8 KB of address space between $A000 and $BFFF, and
 consists of 8192 banks. Byte written to $D5A2 turns the cartridge on/off:
 bit 0 = 1 enables the cartridge, 0 disables it and enables RAM. The enabled
 bank is controlled by bytes written to $D5A0 (LSB) and $D5A1 (MSB, only 6
 lowest bytes are stored in the internal register, and only 5 lowest bytes
 matter in choosing the enabled bank). Any write do $D5A0-$D5A1 also
 automatically enables the cartridge.

 The cartridge starts with bank 0 enabled.

 The $D5A0-$D5A2 registers are read/write; one can read the cartridge's current
 state from them. Unused bits are always read as 0.

+---------------------------------------------------------------------------+
| Type 67: XEGS 64 KB cartridge (banks 8-15)                                |
+---------------------------------------------------------------------------+

 One of the two variants of the 64 KB XEGS cartridge, built on a C026449 board
 with all pins of the 74LS374 chip connected. All software designed for this
 cartridge type also works with the other variant; see Type 13.
 This bank-switched cartridge occupies 16 KB of address space between $8000
 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each.
 Bank 7 (the last one) is always mapped to $A000-$BFFF. Four lowest bits of
 a byte written to $D500-$D5FF select the bank mapped to $8000-$9FFF.
 Unsetting bit 3 unmaps the $8000-$9FFFF area and leaves it unconnected
 (floating or all $FFs); otherwise a bank selected by the three lowest bits is
 mapped.
 The initially selected bank is random, although it seems that the value of 0
 (ie. no bank mapped) gets chosen the most often. Atari800 always selects 0
 initially.

 Reference:
 http://www.atarimax.com/jindroush.atari.org/acarts.html#xegs

+---------------------------------------------------------------------------+
| Type 68: Atrax 128 KB cartridge                                           |
+---------------------------------------------------------------------------+

 The Atrax cartridge has its address and data lines intermixed as a kind of
 copy protection, as below:
   (Left - cartridge port + bank select lines, right - EPROM pins)
    A0 -  A5
    A1 -  A6
    A2 -  A7
    A3 - A12
    A4 -  A0
    A5 -  A1
    A6 -  A2
    A7 -  A3
    A8 -  A4
    A9 -  A8
   A10 - A10
   A11 - A11
   A12 -  A9
   A13 - A13   \
   A14 - A14    > bank select
   A15 - A15   /
   A16 - A16  /
    D0 -  Q5
    D1 -  Q6
    D2 -  Q2
    D3 -  Q4
    D4 -  Q0
    D5 -  Q1
    D6 -  Q7
    D7 -  Q3
 This cartridge type represents an original, non-decoded ROM dump, as read
 directly from the ROM chip. A decoded ROM dump is represented by Type 17:
 Decoded Atrax 128 KB cartridge.

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each.
 If a byte written to $D500-$D5FF has highest bit set, the cartridge is
 disabled. Otherwise four lowest bits select the bank mapped to $A000-$BFFF.

 Reference:
 http://atarionline.pl/forum/comments.php?DiscussionID=2861&page=11#CommentBody_91383

+---------------------------------------------------------------------------+
| Type 69: aDawliah 32 KB cartridge                                         |
+---------------------------------------------------------------------------+

 A bank-switched cartridge built on a board marked "A-NA0002". Two variants of
 this board are known: one that connects the EPROM's pin 1 to +5V, and another
 that connects it to an 74169 counter. The cartridge houses a 256 kbit EPROM.
 (The former board variant can also contain a 512 kbit EPROM, but the board is
 hardwired to access only the upper half of the ROM.)

 The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
 memory is divided into 4 banks, 8 KB each. On power on, bank 0 is visible. Each
 access to $D500-$D5FF increases the visible bank number, looping to 0 after the
 last bank.

 Reference:
 http://atarionline.pl/forum/comments.php?DiscussionID=4260&page=1#Item_13

+---------------------------------------------------------------------------+
| Type 70: aDawliah 64 KB cartridge                                         |
+---------------------------------------------------------------------------+

 A bank-switched cartridge built on a board marked "A-NA0002", specifically the
 variant that connects the EPROM's pin 1 to an 74169 counter. The cartridge
 houses a 512 kbit EPROM. (Note: no such cartridge has been identified as of
 yet, all known specimens house a 256 kbit EPROM.)

 The cartridge occupies 8 KB of address space between $A000 and $BFFF. Its
 memory is divided into 8 banks, 8 KB each. On power on, bank 0 is visible. Each
 access to $D500-$D5FF increases the visible bank number, looping to 0 after the
 last bank.

 Reference:
 http://atarionline.pl/forum/comments.php?DiscussionID=4260&page=1#Item_13

+---------------------------------------------------------------------------+
| Type 71: Super Cart 64 KB 5200 cartridge (32K banks)                      |
+---------------------------------------------------------------------------+

 A bank-switched cartridge built on the "512K Super Cart" board manufactured
 by Bryan Edewaard in 2005. It was used in Bryan's 5200 conversion of M.U.L.E.

 The cartridge has 2 32 KB banks mapped to $4000-$BFFF. The cartridge has a
 4-bit bank counter, whose bits 0-1 are modified by reading from $BFD0-$BFDF,
 and bits 2-3 - by reading from $BFC0-$BFCF; but only bit 0 is significant.
 Effectively, banks are selected as follows:
 - a read from $BFD0-$BFD3 or $BFD8-$BFDB selects bank 0,
 - a read from $BFD4-$BFD7 or $BFDC-$BFDF selects bank 1.
 Additionally a read from $BFE0-$BFFF selects the topmost bank (i.e. 1). The
 5200 BIOS reads data from here on power up, thus ensuring a known boot state.

 Reference:
 https://atariage.com/forums/topic/69649-5200-game-announcement-now-shipping/?do=findComment&comment=856153

+---------------------------------------------------------------------------+
| Type 72: Super Cart 128 KB 5200 cartridge (32K banks)                     |
+---------------------------------------------------------------------------+

 A bank-switched cartridge built on the "512K Super Cart" board manufactured
 by Bryan Edewaard in 2005. It was used in the 5200 conversion of Bosconian.

 The cartridge has 4 32 KB banks mapped to $4000-$BFFF. The cartridge has a
 4-bit bank counter, whose bits 0-1 are modified by reading from $BFD0-$BFDF,
 and bits 2-3 - by reading from $BFC0-$BFCF; but only bits 0-1 are
 significant. Effectively, banks are selected as follows:
 - a read from $BFD0-$BFD3 selects bank 0,
 - a read from $BFD4-$BFD7 selects bank 1,
 - a read from $BFD8-$BFDB selects bank 2,
 - a read from $BFDC-$BFDF selects bank 3.
 Additionally a read from $BFE0-$BFFF selects the topmost bank (i.e. 3). The
 5200 BIOS reads data from here on power up, thus ensuring a known boot state.

 References:
 https://atariage.com/forums/topic/69649-5200-game-announcement-now-shipping/?do=findComment&comment=856153
 https://atariage.com/forums/topic/298850-bosconian-ultimate-for-atari-5200/

+---------------------------------------------------------------------------+
| Type 73: Super Cart 256 KB 5200 cartridge (32K banks)                     |
+---------------------------------------------------------------------------+

 A bank-switched cartridge built on the "512K Super Cart" board manufactured
 by Bryan Edewaard in 2005.

 The cartridge has 8 32 KB banks mapped to $4000-$BFFF. The cartridge has a
 4-bit bank counter, whose bits 0-1 are modified by reading from $BFD0-$BFDF,
 and bits 2-3 - by reading from $BFC0-$BFCF; but only bits 0-2 are
 significant. Effectively, banks are selected as follows:
 - a read from $BFC0-$BFC3 or $BFC8-$BFCB sets bit 2 to 0,
 - a read from $BFC4-$BFC7 or $BFCC-$BFCF sets bit 2 to 1,
 - a read from $BFD0-$BFD3 sets bits 0-1 to 00,
 - a read from $BFD4-$BFD7 sets bits 0-1 to 01,
 - a read from $BFD8-$BFDB sets bits 0-1 to 10,
 - a read from $BFDC-$BFDF sets bits 0-1 to 11,
 Additionally a read from $BFE0-$BFFF selects the topmost bank (i.e. 7). The
 5200 BIOS reads data from here on power up, thus ensuring a known boot state.

 Reference:
 https://atariage.com/forums/topic/69649-5200-game-announcement-now-shipping/?do=findComment&comment=856153

+---------------------------------------------------------------------------+
| Type 74: Super Cart 512 KB 5200 cartridge (32K banks)                     |
+---------------------------------------------------------------------------+

 A bank-switched cartridge built on the "512K Super Cart" board manufactured
 by Bryan Edewaard in 2005. It was used in the 5200 conversion of Bosconian.

 The cartridge has 16 32 KB banks mapped to $4000-$BFFF. The cartridge has a
 4-bit bank counter, whose bits 0-1 are modified by reading from $BFD0-$BFDF,
 and bits 2-3 - by reading from $BFC0-$BFCF. Banks are selected as follows:
 - a read from $BFC0-$BFC3 sets bits 2-3 to 00,
 - a read from $BFC4-$BFC7 sets bits 2-3 to 01,
 - a read from $BFC8-$BFCB sets bits 2-3 to 10,
 - a read from $BFCC-$BFCF sets bits 2-3 to 11,
 - a read from $BFD0-$BFD3 sets bits 0-1 to 00,
 - a read from $BFD4-$BFD7 sets bits 0-1 to 01,
 - a read from $BFD8-$BFDB sets bits 0-1 to 10,
 - a read from $BFDC-$BFDF sets bits 0-1 to 11,
 Additionally a read from $BFE0-$BFFF selects the topmost bank (i.e. 15). The
 5200 BIOS reads data from here on power up, thus ensuring a known boot state.

 References:
 https://atariage.com/forums/topic/69649-5200-game-announcement-now-shipping/?do=findComment&comment=856153
 https://atariage.com/forums/topic/298850-bosconian-ultimate-for-atari-5200/

+---------------------------------------------------------------------------+
| Type 75: Atarimax 1 MB Flash cartridge (new)                              |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each.
 The seven lowest bits of the address written to $D500-$D57F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected. There is also another version of the
 Atarimax cartridge that selected bank $7F on power up; see Type 42 for
 details.

 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

 Reference:
 https://atariage.com/forums/topic/184410-space-harrier-released/?do=findComment&comment=2331655

+---------------------------------------------------------------------------+
| Type 76: 16 KB Williams cartridge                                         |
+---------------------------------------------------------------------------+

 The cartridge has 2 banks mapped to $A000-$BFFF. An access to $D500 selects
 bank 0, $D501 - bank 1. An access to $D508-$D50F disables
 the cartridge.

+---------------------------------------------------------------------------+
| Type 77: MIO diagnostics 8KB cartridge                                    |
+---------------------------------------------------------------------------+

 The cartridge uses the same board as type 11 - SpartaDOS X, but uses only
 one 8KB bank, turned on by access to $D5E0. This is not actually a 
 bankswitching  cartridge, just re-uses existing SDX cart design, basically
 working as standard 8KB left slot cartridge.

+---------------------------------------------------------------------------+
| Type 78: Telelink II cartridge                                            |
+---------------------------------------------------------------------------+

 Cartridge uses only 8KB ROM, but occupies whole 16KB of address space. There
 is 256x4bit nvram mapped to $9000-$90FF (mirrored to whole $9000). Read mode
 is switched on by access to $D501, write mode by access to $D502. It's 
 possible that only R/W line is used for the mode switching.

+---------------------------------------------------------------------------+
| Type 79: Pronto cartridge                                                 |
+---------------------------------------------------------------------------+

 Similar to type 78, just the memory is mapped to $8F00-$8FFF. Also read from
 to $D501 turns on read mode, write to $D502 turns on write mode. It's quite
 possible that only R/W line is used for the mode switching.

+---------------------------------------------------------------------------+
| Type 80: JRC64 cartridge (linear)                                         |
+---------------------------------------------------------------------------+

 Cartridge takes 8KB of address space, contains 8 banks. By writing to
 $D500-$D57F, bank is selected by data bits D6-D4. Bit D7 turns cartridge off.
 On bootup, bank 0 is mapped in.

 Type 80 uses linear bank order in dump (0,1,2,3,4,5,6,7)
 Type 160 uses interleaved bank order in dump (7,3,5,1,6,2,4,0)

 Some cartridges contain 256KB of RAMdisk. Page is selected by writing to
 $D500-$D57F (7bits) with value with 4 upper bits set to 1 (4bits). That makes
 1<<11 = 2048 pages. Reads/writes are to region $D580-$D5FF (7bits). That
 totals to 18bits = 256KB of RAM usable by TT-Dos or BeWe DOS.

+---------------------------------------------------------------------------+
| Type 81: MDDOS cartridge                                                  |
+---------------------------------------------------------------------------+

 Same as M091 OSS scheme, adding bits 5 and 6 for selecting subpart. Totally
 4 x 16KB = 64KB.
 The only existing dump has this bank order: 
 00,01,09,0m,10,11,19,1m,20,21,29,2m,30,31,39,3m
 but the problem is that it's yet unverified if this is the true physical
 EPROM image order or not

+---------------------------------------------------------------------------+
| Type 82: COS32 cartridge                                                  |
+---------------------------------------------------------------------------+

 Cartridge contains 2 16KB banks, and takes whole 16KB of address space.
 Initially, 'the main' bank is mapped in, on any access to $D5xx,
 'the temporary' bank is mapped in, for cca 23 cycles.  Cart is turned on/off
 by hardware button on RD4/RD5.
 File order of banks is first 'the temporary', second 'the main' one.

+---------------------------------------------------------------------------+
| Type 83: SIC+ 1024 KB cartridge                                            |
+---------------------------------------------------------------------------+

 Same as Type 54, but with cartridge memory being divided into 64 banks.
 Bits 7, 4..0 - 16KB bank number (0..63). In SIC+ the control register is 
 mapped up to $D53F.

+---------------------------------------------------------------------------+
| Type 84: Corina 1M+8K EEPROM                                              |
+---------------------------------------------------------------------------+

 Takes whole 16KB of address space, bank 0 is mapped in on the bootup. The
 banking register is at $D500, and bank number is interpreted from written
 byte databits. Bit7 always turns cart off.

 This configuration interprets D0-D5 as bank, D6 turns on EEPROM, which
 mirrors across whole 16KB address space

+---------------------------------------------------------------------------+
| Type 85: Corina 512K + 512K SRAM + 8K EEPROM                              |
+---------------------------------------------------------------------------+

 Same as type 84.

 This configuration interprets D0-D4 as bank
 D5 = 0, D6 = 0 -> mapped from EPROM
 D5 = 1, D6 = 0 -> mapped from SRAM
 D5 = 0, D6 = 1 -> mapped from EEPROM

+---------------------------------------------------------------------------+
| Type 86: XE Multicart (8KB)                                               |
| Type 87: XE Multicart (16KB)                                              |
| Type 88: XE Multicart (32KB)                                              |
| Type 89: XE Multicart (64KB)                                              |
| Type 90: XE Multicart (128KB)                                             |
| Type 91: XE Multicart (256KB)                                             |
| Type 92: XE Multicart (512KB)                                             |
| Type 93: XE Multicart (1024KB)                                            |
+---------------------------------------------------------------------------+

 This cartridge is used only for running original 8KB/16KB. Allows to use
 any EPROM from 27xxx line to be used.
 On the bootup, last 8KBs are mapped to $A000-$BFFF. 
 Banks are switched by data written to $D5xx, by bits D6-D0. To select
 16KB cart, bit D7 must be on.

 Reference:
 https://blog.idorobots.org/entries/atari-xe-multicart.html

 +---------------------------------------------------------------------------+
 | Type 94: Ram-Cart 64 KB cartridge                                         |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by Unerring Masters company.
 It uses SRAM with 3V battery power supplied and operates in two different modes
 ("Read Only" and "Read/Write") turned by the user using switch on top of the case.
 Two static RAM 32Kx8 chips (D43257GU) and small logic providing control register
 to select memory bank and making it's visibility in Atari memory area is inside.

 RAM is divided into four 16K banks with their's lower half visible in $8000..$9FFF
 and upper half in $A000..$BFFF areas.
 Read/Write control register is located in $D500, but is available on the whole
 $D5 page for the sake of simplified address decoder is used.

 Control register bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - control register lock: 0-unlocked, 1-locked until power off
 3 - bank select
 4 - bank select
 5 - not connected
 6 - not connected
 7 - not connected

 Cartridge memory address bits mapping:

 %00000000 43xxxxxx xxxxxxxx
           :::::::: ::::::::
           ::++++++-++++++++-- address bus A0..A13
           ++----------------- control register bits

 Control register contains $00 on power-on.

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#64%20KB

 +---------------------------------------------------------------------------+
 | Type 95: Ram-Cart 128 KB cartridge                                        |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by Unerring Masters company.
 It's identical to cartridge type 94 but uses four 32Kx8 RAM chips.

 Location of control register and it's bits meaning is the same, but additional
 bit 5 is used to select bank as well as bits 3 and 4.

 Control register bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - control register lock: 0-unlocked, 1-locked until power off
 3 - bank select
 4 - bank select
 5 - bank select
 6 - not connected
 7 - not connected

 Cartridge memory address bits mapping:

 %00000005 43xxxxxx xxxxxxxx
         : :::::::: ::::::::
         : ::++++++-++++++++-- address bus A0..A13
         +-++----------------- control register bits

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#128%20KB

 +---------------------------------------------------------------------------+
 | Type 96: Double Ram-Cart 2x128/256 KB cartridge                           |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by Unerring Masters company.
 It's similar to cartridge type 95 but uses two 128Kx8 RAM chips (CXK581000P).

 Location of control register and it's bits meaning is almost the same,
 but bit 2 has different meaning depending on state of P1 and P2 switches.

 Additional P1 button on the top of case is used to choose mode of operation:
 * 2x128K - selected when P1 is in state 0
 * 256K - selected when P1 is in state 1

 Bit 2 of control register has the same meaning as in 94 cartridge type
 once 2x128K mode is chosen. Button P2 is used to choose active 128K module.

 If 256K mode is chosen then bit 2 is used to select 128K module and address
 full 256K memory area. P2 swaps 128K areas once it's 1 - if it's 0 then 128K
 modules are addressed in normal order.

 Control register bits meaning in this mode:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - select 128K module:
     * 0=$0xxxx-$1xxxx, 1=$2xxxx-$3xxxx if P2=0
     * 0-$2xxxx-$3xxxx, 1=$0xxxx-$1xxxx if P2=1
 3 - bank select
 4 - bank select
 5 - bank select
 6 - not connected
 7 - not connected

 Cartridge memory address bits mapping:

 %00000025 43xxxxxx xxxxxxxx
        :: :::::::: ::::::::
        :: ::++++++-++++++++-- address bus A0..A13
        ++-++----------------- control register bits

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#2x128%20KB%20/%20256%20KB

 +---------------------------------------------------------------------------+
 | Type 97: Ram-Cart 1 MB cartridge                                          |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by Unerring Masters company then refectored
 and republished in new form by GALTRON company.
 It's similar to cartridge type 95 but bits 2, 6 and 7 have changed function.

 Three switches A, B and C on the top of case are used to select one of eight
 128K modules. They state can be read by control register.

 Control register bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - state of A switch
 3 - bank select
 4 - bank select
 5 - bank select
 6 - state of B switch
 7 - state of C switch

 Cartridge memory address bits mapping:

 %0000CBA5 43xxxxxx xxxxxxxx
      :::: :::::::: ::::::::
      :::: ::++++++-++++++++-- address bus A0..A13
      :::+-++----------------- control register bits
      +++--------------------- switches

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#1%20MB

 +---------------------------------------------------------------------------+
 | Type 98: Ram-Cart 2 MB cartridge                                          |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by GALTRON company.
 It's identical to cartridge type 97.

 Three switches A, B and C on the top of case are used to select one of eight
 128K modules. They state can be read by control register.
 Additional switch 1/2M is used to choose one of two 1MB module.

 Control register bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - state of A switch
 3 - bank select
 4 - bank select
 5 - bank select
 6 - state of B switch
 7 - state of C switch

 Cartridge memory address bits mapping:

 %0001CBA5 43xxxxxx xxxxxxxx
     ::::: :::::::: ::::::::
     ::::: ::++++++-++++++++-- address bus A0..A13
     ::::+-++----------------- control register bits
     ++++--------------------- switches

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#2%20MB

 +---------------------------------------------------------------------------+
 | Type 99: Ram-Cart 4 MB cartridge                                          |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by GALTRON company.
 It's identical to cartridge type 97.

 Three switches A, B and C on the top of case are used to select one of eight
 128K modules. They state can be read by control register.
 Additional switch 1/2M is used to choose one of two 1MB module.
 Additional switch 2/4M is used to choose one of two 2MB module.

 Control register bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - state of A switch
 3 - bank select
 4 - bank select
 5 - bank select
 6 - state of B switch
 7 - state of C switch

 Cartridge memory address bits mapping:

 %0021CBA5 43xxxxxx xxxxxxxx
    :::::: :::::::: ::::::::
    :::::: ::++++++-++++++++-- address bus A0..A13
    :::::+-++----------------- control register bits
    +++++--------------------- switches

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#4%20MB

 +---------------------------------------------------------------------------+
 | Type 100: Ram-Cart 8 MB cartridge                                         |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by GALTRON company.
 It's identical to cartridge type 97 but extended with additional control register.

 There are no switches beside R/W and RESET on the top of case, so bank is selected
 only by software.

 Control register CARTCTL ($D500) bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - bank select bit 3
 3 - bank select bit 0
 4 - bank select bit 1
 5 - bank select bit 2
 6 - bank select bit 4
 7 - bank select bit 5

 Additional register MODSEL ($D501) is using to select 1MB memory module.
 Bits meaning:

 0 - module select bit 0
 1 - module select bit 1
 2 - module select bit 2
 3 - not connected
 4 - not connected
 5 - not connected
 6 - not connected
 7 - not connected

 Cartridge memory address bits mapping:

 %02107625 43xxxxxx xxxxxxxx
   ::::::: :::::::: ::::::::
   ::::::: ::++++++-++++++++-- address bus A0..A13
   :::++++-++----------------- CARCTL register bits
   +++------------------------ MODSEL register bits

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#8%2C%2016%20i%2032%20MB

 +---------------------------------------------------------------------------+
 | Type 101: Ram-Cart 16 MB cartridge                                        |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by GALTRON company.
 It's identical to cartridge type 97 but extended with additional control register.

 There are no switches beside R/W and RESET on the top of case, so bank is selected
 only by software.

 Control register CARTCTL ($D500) bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - bank select bit 3
 3 - bank select bit 0
 4 - bank select bit 1
 5 - bank select bit 2
 6 - bank select bit 4
 7 - bank select bit 5

 Additional register MODSEL ($D501) is using to select 1MB memory module.
 Bits meaning:

 0 - module select bit 0
 1 - module select bit 1
 2 - module select bit 2
 3 - module select bit 3
 4 - not connected
 5 - not connected
 6 - not connected
 7 - not connected

 Cartridge memory address bits mapping:

 %32107625 43xxxxxx xxxxxxxx
  ::::::: :::::::: ::::::::
  :::::::: ::++++++-++++++++-- address bus A0..A13
  ::::++++-++----------------- CARCTL register bits
  ++++------------------------ MODSEL register bits

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#8%2C%2016%20i%2032%20MB

 +---------------------------------------------------------------------------+
 | Type 102: Ram-Cart 32 MB cartridge                                        |
 +---------------------------------------------------------------------------+

 A bank switched cartridge released by GALTRON company.
 It's identical to cartridge type 97 but extended with additional control register.

 There are no switches beside R/W and RESET on the top of case, so bank is selected
 only by software.

 Control register CARTCTL ($D500) bits meaning:

 0 - $A000..$BFFF window enable:
     * "Read Only" mode: 0-enabled, 1-disabled
     * "Read/Write" mode: 0-disabled, 1-enabled
 1 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 2 - bank select bit 3
 3 - bank select bit 0
 4 - bank select bit 1
 5 - bank select bit 2
 6 - bank select bit 4
 7 - bank select bit 5

 Additional register MODSEL ($D501) is using to select 1MB memory module.
 Bits meaning:

 0 - module select bit 0
 1 - module select bit 1
 2 - module select bit 2
 3 - module select bit 3
 4 - module select bit 4
 5 - not connected
 6 - not connected
 7 - not connected

 Cartridge memory address bits mapping:

 %00000004 32107625 43xxxxxx xxxxxxxx
         : :::::::: :::::::: ::::::::
         : :::::::: ::++++++-++++++++-- address bus A0..A13
         : ::::++++-++----------------- CARCTL register bits
         +-++++------------------------ MODSEL register bits

 Reference:
 http://atariki.krap.pl/index.php/Ram-Cart#8%2C%2016%20i%2032%20MB

 +---------------------------------------------------------------------------+
 | Type 103: SiDiCar 32 KB cartridge                                         |
 +---------------------------------------------------------------------------+

 A bank switched cartridge described by "Tajemnice Atari" magazine closely
 related to polish software publisher L.K.Avalon.
 It uses CMOS static RAM 62256 chip with battery power supplied and small logic
 providing control register to select memory bank and making its visibility
 in Atari memory area.

 RAM is divided into four 8K banks visible in $8000..$9FFF area.
 Write only control register CARSET is located in $D5FF, however it's available
 on whole $D5 page because only /CCTL line is used to build simplified decoder.

 Control register bits meaning:

 0 - bank select
 1 - bank select
 2 - not connected
 3 - not connected
 4 - $8000..$9FFF window enable: 0-disabled, 1-enabled
 5 - not connected
 6 - not connected
 7 - write to control register 0-enabled, 1-disabled

 Cartridge memory address bits mapping:

 %010xxxxx xxxxxxxx
   ::::::: ::::::::
   ::+++++-++++++++-- address bus A0..A12
   ++---------------- control register bits

 Control register contains $00 on power-on.

 Reference:
 http://atariki.krap.pl/index.php/SiDiCar

+---------------------------------------------------------------------------+
| Type 104: J(atari)Cart 8 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. Only one bank can be used. Bit 7 of $D5xx address disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 105: J(atari)Cart 16 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 2 banks, 8 KB each.
 The one lowest bits of the address written to $D500-$D501 select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 106: J(atari)Cart 32 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 4 banks, 8 KB each.
 The two lowest bits of the address written to $D500-$D503 select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 107: J(atari)Cart 64 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 8 banks, 8 KB each.
 The free lowest bits of the address written to $D500-$D507 select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 108: J(atari)Cart 128 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 16 banks, 8 KB each.
 The four lowest bits of the address written to $D500-$D50F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 109: J(atari)Cart 256 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 32 banks, 8 KB each.
 The five lowest bits of the address written to $D500-$D51F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 110: J(atari)Cart 512 kB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 64 banks, 8 KB each.
 The six lowest bits of the address written to $D500-$D53F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 111: J(atari)Cart 1 MB Flash cartridge                               |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 128 banks, 8 KB each.
 The seven lowest bits of the address written to $D500-$D57F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 112: DCart 512 kB Flash cartridge                                    |
+---------------------------------------------------------------------------+

 This bank-switched cartridge occupies 8 KB of address space between $A000
 and $BFFF. The cartridge memory is divided into 64 banks, 8 KB each.
 The six lowest bits of the address written to $D500-$D53F select the bank
 mapped to $A000-$BFFF, bit 7 disables the cartridge.

 On the $D500 - $D5FF always you can read code from bank (Also when 
 the bank is turned off.). It is mirror from $B500 - $B5FF.

 Upon power up, bank 0 is selected.
 
 The cartridge also supports programming of the Flash ROM - this feature is
 currently not emulated.

+---------------------------------------------------------------------------+
| Type 159: Bounty Bob Strikes Back 40 KB 5200 alternative cartridge        |
+---------------------------------------------------------------------------+

 Similar to type 7, but the banks are distributed differently in the ROM
 file:
 - The first 8 KB is mapped to upper 16 KB of cartridge address space
   in Atari 5200. That is, $8000-$9FFF and $A000-$BFFF contain same data.
 - Four 4 KB banks (0,1,2,3) are mapped into $4000-$4FFF. An access to $4FF6
   selects bank 0, $4FF7 - bank 1, $4FF8 - bank 2, $4FF9 - bank 3.
 - Four 4 KB banks (4,5,6,7) are mapped into $5000-$5FFF. An access to $5FF6
   selects bank 4, $5FF7 - bank 5, $5FF8 - bank 6, $5FF9 - bank 7.

+---------------------------------------------------------------------------+
| Type 160: JRC64 cartridge (interleaved)                                   |
+---------------------------------------------------------------------------+

 Cartridge takes 8KB of address space, contains 8 banks. By writing to
 $D500-$D57F, bank is selected by data bits D6-D4. Bit D7 turns cartridge off.
 On bootup, bank 0 is mapped in.

 Type 80 uses linear bank order in dump (0,1,2,3,4,5,6,7)
 Type 160 uses interleaved bank order in dump (7,3,5,1,6,2,4,0)

 Some cartridges contain 256KB of RAMdisk. Page is selected by writing to
 $D500-$D57F (7bits) with value with 4 upper bits set to 1 (4bits). That makes
 1<<11 = 2048 pages. Reads/writes are to region $D580-$D5FF (7bits). That
 totals to 18bits = 256KB of RAM usable by TT-Dos or BeWe DOS.

