Page 1 of 7

[v1.1] MECB 1MB ROM Expansion Card

Posted: Mon Nov 20, 2023 2:00 am
by Editor
Some time ago I decided I wanted a “Cartridge” style ROM Card. This idea originally came about when thinking I would like to eventually mimic the CreatiVision TV console of the early 1980’s.

The CreatiVision is a 6502 based system, which also uses the TMS VDP Video chip and a Motorola PIA. So, once I have a 6502 CPU Card, I'll be ready to expore this (some form of controller / keyboard will still need to be devised).

Originally, I was thinking of just using a Backplane Card slot, as a custom “Cartridge” slot for Game Cartridges.

But, after expanding on this idea, and after checking what appropriate DIP ROM chips were available at a reason price, I arrived at the thought of making a bank selectable 1MB ROM Expansion Card. One that could be used to hold maybe 16 Games, selectable for a TV Console recreation, or that could also be used with any CPU Card to allow easily switching ROM images.

It further occurred to me that the original 64-pin ECB bus already had 20 pins allocated for A0 - A19 (on the A&C rows), allowing a full 1MB to be addressed from the existinf MECB bus.

As a result, I’ve designed a flexible 1MB ROM Expansion Card, that combines a manually switchable 64K ROM bank option, with the ability to (instead) configure support for utilising the additional A16 - A19 (1MB) address bus pins available on the MECB.

You can read the full details and view the video here: Minimalist Europe Card Bus (MECB) – 1MB ROM Expansion Card (Part 1)

In Part 2, I continue on, to test my 1MB ROM Expansion Card, which also involves resolving a logic error, before finally completing the testing of my first assembled card.

You can read the full details and view the Part 2 video here: Minimalist Europe Card Bus (MECB) – 1MB ROM Expansion Card (Part 2)

If you'd like a ROM Expansion Card to experiment with, please visit my Tindie Store.

Re: [P] MECB 1MB ROM Expansion Card

Posted: Mon Nov 27, 2023 11:40 am
by bugeyedcreepy
So, any chance the keyboard (and possibly mouse?) controller might be a ps/2 style controller, possibly with optional dupont headers for an internal (non ps/2 port) connection? And whatever interface you did use, would be at the opposite end to the connector like all other cards you've done so far, right (I'm kinda hoping that might be a standard of sorts going forward)? Also, what would be involved in having a classic style speaker connector alongside, maybe on that same card, so a non-synth audio speaker could be connected for keyboard clicks and of course, those pre-gaming home computers that had plain old "beeps" & "boops" on syntax errors in basic & other epic achievements at the classic consoles of yore...?

Also, a cartridge ROM would still need RAM, surely? so maybe 32k rom banks would be enough, and 16 banks would be available out of a 512k ROM chip? Interesting to see how you implement this with the CPU card & bus, this seems every bit as flexible as you promised. :D No pressure...

Re: [P] MECB 1MB ROM Expansion Card

Posted: Mon Nov 27, 2023 8:29 pm
by Editor
bugeyedcreepy wrote: Mon Nov 27, 2023 11:40 am So, any chance the keyboard (and possibly mouse?) controller might be a ps/2 style controller, possibly with optional dupont headers for an internal (non ps/2 port) connection?
If I were to eventually make a controller interface card, then I suspect for a keyboard I would go with PS/2, as it's a simple retro friendly serial interface.
Likewise, for a game controller, I'd probably go with NES controller ports as these are quite popular and easy to interface to.
bugeyedcreepy wrote: Mon Nov 27, 2023 11:40 am And whatever interface you did use, would be at the opposite edge to the connector like all other cards you've done so far, right (I'm kinda hoping that might be a standard of sorts going forward)?
I've tried to locate any connectors or controls at the opposite board side to the bus connector. i.e. What is normally the top edge (or front) of the board. I've also started adding PCB headers next to buttons (eg. Reset Button), to allow easily case mounting buttons.
bugeyedcreepy wrote: Mon Nov 27, 2023 11:40 am Also, what would be involved in having a classic style speaker connector alongside, maybe on that same card, so a non-synth audio speaker could be connected for keyboard clicks and of course, those pre-gaming home computers that had plain old "beeps" & "boops" on syntax errors in basic & other epic achievements at the classic consoles of yore...?
So far, the only Audio solution I've designed is the SN76489A on the Motorola I/O Card. It provides just line-level out. I haven't included an amplifier on-board (to drive a speaker), as amplified speakers and small 5V amplifier modules (for an internal case speaker), are really cheap and easy to find these days.
bugeyedcreepy wrote: Mon Nov 27, 2023 11:40 am Also, a cartridge ROM would still need RAM, surely? so maybe 32k rom banks would be enough, and 16 banks would be available out of a 512k ROM chip? Interesting to see how you implement this with the CPU card & bus, this seems every bit as flexible as you promised. :D No pressure...
The RAM for a system that used a cartridge ROM would be provided by the RAM located on the CPU card. The design of my ROM Expansion Card has up to 16 banks of up to 64KB each. This allows the actual portion of the 64K memory map ROM space that is asigned, to be defined by the Expansion Card's PLD. i.e. Any of the 64K address space could be assign to the ROM bank (or banks).
If you only need 8 banks, you can just populate only one ROM chip (512KB ROM).

