Jump to content
Due to a large amount of spamers, accounts will now have to be approved by the Admins so please be patient. ×
IGNORED

Berzerk To Frenzy To Multigame


Recommended Posts

  • Administrators

IMAG0259.jpg

IMAG0258.jpg IMAG0260.jpg

 

This is a place marker for an ongoing project for a bit of fun.

I've successfully converted a Berzerk ZPU-1000 into Frenzy. My goal was no trace cuts and I've achieved that.

https://www.aussiearcade.com/showthread.php/100429-PCBWay?p=1255049#post1255049

I've made a little board that replaces the 74ls155 @6E with a prom on it for rom selection.

I won't go into details just yet because my next step is a single rom hack then a 2 in 1. I want to learn how to use a GAL as a decoder etc so its a bit of a learning exercise for me.

Link to comment
Share on other sites

  • Administrators

IMAG0266.jpg IMAG0267.jpg

Next phase complete.

Got Frenzy running on a single rom

IMG_20190813_165058.jpg

Needed to draw up a truth table in a way I could understand so I put the prom used for memory selection on a breadboard and set to work mapping the address lines and outputs from 0000h to FFFFh (64k)

The next step will be modifying this table to get Berzerk working on a single rom then with somebody's help convert this to a GAL. Once I understand how it works next step is bringing it all together for some sort of multigame adapter to run Berzerk and Frenzy on the same board.

Link to comment
Share on other sites

Excellent work considering previous knowledge. I love it when someone has a go at something they aren't familiar with. Looks like you have 5 outputs....0000h.

Another way is to run both roms and make and break the pair of rom outputs only using something like a 4016 or a 4066 chip. They are a bilateral switch but are basically a 4 pole relay but for data lines. You will need two bilateral switch chips to cover the 5 lines of data but each device only needs one control wire to switch it and you can cascade as many chips as you want.

It will do pretty close to what a single rom with do but using more common parts rather than one custom chip doing it all. The trade off is you will need to make a board but I think you have been doing excellent work on boards already so that shouldn't be a problem.;)

Link to comment
Share on other sites

  • Administrators

its a 82s123 32x8 prom 5 address lines A0-A4 and 8 data used for memory selection. The 8 LED's represent your binary output for each data line so going through each address line which represent A11-15 (0000-FFFF) I was able to manually work out the truth table.

That's just the way I have to learn stuff, I've always been hands on rather than a book worm.

 

Berzerk Decoder.jpg Frenzy Decoder.jpg

Here's the schematics for the memory selection on both Berzerk and Frenzy.

Essentially what I've done up until this point is made an adapter for the 82s123 prom to replace the 74ls155. Of course its not as simple as that, I still had to desolder a couple of IC's and bend their legs out and do some rewiring and unfortunately Frenzy's memory map is different also. I'm guessing they did this to stop people doing a straight rom swap from Berzerk to Frenzy.

 

Berzerk's memory map is pretty straight forward.

Rom 0 0000h-07FFh - 2k

Ram 0800h-0FFFh - 2k ram

Roms 1-6 2k banked to make 4k

Rom 1 1000h-17FFh

Rom 2 1800h-1FFFh

Rom 3 2000h-27FFh

Rom 4 2800h-2FFFh

Rom 5 3000h-37FFh

Rom 6 3800h-3FFFh

Frenzy is

Rom 1 to 4 0000h to 3FFFh

Rom 5 is C000h to CFFFh

and the ram has been moved from 0800h-0FFFh to F800h to FFFFh

 

So in theory is should just be a matter of changing a few things in the prom to get Berzerk to run however not sure if I want to wasn't another precious 82s123 which is why I want to play around with GAL's

Link to comment
Share on other sites

its a 82s123 32x8 prom 5 address lines A0-A4 and 8 data used for memory selection. The 8 LED's represent your binary output for each data line so going through each address line which represent A11-15 (0000-FFFF) I was able to manually work out the truth table.

