(c) 2009 David Wood Writeup for the Community Information Locator Commodore 64/128 addon cartridge (C) 1986 Community Information Locator, Inc. Commodore 64/128 board writeup. This board was discovered en masse during the ECCC2009 expo on a seller's table. The physical description is summarized as a large cartridge port addon that has sockets for up to 16 EPROMs and some simple logic. It operates by selecting the EPROMs in 8k sectors, mapping them in the External Function Rom range on the Commodore 128. More on this below. The board also has a watchdog timer that's enabled on powerup. It's important to either disable this watchdog by desoldering the bridge in the lower left of the card, or pulling the 74ls123 chip in the lower left. To use the watchdog, it's important to regularly access $DF00. There is no configuration to disable it in software and it provides no readback. The ROM mapping is somewhat complex. A quick summary of how the board is mapped is below: DE00-DEFF range: d0 romA13 [pads enabled] d1 romA14 d2 romA15 [pads to vcc] d3 d4 d5 /exrom a0 EromA2 a1 EromA1 a2 EromA0 a3 bankA0 a4 bankA1 a5 bankA2 In detail, romA13, romA14, and romA15 refer literally to the address bits sent to the rom ICs in the sixteen sockets. EromA0, EromA1, and EromA2 refer to the rom address, enabling the !CS line on the appropriate ROM chip in a selected group of ROMs. bankA0, bankA1, and bankA2 refer to the rom bank address, enabling a group of 8 roms to be addressed by the two pieces of information above. For example, to select the second 8k block in rom 3 of bank 1, you should do a write access of 2 to $DE16. A formula to select a given 8k block is such: poke 56832+bank*8+rom,block To configure the hardware on the card, there are four pads. One 'pad' is a pair of holes for a 2pin jumper. Removing this jumper disables the watchdog reset. A second pad is present just above this, and controls the EPROM socket pin 1 wiring. By default, this is wired to Vcc but can be changed to data bit 2 on the c64 bus as noted in the table above. The third pad is near the center and was cut on the boards we discovered. This enables/disables the card's control of the /EXROM line on the cartridge port. Apparently, the pad is enabled by default. Finally, there is a pad on the underside of the board that switches the ROMs' A13 line between the commodore bus and software control. This would be useful on a C128, as it maps up to 16k for the /ROML function rom space. However, the author believes the Commodore 64 does not map the additional 8k over the BASIC rom with just /EXROM asserted. The physical locations of the ROM sockets aren't in a logical order, and are detailed below in an ASCII approximation. The numbers inside brackets represent the ROM's ID by placing the bank number first followed by the ROM number. [00] [03] [10] [16] [01] [02] [04] [05] [06] [07] [13] [12] [11] [14] [15] [17] -jbevren PS: Thanks to _Six_ for verifying my findings.