Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by Eudimorphodon View Post
    ...stopped at the local electronics hole at lunchtime
    There aren't any left in my area I miss Radio Shack. Nothing but cellphone and gadget shops these days.
    I order almost everything I need from Digi-Key now. Just keep a cart open and keep adding to it 'till it gets to $100, then take advantage of the free shipping.

    Re: DMA & UART
    There is a DMA bit there, but my ignorance about how DMA really works is probably just as big as yours.
    8086_IO4-4.jpg
    Last edited by blackepyon; August 14, 2019, 04:27 AM.
    My vintage systems: Tandy 1000 HX, Tandy 1000 RSX, Tandy 1100FD, Tandy 64K CoCo 2, Commodore VIC-20, Hyundai Super16TE (XT clone), and some random Pentium in a Hewitt Rand chassis...

    Some people keep a classic car in their garage. Some people keep vintage computers. The latter hobby is cheaper, and is less likely to lead to a fatal accident.

    Comment


      I'm worried Anchor might be in trouble (last time I was in there the counter conversation was revolving around Internet competition), which is really a shame because it's a real Silicon Valley original. They still have surplus Atari 800 parts and unpopulated S-100 PCBs on the shelf.

      I dug around a bit and it looks like the 16550 and up do have DMA signalling lines that work in conjunction with their FIFO, but that feature isn't implemented on a standard ISA serial card. The schematic for the Sergey serial/FDC card has them NC.
      My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

      Comment


        Originally posted by Eudimorphodon View Post
        I dug around a bit and it looks like the 16550 and up do have DMA signalling lines that work in conjunction with their FIFO, but that feature isn't implemented on a standard ISA serial card. The schematic for the Sergey serial/FDC card has them NC.
        DMA for a UART is pointless - especially on a PC. You would have to write your own serial routines as part of a application driver, fossil driver, or extended BIOS. And most things DOS isn't going to go through any of those paths to get to the serial port anyway. 99% of DOS software will do direct port I/O to the UART. And it wouldn't save many cycles unless you were transferring lots of data - aka file transfers. The little CPU savings you would get from it doesn't matter under a non-multitasking OS like DOS where 99% of the same software sits and spins reading the LSR over and over. DMA bus cycles are shorter in general than I/O but you are rate-limited anyway by the slow line speed. And I thought we were talking Tandy 1000 EX/HX here which doesn't even have a DMA controller in the first place to initiate the transfers unless you have the Plus memory expansion which I though was what this project was replacing? Did you add an external 8237A to the board that I missed?
        "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

        Comment


          Originally posted by eeguru View Post
          And I thought we were talking Tandy 1000 EX/HX here which doesn't even have a DMA controller in the first place to initiate the transfers unless you have the Plus memory expansion which I though was what this project was replacing? Did you add an external 8237A to the board that I missed?
          Blackepyon is talking about his RAM card project into which he intends to incorporate the DMA controller. I have no intention of trying to incorporate one unless an absolutely compelling case for one arises; serial was mentioned as a possibility and I was merely stating why I didn't think it was, at least directly. (So far as I can tell the common saw that connects DMA to Serial I/O in ancient PCs is that having it supposedly can prevent character loss when doing disk I/O during a file transfer. I believe it was you who raised the question of whether that would even apply to a Tandy 1000 because what evidence is there that the Tandy 1000 switches to using DMA for floppy I/O if the DMA controller is present?(*))

          (*) Edit: The Tandy 1000 EX technical manual shows DMA lines going from the floppy controller to the edge connector so it looks like a Tandy 1000 *can* do DMA with it. Whether it does or not is a separate question, although since they ran the lines it seems like they may have at least had reason to include a conditional for it in the BIOS.
          Last edited by Eudimorphodon; August 14, 2019, 08:37 AM.
          My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

          Comment


            Originally posted by eeguru View Post
            And I thought we were talking Tandy 1000 EX/HX here which doesn't even have a DMA controller in the first place to initiate the transfers unless you have the Plus memory expansion which I though was what this project was replacing? Did you add an external 8237A to the board that I missed?
            Na, the 8237A was for my board later. I've got a few other projects I want to finish up first before I can get back to that (including TTL a monitor with a bad vertical circuit that I need to fix and put back together), but it looks like Eudimorphodon's board is ready to go... For him at least. Still trying to figure out why the heck his board isn't working for me. The logic chips TEST good, but still locking up after it detects 640K, regardless of whether I have the UMB pages enabled. Gonna try just swapping them out with fresh ones anyways just to be sure. If not, I'm gonna map the thing out end to end on my logic analyzer and try to figure out what's going on.

            The DMA bit on the UART was more of a curiosity, since I noticed the control bit was there, but it isn't something I was planning on using. But a dual serial PLUS card would be nice if we can get that dual UART chip working. I've got a multi-I/O ISA card in mine providing serial and a second parallel port, but I hate the way I have to mount the thing.

            To what Eudimorphodon said, the Tandy 1000 schematics, including for my HX, show B6 and B26 on the expansion header labelled as FDCDMAQ and /FDCDACK, rather than DMARQ2 and /DMACK2, so it probably does utilize DMA for the floppy when DMA is present.
            My vintage systems: Tandy 1000 HX, Tandy 1000 RSX, Tandy 1100FD, Tandy 64K CoCo 2, Commodore VIC-20, Hyundai Super16TE (XT clone), and some random Pentium in a Hewitt Rand chassis...

            Some people keep a classic car in their garage. Some people keep vintage computers. The latter hobby is cheaper, and is less likely to lead to a fatal accident.

            Comment


              I seriously don't get why it's giving you so much grief. The RAM portion has been working perfectly (other than the possibly nebulous results from Check-It 3) ever since I sorted the buffer mistake. I'm kind of tempted to build up another board and see if there's some kind of divine intervention that's allowing Patient Zero to function. (But, man, do I *not* want to solder another surface mount DS1315.)
              My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

              Comment


                FWIW, I just performed some thread necromancy on a topic that I believe was quoted earlier in this thread. TL;DR, according to Topbench a RAM card based on this brain-dead SRAM design may be measurably faster than the original card for CPU/Memory bound operations.. Obviously there are probably holes in this statement one can drive a freight train through.
                My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                Comment


                  Originally posted by blackepyon View Post
                  Na, the 8237A was for my board later. I've got a few other projects I want to finish up first before I can get back to that (including TTL a monitor with a bad vertical circuit that I need to fix and put back together), but it looks like Eudimorphodon's board is ready to go... For him at least. Still trying to figure out why the heck his board isn't working for me. The logic chips TEST good, but still locking up after it detects 640K, regardless of whether I have the UMB pages enabled. Gonna try just swapping them out with fresh ones anyways just to be sure. If not, I'm gonna map the thing out end to end on my logic analyzer and try to figure out what's going on.
                  I was thinking about this a little today, and just to sanity check: your HX still works with other RAM expansions, right?

                  A theory that brewed in my head is I was wondering if it's possible there is some sort of conflict or corruption going on with the configuration EEPROM in your HX, given how the machine hangs after the 640k display but before booting? I don't know what precisely the HX stores in there, if it might retain some kind of data about installed cards or devices that *something* about this card results in a freakout?

                  That seems incredibly unlikely given your success with the proto-board RAM experiment, obviously. Just a straw that as of yet remained ungrasped.
                  My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                  Comment


                    It works with the original DMA/RAM expansion board, and with the 3-chip solution we worked out.
                    My vintage systems: Tandy 1000 HX, Tandy 1000 RSX, Tandy 1100FD, Tandy 64K CoCo 2, Commodore VIC-20, Hyundai Super16TE (XT clone), and some random Pentium in a Hewitt Rand chassis...

                    Some people keep a classic car in their garage. Some people keep vintage computers. The latter hobby is cheaper, and is less likely to lead to a fatal accident.

                    Comment


                      So that almost certainly has nothing to do with it... I do have two stupid ideas.

                      1: if you have the board fully occupied with ICs... Does it make any difference if you sever the connection between the c000 output from the 74138 (pull the pin out of the socket or whatever) and adding a pull up all the downstream circuitry? (I probably should have put a ROM disable jumper on it.)

                      2: try a smaller value resistor on the E000 pull-up, or just tie it (temporarily) to 5v?

                      Suggestion #1 is simply a crazy idea that it might be getting confused by something it's seeing on the bus when scanning for option ROMs, and #2 is to absolutely rule out we're stomping on the ROM DOS.

                      (Edit: Actually, an idea might be run it without the 74138 installed and the three outputs C, D, and E000 pulled up. That leaves all the base 384k decoding and address inversion circuitry as is but should hard disable everything in the expansion space.)
                      Last edited by Eudimorphodon; August 17, 2019, 09:38 PM.
                      My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                      Comment


                        ... although, I definitely want to make clear that if you're sick of it and want to take a break to work on your stuff that's awesome, don't feel obligated to bang your head on this wall. I really appreciate you looking at it but it's not like you're being paid.

                        I got an offer a few days ago for a spare HX motherboard to play with, if that pans out my plan is to try to construct a "HackinTandy HX" for bench testing. I am just flabbergasted trying to figure out what might be the problem. (I've kind of been slacking off from the circuit designing I should be doing because I'm having so much fun wasting my time trying old games I remember loving on my EX now that it has the RAM to handle them, and so far as I can tell it's working flawlessly.)
                        My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                        Comment


                          Originally posted by blackepyon View Post
                          It works with the original DMA/RAM expansion board, and with the 3-chip solution we worked out.
                          This is another shot in the dark, but... I've been banging on KiCad today, and I noticed while cleaning up traces on a potential Rev 2 of the board that the MEMR trace takes a *really* torturous path around the pads of IC U3 (the 740 to get to the RAM/ROM sockets. (Kicad doesn't have an autorouter but it does have a "drag and choose a path" function that sometimes makes really poor decisions, and I guess I missed what a mess this was.) The board's working for me but maaaybe there could be a noise problem?

                          (I fixed the trace so it now substantially cleaner and shares routing with the buffer direction fix.)

                          In other news I took the plunge and ordered some cheap 16552 UARTs. (They're pulls so I hope they work.) I have a Kicad component symbol created for the part that looks correct and I think I've wrapped my head around what needs to be changed to make a 16552 work instead of a 16550. I think I'm going to temporarily can my ambition of getting the CF and Serial on the same boards; instead I'm just going to finish a brain-dead three chip layout to hold the 40 pin->CF sled, send that to China, and sketch up a stand-alone serial schematic. I'll save several headaches laying things out, can always try to merge them later.
                          My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                          Comment


                            Layout finished for a CF-only daughtercard. (The "easy" part.)

                            Tandy-CF-Port.jpg

                            I'm really glad I double-checked everything before I got too deep into laying the traces; I discovered that one of the two styles of 74LS139 symbols in Kicad has the input labels for each multiplexer reversed. I suppose I should file a bug for that, because it very nearly scr3wed me. (Not that I can be sure the rest of the layout is going to work, but I want the mistakes to be my fault.) If I don't find any other boners in the final check it's off to PCBway.
                            My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                            Comment


                              I like the graphic

                              I also want to know what the heck is going on. Sorry, I haven't gotten back to it, I've been busy the last few days. I'm also working on building a better breadboard rig (I'll post pics when I'm done that, and you'll see why) which will also include soldered 40-pin headers for my logic analyzer pods so I can more easily figure out what the bus is doing at any given time.

                              Setting up an HX motherboard to play with would rule out for sure whether this is the HX that's doing it, and not just something on my end. At one point, over a decade ago, I saw an EX at one of my local thrift stores. I didn't pick it up, because I already had my HX and didn't see any point - a decision that I'm still kicking myself in the butt over, because it would be useful not just for testing, but because there are actually layout differences (as I was discussing with dJOS in his SmartWatch thread) between the EX and HX, and I've never had the opportunity to do a proper comparison between them.

                              Since it looks like you got room on your board, I've got an idea for the CF card LED so you can can see CF card activity without any destructive case mods. I set up a '00 (an '02 or '05 work too, depending on what you've got free) as a set of inverters in series with each other, with the first input connected to the *DASP signal. First output is active high, second output is active low, and they're both at TTL voltage with enough current to properly drive a 20mA LED at full brightness, regardless of whether or not the CF sled has an LED onboard. Replace the power LED above the keyboard with a two-colour LED (common cathode), run a cable to the card, and have the green lead go to the second gate, the red to the first (with 470R resistors inline, of course). This will make the LED green when the CF card is disconnected or inactive (assuming you use gates with internal pullups, not "open collectors"), and red when there's activity. I tried just keeping the green active all the time, but the red was being washed out, so having it flip colours works better. I tested out on my own board, and I'm quite happy with the results.
                              My vintage systems: Tandy 1000 HX, Tandy 1000 RSX, Tandy 1100FD, Tandy 64K CoCo 2, Commodore VIC-20, Hyundai Super16TE (XT clone), and some random Pentium in a Hewitt Rand chassis...

                              Some people keep a classic car in their garage. Some people keep vintage computers. The latter hobby is cheaper, and is less likely to lead to a fatal accident.

                              Comment


                                Originally posted by blackepyon View Post
                                I like the graphic
                                Heh. Yeah, that's all of five minute's work there. Figured a card for these old dinosaurs deserved appropriate branding.

                                Anyway, yeah, no problem you've been busy. I was a little worried I was coming across as pestering. Definitely keeping my fingers crossed that the HX motherboard thing works out, because if nothing else it would save a little wear on my EX's motherboard connector yanking boards on and off it if I had a test mule. I still just can't fathom what could be different between the machines other than the E-page being occupied, and the E-disable jumper *seems* to work fine on my machine, so... yeah. Gremlins. Definitely gremlins.

                                The LED thing definitely sounds like a neat idea. When you say the inverters are in "series with each other" you've got it set up so you're driving the input of the second *and* the RED led with the inverted *DASP output, and essentially using the second inverter as a driver for the green one (instead of trying to drive it directly *and* the red inverter straight from the card? I don't know if I want to try to incorporate it into my rev 1 there, because I'm kind of sick of messing with the board. I realized the next day that I totally forgot there was that "gutter zone" you need to watch out for on the PLUS cards to make sure they don't interfere with the port area of cards above them, and thus I had to move the 74245 down about a quarter of an inch. Fixed version:

                                Tandy-CF-Port.jpg

                                I haven't sent it to PCBway yet, because, well... in a demonic fit of banging my head against the wall I completed a serial card layout last night:

                                Tandy-Serial.jpg

                                The board is set up to use a 16552. Channel 1 is hardwired to IRQ4, Channel 2 to IRQ3, but you can choose one each COM1/3 and COM 2/4 for the respective channels. I used the decoding from the serial portion of Sergey's Serial/FDC combo card, with the addition of a 7408 AND gate in front of CS on the 16552 so it's pulled low when *either* Com1 or Com2 is active. (My interpretation of the datasheet is CS is low for both serial ports, and CHSL high == channel 1 and CHSL low == channel2.)

                                Kind of nervous because I feel like I'm a little in uncharted territory with the 16552. I'm surprised more people aren't using it because it seems to be explicitly designed to live on PC serial cards. I've double-checked everything three times now (getting burned by that bad KiCad symbol wasn't a confidence builder), I guess eventually I need to pull the trigger.
                                My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                                Comment

                                Working...
                                X