That's just the way I have to learn stuff, I've always been hands on rather than a book worm.

 

https://www.aussiearcade.com/attachment.php?attachmentid=151871 https://www.aussiearcade.com/attachment.php?attachmentid=151872

Here's the schematics for the memory selection on both Berzerk and Frenzy.

Essentially what I've done up until this point is made an adapter for the 82s123 prom to replace the 74ls155. Of course its not as simple as that, I still had to desolder a couple of IC's and bend their legs out and do some rewiring and unfortunately Frenzy's memory map is different also. I'm guessing they did this to stop people doing a straight rom swap from Berzerk to Frenzy.

 

Berzerk's memory map is pretty straight forward.

Rom 0 0000h-07FFh - 2k

Ram 0800h-0FFFh - 2k ram

Roms 1-6 2k banked to make 4k

Rom 1 1000h-17FFh

Rom 2 1800h-1FFFh

Rom 3 2000h-27FFh

Rom 4 2800h-2FFFh

Rom 5 3000h-37FFh

Rom 6 3800h-3FFFh

Frenzy is

Rom 1 to 4 0000h to 3FFFh

Rom 5 is C000h to CFFFh

and the ram has been moved from 0800h-0FFFh to F800h to FFFFh

 

So in theory is should just be a matter of changing a few things in the prom to get Berzerk to run however not sure if I want to wasn't another precious 82s123 which is why I want to play around with GAL's

 

You could try a fast eprom in place of the prom trav, that way you can experiment all you like without having to worry about wasting proms or programming GALs

Link to comment
Share on other sites

  • Administrators

I wanted to verify this worked before posting it and it does so..

A0=A11 on Z80
A1=A12
A2=A13
A3=A14
A4=A15

[b]82s123 32x8 TTL Prom for Frenzy Memory Select.
20k Rom using 5 2732's[/b]
Address		 Prom Output.
A0 A1 A2 A3 A4 : D0 D1 D2 D3 D4 D5 D6 D7 :HEX :Rom :Memory Location
0  0  0  0  0  : 0  1  1  1  1  1  1  1 : FE : 1   :0000h-07FFh 
1  0  0  0  0  : 0  1  1  1  1  1  1  1 : FE : 1   :0800h-0FFFh 
0  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 2   :1000h-17FFh 
1  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 2   :1800h-1FFFh 
0  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 3   :2000h-27FFh 
1  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 3   :2800h-2FFFh 
0  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 4   :3000h-37FFh 
1  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 4   :3800h-3FFFh 

0  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :4000h-47FFh
1  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :4800h-4FFFh
0  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :5000h-57FFh
1  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :5800h-5FFFh
0  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :6000h-67FFh
1  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :6800h-6FFFh
0  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :7000h-77FFh
1  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :7800h-7FFFh

0  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :8000h-87FFh
1  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :88FFh-8FFFh
0  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :9000h-97FFh
1  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :	   :9800h-9FFFh
0  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :A000h-A7FFh
1  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :A8FFh-AFFFh
0  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :	   :B000h-B7FFh
1  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :B800h-BFFFh

0  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :C000h-C7FFh
1  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :C8FFh-CFFFh
0  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :D000h-D7FFh :Not used
1  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :D800h-DFFFh :Not used
0  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :E000h-E7FFh
1  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :E800h-EFFFh
0  1  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :F000h-F7FFh
[b]1  1  1  1  1  : 1  1  1  1  1  1  0  1 : BF : Ram :F800h-FFFFh 2k Ram[/b]

Berzerk 12k Rom Using 6 x 2716's
Rom 0 0000h-07FFh - 2k
Ram   0800h-0FFFh - 2k ram 
Roms 1-6 2k banked to make 4k
Rom 1 1000h-17FFh
Rom 2 1800h-1FFFh

Rom 3 2000h-27FFh
Rom 4 2800h-2FFFh

