     Ŀ Ŀ Ŀ Ŀ ڿ   Ŀ Ŀ        ڿ      ڿ  Ŀ
                                Ĵ     Ĵ  
            ¿                      
                                  ڿ    
                        
    

                  Written by Roman Dolejsi (RDOS of DIMENSION)

                                 June 11, 1995
                  Last changes: March 28, 1997

       This is the documentation belonging to and explaining the use of:

                             RDOSUMB version 1.1F
            Upper memory manager for users of MS-DOS 5.00 and higher
                   not needing Protected Mode memory server


   TOPICS covered in this document:

	 DISCLAIMER
         APOLOGIZE
	 PURPOSE OF RDOSUMB
	 REQUIREMENTS
	 GENERAL INFO
         INSTALLATION OF RDOSUMB
         RDOSUMB IN ACTION
         PROGRAM DIALOG LINES (PARAMETERS)
         HARDWARE MEMORY CHIPS CURRENTLY SUPPORTED
         MESSAGES
         FINAL TIPS
         WHERE TO FIND RDOSUMB
         THANX
         CONTACTING ME



DISCLAIMER:
-----------
  Although RDOSUMB has been tested on several systems, I cannot guarantee
that it is without bugs. Therefore I do not take responsibility for any
damage directly or indirectly caused by RDOSUMB as a result of known or
unknown errors in it or errors caused by its access to your device ports.


APOLOGIZE:
----------
  Sorry, english is not my native language. However, I wrote this nice docy
in english without any help. I APOLOGIZE for all the mistakes in this file.
Take it easy... Nobody is perfect..


PURPOSE OF RDOSUMB:
-------------------
RDOSUMB works as an memory manager which enables extra memory for use with
MS-DOS operating system without Protected mode. This memory is then available
as an UMB - Upper Memory Block. Maximal size of this memory is 192kB (not
available on all systems due to VGA ROMs and others..).

Memory can be used for programs such as:

 - part of MS-DOS core  (cca 5 kB)
 - HIMEM.SYS - XMS memory driver (cca 1 kB)
 - RDOSEMS.COM - EMS on XMS emulator (cca 70kB)
 - COMMAND.COM, NDOS.COM.. - shells (cca 3 kB)
 - STACKER, DOUBLESPACE.. - utilities for compression on the fly (cca 50 kB)
 - SMARTDRV, NCACHE.. - caching programs (cca 30 kB)
 - NC, VC - file managers (cca 12 kB)
 - DPMI16BI - DPMI driver used by Borland products (BC3.1, BP7) - (cca 50 kB)
 - GMOUSE, MOUSE.. - mouse drivers (cca 15 kB)
 - THELP, NGUIDE.. - Hypertext databases (cca 60 kB)
 - MICROSOFT WINDOWS 3.x, 95  - full use of available UMB !

and some applications, which do not want QEMM/EMM386/386MAX in memory:

 - COMANCHE   - copper simulator game (accepts only HIMEM & RDOSUMB)
 - AMNESIA    - demo from Rennaisance (accepts only HIMEM & RDOSUMB)
 - COMPOSD669 - digital channel music editor (accepts only RDOSUMB)

and other programs...

  UMB is memory in range 0C0000h-0EFFFFh. It's about 192kB memory, but it's
usually filled with some ROMs (Read Only Memory). At address 0C0000h there is
often VGA ROM (32 kB) and sometimes there are also some SCSI ROMs sitting
around. Therefore there is usually about 96kB-160kB of free memory area.
After loading RDOSUMB in CONFIG.SYS you can use commands like DEVICEHIGH,
LH or LOADHIGH for loading programs into Upper Memory Block. If everything
is successful, you have then about 640000 bytes of free conventional memory.


REQUIREMENTS:
-------------
  To execute RDOSUMB 1.1F you will need at least 80286 microprocessor or
