"Undocumented Features of ToolBook"

Hold Parameter causes GPF

Cc: abulka@empire.com.au
Date: Thu, 18 May 1995 13:10:23 +1000
From: abulka
Subject: HOLD parameter causes GPF - follow up
To: support@asymetrix.com
Essentially the bug occurs when you play a video with sound with the HOLD parameter, then play an audio, then playing another video (with or without sound). You finish up with a GPF.

This is obviously related to the first variation (strain?) of this bug, which also seems to be affected by the HOLD parameter. I include the thread of our discussions over the first bug as an addendum.

To REPRODUCE the second strain of this bug, simply follow similar steps as I described for the first strain, viz:

  1. Create a new book
  2. Create a stage, name it "X"
  3. Create THREE clips out of some existing media you have lying around. One clip must be video with sound in it - call this clip "V1". The other clip can be any video - call this clip "V2". The other clip is just a very short audio - call this clip "A"
  4. Create a button and paste in the following script:
to handle buttonClick
	-- Play video 1
	mmOpen clip "V1"
	  mmYield; mmYield; mmYield; mmYield
	mmPlay clip "V1" in stage X wait    -- Adding HOLD will crash the app
	  mmYield; mmYield; mmYield; mmYield

	-- Play an audio clip
	mmplay clip "A" autoclose wait
	  mmYield; mmYield; mmYield; mmYield
	
	-- Play video 2
	mmOpen clip "V2"
	  mmYield; mmYield; mmYield; mmYield
	mmPlay clip "V2" in stage X wait
	  mmYield; mmYield; mmYield; mmYield

	mmClose clip "V2"
	  mmYield; mmYield; mmYield; mmYield
	mmClose clip "V1"
	  mmYield; mmYield; mmYield; mmYield
end
P.S. Use the attached book to save yourself some work, if you like.
P.P.S. You must modify the code above and add the HOLD paramter in order to generate the GPF.

PLEASE PLEASE PLEASE solve this bug and get a patch out for MMTB3a, the way you are doing with the CBT edition. It has been 2 months and I have heard nothing. This bug is not esoteric, and I plan to warn the world about it over the Internet and Compuserve if the situation is not remedied in due course. I urge you to treat this with a sense of urgency. MM Toolbook should not GPF so easily!!!


ADDENDUM - Internet thread discussing the FIRST strain of this bug
> >From: abulka
> >To: Multiple recipients of list TOOLB-L
> >Cc: support
> >Subject: How to crash MTB30a  Tip#1
> >Date: Monday, March 27, 1995 14:22
> >
> >It seems that if you play an audio clip which contains a "notify self" just
> >after a video clip (with sound) has played, you will GPF when you close
> >the video clip.
> >The only way to avoid the crash is to close the video clip *before* playing
> >the audio clip, or alternatively, avoid closing the video clip altogether.
> >
> >TO REPRODUCE (easy)
> >1. Create a new book
> >2. Create a stage, name it "X"
> >3. Create TWO clips out of some existing media you have lying around.
> >    One clip must be video with sound in it - call this clip "A".
> >    The other clip is just a very short audio - call this clip "B"
> >4. Create a button and paste in the following script:
> >
> >-----------------------
> >to handle buttonclick
> >        AA = clip "A"  -- video clip (needs to contain audio)
> >        BB = clip "B"  -- audio clip, looped as background sound
> >
> >        mmOpen AA
> >        mmYield; mmYield; mmYield; mmYield
> >        mmOpen BB
> >        mmYield; mmYield; mmYield; mmYield
> >
> >        mmPlay AA in stage X hold wait          -- PLAY VIDEO "AA"
> >        mmYield; mmYield; mmYield; mmYield
> >
> >        mmPlay BB notify self           -- TRIGGER background sound "B"
> >        mmYield; mmYield; mmYield; mmYield
> >
> >        mmClose AA                              -- CLOSE VIDEO "AA"
> >        mmYield; mmYield; mmYield; mmYield
> >end
> >
> >to handle mmNotify pClip, pCommand, pResult
> >        if pClip is clip "B"
> >                mmPlay clip "B" notify self     -- LOOP background sound
> >        end
> >end
> >-----------------------
> >
> >5. NOW MAKE SURE YOU SAVE.  Then switch to reader mode and click the
> >button to run.  You should get a GPF after the second playing of clip 
> "lobby".
> >
> >OVERVIEW & SOME THOUGHTS
> >  NO CRASH - simple no crash senario.  Playing a video A in stage X.
> >        mmOpen A
> >        mmPlay A in stage X hold wait   -- PLAY VIDEO "A"
> >        mmClose A                       -- CLOSE VIDEO "A"
> >
> >  CRASH - adding a play of an audio before closing the video clip causes 
> GPF
> >        mmOpen A
> >        mmPlay A in stage X hold wait   -- PLAY VIDEO "A"
> >        mmPlay B notify self            -- *** this here cause the bug
> >        mmClose A                       -- CLOSE VIDEO "A"
> >
> >  NOTE - the video close command triggers the GPF, comment
> >         it out to avoid error.
> >        mmOpen A
> >        mmPlay A in stage X hold wait   -- PLAY VIDEO "A"
> >        mmPlay B notify self            -- start a background looping sound
> >        mmClose A                       -- *** leave this out to avoid GPF
> >
> >-----------------------
> >Can someone figure out why this simple code GPF's?  The bug does not occur
> >in MTB30 only in MTB30a (though the MTB30 version does crash eventually
> >in a similar way)
> >
> >-Andy Bulka
> >
> 
> Subject: RE: How to crash MTB30a  Tip#1
> Date: Tue, 28 Mar 95 16:34:00 PST
> 
> This is very interesting.  I get it to fail as well.  I am not sure what is 
> going on.  I tried everything you tried.  It does seem that only a few very 
> minor changes will prevent it from happening, but I am not sure what the 
> exact source of the bug is.  I will find out though and see what we can do 
> about it.
> 
> Rob Fink
> Asymetrix
> ----------
Thanks for the reproduce case. I will pass it on to Development here at Asymetrix so they can fix the problem for the future. Now for the work around. Remove the hold parameter from the mmPlay AA... line. With that in the line I got the GPF. Once I removed it the error went away.

