# AT27C040 PLCC to Commodore PET/CBM ROM Adapter PCB * Emulate 4K or 2K ROM * Up to 16 different images on one ROM, selectable with 4 DIP switches * Can be produced 1-sided (but then only 4 different images can be used) ## Variations * 4K vs 2K * 4K: Connect the two leftmost pads on the center 3-pad solder bridge * 2K: Connect the two rightmost pads on the center 3-pad solder bridge * Configuration * unconfigurable * Connect all 2-pad solder bridges * Do not populate the pullup resistors * Do not connect any DIP switches * 1-sided, 2-bit configurable * Only connect the 2-pad solder bridges beneath the PLCC socket * Populate the pullup resistors on the front side * Only connect 2 DIP switches in the two center positions. Leave the two outer positions unpopulated. * 2-sided, 4-bit configurable * Don't connect any of the 2-pad solder bridges * Populate the pullup resistors on both sides * Connect all 4 DIP switches. ## Image Generation Use `./mk27c040.py` to generate one 512K image from multiple individual 4K oder 2K images, e.g.: ``` ./mk27c040.py -o combined.bin --00000 image1.bin --20000 image2.bin ``` You can look up the base addresses for the different DIP switch positions in the tables below. When the output image has been created, you can flash it to the ROM chip (using `minipro` in this example): ``` minipro -p AT27C040@PLCC32 -w combined.bin ``` ### DIP Switch to Base Address Mapping When only 2 and 3 are populated: | 2 | 3 | Base Address | |---|---|--------------| | 0 | 0 | `$09000` | | 0 | 1 | `$01000` | | 1 | 0 | `$08000` | | 1 | 1 | `$00000` | When all 4 switches are populated: | 1 | 2 | 3 | 4 | Base Address | |---|---|---|---|--------------| | 0 | 0 | 0 | 0 | `$39000` | | 0 | 0 | 0 | 1 | `$19000` | | 0 | 0 | 1 | 0 | `$31000` | | 0 | 0 | 1 | 1 | `$11000` | | 0 | 1 | 0 | 0 | `$38000` | | 0 | 1 | 0 | 1 | `$18000` | | 0 | 1 | 1 | 0 | `$30000` | | 0 | 1 | 1 | 1 | `$10000` | | 1 | 0 | 0 | 0 | `$29000` | | 1 | 0 | 0 | 1 | `$09000` | | 1 | 0 | 1 | 0 | `$21000` | | 1 | 0 | 1 | 1 | `$01000` | | 1 | 1 | 0 | 0 | `$28000` | | 1 | 1 | 0 | 1 | `$08000` | | 1 | 1 | 1 | 0 | `$20000` | | 1 | 1 | 1 | 1 | `$00000` |