Non, finalement ce que je croyais avoir trouvé ne va pas.
J'ai passé sous VTI toutes les routines exécutées dans la zone possible du crash (entre le message 'link transmission complete' à la réception de l'app et l'effacement du message).
Le seul truc qui ne pourrait ne pas aller est un fonctionnement tordu du port $700012 d'exécution en flash (la calc crasherait à l'envoi du message CM_INSTALL à l'app installée [ou OO_APP_NOTICE_INSTALL aux autres ?] par la ROM Call 0x428 que j'avais appellée SendInstallMsgs() dans Flash Apps Hider).
Pour vous montrer le comportement complètement bizarre du crash, voilà un des mails du testeur de crash (Matt Smith) que j'avais reçu en Janvier (listapps() retourne les adresses des apps en flash) :
After first sending just the 4 apps, here are the results of the listapps() program:
Calculus Tools: 34A946
CellSheet: 35821E
Finance: 340068
Stats/List Editor: 374B4E
Just to verify that this is the limit, I then sent Sketchpad to the calculator. I got the “Link Transfer Complete” message and a freeze, but no black bar this time. So, I did the usual remove a battery and reset routine. Then I sent Sketchpad first, followed by the other 4 apps in size order from smallest to largest. Here’s what listapps() said this time:
Calculus Tools: 3A42B0
CellSheet: 3B1B88
Finance: 3999D2
Stats/List Editor: 3CE4B8
The Geometer’s Sketchpad: 34006A
At this point I had 900155 bytes of Apps. I tried to send the Polynomial Root Finder, which is only 49KB, and I got the black bar with the “Link Transfer Complete” message at the bottom of the screen. Anyways, I hope this info will be helpful in correcting the problem, and as always, just let me know if you need more testing.
-Matt
PS: Just before I was going to send this email, I found out something rather interesting. I was able to send 987449 bytes of Apps. What I did was send Sketchpad first, then the Spanish Localization, then Finance, then the Polynomial Root Finder, then Calculus Tools, then CellSheet, then Stats/LE. It’s the same idea of transferring the largest app first, then transferring all the others in size order from smallest to largest. I have no idea why this worked. Here is the listapps() info though:
Calculus Tools: 34A946
CellSheet: 35821E
Espanol: 3999CE
Finance: 3A2A74
Polynomial Root Finder: 3AD34C
Stats/List Editor: 3E39B8
The Geometer’s Sketchpad: 34006A
Just to do more testing, I deleted all the apps again, then sent Cabri Geometry (427KB). Afterwards, I tried to send Sketchpad, but I got the same error (message and black bar). So, I pulled a battery and reset. I sent Cabri again, but testing my theory about sending the largest app first, then all others in ascending size order, I decided to try to send ALL the apps I have. So, after Cabri, I sent Spanish Localization, then Finance, then Study Cards, then Polynomial Root Finder, then Calculus Tools, then the Simultaneous Equation Solver, then CellSheet, then Symbolic Math Guide. However, it crashed after that last one. I didn’t get to check the App size on-calc, but without the Math Guide, it should have been 872931 bytes. The Guide would have put it at 1087820 bytes, so maybe this is closer to where Xpand’s limit really is, since earlier I got 987449 bytes of Apps on there. The weird thing is, it seems that you have to send the largest app first, then the others in size order (smallest to largest). And, since it crashed when receiving the Math Guide, I didn’t have a chance to run listapps() that time. So what I’m going to do for now is just send Sketchpad, then Spanish, Finance, CalcTools, CellSheet, and Stats/LE.
This is certainly interesting, hopefully it will help you pinpoint the problem too.
Arg.
Je pensais qu'un bit de $700012 ne fonctionnait pas, mais ce n'est pas ça, ça doit être plus compliqué.