home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 December / simtel1292_SIMTEL_1292_Walnut_Creek.iso / msdos / mswindws / memtip.arc / MEMORY.TXT
Text File  |  1989-07-29  |  74KB  |  1,853 lines

  1.                               
  2.                               
  3.                               
  4.                               
  5.                               
  6.                    Advanced Memory Topics
  7.  
  8.  
  9.  
  10.                 Windows/286 and Windows/386
  11.  
  12.  
  13.  
  14.                      Up to Version 2.11
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. Rick Masters
  33. MS Electronic Support Services
  34. CIS ID# 76701,270
  35.  
  36. version 1.00
  37. 10/24/89
  38.  
  39. Note: Although carefully compiled, the information in this
  40. document is subject to error. If you believe you have found
  41. a mistake, please leave a message with one of the current
  42. Section Leaders in the Windows Applications section of the
  43. Microsoft Applications forum (GO MSAPP) on Compuserve.
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. Topics
  53.  
  54. Conventional Memory
  55.  
  56. Extended Memory
  57.  
  58. LIM 3.2 Expanded Memory
  59.  
  60. LIM 4.0 Expanded Memory
  61.  
  62. Large Page Frame LIM 4.0 Expanded Memory
  63.      Backfilling
  64.  
  65. Windows Command Line Switches
  66.  
  67. WIN.INI Switches
  68.  
  69. Hardware Rom Conflicts
  70.  
  71. Himem.sys
  72.      "Memory Configuration Altered..." error message
  73.  
  74. Differences Between Windows/286 and Windows/386
  75.      Dos Applications
  76.      Multitasking
  77.      Swapping
  78.      Smartdrive and Expanded
  79.  
  80. Smartdrive
  81.  
  82. Ramdrive
  83.  
  84. Balancing Memory Use
  85.  
  86.  
  87.  
  88. Conventional Memory
  89.  
  90. In 1981, IBM introduced its Personal Computer, based on the
  91. Intel 8086 processor. The IBM PC was capable of addressing 1
  92. Megabyte of memory. Subtracting the 384K reseverved for
  93. hardware mapping, a full 640K was available for use by an
  94. application. This 640K is now referred to as Conventional
  95. Memory.
  96.  
  97.  
  98. Extended Memory
  99. Extended memory, the simplest type of add-on memory to
  100. understand, is simply a seamless continuation of the
  101. origrinal 1 megabyte conventional address space on 80286 and
  102. 80386 computers.
  103.  
  104. It's important to remember that a standard 640K computer
  105. actually has 1 megabyte of address space. That's 640K plus
  106. 384K. The additional 384K address space is reserved for the
  107. system; it includes the video memory and the system BIOS
  108. (Basic Input Output System). This 384K "system-use" space
  109. always sits in the same exact place in the address space -
  110. from 640K to 1 megabyte - even if you only have 256K actual
  111. memory installed in your machine.
  112.  
  113. Extended memory starts exactly where the 384K system space
  114. leaves off, therefore Extended memory always starts at the 1
  115. megabyte address space boundary.
  116.  
  117. Extended memory is not used by many application programs for
  118. a couple of reasons. First, computers based on the 8086
  119. (such as the IBM PC and XT) CANNOT access Extended memory.
  120. This is a limitation of the 8086 processor. There is no way
  121. for the processor to directly access memory addressed above
  122. one megabyte. The 80286 and 80386 processors contain the
  123. ability to access memory over 1 megabyte, but most copies of
  124. software have been for 8086 based computers. Therefore, most
  125. application developers have ignored the special abilities of
  126. these advanced processors in order to remain compatible with
  127. the existing base of computers. The second reason Extended
  128. memory has not been used by developers is the lack of an
  129. accepted standard for accessing Extended memory. A standard
  130. allows more than one program or device driver to allocate
  131. Extended memory at the same time.
  132.  
  133.      There have been two psuedo standards for accesing
  134. Extended memory as well as a third, fully specified standard
  135. finalized by Lotus, Intel, AST and Microsoft (with input
  136. from many other vendors) in July of 1988.
  137.  
  138.      The first "standard" used a bottom-up approach to
  139. accessing memory. This was introduced by the the IBM driver
  140. VDISK.SYS, a RAM disk program released with DOS Version 3.0.
  141. Other programs could utilize the memory above that used by
  142. VDISK by reading a header located in Extended memory which
  143. indicated the amount of memory utilized and included a
  144. pointer to the next header.
  145.  
  146.      The second standard is the INT 15h method. When a DOS
  147. program executes interrupt 15H, function 88H, DOS returns
  148. the amount of Extended memory available. A program can then
  149. use part of that memory, from the top-down. It then takes
  150. control of the interrupt. When another program asks how much
  151. Extended memory is availably, it indicates that the amount
  152. of Extended memory available is equal to the true amount
  153. available minus what it has used. Therefore, the new program
  154. will not try to use more than the first program says is
  155. alright. Microsoft's Ramdrive and Smartdrive use this
  156. method. An example can be given for a 2 meg machine. Let's
  157. say you configure Smartdrive to have 512K and a Ramdrive of
  158. 512K. When the computer starts, Smartdrive ask DOS how much
  159. extended memory is available. DOS returns 1 Megabyte
  160. (1024K). Then, Smartdrive installs itself in the top 512K of
  161. the Extended memory and takes control of interrupt 15h.
  162. Then, Ramdrive executes interrupt 15h to see how much
  163. Extended memory is available. Smartdrive, acting as DOS,
  164. lies and says 512K. So, Ramdrive uses the bottom 512K of
  165. Extended memory, which is out of Smartdrives way. This
  166. method of using Extended memory is inheriantly incompatible
  167. with the bottom-up method of using Extended memory.
  168.  
  169.      A third standard, which was jointly agreed upon, as
  170. mentioned above, is the Extended Memory Specification 2.x
  171. (XMS). This specification provides function calls for
  172. Allocating, Moving, and Releasing Extended memory (and other
  173. additional functions). The device driver HIMEM.SYS provides
  174. this capability, as well as other functions which will be
  175. described further on. This driver must use the first part of
  176. Extended memory, and therfore is incompatible with VDISK.
  177. Note, the latest version of VDISK.SYS shipped with version
  178. 4.00 of PC-DOS is compatible with HIMEM.SYS. One can assume
  179. it is either using the INT15h, or XMS method of allocating
  180. Extended memory.
  181.  
  182.  
  183. Expanded Memory
  184.  
  185. Although there exists methods for accessing Extended memory
  186. using the "Protected Mode" of the 80286 and 80386
  187. processors, the 8086 processor does not have this
  188. capability. How does the 8086 utilize more than 640K, one
  189. might ask? To meet the need for more memory, the Expanded
  190. Memory Specification was introduced in 1984. This
  191. specification works through a combination of software
  192. drivers and special memory hardware.
  193.  
  194. We'll start this discussion with an explanation of the LIM
  195. 3.2 specification. LIM stands for Lotus/Intel/Microsoft, who
  196. jointly established the specification. In order to
  197. understand how EMS works, it is helpful to understand what
  198. the designers of EMS had to work with. First, the 8086
  199. processor cannot access more than 1 megabyte. Second,
  200. hardware can be addressed in the area between 640K and 1024K
  201. which can be written and read from. An example of this is
  202. the EGA memory. When you write to the EGA screen, you are
  203. actually writing to memory stored on a hardware expansion
  204. card that you have inserted into one of the slots of your
  205. computer. What needed to be defined was a way to have the
  206. hardware make more memory available than there was address
  207. space to access that memory. The idea is to have the
  208. hardware place a chunk of RAM (random access memory) in the
  209. address space (say, between 768K and 832K), allow you to
  210. access it, then switch in a different chunk of memory into
  211. THE SAME address space, and allow you to access the new
  212. memory chunk. The first memory chunk is not gone, it is
  213. switched away on the memory card, and is just temporarily
  214. unavailable. The end result is that your program can access
  215. more than one 64K block of memory, using the same 64K block
  216. of address space!
  217.  
  218. An application communicates with an EMS device driver in
  219. order to control which block of memory it wants to access at
  220. a given moment. The EMS driver in turn, controls the
  221. hardware in order to make the requests of the program
  222. happen. The EMS driver also can reserve blocks for more than
  223. one program at the same time.
  224.  
  225. EMS blocks are sized in multiples of 16K. LIM 3.2 requires
  226. that there be 4 contiguous 16K blocks of address space
  227. available (not used by other hardware), totaling 64K. If
  228. this is not available, the LIM 3.2 driver will not provide
  229. Expanded Memory. The 16K segments are referred to as an "EMS
  230. page". The total group of 16K segments is called the "EMS
  231. Page Frame", which as just mentioned, must be at least 64K
  232. in size for LIM 3.2.
  233.  
  234. The block of address space that memory is swtched in and out
  235. of is also referred to as the "EMS bank". When the EMS
  236. driver switches in a block of memory, the old block of
  237. memory is said to be "banked" out to the Expanded memory
  238. pool available on the EMS card. A new memory block is then
  239. "banked in".
  240.  
  241. Remember, information is NOT being physically copied from
  242. the EMS card to the RAM of the computer. That would be
  243. "swapping", while this process is bank switching. The device
  244. driver simply changes the card's page registers, and a new
  245. block of memory from the Expanded memory card is available
  246. to access.
  247.  
  248.  
  249. LIM 4.0 Expanded Memory
  250.  
  251. In August of 1987, the LIM 4.0 specification was completed.
  252. This specification is based on the same "bank-switching"
  253. technology, but contains some differences, that while very
  254. useful, added a complexity to the Windows memory managment
  255. scheme that users are still trying to decipher.
  256.  
  257. In LIM 4.0, it is no longer necessary to have four
  258. continuous 16K segments available. If only one is available,
  259. Expanded Memory is provided. The size of the Page Frame can
  260. range from 16K to 1024K and can be discontinuous. Also, part
  261. of the Page Frame can reside below 640K. This last
  262. significant fact is taken advantage of by Windows to provide
  263. multitasking of Windows applications.
  264.  
  265.  
  266.  
  267. Large Page Frame EMS
  268.  
  269. Large Page Frame EMS is acheived when there is a Page Frame
  270. in the memory area below 640K. If there is no Page Frame
  271. below the 640K memory line, the EMS driver is in Small Page
  272. Frame. Windows will utilize Large Page Frame if there is
  273. approximately 288K available conventional memory to create
  274. an EMS page frame. This is necessary to be able to start
  275. large applications. In this case, multitasking of large
  276. applications is possible. Here is a typical scenario: A user
  277. loads a program such as Excel. Windows places Excel in the
  278. EMS bank located below 640K. Let's say that the bank is 384K
  279. in size. The user continues to work as normal, and no bank
  280. switching occurs. But, then, the user decides to take a
  281. chart from Excel and paste it into PageMaker. So, the user
  282. double-clicks on PM.EXE, in order to start PM. At this time,
  283. Windows "banks" Excel out to the pool of Expanded Memory,
  284. and "banks in" a fresh block of memory to load PM into. Once
  285. PM is loaed, Windows multitasks the applications.
  286.  
  287. Let me explain how Windows multitasks Windows applications
  288. under Large Page Frame EMS. Windows is a message based
  289. operating system. That is, a program executes whenever it is
  290. processing a message (such as mouse movements or keyboard
  291. activity). Whenever a program is done processing a message,
  292. Windows distrbutes a message to another application, and
  293. then that app executes. Under Large Page Frame, when Windows
  294. needs to pass a message to an application, it "banks out"
  295. the current application, and "banks in" the application that
  296. needs to process the message. Once it is done processing,
  297. the Windows scheduler chooses the next application to
  298. receive a message, and performs the same operation. Since
  299. bank-switching is performed through changing the values of a
  300. few hardware registers on the LIM 4.0 memory card, the bank-
  301. switches are almost instantaneous. Applications are
  302. constantly being banked in and out, EVEN if they are in icon
  303. form. In fact, there are only a few advantages to putting a
  304. Windows app in icon form other than saving screen space and
  305. reducing the frequency that it receives a message (since it
  306. wouldn't receive a message to paint its screen area).
  307.  
  308.  
  309.  
  310. How can you achieve Large Page Frame EMS?
  311.  
  312. Under Windows/386 2.1x, if you have enough expanded memory
  313. (and Conventional; see above), you will automatically be
  314. placed in Large Page Frame. Under Window/286, some hardware
  315. modifications are necessary. Since the conventional memory
  316. is being replaced by memory from your expanded memory card,
  317. it is necessary to disable the conventional memory that is
  318. being replaced. Then, your expanded memory card must be
  319. configured to replace this conventional memory. Most
  320. Expanded memory cards provide a configuration utility for
  321. doing this. This technique is known as backfilling. This
  322. requires a LIM 4.0 EMS hardware compatible memory card with
  323. the hardware registers capable of supporting Large Page
  324. Frame. If you are unsure about this, ask the manufacturer
  325. before purchasing the card. Plain Extended memory cards will
  326. not provide LIM 4.0 Expanded Memory. They simply do not have
  327. the registers to perform bank-switching.
  328.  
  329.  
  330. Problems with Large Page Frame
  331.  
  332. Large Page Frame is not perfect, though. While it does
  333. improve your ability to multitask Windows applications, it
  334. has its limitations.
  335.  
  336. In order to understand the problems with Large Page Frame,
  337. it is necessary to understand a little more about Windows
  338. memory management.
  339.  
  340. When Windows is in LPF, the memory in the EMS Bank is being
  341. switched in and out of conventional constantly. Some things,
  342. though, must ALWAYS be in conevntional memory. Therefore,
  343. they must reside in the block below the EMS Bank (or below
  344. the Bank Line). These include library fixed code, library
  345. data segments, library resources, task databases, EXE
  346. headers, and so forth. Therefore, there must always be
  347. enough conventional memory below the bank line to hold these
  348. resources. If the EMS bank is too large, the amount of
  349. memory below the bank-line will be too scarce, and you'll
  350. get an "Out of memory" error trying do something like load a
  351. printer driver (which would be loaded below the bank line),
  352. or print. This can occur even though you may have 5 megs of
  353. Expanded memory because Windows ran out of Conventional
  354. memory.
  355.  
  356. When a program allocates memory, it is allocated from its
  357. own EMS bank (unless they specifically ask for NON_BANKED
  358. memory). When a second instance of a program is run, a
  359. second data segment is created for it above the bank line.
  360. If the EMS bank is too small, the program may run out of its
  361. available memory above the bank line.
  362.  
  363. So we see, if the EMS bank is too small or large, an "Out of
  364. Memor" error can occur, even though Expanded memory may be
  365. plentiful. You won't have to worry about this if you are not
  366. in Large Page Frame. If you run out of memory, you've simply
  367. filled up ALL of conventional with programs and libraries.
  368. You may still have plenty of Expanded memory left, but at
  369. least you know you used conventional to its fullest (as
  370. opposed to running out of it ONLY above or below the bank
  371. line). So, you see, Large page frame isn't always the best,
  372. especially if you are running only one application!
  373.  
  374.  
  375. Windows Command Line Switches
  376.  
  377. From the last section on Large Page Frame, it follows that
  378. there are Windows command line paramters to help you manage
  379. the size of the Large Page Frame EMS bank.
  380.  
  381. /L-16   (Available since version 2.10D, file dated 9/7/88 or
  382. later)
  383. This switch moves the Bank line down 16K. The net effect is
  384. to increase the size of the EMS page frame by 16K. This is
  385. the only allowable negative amount.
  386.  
  387. /L+NNN   (Available since version 2.10D, file dated 9/7/88
  388. or later)
  389. ----------------
  390. This switch moves the bank line up the specified number of
  391. kilobytes. The net effect is to decrease the size of the EMS
  392. bank. By moving the line up there will be an increase in
  393. conventional memory below the bank line.
  394.  
  395. An example can be shown for Excel. Excel registers the
  396. amount of conventional memory available to it in its help
  397. box. In large page frame, that is the available memory to
  398. Excel, above the bank line. You will notice that the
  399. conventional memory reported by Excel will decrease if you
  400. move the bank line up.
  401.  
  402. The MS-DOS Executive, however, may report a different story.
  403. It reports in its About... box reflect the amount of memory
  404. above and below the line when it is banked in the Page
  405. Frame.
  406.  
  407. Some applications require a lot of memory below the Bank
  408. Line. You will find that they produce an Out of Memory
  409. Error, even though there is plenty of Expanded Memory. This
  410. is where the /L parameter may improve things.
  411.  
  412.  
  413. /L+200   (Available since version 2.10D, file dated 9/7/88
  414. or later)
  415. ----------------------
  416. This parameter will put Windows in Small Page frame EMS.
  417. This is useful if you are running only one large Windows
  418. application, and maybe a few small ones also. Windows still
  419. has access to Expanded memory, but it can only store the
  420. applications that fit through the smaller Page Frame. Things
  421. like notepad, cardfile, etc. will easily go into EMS in
  422. Small Page Frame, while applications like Excel and
  423. PageMaker will have to stay in Conventional memory.
  424.  
  425. Since large applications must stay in conventional, this
  426. switch is not recommended for multiple large applications.
  427. If you try to run more than one large application in
  428. conventional memory, Windows can try to service the request,
  429. though. Windows applications can be composed partially of
  430. "Discardable" code or resources (like dialog boxes). When
  431. Windows is running low on Conventional memory, Windows can
  432. discard these memory blocks in order to make way for a new
  433. application, or a memory allocation request. When an
  434. application needs to use a segment that was discarded, the
  435. segment will be reloaded from the .EXE file.
  436.  
  437. This is a good time to mention that the discarding and
  438. reloading mentioned above is the extent to which Windows
  439. uses the disk for multitasking. Windows/286 and 386 never
  440. swap Windows applications to disk and only Windows/286 swaps
  441. DOS applications to disk (for convenience, not
  442. multitasking).
  443.  
  444. /Ennn (Available since version 2.11)
  445. -------------------
  446. Specifies that nnn bytes of conventional memory must be
  447. available before Windows will go into Large Page Frame EMS.
  448. The default is approximately 288K. That is, if when you
  449. start Windows and check the File, About dialog box, if the
  450. amount of conventional indicated is 288K or larger, you will
  451. be in Large Page Frame EMS. This parameter allows you to
  452. change this value.
  453.  
  454. This could be useful to software manufacturers, who know
  455. that their program requires a certain amount of conventional
  456. memory. Instead of having to evaluate each users memory
  457. situation, and decide if Large Page Frame or Small is the
  458. best for them, they can just instruct the user to run
  459. Windows with the /E parameter set to a specific value. Then,
  460. Windows will put itself in LPF or SPF using the threshhold
  461. as defined by the software developer.
  462.  
  463. The /E is only valid for Windows 2.11, and therefore has not
  464. seen widespread usage.
  465.  
  466.  
  467.  
  468. WIN.INI Memory Switches
  469.  
  470. For Windows/286 only:
  471. swapdisk=
  472. Specifies which location Windows will store itself when a
  473. DOS application is running. Also, if multiple DOS
  474. applications are loaded, Windows and all DOS applications
  475. except the currently running DOS application will be stored
  476. in this location. The following are acceptable values for
  477. the Swapdisk= parameter in the Windows/286 Version 2.10 or
  478. later WIN.INI file:
  479.  
  480. 1. swapdisk=?       (question mark, the default)
  481.  
  482.    The swapdisk=? parameter tells Windows/286 to
  483. automatically choose the drive and directory to perform
  484. swapping operations to.
  485.  
  486. 2. swapdisk=/E      (forward slash, E)
  487.  
  488.    The swapdisk=/E parameter tells Windows/286 Version 2.10
  489. to perform swapping operations to expanded memory. NOTE:
  490. this option did not work in Windows Version 2.03.
  491.  
  492. 3. swapdisk=x:\dir  (any valid drive and directory)
  493.  
  494.    The swapdisk=x:\dir parameter tells Windows/286 to
  495. perform swapping operations to the drive and directory
  496. specified. The drive and directory must conform to the
  497. following:
  498.  
  499.    a. They must exist.
  500.  
  501.    b. The location cannot be a removable medium (floppy
  502. disk, Bernoulli box, tandon data pac).
  503.  
  504.    c. It must be at least three times the size of the
  505. largest standard application being run.
  506.  
  507. The following examples are NOT acceptable values:
  508.  
  509.    swapdisk=384    (Any numeric value - NOT acceptable)
  510.    swapdisk=? /E   (Question mark /E - NOT acceptable)
  511.    swapdisk=d: /E  (Drive letter /E - NOT acceptable)
  512.    swapdisk=d: e:  (Multiple drives - NOT acceptable)
  513.  
  514. Note: Microsoft has confirmed swapdisk=/e to be a problem in
  515. Windows Version 2.03.  This problem was corrected in
  516. Windows/286 Version 2.10. You must update to Windows/286
  517. Version 2.10 or later to correct the problem.
  518.  
  519.  
  520. Setting the TEMP variable in your AUTOEXEC.BAT file (SET
  521. TEMP=C:\TEMP), also sets the location of the swap disk. The
  522. swapdisk entry in the WIN.INI overrides the TEMP variable.
  523.  
  524. swapsize=
  525.  
  526. This parameter sets the amount of space to reserve in the
  527. conventional memory space as a swap area for DOS
  528. applications. The default is swapsize=0, which allows
  529. Windows to set the swapsize based on the memory requirements
  530. field in the PIF file of the first DOS application run. This
  531. has one disadvantage in that this space may not be
  532. sufficient for subsequent applications. Therefore, it is
  533. recommended that you run the largest DOS applications first,
  534. or specifically set swapsize to a higher value. You may edit
  535. the entry to read "swapsize=470". This value is in kilobytes
  536. and may be adjusted upward to 640K.
  537.  
  538. For Windows/386 only:
  539. windowmemsize=640
  540.  
  541. Sets the size of the first virtual machine. This is the area
  542. where Windows applications run. This entry does NOT apply to
  543. the size of DOS applications' vitual machines.
  544.  
  545. It is not recommended that this value be changed from the
  546. default 640K. It may be perceived that by changing this
  547. value, more memory could be gained for running DOS
  548. applications. This is generally not the case. Since
  549. Windows/386 holds a certain amount of overhead for a DOS
  550. application in the first Virtual Machine, you will run out
  551. of space for this "overhead" before you will run out of
  552. memory that would be used for Virtual Machines.
  553.  
  554. If this value is changed, the emmsize paramter (described
  555. below) should be set to 0. This disables Expanded Memory. If
  556. this is not done, Windows will try to make up for its lost
  557. Virtual Machine size by allocating available Expanded
  558. memory.
  559.  
  560.  
  561. emmsize=
  562.  
  563. Sets the Maximum amount of Extended memory to be converted
  564. to Expanded. The default is blank. When blank, Windows/386
  565. automatically converts all Extended to Expanded. The
  566. Expanded can be released for creating Virtual Machines if
  567. necessary.
  568.  
  569. emmsize=0
  570. Disables Windows/386 expanded memory and creation. This
  571. differs from running Windows/386 with the /N parameter.
  572. Using /N just tells Windows that it cannot use the Expanded
  573. memory that may be available. It would still be available to
  574. applications that directly access the Expanded memory
  575. driver. By setting emmsize=0, Windows/386 does not create an
  576. Expanded memory page frame, for itself or for applications
  577. (such as Excel) that directly access Expanded memory. Note:
  578. The corresponding Windows/286 action would be to remove the
  579. EMS driver from your config.sys.
  580.  
  581. emmpageframe=
  582. Explicitly sets the starting location of a 64K EMS page
  583. frame in upper memory. An example of this is
  584.  emmpageframe=D000
  585. This sets the LIM 4.0 page frame at the ROM location D000
  586. (hex). This is at 832K. This is useful if you have a
  587. conflict with hardware set at other locations in ROM. Note,
  588. this is recommended if emmexclude and emminclude do not seem
  589. to set the location of your page frame in the location you
  590. desire. This setting can be dangerous, because if you do
  591. something like "emmpageframe=C000", you will set your EGA
  592. ROM to be mapped as Expanded memory. Windows/386 doesn't
  593. check if the address range is already in use. See the
  594. Hardware Rom Conflicts section of this documentation for
  595. further information about the use of this setting in
  596. specific situations.
  597.  
  598. emminclude=D000-D7FF  (Windows/386 Version 2.10 or higher)
  599.  
  600. When Windows/386 starts, it tries to find 4 16K blocks of
  601. address space in which to place its EMS page frame. In order
  602. for applications to access LIM 3.2 Expanded Memory directly
  603. through the EMS driver that Windows/386 has built-in, these
  604. 4 pages must be continuous. Windows/386 usually scans the
  605. locations: C000-DFFF (768K through 895K), looking for
  606. address space not allocated by other hardware. If you want
  607. to give Windows/386 a range of valid addresses to search
  608. through, you can use this setting.
  609.  
  610. emmexclude=C000-C7FF
  611. This setting tells Windows/386 to skip certain areas when
  612. selecting a Page Frame. This could be useful if you have a
  613. video or network card at a specific address, and you want to
  614. make sure Windows/386 doesn't try to use this segment for
  615. hardware mapping.
  616.  
  617. lastemmseg=D800
  618. This setting tells Windows/386 to stop looking for EMS pages
  619. after this address. Windows/386 will test the segment at the
  620. location specified for availability, but will not go
  621. further.
  622.  
  623.  
  624.  
  625. Hardware Rom Conflicts
  626.  
  627. If you have adapters in your computer system which utilize
  628. address memory between 640K and 1 Meg, and are having
  629. problems with recognizing Expanded memory, there is a
  630. possibility that your additional hardware may have an
  631. address space conflict with the memory Windows wants to
  632. utilize as an EMS page frame.
  633.  
  634. Hardware that utilizes this memory include network cards,
  635. high resolution displays (such as the 8514/a), IRMA + 3270
  636. adapters, RLL + ESDI hard drive controllers, and tape backup
  637. devices.
  638.  
  639. If you believe you are having a conflict with an adapter,
  640. contact the manufacturer and find out what ROM locations the
  641. device uses. For Windows/386, use the WIN.INI switches
  642. mentioned above (emmpageframe, emmexclude, etc) to locate
  643. the Windows/386 page frame in a position which does not
  644. conflict with the other devices. If possible, configure your
  645. adapters to use a continuous memory range (by configuring
  646. them next to each other instead of skipping segments), which
  647. will maximize the largest block of address space available
  648. for Windows/386's page frame.
  649.  
  650.  
  651.  
  652.  
  653.  
  654. HIMEM.SYS:  High Memory and Extended Memory Manager
  655.  
  656.  
  657. In Windows/286 version 2.10 or later, Windows has the
  658. capability of putting part of itself in extended memory with
  659. the help of a driver called HIMEM.SYS. In Windows/386, the
  660. HIMEM capability is built-in and HIMEM.SYS should NOT be
  661. placed in the config.sys.
  662.  
  663. HIMEM.SYS is a device driver that is installed when you
  664. install Windows/286 Version 2.10D or 2.11 for a system which
  665. has extended memory available. When HIMEM.SYS is installed,
  666. a modified version of Windows is installed that is designed
  667. to make use of this driver. This modification permits faster
  668. execution of Windows and an increase in conventional memory
  669. from 45K to 64K depending on the system.
  670.  
  671. HIMEM.SYS, when installed, loads itself (program code) into
  672. low memory (conventional). Whenever any program that can use
  673. HIMEM requests anything from it, as does Windows, it
  674. reserves up to the first 64K of extended memory. Memory
  675. managers, RAM disks, or disk caches that have to use this
  676. same memory should not be used with HIMEM.SYS (e.g.
  677. CEMM.SYS).
  678.  
  679. HIMEM.SYS is installed in the CONFIG.SYS file during Setup
  680. (not Memset). If HIMEM.SYS is removed from the CONFIG.SYS
  681. file or disturbed in memory so that it cannot execute
  682. correctly, then a message of "Memory configuration has
  683. been altered..." is displayed when you type 'win'. If, after
  684. checking to make sure HIMEM.SYS is installed in the
  685. CONFIG.SYS file correctly, you are still having problems,
  686. check for incompatible drivers or TSRs that could be
  687. interrupting HIMEM's execution.
  688.  
  689. If you have an EMS (Expanded Memory Specification) board,
  690. you can allocate part of its memory (64K is the recommended
  691. optimum amount) to extended memory by reconfiguring the
  692. board and leaving the rest as expanded. Refer to your EMS
  693. board manual for more information about reconfiguring your
  694. board.
  695.  
  696. If you are loading other extended memory programs that do
  697. not use the XMS interface to manage the extended memory,
  698. they should be configured to leave the FIRST 64K of extended
  699. memory free.
  700.  
  701. System Requirements
  702.  
  703. To use HIMEM.SYS with your computer, you need the following:
  704.  
  705.      1. An IBM PC/AT, PS/2 (except models 25 and 30), or
  706. compatible computer
  707.  
  708.      2. Extended memory
  709.  
  710.      3. DOS 3.00 or higher.
  711.  
  712. Installing HIMEM.SYS
  713.  
  714. To install HIMEM.SYS, include the following command line in
  715. your CONFIG.SYS file:
  716.  
  717.    DEVICE=[d:][path]HIMEM.SYS [/HMAMIN=h] [/NUMHANDLES=n]
  718.  
  719. When you start your computer, the driver is loaded and the
  720. following message is displayed:
  721.  
  722.    HIMEM:  DOS XMS Driver, Version 2.04 - 8/17/88
  723.    Copyright 1988, Microsoft Corp.
  724.  
  725. If you also want to install other device drivers that use
  726. XMS calls, place the commands that install them in the
  727. CONFIG.SYS file after the above command.
  728.  
  729. HIMEM.SYS Options
  730.  
  731. Following is a description of the two options you can use
  732. with the HIMEM.SYS device driver. These need not be used in
  733. a normal Windows installation.
  734.  
  735. 1. The /HMAMIN=h option is as follows:
  736.  
  737.    The function of this option is to specify the minimum
  738. amount of memory a Terminate and Stay Resident (TSR) program
  739. can use in the High Memory Area (HMA) allowing controlled
  740. access to the HMA.
  741.  
  742.    Specify the amount of memory in kilobytes. Programs
  743. requiring less space are not placed in the HMA.
  744.  
  745.    To ensure the most effective use of this memory area, set
  746. the number to the request size of the largest TSR program
  747. that uses the HMA. The minimum value is 0, the maximum is
  748. 63, and the default is 0. The 0 default allows "first come,
  749. first served" access to the HMA. When you use this option,
  750. the following message is displayed:
  751.  
  752.       Minimum HMA size set to <number>
  753.  
  754.    Please note that you will only use the /HMAMIN option
  755. when you run two or more TSR programs and/or device drivers
  756. that require use of the HMA.
  757.  
  758. 2. The NUMHANDLES=n option is as follows:
  759.  
  760.    The function of this option is to set the maximum number
  761. of Extended Memory Block (EMB) handles that can be used at
  762. any given time. Specify the amount of memory in kilobytes.
  763. The minimum value is 1, the maximum is 128, and the default
  764. is 32. Each additional handle requires an additional 6 bytes
  765. of resident memory. Because it is possible to exceed the
  766. default when running several programs, increase the number
  767. of allocated EMB handles using the /NUMHANDLES option. When
  768. you use this option, the following message is displayed:
  769.  
  770.       n extended memory handles available
  771.  
  772. The following command line shows the most common
  773. configuration of HIMEM.SYS:
  774.  
  775.    DEVICE=HIMEM.SYS
  776.  
  777. The following command line shows a configuration of
  778. HIMEM.SYS that ensures that any program using the High
  779. Memory Area must use at least 40K of this memory:
  780.  
  781.    DEVICE=HIMEM.SYS /HMAMIN=40
  782.  
  783. The following command line shows a configuration of
  784. HIMEM.SYS that uses the maximum number of Extended Memory
  785. Block handles:
  786.  
  787.    DEVICE=HIMEM.SYS /NUMHANDLES=128
  788.  
  789. Messages
  790.  
  791. The messages below may appear when you install the HIMEM.SYS
  792. device driver. Most messages indicate a problem that needs
  793. correction before HIMEM.SYS can be installed properly.
  794.  
  795. The messages and their meanings are as follows:
  796.  
  797. 1. "64K High Memory Area is available" means you have
  798. installed HIMEM.SYS properly.
  799.  
  800. 2. "ERROR: HIMEM.SYS requires DOS Version 3.00 or higher.
  801. XMS Driver not installed" means you have tried to install
  802. HIMEM.SYS on a machine using a version of MS-DOS earlier
  803. than Version 3.00. You can only install HIMEM.SYS on systems
  804. using MS-DOS Version 3.00 or later.
  805.  
  806. 3. "ERROR: HIMEM.SYS requires an 80x86-based machine. XMS
  807. Driver not installed" means you have tried to install
  808. HIMEM.SYS on a machine other than an 80286 or 80386.
  809. HIMEM.SYS can only be installed on a computer system that
  810. has an 80286 or 80386 microprocessor.
  811.  
  812. 4. "ERROR: An Extended Memory Manager is already installed.
  813. XMS Driver not installed" means you have tried to install
  814. HIMEM.SYS after it has already been installed on your
  815. system. HIMEM.SYS can only be installed once.
  816.  
  817. 5. "ERROR: No available extended memory was found" means you
  818. have tried to install HIMEM.SYS on a computer without any
  819. extended memory. HIMEM.SYS can only be installed on a
  820. computer with extended memory.
  821.  
  822. 6. "ERROR: Unrecognized A20 hardware" means HIMEM.SYS cannot
  823. recognize the A20 hardware of your system. If this occurs,
  824. it is probably because the system is not one supported by
  825. this release of HIMEM.SYS. Contact your computer
  826. manufacturer or dealer to see if an XMS driver exists for
  827. your machine.
  828.  
  829. 7. "WARNING: The High Memory Area is unavailable" means
  830. HIMEM.SYS cannot find enough memory to use the High Memory
  831. Area. HIMEM.SYS cannot process any requests for the High
  832. Memory Area. However, HIMEM.SYS remains installed to process
  833. any requests for the Extended Memory Data Blocks.
  834.  
  835. 8. "WARNING: The A20 Line was already enabled" means that
  836. during the installation process, HIMEM.SYS detected the A20
  837. hardware was already enabled. HIMEM.SYS remains installed
  838. and attempts to work properly, however it does not disable
  839. the A20 line.
  840.  
  841. VERSIONS COMPATIBLITY WITH WINDOWS/286
  842. HIMEM.SYS, the Microsoft implementation of an XMS (extended
  843. memory specification) device driver, is shipped with MS-DOS
  844. Version 4.00 and with Windows Version 2.10. Different
  845. versions of HIMEM.SYS are available with different releases
  846. of the product, so some version matching must be observed.
  847. This article will describe version compatibility for the
  848. released versions of HIMEM and Windows.
  849.  
  850. The following table shows the file sizes (in bytes) of the
  851. released versions of HIMEM.SYS. Other than noting the
  852. version message when HIMEM is loaded from the CONFIG.SYS,
  853. the easiest way to determine which XMS driver version you
  854. have is to look at the size of the file. (Incidentally,
  855. noting the version of HIMEM.SYS will help determine the
  856. release of Windows Version 2.10 that you have, which is
  857. useful in the discussion below.)
  858.  
  859. Filename     Version  Size (in Bytes)
  860.  
  861. HIMEM.SYS    1.00     1613
  862. HIMEM.SYS    1.10     1610
  863. HIMEM.SYS    2.00     4571
  864. HIMEM.SYS    2.01     4777
  865. HIMEM.SYS    2.02     4775
  866. HIMEM.SYS    2.03     5792
  867. HIMEM.SYS    2.04     6223
  868. HIMEM.SYS    2.06     6266
  869.  
  870. HIMEM.SYS Version 1.00 was shipped with the first release of
  871. Microsoft Windows Version 2.10 having files dated 5-27-88.
  872. This release of Windows and this version of HIMEM.SYS are
  873. version locked. This release of HIMEM.SYS is the only
  874. release that will work with this version of Windows;
  875. conversely, this version of Windows will work only with this
  876. version of HIMEM.SYS, not with any other version of
  877. HIMEM.SYS (or with any other XMS driver). This version of
  878. HIMEM.SYS is not a full XMS device driver; it is only a
  879. high-memory manager and can be used only by this version of
  880. Windows.
  881.  
  882. HIMEM.SYS Version 1.10 was shipped with later releases of
  883. Microsoft Windows Version 2.10 having files dated 7-1-88.
  884. This release of Windows can use this version of HIMEM.SYS or
  885. later versions. In addition, this release of Windows can use
  886. other XMS drivers in place of HIMEM.SYS Version 1.10.
  887. However, HIMEM.SYS Version 1.00 (the earlier HIMEM.SYS
  888. release) CANNOT be used with this release of Windows.
  889. Version 1.10 of HIMEM.SYS is not a full XMS device driver;
  890. it is only a high-memory manager. However, Version 2.10 of
  891. Windows uses the XMS interface for accessing the high-memory
  892. area, allowing later versions of HIMEM.SYS to be used in
  893. place of Version 1.10.
  894.  
  895. HIMEM.SYS Versions 2.00, 2.01, 2.02, 2.03 and 2.05 have not
  896. been released to the public; therefore, they will not be
  897. discussed in this article.
  898.  
  899. HIMEM.SYS Version 2.04 is a fuller implementation of the XMS
  900. definition than HIMEM.SYS Versions 1.x. The releases of
  901. Versions 2.00 through 2.04 allow access to extended memory,
  902. whereas the releases of Versions 1.x only allow access to
  903. the high-memory area. HIMEM.SYS Version 2.04 is shipped with
  904. later releases of Windows Version 2.10 having files dated 9-
  905. 7-88.
  906.  
  907. HIMEM.SYS Version 2.06 has the same functionality of version
  908. 2.06. There were minor fixes from version 2.04. This version
  909. is available on Compuserve, in the Microsoft Systems forum,
  910. (GO MSSYS). The driver is in the DOS utilities library. The
  911. file is HIMEM.ARC.
  912.  
  913. In summary, if you have the first release of Windows Version
  914. 2.10 having files dated 5-27-88 which include HIMEM.SYS
  915. Version 1.00, you can use only this version of HIMEM.SYS
  916. unless you upgrade to a later version of Windows. If you
  917. have a later version of Windows, you can choose to upgrade
  918. to the latest version of HIMEM.SYS.
  919.  
  920.  
  921. "Memory Configuration Altered..."
  922.  
  923. The following is a Microsoft Knowledgebase article:
  924.  
  925.   Title: Windows/286 Err Msg: Memory Configuration Altered
  926.   Document Number: Q46950           Publ Date: 20-JUL-1989
  927.   Product Name: Microsoft Windows/286 Retail Product
  928.   Product Version:  2.10 2.11
  929.   Operating System: MS-DOS
  930.   
  931.   Summary:
  932.   
  933.   The following article discusses the causes for the error
  934.   message "Memory configuration altered" when starting
  935.   Windows/286.
  936.   
  937.   More Information:
  938.   
  939.   In all cases under Windows/286, this error cannot occur
  940.   unless you have installed Windows/286 to "use extended
  941.   memory," which causes Windows/286 to expect the HIMEM.SYS
  942.   driver to be present. The following are causes for this
  943.   message:
  944.   
  945.   1. HIMEM.SYS is not in the CONFIG.SYS file, or is in the
  946.   CONFIG.SYS file but not present in the specified location.
  947.   
  948.      Examine your CONFIG.SYS file to verify that the line
  949.   DEVICE=HIMEM.SYS is present, and a copy of HIMEM.SYS is in
  950.   the root directory of your boot drive (or place a path
  951.   specification in the DEVICE= line).
  952.   
  953.   2. HIMEM.SYS is in the CONFIG.SYS, but is not installing
  954.   (gives an error during the boot process) because of one of
  955.   the following reasons:
  956.   
  957.      a. You do not have at least 64K of extended memory.
  958.   
  959.         You can correct this problem by creating 64K of
  960.   extended memory to reconfigure your system (e.g. configure
  961.   part of your expanded memory board as extended).
  962.   
  963.         If you cannot create 64K of extended memory, you
  964.   need to reinstall Windows/286 and specify that you do not
  965.   have extended memory available. Also, remove the line
  966.   DEVICE=HIMEM.SYS from your CONFIG.SYS.
  967.   
  968.      b. You receive the error "Unrecognized A20 hardware."
  969.   
  970.         This error message means that your computer
  971.   implements extended memory in a nonstandard way, and
  972.   HIMEM.SYS cannot work on your machine. Reinstall
  973.   Windows/286 and specify that you do not have extended
  974.   memory available. Also, remove the line DEVICE=HIMEM.SYS
  975.   from your CONFIG.SYS. To correct this problem in the long
  976.   term, contact your hardware manufacturer; a BIOS upgrade
  977.   may provide a solution.
  978.   
  979.      c. You receive the error "A20 line already enabled."
  980.   
  981.         This error message means that some other driver is
  982.   using extended memory before HIMEM.SYS is loaded. Verify
  983.   that the line DEVICE=HIMEM.SYS is the first line in the
  984.   CONFIG.SYS file, and that you are not loading any other
  985.   protected-mode software (such as 386 memory managers) that
  986.   are incompatible with HIMEM.SYS (for more information,
  987.   search on the following words HIMEM.SYS and memory and
  988.   managers.) For testing purposes, remove everything from
  989.   the CONFIG.SYS except HIMEM.SYS (and the disk-partitioning
  990.   driver, if present).
  991.   
  992.   3. HIMEM.SYS is in the CONFIG.SYS file and is installing
  993.   without an error, but you still receive the "Memory
  994.   configuration altered" message.
  995.   
  996.      This means that some other program or driver is
  997.   interfering with HIMEM.SYS after it is loaded.
  998.   
  999.      Verify that no other programs or drivers that use
  1000.   extended memory are in the CONFIG.SYS or AUTOEXEC.BAT
  1001.   files. Typical offenders are 386 memory managers (for more
  1002.   information, search on the following words: memory and
  1003.   managers), disk-caching programs other than SMARTDrive,
  1004.   and RAMdisk programs other than RAMDrive. Remove all
  1005.   drivers from the CONFIG.SYS file (except the disk-
  1006.   partitioning driver, if present) and all programs from the
  1007.   AUTOEXEC.BAT for testing purposes.
  1008.   
  1009.   COPYRIGHT Microsoft Corporation, 1989.
  1010.  
  1011.  
  1012. DOS Applications Under Windows/286 and Windows/386
  1013.  
  1014. How Windows/386 handles DOS applications
  1015.  
  1016. Windows/386 can multitask as many DOS applications as it can
  1017. fit into memory (including Extended memory). DOS
  1018. applications must be resident in memory. Windows/386 does
  1019. not swap applications to disk. Windows/386 will load DOS
  1020. programs into memory, and once you run out of memory, you
  1021. will not be able to load any more DOS apps.
  1022.  
  1023. It takes a lot of memory to run DOS applications under
  1024. Windows/386. First of all, Windows/386 reserves the first
  1025. megabyte for running Windows applications. This is referred
  1026. to as the first Virtual Machine, or VM1.
  1027.  
  1028. What is a Virtual Machine?
  1029.  
  1030. A Virtual Machine is just a 640K (or smaller) memory space
  1031. that you can run a program in.
  1032.  
  1033.  Well, you might ask how this is different from your current
  1034. system. You currently have 640K memory, and you can run MS
  1035. Word, or an application such as that in your computer, and
  1036. go from there.
  1037.  
  1038. What is it about Windows/386 that makes a 640K program area
  1039. into a "Virtual Machine"?
  1040.  
  1041. Well, using the special abilities of the 80386 processor,
  1042. Windows/386 can create more than one Virtual Machine, and
  1043. run a program in each of them at the same time. It divides
  1044. the total of your conventional memory and extended memory
  1045. into independant Virtual Machines.  This is how it works:
  1046.  
  1047.           First, You must have at least two megabytes of
  1048.      memory.
  1049.           
  1050.      When Windows/386 starts, it creates a Virtual Machine
  1051.      for running Windows applications. The size of this VM
  1052.      is defined by the windowmemsize setting, located in the
  1053.      [win386] section of the WIN.INI (see WIN.INI section).
  1054.      It is recommended that this setting be 640.
  1055.      
  1056.      Now, you decide to run a DOS application. Windows/386
  1057.      creates another Virtual Machine. This memory area is
  1058.      located in your extended memory area above 1 megabyte.
  1059.      Say from 1 meg to 2 megs. Unless you use a PIF file
  1060.      (explained later), Windows/386 allocates 640K for the
  1061.      Virtual Machine. Plus, a certain amount of overhead is
  1062.      allocated for the display and for memory management
  1063.      information. That means approximately 384K of overhead
  1064.      in a typical configuration using an EGA card. This
  1065.      overhead is necessary to multitask DOS applications
  1066.      because each application needs to write to it's own
  1067.      display memory. Once the Virtual Machine is created,
  1068.      the DOS application is loaded.
  1069.  
  1070.      At this point Windows/386 has two DOS memory areas
  1071.      created at the same time. Using special capabilities of
  1072.      the 80386 processor, Windows/386 fools the DOS
  1073.      application running in the 1 meg to 2 meg address space
  1074.      into believing it is running in it's own zero to 640K
  1075.      memory space.
  1076.  
  1077.  
  1078. How is the multitasking achieved?
  1079.  
  1080.      Again, using the Virtual Machine technology, the
  1081.      processor can be running one Virtual Machine in 8086
  1082.      mode, completely stop, save its complete state of being
  1083.      (registers and location), and resume another Virtual
  1084.      Machine. It's like Windows/386 has split your 2 meg 386
  1085.      computer into two completely separate 1 meg 8086
  1086.      computers running at the same time!
  1087.      
  1088.      Memory that is not being used for Virtual Machines is
  1089.      dynamically converted to Expanded memory. This Expanded
  1090.      memory is available to all the Virtual Machines.
  1091.  
  1092.  
  1093. How Windows/286 handles DOS applications
  1094.  
  1095. Windows/286 has a limited ability to run DOS applications
  1096. when compared with Windows/386. Since Windows originally ran
  1097. on non-80286 machines, the DOS support was based on 640K
  1098. machines. Windows/286 does not use Extended memory for DOS
  1099. applications to create Virtual machines. Instead, it runs
  1100. all DOS applications in the normal 640K address space where
  1101. Windows normally runs.
  1102.  
  1103. Windows/286 will handle a DOS application one of three ways
  1104. depending on the settings in its PIF file. The three
  1105. different scenarios are:
  1106.  
  1107.      Level 1: The Directly Modifies Screen checkbox is not
  1108.      checked. These are applications that write to the
  1109.      screen using BIOS or ANSI commands. They do not access
  1110.      system resources such as the COM port or video memory
  1111.      directly. Examples: CHKDSK, COMMAND.COM, COPY
  1112.      
  1113.      
  1114.      Level 2: The Directly Modifies Screen checkbox is
  1115.      checked. The application writes to the video memory
  1116.      directly. Examples, MS WORD, LOTUS 1-2-3, Ashton-Tates
  1117.      DBASE.
  1118.      
  1119.      Level 3: The Directly Modifies Memory checkbox is
  1120.      checked. The application needs all of DOS memory in the
  1121.      system and/or graphics card such as AutoCad. These
  1122.      applications must run alone. There is little advantage
  1123.      to running these applications from Windows, as you will
  1124.      have to close all Windows applications in order to run
  1125.      the DOS application.
  1126.      
  1127. Windows provides a program, WINOLDAP.MOD which acts as an
  1128. interface between Windows and all DOS applications running
  1129. on the system. Winoldap is technically known as a "shell",
  1130. and as such, provides cut and paste clipboard support
  1131. between Windows and the DOS applications. It also has built
  1132. into it sophisticated macro capabilties which can be used by
  1133. system software developers to manipulate DOS applications.
  1134. It also provides necessary environmental support for DOS
  1135. applications and interfaces with the Windows DOS application
  1136. screen grabber.
  1137.  
  1138. There are already some announced Windows-based programs
  1139. which will provide access to this full functionality of
  1140. Winoldap, most notably Hewlett-Packard's New Wave and
  1141. Softbridge Microsystems Bridge 286/386. If the reader is
  1142. interested in these programs, they should contact their
  1143. local Hewlett Packard sales office or Softbridge
  1144. Microsystems at (617) 576-2257.
  1145.  
  1146. Windoldap will function differently depending on which level
  1147. of DOS application you are using:
  1148.  
  1149.      Level 1: If there is enough memory available in the
  1150.      system for mapping the screen buffer into a window and
  1151.      supply the applications memory requirements, Windows
  1152.      can run the application within a window. As is always
  1153.      the case, the PIF settings are used to determine
  1154.      whether this is possible. This mode of operation will
  1155.      leave little memory available for running any other
  1156.      applications.
  1157.      
  1158.      Level 2: In this case Winoldap swaps Windows and
  1159.      Windows applications running in conventional memory out
  1160.      to the swapdisk set in the [pif] section of the
  1161.      WIN.INI. If swapdisk=/e then Windows will attempt to
  1162.      swap to expanded memory if it is available and there is
  1163.      enough of it. This allows the user to context swith
  1164.      between Windows and DOS applications using ALT-TAB or
  1165.      ALT-ESC depending on how the DOS application writes to
  1166.      the video display.
  1167.  
  1168.      Level 3: In this case, Winoldap checks to see if any
  1169.      applications are running. If there are, it responds
  1170.      "Cannot run with other applications". If there are no
  1171.      applications running, Windows saves its state in a
  1172.      small chunk of memory and then closes down. The DOS
  1173.      application is launched and must be quit in order to
  1174.      get back to Windows. When the DOS application closes,
  1175.      Windows is restarted.
  1176.  
  1177.  
  1178.  
  1179. Considerations for Running DOS Applications under
  1180. Windows/286:
  1181.  
  1182. 1. The amount of swap space needed to run Level 2 and 3 DOS
  1183. applications is much larger than first appears. Windows
  1184. requires that there be at least twice the amount of memory
  1185. (as specified in the PIF Memory Required entry) plus enough
  1186. memory to store the screen buffer of the application and
  1187. Windows. This space must be available on the hard disk or in
  1188. the EMS memory pool before Winoldap can run the DOS
  1189. application.
  1190.  
  1191. 2. If a Windows program is using the COM port, Windows will
  1192. not be able to swap itself to disk in order to run a Level 2
  1193. or 3 application. This is because the COM port requires
  1194. servicing that is impossible when the Windows application is
  1195. swapped to disk.
  1196.  
  1197. 3. Winoldap has no provision for restricting the amount of
  1198. EMS used by a single DOS application. This can cause
  1199. difficulties when running an application such as Lotus 1-2-3
  1200. that may allocate all available EMS. This will manifest
  1201. itself as a lack of EMS when context switching back and into
  1202. Windows or being unable to run any other Windows
  1203. applications in large frame EMS mode. It can also cause
  1204. problems when use with "swapdisk=/e" since there may not be
  1205. enough EMS in which to bank the DOS application. In this
  1206. case the performance will be considerably slowed because
  1207. Winoldap will have to swap to the hard disk instead of
  1208. faster memory.
  1209.  
  1210. 4. If graphics cut and paste support is not required for a
  1211. DOS application, the Screen Exchange option may be changed
  1212. to those using less memory (from "Graphics/Text" to "Text"
  1213. using the PIF editor since this may conserve an extensive
  1214. amount of memory which would otherwise be unused. This
  1215. option may be disabled if no clipboard support is required
  1216. at all.
  1217.  
  1218. 5. If you are not running the DOS application in a window,
  1219. it may be desirable to set the Memory Desired setting in the
  1220. PIF file to -1. This will cause Windows to swap out, thus
  1221. freeing up additional memory for other uses.
  1222.  
  1223. 6. While swapdisk=/e supports large and small frame EMS, it
  1224. will function faster in large frame mode because it is able
  1225. to bank switch the entire DOS application into EMS instead
  1226. of having to squeeze the DOS application through the 64K LIM
  1227. 3.2 page frame.
  1228.  
  1229. 7. EGA.SYS will help preserve the mode of the EGA video card
  1230. when running DOS applications such as Microsoft Word under
  1231. Windows. It allows custom EGA palettes to be saved and saves
  1232. the state of the the text mode (43 line vs 25 line mode) of
  1233. a DOS application while switching between the DOS
  1234. application and Windows.
  1235.  
  1236. 8. If you experience ANY problems running DOS applications
  1237. with any third party graphics card, verify that the latest
  1238. version of BIOS and manufacturer supplied driver is used.
  1239. Also, be certian that the auto-emulation(switching) feature
  1240. of the graphics card is disabled. Typical symptoms of this
  1241. problem are blank screens on boot, or "holes" in the display
  1242. and sometimes machine lockups when switching between Windows
  1243. and DOS applications. These lockups may also be caused when
  1244. there is an interrupt conflict in the system, typically
  1245. involving a bus mouse card.
  1246.  
  1247. Smartdrive
  1248.  
  1249. SMARTDrive is a disk caching utility included with Windows
  1250. and MS-DOS. It stores disk blocks that have been involved in
  1251. read or writes in a memory buffer. If the block is called on
  1252. again, SMARTDrive provides it from memory as opposed to
  1253. accessing the relatively slower hard drive.
  1254.  
  1255. The cache size for SMARTDRV.SYS is in kilobytes. The minimum
  1256. value is 128 (128K), and the maximum value is 8192 (8
  1257. megabytes). If this size is not explicitly specified on the
  1258. SMARTDrive command line, the default value is 256 (256K).
  1259. The upper limit of the SMARTDrive cache is not specified in
  1260. the "Microsoft MS-DOS 4.00 User's Reference" manual.
  1261.  
  1262.  
  1263. SMARTDrive supports the use of extended memory and expanded
  1264. memory, but not conventional memory. SMARTDRV.SYS was
  1265. designed as a disk caching program for environments with
  1266. memory that MS-DOS does not use heavily: extended and
  1267. expanded memory. The maximum 640K of conventional memory is
  1268. so valuable these days that most people don't waste it with
  1269. disk caching.
  1270.  
  1271. Most people would rather use this precious conventional
  1272. memory for running programs, and not for SMARTDrive to speed
  1273. up their systems. For people who do not feel this way, there
  1274. are two upgrade paths available. They are as follows:
  1275.  
  1276. 1. Obtain an Expanded memory board
  1277.      This works with Windows/286 and Windows/386, also.
  1278. If used for Windows/386 and Smartdrive, it must be
  1279. configured as Extended (so a cheaper Extended memory board
  1280. will suffice).
  1281.  
  1282.  
  1283. 2. Obtain an Extended memory board.
  1284.      Usually cost less than an Expanded memory board and
  1285. provides the same support for Windows applications if you
  1286. are using Windows/386. Windows/286 cannot use Extended
  1287. memory, however.
  1288.  
  1289.  
  1290. SMARTDrive caches only nonremovable hard drives that operate
  1291. on the IBM ROM INT 13H interface using drive numbers
  1292. starting at 80H. SMARTDrive will not cache network drives,
  1293. RAM drives, or removable drives of any kind, including
  1294. floppy drives and removable hard drives such as the Iomega
  1295. Bernoulli Box. These drive types do not utilize INT 13H.
  1296.  
  1297. Since SMARTDrive is operating at the INT 13H level of the
  1298. system, all logical partitioning schemes that operate above
  1299. the INT 13H interface will not be cached. SMARTDrive caches
  1300. all hard-disk activity (up to 16 physical drives) that is
  1301. processed by the INT 13H interface.
  1302.  
  1303. Note: The number of physical hard drives is the number
  1304. returned in the DL register on an AH=08 INT 13H call.
  1305. SMARTDrive caches logical drives if the physical drive uses
  1306. INT 13H.
  1307.  
  1308. SMARTDrive frequently does not work correctly on hard disks
  1309. with third-party partitioning software such as Disk Manager
  1310. and Priam hard disk partitioning utilities.
  1311.    General guidelines on how much memory to allocate to
  1312. SmartDrive are very hard to give; it is very subjective.
  1313. There is no "Optimum Setting" that is guaranteed to work
  1314. better than any other. If you are using expanded memory with
  1315. a LIM Version 4.0 driver, we generally recommend you use
  1316. about one third of your EMS memory for SmartDrive. If a lot
  1317. of disk swapping is expected to occur, then use more.
  1318. However, having a very large SmartDrive will decrease the
  1319. amount of expanded memory available for Windows to load Code
  1320. segments into, so more swapping will occur and fewer
  1321. programs can be loaded.
  1322.    If the extra memory in your computer is extended memory
  1323. and you are not using Windows/386, it is usually best to
  1324. assign it all to SmartDrive, since Windows/286 does not use
  1325. extended memory.
  1326.    If you are using Windows/386, try assigning to SmartDrive
  1327. one third of the memory you have available beyond the 1
  1328. megabyte of system memory.
  1329.  
  1330.    Note that SmartDrive (for expanded memory) has an IOCTL
  1331. that allows Windows/286 to take expanded memory away from
  1332. SmartDrive. The upshot is that you can give SmartDrive
  1333. memory and not totally starve Windows/286 since it will take
  1334. the memory back when it needs it.
  1335.    We recommend experimentation if you are not satisfied
  1336. with the performance.
  1337.  
  1338. The system performance improvement from SMARTDrive is not
  1339. linear (linear in this context means that as you increase
  1340. the memory allocated to SMARTDrive, each memory increase
  1341. returns a relative performance improvement).
  1342.  
  1343. This section discusses factors involved in the performance
  1344. increase you will realize from using SMARTDrive in various
  1345. configurations.
  1346.  
  1347. Windows/286 with LIM Version 4.0 Expanded Memory
  1348.  
  1349. In Windows/286 with SMARTDrive in LIM Version 4.0 expanded
  1350. memory, Windows can borrow expanded memory from SMARTDrive
  1351. when it requires more memory to run Windows applications.
  1352. This is implemented by placing the /A switch on the
  1353. Smartdrive Config.sys entry.
  1354.  
  1355. In this configuration there is no penalty for loading
  1356. SMARTDrive with a very large amount of memory allocated
  1357. (512K to 2 megabytes).
  1358.  
  1359. Note that Windows may not borrow memory from SMARTDrive to
  1360. swap DOS applications with swapdisk=/E, but only to run
  1361. Windows applications.
  1362.  
  1363. In the 5/27/88 release of Windows/286 Version 2.10,
  1364. SmartDrive did not properly regain expanded memory that it
  1365. gave up to Windows applications after those applications
  1366. were closed. Microsoft has confirmed this to be a problem in
  1367. the 5/27/88 release of Windows/286 Version 2.10. The problem
  1368. was corrected in releases of Windows/286 dated 7/1/88 or
  1369. later.
  1370.  
  1371. Windows/286 with Extended Memory
  1372.  
  1373. Since Windows/286 cannot use more than 64K of extended
  1374. memory (with the HIMEM.SYS driver), in this type of
  1375. configuration SMARTDrive should be installed for all
  1376. available extended memory minus 64K.
  1377.  
  1378. Windows/386 (Extended Memory)
  1379.  
  1380. Since Windows may not borrow memory from SMARTDrive when
  1381. SMARTDrive is running in extended memory, all memory
  1382. allocated to SMARTDrive reduces the amount of memory
  1383. available to run DOS applications.
  1384.  
  1385. When running in extended memory, allocating beyond 512K to
  1386. SMARTDrive causes the incremental benefit to fall off
  1387. quickly and at some point actually diminishes (due to cache
  1388. management overhead).
  1389.  
  1390. This means that a 1-megabyte SMARTDrive has better
  1391. performance than a 512K SMARTDrive, but not twice the
  1392. performance. Clearly all of this is environment specific,
  1393. but 512 is a reasonable rule of thumb for a maximum size to
  1394. allocate.
  1395.  
  1396. Environment specifics that affect SMARTDrive performance are
  1397. as follows:
  1398.  
  1399. 1. The average seek time of disk (the faster the disk, the
  1400. smaller the benefit from SMARTDrive)
  1401.  
  1402. 2. The interleave factor of the disk
  1403.  
  1404. 3. Fragmentation of files on the disk (it is HIGHLY
  1405. recommended for optimum SMARTDrive performance to optimize
  1406. the hard disk frequently with an appropriate utility)
  1407.  
  1408. 4. System processor speed (the faster the clock speed, the
  1409. lower the SMARTDrive overhead)
  1410.  
  1411. 5. Memory speed (same as processor speed)
  1412.  
  1413. 6. The applications that are being run, and the way they
  1414. access the hard disk (i.e., whether they use sequential or
  1415. random access to disk files)
  1416.  
  1417. 7. The number and size of applications being run
  1418.  
  1419.  
  1420. The following is a list of features and corrections of the
  1421. September 7, 1988 release of SMARTDrive and RAMDrive
  1422. (Windows/286 Version 2.10D):
  1423.  
  1424. 1. They now support the IBM PS/2 30-286.
  1425.  
  1426. 2. The Compaq 386S is now supported.
  1427.  
  1428. 3. DOS Version 4.00 is fully supported.
  1429.  
  1430. 4. Both RAMDrive and SMARTDrive can now use expanded and
  1431. extended memory (expanded memory requires the /a option).
  1432.  
  1433. 5. Both are now able to run on machines that operate at
  1434. faster speeds.
  1435.  
  1436.  
  1437. Memset
  1438.  
  1439. Memset is the program in Version 2.10 and 2.11 of
  1440. Windows/286, Windows/386, and Excel that installs both
  1441. SMARTDrive (SMARTDRV.SYS) and RAMDrive (RAMDRIVE.SYS). It
  1442. calculates the amount of your total memory for each
  1443. device by reading the amount of extended memory on your
  1444. system. It also installs any expanded-memory drivers that
  1445. are needed for the hardware it detects.
  1446.  
  1447. Everything Memset installs can be done manually. It adds the
  1448. needed "device=" lines to the CONFIG.SYS file and copies the
  1449. necessary files from the original disks. Memset can be run
  1450. at any time after installing Windows or Excel. The following
  1451. information outlines how SETUP and MEMSET choose the optimal
  1452. SMARTDRV.SYS Settings:
  1453.  
  1454. 1. For Win/286, list in order of test:
  1455.  
  1456.    Case1:  ((free extended-64K) >= 128))
  1457.            smartdrv.sys=   ALL remaining free extended
  1458.  
  1459.    Case2:  (free expanded > 512 and <= 1024)
  1460.            smartdrv.sys = 256K
  1461.  
  1462.    Case3:  (free expanded > 1024K
  1463.             smartdrv.sys = 512K
  1464.  
  1465. 2. For Win/386:
  1466.  
  1467.    Case1:  (free extended > 1024K)
  1468.            smartdrv.sys =  (free extended - 1024K / 4)
  1469.                        OR
  1470.            128 (whichever is greater)
  1471.  
  1472. Ramdrive
  1473.  
  1474. RAMDRIVE.SYS is a device driver you can install that allows
  1475. you to use a portion of your computer's memory as if it were
  1476. a hard disk. Ramdrive emulates a virtual disk drive in
  1477. either expanded or extended memory.
  1478.  
  1479.  
  1480. The following is a copy from RAMDRIVE.TXT which is located
  1481. on the Utilities 2 and Fonts disk (5 1/4").
  1482.  
  1483. =========================================================
  1484.                 USING RAMDRIVE WITH WINDOWS
  1485. =========================================================
  1486.  
  1487. First, follow the installation instructions provided by your
  1488. extended memory board manufacturer.  Next, copy the file,
  1489. RAMDRIVE.SYS, from the Utilities 2 Disk to your fixed disk.
  1490. Then add the following command line to your CONFIG.SYS file:
  1491.  
  1492. device=[drive:][path]RAMDRIVE.SYS [bbbb] [ssss] [dddd] [/E
  1493. or /U]
  1494.  
  1495. Note that either /E or /U may be specified, but not both. If
  1496. you do not specify one of these two, then RAMDrive will use
  1497. system memory for RAMDrives. It is almost always a bad idea
  1498. to use conventional memory for a RAMdrive as it will
  1499. significantly reduce the performance of Windows.  Running
  1500. RAMdrive in extended (/E) memory, or on an AT&T 6300 Plus
  1501. (/U) is much preferred.  Following is an explanation of the
  1502. parameters:
  1503.  
  1504.                *NOTE:  Information in a RAMDrive is lost
  1505. when you re-boot or restart your computer.
  1506.  
  1507.         [bbbb]  The first numeric argument, if present, is
  1508. the amount of memory in kilobytes to be used as your
  1509. RAMDrive. If no numeric arguments are specified, then the
  1510. default value is 64K.  The minimum amount of memory needed
  1511. is 16K;  the maximum amount of memory possible is 4096K.
  1512.  
  1513.         [ssss]  The second numeric argument, if present, is
  1514. the sector size in bytes. If a second numeric argument is
  1515. not specified, the default is 512 bytes.  The four possible
  1516. values are 128, 256, 512, and 1024 bytes.
  1517.  
  1518.                 NOTE:  With IBM PC-DOS or Olivetti DOS the
  1519. maximum value allowed is 512 bytes.  With MS-DOS 1024 bytes
  1520. is the maximum value.
  1521.  
  1522. Values are rounded up to the nearest sector size boundary.
  1523.  
  1524.         [dddd]  The third numeric argument, if present, is
  1525. the number of root directory entries.  If no third numeric
  1526. argument is specified, then the default is 64.  The minimum
  1527. number of entries needed is 2; the maximum number allowed is
  1528. 1024.
  1529.  
  1530.                 *NOTE: If there is too little memory to
  1531. create the number of root directory entries specified, then
  1532. RAMDrive attempts to create a RAMDrive with fewer root
  1533. directory entries.
  1534.  
  1535.         /E      Specifies that extended memory is to be used
  1536. for the RAMDrive.
  1537.  
  1538.         /U      Specifies that some or all of the 384K of
  1539. upper extended memory on the AT&T 6300 PLUS motherboard is
  1540. to be used as an extra RAMDrive.  You may only specify this
  1541. parameter with an AT&T 6300 PLUS.
  1542.  
  1543.                 *NOTE: There is 1K of RAMDrive overhead.
  1544. Only 383K is available for RAMDrives.  This overhead is
  1545. constant; it does not depend on the number of RAMDrives
  1546. installed.
  1547.  
  1548.  
  1549. ==========================================================
  1550. ERROR MESSAGES
  1551. ==========================================================
  1552.  
  1553.     Message:  RAMDrive: Computer must be PC-AT, or PC-AT
  1554. compatible
  1555.  
  1556. Explanation:  There is no extended memory available on your
  1557. PC-AT or compatible for RAMDrives.
  1558.  
  1559.      Result:  RAMDRIVE.SYS was not installed.
  1560.  
  1561.    Solution:  Remove the /E parameter.  Try installing
  1562. RAMDrive in system memory.
  1563.  
  1564. ---------------------------------------------------------
  1565.  
  1566.     Message:  RAMDrive: No extended memory available
  1567.  
  1568. Explanation:  Your computer has no memory available for
  1569. RAMDrives.
  1570.  
  1571.      Result:  RAMDRIVE.SYS was not installed.
  1572.  
  1573.    Solution:  Free some extended memory or obtain more
  1574. memory.
  1575.  
  1576. ---------------------------------------------------------
  1577.  
  1578.     Message:  RAMDrive: Insufficient memory
  1579.  
  1580. Explanation:  Your computer has some memory available, but
  1581. not enough to set up a RAMDrive.
  1582.  
  1583.      Result:  RAMDRIVE.SYS was not installed.
  1584.  
  1585.    Solution:  Free some extended memory or obtain more
  1586. memory.
  1587.  
  1588. --------------------------------------------------------
  1589.  
  1590.     Message:  RAMDrive: Invalid parameter
  1591.  
  1592. Explanation:  The parameters you specified in your
  1593. CONFIG.SYS entry for RAMDRIVE.SYS are not correct.
  1594.  
  1595.      Result:  RAMDRIVE.SYS was not installed.
  1596.  
  1597.    Solution:  Check to see if you specified too many
  1598. parameters, if one of your numeric parameters is not valid,
  1599. if you specified conflicting switches ( i.e. only one of /E
  1600. or /U may be specified ), or if you specified too many
  1601. switches. Change the RAMDRIVE.SYS command line in your
  1602. CONFIG.SYS file to conform to the usage described above.
  1603.  
  1604. ----------------------------------------------------------
  1605.  
  1606.     Message:  RAMDrive: Incorrect DOS version
  1607.  
  1608. Explanation:  RAMDrive requires DOS 2.X or DOS 3.X.  Windows
  1609. 2.1 requires DOS 3.0 or higher.
  1610.  
  1611.      Result:  RAMDRIVE.SYS was not installed.
  1612.  
  1613.    Solution:  Upgrade to DOS 3.0 or higher.
  1614.  
  1615. ---------------------------------------------------------
  1616.  
  1617.     Message:  RAMDrive: I/O error accessing drive memory
  1618.  
  1619. Explanation:  During the set up of the RAMDrive, an error
  1620. was detected in the memory being accessed for RAMDrive.
  1621.  
  1622.      Result:  RAMDRIVE.SYS was not installed.
  1623.  
  1624.    Solution:  Run the memory test for the memory on which
  1625. you were attempting to install a RAMDrive.
  1626.  
  1627. ======================================================
  1628. OTHER MESSAGES
  1629. ======================================================
  1630.  
  1631.     Message:  Microsoft RAMDrive version Y.YY virtual disk
  1632. [drive:]
  1633.  
  1634. Explanation:  RAMDrive Header message.  Y.YY is the version
  1635. of RAMDrive; [drive:] is the DOS drive letter assigned to
  1636. this RAMDrive.
  1637.  
  1638.               NOTE:  On DOS 2.X the "virtual disk d:" part
  1639. of this message will not be printed.
  1640.  
  1641. --------------------------------------------------------
  1642.  
  1643.     Message:  Disk size: x k
  1644.               Sector size: x bytes
  1645.               Allocation unit: x sectors
  1646.               Directory entries: x
  1647.  
  1648. Explanation:  This message tells how many kilobytes of
  1649. memory were assigned to the RAMDrive, how many bytes there
  1650. are in a sector, how many sectors there are in an allocation
  1651. unit, and how many root directory entries there are
  1652. (including the volume label).
  1653.  
  1654. ======================================================
  1655.                   END OF RAMDRIVE.TXT
  1656. ======================================================
  1657.  
  1658. Other observations:
  1659.  
  1660. Here are articles from the Microsoft Knowledgebase:
  1661.   
  1662.   Title: RAMDRIVE.SYS Problems Loading in Conventional
  1663.   Memory
  1664.   Document Number: Q35758
  1665.   Product Name: Microsoft Disk Operating System
  1666.   Product Version:  4.00
  1667.   Operating System: MS-DOS
  1668.   
  1669.   Summary:
  1670.   
  1671.   If either the /A or /E switch is not specified when
  1672.   running RAMDRIVE.SYS (i.e., there is no extended or
  1673.   expanded memory available) RAMDrive will use conventional
  1674.   memory to emulate a virtual disk drive. There is a problem
  1675.   on some 80286 and 80386 systems that will prevent RAMDrive
  1676.   from loading in
  1677.   conventional memory. Most people don't use RAMDrive in
  1678.   conventional memory, since this area of memory is so
  1679.   scarce. This article describes this problem, and how
  1680.   RAMDrive has been changed to eliminate this problem.
  1681.   
  1682.   More Information:
  1683.   
  1684.   When RAMDrive is specified to load in conventional memory,
  1685.   it tries to use additional (normally unused) memory
  1686.   outside the 640K area, if available, to reduce the amount
  1687.   of conventional memory used. RAMDrive makes a call to ROM
  1688.   BIOS interrupt 12h, Memory Size Determination. This
  1689.   interrupt returns the amount of conventional memory in
  1690.   kilobytes that the system has. RAMDrive looks for
  1691.   additional memory by starting at the location pointed to
  1692.   by ROM BIOS interrupt 12h, moving up to the address A000h,
  1693.   where the video adapter memory begins. It tests this by
  1694.   writing to the first two words, then reading the contents
  1695.   of these words. If the write worked successfully, RAMDrive
  1696.   assumes that the entire 1K of memory is usable. Since the
  1697.   minimum size of a RAMDrive is 16K, RAMDrive looks for 16
  1698.   of these 1K areas. If it cannot find them, it exits,
  1699.   giving an insufficient memory error. If RAMDrive finds 16K
  1700.   of usable memory between the top of memory (the area
  1701.   pointed to by ROM BIOS interrupt 12h) and address A000h,
  1702.   the RAMDrive is loaded at this point, thus saving
  1703.   conventional memory.
  1704.   
  1705.   However, this causes problems on some systems. Unlike the
  1706.   conventional IBM PC/XT/AT ROM BIOS releases, which most PC
  1707.   systems are based on, some ROM BIOS manufacturers have
  1708.   random-access memory in this area, but use it as an
  1709.   internal ROM BIOS data area. When RAMDrive is loaded in
  1710.   conventional memory on these systems, the memory test of
  1711.   RAMDrive destroys the contents of RAM in this area, in
  1712.   which case a cold reset of the system is recommended.
  1713.   Another area in which this causes problems is with the IBM
  1714.   (and compatible)
  1715.   PS/2 series of computers. These systems trap ROM BIOS
  1716.   interrupt 12h, returning a value of 1K less. This 1K of
  1717.   memory is used as the Extended BIOS Data Area, which is
  1718.   accessible on these systems by calling ROM BIOS interrupt
  1719.   15H AH=C1h, Return Extended BIOS Data Area Segment
  1720.   Address.
  1721.   
  1722.   Normally, these PS/2 systems don't have any extra memory
  1723.   between the "top of conventional memory" and address
  1724.   A000h. So, when RAMDrive is asked to be installed in
  1725.   conventional memory, it looks for 16K of memory in this
  1726.   area, and when it can't find it, RAMDrive exits with an
  1727.   insufficient memory error.
  1728.   
  1729.   Microsoft has confirmed this to be a problem in Version
  1730.   2.10 of RAMDRIVE.SYS. This problem was corrected in
  1731.   Version 2.12 of RAMDRIVE.SYS, which is included with MS-
  1732.   DOS Version 4.00.
  1733.   
  1734.   Since the PS/2 systems, in addition to some other systems
  1735.   (with a nonconventional ROM BIOS), use memory above the
  1736.   "top of conventional memory," Version 2.12 of RAMDrive no
  1737.   longer attempts to use memory in this area. This problem
  1738.   is not commonly encountered because most people don't
  1739.   attempt to use precious conventional memory to store a
  1740.   RAMDrive. Therefore, the workaround for this problem is
  1741.   not to use RAMDRIVE.SYS in conventional memory on systems
  1742.   that have a ROM BIOS of this type.
  1743.   
  1744.   For more information on PS/2 ROM BIOS information, refer
  1745.   to the reference "IBM PS/2 and PC BIOS Interface Technical
  1746.   Reference," part number 68X2260, available from IBM by
  1747.   calling (800) IBM-PCTB. Another reference that contains
  1748.   similar material is the Microsoft Press book,
  1749.   "Programmer's Quick Reference Series: IBM ROM BIOS," by
  1750.   Ray Duncan, ISBN 1-55615-135-7.
  1751.   COPYRIGHT Microsoft Corporation, 1989.
  1752.   
  1753.   --------------------------------------------------------
  1754.   
  1755.   Title: SMARTDrive and RAMDrive Version Conflicts with MS-
  1756.   DOS 4.01
  1757.   Document Number: Q38636           Publ Date: 21-APR-1989
  1758.   Product Name: Microsoft Windows/286 Retail Product
  1759.   Product Version:  2.10 2.11
  1760.   Operating System: MS-DOS
  1761.   
  1762.   Summary:
  1763.   
  1764.   The following information applies to Windows/286 and
  1765.   Windows/386 Version 2.10 with files dated 9/7/88.
  1766.   
  1767.   The SMARTDRV.SYS and RAMDRIVE.SYS supplied with this
  1768.   release of Windows Version 2.10 will not function with MS-
  1769.   DOS Version 4.01. This malfunction occurs because
  1770.   SMARTDrive's and RAMDrive's version checking will not
  1771.   accept the 4.01 DOS version number.
  1772.   
  1773.   To correct this problem, use the SMARTDRV.SYS and
  1774.   RAMDRIVE.SYS supplied with MS-DOS Version 4.01. These
  1775.   programs provide identical functionality without the
  1776.   version-checking conflict.
  1777.   COPYRIGHT Microsoft Corporation, 1989.
  1778.   
  1779.   ----------------------------------------------
  1780.   
  1781.   Title: Using Windows/286 on the IBM PS/2 Model 30286
  1782.   Document Number: Q37183           Publ Date: 11-APR-1989
  1783.   Product Name: Microsoft Windows/286 Retail Product
  1784.   Product Version:  2.10 2.11
  1785.   Operating System: MS-DOS
  1786.   
  1787.   Summary:
  1788.   
  1789.   To run Windows/286 on the IBM PS/2 Model 30286, you must
  1790.   have Windows/286 Version 2.10 or later, dated 9/7/88 or
  1791.   later.
  1792.   
  1793.   In particular, the Windows utilities RAMDrive, SMARTDrive,
  1794.   and HIMEM.SYS do not function correctly on the Model 30286
  1795.   unless you have the latest revision of Windows/286 Version
  1796.   2.10 or later. Early releases of Windows/286 Version 2.10
  1797.   were not tested on the Model 30286 because the machine was
  1798.   introduced at a later date.
  1799.   
  1800.   If you have an IBM PS/2 Model 30286 and a release of
  1801.   Windows dated prior to 9/7/88, please contact Microsoft
  1802.   Customer Service at (206) 882-8088 for assistance in
  1803.   obtaining an update to Windows/286 Version 2.11.
  1804.   COPYRIGHT Microsoft Corporation, 1989.
  1805.   
  1806.   ------------------------------------------------
  1807.  
  1808.  
  1809. Balancing Everything
  1810.  
  1811. HIMEM.SYS: Use if you have extended memory and Windows/286.
  1812. The only disadvantage would be if you end up losing a great
  1813. deal of Expanded memory in the process. Some memory boards,
  1814. (such as the Intel Above Board Plus) allow you to configure
  1815. the board as part Extended and part Expanded. Some have a
  1816. limited selection of configurations. You may have to
  1817. configure your board with a minimum 512K Extended if you
  1818. want any Extended memory at all. This leaves 448K of
  1819. Extended going unused and not directly usable by
  1820. Windows/286. If you want to use Smartdrive, you can allow it
  1821. to allocate this memory. If you desire more than 448K for
  1822. Smartdrive in this case, configure your Extended memory
  1823. board for more Extended memory.
  1824.  
  1825. Since Smartdrive can install itself in Expanded memory (with
  1826. Windows/286), you will have to decide whether you want the
  1827. benefits of Himem.sys (requiring part of your board to be
  1828. Extended) or to not use Himem.sys (allowing all of your
  1829. memory to be configured as Expanded).
  1830.  
  1831.  
  1832.  
  1833. SMARTDRIVE vs RAMDRIVE:
  1834.  
  1835. However, if you typically access a small number of files
  1836. (such as one major program and maybe one or two data files)
  1837. Ramdrive is probably for you. What you can do is place
  1838. statements in your AUTOEXEC.BAT file to copy these files to
  1839. the Ramdrive. This allows these files to be read from an
  1840. written to very quickly. Note: you will eventually have to
  1841. copy the files to your hard drive before you turn off the
  1842. computer or you will completely lose all changes to those
  1843. files (a reason to avoid copying data files to Ramdrive,
  1844. unless you are carefull!).
  1845.  
  1846. Smartdrive, on the other hand, caches all disk files, and
  1847. will speed up your disk access in general. Therefore, it
  1848. will provide better overall performance than Ramdrive and is
  1849. recommended in most cases over Ramdrive.
  1850.  
  1851.  
  1852. End of Document
  1853.