ROM Cartridge Port PinOut

Nagging hardware related question? Post here!
Paul
Gold Card
Posts: 257
Joined: Mon May 21, 2012 8:50 am

ROM Cartridge Port PinOut

Post by Paul »

Hi fellows, sorry to bother you for such a stupid newby question.
I cannot find a schemtic or pinout for the ROM cartrige connector on the QL, nor do I find any projects (with schematics/ board layouts) that use this port. (I have to correct, there are of course projects that use this port, they are just not described in detail so every newby has to start at zero :( )
I would love to benefit from their experiences.
Is it some kind of a secret? I am not used to this level of information hiding (neither from ZX80/ZX81, nor from Ataris ST where we find virtually everything described in full detail).

Can anybody help me out?
Yes, I have used the search function, both of the board and google. And yes, I had a look in the technical Manual and service manual of the QL. And I have downloaded the hardware stuff from Dwilyn and found many interesting stuff, but nothing about J2.
If anybody could push me to the right pages I would be very thankful. I do not want to make any profit or sell any hardware, I would just like to develop some.
Interesting is that I found described with which ROM content you could add things to superbasic or drivers, but not how anything could be attached.
Kind regards
Paul


User avatar
tofro
Font of All Knowledge
Posts: 2700
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ROM Cartridge Port PinOut

Post by tofro »

Paul,
absolutely no secret (from the QL Concepts Manual - Which is on Dilwyn's site, but not found by google because it's zipped):

Code: Select all

ROM CARTRIDGE SLOT
------------------

Allows software to be used in the QL system from a Sinclair QL ROM Cartridge.
The ROM Cartrdge can contain software to directly change the behaviour of the
SuperBASIC system. The cartridge can contain:

i. Software to be used instead of or with the SuperBASIC system. For example:

       assemblers
       compilers
       debuggers
       application software
       etc

ii.Software to expand the SuperBASIC system. FOr example:

       special procedures
       etc

It is not possible to use ZX ROM Cartridges on the QL.

PIN OUT

        +------------+
      _ |  a   1  b  | VDD
    A12 |  a   2  b  | A14
     A7 |  a   3  b  | A13
     A6 |  a   4  b  | A8
     A5 |  a   5  b  | A9
   SLOT  | a   6  b |  SLOT
     A4 |  a   7  b  | A11
     A3 |  a   8  b  | ROMOEH
     A2 |  a   9  b  | A10
     A1 |  a  10  b  | A15
     A0 |  a  11  b  | D7
     D0 |  a  12  b  | D6
     D1 |  a  13  b  | D5
     D2 |  a  14  b  | D4
    GND |  a  15  b  | D3
        +------------+

Side b is the upper side of the connector; side a is the lower.

    -------------------------------------
      Signal          Function
    -------------------------------------
      A0..A15         Address lines
      D0..D7          Data lines
      ROMOEH          ROM Output Enable
      VDD             5V
      GND             Ground
    -------------------------------------

WARNING: Never plug or unplug a ROM cartridge while the QL power is on.
Cheers,
Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Paul
Gold Card
Posts: 257
Joined: Mon May 21, 2012 8:50 am

Re: ROM Cartridge Port PinOut

Post by Paul »

tofro wrote:Paul,
absolutely no secret (from the QL Concepts Manual - Which is on Dilwyn's site, but not found by google because it's zipped):

Cheers,
Tobias
Ahh! Thank you very much. 8-)
I am going to download it and have a closer look.
Stays the second question if there exists a documented project using this port.
Cheers Paul


User avatar
Dave
SandySuperQDave
Posts: 2776
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: ROM Cartridge Port PinOut

Post by Dave »

Don't be afraid of the main expansion port! It has all these signals and more!


Paul
Gold Card
Posts: 257
Joined: Mon May 21, 2012 8:50 am

Re: ROM Cartridge Port PinOut

Post by Paul »

Dave wrote:Don't be afraid of the main expansion port! It has all these signals and more!
This is quite obvious :D
An expansion port addon should feed the bus to its end so it is possible to add more extensions. As i would like to access the media I want to plug in (usb stick) a lot of space would be waisted.
I wonder a little bit about the rom cartridge port:
1. I guess pin A1 is unused?
2. 16 K adress space is offered. This would implicate that A0 to A13 would be needed. What am I supposed to do with A14 and A15?
3. ROMOEH this will be low whenever this cartidge port can be read as there are no read or write lines
or do I need to decode this with a14 and a15? If so, what is the concept behind this? What can I do with differnent decode logics here?
4.: Is writing through the QL ROM Cartridge Port described somewhere?

Thanks in advance
Paul


User avatar
tofro
Font of All Knowledge
Posts: 2700
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ROM Cartridge Port PinOut

Post by tofro »