Re: [P] MECB 1MB ROM Expansion Card

Posted: Tue Nov 28, 2023 7:01 am
by bugeyedcreepy
Editor wrote: Mon Nov 27, 2023 8:29 pm If I were to eventually make a controller interface card, then I suspect for a keyboard I would go with PS/2, as it's a simple retro friendly serial interface.
Likewise, for a game controller, I'd probably go with NES controller ports as these are quite popular and easy to interface to.
Sweet!
Editor wrote: Mon Nov 27, 2023 8:29 pm I've tried to locate any connectors or controls at the opposite board side to the bus connector. i.e. What is normally the top edge (or front) of the board. I've also started adding PCB headers next to buttons (eg. Reset Button), to allow easily case mounting buttons.
Excellent!!
Editor wrote: Mon Nov 27, 2023 8:29 pm So far, the only Audio solution I've designed is the SN76489A on the Motorola I/O Card. It provides just line-level out. I haven't included an amplifier on-board (to drive a speaker), as amplified speakers and small 5V amplifier modules (for an internal case speaker), are really cheap and easy to find these days.
Righto, so I guess I can hack the board to connect wires to a small amp & speaker internally then, I guess?
Editor wrote: Mon Nov 27, 2023 8:29 pm The RAM for a system that used a cartridge ROM would be provided by the RAM located on the CPU card. The design of my ROM Expansion Card has up to 16 banks of up to 64KB each. This allows the actual portion of the 64K memory map ROM space that is asigned, to be defined by the Expansion Card's PLD. i.e. Any of the 64K address space could be assign to the ROM bank (or banks).
If you only need 8 banks, you can just populate only one ROM chip (512KB ROM).
Right, so I think you're saying it will be possible to have different sized rom banks for each of the available slots, or do you mean the same amount of rom/ram for all banks, whatever that is predetermined to be, and I imagine an on-board switch bank would select the desired bank to use?

Well, whatever you come up with, I'm looking forward to seeing it! :)

Re: [P] MECB 1MB ROM Expansion Card

Posted: Tue Nov 28, 2023 7:58 pm
by Editor
bugeyedcreepy wrote: Tue Nov 28, 2023 7:01 am Righto, so I guess I can hack the board to connect wires to a small amp & speaker internally then, I guess?
No need to hack the board. I've provided a 2-pin Audio header so you can easily plug-in an amplifier module (or provide a line-out case socket).

Something like this US$0.23 module from AliExpress should do the trick: https://www.aliexpress.com/item/1005003317922799.html
bugeyedcreepy wrote: Tue Nov 28, 2023 7:01 am Right, so I think you're saying it will be possible to have different sized rom banks for each of the available slots, or do you mean the same amount of rom/ram for all banks, whatever that is predetermined to be, and I imagine an on-board switch bank would select the desired bank to use?
A ROM Expansion Card would have it's PLD configured for its allocated ROM space, within the system's overall 64K Memory Map.

This would usually be just a single block (e.g. the top 32KB of the 64K memory map), or could even be multiple blocks (if you so wanted), e.g. $4000 - $7FFF and $E000 - $FFFF would give a 16KB block and an 8KB block of ROM in the 64K memory map.

An on-board Bank Select switch then selects which 64KB block of the 512KB / 1MB of available ROM is being mapped to the allocated memory map block(s).

Effectively, the Bank Select switch is just selecting the A16 - A19 address lines to apply to the ROM (or the bus A16 - A19 pins, if the Bank selection is bus controlled).

Re: [P] MECB 1MB ROM Expansion Card

Posted: Tue Nov 28, 2023 10:42 pm
by bugeyedcreepy
Editor wrote: Tue Nov 28, 2023 7:58 pm No need to hack the board. I've provided a 2-pin Audio header so you can easily plug-in an amplifier module (or provide a line-out case socket).

