Announcement

Collapse
No announcement yet.

EMM386 LIM4.0

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

  • EMM386 LIM4.0

    There are some system configurations that do not like using the 64k
    page framing, and the EMM386 driver generates this error:
    "unable to set page frame base address"

    From Microsoft
    -The following line in your CONFIG.SYS file sets the page frame
    -by loading the four different pages in the indicated non-contiguous locations:
    -device=c:\dos\emm386.exe p0=c800 p1=d400 p2=e000 p3=d000 ram

    Microsoft says this is OK for programs that can use the LIM 4.0 specification.
    What exactly is LIM 4.0? and does PB compile programs for this spec?

    I noted that using the above switch that I can use EMM386 with my software with Dynamic arrays,
    However, the problem comes in when I exit the program, as after I exit the
    system locks-up.

    Also, fre(-11) with this switch reports the free Extended RAM.

    TIA, Tim

    ------------------

  • #2
    LIM 4.0 was the final EMS spec. PB/Dos is certainly compatible with
    LIM 4.0... but Microsoft's pulling a little bit of a fast one, here.
    A full LIM 4.0 setup should be able to provide contiguous pages and,
    I suspect, most programs that use EMS expect it that way. I'll check
    with R&D...

    ------------------
    Tom Hanlin, PowerBASIC Staff
    Opinions expressed may not be those of my employer or myself

    Comment


    • #3
      Ok. It still isn't clear whether you can get away with less than a
      64K block but, you will definitely need at least a 32K block. The
      virtual array support requires it. If you can arrange for the first
      two pages to be contiguous, it may be worth trying.

      If not, you might rummage around in the Download section. It may be
      that one of the EMS libraries there will be useful to you.

      http://www.powerbasic.com/files/pub/pbdos/library/

      ------------------
      Tom Hanlin, PowerBASIC Staff
      Opinions expressed may not be those of my employer or myself

      Comment


      • #4
        The 3rd and 4th pages are expected to be sequential, also, but you
        can probably do without them if you're prepared to do without TSRs
        that use EMS, and the debugger, respectively.

        Split page frames turn out to require one of the LIM 4.0-specific
        options that no one ever used, because they weren't compatible with
        earlier LIM versions, and didn't have any apparent virtue. It's an
        entirely separate set of, umm, "API calls".

        ------------------
        Tom Hanlin, PowerBASIC Staff
        Opinions expressed may not be those of my employer or myself

        Comment


        • #5
          Thanks Tom,
          Using another switch for the EMM386 driver (device=emm386.exe i=e000-efff m9 ram)
          rectified the problem. According to MS it allocates 64K of free contiguous memory, that is not being used by a non IBM PC. So, Im not sure why on these 2
          particular PC's they could not allocate contiguous EMS, without the above option.

          Tim



          ------------------

          Comment

          Working...
          X