compatible. RDOSUMB works only with MS-DOS 5.00 and higher. Sorry for
DR-DOS, NOVEL-DOS or OpenDOS users - these op.systems are not supported.
RDOSUMB doesn't need any raw/XMS/EMS/VCPI or DPMI compliant memory. It needs
about 10kB of basic memory (but only for installation). It ussually cooperates
fine with any other memory manager (such as HIMEM, EMM386, QEMM, 386MAX). You
also need one of the motherboards supported by RDOSUMB (explained below).


GENERAL INFO:
-------------
  Before you start using RDOSUMB I would like to point out a few things
which you might take into consideration.

  This program does not enable UMB using Protected Mode therefore it can be
used together with any protected memory manager such as EMM386, QEMM,
386MAX, S-ICE... Then you will have UMB and EMS. These Protected Mode progs
automatically detect RDOSUMB and then you have about 96kB more EMS memory.

  This program enables memory using onboard registers. These regs depend
on type of motherboard used in system. If you know the name of your memory
controller chip used on motherboard of your computer and you find its name
in list of all available chips, you can specify it to RDOSUMB. Otherwise
RDOSUMB will try to detect your hardware automatically. If nothing finds,
you are not a lucky owner of one of supported platforms..

  This program was tested with MS-DOS 5.0, 6.x and 7.0. Maybe it will not
work with later versions of this OS.


INSTALLATION OF RDOSUMB:
------------------------

- first you have to decompress RUMB11Fx archive into some directory on your
  hard disk (But you have probably done this all when you read these lines :-)

- RDOSUMB pack should consist of these files:

    RDOSUMB.COM  - Main file - UMB manager
    UPLOAD.COM   - MS-DOS strategy routine redirector
    TYPEDET.COM  - Hardware detection utility
    SAVEBIOS.COM - Utility which stores System BIOS in file ROM.BIN
    RDOSUMB.TXT  - Documentation written in English language (this file)
    RDOSUMB.CZ   - Documentation written in Czech language
    MYCOMP.TXT   - Format of your letter prepared for posting (to me).
    RDOSUMB.REV  - RDOSUMB revision history

- Now you must run your BIOS System Setup and there find options for System
  Shadow. (If you have AMI/AWARD, these options are in ADVANCED CMOS SETUP.)
  These should look like "Adaptor ROM Shadow at address XXXX". You must
  switch all these options to ENABLED position (memory in area C000-EFFF).

