home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / ZCPR33 / A-R / RCPTRGGR.TXT < prev    next >
Text File  |  2000-06-30  |  4KB  |  91 lines

  1. This message was posted on Richard Jacobson's Lillipute RCPM in 
  2. Chicago.  The information will be useful to anyone who uses RCP's 
  3. that require a "trigger key."
  4.  
  5.  
  6. Msg #6344 posted 06/26/87 at  6:21 am by Carson Wilson
  7. To: ALL USERS     About: ARUNZ RCP Alias (85 lines)
  8.  
  9.        Using ARUNZ to Safely Load "Trigger Key" RCP's
  10.                                                         25 Jun 87
  11.  
  12. Some very useful ZCPR Resident Command Packages (RCP's) such as 
  13. Arnold Bailey's Z3KEY.RCP, Paul Pomerleau's SLTRAP.RCP, or my 
  14. CALC.RCP, temporarily alter your system's BIOS to monitor for a 
  15. "trigger key."  The reason it is necessary to alter the lowest 
  16. level of your operating system is so that these RCP's may be 
  17. activated even from within application programs, which normally 
  18. take over all console input/output.
  19.  
  20. When using RCP's which monitor for trigger keys, it is imperative 
  21. that trigger-key checking be turned OFF before removing the RCP.  
  22. This returns control of console input to the BIOS of your 
  23. computer.
  24.  
  25. Normally, it is the responsibility of the user to ensure that 
  26. trigger key checking is turned off before removing these RCP's.  
  27. This is done by giving commands to the RCP from the operating 
  28. system prompt, and interpreting the results to ensure that 
  29. trigger key detection is off.
  30.  
  31. There is an easier and safer way, however.  ARUNZ's ability to 
  32. examine memory with the "$M" parameter allows automated checking 
  33. of whether or not the BIOS has been altered.  The $M parameter in 
  34. ARUNZ alias scripts returns the hex value of a byte at a given 
  35. memory address.  By comparing current hex values with normal 
  36. values in the BIOS, ARUNZ can tell whether or not it is safe to 
  37. remove an RCP which uses trigger key detection.
  38.  
  39. Here is the ARUNZ.COM alias for my system which checks for 
  40. trigger-key detection before changing RCP's:
  41.  
  42.  RCP if ex load:$1.rcp;if $ME10B=E2;ldr load:$1.rcp;fi;fi;h
  43.  
  44. The alias name is "RCP". It is called by specifying the file name 
  45. of the RCP to be loaded, e.g., "/RCP SYS" to load SYS.RCP. The 
  46. alias performs the following actions:
  47.  
  48. 1. "if ex load:$1.rcp;"
  49.    Check the directory named LOAD: (where I keep all of my RCP's) 
  50.    to see if the RCP file exists.  If not, skip to 4 (below). 
  51.    This command is optional, and assumes you have IF EXIST 
  52.    installed in your Flow Command Package (FCP).
  53.  
  54. 2. "if $ME10B=E2;ldr load:$1.rcp;"
  55.    [This command assumes you have "IF =" installed in your FCP.] 
  56.    a. Check memory location E10B hex for the normal ConIn value.  
  57.    b. If and only if the ConIn value is E2 hex (the normal 
  58.    value), load the specified RCP file.
  59.  
  60. 4. "fi;fi;h"
  61.    Always give the help message for the current RCP, telling 
  62.    which RCP is now active.  If the load failed, then help for 
  63.    the old RCP is given.
  64.  
  65. This prevents me from accidentally changing RCPs before I've 
  66. turned off trigger key detection.
  67.  
  68. The only tricky part of building this alias is finding the 
  69. correct values for the "$Mnnnn=nn" statement.  The first argument 
  70. in the statement is the address of the jump to the console input 
  71. routine in your BIOS, plus one.  This is always at BIOS+0B hex.  
  72. The second argument to the alias is the normal value for this 
  73. address.  Both of these values can be found using TELL.COM and a 
  74. little math.  TELL.COM gives a report such as:
  75.  
  76.  "...
  77.  Your CBIOS jump table begins at:        E100H.
  78.  ...
  79.  Console Input routine (waits for char.):E2ADH.
  80.  ...."
  81.  
  82. To get the value for the first argument, just add 0B hex to the 
  83. value for your CBIOS jump table (E100H in this example).  To get 
  84. the value for the second argument, take the first two digits of 
  85. the address for Console Input routine (E2 in this example).  
  86. Thus, for my system, the "$Mnnnn=nn" is translated into 
  87. "$ME10B=E2".  When the byte at E10B hex equals E2 hex in my 
  88. system, ARUNZ can proceed to remove the current RCP, as the BIOS 
  89. jump to Console Out has been restored to its normal value.
  90.  
  91.