Image Map Image Map
Page 1 of 29 1234511 ... LastLast
Results 1 to 10 of 290

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

  1. #1
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    404

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

    I recently discovered that you can still get the Intel 8237A DMA chip at Jameco (or at least one of the knockoffs). I'm hoping to recreate the Tandy DMA/RAM card, either in the XT/ISA or PLUS variants (preferably both)

    I'm trying to reverse engineer the schematics for the IBM 5150/5160 for the supporting logic for the DMA chip. There's plenty enough RAM cards out there, and the schematics are relatively simple. The issue I'm running into is that most of the control lines for the DMA don't exist on the XT bus. The supporting logic that would normally be on the motherboard needs to be created on the card to interface the DMA control lines with the XT bus.

    I need to find out how Tandy resolved this. 74xxx series logic is jellybean parts and easy to come by, but I don't want to bring half the motherboard onto the card if I can avoid it (looks to be 8-10 ICs that are utilized for this on the Tandy cards). I can glean some information on the logic from the IBM schematics, but haven't figured enough yet to replicate the control lines from the XT bus.

    If I can get detailed top-down scans of both sides of the Tandy DMA/RAM cards (laid on a flatbed scanner, preferably, with the mounting bracket removed and the capacitors standing up), I should be able to fill in what I'm missing and make a schematic to figure out how Tandy resolved this issue. I can find some pictures online of Tandy's XT versions of this card for the 1000, the 1000 SX, SL, TL, and so on, but they aren't top down, and don't include the other side of the board, so I can't see all the traces. I already have a PLUS card for the 1000 EX/HX, but I can't find any data on the custom ASIC they used (which has the DMA controller and the support logic built in), so that's a dead end.

    ---
    I'm also working on an all-in-one PLUS CompactFlash storage card based on the XT-IDE/CF-IDE for the Tandy 1000 EX/HX. I would have just gotten one of dJOS's PLUS to ISA converters and a lotech CF-IDE, but my XT multi I/O card (for serial and a second parallel port) barely fits inside the 1000 HX, and there's no room for another PLUS to ISA converter with the way I had to mount it, so I built a PLUS version of the CF-IDE onto a perfboard. dJOS suggested that people would be interested and that I layout a proper PCB. I've already got a design for this laid out supporting up to two CF cards (one inside and one out the back) for transferring files to another XT class machine, I just need to refine the design and to a first run of PCBs to test it all out (...When I have the time. Work always takes priority ). This design also has extra options for the LED. For instance, allowing a bypass to the Power LED above the keyboard on the EX/HX, so that the LED turns off to indicate activity- potentially one could swap that LED for a 2 color as well, thereby avoiding destructive case mods, or just a simple LED at the mounting bracket so you can see it from the back for diagnostics.

    My intention is to be able to make proper PCBs of both these cards once I get the designs finalized and tested, and sell them at the cost of PCB manufacture and shipping for whoever wants to assemble their own. For ease of assembly, I intend to make as much of it "through hole" as possible, and the CF-IDE will include a spot for an IDE header for anybody uncomfortable with surface mount soldering of the CF header. Work takes priority though, so it may still be a while before I can complete them.

    For now though, I need detailed top-down pictures of both sides of the XT/ISA versions of the Tandy DMA/RAM cards, if anybody has one and can provide them. At the very least, I want to be able to put up schematics so those so inclined can try making their own.

  2. #2
    Join Date
    Mar 2006
    Location
    Massachusetts, USA
    Posts
    1,884

    Default

    You can find a schematic for the original Tandy DMA/RAM Adapter on page 480 of the scan of the Tandy 1000 Technical Reference Manual. ftp://ftp.oldskool.org/pub/tvdog/tan...nts/1ktech.zip Unfortunately Tandy used a programmable logic array chip for some of the DMA function. These chips can be dumped to get their logic arrangement, but you will need a board to get the chip.
    My Retro Computing and Vintage Gaming Blog : http://nerdlypleasures.blogspot.com/

  3. #3
    Join Date
    Feb 2012
    Location
    Northern Nevada
    Posts
    677

    Default

    Not only is the schematic in the Tandy 1000 manual, the actual PCB silkscreen is in the Tandy 1000EX hardware reference manual...

  4. #4
    Join Date
    Mar 2011
    Location
    Atlanta, GA, USA
    Posts
    1,470

    Default

    As you've probably already discovered if you chased GH's reference, the pinout of the Tandy ISA slots is non-standard. Tandy added the bus hold/hlda signals in place of some pins so the cards could support an 8237A.

    Firstly, I don't know what the obsession is with adding DMA to Tandy's. I've started a whole thread on bench-marking with and without DMA. It seems there is about a 10% general speed up with it. The Tandy 1000 & A had DRAM on the motherboard. The speed up is presumably due to BIOS detecting the 8237A and leveraging it to perform periodic DRAM refresh instead of the CPU triggered by one of the 8253 PIT channels. The 1000 EX & HX have SRAM on the motherboard. So presumably there would not be a general processing speed up. Though it may also speed up floppy disk I/O speeds on both machines. I assume memory expansion card designers saw it as a way to easily add a DRAM refresh circuit with one chip since both ISA and PLUS memory cards used DRAM.

    Also the Tandy ISA card used a genuine 8237A. However there appears to be a mistake in the schematic GH referenced. The schematic shows pin 7 of the 8237A going to AEN and pin 9 going to DMAEN. This seems incorrect. I would think pin 9 / AEN on the 8237A should go to AEN and pin 7 / HLDA on the 8237A should go to DMAEN. I'm guessing this is a numbering mistake in the schematic. I would ohm it out before going forward. The plus card used a Tandy ASIC containing an 8237A design. You can find the data sheet for the ASIC in the EX tech ref.

    I did do a entirely integrated plus card for 2017's Tandy Assembly 1.0. Pictured here:

    1230181311.jpg

    It uses Tomi's standard XT-IDE (Chuck Mod) Universal BIOS and works well. The circuitry on the rear of the board is a failed 1.0 attempt at an optimized version of Scott Baker's enhanced HardMPU so I could connect a MT-32. The 11th hour dead-bugging fix didn't work either. I need to respin the board to get it working but lost interest after life caught up post-Assembly.

    The card on top is a first proof of concept at a NE2000 add-on for a future plus board design (this one is a stand-alone NIC). It 'works' - in that the packet driver loads, I get link auto-negotiation, and the NIC lights the activity LED when it sees 802.1 frames. But it never throws an interrupt on packet reception - not even broadcast frames. I had a small SMT EEPROM on the board for the NIC settings and MAC address. As I never could program it in-circuit, it go laborious de-soldering, reprogramming and remounting. So I decided to table it until I could respin the board for a DIP EEPROM I could easily experiment with.

    I even had some success making a custom PLUS I/O bracket: (10 points if you can spot the brain-fart)

    bracket.jpg

    If you are interested, I can post the schematics online as a starting point for you. Or with enough poking, I could pick both designs up again and push forward.

    I would have released a PLUS memory expansion a long time ago (I have 6-8 other PLUS cards designed but not produced) if I could find a suitable solution to the high-stacking shrouded 62 pin IDC connectors. But, the ultimate board would be a two card stack with it's own mating system that would provide an upward facing PLUS connector for a 3rd card of choice. I was thinking IDE (or SD card), RAM, RTC, MPU-401, 1x serial, and NE2000.

    -Alan
    Last edited by eeguru; December 30th, 2018 at 10:07 AM.
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me

  5. #5
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    404

    Default

    Thanks for the responses guys. I wish I thought to check the other reference manuals. The one for my HX didn't come with schematics for the I/O cards, so I presumed none of the others did either.

    Heh. Eeguru, you put the RJ-45 on the wrong side of the board :P Now what's the hot-snot for? Did you make that bracket from scratch, or just modify an ISA bracket like I did? Either way, it looks well done! My thought was to have an appropriately sized PCB soldered on at a right angle (I've seen this done), but I'd have to do some testing to find out how strong it is in practice. Potentially, I could just get a local fab shop to do up a small sheet of 1.1mm steel on their CNC and bend the mounting tabs myself, but I'd want to have working boards before ordering that, especially if it's gonna cost money.

    I have no idea why Tandy went with the stacking BERG assembly rather than just a riser card like everybody else, or why they chose to put the connectors on the opposite side of the components. It makes it harder to cram things onto that tiny board when you have to give allowance for the next board. Come to think of it, I wonder if the PC-Jr's sidecar is also just 8-bit ISA with a different header? If that were the case, it wouldn't be too hard to 3D print new sidecars.

    Nice job on the t1kplusIDE board. I tried to look up the link on your website, but it returns a 404 error. I'd certainly be interested in seeing the schematics. I built mine due to space constraints, and I can imagine others have similar issues with using lo-tech's card with an PLUS-ISA adapter, so considering the success dJOS has had with his Tandy accessories, I'd consider it a worthwhile effort to produce a run or two of that card if you find the initiative. There's probably enough people on this forum alone who could use one, especially if it has RS232 integrated onto it! Now what one would want to talk to over a modern LAN network with an XT-class machine, I haven't the foggiest idea, but it'd still be cool to see.

    As for why I want to put DMA on it, lets just say that I don't want to feel like loosing something that was once available, especially considering how rare it is to find these cards not already installed in a system. There's plenty enough Tandy 1000's floating around, even now. I've also heard rumours that some cards don't work without DMA, such as sound cards, though I don't have many 8-bit ISA cards left to test that hypothesis on (I foolishly got rid of most of them over a decade ago).

    I already have the PLUS memory board from my HX, and I've been using it as a source of measurements. That custom ASIC is a lost cause (that would require much higher reverse-engineering skills than I have), but the bare 8237A can still be found here and there if you look for it, which is why I want to build around that. RAM chips these days pack a lot more into the same space, which makes fitting a paltry 384K or 512K of RAM onto a new card much easier. If somebody could figure out how to make new 8237A chips, even emulated ones, that be pretty cool.

    As for the connectors, I haven't found anything shrouded yet, but Digikey has 64-pin unshrouded stacking board interface headers that might suffice if you snip off the last two pins. I was thinking of ordering some just to confirm how they fit. Just gotta be careful when you stack a card on top of it that you don't mis-align the pins. https://www.digikey.ca/products/en/c...=1&pageSize=25

  6. #6
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    404

    Default

    I was thinking of using the same thing I had in mind for my CF-IDE design to solve the mounting bracket issue for the DMA/RAM card, that of a PCB soldered onto the main board at a right angle: http://www.mediafire.com/folder/enf5...face_prototype (Don't mind the schematic not being organized according to "block" convention. I get lost easily when it's broken into discrete blocks that aren't connected. This is just the way it works out in my mind.)
    There's supposed to be more holes along the break-off points, but I haven't figured out how to drill holes that aren't THP vias, and the "drill guide" layer doesn't seem to do it (I'm using Altium CircuitMaker). Do you have any thoughts on the right-angle PCB idea? Overall, I'd like to use the same format, if it proves reliable, until I can find a source of custom mounting brackets.

    I don't think I can use this schematic for the final version of the CF-IDE PLUS. Initially, it was to fill my need to lay out the schematic for the Lo-Tech ISA-CF adapter in the way that made sense to me, so that I could wire up the perf-board PLUS version that space constraints forced me to make. I added my own tweaks and functions to that initial design to explore possibilities (mine has more addresses available than anybody would conceivably need in this chassis), but James Pearce technically holds the copyright for the core of the design mine is based on, so I think I'll have to redesign it based on the XT-IDE instead before spinning up boards for other people (and all the re-routing that entails). Besides, Lo-tech's ISA-CF adapter, while it supposedly supports most IDE drives, it hasn't been able to read any of the ones I've tried connecting (works with my CF card just fine), and the XT-IDE is supposed to be compatible with everything.

    I'm not sure how necessary that "Chuck" delay line is unless you're using a much newer IDE drive, but best to include it anyways for maximum compatibility. There's probably a "proper" way to do it, but it would need almost as much logic to hold the word for that 20ns extra or whatever before releasing it. That's a job for somebody much smarter than me.

    The first PLUS card can only be a maximum of 16cm from the mounting bracket before hitting the SmartWatch chip on the HX, or the inner face of the chassis in the 3rd position, but the second card can be up to 18cm long before it hits anything. I don't have any experience with making FPGAs, but I may have to start learning that to cram everything I want onto the board in a way that doesn't resemble a Tetris "game-over" scenario. Where would you suggest I start to learn about programming FPGAs? Mapping out the logic gates seems simple enough, but I don't know anything past that.

  7. #7
    Join Date
    Mar 2011
    Location
    Atlanta, GA, USA
    Posts
    1,470

    Default

    Quote Originally Posted by blackepyon View Post
    Heh. Eeguru, you put the RJ-45 on the wrong side of the board
    10 points!

    Quote Originally Posted by blackepyon View Post
    Now what's the hot-snot for?
    A failed dead bug of a CPLD to replace the botched latches.

    Quote Originally Posted by blackepyon View Post
    Did you make that bracket from scratch, or just modify an ISA bracket like I did? Either way, it looks well done!
    Milled from frontpanelexpress.com with the mounting stems bent up using a block-jig also from them.

    Quote Originally Posted by blackepyon View Post
    Come to think of it, I wonder if the PC-Jr's sidecar is also just 8-bit ISA with a different header? If that were the case, it wouldn't be too hard to 3D print new sidecars.
    I know something about that. [see JR-IDE on my site] The answer is yes to both.

    Quote Originally Posted by blackepyon View Post
    Nice job on the t1kplusIDE board. I tried to look up the link on your website, but it returns a 404 error. I'd certainly be interested in seeing the schematics.
    I'll try and get things posted during the weekend.

    Quote Originally Posted by blackepyon View Post
    I've also heard rumours that some cards don't work without DMA, such as sound cards
    Sound cards that playback PCM streams - almost all after and including the SoundBlaster 1.0 - require DMA. FM only cards like the Adlib & CMS/GameBlaster do not. But you are talking about a Tandy 1000. It's 3+ voice FM synthesis literally set a standard in PC audio (copied from Jr). Unless you are going to make a PLUS SB clone or adapt an ISA slot for a sound card which isn't going to fit anyway, again, why bother with DMA?

    Quote Originally Posted by blackepyon View Post
    That custom ASIC is a lost cause (that would require much higher reverse-engineering skills than I have), but the bare 8237A can still be found here and there if you look for it, which is why I want to build around that. RAM chips these days pack a lot more into the same space, which makes fitting a paltry 384K or 512K of RAM onto a new card much easier.
    It's already been pointed out twice. The ASIC specs can be found in the EX Tech Ref on page 283. From that document:

    Code:
    The DMA Chip is an Intel 8237A-5 (AMD 9517) DMA Controller plus
    associated support circuity to integrate the TANDY 1000 External
    Memory function into a single ASIC part. The support circuity is
    divided into the five functional sections. The ADDRESS DECODE
    MEMORY and ADDRESS DECODE-IO are independent of the DMA
    function and interface directly into the bus. The TIMING and DMA
    RDY sections are DMA support functions. The BUFFERS support
    the in/out pins. The functional configuration of the 8237 for the
    DMA Chip is a fixed subset of its total capability. It is configured
    via the BIOS ROM for: normal timing, fixed priority, late write,
    high DREQ sense, low DACK sense.
    The ISA card has a discrete 8237A and it's design can be found in the 1000 tech ref. I would replicate that design as it is almost certainly what is inside the ASIC wire-for-wire.

    Quote Originally Posted by blackepyon View Post
    As for the connectors, I haven't found anything shrouded yet, but Digikey has 64-pin unshrouded stacking board interface headers that might suffice if you snip off the last two pins.
    I have seen those. They might also work with an SLA printed shroud. I still prefer the 2x card set with own stacking system and a single shrouded upper connector.

    Quote Originally Posted by blackepyon View Post
    I'm not sure how necessary that "Chuck" delay line is unless you're using a much newer IDE drive, but best to include it anyways for maximum compatibility. There's probably a "proper" way to do it, but it would need almost as much logic to hold the word for that 20ns extra or whatever before releasing it. That's a job for somebody much smarter than me.
    I was talking about the ChuckMod - which is the reorganization of register addresses so the 16-bit upper byte latch for the data register is at an address +1 from the lower byte. It allows you to do an in ax, dx (word move) at the data register address to grab the lower byte (while the card latches the upper) then have the processor BIU automatically issue another ISA 8-bit read for address+1 and put the combined result in AX in one instruction. I believe what you are referring to are the strobe delays added to Glitch's XT-IDE Rev.4 to improve compatibility with some IDE drives (one could call that the AlanMod) .

    Quote Originally Posted by blackepyon View Post
    I don't have any experience with making FPGAs, but I may have to start learning that to cram everything I want onto the board in a way that doesn't resemble a Tetris "game-over" scenario. Where would you suggest I start to learn about programming FPGAs? Mapping out the logic gates seems simple enough, but I don't know anything past that.
    Simple PLDs are a good starting point (eg. 16v8 and 22v10s). They were ubiquitous in the mid-80s, allow combining several discrete 74xx/4xxx logic devices into one chip, and can be programmed in almost any modern EEPROM programmer. Past that, look at devices like ATF1508s (in my design above). Save FPGAs for waay later.

    -Alan
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me

  8. #8
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    404

    Default

    The ISA card has a discrete 8237A and it's design can be found in the 1000 tech ref. I would replicate that design as it is almost certainly what is inside the ASIC wire-for-wire.
    That's where I'm going now. Just wish I thought to check the other manuals sooner. As I said, the 1000HX manual only had the description and block diagrams, not the schematics for the expansion cards, so I didn't think to check the others. I've already downloaded the 1000 tech reference manual. Laser printers are nice for printing off manuals (I'd never attempt to print off a manual on an inkjet)

    Re: the ASIC on the PLUS card, I already knew more or less what's inside it, but I needed the schematics to be able to replicate it (thanks to you guys, I now have them). Now if somebody was able to de-pot an 8237A and reconstruct it gate for gate, or build a replica from the block diagrams, they'd be a far better man that I, but I'm not going to trouble with that. As you say, the advantages are slight and select and don't provide enough of a boost to be worth an engineer's time. Why I bother with DMA? Just because. There's little practical benefit in playing around with old hardware that could be emulated in DOSBox (other than learning how make parts and mods for it), but we do it anyways. Nostalgia. Not sure there's much value in replicating the 300 baud modem either, unless one wanted to dial into a BBS or something. But integrating RS323C onto either of the cards though, is well worth the effort. The RAM card would work without the DMA regardless, so if I get it working, I can just leave that as an option if people want to go through the trouble.

    Now that you mention it, I'm surprised nobody's tried to make a Sound Blaster replica yet (somebody already made an Ad-Lib clone). Most of the games capable of running on an 8088 are going to be looking either for a PC speaker or the Tandy 3-voice anyways, but there's certainly a market for Sound Blaster among the vintage gaming community, so that might be worth somebody looking into. I've held onto my SB Pro 2.0, and glad I did (they're pretty pricey on eBay). Using it in my 1000 RSX now, since the 3-voice chip was moved to a different address on that model, rendering it almost useless unless you modify the code for nearly every game that would have looked for it (none of the ones I have can see it)

    I believe what you are referring to are the strobe delays added to Glitch's XT-IDE Rev.4 to improve compatibility with some IDE drives (one could call that the AlanMod) .
    Yeah, I was definitely talking about the delay.

    Milled from frontpanelexpress.com with the mounting stems bent up using a block-jig also from them.
    There are people who specialize in this kinda thing? Learn something new every day. In that case, I won't bother with the right-angle mounted PCB (could have saved a lot of time on that). This is far cleaner.

    I'll look into PLDs then. I was thinking of getting myself an entry level EEPROM programmer anyways, something like https://www.banggood.com/TL866A-USB-...r_warehouse=CN
    Know if these cheap ones are any good? I don't want to end up spending $800 or more on a programmer to support my hobby. If it came to that, I'd rather spend that money on a 3-D printer, because there's a lot of things that need repairing that it's hard to find new parts for.

    They might also work with an SLA printed shroud.
    I didn't think of that. The shroud is simple enough I wouldn't bother trying to send it in for scanning, just measure and make a CAD model, and have them do a print run from that. There are a couple 3D print fab shops out in my area I could look at. If their prices are reasonable, I might not need to bother getting a 3D printer. At least not yet. Even the entry-level ones cost money.

    I still prefer the 2x card set with own stacking system and a single shrouded upper connector.
    That's a project for another day once everything's been bugged out

    Thanks for all the input. This should set me well on my way

  9. #9

    Default

    Happy to be corrected but AFAIK the revised XTIDE signal timing was my work:

    https://www.lo-tech.co.uk/lo-tech-8-...er-mux-design/

  10. #10
    Join Date
    Mar 2011
    Location
    Atlanta, GA, USA
    Posts
    1,470

    Default

    Could be a joint discovery then. I came across it during NetPi-IDE testing. It worked on a JR-IDE initially. When I moved it to a XT-IDE rev 3 board, it did not. I fixed it by using a local clock in my NetPi-IDE CPLD to hold the read data a bit longer after the read strobes were de-asserted. I fed that back to Jon and retested my setup with an early prototype of V4.
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •