Image Map Image Map
Page 8 of 9 FirstFirst ... 456789 LastLast
Results 71 to 80 of 90

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

  1. #71

    Default

    Quote 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
    Mac's: SE, LC630 & Beige G3
    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

  2. #72
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    1,125

    Default

    Quote 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 12th, 2019 at 02:11 PM.

  3. #73
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    253

    Default

    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, 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, usually takes less space, and is less likely to lead to a fatal accident.

  4. #74
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    1,125

    Default

    Quote 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 12th, 2019 at 04:59 PM.

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

    Default

    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, 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, usually takes less space, and is less likely to lead to a fatal accident.

  6. #76
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    1,125

    Default

    Assuming the new theory about how the T1000's initialization system actually works is correct I think the worst thing that could possibly happen is bus contention from having the RAM on the expansion bus overlapping with Big Blue because it turns out, say, that the EX/HX simply stop counting external RAM if they find RAM up through the 384k mark, assumes 6000h is going to be open, and places the Big Blue there instead of 8000h.

    (That's the thing, those annoying tables in the tech manuals don't show a "truth table" for a 256k Big Blue at 8000h, but it could just be because it reflects a setting they didn't have hardware for at the time.)

    The thing that bugs me a little is the question of if you'd necessarily see bus contention if it happened. For instance, Re: the LGR video, the original T1000 manual only shows the mapping register settings for putting the starting address for the Big Blue up to the 512k mark. The 1000 TX manual *does* show a setting for 640k. (IE, that's the condition in which it *just* uses the Big Blue memory for VRAM in the B-page.) So my question is, assuming those switch settings are actually what LGR is using, is the older T1000 also setting up Big Blue the way a 1000TX would, or is it possible he's got the last 128k of the RAM on the lo-tech doubled on top of Big Blue, and the system just doesn't care because the contents of the two RAM banks are successfully staying in sync.

  7. #77
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    253

    Default

    the system just doesn't care because the contents of the two RAM banks are successfully staying in sync.
    Possible in theory, so long as nothing sneezes. To be safe, I'd have a switch to lift the first 256K on that PLUS board, so if your original RAM is working, you don't have any hickups. And then the other question, if it is able to overlap, is there anything that will complain if it doesn't find that onboard RAM, but the card is fully populated.

    Yeah, basically, one of us is going to have to slap something together to find out how it will behave, and then proceed from there.

    I'll see if I have time on the weekend to kludge something together.
    My vintage systems: Tandy 1000 HX, Tandy 1000 RSX, 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, usually takes less space, and is less likely to lead to a fatal accident.

  8. #78
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    1,125

    Default

    If you don't beat me to it I'll take a shot at it when my RAM chips arrive. I picked ePacket delivery so... latency is a bit of an unknown.

    I do want to see what happens if you do skip the first 256k. My tentative breadboard plan is a 74LS138 to divide the bottom 512k into four parts and a 74LS08 to combine various combinations of 128k pages.

  9. #79
    Join Date
    Feb 2017
    Location
    Chilliwack, BC, Canada
    Posts
    253

    Default

    Quote Originally Posted by Eudimorphodon View Post
    If you don't beat me to it I'll take a shot at it when my RAM chips arrive. I picked ePacket delivery so... latency is a bit of an unknown.

    I do want to see what happens if you do skip the first 256k. My tentative breadboard plan is a 74LS138 to divide the bottom 512k into four parts and a 74LS08 to combine various combinations of 128k pages.
    Well, I rigged up a PLUS to breadboard lead pack, hooked up a 512K chip as you suggested....
    IMG_20190614_001802405.jpg
    And it works!
    It even passed an extended memory test.
    IMG_20190614_005038668.jpg

    Looks like this project could end up retardily simple if it didn't show 640K RAM instead of 512K or 720K, because this raises questions as to why.
    IMG_20190614_001818152.jpg
    IMG_20190614_001831318.jpg

    Now, is the onboard RAM is being pushed to start at 7FFFFh, while the expansion RAM starts at 00000h, and then just cuts off any extra that spills over that 640K limit? Will it behave differently if slap on address decoding and start the expansion RAM at 40000h? I don't think that UMB is going to be an option for this machine, but this is more than enough to churn out a functional RAM expansion board, with plenty of room for other goodies.

    While this appears to be functional, and a hell of a lot easier than we were imagining it should be, I'd still stick it behind a '245 buffer, as a matter of course, if you're going to actually use it this way.
    My vintage systems: Tandy 1000 HX, Tandy 1000 RSX, 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, usually takes less space, and is less likely to lead to a fatal accident.

  10. #80
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    1,125

    Default

    Hah! So, yeah, that's definitely a data point.

    The head scratcher that's remaining here for me is why Check-It is still showing a video page being swiped from the end of conventional RAM. I wish it was possible to read the memory mapping register for the big blue. (Tech manual says it's write only.) One of two things must be happening at this point:

    A: Big Blue is getting mapped to the 512k mark, but when running in that mode BB still grabs a page from the end of RAM and masks out the A-page. (Perhaps detecting 512k base memory makes it disable half its own memory, so it becomes the same as an original T1k?)

    B: It put BB at 384k, so technically the RAM is conflicting right now but it's not bothering anything.

    How to figure that out...

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
  •