• Please review our updated Terms and Rules here

I wish to create a new DMA/RAM expansion card for the Tandy 1000 line.

I think the DMA controller on the older Tandies was just a convenient way to do dram refresh since the video circuit couldn't do it on the expansion ram. The fact that is enabled DMA with expansion cards was just kind of an extra feature. I don't think it's really needed on that class of machine. I mean, the main reason to have it would be to make an 8-bit SoundBlaster work, but I don't think anything that will run on that class of machine will support more than AdLib anyway for the most part.
 
I think the DMA controller on the older Tandies was just a convenient way to do dram refresh since the video circuit couldn't do it on the expansion ram. The fact that is enabled DMA with expansion cards was just kind of an extra feature. I don't think it's really needed on that class of machine.

Yeah, that's why I'm not particularly fussed about ever dealing with it. The one thing that having DMA gave you back in the day besides RAM refresh was most XT hard disk controllers rely on it, but given that most MFM hard drives and hard cards have subsequently turned into pumpkins there's not a whole lot else that really meaningfully works on an 8088-powered Tandy 1000 that DMA enables. When this thread was started I think the emphasis was on the idea that having it somehow improved the speed of the machine but it's in fact demonstrable that getting rid of it buys you a few percent better overall performance because the DMA controller isn't butting in every 15 microseconds.

Not to discourage anyone, though! If there's a grand plan to do a digitized sound demo ala 8088 Domination that relies on a Soundblaster card in a Tandy 1000 I can't wait to see it.
 
I think the DMA controller on the older Tandies was just a convenient way to do dram refresh since the video circuit couldn't do it on the expansion ram. The fact that is enabled DMA with expansion cards was just kind of an extra feature. I don't think it's really needed on that class of machine. I mean, the main reason to have it would be to make an 8-bit SoundBlaster work, but I don't think anything that will run on that class of machine will support more than AdLib anyway for the most part.

I hear you, and in a practical sense your right, but the ones that work are just spectacular when they do. Watching an HX running Klax in VGA with soundblaster support is worth the effort.
 
Tandy's board uses a PAL as part of the RAM control logic as well, it looks like the one you're working with is all generic logic.

Yes, this board is the only one that I know of that does the job with off-the-shelf logic chips instead of a PAL, which is why I wanted to duplicate it. Once I am satisfied that I have duplicated it correctly, then I will make a schematic out of it and eventually add the DMA portion back into my EX/HX 3-in-1 design, continuing to use the SRAM as the memory chip.
 
I think the DMA controller on the older Tandies was just a convenient way to do dram refresh since the video circuit couldn't do it on the expansion ram. The fact that is enabled DMA with expansion cards was just kind of an extra feature. I don't think it's really needed on that class of machine. I mean, the main reason to have it would be to make an 8-bit SoundBlaster work, but I don't think anything that will run on that class of machine will support more than AdLib anyway for the most part.

It also was used to speed up floppy I/O, and apparently some floppy image programs intended to write non-native formats rely on DMA to access the disk as well.
 
It also was used to speed up floppy I/O, and apparently some floppy image programs intended to write non-native formats rely on DMA to access the disk as well.

