Hampolt PF4 switch (10 positions, but it is best to install only 5 pieces of memory)
left and right locks (masks): PF4-A, PF4-B
you can find this switch under the code:
switch: Z49/DEC
locks (masks): PF44E10
printed circuit board (2 pcs.): Roth Elektronik RE899
Connector for soldering to the CD32 motherboard: Amphenol 20021221-00008C4LF
Connector for soldering onto the RE899 board: Amphenol 20021321-00008C4LF
precision socket (useful for connecting boards and for diagnostic purposes): any DIP8, e.g. CONNFLY DS1001-01-08BT1NSF6S
Resistors (5 pieces) 10 kOhm as small as possible, e.g. Ø1.6x3.6mm
Ribbon cable (6 cores are enough), 0.635mm pitch, wire
Since it may be difficult to buy such a cable by the meter, you can use an old 80-wire ATA tape (it will be much better for soldering in our project than a 40-wire tape, which has thicker wires)
Optional:
ribbon connector: JST 06KR-6H-P
connector for switch board: JST B6B-PH-K-S (LF)(SN)
We connect the boards together with SO08 pads on the outside, insert the DIP8 socket and solder them to electrically connect the two printed circuit boards.
We solder the Amphenol 20021321-00008C4LF connector to one of the sides of the RE899, and to the other side we soldered 5 pieces of EEPROM chips, stacking one on top of the other.
We connect the pins of the systems that will be connected to the switch to the power supply with 10kOhm resistors.
The common pin of the switch (C) is connected to one of the wires to the RE899 board, instead of the pins, which will be connected to the switch or to ground depending on the system version, explanation below.
It remains to determine which of the pins of the system we will connect to the switch and here we have several solutions:
#1. you can use original ATMELA E3 AT24C08N E 10SC25 memories (full designation from the housing) and connect pin #3 (A2) to the switch, connect the common pin of the switch to ground.
#2. you can use modernly produced memory that will work with CD32, I found only one with a capacity of 2kB, but more on that another time.
In the case of such memory, we will have to connect the SDA pin to the switch, and the common pin of the switch to the SDA CD32 line.
#3. any currently produced i2c EEPROM memory with a capacity of 1kB (24C08) or 2kB (24C16) can be used, provided that the error in the nonvolatile library is corrected.
We must pre-program each memory.
The contents of memory must start with a header:
00 56 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A0
and all 00 until the very end.
the entry at the very beginning "00 56 A9 00" is controlled by the library, if it is different, the library will assume that there is no memory or that it is unsupported.
"A0" is the end of saves, in "clean" memory it is at address 0x18, because game saves start here, then A0 will be moved to the end of saves.
The console language is stored at address 0x08:
UNKNOWN 0 /* default */
AMERICAN 1 /* American English */
ENGLISH 2 /* British English */
GERMANY 3
FRENCH 4
SPANISH 5
ITALIAN 6
PORTUGUESE 7
DANISH 8
DUTCH 9
NORWEGIAN 10
FINNISH 11
SWEDISH 12
JAPANESE 13
CHINESE 14
ARABIC 15
GREEK 16
HEBREW 17
KOREAN 18
Best regards and I strongly encourage you to cooperate on the development and corrections of nonvolatile.library.