home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / desktop / d / daspatch / ReadMe < prev   
Encoding:
Text File  |  1994-08-28  |  2.7 KB  |  64 lines

  1.  
  2. Back in the 1993 Special issue, I mentioned a small problem with
  3. DragASprite v 0.03, & Acorn still have yet to release a sofloaded
  4. replacement, for RISC OS 3.1 machines, which fixes this bug.
  5.  
  6. Recall, there is a single faulty instruction in the module which
  7. can screw up initial sprite alignment within its drag box. For top
  8. alignment, the original code uses sprite width in a calculation that
  9. should use height.
  10.  
  11. The resulting error in initial sprite position may only be cosmetic,
  12. but it can be very noticeable when it does occur.
  13.  
  14. I recently wanted to distribute an application which required this bug
  15. be fixed, & although, as described in the December '93 TechForum, I
  16. had patched a single copy of DragASprite, due to copyright
  17. restrictions I couldn't distribute this.
  18.  
  19. The original BASIC routine which I wrote to patch the module could
  20. itself have been distributed, as it was with TechForum, however to
  21. non-programming users it was rather cumbersome, so instead I've
  22. written a short ARM code utility which has the similar effect of
  23. patching the module, but does so only temporarily - upto the next hard
  24. reset - each time it is run.
  25.  
  26. Unlike the former routine which saved the patched module to disc for
  27. manual loading & relied on the user only using it if she did indeed
  28. have the bugged 0.03 version, this one can be executed from an
  29. application's !Run file to automatically patch & reinitialise the
  30. module, if appropriate, such that the end user need know nothing about
  31. what is going on.
  32.  
  33. Most importantly, this code takes much more care to ensure that the
  34. version of DragASprite currently present is this bugged one, before it
  35. makes any modifications, so it should be safe to run on any machine.
  36.  
  37. When run, if there is no version present or it is pre 0.03, no patch
  38. can occur. If it is 0.03 & it still contains the bug, it will be fixed
  39. if possible, whereas if the version is post 0.03, it shouldn't need
  40. fixing & will be left alone.
  41.  
  42. The bugged version is identified by checking the module length, the
  43. specific instruction to be changed, & by performing an OS_CRC on the
  44. whole module.
  45.  
  46. The utility is only 640 bytes long. I've included the source code for
  47. your perusal, in directory 's'.
  48.  
  49. It's usually silent in operation, however if you add the argument
  50. 'verbose' to its command tail, you will get a report on the action
  51. taken, via Wimp_ReportError.
  52.  
  53. Assuming you put DASpatch into your application directory, I suggest
  54. you call it from !Run using something like:
  55.  
  56. SetEval App$DAS3 0
  57. RMEnsure DragASprite 0.04 SetEval App$DAS3 -1
  58. RMEnsure DragASprite 0.03 SetEval App$DAS3 0
  59. If App$DAS3 Then Run <App$Dir>.DASpatch
  60. UnSet App$DAS3
  61. | NB Use
  62. | If App$DAS3 Then Run <App$Dir>.DASpatch verbose
  63. | instead of the similar line above, to get a report on action taken
  64.