Hello!
I recently realised 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 data and put it into a GAL instead? The file is really small so should work?
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?
3. SYN, AC0, AC1
: this sets the mode of the GAL (1,2,3), where do I put this? (need to?)
This is how the code looks right now.. please let me know what you think? Have I missed anything (apart from that the data in the table might be wrong)
Also, any reason to choose a AFT16V8 or GAL16V8?
Bytestorm2021-10-01 08:26:28
I recently realised 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 data and put it into a GAL instead? The file is really small so should work?
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?
3. SYN, AC0, AC1
This is how the code looks right now.. please let me know what you think? Have I missed anything (apart from that the data in the table might be wrong)
Also, any reason to choose a AFT16V8 or GAL16V8?
Code:
[color="#0000ff"]/** 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;}
[/color]
Bytestorm2021-10-01 08:26:28