News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Parados for 464 users with DDI-1 drive

Started by TotO, 19:01, 19 July 12

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TotO

"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

Cool project!

Now a bit offtopic, but... does anybody know a way to replace the 16 KB ROM with a 64 KB ROM in a way that all four 16 KB ROMs are accessible at the same time? Or would this be to complex, to be integrated in an DDI-1 controller?
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

Nice simple tutorial, but I'm pretty sure that the ROM on my DDI-1 is soldered in. Did your DDI-1 already have a socket in place?

@TFM: Very difficult depending on how you want it to work. It's a standard ROM 7, so where would the other 3 ROMs be situated? ROMs 8, 9 and 10 ? As you well know, you can only swap in 16K at a time.

Bryce.

TotO

It look that some are on a socket so! ;)

Allow to add ParaDOS "like that" is just a cherry on the cake... The cake was to use a floppy drive. :D
(close to 800KB for 3"1/2 80 tracks floppy... On a CPC 464, guys!)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

I know, I'm also a mainly ParaDOS user.

Bryce.

Bryce

#5
You could also just disable the DDI-1 ROM and use ParaDOS or any other alternative DOS for that matter on a MegaFlash or any other ROMBoard that allows you to map to ROM 7.

Bryce.

TotO

ROMBoard exist for 464 EXT port?
Now, it look CLEan & VERsatile (clever) to do like that. :)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

#7
Of Course. The MegaFlash works on a 464 expansion port, as do most other ROMBoards, just you will need a special cable if the ROMBoard doesn't have a through-connector, because the DDI-1 doesn't have one either.

Just one restriction: The 464 only initialises the first 8 ROMs, so if the ROMBoard has more slots (The MegaFlash has 32), you won't be able to use those unless you initialise them yourself somehow.

Bryce.

TFM

#8
Quote from: Bryce on 20:15, 19 July 12
@TFM: Very difficult depending on how you want it to work. It's a standard ROM 7, so where would the other 3 ROMs be situated? ROMs 8, 9 and 10 ? As you well know, you can only swap in 16K at a time.

7-10 would be great, but it probably would make too much effort.

Edit: 4-7  :) :) :)  Forgot for a moment that the 464 and 472 only use ROMs 0-7.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

andyt31

Quote from: Bryce on 20:15, 19 July 12
Nice simple tutorial, but I'm pretty sure that the ROM on my DDI-1 is soldered in. Did your DDI-1 already have a socket in place?


Thanks!


My DDI-1 ROM was in a socket, so a simple swap was all what was needed.

TotO

Quote from: andyt31 on 11:26, 20 July 12Thanks!

My DDI-1 ROM was in a socket, so a simple swap was all what was needed.
Sure. Enjoy! :)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

IanS

Quote from: TFM/FS on 19:19, 19 July 12
Cool project!

Now a bit offtopic, but... does anybody know a way to replace the 16 KB ROM with a 64 KB ROM in a way that all four 16 KB ROMs are accessible at the same time? Or would this be to complex, to be integrated in an DDI-1 controller?
It can be done with an additional chip and single cut track to have a 64K eprom be roms 4-7 in a DDI-1.
Change the input to IC110 pin 13, link it to D2 (IC109 pin 1). The rom latch (IC112-1) then get set for roms 4-7.
Add a 74ls74 to latch D0 & D1, clock driven from IC107 pin 8. The outputs of the 74ls74 drive A14 & A15 of a 64K eprom.

See attached pics.

TFM

Hi IanS,

That's exactly what I had in mind  :)  Great idea!!!
Thanks' a lot for sharing and posting pictures.

Can we put that into the cpcwiki itslef? It would deserve an own page!!! :) :) :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

IanS

Quote from: TFM/FS on 18:34, 21 July 12
Can we put that into the cpcwiki itslef? It would deserve an own page!!! :) :) :)
You can do whatever you like with it. It was your original comment that made me think about trying it. I took it as a challenge.

I can probably put together a bit more of a wiring diagram if it's not obvious from my description.

It should be possible to make it 8 roms with a 128K rom, but it would be a bit more fiddly with the wiring and you'd need an extra flip-flop to latch d2. You'd also have to put basic in rom 0.

TFM

Yes, a wiring diagram would be great, I must admit I'm not completely sure which wire to wich one  ;)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

IanS