Something like this US$0.23 module from AliExpress should do the trick: https://www.aliexpress.com/item/1005003317922799.html
You, my friend, are a Champ!!
Editor wrote: Tue Nov 28, 2023 7:58 pm A ROM Expansion Card would have it's PLD configured for its allocated ROM space, within the system's overall 64K Memory Map.

This would usually be just a single block (e.g. the top 32KB of the 64K memory map), or could even be multiple blocks (if you so wanted), e.g. $4000 - $7FFF and $E000 - $FFFF would give a 16KB block and an 8KB block of ROM in the 64K memory map.

An on-board Bank Select switch then selects which 64KB block of the 512KB / 1MB of available ROM is being mapped to the allocated memory map block(s).

Effectively, the Bank Select switch is just selecting the A16 - A19 address lines to apply to the ROM (or the bus A16 - A19 pins, if the Bank selection is bus controlled).
Oh, wow, that IS flexible configuration... :D

Another question then, because every answer begets yet another question - how would the expansion rom be able to dictate to the CPU PLC what is RAM and what to outsource to off-card ROM? The CPU and RAM are themselves behind the CPU Card's PLC, right? Does that mean the CPU's PLC needs to be reconfigured to work in with this expansion ROM black magic?

Sorry for all the Q's, just battling to wrap my head around the concept - I've never had so much control over the system and hardware before, this is novel territory having a system that could potentially be configured as almost anything else from the 8-bit era... -_-

Re: [P] MECB 1MB ROM Expansion Card

Posted: Tue Nov 28, 2023 11:32 pm
by Editor
bugeyedcreepy wrote: Tue Nov 28, 2023 10:42 pm Another question then, because every answer begets yet another question - how would the expansion rom be able to dictate to the CPU PLC what is RAM and what to outsource to off-card ROM? The CPU and RAM are themselves behind the CPU Card's PLC, right? Does that mean the CPU's PLC needs to be reconfigured to work in with this expansion ROM black magic?
Each Card is independent in it's configuration. This creates modular flexability, but also relies on the user configuring their system to avoid address conflicts.

So, if the ROM Expansion Card was configured for the top 32KB block of the memory map, then it woud also be up to you to ensure there are no conflicts.

So, you would likely configure the CPU Card's PLD to have RAM at the bottom 32KB of the memory map, and the CPU Card's ROM disabled altogether.
bugeyedcreepy wrote: Tue Nov 28, 2023 10:42 pm Sorry for all the Q's, just battling to wrap my head around the concept - I've never had so much control over the system and hardware before, this is novel territory having a system that could potentially be configured as almost anything else from the 8-bit era... -_-
My intention was configuration flexability and modular independant Cards, so that they can be mixed and matched with other Cards on the bus, to make whatever system you decide to put together.

As with everything, with flexability comes some added complexity. But, that is all part of the fun, and learning curve! :)

Re: [P] MECB 1MB ROM Expansion Card

Posted: Sat Jan 13, 2024 6:56 am
by bugeyedcreepy
Another curiosity, and perhaps a suggestion if you're not too far along - if such a ROM has bit switches to choose sections and locations, would they be positioned at the end of the card as other interfaces and ports are? I'm thinking ahead to a cartridge case I have in mind, and if there's a set design for switches/LEDs at the opposite end to the connector, then I could standardise a 3D printable or moulded case to suit it (and future designs) requiring such.

Re: [P] MECB 1MB ROM Expansion Card

Posted: Sat Jan 13, 2024 7:03 am
by Editor
bugeyedcreepy wrote: Sat Jan 13, 2024 6:56 am Another curiosity, and perhaps a suggestion if you're not too far along - if such a ROM has bit switches to choose sections and locations, would they be positioned at the end of the card as other interfaces and ports are? I'm thinking ahead to a cartridge case I have in mind, and if there's a set design for switches/LEDs at the opposite end to the connector, then I could standardise a 3D printable or moulded case to suit it (and future designs) requiring such.
Yes, I've position the manual bank select switch at the top of the board (oposite side to the connector).

The current design allows either a standard 4-way DIL switch, or a 1 of 16 rotary coded switch (much easier to select a bank with).

I have now received the first prototype PCB's. So, just waiting on me getting around to making the next video.

Re: [P] MECB 1MB ROM Expansion Card

Posted: Sun Jan 14, 2024 3:04 am
by bugeyedcreepy
Editor wrote: Sat Jan 13, 2024 7:03 am I have now received the first prototype PCB's. So, just waiting on me getting around to making the next video.
...!!!