Atari ST(E) DMA top speed, new, cheap CF adapter project

Started by Petari, 24-09-2010, 15:19:14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


I was some time on idea to make simple, special test circuit, with which can test what Atari ST DMA chip really can - considering transfer speed. While thinking about it, I realised that I can do 2 tests at once: with little more effort doing not just test circuit, but simple 8-bit Compact Flash adapter (IF) for ACSI port.
Compact Flash, because it can work in 8-bit only  mode - so suits well 8-bit ACSI of ST. Doing 16-bit, real IDE adapter would require more chips and more time to develop.
The adapter has 3 chips:  GAL16V8,  74HCT574 (8-bit latch) & 74HCT221 (Monostable).
Bad thing is that it works not even with all CF cards - not all support DMA and 8-bit mode. As usual, Sandisk works well. Kingston (1GB) not.  I need more cards for testings...  But even if it works only with Sandisk, I think that may be interesting. Price should be some 20 Euros max. Or DIY ... 
Another bad thing is that it will not autoboot. But autoboot is possible by TOS ROM patching - so, possible at price of some extra work + needs programmed EPROMs.

What is really good is the speed:  I got about 1900 Kbytes/sec !  This is far best speed what I saw with ACSI port, and actually best what is possible without mods in ST(E) .

How the Hell such high speed ?
1: fast CF card - Sandisk Ultra 2 GB.
2: Adapter works in Fast ACSI mode, likely similar as Link ACSI/SCSI adapters from ICD. And CF is faster in fact as SCSI drives in ST, as access times are shorter.

As is visible, 1 byte transfer takes exactly 500 nS, or 4 DMA chip clock cycles. It means that peak transfer rate is 2MB/sec, and not 1.25 as some Atari DOCs say (in some, from 1985 even stays 8 Mbit/sec).  I tested with STE ( with 'good' DMA chip ), then with 1040 ST, which has IMP DMA. Then I put in 1040 old Atari DMA C025913 chip (what was in early ST 520 revisions). I got same speed with all of them. 10 MB transfer took 1088 Timer C counts, what is about 1900 KB/sec.
So, no max speed diff. between diverse DMA chip versions.

Back to CF adapter:  it requires 5V power, what is not present on ACSI connector. Instead using some suply and regulator maybe is better (cheaper for sure) to get 5V from:  ST(E) self - by pulling out it with cable (for experienced ones). Using some adapter connector - for instance 9-pin joystick connector with leaden out 5V  ...

I need to know about people interested for this cheap, limites but ultrafast adapter. And in which form: complete, assembled, tested  or  just need DOCs for DIY. Driver will be made for - better said I will mod. my existing driver for this IF.  Don't even ask will it work with some other driver  :)
TOS/DOS compatible with max. 14 partitions , 100% ASM code, low RAM usage, max gaming compatibility...  offers some other such goodies ?


I'm interested in a DIY package. Also a list with the compatible cards (and where to buy them) would be fine.
What is the theoretical maximum size of that this adapter can handle? Can it handle more than one CF cards?


Yes - knowing with which cards it can work would be good, But only way is to get them and test.
I can say for now only that Sandisk ULTRA (and likely all above) will work. Those cards are not the cheapest for sure, but I saw that 2GB may get for max 20 Euros. 4 GB is under 30.

Whole idea is to have cheap, simple to build adapter for simple data storage and usage with Atar (together with easy connect to PC and data transfer). 'Exotic' things like work together with some other ACSI adapter are not planned (*). Of course, it will work together with CATA or some regular IDE adapter.

Maximum disk size what adapter can handle is same as by other IDE adapters - in practice unlimited. 48-bit LBA allows accessing some 128000 TB  :)  Hardly will see so large CF cards in our lifes  ;D   Even regular LBA is more than enough: up to 128 GB.
As it is IDE subsystem, it can handle one Master and one Slave. I did not test yet, but it must work.
And this leads to next question: doing revision with 2 CF sockets, where one is set as master and other as slave ? Other solution would be to use regular IDE connector, where can attach dual CF adapter . But I see CF socket(s) as better idea...



During weekend I did some improvements, driver.
So, now it works with Kingston 1GB too, for instance - only slower.
Can use together with another ACSI device - with some limitations.

More details, some pics here:

Second passus.




