home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / hacking / ghzap / !GHZap / !Help < prev    next >
Encoding:
Text File  |  1994-12-28  |  6.4 KB  |  167 lines

  1. GHZap V 1.00
  2. ============
  3.  
  4. By Quintin Parker of Gilbert the Hamster Software
  5. =================================================
  6.  
  7. Ever gone to the shops and happily bought a game for £25, and
  8. then sat down in front of your Acorn, slotted the disc into the
  9. drive, clicked on the icon, and then ... BANG! Your computer
  10. hangs up, and no amount of Escape pressing/Ctrl Break pressing/
  11. smashing the disc drive in with an axe will coax it out of its
  12. coma? Then this proggy is for you.
  13.  
  14. Some extremely naughty programmers, in order to make their
  15. programs run faster, use this call...
  16.  
  17. SYS "OS_UpdateMEMC",64,64
  18.  
  19. ...which makes the computer's memory chip, the MEMC, read the
  20. ROM faster. A400/1, A540, A3010, A3020, A4000, A5000 and Risc
  21. PC owners (and if you own a Risc PC you are a very lucky sod)
  22. can rest assured cos they all have MEMC1a chips, which can cope
  23. with it. But for A3000, A310 and A440 (not A440/1) owners, it's
  24. a different story. Their days are filled with darkness, misery,
  25. dejection. The sun never shines on them and for their computers,
  26. eternal night reigns... To put an end to this sorry state of
  27. affairs, Gilbert the Hamster Software bring you...
  28.  
  29.        GGGGGG   HH    HH  ZZZZZZZZ     AAA     PPPPPP   !!
  30.       GG    GG  HH    HH        ZZ    AA AA    PP   PP  !!
  31.       GG        HH    HH       ZZ    AA   AA   PP   PP  !!
  32.       GG        HH    HH      ZZ    AA     AA  PP   PP  !!
  33.       GG GGGGG  HHHHHHHH     ZZ     AAAAAAAAA  PPPPPP   !!
  34.       GG    GG  HH    HH    ZZ      AA     AA  PP       !!
  35.       GG    GG  HH    HH   ZZ       AA     AA  PP
  36.       GG    GG  HH    HH  ZZ        AA     AA  PP       !!
  37.        GGGGG    HH    HH  ZZZZZZZZ  AA     AA  PP       !!
  38.  
  39. Yes! This thwoggingly wonderful program will stop those nasty
  40. OS_UpdateMEMC calls and inform you in a refined and subdued
  41. manner whenever a horrible program uses one, and rather than
  42. hanging up, crashes out the program with a error. And it's
  43. free!
  44.  
  45. And for users which don't have this problem, it's even better!
  46. You can easily see at a mere glance which programs use
  47. OS_UpdateMEMC and which don't and tell immediately which
  48. programmers are good and which are nasty, horrible and
  49. vindictive! Hurrah! It's thwogging brilliant!
  50.  
  51. Version History
  52. ===============
  53.  
  54. 1.00  28th December 1994
  55.  
  56. Er, yes, moving swiftly on then ...
  57.  
  58. Just how does GHZap do what it does?
  59. ====================================
  60.  
  61. (In other words boring technical info bit)
  62. ==========================================
  63.  
  64. If you are about as computer literate as a muskrat with a
  65. frontal lobotomy please feel free to skip this section.
  66. Otherwise, here goes...
  67.  
  68. Acorn conveniently neglected to provide a software vector that
  69. deals with OS_UpdateMEMC calls, so muggins here had to do
  70. something very silly and naughty and probably Risc PC
  71. incompatible...
  72.  
  73. HE OVERWROTE THE BRANCH INSTRUCTION THAT POINTS TO THE BIT
  74. OF ROM THAT DEALS WITH THE SOFTWARE INTERRUPTS!!
  75.  
  76. Oh no! He didn't! But, mes amis, I did. GHZap is in the form
  77. of a relocatable? relocatoble? relocateble? you know what I
  78. mean type of module and is always present in memory. So when
  79. GHZap loads, it reads the instruction at &0008 (the SWI
  80. branch instruction), decodes the branch into an address
  81. and stores it somewhere, then it makes another branch
  82. instruction using the address of its own SWI handler and
  83. stores that at &0008 instead. Confused? You will be when I
  84. start talking about processor modes. Of course when it's
  85. killed the program reinstates the original address. I hope.
  86.  
  87. Once an SWI is called and the processor plonks itself
  88. involuntarily in my program, the first thing that happens
  89. is all the funny physical memory bits are masked out of the
  90. return address in R14 leaving a logical memory bit, then the
  91. instruction before is got and the SWI bit and the X bit that
  92. guards against errors (they should be so lucky) is masked
  93. out leaving - da-da! - the SWI number. OS_UpdateMEMC's
  94. SWI number is &1A. If it's not &1A then it gets the address
  95. of the OS SWI handler and jumps to it. If it is &1A, the
  96. fun really starts...
  97.  
  98. First the parameters are checked to see if they are 64 and
  99. 64. If they are, then an error service call (no. 6) is
  100. issued using OS_ServiceCall (surprise surprise) and the
  101. error vector is called using OS_CallAVector (surprise
  102. surprise again). Then the return address is got from R14
  103. and then we switch to user mode. This changes R14 to another
  104. address but we still have to go to the first one else if
  105. we go to the second one then we'll be going out of the entire
  106. routine and might be missing something important, like what
  107. the hell all of this means or something.
  108.  
  109. Now. Picture this. A module service call is issued. It's
  110. offered round each of the modules until ... it gets to GHZap!
  111. GHZap checks the error numbers to see if they are the same,
  112. and if they are, the polite and inconspicuous warning is
  113. given ...
  114.  
  115. If you're really interested as to what the hell is going on
  116. I can supply a fully commented (ie. it makes about as much
  117. sense as the above) copy of the source code if you write to the
  118. below address ...
  119.  
  120. How to use GHZap
  121. ================
  122.  
  123. Just double click on the icon. If you want to switch the
  124. protection on or off at any time, use *StopUpdate followed
  125. by ON or OFF, and to see what the current setting is,
  126. use *StopUpdate on its own. If at any time you want to
  127. inquire as to what the polite message is, run the file
  128. UpdateMEMC which is in the application directory
  129. (shift-double click on the icon to get at it) or simply
  130. go into BASIC and type SYS "OS_UpdateMEMC",64,64. To get rid of
  131. the whole damn thing and take up cattle farming in the Outer
  132. Hebrides, type *RMKill GHZap. That's it!
  133.  
  134. Hellos
  135. ======
  136.  
  137. No time for any real hellos, 'cept to Roberto Tyley, Roger
  138. Tharmakulasingam, Naveen Rao, Stephen Moppett, James Caldwell
  139. and to everyone else who has to put up with me on a day to day
  140. basis, to orange and white camper vans everywhere, to
  141. Norman King of Five Star Marketing (plug), to Michael
  142. S.E.Richards of Arcturus PD (plug again) and finally to
  143. Colin Davis for posing for the photo, Robert Lynch for taking
  144. it, Supasnaps for developing it and Gareth Long for scanning
  145. it.
  146.  
  147. And finally ...
  148. ===============
  149.  
  150. This program was also written so that PD libraries across
  151. the globe can have a tricky moral dilemma as to whether to put
  152. it in the 'Utilities' section or 'Novelties' section!
  153.  
  154. Oh yeah, my address ...
  155.  
  156. Quintin Parker
  157. 6 Manor Court Road
  158. Hanwell
  159. London W7 3EL
  160.  
  161. phone (0181) 579 0331 after 5pm on weekdays
  162.  
  163. Bye!
  164. Quintin Parker (age 15)
  165.  
  166. Gilbert the Hamster Software!!
  167. You'll never put a better bit of plastic in your disc drive!!