Rom 5 3000h-37FFh
Rom 6 3800h-3FFFh
A0 A1 A2 A3 A4 : D0 D1 D2 D3 D4 D5 D6 D7 :HEX :Rom :Memory Location
0  0  0  0  0  : 0  1  1  1  1  1  1  1 : FE : 0   :0000h-07FFh
[b]1  0  0  0  0  : 1  1  1  1  1  1  0  1 : BF : Ram :0800h-0FFFh 2k Ram[/b]
0  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 1   :1000h
1  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 2   :1800h
0  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 3   :2000h
1  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 4   :2FFFh
0  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 5   :3000h
1  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 6   :3FFFh Not Used

0  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :4000h
1  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :
0  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :
1  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :
0  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :
1  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :
0  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :
1  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :7FFFh

0  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :8000h
1  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :
0  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :
1  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :
0  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :  
1  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :
0  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :
1  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :BFFFh

0  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :C000h :Not Used
1  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :CFFFh :Not Used
0  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :D000h :Not used
1  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :DFFFh :Not used
0  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :E000h
1  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :EFFFh
0  1  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :F000h
1  1  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :FFFFh

Here's the truth table I came up with and the modifications needed to get Berzerk running on the modified hardware to run Frenzy.

Basically the ram location needs to be adjusted.

IMG_20190816_062446.jpg IMG_20190816_062517.jpg

Burnt the modified rom to a 27C16 and used my breadboard to jumper it into the prom adapter.

All the unused address lines are tied low, only A0-A4 used and D6 and D7 used for the I/O and Ram CE used. The individual data lines used as rom enables (CE) are not needed due to the single rom mod.

As you can see worked great!

 

So now we have both games running we can move forward to replacing the memory decoder prom with a GAL. The GAL will be used as a memory decoder and switch for both games and hopefully replace some logic on the Berzerk so I can design a board that slots into the Z80 socket and has an NVram to store both games high scores etc.

 

Disclaimer.

I've never done this before so laugh all you like :p

PartNo   00 ;
Date     15/08/2019 ;
Revision 01 ;
Designer Arcade King ;
Company  Aussie Arcade ;
Assembly None ;
Location  ;
Device   G16V8 ;

/* *************** INPUT PINS *********************/
PIN [2..6] = [A15..A11]; /* Pins 1 to 5 A15 to A11 */ 

/* *************** OUTPUT PINS *********************/
PIN 12 = ROM1                        ; /*                                 */ 
PIN 13 = ROM2                        ; /*                                 */ 
PIN 14 = ROM3                        ; /*                                 */ 
PIN 15 = ROM4                        ; /*                                 */ 
PIN 16 = ROM5                        ; /*                                 */ 
PIN 17 = ROM6                        ; /*                                 */ 
PIN 18 = RAM                          ; /*                                 */ 
PIN 19 = IO                             ; /*                                 */ 

ROM1 = !A11 & !A12 & !A13 & !A14 & !A15 # A11 & !A12 & !A13 & !A14 & !A15 /* 0000h to 0FFFh */
ROM2 = !A11 & A12 & !A13 & !A14 & !A15 # A11 & A12 & !A13 & !A14 & !A15; /* 10000h to 1FFFh */
ROM3 = !A11 & !A12 & A13 & !A14 & !A15 # A11 & !A12 & A13 & !A14 & !A15; /* 2000h to 2FFFh */
ROM4 = !A11 & A12 & A13 & !A14 & !A15 # A11 & A12 & A13 & !A14 & !A15; /* 3000h to 3FFFh */
ROM5 = !A11 & !A12 & !A13 & A14 & A15 # A11 & !A12 & !A13 & A14 & A15; /* C000h to CFFFh */
RAM = A11 & A12 & A13 & A14 & A15; /* F800h to FFFFh */

 

Watching several YouTube videos and reading some doc's I pieced together enough info to program WinCUPL.

What I wanted to do (baby steps) is to fist replicate the proms behavior in a GAL and to my surprise the above did(on the breadboard at least). I've left out the I/O for now because that's a lot of typing and I'm sure there's a quicker way to do it but for now this is what works for me.

