Internal ram upgrade to 640k
Internal ram upgrade to 640k
This is what I have come up with so far:
An internal upgrade occupying the vacant ROM socket after moving both ROMs into one (and including the TKII). The ram chip is an 512k x 8 low power SRAM and the glue logic is done with a GAL 20V8
The GAL chip is mounted on a piece of Veroboard which is soldered to the 4 extra pins of the SRAM which then is put into the ROM socket with its remaining 28 pins to keep the low profile.
Good news: it works.. well almost perfect. The signal generated for the DSMCL line is very 'touchy'. You can not connect the oscilloscope's probe to it without the QL crashing. I used the /DS line as strobe for the various output signals but mayby /AS is better as it is more constant/longer. /DTACK is also generated from /DS combined with some address logic. No need for delays here as the SRAM is 55ns
The GAL also generates the inverted select signal for the EPROM which is OK now.
The pictures show the initial trials, I will try to find some of the signals closer to the GAL chip so the long cables can be shortened.
An internal upgrade occupying the vacant ROM socket after moving both ROMs into one (and including the TKII). The ram chip is an 512k x 8 low power SRAM and the glue logic is done with a GAL 20V8
The GAL chip is mounted on a piece of Veroboard which is soldered to the 4 extra pins of the SRAM which then is put into the ROM socket with its remaining 28 pins to keep the low profile.
Good news: it works.. well almost perfect. The signal generated for the DSMCL line is very 'touchy'. You can not connect the oscilloscope's probe to it without the QL crashing. I used the /DS line as strobe for the various output signals but mayby /AS is better as it is more constant/longer. /DTACK is also generated from /DS combined with some address logic. No need for delays here as the SRAM is 55ns
The GAL also generates the inverted select signal for the EPROM which is OK now.
The pictures show the initial trials, I will try to find some of the signals closer to the GAL chip so the long cables can be shortened.
Re: Internal ram upgrade to 640k
Much better now:
Updated the GAL logic so /AS and /DS are both used and corrected the polarity of DSMCL output Both /DTACK and DSMCL are programmed to be Tri-State (floating) when not active. Created one pin to reflect the validity of the memory range and used that to enable the output of /DTACK and DSMCL signals from the GAL
Now PRINT FREE_MEM results in 600064 bytes after reset. Is this the correct value for a QL with 640k (JS ROM and TKII Ver. 2.20 in TV mode)
Updated the GAL logic so /AS and /DS are both used and corrected the polarity of DSMCL output Both /DTACK and DSMCL are programmed to be Tri-State (floating) when not active. Created one pin to reflect the validity of the memory range and used that to enable the output of /DTACK and DSMCL signals from the GAL
Now PRINT FREE_MEM results in 600064 bytes after reset. Is this the correct value for a QL with 640k (JS ROM and TKII Ver. 2.20 in TV mode)
- vanpeebles
- Commissario Pebbli
- Posts: 2821
- Joined: Sat Nov 20, 2010 7:13 pm
- Location: North East UK
Re: Internal ram upgrade to 640k
It would be interesting to see if you get a speed boost from that ram. Impressive work too!
Re: Internal ram upgrade to 640k
Thanksvanpeebles wrote:It would be interesting to see if you get a speed boost from that ram. Impressive work too!
As far as I can tell from the circuit, the rom socket's data and address lines are connected directly to the 68008 so it should run at full speed. DTACK is directly generated from AS, DS and the right combination of A19 and A18 delayed only by the GAL (2 x 20 ns).
I will post the GAL logic equations here.
Gert
Re: Internal ram upgrade to 640k
The GAL logic equations:
Note: the level on which the inputs and outputs are active is defined in the PINS
section. So /ROMCE means it is active low. DTACK and DSMCL signal levels are fixed, only the Tri-State output enable is activated.
Code: Select all
%ID
QL512K
%TYP
GAL20V8
%PINS
' 1 2 3 4 5 6 7 8 9 10 11
NC NC NC NC NC /AS ROMOEH /DS /WR A18 A19
/OE NC /RAMCE /RAMOE /RAMWE /ROMCE VALID NC DSMCL /DTACK NC
' 13 14 15 16 17 18 19 20 21 22 23
%LOGIC
' VALID is active in the memory range $40000-$BFFFF
VALID = !A19 * A18 * DS * AS
+ A19 * !A18 * DS * AS;
' ROMCE is inverted ROMOEH
ROMCE = ROMOEH ;
ROMCE.OE = OE ;
' RAMCE is active on memory range $40000-$BFFFF
RAMCE = VALID ;
RAMCE.OE = OE ;
' RAMOE is active on read
RAMOE = !WR ;
RAMOE.OE = OE ;
' RAMWE is active on write
RAMWE = WR ;
RAMWE.OE = OE ;
' DTACK is active on RAM memory range and DS plus AS
DTACK = OE ;
DTACK.OE = VALID ;
' DSMCL disables the internal decoder of QL on our memory range
DSMCL = OE ;
DSMCL.OE = VALID ;
%END
section. So /ROMCE means it is active low. DTACK and DSMCL signal levels are fixed, only the Tri-State output enable is activated.
Re: Internal ram upgrade to 640k
Hi gertk,
good work !!!
What type is the SRAM?
Can you publish the compiled equations as jedec? I don't have a GAL compiler, but i am able to burn jedec's into GAL's.
QlOBI
good work !!!
What type is the SRAM?
Can you publish the compiled equations as jedec? I don't have a GAL compiler, but i am able to burn jedec's into GAL's.
QlOBI
Re: Internal ram upgrade to 640k
The SRAM is the: AS6C4008-55PCN RS part # 744-4561
GAL type is 20V8 but it will fit into a 16V8
Have to check if I can extract the Jedec file from my compiler (MGP on Atari TT)
GAL type is 20V8 but it will fit into a 16V8
Have to check if I can extract the Jedec file from my compiler (MGP on Atari TT)
Last edited by gertk on Tue Aug 27, 2013 7:40 pm, edited 1 time in total.
Re: Internal ram upgrade to 640k
This is the JEDEC file I exported from MGP
Code: Select all
Datei: QL512K
Erzeugt mit MGP 16/20 V2.0.*
L0000
1111111111111111110111111111111111111111
1111111111111111111111111111111111111110
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111110111111111111111111111
1111111111111111111111111111111111111110
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111111111
1111111111111111101111111011111101111011
1111111111111111101111111011111110110111
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111111110
1111111111111111111101111111111111111111
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111111110
1111111111111111111111111111101111111111
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111111110
1111111111111111111111111111011111111111
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111111110
1111111111111111110111111111111111111111
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000*
L2560
01110000*
L2568
0101000101001100001101010011000100110010010010110000000011111111*
L2632
11111111*
L2640
1111111111111111111111111111111111111111111111111111111111111111*
L2704
1*
L2705
1*
C5447*
- belg4rion67
- Trump Card
- Posts: 189
- Joined: Sun Feb 20, 2011 6:15 pm
- Location: Milan - Italy
Re: Internal ram upgrade to 640k
Hi guy, very impressive work! Could you prepare an electrical drawing about your brilliant expansion kit so we can replicate it ? (if is it possible obviously!!) I promise to print your copyright on pcb
T&hanks in advance
Paolo
T&hanks in advance
Paolo
Only original hardware!