- Now you should follow these steps (assuming you have unpacked all files
  in directory C:\UMB):

  A)  Insert this line in config.sys file:

       DEVICE=C:\UMB\RDOSUMB.COM *
       DOS=UMB,HIGH

      Delete all extra lines from config.sys to have "clean" config.
      Make sure no EMS/UMB managers (like EMM386/QEMM/386MAX) are loaded.

  B)  Try to reboot your computer and then look what's happenning. If
      RDOSUMB is installed, you should see (after typing DOS command MEM)
      you have up to 192kB of free UMB memory.

  C)  If you have (after all this) free UMB, continue on step D.
      If RDOSUMB wrote Invalid chipset or something like that, you have some
      posibilities what to do:

        1) run program TYPEDET.COM and try to detect your hardware type.
           If you find your hardware number put it in CONFIG.SYS line
           (parameter #).

        2) try directly all hardware types which RDOSUMB supports
           by changing this line in CONFIG.SYS:

             DEVICE=C:\UMB\RDOSUMB.COM * #X
             (where X is hardware number 0-1F - hex form - i.e. 0-F, 10-1F)

           (It's because TYPEDET.COM can't be succesfully applied to some
           hardware types - ie. #2 old UMC).

        x) if RDOSUMB doesn't work with any hardware number, continue now
           on step Z.

  D)  Modify CONFIG.SYS and AUTOEXEC.BAT to this form:

       config.sys:

        FILES=8
        FCBS=1,0
        DEVICE=C:\UMB\RDOSUMB.COM.....   (parameters took from steps A,C)
        DOS=UMB,HIGH
        .
        .  (some programs loaded with DEVICEHIGH)
        .  (such as DEVICEHIGH=C:\DOS\HIMEM.SYS)
        .
        INSTALL=C:\UMB\UPLOAD.COM /E

       autoexec.bat:

        C:\UMB\UPLOAD.COM /D
        .
        .   (some programs loaded with LH or LOADHIGH)
        .   (such as LH C:\DOS\SMARTDRV)
        .

  E)  This step apply only if you want to use some memory manager for EMS
      memory. Otherwise you have RDOSUMB successfully installed on your
      system. If you want to use RDOSUMB together with EMM386, QEMM, 386MAX,
      follow these lines:

      - Modify config.sys lines of RDOSUMB:

         DEVICE=C:\UMB\RDOSUMB.COM $89AB ......   (parameters from steps A,C)
         DOS=UMB,HIGH
         .
         .  (there place your EMS mem.manager)
         .  (such as DEVICE=C:\DOS\EMM386.EXE RAM FRAME=E000)
         .

  F)  Installation is complete.

  ------

  Z)  If RDOSUMB doesn't work with your motherboard's memory chip, there are
      few reasons what's going on:

        1)  You did not switch Shadow ROM option in System Setup to ENABLE.
        2)  Your memory chip doesn't support ROM memory shadowing.
            (Probably there is no option for shadowing in system setup.)
        3)  Your memory chip is not yet supported in this version of RDOSUMB.
            If you think this is your case (you have at least 286 and in
            BIOS there is shadow option for at least one block in range
            C800-EFFF), run utility SAVEBIOS.COM. This program generates file
            ROM.BIN, in which BIOS of your computer will be stored. WARNING!
            don't run this program if QEMM is running! Because of QEMM's
            STEALTH ROM technology there is no BIOS available during QEMM
            session. Send me this ROM.BIN with filled file MYCOMP.FIL. I'll
            try to add your hardware in RDOSUMB. Then I'll send you another
            development version (using E-mail) and you can try again whether
            RDOSUMB works with your hardware. Then you should let me know if
            it works or not and I will try to examine hardware closely or
            I'll release next version with your hardware implemented.
              Because of specific code for every chipset will RDOSUMB work
            only on some computers. RDOSUMB have been made especially for
            computers with AMI/AWARD BIOS (if you have these BIOSes you have
            pretty posibility that RDOSUMB will work there), but it probably
            will run also with other BIOSes. (BIOS is made for the chipset,
            not chipset for BIOS). Every chipset has its hardware detection
            routine which is made to detect BIOS - not the chipset (it's
            because chipset scan and detection is a bit dangerous thing)..
              So if you have something other than AMI/AWARD (MR, PHOENIX)
            you should look on motherboard to see which chipset you have and
            then specify it to RDOSUMB manually.
              Memory chip on motherboard is in most of the cases the second
            biggest square chip after microprocessor (it's easy to find it).
              Some chipsets included in RDOSUMB had no names. To identify
            them a bit, i gave them the names of owners of the computers with
            these chipsets (I did not know the name of chips in these cases).
            So you'll see only faked names - but the chipset works with your
            computer. In this case - say me (by E-mail) which number of
            chipset it is and what is its real name. Thanx.
              If you realize your hardware type name doesn't corespond to
            the name of type you are using in RDOSUMB send me some reply.
            Maybe I include your hardware's name in next version in RDOSUMB.


RDOSUMB IN ACTION:
------------------

  RDOSUMB enables UMB by accessing memory chip ports. Therefore there are
many installation procedures in it - for every hardware one procedure.
These procedures have to map free RAM into area 0C0000h - 0EFFFFh where is
normally nothing. This area is originally prepared for ROMs (Read Only
Memory) of some cards (video, scsi, net, etc.). These cards automatically
map their ROMs into this area after hard-boot of computer. RDOSUMB detects
these ROMs and doesn't use RAM space on their location in memory. So the
less ROMs you have - the bigger RAM is available and vice versa.
  After beginning RDOSUMB detects chipset or uses predefined chipset.
When it starts to initialize hardware it goes through every page in memory
and looks if it is ROM or not. RDOSUMB also looks if this page should be
used or not (looks on the dialog line). After these steps RDOSUMB again
looks which pages are selected for RAM and then it reports to MS-DOS which
takes control of these blocks and enables UMB services. After this RDOSUMB
end its work and leaves memory.
  Now you can use special commands of MS-DOS for loading programs into UMB.
These commands are: in CONFIG.SYS:  DEVICEHIGH=..; in AUTOEXEC.BAT and
dialog line: LH ... or LOADHIGH ....
  For programs which don't want to go in UMB there is an UPLOAD. This utility
redirects MS-DOS strategy routine for loading programs. After enabled, MS-DOS
will automatically load every program into UMB. But in this case you have
only the UMB memory so there is a posibility to switch it back to normal
mode.
  Some of the programs automatically detect UMB and load themselves up.
Among them belong: NCache2, Microsoft Windows, Iplay etc...
  Some programs don't want to be in UMB. These are: DPMS.EXE, EMM386.EXE,
QEMM386.SYS, etc... These will tell you it or will hang up comp. (like DPMS),
when they go up.


PROGRAM DIALOG LINES (PARAMETERS):
----------------------------------

  A) RDOSUMB.COM [ #{0-F,10-1F} ${0-B} &{0-B} * ? ! @ +base.size.crc ~ ]

     [] All commands are optional. No one of them must be specified.
     {} List of acceptable parameters after command

     #x     - x = number of hardware. This command is used when hardware
              detection routine fails. (in this case try every number!)

     $012.. - This command tells RDOSUMB not to use some page. Pages
              are accepted in form numbernumbernumber (357, 2A9, etc..)
              Numbers, which are allowed:

                     0=c000-c3ff 4=d000-d3ff 8=e000-e3ff
                     1=c400-c7ff 5=d400-d7ff 9=e400-e7ff
                     2=c800-cbff 6=d800-dbff A=e800-ebff
                     3=cc00-cfff 7=dc00-dfff B=ec00-efff

     &012.. - This command tells RDOSUMB to use some page. If you see
              RDOSUMB doesn't use some page and you think no ROM is there,
              you can specify to use the page by this command.
              Params are same as with command $.

     *      - This command has no parameters. With this specified, RDOSUMB
              will automatically look for previously enabled RAM pages.
              If you have BIOS which automatically enables RAM pages, you
              can specify this option.

     |      - And again command without parameters. It disables hardware
              chip autodetection/initialization. It can be best used with
              BIOSes which pre-enable ram pages so hw detection is not
              needed (good).

     ?      - Writes short help for program. The same help will be written
              when you run RDOSUMB.COM from command line.

     !      - FastBoot code will be installed. (On many motherboards it does
              not work well because of imposibility to catch FFFF:0000 boot
              vector - sorry).

     @      - Quiet mode. RdosUMB won't display anything (even when some error
              occurs). This can be overwritten by holding some of sh/ctrl/alt
              keys.

     +base.size.crc - Adds non-standard block to UMB. You can use this for
              adding memory located specificly for your motherboard. CRC byte
              prevents from addition on non-ekvivalent motherboard (ie. when
              you boot RDOSUMB on another hardware). You can get CRC byte from
              TYPEDET utility.

     ~        Disables autodetection of non-standard UMB blocks. Normally when
              RDOSUMB boots, non-std blocks are detected and used. As it can
              lead to the collapse of computer in some cases, this switch can
              disable the detection (note: + param is not affected by this).

  B) UPLOAD [/e] [/d]

     /e     - Redirects MS-DOS strategy routine up (enables UPLOAD).
              MS-DOS will automatically load programs into UMB since now.
              (Works like a permanent LOADHIGH)

     /d     - Redirects MS-DOS strategy routine down (disables UPLOAD).
              MS-DOS will automatically load programs into basic memory
              since now. (Standart way of program loading)

            - Without parameters UPLOAD writes a short help.