Now I'm fully aware I don't need the single rom chip enables using a single rom hack however as I said my first goal was to mimic the behavior of the prom in GAL. I'll be able to free up all those rom pins 12-17 for other purposes.

 

Next step is to modify the GAL to switch between Berzerk and Frenzy.

I don't want to be spoon fed I like working things out for myself however any suggestions to neaten up the code would be appreciated.

Link to comment
Share on other sites

  • Administrators
Too smart dude, too smart.

 

Seriously, I take my hat off to you Trav, really is awesome to see you work this shit out. I'm impressed and envious of your ability to acquire knowledge so rapidly.

 

Thanks Woody however my mantra has always been if I can do it anybody can. I've always had learning difficulties and have to have a more hands on approach to things, It's a real struggle at times.

Hope to catch up with you in the near future!

Link to comment
Share on other sites

So both these games used the same mother board but the game was changed by a chip change, that is correct aye?.

 

If that is the case you, with your new found self taught knowledge could possibly do similar to games like Defender to Colony 7, NBA Jam to NBA Jam CE, Mortal Kombat to MKII to MKIII.

 

So many games were converted by swapping chips but your system always you to swap between the games without swapping chips. Very clever.

Link to comment
Share on other sites

  • Administrators

The cpu boards for Berzerk (ZPU-1000) and Frenzy (ZPU-1001) are similar but different enough so its not a direct rom swap.

I've got 2 sets of Berzerk boards so I thought for a bit of fun I'd modify one of them to run Frenzy and it's progressed from there.

The ZPU-1001 for Frenzy are pretty much unobtainium.

Link to comment
Share on other sites

  • Administrators

IMG_20190820_134448.jpg

Successfully got a GAL20V8 doing the job of the 82s123 prom for Frenzy.

 

/* *************** INPUT PINS *********************/

PIN 1 = GAME; /* !GAME = BERZERK GAME = FRENZY */

PIN [2..6] = [A15..A11]; /* Pins 2 to 6 A15 to A11 */

 

/* *************** OUTPUT PINS *********************/

PIN 22 = RAM;

PIN 21 = IO;

 

!RAM = A11 & A12 & A13 & A14 & A15;

!IO = !A11 & !A12 & !A13 & A14 & !A15 # A11 & !A12 & !A13 & A14 & !A15

# !A11 & A12 & !A13 & A14 & !A15 # A11 & A12 & !A13 & A14 & !A15

# !A11 & !A12 & A13 & A14 & !A15 # A11 & !A12 & A13 & A14 & !A15

# !A11 & A12 & A13 & A14 & !A15 # A11 & A12 & A13 & A14 & !A15

# !A11 & !A12 & !A13 & !A14 & A15 # A11 & !A12 & !A13 & !A14 & A15

# !A11 & A12 & !A13 & !A14 & A15 # A11 & A12 & !A13 & !A14 & A15

# !A11 & !A12 & A13 & !A14 & A15 # A11 & !A12 & A13 & !A14 & A15

# !A11 & A12 & A13 & !A14 & A15 # A11 & A12 & A13 & !A14 & A15;

 

Next I'll be programming a 27c010 rom with both games and using the GAL to switch between Berzerk and Frenzy...making some progress at least.

Link to comment
Share on other sites

  • Administrators
Haven't run out of boards to fix yet have you?. I'm sure I can dig some more up here somewhere.;)

 

Not enough hours in a day more like it. I'm really keen to put my Galaxian 19 in 1 together but haven't got around to it.

Link to comment
Share on other sites

  • Administrators

IMG_20190821_132607.jpg IMG_20190821_132631.jpg

IMG_20190821_132631_1.jpg

I've got both games running on a single 1meg rom now and using the gal I've programmed in the changes to make it switch using a jumper and a another one to A16 on the rom to switch upper and lower banks.

