home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / dos / extra / docs / maillist / text / archive.95 / text7211.txt < prev    next >
Encoding:
Internet Message Format  |  1996-03-31  |  7.8 KB

  1. Received: from ftp.ardi.com (ftp.ardi.com [204.134.8.1]) by nacm.com (8.6.10/8.6.9) with SMTP id XAA25285 for <executor@nacm.com>; Sun, 26 Nov 1995 23:21:45 -0800
  2. Received: from gwar.ardi.com by ftp.ardi.com with bsmtp
  3.     (Smail3.1.29.1 #3) id m0tJxtE-0007q2C; Mon, 27 Nov 95 00:22 MST
  4. Received: from beaut.ardi.com by gwar.ardi.com with smtp
  5.     (Smail3.1.29.1 #3) id m0tJxn1-000GPkC; Mon, 27 Nov 95 00:15 MST
  6. Received: by beaut.ardi.com (linux Smail3.1.29.1 #3)
  7.     id m0tJxn0-00027CC; Mon, 27 Nov 95 00:15 MST
  8. Message-Id: <m0tJxn0-00027CC@beaut.ardi.com>
  9. Date: Mon, 27 Nov 95 00:15 MST
  10. From: ctm@ardi.com (Clifford T. Matthews)
  11. To: David Danziger <danziger@chelsea.ios.com>,
  12.         jservat@ozemail.com.au (Juan Carlos Servat),
  13.         =?iso-8859-1?Q?St=E9phane?= Rieppi <s940348@student.ulg.ac.be>
  14. Cc: "'executor@nacm.com'" <executor@nacm.com>
  15. Subject: HyperCard under Executor
  16. In-Reply-To: <01BAB527.94D8D420@ppp-18.ts-1.nyc.idt.net>
  17. References: <01BAB527.94D8D420@ppp-18.ts-1.nyc.idt.net>
  18. Sender: owner-paper@nacm.com
  19. Precedence: bulk
  20.  
  21. Hi Folks,
  22.  
  23. Summary: Use Cmd-Shift-5 to check the "Flush Cache Often" check-box if
  24.          you're having trouble with HyperCard under 1.99p6 and HyperCard will
  25.          run better (but still not perfectly) under 1.99p7.
  26.  
  27. Below are three letters about HyperCard -- two people for whom
  28. Executor crashed when HyperCard was run and one person who suggested
  29. turning on "Flush Cache Often".  Assuming that Executor isn't memory
  30. starved (executor -info should give a hint) or starved for file
  31. descriptors (config.sys should have FILES=30 or more), then Executor
  32. *should* mostly run HyperCard 2.1 and 2.2, at least with "Flush Cache
  33. Often" turned on, as Stephane suggested.
  34.  
  35. Once HyperCard is running, it may be possible for you to turn "Flush
  36. Cache Often" (FCO) back off and see a good speed improvement, although
  37. there's no guarantee that doing so won't result in a sudden crash.  If
  38. you're just browsing a stack and the crash won't result in loss of
  39. data, it's worth trying.
  40.  
  41. BEGIN RIDICULOUSLY TECHNICAL EXPLANATION (but there's no *simple* explanation)
  42.  
  43. Executor is as fast as it is because it takes sets of motorola 68k
  44. instructions and translates them into Intel x86 instructions.
  45. Executor then remembers the translated instructions and uses them
  46. whenever it is told to run the original, untranslated 68k
  47. instructions.  This works very well until the memory that had the
  48. original instructions is changed.  At that point, Executor needs to
  49. know that the memory has been changed so it can throw away the
  50. translated instructions that no longer match the now changed m68k
  51. instructions.
  52.  
  53. *Luckily* the mc68040 has an instruction cache that is similar in
  54. theory to what I just described, so whenver *any* program changes
  55. memory that may contain instructions, the program needs to tell the
  56. mc68040 to flush the cache.  We just watch for the cache flush
  57. instruction and use that as a hint that we should check to see if any
  58. of our translated code needs to be thrown away.
  59.  
  60. Internally there are cases where Executor itself needs to modify
  61. memory that may contain instructions.  In this case, since Executor is
  62. doing the modifications, we know exactly which ranges of memory might
  63. need to be retranslated, so Executor can quickly examine the memory
  64. that is being changed, rather than all of memory.
  65.  
  66. Here's the tricky part.  Some programs rely on the side effect that
  67. some Operating System calls have that results in the cache being
  68. flushed.  Since a total cache flush is so time consuming, Executor
  69. normally does the limited range cache flushing when the cache flush is
  70. an implicit flush and Executor knows exactly which locations have
  71. changed.  But poorly written, or excessively tricky programs may count
  72. on the entire cache being flushed, so we provide the Flush Cache Often
  73. check-box so you can make Executor do the time consuming total cache
  74. flushes.
  75.  
  76. Example: A program alters instructions at in the range 0x1200 to
  77. 0x1300.  Normally it would then need to explicitly tell the processor
  78. to either flush things in that range or flush the entire cache, but
  79. instead, since the program continues, knowing that before those
  80. instructions are ever accessed again, a disk buffer will be read into
  81. memory location 0x2500 to 0x2700, and even though these locations
  82. don't intersect, the "tricky" program could count on (perhaps
  83. inadvertantly) the disk read process flushing the entire cache.
  84.  
  85. Without FCO enabled, Executor will do the disk read, notice that
  86. locations 0x2500 through 0x2700 have been modified, look to see if
  87. there is any code in that memory range and discard remembered
  88. translations that came from that range of memory.  However, the memory
  89. locations between 0x1200 and 0x1300 have never been examined, so the
  90. next time a subroutine at location 0x1200 is called, the old, outdated
  91. translation is used rather than the new code.
  92.  
  93. With FCO enabled, when the disk read is done, Executor checks *all* of
  94. the memory that might contain code and checks for any mismatches and
  95. discards the mismatches it finds.  This is considerably slower and is
  96. rarely needed.  Off the top of my head, Lemmings and occasionally
  97. HyperCard are the only two apps that I know of that do this.
  98.  
  99. END RIDICULOUSLY TECHNICAL EXPLANATION
  100.  
  101. In other HyperCard news, as I was trying out HyperCard 2.2, I noticed
  102. that the appointment book stack would cause Executor to die because it
  103. used an unimplemented trap.  The traps that HyperCard 2.2 uses are all
  104. part of Apple's Internationalization code which we won't support in
  105. Executor 2.  However, I put in *enough* support so that particular
  106. stack no longer crashes, but it still has a number of fairly obvious
  107. problems associated with dates and times.  These mods will be in
  108. 1.99p7.
  109.  
  110. I can't estimate when 1.99p7 will be out because the holidays and our
  111. new e-mail topology and the newsgroup gateway have had us tied up for
  112. the last week and will continue to tie us up for a little longer.
  113.  
  114. --Cliff
  115. ctm@ardi.com
  116.  
  117.  
  118. >>>>> "David" == David Danziger <danziger@chelsea.ios.com> writes:
  119.  
  120.     David> I just tried to run a HyperCard Player 2.2 with E/D 1.99p6
  121.     David> under Windows 95. Executor GPF'd, and gave me the error:
  122.     David> General Protection Fault at eip=008f0327 eax=002fbdb0
  123.     David> ebx=002c008b ecx=001f1a20 edx=009304a8 esi=20040036
  124.     David> edi=008b2f3a ebp=001a9cd0 esp=001ed67c cs=00a7 ds=00b7
  125.     David> es=00b7 fs=00e7 gs=00d7 ss=00b7 Call frame traceback EIPs:
  126.     David> 0x008f0327 If anyone has a suggestion, please tell me.
  127.     David> Thank you very much-
  128.  
  129.     David> C:\>David
  130.  
  131. >>>>> "Gonzalo" == Juan Carlos Servat <jservat@ozemail.com.au> writes:
  132.  
  133.     Gonzalo> Hello.. I got HyperCard and i'm trying to install it and
  134.     Gonzalo> it wouldn't work..  it installed OK but it doesn't run!
  135.  
  136.     Gonzalo> Any ideas?
  137.  
  138.     Gonzalo> Regards, Gonzalo
  139.  
  140. >>>>> "Stephane" == Rieppi  <iso-8859-1> writes:
  141.  
  142.     Stephane> At 22:53 24/11/1995 +1100, Juan Carlos Servat wrote:
  143.     >> Hello.. I got HyperCard and i'm trying to install it and it
  144.     >> wouldn't work..  it installed OK but it doesn't run!
  145.     >> 
  146.     >> Any ideas?
  147.     >> 
  148.     >> Regards, Gonzalo
  149.     >> 
  150.     Stephane> Try this: the Flush Cache Often switch in the control
  151.     Stephane> panel (shift+alt+5) should be on (HC player runs quite
  152.     Stephane> well on my 486DXII-80 with 8 megs and Executor/Dos
  153.     Stephane> 1.99p6, even if it is sometimes slow).
  154.  
  155.     Stephane> BTW, Cliff, Mat & co, I know this switch must be
  156.     Stephane> activated to run HC, but can you explain what it changes
  157.     Stephane> actually? Is there a way to avoid this huge slowdown?
  158.  
  159.     Stephane> Cheers,
  160.  
  161.     Stephane> ------------------------------ Stephane Rieppi, Law
  162.     Stephane> student, Universite de Liege, Belgique.
  163.     Stephane> s940348@student.ulg.ac.be ------------------------------
  164.  
  165.  
  166.