Paul wrote: 1. I guess pin A1 is unused?
No. Why? First I guess you mean A0, but that's needed as well. Hint: Count the data bits ;)
Paul wrote: 2. 16 K adress space is offered. This would implicate that A0 to A13 would be needed. What am I supposed to do with A14 and A15?
Nothing really useful, I guess. Sinclair just put all the adress lines on the port because they didn't know whether the ULAs would be ready in time. To my knowledge, all the current ULAs will only activate the ROM port (i.e. ROMOEH) in the proper adress range.
Paul wrote: 3. ROMOEH this will be low whenever this cartidge port can be read as there are no read or write lines
This is the line that allows your external circuitry to grab the data bus and put some bits on it. And, as you said, without a bit of trickery, it's not possible to write to the ROM port.
Paul wrote: 4.: Is writing through the QL ROM Cartridge Port described somewhere?
I guess not. Miracle (and some others, I think) have proven that you can do it, but there's no documents about their specific implementation, I think.

But it wouldn't work without a bit of intelligence on the outside circuitry.
You should devise a scheme that reserves a number of high address lines (within the ROM port address range) to signal a write operation. Writes obviously can't use the data bus - The data needs to be transferred on the lower adress lines in this case. Design external circuitry that decodes the upper Address lines and fetches the lower ones into a latch when it sees the specific address(es). Use the data bus plus another reserved address range for communication towards the QL.

I have been fiddling around with the ROM port and such circuitry (an AVR µC plus CPLD for the decoding) some time ago, but have stopped because of lack of time. I might even have the Xilinx CPLD VHDL somewhere, still, need to check.

But, all in all, Dave is right: Connecting to the expansion port is very much simpler (and faster, and cleaner,....), hardware-wise. (If you manage to get the proper connectors).

Cheers,
Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Paul
Gold Card
Posts: 257
Joined: Mon May 21, 2012 8:50 am

Re: ROM Cartridge Port PinOut

Post by Paul »

First of all: thanks for your answer.
No I am not talking about adresslines.
I mean the PIN A1 that is on the opposite side of PIN B1where we find VDD and on top of PIN A2 where we find A12. PIN A1 is marked _, but in the Manual I saw it was - instead and not described. therefore I guessed it should be an acronym for "not connected". It could of course also state a negative voltage but that seems unlikely.

About the expansion bus, can you give hints to a well documented project that uses the expansion bus, giving the possibility to add the next extensioncard, and accepting anything plugged in like a SD card or a USB stick, not a cable for the floppy or harddrive? I would like to have something like romdisq, but with exchangeable media.


User avatar
tofro
Font of All Knowledge
Posts: 2700
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ROM Cartridge Port PinOut

Post by tofro »

Paul,
you're right. (a1) is just NC, I guess.

The QL technical Guide (which once cost me a fortune but can now be had for free from Dilwyn's site ;)[http://www.dilwyn.me.uk/docs/manuals/qltm.pdf] ) states some pre-requisites for add-on-cards in chapter 11.
The only things special are the bus grab and the peripheral card adressing through the SPx signals. Everything else ist pretty much straight-forward 68k architecture, so any example (non-QL-specific) will do.

Cheers,
Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
Dave
SandySuperQDave
Posts: 2776
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: ROM Cartridge Port PinOut

Post by Dave »

To avoid confusion with address lines, you should list the pin assignment as 1a, not A1 ;)

Is there a demand for schematics for various QL expansion projects? Do people want to build things?

I would like to build a multiple parallel port to control 16 '2x20' LCD displays, and a controller board to manage lots of LEDs, individually assignable.


User avatar
dilwyn
Mr QL
Posts: 2760
Joined: Wed Dec 01, 2010 10:39 pm

Re: ROM Cartridge Port PinOut

Post by dilwyn »

Paul wrote:This is quite obvious :D
An expansion port addon should feed the bus to its end so it is possible to add more extensions. As i would like to access the media I want to plug in (usb stick) a lot of space would be waisted.
I wonder a little bit about the rom cartridge port:
1. I guess pin A1 is unused?
2. 16 K adress space is offered. This would implicate that A0 to A13 would be needed. What am I supposed to do with A14 and A15?
3. ROMOEH this will be low whenever this cartidge port can be read as there are no read or write lines
or do I need to decode this with a14 and a15? If so, what is the concept behind this? What can I do with differnent decode logics here?
4.: Is writing through the QL ROM Cartridge Port described somewhere?
Thanks in advance
Paul
This is a quote from Miguel Angel Rodriguez Jodar on the ql-users list last year, talking about the SD-Card interface he designed for his QL, which works through the EPROM expansion port:

> - How is the communication designed (especially, how did you implement
> write access) to the ROM port?
It's a very old trick: I use 256 memory mapped ports: from $FE00 to $FEFF. When
i want to write byte XX to the SPI interface, I make a read to the port $FEXX
and discard the result.


> - You seem to be planning to use a larger CPLD, could you add some
> select lines to implement more than one device on SPI?
It's in my plans to make the SPI interface available to be used for other
purposes. Not now, because all my tests are being carried with the current
interface hardware, whose CPLD has no free pins
.


I hope this is of some help. I always knew it was a "double-read" technique to getaround the fact you can't write direct to data lines on that port, but the answer makes it a little clearer than I could describe.

Adrian Ives also put a lot of thought and work into devising a scheme called Q-Bus to allow expansion via the EPROM slot (as well as the EPROM slot version of Peter Graf's QL-SD interface). Sadly, Adrian has wihdrawn from the QL market, although I don't know if he would be willing to pass on details of how he implemented it all.


Post Reply