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

    #61
    Originally posted by Eudimorphodon View Post
    Hah! I guess it pays to double-check your work. I just tracked down and downloaded the 1000 HX service manual because I wanted to see what its memory map looked like (in the name of making sure what I was building I didn't step on the HX's built-in DOS ROMs, just in case) and its clearer diagrams produced a forehead-slapper; I'd assumed that table J12 on page 6 of the EX manual actually reflected the physical layout of the expansion connector. It turns out it has the columns reversed. Aaaargh!

    Better to find that out now than after having some test cards made. But it does mean I have to go back and fix my custom library footprints that took like an hour and a half to make. (not to mention having to reroute the PCB)
    Oh yes, that one will screw you over.

    Reminds me of a mistake I made, where I was poking around with a multimeter and accidentally slipped the probe, crossing the +12v with one of the data pins adjacent to it, bricking the board. I was able to narrow down the buffer chip on the motherboard that was responsible, and replace it, so it works again, but if you don't note that the A and B sides are reversed between the PLUS and ISA, you'll likely fry whatever is connected directly to the data bus (another reason for having a '245 buffer, should those two somehow cross).
    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


      #62
      Yeah. I was so shaken from almost committing to the mistaken layout I actually printed out the main board PCB art in the manual and traced out some of the obvious-as-to-function lines like connections to ground to be absolutely sure the orientations are correct now.

      Spent a bit of time today finishing a schematic for the CF port and took a shot at combining it with the RAM and clock. Fiddling with the rat's nest for a while has convinced me to stick with my board sandwich plan for memory (and clock) on one board and I/O on the other. Just the IDE port is trivial with ROM already on the other board, so I'm going to see how the serial port from the floppy/serial plans out there fit.

      On one hand doing it this way would make the CF port on my I/O board useless to anyone that has a different memory card (or wants CF with 256k), but the serial part could probably be built stand-alone and potentially be useful. For that board I guess I should make at least a token attempt to make sure the clearances around the bus connector would let it fit a normal PLUS card stack.

      (I suppose it might be worth doing on the other one? Potentially the ROM/Clock part could work without the RAM chip installed.)
      My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

      Comment


        #63
        Just about finished laying out a combination CF Port/Serial card to piggyback on the RAM/ROM/Calendar board. At this point I think I've figured out just enough about Kicad's PCB layout tools that I I'm going to go back to the RAM/ROM board and tweak it so it includes some things I neglected the first time, like heavier traces for VCC, and then maybe it's go time.

        Stepping back a bit, though, I have some questions about how video RAM is mapped in the pre-TX/TL systems that I'm wondering if someone can clarify. The T1k FAQ here and some other articles seem to imply that as RAM is added to a T1000 the base memory location of the video buffer (which is also double-mapped at B800h) moves higher. (The latter article names some specific examples of games that supposedly break because base level of the video buffer moves out of the region in which it would reside in a PCjr.) I'm trying to wrap my head around how that would work based on the sketchy information in the EX and HX tech manuals. It sounds like the buffer *has* to reside inside the built-in 256k RAM, the video circuitry can't just arbitrarily pull pixels from any installed memory, and there's this diagram that shows where the possible RAM pages reside in memory using 00000 as the base:

        T1k_VRAM_Pages.jpg

        But later in the manual there is this chart which seems to imply that the starting point of the page VRAM is stolen from *does* move upward as RAM is expanded:

        T1k_VRAM_Base.jpg

        In 128k increments. The manual doesn't seem to explain this literally anywhere (or it's in such sparse language I'm missing it), but does this imply that the addresses on the bus connector are actually being remapped by the video chip with regard to the base RAM area?

        Why this matters is if this is what is happening I'm pretty sure the A000h jumper on my RAM card design isn't going to work to give 704k RAM, because I was stupidly assuming that the VRAM was moving the base of memory upwards, not stealing it off the top. If this is how it works it seems that it's always going to steal 16-32k (by default) from just under the 640k barrier, so there will be a hole between there and any RAM I put in the A000h page.

        I wonder if I can convince USE!UMB.sys to use it?

        (*EDIT*: Actually, now I'm wondering if it might theoretically be possible to put a 512k expansion in an EX/HX and have it behave like a 768k-expanded TX/TL/etc. by manipulating the NMI Mask Register so it uses 8000h for the start address of the remapped base memory with "256k Video RAM" enabled, a combination the tech manual seems to deem illegal. Presumably that would require a BIOS patch?)
        Last edited by Eudimorphodon; June 11, 2019, 11:16 AM.
        My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

        Comment


          #64
          Well, it certainly does steal the top 16-32K and place them in the UMB section for video and HI RAM. Whether it pulls it physically from the onboard 256k, you might know better than I.
          The next few pictures are hasty screen captures from Checkit3. This is my HX, with the Tandy DMA/RAM card installed. C800h-CA00h is my XT-CF card, so that can be safely ignored, but the other blank areas could potentially be mapped as UMB for Lotus 1-2-3 and other programs that might take advantage of it, who knows.

          IMG_20190611_180730206.jpg
          IMG_20190611_180847668.jpg
          IMG_20190611_180756147.jpg
          Last edited by blackepyon; June 11, 2019, 05:32 PM.
          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


            #65
            Originally posted by blackepyon View Post
            Well, it certainly does steal the top 16-32K and place them in the UMB section for video and HI RAM...
            Eyuck. I'm pretty sure your screenshots verify that just tacking 64k after the 640k limit and using a device driver that works on a normal XT (There's a "704k" device driver floating around out there on the DOS archives for doing so that I was going to try) to raise the BIOS RAM ceiling isn't going to work because there's going to be an actual memory hole that can't be shoved up to the top. (At least in a 64k increment. I'm itching now to find the 1000 TX tech manual and see if it goes into detail about how the 768k configuration available for that machine worked... I *think* that machine also used the same, or nearly the same, version of the video ASIC?)

            The description of how the base RAM is slaved to the video chip in the tech manual essentially confirms that it *must* be some sort of memory address translation. I wish it described it in more detail, however, because... wow. The fact that the manual calls the register that controls how this mapping is performed the "NMI Mask" kind of implies it might not actually be all in hardware? (NMI handlers are infamously used in some oddball PCs to emulate with software missing hardware or paper over incompatibilities.)

            But I suppose ultimately the TL;DR is it's likely the only way I can use the A-page RAM is as a UMB. This got me re-thinking the idea of coming up with some harebrained scheme to instead map 128k of the 512k RAM into the D and E pages. Could do it by selectively inverting a couple of the address lines to the RAM when the chip select pointed to those pages, maybe? Ugh.
            My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

            Comment


              #66
              I think most people will be happy just having that extra 384K to bring it up to a more functional 640K, since most programs that needed more than that needed a meg or more (not a whole lot out there that actually used UMB, to my knowledge. That was kinda my idea all along, once I can get back to this project (it's currently a half-finished protoboard with a ratsnest of wire). If you feel brave enough, you could pick up one of Lo-Tech's 1MB RAM cards, connect it to your EX with an ISA-PLUS ribbon adapter, and play around with the settings to see what lights up and if/how the machine can recognize anything past 640K.
              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


                #67
                I just finished skimming through the TX's technical manual, and the takeaway is that you *probably* can't just poke new values into the NMI mask register in an 8088-based T1k to shove the video memory above the 640k mark. It does use the same "Big Blue" video ASIC as the 8088 machines, and the ASIC has RAM slaved to it that can be both VRAM and system RAM when you have a machine with just 640k. The difference seems to be, though, that all the "other" RAM in the system is physically mapped *below* the start of the BB RAM, not above it, so the location of the video page frame is "literally" at the end of main memory instead of a page being flipped/remapped from the bottom?

                There *is* still an NMI mask register like the 8088 boxes and there's a table that is a superset of the one in the HX manual though so... heck if I know. I'm kind of curious what would happen if you stuck the value a 768k TX runs with (which limits the Tandy graphics RAM to the B000h window) into an EX/HX with expansion memory; would you end up with a 384k machine with the "Big Blue" essentially acting as a video card only, would it crash hard because that mode needs alternate RAM physically mapped at 0000h... or what.

                Someone far, far more competent than I am at 8088 machine language needs to disassemble the boot ROMs and document how the initialization routines decide what to stick in that register.
                My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                Comment


                  #68
                  Mulling this over for a while instead of sleeping an alternative theory of how all these machines might work has occurred to me, and it makes me wonder if I need to re-check a base assumption:

                  I've seen it suggested several times to stick a lo-tech RAM card into an EX/HX with an ISA adapter. Has anyone actually done that? And if you did, how did you set the switches?

                  I ask because an alternative interpretation of that NMI mask table is that all 1000's move the base location of Big Blue based on installed RAM. And if that's the case, wouldn't a Tandy RAM card need to start counting from 00000h, not 20000h or 40000h (128k original 1000 and EX/HX, respectively)?

                  If Big Blue moves its base location up in 128k intervals that explains a *lot*. And it also means my RAM card's mapping (based on what you'd do for a 256k XT) is all wrong.

                  Has anyone made a DIY RAM expansion for these before?
                  My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                  Comment


                    #69
                    Originally posted by Eudimorphodon View Post
                    Mulling this over for a while instead of sleeping an alternative theory of how all these machines might work has occurred to me, and it makes me wonder if I need to re-check a base assumption:

                    I've seen it suggested several times to stick a lo-tech RAM card into an EX/HX with an ISA adapter. Has anyone actually done that? And if you did, how did you set the switches?

                    I ask because an alternative interpretation of that NMI mask table is that all 1000's move the base location of Big Blue based on installed RAM. And if that's the case, wouldn't a Tandy RAM card need to start counting from 00000h, not 20000h or 40000h (128k original 1000 and EX/HX, respectively)?

                    If Big Blue moves its base location up in 128k intervals that explains a *lot*. And it also means my RAM card's mapping (based on what you'd do for a 256k XT) is all wrong.

                    Has anyone made a DIY RAM expansion for these before?
                    They do work in the EX / HX machines - you do need to disable the 1st 256kb of ram tho. as for the upper ram I'm not sure.
                    My Retro Collection:
                    CBM: C64, Amiga 500 x2, 600 & 1200
                    Apple's: IIc, Mac SE, LCII, LC630 & Power Mac G3/233 Desktop
                    PC's: K6-III+ 500 System + Roland MT-32 & Tandy 1000 EX 640kb, 3.5" FDD, CF-IDE 4GB HDD
                    Visit my Tindie store for Tandy 1000 Adapters for EX, HX, SX, SL, TX & TL etc

                    Comment


                      #70
                      Originally posted by dJOS View Post
                      They do work in the EX / HX machines - you do need to disable the 1st 256kb of ram tho.
                      Have you tried this first hand? I've been searching in vain for any posts where someone relates actually plugging one of these cards into a Tandy 1000 of any sort (or at least 1000/A/EX/HX) to use as main RAM, if you have a link to such a post I'd love to see it.

                      I found the "Service" manual for the original T1k on Archive.org

                      https://archive.org/details/Tandy_10...ual_1985_Tandy

                      This manual has much the same information as the "Technical" manuals but it includes a couple "Theory of Operations" sections that fill in some of the blank areas I complained about earlier. And what I'm piecing together is that a RAM card for the 1000 series needs to start at 00000h. Page 40 of the service manual:

                      The RAM is located at an address determined by the memory configuration control port. In a 128K system that address is normally 00000-1FFFF...
                      Also, this manual has an account of how the initialization process works starting on page 75, and here's a couple of passages that make it sound like the RAM controlled by the Big Blue is *not* located at the bottom of the memory map when the system is started:

                      The next step is to initialize memory for the CPU to use as a scratch pad for analytic decisions.
                      The system/video RAM is moved to begin at address A0000 hex. (A write to memory configuration
                      port A0 also disables "non-maskable interrupts".)....

                      A 180h byte area of video/system RAM is tested to be used for "stack" and "data" by the CPU.
                      The test consists of writing throughout the area in the following order all 0000's, 5555's, AAAA's
                      and FFFF's from address BBE80 to BBFFF. (All video accesses are through the fixed video address
                      window B8000— BFFFF)...

                      (And now the important-sounding part)

                      After establishing that a portion of the video/system memory is functional, you must determine the
                      amount, if any, of available external memory. The external memory depends upon the DMA channel
                      #0 for "refresh" and the DMA depends upon the Counter/Timer counter #1 for the "requests".
                      Thus the 8253 Counter/Timer is tested. A rotating bit pattern is written/read from counter #2 with
                      the output gate disabled. If it is faulty, the following message is displayed:

                      11 FAULTY WRITE AND READ OF 8253 CHANNEL 2 REG' 1

                      If the test is passed counter #1 is programmed for a pulse at 15 microsecond intervals. Now the
                      DMA controller is tested in a similar manner to verify its existence and Draper operation. If it passes,
                      channel #0 is programmed for "refresh" operation and enabled.

                      Next the external RAM memory size is determined. This is accomplished by reading a word of data
                      at each 128K boundary complimenting the data, writing the data back, delaying a short time, and
                      then reading it. When the data is wrong, assume no memory. The search is terminated. The add-on
                      memory is address mapped to start at 00000 hex and be contiguious in 128K segments up to 512K
                      total. When the amount of external RAM is determined, the video/system RAM is mapped to reside
                      on top and be the uppermost 128K.
                      At this point, the message:

                      ' "MEMORY SIZE = XXX K ' '

                      appears on the screen. If there is a possible fault, the displayed memory amount is different from
                      the known amount. If only the base amount of 128K is accounted for, the most probable fault is
                      an inoperative DMA refresh. Other amounts less than the full amount indicates a faulty memory."
                      (The wording of this section kind of freaks me out a little because a possible interpretation of it is that the Tandy won't do the memory test if it doesn't detect DMA, but I think there's evidence like that weird undocumented SRAM expansion for an original 1k that was ebay that that isn't the case.)

                      I'll grant that the word "map" in there is open to interpretation, but... I also looked in the Tandy 1000 *technical* manual that's linked at the beginning of this thread, and while it doesn't have the startup theory of operations section it does have section explaining the operation of the RAM card starting on page 73, and it explicitly says that the base address of the first RAM card is 00000h.

                      I'm starting to think the only way to definitively answer this is to breadboard a RAM card with the start address switchable between 00000h and 40000h.
                      My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                      Comment


                        #71
                        Originally posted by Eudimorphodon View Post
                        Have you tried this first hand? I've been searching in vain for any posts where someone relates actually plugging one of these cards into a Tandy 1000 of any sort (or at least 1000/A/EX/HX) to use as main RAM, if you have a link to such a post I'd love to see it.
                        No but many of my customers have - it's quite easy to turn off the 1st 256kb of ram on the 1 MB board.
                        My Retro Collection:
                        CBM: C64, Amiga 500 x2, 600 & 1200
                        Apple's: IIc, Mac SE, LCII, LC630 & Power Mac G3/233 Desktop
                        PC's: K6-III+ 500 System + Roland MT-32 & Tandy 1000 EX 640kb, 3.5" FDD, CF-IDE 4GB HDD
                        Visit my Tindie store for Tandy 1000 Adapters for EX, HX, SX, SL, TX & TL etc

                        Comment


                          #72
                          Originally posted by dJOS View Post
                          No but many of my customers have - it's quite easy to turn off the 1st 256kb of ram on the 1 MB board.
                          I'm sure it is. What I'm not convinced of at this point is whether that's the correct setting for a RAM card used in a Tandy 1000, which is why I'd like first-hand confirmation from anyone who has the experience as to what physical mapping they used for adding memory to an early T1k with a non-Tandy expansion board. (The decoding scheme I came up with for the board I'm working on was essentially the same as a Lo-Tech with the switches set to work in a 256k 5150 or whatnot, which is how you're advising people to set the board.)

                          More digging, this time in the Tandy 1000 HX technical manual, turned up this table in the section talking about the proprietary chips they use on the Plus card:

                          Screen Shot 2019-06-12 at 2.35.05 PM.jpg

                          Note the "ADDRESS" column: In all configurations Bank 0 starts at 0.0000h, not 4.0000h, the latter being where you'd expect RAM to start if you were backfilling a normal XT with 256k on the motherboard. This jives with the operational description in the original T1000 manuals. And if this is right, to use a lo-tech RAM card in the machine you'd want to set the switches to enable 384k (or possibly 512k, there are hints that a 768k mode may well be available. Does anyone actually have the apparently-rarer 512k version of the Plus board in their EX or HX? I'd love to see Check-It output from that) starting at 0h and the Tandy would then map the built-in 256k starting at 60000h, producing a 640k-minus-16-or-32k configuration.

                          If it's actually working for people who've set the switches to start at 256k then the word "map" in this gets more interesting:

                          Next the external RAM memory size is determined. This is accomplished by reading a word of data
                          at each 128K boundary complimenting the data, writing the data back, delaying a short time, and
                          then reading it. When the data is wrong, assume no memory. The search is terminated. The add-on
                          memory is address mapped to start at 00000 hex
                          and be contiguious in 128K segments up to 512K
                          total. When the amount of external RAM is determined, the video/system RAM is mapped to reside
                          on top and be the uppermost 128K.
                          Can the Tandy shuffle RAM it finds at 40000h down to 00000h, IE, can it detect non-contiguous RAM on 128k boundaries and compact it? That seems to ride on the interpretation of "The search is terminated." Does it terminate when it has its first failure to find RAM, or does it mean the search terminates and moves on when it's done walking through all the 128k segments under 640k? It makes more intuitive sense that it can "only" move the Big Blue chip and the RAM slaved to it around.

                          I have a few RAM chips coming on a slow boat from China; I wanted to skip this step but maybe it's the better part of valor to try sticking one on a breadboard and connecting it to the Plus connector with a jumper harness to see what works. That's going to be nasty.
                          Last edited by Eudimorphodon; June 12, 2019, 02:11 PM.
                          My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                          Comment


                            #73
                            Yes, those RAM chips for the Tandy RAM card are a bitch to track down. I did manage to find some, so I have spares if mine ever go. The ASIC in the center of the board though is another story. If that ever goes, the card's hooped unless you can track one down on eBay.

                            I know at least that LGR upgraded his Tandy 1000 with that Lo-Tech card. https://youtu.be/malgCK7qHQA?t=531
                            It has dip switches for each 64K page, so you'd be flipping them in pairs.

                            I was hoping to do what you're suggesting, only on a perfboard, rather than a breadboard, and this was to be my first prototype for this project so I could narrow down exactly which RAM pages were usable, and widdle it down to about half the component count.
                            IMG_20190612_165800600.jpg
                            I went to plug it in and make sure that nothing was crossed.... And something was crossed that prevented the machine from POSTing. This is where I left off.
                            Knowing that the T1k searches for 128K pages helps, and it kinda sucks that you gotta flip through each manual in the series in order to figure out the commonalities.
                            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


                              #74
                              Originally posted by blackepyon View Post
                              I know at least that LGR upgraded his Tandy 1000 with that Lo-Tech card. https://youtu.be/malgCK7qHQA?t=531
                              It has dip switches for each 64K page, so you'd be flipping them in pairs.
                              That video may have just proven immensely useful! It's high-res enough that you can see what he set the switches for, and it looks like he has all switches up on SW1 and the first two up on SW2. According to the chart on the back of the board that means he's actually got it set to provide RAM for the entirety of the 640k address space, and the machine apparently will POST like that.

                              640k + the built-in 128k is actually the memory mapping used by the Tandy 1000TX, so unless his Lo-Tech card is sitting on top of the built-in RAM at 8000h (which is a possibility, that kind of clash might actually be something you'd get away with) this *may* demonstrate that even the old Tandy BIOSes can grok that and program the mapping of Big Blue appropriately. It is frustrating because per this:

                              Knowing that the T1k searches for 128K pages helps, and it kinda sucks that you gotta flip through each manual in the series in order to figure out the commonalities.
                              It really is a pain in the rear, because different versions of the same chart explaining the Big Blue memory mapping register appear in every manual, but none of them explain it entirely; they seem to have decided that only the settings that applied to each model *when it was introduced* are relevant, it doesn't explain every different possibility the chip can handle.

                              (This is why I'd love to see the Check-IT output from an EX or HX equipped with the 512k Plus board, because there are unresolved possibilities for what happens if you have expansion RAM to 7FFFF in a system with a 256k Big Blue.)

                              How hard would it be to dumb down your test board so you just have one 512k RAM mapped from 0h to 7FFFF? The decoding for that should be really trivial; this is a terrible idea, but in principle couldn't you just connect A0-18 straight across, use A19 as your chip enable, and essentially dispense with decoding entirely? (A19 will be low whenever the machine is in the bottom 512k, and of course MEMR and MEMW will need to be active to make the chip read or write, so... bang, no decoders needed? I feel like this is wrong but I can't quite pin down why.) I have three theories what you'll get out of this:

                              A: 640k! (Plus possibly some RAM sitting in the A0000 page) This from Big Blue mapping its 256k from 8000-BFFFF. This would be optimal.

                              B: 512k, because the Tandy won't do a 256K Big Blue at 80000h and instead exiles Big Blue to B0000 like in a fully expanded TX. (Which means you'd need to either add another 128k to get the backfill, or pull back to 384k so it'll map Big Blue to its documented 60000h position and keep double-mapping the last 32k)

                              C: Something less useful, but probably not something that will smoke the computer.
                              Last edited by Eudimorphodon; June 12, 2019, 04:59 PM.
                              My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                              Comment


                                #75
                                It assumes that the shot of him putting the card in is actually the configuration that allowed him to boot, but yes, that seems to be the implication.

                                How hard would it be to dumb down your test board so you just have one 512k RAM mapped from 0h to 7FFFF? The decoding for that should be really trivial; this is a terrible idea, but in principle couldn't you just connect A0-18 straight across, use A19 as your chip enable, and essentially dispense with decoding entirely? (A19 will be low whenever the machine is in the bottom 512k, and of course MEMR and MEMW will need to be active to make the chip read or write, so... bang, no decoders needed? I feel like this is wrong but I can't quite pin down why.)
                                Well, the board is all wired up already, it just doesn't work atm. I've got the parts on hand to breadboard it separately. Could give that a shot when I get the chance (won't be tonight) and see what happens.

                                Well, if it lets the magic smoke out, I happen to have a spare motherboard for my HX that I picked up as a result of a dumb mishap on my part that involves a multimeter, non-sharp probes, slippage, and a +12v pin that smoked a buffer IC that I was finally able to track down, but I'd rather avoid that outcome, since I just fixed the thing a few months ago :/

                                The outcome isn't too much of a worry so long as you don't get the +12v or -12v crossed with anything, since everything else is 5v logic.
                                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

                                Working...
                                X