I've pretty much done all I can now with my breadboard. I need to buy a protoboard now and do some hard wiring for the next step which will be making a board that can slot into the cpu and rom socket, adding the logic needed for the buffers and programming the GAL to deal with the logic for the CE and OE for the Rom and NVram. Final stage will be using EasyEDA to make a professional backyarder style board.

Unfortunately you cant make a board that wont require some minor modifying of the original hardware to run both games. The only 2 in 1 boards I've seen is one somebody made several years ago that was a complete swap for the ZPU-1000 board and the Jroc one that replaces all the boards....but where is the fun in that?

 

Anyway last update for awhile until I get the bits I need go further.

Link to comment
Share on other sites

  • 2 weeks later...
  • Administrators

Still waiting on parts to continue the project however in the meantime I decided to have a go at repairing the original Electrohome GO7 chassis. I was planning to put my last good tube and chassis in the machine but seeing as these are getting scarce why not have a go?

When I first turned this machine on there was some humming coming from the chassis then bang, a large flash then nothing. I assumed the fuse had blown but when I pulled the chassis out to inspect it both fuses were ok....

Nothing obvious was bad, found several bad caps and one open, I ended up replacing the lot. Checked for dry joints and reflowed the joints around the EHT and also did the mod described HERE.

Powered it up on the bench with a step down transformer, adjusted B+ to 120 volts DC and she fired right up, I could see a glow in the neck and feel static on the screen, a good start.

Next step was to hook it up to the the test rig which was running Galaxian. I couldn't get the thing to sync. I read somewhere that there's a known issue with some Go7's where a couple incorrectly installed of resistors from factory which is part of the negative horizontal sync circuit (R314 and R317) can cause this issue, both are supposed to be 390ohms but low and behold R314 was 4.7k on mine. Replacing R314 with a 390ohm resistor fixed the issue. I'm guessing Berzerk is a little more forgiving in the h-sync department.

 

IMG_20190902_114906.jpg

IMG_20190902_114808.jpg

Can see the Berzerk screen burn with the light on....seen much worse.

IMG_20190902_114642.jpg IMG_20190902_115212.jpg

Looks fantastic with the light off.

Pretty happy overall, was worth saving it from the scrap heap.

 

Things to do.

Replace the two red and green gain 200ohm pots. They were dodgy as.

Hot glue the convergence rings in place.

While its out of the machine I'll hook Berzerk up and do all the adjustments so its ready to go.

Link to comment
Share on other sites

  • 2 weeks later...
  • Administrators

IMG_20190910_130407.jpg IMG_20190910_130450.jpg

IMG_20190910_130510.jpg

 

Some more progress over the weekend.

Moved everything onto the protoboard. I've programmed the 22v10 Gal to do the memory decoding, game selection, logic for the rom output and chip enables. Works fantastic..a lot of trial and error though.

 

Next step is to find a suitable NVram to replace the onboard ram so both games high scores and audits can be saved individually, maybe a Dallas NV1220?.

I also want to program in a way to reset the cpu while switching games to save turning the machine off.

The rest is just the logic for the OE and CE for the RAM and DIR on a 74ls245 for the databuss

 

One problem I'm going to have is with the dip switch settings.

Frenzy's bonus Life dips clash with Berzerks dips for the crosshatch and switch tests.

The only way I can see around this is to hack Berzerk to match Frenzy and move the test dips to F2 3 and 4. I'll have to tackle that hurdle when I come to it.

Link to comment
Share on other sites

  • Administrators

IMG_20190912_130517.jpg

Exciting! I'm getting close to finishing my prototype.

Added in a 16k ram using a 6116 for the time being until my nvrams arrive. Now both games get their own ram space to save high scores etc.

You can see both original rams and the decoder are gone so my little board is running under her own steam now :D

Just need to sort out the databuss dir and add in a reset line from the GAL to the Z80. Probably use a transistor for this to save frying the GAL.

