Hello!
I recently realized that I needed to replace a 6331 PROM on the top board of my Hyper Sports since some of the colors was off.. (changed the C03027 prom with a good one from another Hyper Sports pcb)
Anyhow, I ordered some AM27S19PC proms just to realise the my programmer could only READ them.. not program them DOH!
Then I though, what if I just converted the raw binary data and put it into a ATF/GAL instead?
Obviously I will need to make a small adapter pcb, but I dont mind, would be cool to learn some WinCUPL in the process!
Installed WinCUPL and after some trial and error I got a code going that I think will work..
But I have some small questions..
1. Do I need to define the unused pins as anything?
2. The original PROM has the /OE tied to ground, do I even need to have a /OE in my design then, or can i just force "simple mode"?
This is how the code looks right now.. please let me know what you think? Have I missed anything?
Also, any reason to choose a GAL16V8 over AFT16V8 ?
Here is my code as of now.. It compiles OK, but I am unsure if it really works . I guess I have to simulate it in WinCUPL but thought I´d check with you experts first.
Name C03_C27;
Partno XX;
Date 30/09/21;
Revision 01;
Designer Bytestorm;
Company Logical Devices Inc.;
Assembly None;
Location C3;
Device G16V8AS;
/**********************************************************/
/** Test to replace the 6331 PROM with ATF16V8 **/
/** Position C3 on top pcb for Hyper Sports **/
/** **/
/**********************************************************/
/** Inputs **/
Pin [2..6] = [A0..4];
/** Outputs **/
Pin [12..19] = [Q0..7];
/** Declarations and Intermediate Variable Definitions **/
field byte = [Q7..0];
field address = [A4..0];
TABLE address => byte {
'b'00000 => 'b'00000000;
'b'00001 => 'b'11111111;
'b'00010 => 'b'10100100;
'b'00011 => 'b'10101101;
'b'00100 => 'b'11111000;
'b'00101 => 'b'11000000;
'b'00110 => 'b'00111111;
'b'00111 => 'b'00111000;
'b'01000 => 'b'00000111;
'b'01001 => 'b'00000000;
'b'01010 => 'b'00010100;
'b'01011 => 'b'00010011;
'b'01100 => 'b'10011110;
'b'01101 => 'b'10110111;
'b'01110 => 'b'10101110;
'b'01111 => 'b'01100110;
'b'10000 => 'b'00000000;
'b'10001 => 'b'11111111;
'b'10010 => 'b'10100100;
'b'10011 => 'b'10101101;
'b'10100 => 'b'11111000;
'b'10101 => 'b'11001001;
'b'10110 => 'b'00110000;
'b'10111 => 'b'01101001;
'b'11000 => 'b'00000111;
'b'11001 => 'b'10100011;
'b'11010 => 'b'01010101;
'b'11011 => 'b'01011110;
'b'11100 => 'b'11110000;
'b'11101 => 'b'00111110;
'b'11110 => 'b'10101110;
'b'11111 => 'b'10101000;
}
To come up with the above code just simply opened the bin file for the original 6331 and checked every line like this (assuming little-endian):
Is this the "way" to do this? I have never worked in WinCUPL before so I am not sure that this is the correct way.. (but maybe there are several ways to achieve this).
I would greatly appreciate some feedback and/or tips on this before I make some adapter pcbs and order parts .
And oh, heres a snippet from the original schematics on this area (I know that I can / need to change the pinout since the chips differ, I can just re-route that on the adapter pcb):
Thanks for your time!
I recently realized that I needed to replace a 6331 PROM on the top board of my Hyper Sports since some of the colors was off.. (changed the C03027 prom with a good one from another Hyper Sports pcb)
Anyhow, I ordered some AM27S19PC proms just to realise the my programmer could only READ them.. not program them DOH!
Then I though, what if I just converted the raw binary data and put it into a ATF/GAL instead?
Obviously I will need to make a small adapter pcb, but I dont mind, would be cool to learn some WinCUPL in the process!
Installed WinCUPL and after some trial and error I got a code going that I think will work..
But I have some small questions..
1. Do I need to define the unused pins as anything?
2. The original PROM has the /OE tied to ground, do I even need to have a /OE in my design then, or can i just force "simple mode"?
This is how the code looks right now.. please let me know what you think? Have I missed anything?
Also, any reason to choose a GAL16V8 over AFT16V8 ?
Here is my code as of now.. It compiles OK, but I am unsure if it really works . I guess I have to simulate it in WinCUPL but thought I´d check with you experts first.
Name C03_C27;
Partno XX;
Date 30/09/21;
Revision 01;
Designer Bytestorm;
Company Logical Devices Inc.;
Assembly None;
Location C3;
Device G16V8AS;
/**********************************************************/
/** Test to replace the 6331 PROM with ATF16V8 **/
/** Position C3 on top pcb for Hyper Sports **/
/** **/
/**********************************************************/
/** Inputs **/
Pin [2..6] = [A0..4];
/** Outputs **/
Pin [12..19] = [Q0..7];
/** Declarations and Intermediate Variable Definitions **/
field byte = [Q7..0];
field address = [A4..0];
TABLE address => byte {
'b'00000 => 'b'00000000;
'b'00001 => 'b'11111111;
'b'00010 => 'b'10100100;
'b'00011 => 'b'10101101;
'b'00100 => 'b'11111000;
'b'00101 => 'b'11000000;
'b'00110 => 'b'00111111;
'b'00111 => 'b'00111000;
'b'01000 => 'b'00000111;
'b'01001 => 'b'00000000;
'b'01010 => 'b'00010100;
'b'01011 => 'b'00010011;
'b'01100 => 'b'10011110;
'b'01101 => 'b'10110111;
'b'01110 => 'b'10101110;
'b'01111 => 'b'01100110;
'b'10000 => 'b'00000000;
'b'10001 => 'b'11111111;
'b'10010 => 'b'10100100;
'b'10011 => 'b'10101101;
'b'10100 => 'b'11111000;
'b'10101 => 'b'11001001;
'b'10110 => 'b'00110000;
'b'10111 => 'b'01101001;
'b'11000 => 'b'00000111;
'b'11001 => 'b'10100011;
'b'11010 => 'b'01010101;
'b'11011 => 'b'01011110;
'b'11100 => 'b'11110000;
'b'11101 => 'b'00111110;
'b'11110 => 'b'10101110;
'b'11111 => 'b'10101000;
}
To come up with the above code just simply opened the bin file for the original 6331 and checked every line like this (assuming little-endian):
Is this the "way" to do this? I have never worked in WinCUPL before so I am not sure that this is the correct way.. (but maybe there are several ways to achieve this).
I would greatly appreciate some feedback and/or tips on this before I make some adapter pcbs and order parts .
And oh, heres a snippet from the original schematics on this area (I know that I can / need to change the pinout since the chips differ, I can just re-route that on the adapter pcb):
Thanks for your time!
Last edited: