Announcement

Collapse

Forum 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.


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.


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.



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.


"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.

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

Configure DOSMAX for use within MSDOS 6.22

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

    Configure DOSMAX for use within MSDOS 6.22

    I am requesting some help with configuring DOSMAX (DEVICE=C:\DOSMAX\DOSMAX.EXE /p-) for an XT system using MSDOS 6.22. As shown, the dosmax seems to occupy the address E065. As it stands, the DOSMAX fails to start because the address is within the addresses being applied to the EMS driver, that is E000:F000.

    I want to redirect the DOSMAX to a different address such as CA00-D800, which is 56KB, or F000:F800, which is 16 KB. According to Checkit, these addresses are open for use by the system. I have the manual of the DOSMAX, which is a little confusing to read and understand. I am looking for clarity.

    Maybe Trixter could expand his video (https://www.youtube.com/watch?v=aiX0azs0qHE) regarding Hi Memory by a small briefing of the DOSMAX application. Thanks for all that reply.
    Last edited by alejack12001; April 18, 2021, 08:19 AM.

    #2
    Sanity check: does Check-It say those regions where you want high memory actually *have* memory in them, or merely that they’re “free”, IE, there’s nothing in them? What kind of memory hardware is your machine actually equipped with? DOSMAX has no ability to “remap” memory on its own, it can only enable the use of RAM already present in the upper regions when it’s invoked.
    My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

    Comment


      #3
      First, let me make a correction to the video listed in the original post. The correct video is the following link: https://www.youtube.com/watch?v=Xcc_D7q9bQs

      I am using the Lo Tec 2MB 8-bit RAM card with their supporting EMS software. LTEMM.EXE. Checkit does recognize the card and states there is EMS software in use with 2048 Memory as total. I had DOSMAX following the LTEMM.EXE and it errored stating no HMA was not available. The Lo Tec card is set to use E000h address space. The MFM controller is using C000 and I believe the James Pearse XT-CF card is using the D000 address.

      Checkit shows what's in the address space after 640 KB. So unless I miss interpreted what Checkit shows the addresses listed in the original post just show a dot, which I interpret to be an open space within the HMA. The E000 shows EEEE with starts above each E.There is a V, which I interpret to be the 16 KB video card, and R which are the drivers for the XT-CF card.

      So, what is the error that I am seeing with regard to the HMA for the use of DOSMAX.


      Comment


        #4
        Okay, so, here’s the problem:

        A: The Lo-Tech EMS card, despite being described as an “EMS 4.0” card, completely lacks the hardware to map memory outside of the 64k page frame, which is usually what people associate with EMS/LIM 4.0. It’s an extremely limited EMS 3.2-era hardware design with an EMS 4.0 compliant driver (which is allowed by the specification, the memory mapping stuff is “optional”) so it’s useless for providing UMBs. (You can statically map some pages into the page frame window to give you 64k of upper memory *instead* of EMS, I actually wrote a brain-dead driver for that, but it can’t do both things at once.)

        B: Even if you had a full featured EMS 4.0 card you need an additional shim like QRAM to set up the page mapping, DOSMAX doesn’t interact directly with EMS drivers itself.
        My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

        Comment


          #5
          The forum had some discussion regarding HMA/UMB when I initiated a Boca EMS inquiry last year. It is surprising that no one has taken up the mantel to increase 64K to the full 384K to reach 1 MB. Your development must have taken many hours of study and research and I give you credit for your achievement.

          Yes, I knew about the “EMS 4.0” not achieving what they advertised. I thought I would get the card and then do my own. But first, try to see if others such as yourself have already tried this with some degree of success. Trixter posted on YouTube his video regarding the 640 KB barrier and gave a 50,000-foot description of the configuration. He was going to do a follow-up on this video. I too, need to learn better the construct of how memory beyond 640 KB was designed.

          Thank you for your input and feedback.

          Comment


            #6
            Originally posted by alejack12001 View Post
            The forum had some discussion regarding HMA/UMB when I initiated a Boca EMS inquiry last year. It is surprising that no one has taken up the mantel to increase 64K to the full 384K to reach 1 MB. Your development must have taken many hours of study and research and I give you credit for your achievement.
            Heh, I wish I could claim it took some kind of god-level groking to understand the card, but there's just not that much to it. Bluntly speaking there's no software way to increase the capability of this card to do what you want, the hardware is *extremely* simple and physically incapable of doing more than it does now. Not oversimplifying this at all: at the hardware level it's effectively just four bytes of "write-only" RAM mapped to four consecutive I/O ports, and whatever value is written into one of those memory registers serves as the upper bits for a 22 bit address (4MB total, although the low-tech only implements 2MB) within the memory on the card, with the lower 14 bits (16k) direct from the CPU. Each of those four registers directly maps to one of the 16k pages inside the EMS page frame, and that's it. There is *absolutely no way* to tell the card to put memory anywhere else. To implement that you're going to need more page registers *and* you'll need more elaborate decoding hardware to be able to selectively enable the card at arbitrary locations if you've decided to put a page register there.

            I built my own version of this hardware for a homebrew Tandy 1000 upgrade board that's software compatible with the LTEMM.EXE driver despite using completely different parts for the page registers. (TL;DR, I used two harder-to-find chips in place of four easy-to-find ones for the memory registers, not because it was cheaper or better but to save board space.) To implement arbitrary remapping would require quite a few more parts *or* a higher-integration chip like a CPLD.

            If you want it here's the enabler I wrote that just stuffs the registers to make sure they point to four unique pages of memory and exits. This lets you use DOSMAX to get 64K of upper memory without needing to load the LTEMMS driver, which saves about 5k of conventional RAM. But, yeah, you only get that 64k at the cost of your 2MB of EMS. (My Tandy card separately supplies upper memory that's enough "most of the time", I wrote this driver for when I want to load something really fat like an NFS stack high and don't need EMS.)

            https://github.com/Astrowallaby/Pale...master/ems2umb
            My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

            Comment


              #7
              Thank you for sharing the enabler and the config.sys files that implement the enabler. I am disappointed that the Lo Tec can't be more than the 64 KB. I guess the designers must have used other 8-bit memory cards as a template. In addition, Lo Tec made theirs too generic to give users a choice of EMS memory and some sort of RAM drive for the difference in memory. Good luck with developing the CPLD. The word complex is about right for that chip. I have some feelers out for another AST or Boca XT RAM card to replace the Lo Tec. I am most grateful for your input.

              Comment


                #8
                My EMS card is just a simple EMS card, as said, implementing the basics. Having Alex Tsourikov's EMM driver available was a driving factor in the design. It provides EMS to 123, Windows etc and works fine for that. CPLD logic would be the way to go to get granular UMBs control.

                Comment


                  #9
                  Someone recently gave me a basket case plain XT clone to play with, if I can get it running I've been thinking of making a version of my Tandy 1000EX/HX "six-pack" expansion (conventional memory/EMS/dual serial/XT-CF/clock chip) board that fits a regular ISA slot. I use GALs for address decoding so I can support better-than-64k granularity on the UMB pages with a low parts count, which lets me cram upper memory with as much RAM as possible while remaining a lot simpler than a full-blown EMS 4.0-with-memory-mapping card. The downside there being that unless you own the GAL programmer or are targeting a specific computer with a known memory map and not many expansion options (like those Tandy 1000s) getting such a card to make room for arbitrary other cards sucking up UMB space for their own ROMs or whatever is a bear.

                  (For instance, the 1000 version supports a handful of switch-selectible options like "do you have a VGA card?" and some black magic to free up more upper memory in an HX with the help of a jumper wire clipped to the motherboard, but if I had some dingus plugged into the expansion passthrough that couldn't have is ROM mapped somewhere other than two specific windows it's back to the programmer.

                  Also, to be clear, the UMB backfill and the EMS is two separate pools of memory on my card, it's not doing "real" memory mapping magic.)

                  It wouldn't be that hard to add finer UMB granularity to one of the lo-tech 1MB memory cards by piggybacking a few parts to it, but obviously that falls a bit outside the "casual user" profile. As already noted, a full-blown EMS 4.0 card with large pages and arbitrary memory mapping would be hard. Especially if you didn't have well documented driver source for a similar card to start with. Unless someone really wants to go there hitting eBay with very specific searches is probably the more practical option.
                  My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                  Comment


                    #10
                    I handle UMB backfill on my XT clone with an ISA card butchered together. The only components are a 16V8 gal and a 128k SRAM chip. alejack12001 would recognize the circuit as an adaption of how I handle UMB backfill on the ps/2 Model 25 riser.

                    Comment


                      #11
                      Originally posted by TheDrip View Post
                      I handle UMB backfill on my XT clone with an ISA card butchered together. The only components are a 16V8 gal and a 128k SRAM chip.
                      That's about the size of mine, although I'm using a 20v8 and a 512K SRAM so it handles both the UMBs and a 384k conventional backfill.

                      (And it also handles chip select for the EMS memory; actual mapping registers are a pair of 74LS670s. Have a DIP switch bank connected to a few of the 20v8 inputs for map selection.)
                      My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs Also: Blogspot

                      Comment


                        #12
                        Originally posted by Eudimorphodon View Post

                        That's about the size of mine, although I'm using a 20v8 and a 512K SRAM so it handles both the UMBs and a 384k conventional backfill.

                        (And it also handles chip select for the EMS memory; actual mapping registers are a pair of 74LS670s. Have a DIP switch bank connected to a few of the 20v8 inputs for map selection.)
                        Mine was targeted to a machine which only has a 96k hole in the UMBs between video and BIOS (the ps/2 Model 25). The ISA card is a by-product, testing the circuit before committing to a PCB for the main project. It's come in handy for other machines though, its amazing what a few K of UMB's will do for your free conventional.

                        Comment

                        Working...
                        X