Quote from: TFM/FS on 20:23, 21 July 12
Yes, a wiring diagram would be great, I must admit I'm not completely sure which wire to wich one  ;)
Program a 27c512 with the data from 4 roms:-
&0000-&3FFFF - Rom 4
&4000-&7FFF - Rom 5
&8000-&BFFF - Rom 6
&c000-&FFFF - Rom 7 (e.g. Amsdos or Parados)

When insterting the rom into the socket in the DDI-1, bend pin 1 (A15) and 27 (pin 14) so the eprom pins don't connect to the socket, they need to be connected to the 74ls74.

Cut the track between IC110 pin 13 and IC109 (shown as an X on the circuit diagram)
Link IC110 pin 13 to IC109 pin 1 (D2), show as a red wire on the circuit diagram.
[attach=2]
Wire the 74LS74 as shown:-
[attach=3]
The CLK signal comes from here:
[attach=4]

I still need to get a good picture of the track to cut.

Does that help?

TFM

Hey cool! That's really great!!!!!!!
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

IanS

Quote from: IanS on 22:29, 21 July 12
I still need to get a good picture of the track to cut.
[attach=2]
I've highlighted the track which needs cutting, you can see the gap where I cut mine.

TFM

I really would like to make a Wiki article out of this wonderful mod. However, I must admit, that I will lack the time in the coming days. So if somebody volunteers, please go for it  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Gryzor

First, great little tutorial there, with ParaDOS! Wel, it's too easy to do, but it might help/prompt others who think it might be more difficult to try it. So, very useful.


@TFM, great work taking over the thread! :D Now I got to untangle the two...


@IanS,  great job. Wish someone threw together an explanatory text on the why's and how's of it, then it'd make for a complete wiki entry...

IanS

Quote from: Gryzor on 14:28, 08 August 12
@IanS,  great job. Wish someone threw together an explanatory text on the why's and how's of it, then it'd make for a complete wiki entry...
The DDI-1 is effectively two devices in one. First it holds a Disk Drive Interface, secondly it's a single bank romboard. There are very few shared parts so we can consider just the romboard part. The outlined items are the parts that make up the romboard.

[attach=2]

To select an upper rom on the CPC the system writes the selected rom number to I/O port &DF00. This is decoded by two of the gates in IC107. The romboard needs to remember if the rom selected is the one it should be providing to the system. The DDI-1 only provides data for Rom 7, so it needs to identify if Rom 7 is written to the data bus when the write to &df00 occurs. (The DDI-1 can be made to provide data for Rom 0 by cutting the track for LK1)

Decoding of the data bus to identify the number 7 (or zero) is done by gates of IC111-1, IC111-2, the used gates of IC109 and gate IC110-3. With LK1 in its normal closed state, the values of D0,D1 and D2 are inverted by the XOR gates of IC109, the outputs are wired-or together (open-collector outputs), so only when all 3 bits of D0-D2 are logic 1 will the input to IC110 pin 13 be a logic 1. IC111-1 and IC111-2 decode the other data bits D3-D7. So the output of IC111 pin 12 will be logic 1 only if the number 7 is present on the data bus.

So if the data bus contains the value 7 when a write to &df00 occurs, the logic 1 on pin 12 of IC111 will be latched in IC112-1. The output of the latch and A15 are used to disable the internal rom via IC105-1 to the ROMDIS input to the CPC.

To make the DDI-1 respond to roms 4-7 we need to get it to ignore bits D0 & D1. We need it to watch for 0x000001xx on the data bus. So instead of using the outputs of IC109 to decode DO-D2 into pin 13 of IC110 we just feed it D2. The latch in IC112-1 will then hold a logic 1 for roms 4-7.

When the rom selected is in the range 4-7 we need to remember the the state of D0 and D1 to select the appropriate 16K section of the 64K eprom. This we do by latching the values od D0 and D1 in a new 74LS74 whenever there is a write to &df00. The outputs of the new 74ls74 are connected to the upper address lines (A14 and A15) of the 64K eprom.

Too wordy?

Bryce

No, nicely explained without going too deep into the details.

Bryce.

Gryzor

Some of the details are a bit to technicky for me, but I still have the question: why?

Bryce

Which "Why?" do you mean?

Why bother?
Why does it work?
Why not just use a ROMBoard?
Why do electrons travel through copper?

Bryce.

Gryzor

Electrons? Copper? Damn, must have slept through some classes at school...


Ok, your third "why" kind of gave me a hint. My question was, "why do it".

Powered by SMFPacks Menu Editor Mod