ImageDisk does indeed tell you to drop dead. (I don't have a Tandy *with* DMA to compare, but without testfdc fails with the claim of "no floppy interrupt".)
 
Second revision PCBs arrived today, and I can get it to properly recognize all 640k with no errors.

I do seem to have an issue with booting from floppy disks while this card is inserted, so I may have made an error in the DMA portion somewhere. There is an "extra" pullup resistor pin on the resistor bridge, so I am thinking that I might have missed one somewhere.. but I do not see it on the scans at all. The system boots from my XT-IDE just fine, and the floppy disk works fine with a Lotech 1MB RAM card installed, so I know the disk and drive are okay. It gets about halfway through the boot process and hangs if this card is inserted.

Unfortunately, without a keyboard for my 1000A, I cannot do much diagnostics. My Keyboard Adapter project is also awaiting PCBs, so I am stuck in the water until they show up.
 
ImageDisk does indeed tell you to drop dead. (I don't have a Tandy *with* DMA to compare, but without testfdc fails with the claim of "no floppy interrupt".)

I cant even run IMD from floppy disk on any of my DMA equipped machines, including a K6 machine - during loading it thinks the disks have bad sectors even when they are newly created Virtual images (HFE or IMG). But, if I copy the files to HDD and then run it, it's perfect. I only use 1.17 as the archive on his site for 1.18 is missing the IMD.COM file. I tried emailing him about it but got no response.
 
The first draft boards have arrived. My 1000A and the logic chips needed to build this board will arrive tomorrow, so I will have initial testing done sometime tomorrow afternoon.
View attachment 60536

Glad you were able to pick that up. My business has been shorthanded since this whole coronavirus thing started, and haven't had time to work on any of my hobby projects. :mad:
 
I picked up a Northgate Omnikey 102, so I have a functioning keyboard at this point.

The RAM portion passes every test I have thrown at it. Disk access works perfectly fine, as long as I boot from an XTIDE... but I cannot get this system to boot from floppy disk while this card is installed. I may have made an error on the DMA portion (specifically DMA 2), or there may be an issue with my particular computer. I asked to borrow the original card again so I can test it in my machine and probe out a couple of traces that were unclear on my scans (obscured by silkscreen).

I should have that board either tomorrow or early next week, and I will have some further updates. I am very eager to get the gerbers out to the community, but I want to ensure that they are perfect before I do so.
 
Classic! It doesn’t take much to screw up sometimes. I recall missing some really minor details when I was reverse engineering the SmartWatch modules. So frustrating at the time!
 
I guess since this thread is about DMA again this is kind of off-topic, but for laughs here's the thing I've been working on the last couple months. (Been talking about it in some other threads here and there relating to specific functionality/software for testing, etc.)

Tandy_EMS_Card.jpg

For lack of a better name it's the "Handy Dandy Ram-O-Matic". Basically I stuck everything from my old boards onto one along with two more RAM chips and an EMS memory page-flipper and replaced all the discrete decode logic with a couple GALs. Been testing it for about a week now and outside of a boo-boo with the EMS logic that needed a hack on the back it seems like it's all good. Just verified the one bug I could find with the last prototypes, an issue with DOS Kermit serial file transfers, seems to be resolved.

EMS memory *is* pretty pointless in an EX/HX for anything but shock value, but I did want to see if it could be done and I had enough I/O left over on the GALs to do it. Fun stuff.
 
EMS memory *is* pretty pointless in an EX/HX for anything but shock value, but I did want to see if it could be done and I had enough I/O left over on the GALs to do it. Fun stuff.

Ohhhhh but now you will have to write a fancy multi-tasker that will swap to EMS. And restores graphics modes, too. I wanna see all the SSI games running at the same time, on an HX. :3
 
Ohhhhh but now you will have to write a fancy multi-tasker that will swap to EMS. And restores graphics modes, too. I wanna see all the SSI games running at the same time, on an HX. :3

Heh. I'll get right on it after I figure out why the Tandy 4-color graphics driver for Windows 2.11 won't let me run with DOS loaded into a UMB. :)

I am actually pretty proud of this board, all things considered. It was the first thing I've ever made with programmable logic and it works better than I could have dared hope; it's set up hosting a network card in the populated passthrough connector in the ol' 1000 SUX and the hardware seems like it's rock solid. (It was an exciting few hours the first night fixing the bugs in the GAL formulas and figuring out the boneheaded mistake I made with the EMS decoder, but with those issues ironed out it's been great.)

Am still waiting for some Amtel (current production) GALs to show up so I can make sure they work as well as the old recycled pulls that're in there now. I've heard of people having mixed luck with those ATFxvx chips.
 
It is indeed extremely cool. I will probably try to get a bare board from you sometime, when you have spares. ;P

Heh. I need to figure out if I need to make more that fix the trace error, I guess. I have four more boards from the prototype run, for just my use I can hack the mistakes on one of them to take care of my needs, but... you know how crud like this is never actually finished anyway. It might be fun to make a version that uses surface-mount RAM since, you know, why have 1MB of useless EMS RAM when you could have 4MB? :)
 
Back
Top