pet-plcc-multirom/README.md
2023-03-19 02:02:29 +01:00

70 lines
2 KiB
Markdown

# 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: Leave center solder bridge uncut
* 2K: Cut center solder bridge
* Configuration
* unconfigurable
* Leave all solder bridges
* Do not populate the pullup resistors
* 1-sided, 2-bit configurable
* Cut the solder bridges beneath the dip switches
* Populate the pullup resistors on the front side
* 2-sided, 4-bit configurable
* Cut the solder bridges beneath the dip switches and on the bacl side
* Populate the pullup resistors on both sides
## 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` |