--Here is the script I used successfully.

to handle buttonclick
        AA = clip "A"  -- video clip (needs to contain audio)
        BB = clip "B"  -- audio clip, looped as background sound
 
        mmOpen AA
        mmYield; mmYield; mmYield; mmYield
        mmOpen BB
        mmYield; mmYield; mmYield; mmYield
 
        mmPlay AA in stage "X" wait          -- PLAY VIDEO "AA"
        mmYield; mmYield; mmYield; mmYield
 
        mmPlay BB notify self           -- TRIGGER background sound "B"
        mmYield; mmYield; mmYield; mmYield
 
        mmClose AA                              -- CLOSE VIDEO "AA"
        mmYield; mmYield; mmYield; mmYield
end
 
to handle mmNotify pClip, pCommand, pResult
        if pClip is clip "B"
                mmPlay clip "B" notify self     -- LOOP background sound
        end
end
Again thanks for the reproduce case.
I hope this helps!

Dave Kester
Asymetrix Developer Support

Back to Index

Autonavigation Problem

From makaiser@rs6000.cmp.ilstu.eduMon Aug  7 07:46:31 1995
Date: Fri, 4 Aug 1995 19:58:38 -0500 (CDT)
From: Mark Kaiser 
To: brianp@u.washington.edu
Subject: But in CBT
I reported a problem with the CBT "automatic navigation" to Asymetrix on about 7/25.

Jeff Ayars responded that it was a bug and that he would post it to the listserv -- so far no response there. He also indicated that they were working on a patch.

In "automatic navigation" one is suppose to be able to move from one book to the next 'seamlessly'. However, it doesn't work if the modules (i.e., books) were added to the list in an order different from the navigation order. In other words, the "earlier" "later" indicators don't seem to work.

Thus, if you loaded books a.tbk, b.tbk, c.tbk in that order, but want to run them b, a, c, you can't, even after rearranging them in b, a, c order in the module list. Hope this helps someone.

Mark Kaiser	(makaiser@ilstu.edu)		tel: 309-438-7856
4300 Foreign Languages, Illinois State U.	fax: 309-438-8038
Normal, IL 61790-4300				dpt: 309-438-3604
Back to Index

Subject: Re: Using CLIP, Importing & Exporting

>the problem is I am having a number of problems getting the
>IMPORT CLIP RESOURCE "XXX.CPF" to work, I get a GPE in MTB30.EXC 009F:OCEA
>and when I try the export command EXPORT RESOURCE CLIP "FRED" AS "FRED.CPF" I g
>et the GPE MTB30FLT.DLL 004:1499
>
>Has any one had these problems or am I going about this the wrong way ?
>Thanks for any help

Hello Scott

the 03 08 95 Dave Kester wrote for this problem

"This is a bug in MTB 3.0.  You need to get the mtb30a.exe patch from the
Asymetrix FTP server (ftp:\\ftp.asymetrix.com) or other on-line service
(like Compuserv, AOL, or the Asymetrix BBS.)  For information on contacting
Asymetrix on-line forums and support choose the Technical Support menuItem
from the Help menu in MTB.

Dave Kester"

JJ
*******************************************
JJ Durand
Association pour la Recherche-Developpement
de l'Enseignement Multimedia Informatise
Ecully (France)
email : durand@ardemi.fr
tel : +33 72 29 31 09
*******************************************
Back to Index

firstIdle Problem

