Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: MS-DOS 3.3, MS-DOS 5 - max reported memory

  1. #1

    Default MS-DOS 3.3, MS-DOS 5 - max reported memory

    Hello all.
    Continued hacking on my Zenith Z-171, aided by the recently found schematics, I now have an SRAM card replacing the 640K DRAM card.

    Goal was
    1) increase memory
    2) save current

    Memory was increased from 640k to a total of 880k, with the extra 240k spread out in the space from A0000-FFFFF.
    one block at 640k to 704k (64k) (A0000-AFFFF)
    one block at 768k to 800k (32k) (C0000-C8000)
    one block at 816k to 960k (144k) (CC000-EFFFF)
    The current on 5V dropped by about 200mA; measured a 100mA drop at the 15V supply feed. That feels about right in terms of DRAM power draw. SRAM takes almost no power.

    Memory is now contiguous from 00000 to AFFFF, for a total of 704k.

    So here is my question.
    Both MS-DOS 3.3 and 5.0 report 720896 bytes available (704k).
    - for 3.3, running CHKDSK shows 704k
    - for 5.0, running MEM /C shows 704k

    Does that sound normal? I thought that MSDOS only reports up to 640k?

    Perhaps I need to limit the reported BIOS memory reported in the BIOS data area....could be that the Zenith built in memory test never knew to stop at 640k?

    thanks for comments.

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

    Default

    So... if the BIOS in the Zenith knows to count to 704k there's no explicit problem with that that I'm aware of. There were drivers available to enable 704K (or even 736k) of contiguous RAM in PCs with equipped suitable memory cards, or even to use EGA/VGA RAM as DOS memory. (With the attendant limitation that you could only use text or CGA graphics modes since the A-page is required for any native graphics modes on those cards.) The 640k RAM limit is basically a serving suggestion, not a hard and fast rule. Unless you find some piece of software that has a problem with it you should probably just be thrilled that you get that extra 64k even if you don't have a UMB driver loaded.
    My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs

  3. #3

    Default

    PM me if you're looking for 3" or 5" floppy disks. EMail For everything else, Take Another Step

  4. #4

    Default

    DOS uses whatever INT 12h (which reads the value at 40h:13h) reports. 640KB is a PC design limitation, if a PC has usable RAM at A0000h-AFFFFh (or beyond) than it will be used. In fact prior to the advent of DOS extenders, Microsoft ran DOS on a non PC compatible SCP S-100 system with 1MB RAM to link the linker (LINK.EXE) - http://dosmandrivel.blogspot.com/200...s-machine.html

  5. #5
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    1,901

    Default

    Here's a blog entry that describes a version of that AMS HiCard. It's actually about the closest thing I've seen to what the ubiquitous Lo-Tech 1MB RAM card does in terms of backfilling upper memory. If this description of the dip switches is correct it even has the same 64k resolution for mapping pages.

    I have a vague memory that at least one of the paid-for 386 memory managers (QEMM, 386MAX, I forget which) supported some crazy stupid pet trick where they'd use the memory remapping functions of the 386 or better CPUs to completely reshuffle the memory map, shoving the video buffers and ROM code up as high as possible and actually give you on the order of 900k of *contiguous* RAM, but that mode was incompatible with most off the shelf DOS software because writing directly to the video buffer was pretty much de rigueur for anything but strictly command-line utilities. Might indeed be useful for something like running a compiler, I guess.

    One observation:

    Quote Originally Posted by Twospruces View Post
    Memory was increased from 640k to a total of 880k, with the extra 240k spread out in the space from A0000-FFFFF.
    one block at 640k to 704k (64k) (A0000-AFFFF)
    one block at 768k to 800k (32k) (C0000-C8000)
    one block at 816k to 960k (144k) (CC000-EFFFF)
    I assume you broke the upper memory into two chunks because the BIOS for your XT-IDE card resides at C8000? If you wanted to have the upper RAM block all in one piece it should be a legitimate thing to do to locate the BIOS for it at C0000 instead, if your card can handle it. C8000 is "traditional" for XT hard drive controllers but the code doesn't care. (I run it at C0000 in my homemade Tandy card.) Having your RAM contiguous can help if you need to load something really massive...

    Not that it's likely to matter, of course, 144k contiguous is a *huge* amount of upper memory. My upper memory card maxxes out at either 96k or 128k depending on which machine I have it in but unless I'm trying to use something crazy like a SLIP driver I can usually get DOS 6 and all the drivers I use to fit in 64k. (Things would be tighter if I had to think about loading MSCDEX or a WFW NDIS network driver, but either is getting well beyond the keen of my machine. The simple DOS packet driver for my ethernet card takes a whopping 5k.) You already have that much appended to base memory.
    My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs

  6. #6

    Default

    hey cool info. thanks, all!

    Nothing "broke" yet; I was thinking it was a bit odd. I noticed that CuteMouse right away grabbed some of that UMB for it's TSR data.

    Checkit3 is busily doing tough ram tests on the added UMBs. all seems fine.

    So of my 3 projects
    0) XT-CF -- done
    1) SRAM -- done
    2) 8087 -- done
    3) turbo.....tbd!

  7. #7

    Default

    Quote Originally Posted by Eudimorphodon View Post
    [url=https://ancientelectronics.wordpress.com/tag/hicard-ams/]
    I assume you broke the upper memory into two chunks because the BIOS for your XT-IDE card resides at C8000? If you wanted to have the upper RAM block all in one piece it should be a legitimate thing to do to locate the BIOS for it at C0000 instead, if your card can handle it. C8000 is "traditional" for XT hard drive controllers but the code doesn't care. (I run it at C0000 in my homemade Tandy card.) Having your RAM contiguous can help if you need to load something really massive...

    Not that it's likely to matter, of course, 144k contiguous is a *huge* amount of upper memory. My upper memory card maxxes out at either 96k or 128k depending on which machine I have it in but unless I'm trying to use something crazy like a SLIP driver I can usually get DOS 6 and all the drivers I use to fit in 64k. (Things would be tighter if I had to think about loading MSCDEX or a WFW NDIS network driver, but either is getting well beyond the keen of my machine. The simple DOS packet driver for my ethernet card takes a whopping 5k.) You already have that much appended to base memory.
    Yes you are correct, and thanks that is an interesting suggestion. When I made my version of the XT-CF card, I didn't have the foresight to consider moving to C0000, but yes that would simplify and let me run a single larger 144+32= 176k of contiguous UMB on top of the 64K at A0000.

    Probably just a cut/strap on a 74HC688.

    IIRC in another thread you described some of your tricks for making use of UMB in DOS5 on a Tandy 1000...thinking to replicate that on this Z-171.
    Last edited by Twospruces; December 23rd, 2019 at 05:27 PM.

  8. #8

    Default

    I think what I did was similar to the Lo-Tech 1MB card.
    I use a CPLD to manage the logic, and enable RAM when the address range falls into certain address ranges. Seems to work!

    To clarify further,
    What I did was not an ISA add-on card.
    I removed the internal DRAM subsystem, and replaced it with an SRAM card that responds to address ranges starting at 00000 to A0000, and then selected UMB blocks above A0000.
    Last edited by Twospruces; December 23rd, 2019 at 05:26 PM.

  9. #9

    Default

    Quote Originally Posted by pcdosretro View Post
    DOS uses whatever INT 12h (which reads the value at 40h:13h) reports. 640KB is a PC design limitation, if a PC has usable RAM at A0000h-AFFFFh (or beyond) than it will be used. In fact prior to the advent of DOS extenders, Microsoft ran DOS on a non PC compatible SCP S-100 system with 1MB RAM to link the linker (LINK.EXE) - http://dosmandrivel.blogspot.com/200...s-machine.html

    very interesting, thanks!

  10. #10

    Default

    Quote Originally Posted by Eudimorphodon View Post
    If this description of the dip switches is correct it even has the same 64k resolution for mapping pages.
    http://www.vcfed.org/forum/showthrea...Expansion-card
    PM me if you're looking for 3" or 5" floppy disks. EMail For everything else, Take Another Step

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
  •