Probably add some LED's on there....because why not? every board needs blinky flashy LED's that nobody will see.

Gal code is looking like

/* *************** INPUT PINS *********************/
PIN 1 = GAME; /* GAME = BERZERK !GAME = FRENZY */
PIN [2..6] = [A11..A15]; /* Pins 2 to 6 A15 to A11 */
PIN 7 = MREQ;
PIN 8 = RFSH;
PIN 9 = WR;
PIN 10 = RD;


/* *************** OUTPUT PINS *********************/
PIN 15 = ROMOE;
PIN 16 = ROMCE;
PIN 20 = RAMWE;
PIN 21 = RAMCE;
PIN 22 = DIR;
PIN 23 = GAMESELECT;

RAM = A11 & A12 & A13 & A14 & A15 & !GAME # A11 & !A12 & !A13 & !A14 & !A15 & GAME;
IO = !A11 & !A12 & !A13 & A14 & !A15 # A11 & !A12 & !A13 & A14 & !A15 
  # !A11 & A12 & !A13 & A14 & !A15 # A11 & A12 & !A13 & A14 & !A15 
  # !A11 & !A12 & A13 & A14 & !A15 # A11 & !A12 & A13 & A14 & !A15
  # !A11 & A12 & A13 & A14 & !A15 # A11 & A12 & A13 & A14 & !A15
  # !A11 & !A12 & !A13 & !A14 & A15 # A11 & !A12 & !A13 & !A14 & A15
  # !A11 & A12 & !A13 & !A14 & A15 # A11 & A12 & !A13 & !A14 & A15
  # !A11 & !A12 & A13 & !A14 & A15 # A11 & !A12 & A13 & !A14 & A15
  # !A11 & A12 & A13 & !A14 & A15 # A11 & A12 & A13 & !A14 & A15;

!GAMESELECT = GAME;
!ROMOE = !(MREQ & RFSH);
!ROMCE = !(RAM # IO);
!RAMCE = RAM # (RD & WR);
!RAMWE = !WR;
!DIR = IO;

 

IMG_20190912_130531_1.jpg IMG_20190912_130543.jpg

Thought I'd show you the mess underneath as well :)

Link to comment
Share on other sites

  • 2 weeks later...
  • Administrators

Update Time.

IMG_20190925_133056.jpg IMG_20190925_133102.jpg

We're well and truly in the home stretch now.

Finished the programming for the GAL databuss IO logic which connects to pin 1(dir) pin on a 74ls245 . I found this pretty annoying difficult to get right. I was stuck on the Vram test for ages (3 flashes). I ended up having to to use my scope so I could check the output of each IC matched the output of the GAL.

 

Decided to isolate the Z80 reset and upgrade the original flaky power on reset circuit with a Microchip Mcp120. That one little transistor looking chip above the rom does the job of all the components I've circled on the board in the second pic, works fantastic. Even though I had repaired that section, it's been playing up and will probably keep playing up due to corrosion damage from the battery. Now its fixed for good :) I'm also going to add in a little button to reset the board manually.

Added in 100nf filter caps.

Cut down the prototype board.

 

Not much to do now, still waiting on my NVram.

I'd like to replace the switch with a push button switch, problem is I'd have to program in some sort of flip flop circuit into the GAL which I'm not sure how to do. I also want this to reset the CPU at the same time so the 2 games could be switched on the fly.

Besides that I'm very happy at the progress. I've basically achieved my main goal which was to make a Berzek/Frenzy multigame.

Once I'm happy that everything is working perfectly I'll make something up in EasyEDA and make the board look spiffy.

Link to comment
Share on other sites

  • 3 weeks later...
  • Administrators

IMG_20191016_161502.jpg

The Dallas DS1220Y NVRAM's arrived so the prototype is 100% finished now.

I added in the reset button also which you can hold down and flick the switch to change games.

Everything works as intended and no corruption in the audits or high scores in either game so now its time to fire up EasyEDA and create something spiffy looking.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...