SUBMISSION TO PUBLIC TBK BUG LIST
behaviour confirmed on CBT and MTB30a editions.
=========================================================================
Date:         Mon, 5 Jun 1995 12:37:33 +1000
Reply-To:     Asymetrix 'Toolbook' product discussions
Sender:       Asymetrix 'Toolbook' product discussions              
From:         Andy Bulka 
Subject:      firstIdle message sometimes not sent
Comments: cc: support@asymetrix.com
The new MMTB3.0a 'firstIdle' message is not sent when you go to a page from a goto command inside another firstIdle. Why is this?

PAGE 1 SCRIPT:
=============
to handle firstIdle
  go to page 2
end
 
PAGE 2 SCRIPT:
=============
to handle firstIdle
  request "hi there"    -- We never get here??
end

---------------------------------------------------
Andy Bulka  abulka@empire.com.au  ph: +613 593-1389
         "Author Level - and loving it"
  Melbourne TUG (Toolbook User Group) Australia.
---------------------------------------------------
Back to Index

TBDC always problem with "exit" handle

From: Tech Support Internet Account 
To: abulka 
Subject: Re:      TBDC always problem with "exit" handle
Date: Thu, 31 Aug 95 14:23:00 PDT
All references to parent of parent need to be re-written here. It is not a good idea to always assume that the parent of the target has a parent. The case you are running into is one where the target has no parent so the parent of the parent is attempting to get the parent of NULL. One possible solution:

if parent of target <> NULL
     if parent of parent of target = self
          svSysBookExit = TRUE
     end
end

Rob Fink
Asymetrix
 ----------

From: abulka To: Asymetrix 'Toolbook' product discussions Cc: support Subject: Re: TBDC always problem with "exit" handle Date: Thursday, August 31, 1995 12:35PM Yes, I get this error occasionally as well. I don't link in the ODBC stuff often so I haven't followed the matter through to a satisfactory solution. Anybody? > In the exit handle of MTBDC.SBK (sold with TBDC) there is this code : > > to handle exit > ... > if parent of parent of target = self > svSysBookExit = true > end > ... > end > > BUT in a MTB30 app using TBDC, when the exit command is send (to the current > book), parent of target is null so parent of parent => error message ??? --------------------------------------------------- Andy Bulka abulka@empire.com.au ph: +613 593-1389 "Author Level - and loving it" Melbourne TUG (Toolbook User Group) Australia. ---------------------------------------------------
Back to Index

Read-Only font embedding problem

>X-POP3-Rcpt: swittet@path
>Return-Path: TECHSUP@hubble.asymetrix.com
>From: Tech Support Internet Account 
>To: swittet 
>Subject: RE: Trouble with embedded fonts
>Date: Tue, 05 Sep 95 17:28:00 PDT
>Encoding: 39 TEXT
>
>
>There are a number of reported problems with embedded ReadOnly fonts. The 
>problems are not as severe if the target machine has the latest version of 
>GDI.EXE. Machines with Windows 3.11 or Windows for Workgroups or even Word 
>for Windows 6.0 have the latest version of GDI.EXE. However, there is still 
>a problem with opening an application with a readOnly embedded font multiple 
>times. The first time, the font will show up, but if you shut the 
>application down and open it again without exiting Windows, the font will 
>not show up. On machines that have the old version of GDI.EXE, the font will 
>not show up at all.
>
>Rob Fink
>Asymetrix
> ----------
>>From: swittet
>>To: techsup
>>Subject: Trouble with embedded fonts
>>Date: Tuesday, September 05, 1995 4:38PM
>>
>>I am trying to embed a read-only font (Parade) in an MMTB3.0 app.  On some
>>machines (which don't have Parade installed) the font appears as it should,
>>on others it is unreliable.  Some fields show Parade, others default to an
>>installed font.
>>
>>I have been reading the listservs and see comments like "someone at
>>Asymetrix told me that there are problems with GDI.EXE and suggested only
>>using read/write fonts with MMTB."  Another author says "embedding fonts in
>>MMTB3.0 is problematic at best.  Good luck you'll need it..."
>>
>>Can I really expect font embedding to work reliably with read only fonts, 
>or
>>should I stop wasting my time trying?
>>Scott Wittet
>>Program Officer for Communication, Training, and Interactive Multimedia
>>PATH, 4 Nickerson St., Seattle, WA  98109
>>Tel. (206) 285-3500    Fax (206) 285-6619
>>
>>
>>
>
>

Scott Wittet
Program Officer for Communication, Training, and Interactive Multimedia
PATH, 4 Nickerson St., Seattle, WA  98109
Tel. (206) 285-3500    Fax (206) 285-6619
Back to Index


Revised 12/22/95
brianp@u.washington.edu (Brian Parkhurst)
T-301 HSB, SC-72, University of Washington, Seattle, WA 98195
206/616-7435