home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 01e / miscutil.zip / EMSIM.DOC < prev    next >
Text File  |  1986-09-22  |  18KB  |  394 lines

  1.                            EMSimulator
  2.  
  3.  
  4.            An Expanded Memory Simulator for the IBM AT
  5.                         and Compatibles.
  6.  
  7.  
  8.                         By Karlton W. Kam
  9.  
  10.                     Installation/Users Guide
  11.                    Limited Evaluation Version
  12.  
  13.  
  14.            Copyright (c) 1986, Kam & Associates, Inc.
  15.                       All Rights Reserved.
  16.  
  17.  
  18.  
  19.                      Kam & Associates, Inc.
  20.                    3615 Harding Ave. Suite 401
  21.                      Honolulu, Hawaii  96816
  22.                          (808) 737-3647
  23.  
  24.  
  25.  
  26. This  document  and its respective files are a  complete  working 
  27. limited evaluation  version of the EMSimulator. All functions are 
  28. implemented with the exception that simulated Expanded memory can 
  29. not be larger than 256K in size.  Users are allowed to distribute 
  30. this  version  freely as long as it is not modified in  any  way. 
  31. Anyone   who  finds  the EMSimulator  useful  are  encouraged  to 
  32. purchase   the   complete   package   which   included    printed 
  33. documentation and an unrestricted version, which will allow up to 
  34. 8 megabytes of extended memory to be used as expanded memory, for 
  35. only $49.95.   
  36.  
  37. We  at Kam & Associates are sure that you will find this  utility 
  38. very  useful  to any AT or compatible owner.  We  appreciate  any 
  39. comments or suggestions that you may have.
  40.  
  41.  
  42.               Attention AT Extended Memory Owners!
  43.  
  44. Up  until  now,  most AT memory expansion boards such as the  AST 
  45. Advantage,  Qubie  4X4,  Everex RAM 3000,  2500,  and Magic Card, 
  46. Quadboard AT, Compaq 286, Etc, broke the 640K barrier by offering 
  47. Extended Memory (memory above 1 Meg).  Unfortunately, even though 
  48. many users have several megabytes installed and  available,  this 
  49. memory  was  not  usable by most software programs  except  IBM's 
  50. Vdisk.
  51.  
  52. The  EMSimulator  or Expanded Memory Simulator,  bridges the  gap 
  53. between   your  application  software  and  the  AT's  previously 
  54. unusable  Extended  memory.  Now programs such as Lotus  123  v2, 
  55. Symphony v1.1,  Lightning,  Reflex v1.1,  and most L-I-M Expanded 
  56. Memory  compatible software can access up to 8 megabytes of  your 
  57. AT's   extra  memory.   By  removing  the  640K  restriction  and 
  58. limitations of conventional memory,  expanded memory makes  large 
  59. spreadsheets and databases a reality.
  60.  
  61. The  EMSimulator  is  compatible  with the IBM  AT  and  most  AT 
  62. "Clones"  including  Compaq's 286  series.  Installation  of  the 
  63. EMSimulator  is quick and easy requiring only an addition to your 
  64. "CONFIG.SYS"  file  and that extended memory be available via  an 
  65. expansion board as mentioned above.  Compaq 286's and some clones 
  66. already  have extended memory capabilities so  additional  boards 
  67. may  not  be  required!  Contact  us  or  your  dealer  for  more 
  68. information.  
  69.  
  70. At  an Introductory price of only $49.95,  the EMSimulator is  an 
  71. inexpensive  way  to utilize,  maximize,  and enhance  both  your 
  72. hardware and software investment.
  73.  
  74.  
  75.           Orders Only:               Information/Orders  
  76.      (800)821-5226 Ext. 435            (808)737-3809
  77.  
  78.  
  79.                      Kam & Associates, Inc.
  80.                   3615 Harding Ave.  Suite 401
  81.                      Honolulu, Hawaii  96816
  82.  
  83.  
  84.  
  85.  
  86.  
  87.          Commonly asked questions about the EMSimulator.
  88.  
  89.  
  90. - Expanded and Extended memory. How do they differ?
  91.  
  92. Expanded  memory  has  been  developed  due  to  the  limited  (1 
  93. megabyte)  addressing  capability  of  the  8088  CPU.   Software 
  94. developers  at Lotus,  Intel,  and Microsoft have designed a bank 
  95. switching scheme called expanded memory specifications,  or  EMS. 
  96. By  using the EMS scheme,  any 8088 or 80286 processor can access 
  97. up to 8 megabytes of memory,  but at only  64K at any given time. 
  98.  
  99. Since  the  80286 CPU can address up to 16  megabytes  of  memory 
  100. directly,  Extended memory is any memory located above the normal 
  101. 1 megabyte boundary.  Even though this memory  can be as large as 
  102. 15 megabytes,  few programs can take advantage of it, as they and 
  103. the  current  DOS are designed to operate within the  1  megabyte 
  104. addressing limit imposed by the 8088 CPU. This limitation will be 
  105. circumvented with the availability of a new DOS.
  106.  
  107. As  you can see,  these two schemes are very different.  Extended 
  108. memory  is  not really useful at this time but will  be  required 
  109. with the advent of the new "Protected Mode" DOS.  Expanded memory 
  110. will work with existing programs such as Lotus v2,  Symphony 1.1, 
  111. etc.,  but  is  really  designed for the PC and  XT's  8088  CPU. 
  112. Expanded  memory  is just a stop gap measure when implemented  on 
  113. the AT's 80286 and will probably not be supported by the new DOS.  
  114.  
  115.  
  116.  
  117. - When first  turned on, my AT displays that there  is  2048K  of 
  118. memory  available.  Lotus  123  is supposed to support  up  to  4 
  119. megabytes  of  memory but shows less that a  400K  workspace.  Is 
  120. something wrong?
  121.  
  122. If your AT counts to over 640K when turned on,  you have Extended 
  123. memory installed.  Lotus 123 version 2 supports up to 4 megabytes 
  124. of  Expanded memory which is different from your Extended memory. 
  125. By using the EMSimulator,  your additional memory above 640K  can 
  126. be turned into Expanded memory and will be available to Lotus 123 
  127. v2 or any EMS compatible program.
  128.  
  129.  
  130.  
  131. - I own a Compaq 286 which my dealer claims can be increased to 
  132. up to 2 megabytes. Can the EMSimulator be utilized?
  133.  
  134. Yes,  the  Compaq  286 can be easily upgraded to 2  megabytes  of 
  135. memory by simply replacing the 64K RAM chips with 256K chips  and 
  136. adjusting a few switches. This extra memory then becomes Extended 
  137. memory  to the 80286 processor.  As mentioned above,  this memory 
  138. can be made to simulate Expanded memory with the EMSimulator  and 
  139. will   then  be  available  to  programs  that  support  the  EMS 
  140. specification.  This is also true for many AT "Clones" that claim 
  141. to have 1 megabyte or more already installed.
  142.  
  143.  
  144.  
  145. - The EMSimulator seems like a product that can be useful to many 
  146. AT owners. Are there any drawbacks?
  147.  
  148. A few,  First,  because the EMSimulator is a software program, it 
  149. resides  in  conventional  memory and  requires  about  67K  when 
  150. operational.  Secondly,  the  EMSimulator  is an Expanded  Memory 
  151. Simulator.  Being so, it may not be as fast as actually having an 
  152. Expanded  memory  board  installed.  The  performance  will  vary 
  153. depending  on your application program.
  154.  
  155. Both  these issues have been addressed during the development  of 
  156. the EMSimulator.  The EMSimulator is written totally in  assembly 
  157. language  so  as to be as compact and as fast as possible.  As  a 
  158. result,  the EMSimulator requires less than 7K of disk space  and 
  159. is virtually transparent to the application program and user.
  160.  
  161.  
  162.  
  163. - How do I use the EMSimulator with my software?
  164.  
  165. If  your  program utilizes the Lotus-Intel-Microsoft EMS  version 
  166. 3.2 specifications,  it will probably work with the  EMSimulator. 
  167. Installation  of the EMSimulator requires only a simple  addition 
  168. to  your "CONFIG.SYS" file.  Once installed,  the AT will load  a 
  169. small  3K device driver called EMSIM.SYS into memory each time it 
  170. is turned on.  This driver allocates any Extended memory that  is 
  171. not  already used by IBM's VDISK.SYS utility for use as Simulated 
  172. Expanded memory.  By using the included EMSTAT.COM  program,  the 
  173. EMSimulator  device  driver can be enabled and disabled  whenever 
  174. Expanded  memory is needed.  When enabled,  an additional 64K  of 
  175. conventional  memory  is  used to store the  simulated  64K  page 
  176. buffer.  This memory can be reclaimed without rebooting by simply 
  177. disabling the driver with the EMSTAT.COM program. EMSTAT.COM also 
  178. displays useful and interesting information about the performance 
  179. and status of the EMSimulator device driver and can be invoked at 
  180. any time.
  181.  
  182.  
  183.  
  184.           Installation and Operation of the EMSimulator  
  185.  
  186.  
  187. Step 1: Installation of EMSIM.SYS device driver.
  188.  
  189. The EMSimulator consists of two small program   files,  EMSIM.SYS 
  190. and EMSTAT.COM.  Together,  these two file occupy less than 7K of 
  191. disk space.  Copy these two files, EMSIM.SYS, and EMSTAT.COM onto 
  192. the root directory of your hard disk.
  193.  
  194. EMSIM.SYS  is a device driver that is installed in the CONFIG.SYS 
  195. file. To do this, add the line: 
  196.      
  197.                         DEVICE=EMSIM.SYS
  198.  
  199. This  command  should  be placed first in  the  CONFIG.SYS  file. 
  200. Reboot  the  system.  This driver will be loaded  each  time  the 
  201. computer is booted. It will use about 3K of conventional memory.
  202.  
  203. In its normal state,  any  extended memory up to 8 megabytes will 
  204. be  allocated  for  simulated expanded memory  by  the  EMSIM.SYS 
  205. device  driver.  Users  who  wish  to also create  a  Ramdisk  in 
  206. extended  memory  may do so by using IBM's VDISK  device  driver. 
  207. IBM's VDISK driver MUST be used and it MUST be placed before  the 
  208. EMSIM.SYS  driver  in  the CONFIG.SYS file so that the  VDISK  is 
  209. installed first.  Compaq owners should note that even though  the 
  210. MS-DOS  diskette contains a VDISK driver,  it is not the same  as 
  211. IBM'S VDISK and will not work. Any remaining memory not allocated 
  212. to VDISK will be used for simulated expanded memory.
  213.  
  214. At  this  point,  the EMSIM.SYS device driver is loaded  but  not 
  215. activated. 
  216.  
  217.  
  218.  
  219. Step 2: Enabling the EMSimulator device driver. 
  220.  
  221. By  using the EMSTAT.COM program,  the EMSimulator can be enabled 
  222. and  disabled  when  needed.  Before  using  any  EMS  compatible 
  223. software, execute the following command:
  224.  
  225.                             EMSTAT E
  226.  
  227. This  will enable the Expanded memory simulator and  will  allows 
  228. your  application  programs  to utilize the  extended  memory  as 
  229. expanded  memory.  When enabled,  an additional 64K of memory  is 
  230. used so your conventional memory size will be slightly smaller. 
  231.  
  232. An  alternate  method for enabling the EMSimulator driver is  the 
  233. command: 
  234.  
  235.                            EMSTAT 0-9
  236.  
  237. This will Activate an audible click every time a  bank switch  is 
  238. made.  This function lets you 'hear' the EMSimulator in action. A 
  239. zero  will  turn  this function off while a 9  will  produce  the 
  240. loudest tone.  This command will also enable the device driver if 
  241. it is not already enabled.  
  242.  
  243. The  EMSimulator driver can be disabled at anytime and the 64K of 
  244. memory released. This is done by the command: 
  245.  
  246.                             EMSTAT D
  247.  
  248. This  command  will  not  function  if  another  memory  resident  
  249. programs   is  installed   after   the  EMSimulator  driver   was 
  250. enabled. 
  251.  
  252.  
  253.  
  254. Step 3: Using the EMSimulator.
  255.  
  256. Once  activated,  the   EMSimulator will  emulate the  L-I-M  EMS 
  257. version 3.2 specification. This allows programs such as Lotus 123 
  258. v2.0,  Symphony v1.1, Reflex v1.1, etc.  to be used. The Expanded 
  259. Memory  Simulator  statistics  can  be  viewed  at  any  time  by 
  260. executing  the EMSTAT program without any parameters.  This  will 
  261. display information on the current status of the EMSIM driver. 
  262.  
  263.  
  264.                 Summary of EMSimulator commands.
  265.  
  266.    EMSTAT      Displays status information 
  267.    EMSTAT E    Enables device driver
  268.    EMSTAT D    Disables device driver
  269.    EMSTAT 0-9  Toggles audible speaker click 
  270.                and enables device driver
  271.  
  272. It  is  recommended  that the EMSimulator be  enabled  only  when 
  273. necessary  and  after  all  memory resident  programs  have  been  
  274. loaded  unless the resident programs themselves require  EMS.  By 
  275. enabling  the  EMSimulator,  which itself is  a  memory  resident 
  276. program,  last,  the 64K memory required can be released when the 
  277. driver is disabled.  This can be accomplished by the use of batch 
  278. files.  For  example,  when using Lotus 123 version 2,  the batch 
  279. file LOTUSEXP.BAT can be created as follows:
  280.  
  281. EMSTAT E
  282. LOTUS
  283. EMSTAT D
  284.  
  285. This  will  automatically  enable  and  disable  the  EMSimulator 
  286. whenever Lotus 123 is executed.
  287.  
  288.  
  289.           Hints and Advice about using the EMSimulator.
  290.  
  291. When using the EMSimulator with Ready!, by Living Videotext Inc., 
  292. version 1.00c or greater must be used.   Ready! must be the first 
  293. program   loaded   into   expanded  memory   and    the   program 
  294. 'RDYLOAD.COM',  which  is included on the  EMSimulator  diskette,   
  295. must be executed immediately after Ready! is loaded. This program 
  296. resolves an obscure error when  Ready! is loaded and allows other 
  297. EMS  compatible programs to be executed concurrently with Ready!.  
  298. Also,  make sure the the file 'READY.AB', which is on your Ready! 
  299. diskette,  is on the same directory before executing Ready! as it 
  300. is needed to utilize Expanded memory.
  301.  
  302. Lotus  123 and Symphony users may notice a slowdown in  execution 
  303. and  movement  within the spreadsheet whenever large  amounts  of 
  304. expanded memory is used.  This is most noticeable after combining 
  305. or  editing large spreadsheets or after sorting large  databases. 
  306. This  is because the memory management scheme  of  Lotus/Symphony 
  307. often   fragments  its  data  putting  contiguous  data  in  non-
  308. contiguous  memory and causing a large number of bank  switch  of 
  309. expanded memory to be required whenever accessed. Saving then re-
  310. loading the workspace will regain its performance.
  311.  
  312. Another   main factor that limits Lotus' memory management scheme 
  313. is  that conventional memory must be used to retain  pointers  to 
  314. data  stored in expanded memory.  This means that even though you 
  315. may have large amounts of expanded memory,  not all of it may  be 
  316. usable  because  conventional  memory will often be  filled  with 
  317. pointers to expanded memory and once full,  will signal a  memory 
  318. error.
  319.  
  320.  
  321.                 Background/Technical information.
  322.  
  323. The  Expanded memory scheme has been developed due to the limited 
  324. (1  megabyte)  addressing capability of the  8088  CPU.  Software 
  325. developers at Lotus,  Intel,  and Microsoft have designed a  bank 
  326. switching  scheme called expanded memory specifications,  or EMS. 
  327. By using the EMS scheme,  any 8088 or 80286 processor can  access 
  328. up to 8 megabytes of memory, but only  64K at any given time. 
  329.  
  330. Since  the  80286  CPU can address up to 16 megabytes  of  memory 
  331. directly,  Extended memory is any memory located above the normal 
  332. 1 megabyte boundary.  Even though this memory  can be as large as 
  333. 15 megabytes,  few programs can take advantage of it, as they and 
  334. the  current  DOS are designed to operate within the  1  megabyte 
  335. addressing limit imposed by the 8088 CPU. This limitation will be 
  336. circumvented with the availability of a new DOS.
  337.  
  338. As you can see,  these two schemes are very  different.  Extended 
  339. memory  is  not really useful at this time but will  be  required 
  340. with the advent of the new "Protected Mode" DOS.  Expanded memory 
  341. will work with existing programs such as Lotus v2,  Symphony 1.1, 
  342. etc.,  but  is  really   designed for the PC and XT's  8088  CPU. 
  343. Expanded  memory is just a stop gap measure when  implemented  on 
  344. the AT's 80286 and will probably not be supported by the new DOS.  
  345.  
  346. The  EMSimulator  has been developed to "Bridge the Gap"  between 
  347. these two different memory schemes.  By following and  simulating 
  348. the  L-I-M EMS 3.2 specification,  most programs that support  it 
  349. can now be used successfully with the AT's Extended memory. 
  350.  
  351. Because the EMSimulator simulates the Expanded memory scheme,  it 
  352. will  not and cannot function as fast as a true EMS bank switched 
  353. board.  Depending  on your application program and the number  of 
  354. bank  switches  it requires,  the performance may or may  not  be 
  355. affected.  Throughout its entire development,  careful  attention 
  356. has  been  used  to  assure  that the  EMSimulator  will   be  as 
  357. transparent and as fast as possible.
  358.  
  359. The  EMSimulator  consists of over 1500 lines of  80286  assembly 
  360. language code which when assembled, results in two files that are 
  361. about  7000  bytes in length.  Assembly  Language  allows  direct 
  362. access  to  the 80286 CPU and the AT's hardware and  architecture 
  363. when executing.  This assured the most efficient and compact code 
  364. in the end as assembly is native language of the 80286 CPU and no 
  365. intermediate translations are needed when executing.
  366.  
  367. The  80286 CPU has two modes of operation,  Real Mode,  which  is 
  368. designed  to emulate the 8088 CPU.  This mode is what the  AT  is 
  369. usually  running in thus the usual 640K memory  limit.  Protected 
  370. Mode  allows  the  80286 to access up to 16 megabytes  of  memory 
  371. although this  mode is not supported by very many programs so the 
  372. extra memory is usually not used.
  373.  
  374. As  mentioned above,  the L-I-M EMS scheme has been  designed  to 
  375. allow  access to up to 8 megabytes of memory to any program  that 
  376. supports it.  This memory is available in 16K pages which 4 pages 
  377. can  be  access  at any given time through a "Window"  in  the  1 
  378. megabyte memory map of the 8088 or the 80286 in Real mode. 
  379.  
  380. When operating, the EMSimulator allows EMS compatible programs to 
  381. access to up to 8 megabytes of Extended memory.  This is done not 
  382. by executing programs in its Protected mode, but by automatically 
  383. moving  memory  from its Extended memory to below the 1  megabyte 
  384. area where it is accessible to programs through the 64K "Window". 
  385. This  memory  move is done as quickly as  possible  whenever  the 
  386. executing   program calls for  a different page to be mapped into 
  387. the  window.  On  EMS compatible memory boards,  this  is  mostly 
  388. handled  through  hardware thus the mapping  done  very  quickly. 
  389. Because the EMSimulator uses existing memory and does not require 
  390. a special memory board, blocks of memory are moved from  Extended 
  391. memory and into the "Window" by the CPU. 
  392.  
  393.  
  394.