is a pro work from Atari fanatic user.
(I bet your Atari ST there is all the time open for mod dev ect.. ..)
My system: Atari STE 4MB, OS: SuperTOS 2.06, HD: US/disk 4gb SDcard ,ppera v0.98 HD drivers, USB mouse adapter by me, PSX controller joy adapter by me,  full list of adaption,s games by Petari.
Second Atari machine: 1040 STF
Other: 2X Lilliput Atari 130 XE


Great work!  :) ;) :)
It would be good to have CF card connectors. Two would be even better :). Are you thinking of one card per PCB side, both on the top next to one another, one pointing to the left and one pointing to the right, or some other arrangement?
I think having a IDE/ATA connector and then plugging in a CF adapter would be a bad idea :(.
For me a kit of parts would be nice - I can do all the through-hole soldering of components myself. And no need to pay postage and packing costs for small numbers of components.
Talking of which, we need a source of those hard to find 19 way D-connectors  ::).
Of course the CF card connectors are surface mounting devices - but I am sure I could learn how to do this.
Also, your design uses a GAL16V8. I have not programmed one of these yet. So I would need some help with this  ;D
Most Atari users however would not have the skills needed. So would want the components assembled and fitted on the PCB.
Then the next question that comes up is cost  ;D
I don't think the PCB will be too big, and people will want easy access to the CF cards, so I don't think we need a case.
It does depend on how the physical connection is made to the ASCI port :).
Maybe provide suitable holes in the PCB and leave the choice of fitting in a case (or just fitting on a flat piece of plastic sheet) to the buyer / user  ;D.


Yes, plan is to put 2 CF sockets on 2 sides of PCB . And making 1 socket variant on same PCB for people who want not to pay not necessary things.
I have some addresses in far East, where can order 19-pin Sub-D cons.
Soldering CF socket is hard, because all 50 pin is in one row, very close. But it is possible with some practic. What I meant is making PCB - it is almost impossible to do so tiny lines at home. Not to mention making good looking PCB with vias etc.
Programming GAls is possible with very simple and cheap 'equipment'. Bigger problem is SW - it is usually outdated, and runs not well on new PCs. I have programmer for Atari ST. But it is very old, and even that works still well, it can not programm new GAL types - B,C,D. So, I made some primitive for parallel port. But must to do programming with old PC (Pentium 200 MHz).

Plan is to not suply case. It is on user how will solve casing. But idea about monting holes is good.

I'm thinking about max simple solution: to solder 19-pin Sub-D right to board. So, no need for cable and extra connector pair. But then problems may appear with machines where some other connector is very close - as parallel, serial port.  Or just adding 10 cm cable with 19p Sub-D male at one end, and solder other end directly to board.


This is totally awesome,
I would love to hard wire one of these...
I was wondering how much you might charge for the programmed GAL chip?
it would be my only stumbling block.  I have an eprom programmer, and I have
decent soldering skills (I built a cosmac elf in grade 10 and build electonic projects...)

I just bought an atari 1040ste (again) and would love to have this kind of storage...
I have something similar for my C64 and would love to have something for my Atari ST.

:) please let me know if this is possible, or if there is anyone else who might be able to program
a GAL for me? :)

Cheers and thanks for such a great project... :) I know what I want to do this winter...


oh by the way, I'm not opposed to purchasing this in kit form either :) what ever works... I just think this is the coolest...


Sending GAL self to Canada is not too smart, I guess - postage costs much more than part.
Likely is best to send GAL and PCB (board) together. I mean, making board at home for this is not easy.
So, best to do it with professional made PCB. Then, parts hard to find are 19-pin Sub-D connector and CF socket - so sending them too.

I will inform here when PCBs will be ready ...


will you be taking paypal for payment?
and if you would prefer to get get a deposit?
I would love to be on your list...



While fixing one of my Mac Classic 3.5" floppy drives, I noticed the cable was a 19 pin male on the end and a 20 pin header on the other (located inside the drive)  the cable appears to be straight through to the header, no wires crossed or shorted...  I do have a concern... the cable appears to be about 3' long. it is a molded cable with shield... but I was wondering if your interface is ok with such a long cable or would it have to be shortened?  :) Cheers :)


I suppose we could send money as a PayPal Gift to avoid any fees being deducted.


Cool I did not know you could do that... I'm certainly willing :)
just let me know where to send...

Cheers and Happy Holidays :)