Sound PROM for PINK PANTHER
For MA-55 soundboard (SYSTEM 80)
Corrected release from bugs
affecting the original PROM.
The audio of Pink Panther PROM seems to work fine, however it contains several bugs which one is major.
By a happy combination of circumstances, this bug does not affect an original card. In contrast, on an adapter 6530/6532, the bug leads to a crash when it plays certain sounds. These bugs have been discovered and highlighted, during the study of MA-55 cards and the analysis of the audio PROM of Pink Panther (read the article about this).
At the end of the 1980s, supply CPU 6503 and RRIOT 6530 problem had been solved by the company ManilaMatic (MM Computer), in designing a board of substitution with more conventional circuits.
Later, in 2004, Olivier Houssard and Pascal Janin, were manufactured and published an 6530/6532 adapter plans. It used the same principle as the ManilaMatic board for replacing the RRIOT 6530 by a RIOT 6532 + EPROM.
Copied and cloned, found later in improved versions of this adapter trade, some with larger memories.
All these boards have in common, that none work with the Pink Panther and so far, nobody has been able to explain why.
RRIOT 6530 circuit is a complex component which one of the peculiarities is to integrate a PAL for decoding the addressing plan. The content of this PAL is not readable, ManilaMatic board designers have reproduced this decoding by logical deduction. However, the realized decoding, even if it is fully functional, is not strictly identical to that of the internal PAL.
The PROM of the Pink Panther has a major bug: a programming error causes the processor to execute code to an incorrect address. The sequence to execute is 3B A6 3C, which corresponds to a non official instruction for the 6503. The remainder of the sequence in memory, is the code would normally be executed.
This strange thing had well detected by the emulator VpinMame designers who had then implemented a workaround solution.
In the expected sequence, it is imperative not to modify the contents of A and X registers of the 6503. Sequence 3B A6 3C is actually a quite legal operation for a 6503 and is part of the non-official instructions. It's the statement RLA $3CA6,Y that can change the A registry. Address decoding directed, the behavior is different: to an original board the A register remains unchanged, on a ManilaMatic board the A register is changed. In the latter case, the originally scheduled sequence is disrupted and ends with a crash of the processor.
To correct this problem, could enhance the address decoding for the equivalent of one original of the 6530. But this expensive solution in hardware, is not satisfactory. Indeed, some adapters change the processor for a 6502 and depending on the manufacturer, the "non-official" instruction set is not guaranteed. It cannot be certain that the RLA statement will still work.
The simplest solution and the more effective, is to correct the bug of PROM and let run the originally scheduled sequence.
Blank PROM HM7643 being untraceable and impractical to be programmed, this component should be mostly replaced by an adapter.
Several models exist, the simplest being equipped with a memory EPROM 2716 (or EEPROM 2816), the contents of HM7643 (1 KB) is then encoded twice in the 2716 (2 KB). Others are equipped with larger capacity memory, containing several PROM audio, selectable by DIP switches. There are also replacement adapters 6530/6532, on which his memory is combined with that of the 6530.
As shown in the first photo, the 6503 CPU is replaced by a connector. It is connected to our test bench that allows complete control of these cards (RAM, ROM, PROM, I/O-Timer).
Corrected audio PROM
In order to remain the most standard possible, we provide a binary base corresponding to the contents of the HM7643 to 1 KB. Free everyone then use this code and save it in the proper manner according to its material. This binary file is available for free download.
Cette réalisation est disponible gratuitement.
Conditions of use
Any use outside the private framework must include reference to the origin of this program (for example: PINK PANTHER 'corrected version Flipprojets').