CURRENTLY SUPPORTED HARDWARE MEMORY CHIPS:
------------------------------------------

  This list covers about 90% of chips with AMI/AWARD BIOS I've ever seen
around me. The names of some chips are fictical. It's because I had no
opportunity to look inside the computers with these chipsets. So to simply
name these chipsets I gave them names of their owners. These chips are
marked with *.

No.  Specification  Name

 0.   A             Symphony chipset
 1.   B             * unknown chipset, Owner: David PVT
 2.   A,nE          UMC chipset
 3.   B             FORX chipset
 4.   B,D-          ALI-1419 chipset
 5.   B             MXIC chipset
 6.   A             OPTi-82c291 chipset
 7.   A,V+          OPTi-82c495/895, PCchips4L chipset
 8.   B,V+,R+,!     SiS-486 chipset
 9.   A,??          ScampSX chipset
 A.   A,nD,nE,??    Contaq chipset
 B.   A             Condor chipset
 C.   A             * unknown chipset, Owner: Loskot
 D.   A             * unknown chipset, Owner: M-Centrum
 E.   B,nE          ALI-1429 chipset
 F.   B             Acer chipset
10.   B             * unknown chipset, Owner: Coda/desk
11.   B             * unknown chipset, Owner: Coda/note
12.   A             Uni4800-VLX chipset
13.   B,V+,R+       SiS-386 chipset
14.   A             Intel Neptune chipset
15.   A             Efar, OPTi-82c495aw chipset
16.   A             generic VIA chipset
17.   A,nE          DFI VIA chipset
18.   A             OPTi Viper 82c557 Pentium chipset
19.   A             * unknown chipset, Owner: David Voracek
1A.   A,V+,R+       UMC UM8886AF chipset
1B.   A             AssusTek P/I-P55SP4 SiS chipset
1C.   A             Laser 4LOF/286 chipset
1D.   A             Intel Triton chipset
1E.   A,V+,R+       ALI-148x chipset
1F.   A             VIA-580 VXpro chipset

   A  - System uses 16k mapping (every page is 16k length).
   B  - System uses 32k mapping (every page is 32k length).
        In this configuration if you force/disable some page,
        the page which is in conjuction is forced/disabled too.
        (For example: command $2 has the same meaning like $3 or $23 here.)
   nD - chipset is not able to map RAM in address space D000-DFFF.
        (Finally you have 64kB less free memory.)
   nE - chipset is not able to map RAM in address space E000-EFFF.
        (Finally you have 64kB less free memory.)
   D- - Detection routine does not work well with this system.
   ?? - Hardware has not yet been tested.
   V+ - When RDOSUMB initializes some of RAM pages, VideoROM is
        remapped and RAM is mapped instead. No problems were
        discovered with this "disadvantage". You (or some faked
        program) can simply change VideoROM! It's an error of
        chipset, not RDOSUMB! (memory range: C0000-C7FFF)
        (everything is normal after reboot of your computer.)
   R+ - When RDOSUMB initializes some of RAM pages, System BIOS
        is mapped in RAM (the same case as V+) - memory range: F0000-FFFFF.
   !  - RDOSUMB IS WITH THIS CHIPSET UNUSABLE !!!!!!!
        It's because System ROM (BIOS) is in RAM and after executing
        some of it's subroutines it OVERWRITES ITSELF !!
        (This error mostly appears in Prot.mode programs and the
        only chipset with this problem is the SiS-486 chipset (#8),
        SiS-386 (#13) and SiS-P5 (#1B) are both ok.)


MESSAGES:
---------

  After start RDOSUMB tells you what's going on. If everything is ok
you'll see something like this:

        BIOS hardware #7 (OPTi-82c495slc / PCchips4L chipset) startup ok.
        Available upper memory: 6 x 16k (96kB)
        Used pages: C800h,CC00h,D000h,D400h,D800h,DC00h
        Unused pages: C000h,C400h,E000h,E400h,E800h,EC00h

If this is your case, RDOSUMB is installed ok. Otherwise it will tell you
what's wrong:

ERR: Hardware type not detected / Unknown type of hardware. Driver Aborted !
 - RDOSUMB did not found your hardware. Next time try also * parameter.

ERR: Hardware type not detected & No free pages found. Driver Aborted !
 - RDOSUMB did not found your hardware nor found free pages (param * specified)

ERR: Hardware initialization failure. Driver Aborted !
 - You specified hardware but RDOSUMB-init was not able to enable pages.

ERR: Hardware initialization failure & No free pages found. Driver Aborted !
 - You specified hardware type and scan for free pages but everything failed.

ERR: Hardware detection disabled & No free pages found. Driver Aborted !
 - page search did not find anything and hardware detection was disabled

ERR: Hardware detection disabled & page search not used. Driver Aborted !
 - both page search and hardware detection have not been used

FINAL TIPS:
-----------

  - If RDOSUMB is properly installed, try to load all programs up with
    MS-DOS command LH (LOADHIGH). If some of them don't work try to
    use UPLOAD.
  - If you want to load COMMAND.COM in upper memory try this:
      1) insert line at the end of CONFIG.SYS: install=c:\umb\upload.com /e
      2) insert line at the beginning of AUTOEXEC.BAT: c:\umb\upload.com /d
    This is because COMMAND.COM is loaded after last line of CONFIG.SYS
    is executed.
  - If you want you can try to find some additional memory blocks (often
    within BIOS) and add them to the dialog line to get more UMB memory.
    If you succeed, please send me info about the block (base,size,crc,name)
    and I will add it to the autodetection routines.
  - If RDOSUMB fails to initialize your hardware first of all look in your
    System BIOS Setup if all pages are ENABLED for Shadowing (C000-EFFF).
    Without this option init of most of chipsets will not work..
  - If you have SiS-486 chipset you can throw RDOSUMB away. There is no hope
    for RDOSUMB to work without errors on this hardware (#8). This hardware
    is supported by RDOSUMB, but because of its BIOS'es errors you can not
    enjoy possibilities of RDOSUMB.
  - If everything fails, fill up file MYCOMP.FIL and run program SAVEBIOS.COM.
    Then you have to send me files MYCOMP.FIL and ROM.BIN.
    This program is made especially for AMI/AWARD BIOS. In these BIOSes there
    is not a big problem for me to find init routines of memory chipset. In
    other BIOSes this is a big problem. But maybe also this problem could I
    solve. Send me your BIOS but if you have not AMI/AWARD prepare for long
    time which take me answer you. Sorry for this..
  - With some cards (net, sound, video) with memory mapped regions be sure
    RDOSUMB is not enabled at these memory locations. It may cause cards
    don't work properly.
    Example: Net Card WD80x3 has memory mapped region. When this region is
    CC00 I have to run RDOSUMB with parameter $3 or completely disable it
    (on boards with one ROM/RAM switch) to ensure card will work properly.


WHERE TO FIND RDOSUMB:
----------------------
Each time I have a new version of RDOSUMB available, I'll upload it to
these places:

ftp://sorry.vse.cz/pub/dimension (FTP site in Prague, Czech Republic)
ftp://ftp.cdrom.com/pub/... (one of the biggest FTP sites in the USA)
   Ask your local Internet or FTP expert on how to reach them.

You may also visit RDOSUMB homepage at:
http://sorry.vse.cz/dimension/rdos/rdosumb


THANX:
------

Although I did nearly all the programming, there are few friends which
helped me finish this program. Thanx go to:

Jaroslav Kysela (PEREX) - UMB manager was originally his idea
and other friends for their hardwares, chipsets, suggestions, etc..


CONTACTING ME:
--------------
  If you want to contact me, write to address listed below. I prefer E-mail
way of addressing. If you want to send me any suggestions, tips or simply
your ROM.BIN, send it to me by E-mail please. It's faster, cleaner and
safer. I'll answer ONLY to E-mail addresses. If you wanna make me feel good
send me some nice postcard from your living place.. (money would be good
too ;)


My snail mail:                       E-Mail:
  Roman Dolejsi (RDOS)                    roman@sorry.vse.cz
  Husova 419, Vcelna                   roman@romeo.pf.jcu.cz
  37382 Ceske Budejovice
  Czech Republic

Plese put all your materials sent to me as attachments to the E-mail coded
in this way: ZIP, ARJ, AIN, LZH/LHA, RAR or UC2, then use UUENCODE.


*** end of RDOSUMB V1.1F documentation ***